If you’re working with embedded systems, it’s likely that you’ve heard of the OpenCPI framework. Its ability to support systems with diverse hardware makes it a flexible methodology for rapidly developing and deploying reconfigurable apps across multiple processors.
But what exactly is OpenCPI and, more importantly, how can it benefit the structured development of embedded systems and software defined radios (SDRs)?
HOW OpenCPI WORKS
Open Component Portability Infrastructure (OpenCPI) is an open-source software (OSS) framework that allows users to develop and execute component-based applications on heterogeneous embedded systems (systems that use more than one kind of processor or core).
What this means in practice is that an application developer can write functional components in multiple programming languages and the OpenCPI framework will compile them for a range of different hardware platforms without requiring any additional development.
Flexible embedded systems
OpenCPI is intended to be flexible enough to be used with a range of embedded system configurations. A typical embedded system will consist of any number of connected processors, for example general-purpose processors (GPP), graphical processor units (GPU) or field-programmable gate arrays (FPGA). It will also consist of OpenCPI components, which can be written in a range of programming languages, including C / C++ for GPPs and GPUs, and VHDL / Verilog for FPGAs.
OpenCPI’s flexibility comes into play at application runtime when the framework decides which components to run on which hardware platforms depending on available resources and required connections.
Different platforms may be added to the embedded system as required and the platform provides an OpenCPI System Support Project, then a component can be compiled for it. Existing components require no modifications and integrate seamlessly.
What is OpenCPI for Software Defined Radios?
SDRs can be built in many different ways, from the simple to the complex, but they all share a common structure. An SDR will always contain configurable hardware near the antenna, programmable processing resources, and a user interface. Although the actual hardware can vary, a typical SDR system will consist of a radio module, an FPGA and a processor.
OpenCPI provides the infrastructure to create applications that utilise this architecture, distributing components between the processing platforms as appropriate. For example, a field-programmable gate array (FPGA) is more suitable for real-time Digital Signal Processing (DSP), whereas a general-purpose processor (GPP) is more suitable for slower algorithmic control. If a component is written for both a GPP and an FPGA, then it may be run on either platform with the corresponding performance trade-offs.
SDRs are generally composed of standard signal processing building blocks that are readily available in the OpenCPI component library, such as Fast Fourier Transforms (FFTs) and Finite Impulse Responses (FIRs). There are a range of reasons that make the OpenCPI framework ideal for developing with Software Defined Radios (SDRs), but the main benefit is that having such quick access to these ready-made components significantly cuts down on development time, increases flexibility and allows for ease of portability across different platforms.
Want to find out more?
If you’d like to find out more about how our family of high-performance, fully integrated OpenCPI software defined radios (SDRs) could help you meet your challenging and evolving mission needs, get in contact with us today.