为什么BLE 4.2比BLE 4.1快

时间:2016-09-07 13:51:50

标签: bluetooth-lowenergy

我已经阅读了技术规范,我试图理解为什么BLE 4.2比BLE 4.1更快?

我们可以发送大于20字节的数据包大小还是更快的连接间隔?

我想了解是什么让BLE 4.2变得更快。

1 个答案:

答案 0 :(得分:8)

与之前相比,蓝牙4.2中唯一能提供更高效率的是链路层的长度扩展。它可以发送数据pdus,其长度为251个字节,而不是27个字节,这是之前的限制。以前,如果由于报头大小和rx和tx数据包之间以及从tx到rx之间所需的时间而发送多个数据包,则意味着开销很大。 数据本身以1 MBit / s的速度发送。

请注意,双方都需要支持此新功能,并且必须先在设备之间协商新的最大长度才能使用。

这里我将解释典型的连接事件,同时中央写入多个20字节的GATT写命令包。由于传输速率为1 MBit / s,因此传输每位需要1μs。链路层页眉和页脚总共为80位,包括以下内容:1字节前导码+ 4个访问地址(用于将数据包标识到正确目的地的内容)。 1个字节,包含flow / ack和数据类型。 1个字节,包含数据包长度。然后是数据,然后是3字节CRC校验和。用户数据包本身被包装在ATT包(具有操作码和ATT句柄的3字节头)中,该数据包又包裹在L2CAP包中(2字节信道ID和2字节长度)。因此,20字节大数据包现在变为37字节,通过空中发送。在空中,主设备和从设备在发送和接收之间交替。因此,如果主设备发送许多数据包但从设备无法发送任何数据包,则从设备仍必须使用带有80位标头的空数据包进行响应。此外,在所有数据包之间,必须有150μs的无线电静音,以便为无线电提供在RX和TX之间切换的时间。因此,包含20个字节的用户数据的4个数据包的连接事件如下所示: 1. Master -> Slave: 296 μs 1st packet 2. Silence 150 μs 3. Slave -> Master: 80 μs empty packet 4. Silence 150 μs 5. Master -> Slave: 296 μs 2nd packet 6. Silence 150 μs 7. Slave -> Master: 80 μs empty packet 8. Silence 150 μs 9. Master -> Slave: 296 μs 3rd packet 10. Silence 150 μs 11. Slave -> Master: 80 μs empty packet 12. Silence 150 μs 13. Master -> Slave: 296 μs 4th packet 14. Silence 150 μs 15. Slave -> Master: 80 μs empty packet 所有这些加起来达到了2554μs

使用新的数据包长度扩展,我们可以在一个数据包中发送相同的80个字节(仍然是17个字节的开销+ CRC)= 97个字节= 776个比特。

1. Master -> Slave: 776 μs packet 2. Silence 150 μs 3. Slave -> Master: 80 μs empty packet

这加起来只有1006μs,是以前快两倍!现在,无线电可用于从另一个连接提供连接事件。

如您所见,吞吐量增加了。但是要使这个新功能有用,您需要确保使用数据包填充连接事件。当然,您可以在一个连接事件中更快地发送相同数量的数据,但如果您在下一个连接事件之前暂停其余时间,则不会更快地发送数据。