Changeset 11102
- Timestamp:
- 05/21/12 19:12:53 (13 months ago)
- Location:
- ossiedev/branches/jsnyder/STTT_paper
- Files:
-
- 6 added
- 1 modified
-
.texlipse (added)
-
alf_plot_tool.png (added)
-
leer.eps (added)
-
sttt-draft.tex (modified) (15 diffs)
-
sttt_notes.txt (added)
-
stttguid.tex (added)
-
waveformDisplay.png (added)
Legend:
- Unmodified
- Added
- Removed
-
ossiedev/branches/jsnyder/STTT_paper/sttt-draft.tex
r10738 r11102 17 17 %\usepackage{latexsym} 18 18 \usepackage{graphicx} 19 \usepackage{stfloats} 20 \usepackage{fixltx2e} 19 21 % etc 20 22 % … … 37 39 % 38 40 \begin{abstract} 39 A set of rapid development, control, and monitoring tools have been developed as part of the OSSIE open source Software Defined Radio (SDR) project, which is based on the U.S. Department of Defense Software Communications Architecture (SCA). SDR is an emerging area of wireless communications in which radio functionality that was previously implemented in analog hardware or digital application specific integrated circuits (ASICs) is instead implemented in programmable and reconfigurable processing devices. 40 By moving this functionality into software, radios can be made more flexible to support a wide range of communications standards or waveforms, limited only by the capabilities of the software developers and the hardware on which the applications will run. Open source SDR software such as that supplied by the OSSIE project provides an important resource for education, research, and rapid prototyping in this interdisciplinary field that integrates several areas within Electrical Engineering, Computer Engineering, and Computer Science. Rapid development tools are needed to abstract the complexities of the SCA from developers and speed application development. The Waveform Workshop, a collection of tools for use with the OSSIE software, solves several problems commonly faced by SDR developers by enabling the rapid development, observation, and debugging of OSSIE SDR waveform applications. We describe the functionality and implementation of these tools as well as their use in an SDR application development work flow, and outline planned enhancements.\end{abstract} 41 Software Defined Radios (SDR) offer several advantages over traditional, hardware-based radios, most notably flexibility and reconfigurability. Developing SDR applications can be a difficult process however, for several reasons. First, much of the work involved deals with standards compliance, rather than radio functionality. This portion of the work is very detailed and error-prone, leading to wasted time and effort. Second, there is little to no support available for the debugging and refinement portions of the development cycle. There is no easy way to monitor or control SDR applications at runtime. The Waveform Workshop was created to address these issues. A part of the OSSIE SDR project, the Waveform Workshop drastically reduces the time and effort involved in SDR development. It automatically generates the portions of the software related to standards compliance, letting developers concentrate on radio functionality. In addition, the Waveform Workshop provides tools for both monitoring and controlling SDR applications at runtime, making debugging much easier. 42 \keywords{Software Defined Radio, Rapid Prototyping Tools, Education} 43 \end{abstract} 41 44 % 42 45 \section{Introduction} 43 46 \label{introduction} 44 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.47 Software Defined Radio 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. 45 48 46 49 Unfortunately, developers writing SDR software frequently face problems that are not addressed by traditional development tools. This first problem is ensuring that SDR software conforms to the SCA standard. The standard is very complex, with many details that are necessary for compliance but unrelated to the functionality of the radio itself. Another common problem SDR developers face is the lack of any way to interact with running SDR applications. SDR applications are deployed as collections of CORBA software components running on one or more processors. Software component configurations are recorded in XML files. In this situation, the primary way to change a property value for a given component is to shut the application down entirely, change a value in a file, then restart the application. Finally, developers also have no readily available tools to monitor a running SDR application as it operates. 47 50 48 To address these problems, we have developed the Waveform Workshop , a set of software tools that are part of the OSSIE open source SDR project \cite{Aguayo2009b}, \cite{ossieweb}. OSSIE is based onthe U.S. Defense Department's Software Communications Architecture (SCA) \cite{sca}, \cite{bard}, \cite{Aguayo2009a}. The Waveform Workshop aids developers by automatically generating the parts of the software that relate to SCA compliance. The developer can then concentrate on implementing the radio itself. The Waveform Workshop also provides developers with a means to update application properties at runtime directly, without editing configuration files or restarting the application. This greatly reduces the time needed to debug applications. Finally, the Waveform Workshop also provides an interface displaying block diagrams of running SDR applications. It also allows developers to take the output from an application and play it through speakers or plot it on a graph. This allows the developer to easily change application properties and observe the effects of those changes in real time, making it much easier to debug and refine SDR software.51 To address these problems, we have developed the Waveform Workshop a set of software tools. The Waveform Workshop was designed to work with the OSSIE open source SDR project \cite{Aguayo2009b}, \cite{ossieweb}. OSSIE is a partial implementation of the U.S. Defense Department's Software Communications Architecture (SCA) \cite{sca}, \cite{bard}, \cite{Aguayo2009a}. The Waveform Workshop aids developers by automatically generating the parts of the software that relate to SCA compliance. The developer can then concentrate on implementing the radio itself. The Waveform Workshop also provides developers with a means to update application properties at runtime directly, without editing configuration files or restarting the application. This greatly reduces the time needed to debug applications. Finally, the Waveform Workshop also provides an interface displaying block diagrams of running SDR applications. It also allows developers to take the output from an application and play it through speakers or plot it on a graph. This allows the developer to easily change application properties and observe the effects of those changes in real time, making it much easier to debug and refine SDR software. 49 52 50 53 In this paper, we discuss the problems faced by SDR developers and how those problems are addressed by the Waveform Workshop. Section~\ref{background} discusses the need for SCA-based development tools for SDR projects. … … 63 66 64 67 \subsection{OSSIE} 65 The Open Source SCA Implementation::Embedded (OSSIE) project was started in 2003 by postdoctoral fellow Max Robert and a team of students at Virginia Tech \cite{Robert2004}. OSSIE software consists of a core framework , the Waveform Workshop,and a library of application software (signal processing components and waveform applications). The project also provides materials for SDR education, training, and self study.68 The Open Source SCA Implementation::Embedded (OSSIE) project was started in 2003 by postdoctoral fellow Max Robert and a team of students at Virginia Tech \cite{Robert2004}. OSSIE software consists of a core framework and a library of application software (signal processing components and waveform applications). The project also provides materials for SDR education, training, and self study. 66 69 67 70 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. … … 113 116 OEF helps developers to create signal processing components. The developer specifies characteristics of the component such as ports and reconfigurable properties, and OEF generates CORBA-enabled skeletal code for OSSIE. The developer then provides or links to signal processing code that implements the desired functionality. While more complex components can be developed using the same approach, the following example describes creation of a simple signal processing component, an amplifier that scales the incoming signal by a constant gain factor. 114 117 %-------------------- FIGURE: GENERATING NEW COMPONENT -------------------- 115 \begin{figure*} 118 \begin{figure*} 116 119 \centering 117 120 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} … … 135 138 136 139 %-------------------- FIGURE: ADD PORT PORT DIALOG -------------------- 137 \begin{figure} 140 \begin{figure} 138 141 \centering 139 142 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} … … 150 153 151 154 %-------------------- FIGURE: ADD PROPERTY DIALOG -------------------- 152 \begin{figure} 155 \begin{figure} 153 156 \centering 154 157 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} … … 213 216 214 217 %-------------------- FIGURE: PORTS ON COMPONENTS -------------------- 215 \begin{figure*} 218 \begin{figure*} 216 219 \centering 217 220 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} … … 228 231 229 232 %-------------------- FIGURE: WAVEDASH - INSTALL A WAVEFORM APPLICATION -------------------- 230 \begin{figure} 233 \begin{figure} 231 234 \centering 232 235 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} … … 278 281 \subsection{Change Property Configuration Control Widgets} 279 282 \label{sdrapplicationdevelopment-wavedash:configurewidgets} 280 283 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 (Figure~$\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. 281 284 %-------------------- FIGURE: WAVEDASH - CHANGE PROPERTY CONTROL WIDGETS -------------------- 282 285 \begin{figure} … … 288 291 \label{fig:wavedash:changepropertywidgets} 289 292 \end{figure} 290 291 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 (Figure~$\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.292 293 293 294 \subsection{Show/Hide Component Properties} 294 295 \label{sdrapplicationdevelopment-wavedash:showhidecomponentproperties} 295 296 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 (Figure~$\ref{fig:wavedash:selectdeselectproperties}$), the user right clicks on a component and deselects phase\_offset from the pop-up menu. 296 297 %-------------------- FIGURE: WAVEDASH - SELECT/DESELECT COMPONENT PROPERTIES -------------------- 297 298 \begin{figure} … … 300 301 \includegraphics[width=8.5cm]{figure12_wavedash_component_context_menu.png} 301 302 % trim = left bottom right top 302 \caption{ Change property control widgets in WaveDash}303 \caption{Selecting Component Properties in Wavedash} 303 304 \label{fig:wavedash:selectdeselectproperties} 304 305 \end{figure} 305 306 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 (Figure~$\ref{fig:wavedash:selectdeselectproperties}$), the user right clicks on a component and deselects phase\_offset from the pop-up menu.307 306 308 307 \section{SDR Application Development Work Flow Part III: Use of ALF Waveform Application Visualization and Debugging Environment} 309 308 \label{sdrapplicationdevelopment-alf} 310 309 310 The ALF environment provides several capabilities that are helpful for troubleshooting and debugging waveform applications. Like WaveDash, ALF allows users to install/uninstall and start/stop waveform applications. ALF also lets users display running applications in block diagram form as shown in Figure~\ref{fig:alf:block_diagram_plugin_menu}, and inject and monitor signals at various component ports in the application using provided or user-developed plug-in tools by right clicking on the port (small rectangle on either side of the component) and selecting from a menu as shown in Figure~\ref{fig:alf:block_diagram_plugin_menu}. Additional features enable creation and installation of single-component waveform applications, and connections between ports on components in the same or different waveforms at run time. 311 311 %-------------------- FIGURE: ALF - BLOCK DIAGRAM WITH PLUG-IN MENU -------------------- 312 \begin{figure*} 312 \begin{figure*} 313 313 \centering 314 314 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} … … 318 318 \label{fig:alf:block_diagram_plugin_menu} 319 319 \end{figure*} 320 321 The ALF environment provides several capabilities that are helpful for troubleshooting and debugging waveform applications. Like WaveDash, ALF allows users to install/uninstall and start/stop waveform applications. ALF also lets users display running applications in block diagram form as shown in Figure~\ref{fig:alf:block_diagram_plugin_menu}, and inject and monitor signals at various component ports in the application using provided or user-developed plug-in tools by right clicking on the port (small rectangle on either side of the component) and selecting from a menu as shwon in Figure~\ref{fig:alf:block_diagram_plugin_menu}. Additional features enable creation and installation of single-component waveform applications, and connections between ports on components in the same or different waveforms at run time.322 320 323 321 \subsection {ALF Plug-In Tools} … … 325 323 Several plug-in tools for ALF are provided as part of the OSSIE distribution. These tools are used to inject signals into component provides ports, and to display, record, or otherwise process the signals coming out of component uses ports. The plugins are implemented in Python, and users can modify the plug-ins or develop their own based on those provided. 326 324 327 %-------------------- FIGURE: ALF - SPEAKER TOOL --------------------328 \begin{figure}329 \centering330 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf}331 \includegraphics[width=8.5cm]{figure14_ALF_Speaker_Tool.pdf}332 % trim = left bottom right top333 \caption{The ALF Speaker tool}334 \label{fig:alf:plugins:speaker}335 \end{figure}336 337 325 \subsubsection{Speaker Tool} 338 326 \label{sdrapplicationdevelopment-alf:plugins:soundtool} 339 The speaker tool, shown in Figure~\ref{fig:alf:plugins:speaker}, accepts signals in OSSIE's complexShort (2-channel, short integer) interface format and plays the signals through a computer's sound card. It allows the user to set the sampling rate at which the signal will be converted to audio. 340 341 %-------------------- FIGURE: ALF - PLOT TOOL -------------------- 342 \begin{figure*} 343 \centering 344 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} 345 \includegraphics[width=\textwidth]{figure15_ALF_Plot_Tool_QPSK.pdf} 346 % trim = left bottom right top 347 \caption{The ALF Plot tool displaying a quadrature phase-shift keying (QPSK) signal constellation} 348 \label{fig:alf:plugins:plot} 349 \end{figure*} 327 The speaker tool accepts signals in OSSIE's complexShort (2-channel, short integer) interface format and plays the signals through a computer's sound card. It allows the user to set the sampling rate at which the signal will be converted to audio. 350 328 351 329 \subsubsection{Plot Tool} 352 330 \label{sdrapplicationdevelopment-alf:plugins:plottool} 353 331 The plot tool (Figure~\ref{fig:alf:plugins:plot}) accepts signals from uses ports that employ the complexShort, complexLong, or complexFloat interfaces. This tool displays the signal's spectrum on a normalized frequency scale or displays the quadrature vs. in-phase components of the signal in order to render the constellations of received digital signals. In this mode, several symbols are shown that under ideal conditions would typically map to regularly spaced points, e.g. in a circle (phase-shift keying) or in a grid pattern (quadrature amplitude modulation). In a realistic simulation or an operational radio, the symbols appear scattered about the nominal symbol points due to noise, fading, imperfect synchronization, or other anomalies. 354 355 %-------------------- FIGURE: ALF - AWG TOOL -------------------- 356 \begin{figure*} 357 \centering 358 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} 359 \includegraphics[width=\textwidth]{figure17_ALF_AWG_Tool.pdf} 360 % trim = left bottom right top 361 \caption{The ALF AWG tool} 362 \label{fig:alf:plugins:awg} 363 \end{figure*} 332 %-------------------- FIGURE: ALF - PLOT TOOL -------------------- 333 \begin{figure} 334 \centering 335 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} 336 \includegraphics[width=8.5cm]{alf_plot_tool.png} 337 % trim = left bottom right top 338 \caption{The ALF Plot tool displaying a quadrature phase-shift keying (QPSK) signal constellation} 339 \label{fig:alf:plugins:plot} 340 \end{figure} 341 342 364 343 365 344 \subsubsection{Arbitrary Waveform Generator (AWG) Tool} 366 345 \label{sdrapplicationdevelopment-alf:plugins:AWGtool} 367 346 Figure~\ref{fig:alf:plugins:awg} shows the Arbitrary Waveform Generator, which allows one to select from a number of predefined signal functions or simply read signals that are stored in data files, for the purposes of testing, debugging, or demonstrating components or waveforms. By allowing a signal stored in a data file to be fed into a live SDR component, developers gain the capability of generating signals off-line using software such as MATLAB or replaying signals that are captured live over the air later during testing. 347 %-------------------- FIGURE: ALF - AWG TOOL -------------------- 348 \begin{figure} 349 \centering 350 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} 351 \includegraphics[width=8.5cm]{figure17_ALF_AWG_Tool.pdf} 352 % trim = left bottom right top 353 \caption{The ALF AWG tool} 354 \label{fig:alf:plugins:awg} 355 \end{figure} 368 356 369 357 \subsection{Launching Individual Components as Waveform Applications} 370 358 \label{sdrapplicationdevelopment-alf:compform} 371 ALF includes a `compform' capability that packages individual components as self-contained waveform applications and deploys them to the default GPP device. This is accessed by clicking on a component in the middle left panel of ALF (see Figure~\ref{fig:alf:block_diagram_plugin_menu}). The compform feature allows a user to test individual components by using the plug-in tools to inject and monitor signals into and out of each component as the component runs in a stand-alone application. 372 373 %-------------------- FIGURE: ALF - CONNECT TOOL -------------------- 374 \begin{figure} 375 \centering 376 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} 377 \includegraphics[width=8.5cm]{figure18_ALF_Connect_Tool_2.pdf} 378 % trim = left bottom right top 379 \caption{ALF Connect Tool} 380 \label{fig:alf:connect} 381 \end{figure} 359 ALF includes a `compform' capability that packages individual components as self-contained waveform applications and deploys them to the default GPP device. This is accessed by clicking on a component in the middle left panel of ALF. The compform feature allows a user to test individual components by using the plug-in tools to inject and monitor signals into and out of each component as the component runs in a stand-alone application. 360 361 382 362 383 363 \subsection{Connect Tool} … … 385 365 The Connect Tool, shown in Figure~\ref{fig:alf:connect}, provides the capability 386 366 to connect ports on components that are in the same or different waveform applications. This capability, provided with the ability to create and run single-component applications, allows users to build ad-hoc applications by launching components as waveforms and connecting them at run time to form a temporary, larger composite application. The composite application can be configured by configuring properties of its constituent applications using the WaveDash tool. Further, the Connect Tool provides for automatic instantiation and tear-down of applications, and automated connections and routing of data among standard applications, single-component applications, and plug-in tools, by specifying the applications/components/plug-ins and behavior in an XML file. This enables dynamic reconfiguration of SDR applications at run time, a capability that can be very useful in cognitive radio implementations \cite{Cormier2009}. 387 388 %-------------------- FIGURE: ALF AND WAVEDASH -------------------- 389 \begin{figure*} 390 \centering 391 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} 392 \includegraphics[width=\textwidth]{figure19_ALF_QPSK_Controlled_Wavedash.pdf} 393 % trim = left bottom right top 394 \caption{ALF and WaveDash used together to monitor and control a waveform} 395 \label{fig:alf:alfwavedash} 396 \end{figure*} 367 %-------------------- FIGURE: ALF - CONNECT TOOL -------------------- 368 \begin{figure} 369 \centering 370 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} 371 \includegraphics[width=8.5cm]{figure18_ALF_Connect_Tool_2.pdf} 372 % trim = left bottom right top 373 \caption{ALF Connect Tool} 374 \label{fig:alf:connect} 375 \end{figure} 376 377 397 378 398 379 \subsection{Relation of ALF with WaveDash} 399 380 \label{sdrapplicationdevelopment-alf:relationwithwavedash} 400 381 When used together, ALF and WaveDash allow the user to observe effects of parameter values on waveform operation interactively and in real time, as shown in Figure~\ref{fig:alf:alfwavedash}. This is very useful for education, experimentation, and debugging of waveform applications. ALF currently provides some of the same functionality as WaveDash, specifically the ability to install/uninstall and start/stop applications. This functionality is included in both tools so that WaveDash can be used to run applications without the full ALF environment. WaveDash can be launched from within ALF, and further integration is planned. Planned changes include encapsulating all common functionality of the two tools in a python module or library. 382 %-------------------- FIGURE: ALF AND WAVEDASH -------------------- 383 \begin{figure*} 384 \centering 385 %\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf} 386 \includegraphics[width=\textwidth]{figure19_ALF_QPSK_Controlled_Wavedash.pdf} 387 % trim = left bottom right top 388 \caption{ALF and WaveDash used together to monitor and control a waveform} 389 \label{fig:alf:alfwavedash} 390 \end{figure*} 401 391 402 392 \section{Conclusions and Future Work} … … 424 414 \subsection{New Tools} 425 415 \label{toolsdescription:wavedasharchitecture} 426 Finally, two new tools for the Waveform Workshop are under development. The first is a server to enable control of an OSSIE SDR application over http. After installing the server on a computer running OSSIE that is connected to the internet, any waveforms on that computer can be installed and controlled via any other computer with an internet connection. The second new tool is a command line interface to allow a user to control an OSSIE SDR application over an ssh session or via scripts. Both of these applications are simply alternative views that share the same backend code as WaveDash. This allows them to easily connect to and manipulate OSSIE SDR applications.416 Finally, two new tools for the Waveform Workshop are under development. The first is a server to enable control of an OSSIE SDR application over http. After installing the server on a computer running OSSIE that is connected to the internet, any waveforms on that computer can be installed and controlled via any other computer with an internet connection. The second new tool is a command line interface to allow a user to control an OSSIE SDR application over an ssh session or via scripts. Both of these applications are simply alternative views that share the same backend code as WaveDash. This allows them to easily connect to and control OSSIE SDR applications. 427 417 428 418 \section{Acknowledgements}