Channel Sounding是蓝牙6.0引入的一个重要特性,支持Channel Souding的芯片有NXP KW47、Nordic nRF54L15、Silicon Labs EFR32BG24、Telink TL3228等。支持PBR和RTT两种测距方式,测距定位又可以通过L2CAP和RAS两种方式进行传输。这里以nRF54L15为例,例程主要分布在sdk\zephyr\samples\bluetooth\channel_sounding和sdk\nrf\samples\bluetooth\channel_sounding,前者通过简单GATT,后者通过标准RAS进行规范传输。
在进行CS定位前。需要进行一些步骤包括Feature Exchange、CS Capability exchange、CS Config、CS Security enabled、CS Procedure enabled、Start distance measurement等,对应过程空口:

定位角色分Initiator和Reflector两种,reflector存储定位数据到特征,提供服务给initiator按需或实时读取。
一、 RAS配置
RAS(UUID=0x185B)配置如下:
Characterisitic | UUID | Properties |
RAS Feature | 0x2C14 | Read |
Real-time Ranging Data | 0x2C15 | Indiacte,Notify |
On-demand Ranging Data | 0x2C16 | Indicate,Notify |
RAS Control Point | 0x2C17 | Write without rsp,Indicate |
Ranging Data Ready | 0x2C18 | Indicate(,Notify,Read) |
Ranging Data Overwritten | 0x2C19 | Indicate(,Notify,Read) |
实际定位数据RAS传输抓包:

二、 简单GATT传输
两块靠在一起的nRF54L15:一块做Initiator,烧录NCS/zephyr目录下channel_sounding\connected_cs\initiator;一块做Reflector,烧录NCS/zephyr目录下channel_sounding\connected_cs\reflector,上电能看到清晰的过程,因为nRF54L15没有内置定位专用加速硬件、专用算法,只是demo,可以看到这里RTT测距漂得很厉害,PBR测距也不太准:

三、 标准RAS传输
两块靠在一起的nRF54L15:一块做Initiator,烧录NCS/nrf目录下channel_sounding\connected_cs\ ras_initiator;一块做Reflector,烧录NCS/nrf目录下channel_sounding\connected_cs\ ras_reflector,上电能看到清晰的过程,可以看到这里RTT测距漂得很厉害,PBR测距也不太准:

我要赚赏金
