毫米波SDK使用1

      本文档是AM273x等毫米波雷达处理器SDK的配置和使用,主要参考TI的官方文档《mmwave mcuplus sdk user guide》。这里仅摘取其中重要的部分,其余枝节可参考原文。

2 系统概览

        mmWave SDK分为两个主要组件:mmWave套件和mmWave演示。

2.1. mmWave套件

        mmWave套件是mmWave SDK的基础软件部分,将封装这些较小的组件:

  1. 驱动程序(MCU PLUS SDK的一部分)
  2. DPL (MCU PLUS SDK的一部分)
  3. mmWaveLink和固件(设备固件包的一部分- DFP)
  4. mmWave API
  5. 数据处理层(管理器、处理单元)
  6. 板设置和Flash实用程序

2.2 mmWave演示

        SDK提供了描述毫米波应用程序的各种控制和数据处理方面的演示。作为这些演示的一部分,在PC上提供了演示输出的数据可视化。这些演示是提供给客户的示例代码,用于了解毫米波设备和SDK的内部工作原理,并帮助他们开始开发自己的应用程序。

2.3 外部依赖关系

        构建mmWave SDK所需的所有工具/组件都包含在mmWave SDK安装程序中。但是CCS (用于调试)不包含在mmWave SDK中。

        请参阅mmWave SDK发布说明,了解这些外部依赖项的详细信息以及支持的平台列表。AM273x MCU+ SDK: Using SDK with CCS Projects (ti.com)

2.4 本文档中使用的术语

使用的术语

评论

xWR

这在整个文档中都被使用,其中的章节/组件/模块适用于AWR和IWR的变体

BSS

这在源代码中使用,在本文档中也有少量用于表示RADARSS。它也可以互换称为mmWave前端。注意,这个术语只在AWR294X和AWR2544 soc上下文中使用。

MSS

主子系统。它也可以互换地称为Cortex R5F。

DSS

DSP子系统。它也可以互换地称为DSS或C66x核心。

3 开始上手

        开始使用mmWave SDK的最佳方法是运行软件包中提供的各种演示程序中的一个。TI mmWave EVM与mmWave演示一起预先闪现。但是,预闪演示的版本可能比本文档中提到的SDK版本早。用户可以按照本节升级/运行闪过的演示版本。演示(源代码和预构建的二进制文件)放在mmwave_mcuplus_sdk_<ver>/ti/demo/<platform>/mmw/文件夹中。

毫米波demo

        这个演示位于mmwave_mcuplus_sdk_<ver>/ti/demo/<platform>/mmw文件夹。毫米波演示展示了使用毫米波SDK(软件开发工具包)中的驱动程序的SoC的一些雷达传感和目标检测功能。它允许用户指定chirp配置文件,并实时显示检测到的对象和其他信息。这个演示的详细说明可以在演示的docs文件夹中找到,可以通过mmwave_mcuplus_sdk_<ver>/docs/mmwave_sdk_module_document .html浏览。该演示提供检测到的对象和其他实时信息,可以使用TI Gallery应用程序- 'mmWave demo Visualizer'进行可视化,托管在-https://dev.ti.com/gallery/view /mmWave /mmWave_Demo_Visualizer。运行在TI mmWave EVM上的mmWave Demo版本可以通过Visualizer应用中的HelpAbout菜单获得。

        另外,提供的级联demo必须在级联的硬件板上运行,由于AM2732开发板是和AWR2243一起使用,只有单个射频芯片,无法运行cascade模式的demo,下图是TI论坛的解释,也可以参考4.6节的内容。

        下面的部分描述了用演示启动设备然后执行它的一般过程,这里只摘录一部分,更详细内容可参考原文档。

3.1 硬件设置(EVM详细信息)

        下面的EVM图显示了一些重要的电缆连接、端口和交换机。注意“BOOT MODE”开关的位置,这用于在不同的启动模式之间切换,如OSPI, UART, NOBOOT模式。

        请参阅EVM用户指南以了解EVM的启动模式(毫米波设备的EVM用户指南中的“感应电源(SOP)跳线”部分)。

3.1.1 AM273x

3.2 毫米波器件编程

        以下是对毫米波设备及其提供的可编程内核的一些了解。有关详细信息,请参阅相应毫米波设备的技术参考手册。在使用CCS加载二进制文件和/或理解“入门”一节中存在的各种术语时,需要这些详细信息

3.2.1 AM273x

        该器件具有一个cortex R5F内核和一个DSP C66x内核,可用于用户编程,分别称为MSS/R5F和DSS/ C66x。演示有两个可执行文件——一个用于MSS,一个用于DSS,它们应该并发加载,以便演示工作。有关详细信息,请参见运行演示部分。单元测试可能有MSS或DSS的可执行文件,或者两者都有。这些可执行文件意味着在独立操作中运行。这意味着可以在MSS R5F上加载并运行MSS单元测试可执行文件,而无需在DSS上下载任何代码。

        类似地,可以在DSS C66x上加载和运行DSS单元测试可执行文件,而无需在DSS上下载任何代码。这方面的例外是在完整单元测试和数据路径管理器(DPM)单元测试下的毫米波单元测试。

4.6 如何运行2片级联应用(仅适用于AM273X + 2xAWR2243 EVM)

        预构建的二进制文件(仅限R5F)可在mmwave_sdkmmwave_mcuplus_sdk_<ver>/ti/utils/test/cascade/am273x中获得。2片级联应用支持捕获原始ADC数据使用DCA1000 EVM。

        1.级联EVM上电。

        2.连接R5F核,下载“am273x_cascade_mss.xer5f“应用,不启动执行。

        3.从mmwave_sdkmmwave_mcuplus_sdk_/tools/data_capture拷贝AM273X_Capture.json文件。

        4.在应用启动执行前,打开C:/ti/mmwave_studio_03_00_00_14/mmWaveStudio/PostProc的命令提示符,然后发出以下命令。

           a. DCA1000EVM_CLI_Control.exe fpga AM273X_Capture.json

           b. DCA1000EVM_CLI_Control.exe start_record AM273X_Capture.json

           c. AM273X_Capture.json file configures to save the captured LVDS data at "C:\ti\data_capture\am273x__Raw_0"

      5.应用启动执行。

5 毫米波SDK深度解析

5.1 系统部署

      典型的毫米波应用程序将执行以下操作:

  1. 通过mmaveLink实现射频前端的控制和监控
  2. 通过标准外设传输外部通信
  3. 部分雷达数据处理采用DSP

        毫米波传感器的典型客户部署如下图所示:

        1.appimage (MSS + DSS代码)从连接到毫米波设备的串行闪存(通过QSPI)下载;

        2.远程实体的可选高级控制;

        3.发送低速数据输出(检测到的对象)到远程实体.

图5-4 自主毫米波传感器(独立模式)

        上述部署可以使用毫米波SDK及其分层结构中的组件来实现,如下所示:

图5-5 SDK分层框图

5.2 典型毫米波雷达处理链

        下图显示了一个典型的毫米波雷达处理链,它接收ADC数据作为毫米波前端的输入,然后执行距离和多普勒FFT,然后使用CFAR进行非相干检测。最后利用三维FFT估计角度,检测到的点代表点云数据。然后,点云数据可以使用更高层的算法(如聚类、跟踪、分类)进行后处理,以表示真实世界的目标。

图5-6 典型毫米波雷达处理链

        在以HWA为处理节点的设备上,使用mmWave SDK可以实现如下图所示的上述处理链。下图中,绿色箭头表示控制路径,红色箭头表示数据路径。蓝色块是毫米波SDK组件,黄色块是自定义应用程序代码。软件流/调用的层次结构用嵌入框表示。根据高级算法(如聚类、跟踪等)的复杂性及其内存/MIPS消耗,它们可以部分在毫米波设备内实现,也可以完全在外部处理器上运行。

图5-7 使用毫米波SDK组件的典型的毫米波雷达处理链

        每个毫米波器件提供不同的处理节点来实现毫米波处理。AM273X具有HWA+DSP(C66x)。对于具有多个处理节点的设备,毫米波检测处理链可以根据性能和可扩展性的需要利用它们。下图是一个检测处理链的示例,它使用各种数据处理单元(DPU)来执行典型的毫米波处理直至点云。毫米波设备存储器中的毫米波数据表示形成了各个DPU之间的接口层。每个DPU都可以使用HWA或DSP处理节点独立实现——选择取决于用例或给定毫米波设备上该处理节点的可用性。

图5-8 使用毫米波SDK的可扩展数据处理链

        请参阅mmwave_mcuplus_sdk_<ver>\ti\demo\<platform>\mmw文件夹中的代码和文档,了解有关如何使用mmWave SDK组件实现此链的更多详细信息和示例代码。

5.3 典型编程顺序

        上述处理链可以分为两个不同的块:射频控制路径和数据路径。

5.3.1 射频控制路径

        上述处理链中的控制路径由下列模块描述。

图5-9 典型毫米波雷达控制流

        下面的一组图显示了设置典型控制路径(init、config、start)的应用程序编程顺序。这是一个简化的高级图,以突出显示主要的软件API,可能不会显示所有的处理元素和调用流。有关此调用流的示例实现,请参阅mmwave_mcuplus_sdk_<ver>\ti\demo\<platform>\mmw文件夹中的代码和文档。

5.3.1.2 单射频控制(MSSRADARSS或DSSRADRSS)

        在这种情况下,射频控制路径运行在主子系统(Cortex-R5F)或DSP子系统(C66x)上,应用程序可以简单地以隔离模式调用SDK中的毫米波API来实现大部分功能。

图5-10 毫米波隔离模式:详细控制流(初始化顺序)

图5-11 毫米波隔离模式:详细控制流(配置顺序)

5.3.1.3 协同射频控制((MSS+DSS)<->RADARSS)

        在这种情况下,控制路径可以以“合作”模式运行,其中RF控制API可以被两个域互换调用(但需要维护API的顺序)。这样的部署可以让射频初始化和配置由MSS发起,并且在数据路径配置完成后由DSS发起启动。在下面的图中,控制路径完全运行在MSS上,MSS负责正确配置RADARSS (射频)和DSS(数据处理)。毫米波单元测试提供了这种合作模式的示例实现。

图5-13 毫米波协同模式:详细控制流(初始化顺序)

图5-14 毫米波协同模式:详细控制流(配置顺序)

图5-15 毫米波协同模式:详细控制流(启动顺序)

5.3.2 数据路径

        毫米波检测处理可以分为以下应用代码层,控制/管理层操作数据处理元素,处理链连接各个模块创建数据流和低层数据处理模块和接口。

图5-16 典型毫米波检测处理层

        毫米波设备提供了一些关于如何使用设备内的各种控制/处理节点来实现数据处理层的选项。为了便于跨这些部署类型编程,数据路径管理器(DPM)向应用程序提供了简化的API结构,同时隐藏了任务间和处理器间通信的复杂性。从下图中可以看出,应用程序只需要调用各种DPM API来控制处理链(在下面的梯形图中看到“蓝色”的函数调用),并在报告回调中对这些API的结果做出反应。数据处理链(DPC)也通过DPM向应用程序提供了一个标准化的API结构,并使用数据处理单元(DPU)封装了数据流的实现,同时提供了基于IOCTL的简单接口来配置和触发数据流。基于用例和毫米波设备硬件功能,应用程序可以选择以下部署之一:

  1. DPC与控制核心在同一核心上运行,应用程序可以通过DPM在本地模式下控制DPC。(见下面的本地域配置和处理图)
  2. DPC运行在与控制核心不同的另一个核心上,应用程序可以通过DPM远程控制DPC。(参见下面的远程域配置和处理图)
  3. DPC分为两个核心,应用程序可以在分布式模式下通过DPM控制DPC。(见下图分布式域配置及处理图)

        下面的梯形图显示了初始化、两种不同形式的配置(一种在本地核心上启动,另一种在远程核心上启动)、启动触发器、chirps/frame事件和停止触发器的流程。MSS和DSS职责的选择是一个可能的例子——它们的角色可以根据应用程序的需要互换。这些梯形图没有显示相应的毫米波/射频控制调用,以显示射频控制和数据路径控制之间的独立性。尽管如此,典型的应用程序将遵循以下两种形式的控制流程:

  1. mmWave初始化和DPM初始化(顺序不重要)
  2. 毫米波配置和DPM IOCTL的DPC配置(顺序不重要)
  3. DPM启动,然后毫米波启动(注意,建议这样做,因为DPC应该在毫米波启动导致的实时帧/chirp H/W事件发生之前处于启动状态)
  4. 毫米波停止,然后DPM停止(注意,建议这样做,因为DPC应该在实时帧/chirp H/W事件由于毫米波停止而停止后停止)
5.3.2.2 具有本地域控制的数据处理流程

        在此部署中,运行实际数据处理链(DPC)的核心(MSS或DSS)也控制它。应用程序调用DPM API进行初始化,数据处理IOCTL进行配置,启动和停止。DPM使用应用程序注册的报告回调函数从DPC报告状态。应用程序为DPM/DPC运行提供了一个执行上下文(任务)。DPC将处理结果(点云、跟踪对象等)提供给这个执行上下文中的应用程序。

图5-17 具有本地域控制的数据处理流程(初始化/配置)

图5-18 具有本地域控制的数据处理流程(启动/chirp/帧/停止)

5.3.2.3 具有远程域控制的数据处理流程

        在此部署中,数据处理链在选定的数据核心上运行,而它的控件存在于另一个核心上。控制核心和数据核心上的应用程序代码调用DPM API进行初始化和同步。控制核心调用数据处理IOCTL来配置、启动和停止API。H/W事件在数据核上接收。DPM使用应用程序在控制核和数据核上注册的报告回调函数从DPC报告状态。DPC将处理结果(点云、跟踪对象等)返回给数据核心应用程序代码,数据核心应用程序代码可以使用DPM发送结果API将结果发送给控制核心。

图5-19 具有远程域控制的数据处理流程(初始化/配置)

图5-20 具有远程域控制的数据处理流程(启动/chirp/帧/停止)

5.3.2.4 分布式数据处理流程和控制

        在此部署中,数据处理链与控件一起拆分为多个核心。两个核心上的应用程序代码调用DPM API进行初始化和相互同步。任何一个核心都可以调用数据处理IOCTL来配置、启动和停止API。DPM使用两个核心上的应用程序注册的报告回调函数从DPC报告状态。可以使用DPM中继结果API将运行在一个核心上的DPC的部分结果传递给运行在另一个核心上的DPC。DPC可以将最终的处理结果(点云,跟踪对象等)提供给同一核心的应用程序代码,然后该代码可以使用DPM发送结果API将结果发送给运行在其他核心上的应用程序。下面的梯形图显示了将DPC分成两个核心的众多方法之一。

图5-20 分布式数据处理流程和控制(初始化/配置)

图5-20 分布式数据处理流程和控制(启动/chirp/帧/停止)

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔袭的算法工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值