关于沁恒的蓝牙OTA,这个一包数据最大是多少?
关于沁恒的蓝牙OTA,这个一包数据最大是多少?支持BLE5.0及以上的蓝牙MCU(CH592系列、CH585系列等),都是支持512字节的MTU的,如果是自行整合一个上位机,可以协商到512字节。
各平台的BLE接口库:https://www.wch.cn/downloads/WCHBleLib_MultiOS_ZIP.html
如果是用EVT包中的OTA例程,配合已有的OTA上位机,默认可以协商到251字节的MTU。
https://www.wch.cn/downloads/BLE_OTA_Android_ZIP.html
https://www.wch.cn/downloads/BLE_OTA_iOS_ZIP.html 沁恒蓝牙OTA升级过程中,单包数据的最大传输量受蓝牙协议版本和具体实现影响,通常在BLE 4.0时代为23字节(应用层可用) 在BLE 4.2及更高版本中可扩展至247字节(MTU最大值,应用层可用约244字节) 一般来说,在实际OTA实现中,需结合具体芯片的MTU协商机制和分包策略确定单包最大数据量。 在蓝牙4.0时代,BLE芯片与手机通信时,蓝牙数据包长度MTU是23字节,其中还包括2字节的handle值,1字节的operation码,留给应用层的数据长度只有20个字节。 到了蓝牙4.1,单包数据传输最大值从20字节上调到23字节。而在BLE 4.2中,MTU已经扩展到了247字节,除去3个字节,留给应用层的就是244字节可以使用。 蓝牙OTA只适合用于近场通信,比如智能家居应用。 在BLE 4.2中,为了兼容BLE 4.2之前的设备,MTU的默认大小仍然是23字节,但可以在连接后进行修改。 当peripheral(从设备)和central(主设备)建立连接之后,central设备会发送ATT_Exchange_MTU_Req的请求包,包含了central所支持的MTU大小 peripheral会回应ATT_Exchange_MTU_Rsp应答包包含peripheral所支持的MTU大小,取两者之间最小的MTU作为两者通信的MTU。 在实际的OTA升级过程中,数据传输通常不是以单包最大容量直接发送,而是采用分包传输、校验和重传机制。 例如沁恒CH582的OTA升级,其数据传输流程包括擦除、编程、校验等步骤,且每次传输后需ACK确认,这表明实际单包数据量可能小于协议允许的最大值,具体取决于芯片的固件实现和分包策略。
页:
[1]