Software Communications Architecture
||This article may require cleanup to meet Wikipedia's quality standards. (September 2010) (Learn how and when to remove this template message)|
||This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. (May 2014) (Learn how and when to remove this template message)|
The Software Communications Architecture (SCA) is an open architecture framework that tells designers how elements of hardware and software are to operate in harmony within a software defined radio. SCA governs the structure and operation of the U.S. military's Joint Tactical Radio System (JTRS), enabling programmable radios to load waveforms[clarification needed], run applications, and be networked into an integrated system. A Core Framework, providing a standard operating environment, must be implemented on every hardware set. Interoperability among radio sets is enhanced because the same waveform software can be easily ported to all radio sets.
The Object Management Group (OMG), a not-for-profit consortium that produces and maintains computer industry specifications for interoperable enterprise applications, has established a Software Based Communications Domain Task Force (SBC-DTF). This group and the Wireless Innovation Forum (formerly Software Defined Radio Forum) (WINNF), are working on an international commercial standard based on the SCA.
A software-defined radio's transmitter can be changed through software, not hardware, to alter frequency range, modulation type, and maximum radiated or conducted output power. The Software Communication Architecture (SCA) outlines several interfaces, which describe what operations the various components can be made to do.
Member variables are not exposed to the outside world. The device interface in the diagram provides an interface with attributes, shown in the first compartment, and operations, shown in the second. It is easy to make the erroneous association of CORBA attributes to C++ member variables and CORBA operations to C++ operations. In CORBA, both attributes and operations are operations. Attributes have implicit set and query operations. Again using the device interface in the diagram as an example, the label attribute has implicit operation signatures:
- label(in listString:string):void
The software component provides the internal storage variable for the label string. It is not directly available to the outside world. The CORBA interface provides the implicit operations for changing the variable.
In contrast, the allocateCapacity() operation of the device interface has a defined function signature instead of the implicit signatures of attributes. Since operations handle exceptions better, many programmers use only operations in an interface definition. However, the SCA uses both attributes and operations in some interfaces.
The SCA's resource interface inherits interfaces from four other interfaces:
The resource interface is inherited by applications and hardware devices. Because of its importance, the example in this section will define a software component that inherits the resource interface. It could inherit other interfaces, but this would add complexity without providing further insight into the development of SCA components.
- The CORBA middleware allows software components to be distributed anywhere within the radio.
- The Core Framework provides distributed object launchers for each processor board within the set.
- The radio’s application factory launches a waveform or application by providing the object files and execution parameters to the various processors within the radio.
After objects are instantiated, they may be co-located, or distributed among the different processing elements within the radio. These objects do not have any knowledge of other application objects or the hardware resources within the radio.
A set of XML files is associated with each software and hardware object. These files provide information about the objects, including their port references. The application factory parses these files along with an application schematic file, the Software Assembly Descriptor (SAD). The SAD provides the necessary information to connect the hardware and software components together.
The SCA System Communications Architecture does not specify a hardware configuration. However, one of the requirements for SCA certification is that the waveform must be ported successfully to a government test platform.
Most previous military radios had a specialized downconverter and modulator integrated circuits. With the non-standard JTRS configuration shown here, the waveform developers must provide FPGA code that can perform the function of operating directly with the A/Ds and D/As. The hardware does not provide direct digital synthesizers and upsamplers typical in previous radios. The waveform designer must provide that functionality in specialized FPGA code that constitutes part of the delivered waveform.
- Software Communications Architecture Homepage
- Open Source SCA Implementation - Embedded (OSSIE) - Virginia Tech
- Advanced Open Source Implementation based on the SCA - REDHAWK
- SCA Waveform Development - Etherstack
- SCA Integrated Development Environment - NordiaSoft - Makers of SCA Architect and the SCARI Core Framework