Explanation of PDU size in Bluetooth Low Energy 4.2 -


in bluetooth low energy 4.0 , 4.1, max pdu of ota packet 39 bytes (47 bytes preamble, access address , crc) , increased 257 bytes in version 4.2. reason of short packet stability of radio, long packets heat silicon , circuitry added keep frequency stable.so, in ble 4.1, longest possible packet 376 microseconds avoid heating effect. data rate 1mhz, 376 microseconds 376 bits = 47 bytes size of pdu explained. in version 4.2, longest packet 2120 bits, 2.12ms , read 3ms packets in bluetooth classic long enough cause problems. question is: why , how did sig succeed increase pdu in version 4.2 know semiconductor companies state hardware same versions. did lead new pdu length?

in 4.[01], 39 bytes maximum ll pdu size reached advertisement packets (2 bytes of header, 6 bytes of device address, 31 bytes of ad). data packets, max pdu size 33 bytes (2 header + 4 l2cap + 23 att + 4 mic).

note data channel header counts pdu size without header, makes data channel payload size go 31 bytes. number got enlarged in 4.2 (the actual minimal value 27 bytes if crypto not supported, because 4-byte mic never appear in packet).

the new data channel payload size defined in 4.2 maximum possible value protocol can support, it's value chip may support rather absolute packet size every chip must support.

actual data channel payload size negotiated ll_length_req , ll_length_rsp between 2 involved radios. may negotiate length 27 251 bytes (at payload level) (see core_v4.2 6.b.2.4.2.21).

in first release of ble spec, packet absolute max size 27 bytes (data payload, without mic). spec used 5-bit field ll packet size, 3 other bits of header byte rfu. got enlarged 8-bit full backward compatibility in 4.2, there no more contiguous bit available in header. me, explains why limit around 256 bytes (give or take because of fixed header sizes not part of byte count): gives reasonable extension without changing protocol much.


Comments

Popular posts from this blog

javascript - Thinglink image not visible until browser resize -

firebird - Error "invalid transaction handle (expecting explicit transaction start)" executing script from Delphi -

mongodb - How to keep track of users making Stripe Payments -