TI毫米波雷达软硬件概述

news2024/11/13 12:28:19

TI毫米波雷达概述

  • 1.TI毫米波雷达传感器芯片及分类:
    • 1.1 工业毫米波雷达传感器
      • 器件选型
      • 应用场景
    • 1.2 汽车毫米波雷达
      • 选型
      • 使用场景
    • 1.3 基于AWR2243 的 TI 级联雷达 :
    • 1.4 不喜欢看文字的也可以戳视频->
  • 2. TI软件入门概述:
    • 2.1 TI RadarToolbox
      • 主要功能
      • 安装演示:
    • 2.2 Visualizer
      • 主要功能
      • Visualizer 获取途径
    • 2.3 mmwaveStudio
      • 主要功能
      • 使用演示
      • 安装演示:
      • 补充说明
        • Q1 :DCA1000价格较高,不使用DCA1000能不能捕获原始数据?
        • Q2 : DCA1000能不能实现实时数据捕获?
        • Q3:不用DCA1000,只用开发板能不能做**方向的开发?
      • mmWave Sudio 和 Visuallizer的区别是什么?
    • 2.4 CCS
      • 主要功能
      • 安装教程:
      • 基本使用方法:
    • 2.5 UniFlash
      • 主要功能
      • 使用演示
      • 2.6 mmWave SDK
        • 主要功能:毫米波雷达开发库
        • 使用方式
        • 辅助理解
        • 下载安装
      • 2.7 其他部分
  • 不定期更新本内容

1.TI毫米波雷达传感器芯片及分类:

在TI的官方网站上可以看到,总体上,TI毫米波雷达的定位是用于工业汽车领域的毫米波雷达传感器,分别为IWR系列和AWR系列,这样分的目的是针对不同的领域做了不同的设计和优化,比如通信方式由于汽车内部一般为CAN通信,所以AWR系列的雷达一般有CAN接口,二者的温度范围也不相同。
在这里插入图片描述

1.1 工业毫米波雷达传感器

器件选型

工业毫米波雷达传感器的内容,下面列举了德州仪器所有的工业毫米波IWRxx系列传感器,传感器分60GHz和77GHz,不同型号内部有不同的芯片组合对应不同的算力,也对应不同的外设,这部分内容在前期器件选型的时候可以用到。
在这里插入图片描述

应用场景

工业毫米波雷达的应用场景,这里面有TI的工程师面向典型的应用场景总结的原理资料、程序代码和参考案例提供。
在这里插入图片描述
工业毫米波雷达的应用场景有

  • 室内人员计数、检测、跟踪等,比如在设计军事、国安的一些场景中,不方便采集人脸,就可以用雷达进行检测。
  • 生命体征检测,例如最常见的呼吸心跳就可以用毫米波雷达实现。
  • 工业机器人,例如厂区机械臂时急停检测避免人员伤亡的场景,物流机器人目标识别等。
  • 液位监测,例如油罐、水箱等检测场景、河流灌渠水位监测、闸门控制系统等。
  • 交通领域 ,车辆计数、夜间速度监测、智能交通等。
  • 个人电子产品,人员轨迹跟踪、目标检测、、穿戴设备等。

上诉场景如果有做的方向是和TI提供的方向相似的地方,那么建议多看看里面官方提供的资料,里面提供了比较丰富的内容,说不定会有帮助。

1.2 汽车毫米波雷达

选型

下面列举了德州仪器所有的汽车毫米波AWRxx系列传感器,传感器同样分60GHz和77GHz,不同型号内部有不同的芯片组合对应不同的算力,也对应不同的外设,同样在器件选型是可以作为参考。
在这里插入图片描述

使用场景

TI汽车毫米波雷达传感器主要应用在汽车辅助驾驶领域。常见的应用包括: 盲区检测辅助制动辅助变道车内乘员检测车内人员生命体征检测手势识别自动泊车等领域,车内人员生命体征检测这样的应用和工业雷达人员生命体征检测没有区别,因此汽车和工业毫米波雷达是认为划分的,并非互斥,他们之间有一定的交集。
在这里插入图片描述

1.3 基于AWR2243 的 TI 级联雷达 :

这款雷达EVM板是偶然在TI官方网站上发现的,基于AWR2243雷达芯片做的级联款。使用这款级联雷达可以做高分辨率角度检测。
用于做角度超分辨的级联雷达链接
级联雷达EVM板用户手册

在这里插入图片描述

1.4 不喜欢看文字的也可以戳视频->

TI毫米波雷达芯片、板卡及应用场景分析

2. TI软件入门概述:

TI所有的软件安装路径选择默认路径!

2.1 TI RadarToolbox

主要功能

雷达工具箱,根据第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 下载链接

不同版本的Toolbox会有较大的区别,可能出现不兼容情况,下载安装请慎重。

2.2 Visualizer

主要功能

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软件。
在这里插入图片描述

Visualizer 获取途径

所有的GUI软件都会在对应例程的用户手册中会提供下载方式和使用说明。

有的GUI软件需要下载,有的则是在ToolBox中自带。

可以通过串口监控助手捕获上下行数据包。

注意版本问题!需要和SDK版本匹配。

2.3 mmwaveStudio

主要功能

捕获雷达原始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 下载安装

补充说明

  • mmWave Studio 需要使用DCA1000/TSW1400,DCA1000/TSW1400是TI官方出的一块高速数据处理板卡,通过DCA1000可以捕获原始数据。

Q1 :DCA1000价格较高,不使用DCA1000能不能捕获原始数据?

可以,需要使用LVDS或内存数据读取,但是如果使用串口,串口波特率非常低,DCA1000采用千兆以太网口加FPGA进行数据处理,不在一个量级上,一般不这样做。

Q2 : DCA1000能不能实现实时数据捕获?

理论上可以,之前没有在这一块儿下功夫,需要较高算力平台,尝试过树莓派4B 1G内存直接进程被杀,导致我一气之下把树莓派卖了,目前没有找到合适的方案,正在看一些资料。后期补上。

Q3:不用DCA1000,只用开发板能不能做**方向的开发?

要结合具体情况具体分析。一般来说我们的雷达开发工作包含可行性分析和系统开发两大部分的工作。
前期可行性分析的内容包括但不限于以下内容:

  • 确定待测目标是否可以被毫米波雷达检测到。
  • 设计符合需求的雷达线性调频波形,当前设计的线性调频波形是否合适。
  • 确定信号处理流程,如是否要经过CFAR、是否需要聚类、是否要进行目标跟踪。
  • 评估要使用的算法,例如:使用CFAR,选择CA-CFAR还是GO-CFAR,或者是自己改进的CFAR算法。考虑算法的性能表现。
  • 确定算法的合适参数

  • 系统开发的内容包括但不限于:
  • C程序编写和优化,包括控制程序和算法程序,考虑算法执行时间、内存占用大小等
  • 内存分配和API实现。
  • 任务分配及通信协议
  • 驱动及外设调用

上述可行性分析的内容都是可以不依赖于开发板在PC上进行计算、仿真和验证的,使用mmWave Studio 捕获的原始数据分析后能够解决上述问题。而系统开发的部分同STM32相似,需要在开发板上通过写程序和硬件连接实现对应的功能。显然的一点是,可行性分析是系统开发的前置工作,所谓“兵马未动,粮草先行”。二者需要考虑的问题不同。
因此要根据需要做的工作和目前所处的阶段综合评估是否需要DCA1000。如果已经确定了算法和要实现的逻辑,那么直接在雷达开发板上进行开发也不是不可,或者说团队有人在进行可行性分析,只关心系统开发的人也可以不用DCA100进行分析。

mmWave Sudio 和 Visuallizer的区别是什么?

  • mmWave Sudio通过网口传输数据,用于原始数据捕获和分析, Visuallizer使用串口通信,只能展示雷达芯片最终的数据结果。
  • mmWave Sudio处于ADC数据处理阶段,包含的信息量极大,而Visuallizer是展示经过滤波、FFT和目标距离后最终的数据处理结果,只包含少量目标的基本信息。
  • mmWave Sudio可以直接配置射频前端 Visuallizer不行。
  • 二者功能和定位互不相同,不存在交集和替代的概念。

2.4 CCS

主要功能

在这里插入图片描述

雷达芯片软件开发调试环境。雷达芯片的程序下载、Debug功能都使用CCS完成,2.1节雷达ToolBox中TI提供的例程使用CCS打开和编辑。类似于STM32开发板和Keil的关系。

安装教程:

基本使用方法:

下载链接:
TI CCS官方下载链接

AWR1642雷达CCS调试工程演示

2.5 UniFlash

主要功能

bin文件程序烧录工具。雷达芯片外挂了一个Flash芯片,无法直接通过CCS向Flash固化程序,可以使用Uniflash工具实现程序固化,程序固化后,上电后芯片直接加载Flash里面的二进制代码。

TI提供的例程都会有预先编译好的二进制文件供直接烧录,自己修改例程后,CCS会直接生成最终的bin文件。

使用演示

教你如何使用UniFlash烧bin文件|教你如何手动生成bin文件

2.6 mmWave SDK

主要功能:毫米波雷达开发库

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的版本适配

2.7 其他部分

当然TI整体代码构建还需要其他软件的配合,以下是我安装的另外的软件。
其中有 bios / dsplib(DSP运行库,供雷达芯片内部DSP使用)/ mathlib(数学函数库,常见的sin 、cos 、指数等)/cgt-arm(ARM编译工具链)/cgt-c6000(DSP编译工具链)等内容,都不是很常用。如果有用到的内容,可以到对应的文件夹查看docs文件查找想要的对容即可。
在这里插入图片描述

不定期更新本内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/736524.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C】指针详解(一篇文章带你玩转指针)

指针详解 指针是什么?指针和指针类型指针加减整数指针的解引用 野指针野指针的成因如何规避野指针 指针和数组的关系数组名是什么? 二级指针二级指针是什么?二级指针的运算 字符指针指针数组和数组指针指针数组数组名和&数组名数组指针数…

开源一款轻量线程池项目

基于Arrow的轻量线程池 大家好,我是光城,最近花了几周业余时间,开发出这款轻量线程池,代码也全部开源啦,欢迎大家star。 本线程池的设计与实现会有涉及非常多的知识,这些内容也都会以视频的方式分享在知识星…

分析气象数据:向Python Cartopy地图中添加循环点

大家好,在使用Python和Cartopy对气候数据进行可视化分析的过程中,有一个叫做循环点(cyclic point)的术语,它在地理空间栅格数据可视化领域中很重要。 1.循环点的定义和作用 有时,当我们试图绘制地理空间数…

性能测试的基本概念和重要指标

这里写自定义目录标题 一、什么是性能测试二、为什么要学习性能三、性能测试与功能测试的区别1、性能测试和功能测试的区别?2、性能测试是在什么时候做?3、我们在做我们的产品的时候,我们只做功能不做性能可不可以?4、性能测试主要是这几个方…

金融计量学第2课堂-金融时间序列线性模型

量化策略开发,高质量社群,交易思路分享等相关内容 一、相关性和平稳性 1、相关性 (1)皮尔森相关系数 皮尔森相关系数是最常见、最常用的一个相关系数计算方法。作为衡量两个随机变量x和y线性相关程度的重要指标,在这…

赋能智能智造-RK3568智能主板助力机器人产业高速发展

机器人作为现代制造业的重要一环,正在以惊人的速度推动着生产效率和智能化水平的提升,它们在生产线上的准确操作和高效工作,为企业带来了巨大的竞争优势。关于工业机器人的编程和控制技术,在过去几年中已经有了很多发展和新的应用…

十.Redis持久化

十.Redis持久化 一:RDB持久化二:AOF持久化三:扩展 redis持久化 Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么服务进程退出,服务器中的数据库状态也会消失,所以Redis提供了持久…

《Spring系列》第18章 监听器Listener

前言 陆续阅读了Spring Boot源码中,有不少地方都用到了监听器。每次看到监听器的代码都一头雾水,不懂其中的设计理念,这次决定肝一篇监听器的博文。 一、监听器 1.概述 何为监听器?就是用来监听程序执行的。监听器可以做什么事…

青岛大学_王卓老师【数据结构与算法】Week05_03_队列的定义和特点_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享, 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础…

Vue3通透教程【十七】Vite构建TS版本Vue项目

文章目录 🌟 写在前面🌟 创建TS版本的Vue3项目🌟 插件安装🌟 写在最后 🌟 写在前面 专栏介绍: 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章,应粉丝要求开始更新 Vue3 的相关技术文章&#…

DocFastSearchTool(文档快速搜索工具)开发日志

目录 项目介绍 项目调研背景 项目需求分析 开发环境 项目涉及基础知识点 项目设计 设计基础 项目框架or架构 项目框架的搭建 系统工具模块--遍历目录 SQLite数据库 在Windows上安装SQLite SQLite命令 SQLite-C/C的API 安装SQLite源码 数据库操作的重要接口 连接…

PB从入坑到放弃(三)数据窗口

PB从入坑到放弃(三)数据窗口 写在前面一、 数据窗口画板1.1 Design 视窗1.1.1 General tab页设置1.1.2 Generation tab页设置1.1.3 Prefixes tab页设置 1.2 Preview 视窗1.2.1 查找数据1.2.2 翻页1.2.3 增加、删除数据 1.3 Control List 视窗1.4 Data 视…

学生成绩分析项目

数据采集 导入必要的库 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns加载数据集 df pd.read_csv(D:\\桌面\\数据\\student_marks.csv)显示数据框的前几行 # 显示数据框的形状 print("Shape of the dataframe:", df.shape)#显示…

pycharm最新版默认菜单栏等工具不见了

原因 pycharm2022.3新版本,默认使用新UI(如下图),这让很多小伙伴来说不太适应,我还是习惯旧版本的界面。在网上搜了许多恢复旧版本界面的教程,说的解决方案都是由于“手贱把菜单栏给隐藏了”,这…

C语言“教父“

在中国,"C语言教父"一般指的是C语言网的创始人黄老师。他通过C语言网为广大学习者提供了丰富的学习资源和知识分享平台,包括大量的C语言教程、C语言题目以及相应的文档、资源等等,为C语言的推广、教学做出了巨大的贡献和推动作用

Go自带库的使用说明

Go 中的时间操作 Golang中与时间有关的操作,主要涉及到 time 包,核心数据结构是 time.Time,如下: type Time struct {wall uint64ext int64loc *Location }1、获取时间相关函数 1.1 获取当前时间 // 返回当前时间&#xff0c…

腾讯云TRTC服务实现小程序语音/视屏会议

腾讯云TRTC服务的入门 TRTC 是腾讯云主打全平台互通的多人音视频通话和低延时互动直播解决方案。TRTC服务有多种客户端的支持,对于IOS、Android、React native等都支持的比较好,我们主要在于 IOS、Android、Web三端进行处理,其中 TRTC Web S…

HarmonyOS学习路之开发篇—流转

流转概述 介绍 随着全场景多设备生活方式的不断深入,用户拥有的设备越来越多,每个设备都能在适合的场景下提供良好的体验,例如:手表可以提供及时的信息查看能力,电视可以带来沉浸的观影体验。但是,每个设备…

网络变压器常见封装

1、单口千兆(Single Port) 封装类型常见型号Dimension SMD24_1 PIN Pitch:1.00 Length:15.1 Width:7.1/10.0 Height:6.00 JWD: SG24002G Group-tek: HST-24015SR SMD24_2 PIN…

pyspark

连接命令: pyspark --master spark://node1:7077 一个application 大任务可以分解成 多个小任务 jobs, 一个job又可以分解成多个 stages 阶段, 一个stage又可以分解成 多个tasks(可以认为是两个线程) standalone Zo…