HCI (Bluetooth) |
辞書:通信用語の基礎知識 無線技術物理層編 (WCPMD) |
読み:エイチスィーアイ |
外語:HCI: Host Controller Interface |
品詞:名詞 |
Bluetoothにおいて、コントローラーとホストの間で使われる通信プロトコル。
|
概要 |
Bluetoothモジュールを制御したり、データを無線で送受信するために使う、一番最下層のインターフェイスである。
有線でも例えばEthernetならEthernetコントローラーICなどを使い、その上にEthernetのプロトコルから上を実装することになるが、Bluetoothのような無線でも同様にハードウェアとソフトウェアの分担があり、その境界となるのがHCIである。
HCIで使用する物理層は、Bluetoothチップとホストの都合に合わせて選択されるため、様々なものがある。
UART、USBなどが使われることが多いようで、規格上このレイヤーをHCI Transportレイヤーという。UARTの場合、速度は実装依存だが、いわゆるRS-232Cで、データ長8ビット・ストップビット1ビット・パリティチェックなしの「N81」で、フロー制御はS制御というのが一般的のようである。
数値データはリトルエンディアンで表現されている。
特徴 |
種類 |
フレームは4種類存在する。
コマンドとイベント |
ホストがBluetoothを使うためには、Bluetoothコントローラーに対してHCIコマンドを発行する。
コントローラーは順次コマンドを実行するが、同時に複数のコマンドを実行でき、さらにコマンドの処理時間はコマンドごとに違う。したがって、コマンドを送った順に処理が完了するわけではない。
そこで、コマンドの終了通知はイベントとして発行される。
トランスポート層 |
UARTの場合、フレームの種類を表わすオクテットがあり、続いて実際のデータがある。
indicatorは、フレームの種類(4種類)に応じて、次のように定義されている。
HCI packet部の詳細なフォーマットは後述されるが、例えばコマンドをモジュールに送る時は、まず0x01をUARTに送り、次いで16ビットのOpcodeを送り、さらにLength、そしてParameter、という形式になる。
USBの場合、フレームの種類はエンドポイントアドレスで表わす。
エンドポイントアドレスは、フレームの種類に応じて、次のように定義されている。
ACLデータは、USBのバルク転送に対応する。また他に、0x83/0x03を使うアイソクロナス転送も定義されている。
フレームの構造 |
各接続ごとに持っている12ビットのユニークな値
L2CAPパケットの分割を示す2ビットの値
ブロードキャストかどうかを示す2ビットの値 (ホストとコントローラーの方向により若干意味が変わる)
ホスト→コントローラーの場合
コントローラー→ホストの場合
各接続ごとに持っている12ビットのユニークな値
0xFFはベンダー固有のデバッグイベント用、0xFEはBluetoothロゴテスト用として予約されている
リンク |
通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022) Search System : Copyright © Mirai corporation Dictionary : Copyright © WDIC Creators club |