Bluetooth SIG Shop | Bluetooth.org


言語を選択してください  
search site search 

アーキテクチャ - ホスト コントローラ インタフェース (HCI)

ホスト コントローラ インタフェース (HCI)

概要

HCI は、ベースバンド コントローラとリンク マネージャにコマンド インタフェースを提供し、構成パラメータにアクセスします。このインタフェースによって、Bluetooth ベースバンド機能にアクセスする統一的な手法が実現します。

Bluetooth ソフトウェア スタックの下位レイヤ


左図は、下位ソフトウェア レイヤの概要を示しています。HCI ファームウェアは、ベースバンド コマンド、リンク マネージャ コマンド、ハードウェア状態レジスタ、制御レジスタ、およびイベント レジスタを利用して Bluetooth ハードウェア用の HCI コマンドを実装します。

ホスト システムの HCI ドライバと Bluetooth ハードウェアの HCI ファームウェアの間には、複数のレイヤが存在することがあります。これらの中間レイヤ (ホスト コントローラ トランスポート レイヤ) には、データの詳細を把握していなくてもデータを転送できる機能が備わっています。

ホストの HCI ドライバは、Bluetooth ハードウェアの HCI ファームウェアと、データおよびコマンドを交換します。ホスト コントローラ トランスポート レイヤ (物理バスなど) は、互いにデータを交換する機能を持つ 2 つの HCI レイヤを提供します。

ホストは、使用されるホスト コントローラ トランスポート レイヤに関係なく、HCI イベントの非同期通知を受信します。HCI イベントは、何かが発生したときにホストに通知するために使用されます。ホストは、イベントの発生を検出すると、受信したイベント パケットを解析して、発生したイベントを特定します。

ホスト コントローラ トランスポート レイヤ

ホスト ドライバ スタックには、ホスト コントローラ ドライバとホスト間にトランスポート レイヤがあります。このトランスポート レイヤの主な目的は透過性にあります。ホスト コントローラ ドライバ (コントローラにインタフェースを提供) は、基盤となるトランスポート技術に依存してはいけません。また、トランスポートは、ホスト コントローラ ドライバがコントローラに渡すデータに可視性を求めてはいけません。これにより、インタフェース (HCI) またはコントローラを、トランスポート レイヤに影響を与えることなくアップグレードできます。




HCI コマンドおよびイベントの概要

一般的なイベント

一般的なイベントは、複数のコマンドが原因で発生します。任意の時点で発生するイベントです。

デバイス設定 (Device Setup)

デバイス設定コマンドは、コントローラを特定の状態にするために使用されます。

コントローラ フロー制御 (Controller Flow Control)

コントローラ フロー制御コマンドおよびイベントは、ホストからコントローラへのデータ フローを制御するために使用されます。

コントローラ情報 (Controller Information)

コントローラ情報コマンドにより、ホストはデバイスに関するローカル情報を検出できます。

コントローラ構成 (Controller Configuration)

コントローラ構成コマンドおよびイベントにより、グローバル構成パラメータを構成できます。

デバイスの検索 (Device Discovery)

デバイスの検索コマンドおよびイベントにより、デバイスは周辺にある他のデバイスを検出できます。

接続設定 (Connection Setup)

接続設定コマンドおよびイベントにより、デバイスは他のデバイスと接続できます。

リモート情報 (Remote Information)

リモート情報コマンドおよびイベントにより、リモート デバイスの構成に関する情報を検出できます。

同期接続 (Synchronous Connections)

同期接続コマンドおよびイベントにより、同期接続が確立されます。

接続状態 (Connection State)

接続状態コマンドおよびイベントにより、特に省電力動作用のリンクを構成できます。

ピコネット構造 (Piconet Structure)

ピコネット構造コマンドおよびイベントにより、ピコネットを検出および再構成できます。

サービス品質 (Quality of Service)

サービス品質コマンドおよびイベントにより、サービス品質パラメータを指定できます。

物理リンク (Physical Links)

物理リンク コマンドおよびイベントにより、物理リンクを構成できます。

ホスト フロー制御 (Host Flow Control)

ホスト フロー制御コマンドおよびイベントにより、ホストに対してフロー制御を使用できます。

リンク情報 (Link Information)

リンク情報コマンドおよびイベントにより、リンクに関する情報を読み込めます。

認証と暗号化 (Authentication and Encryption)

認証と暗号化コマンドおよびイベントにより、リモート デバイスを認証してリンクを暗号化できます。

テスト (Testing)

テスト コマンドおよびイベントにより、デバイスをテスト モードにできます。

HCI フロー制御

ホストからコントローラへのデータ フロー制御

フロー制御は、ホストからコントローラの方向で使用され、応答しないリモート デバイスに (接続ハンドルを使用して) 送信された ACL データでコントローラ データ バッファがオーバーフローしないようにします。コントローラのデータ バッファを管理するのはホストです。

コントローラからホストへのデータ フロー制御

一部の実装では、コントローラからホストの方向にもフロー制御が必要な場合があります。この方向のフロー制御は、Set Host Controller To Host Flow Control コマンドでオン/オフできます。

 
 
© 2009 Bluetooth SIG, Inc. All rights reserved. legal | privacy policy