BLE Data Rate 專題討論 (3)
BLE Data Rate 專題討論 (3)
最後我們來看 System Throughput of BLE, 這部分我們會談 iOS 以及 Android 部分, 但因為 Android 各家的 BLE 設定跟使用的解決方案都不同, 所以只會簡單帶一下, 沒太多可以討論的, 主要還是討論 iOS 的部分為主
關於 iOS 這邊的設定, 可以參考下面文章有一些經驗討論, 大概整理如下:
http://community.silabs.com/t5/Wireless/Throughput-to-iOS/td-p/150542
https://devzone.nordicsemi.com/question/23402/can-the-connection-interval-be-lower-than-30ms-on-ios/
20 * 6 / 30 * 1000 = 4000 Bps = 4KB/s
20 * 4 / 18.75 * 1000 = 4266 Bps = 4.2KB/s
這部分第一篇跟網路上提到的整理若用 Notification (un-ack) 最高速度可以到 32kbps 是差不多的, 大部分網友測試過可以到的速度就是 4KB/s 且似乎無法很穩定
而假入把資料假裝成 HID 的話, 則速度可以到 20 * 6 / 12 * 1000 = 10KB/s 左右, 上升滿多的, 但這邊目前網路上沒人實驗過 (未來有機會再來試試看)
所以由此可知, 就算今天 BLE 理論速度再快, BLE 晶片方案速度再快, 最終還是要看系統 (System) 最大速限所決定, TX 要送 RX 不收也沒用, 因此當我們使用 iOS 要做 BLE 應用時, 記得要把這個速度限制 (4KB/s) 記住, 以免明明需要高速達不到, 導致使用者經驗變差
接下來我們看一下 Apple 關於 BLE 這邊的一些資訊, 從中我們可以印證剛剛提到的幾點, 以及未來 BLE 有沒有可能更加快速
https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf
這邊我直接整理一下重點:
關於 iOS 這邊的設定, 可以參考下面文章有一些經驗討論, 大概整理如下:
http://community.silabs.com/t5/Wireless/Throughput-to-iOS/td-p/150542
https://devzone.nordicsemi.com/question/23402/can-the-connection-interval-be-lower-than-30ms-on-ios/
- Connection Interval 預設是 30ms, 但有機會可以跟 iOS 溝通要求他下降,
- 有人試過可以到 18.75ms, 而 Apple 建議的 connection interval 要大於 20ms
- 一個 connection interval 可以送的 packets 數量有 4 包跟 6 包兩種講法, 常聽到的是 4 包
- 假如今天用 HID Service 的話, iOS 會把 connection 調到 11.25ms
20 * 6 / 30 * 1000 = 4000 Bps = 4KB/s
20 * 4 / 18.75 * 1000 = 4266 Bps = 4.2KB/s
這部分第一篇跟網路上提到的整理若用 Notification (un-ack) 最高速度可以到 32kbps 是差不多的, 大部分網友測試過可以到的速度就是 4KB/s 且似乎無法很穩定
而假入把資料假裝成 HID 的話, 則速度可以到 20 * 6 / 12 * 1000 = 10KB/s 左右, 上升滿多的, 但這邊目前網路上沒人實驗過 (未來有機會再來試試看)
所以由此可知, 就算今天 BLE 理論速度再快, BLE 晶片方案速度再快, 最終還是要看系統 (System) 最大速限所決定, TX 要送 RX 不收也沒用, 因此當我們使用 iOS 要做 BLE 應用時, 記得要把這個速度限制 (4KB/s) 記住, 以免明明需要高速達不到, 導致使用者經驗變差
接下來我們看一下 Apple 關於 BLE 這邊的一些資訊, 從中我們可以印證剛剛提到的幾點, 以及未來 BLE 有沒有可能更加快速
https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf
這邊我直接整理一下重點:
- 有提到 connection interval 最小是 20ms (沒講預設 30ms, 但實驗起來的確是)
- 有提到若是 HID 那 connection interval 可以降到 11.85ms
- 沒有提到一個 connection interval 最多可以幾包 packets
- 這部分我覺得值得嘗試, 網路數據大多是用 Nordic 做的, 而一個 connection interval 最多 6 包也是 Nordic 限制
- 建議可以改用 CC2640 來實驗看看, 或許有機會更多包, 速度就更快了
- 支援 ATT MTU exchange
- 支援 L2CAP packet size 可以大於預設值, 所以假如這邊 Device 也支援的話 (例如 CC2640), 去交換一個大的 ATT_MTU 後, 那速度一樣又再可以提升了, 值得做實驗
以上, 網路上目前找不到 CC2640 使用加速版韌體配上 iOS 可以到多快的數據, 但我覺得這是值得做一下的實驗, 或許可以達到出乎大家預料的速度
2016/1/28 補充, 昨天見了一位朋友, 他有提到根據測試 CC2640 跟 iOS 可以到約 8KB/s, 不過實際如何達到, 就需要去 tune configuration, 這部分我也沒時間實際測試, 假如有經驗的朋友可以 share 如何達到
2016/1/28 補充, 昨天見了一位朋友, 他有提到根據測試 CC2640 跟 iOS 可以到約 8KB/s, 不過實際如何達到, 就需要去 tune configuration, 這部分我也沒時間實際測試, 假如有經驗的朋友可以 share 如何達到
浙公网安备 33010602011771号