JAJA452A january   2011  – may 2023

 

  1.   1
  2. 1MSP430™ USB HID Windows API プログラマー・ガイド
  3. 2はじめに
  4. 3実装
    1. 3.1 概要
    2. 3.2 ファイル構成
    3. 3.3 システム要件
    4. 3.4 MSP430 USB API スタック
    5. 3.5 Windows が物理 USB HID デバイスをホスト・アプリケーションにマッピングする方法
    6. 3.6 システム上で特定の HID デバイス / インターフェイスを見つけて開く
    7. 3.7 データの送受信
    8. 3.8 HID デバイスの動的接続 / 切断の検出
  5. 4関数呼び出しのリファレンス
    1. 4.1 デバイス接続管理および初期化呼び出し
      1. 4.1.1 VOID HID_Init(struct strHidDevice* pstrHidDevice)
      2. 4.1.2 DWORD HID_GetSerNums(WORD vid, WORD pid, struct strTrackSerialNumbers *serialNumList)
      3. 4.1.3 DWORD HID_GetNumOfInterfaces(WORD vid, WORD pid, DWORD numSerNums)
      4. 4.1.4 BYTE HID_Open(struct strHidDevice* pstrHidDevice, WORD vid, WORD pid, DWORD deviceIndex, char serialNumber[SERNUM_LEN], DWORD totalDevNum, DWORD totalSerNum)
      5. 4.1.5 BYTE HID_Close(struct strHidDevice* pstrHidDevice)
      6. 4.1.6 BYTE HID_GetVersionNumber(struct strHidDevice* pstrHidDevice, USHORT * VersionNumber)
    2. 4.2 データの送受信
      1. 4.2.1 BYTE HID_WriteFile(struct strHidDevice* pstrHidDevice, BYTE* buffer, DWORD bufferSize, DWORD* bytesSent)
      2. 4.2.2 BYTE HID_ReadFile(struct strHidDevice* pStrHidDevice, BYTE* buffer, DWORD bufferSize, DWORD* bytesReturned)
    3. 4.3 プラグ・アンド・プレイ管理
      1. 4.3.1 BYTE HID_RegisterForDeviceNotification(HWND hWnd, HDEVNOTIFY* diNotifyHandle)
      2. 4.3.2 BYTE HID_UnregisterForDeviceNotification(HDEVNOTIFY* diNotifyHandle)
      3. 4.3.3 BOOL IsDeviceAffected(struct strHidDevice* pstrHidDevice)
  6. 5デモ・アプリケーション
  7. 6MSP430 USB ツール・スイート
  8.   HID インターフェイスのデータ構造体:strHidDevice
  9.   HID-Datapipe デバイスに関するレポートの形式
  10.   C 関連資料
  11.   C 改訂履歴

はじめに

USB ヒューマン・インターフェイス・デバイス (HID) は、オペーレーティング・システムの中でも最も広範にサポートされているデバイス・クラスの 1 つです。元々はマウスとキーボード用に開発されたものですが、汎用の用途にも多くのメリットがあります。

汎用 USB アプリケーションの一般的な選択肢は、通信デバイス・クラス (CDC) を使用して実装できる仮想 COM ポートです。COM ポートはホスト・プラットフォームへの実装が簡単で、開発者にはよく理解されています。欠点は、Windows マシン用の USB 仮想 COM ポート・ソリューションでは、エンド・ユーザーがデバイスのインストール・プロセスを実行する必要があることです。このプロセスは、少々手間であることに加え、ユーザーが誤ったオプションを選択すると失敗する可能性があります。さらに、企業環境の一部のユーザーは管理者権限を持っていないため、ネットワーク管理者の助けがなければデバイスをインストールすることができません。一方、HID デバイスはサイレントにロードされ、これらの問題をすべて回避します。

HID にはいくつかの欠点があります。仮想 COM ポートと比較すると、多くのソフトウェア・エンジニアはその使用方法に慣れていません。HID は、データを伝送するのに「レポート」に依存しており、多くの場合、これらの複雑な形式は汎用アプリケーションに実際の価値を提供しません。基本的な HID 実装の帯域幅は、64KB/秒に制限されています。

これらの欠点を補うために、テキサス・インスツルメンツは Windows HID API とデモ・プロジェクトを提供しています。MSP430 HID API スタックに実装される「データパイプ・インターフェイス」と合わせて使用するように合理化されており、そのことにより HID レポートを生成する必要性が省かれます。 複合 HID デバイスとともに使用され、複数の HID インターフェイスを USB デバイスの中に複合的に組み込むことを容易にして、帯域を倍増させます。

合わせて使用すれば、MSP430 HID API スタックと Windows HID API がエンドツーエンドなソリューションを形成し、多くの汎用アプリケーションで仮想 COM ポートよりもメリットがあります。

MSP430 MCU 用の USB サポート・ソフトウェアについては、https://www.ti.com/tool/MSP430USBDEVPACK の MSP430 USB 開発パッケージを参照してください。