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文章
1278瀏覽量
184043 -
UWB
+關注
關注
32文章
1100瀏覽量
61148 -
計時器
+關注
關注
1文章
420瀏覽量
32689 -
S32k144
+關注
關注
1文章
9瀏覽量
1894
發布評論請先 登錄
相關推薦
評論