TIDUE95A April   2018  – April 2020

 

  1.   Revision History

Processing Chain

An example processing chain for vehicle occupancy detection using a short range chirp and frame design is implemented on the mmWave device.

The main processing elements involved in the processing chain consist of the following:

  • Front end – Represents the antennas and the analog RF transceiver implementing the FMCW transmitter and receiver and various hardware-based signal conditioning operations. This must be properly configured for the chirp and frame settings of the usage case.
  • ADC – The ADC is the main element that interfaces to the DSP chain. The ADC output samples are buffered in ADC output buffers for access by the digital part of the processing chain.
  • EDMA controller – This is a user-programmed DMA engine employed to move data from one memory location to another without using another processor. The EDMA can be programed to trigger automatically, and can also be configured to reorder some of the data during the movement operations.
  • C674 DSP – This is the digital signal processing core that implements the configuration of the front end and executes the main signal processing operations on the data. This core has access to several memory resources, as noted further in the design description.
  • ARM R4F – This ARM MCU can execute application code, including further signal processing operations and other higher level functions. In this application, the ARM R4F primarily relays visualization data to the UART interface. There is a shared memory visible to both the DSP and the R4F.

The processing chain is implemented on the DSP. There are several physical memory resources used in the processing chain, which are described in Table 2.

Table 2. DSP Memory Resources

Section Name Size (KB) as Configured Memory Used (KB) Description
L1D SRAM 16 16 Layer one data static RAM is the fastest data access for DSP and is used for most time-critical DSP processing data that can fit in this section.
L1D cache 16 Used as cache Layer one data cache caches data accesses to any other section configured as cacheable. The LL2, L3, and HSRAM are configured as cacheable.
L1P SRAM 16 4 Layer one program static RAM is the fastest program access RAM for DSP and is used for most time-critical DSP program that can fit in this section.
L1P cache 16 Used as cache Layer one cache caches program accesses to any other section configured as cacheable. The LL2, L3, and HSRAM are configured as cacheable.
LL2 256 240 Local layer two memory is lower latency than layer three for accessing and is visible only from the DSP. This memory is used for most of the program and data for the signal processing chain.
L3 640 595 Higher latency memory for DSP accesses primarily stores the radar cube and the range-Doppler power map. It is a less time sensitive program. Data can also be stored here.
HSRAM 32 32 Shared memory buffer between the DSP and theR4F relays visualization data to the R4F for output over the UART in this design.
Figure 6. Processing Chain FlowTIDEP-01001 Figure7.jpg

As shown in Figure 6, the implementation of the VOD and CPD use cases in the signal-processing chain consists of the following blocks, implemented as DSP code executing on the C674x core in the mmWave device:

  • Range processing — For each antenna, EDMA is used to move samples from the ADC output buffer to DSP’s local memory. A 16-bit, fixed-point 1D windowing and 16-bit, fixed-point 1D FFT are performed. EDMA is used again to move output from DSP local memory to the radar cube storage in layer three (L3) memory. Range processing is interleaved with active chirp time of the frame. All other processing happens each frame, except where noted, during the idle time between the active chirp time and the end of the frame (the "inter-frame" period).
  • Clutter removal — In clutter-rich environments, especially indoor, detecting objects with small RCS (radar cross section), such as pedestrian and life-form objects, is a challenge. Some clutters with large RCS, such as building structure and furniture, can dominate the received signal. As a result, objects with small RCS can be buried under the strong interference from the clutters and become difficult to detect. When the radar sensor is stationary, clutters and all stationary objects have zero Doppler, which is exploited to improve the signal condition for the remaining radar signal processing chain.
  • Range-Azimuth heatmap generation — The Range-Azimuth heatmap is generated using high resolution direction of arrival (DoA) spectral estimation, based on spatial covariance. This is done each frame using the clutter removed, 1D FFT outputs. To avoid numeric instability issues, a small value is added along the diagonal of the covariance estimate matrix. The "heatmap" is actually a velocity map, with larger magnitude values showing more movement of non-static objects.
  • Range-Azimuth heatmap conditioning — To help overcome issues with clutter removal and DoA, the heatmap is further processed to suppress MVDR arcs, and and to smooth single-frame drops caused by frame variations in clutter removal.
  • Feature extraction — Using the frame’s Range-Azimuth heatmap (and several previous frame’s heatmaps), several features are calculated using zone definitions pre-computed and loaded during configuration. The features are computed using only the heatmap cells within the defined zones. These features are average power, average power for the past N frames, power ratios, and the correlation coefficient.
  • Zone detection — For Nz zones, there 2Nz are possible occupancy states for the area of interest. Matrix multiplications are performed with the feature vectors and offline-generated training coefficients. The result of these multiplications is an array of decisions, 1 (occupied) or 0 (empty) for each zone, representing the possible occupancy states.

After DSP finishes frame processing, the results are formatted and written in shared memory for the MSS R4F to send to host using UART for visualization. The PC GUI executable then decodes each frame’s data and updates the heatmap and zone detections accordingly.