毫米波SDK使用1

2024-06-08 13:52
文章标签 sdk 使用 毫米波

本文主要是介绍毫米波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/帧/停止)

这篇关于毫米波SDK使用1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1042369

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念