DIGITAL LIBRARY
DSPPAL: AN OPEN SOURCE LIBRARY TO SUPPORT REAL-TIME IMPLEMENTATION OF DSP AND CONTROL ALGORITHMS ON A RANGE OF HARDWARE AND SOFTWARE PLATFORMS
Dublin Institute of Technology (IRELAND)
About this paper:
Appears in: INTED2009 Proceedings
Publication year: 2009
Pages: 2555-2563
ISBN: 978-84-612-7578-6
ISSN: 2340-1079
Conference name: 3rd International Technology, Education and Development Conference
Dates: 9-11 March, 2009
Location: Valencia, Spain
Abstract:
In many third level institutions, DSP and control algorithm research and teaching is largely based on simulation tools such as Matlab, Simulink, Octave, and Scilab. This can lack the impact of working with real systems where the student/developer can experiment in real time. Even modern PCs are generally unable to meet throughput requirements of real-time signal processing without the installation of additional input/output hardware.

Simulation can also hide or over-simplify real problems such as noise, race conditions and poor performance. In addition, Matlab and Octave do not readily simulate the finite precision and word length issues that must be dealt with when algorithms are ported to digital signal processors and microcontrollers.

Once the design and simulation stages are complete, algorithms are ported from the simulated environment to real hardware – a move which is problematic for many. A number of solutions exist. Some developers port their application using tools provided by the DSP manufacturer that link the simulation tool to the embedded development tools. Other developers take a lower level approach and spend time learning about the target hardware. Whichever approach is taken, some knowledge of the low level hardware platform is required. This can lead to difficulties and it has been the author's experience that algorithm design and low level hardware programming represent non intersecting skill sets.

This paper outlines the development and use of DSPPal – a free, open source platform abstraction layer for DSP that hides the underlying hardware/software platform details using a thin layer of software. It provides a simple and common programming interface for a diverse set of platforms ranging from PIC processors, to ARM processors to embedded Linux systems. Translation and testing of algorithms to C is assisted by the inclusion of an off-line version of the abstraction layer which is capable of sharing data with Matlab and Octave. While primarily implemented in the C programming language, ports to Python and Java are underway.
Keywords:
dsp, platform abstraction, real-time, real-time implementation, embedded systems.