MMWave案例解析
文章平均质量分 78
Poulen
一起学习TI毫米波雷达
展开
-
专栏阅读须知
本专栏主要目的是带着感兴趣TI毫米波雷达的同学一起学习毫米波雷达的开发,从TI 提供的开源案例(SRR demo)出发,逐行带领各位同学看懂案例源代码,更快的投入到TI 毫米波开发中去。以下是本栏的一些通知。......原创 2022-07-07 11:41:53 · 487 阅读 · 2 评论 -
FMCW雷达仿真:基于L形阵列4D点云获取
本期内容为3D点云目标获取的延续工作,在距离、速度、方位角估计的基础上,通过设计L型阵列结构,进一步实现目标俯仰角的估计,最终实现目标4-D点云的获取。首先,通过中频信号建立仿真信号模型,并设计1发N收的L型阵列结构接收目标回波信号;通过对回波信号进行相应的信号处理,最终获得目标的4-D点云原创 2023-12-21 19:08:51 · 1225 阅读 · 0 评论 -
EDMA的组成及其作用简介
EDMA(Enhanced Direct Memory Access)是一种增强型的直接内存访问技术,用于高效地实现数据传输和处理。它是在传统的DMA(Direct Memory Access)基础上进行改进和扩展的。DMA是一种用于数据传输的技术,可以绕过CPU,直接在内存和外设之间进行数据传输,提高系统的数据传输效率。传统的DMA通常具有一些限制,如只能进行简单的内存到外设或外设到内存的数据传输,无法支持多通道操作和链式传输等高级功能。原创 2023-11-16 11:42:26 · 1516 阅读 · 0 评论 -
雷达仿真:FMCW DDMA-MIMO 3D点云获取方法
由于TDMA-MIMO采用不同单天线交替发射信号,没有更好的利用发射天线同时工作的发射资源,导致发射功率低以及损耗大,从而使得TDMA波形只能应用在近距离探测的低功率雷达场景。而DDMA波形则能很好的弥补TDMA上述缺点,与TDMA波形下单天线交替工作不同,DDMA波形下所有发射天线同时发射,但是每个发射天线的信号都加入一个特定的频率偏移(在速度维度体现为一个速度频移),通过这个人为偏移的频率使得不同发射天线的信号在Doppler域上分离出来。使不同发射天线的信号在Doppler域上能分离开来。原创 2023-09-19 13:16:14 · 1745 阅读 · 2 评论 -
雷达仿真:FMCW TDMA-MIMO 3D点云获取方法
2 信号建模摘要:通过设置时分复用(TDMA)波形结合FMCW毫米波雷达仿真获取目标的距离、速度和方位角3D点云信息。在本案例中,首先通过发射天线交替发射FMCW波形并通过接收天线依次接收回波信号从而得到雷达原始数据,其次对获取的原始数据依次经行距离、速度、角度估计从而输出目标的3D点云。阅读本文档,你将对TDMA-MIMO雷达的基本原理、毫米波雷达距离估计、速度估计以及角度估计的基本原理有所了解,另外CA-CFAR恒虚警以及MUSIC-DOA估计在本案例中也有所涉及。1 TDMA-MIMO原理。原创 2023-08-24 16:59:34 · 2585 阅读 · 4 评论 -
Getting Start --TI AWR1642 近程雷达(SRR)案例理论设计
在近程应用中,AWR1642传感器配置为多模雷达,可以跟踪距离高达80米的目标,以及生成20米 内的丰富点云目标,可以同时探测到接近的车辆和更近的小目标。SRR设计有两组规格,因为雷达被用作多模雷达。 第一种规格是用于近程雷达(SRR),其射程为80米。 第二个规格是超短程雷达(USRR),它的有效距离只有20米。SRR设计上位机(PC)与毫米波雷达(AWR1642,TI)交互的简易设计框图如下图所示; SRR demo使用四个接收器和两个发射器配置两种不同的chirp。 第一种配置(SRR)使用简单的非多原创 2022-07-07 11:07:15 · 2799 阅读 · 1 评论 -
AWR1642 SRR 案例MSS代码解读-main(一)
摘要:在这篇博文中,将会对demo的主函数分片段来描述它的作用,并且会对一些函数作用进行描述。主程序是案例代码的入口,进入主程序,我们会先看到定义三个变量参数,为了方便表述,下面将用参数一,二,三来表述;1)参数一是用于创建线程的线程参数,且是一个结构体,它与创建线程函数是密不可分的(如下中展示的创建线程函数就用到该参数作为它的输入参数)作用用于设置线程函数的优先级等;关于线程的相关知识可以参考操作系统指南。2)参数二是一个整数型的错误参数,它主要用来标识在整个main函数中程序出现错误时的类型,不同的返回原创 2022-07-08 10:17:05 · 1077 阅读 · 1 评论 -
MSS代码解读-SRR_MSS_initTask(二)
摘要:这篇博文衔接上一篇博文(main),在上一篇博文中创建了一个线程函数SRR_MSS_initTask,这时程序执行将会进入到SRR_MSS_initTask中,在这篇博文中将会对SRR_MSS_initTask函数分片段来描述它的作用,同样的并会对一些函数作用进行描述。这个函数的声明在 mms工程mss_main文件下的第112行,读者可以在main函数中在创建线程函数SRR_MSS_initTask的地方按住 Ctrl + 鼠标左键 跳转到SRR_MSS_initTask函数。SRR_MSS_ini原创 2022-07-11 17:06:19 · 993 阅读 · 1 评论 -
MSS代码解读-SRR_MSS_CLIInit(三)
通俗来说其实就是在MSS也用程序中创建类似于CMD命令提示符的终端程序,并定义有自己的命令代码用于计算机控制传感器的配置、开始、结束等操作,值得注意的是这个CLI是由SDK软件包提供的任务线程,虽然MSS应用程序最终运行在这个CLI线程中,但是我们在前边定义一个MMWave_execute任务线程拥有更高的优先级,所以当BSS运行出现任何异常事件时,都会优先执行MMWave_execute任务线程而先暂停运行CLI线程。相关的回调函数将会在后续文章中讲解。............原创 2022-08-04 11:34:15 · 864 阅读 · 0 评论 -
CLI回调代码解读-SRR_MSS_CLIBasicCfg(四)
将profile文件配置好之后,这时就需要将这个配置文件关联chirp,被关联的chirp包含profile的所有配置信息,但是在chirp配置部分,可以对profile中的部分信息进行微调,chirp配置的代码片段如下。在打开mmWave模块后,接下来就是对profile文件进行配置,profile的配置相当于给chirp提供了一个模板,在稍后的chirp配置中需要与这个profile文件进行关联,用来生成相对应的chirp,理论上最多只能定义4个profile文件。2.open mmWave模块。...原创 2022-08-10 09:44:03 · 405 阅读 · 0 评论 -
CLI回调代码解读-SRR_MSS_CLIAdvancedFrameCfg(五)
像配置profile文件一样,定义chirp配置同样是在一个for循坏中,总共循坏NUM_CHIRP_PROG=4次,第一次循环定义了第一个子帧的前64个快chirp,第二次循坏定义了第一个子帧的后64个慢chirp,第三次循坏定义了第二个子帧的第一个chirp,第四次循坏定义了第二个子帧的第二个chirp,要想形成demo发射的一个帧,只需要在高级帧配置中,第一个子帧循坏一次,第二个子帧循坏32次,就可以形成一个完整的帧,如下图表示;在chirp定义好之后,接下来就是高级帧配置部分,代码如下;...原创 2022-08-13 09:29:43 · 354 阅读 · 0 评论 -
CLI回调代码解读-SRR_MSS_CLISensorStart(六)
参数定义完成后,紧接着就是通过判断全局变量gSrrMSSMCB.runningStatus(这是一个用于标识mmWave是否启动的bool类型的标识符号)的状态(true or false)来检查此时mmWave 传感器是否已经开始工作,如果开始工作则不需要重复开始,直接退出程序。摘要:我们知道,在我们完成BSS chirp 配置后,接下来我们就是需要传感器开始工作,传感器的启动是通过CLI命令调用回调函数SRR_MSS_CLISensorStart完成的,本文将针对这个回调函数进行相应的解析。原创 2022-09-02 21:18:46 · 648 阅读 · 0 评论 -
CLI回调代码解读-SRR_MSS_CLISensorStop(七)
下图是回调函数的源码。紧接着就是通过判断全局标量gSrrMSSMCB.cfgStatus(标识符,判断mmWave FE是否完成chirp、帧配置)来检查mmWave FE是否完成了chirp、帧的配置,这一点与mmWave的启动是相同的,如果完成了,就可以通过调用MMWave_stop API来停止mmWave 传感器的运行,否之则视为无效的停止,直接退出程序,并在控制台显示相对应的错误信息,同样的如果MMWave_stop API调用异常,也会退出程序。原创 2022-10-15 22:04:25 · 216 阅读 · 0 评论 -
MSS代码解读-MmwDemo_mboxReadTask线程(八)
邮箱消息清除完成后,接下来就是通过switch 语句对message进行后续处理,通过判断message.type(消息类型)选择需要执行的代码块,当这个消息类型为MMWDEMO_DSS2MSS_DETOBJ_READY(DSS到MSS的消息,数据处理完成消息)时,表明message.body中存储的是数据路径处理完成的数据,开始执行对应的操作。包的结尾被填充,因此包的总长度总是32字节的倍数。元素,它是一个数组,数组的长度是MmwDemo_output_message_type_e枚举类型)。原创 2022-10-20 20:00:27 · 781 阅读 · 0 评论 -
MSS代码解读-SRR_MSS_initTask回调函数补充(九)
注册事件函数,当从BSS接收到事件时调用。此外在该函数体中,并没有多余的相应操作(释放事件等操作),故而不做过多的解释。摘要:这篇文章主要补充讲解在SRR_MSS_initTask中注册的回调函数,接下来将会带着大家走一遍这些回调函数作用,以及在何时调用。这是注册在ADC驱动程序中的回调函数,当一个。4.mmWave config回调函数。5.mmWave strat回调函数。8.mmWave close回调函数。6.mmWave stop回调函数。3.BSS事件回调函数。sbId 子块标识符。原创 2022-10-20 20:11:02 · 249 阅读 · 0 评论 -
MSS总体流程图(十)
SRR_MSS_initTask.该任务由main创建/启动,是一次性的活动任务,其主要功能是初始化驱动程序(_init), MMWave模块(MMWave_init),打开UART和数据路径相关的驱动程序(ADCBUF),并创建/启动以下任务。该任务由SRR_MSS_initTask创建/启动,用于读取邮箱信息的,并将信息通过UART串口发送至上位机。到本文为止,关于MSS应用程序的讲解告一段落了,接下来将会对SRR例程的DSS应用程序进行讲解。原创 2022-10-20 20:12:47 · 507 阅读 · 0 评论 -
DSS代码解读-main(十一)
本篇文章开始,SRR案例的MSS应用程序已经带大家走完了,接下来将开始对DSS应用程序讲解。我们都知道一个工程的程序入口是从main函数开始的,这篇文章将从这个mian函数开始,分代码片段带着大家理解每一行代码的目的以及含义。0.准备首先我们找到SRR案例的DSS工程,如下图所示;跳转到dss_mian.c文件,找到main函数(在该文件第366行代码处),接下来将对这个函数进行讲解;1.参数声明进入main函数,首先看到以下的代码片段,其中。原创 2022-10-21 21:02:07 · 627 阅读 · 0 评论 -
DSS代码解读-SRR_DSS_initTask(十二)
对线程参数声明完之后,紧接着就是就是对SDK组件的初始化,如果不初始化,在使用SDK的其它函数(组件)时将会发生错误,此外,初始化还有一个用处就是,获得一个控制句柄,有了这个控制句柄,在使用SDK驱动程序的组件时,才不会发生错误。中断事件注册完成后,接着就是开启邮箱驱动,使得MSS和DSS之间可以实现握手,值得注意的是,在调用相关外部函数启动邮箱前,已经调用过邮箱初始化函数了。到这里,关于DSS初始化线程已经基本解析完成,关于信号预处理的的几个函数,为了文章篇幅,在这里就不讲解了。2.4 开启邮箱驱动。原创 2022-10-21 20:54:59 · 880 阅读 · 0 评论 -
DSS代码解读-SRR_DSS_mmWaveTask(十三)
在上述的CFAR检测完成之后,接下来就是对探测到的目标沿着天线维度方向进行角度估计,这主要由azimuthProcessing函数完成的(在dss_data_path.c文件的第1767行),该函数执行第三维处理,包括方位角、x坐标和y坐标的计算。由于该函数的篇幅过长,在这里通过流程图总结不同子帧帧间处理的处理链。这就是完整的信号处理流程图,另外由于本人较忙,收尾写得匆忙,不免有总结不到位的地方,顺便说一句,该案例就总结到此,后续文章将不在更新这案例的相关内容,如果想看其它案例的详解,可以联系小编商议。原创 2022-10-21 20:57:29 · 890 阅读 · 0 评论 -
1.毫米波雷达心率、呼吸原理实现(一)实例
毫米波雷达心率、呼吸检测原理本项目分两到三篇文章写完,第一阶段借鉴TI开源项目以及根据自己的见解适当更改信号处理链通过AWR1843汽车雷达传感器和DCA1000采集卡采集数据完成人体呼吸和心跳检测算法的实现。第二阶段将仿真成功的代码搬移TIAWR1843传感器并通过串口数据实现生命体征的实时处理。本文即为第一阶段实现过程。本文首先概述毫米波雷达呼吸心跳检测的原理,紧接着概述本项目信号处理流程,另外本项目第一阶段通过matlab仿真验证算法的有效性,仿真源码可关注小编并私信可取。1.概述。原创 2022-10-24 21:42:35 · 12237 阅读 · 24 评论 -
2.毫米波雷达心率呼吸实时处理实例(二)
这部分内容将是我使用Matlab的AppDesigner制作的上位机软件,关于该上位机的制作的详细过程,由于篇幅问题在这里就不详细讲解了。原创 2023-02-14 16:23:00 · 7576 阅读 · 26 评论