S32K-UWB 車用解鎖 Demo教學 ( 基於 S32K1 )
1. 概述
1.1 功能描述
本範例將使用 S32DS for ARM 平台操作,燒錄 UWB_S32K144 相關程式,以及程式內容說明,UWB 架構為 S32K144 使用 SPI 與 NCJ29D5 通訊,獲取位置相關資訊,使用 UART 與 PC 端 GUI 連線,或者使用 CAN-Bus ,與 BCM 之間通訊,文件也會說明 GUI 相關操作以及燒錄平台與方法。
1.2 硬體開發工具
S32K144-EVB 評估板
PEmicro Multilink Universal 燒錄器
1.3 軟體開發工具
S32 Design Studio for ARM
1.4 參考相關程式碼
S32K144_UWB
2. SDK 說明與使用
2.1 概述
S32 SDK PA 可以在 S32 Design Studio IDE 開發環境中使用 Processor Expert 工具配置使用者需要的設置,並自動生成設置檔案,提供快速便捷的 Device 與 IP 設置方式。
2.1.1 SDK 版本說明
SDK 的版本分為以下三種:
EAR : Early Assess Release,早期評估版,是 SDK 最先發布的版本,提供基本的SDK 功能,可以做為早期軟體評估使用。
BETA : Beta 版是修復 EAR 版若干 Bug 後發布的 SDK 版本,相較於 EAR 版本,功能更加完善。
RTM : Ready To Manufacture,最終量產版本,提供最完善的 API 接口及外設 IP 配置選項,修復
2.1.2 S32 Design Studio IDE 的使用方式與安裝方式
關於 S32 Design Studio for ARM 的使用方式,請參考文件 “ S32 Design Studio for ARM Architecture 平台安裝教學 ”。
3. UWB 應用
3.1 UWB 原理
UWB 為 UltraWideBand 縮寫,使用無載波通訊技術,利用脈衝傳送數據,距離大約為 10 m 之內,傳送速率可高達 480Mbps ,UWB 使用無載波特性,也大量減少功耗,達到低功耗的目的。
3.2 UWB 車用解鎖技術
UWB demo 所需 4 個 device 與 一個 keyfob device ,利用這 5 個 device 之間的 UWB 通訊,定位出 keyfob 位於車子周圍的位址,利用此精準位置可以用來判斷是否開啟車門,達到解鎖車門的功能
4. 車用解鎖硬體架設
車用解鎖技術需要使用 BLE + UWB + NFC+SBC+SE 來達成技術上需求
目前 NXP 硬體如下
BLE : KW38
UWB : NCJ29D5B NCJ29D5D
NFC : NFC3340
SBC : FSXX
MCU : S32K
4.1 Controller
BLE + UWB + SBC + SE + MCU
此為車內主要控制程式, MCU 需要運行10 m 內的 UWB 定位演算法及之間所有通訊,而 BLE 則用來接收超過 10 m 的距離資訊,使用 SBC 以達到車用 ASIL 的安全需求,SE 則提供資料與通訊加解密服務,確保鑰匙的資料安全。
4.2 Smart Keyfob
BLE + UWB + NFC + SE
使用來解鎖車門與引擎的鑰匙,使用 BLE 來對車子進行 10 m 以外距離偵測,UWB 定位出與車子準確位置,NFC 來解鎖,SE 負責與車子之間鑰匙資訊不會被人竊取。
4.3 UWB Anchor
UWB + SBC + MCU
車內定位錨點,需要 3 個以上 UWB 錨點,來進行定位,獲取鑰匙的精準位置。
4.4 BLE Anchor
BLE + UWB + SBC + MCU
車內 BLE 錨點,也帶有 UWB ,可以進行 10 m以外測距與 10 m 以內定位。
4.5 exterior NFC
NFC + MCU
外部 NFC ECU ,使用 NFC 來進行車門的解鎖
4.6 interior NFC
NFC + SE + MCU
內部 NFC ECU ,使用 NFC 來進行引擎的解鎖
5. 軟體版本介紹
這裡說明軟體版本之間的關聯,針對 NCJ29D5 與 S32K
開啟 NCJ29D5B 的 GUI ,如下圖
如圖所示,顯示欲與此 GUI 連線所需要燒錄的軟體版本
這裡說明一下,NCJ29D5 需要燒錄多個檔案才能正確運行,每個燒錄檔會針對不同 memory 進行燒錄。
S32K 則是燒錄 CADS v1.0 版本
開啟 NCJ29D5D 的 GUI ,如下圖
如圖所示,顯示欲與此 GUI 連線所需要燒錄的軟體版本
6. 平台操作與燒錄
平台操作與燒錄,這裡針對 UWB ( NCJ29D5 ) & MCU ( S32K144 ) 說明
S32K144 平台 : S32 Design Studio for ARM Version 2.2
平台安裝請參考 S32DS for ARM 操作文件
安裝完成後 -> 開啟 S32DS for ARM 2.2 -> 點選 File -> Import
點選 Existing Projects into Workspace -> Next
點選 Browse 選取欲 import 的檔案資料夾 -> 勾選資料夾內的檔案
這裡需要注意的事,請點選 Search for nested projects
主程式檔案為 phscaS32App.c
點選左上 build 程式
點選下列所示圖示,進行 debug configurations ,將燒錄器設置為 J-LINK
如果 GDB SEGGER J-LINK Debugging 沒有此專案名稱,請點擊右鍵,按下 New
點選 New 後,project 自動加入,確認燒錄檔 elf 正確,選擇燒錄 flash or ARM
在 debugger 下 Device name 填入 S32K144
即可 debug 燒錄
NCJ29D5B & NCJ29D5D 平台 : Keil
點選相關路徑,點開即可打開 Keil project
Build 完後,即可產生相對應燒錄檔,之後交由 Lauterbanch 燒錄
NCJ29D5B & NCJ29D5D 為 M-33 的核心,lauterbanch 請使用 Crotex-M cable 燒錄
另外需要注意 NCJ29D5D 版本中有些需要分別不同燒錄 Responder 與 initiator 的燒錄檔
NCJ29D5B 版本則可以藉由 GUI 自由切換
7. GUI 操作說明
將 device 連接 -> 請選擇相對應之 COM ( 這裡為 COM16 ) -> 點選連線
點選 SCAN -> 自動根據燒錄程式配置成 Responder & Initiator
這裡可以控制燈亮燈暗,方便使用者判斷 device
這裡需要配置相關 Responder 位置訊息
要讓 device 下相對應的 UCI command 才可以 Start Ranging ,這裡不詳細說明 command 的資料,如要詳細 UCI command 資料請洽 NXP 原廠或 WPI
Initiator command
# Reset UWBS
# disable low power mode
# Init Session
# Configure Session
# Start Ranging
Responder command
# Set Core Config: enable extended logging (optional)
# Init Session
# Configure Session for anchor1
# Start Ranging
其餘 UCI command 如右下方
這裡說明一下取得當前軟體版本的 command ,如下圖所示
點選與傳送之 device -> Send
即可獲得當前版本資料
當開始 Start Ranging 後,點選 Localisation 即可進行定位顯示
點選 Distance Plotting 即可進行測距顯示
評論