Changeset 10458

Show
Ignore:
Timestamp:
10/18/10 22:24:25 (3 years ago)
Author:
cdietric
Message:

replaced figure 1, added authors, other minor edits

Location:
ossiedev/branches/jsnyder/STTT_paper
Files:
7 added
1 modified

Legend:

Unmodified
Added
Removed
  • ossiedev/branches/jsnyder/STTT_paper/elsarticle-seeralan-snyder-submitted.tex

    r10457 r10458  
    8686%% \fntext[label3]{} 
    8787 
    88 \title{Open Source Software Defined Radio Tools for Education, Research, and Rapid  
    89 Prototyping} 
     88\title{Open Source Software Defined Radio Tools for Education, Research, and 
     89Rapid Prototyping} 
    9090 
    9191%% use optional labels to link authors explicitly to addresses: 
     
    9494%% \address[label2]{} 
    9595 
    96 \author{Deepan Seeralan, Jason Snyder, Carl B. Dietrich, Stephen H. Edwards, Jeffrey  
    97 H. Reed} 
     96\author{Deepan~Seeralan, Jason~Snyder, Shereef~Sayed, Jeffery~Wilson, Carl~B.~Dietrich, Stephen~H.~Edwards, Jeffrey~H.~Reed} 
    9897 
    9998\address{Virginia Tech, Blacksburg, VA} 
     
    109108By moving this functionality into software, radios can be made more flexible to support  
    110109a wide range of communications standards or waveforms, limited only by the capabilities  
    111 of the software developers the hardware on which the applications will run.  Open source  
    112 SDR software such as that supplied by the OSSIE project provides an important resource  
     110of the software developers and the hardware on which the applications will run.  
     111Open source SDR software such as that supplied by the OSSIE project provides an important resource  
    113112for education, research, and rapid prototyping in this interdisciplinary field that  
    114113integrates several areas within Electrical Engineering, Computer Engineering, and  
     
    164163\subsection{Direct Manipulation Tools} 
    165164\label{introduction:directmanipulationtools} 
    166 OSSIE existed before the Waveform Workshop, but was much more difficult to use. Component and waveform xml descriptors had to written and installed by hand. Controlling waveforms was limited to starting and stopping them, and there was no 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. Before the Waveform Workshop, the user would have to hand edit the xml descriptors for the waveform, adding elements for each component, as well for the ports and the connection itself. With the Waveform Workshop, waveforms are created by simply dragging together 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. 
     165OSSIE existed before the Waveform Workshop, but was much more difficult to use. 
     166Component and waveform XML descriptors had to written and installed by hand. 
     167Controlling waveforms was limited to starting and stopping them, and there was 
     168no way to monitor or manipulate running waveforms. The Waveform Workshop 
     169addresses this by providing a direct manipulation interface when creating and 
     170running waveforms and components. For example, a user might want to create a 
     171waveform that consists of two components called A and B with a connection from 
     172A's output port to B's input port. Before the Waveform Workshop, the user would 
     173have to hand edit the XML descriptors for the waveform, adding elements for each 
     174component, as well as for the ports and the connection itself. With the Waveform 
     175Workshop, waveforms are created by simply dragging together icons 
     176that represent components. The component ports are automatically displayed, and 
     177connections 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. 
    167178 
    168179\subsection{Motivation for SCA-Based SDR Tools} 
     
    170181 
    171182The 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 Sections $\ref{sdrapplicationdevelopment-oef}$ - $\ref{sdrapplicationdevelopment-alf}$ describe their use in developing, configuring, and monitoring a waveform application. 
     183 
     184%-------------------- FIGURE: EMPTY WORKSPACE IN OEF -------------------- 
     185\begin{figure}[ht] 
     186\centering 
     187%\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} 
     188\includegraphics[width=\textwidth]{figure1_SDR_Development_using_Waveform_Workshop.pdf} 
     189% trim = left bottom right top 
     190\caption{SDR application development using the OSSIE Waveform Workshop tools} 
     191\label{fig:oef:emptyworkspace} 
     192\end{figure} 
    172193 
    173194\section{The Waveform Workshop Tools} 
     
    186207\label{toolsdescription:oef} 
    187208 
    188 OEF is a port of the OSSIE Waveform Developer (OWD), an open source python tool for rapid component and waveform prototyping.  OWD generated the necessary XML descriptors and CORBA-enabled skeleton implementations for SCA-based signal processing components and XML files that specify instantiation, interconnection, and deployment of these components to form waveform applications that implement waveforms. In the case of signal processing components, the SDR developer who used OWD then had to fill in the implementation using his or her editor of choice. Finally, the component or waveform files had to be built and installed from the command line using automake tools. The motivation behind OEF was to duplicate the automatic generation functionality of OWD, while adding support for the rest of the development process. To do so, OEF was developed as a plug-in for the Eclipse IDE. 
     209OEF is a port of the OSSIE Waveform Developer (OWD), an open source python tool for rapid component and waveform prototyping.  OWD generated the necessary XML descriptors and CORBA-enabled skeleton implementations for SCA-based signal processing components and XML files that specify instantiation, interconnection, and deployment of these components to form waveform applications that implement end-to-end communications waveforms. In the case of signal processing components, the SDR developer who used OWD then had to fill in the implementation using his or her editor of choice. Finally, the component or waveform files had to be built and installed from the command line using automake tools. The motivation behind OEF was to duplicate the automatic generation functionality of OWD, while adding support for the rest of the development process. To do so, OEF was developed as a plug-in for the Eclipse IDE. 
    189210 
    190211\subsection{The Waveform Dashboard (WaveDash)} 
     
    206227\label{sdrapplicationdevelopment-oef} 
    207228 
    208 %-------------------- FIGURE: EMPTY WORKSPACE IN OEF -------------------- 
    209 \begin{figure}[ht] 
    210 \centering 
    211 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} 
    212 \includegraphics[width=\textwidth]{figure1_oef_empty_workspace.pdf} 
    213 % trim = left bottom right top 
    214 \caption{Empty workspace in OEF} 
    215 \label{fig:oef:emptyworkspace} 
    216 \end{figure} 
     229 
    217230 
    218231 
     
    228241\includegraphics[width=\textwidth]{figure2_oef_generating_new_component.pdf} 
    229242% trim = left bottom right top 
    230 \caption{Generating a new component} 
     243\caption{Generating a new component in OEF} 
    231244\label{fig:oef:generatenewcomponent} 
    232245\end{figure} 
     
    284297\label{sdrapplicationdevelopment-oef:skeletonimplementation} 
    285298 
    286         At this point, all of the configuration for the component is complete.  The next step is do generate the XML descriptors and skeleton implementation files. The user selects Generate Component from the OSSIE menu to start the generation. OEF will run the necessary make commands and show the output in the console view. After generation is complete, the new files will appear in the project explorer, as seen in Fig. $\ref{fig:oef:generatedproject}$. 
     299        At this point, all of the configuration for the component is complete.  The next step is to generate the XML descriptors and skeleton implementation files. The user selects Generate Component from the OSSIE menu to start the generation. OEF will run the necessary make commands and show the output in the console view. After generation is complete, the new files will appear in the project explorer, as seen in Fig. $\ref{fig:oef:generatedproject}$. 
    287300         
    288301         
     
    301314\label{sdrapplicationdevelopment-oef:implementation} 
    302315 
    303 Once the component has been generated, the user has to fill in the skeleton implementation code. The user double-clicks on amplifierIQ.cpp in the Project Explorer to open the file in a C++ editor as shown in Fig $\ref{fig:oef:editingcode}$. After filling in the custom implementation that operates on the input signal using the specified property (gain) values, and sends the processed signal to the output port, he saves the file. As long as there are no errors, OEF automatically builds and installs the component to the filesystem. 
     316Once the component has been generated, the user has to fill in the skeleton with implementation code. The user double-clicks on amplifierIQ.cpp in the Project Explorer to open the file in a C++ editor as shown in Fig $\ref{fig:oef:editingcode}$. After filling in the custom implementation that operates on the input signal using the specified property (gain) values, and sends the processed signal to the output port, he saves the file. As long as there are no errors, OEF automatically builds and installs the component to the filesystem. 
    304317 
    305318%-------------------- FIGURE: OEF WAVEFORM EDITOR -------------------- 
     
    328341\item Available Resources - lists all of the components, devices, and nodes currently installed on the system and available for use 
    329342\item Waveform - shows all of the components to be used in the current waveform 
    330 \item Platform - shows the devices and nodes and components allocated to them in the current waveform. 
     343\item Platform - shows the processing and input/output devices and nodes (collections of devices) and components allocated to each processing device in the current waveform. 
    331344\end{enumerate} 
    332345 
     
    373386\label{sdrapplicationdevelopment-wavedash:configurecomponentproperties} 
    374387 
    375 The ability to configure component properties at runtime is one of the prime motivations to develop WaveDash. Prior to development of WaveDash, OSSIE users had to either modify property values in OEF and rebuild the waveform or hand-edit the property values in the component or waveform XML files and restart the waveform to configure the component property values.   
     388The ability to configure component properties at runtime was urgently needed and was one of the prime motivations to develop WaveDash. Prior to development of WaveDash, OSSIE users had to either modify property values in OEF and rebuild the waveform or hand-edit the property values in the component or waveform XML files and restart the waveform to configure the component property values.   
    376389 
    377390WaveDash enables users to modify component properties at runtime thus making SDR waveform development more live and interactive.  Each property has a GUI widget (e.g. text box, slider) associated with by default based on its data type (e.g. integer, string). The user can change the value of a component property by changing the value of the widget. By default, the property will be updated immediately after the user presses TAB or ENTER. Changes can be immediately seen with the ALF Plot tool (see Section $\ref{sdrapplicationdevelopment-alf:relationwithwavedash}$). In this example, the user changes the value of noise\_std\_dev of ChannelDemo from default value of 1000 to a 1500 and presses ENTER for the change to take effect.  
     
    404417\label{sdrapplicationdevelopment-wavedash:configurewidgets} 
    405418 
    406        The component PRF files determine the data type for each property of the component. WaveDash does a default mapping of data type (mentioned in PRF files) to a GUI widget and also provides an optional list of widgets which users can customize to their preferences. In this example, packet\_delay\_ms of TxDemo is mapped to a spin box by default. User right clicks on the spin box that brings a context menu with the list of optional widgets configurable for packet\_delay. The user selects slider (Fig $\ref{fig:wavedash:changepropertywidgets}$) and that changes the widget on the application GUI also. The configure option in the context menu is used to set minimum and maximum values for spin box and slider controls. 
     419       The component PRF files determine the data type for each property of the component. WaveDash does a default mapping of data type (mentioned in PRF files) to a GUI widget (control) and also provides an optional list of widgets which users can customize to their preferences. In this example, packet\_delay\_ms of TxDemo is mapped to a spin box by default. User right clicks on the spin box that brings a context menu with the list of optional widgets configurable for packet\_delay. The user selects slider (Fig $\ref{fig:wavedash:changepropertywidgets}$) and that changes the widget on the application GUI also. The configure option in the context menu is used to set minimum and maximum values for spin box and slider controls. 
    407420        
    408421%-------------------- FIGURE: WAVEDASH - SELECT/DESELECT COMPONENT PROPERTIES -------------------- 
     
    419432\label{sdrapplicationdevelopment-wavedash:showhidecomponentproperties} 
    420433 
    421        It is highly possible that a component may have so many properties that it is not convenient to display all of the properties at the same time. Users may wish to hide unwanted properties and keep only the frequently used properties on screen. In this example, user right clicks on a component and deselects phase\_offset (Fig $\ref{fig:wavedash:selectdeselectproperties}$) from the pop-up menu. 
     434       It is highly possible that a component may have so many properties that it is not convenient to display all of the properties at the same time. Users may wish to hide unwanted properties and keep only the frequently used properties on screen. In this example (Fig $\ref{fig:wavedash:selectdeselectproperties}$), the user right clicks on a component and deselects phase\_offset from the pop-up menu. 
    422435       
    423436%-------------------- FIGURE: ALF - BLOCK DIAGRAM WITH PLUG-IN MENU -------------------- 
     
    524537\section{User Base} 
    525538\label{userbase} 
    526 The OSSIE software, including the Waveform Workshop, is a widely used and distributed software package. Over 20,000 people have downloaded the OSSIE source code or our ready-to-run live DVD. We have confirmed that students and engineers at over 20 different universities, companies, nonprofit research centers, and government laboratories have used OSSIE. In addition, over US\$3 million in funding for OSSIE projects has supported over 20 graduate and undergraduate students, and more than 10 graduate theses at Virginia Tech, the Naval Postgraduate School, and elsewhere have used the software. OSSIE has served as the basis for three peer-reviewd journal articles, four online articles, and more than 20 conference papers, along with approximately 10 short courses and tutorials serving over 200 participants.  
     539The OSSIE software, including the Waveform Workshop, is a widely used and distributed software package. There have been over 20,000 downloads of the OSSIE source code, ready-to-run live DVDs, and VMware images. We have confirmed that students and engineers at over 20 different universities, companies, nonprofit research centers, and government laboratories have used OSSIE. In addition, over US\$3 million in funding for OSSIE projects has supported over 20 graduate and undergraduate students, and more than 10 graduate theses at Virginia Tech, the Naval Postgraduate School, and elsewhere have used the software. OSSIE has served as the basis for three peer-reviewed journal articles, four online articles, and more than 20 conference papers, along with approximately 10 short courses and tutorials serving over 200 participants.  
    527540 
    528541\section{Future Work} 
     
    545558\item Add model-based development capability for greater flexibility 
    546559 
    547 \item HTTP and command line interfaces to the OSSIE backend 
     560\item Provide HTTP and command line interfaces to the OSSIE backend 
    548561\end{itemize} 
    549562\section{Conclusion} 
    550563\label{conclusion} 
    551564 
    552 This paper has described a set of open source SCA-based SDR development tools suitable for education, research, and rapid prototyping. These tools hide some of the complexity of the SCA while exploiting the features provided by the SCA to enable an interactive development process.  The development process includes creation of signal processing comoponents and waveform applications as well as execution, visualization, monitoring, testing, and run time reconfiguration of waveform applciations. 
     565This paper has described a set of open source SCA-based SDR development tools suitable for education, research, and rapid prototyping. These tools hide some of the complexity of the SCA while exploiting the features provided by the SCA to enable an interactive development process.  The development process includes creation of signal processing comoponents and waveform applications as well as execution, visualization, monitoring, testing, and run time reconfiguration of waveform applications. 
    553566 
    554567\section{Acknowledgements} 
     
    622635 
    623636\bibitem{Cormier2009} 
    624 A.R. Cormier, C.B. Dietrich, J. Price, and J.H. Reed, Dynamic reconfiguration of software defined radios using standard architectures, Physical Communication (2009), doi: 10.1016/j.phycom.2009.09.002 (in press) 
     637A.R. Cormier, C.B. Dietrich, J. Price, and J.H. Reed, Dynamic reconfiguration of software defined radios using standard architectures, Physical Communication, June, 2010, doi: 10.1016/j.phycom.2009.09.002 
    625638 
    626639\end{thebibliography}