在TI的官方网站上可以看到,总体上,TI毫米波雷达的定位是用于工业和汽车领域的毫米波雷达传感器,分别为IWR系列和AWR系列,这样分的目的是针对不同的领域做了不同的设计和优化,比如通信方式由于汽车内部一般为CAN通信,所以AWR系列的雷达一般有CAN接口,二者的温度范围也不相同。
工业毫米波雷达传感器的内容,下面列举了德州仪器所有的工业毫米波IWRxx系列传感器,传感器分60GHz和77GHz,不同型号内部有不同的芯片组合对应不同的算力,也对应不同的外设,这部分内容在前期器件选型的时候可以用到。
工业毫米波雷达的应用场景,这里面有TI的工程师面向典型的应用场景总结的原理资料、程序代码和参考案例提供。
工业毫米波雷达的应用场景有
上诉场景如果有做的方向是和TI提供的方向相似的地方,那么建议多看看里面官方提供的资料,里面提供了比较丰富的内容,说不定会有帮助。
下面列举了德州仪器所有的汽车毫米波AWRxx系列传感器,传感器同样分60GHz和77GHz,不同型号内部有不同的芯片组合对应不同的算力,也对应不同的外设,同样在器件选型是可以作为参考。
TI汽车毫米波雷达传感器主要应用在汽车辅助驾驶领域。常见的应用包括: 盲区检测、辅助制动、辅助变道、车内乘员检测、车内人员生命体征检测、手势识别、自动泊车等领域,车内人员生命体征检测这样的应用和工业雷达人员生命体征检测没有区别,因此汽车和工业毫米波雷达是认为划分的,并非互斥,他们之间有一定的交集。
这款雷达EVM板是偶然在TI官方网站上发现的,基于AWR2243雷达芯片做的级联款。使用这款级联雷达可以做高分辨率角度检测。
用于做角度超分辨的级联雷达链接
级联雷达EVM板用户手册
TI毫米波雷达芯片、板卡及应用场景分析
TI所有的软件安装路径选择默认路径!
雷达工具箱,根据第1节提到的分类结果,毫米波雷达芯片分为工业毫米波雷达传感器和汽车毫米波雷达传感器,因此雷达工具箱也分为Automotive Toolbox(汽车雷达工具箱) 和 Industrial Toolbox 两个工具箱,对应TI不同定位的雷达,但很多时候是通用的。现在统一叫Radar Toolbox,把两个工具箱的内容进行了整合,但是原来的内容还在,只会多不会少,只是放到了不同的文件夹下面。
ToolBox是TI针对雷达不同的应用场景推出的资料合集,内部提供了针对不同应用的例程。我们在第一节提到的几乎所有的应用场景都可以在ToolBox中找到源代码。我这里用的旧版的Toolbox,举个例子说明Toolbox的功能及使用方法。
一般情况下,芯片厂家在做出一款全新的芯片后都会提供厂家写好的例程。因为芯片比较小众,并没有太多的资料,提供例程是一种快速对芯片做二次开发的方法,通过官方的例程不仅能够实现一部分代码的复用,而且通过读代码能够对芯片的驱动和工作流程有更好的把握。
这里我使用的是(mmwave_industrial_toolbox_4_12_0)版本,在其Labs文件夹下面能够看到针对不同应用场景的文件夹,这些文件夹很大程度上和上述工业毫米波雷达传感器典型应用相互对应,不同的文件夹下面对应不同的例程。
其中最常见的是Out of Box这个例程为例,下面共有3个子文件夹,分别是说明文件、预编译二进制文件、源代码。
TI 提供的资料首先要看docs文件下的内容。
我们进入docs 文件夹打开 Out_Of_Box_Demo_User_Guide.html文件,可以看到这个例程的用户手册,只要按照用户手册的内容一步步进行操作,就能够正常驱动雷达芯片正常工作,当然也要满足用户手册中的各种限制条件。Out of Box 这个Demo的意义本身就是开箱即用的目的,使用它能对整个雷达基本工作流程有直观的认识,同时使用Out of Box Demo 能够快速验证板卡工作状态。相当于TI 毫米波雷达的 “Hello World”!
需要指出的是不同的Demo在局部会有区别,但是整体上相差不大。
CSDN下载链接:
TI 毫米波雷达 Automotive Toolbox 下载链接
TI 毫米波雷达 Industrail Toolbox 下载链接
TI 毫米波雷达软件安装之ToolBox 及 SDK依赖安装(上)
TI 毫米波雷达软件安装之ToolBox 及 SDK依赖安装(下)
不同版本的Toolbox会有较大的区别,可能出现不兼容情况,下载安装请慎重。
Visualizer 是查看上述例程处理结果的GUI软件。
在2.1节提到,TI为用户提供了面向多种典型应用场景的Radar ToolBox以方便用户快速构建代码和完成开发,对于Radar ToolBox下面的所有例程而言都需要有各自的输出,这些Demo大多使用串口以16进制的方式将最终的结果输出。如果没有配套的GUI软件,用户拿到的数据就是这样的。
显然,需要有个程序帮用户完成这些数据解析工作,TI就提供了Visualizer软件,让用户能够对输出的数据有直观的认识。
这样做的缺点也是显而易见的,如必须使用配套的软件、只能展示固定的内容、如果修改了数据包就不能完成数据解析等等。
一般情况下,用户需要在TI 提供的软件的基础上进行修改让其更好的适配自身开发的内容,但依旧是站在TI这个巨人的肩膀上进行的下一步开发。
需要说明的是,由于不同的例程分属不同的应用场景,因此GUI的功能和需要展示的内容和数据也不尽相同,即每个不同的例程都有其单独对应的Visualizer 软件,在雷达开发板上运行不同的例程的时候,需要打开对应的GUI软件。
以2.1节提到的Out of Box Demo为例,对应的GUI软件的名称为mmWave Demo Visualizer。
而如果是运行呼吸心跳检测的Demo(Vital_Signs)时,就需要打开呼吸心跳检测的GUI软件,如下图
如果是运行交通检测的Demo(Traffic_Monitoring),那就需要运行下图所示的GUI软件。
所有的GUI软件都会在对应例程的用户手册中会提供下载方式和使用说明。
有的GUI软件需要下载,有的则是在ToolBox中自带。
可以通过串口监控助手捕获上下行数据包。
注意版本问题!需要和SDK版本匹配。
捕获雷达原始ADC数据,配置雷达发射机。
上图是mmWave Studio初始页面,其主要功能是捕获雷达原始ADC数据,这里一个很自然的问题是为什么要进行ADC原始数据捕获?
这里插入毫米波雷达的基本信号处理过程。
如上图,一般要经过雷达接收机接收信号—ADC—1DFFT(加窗)—2DFFT—cfar—3DFFT----聚类----跟踪-----输出几个步骤。
其实捕获原始ADC数据没有多大的意义,真正有意义的是ADC数据在经过2D-FFT之后能够得到原始RDM图像,通过对雷达原始RDM(RDM,Range-Doppler Map,距离-多普勒图像)进行分析,找到真正关心的内容。原始的RDM图像是雷达视场最原始的反映,目标/杂波/噪声在RDM图像上都能清晰观察出来。这对我们进行方案的可行性分析是至关重要的,如果在很多张RDM图像中都找不到目标区域,那就需要进行反思和修正。
举个例子。下图是某次数据捕获的RDM图像,图中方形框就是关心的目标。
使用Matlab对原始ADC数据经过上述流程进行分析,经过CFAR、聚类等算法的处理,最终的RDM仅剩少量的离散目标点云(黄色),得到最终的结果——目标的距离和速度。
因此可以确定的是,通过mmWave Studio对雷达原始ADC数据捕获加上数据结果分析,能够在原理上验证数据处理过程和算法的可行性,同时通过分析清晰知道每一步算法处理的结果和其造成的影响,对算法性能评估等有着重要的作用。
如果不进行上述原始ADC数据的捕获和分析,所有步骤和算法都在雷达DSP核中运行,我们只能得到最终计算的结果——目标的基本距离和速度信息,没办法看到各个算法处理前后对雷达图像的影响,受算法参数、算法类型影响,经过算法处理,目标信号极有可能被算法滤除,同时,无法评估经过我们优化或创新的算法的性能表现和参数指标,无法确定问题出现在那一步骤。
举个例子,提出了一种CFAR算法能够有效提高虚警概率,现在需要你证明你的算法在真实的环境中应用比其他滤波算法效果好,你会怎么做?
mmWave Studio 的另外一个核心功能是射频前端配置,以AWR1642为例,内部一共有3个主要部分组成:基于Cortex-R4F的射频前端、基于Cortex-R4F的MSS、基于C674x DSP的DSS。mmWave Studio的主要功能就是快速配置雷达射频前端,射频前端的参数影响雷达的工作表现。
其中最主要的是配置雷达的Profile、Chirp、Frame参数,这几个参数直接直接决定了雷达发射机发射电磁波的波形,进而影响雷达的距离检测范围、距离分辨率、速度检测范围、速度分辨率等关键因素。对于某些特定的应用场景需要首先设计雷达发射机参数,通过mmWave studio 不仅可以实现参数合理性验证,还能根据观察RDM图像快速确定当前参数下的目标检测效果。
下载链接:
TI mmWave studio 安装包 CSDN下载链接
AWR1642+DCA1000数据捕获参数设置步骤演示&使用经验&技巧
TI软件安装之 mmWave Studio 下载安装
可以,需要使用LVDS或内存数据读取,但是如果使用串口,串口波特率非常低,DCA1000采用千兆以太网口加FPGA进行数据处理,不在一个量级上,一般不这样做。
理论上可以,之前没有在这一块儿下功夫,需要较高算力平台,尝试过树莓派4B 1G内存直接进程被杀,导致我一气之下把树莓派卖了,目前没有找到合适的方案,正在看一些资料。后期补上。
要结合具体情况具体分析。一般来说我们的雷达开发工作包含可行性分析和系统开发两大部分的工作。
前期可行性分析的内容包括但不限于以下内容:
上述可行性分析的内容都是可以不依赖于开发板在PC上进行计算、仿真和验证的,使用mmWave Studio 捕获的原始数据分析后能够解决上述问题。而系统开发的部分同STM32相似,需要在开发板上通过写程序和硬件连接实现对应的功能。显然的一点是,可行性分析是系统开发的前置工作,所谓“兵马未动,粮草先行”。二者需要考虑的问题不同。
因此要根据需要做的工作和目前所处的阶段综合评估是否需要DCA1000。如果已经确定了算法和要实现的逻辑,那么直接在雷达开发板上进行开发也不是不可,或者说团队有人在进行可行性分析,只关心系统开发的人也可以不用DCA100进行分析。
雷达芯片软件IDE(集成开发环境)。CCS承担着类似Keil等常用IDE的基本功能,借助CCS,可以完成代码查看、代码编辑、代码配置(TI 的RTOS可以通过类似STM32CubeMX的图形化配置界面完成部分代码的配置)、编译链接、代码调试、功耗测试等功能,雷达芯片的程序下载、Debug功能都使用CCS完成,2.1节雷达ToolBox中TI提供的例程使用CCS打开和编辑。类似于STM32开发板和Keil的关系。
TI毫米波雷达软件安装之CCS 下载安装
下载链接:
TI CCS官方下载链接
AWR1642雷达CCS调试工程演示
bin文件程序烧录工具。雷达芯片外挂了一个Flash芯片,无法直接通过CCS向Flash固化程序,可以使用Uniflash工具实现程序固化,程序固化后,上电后芯片直接加载Flash里面的二进制代码。
TI提供的例程都会有预先编译好的二进制文件供直接烧录,自己修改例程后,CCS会直接生成最终的bin文件。
TI 软件安装之 UniFlash安装演示
教你如何使用UniFlash烧bin文件|教你如何手动生成bin文件
mmWave SDK也是TI工程师们全力维护的内容,因此隔一段时间内容就会有较大的改变。SDK提供了几乎所有雷达需要的驱动、算法、固件、调试选项等内容。类似于STM32的标准库或HAL库,提供了可供芯片调用的库函数,但是mmWave SDK涉及的内容更加广泛,不仅有驱动库提供,而且有层次抽象、雷达常用算法等内容。
2.1节提到的ToolBox中的例程就是基于mmWave SDK开发的。
以SDK_02_00_00_04为例,一个重要的文件是Demo的说明文档,里面详细阐述了基于当前SDK版本构建的基本例程的方式、思想、流程、代码说明等内容。我愿称之为雷达入门最重要的文档之一
比如文档详细介绍了芯片启动流程,各个内核的任务分配及承担的功能、数据处理流程及时序分配、对应的代码位置、数据的设计等等非常详细的内容。只有在理解这个文档的基础上才能够理解TI提供的例程Demo的代码,进而能够构建自己的代码。
其次重要的文件是mmwave_sdk_user_guide。里面详细介绍了SDK的使用方法、软件各层次的分层和运行思想等内容,也是非常重要的一个文件。
TI-毫米波雷达代码走读第一期
mmWave SDK TI官方网站下载链接
TI 毫米波雷达SDK 02 01 00 00 04 版本 CSDN下载链接
SDK也要注意版本问题,需要和ToolBox的版本适配
TI Chirp 设计工具 ,在Chirp 设计的时候需要满足很多的约束条件,各个参数之间会相互影响,TI推出了Chirp计算工具帮助快速设计Chirp,包括基础Chirp 参数设计、高级Chirp参数设计、功耗等参数的计算。在进行Chirp设计的时候可以使用该工具设计,设计好的参数直接填到mmWave Studio 中进行验证。
当然TI整体代码构建还需要其他软件的配合,以下是我安装的另外的软件。
其中有 bios / dsplib(DSP运行库,供雷达芯片内部DSP使用)/ mathlib(数学函数库,常见的sin 、cos 、指数等)/cgt-arm(ARM编译工具链)/cgt-c6000(DSP编译工具链)等内容,都不是很常用。如果有用到的内容,可以到对应的文件夹查看docs文件查找想要的对容即可。