- 本课程为精品课,您可以登录eeworld继续观看:
- 2.3 mmWave SDK 简介
- 登录
- 课程目录
- 相关资源
- 课程笔记
大家好,欢迎参加毫米波 SDK 培训。
本培训面向使用 TI 单芯片
毫米波雷达器件的软件系统和测试
工程师。
本培训的目的是
帮助您了解AWR1443、
AWR1642、IWR1443 和 IWR1642等毫米波传感器的
软件产品。
所有这些器件的通用软件包称为
毫米波 SDK。
本培训概要性介绍了毫米波 SDK
构建块和核心组件。
培训中介绍了不同 SDK 组件
之间的相互作用,还说明了这些毫米波器件中的典型
控制和数据流。
在详细介绍SDK 之前,
我们首先了解一下适用于这些毫米波
传感器的不同平台。
xWR14xx 和xWR16xx
都是适用于单芯片自主毫米波传感器的平台。
第一个平台是 xWR14xx,
它包括 AWR1443和 IWR1443,
具有四个接收通道和三个发射通道,
并且附带用户可编程的 R4F
微控制器和硬件加速器,用于进行信号
处理。
而第二个平台包括
AWR1642 和IWR1642,
具有四个接收通道和两个发射通道,
并且附带相同的微控制器,
但具有一个附加的C674 DSP 而不是硬件
加速器。
来自这些器件的数据可以
使用多种不同的可用外部接口
发送到外部处理器或控制器。
请注意,这两个器件
都需要一个外部串行闪存,其中
存储了微控制器和 DSP可以使用的应用程序代码。
因此,为了在这些器件上
启用应用程序和软件开发,TI 提供了平台软件,
其中包括适用于 R4F
和 DSP 的 TI实时操作系统;
适用于不同外设的器件驱动程序;
用于对毫米波器件进行编程的 API
和用于进行信号处理的库;
用于演示最终用例的不同演示应用程序;
以及某些工具。
这些器件的平台软件
称为毫米波软件开发套件,或称毫米波 SDK。
这是 TI 的毫米波SDK 的高级方框图。
对于彩色编码,蓝色块
表示 TI 提供的生产质量组件。
黄色块中的组件以参考或示例的
形式提供,用户需要
这些组件以便根据系统用例开发它们。
现在让我们看一下TI 毫米波 SDK 中的不同
组件。
此方框图的底部是
引导加载程序,它驻留在 R4F MCU 的
主 SS 内,负责启动整个器件。
它还将应用程序代码从串行闪存
加载到不同内核并执行这些代码。
雷达 SS 固件或毫米波前端
控制射频和模拟硬件块,
并负责整个毫米波雷达的操作。
mmWaveLink 是雷达SS 固件的驱动程序,
并提供用于控制前端中每个硬件块的
低级 API。
毫米波 API 是对 mmWaveLink 的抽象,
并为应用程序提供用于配置
前端的简单 API。
毫米波 API 还处理 R4F MCU
和 DSP 子系统之间的同步和
进程间通信。
SDK 还包括 TI实时操作系统
TI-RTOS 和适用于主子系统
和 DSP 子系统的基于 RTOS 的驱动程序。
所有驱动程序都附带 OSAL,
这意味着可以将这些驱动程序移植到
不同的 RTOS 中,如此处所示。
毫米波库包含用于信号处理的
标准例程和算法,
例如 FFT 和CFAR 算法。
SDK 中还封装了
一些简单应用程序,
演示了如何使用这些组件来创建简单的接近
[听不清] 应用程序。
毫米波演示可视化工具是一个 GUI,它在 PC 上
运行并处理物体数据,如光学器件的
距离、速度和相对位置。
这是 TI 毫米波SDK 的目录结构。
这就是在安装了 SDK 后,
您的 PC 中将会显示的目录结构。
也就是说,有四个文件夹:packages、docs、
firmware 和 tools。
packages 包含用于构建毫米波 SDK 的脚本文件。
TI 文件夹包含上一个幻灯片中
讨论的组件的所有源文件。
所以它包括演示源文件,
该演示是开包即用演示和捕获演示。
drivers 文件夹包含驱动程序的源文件,
包括关联的PinMux 和
其他外设驱动程序。
驱动程序附带 OSAL,
因此可以将其放入到不同 RTOS 中。
所有驱动程序都附带相对应的 Doxygen
文档,这些文档说明了如何在单元级别使用
驱动程序,另外还附带适用于这些驱动程序 API 的单元测试
功能。
control 文件夹包含用于
控制毫米波前端的 API,因此具有 mmWaveLink,
它是低级 API,毫米波将提供
高级 API。
algorithm 文件夹包含mmWaveLib,它是
信号处理库。
platform包含特定于
平台的文件,例如适用于
这些平台的连接器命令文件。
utils 文件夹包含所有实用程序,
例如 ccsdebug应用程序、用于
通过 [听不清] 接口发送数据的命令行接口、
系统描述器cycleprofiler
和 testlogger。
请记住源文件。
毫米波 SDK 包含docs 文件夹,
其中包含版本说明和用户指南。
对任何新用户来说,可以将这些内容作为入门起点。
这些版本说明包含有关版本的信息:
有哪些不同组件、
对不同工具的依赖性如何?
除此之外,还将许多新
更改捕获到了这一特定版本中。
user guide包含有关
如何运行毫米波SDK 演示,即开包即用
演示和捕获演示、如何设置毫米波 SDK
以及如何构建毫米波 SDK 的信息。
最后,有一个firmware 文件夹,
其中包含雷达子系统的固件和
数据工具文件夹。
有关 SDK 内容的更多信息,
请参阅版本说明和用户指南。
现在简要介绍一下每个构建块。
使用毫米波 SDK驱动程序,可以通过
易于使用的 API 以可移植、功能丰富的方式访问外设。
下面是其中一个驱动程序的示例,
所有驱动程序都遵循相同的结构和约定。
例如,器件和 CPU 配置
允许在不同的 CPU 上移植每个驱动程序。
在这种情况下,驱动程序在 MSS和 DSP 子系统之间是
通用的。
每个级别都使用 OSAL提供对硬件 IP 的
威胁安全和控制访问权限。
TI-RTOS 为这些驱动程序提供所有与操作系统
有关的功能。
SDK 中的所有驱动程序
均附带其 Doxygen 文档和测试应用程序,
演示这些API 的用法。
现在让我们看一下毫米波组件。
mmWaveLink 是雷达子系统或毫米波前端的
驱动程序。
如您所知,雷达子系统控制
射频和[听不清],
并且负责整个毫米波雷达的操作。
在其内部块上,可以
使用通过邮箱传来的消息控制
任何操作。
mmWaveLink 框架提供基础架构,
它可生成这些消息,还可处理
通过邮箱进行的通信。
mmWaveLink 提供用于控制雷达
子系统和 FMCW 线性调频脉冲配置的
低级 API。
下面是一些API 的快照。
设备管理器 API 可用于初始化某个驱动程序
并执行与毫米波前端的握手。
传感器控制API 可用于
配置毫米波前端中的不同块,例如,
您可以配置需要启用多少个
接收通道和多少个发射通道。
同样,您可以配置ADC 格式、线性
调频脉冲配置,并且可以使用这些 API 来
启动和停止帧传输。
毫米波组件提供高级 API,
这些 API 使低级mmWaveLink API 抽象化
并为应用程序提供简单接口。
模型在 MSS 和DSP 上运行,
并可以从这两个内核中的每个内核上
灵活地配置雷达 SS固件或毫米波前端。
它还处理MSS 和 DSP
之间的通信,从而实现同步。
在本示例中,前端的配置
是从 MSS 应用程序中完成的,
但毫米波 API 会将该配置传递给 DSP,
以便 DSS 可以相应地配置 EDMA 和
信号处理链。
mmWaveLib 在 DSP子系统上运行,
它为 FMCW 信号处理提供关键例程,
其中包括已对输入数据执行的
各种 FFT 例程。
基本检测算法,例如 CFAR-CA,
不同的角度估算FFT 以及其他帮助器
例程,例如缩放、平移和累积。
所有这些例程都已针对C674x 架构进行优化,
以实现更好的系统性能。
这是毫米波 SDK中的一个典型流。
随着引导加载程序使 MSS 和 DSS 结束复位,
主子系统上的应用程序
将使用毫米波 API 和毫米波 Web 链接驱动程序
与毫米波前端通信。
应用程序执行毫米波前端的
所有配置并触发帧。
触发帧后,会将来自前端的 ADC 数据
移动到 ADC 缓冲器。
ADC 缓冲器是一种乒乓缓冲器,
这意味着在将数据
从毫米波前端移动到乓缓冲器时,
会将乒缓冲器中的数据移动到 DSP 存储器。
而 DSP 使用毫米波库
在乒缓冲器上执行距离 FFT。
距离 FFT完成后,
它将使用 EDMA 驱动程序将数据移动到 L3 存储器。
将会对某一帧中的所有线性调频脉冲重复该序列,
并为所有线性调频脉冲计算距离 FFT。
在帧间时间段内,DSP 会将数据
从 L3 存储器移回DSP 存储器
并执行多普勒 FFT。
同样,多普勒 FFT 的结果是将数据
移动到 L3 存储器。
执行多普勒 FFT 后,DSP 运行基本 CFAR 算法
进行物体检测,并使用角度估算
例程计算物体的相对位置。
现在,数据发送回了主子系统。
MSS 可以使用不同的外设驱动程序将此信息
发送到外部控制器,
也可以将此数据传递到外部处理器
以进行物体跟踪和分类。
现在让我们看一下详细的控制流。
MSS 应用程序使用 SOC_init
初始化器件并为毫米波前端加电。
之后,它使用MMWave_init API
执行邮箱和其他关键驱动程序的
基本初始化。
之后,它等待前端启动完成。
另一方面,DSP 应用程序
使用 MMWave_executeAPI,
将 IPC 设置为从 MSS 接收数据。
之后,MSS和 DSP
进行同步以相互检查运行状态。
DSS 还会初始化EDMA 和 ADC 缓冲器
以进行数据处理。
初始化完成
并且 MSS 和DSS 同步后,
MSS 应用程序使用MMWave_config API
将配置从应用程序
解析到毫米波前端。
毫米波 API 使用mmWaveLink API,
构建邮箱消息
并将其发送到毫米波前端。
毫米波前端收到消息后,
它将检查消息的完整性
并将确认发回mmWaveLink。
通过这种方式,将所有消息发送到前端。
毫米波 API 将所有配置发送到
前端后,它还会将配置传递给该 DSP。
DSP 收到此配置后,
它就会相应地设置EDMA 和 ADC 缓冲器。
所有配置都完成后,
MSS 应用程序将使用MMWave_start API,
向 DSP 发送一条消息。
DSP 接收到该启动消息后,
它将启用数据处理并等待 ADC 数据。
之后,毫米波 API将使用 mmWaveLink
API 向毫米波前端发送一条启动消息。
毫米波前端收到该启动消息后,
它将开始帧的传输。
现在让我们看一下数据流。
触发了某个帧后,毫米波前端
会将 ADC 样本移动到乒乓 ADC 缓冲器中。
一旦这些缓冲器中有一个变满后,
它会生成DSP 中断,
EDMA 会将数据从其中一个缓冲器移动
到 DSP 存储器中。
之后,DSP 使用 mmWaveLib 对该缓冲器执行距离 FFT,
并将结果移动到 L3 存储器。
然后对帧中的所有线性调频脉冲重复该序列,
并将距离 FFT 存储到 L3 存储器中。
在帧间时间段内,DSP
会将 EDMA 配置为将数据从 L3 存储器
移回到 DSP 存储器并执行多普勒 FFT。
同样,多普勒FFT 完成后,
DSP 会将 EDMA 配置为将数据移回到 L3 存储器。
之后,DSP 进行物体检测和角度
估算,并以乒乓方式将物体列表移动到
其中一个物体缓冲器中。
之后,MSS 从其中一个缓冲器中拾取此物体列表
并将其发送到外部控制器。
这样,我们便完成了此次培训课程。
有关更多信息,请参阅毫米波 SDK 用户指南
和演示应用程序。
希望这次培训对您有所帮助,
真诚地感谢您抽出宝贵时间参与培训。305
课程介绍
共计14课时,3小时38分23秒
猜你喜欢
换一换
推荐帖子
- PWM频率计算
- 本人一直搞不清楚晶振的频率与内部产生信号的频率,现在不知道怎么计算2407的生成PWM最大是多少,忘哪位高手能指点一下,谢谢...
- xief0925 模拟与混合信号
- 【TI首届低功耗设计大赛】手持温度心电监测仪(综合帖)
- 本帖最后由 hh376158101 于 2015-1-5 23:59 编辑 说说我设计这个手持式监护仪的缘由吧。记得高考那年,因为身体原因住进了医院,在医院住了挺久,每天都要进行两次体温检测,使用的是常规的水银体温计,由于所在的是省里的大医院,所以病号特别多,每一层200多个病号。每一个病号都要分发、回收体温计。护士们都是通过纸笔记录测量数据,回到护士站一一输入系统。所以护士姐姐的工作量还是挺...
- hh376158101 微控制器 MCU
- 求助:无刷直流电机采集三相电压使用母线电压乘以占空比的方法?
- 有谁会者个方法的,在TI 给的PM sensorless示例程序中,有永磁同步电机采用这样方法获得三相电压,可是移植到BLDC我就不知道怎么做了.(新手) ...
- miumiuxi 微控制器 MCU
- UART采用中断方式发送数据
- LM3S8790,UART采用中断方式发送数据,相关函数如下,我不明白发送采用中断方式有什么好处,还有中断服务程序为什么要执行//?的三行代码? 我的理解是这样的,不知道对不对。请大家帮忙看看。 假设要发送的数据为1000个字符。当主程序调用UARTSend时,开始发送数据,数据写入FIFO,当FIFO填充深度满足中断条件时,产生发送中断,...
- ydxyls 微控制器 MCU