Habrの多くは、「スマートハウス」、virtualrilok、STMの音楽玩具から始まり、自家製の位相レーザー距離計で仕上げるさまざまなプロジェクトでADCを使用しています。 アプリケーションの範囲は非常に広いですが、多くの場合、1つのADCから小さな周波数(チャネルごとに数十Hz)でデータを受信し、このサンプルを処理して何らかの制御結果を出力するか、画面上の値を出力するだけです。
ここで、1つのADCからではなく、たとえば数百または数千から、さらには5〜200 kHzの範囲のデータからデータを取得する必要があると想像してください。 リアルタイム操作、ロスレスデータの記録、またはそれらの検討の要件を追加することもできます。 一般的に、空想にふさわしいものは何ですか。 車、エンジン、または航空機のボディをテストするのに十分な大きさのスタンドを想像するのは簡単です。
チャネル上のデータのコレクションを別のコントローラーに整理しようとすると、そのようなシステムのコストはエンジン自体のコストに匹敵するか、それよりわずかに低くなります。 ここで、情報収集ユニット(BSI)が助けになります。
BSIには、動作温度、圧力、湿度、保護などのさまざまな要件があります。これらの技術要件の多くは、KT-160D規格で規制されています。 使用条件に応じて、このシステムを条件付きクラスに割り当てることができます。
- ベンチ(工業用)アプリケーション-動作条件:0〜+50ºC、湿度85%以下、減圧、機械的衝撃、および正弦波振動のある雰囲気で作業するための要件の欠如。
- 現場での使用-動作条件:-40〜+70ºC、湿度2時間で95%以下、最大26.8 kPaの減圧下での作業、最大20 gの単一および複数アクションの機械的衝撃耐性、安定性線形加速に。
- 過酷な条件下での使用-動作条件:-55〜+75ºC、湿度95%以下で2時間、最大0.26 kPaの減圧下での作業、最大150 gの単一および複数アクションの機械的衝撃への耐性線形加速抵抗。
BSIを開発する前に、デバイスのクラスが決定されるため、この分類は非常にarbitrary意的です。 クラスは多くのパラメーターに応じて割り当てられます。 たとえば、民間または軍用の航空機/ヘリコプターには、異なる振動要件があります(読者が理由を推測できることを願っています)。 したがって、最初にアプリケーションのオブジェクトを選択し、次にこのオブジェクト内のデバイスの作業場所を選択します(非居住可能ユニットは圧力に依存します)。デバイスにはクラスが割り当てられ、割り当てられたクラスが標準およびGOSTの要件に基づいてデバイスを開発できるようになります。
デバイスを開発するための別のオプションは、最初にそれを実行し、次に特定のクラスにそれを改良することです。
過酷な条件の場合、BSIはグループコネクタを備えた単一のハウジングで実行されます。 単一のハウジングにより、設計を非常に硬くすることができます。 ユニットのサイズを大きくすることにより、加熱、振動、衝撃に対する保護を受けます。 グループコネクタは、より良い気密性を提供します。塩霧はひどくありません。 気密性がそれほど重要でない場合、寸法によりケース内の通常の換気が可能になります。
また、このBSIはフィールドでの使用を目的としています。 要件はより柔軟であるため、個々のモジュールをインストールできます。
BSIの主な機能は次のとおりです。データの収集と保存。 BSIの収集に加えて、オペレータステーションにデータを送信できます。オペレータステーションでは、リアルタイムですべてのチャネルの値を監視します。 特に「スマートな」BSIは、データを受信する前に、チャンネルをプログラムし(ポーリング周波数、スイッチングモード、入力範囲、シャントの接続などを設定)、チャンネル内のデータを(NAND /フラッシュで)保存します。後で保存および処理するためにPCに転送します。
個々のコネクタを備えたBSIの画像を見ると、BSIがどの部分で構成されているかを部分的に理解できます。
通常、BSIでは次のコンポーネントが区別されます。
- コントローラーは、PCおよびデータ収集とのさまざまな通信インターフェースを提供するプロセッサーを備えたボードです。
- バックプレーン-実際には、個々のモジュールが挿入される単純化されたマザーボード
- 電源-ここではすべてが明確です。 -40°Cの温度での過酷な動作条件では、最初に電源とコントローラーの加熱を開始し、加熱後に(-30°Cまで)起動できることに注意してください。
- ケース-外部の影響の要件に基づいて決定されます。
- モジュールは、ADCからのデータ受信とコントローラーへの送信を提供する別個のボードです。
ナショナルインスツルメンツは、開発中のBSIを明確に示しています。
もう少し詳細なコントローラーを検討してください。 少なくとも、次の機能を実装します。
- PCとのデバイス接続
- モジュールのセットアップ
- モジュールからデータを受信する
- データ処理(フィルタリングはオプション)
- PCデータ転送
- NAND / Flash上のデータストレージ(オプション)
コントローラコアとして、いくつかのオプションを検討できます(多くの場合、実際に見られます)。
- adsp 2191-アセンブラ上のソフトウェア、PC(イーサネット)との通信用インターフェース-追加の物理学
- Cyclone III / IV-VHDL / Verilog上のソフトウェア、ソフトプロセッサNios II(C / C ++上のソフトウェア)、PCとの通信用インターフェース(イーサネット)-追加の物理(接続用IPコア)
- OmapL137 / 138-C / C ++ソフトウェア、ARM9 / DSPコア、統合イーサネット
- ザイリンクスZynq-ARM9 / FPGA、統合USB
カーネルを選択するには、タスクとは何か、それを解決する最善の方法を把握する必要があります。 ADCに戻ります。
マルチチャネルシステムでは、特定のチャネルグループの特性が似ている場合があります。 たとえば、温度センサー用のチャネル。 エラーおよび1000 Hz未満のポーリング周波数に関する重大な要件がない場合、個別のADCを提供するための個別のチャネルは必要ありません。 この場合、スイッチドADCを備えたモジュールが理想的です。
スイッチモジュールには、1つのADC、複数のスイッチ、およびグループ入力コネクタがあります。 通常、このようなモジュールには4、8、16、32チャネルがあります。 ADCのこのような節約により、いくつかの制限が生じます。
1つのチャネルのサンプリング周波数が100 Hzの場合、ポーリング周期は10 msです。 この間、ADCで1つの値を取得する必要があります。 32チャネルのモジュールは、同じ10ミリ秒で32回ADCからデータを受信する必要があります。 1つのチャネルの場合、時間は10,000μsから312μsに減少します。
データ収集は次のとおりです。
- チャンネルを切り替える
- ADCからデータを読み取る
- コントローラへのデータ転送(オプション)
- 次のチャンネルを切り替える
- など
各操作には時間がかかります。 たとえば、SPIによるレジスタ設定の書き込みには約10〜20μsかかります。 ADC減算1-5μs。
しかし、この校正アルゴリズムを使用すると、物理的な価値がある場合に、チャネルの干渉という形で副作用が現れます。 一方のチャネルの値が他方に影響し始めます。 これを回避するため、異なる入力ラインからデータを受信する間、ADCはグランドに切り替えられます。 この接地期間中、電荷の一部は前のチャネルを離れます。
したがって、サイクログラムの概念が表示されます-ハードタイミングによってチャネルとグランドをADCに切り替えます。
たとえば、100 Hzの周波数では、ADCは通常チャネルに切り替えられます-150μs、グランドに100μs。
5μs程度の値が設定されている場合、両方のチャネルに異なる正弦波を適用することにより、顕著な相互影響を観察できます。 ADCが異なるチャネルからデータを収集する間に費やす時間が短いほど、相互の影響が大きくなります。 モジュールのエラーが増加します。
スイッチモジュールの正反対は、独立したADCを備えたモジュールです。 このようなモジュールは、周波数、入力値の範囲、および多くのパラメーターで、個別のチャネルを個別に構成できます。 すべてが素晴らしいように思えますが、ADCの数が多いため、そのようなモジュールのコストのみが増加します。
次の記事では、次のリストの問題のいくつかを取り上げます。
- ADCデータ取得アルゴリズム
- コントローラーのコンピューティングコアの選択
- モジュールのコンピューティングコアの選択
- モジュールとコントローラー間のデータ交換
- 高速モジュールからデータを受信する