BLE Channel Sounding (Part 1)

CS (channel sounding) is an important link layer feature introduced in BLE 6.0, enabling centimeter-level secure positioning, suitable for digital keys, indoor positioning, and secure access control. Many companies are currently developing BLE 6.0 chips that support the CS feature. The following articles will provide a simple analysis of the relevant characteristics of CS based on the BLE 6.0 protocol.This article will first provide a basic introduction to channel sounding, including CS channels and the CS packet format.

  • CS Channels

As we know, BLE has a total of 40 RF channels, with a spacing of 2 MHz between channels.BLE Channel Sounding (Part 1)The calculation formula is as follows:BLE Channel Sounding (Part 1)In CS, a total of 79 channels are defined, and a new channel index is assigned to each channel, with a spacing of 1 MHz between channels.BLE Channel Sounding (Part 1)The main purpose is to use multi-channel phase measurement during positioning, and to resist multipath fading and external interference through frequency hopping, thereby improving distance measurement accuracy. The allowed markers for each channel are used to be compatible with the BLE mechanism, ensuring that CS does not use restricted frequency bands, such as 37-39, which are generally prioritized for broadcasting.

  • CS Packet Format

CS defines a new packet format called CS_SYNC. Since the main purpose of CS is measurement rather than data transmission, CS_SYNC does not include PDU, CRC, and CTE fields. However, the packet format is similar to that of LE Uncoded PHY, as shown below:BLE Channel Sounding (Part 1)

  • Preamble

The preamble field is similar to that of BLE, being 8 bits for 1M PHY and 16 bits for 2M PHY.BLE Channel Sounding (Part 1)

  • CS Access Address

Each CS step (i.e., a sounding measurement process) actually requires two CS Access Addresses. The first address is used for the initiator->reflector CS_SYNC packet, and the second address is used for the reflector->initiator CS_SYNC response packet. These two CS Access Addresses need to be selected from the four 32-bit vectors S0, S1, S2, S3 generated by the DRBG (Deterministic Random Bit Generator), which is a pseudo-random generator.S0 and S1 are used to generate the initiator->reflector direction CS_SYNC, while S2 and S3 are used for the reflector->initiator direction CS_SYNC. The choice of which value from (S0, S1) and (S2, S3) to use as the CS Access Address is determined by the autocorrelation score, defined as follows:BLE Channel Sounding (Part 1)C1 measures the similarity of adjacent bits, while C2 and C3 measure the autocorrelation of more distant neighbors. Ideally, C1=15.5, C2=15, and C3=14.5. If score(S0) is less than score(S1), S0 is selected as the final Access Address, and similarly for (S2, S3). If the scores are equal, the second value (i.e., S1 or S3) is chosen directly. The specific process is as follows:BLE Channel Sounding (Part 1)

  • Trailer

The generation of the trailer is basically determined: if the MSB of the CS Access Address is 1, the trailer is 0101; if the MSB is 0, the trailer is 1010.BLE Channel Sounding (Part 1)

  • Sounding Sequence

The sounding sequence is a string of alternating bit sequences, 0101010101… (starting with 0). Its purpose is to provide a reference signal for phase measurement, allowing the receiver to analyze the carrier phase difference to calculate distance and angle. It can be either 32 bits or 96 bits long.To enhance robustness, the protocol randomly inserts one or two Marker signals into the sounding sequence. A 32-bit value inserts one Marker, while a 96-bit value can insert up to two Markers. The Marker sequences can be of two types:1100 or 0011.The specific type used is determined by a single-bit random value generated by the DRBG. If the random value is 0, 1100 is used; if it is 1, 0011 is used. The actual position of the inserted Marker is also random, generated by the random number function hr1 (hr1 can refer to the specific implementation in protocol 4.8.1).The specific process for generating and sending the sounding sequence is as follows:BLE Channel Sounding (Part 1)

  • Random Sequence

Each time a CS_SYNC packet is sent, a new random bit sequence is generated separately by the DRBG and cannot be reused. The length of the sequence is determined by RTT_Type:RTT_type A->32 bitsRTT_type B->64 bitsRTT_type C->96 bitsIn addition to CS_SYNC, channel sounding also defines two additional packet formats, which are two different sending orders of CS_SYNC and CS_Tone, used to support different channel measurements.BLE Channel Sounding (Part 1)BLE Channel Sounding (Part 1)The main purpose is to send the CS_SYNC packet carrying synchronization information and to send CS_Tone for phase measurement. The two are summarized as follows:BLE Channel Sounding (Part 1)End!

Leave a Comment