Products and Services: STAR

Up to Products and Services

Since in Software Defined Radios (SDRs) the boundary between the analog and the digital worlds must be very close to the antenna, the A/D converters work at very high frequencies. The use of general-purpose microprocessors (though powerful) dictates the use of optimized software to deal with the demanding rates of the digitized signals.

STAR (Software-defined Transmission and Reception) is a software package intended for real time digital signal processing. Its main purpose is to provide a development environment to be used in designing and SDR transceivers based on general purpose computing platforms which may support a number of wireless communication standards (such as GSM and UMTS standards).

STAR also provides a complete and optimized set of processing blocks (a constantly evolving software library) to potentially build-up Software Defined Radios for a variety of applications from point-to-point radio, to global positioning and Wireless Local Area Network (WLAN) on a hardware platform employing a mix of special purpose ICs, reconfigurable logic elements such as FPGAs and general purpose programmable computing platforms.

To achieve these goals, the STAR architecture responds to the following requirements:

 speed

 hardware implementation ability

 reconfiguration ability

 robustness

 compactness

 simulation suitability

 portability



 Speed 

Top

In order to deal with the high throughput which is unique to communication devices, the whole STAR architecture is designed to achieve best performaces (i.e. information flows and data structures are designed in order to require as little overhead as possible for their management). Of course, specific code optimization rules (e.g. the choice of the fastest algorithm for a specific processing block, the minimization of memory swaps within a computation event, etc.) are also employed.



 Hardware Implementation Ability 

Top

Even with accurate software optimization, there is the possibility that - for a given application - the sum of the computational loads of all the involved processing blocks is too heavy for a general purpose microprocessor. In that case a direct hardware implementation of a part of the system on FPGA or other reconfigurable logic entities is required. The STAR software architecture facilitates the use of hardware implemented blocks, providing a common and consistent interface, harmonizing with an eventual pipeline structure on the FPGA (with sample-by-sample computations), and allowing the use of fixed point arithmetic. Functional blocks are also programmed using a paradigm that facilitates translations to VHDL.



 Reconfiguration Ability 

Top

One of the main attractions of SR is the possibility to make extended reconfigurations of the transceiver. In literature, the term "reconfiguration" has many interpretations. It may refer to the possibility to completely change the supported telecommunication standard, either at a base station or at the mobile. In other cases it refers simply to an improved ability of the station to adjust its transmission or reception parameters according to changes in the transmission environment or in the channel characteristics. Moreover, the way to perform such reconfigurations is also a topic of study; in one scenario the whole software code (as well as patches or new versions) is to be directly downloaded on the mobile station using the wireless channel, in another the software has to reside on the station and only software parameters are involved in "on the fly" reconfiguration. STAR takes reconfiguration issues into account, allowing potentially both software code reconfiguration (via code modularity) and parameter reconfiguration (by providing methods for real-time re-parameterization).



 Robustness 

Top

When a STAR-based communication system works in the production environment it is important that the provided service won't stop due to errors or failures in either software or hardware signal processing stages. In particular, it is important that every subsystem is stable and won't stop working for any possible sequence of samples as input. Ideally, every error check - which may eventually provide a notification of the occurrance of error on a user interface - should be performed in the initialization phase, when the subsystems are allocated and their parameters are provided. Instead, the real-time calculations performed in the processing phase should be robust to errors that depend on input data (e.g. overflows, divisions by zero, etc.). Where applicable, it is important to provide a protection mechanism to make the subsystems go on working and still giving consistent values as output. Of course, it is not possible to prevent every possible cause of failure, nonetheless the STAR exception handling system allows to easily manage and update the protection mechanism in order to improve robustness.



 Compactness 

Top

Just like computational optimization, memory usage is a parameter keept under strict control. Both the source code and the data structures are designed to be as compact as possible, allowing the execution of STAR-based communication systems in demanding environments (e.g. mobile stations, satellite payloads, etc.).



 Simulation Suitability 

Top

For testing purposes it is useful that the package is able to run in simulation mode, allowing performance measures to be carried out quickly and at low cost, without having to set up the real system. In the architecture, some features have been added to allow the simulations to take place. The software library is completed with different digital synthesizers, channels, filters and measurement blocks; signal buffers are employed for either statistical measurements or FFT-based measurements.



 Portability 

Top

STAR architecture facilitates the production of portable code, i.e. code that with no changes is able to run on different operating systems or hardware environments. Still keeping a focus on optimization issues, STAR is developed at a high level of abstraction, i.e. using structures that may be implemented in different ways in different environments and common interfaces that allow to control different devices. Doing so, any change in the implementation is local (it only impacts the innermost structures) and does not involve the whole package.