UsbHLib USBホストCライブラリ
USBホストIPなどのハードウェアを制御してUSBホスト機能を実現するためのCライブラリです。現在はUSBホストIPとしてOpenCoresで公開されているUSBHostSlave IPCoreをサポートしています。
・HUB
・Human Interface Devices
・キーボード
・マウス
・ゲームパッド
・Mass Storage Class Bulk-Only Transport
ディレクトリ名 |
説明 |
|||
doc |
ドキュメント |
|||
core |
USBホストCライブラリのソースファイル |
|||
hw_dep |
プラットフォーム依存部のソースファイル |
|||
|
usb |
USBホストハードウェア依存部 |
||
|
opencores |
OpenCores USBホストIP依存部 |
||
|
nios2 |
Nios2システム依存部 |
||
|
microblaze |
MicroBlazeシステム依存部 |
||
|
timer |
Timer機能依存部 |
||
|
nios2 |
Nios2用タイマー関数ソースファイル |
||
|
microblazse |
MicroBlaze用タイマー関数ソースファイル |
||
config_sample |
Cライブラリ設定例 |
|||
|
all |
すべてのサポートデバイスを利用する場合の設定ファイル例 |
||
|
simple_mouse |
マウスとHUBを利用する場合の設定ファイル例 |
||
|
simple_keyboard |
キーボードとHUBを利用する場合の設定ファイル例 |
||
|
simple_gamepad |
ゲームパッドとHUBを利用する場合の設定ファイル例 |
||
|
simple_msd_bot |
USBメモリ、カードリーダー等のストレージとHUBを利用する場合の設定ファイル例 |
||
|
microblaze |
MicroBlazeを使用する場合の設定例 |
||
|
all |
すべてのサポートデバイスを利用する場合の設定ファイル例 |
||
|
simple_mouse |
マウスとHUBを利用する場合の設定ファイル例 |
||
example |
サンプルプログラム |
|||
Cライブラリは、coreディレクトリのファイル、プラットフォームに応じたhw_depディレクトリのファイル、Cライブラリの設定を定義したconfig_sampleディレクトリのファイルで構成されます。
例) NiosIIプラットフォームでマウスとHUBを利用する場合のファイル構成
coreのファイル+
hw_dep/opencoresのファイル+
hw_dep/opencores/nios2のファイル+
hw_dep/timer/nios2のファイル+
config_sample/simple_mouseのファイル
例)MicroBlazeプラットフォームで全サポートデバイスを利用する場合のファイル構成
coreのファイル+
hw_dep/opencoresのファイル+
hw_dep/opencores/microblazeのファイル+
hw_dep/timer/microblazeのファイル+
config_sample/microblaze/allのファイル
usbh_config.hのdefine設定によってCライブラリの構成が変わります。define定義に従って決まったメモリ量をあらかじめ静的に確保します。(Cライブラリでは実行時にメモリの動的確保を行いません。)
define名 |
説明 |
USBH_DEV_INITIAL_ADDRESS |
エニュメレーション時にデバイスに割り当てるアドレスの初期値。デバイスが見つかると、USBH_DEV_INITIAL_ADDRESSに指定した値から順番にデバイスにアドレスが割り当てられる。 |
USBH_START_CONN |
USBコネクタの開始番号。 通常は0に設定。 |
USBH_NUM_OF_CONNS |
使用するUSBコネクタの数。 通常は1に設定。 |
USBH_NUM_OF_DEVICES |
ライブラリで管理するデバイスの最大数。 |
USBH_MAX_INTERFACE |
1つのデバイスが持つインターフェースの最大数。 |
USBH_MAX_ENDP |
1つのインターフェースが持つエンドポイントの最大数 |
USBH_MAX_HUB_POR |
HUBを使用する場合、そのHUBの最大ポート数 |
USBH_LOOKUP_MAX_CNT |
ホストが管理するデバイス検索ルックアップテーブルの設定。マウス、キーボード等の種類別の最大登録数を指定。 |
define名 |
説明 |
USBH_USE_HUB |
HUBを使用する場合にdefineを行う。 |
USBH_USE_HID |
マウス、キーボード、ゲームパッドを使用する場合にdefineを行う。 |
USBH_USE_MSD |
USBフラッシュメモリ、SDカードリーダー等のストレージを使用する場合にdefineを行う。 |
define名 |
説明 |
USBH_HUB_REPORT_MAX_BUF |
“Hub and Port Status Change Bitmap”を格納するバッファのバイトサイズ。 |
define名 |
説明 |
USBH_USE_MOUSE |
マウスを使用する場合にdefineを行う。 |
USBH_USE_KEYBOARD |
キーボードを使用する場合にdefineを行う。 |
USBH_USE_GAMEPAD |
ゲームパッドを使用する場合にdefineを行う。 |
USBH_HID_REPORT_MAX_BUF |
デバイスから取得したHIDのデータを格納するワークバッファのサイズ |
define名 |
説明 |
USBH_USE_MOUSE_BOOT_PROTOCOL |
Boot Protocolを使用してマウスのデータを識別。 |
USBH_USE_MOUSE_BTN_IDX |
マウスのボタンデータのインデックス値。 (USBH_USE_MOUSE_BOOT_PROTOCOLがdefineされていない場合のみ有効) |
USBH_USE_MOUSE_X_IDX |
マウスのX軸移動量データのインデックス値。(USBH_USE_MOUSE_BOOT_PROTOCOLがdefineされていない場合のみ有効) |
USBH_USE_MOUSE_Y_IDX |
マウスのY軸移動量データのインデックス値。(USBH_USE_MOUSE_BOOT_PROTOCOLがdefineされていない場合のみ有効) |
USBH_USE_MOUSE_Z_IDX |
マウスのZ軸移動量データのインデックス値。(USBH_USE_MOUSE_BOOT_PROTOCOLがdefineされていない場合のみ有効) |
define名 |
説明 |
USBH_HID_LANG_JAPANESE |
日本語キーボードを使用する場合にdefineを行う。 |
USBH_USE_KEYBOARD_BOOT_PROTOCOL |
Boot Protocolを使用してキーボードのデータを識別。 |
USBH_USE_KEYBOARD_M_IDX |
キーボードのモデファイアデータのインデックス値。(USBH_USE_KEYBOARD_BOOT_PROTOCOLがdefineされていない場合のみ有効) |
USBH_USE_KEYBOARD_K_IDX |
キーボードのキーデータのインデックス値。 (USBH_USE_KEYBOARD_BOOT_PROTOCOLがdefineされていない場合のみ有効) |
define名 |
説明 |
USBH_USE_REPORT_DESCRIPTOR |
ゲームパッドの情報をReportディスクリプタから判別する場合にdefineを行う。 |
USBH_HID_REPORT_DESC_MAX_BUF |
Reportディスクリプタ解析用ワークバッファのバイトサイズ。 |
USBH_USE_GAMEPAD_BTN_IDX |
ゲームパッドのボタンデータのインデックス値。(USBH_USE_REPORT_DESCRIPTORがdefineされていない場合のみ有効) |
USBH_USE_GAMEPAD_X_IDX |
ゲームパッドのX方向データのインデックス値。(USBH_USE_REPORT_DESCRIPTORがdefineされていない場合のみ有効) |
USBH_USE_GAMEPAD_Y_IDX |
ゲームパッドのY方向データのインデックス値。(USBH_USE_REPORT_DESCRIPTORがdefineされていない場合のみ有効) |
USBH_HID_SUPPORT_PS3_GC |
PS3 Game Controllerを利用する場合にdefineを行う。 |
define名 |
説明 |
INFO_PRINT |
エニュメレーション中の情報などをコンソールに表示する場合にdefineを行う。 |
プログラム名 |
説明 |
simple_mouse.c |
マウスのみを利用する場合のサンプルプログラム。マウスの値が変化すると、コールバック関数が呼ばれてマウスの状態値がコンソールに表示される。 |
simple_keyboard.c |
キーボードのみを利用する場合のサンプルプログラム。キーが押されると、コールバック関数が呼ばれてキーに対応した文字がコンソールに表示される。 |
simple_gamepad.c |
ゲームパッドのみを利用する場合のサンプルプログラム。ゲームパッドのボタンが押されると、コールバック関数が呼ばれてボタンの状態値がコンソールに表示される。 |
simple_msd_bot.c |
USBメモリ等のストレージのみを利用する場合のサンプルプログラム。(ファイルシステムとしてFatFsを利用) |
simple_msd_bot_pff.c |
USBメモリ等のストレージのみを利用する場合のサンプルプログラム。(ファイルシステムとしてPetit FatFsを利用) |
all_ff.c |
すべてのサポートデバイスを利用する場合のサンプルプログラム。 |
2013/10/01 公開
2013/10/31 USBH_HID_SUPPORT_PS3_GCを追加