10

私たちは、TI CC2541 BLE モジュールとカスタム プロファイルを使用して、BLE 通知特性 (確認応答なし) で次のデータ スループットを必要とする、iPad で動作する BLE センサー ペリフェラルを開発しています。

10ms ごとに 1 つの 20 バイト (GATT 最大標準パケット)、または接続間隔ごとに 4 パケットの制限があるように見えるため、これは 40ms ごとに 1 つの接続間隔に相当します。必要なスループットは毎秒 2,000 バイトです。TI の Web サイトでは、このレベルのデータ スループットを必要とする複数のセンサー デバイスに CC2541 BLE ソリューションを使用することを推奨しています。

BLE モジュールのプロファイルは、それぞれ 20 ミリ秒と 40 ミリ秒の最小接続間隔と最大接続間隔で設定されており、これで十分です。「Apple 製品の Bluetooth アクセサリ デザイン ガイドライン」ドキュメントでは、上記のように設定した最小および最大接続間隔が正しいことを示唆しています。新しい Mac Mini / Mac Book で iOS 6 用の最新の iPad および Apple ツールを使用しています。

iPad で簡単なテスト プログラムを使用すると、20 バイトのパケットを 20 ミリ秒間隔で BLE ペリフェラルに送信してリンクを正常に動作させることができます。 BLE モジュール FIFO への送信をより迅速に処理できるように、FIFO エンプティ割り込みがオフになり、230400 の最大ボーレートを使用して、マイクロから BLE TX FIFO に 20 バイトのパケットを送信しています。

私たちは、BLE 転送の上限と可能性の上限に達していることを認識しています。最新の iPad で TI CC2541 BLE チップ/モジュールを使用して毎秒 2000 バイトのスループットを達成するための解決策があるかどうか、誰かアドバイスできますか?

4

5 に答える 5

10

TI 2540 (BLE スタック バージョン 1.3.2) を iPad/iPod/iPhone (iOS 6.x および 7.x) で正常に使用しています。現在、毎秒 20 バイト => 毎秒 1500 バイトの通知を 75 回送信しています。しかし、私は 125 個の通知を送信しようとしましたが、それもうまくいきました。

もちろん、送信すればするほど、データが失われる可能性が高くなります。たとえば、NACK されたメッセージを再送信する時間が短くなります。

iOS の BLE スタックが NACK メッセージを継続的に送信し始めるモードに入る可能性があることを経験しました。これが発生すると、多くのメッセージが失われます。これについては、Apple にエラーを報告しました。(この問題は iOS 7.1.beta3/4 で修正されたようです。)

私は現在持っています:

// Minimum connection interval (units of 1.25ms, 80=100ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL     10

// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL     20

はい、Apple のガイドラインに準拠していません。しかし、私たちの場合は緩和できると思います。

更新: iDevice を周辺機器、つまり 2 つの iDevice 間の BTLE として使用しようとしました。ここでは、1 秒あたり 150 件のメッセージを問題なく送信しました。

于 2013-11-18T14:23:45.933 に答える
2

「応答なしの書き込み」コマンドを送信していますか? この方法で、接続イベントごとに 4 つのパケットを送信できます。以前の 20 ミリ秒の接続間隔を使用すると、0.02 秒ごとに 20 バイトの 4 つのパケットを送信することになります。まとめると、4*20/0.02 = 1 秒あたり 4000 バイトと簡単に計算できます。

破損したデータを取得しているとは思えません。リンク層は、CRC と 2 ビットの「次の期待値」を BLE パケットに追加して、A) すべてのビットが正しく受信され、b) パケットが順不同で送信されていないことを確認します。TI スタックと iOS がリンク層を制御するので、あなたがそれを失敗したとは思えません。

于 2014-07-03T19:39:18.340 に答える
0

本当に質問はありませんが、ご希望の 2000 バイト/秒の制限が可能であることを確認できます。

このフォーラムの投稿 ( http://e2e.ti.com/support/wireless_connectivity/f/538/p/353327/1244676.aspx#1244676 )で選択した回答をチェックして、どのように機能させたかを確認してください。

于 2014-10-15T16:55:30.563 に答える