• 資料介紹
    • 引言
    • BLE 連接參數(shù)及更新過(guò)程
    • 問(wèn)題產(chǎn)生
    • 問(wèn)題解決
    • 小結(jié)
  • 資料預(yù)覽
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

LAT1371 關(guān)于STM32WB OTA 速率提升引發(fā)的討論

03/19 10:43
494
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

LAT1371 關(guān)于STM32WB OTA 速率提升引發(fā)的討論

478.44 KB

引言

客戶的 STM32WB 產(chǎn)品考慮功耗和 OTA 傳輸速率的平衡,在正常工作和做 OTA 升級(jí)時(shí)會(huì)使用兩套不同的 BLE 連接參數(shù)。這就涉及到 BLE 連接參數(shù)更新??蛻舻膯?wèn)題也正是由更新 BLE 連接參數(shù)引起。連接參數(shù)的更新除了會(huì)影響 BLE 的傳輸速率,還需要考慮 OTA接收到數(shù)據(jù)后的擦寫(xiě) Flash 操作。

BLE 連接參數(shù)及更新過(guò)程

我們先簡(jiǎn)單回顧一下影響 OTA 傳輸速率,也就是 BLE 傳輸速率的因素:

  • PHY:BLE 的 PHY 是選用 1M, 還是 2M
  • DLE: Data length extension 允許數(shù)據(jù)包大小容納更大的負(fù)載最大為 251 字節(jié),禁用時(shí)為 27 字節(jié)
  • ATT MTU ,當(dāng)開(kāi)啟 DLE 時(shí)建議最大值設(shè) 247 字節(jié)
  • 連接間隔(connection interval),范圍是 7.5ms 至 4000ms
  • 連接事件(connection event),每個(gè)連接事件的最大數(shù)據(jù)包數(shù),受限于 BLE 堆棧,Android 和 IOS 設(shè)備會(huì)有差異。
  • 從機(jī)端的間隔喚醒(Slave Latency): 定義從機(jī)可以忽略主機(jī)發(fā)起的連接事件數(shù)。
  • 發(fā)送數(shù)據(jù)后是否需要 RSP,不需要的時(shí)候選用 write without RSP/notify 的方式速度更快。

客戶的應(yīng)用中其 BLE 連接參數(shù)更新其實(shí)只涉及 connection interval 和 slave latency 兩個(gè)。

問(wèn)題產(chǎn)生

從上面的描述可知,客戶的程序設(shè)計(jì)是每接收到 4KB 數(shù)據(jù),就要做 BLE 連接參數(shù)的更新。頻繁的 BLE 連接參數(shù)更新會(huì)引發(fā)了一些問(wèn)題。首先是連接參數(shù)更新是由從設(shè)備STM32WB 發(fā)起把更新請(qǐng)求發(fā)給主機(jī),主機(jī)收到更新請(qǐng)求后,正常會(huì)回一個(gè) response 給從機(jī),告訴從機(jī)后面可以按新的連接參數(shù)進(jìn)行通信。但有些主設(shè)備有可能不支持參數(shù)更新或更新參數(shù)的時(shí)機(jī)有差異。導(dǎo)致更新失敗。這就產(chǎn)生了兼容性的問(wèn)題。

問(wèn)題解決

為了解決 BLE 連接參數(shù)更新帶來(lái)的問(wèn)題。有兩個(gè)建議,一個(gè)是可以在 OTA 更新數(shù)據(jù)之前將 Flash 區(qū)域提前擦除,后面收到 OTA 數(shù)據(jù)后直接寫(xiě) Flash。因?yàn)樵?BLE 射頻 IDLE 時(shí)間內(nèi)寫(xiě) Flash 的操作不受限制,這樣就可以不用頻繁更新 BLE 連接參數(shù),完成 OTA 升級(jí)。另一個(gè)是建議對(duì)于 STM32WB BLE 協(xié)議棧,只要主機(jī)對(duì)從機(jī)更新連接參數(shù)請(qǐng)求有response,從機(jī)收到這個(gè) response 后就可以再次發(fā)起連接參數(shù)更新請(qǐng)求,而無(wú)需等待30s。這樣也不會(huì)影響 OTA 的升級(jí)速率。

其實(shí)上面是針對(duì)使用的是 STM32Cube_FW_WB_V1.8 的協(xié)議棧版本的解決方案,它必須使用 ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_REQ 命令發(fā)送更新請(qǐng)求。

小結(jié)

本文分享了客戶為提升 STM32WB OTA 速率引發(fā)的關(guān)于 BLE 連接參數(shù)更新的討論。最后根據(jù)客戶需要頻繁更新連接參數(shù),給出了相應(yīng)的處理辦法。以上供大家參考。

資料預(yù)覽

相關(guān)推薦