写在前面
深知新手在接触毫米波雷达板硬件时需要花费的沉没成本,因此在行将告别毫米波雷达之际,总结这两年以来在毫米波雷达上的一些经验和教训。
本文档用于为实现基于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+R
在CMD``窗口输入devmgmt.msc
打开设备管理器,正常情况下在端口列表下会出现4个AR-DEVPACK-EVM-012
和2个XDS110 CLASS
的端口内容,其中XDS110 CLASS APPLICATION /USER UART
的COM 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
;检查RS232
的COM
端口是否选择正确。 - 报错2:
MSS POWER UP
等相关问题;电源电流无法带动板子导致,建议重启板子和studio
重新烧录。此外,每次烧录成功后再次烧录都需要重启。除了电源也有可能是接触问题,检查DCA1000
和AWRXXXX
的JPEG
插排连线是否紧固;如果以上问题均排查,再检查一下XDS
和AR
固件版本。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