蓝牙数据包
蓝牙数据包由Preamble、Access、PDU、CRC四部分组成。
其中,PDU由Header、Payload、MIC三部分组成。
Header由LLID、NESN、SN、MD、Length五部分组成。
传输周期
设备A发送一个数据包给设备B,该过程称作T时隙;
然后等待150us,该过程称作IFS时隙;
接着设备B发送一个ACK包给设备A,该过程称作R时隙;
然后又等待150us,开始下一次传输。
T + IFS + R + IFS 为一个完整的传输周期
注:ACK包为空包,即PDU的Payload为0,那么ACK包的长度 = 1+4+2+3 = 10字节。
蓝牙4.0/4.1/4.2数据吞吐率
蓝牙4.0/4.1/4.2的调制速率是1Mbps,即1秒钟传输1M bits。
传输1bit的时间 = 1s / 1M bits = 1 us
(1)蓝牙4.0/4.1
蓝牙4.0/4.1的PDU头部用 5个bit标识有效数据长度,即0-31字节,那么去除数据完整性校验MIC的4字节后,有效数据最大为27字节。
T时隙时间 = (1+4+2+27+4+3) x 8 x 1us = 328us
R时隙时间 = (1+4+2+3) x 8 x 1us = 80us
一个完整传输周期时间 T = 328 + 150 + 80 + 150 = 708us
那么
(2)蓝牙4.2
蓝牙4.2的PDU头部用8bit标识有效数据长度,即0-255字节,那么去除数据完整性校验MIC的4字节后,有效数据最大为251字节。
T时隙时间 = (1+4+2+251+4+3) x 8 x 1us = 2120us
R时隙时间 = (1+4+2+3) x 8 x 1us = 80us
一个完整传输周期时间 T = 2120 + 150 + 80 + 150 = 2500us
那么
可见蓝牙4.2的吞吐率较蓝牙4.0/4.1提升了163%。
蓝牙5数据吞吐率
蓝牙5的调制速率是1Mbps或2Mbps,即1秒钟最快可传输2M bits。
(1)使用1Mbps调制速率
那么吞吐率就和蓝牙4.2一样。
(2)使用2Mbps调制速率
那么传输1bit的时间 = 1s / 2M bits = 0.5 us
T时隙时间 = (1+4+2+251+4+3) x 8 x 0.5us = 1060us
R时隙时间 = (1+4+2+3) x 8 x 0.5us = 40us
一个完整传输周期时间 T = 1060 + 150 + 40 + 150 = 1400us
那么
可见蓝牙5的吞吐率较蓝牙4.2提升了78.5%。