Changeset 10458
- Timestamp:
- 10/18/10 22:24:25 (3 years ago)
- Location:
- ossiedev/branches/jsnyder/STTT_paper
- Files:
-
- 7 added
- 1 modified
-
.project (added)
-
.texlipse (added)
-
document.tex (added)
-
elsarticle-seeralan-snyder-submitted.spl (added)
-
elsarticle-seeralan-snyder-submitted.tex (modified) (17 diffs)
-
figure1_SDR_Development_using_Waveform_Workshop.pdf (added)
-
tmp (added)
-
tmp/elsarticle-seeralan-snyder-submitted.aux (added)
Legend:
- Unmodified
- Added
- Removed
-
ossiedev/branches/jsnyder/STTT_paper/elsarticle-seeralan-snyder-submitted.tex
r10457 r10458 86 86 %% \fntext[label3]{} 87 87 88 \title{Open Source Software Defined Radio Tools for Education, Research, and Rapid89 Prototyping}88 \title{Open Source Software Defined Radio Tools for Education, Research, and 89 Rapid Prototyping} 90 90 91 91 %% use optional labels to link authors explicitly to addresses: … … 94 94 %% \address[label2]{} 95 95 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} 98 97 99 98 \address{Virginia Tech, Blacksburg, VA} … … 109 108 By moving this functionality into software, radios can be made more flexible to support 110 109 a 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 source112 SDR software such as that supplied by the OSSIE project provides an important resource110 of the software developers and the hardware on which the applications will run. 111 Open source SDR software such as that supplied by the OSSIE project provides an important resource 113 112 for education, research, and rapid prototyping in this interdisciplinary field that 114 113 integrates several areas within Electrical Engineering, Computer Engineering, and … … 164 163 \subsection{Direct Manipulation Tools} 165 164 \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. 165 OSSIE existed before the Waveform Workshop, but was much more difficult to use. 166 Component and waveform XML descriptors had to written and installed by hand. 167 Controlling waveforms was limited to starting and stopping them, and there was 168 no way to monitor or manipulate running waveforms. The Waveform Workshop 169 addresses this by providing a direct manipulation interface when creating and 170 running waveforms and components. For example, a user might want to create a 171 waveform that consists of two components called A and B with a connection from 172 A's output port to B's input port. Before the Waveform Workshop, the user would 173 have to hand edit the XML descriptors for the waveform, adding elements for each 174 component, as well as for the ports and the connection itself. With the Waveform 175 Workshop, waveforms are created by simply dragging together icons 176 that represent components. The component ports are automatically displayed, and 177 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. 167 178 168 179 \subsection{Motivation for SCA-Based SDR Tools} … … 170 181 171 182 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 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} 172 193 173 194 \section{The Waveform Workshop Tools} … … 186 207 \label{toolsdescription:oef} 187 208 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.209 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 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. 189 210 190 211 \subsection{The Waveform Dashboard (WaveDash)} … … 206 227 \label{sdrapplicationdevelopment-oef} 207 228 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 217 230 218 231 … … 228 241 \includegraphics[width=\textwidth]{figure2_oef_generating_new_component.pdf} 229 242 % trim = left bottom right top 230 \caption{Generating a new component }243 \caption{Generating a new component in OEF} 231 244 \label{fig:oef:generatenewcomponent} 232 245 \end{figure} … … 284 297 \label{sdrapplicationdevelopment-oef:skeletonimplementation} 285 298 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}$. 287 300 288 301 … … 301 314 \label{sdrapplicationdevelopment-oef:implementation} 302 315 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.316 Once 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. 304 317 305 318 %-------------------- FIGURE: OEF WAVEFORM EDITOR -------------------- … … 328 341 \item Available Resources - lists all of the components, devices, and nodes currently installed on the system and available for use 329 342 \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 themin 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. 331 344 \end{enumerate} 332 345 … … 373 386 \label{sdrapplicationdevelopment-wavedash:configurecomponentproperties} 374 387 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.388 The 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. 376 389 377 390 WaveDash 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. … … 404 417 \label{sdrapplicationdevelopment-wavedash:configurewidgets} 405 418 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. 407 420 408 421 %-------------------- FIGURE: WAVEDASH - SELECT/DESELECT COMPONENT PROPERTIES -------------------- … … 419 432 \label{sdrapplicationdevelopment-wavedash:showhidecomponentproperties} 420 433 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. 422 435 423 436 %-------------------- FIGURE: ALF - BLOCK DIAGRAM WITH PLUG-IN MENU -------------------- … … 524 537 \section{User Base} 525 538 \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.539 The 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. 527 540 528 541 \section{Future Work} … … 545 558 \item Add model-based development capability for greater flexibility 546 559 547 \item HTTP and command line interfaces to the OSSIE backend560 \item Provide HTTP and command line interfaces to the OSSIE backend 548 561 \end{itemize} 549 562 \section{Conclusion} 550 563 \label{conclusion} 551 564 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 appl ciations.565 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 applications. 553 566 554 567 \section{Acknowledgements} … … 622 635 623 636 \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)637 A.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 625 638 626 639 \end{thebibliography}