Embedded Linux Conference Europe 2012 (Barcelona - November 5-7)
Embedded Linux RADAR device
Taking advantage on Linaro tools and HTML5 AJAX real-time visualization
Agustí FONTQUERNI GORCHS
[email protected] www.isee.biz
ELCE 2012: Embedded Linux RADAR device
2/27
Introduction
Highlights
A/D Converter access
Optimization programming techniques
Optimization from compilers
HTML5 + AJAX
Developing time / costs
Demo
Future
Summary
OVERVIEW
ELCE 2012: Embedded Linux RADAR device
3/27
hardware
IGEPv2 board + IGEP Radar sensor
INTRODUCTION
ELCE 2012: Embedded Linux RADAR device
4/27
hardware
IGEPv2 board
TI DM3730 processor
ARM Cortex A8 core at 1GHz
Processor : ARMv7 Processor rev 2 (v7l)
BogoMIPS : 996.74
DSP C64x+ core at 800Mhz
GPIO expansion J990 connector (BeagleBoard connector)
SPI bus
Input/output digital control lines
5 Vcc Power
INTRODUCTION
ELCE 2012: Embedded Linux RADAR device
5/27
INTRODUCTION
hardware
IGEP Radar sensor
Antenna
RF Transmitter
RF Receiver
SPI DDS
SPI A/D Converter
PLL
IF Filter
I/O control lines
ELCE 2012: Embedded Linux RADAR device
6/27
radar: (quick) FMCW Radar technology
FMCW: Frequency Modulation Constant Wave
Modulation from 24,0 Ghz to 24,25 Ghz (ISM K-Band)
INTRODUCTION
ELCE 2012: Embedded Linux RADAR device
7/27
radar: (quick) FMCW Radar technology
diff frequency = measured distance
balance between accuracy and latency/refresh measure
INTRODUCTION
ELCE 2012: Embedded Linux RADAR device
8/27
radar: (quick) FMCW Radar technology
it searches for positions of peaks of FFT in IF (Intermediate Frequency) signal that is proportional to distance measures
INTRODUCTION
Person 1 Person 2
2 persons=2 signals
ELCE 2012: Embedded Linux RADAR device
9/27
software
Linux kernel 2.6.37
Based on TI BSP with 2.6.37 kernel fork
The last for OMAP3 (dead line NOT ported to mainline)
with A LOT OF patches…
from 2.6.37 official branch (kernel.org)
from ISEE to support IGEP devices (git.isee.biz)
Roofs based on Poky 7.0.0 distribution and compiled with Yocto1.2 infrastructure
Specific radar application is developed on standard C-code
INTRODUCTION
ELCE 2012: Embedded Linux RADAR device
10/27
hwmon infrastructure
comedy infrastructure
spidev infrastructure (userspace / omapspi DMA transfer )
omapspi host driver patch (CS mode configuration)
HIGHLIGHTS: A/D Converter access
ELCE 2012: Embedded Linux RADAR device
11/27
Linux kernel module for configuration of ADC121S101 spi-device A/D converter from user-space (opposite to igep00x0-board.c file)
HIGHLIGHTS: A/D Converter access
ELCE 2012: Embedded Linux RADAR device
12/27
HIGHLIGHTS: A/D Converter access
ELCE 2012: Embedded Linux RADAR device
13/27
Debugging time bottlenecks
timeline marks
gettimeofday ()
detection of the heaviest computing functions
Fast Fourier Transform (FFT) calculation
Data movements
Loops
detection of delay device response
acquisition time delay (A/D Converter wave data)
network TCP request and data response transfers
HIGHLIGHTS: Optimization programming techniques
ELCE 2012: Embedded Linux RADAR device
14/27
Paralleling processes ( acquisition / processing / output data )
HIGHLIGHTS: Optimization programming techniques
ADC Acquistion [n] (7 ms) Signal Processing
[n] (9 ms) Output data
[n] (2 ms)
ADC Acquistion [n] (7 ms)
Signal Processing [n] (9 ms)
Output data [n] (2 ms) ADC Acquistion
[n+1] (7 ms)
Signal Processing [n+1] (9 ms) ADC Acquistion
[n+2] (7 ms)
Output data [n+1] (2 ms) Signal Processing
[n+2] (9 ms) ADC Acquistion
[n+3] (7 ms)
time cycle: 18 ms time cycle: 9 ms SAVE -50% !!!
Secuencial (1 threads)
(only one thread: ARM CPU)
Parallel processes (3 threads)
(thread 1: DMA transfer / thread 2: ARM CPU / thread 3: remote network web browser)