BTチップとの通信に関わるシステムモジュールとその流れは?
一般に、Bluetooth スタック (Bluedroid だけでなく) は uart (電話や carkit などの組み込みデバイス) または USB (ほとんどは PC で使用される) を介してチップと通信し、1 つのスレッドでチップからの読み取りに使用されます (H4 プロトコルまたは BCSP を使用)。 、そして書き込みスレッドを1つのスレッドとして取ることができます(これも同じプロトコルです)。フローは初期化手順と同様で、Bluetooth チップの電源がオンになり (Linux や Android では rfkill を使用)、スタックは UART などのハードウェア インターフェイスを開き、いくつかの構成ファイル (ローカル Bluetooth アドレスなど) とパッチ ファイルを書き込みます。 、次にチップを温めます。その後、チップとスタックは正常に動作します。
What is the role of HCI in the above flow?
「上記のフローの HCI」という用語について何を意味していたのかわかりませんが、データフローまたはその他のことを意味していると思いますか? スタックは、チップから送信されたパケットの種類を判断し、HCI イベント、ユーザー データ (L2CAP)、またはその他の種類のパケット フォーマットに分割し、上位層 (RFCOMM や AVDTP など) に転送 (コールバック) します。反対側では、上位層のプロトコルとプロファイルがデータを収集し、Bluetooth チップに送信します。
HCI は Bluetooth チップへの実際の通信 (コマンドおよびデータ転送) を実行しますか? それとも、通信のロギング(HCISnoop ログ)のみを行いますか。
HCIは実際にはホストとコントローラーの間の単なるインターフェースだったので、最初に、実際の通信に関して、一部のコードがbtsnoopログを生成する部分でした。(コードの観点から)HCI部分に属していると言えますが、 HCI部分に属していません(ロジックの観点から)。