Foxes 是一套基于 BLE芯片 KW38 和 UWB 芯片 NCJ29D5D 的 UWB 开发套件,其中 UWB 芯片 NCJ29D5D 是一种全集成的单芯片脉冲无线电超宽带 (IR-UWB) 低能低成本收发芯片。它是为汽车环境中的安全范围应用而设计的。它可以用于双向测距定位系统,以确定距离的精度高达 10 厘米。该设备配备了专用的 MAC 固件,以简化超宽带范围设置和会话控制,能够按照汽车连接联盟 (CCC) 的指定操作,以实现与汽车接入生态系统的互操作性。
一、芯片介绍
1.1 功能和特点
符合 IEEE 802.15.4 HRP UWB PHY 标准
芯片上 MAC 固件,以减轻超宽带范围设置和会话控制
支持 SHF 超宽频带从 0 GHz 到 8.5 GHz 的全球使用
中心频率 5 GHz 到 8.0 GHz
可编程发射机输出功率高达 12 dBm 峰值
与 IEEE 802.15.4 相比,128 MHz PRF 模式使可用的平均 TX 功率加倍
优化短帧模式操作
全相干接收机的最大范围和精度
集成所有需要的射频元件(即 balun,TRX 开关)
供电电压 8 V ~ 3.6 V
低能源消耗
可配置的电流限制应用与硬币电池供应
数据速率 110 kbps (BPRF), 850 kbps (BRRF),8 Mbps (BPRF), 7.8 Mbps (HPRF)
支持双向测距
IEEE 802.15.4z BPRF/HPRF 超宽带 PHY 协议草案,对抗 Cicada 和前导码注入攻击造成的远距离操纵
混乱时间戳序列 (STS) 生成兼容 NIST SP 800-90A
集成 I/Q 相位和振幅失配补偿
窄带干扰消除 (NBIC),具有卓越的同通道干扰抑制能力
XO 缓冲器,用于与其他设备共享 XTAL( 例如 UHF 或 BLE 收发器)
6mm x 6mm 40-pin QFN 包带 5 mm 铅间距和可湿性侧面
外部组件数量少
ARMAHB-Lite 总线矩阵和双主 NS-DMA 快速数据传输
256kbyte 非易失性内存
40 kByte RAM
96 kByte ROM
ARMTrustZone 技术和 S-DMA 安全
高级加密标准 AES (Advanced Encryption Standard),具有 128 位密钥和 256 位密钥
具有 256 位、384 位和 512 位密钥的椭圆曲线密码 (ECC)
256 位的安全哈希算法 2 (SHA2-256)
循环冗余校验 (CRC) 计算的协处理器
真随机数生成 (TRNG)
SPI, UART 和 LIN 兼容接口
简化了定制应用程序的开发的 API
应用程序开发的几个计时器
低功耗唤醒计时器
看狗定时器
集成温度传感器用于晶体温度漂移补偿
通用 ADC 10 位
1.2 应用
这颗芯片支持以下应用:
基于低频无钥匙进入系统 (PKE) 的中继攻击防御
基于超宽带定位的免提智能接入
安全测距在汽车系统中的应用 ( 远程停车控制)
更多的用于汽车中的舒适功能
CIR 是信道脉冲响应 Channel Impulse Response 的简称,在与客户的沟通当中得知,客户有获取 CIR log 的需求,当客户拿到 CIR log 数据,可以使用该 CIR 数据结合他们自己开发的算法进行测距,以期获得更佳的 UWB 测距效果,通过 NXP 提供的上位机软件,进行配置之后就可以获取到 CIR log。
2.1 安装上位机软件
(1)在向 NXP 申请中的资料中找到如下安装文件并安装。
(2)安装完毕如下图,运行该上位机。
2.2 使用上位机配置 NCJ29D5D 并打印 CIR log
(1)设置 “发起者” 和 “锚点”,设置之前首先我们需要知道我们手中的板子是烧录的什么程序,建议烧录完之后贴相应的标识。
UWB 模块连接如图,UWB 模块扣在我司自己做的 Echoes S32K144 底板上,因为NXP 上位机只认 NXP 自己的这块 S32K144 Demo 板,所以这里把串口做了一下飞线连接,最终通过右侧 NXP 这块板子连接至 PC 端的上位机。
(2)连接 UWB 模块并设置角色。
① 首先点击 SCAN,扫描连接上的COM 口(注意:该上位机只能连接 NXP 自己的一款Demo 板:S32K144EVB-Q100,普通串口插上也扫描不出来)。
② 点击槽位进行角色设置并绑定 COM 口。
③ 设定连接上的 UWB 模组的角色(ANCHOR 或 INITIATOR,对应板上标签)。
④ 选择要连接的 COM 口。
⑤ 设定好 ANCHOR 和 INITIATOR 之后点击 CONNECT 连接
(3)重置 INITIATOR 和 ANCHOR。
使用 UCI core control 的 Reset the UWBS 命令以重置 UWB 设备
重置 Initiator 设备。
重置 Anchor 设备。
(4)配置 INITIATOR 的低功耗功能( Anchor 无低功耗功能,不用设置 )。
关闭 Initiator 的低功耗功能。
(5)关键步骤就是这步了,在锚点的设置中需要打开 CIR log 的打印。
Logging configuration 中添加需要打印的信息,这里必须添加的 “CIR log”,“UWB session ID”,“Rx First Path Info”。
RX PHY logging 需要进行使能“Enable”。
CIR samples offset(hex) 这是 CIR 信号位移量,上位机对位移的这部分数据不显示,默认是 0x302,不需要修改。
Number of CIR Samples 是一次获取的 CIR 的样本数,这里要设置 1024 上位机才会进行显示。
(6)初始化一个 UWB 测距会话,目前可用的测距会话类型是 “CCC Ranging Session”,会话 ID 可以自己设置或者点击 [Ramdom ID] 随机生成,INITIATOR 和 ANCHOR 的 ID 要一致。
初始化一个 UWB 会话,会话 ID 设置为 0x00000001。
Anchor 也初始化一个会话 ,会话 ID 与 Initiator 的一样。
(6)使用 UWB Session configuration 的 Configure UWB session 命令配置 Initiator 和 Anchor 设备。
按如下参数配置 Initiator 设备。
按如下参数配置 Anchor 设备,与Initiator 不同的是 Device Role 和 Responder slot index。
(7)Initiator 与 Anchor 都开始开始测距。
配置 Initiator 设备需要开始测距的会话 ID,即上文我们配置这个会话。
配置 Anchor 设备需要开始测距的会话 ID,即上文我们配置这个会话。
(8)开始测距之后,可以看到 Anchor 的通讯数据中,但这次我们要看的是 CIR log 信息,如图所示进入 CIR 页面:COMMUNICATION —> Channel Impulse Response。
因为只连接了一个锚点,所以设备默认是 Device #2,设置打印 CIR log 的会话是 0x00000001, 选择正确的会话后我们可以看到 CIR 以下方波形的形式呈现。
鼠标滚轮可以缩放坐标,波形从 770 开始是因为CIR 的 offset 值为 0x302(770),该波形是一次性获取的 1024 个样本减去 770 后就剩下的 254 个样本进行显示的效果。
点选左上角标签,可以显示更多信息。
2.3 导出 CIR log
按右上角的下载图标,可以导出 CIR log 成为表格信息。
我这里在桌面新建了一个 CIR 文件夹,用来存放 CIR log
保存为 csv 表格形式的 CIR log 。
表格打开如图所示。
三、一般串口工具配置 UWB 并测距
3.1 串口工具参数设置
(1)串口工具设置参考如下,波特率 460800,收发都使用 16 进制(hex)显示。
(2)每次发送命令前请确认输入换行符,例如我使用串口工具,按回车输入换行符,点击
[ 发送 ] 按钮发送数据。
3.2 使用一般串口工具配置 UWB 并测距
请按顺序发送如下命令,且收到正确回复之后,再依次进行下一项测试,请注意区分
Initiator 和 Anchor 命令是不完全一致的。
(1)S32K 板点亮 LED 测试(Initiator 和 Anchor 相同)
EF 0E 00 02 02 00
[回复]
EF 0E 00 01 00
发送成功 RGB 灯亮绿色。
(2)UWB 重置命令(Initiator & Anchor):
20 00 00 01 00
[回复]
40 00 00 01 00
60 01 00 01 01
(3)UWB 关闭低功耗(仅 Initiator)
20 04 00 04 01 01 01 00
[回复]
40 04 00 02 00 00
(4)UWB 打开 CIR log 设置(仅 Anchor)
20 04 00 12 04 F4 01 01 F6 04 0C 04 00 00 F7 02 02 03 F8 02 00 04
[回复]
40 04 00 02 00 00
(5)新建并初始化一个测距会话(Initiator & Anchor)
21 00 00 05 78 56 34 12 A0
[回复]
41 00 00 01 00
61 02 00 06 78 56 34 12 00
(6)Initiator 测距会话设置,每隔 [C0 03: 0x3c0] 960 ms 进行一次测距
21 03 00 1B 78 56 34 12 06 04 01 09 05 01 01 08 02 80 25 09 04 C0 03 00 00 11 01 01 F2 01 68
[回复]
41 03 00 02 00 00
61 02 00 06 78 56 34 12 03 00
(7)Anchor 测距会话设置,每隔 [C0 03: 0x3c0] 960 ms 进行一次测距
21 03 00 1E 78 56 34 12 07 04 01 09 05 01 01 08 02 80 25 09 04 C0 03 00 00 11 01 00 1E 01 00 F2 01 68
[回复]
41 03 00 02 00 00
61 02 00 06 78 56 23 12 03 00
(8)Initiator 开始测距
22 00 00 04 78 56 34 12
[回复]
42 00 00 01 00
60 01 00 01 02
61 02 00 06 78 56 34 12 02 00
60 20 00 17 78 56 34 12 02 04 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF
(9)Anchor 开始测距
22 0 00 04 78 56 34 12
[回复]
42 00 00 01 00
60 01 00 01 02
61 02 00 06 78 56 34 12 02 00
62 20 00 17 78 56 34 12 00 F8 0B 00 00 00 00 4A 00 94 94 FF FF FF FF FF FF FF FF
(10)开始测距之后,串口不停返回 UWB 测距会话的状态信息,其中 Anchor 返回信息中也包含了 CIR log,如下图,
红框:0x02 表示之后就是 CIR log。
绿框:表示 CIR log 的长度。
蓝框:是包边界标志 (PBF),用来判断该句状态信息中的 CIR log 是否是最后一句。
紫框:是我们设定的 0x302(770) 偏移值 (offset)。
浅蓝:是表示具体的 CIR log,如下图返回的总共 5 句的浅蓝色部分就包含了我们所请求的 1024 个 CIR 样本。
四、总结
本文介绍了使用 NXP 提供的上位机配置 UWB 芯片 NCJ29D5D,并使用两个模组一收一发进行测距的同时进行 CIR log 的打印,客户在获取该 CIR log 信息的基础上可以开发自己的算法,由于上位机程序需要特定的 NXP 官方 EVB 才能使用的限制,这里还介绍了使用一般串口工具进行配置和进行测距的方法。
[1]《an523019 - AN-SCA-1901 NCJ29D5 Tools (1.9)》
[2]《ds652611_1.1_NCJ29D5DHN – Ranger-4 Ultra Wideband Transceiver with MAC support》(datasheet)
UWB 相关博文:
《NCJ29D5B 使用 J-link 下载调试》
《NCJ29D5D 使用 Lauterbach 进行下载调试》
《NCJ29D5D 下载 package 失败的解决方法》
欢迎关注本文作者大大通特邀博主:汽车大牛,了解更多汽车相关应用知识!
登录大大通,查看完整内容,提问/评论,获取技术文档等更多资讯!
-
NXP
+关注
关注
60文章
1270浏览量
183560 -
UWB
+关注
关注
32文章
1089浏览量
61063 -
计时器
+关注
关注
1文章
420浏览量
32658 -
S32k144
+关注
关注
1文章
9浏览量
1886
发布评论请先 登录
相关推荐
评论