Changeset 10516

Show
Ignore:
Timestamp:
11/11/10 13:44:20 (3 years ago)
Author:
Snyder.Jason
Message:

moved SCA description to Motivation for SCA-Based SDR Tools section

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • ossiedev/branches/jsnyder/STTT_paper/sttt-draft.tex

    r10497 r10516  
    4242\section{Introduction} 
    4343\label{introduction} 
    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. 
     44The 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. 
    4845 
    4946\subsection{Software Defined Radio} 
    5047\label{introduction:sdr} 
    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.   
     48Software 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.   
    5849 
    5950\subsection{OSSIE} 
     
    6455\subsection{Motivation for SCA-Based SDR Tools} 
    6556\label{introduction:toolmotivation} 
    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. 
     57The 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 
     59The 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. 
    6760 
    6861%-------------------- FIGURE: SDR Development using Waveform Workshop -------------------- 
     
    7871\section{The Waveform Workshop Tools} 
    7972\label{waveformworkshoptools} 
    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. 
     73SDR 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. 
    8174 
    8275Currently, three tools make up the Waveform Workshop.  These tools can be used in an iterative process of creating, testing, and improving OSSIE signal processing components and waveform applications.  The tools are: 
     
    9588\subsection{WaveDash: Controlling SDR Applications in Real Time} 
    9689\label{toolsdescription:wavedash} 
    97 The Waveform Dashboard (WaveDash) is an interactive and configurable graphical user interface (GUI) tool that acts as a control panel for working with multiple SDR waveform applications and their components. This tool abstracts the SCA interfaces and the implementation of the OSSIE core framework. It provides a direct manipulation interface to control and configure SDR waveforms interactively. Users can install, start, stop and uninstall a waveform application, and also can configure the properties of its components in real time. Further, this tool allows the user to customize the interface on a per-waveform and per-component basis. Users can choose the type of widget they prefer to represent a particular property of a component and can also hide or unhide specific components or properties. 
     90The Waveform Dashboard (WaveDash) is an interactive and configurable graphical user interface (GUI) tool that acts as a control panel for working with multiple SDR waveform applications and their components. This tool abstracts the SCA interfaces and the implementation of the OSSIE core framework by providing a direct manipulation interface to control and configure SDR waveforms interactively. Users can install, start, stop and uninstall a waveform application, and also can configure the properties of its components in real time. Further, this tool allows the user to customize the interface on a per-waveform and per-component basis. Users can choose the type of widget they prefer to represent a particular property of a component and can also hide or unhide specific components or properties. 
    9891 
    9992\subsubsection{WaveDash Architecture} 
     
    126119\item Generation Options - to specify what type of component to generate 
    127120\item Ports - to specify the ports the component will have 
    128 \item Properties - to specify which properties with component will have 
     121\item Properties - to specify which properties the component will have 
    129122\end{enumerate} 
    130123The user enters the following descriptions for the component, in this case, ``Amplifier with independently adjustable gains for in- phase and quadrature signal components.'' Under generation options, the user selects basic\_ports from the template drop-down menu and leaves both ACE Support and Timing Port Support unchecked. Selecting basic\_ports will create a C++ component. The other options in the template drop-down, custom\_ports and py-comp, are for components that use an alternative set of interfaces and for python components, respectively. Checking ACE support would let the component use certain features of ACE \cite{ACE} such as ACE threads, and checking Timing Port Support adds profiling support when using the custom ports or python component options. 
     
    484477 
    485478\end{thebibliography} 
    486  
    487  
    488479\end{document} 
    489480