mmWaveLink Framework
文章目录
- Introduction
- Modules
- Porting Guide
- Step1 - Define mmWaveLink client callback structure
- Step2 - Implement Communication Interface Callbacks
- Step3 - Implement Device Control Interface
- Step4 - Implement Events Handlers
- Step5 - Implement OS Interface
- Step6 - Implement CRC Interface and Type
- Step7 - Implement Debug Interface
- Final Step - Initializing mmWaveLink Driver
- CRC Type Implementation
- Big Endian Support
- General Notes
- Application Care Abouts
Introduction
TI汽车和工业毫米波雷达产品时高度集成的77GHz CMOS毫米波器件。这些器件集成了所有的射频和模拟功能,包括VCO、PLL、PA、LNA、混频器和多个TX/RX通道的ADC集成到一个芯片中。
- AWR1243是一中射频收发设备,它在一个芯片中包括4个接收通道和3个发射通道。AWR1243还支持多芯片级联。
- AWR1443/IWR1443是一种毫米波片上雷达设备,包括4个接收通道和3个发射通道,除此之外还有一个Cortex R4F和硬件FFT加速器
- AWR1642和IWR1642是毫米波雷达片上设备,包括4个接收通道和2个发射通道,另外还有一个用于信号处理的Cortex R4F和C674x DSP。
TI毫米波雷达设备包括一个mmWave前端或BIST(内置自测试)处理器,负责事实配置射频/模拟和数字前端,并定期安排校准和功能安全监控。这使得mmwave前端(BIST处理器)能够自成一体,能够自我调整以处理温度和老化效应,并从外部主机的角度实现显著的易用性。
TI mmwave前端是一个封闭的子系统,它的内部快可以使用来自邮箱的消息进行配置。
TI mmWaveLink提供了api生成这些消息并通过邮箱将其发送到mmwave前端。它还包括每个消息的确认和CRC、以提供可靠的通信。
TI mmWaveLink框架:
- 是应用程序和mmwave前端之间的链接
- 提供低级API来配置前端并处理与前端的通信
- 独立于平台和操作系统的,这意味着它可以移植到任何提供通信接口(如SPI和基本操作系统例程)的处理器中。mmWaveLink框架也可以在单线程环境中运行。
- 集成到mmWave SDK中,可以在R4F或DSP上运行,并通过邮箱接口于mmWave前端进行通信
Modules
为了简单起见,TI的mmWaveLink框架能够划分为多个模块。
这些功能包括设备控制、射频/模拟控制、ADC配置、数据路径(LVDS/CSI2)配置、FMCW线性调频脉冲配置等。
下面列出了mmWaveLink框架中的各个模块:
Device - 控制毫米波雷达设备,包括:
初始化,如:mmwave设备开机/关机,固件补丁下载,级联设备配置,如添加/连接多个mmWave设备Sensor - RF/传感器配置模块控制mmWave前端内的不同硬件块
mmWave前端有以下关键块:- Chirp时序器(雷达定时引擎) - 这个模块负责构建FMCW线性调频脉冲或帧的序列,并对定时引擎进行编程
- Rx/Tx通道 - 这个定义了需要启用多少个Rx和Tx信道。并定义了成像雷达在级联模式下如何配置毫米波前端
- Rx模拟链 - 定义接收信号的混合方式以及链中不同滤波器的配置方式
- ADC和数字前端配置 - 这定义了中频数据如何数字化,以及如何在DSP或硬件加速器中对器进行采样以进一步处理。相同的ADC数据可以通过LVDS/CSI2接口发送到扩展处理器。
配置API可以进一步分类为:
- mmwave静态配置,例如:Tx和Rx通道、ADC配置等
- mmwave动态配置,例如:FMCW Chirp配置,profile配置
- mmwave高级配置,例如:二进制相位调制、动态节能等
- mmwave传感器控制,例如:帧的启动/停止
Data Path - 数据通道配置模块控制mmWave设备中的高速接口
配置APIs包括如下:- 高速接口(LVDS/CSI2)选择
- 数据格式和速率的配置
- ADC,Chirp Profile(CP)、Chirp Quality(CQ)数据传输的序列
- Lane的配置
- LVDS/CSI2指定的配置
Monitoring - 监控/校准模块配置mmWave设备的校准和安全监控功能
TI-mmWave前端包括由TI编程的内置处理器,用于处理射频校准和安全监控功能。射频校准确保设备在温度和工艺角保持不变Communication Protocol - mmWave通信协议确保主机(内部或外部)和mmWave前端之间的可靠通信。
- 这是一个简单的停止等待协议。在发送下一条消息之前,每个消息都需要接收方确认。
- 消息分为"命令"、“响应”和“异步事件”
- 如果无法立即处理命令,则立即发送ACK响应(如果请求)。"异步事件"在命令执行完成后发送
Porting Guide
将mmWaveLink驱动程序移植到任何新平台都是基于几个简单的步骤。这个指南将带您逐步完成此过程。请仔细遵循说明,以避免在此过程中出现任何问题,并使设备能够高效、正常地工作。请注意,驱动程序地所有修改和移植调整只能在应用程序中进行,不能修改驱动程序。应用程序文件地更改将确保将来顺利地处理到新版本的驱动程序。
Step1 - Define mmWaveLink client callback structure
使用mmWaveLink客户端将mmWaveLink framework移植到不同的平台。这些回调被分为不同的结构,如操作系统回调、通信接口回调和其他。应用程序需要定义这些回调并使用structure初始化mmWaveLink框架。
Step2 - Implement Communication Interface Callbacks
mmWaveLink设备支持SPI和邮箱之间的多种标准通信协议,根据设备的不同,需要选择通信信道。例如xWR1443/xWR1642/xWR1843需要邮箱接口,AWR1243支持SPI接口。对于这个会话通道接口应该包括4个简单的访问函数:
1. rlComlfOpen
2. rlComlfClose
3. rlComlfRead
4. rlComlfWrite
Step3 - Implement Device Control Interface
mmWaveLink的驱动程序内部开启/关闭mmWave雷达设备。这些接口具体实现取决于平台,因此您需要实现以下功能:
1. rlDeviceEnable
2. rlDeviceDisable
3. rlRegisterInterruptHandler
Step4 - Implement Events Handlers
mmWaveLink驱动程序报告异步事件,指示mmwave雷达设备状态、异常等。应用程序可以注册这个回调来接收这些通知并采取适当的措施。
Step5 - Implement OS Interface
mmWaveLink驱动程序可以在操作系统和非操作系统环境下工作。若应用程序更喜欢使用操作系统,则需要实现基本的操作系统例程,如任务、互斥体和信号量。在非操作系统环境下,应用程序需要实现等价形式的互斥体和信号量。
Step6 - Implement CRC Interface and Type
mmWaveLink驱动程序使用CRC来保证消息的完整性。如果应用程序喜欢使用CRC,则需要实现CRC例程并提供CRC例程。
Step7 - Implement Debug Interface
mmWaveLink驱动程序可以打印调试信息。若应用程序希望启用调试信息,则需要实现调试回调
Final Step - Initializing mmWaveLink Driver
一旦实现了上述所有接口,应用程序需要在rlClientCbs_t中填充这些回调,并通过传递客户端回调来初始化mmWaveLink。应用程序还需要定义mmWaveLink驱动程序运行的位置,例如,对于AWR1243,使外部主机,对于xWR1642/xWR1843,是MSS/DSS。
CRC Type Implementation
设备设置和接收命令相同的CRC类型以响应消息。所以,对命令的CRC类型的更改也会导致对响应的CRC类型的更改。[请参阅步骤7-实现调试接口]。mmWave设备(MasterSS&RadarSS)在异步事件消息中默认使用16位CRC类型。如果主机需要将不同的CRC类型设置为Async event,那么它必须实现以下代码片段。
Big Endian Support
默认情况下,mmWaveLink驱动使用的是小端法。对于大端法的支持是通过使用预处理宏MMWL_BIG_ENDIAN作为编译时选型提供的。
对于内存的优化,mmWaveLink不交换结构缓冲区中的数据元素。应用程序负责在讲结构缓冲区传递给mmWaveLink API之前交换多字节数据元素。由于SPI字大小是16位,32位字段(如整数)的交换需要在16位的边界处完成。
General Notes
- 主机应确保在CS变低和SPI时钟开始之间至少有2个SPI时钟延迟
- 主机应确保通过SPI传输每16位就切换一次CS
- 连续CS之间至少应有2个SPI时钟的延迟
- SPI需要在模式0(相位1,极性0)下运行
- SPI字节长度应为16位(半字)
Application Care Abouts
- RF加电重试的消息是不支持的
- 建议主机等待RF Power Async msg,然后再发出任何其他api。缺少射频启动异步消息应视为启动失败
- 建议再发出下一个CMD之前等待潜在故障注入API的异步事件
- 主机应确保对主机中断的响应延迟为30us,以允许再设备中设置主机后的SPI-DMA配置为高
- 当固件下载通过SPI完成时,建议再mmWaveLink/HOST中使用232作为块大小
参考文献:
- 《mmWave SDK Module Documentation》
mmWaveLink Framework相关推荐
- Xiaojie雷达之路---mmWaveLink Framework概览
Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,本篇文章主要是介绍一下TI毫米波雷达中的mmWaveLink Frame整个框架,一起来看看吧!!! 本篇 ...
- Tengine Framework基础
Tengine Framework基础 最受开发者喜爱的边缘AI计算框架 Tengine是OPEN AI LAB推出的自主知识产权的边缘AI计算框架,致力于解决AIoT产业链碎片化问题,加速AI产业化 ...
- EF-Entity Framework 相关技术点收集贴
不定期.偶尔.添加更新 在网络上看到或者自己开发过程中碰到的EF-Entity Framework相关技术点 本文地址:http://www.cnblogs.com/vnii/archive/2012 ...
- Qt Installer Framework实战
Qt Installer Framework是Qt发布的安装程序支持框架,只需要简单的配置就可以生成安装文件,同时可以通过javascript脚本来定制安装过程. 目录结构 config packag ...
- 在虚拟机中 windows 2003 装.net framework 3.5 出现问题.
错误信息: [11/27/09,08:52:50] Microsoft .NET Framework 2.0a: [2] Error: Installation failed for componen ...
- .Net Framework 3.0 概述
Microsoft .NET Framework 3.0, the managed programming model for Microsoft® Windows®, includes the .N ...
- MIS开发中.net Framework的打印功能
Microsoft .net Framework的打印功能都以组件的方式提供,为程序员提供了很大的方便,但是这几个组件的使用还是很复杂的,有必要解释一下. 打印操作通常包括以下四个功能 1 打印设置 ...
- python导入matplotlib出错_解决导入matplotlib的RuntimeError: Python is not installed as a framework....
import matplotlib.pyplot as plt 报错: RuntimeError: Python is not installed as a framework. The Mac OS ...
- ios Standard Framework和Umbrella Framework
Standard Framework:标准库,通过引用对应的header文件而不是引用master header 文件来引用类(也可以通过引用Master Header file来引用需要使用的类), ...
最新文章
- redis持久化方案
- [K/3Cloud]进度条控件编程接口
- 给销售范围组合分配定价过程
- void 类型的指针
- [vue] vue过渡动画实现的方式有哪些?
- JeeSite 4.0 (1.0)开发环境部署运行
- Linux中w r x数学代码,Linux bc命令实现数学计算器
- 谷歌硬盘 idm_为什么Google搜索结果比本地硬盘查询要快?
- Java常用的框架有哪些?
- boobooke视频汇总
- 大陆车牌识别算法的背景与技术
- 计算机中8位二进制机器数,一个字节由8位二进制数组成,其最大容纳的十进制整数为()...
- Hive 核心原理(hive-3.1.2)
- 3d游戏开发实训一周总结 3
- 【入门教程】必看!TensorFlow中文教程:机器学习从零到一
- Anroid app版本更新
- [论文解读]Deep active learning for object detection
- 无需下载软件,有手就能做的线上个人简历
- 十分钟搞定SSD1963液晶屏驱动
- 基于Python实现简易学生信息管理系统