2016-09-11 9 views
0

私は、BluetoothスタックからAndroid用Bluetoothチップへの通信の流れを理解しようとしています。 Android用Bluetoothに関するドキュメントhereが見つかりました。ただし、特にBluetoothスタックからChipへの通信は詳細に記述されていません。ここに私の質問は以下のとおりです。AndroidでのBluetooth通信の流れ

  1. は、BTチップ とその流れへの通信に関わるシステム・モジュールは何ですか?

  2. 上記フローでのHCIの役割は何ですか?

  3. HCIはBluetoothチップへの実際の通信(コマンドとデータ転送)を実行しますか?または、通信ログのみを実行します(HCISnoopログ)。

誰かが私のクエリに関する明確な説明やリンクを提供できるのであれば、感謝します。

ありがとうございます。

+0

ブルートゥースは、ほとんどが「ソケット」蒸気によって通信します –

+0

@ cricket_007あなたの応答に感謝します。私はSocketが上の階層にあると信じています。私は、BTスタックとBTチップの間の通信フローとモジュールを理解することに興味があります。 – Pravy

答えて

0

BTチップとの通信にはシステムモジュールがあり、そのフローは とは何ですか?

一般Bluetoothスタック(Bluedroidだけではなく)(その後、チップからの読み取りに使用する一つのスレッドで、UART(電話やカーキットなどの組み込みデバイス)またはUSB(PC上で最も使用されている)を介してチップに話をしますH4プロトコルまたはBCSPを使用します)、書き込みスレッドを1つのスレッド(同じプロトコル)として使用できます。 初期化手順と同様に、Bluetoothチップは電源が入ります(たとえば、LinuxまたはAndroidでrfkillを使用します)。スタックはハードウェアインターフェイスを開きます。 UART、いくつかの設定ファイル(例えば、ローカルブルートゥースアドレス)とパッチファイルを書いて、チップを暖かく休息させる。その後、チップとスタックは正常に機能します。

What is the role of HCI in the above flow? 

私はあなたが用語「上記フローにおけるHCI」について何を意味したわからない、私はあなたが、データフローや他のものを意味すると仮定しますか?スタックは、チップから送信されたパケットタイプを判断し、HCIイベント、ユーザデータ(L2CAP)、または他の種類のパケットフォーマットに分割し、それらを上位レイヤに(コールバックして)転送する。 RFCOMMまたはAVDTP。反対側では、上位層のプロトコルとプロファイルがデータを収集し、それをBluetoothチップに送信します。

HCIはBluetoothチップとの実際の通信(コマンドとデータ転送)を実行しますか?または、通信(HCISnoopログ)のログのみを実行しますか。

HCIが実際にホストとコントローラの間だけのインターフェースだったので、最初はい、いくつかの部分のコードは、実際の通信に係る、どこかでログインbtsnoop生成されます彼らのだった、あなたは、コードの観点から、(それがHCIの一部に属していると言うことができます)でも、それはHCIの部分に属していないと言うことができます(ロジックの観点から)。

関連する問題