| 44 | | The Waveform Workshop is a set of software tools that have been developed as |
| 45 | | part of the OSSIE open source Software Defined Radio (SDR) project |
| 46 | | \cite{Aguayo2009b}, \cite{ossieweb}, which is based on the U.S. Defense |
| 47 | | Department's Software Communications Architecture (SCA) \cite{sca}, \cite{bard}, \cite{Aguayo2009a}. These tools solve several problems frequently experienced by developers working on SDR projects. First, they bring modern IDE technology to the SDR development life cycle. While developers have always been able to use a modern IDE when writing source code, there are no IDEs built with SDR development in mind specifically. The tools also automate much of the development process, making development easier and drastically reducing opportunities to make mistakes. Finally, the tools provide a means of monitoring and reconfiguring SDR applications in real time, making it much easier for developers to debug and refine their software. |
| | 44 | The Waveform Workshop is a set of software tools that have been developed as part of the OSSIE open source Software Defined Radio (SDR) project \cite{Aguayo2009b}, \cite{ossieweb}. OSSIE is based on the U.S. Defense Department's Software Communications Architecture (SCA) \cite{sca}, \cite{bard}, \cite{Aguayo2009a}. These tools solve several problems frequently experienced by developers working on SDR projects. First, they bring modern IDE technology to the SDR development life cycle. While developers have always been able to use a modern IDE when writing source code, there are no IDEs built with SDR development in mind specifically. The tools also automate much of the development process, making development easier and drastically reducing opportunities to make mistakes. Finally, the tools provide a means of monitoring and reconfiguring SDR applications in real time, making it much easier for developers to debug and refine their software. |
| 51 | | Software Defined Radio (SDR) involves software implementation of radio |
| 52 | | functionality that is traditionally performed by analog hardware and digital |
| 53 | | application specific integrated circuits (ASICs). SDR employs general purpose processors (GPPs), digital signal processors (DSPs), and field programmable gate arrays (FPGAs) that can be programmed or configured to provide great flexibility and support for multiple radio communications standards or waveforms. Within limits of its hardware, a well designed SDR can support standards that were not conceived at the time the radio was designed \cite{Reed2002}. SDR is of interest for both commercial \cite{Vanu} and military \cite{JTRS} applications. |
| 54 | | |
| 55 | | \subsection{The Software Communications Architecture} |
| 56 | | \label{introduction:sca} |
| 57 | | The SCA is an open standard associated with the U.S. Department of Defense Joint Tactical Radio System (JTRS) \cite{JTRS}. The SCA is a component and service based architecture that delineates and provides guidance for implementation of SDR infrastructure (e.g., the SCA core framework) and application software (e.g., waveform applications and signal processing components). The SCA makes extensive use of software design patterns \cite{Gamma}, and of other standards that include POSIX \cite{POSIX}, CORBA \cite{CORBA}, and XML \cite{XML}. Components in the SCA communicate using Common Object Resource Broker Architecture (CORBA) middleware, which provides interprocess communication and remote procedure call capability, allowing methods associated with remote components implemented in a variety of languages to appear as local function calls. XML is used to store profile or configuration information. |
| | 48 | Software Defined Radio (SDR) involves software implementation of radio functionality that is traditionally performed by analog hardware and digital application specific integrated circuits (ASICs). SDR employs general purpose processors (GPPs), digital signal processors (DSPs), and field programmable gate arrays (FPGAs) that can be programmed or configured to provide great flexibility and support for multiple radio communications standards or waveforms. Within limits of its hardware, a well designed SDR can support standards that were not conceived at the time the radio was designed \cite{Reed2002}. SDR is of interest for both commercial \cite{Vanu} and military \cite{JTRS} applications. |
| 66 | | The extensive nature of the SCA and its use of CORBA and XML both motivate and facilitate development of tools for SCA-based SDR development. In most cases it is desirable to abstract the interface code required by CORBA from communciations engineers who develop signal processing compnents and waveform applications. Fortunately, use of CORBA also allows SCA-based SDR software tools to interact with SCA core frameworks and applications that are running either locally or remotely, while tools can parse XML files to obtain information needed to perform a variety of functions. Commercial tools for SCA-based SDR development are available \cite{SpectraCX}, but open source tools that work with OSSIE are needed for educational and research purposes. The Waveform Workshop provides these capabilities to researchers, students, and other SDR developers who use the OSSIE SDR software. Section \ref{waveformworkshoptools} introduces the tools and the problems they solve. Sections \ref{sdrapplicationdevelopment-oef} - \ref{sdrapplicationdevelopment-alf} describe their use in developing, configuring, and monitoring a waveform application. |
| | 57 | The SCA is an open standard associated with the U.S. Department of Defense Joint Tactical Radio System (JTRS) \cite{JTRS}. The SCA is a component and service based architecture that delineates and provides guidance for implementation of SDR infrastructure (e.g., the SCA core framework) and application software (e.g., waveform applications and signal processing components). The SCA makes extensive use of software design patterns \cite{Gamma}, and of other standards that include POSIX \cite{POSIX}, CORBA \cite{CORBA}, and XML \cite{XML}. Components in the SCA communicate using Common Object Resource Broker Architecture (CORBA) middleware, which provides interprocess communication and remote procedure call capability, allowing methods associated with remote components implemented in a variety of languages to appear as local function calls. XML is used to store profile or configuration information. |
| | 58 | |
| | 59 | The extensive nature of the SCA and its use of CORBA and XML both motivate and facilitate development of tools for SCA-based SDR development. In most cases it is desirable to abstract the interface code required by CORBA from communications engineers who develop signal processing components and waveform applications. Fortunately, use of CORBA also allows SCA-based SDR software tools to interact with SCA core frameworks and applications that are running either locally or remotely, while tools can parse XML files to obtain information needed to perform a variety of functions. Commercial tools for SCA-based SDR development are available \cite{SpectraCX}, but open source tools that work with OSSIE are needed for educational and research purposes. The Waveform Workshop provides these capabilities to researchers, students, and other SDR developers who use the OSSIE SDR software. Section \ref{waveformworkshoptools} introduces the tools and the problems they solve. Sections \ref{sdrapplicationdevelopment-oef} - \ref{sdrapplicationdevelopment-alf} describe their use in developing, configuring, and monitoring a waveform application. |
| 80 | | SDR frameworks such as OSSIE can be used without a set of specially designed developer tools, but it is a difficult and error-prone process. Component and waveform XML descriptors have to written and installed by hand. Controlling waveforms is typically limited to starting and stopping them, and there is no easy way to monitor or manipulate running waveforms. The Waveform Workshop addresses this by providing a direct manipulation interface when creating and running waveforms and components. For example, a user might want to create a waveform that consists of two components called A and B with a connection from A's output port to B's input port. Prior to the introduction of the Waveform Workshop, the user would have to hand edit the XML descriptors for the waveform, adding elements for each component, as well as for the ports and the connection itself. With the Waveform Workshop, waveforms are created by simply dragging together icons that represent components. The component ports are automatically displayed, and connections can be made by dragging one port onto another. The Waveform Workshop then takes care of generating the correct XML descriptors. The Waveform Workshop also provides a direct manipulation interface for running and monitoring waveforms. The user can see a block diagram of a waveform showing each component, and can plot the output of any port. Finally, the user can view and update component property values in realtime, allowing him or her to observe the effects of changing properties. |
| | 73 | SDR frameworks such as OSSIE can be used without a set of specially designed developer tools, but it is a difficult and error-prone process. Component and waveform XML descriptors have to written and installed by hand. Controlling waveforms is typically limited to starting and stopping them, and there is no easy way to monitor or manipulate running waveforms. The Waveform Workshop addresses this by providing a direct manipulation interface when creating and running waveforms and components. For example, a user might want to create a waveform that consists of two components called A and B with a connection from A's output port to B's input port. Prior to the introduction of the Waveform Workshop, the user would have to hand edit the XML descriptors for the waveform, adding elements for each component, as well as for the ports and the connection itself. With the Waveform Workshop, waveforms are created by simply dragging together icons that represent components. The component ports are automatically displayed, and connections can be made by dragging one port onto another. The Waveform Workshop then takes care of generating the correct XML descriptors. The Waveform Workshop also provides a direct manipulation interface for running and controlling waveforms. Along with starting and stopping waveforms, the user can view and update component property values in realtime, allowing him or her to observe the effects of changing properties. Finally, the user can view a block diagram of a waveform showing each component, and can inject input to or plot the output from component ports. |