Foxes 方案 UWB 模块 NCJ29D5D 的配置与测距

关键字 :NXPUWBNCJ29D5D

        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 铅间距和可湿性侧面
  • 外部组件数量少
  • ARM®Cortex-M33 32 位处理器 2 MHz
  • ARM®AHB-Lite 总线矩阵和双主 NS-DMA 快速数据传输
  • 256kbyte 非易失性内存
  • 40 kByte RAM
  • 96 kByte ROM
  • ARM®TrustZone 技术和 S-DMA 安全
  • 高级加密标准 AES (Advanced Encryption Standard),具有 128 位密钥和 256 位密钥
  • 具有 256 位、384 位和 512 位密钥的椭圆曲线密码 (ECC)
  • 256 位的安全哈希算法 2 (SHA2-256)
  • 安全接口(启用 GlobalPlatform 协议)
  • 循环冗余校验 (CRC) 计算的协处理器
  • 真随机数生成 (TRNG)
  • SPI, UART 和 LIN 兼容接口
  • 简化了定制应用程序的开发的 API
  • 应用程序开发的几个计时器
  • 低功耗唤醒计时器
  • 看狗定时器
  • 支持高精度外部温度传感器,精确的晶体温度漂移补偿
  • 集成温度传感器用于晶体温度漂移补偿
  • 通用 ADC 10 位

 

1.2 应用

       这颗芯片支持以下应用:

  • 基于低频无钥匙进入系统 (PKE) 的中继攻击防御
  • 基于超宽带定位的免提智能接入
  • 安全测距在汽车系统中的应用 ( 远程停车控制 )
  • 更多的用于汽车中的舒适功能

二、NXP 上位机配置 UWB 并测距

 2.1 安装上位机软件

(1)在向 NXP 申请中的资料中找到如下安装文件并安装。

 

 

(2)安装完毕如下图,运行该上位机。

 

 

2.2 使用上位机配置 NCJ29D5D 并测距

(1)设置 “发起者” 和 “锚点”,设置之前首先我们需要知道我们手中的板子是烧录的什么程序,建议烧录完之后贴相应的标识。

     


(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)初始化一个 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 的通讯数据中,即红框标出的是测距数据。

 


按下右上侧的按钮,可以切换成源数据显示,红框是 16 进制的测距数据。

 

 

三、一般串口工具配置 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)新建并初始化一个测距会话(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


(5)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


(6)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


(7)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


(8)Anchor 开始测距

        20 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

        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


(9)开始测距之后,串口不停返回 UWB 测距会话的状态信息,其中 Anchor 返回信息中红框部分就是 16 进制的距离数据。

 [ Initiator ] 测距返回的信息                                 [Anchor] 测距返回的信息

     


四、总结

       本文介绍了使用 NXP 提供的上位机配置 UWB 芯片 NCJ29D5D,并使用两个模组一收一发进行测距,由于上位机程序需要特定的 NXP 官方 EVB 才能使用的限制,这里还介绍了使用一般串口工具进行配置和进行测距的方法。

       欢迎在博文下方留言评论,我们会及时回复您的问题。如有更多需求,欢迎联系大联大世平集团 ATU 部门:atu.sh@wpi-group.com


参考资料
[1]《an523019 - AN-SCA-1901 NCJ29D5 Tools (1.9)》
[2]《ds652611_1.1_NCJ29D5DHN – Ranger-4 Ultra Wideband Transceiver with MAC support》(datasheet)


 我是好景虚设,欢迎在大大通上关注我!

 


UWB 相关博文:

《NCJ29D5D 使用 Lauterbach 进行下载调试》
《NCJ29D5D 下载 package 失败的解决方法》

相关视频

Foxes 开发板 NCJ29D5D 测距功能演示

使用 Foxes 方案的两块 UWB 模块,结合上位机程序进行测距功能的演示。

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论