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