系列帖子:
首先补充一下,mmwave industrial toolbox里面的user guide对于开发板的使用是非常好的帮助文件,照着一步一步做即可。例如IWR6843的帮助文件在C:/ti/mmwave_industrial_toolbox_4_1_0/labs/out_of_box_demo/68xx_aop_mmwave_sdk_hwa/docs/里面。
之前对AWR1843BOOST进行了使用体验,现在对开发板上传到PC的数据进行分析。首先看对应的说明文件,位置在file:///C:/ti/mmwave_sdk_03_03_00_03/packages/ti/demo/xwr18xx/mmw/docs/doxygen/html/index.html,里面有相关的介绍。下面使用IWR6843AOPEVM开发板截取的数据进行分析:
总体数据结构如上图,首先是帧头:
uint16_t magicWord [4] 固定的帧起始标志,共8个字节
02 01 04 03 06 05 08 07
uint32_t version 版本号3.2.0.6
06 00 02 03
uint32_t totalPacketLen 数据包总长度,包括标头(以字节为单位)0x260=608字节
60 02 00 00
uint32_t platform 平台型号:0xa6843
43 68 0A 00
uint32_t frameNumber 帧号:0x14EC=5356
EC 14 00 00
uint32_t timeCpuCycles 创建消息时的CPU周期时间 0x5B0ECD74
74 CD 0E 5B
uint32_t numDetectedObj 检测到的对象数 5个
05 00 00 00
uint32_t numTLVs TLV的数量 2个
02 00 00 00
uint32_t subFrameNumber 子帧号 0
00 00 00 00
接下来是各个数据包,具体上传的数据包有几个根据自己的配置,如果使用mmWave_Demo_Visualizer可以参考 因为我的应用比较简单,所以只选了两个。
第一个数据包
tlvtype 数据包类型,参考下面图中的定义
02 00 00 00 Range profile 量程频谱
tlvlength 数据包长度
00 02 00 00 0x200=512字节
E9 0D 7C 0D 17 0C 4C 0B F8 0B 9A 0C 8F 0C 17 0D D9 0D 7C 0D 4C 0C 9D 0B 1B 0B 10 0B 87 0A B2 0A
6A 0B 36 0B 51 0A B5 09 C2 09 91 09 2E 09 7F 08 44 09 8A 08 BA 07 FD 07 F3 07 A3 07 69 07 6B 07
97 07 80 07 05 07 5A 07 14 07 62 07 C2 07 B2 07 48 07 C5 06 08 07 10 07 41 07 6F 07 A0 06 22 07
1B 07 4C 07 5A 07 67 07 4C 07 4F 07 F6 06 20 07 2C 07 4C 07 89 07 47 07 62 07 5E 07 87 06 12 07
34 07 AD 06 16 07 5B 07 8A 07 34 07 07 07 E7 06 9F 06 90 07 BD 07 92 07 30 07 20 07 5A 07 47 07
24 07 30 07 00 07 30 07 62 07 00 07 0D 07 3A 07 49 07 41 07 21 07 02 07 FD 06 2B 07 4A 07 FD 06
EE 06 FA 06 40 07 8B 07 64 07 3B 07 46 07 4B 07 D6 06 C1 06 CD 06 22 07 75 07 6C 07 30 07 15 07
54 07 4E 07 07 07 DB 06 DD 06 2C 07 2E 07 E5 06 F4 06 BE 06 3C 07 CE 06 D5 06 AA 06 76 06 F0 06
C6 06 FA 06 09 07 FF 06 17 07 52 07 F7 06 F3 06 F9 06 EB 06 E7 06 28 07 AD 06 32 07 7A 07 43 07
1C 07 6A 07 50 07 1E 07 C7 06 22 07 3E 07 E2 06 F0 06 EB 06 4D 07 07 07 55 07 8A 07 3A 07 11 07
16 07 13 07 18 07 11 07 5C 07 4A 07 DA 06 E6 06 0A 07 C7 06 DA 06 6F 07 84 07 6F 07 7A 07 4D 07
2E 07 DE 06 CF 06 C8 06 04 07 52 07 44 07 19 07 4A 07 0E 07 3C 07 F1 06 12 07 33 07 00 07 05 07
37 07 3A 07 09 07 03 07 04 07 04 07 F2 06 F1 06 4B 07 60 07 37 07 02 07 35 07 FB 06 C6 06 F0 06
2A 07 48 07 44 07 04 07 0B 07 D8 06 1F 07 1F 07 E9 06 14 07 33 07 06 07 D7 06 B5 06 06 07 03 07
EB 06 1E 07 E8 06 0E 07 EE 06 D3 06 9A 06 B4 06 9B 06 9E 06 15 07 B6 06 B5 06 DB 06 D0 06 9A 07
CC 07 2D 07 A9 07 57 08 9D 08 63 09 38 0A 7D 0B DD 0B 23 0B D3 0A E4 0A 3F 0A BD 09 39 0B 41 0D
总共512字节,256个数据,使用Excel画图如下 同条件的mmWave_Demo_Visualizer频谱图如下。
接着是第二个数据包:
tlvtype 数据包类型
06 00 00 00 Stats information 状态信息
tlvlength 数据包长度
18 00 00 00 0x18=24字节
uint32_t interFrameProcessingTime 帧间处理时间
ED 06 00 00 0x06ED=1773
uint32_t transmitOutputTime 使用中输出检测信息的传输时间
77 CE 00 00 0xCE77=52855
uint32_t interFrameProcessingMargin 帧间处理余量
D5 EB 0E 00 0xEEBD5=977877
uint32_t interChirpProcessingMargin chirp间处理余量
00 00 00 00 =0
uint32_t activeFrameCPULoad 活动帧期间的CPU负载(%)
00 00 00 00 =0%
uint32_t interFrameCPULoad 帧间持续期间的CPU负载(%)
06 00 00 00 =6%
最后是第三个数据包:
tlvtype 数据包类型
01 00 00 00 List of detected points 检测点列表测点列表
这个暂时还待分析
4A B5 01 00
BF 40 00 00
05 00 00 00
本帖最后由 lbbook 于 2020-1-1 14:03 编辑
你好,就是这个visualizer,我已经能跑了,我想问一下通过这个导出的.dat数据是原始ADC数据,还是已经处理过目标结果的数据,如果我想只通过上面的开发板,导出原始ADC数据,一帧就行,应该如何处理
好详细的分享,谢谢,辛苦了
引用: forever-ssq 发表于 2020-1-4 20:25 你好,就是这个visualizer,我已经能跑了,我想问一下通过这个导出的.dat数据是原始ADC数据,还是已经处理 ...
这个导出的是处理过的数据,原始ADC数据可能需要通过LVDS接口导出。这方面我没有用过。可以参考DCA1000EVM等开发板。
引用: 再见2019 发表于 2020-1-7 20:03 题主你好,我想问下你的数据怎么导出来的
这个是直接用串口工具读出来的。先用 visualizer 配置好,然后关掉浏览器,切换到串口工具就可以收到了。
引用: lbbook 发表于 2020-2-25 14:27 这个是直接用串口工具读出来的。先用 visualizer 配置好,然后关掉浏览器,切换到串口工具就可以收到了。 ...
一般的串口助手只能支持115200的波特率 ,但是这个是921600的波特率,请问楼主是怎么解决的呢?
我是找到了 out_of_box_demo 里面的程序,把开发板的输出波特率改成了115200。你也可以找找看有没有能支持921600的软件。UartAssist似乎可以配置,但我也没有试过是否可用。