CC2640R2F:如何在Simple serial中將最大有效負載更改為30Bytes
芯片型號:CC2640R2F
模塊型號:RF-BM-4044B2
問:我們需要將藍牙數據包的長度更改為30個字節,以滿足新項目能夠發送幾乎所有長消息。目前,我可以使用TI提供的BTool接收完整的22字節消息,但是該消息是在兩個幀中以1-2s的間隔接收的。如果我使用他們的名為CMCS的BLE工具,則該間隔似乎太長,并且超時。因此,請求是有可能將藍牙數據包長度更改為30字節甚至更高?我實際上在使用Simple serial代碼,在哪里更改應用代碼?
答:您可以在《BLE Stack用戶指南》中找到啟用數據長度擴展的說明:
LE數據長度擴展(DLE)
數據長度擴展功能允許LE控制器在處于連接狀態時,發送數據通道分組數據單元(PDU),有效載荷的應用程序數據高達251字節。此外,在連接期間,任何一方都可以在任何時候修改新的PDU大小。
以前,控制器的最大數據通道有效負載為27個字節。與藍牙核心規范版本4.0和4.1設備相比(如果兩個設備都支持擴展的數據包長度并且配置正確),此功能可將數據速率提高約250%。
CC2640R2默認情況下啟用了“數據長度擴展”-允許對等設備利用此功能,而無需應用程序管理設置。
DLE更新過程和定義
本節從連接器的角度以及術語方面描述了控制器的操作。
建立連接后,控制器將以兩種可能的方式之一運行:
如果在連接之前,將建議的PDU大小和時間設置為TX和RX的默認值(27B,328 us),則CC2640R2將不會啟動數據長度交換(即
LL_LENGTH_REQ
不會發送)。如果對等設備發送
,則設備的控制器將自動發送
LL_LENGTH_REQ
LL_LENGTH_RSP
給對應默認大小的4.0設備。
注意
有關如何修改此行為的信息,請參見在運行時禁用DLE。
如果在連接之前,不是PDU大小或用于RX或TX的最大時間不是默認值,則設備的LE控制器將使用
LL_LENGTH_REQ
和LL_LENGTH_RSP
PDU來修改數據信道PDU的更大的有效負載大小。
數據長度更新可以由主機啟動,也可以由控制器自主執行。主機或從機都可以啟動該過程。
數據長度更新過程完成后,兩個控制器都基于兩個參數選擇一個新的數據長度:PDU大小和時間。選擇本地和遠程控制器支持的最大大小;考慮了支持不同數據速率的時間。這些參數定義如下:
PDU大小
控制器支持的最大應用程序數據有效負載大小。此大小不包括數據包開銷,例如訪問地址或前同步碼。
時間
設備以PHY速率發送或接收PDU所需的最大微秒數。此參數使用微秒(μs)為單位。
每個方向都有一個PDU大小和時間。換句話說,有一個接收PDU大小/時間和一個單獨的發送PDU大小/時間。設備只能通過DLE更新過程通過調整對等方自己的PDU傳輸大小/時間來影響對等方的PDU接收時間/大小。
請注意,您必須在簡單串行端和BTool端都發送命令。