揚帆起航:毫米波雷達開發手冊之硬體設定

2023-05-05 18:00:53

寫在前面

​ 深知新手在接觸毫米波雷達板硬體時需要花費的沉沒成本,因此在行將告別毫米波雷達之際,總結這兩年以來在毫米波雷達上的一些經驗和教訓。

​ 本檔案用於為實現基於AWR1243BOOST等單板毫米波雷達開發提供參考指南與解決方案,主要包括硬體設定訊號模型訊號處理流程應用DEMO開發以及可深入研究方向思考等;為更好地匹配後續級聯雷達應用的學習路線,在本手冊中會盡可能同化單板雷達和級聯雷達中的相關表述。

​ 本指南作者資訊:Xuliang,聯絡方式:[email protected]

​ 希望後者在使用本指南時可以考慮參照作者在毫米波雷達旅途中的相關工作。
本章節為硬體設定章節,主要解讀TI毫米波雷達硬體設定流程典型BUG以及參考工具/LUA指令碼檔案

硬體設定

基本準備

​ 1、在使用實驗室這塊單板時不需要去動硬體的按鍵以及跳帽等。在正式使用前,檢查毫米波雷達射頻板和DCA1000板的兩根安卓標準UART線和1根乙太網通訊線是否正確連線到電腦,2根電源線需要保證5V3A的電源供電,切記電壓不可超過5V,否則會擊穿射頻板電容而不能正常工作。

​ 正常的接線方式如下所示,此處省略另一頭DCA1000上的電源接線。

​ 2、根據毫米波雷達開發板型別在官網下載對應版本的mmwave studio,需要正確選擇版本,否則會導致後續的韌體燒錄不適配,官網連結為:https://www.ti.com/tool/MMWAVE-STUDIO.

PS:在mmwave-studio安裝路徑下如C:\ti\mmwave_studio_02_01_01_00\docs的docs資料夾中通常會有官方提供的User Guider,使用者可以通過User Guider完成新板的電路連線、引數設定等。

​ 3、完成埠和驅動的具體設定;驗證設定成功的方法是:選擇WIN+RCMD``視窗輸入devmgmt.msc開啟裝置管理器,正常情況下在埠列表下會出現4個AR-DEVPACK-EVM-012和2個XDS110 CLASS的埠內容,其中XDS110 CLASS APPLICATION /USER UARTCOM x口是後續在mmwave studio RS232連結設定時需要選擇的。

​ 4、開啟mmwave studio 2.1.1.0,可以採取手動設定和指令碼設定。手動設定參開User Guider手冊。

​ 4.1 選擇CONNECTION欄目下的BOARD CONTROL介面中的SET,其次選擇RS232 OPERATIONS介面中的CONNECT,波特率建議選擇115200。如果出現問題,需要檢查一下連線和5V電源電流情況是否正確。

​ 4.2 在下方的BROWSE中選擇資料夾路徑如C:\ti\mmwave_studio_02_01_01_00\mmWaveStudio\Scripts中的DataCaptureDemo_1243.lua檔案,然後選擇RUN則可以開始指令碼設定。等待進度條載入完成可以看到SPI CONNECTIVITY處會顯示綠色CONNECTED,同時SENSOR CONFIG欄目下的SETUP DCA1000能夠正常顯示FPGA的版本。

​ 4.3 基本設定已經完成,可以通過SENSOR CONFIG欄目下的DCA1000 TRIGGER 來進行資料的採集,每次採集資料都需要按DCA1000 TRIGGER來進行,否則容易出現ERROR。如果需要在介面檢視資料採集和視覺化情況,可以選擇同一行的POSTPROC進行檢視。(通常資料採集回來的bin檔案放置在POSTPROC資料夾下)

疑難BUG

  • 報錯1:Error: Connection failed: Calling_ConnectTarget returned 3;檢查RS232COM埠是否選擇正確。
  • 報錯2:MSS POWER UP等相關問題;電源電流無法帶動板子導致,建議重啟板子和studio重新燒錄。此外,每次燒錄成功後再次燒錄都需要重啟。除了電源也有可能是接觸問題,檢查DCA1000AWRXXXXJPEG插排連線是否緊固;如果以上問題均排查,再檢查一下XDSAR韌體版本。XDS韌體下載可以參考:http://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_xds_software_package_download.html
  • 報錯3:DCA1000不能獲取FPGA版本資訊;檢查防火牆是否關閉以及是否設定千兆網網路卡。
  • 其他報錯可以檢視DCA1000 DEBUG 手冊

工具解讀

​ 此處主要解讀LUA檔案中相關語句及其含義,並介紹一款引數估計和設定工具。

TI官方工具解釋

​ 首先介紹一下mmWave Sensing Estimator這款TI官方計算器,可根據不同的應用場景來進行毫米波雷達引數的設定。

指令碼檔案解釋

​ 下面主要通過註釋的方式結合具體的程式碼塊來分析含義,而不再額外地贅述。

--[[
    下面三行程式碼在TI提供的lua檔案中是沒有出現的,但是確實是有意義的;我們知道在使用TI的這套雷達開發板時,繞不開mmwave studio,每次都要在雷達上電以後啟動mmwave studio點選set和connect完成板子的初始化以後才能再點選RUN按鍵進行LUA檔案的燒錄,以完成引數的設定。

    這樣處理沒什麼問題,就是看起來覺得操作繁瑣。能不能夠整合這兩步,直接燒錄lua檔案?意思就是說,我開啟mmwave studio以後,直接燒錄lua檔案完成一鍵設定可以嗎?當然是可以的,但是這裡先不講如何實現的這個過程,下面主要還是先分析程式碼塊的意義。

    說到現在了,應該能明白下面這三條語句就是用來實現「啟動mmwave studio點選set和connect」這兩個步驟。
]]

--[[
    ar1.FullReset()  
    ar1.SOPControl(2)
    --ar1.Connect(4,115200,1000)
]]

info = debug.getinfo(1,'S');
-- 獲取當前檔案的根目錄 通常為C:\ti\mmwave_studio_02_01_01_00\mmWaveStudio\Scripts\DataCaptureDemo_1243.lua
file_path = (info.source);
-- 返回時通常有@符號,在下面需要分別替換為空格
file_path = string.gsub(file_path, "@","");
file_path = string.gsub(file_path, "DataCaptureDemo_1243.lua",""); 
-- 如果你的lua檔名稱修改了,你對應也需要在這裡修改lua檔案的名稱,否則會正則匹配失敗,無法讀取到資訊。

fw_path   = file_path.."..\\..\\rf_eval_firmware"
-- fw_path為MSS和BSS file檔案儲存路徑,..表示返回到上一級目錄,2個..表示範圍到前2級目錄

--ADC_Data file path
data_path     = file_path.."..\\PostProc"
adc_data_path = "C:\\ti\\mmwave_studio_02_01_01_00\\mmWaveStudio\\PostProc\\adc_data.bin"
--[[
    修改data_path 路徑為 "H:\\RadarProcessing\\RawData"
    修改adc_data_path路徑為"H:\\RadarProcessing\\RawData\\adc_data.bin"
    這裡不呼叫PostPROC會在資料夾下出現adc_data_raw.bin檔案,呼叫POSTPROC後adc_data_raw.bin檔案消失,出現adc_data.bin檔案.兩者在2.1.1.0版本studio是相同的.
]]	

ar1.CaptureCardConfig_StartRecord("H:\\RadarProcessing\\RawData\\adc_data_1.bin", 1)
RSTD.Sleep(1000)
RSTD.Sleep(5000) -- 延時足夠長可以開始下一次資料的採集
ar1.CaptureCardConfig_StartRecord("H:\\RadarProcessing\\RawData\\adc_data_2.bin", 1)
RSTD.Sleep(1000)
RSTD.Sleep(5000) -- 延時足夠長可以開始下一次資料的採集

-- 下面程式碼將在資料採集完成後處理RAW ADC DATA
ar1.StartMatlabPostProc(adc_data_path)
RSTD.Sleep(10000)
WriteToLog("Please wait for a few seconds for matlab post processing .....!!!! \n", "green")

-- 這裡只擷取了和本毫米波雷達AWR1243相關的部分來分析
-- 下面是和每個chirp相關引數的設定
elseif((partId == 1243) or (partId == 1443)) then
    if(ar1.ProfileConfig(0, 77, 100, 6, 60, 0, 0, 0, 0, 0, 0, 60.012, 0, 1024, 20000, 0, 0, 30) == 0) then
        WriteToLog("ProfileConfig Success\n", "green")
    else
        WriteToLog("ProfileConfig failure\n", "red")
    end

-- ProfileConfig中引數分別對應Profile Id,Start Freq,Idle Time,ADC Start Time,Ramp End Time

-- 緊隨其後的6個0 分別對應TX0 TX1 TX2 的Pwr Backoff和相移
-- 60.012對應調頻斜率,0為TX START TIME, 1024為ADC取樣點, 20000為ADC取樣率, 30為接收天線增益 

-- 下述程式碼塊用於設定天線發射順序 分別為TX0 TX2 TX1,TX2為垂直天線,TX0和TX1為水平天線
-- 發射天線TX0按第1次序發射 1 0 0
if (ar1.ChirpConfig(0, 0, 0, 0, 0, 0, 0, 1, 0, 0) == 0) then
    WriteToLog("ChirpConfig Success\n", "green")
else
    WriteToLog("ChirpConfig failure\n", "red")
end
-- 發射天線TX2按第2次序發射 0 1 0
if (ar1.ChirpConfig(2, 2, 0, 0, 0, 0, 0, 0, 1, 0) == 0) then
    WriteToLog("ChirpConfig Success\n", "green")
else
    WriteToLog("ChirpConfig failure\n", "red")
end
-- 發射天線TX1按第3次序發射 0 0 1
if (ar1.ChirpConfig(1, 1, 0, 0, 0, 0, 0, 0, 0, 1) == 0) then
    WriteToLog("ChirpConfig Success\n", "green")
else
    WriteToLog("ChirpConfig failure\n", "red")
end

-- 下面是和chirp組、幀資訊相關的設定
if (ar1.FrameConfig(0, 2, 200, 64, 40, 0, 0, 1) == 0) then
    WriteToLog("FrameConfig Success\n", "green")
else
    WriteToLog("FrameConfig failure\n", "red")
end

--[[ 
        0 表示 START CHIPR TX,2 表示 END CHIRP TX 
        200 表示幀數(No of Frames) 64表示每幀發幾個Chirp
        幀週期PERIODICITY 40ms 修改幀數和chirp對應要修改週期
        延遲時間TRIGGER DDELAY 0  DUMMY CHIRPS 0 
]]

其他資訊

善於利用TI官網尋找硬體設定解決的答案: https://e2echina.ti.com