毫米波雷达器件ADC原始数据捕获

摘要

本应用程序报告演示了如何解释使用Capture Demo或Mmwave Studio捕获的原始模数转换器(ADC)数据。针对不同的硬件设置,分别讨论了获取原始ADC数据的格式。Matlab代码片段提供给需要开发自定义代码进行数据处理的工程师。

内容

介绍、先决条件、查看和保存原始数据使用捕获演示和CCS、捕获演示使用CCS的原始数据格式、xWR12xx xWR14xx DCA1000数据格式、在MATLAB中解释二进制文件、总结、参考文献

1介绍

mmwave雷达(xWRxxxx)的原始数据可以使用mmwave SDK中提供的Capture Demo捕获,或使用mmwave Studio GUI工具中提供的mmwave Studio捕获。所涵盖的主要主题包括如何使用Code Composer Studio™(CCS)保存捕获演示的原始数据,使用捕获演示捕获的数据的原始数据格式,使用Mmwave Studio捕获的数据的原始数据格式,以及如何在MATLAB中解释数据。本文档假设用户知道如何运行Capture Demo和Mmwave Studio。关于如何运行捕获演示,请参考mmWave SDK演示安装指南,在TI资源管理器mmWave培训演示文件夹中找到。关于如何使用Mmwave Studio获取数据的信息,请参考Mmwave Studio GUI工具中的Mmwave Studio用户指南。

请注意,Mmwave Studio,以前称为Radar Studio,支持两个不同的平台。其中一个是DCA1000EVM数据采集卡用户指南,它与xWRxxxx EVM具有接口,使用户能够通过以太网传输ADC数据。另一个平台是TSW140x高速数据采集/模式生成卡,它需要Mmwave devPack EVM和高速数据转换器Pro GUI用户指南。TSW1400 EVM通过串行外设接口(SPI)传输捕获的数据到PC(通过板载USB到SPI转换器)。雷达工作室(旧版本的Mmwave工作室)只支持TSW1400 EVM与HSDC Pro。有关更多信息,请参阅雷达工作室用户指南的设备固件包和使用TSW1400板获取mmWave传感器原始数据的培训视频。

关于DCA1000 EVM和TSW1400 Mmwave Studio的用户界面的差异,请参见Mmwave Studio用户指南。DCA1000设计基于Lattice FPGA, LVDS数据通过以太网流进行采集。基于Altera FPGA的tsw1400evm采集不同格式的LVDS数据。数据格式也取决于毫米波设备的类型。因此,不同的格式需要单独讨论。

应用报告的组织如下—第2节列出了先决条件。第3节介绍如何使用capture demo和CCS运行和保存ADC数据。第4节讨论了捕获演示和CCS保存的数据格式。章节5、章节6、章节7、章节8分别详细描述了Mmwave Studio为使用DCA1000和TSW1400的不同xWRxxxx设备保存的数据格式。第9节提供了处理Mmwave Studio捕捉到的数据的Matlab脚本示例。

2先决条件

本文档假设用户已经安装了Capture Demo, Mmwave Studio的必要前提条件,并且熟悉如何使用该软件的说明。本文档已经测试SDK 1.01.00.02, CCSv7.3, Mmwave Studio 1.0.0.0。要了解如何运行Capture Demo和任何必要的先决条件,请安装mmWave SDK。也可以查看mmWave SDK用户指南,找到C:\ti\mmwave_sdk_\docs。关于如何运行Mmwave Studio和任何必要的先决条件,安装Mmwave Studio GUI工具。也可以查看Mmwave Studio用户指南,在C:\ti\mmwave_studio_\docs找到

3使用Capture Demo和CCS查看和保存原始数据

本节讨论如何使用mmWave SDK中提供的Capture Demo查看和保存原始ADC数据。本节以用户熟悉如何使用CCS运行Capture Demo为例。关于如何运行Capture Demo的信息,请参考mmWave SDK用户指南,可以在C:\ti\mmwave_sdk_ docs找到。

ADC数据存储在L3中,可以通过CCS的内存浏览器进行查看和保存。要访问Memory Browser,打开View选项卡并选择Memory Browser选项,如图1所示。

图1所示。在CCS中打开内存浏览器

在“内存浏览器”窗口中,可以通过指定L3内存的起始地址来查看L3内存的内容。起始地址由capture.h文件中的CAPTURE_L3RAM_DATA_MEM_ADDRESS指定,随SDK版本不同而不同。保留用于存储ADC数据的内存总大小由capture.h中的CAPTURE_L3RAM_DATA_MEM_SIZE指定。另外,在将配置文件发送到设备之前,会在CCS控制台的最后一行输出L3地址和大小。

要保存原始ADC数据,请单击Memory Browser窗口右上角的save Memory按钮,如图2所示。

图2。内存浏览器保存内存按钮

在Save Memory菜单中,指定文件路径和文件名,并选择TI Data作为文件类型,如图3所示。

图3。保存内存和文件类型

单击Next并指定格式、起始地址和长度。对于格式,选择16位十六进制TI风格。数据的长度取决于用户的啁啾配置。要计算单词的长度,可以使用以下公式。首先,找出以字节为单位生成的ADC数据的总大小。

总大小(以字节为单位) = Num ADC 样本 × Num RX 通道 × Num 帧 × Num Chirps × Num Bytes Per Sample       (1)

每个样本的字节数基于传感器配置中的adcCfg参数指定的输出格式。对于复杂的输出格式,每个样本有4个字节:实部2个字节,虚部2个字节。对于真正的输出格式,每个样本有2个字节。一旦以字节为单位确定了数据的总大小,就可以通过总大小除以16找到单词的数量;这假设用户以16位十六进制TI风格格式保存。

字的长度=总大小/每个字2字节   (2)

一旦保存了数据,就可以使用capture_demo在MATLAB中查看它。m文件位于C:\mmwave_sdk_\packages\ti\demo xwr14xx\capture\gui用于xWR1xx,并位于C: ti\mmwave_sdk_01_00_00_05\packages\ti\demo xwr16xx\capture\gui用于xwr16xx。该文件绘制了原始ADC数据和ADC数据的1D FFT。可以修改此代码以完成对数据的额外后处理。要进行进一步的后期处理,您必须了解如何格式化输出数据,如第4节所示。

4 CCS采集演示原始数据格式

通过Capture Demo捕获的数据可以以交错或非交错的方式存储,具体可通过传感器配置中的adcbufCfg命令指定。对于xWR14xx设备,建议使用交错模式,但也可以使用非交错模式。对于xWR16xx/IWR6843设备,只能使用非交错模式。交织模式默认配置为xWR14xx,非交织模式默认配置为xWR16xx/IWR6843。有关交织的更多信息,请参阅aw1xxx数据路径程序员指南。数据以16位2补码的格式存储。

图4显示了4个RX、3个RX、2个RX天线交织模式下的复杂数据输出数据。

图4。交错复杂数据格式使用捕获演示

图4表示了当文件保存为TI数据格式文件时,使用16位十六进制TI风格时数据是如何保存的。在图4中,RX0 I(0)表示RX0接收到的真实数据的第一个样本,RX0 Q(0)表示RX0接收到的虚拟数据的第一个样本。RX0 I(1)表示在RX0接收到的真实数据的第二个样本,以此类推。

数据也可以仅作为真实数据来捕获。图5显示了数据如何与4个RX、3个RX和2个RX天线的实际数据保存为交错模式。

图5。交错的真实数据格式使用捕获演示

数据也可以以非交错格式存储。对于xWR16xx/IWR6843,数据只能以非交错格式存储。但是,对于xWR14xx,推荐交错模式。图6显示了非交错复杂数据的输出格式。

图6。非交错复杂数据格式使用捕获演示

在非交错格式中,给定RX的所有数据存储在单个内存块中,下一个RX的所有数据存储在另一个内存块中。例如,所有RX0数据按顺序存储,然后是所有RX1数据。要确定每个RX占用的内存量,请使用公式3。

每个 RX 的字节数 = Num ADC 样本 × Num 帧 × Num Chirps × Num Bytes Per Sample      (3)

对于复杂数据,每个样本有4个字节。对于真实数据,每个样本有两个字节。对于非交错数据,每个RX的字数可以使用公式4确定。

每RX字数=每RX字节数/每字2字节数                   (4)

图7显示了非交错实际数据的输出格式。

图7。非交错的真实数据格式使用捕获演示

与处理复杂数据的非交错模式类似,在处理真实数据的非交错模式中,给定RX的所有数据都存储在单个内存块中,下一个RX的所有数据都存储在下一个内存块中。例如,如果每个RX通道有1024个单词,则首先存储RX0的所有1024个单词,然后存储RX1的所有1024个单词,依此类推。

5 xWR12xx和xWR14xx与DCA1000数据格式

除了Capture Demo,还可以使用Mmwave Studio保存ADC数据。本节讨论xWR12xx和xWR14xx使用Mmwave Studio和DCA1000 EVM保存的数据格式。对于xWR12xx和xWR14xx设备,数据通过四个LVDS通道捕获,并以交错格式存储在二进制文件中。DCA1000捕获的数据样本有两个字节长,并且是两个字节的补码格式。每个LVDS通道对应一个给定的接收器。对于真实数据,每个LVDS通道将存储一个真实样本。如果总共有M个啁啾,数据存储从第一个啁啾开始,到第M个啁啾结束。图8显示了当4台接收机启用时,数据如何存储在二进制文件中,用于M个啁啾和每个啁啾N个ADC样本的真实数据。

图8。使用DCA1000的真实数据格式

任何未使用的LVDS通道将填充0。启用接收器的数量应与LVDS通道的数量相匹配。对LVDS通道的接收机分配是从最小的接收机开始,到最大的接收机结束。例如,如果接收机1和3被启用,LVDS 2和3被启用,则LVDS 2通道将包含来自接收机1的数据,LVDS 3通道将包含来自接收机3的数据。1号和4号车道将用0填充。图9显示了用于复杂数据的二进制文件的数据存储格式。

图9。xWR14xx复杂数据格式使用DCA1000

对于复杂数据格式,每个样本由实部和虚部组成,每个LVDS通道捕获每个接收器的复杂样本。如果在Mmwave Studio的“IQ Swap”选项中选择了“I first”选项,则每个接收机都先存储实部,然后再存储每个接收机的镜像部。任何未使用的LVDS通道将填充0。例如,如果接收机1和3被启用,LVDS通道1和2被启用,则LVDS通道1将包含来自接收机1的数据,LVDS通道2将包含来自接收机3的数据。3号和4号车道将用0填充。

9、在MATLAB中解释二进制文件

在Mmwave Studio中捕获的数据可以使用Mmwave Studio GUI进行处理。但是,任何自定义的后期处理都需要用户创建自定义脚本。本节包含示例MATLAB代码片段,帮助用户解释使用xWR14xx和xWR16xx捕获的二进制文件,以便进行自定义的后期处理。

Mmwave Studio存储的数据文件位于安装路径下的PostProc文件夹下,默认为adc_data.bin。对于TSW1400,数据直接保存为adc_data.bin。对于DCA1000,按下“DCA1000 ARM”和“触发器帧”后,首先保存原始数据文件adc_data_RAW_0.bin。由于以太网协议的原因,DCA1000 EVM接收的文件可能不包含正确的UDP数据包。在某些情况下,可能会出现数据丢失且未在文件中捕获的情况。数据包重新排序和零填充实用程序需要运行来扫描原始捕获文件,并以正确的顺序重新排列数据包,以防任何丢失的数据包;它将在文件中填充等量的零。此实用程序还删除元数据,输出现在包含由xWRxxxx设备传输的原始ADC数据。通过按“PostProc”按钮,adc_data_RAW_0.bin将进行数据包重排序和零填充,并保存为adc_data.bin。

运行Packet_Reorder_Zerofill.exe也可以得到相同的结果,如Mmwave Studio用户指南中所述。以下所有matlab脚本都用于解码数据文件adc_data.bin——由xWRxxxx设备传输的原始ADC数据。

9.1 DCA1000带xWR12xx和xWR14xx的MATLAB示例

下面的MATLAB代码示例中的函数可以使用DCA1000读取Mmwave Studio和xWR14xx保存的文件。

%%% This script is used to read the binary file produced by the DCA1000
%%% and Mmwave Studio
%%% Command to run in Matlab GUI - readDCA1000('')function [retVal] = readDCA1000(fileName)
%% global variables% change based on sensor config
numADCBits = 16; % number of ADC bits per sample
numLanes = 4; % do not change. number of lanes is always 4 even if only 1 lane is used. unused lanes
isReal = 0; % set to 1 if real only data, 0 if complex dataare populated with 0 %% read file and convert to signed number% read .bin file
fid = fopen(fileName,'r');
% DCA1000 should read in two's complement data
adcData = fread(fid, 'int16');
% if 12 or 14 bits ADC per sample compensate for sign extension
if numADCBits ~= 16 l_max = 2^(numADCBits-1)-1; adcData(adcData > l_max) = adcData(adcData > l_max) - 2^numADCBits;
end
fclose(fid); %% organize data by LVDS lane
% for real only data
if isReal % reshape data based on one samples per LVDS lane adcData = reshape(adcData, numLanes, []);
%for complex data
else % reshape and combine real and imaginary parts of complex number adcData = reshape(adcData, numLanes*2, []); adcData = adcData([1,2,3,4],:) + sqrt(-1)*adcData([5,6,7,8],:);
end
%% return receiver data
retVal = adcData;

前面代码片段中的函数将返回一个矩阵,其中所有接收方数据都存储在行中。numADCBits和isReal的值应该根据所使用的传感器配置进行修改。numLanes的值不应该被修改,因为总会有4个LVDS lanes被使用。未使用的车道将填充0。

函数返回的矩阵应该类似于图17。

图17。MATLAB脚本输出——xWR14xx与DCA1000

第1行包含来自第一个接收器的所有数据,来自第二个接收器的第2行,来自第三个接收器的第3行,以及来自第四个接收器的第4行。在某些接收器被禁用的情况下,相应的行将被填充为零。每一行包含的列数等于每个啁啾的ADC采样数乘以总啁啾数。这些柱子是由啾啾声组织起来的。例如,如果有256个ADC样本,共有1280个chirps (128 chirps/帧× 10帧),那么每行包含327680列。前256列对应第一个啁啾,后256列对应第二个啁啾,以此类推。前32768列对应第一帧的啁啾,以此类推。然后可以按照用户的要求处理数据。

10总结

本文档概述了如何解释使用Capture Demo或Mmwave Studio捕获的原始ADC数据。对于使用Capture Demo捕获的数据,使用capture_demo。mmWave SDK中提供的m文件,可以使用和修改来处理数据。对于在Mmwave Studio中捕获的数据,可以使用提供的MATLAB代码片段读取二进制文件,并通过接收器将数据组织成行。然后可以添加到代码中,根据需要处理数据。

11引用

• DCA1000EVM Data Capture Card User's Guide

• TSW140x High Speed Data Capture/Pattern Generator Card

• High Speed Data Converter Pro GUI User's Guide

• AWR1xxx Data Path Programmer's Guide

• Industrial Radar Family Technical Reference Manual

• mmWave Sensor Raw Data Capture Using the TSW1400 Board

• mmWave Device Firmware Package

• mmWave Software Development Kit

• mmWave Studio

DCA1000EVM数据捕捉卡用户指南

•TSW140x高速数据捕获/模式发生器卡

•高速数据转换器支持GUI用户指南

•AWR1xxx数据路径程序员指南

•家庭工业雷达技术参考手册

•mmWave传感器原始数据捕获使用TSW1400董事会

•mmWave设备固件包

•mmWave软件开发工具包

mmWave Studio

毫米波雷达器件ADC原始数据捕获相关推荐

  1. 毫米波雷达(mmWave)基本原理

    1. 引言 毫米波(mmWave)是一种特殊的雷达技术,它使用短波长的电磁波.雷达系统发射电磁波信号,然后其路径上的物体将它反射回去.通过捕捉反射信号,雷达系统可以确定目标的距离.速度和角度.毫米波雷 ...

  2. 车载毫米波雷达的校准问题(1)

    说明 任何精密的传感器都需要进行校准,校准的目的在于使测量的结果更加准确.车载毫米波雷达作为一个车规级的可能关系到生命安全的传感器,其测量结果的准确性显得尤为重要.但是车载毫米波雷达(或者说任何传感器 ...

  3. 毫米波雷达分类和技术方案

    毫米波雷达分类和技术方案 一.什么是毫米波? 毫米波是一项可用于检测物体并提供物体的距离.速度和角度信息的传感技术.这是一项非接触式技术,工作频谱范围为 30GHz 至 300GHz.由于该技术使用较 ...

  4. 自动驾驶专题介绍 ———— 毫米波雷达

    文章目录 介绍 工作原理 特点 性能参数 应用 厂家 介绍  毫米波雷达是工作在毫米波波段探测的雷达,与普通雷达相似,是通过发射无线电信号并接收反射信号来测量物体间的距离.毫米波雷达工作频率为30~3 ...

  5. 激光雷达和毫米波雷达

    激光雷达和毫米波雷达 一.概述 激光雷达(LiDAR[Light Detection and Ranging])是激光探测及测距系统的简称,而雷达是英文Radar的音译,源于radio detecti ...

  6. TI毫米波雷达开发常见问题总结

    欢迎加入毫米波雷达技术交流群,qq群号码:647796034 2017年开始接触德州仪器TI发布的三款毫米波雷达AWR1243.AWR1443.AWR1642.主要使用探索汽车防撞雷达以及车内人员检测 ...

  7. 毫米波雷达的硬件架构与射频前端

    说明 本篇博文梳理(车载)毫米波雷达的系统构成,特别地,对其射频前端各部件做细节性的原理说明.本篇博文会基于对这方面知识理解的加深以及读者的反馈长期更新内容和所附资料,有不当之处或有其它有益的参考资料 ...

  8. 【雷达仿真 | FMCW TDMA-MIMO毫米波雷达信号处理仿真(可修改为DDMA-MIMO)】

    本文编辑:调皮哥的小助理 本文引用了CSDN雷达博主@XXXiaojie的文章源码(https://blog.csdn.net/Xiao_Jie1),加以修改和注释,全面地.详细地阐述了FMCW TD ...

  9. 4D毫米波雷达硬件系统架构

    1 毫米波雷达与自动驾驶系统 4D毫米波雷达与车载自动驾驶系统的关系紧密,聊4D毫米波雷达,肯定抛不开自动驾驶系统.自动驾驶系统分为感知层(sense).决策层(think)和执行层(act). 感知 ...

  10. agv ti 毫米波雷达_TI毫米波传感器全面覆盖工业自动化、自动驾驶与安防市场

    ADAS无人驾驶的兴起,催生了 在4月举办的TI德州仪器工业月活动上,德州仪器中国嵌入式产品系统与应用总监蒋宏向本站记者展示其毫米波雷达方面的相关应用,相比3D TOF和视觉成像等光学技术,毫米波雷达 ...

最新文章

  1. php.ini Xdebug配置
  2. Android全屏,隐藏状态栏和标题栏
  3. 黑马程序员——c语言学习心得——函数传递二维数组
  4. ServletConfig 对象
  5. S5 Linux信息显示与搜索文件命令
  6. 搭载「光线追踪」技术的次时代主机会有怎样的画面表现?
  7. 2021牛客多校7 - xay loves trees(dfs序+主席树-标记永久化)
  8. 理解MYSQL MVCC 实现机制
  9. 粒度过粗_这些书帮助我度过了第一次成为技术主管的经历
  10. 新基建系列之:中国城市人工智能发展指数报告
  11. android--------自定义控件 之 组合控件篇
  12. (9)二进制文件方式部署Kubernetes高可用集群----------部署master节点
  13. bootstrap treeview 多级联动check/uncheck
  14. 不要想当然,相信自己(自己在C中踩过的坑)
  15. 用百度地图进行搜索周边的建筑,医院,餐厅,学校等。
  16. php mysql字符串截取比较读取_MySQL_Mysql字符串截取函数SUBSTRING的用法说明,感觉上MySQL的字符串函数截取 - phpStudy...
  17. 数字电路中的建立时间与保持时间是什么
  18. radius pap 加/解密算法实现-golang
  19. 房屋价格预测相关公开数据集
  20. vue--百度地图之离线地图--大量标注点造成卡顿问题--海量点聚合性能优化

热门文章

  1. 刘强东的敌与友:嘲讽王健林一亿小目标,性侵案后李国庆说该原谅
  2. rasa框架nlu源码解析
  3. Android面试知识总结
  4. c8t6高电平电压_什么是高电平和低电平?
  5. 手把手教你搭建STM32MP1开发环境
  6. 悉尼大学INFO1112Assignment1课业解析
  7. java类 家族成员 姓氏_极其罕见的四大姓氏,若你还姓这个,恭喜你,你的家族大有来头!...
  8. beyondcompare ubuntu revoked问题
  9. 计算机设备评分标准,电脑租赁设备评判标准(硬件篇)
  10. 利用Python+云服务器+邮箱实现的个人待办事项提醒