Bluetooth SDKサンプル¶
SiFli-SDKのBluetoothサンプルは、プロファイル、ロール、無線通信のワークフローに焦点を絞った出発点であり、そのまま使える製品ファームウェアではありません。製品で最も厳しい技術要件に対応するプロジェクトから始め、変更していないサンプルを対象ボードで動作させ、その後、一度に1つずつ製品要件を追加してください。
このページでは、SF32LB58xの文書に掲載されたクラシックBluetooth (Classic Bluetooth)、BLE、LE Audioブロードキャストのサンプルを、開発タスク別に整理しています。URLのsf32lb58xは文書の掲載先を示すもので、すべてのSF32LB58xボードや他のSF32ファミリーでの対応を保証しません。また、latestは随時更新されます。使用するSDKリリースまたはコミットに対応する各プロジェクトの「Supported Platforms」を確認し、そこに記載されたボード名とビルド手順だけを使用してください。対象ボードまたはSDKリビジョンとの対応が明記されていない場合は「未確認」と扱い、URL、別のサンプル、似た名前のボードから推測しないでください。「All platforms」と記載されている場合も、製品開発に進む前に実際のSDKリビジョンとボード構成でビルドを確認します。menuconfig設定、テスト機材、制限事項についても、プロジェクトのページが参照先となります。
製品に合ったBluetooth方式を選ぶ¶
| 製品要件 | ここから始める | 製品に組み込む前に検証すること |
|---|---|---|
| カスタムBLEサービスまたはコンパニオンアプリのリンク | BLEペリフェラル | アドバタイズ、接続、サービスのインターフェースと動作、再接続、スマートフォン側の検証 |
| スマートフォンにはPeripheral、センサーにはCentralとして同時接続する | BLEセントラルおよびペリフェラル | GAPの複数ロールの同時動作と、GATTクライアント/サーバーの役割分担 |
| 信頼性の高いBLEデータ転送 | BLEスループットまたはBLEファイル転送 | 必要なペイロードのフロー、接続設定、復旧挙動 |
| Bluetoothファームウェア更新 | OTA付きペリフェラルまたはPingpong OTA付きセントラルおよびペリフェラル | 更新時の役割分担、更新中断からの復旧、パーティション、ロールバック計画 |
| Classic Bluetoothのシリアル通信またはスマートフォン経由のネットワーク接続 | SPPまたはPAN | SPPのシリアルプロファイルまたはスマートフォン経由のネットワーク接続が製品要件に合うか、相手機器との互換性、再接続動作 |
| BT/BLEのホストとコントローラー間のUART HCI転送 | HCI over UART (BT/BLE) | ホスト/コントローラーの境界、UART転送、対象コントローラーとボード構成 |
| Classic Bluetoothオーディオまたは通話 | 音楽受信 (Music Sink)、音楽送信 (Music Source)、またはHFP | オーディオ経路、クロック構成、バッファリング、スマートフォンとの相互運用性、消費電力の予算 |
| LE Audioブロードキャスト | BAPブロードキャストソースまたはBAPブロードキャストシンク | ブロードキャストロール、オーディオパイプライン、テスト用の受信機または送信機、タイミングマージン |
サンプルを動かして検証の基準にする¶
プロジェクトを変更する前に、正確なSDKバージョン、ボード名、構成、相手機器またはアプリ、無線設定、期待されるログを記録してください。その後、次の手順を進めてください。
- 使用するSDKリリースに対応するものとして記載された正確なボード名と手順で、変更していないサンプルをビルド・書き込みします。SDKリリースと文書の対応、または対象ボードのサポートを確認できない場合は、サンプルを応用する前に互換性を「未確認」として扱います。
- デバイス検出、接続、転送、ストリーミング、受信など、その特徴的な無線上の挙動を必要に応じて実証します。
- リセット、切断、再接続、電源の再投入後にテストを繰り返します。
- 一度に1つずつ、製品固有のサービス、ユーザーフロー、オーディオルート、電力ポリシーを追加します。
- 該当する場合は、ディスプレイ、センサー、ストレージ、オーディオ、低消費電力状態への遷移を含む、製品の複合負荷の下で再テストします。
動作するサンプルが示すのは、そのサンプルが扱うワークフローに限られます。製品のセキュリティポリシー、無線の到達範囲、レイテンシ、消費電力、相互運用性がリリース可能な状態であることを示すものではありません。
BLEのサンプル¶
コンパニオンアプリのリンク、相互運用可能なGATTサービス、ビーコン、データ転送、BLEベースのOTAにはBLEのサンプルを使用してください。まず必要な役割に合ったサンプルを選び、製品がその標準化されたサービスを必要とする場合にのみプロファイルのサンプルを追加してください。
| 開発タスク | 公式のサンプル | 検証する内容 |
|---|---|---|
| 基礎となるロールとサービスアクセス | ペリフェラル、セントラルおよびペリフェラル、マルチ接続 | アドバタイズ、スキャン、接続管理の主体、正しいセントラル/ペリフェラルの分担 |
| スマートフォン統合 | AMS、ANCS、デュアルコアANCS | Appleのメディアまたは通知統合、必要なスマートフォン側のペアリングフロー |
| 標準GATTプロファイル | BASC、CPPC、CSCPC、DISS、HRPC、CTS | サービスの役割、GATTキャラクタリスティックの仕様、標準プロファイルと相手側デバイスとの相互運用性 |
| 入力とインターコム | HID、BLEインターコム (BLE Talkback) | 製品のUIや音声挙動を追加する前のインタラクションモデル |
| ペアリングと再接続の挙動 | BLEペアリング (BLE Pair) | ボンディング、アイデンティティ処理、製品の再ペアリングパス |
| アドバタイズと発見 | iBeacon、周期的アドバタイズ、周期的アドバタイズ同期 | GATT接続を前提とせず、必要なブロードキャストまたは同期の挙動 |
| データ転送とOTA | ファイル転送、スループット、OTA付きペリフェラル、Pingpong OTA付きセントラルおよびペリフェラル | ペイロード、リンクパラメーター、更新ロール、転送中断からの復旧、エンドツーエンドの検証 |
スループットの結果を製品のデータレートとして扱わないでください。選択したPHY、接続設定、ピアの挙動、RF環境、ホストの活動、ペイロードのパターンに依存します。同様に、ANCSやAMSのサンプルはスマートフォン統合の基準構成であり、すべてのiOSリリースやユーザー許可状態を保証するものではありません。
Classic Bluetoothのサンプル¶
Classic Bluetoothのプロジェクトは、BR/EDRプロファイル、オーディオ、シリアル形式の通信、またはスマートフォン経由のIPネットワークを必要とする製品に適しています。開発ボード上での動作確認は出発点にすぎません。製品で使用する実際の相手機器とワークロードで相互運用性を検証してください。
| 開発タスク | 公式のサンプル | 検証する内容 |
|---|---|---|
| ホスト/コントローラー間の転送またはClassic Bluetoothのシリアルプロファイル | HCI over UART (BT/BLE)、SPP | HCIのホスト/コントローラー境界とUART転送、またはSPPのシリアルプロファイル動作 |
| オーディオストリーミングとメディア制御 | A2DPマルチ接続、A2DP共有、AVRCPカバーアート、音楽受信 (Music Sink)、リレー付き音楽受信 (Music Sink with Relay)、音楽送信 (Music Source) | 想定するソース/シンクの構成、オーディオ経路、メディア制御の経路、リソース予算 |
| 通話と音声リンク | 3-SCO、HFP、HFPリレー | 通話のトポロジー、オーディオレイテンシ、マイク/スピーカーパス、スマートフォンの挙動 |
| スマートフォン経由のネットワーク接続とOTA | PAN、PAN OTA | スマートフォンのテザリング、IPトラフィック、再接続、OTA配信経路 |
PANのネットワーキングモデルとスマートフォン側のセットアップについては、Bluetooth PANを参照してください。オーディオルーティング、バッファーの所有権、システム負荷の検証については、オーディオ概要とAudio Serverとバッファリングを参照してください。
LE Audioブロードキャストのサンプル¶
sf32lb58xという文書パスだけでは、対象ボードの対応は確認できません。実際に使用するSDKリビジョンとボードについて、各プロジェクトのSupported Platformsを確認してください。Classic BluetoothとBAPの橋渡しサンプルでは、READMEのタイトルは送信側ですが、記載されたパスと概要は受信側を説明しています。今回確認したSDKの実装はClassic A2DPを処理し、BAPブロードキャスト送信側を起動します。この確認結果はリンク先の固定コミットに限られ、latestで公開されるすべてのSDKリリースに当てはまるとは限りません。ビルド前に、実際に使うSDKリリースまたはコミットのREADME、ソース、ボード構成を確認してください。コピーされた受信側の説明から役割やボード対応を推測しないでください。
zbtプロジェクトでは、LE AudioのBasic Audio Profile(BAP)に基づくブロードキャスト送信側と受信側のサンプルを提供しています。送信側(Source)と受信側(Sink)を組み合わせてシステムとしてテストしてください。ブロードキャスト構成、オーディオソース、受信機、クロック構成、RF条件はすべて観測される結果に影響します。
| 想定する使い方 | 公式のサンプル | 最初に検証すること |
|---|---|---|
| ブロードキャストオーディオストリームを受信する | BAPブロードキャストシンク | 受信機の動作、出力オーディオ経路、テスト用ブロードキャスト構成 |
| ブロードキャストオーディオストリームを送信する | BAPブロードキャストソース | 送信側のオーディオパイプライン、ブロードキャスト構成、動作確認済みの受信機 |
| Classic BluetoothとLE Audioブロードキャストを橋渡しする | Classic Bluetoothを伴うBAPブロードキャストソース | 2つの音声処理系、データを受け渡す位置、同時動作時のタイミングとリソースの余裕 |
サンプルを超えた製品検証¶
| 境界 | ソースのサンプルから維持すること | 製品向けに再検証すること |
|---|---|---|
| 無線の挙動 | サポートされているボードと、そのサンプルが意図するロールまたはプロファイル | アンテナ、筐体、到達範囲、RF共存、相手機器、規制適合性の試験計画 |
| 接続ポリシー | 基準となるアドバタイズ、スキャン、または接続フロー | 製品のレイテンシ、消費電力の目標、再接続戦略、状態遷移 |
| セキュリティ | サンプルのペアリングまたはボンディング設定 | 認証要件、鍵の保存、プライバシー、工場出荷時リセット、ユーザー向けの復旧 |
| データとオーディオ | 実証されたパケットまたはストリームのフロー | データ形式とやり取りの仕様、エラー復旧、レイテンシ、バッファリング、コーデック構成、メモリーのマージン |
| 検証記録 | ビルド設定、ログ、期待される挙動 | 再現可能なスマートフォン/アクセサリの組み合わせ、消費電力の測定波形、切断からの復旧、回帰テスト |
関連リソース¶
- 製品レベルのロール、プロファイル、セキュリティ、接続パラメーター、共存に関する選択についてはBluetooth概要。
- ホスト/コントローラーの境界と電力挙動についてはBluetoothプロセッサーアーキテクチャ。
- スマートフォンテザリングによるIPネットワーキングとPANベースのOTAについてはBluetooth PAN。
- Bluetoothオーディオ開発を補完する、ローカルキャプチャ、コーデック、再生のサンプルについてはオーディオSDKサンプル。
- 分野横断のSDKサンプルカタログについてはサンプル。
最終更新: