Xiaojie雷达之路---AWR1843(案例automated parking)代码架构(下)

应粉丝强烈要求,出一篇文章讲解一下AWR1843(案例automatived parking)的代码架构,本篇文章主要讲解的是DSS工程的代码架构,主要是从宏观上进行讲解,具体的细节就不进行详述

立马进入正题

在这里插入图片描述

代码文件解析

下图是整个DSS工程的目录结构,红框框住的是存放代码的一些文件,需要着重理解,下面说明每个文件的主要功能
在这里插入图片描述
文件主要功能说明

  1. cfg.c 功能:配置了MRR(medium range resolution) TI Design和描述了minimal mode的使用,主要是ADC格式、收发天线数量、profile、frame、advframe、chirp发射信号等配置
  2. mmw_config.h 功能:这是一个头文件,用来描述毫米波demo配置的头文件,个人感觉不重要
  3. mmw_message.h 功能:这是毫米波demo主要的头文件,主要是一些消息结构体,用来定义与DSS、PC交互的消息
  4. mmw_output.h 功能:和mmw_output.h头文件一起使用
  5. pa_config_chirp_design_MRR120.h 功能:定义了与MRR(120m)配置功能的一些常数信息
  6. pa_config_chirp_design_MRR80.h 功能:定义了与MRR(80m)配置功能的一些常数信息
  7. pa_config_chirp_design_USRR80.h 功能:定义了与USRR(20m)配置功能的一些常数信息
  8. pa_config_consts.h 功能:定义了一些常数,包括发射信号(chirp、frame)、可检测最大的对象数、EDMA通道
  9. pa_defines.h 功能:定义了一些常数,包括发射发射、接收天线数量、ADC数据格式、LVDS、HPF等
  10. clustering 文件夹里的是关于聚类的算法及API接口
  11. detection 文件里面是关于cfar检测的算法及API接口
  12. DoA 文件里面是关于角度估计的算法及API接口
  13. dopplerProc 文件里是关于多普勒算法及API接口
  14. utilities 文件里是关于一些常用的功能函数(如,周期时长测量函数、c674的内联函数、内存分配函数)
  15. cplx_types.h 功能:定义了一些常用的数据类型结构体
  16. dss_config_edma_util.c dss_config_edma_util.h 功能:定义核实现了关于EDMA的配置接口
  17. dss_data_path.c dss_data_path.h 功能:定义和实现了数据路径处理功能
  18. dss_main.c 功能: 这个就不多说了,dss_main是DSS工程里最主要的,所有的执行函数基本都在这个文件里
  19. dss_pa.h 功能:是DSS中最主要的头文件,被dss_main.c所调用
  20. radarProcess.h radarProcess.c 定义和实现了雷达信号处理链
  21. swpform.h 定义了编程时要使用的类型
  22. dss_pa_linker.cmd、r4f_linker.cmd、dss_pa.cfg 功能:是对底层环境的配置,不进行讲解,偏于底层

函数调用架构

main

dss_main.c中的main函数,在dss_main.c文件中的365行,调用结构图如下:
在这里插入图片描述

MmwDemo_dataPathConfigPopulate

MmwDemo_dataPathConfigPopulate在dss_main.c文件中的600行,调用结构图如下:
在这里插入图片描述

MmwDemo_populateUSRR

MmwDemo_populateUSRR在dss_main.c文件中的1352行,调用结构图如下:
在这里插入图片描述

MmwDemo_dataPathInit1Dstate

MmwDemo_dataPathInit1Dstate在dss_data_path.c文件中的1707行,主要是对1D FFT处理要用到的计数器进行初始化

MRR_DSS_initTask

MRR_DSS_initTask在dss_main.c文件中的456行,主要功能是初始化DSS子系统中的各种组件
在这里插入图片描述

MRR_DSS_dssDataPathConfigAdcBuf

MRR_DSS_dssDataPathConfigAdcBuf在dss_main.c文件中的981行,主要功能是对adcbuffer进行配置
在这里插入图片描述

MmwDemo_dataPathConfigBuffers

MmwDemo_dataPathConfigBuffers在dss_data_path.c文件中的1861行,主要功能是进行内存的分配
在这里插入图片描述

MmwDemo_dataPathConfigEdma

MmwDemo_dataPathConfigEdma在dss_data_path.c文件中的721行,主要功能是对所有子帧进行EDMA通道配置
在这里插入图片描述

MRR_DSS_mmWaveTask

MRR_DSS_mmWaveTask在dss_data_path.c文件中的233行,主要功能是进行数据处理并发送给MSS
在这里插入图片描述

MmwDemo_processChirp

MmwDemo_processChirp在dss_data_path.c文件中的1479行,主要功能是对每个chirp进行fft处理
在这里插入图片描述

MmwDemo_interChirpProcessing

MmwDemo_processChirp在dss_data_path.c文件中的1428行,主要功能是对4个接收天线接收回来的chirp进行fft处理
在这里插入图片描述

MmwDemo_interFrameProcessing

MmwDemo_interFrameProcessing在dss_data_path.c文件中的1428行,主要功能是进行帧间处理
在这里插入图片描述
关于雷达算法处理流程就不详述了,可以看我另一篇文章:Xiaojie雷达之路—TI实战笔记—雷达数据处理流程总结

MRR_DSS_DataPathOutputLogging

MRR_DSS_DataPathOutputLogging在dss_data_path.c文件中的928行,主要功能是判断HSRAM共享内存是否可用
在这里插入图片描述

MRR_DSS_SendProcessOutputToMSS

MRR_DSS_SendProcessOutputToMSS在dss_data_path.c文件中的928行,主要功能是将要发送的内容以消息的形式组装起来,然后通过邮箱发送
在这里插入图片描述

总结

DSS整个工程到底完成了什么功能

  1. 将接收天线接收到的数据存放到adcbuffer中
  2. 完成了雷达信号处理的整个流程
  3. 将检测到目标和点云通过邮箱发送到MSS

至此,AWR1843(案例automated parking)代码架构(下)已经结束,希望能够对您有所帮助

猜你喜欢

转载自blog.csdn.net/Xiao_Jie123/article/details/119118010