2016-09-07 115 views
2

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

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

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

回答

7

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

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

这里我将解释一个典型的连接事件,而中央写入多个GATT Write命令包,每个包含20个字节。由于无线传输速率为1 MBit/s,因此传输每位需要1μs。链路层的页眉和页脚总共有80位,由以下内容组成:1字节前导码+4访问地址(将数据包标识为正确目的地的东西)。 1个字节包含流量/确认和数据类型。 1个字节包含数据包的长度。然后是数据,然后是3字节的CRC校验和。用户数据包本身被封装在一个ATT数据包(带有操作码和ATT句柄的3字节标题)中,该数据包又被包装在一个L2CAP数据包(2字节通道ID和2字节长度)中。所以20字节的大数据包现在变成了37个字节,并通过无线传输。在空中,主机和从机在发送和接收之间交替。因此,如果主机发送了很多数据包,但从机没有任何要发送的数据,从机仍然必须用80位标头的空数据包进行响应。而且,在所有数据包之间,为了给无线电时间在RX和TX之间切换,必须有150μs的无线电静默。因此,4个包的连接事件充满了20个字节的用户数据中的每个看起来像以下: 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微秒

随着新的数据包长度延伸,我们可以发送相同的80个字节的一个包(仍然是17字节头+ CRC的开销)= 97字节= 776位。

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

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

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