SWRA475A January 2015 – October 2016 CC2540 , CC2540T , CC2541 , CC2541-Q1
The transmitted data from a Bluetooth low energy device is formatted according to the Bluetooth Core Specification and is comprised of the parts shown in Figure 1.
The Preamble is a 1 byte value used for synchronization and timing estimation at the receiver. It will always be 0xAA for broadcasted packets. The Access Address is also fixed for broadcasted packets, set to 0x8E89BED6. The packet payload consists of a header and payload. The header describes the packet type and the PDU Type defines the purpose of the device. For broadcasting applications, there are three different PDU Types, as shown in Table 1. ADV_IND and ADV_NONCONN_IND have been described previously (as connectable and non-connectable) while ADV_SCAN_IND is simply a non-connectable broadcaster that can provide additional information by scan responses.
PDU Type | Packet Name | Description |
---|---|---|
0000 | ADV_IND | Connectable undirected advertising event |
0010 | ADV_NONCONN_IND | Non-connectable undirected advertising event |
0110 | ADV_SCAN_IND | Scannable undirected advertising event |
The TxAdd bit indicates whether the advertiser's address (contained in the Payload) is public (TxAdd = 0) or random (TxAdd = 1). RxAdd is reserved for other types of packets not covered in this application note, as they do not apply to beacons.
The final part of the transmitted packet is the Cyclic Redundancy Check (CRC). CRC is an error-detecting code used to validate the packet for unwanted alterations. It ensures data integrity for all transmitted packets over the air.
The Payload of the packet includes the advertiser's address along with the user defined advertised data as shown in Figure 2. These fields represent the beacon's broadcasted address and data.