5.5 毫米波SDK-TI组件
毫米波SDK功能分解成组件将在接下来的几小节中解释。有关这些模块的详细文档,请参阅位于mmwave_mcuplus_sdk_<ver>/docs/mmwave_sdk_module_document .html的顶层文档。
5.5.1 演示
5.5.1.1 毫米波演示
这个演示位于mmwave_mcuplus_sdk_<ver>/ti/demo/<platform>/mmw文件夹。毫米波演示展示了使用毫米波SDK(软件开发工具包)中的驱动程序的SoC的一些雷达传感和目标检测功能。它允许用户指定chirp配置文件,并实时显示检测到的对象和其他信息。这个演示的详细说明可以在演示的docs文件夹中找到,可以通过mmwave_mcuplus_sdk_<ver>/docs/mmwave_sdk_module_document .html浏览(演示的内容如下面的截图所示)。本节捕获在各种毫米波设备上支持的演示的高级布局。有关各个组件(控制层、数据路径层等)的详细信息,请参阅“毫米波SDK - TI组件”下的其余子节。
5.5.2 驱动
驱动程序封装了系统中各种硬件IP的功能,并为更高层提供了定义良好的API。与以前版本的SDK不同,驱动程序是随SDK包一起安装的PDK的一部分。驱动程序被设计为通过使用OSAL层与操作系统无关。下图显示了SDK中使用的典型内部软件块。有关详细信息,请参阅PDK文档。
5.5.2.1 OSAL
mmWave SDK中存在一个OSAL层,以提供基本组件(驱动程序、mmWaveLink、mmWaveAPI)的操作系统无关特性。这个协议为一些常见的操作系统服务提供了一个抽象层:信号量、互斥锁、调试、中断、时钟、内存、周期分析器。OSAL层的源代码和文档是PDK的一部分,它随SDK包(<pdk_path>\packages\ti\osal)一起安装。有关详细信息,请参阅PDK文档。
5.5.3 毫米波连接mmWaveLink
mmWaveLink是一个控制层,主要实现用于雷达子系统(RADARSS)和控制实体之间通信的协议,控制实体可以是主子系统(MSS R5F)和/或DSP子系统(DSS C66x)。它提供了一套低级API,应用程序(或其上的软件层)可以调用这些API来启用/配置/控制RADARSS。它为应用程序提供了一个定义良好的接口,以便插入正确的通信驱动程序API以与RADARSS通信。它作为Radar SS的驱动程序,公开Radar SS的服务,包括配置Radar SS硬件块的API,并提供MSS/DSS与Radar SS之间的消息传输通信协议。
毫米波链路是DFP包的一部分。请参考mmwave_dfp_<version>\docs文件夹获取更多信息。AWR294X和AM273X+AWR2243的DFP版本不同。
5.5.4 毫米波API
mmWaveAPI是运行在mmWaveLink和LLD API(驱动程序API)之上的更高层的控件。它旨在以更简单和更少的API集的形式为应用程序提供抽象层,以执行毫米波雷达传感任务。在具有双核的毫米波设备中,它还在IPC上提供了一个抽象层,以在MSS和DSS域之间同步和传递配置。毫米波API层的源代码在mmwave_mcuplus_sdk_<ver>\ti\control\毫米波文件夹中。该API的文档可通过位于mmwave_mcuplus_sdk_<ver>\ti\control\mmwave\docs\doxygen\html\index.html的doxygen文件获取,并可通过mmwave_mcuplus_sdk_<ver>\docs\mmwave_sdk_module_document .html轻松浏览。组件的单元测试代码(运行在SYSBIOS之上)也作为包的一部分提供:mmwave_mcuplus_sdk_<ver>\ti\control\mmwave\test\。
图5-24 毫米波API-内部软件设计
毫米波模块提供了两种配置模式。
5.5.4.2 完整配置
“完整”配置模式实现毫米波前端的基本chirp/帧序列,是使用基本chirp/帧配置时应用程序的推荐模式。在此模式下,应用程序将使用毫米波控制模块提供的整套服务。这些功能包括:
- mmWaveLink的初始化
- MSS和DSS之间的同步服务
- 异步事件管理
- 启动和停止服务
- 配置的RADARSS帧,先进的帧,先进的chirp与传统的帧,先进的chirp与先进的帧和连续模式
- MSS和DSS同步配置
在完整配置模式下,可以创建具有多个chirp的多个配置文件。为此添加了以下API:
Chirp管理:
- MMWave_addChirp
- MMWave_delChirp
配置文件管理:
- MMWave_addProfile
- MMWave_delProfile
高级Chirp管理:
- MMWave_addAdvChirpParam
- MMWave_addAdvChirpLUTData
- MMWave_delAdvChirp
注意:毫米波前端校准
默认情况下,mmWave API启用mmWave前端的所有init/boot time时间校准。用户可以在MMWave_open API中提供自定义校准掩码和/或提供预先存储校准数据的缓冲区。
当应用程序在MMWave_start API调用中请求一次性和周期性校准时,毫米波API为毫米波前端启用所有可用的一次性和周期性校准。
mmWave API不通过其任何API暴露mmWaveLink的LDO旁路API (rlRfSetLdoBypassConfig/rlRfLdoBypassCfg_t)。如果应用程序需要此功能(无论是由于TI EVM/自定义板上使用的射频电源电压还是从监控的角度),用户应该参考mmwave_doxygen(mmwave_mcuplus_sdk_<ver>\ TI \control\mmwave_doxygen\docs\ doxygen\html\index.html)关于此API的使用情况,并在调用MMWave_open()之前从其应用程序调用此API。
mmWave_open
虽然提供了mmWave_close API,但建议每个传感器的电源周期只执行一次mmWave_open。
5.5.5 数据路径接口(DPIF)
DPIF定义了检测处理链中的标准接口点,这些接口点将对应于上图所示的可扩展链中的“蓝色”框。这一层定义的关键接口有:
- 输入ADC数据
- 雷达立方体
- 检测矩阵
- 点云和它的侧面信息
DPIF的源代码位于mmwave_mcuplus_sdk_<ver>\ti\datapath\ DPIF文件夹中。
5.5.6 数据处理单元(dpu)
从一个接口点到另一个接口点的数据转换功能称为“数据处理单元”。将数据处理链拆分为多个处理单元,可以促进跨多个链重用某些处理块。关于这些模块的详细文档可以通过mmwave_mcuplus_sdk_<ver>/ docs/mmwave_sdk_module_document .html轻松浏览。
- 距离处理(ADC数据到雷达立方):该处理单元在活动帧时间内对chirp(RF)数据进行(1D FFT+可选直流距离校准)处理,并在雷达立方中产生处理后的数据。这个处理单元在毫米波SDK中是标准化的。它提供了基于HWA的实现。基于HWA的实现可以在R5F或C66x上实例化。Range DPU的源代码位于mmwave_mcuplus_sdk_<ver>\ti\datapath\ DPU \rangeproc文件夹中。API的文档可通过doxygen获得,并放置在mmwave_mcuplus_sdk_<ver>\ti\datapath\dpu\rangeproc\docs\doxygen\html\index.html。组件的单元测试代码(运行在SYSBIOS之上)也作为包的一部分提供:mmwave_mcuplus_sdk_<ver>\ti\datapath\dpu\rangeproc\ test\。
- 多普勒处理(雷达立方体到检测矩阵):该处理单元在帧间和生成的检测矩阵中对雷达立方体进行(二维FFT +能量和)处理。除此之外,当启用静态杂波去除时,该处理单元从雷达立方体读取距离FFT数据并执行静态杂波去除,然后执行二维FFT +能量和处理。这个处理单元是作为参考实现提供的,SDK的用户可以在他们的应用程序/处理链中重用这些单元,也可以根据他们的特定需求创建这些单元的变体。基于HWA的实现可以在R5F或C66x上实例化。基于DSP的实现结合了静态杂波算法以获得最佳内存/MIPS利用率,用户可以跳过使用独立的静态杂波DPU。多普勒DPU的源代码在mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc\ DPU \dopplerproc文件夹中。API的文档可通过doxygen获得,并放置在mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc\dpu\dopplerproc\docs\doxygen\html\index.html。
- CFAR + AoA (检测矩阵到点云):它们作为两个独立的DPU提供,在帧间对检测矩阵共同运行CFAR算法、峰值聚合、视场滤波、多普勒补偿、最大速度增强和角度(方位角+仰角)估计来产生点云。这些处理单元是作为参考实现提供的,SDK的用户可以在他们的应用程序/处理链中重用这些单元,也可以根据他们的特定需求创建这些单元的变体。基于HWA的实现可以在R5F或C66x上实例化。
- CFAR DPU的源代码位于mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc\DPU\cfarproc文件夹中。API的文档可通过doxygen获得,并放置在mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc\dpu\cfar proc\docs\doxygen\html\index.html。组件的单元测试代码(运行在SYSBIOS之上)也作为包的一部分提供:mmwave_mcuplus_sdk_<ver>\ti\ datapath\dpc\dpu\cfarproc\ test\。
- AoA DPU的源代码在mmwave_sdk_<ver>\ti\datapath\dpc\ DPU \aoaproc文件夹中。API的文档可通过doxygen获得,并放置在mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc\dpu\aoaproc\docs\doxygen\html\index.html。组件的单元测试代码(运行在SYSBIOS之上)也作为包的一部分提供:mmwave_mcuplus_sdk_<ver>\ti\ datapath\dpc\dpu\aoaproc\ test\。
每个DPU呈现以下高层级设计:
图5-25 DPU-内部软件设计
- 所有外部DPU API都以前缀DPU_开头。DPU唯一名称紧随其后。
- 例:DPU_RangeProcHWA_init
- 标准的外部API: init, config, process, ioctl, deinit由每个DPU提供。
- Init:对DPU进行一次性初始化
- 配置:DPU的完整配置:硬件资源,静态和动态(如果DPU支持)
- 静态配置:在正在进行的帧中保持静态的配置
- 动态配置:配置可以从一个帧到另一个帧改变,但只有在进程不进行时-理想情况下,在DPC为该帧导出结果后的帧间时间
- Process: DPU的实际处理功能
- Ioctl:控制接口,允许上层在帧间时间内切换动态配置
- De-init: DPU去初始化
- 所有I/O缓冲区和划痕缓冲区的内存分配都在DPU之外,因为毫米波应用程序依赖内存覆盖技术进行优化,最好在应用程序级别处理。
- 所有的H/W资源必须由应用程序分配并传递给DPU。这有助于保持DPU平台无关性,并允许应用程序在DPU处理没有及时重叠时跨DPU共享资源。
- DPU与操作系统无关,并为所需的操作系统服务使用OSAL API。
DPU的典型调用流可以表示如下。关于chirp/frame的配置和进程API调用的时间将根据DPU功能、它在链中的使用、DPC实现和硬件资源的重叠而变化。
图5-26 DPU-典型调用流
5.5.7 数据路径管理器(DPM)
DPM是支持体系结构“可伸缩性”方面的基础层。这一层吸收了所有的消息传递复杂性(跨核心和内部核心),并为应用程序级别的集成以及集成任何“数据处理链”提供了标准的API。应用层将能够从任何域(MSS或DSS)调用DPM API,并控制“数据处理链”的配置和执行。DPM提供的API可在MSS和DSS上使用。它可以满足(但不限于)的各种部署:
- R5F上的数据路径控制和数据路径执行在R5F/HWA和DSP(分布式)之间分离
- R5F上的数据路径控制和使用HWA (本地)在R5F上执行数据路径
- R5F上的数据路径控制和数据路径执行在DSP上(带或不带HWA)(远程)
- 数据路径控制在DSP上,数据路径执行在DSP+HWA (本地)上
- 数据路径控制在DSP上,数据路径执行在DSP上(本地)
图5-27 数据路径管理(DPM)-内部软件设计
DPM的源代码在mmwave_mcuplus_sdk_<ver>\ti\control\ DPM文件夹中。API的文档可通过doxygen获得,并放置在mmwave_mcuplus_sdk_<ver>\ti\ control\dpm\docs\doxygen\html\index.html。组件的单元测试代码(运行在SYSBIOS之上)也作为包的一部分提供:mmwave_mcuplus_sdk_<ver>\ti\ control\dpm\test\。
5.5.8 数据处理链(DPC)
DPC是数据路径中的一个独立层,它封装了毫米波应用程序的所有数据处理需求,并为与应用程序集成提供了一个定义良好的接口。在SDK中,有一个参考实现对应于通用的“对象检测”链,它已经是过去版本中OOB演示的一部分。此链将符合标准DPM指定的API定义。在内部,这一层将使用数据处理单元(DPU)、数据路径接口和数据路径管理器(DPM)公开的功能来实现“目标检测”链所需的数据流。目标检测DPC的源代码位于mmwave_mcuplus_sdk_<ver>\ti\datapath\ DPC \objectedetection文件夹中。该API的文档可通过位于mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc\objectedetection\deployment_type>\docs\doxygen\html\index.html的doxygen文件获取,并可通过mmwave_mcuplus_sdk_<ver>/ docs/mmwave_sdk_module_document .html轻松浏览。在SYSBIOS之上运行的组件的单元测试代码也作为包mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc\objectedetection\objdethwa \test\的一部分提供。有关此测试的详细信息,请参阅使用测试矢量方法进行数据路径测试一节。
5.5.9 Board/EVM配置
有关Board /EVM特定信息,请参阅PDK文档和<pdk_path>\packages\ti\ Board目录了解更多详细信息。关于Board /EVM的天线配置,请参考<sdk_path>\ti\ Board文件夹。
5.5.10 mmWaveLib
mmWaveLib是一个算法集合,提供了FMCW雷达立方体处理所需的基本功能。它包含仅针对C66x DSP架构的优化库例程。该组件不适用于cortex R5F (MSS)。这些例程不封装任何数据移动/数据放置功能,而是应用程序代码负责将输入和输出缓冲区放置在正确的内存中(例如:L2),并根据需要使用EDMA进行数据移动。mmwave_mcuplus_sdk_<ver>\packages\ti\alg\mmwavelib文件夹中有mmwave_mcuplus_sdk的源代码。该API的文档可通过位于mmwave_mcuplus_sdk_<ver>\packages\ti\alg\mmwave_lib\docs\doxygen\html\index.html的doxygen文件获取,并可通过mmwave_mcuplus_sdk_<ver>/docs/mmwave_sdk_module_document .html轻松浏览。在SYSBIOS之上运行的组件的单元测试代码也作为包的一部分提供:mmwave_mcuplus_sdk_<ver>\packages\ti\alg\ mmwave_mcuplus_sdk_<ver>\packages\ti\alg\ mmwavelib \test\。
库支持的功能:
- 提供FMCW雷达立方体处理所需的基本功能的算法集合。
- 加窗(16位复数输入,16位复数输出,16位加窗实数数组)
- 加窗(16位复数输入,32位复数输出,32位加窗实数数组)
- 32位复数的绝对值Log2
- 矢量运算(累加)
- CFAR-CA, CFAR-CASO, CFAR-CAGO(对数输入样本)
- 长度为8的输入向量的16点FFT(其他FFT例程作为DSPLib的一部分提供)
- 输入序列在一个特定索引处的单个DFT值
- 32 × 32和16 × 16 FFT的摇摆表生成:优化了dsplib的等效函数,用于生成摇摆因子
- FFT加窗系数生成
- 生成DFT正弦/余弦表用于DFT单个bin计算
- 带窗的单个bin的DFT
- 由于DSPLib中的大多数定点FFT函数只支持一种复杂类型的格式,因此使用I/Q交换来改变窗函数。
- CFAR算法
- 浮点CFAR-CA:
- mmwavelib_cfarfloat_call支持CFAR单元平均、单元累积、SO、GO算法,输入信号为浮点格式;
- mmwavelib_cfarfloat_caall_opt实现了与mmwavelib_cfarfloat_call相同的功能,只是周期更少,但检测到的对象不会按升序排列。
- mmwavelib_cfarfloat_wrap实现了与mmwavelib_cfarfloat_call相同的功能,除了边缘样本的噪声样本是另一边缘的圆形样本。
- mmwavelib_cfarfloat_wrap_opt实现了与mmwavelib_cfarfloat_wrap相同的功能,只是周期更少,但检测到的对象不会按升序排列。
- CFAR-OS:有序统计CFAR算法
- mmwavelib_cfarOS接收定点输入数据(天线上累积的16位对数幅度)。搜索窗口大小在编译时定义。
- CFAR后处理的峰值修剪
- mmwavelib_cfarPeakPruning:接收检测矩阵并将相邻的峰分组为一个。
- mmwavelib_cfarPeakQualifiedInOrderPruning:接收CFAR检测到的对象列表,并将相邻的峰值分组为一个。
- mmwavelib_cfarPeakQualifiedPruning:与mmwavelib_cfarPeakQualifiedOrderPruning相同,但没有假设cfar检测到的峰值的顺序
- 浮点CFAR-CA:
- 浮点AOA估计:
- mmwavelib_aoaEstBFSinglePeak实现了Bartlett波束形成算法,用于检测单个目标的AOA估计,并输出检测角度的方差。
- mmwavelib_aoaEstBFSinglePeakDet实现了mmwavelib_aoaEstBFSinglePeak的保存功能,没有检测角度计算的方差。
- mmwaveib_aoaEstBFMultiPeak也实现了Bartlett波束形成算法,但具有多个检测角度,它还输出每个检测角度的方差。
- mmwavelib_aoaEstBFMultiPeakDet实现了与mmwavelib_aoaEstBFMultiPeak相同的功能,但没有每个检测角度的方差输出。
- DBSCAN聚类:
- mmwavelib_dbscan实现了基于密度的应用空间聚类与噪声(DBSCAN)数据聚类算法。
- mmwavlib_dbscan_skipFoundNeiB也实现了DBSCAN聚类算法,但是在扩展集群时,它会跳过已经找到的邻居。
- 杂波清除:
- mmwavelib_vecsum:对16位复向量中的元素求和。
- mmwavelib_vecsubc:从16位复向量的每个元素中减去const值。
- 加窗
- mmwavelib_windowing16xl6_evenlen:支持2倍长度(输入复杂元素的数量),mmwavelib_windowing16x16支持8倍长度。
- mmwavelib_windowing16x32:更新后支持4的倍数长度(输入复杂元素的数量)。之前是8的倍数。
- 浮点加窗:
- mmwavelib_windowing1DFltp:支持定点信号入窗,和浮点信号出窗,为1D FFT准备浮点数据。
- mmwavelib_chirpProcWin2DFxdpinFltOut, mmwavelib_dopplerProcWin2dFxdpinFltout:为2D FFT准备浮点数据,定点输入。不同之处是mmwavelib_chirpProcWin2DFxdpinFltout是每个chirp bin完成的,而mmwavelib_dopplerProcWin2DFxdpinFltout是每个多普勒bin完成的。
- mmwavelib_windowing2DFltp:浮点信号输入,浮点信号输出窗口,为2D FFT准备浮点数据。
- 向量运算
- 浮点和定点功率积累:积累信号功率。还提供了用于右移输出矢量以及累加的备用API。
- 直方图:mmwavelib_histogram右移无符号16位矢量并计算直方图。
- 对有符号16位矢量或有符号32位矢量进行右移操作
- mmwavelib_shiftright16将输入向量中的每个有符号16位元素右移k位
- mmwavelib_shiftright32将输入向量中的每个带符号32位元素右移k位
- mmwavelib_shiftright32to16右移32位向量到16位向量
- 复向量元素明智的乘法。
- mmwavelib_vecmul16x16:将两个16位复向量逐个元素相乘。16位复数输出写入第一个输入向量。
- mmwavelib_vecmul16x32, mmwavelib_vecmul16x32_anylen:将16位复向量与32位复向量逐元素相乘,输出为32位复输出向量。
- mmwavelib_vecmul32x16c:将32位复向量与16位复常数相乘。
- 16位向量元素的绝对值之和
- mmwavelib_vecsumabs返回32位之和
- 最大功率搜索32位复数数据
- mmwavelib_maxpow输出找到的最大功率并返回复样本的相应索引
- mmwavelib_powerAndMax:结合最大功率搜索的功率计算
- 对32位浮点向量的方位角估计的峰值搜索
- mmwavelib_multiPeakSearch:在方位角FFT输出中进行多峰搜索
- mmwavelib_secondPeakSearch:方位角FFT输出中的第二个峰值搜索
- 32位浮点复向量上的直流(天线耦合特征)去除
- 16位向量的向量减法
- 矩阵的实用程序
- 32位矩阵的矩阵转置:类似于DSPLib函数,但针对行大于列的矩阵进行了优化
5.5.11 组跟踪
该算法旨在跟踪多个目标,其中每个目标由一组测量点(CFAR检测层的点云输出)表示。每个测量点都携带探测信息,如距离、角度、径向速度等。该算法不是跟踪单个反射,而是预测和更新群体的位置和色散属性。组被定义为一组测量值(通常是几十个;有时有几百个)与现实生活中的目标有关。R5F和C66x都支持该算法。gtrack的源代码在mmwave_mcuplus_sdk_<ver>\packages\ti\alg\gtrack文件夹中。该API的文档可通过位于mmwave_mcuplus_sdk_<ver>\packages\ti\alg\gtrack \docs\doxygen<2d|3D>\html\index.html的doxygen文件获取,并可通过mmwave_mcuplus_sdk_<ver>\docs\mmwave_sdk_module_document .html轻松浏览。在SYSBIOS之上运行的组件的单元测试代码也作为包的一部分提供:mmwave_mcuplus_sdk_<ver>\packages\ti\alg\gtrack\test\。
5.5.12 CCS调试实用工具
这是一个简单的二进制文件,可以刷写到电路板上,以促进使用TI Code Composer Studio (CCS)开发毫米波应用程序的阶段。详见CCS开发模式。R5F (MSS)和C6 (DSS)都有一个可执行文件,并组合成一个元图像,用于与RADARSS固件一起刷写。当用于CCS调试的appimage刷写到EVM上时,可以在Code Composer Studio上连接、重置内核,并将程序加载到内核上。
5.5.13 HIS Header工具
为用户提供了一个可选的实用程序库,用于创建可以附加到通过LVDS传送的数据的头文件。该库接受CBUFF会话配置,并创建一个填充了适当信息的头,并将其传递回调用应用程序。然后,调用应用程序可以将这个创建的头提供给CBUFF API。头中的这个配置旨在帮助用户解析接收端的LVDS。此实用程序的源代码位于mmwave_mcuplus_sdk_<ver>\packages\ti\utils\hsiheader文件夹中。该API的文档可通过位于mmwave_mcuplus_sdk_<ver>\packages\ti\utils\hsiheader\docs\doxygen\html\index.html的doxygen文件获取,并可通过mmwave_mcuplus_sdk_<ver>\docs\mmwave_sdk_module_document .html轻松浏览。请注意,HSI Header实用程序目前可用于CBUFF流测试用例,但不能用于AWR294X的OOB演示。
5.5.14 PMIC读写工具(AWR2544)
这是一个通用的应用程序,可用于配置PMIC。它可以根据用户输入执行以下功能:
1.读取所有寄存器:读取并打印UART接口上的所有99个PMIC寄存器内容
2.向寄存器写入:向用户提供的寄存器地址写入,并回读寄存器内容以验证写入的值。
3.读取寄存器:在UART接口上读取并打印用户提供的寄存器地址。此实用程序的源代码位于mmwave_mcuplus_sdk_<ver>\ti\utils\test\pmic_read_write文件夹中。文档可通过位于mmwave_mcuplus_sdk_<ver>\ti\utils\test\pmic\docs\doxygen\html\index.html的doxygen文件获取,并可通过mmwave_mcuplus_sdk_<ver>\docs\mmwave_sdk_module_document .html进行浏览。
5.5.15 二级引导装载程序
在SDK中提供了一个简单的元图像创建实用程序(mmwave_mcuplus_sdk_<ver>\scripts\unix\generateMetaImage.sh用于unix和mmwave_mcuplus_sdk_<ver>\scripts\windows\generateMetaImage.bat用于windows)。SBL的源代码是PDK的一部分,可以在<pdk_path>\packages\ti\boot\ SBL文件夹中找到。有关详细信息,请参阅PDK文档。
5.5.16 毫米波SDK-系统初始化
应用程序应该调用Board_init API来启用设备的正确操作。有关更多信息,请参阅PDK文档。
Pinmux模块的源代码由sysconfig生成。请参考MCU PLUS SDK文档和用户指南了解更多详细信息。
5.5.17 用例
在毫米波器件上进行一维、二维和三维处理的数据路径处理由MSS、HWA/DSS和EDMA之间的协调执行组成。这是演示作为目标检测处理链和毫米波演示的一部分。该演示是实时运行的,并具有RADARSS控制等所有相关框架。
位于mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc \objectdetection\<chain_type>\test)的单元测试是允许非实时执行数据路径处理链的独立测试。这允许开发人员将其用作调试/开发辅助工具,最终使数据路径处理具有真实的chirp。开发人员可以很容易地进入代码并根据已知的输入信号进行测试。目标检测链和处理模块(DPU)的核心数据路径处理源代码在本次测试和毫米波演示之间共享。因此,大多数文档也是共享的,可以在目标检测DPC和mmw演示文档中查找。
测试还提供了一个测试发生器,它允许用户在所需的距离、多普勒和方位角箱和噪声水平上人为地设置目标,以便可以根据这些设置检查输出。它可以生成一帧数据。测试生成和验证被集成到测试中,允许开发人员运行包含输入向量的单个可执行文件,并验证输出(在数据路径处理链之后),从而在测试结束时声明通过或失败。测试生成器的详细信息可以在这些测试的doxygen文档中看到,位于mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc \objectdetection\chain_type>\test\docs\doxygen\html\index.html,并且可以通过mmwave_mcuplus_sdk_<ver>/docs/mmwave_sdk_module_document .html轻松浏览。