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.
The calculation formula is as follows:
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.
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:
- Preamble
The preamble field is similar to that of BLE, being 8 bits for 1M PHY and 16 bits for 2M PHY.
- 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:
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:
- 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.
- 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:
- 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.
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:
End!