# Changeset 10458

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

replaced figure 1, added authors, other minor edits

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

Unmodified
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

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

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}