コンテキスト
電子デバイスが開発されており、センサーに接続されると、微小変位を測定し、結果をPCに転送します。PCで結果はオペレーターにとって便利なグラフィック形式で表示されます。 測定装置の範囲は機械工学です。
すべてがどのように機能するかについて少し
この図は、開発中のデバイスの寿命に関係する主な関係者を示しています。
マイクロコントローラはデバイスの主要な要素であり、センサーに制御信号を供給し、応答を受信して測定結果を計算します。 実装されたUSBスタックを使用すると、ホストとのデータ交換は読み取りおよび書き込みバッファーでの作業に限定されます。 測定アルゴリズムは大きな計算能力を必要とせず、1回の測定の周期は100〜150 msであるため、 at90usb162マイクロコントローラー(8ビット、16 MHz、16 kB)が選択されます。 このMKはUSBのハードウェアサポートを備えているため、USBスタックのソフトウェア実装が大幅に簡素化されます。 その他の問題では、付属のソフトウェアパッケージのUSB Generic HID Implementationの例のおかげで、スタックを実装してMKを初期化する必要はありませんでした。 AVRのブランド例の代替品には、 AT90USBxxxxおよびATMEGAxxUxのLUFAフレームワーク(MITライセンス)と、ハードウェアUSBサポートなしでAVR-MCを操作できるV-USBスタックの完全ソフトウェア実装(GPLまたは商用ライセンス)があります。
略語HIDについて少し説明します。 これは、人間の入力用に設計されたUSBデバイスのクラスです:キーボード、マウス、ゲームコントローラー。 このようなデバイスは、開発されたデバイスのように、100〜150ミリ秒の間隔で8バイトのパケットのような少量の情報が送信されると想定されています。 このクラスのデバイスを使用する主な利便性は、OSに標準ドライバーが存在することです。これにより、独自のドライバーを作成する必要がなくなります。
私の場合、ホスト(マスター、マスター)はPC、またはマザーボードに組み込まれたUSBコントローラーです。 デバイスの記述子(説明)によると、ホストは約20ミリ秒の周期で新しいパッケージをポーリングします。 アプリケーションソフトウェアは、ホストが受信したデータを収集し、少し処理を行い、測定値が表示される自動車の速度計に似たインジケータを描画します。 接続されているセンサーと変更可能な設定のリストが表示されます。変更はデバイスに転送され、不揮発性メモリに保存されます。
アプリケーションのアイデアの1つはクロスプラットフォームであるため、C ++のQtフレームワークで開発され、データの読み取りおよび転送のためのOSへの呼び出しはlibusbライブラリを介して実行されます。 過去数ヶ月間、犯人向けのlibusb v1.0 バックエンドの積極的な開発が行われました。彼らはすでにプレリリースステータスについて書いており、さらに重要なことに、すべてが私にとってうまく機能しているようです。 Windows用のlibusb v0.1ポート-LibUsb-Win32もあります。 WinAPIを使用した作業のトピックは、USB Complete ブック ( 本について )のVisual BasicおよびVisual C#の例と詳細に説明されています。 WinAPIを試してみたが、気に入らなかった。
VIDおよびPID
USBデバイスをリリースするとき、会社はそれに製造元識別子(vid-ベンダーID)と製品(pid-製品ID、シリアル番号と混同しないように)を割り当てる必要があります。 正式には、OSのデバイスドライバー間の競合を防ぐために一意性が必要です。 私は、これが唯一の可能な技術的解決策よりも、標準の作成者のためにお金を稼ぐための一つの方法であると疑っていますが。 ただし、もちろん、私は彼らが作成した標準でお金を稼ぐために努力していることを非難しません。
したがって、周辺機器メーカーにとって、独自のビデオを取得するには2つの方法があります。
- vidに1回限り2000ドルを支払う
- または年間4000ドルでUSB-IFのメンバーになります。
- アトメル 。 faqにはルールがリストされており、これに従ってデバイスにvid / pidチップを使用できます。
- FTDI 組み込みのvid / pidを使用することに加えて、同社は無料のpid割り当てのリクエストを送信することを提案しています。
- Microcipは、pid割り当てアプリケーションの送信も提案しています 。
- シリコンラボ フォーラムの内容は次のとおりです。
- 「SiLabsは、独自のデバイス記述でドライバーを生成するための既製のパッケージを提供しますが、vid / pidはSiLabs(vid 10C4、pid EA60)からのものです。」
- 「usb-comアダプタがSilabs製の場合、無料でvid / pidを入手できます。 すでに2つ受け取っています。 彼らはアンケートを送信しますので、英語で手紙を書く必要があります。 アンケートへの回答は再度Silabsに手紙で送信され、2日後にvid / pidが送信されます。 ただし、もちろん、プロジェクトの詳細(開始日、ボリューム)を記述し、サイトを示す必要があります(* .comが望ましい)。
- ハードウェアのみでusbプロトコルを実装するチップは、ハードウェアに埋め込まれたvidとpidを使用できます。 たとえば、これはFTDIチップに適用されます。
主な情報源
周辺機器開発者向けのUSB( 英語 、ロシア語)の優れた紹介- 標準の何百もの代わりに30ページ。 USB周辺機器とそのためのドライバーの開発に関する詳細情報は、 Lakeview Researchの Webサイトで見つけることができます;特に「USB Complete:The Developer's Guide」、Jan Axelsonに言及したいと思います。