bluetooth lowenergy - Why is BLE 4.2 faster than BLE 4.1 -


i've read tech spec , trying understand why ble 4.2 faster ble 4.1?

can send larger packet size 20 bytes or connection interval faster?

i trying understand makes ble 4.2 faster.

the thing in bluetooth 4.2 gives higher throughout compared earlier length extension of link layer. makes possible send data pdus length of 251 bytes instead of 27 bytes limit before. meant large overhead if sent multiple packets due header sizes , time required between rx , tx packet , again tx rx. data sent 1 mbit/s on air.

note both sides need support new feature , new max length must negotiated between devices before can used.

here explain typical connection event while central writes multiple gatt write command packets of 20 bytes each. since transfer rate 1 mbit/s on air, takes 1 μs per bit transferred. link layer headers , footers in total 80 bits, consisting of following: 1 byte preamble + 4 access address (stuff identify packet correct destination). 1 byte containing flow/ack , data type. 1 byte containing length of packet. comes data followed 3 byte crc checksum. user data packet wrapped in att packet (3 byte header opcode , att handle) in turn wrapped in l2cap packet (2 byte channel id , 2 byte length). 20 byte large packet has became 37 bytes sent on air. on air, master , slave alternates between sending , receiving. if master sends many data packets slave has nothing send, slave must still respond empty packet 80 bits of header. also, between packets, there must radio silence 150 μs in order give radios time switch between rx , tx. connection event of 4 packets filled 20 bytes of user data each looks following: 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 adds 2554 μs

with new packet length extension can send same 80 bytes in 1 packet (still overhead of 17 bytes header + crc) = 97 bytes = 776 bits.

1. master -> slave: 776 μs packet 2. silence 150 μs 3. slave -> master: 80 μs empty packet

this adds 1006 μs, more twice fast before! radio available serve connection events connection.

as see, throughput increased. new feature useful, need make sure fill connection event packets. can of course send same amount of data during 1 connection event faster if idle rest of time before next connection event don't send data faster.


Comments

Popular posts from this blog

java - Jasper subreport showing only one entry from the JSON data source when embedded in the Title band -

serialization - Convert Any type in scala to Array[Byte] and back -

SonarQube Plugin for Jenkins does not find SonarQube Scanner executable -