SWRA475A January   2015  – October 2016 CC2540 , CC2540T , CC2541 , CC2541-Q1

 

  1.   Bluetooth low energy Beacons
    1.     Trademarks
    2. 1 What is a Beacon?
    3. 2 Bluetooth low energy and Bluetooth Smart
      1. 2.1 Non-Connectable Beacons
      2. 2.2 Connectable Beacons
      3. 2.3 Data Packet
      4. 2.4 Device Address
        1. 2.4.1 Flags
        2. 2.4.2 Manufacturer Specific Data
      5. 2.5 Broadcast Interval
      6. 2.6 Power
      7. 2.7 Range
      8. 2.8 Coexistence
    4. 3 Designing a Bluetooth low energy Beacon
      1. 3.1 Development Kits
      2. 3.2 Creating a Beacon Application With TI Bluetooth low energy-Stack
    5. 4 iBeacon Implementation
      1. 4.1 Overview and Prerequisites
      2. 4.2 Design and Implementation
      3. 4.3 Testing
    6. 5 Proprietary Implementation
      1. 5.1 Overview and Prerequisites
      2. 5.2 Design and Implementation
      3. 5.3 Testing
    7. 6 References
  2.   Revision History

Data Packet

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.

Figure01_SWRA475.gifFigure 1. Bluetooth low energy Data Packet

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.

Table 1. Advertising PDU Types for Broadcasting Data

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.

Figure02_SWRA475.gifFigure 2. Bluetooth low energy Broadcast Data