sdk之Programming Sequence(xWR16xx)
目录
2.Programming Sequence--Control Path
3.Programming Sequence--Data Path
1.典型的雷达信号处理链
2.Programming Sequence--Control Path
下面的是sdk视频介绍Introduction to mmWave SDK中讲述control path时的transcript。可以对照着图看。
Now, let's look into the detailed control flow. The MSS application uses the SOC_init to initialize the device and powers up the mmWave Front End. It then uses the MMWave_init APIs to do the basic initialization of the mailbox and the other key drivers. After that, it waits for the front end bootup completion.
DSP application, on the other hand, uses the MMWave_execute API, which sets up the IPC to receive the data from the MSS. After this, both the MSS and the DSP does synchronization to check the health of each other.
DSS also initializes the EDMA and the ADC buffer for the data processing.
Once the initialization is complete and the MSS and the DSS is synchronized, MSS application use the MMWave_config API to parse the configuration from the application to the mmWave Front End. mmWave API uses the mmWaveLink API, which constructs the mailbox message and sends it to the mmWave Front End. mmWave Front End, once it receives a message, checks the integrity of the message and sends an acknowledgement back to the mmWaveLink. In this way, all the messages are sent to the front end.
When the mmWave API has sent all the configuration to the front end, italso passes the configuration to that DSP. The DSP, once it receives this configuration, sets up the EDMA and the ADC Buffer accordingly. Once all the configuration is done, theMSS application uses the MMWave_start API, which sends a message to the DSP. Once the DSP receives the start message, it enables the data processing and waits for the ADC data.
After that, the mmWave API uses the mmWaveLink API to send a start message to the mmWave Front End. Once the mmWave FrontEnd receives this start message, it starts transmission of the frame.
3.Programming Sequence--Data Path
Now let's look into the data flow. Once a frame is triggered, the mmWave Front End moves the ADC samples into the Ping-Pong ADC buffer. Once one of these buffers is full, it generates an interrupt to the DSP, and the EDMA moves the data from one of these buffers into the DSP memory. DSP then uses the mmWaveLib to do the Range FFT on this buffer and moves the result to the L3 Memory. The sequence is then repeated for all the chirps in a frame, and the Range FFT is stored into the L3 Memory.
During the inter-frame time, the DSP configures the EDMA to move the data from the L3 Memory back to the DSP Memory and does the Doppler FFT. When the Doppler FFT is done, DSP, again, configures the EDMA to move the data back to the L3 Memory.
After that, the DSP does the object detection and the angle estimation and moves the object list to one of the object buffer in the ping-pong manner. MSS then picks up this Object List from one of these buffer and sends it to the external controller.
【自己的小结】
- 控制流:Control path主要是在MSS中完成,包括三步:初始化(SoC初始化,FE上电,MSS和DSS同步等等)、配置(会配置chirp、profile和frame)、开始(DSP接收到start信息之后,等待ADC数据并进行处理)。
- 数据流:Data Path ,主要是在DSS中完成,主要说的是数据在内存中的处理以及存储。RangFFT在intraframe帧内处理完成(从ADC buffer到L2,做完之后通过EDMA传输到L3)。DopplerFFT在interframe帧间完成(当一帧的RangeFFT处理完成后,将RangeFFT的结果从L3中读到L2中,处理完成之后在通过EDMA回到L3中。)
4.参考资料
-
文档mmwave_sdk_user_guide