This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How does Bluetooth Smart low layer communication work?

Hi,

I tried to figure out what is happening on the lower Bluetooth levels but it is very difficult to find straightforward information. Especially the Bluetooth (4.2) standard specification is quite confusing in this aspect. I would appreciate if a low level expert could give some detailed information (or a small tutorial/presentation) on the data flow on lower Bluetooth Smart layers.

My goal is to understand more about the mechanisms that have impact on throughput and response time (under optimal environmental conditions).

Of course I know that Bluetooth Smart is not designed for realtime operation and packets can always be lost/damaged and re-transmitted by the lower layers.

So far, I understand that Bluetooth Smart packets (like a Notify packet) are mapped to L2CAP packets. L2CAP packets are split and/or re-assembled into ACL packets which are transferred over the air.

In the Bluetooth 4.2 standard specification, I could find some information about BR/EDR ACL packets (Vol.2 Part B Chapter 6: Packets), but there seems to be no information about LE packets. (Same goes for the LE Radio specification: Vol. 2 Part A Chapter 3-4 only describe BR/EDR characteristics). I understand that LE and BR/EDR use completely different radio units (modulation, channel bandwith etc.). So where is the LE specification?!

Some concrete questions I could not find an answer to:

  • How much payload can a LE packet carry? Where is it specified? (BR packets may contain up to 2790 bits = 348,75 bytes of payload according to Vol.2 Part B Chapter 6).
  • During a BLE connection event, is there always exactly one LE (ACL) packet of arbitrary length transferred in both directions?
  • Is each Bluetooth message from the upper layers (e.g. a Notify message) mapped to exactly one L2CAP packet? Or may multiple messages be mapped into a single L2CAP packet?
  • Can multiple small L2CAP packets be combined into a single ACL packet?
  • For example, if I want to send two Notify messages with ony byte payload in each message. Can both Notify messages be transmitted within the same connection event? Will there be one or two (or more) L2CAP packets? Will there be one or two (or more) ALC packets? What can we see on the air?
Parents
  • Vol.2 Part B only contains the baseband for BR/EDR, for the equivalent low energy part you would have to look at Volume 6. They share the same host controller interface, located in Vol 2 part E.

    1. One standard LE packet can carry 27 bytes of data, where you have to subtract 4 bytes for L2CAP header. With 4.2 there is an optional addtion of Data length extension where one packet can be extended to a bit more. (around 255)
    2. In a BLE connection event you can continue transmitting more data packets if you set the more data flag in the packet. There are no ACL packets in LE. Using fragmentation and reassembly you can support L2CAP packets of length up to 2**16. There are packets of size 27 bytes that will be fragmented and sendt sequentially.
    3. Each bluetooth message from the upper layers is always mapped to one L2CAP packet, so you have 4 bytes overhead for each upper layer packet. plus the overhead the upper layer packet impose.
    4. As LE does not use ACL packets no, I'm not sure if ACL support multiple L2CAP packets either.
    5. The two notifies will be sent as two L2CAP packets, and these will be split in to two LL data packets. but they might be sent in the same connection event depending on the softdevice that you use.
Reply
  • Vol.2 Part B only contains the baseband for BR/EDR, for the equivalent low energy part you would have to look at Volume 6. They share the same host controller interface, located in Vol 2 part E.

    1. One standard LE packet can carry 27 bytes of data, where you have to subtract 4 bytes for L2CAP header. With 4.2 there is an optional addtion of Data length extension where one packet can be extended to a bit more. (around 255)
    2. In a BLE connection event you can continue transmitting more data packets if you set the more data flag in the packet. There are no ACL packets in LE. Using fragmentation and reassembly you can support L2CAP packets of length up to 2**16. There are packets of size 27 bytes that will be fragmented and sendt sequentially.
    3. Each bluetooth message from the upper layers is always mapped to one L2CAP packet, so you have 4 bytes overhead for each upper layer packet. plus the overhead the upper layer packet impose.
    4. As LE does not use ACL packets no, I'm not sure if ACL support multiple L2CAP packets either.
    5. The two notifies will be sent as two L2CAP packets, and these will be split in to two LL data packets. but they might be sent in the same connection event depending on the softdevice that you use.
Children
No Data
Related