# Changeset 11102

Show
Ignore:
Timestamp:
05/21/12 19:12:53 (13 months ago)
Message:

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

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

r10738 r11102
1717%\usepackage{latexsym}
1818\usepackage{graphicx}
19\usepackage{stfloats}
20\usepackage{fixltx2e}
1921% etc
2022%

3739%
3840\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}
41Software 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}
4144%
4245\section{Introduction}
4346\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.
47Software 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.
4548
4649Unfortunately, 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.
4750
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 on 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.
51To 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.
4952
5053In 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.

6366
6467\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.
68The 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.
6669
6770The 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.

113116OEF 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.
114117%-------------------- FIGURE: GENERATING NEW COMPONENT --------------------
115 \begin{figure*}
118\begin{figure*}
116119\centering
117120%\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf}

135138
136139%-------------------- FIGURE: ADD PORT PORT DIALOG --------------------
137 \begin{figure}
140\begin{figure}
138141\centering
139142%\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf}

150153
151154%-------------------- FIGURE: ADD PROPERTY DIALOG --------------------
152 \begin{figure}
155\begin{figure}
153156\centering
154157%\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf}

213216
214217%-------------------- FIGURE: PORTS ON COMPONENTS --------------------
215 \begin{figure*}
218\begin{figure*}
216219\centering
217220%\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf}

228231
229232%-------------------- FIGURE: WAVEDASH - INSTALL A WAVEFORM APPLICATION --------------------
230 \begin{figure}
233\begin{figure}
231234\centering
232235%\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf}

278281\subsection{Change Property Configuration Control Widgets}
279282\label{sdrapplicationdevelopment-wavedash:configurewidgets}
280
283The 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.
281284%-------------------- FIGURE: WAVEDASH - CHANGE PROPERTY CONTROL WIDGETS --------------------
282285\begin{figure}

288291\label{fig:wavedash:changepropertywidgets}
289292\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.
292293
293294\subsection{Show/Hide Component Properties}
294295\label{sdrapplicationdevelopment-wavedash:showhidecomponentproperties}
295
296It 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.
296297%-------------------- FIGURE: WAVEDASH - SELECT/DESELECT COMPONENT PROPERTIES --------------------
297298\begin{figure}

301302% trim = left bottom right top
302 \caption{Change property control widgets in WaveDash}
303\caption{Selecting Component Properties in Wavedash}
303304\label{fig:wavedash:selectdeselectproperties}
304305\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.
307306
308307\section{SDR Application Development Work Flow Part III:  Use of ALF Waveform Application Visualization and Debugging Environment}
309308\label{sdrapplicationdevelopment-alf}
310309
310The 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.
311311%-------------------- FIGURE: ALF - BLOCK DIAGRAM WITH PLUG-IN MENU --------------------
312 \begin{figure*}
312\begin{figure*}
313313\centering
314314%\includegraphics[trim = 10mm 130mm 50mm 20mm, clip, width=10cm]{figure1.pdf}

319319\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.
322320
323321\subsection {ALF Plug-In Tools}

325323Several 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.
326324
327 %-------------------- FIGURE: ALF - SPEAKER TOOL --------------------
328 \begin{figure}
329 \centering
330 %\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 top
333 \caption{The ALF Speaker tool}
334 \label{fig:alf:plugins:speaker}
335 \end{figure}
336
337325\subsubsection{Speaker Tool}
338326\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*}
327The 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.
350328
351329\subsubsection{Plot Tool}
352330\label{sdrapplicationdevelopment-alf:plugins:plottool}
353331The 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
364343
365344\subsubsection{Arbitrary Waveform Generator (AWG) Tool}
366345\label{sdrapplicationdevelopment-alf:plugins:AWGtool}
367346Figure~\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}
368356
369357\subsection{Launching Individual Components as Waveform Applications}
370358\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}
359ALF 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
382362
383363\subsection{Connect Tool}

385365The Connect Tool, shown in Figure~\ref{fig:alf:connect}, provides the capability
386366to 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
397378
398379\subsection{Relation of ALF with WaveDash}
399380\label{sdrapplicationdevelopment-alf:relationwithwavedash}
400381When 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*}
401391
402392\section{Conclusions and Future Work}

424414\subsection{New Tools}
425415\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.
416Finally, 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.
427417
428418\section{Acknowledgements}