Part Number:DCA1000EVMOther Parts Discussed in Thread:AWR1642, , IWR6843
您好!
我现在需要使用毫米波雷达与摄像机同步采集数据,因此需要确定雷达回传数据的帧率。
在我做的实验里,AWR的idle time是 7 us,ramp end time是 57.14 us,那么chirp sampling time是 64.14 us,一共128个chirp,需要 0.008 s 。但是从DCA中采集到的数据,显然远没有这么高的帧率,请问是另有设置吗?还是因为数据传输速度有限的原因呢?
Shine:
帧与帧之间还有帧间隔,请参考下面文档Figure 2. Typical Frame Structurehttps://www.ti.com/lit/an/swra553a/swra553a.pdf
,
Chenming He:
您好,
我没有在这个文档里找到设置inter frame time的方法。经过再次测试,我录制了20s的数据,但解析之后发现只有10帧,这个帧率无论如何都太低了。
我使用的cfg文件和json文件如下:
sensorStop flushCfg dfeDataOutputMode 1 channelCfg 15 3 0 adcCfg 2 1 adcbufCfg -1 0 1 1 1 profileCfg 0 77 429 7 57.14 0 0 70 1 256 5209 0 0 30 chirpCfg 0 0 0 0 0 0 0 1 chirpCfg 1 1 0 0 0 0 0 2 frameCfg 0 1 16 0 250 1 0 lowPower 0 1 guiMonitor -1 1 1 0 1 1 1 cfarCfg -1 0 2 8 4 3 0 15 1 cfarCfg -1 1 0 4 2 3 1 15 1 multiObjBeamForming -1 1 0.5 clutterRemoval -1 0 calibDcRangeSig -1 0 -5 8 256 extendedMaxVelocity -1 0 bpmCfg -1 0 0 1 lvdsStreamCfg -1 0 1 0 compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 measureRangeBiasAndRxChanPhase 0 1.5 0.2 CQRxSatMonitor 0 3 5 121 0 CQSigImgMonitor 0 127 4 analogMonitor 0 0 aoaFovCfg -1 -90 90 -90 90 cfarFovCfg -1 0 0 8.92 cfarFovCfg -1 1 -1 1.00 calibData 0 0 0 sensorStart{"DCA1000Config": {"dataLoggingMode": "raw","dataTransferMode": "LVDSCapture","dataCaptureMode": "ethernetStream","lvdsMode": 2,"dataFormatMode": 3,"packetDelay_us": 25,"ethernetConfig": {"DCA1000IPAddress": "192.168.33.180","DCA1000ConfigPort": 4096,"DCA1000DataPort": 4098},"ethernetConfigUpdate": {"systemIPAddress": "192.168.33.30","DCA1000IPAddress": "192.168.33.180","DCA1000MACAddress": "12.34.56.78.90.12","DCA1000ConfigPort": 4096,"DCA1000DataPort": 4098},"captureConfig": {"fileBasePath": "C:\\Users\\13197\\Desktop\\mmw\\DCA_Record\\data","filePrefix": "adc_data_","maxRecFileSize_MB": 1024,"sequenceNumberEnable": 1,"captureStopMode": "infinite","bytesToCapture": 4000,"durationToCapture_ms": 4000,"framesToCapture": 40},"dataFormatConfig": {"MSBToggle": 0,"laneFmtMap": 0,"reorderEnable": 0,"dataPortConfig": [{"portIdx": 0,"dataType": "real"},{"portIdx": 1,"dataType": "complex"},{"portIdx": 2,"dataType": "real"},{"portIdx": 3,"dataType": "real"},{"portIdx": 4,"dataType": "complex"}]}} }请问这是为什么呢?如何提高DCA采集的数据的帧率?
,
Shine:
请问mmwave studio里的Radar post processing界面显示的数据正确吗?
,
Chenming He:
之前用过mmwave studio,postproc里显示的热图都是正确的。
我这次采集数据用的是DCA1000_CLI_Control,是mmwave studio里编译好的可执行文件,我用自己的程序解析了采集的数据,数据没有问题,但是帧率很低。
,
Chris Meng:
你好,
frameCfg 0 1 16 0 250 1 0
你设定的一帧时间是250ms,也就是每秒只有4帧。
,
Chris Meng:
Chenming He 说:AWR的idle time是 7 us,ramp end time是 57.14 us,那么chirp sampling time是 64.14 us
每个chirp的采样时间是采样点数乘以(1/采样率)。64.14us是一个chirp的总时长。
,
Chenming He:
您好,我依然有两个问题
1、这里的frame periodicity在我的理解中,是为了保证AWR1642能有足够的时间通过UART回传热图数据而设置的(我想在录制数据时观察visualizer显示的热图,所以设置了比较低的频率),但不影响雷达天线的收发频率,同时也不影响雷达通过LVDS由DCA1000传输原始I/Q数据。是我的理解有误吗?
2、即便这个参数会影响LVDS传输的频率,也和我实验得到的0.5hz不吻合
,
Chris Meng:
Chenming He 说:1、这里的frame periodicity在我的理解中,是为了保证AWR1642能有足够的时间通过UART回传热图数据而设置的(我想在录制数据时观察visualizer显示的热图,所以设置了比较低的频率),但不影响雷达天线的收发频率,同时也不影响雷达通过LVDS由DCA1000传输原始I/Q数据。是我的理解有误吗?
这里设置的frame periodicity就是一个毫米波帧的帧周期。一个帧周期内的发波时间是你配置的chirp数据量。你接收到的数据和你设定的每个frame里的chirp数和每个chirp的采样点数相关。
,
Chris Meng:
Chenming He 说:2、即便这个参数会影响LVDS传输的频率,也和我实验得到的0.5hz不吻合
你的配置的number of frame是0,也就是一直发射。请问你使用DCA1000_CLI_Control是如何确认采集到的数据就是每帧的开始?是先让DCA1000EVM start record,让后再下载cfg文件让毫米波LVDS输出数据?你说的采集了20s是如何来控制的?
在json脚本里,你可以如下设置来控制采集的时间
"captureStopMode": "duration", "durationToCapture_ms": 20000,
,
Chenming He:
感谢提醒,我并没有注意采集到的数据还需要考虑是否是每帧开头的问题,之前是先发送cfg文件让毫米波启动,再start record接收数据。采集20s是程序运行start record后sleep 20秒再运行stop record完成的
想请教两个问题:
1、当模式为raw时,如何确定采集的数据帧头的位置?并且,我此前没有注意这个问题,解析得到的结果看起来也没有问题
2、帧率为0.5hz的问题依然存在,请问还可能是什么原因呢?
,
Chris Meng:
你好,
1. 正如我之前回复的,先让DCA1000EVM start record,让后再下载cfg文件让毫米波LVDS输出数据,这样可以保证采集到的数据是从第一帧帧头开始的。
2. 能否使用我建议的durantion来采集?采集后的数据文件包有多大?
,
Chenming He:
您好,
我尝试了先start record后发送cfg,并且使用duration采集,时间是20s
最后结果是得到了10332KB大小的数据包,我使用16位整型读取,共有5289648个数据
雷达有2*4个虚拟天线,每帧128chirp,每个chirp有256个sample,每一个sample有real和imag,那么5289648/(128*256*2*4*2)=10.089,帧率依然是0.5hz
,
Chenming He:
补充:
我把frame periodicity改为100ms后,录制20s得到了25644KB的数据包,看来这个参数确实影响了帧率,但不知道什么原因导致帧率的具体数值没有对应上
,
Chris Meng:
Chenming He 说:雷达有2*4个虚拟天线,每帧128chirp,每个chirp有256个sample,每一个sample有real和imag,那么5289648/(128*256*2*4*2)=10.089,帧率依然是0.5hz
channelCfg 15 3 0
adcCfg 2 1
profileCfg 0 77 429 7 57.14 0 0 70 1 256 5209 0 0 30chirpCfg 0 0 0 0 0 0 0 1chirpCfg 1 1 0 0 0 0 0 2frameCfg 0 1 16 0 250 1 0
上面这个配置计算一帧ADC数据量如下:
256(采样点)*(1-0+1)(chirp end index-chirp start index+1)*16(number of loop)*4(4RX)*2(complex 1x)*2 (16-bit ADC) bytes
请问你计算的数量里的128个chirp是如何来的?
,
Chenming He:
感谢解答,128个chirp这个数据来自我使用的一份开源代码,它应该是IWR6843的参数,我没有注意到AWR1642的num of loop是16
帧率没有问题了