网站建设网页设计师,北京建公司网站价格,天猫商务网站建设目的,设计师经常看的appTI 毫米波雷达开发之mmWave Studio 和 Visuiallizer 的异同点 引入整个雷达系统研究的目标分析影响这个目标的因素硬件影响因素 —— 雷达系统的硬件结构#xff08;主要是雷达收发机#xff09;AWR1642芯片硬件系统组成MSS 和 DSS 概述MSS 和 DSS 分工BSS的分工AWR1642 组成… TI 毫米波雷达开发之mmWave Studio 和 Visuiallizer 的异同点 引入整个雷达系统研究的目标分析影响这个目标的因素硬件影响因素 —— 雷达系统的硬件结构主要是雷达收发机AWR1642芯片硬件系统组成MSS 和 DSS 概述MSS 和 DSS 分工BSS的分工AWR1642 组成及分工总结 雷达收发机对雷达检测效果的影响影响雷达测距效果的因素测速及其他指标的影响三种调参方式的对比 软件影响因素—— 信号处理的流程Demo存在的问题软件原因分析软件流程5大步骤matlab 代码演示处理阶段分析原因分析2DFFT的重要性mmWave studio 不定期更新 引入
接触毫米波以来陆陆续续有人问 mmWave Studio 和 Visuializer 这两个软件的异同点本文将从原理性和结构性的角度去分析这两个软件的功能和作用其中会以TI毫米波雷达系统为例穿插雷达系统的基本目标、影响雷达系统检测性能的因素、雷达系统的结构和信号处理流程等内容。阅读本文不仅能够认识mmWave Studio 和 Visuializer 这两个软件的作用还会建立一点关于雷达系统结构和雷达信号处理基本知识的认知。
整个雷达系统研究的目标
所有雷达系统的基本原理都是向外辐射电磁波一部分电磁波碰到障碍物返回然后这部分电磁波被雷达接收机接收通过对回波的分析提取信息关注的对象称为目标我们关心的是目标的参数再TI毫米波雷达领域常见的是距离、速度、角度。当然目标的识别表面积、形态之类的 人 车 自行车 静目标、动目标等等。明确了雷达研究的主要内容之后我们来看看哪些因素会影响到雷达的检测性能。
分析影响这个目标的因素
整个影响因素可以分为两大方面软件方面 和 硬件方面。接下来我们把这两个方面是如何影响雷达系统工作能力的掰开揉碎了看一看。
硬件影响因素 —— 雷达系统的硬件结构主要是雷达收发机
谈到硬件就不得不提系统的硬件结构这个也是我们做雷达相关课题非常关心的一个内容。本文以TI毫米波雷达芯片AWR1642为例分析该系统的硬件结构及各自分工。其他的芯片在结构方面于AWR1642基本类似可参考具体的芯片数据手册。附AWR1642芯片数据手册下载地址。
AWR1642芯片硬件系统组成
首先看下面的第一张图一颗AWR1642 芯片由三部分组成——Radar Front End 、 Intergrated MCU、 Intergrated DSP 通常情况下被称为 BSS \ MSS \ DSS三个子系统。图中 ARM Cortex-R4F 和 TI C674x 分别是MCU和DSP内核的型号因此这颗芯片也叫双核SOC。
MSS 和 DSS 概述
雷达前端在后面详细展开讨论先关注MSS和DSS两个子系统。MSS和DSS其实并不神秘MSS就是一颗MCU俗称单片机。所以大可认为这里有一个STM32只不过STM32的内核是ARM Cortex-M3/M4的而AWR1642 MSS里面的MCU内核是ARM Cortex-R4F。DSS里面认为是一颗DSP芯片DSP是Digital Signal Processor数字信号处理器的意思也是一颗类似单片机的计算芯片曾经的市场上MCU、DSP、FPGA三分天下当时的MCU处理能力还没上来FPGA成本又太高DSP得益于其独特的哈佛结构和多指令并行处理技术在性能上大大优于MCU的同时又比FPGA成本低了很多所以红极一时但是随着技术的发展现在MCU的处理越来越强很多高性能MCU里面集成了DSP核用于数值计算。DSP的并行处理在FPGA面前又是个弟弟Zynq这种芯片成本也大幅下降。所以DSP目前处于相对家道中落的阶段在大众的视野中出现的频率没有那么高但并不代表DSP已经失去了用武之地在一些音视频处理、通信等需要复杂计算的应用上面DSP还是在发光发热只不过可能单芯片DSP不那么常见了。TI是全球最早生产销售的DSP芯片的老牌半导体厂家所以他家的芯片里面用DSP也不足为奇有多年的技术积累做铺垫。当然我个人一直觉得TI有想再让DSP重归人们视野的冲动这个就属于个人臆想了。
MSS 和 DSS 分工
接下来看看为什么要再AWR1642中选择1颗MCU 1颗 DSP这种配置的合理性MSS和DSS各自的作用是什么。MSS和DSS中MSS偏重控制DSS偏重计算。这里的控制是指0.通信CAN\SPI\I2C\串口、使能、外围器件的控制等功能处理Flash读写数据、LED灯状态、串口数据收发等等任务都是常规且单片机擅长的事情这些事情给MSS做。雷达信号处理中会有1DFFT、2DFFT\3DFFT和众多算法DSP最擅长FFT变换偏激一点可以说DSP就是为FFT而生的这个活交给MCU去干花费的时间远远大于DSP会导致系统整体的相应时间加长即影响实时性这在部分雷达应用中是大忌举个例子用以检测前方行人的雷达在车速很高的即将撞上行人的时候还在计算不能及时预警那简直是笑话。所以他们两兄弟DSS支撑完成雷达信号的快速计算和处理算完的结果丢给MSSMSS把该存的存、改发的发分工明确效率最大。DSS和MSS合起来又叫Process System。
BSS的分工
到这里MSS和DSS两个系统还成不了气候接下来看看BSSRadar Front End。这个子系统才是让这颗芯片称为雷达芯片的原因从雷达的基本原理可知雷达就是完成发射电磁波然后接收电磁波对接收到的电磁波信号进行处理的设备。所以完整的雷达系统一定要有一套收发系统即雷达收发机雷达收发机可以是分体的也可以是一体的AWR1642采用一体式雷达收发机雷达收发机集成到了芯片内部。所以BSS的任务就是产生和发射电磁波信号然后接收电磁波信号并进行模拟部分的处理。
AWR1642 组成及分工总结
所以一个单片机 、一个DSP、一个雷达收发机组成了一个雷达系统这三个系统本来是分立且独立的系统只不过现在被集成在一颗芯片里面了但是本质上的组成还是没有变化。所以总体的分工是BSS收发电磁波进行模拟部分的处理后数据经过ADC转换成数字信号然后丢给DSSDSS处理之后结果丢给MSSMSS把结果改存的存改发送的发送。三者各自独立又相互协调通过一些特殊的机制保证协同工作组成了一个完整的雷达系统。 雷达检测效果影响因素分析2P-TI毫米波雷达系统组成和分工 雷达收发机对雷达检测效果的影响
接下来详细看看影响雷达系统工作的关键硬件结构——雷达收发机。雷达收发机本身就是个涉及射频原理的很复杂的领域个人认为雷达的精髓就这个系统里面篇幅受限不深入探讨这里只做基本的介绍雷达收发机分雷达发射机和雷达接收机各自成系统来看下方一个细化的系统结构图这里面由很多部件构成包括高精度时钟、功率放大、低噪放、混频器、滤波器等等需要知道的是这些部件并非出场设定一成不变可以配置这些部件的工作过程举个例子可以配置滤波器的截止频率、通带带宽、发射天线、接收天线的开关、信号的增益、ADC位数、采样率、采样方式等等。那为什么要配置这些呢因为这些是影响雷达检测性能的关键因素之一。 影响雷达测距效果的因素
雷达可以发射的电磁波信号的种类不止有一种有定频连续波、多频连续波、线性调频波 、脉冲波等。这部分关于雷达体制的内容也不过多赘述TI的雷达芯片AWR1642发射的是线性调频波LFMCW线性调频波又分锯齿波和三角波AWR1642是锯齿波雷达。锯齿波就是在一定的扫频周期内信号的频率随着时间线性增加的波形。这个波形的时间-幅度图像如下图所示单个线性调频波又叫一个ChirpChirp有扫频初始频率、扫频时间、扫频带宽、扫频斜率等指标。 频率-时间图像如下所示 接下来分析一个雷达能够检测的最基本的物理量——距离。雷达测距性能通常表现在两个指标上——测距范围、测距精度。线性调频波的最大测距范围由下面的公式确定其中IFmax与ADC采样频率有关C是 光速固定值S是线性调频波的扫频斜率。 测距精度由光速和B决定B是线性调频波的带宽。 以上两个公式告诉我们一个道理——可以通过调整线性调频波的波形去调整雷达的最大测距范围和测距精度。理想的状态是测距范围大同时测距精度高但现实中肯定是要对二者做协调既保证精度又保证测距范围。所以针对不同的应用自然要根据实际的测距范围和测距精度去设计一组合适的线性调频波参数来满足项目或课题的要求也就是设计或者调整Chirp的参数。
测速及其他指标的影响
以上我们举例说明了测距的两个关键因素那测速也有指标最大不模糊速度和最大测速范围。最大测速范围由下面的公式决定 速度分辨率由下面的公式决定 这里引入了两个新的变量Chirp 的时间和Chirp 的个数。所以新指标的引入需要额外考虑影响Chirp波形的新参数。值得一提的是Chirp的参数之间也是互相限制的不可能让人随心所欲的调大调小所以需要做多个因素下的协调。
另外一些需要关注的与Chirp无关的参数如ADC采样时间、ADC采样率、不同的目标因为材料反射特性等因素需要考虑滤波器通带的频率范围、有些目标反射特性不好就要调整发射机的增益但是增益增加会导致功率增加或者干扰的引入…需要考虑众多因素。
那雷达的检测效果是这些参数综合影响的结果不同的应用对指标的要求不一样最终需要调整的参数就不一样通过调整和协调得到一组最合适的参数就是我们的目标当然这些参数有范围限制有的参数相互之间有函数关系此消彼长有的参数也不是越大越好需要调整的参数也并不只有以上的几个需要调整的参数其实就是mmWave studio 里面所有的页签下能改的几乎都是可调的参数。
mmWave Studio中可调参数众多而且很多参数不知道会怎样影响结果也就不知道怎么调整。好消息是并不是参数调不好其他的工作就不能做。除过一些极个别的情况一般情况下选用TI官方的默认参数就可以支撑做后续的工作了调参是个优化的过程。就像很多算法一样参数调不好只是效果不好但并不会影响算法的基本功能的表达。但是想得到一个好的检测效果一组合适的参数必定是绕不开的。
三种调参方式的对比
以上说明的过程我们统称雷达射频前端的调参过程知道了参数调整很重要那么实际情况需要调参的时候我们会怎么操作 根据是否有DCA1000分为两种方案 使用CCS自己写程序代码或者使用官方例程找到里面关于射频前端配置的代码段进行修改。即通过DSP内核或者ARM内核进行控制。从下面的图可以知道BSS里面其实也有一个Cortex-R4F的MCU处理来自MSS的配置命令然后配置雷达射频前端。且不说你要搞明白上电到配置到结果输出整套流程也不说新建工程搭配置环境要花费的时间和精力程序代码花费时间和精力假设你的程序没问题修改参数编译、烧录看现象编译连接下载的时间大家知道低效率显而易见。 修改Demo的配置文件。 很多Demo都可以通过cfg文件进行命令的配置。比如ODS_AOP这种Demo通过配合mmwave SDK User‘s Guide 就可以直接修改想要的参数。 这种方式效率稍高。但是要看运气有的Demo可以通过配置调整参数有的不行。有的只允许调整一部分参数有的Demo应用方向和你的课题相近有的却风马牛不相及有的参数好配、应用也差不多但是适配的板卡和芯片信号不一样而且最终调整的结果怎么看——只能通过Vrisualizer看但由于耦合了很多的其他因素的影响其实从最终的结果上很难看到雷达射频前端参数修改带来的效果上得到增益想得到一组合适的参数就更难了原因这里我们先埋个雷软件部分说完就明白了。 使用DCA1000DCA1000配合mmWave Studio 的使用演示在下面的视频有介绍 AWR1642DCA1000数据捕获参数设置步骤演示使用经验技巧
视频中为什么要点来点去的原因就是直接配置BSS的过程这个过程相比上面的方式是不是简单和高效多了只需要在输入框直接输入参数或者选择参数就好了直接配置完了不会限制哪个能配哪个不能配配置完的效果可以快速且直接地在mmWave Studio 上看到甚至你可以只修改某一个变量看看这个变量修改之后对结果有什么影响怎么看我们也在软件部分提到。
以上对比可以得出第一个硬件方面的结论 参数配置过程中DCA1000要方便很多使用配置文件或者修改程序的方式低效且无用。另外DemoVisualizer是针对某一个应用或者某一个板卡特殊设计的不具通用性针对不同的Demo的Visualizer也不通用这样就必然会被束手束脚带来各种各样适配的问题。但是mmWave Sudio 和 DCA1000 不挑板卡不挑应用领域只是对雷达射频前端进行配置不会其他因素的影响。后面在软件影响因素分析的部分我们还会得出同样的结论。
软件影响因素—— 信号处理的流程
Demo存在的问题
我们来看TI官方关于汽车雷达的一个例程这个例程演示了雷达前方车辆目标检测结果。这个演示中右侧是是真实场景左侧就是Visualizer软件运行的结果TI对实际场景中的目标和Visualizer中的目标进行了重点标注。这个标注会让我们把注意力锁定在红色圈中感觉就是检测的效果还不错。但同样应该关注标注之外的内容目标检测的重点不仅仅是凸显目标同时要抑制非目标放眼整张图来看图中多处出现虚假目标、“鬼影“的问题。 当然这也是被称为演示的原因我们的目标肯定是尽量完整的检测出目标但实际情况确实这些检测出来的目标点是否是真实目标、是否存在虚警和漏检。检测到的目标距离速度信息能否反应真实目标的距离速度偏差有多少精度有多少。可以肯定的一点是绝大部分的项目不能直接搬运例程的结果就算是同样的应用场景你也会发现例程检测的结果也会有上述问题这个锅算法要背一大部分。接下来看看算法是怎么影响的
软件原因分析
软件流程5大步骤
之前的雷达系统硬件结构可以知道通过ADC雷达射频前端和处理子系统之间的通路打通了接收机的信号经过ADC送到ADC BufferDSP和MCU对ADC数据进行计算、处理最后输出目标的距离等信息我们来看看从ADC原始数据开始数据是怎么被处理一步步得到目标的信息的。雷达信号处理顶层时序在TI的文档中给出了明确的处理流程整个过程分为1DFFT - 2DFFT - CFAR - Post Processing - 角度和坐标计算 - 结果输出。输出的结果使用可视化的方式展现出来就是Vrisuallizer的形式。
matlab 代码演示
上面这样干巴巴的提这个流程没有直观的感受我用程序把整个处理过程用图的形式给大家展示一下下图分别是从2DFFT - CFAR - 聚类的过程不涉及角度计算和坐标确定最终有角标的是真实的目标的信息。将2DFFT结果中只有带角标的地方是真正的目标。其他的尖峰都是杂波或者噪声引起的。CFAR和聚类处理后图上面就剩3个目标点了真实的目标点包含在这个三个目标点中。
处理阶段分析
按照个人的理解人为地将整个处理过程分为三个阶段
信号变换阶段(包含1DFFT 、 2DFFT ) 通常情况下我们会把ADC数据称为原始数据这里我称2DFFT结果为原始数据2DFFT之后的图叫RDM(Range-Doppler Map)。ADC数据反映的是时域的信息我们关心的距离、速度这些内容在时域信息中看不到但是通过1DFFT、2DFFT这些信息可以在RDM中直观的看到。从信息的角度看1DFFT、2DFFT 这两个过程只是做了域变换即时域到频域的变换相当于换了一个角度看这些数据并没有信息的损失。提取关键点(目标点)阶段也叫数据的预处理阶段这个阶段统称目标检测。输入的数据是2DFFT结果输出是提取的目标点。里面最常用的算法就是CFAR算法当然并不仅仅包含CFAR算法理论上来讲只要是对2DFFT结果进行处理提取关键信息点的处理都可以归类到这个部分里面。上面峰值聚类也在这个阶段。可以明确的是这个阶段就有信息的损失了因为CFAR就是把原来2DFFT的点筛出来我们想要的几个点了。后处理阶段 这个阶段就是在目标点的基础上进行再处理包括角度、切片、分类、滤波等。输入是2阶段提取出的目标点是对目标点的再处理。所以这部分也会损失/修改信息。
原因分析
从上面的图目标提取的过程可以看到算法的本质工作提取有效信息剔除无效信息的过程。问题在于提取的不准剔除的也不全。所以搞雷达算法的人就集中去研究这一步分的内容选取什么样的算法更有效、算法有什么改进的地方、该选取什么参数…都是这里面要解决的问题。所以搞雷达算法的人关心的只有三个部分输入数据、算法逻辑、输出结果。输入数据和输出结果是必要的知道输入是什么期望的输出是什么才能看算法有没有起到作用。很类似函数的调试输入1期望输出是5实际输出是3那你就要深入函数内部看看哪里做错了。这个也是一样的原始数据中首先要包含有效信息即包含目标然后算法逻辑处理过后是否能够提取到有效目标目标和实际的差别有多大。这其中原始数据和处理逻辑两个变量可以解耦处理逻辑不受原始数据的约束但是最终结果有效一定是原始数据和处理逻辑都正确的情况。算法逻辑与具体的算法相关这里我们不做讨论。我们关心原始数据目的是保证原始数据的正确所以能看到原始数据是你评估算法有效性的必要条件。 DCA1000 和 mmWave Studio 能满足这个需求。DCA1000和mmWave Studio能够采集到原始的ADC数据并保存成bin文件解析bin文件就能拿到ADC数据经过1DFFT和2DFFT拿到RDM。RDM中直观的看到目标的信息。
2DFFT的重要性
到这一步就能理解能够看到原始2DFFT结果数据是非常重要的一个环节也就是说2DFFT结果-RDM图是个非常重要且承上启下结点。启下的意义在于知道原始数据可以评估算法的有效性对于后续的算法处理可以单纯在软件平台让你研究算法本身的逻辑。承上的意义在原始方案评估的时候可以快速评估。很多TI的雷达项目在启动阶段要快速评估雷达能不能用、好不好用。
如果通过去跑官方的例程在Vrisuallizer上面分析那几个目标点是否符合实际情况这种方式我们刚刚提到了这个时候已经是经过多道算法处理的结果了可能存在虚警、漂移、漏检等问题这里面漏检和漂移是比较头疼的问题虚警直接剔除目标点就行。所以有可能是算法和算法参数影响导致本来有的点被干掉了那你觉得没检测出来就PASS掉这个方案但其实本来RDM图上面有只是你看到的结果没有就像流言一样从刚开始的人口说出来转了几道手到你这可能得出的结果就是错的。
所以最好能听到最原始的版本方案评估的时候也要拿到最原始的版——直接看RDM图原始数据不损失信息大脑里面有最高级的算法一眼过去就知道有没有目标了哪些是目标哪些是干扰。评估环境的改变、目标的改变、参数的影响等等一切变化对结果的影响都可以通过看RDM图看出来可以控制变量的去观察实现了和算法的解耦有效的数据存下来至于怎么提取信息丢给算法去做算法能不能做好是另外一回事情。
mmWave studio
上面这些问题的解决用mmWave Studio DCA1000的bin文件捕获功能和 RDM观察窗口。环境搭好采集一次数据直接观察RDM图像怀疑是哪里影响了结果直接改哪边就行看看改了以后RDM图上有没有明显变化不停的重复这个过程这个过程你不关心具体的数据是多少只是看个大概的图像和变化的趋势所以mmWave Studio 可以看图但是不方便看数据所以叫DCA1000叫评估板评估的过程就是大概看看行不行有没有这样一个趋势不关心细节。想要细节DCA1000mmWave Studio的另外一个作用来了捕获原始的ADC数据通过bin文件输出 在matlab 或者 python工具中ADC的每个值你都能拿到哪里是最大值最大值是多少这个信噪比能不能满足要求都可以计算。采到有效数据了或者建立一个数据集去搞算法算法通了去搞软件写到DSP上。我刚刚展示的就是这样的一个过程。上面的小尾巴就回答完了。
所以返回来再来看看Visuallizer 是把结果通过串口输出然后接收数据显示的过程串口输出的数据已经是经过CFAR和聚类甚至其他算法处理的结果了他的本质就是一个GUI是最终的目标数据给你展示了一下而已。可以直接把它理解成一个特殊应用点的好看的串口调试助手其他方面一点作用没有。目前为止只有一个例程能够通过Vrisualizer看到RDM图像这里的是实数了并且经过对数运算了。理论上可以这么搞。将就数据的保存、同步、数据集的制作、串口的速率限制等等都是问题。
总结一下 要知道自己的主要工作是哪些面临的问题是什么、要用哪些工具和方法去解决问题可以分为 选型、 方案评估、软件开发、硬件开发、算法等。后面我们也会展开分析一下。各个阶段要做什么事情用什么工具需要具备哪些基础知识等等。
不定期更新