OSSIE: An Open Source Software Defined ... - WorldComp Proceedings

5 downloads 27225 Views 251KB Size Report
OSSIE: An Open Source Software Defined Radio Platform for. Education and Research ... for running SDR applications called waveforms, a library of pre-made .... signal and monitoring the audio out of the demodulator to determine the power ...
OSSIE: An Open Source Software Defined Radio Platform for Education and Research J. Snyder1 , B. McNair2 , S. Edwards1 , and C. Dietrich2 1 Department of Computer Science, Virginia Tech, Blacksburg, VA 2 Bradley Department of Electrical Engineering, Virginia Tech, Blacksburg, VA Abstract— OSSIE (Open Source SCA Implementation::Embedded) was originally released in 2004 to fill the need for an implementation of the Software Communications Architecture (SCA) [4] that was free, simple, open to modifications, and written in C++. OSSIE includes several features, including the core framework for running SDR applications called waveforms, a library of pre-made waveforms and components for creating new waveforms, the Waveform Workshop, a set of tools for rapid prototyping and debugging of waveforms, and a set of lab assignments designed around OSSIE. With these features OSSIE is suitable for both classroom instructional usage and as a platform for a wide range of research, from things as small as a one-semester undergraduate independent study to a PhD dissertation. This paper describes a project done for a Summer independent study, and shows how OSSIE was used to create, run, and test the software for the project. Keywords: Software Defined Radio, Undergraduate Research Experiences

1. Introduction The SCA is is an architectural framework with a set of design constraints that was created to maximize portability, interoperability, and reconfigurability of software radios while still allowing enough flexibility to address domain specific requirements and restrictions. Under the SCA, software radios run programs called waveforms that are composed of individual signal processing modules called components. OSSIE [3], [14], [9] was created to serve as an open source implementation of the SCA to enable SDR and cognitive radio education and research. It has also been used for rapid prototyping and proof-of-concept and reference implementations. These include SDR waveforms for public safety and vehicular applications [12], [11], as well as SDR interfaces [6], abstraction approaches [10] and architectures [13]. To that end, OSSIE consists of four main parts: • • • •

The Core Framework The Waveform Workshop A library of pre-made component and waveforms A set of lab assignments designed to work with OSSIE

1.1 The Core Framework The core framework consists of all of the underlying code responsible for running waveform applications. In OSSIE, the core framework uses a middleware called CORBA [1] to facilitate communication between waveforms and components. Along with running waveforms, the framework itself makes a good subject for researching communications architectures [5], [18], [16].

1.2 The Waveform Workshop The SCA defines the form of components and waveforms, including both necessary features in component source code and XML descriptors for components and waveforms. While this information is important to ensure that components are able to communicate and waveforms are able to run correctly, it has little to do with the actual functionality of the components or waveforms. In order to allow developers to quickly create new components and waveforms without having to know all of the details required by the SCA, the OSSIE Waveform Developer (OWD) was created [8]. When using OWD, the developer only had to write the code for the desired functionality of the component. OWD took care of generating all of the necessary infrastructure details. In recent years, OWD has been built into the OSSIE Eclipse Feature (OEF) [17], a plugin for the Eclipse IDE, adding features such as built-in support for version control and debugging. Along with OEF, The Waveform Workshop includes two other tools: ALF and The Waveform Dashboard (WaveDash) [15]. ALF is a visual debugging tool that displays running waveforms as block diagrams, allowing the user to inspect data as it is passed from component to component by plotting the data or, if the data is audio, playing it through a speaker. The Waveform Dashboard is a GUI tool that allows the user to interact with running waveforms by changing the values of component properties in real time. WaveDash abstracts the SCA interfaces and implementation of the OSSIE core framework and provides a direct manipulation interface to interact with SDR waveforms. In addition, WaveDash was purposely written with a separable controller and GUI. This allows the controller to be used as a part of other applications.

1.3 A Library of Components and Waveforms OSSIE includes a library of pre-made components and waveforms that can be used to create new waveforms and SDRs. The library includes many signal processing components, such as amplifiers, simulated channels, and demodulators. Waveforms include a simple demo, an AM receiver, and a digital voice transceiver. Many of the components and waveforms work with a Universal Software Radio Peripheral (USRP) [2] to transmit and receive signals as well as performing analog-to-digital and digital-to-analog conversion.

1.4 Lab Assignments Finally, OSSIE includes a set of lab assignments designed to demonstrate OSSIE’s features and illustrate how to use them. The series of labs starts with recreating, installing, and running one of OSSIE’s simplest included waveforms. Subsequent labs include creating new components and waveforms, using OSSIE with a USRP, and finally creating a distributed waveform that runs on multiple networked computers. The labs walk the users through using OSSIE step by step, engaging them in hands-on learning in preparation for more extensive projects.

2. Creating the Waveforms 2.1 Design The student designed and implemented one waveform and implemented a second waveform for the project. The first waveform was an AM receiver. As seen in figure 1, the waveform consists of 6 components deployed to a general purpose processor (GPP). The USRP_Commander sets the receive frequency, decimation rate, and other parameters of the USRP. The decimator receives the signal from the USRP at 250 ksps and reduces the sampling rate by a factor of 10 to 25 ksps. The signal then continues to the automatic gain control (AGC). The AM demodulator receives the signal and outputs the demodulated signal. An amplifier component provides audio gain and sends the amplified signal to the sound card.

1.5 OSSIE’s Role in Education Between the core framework, the Waveform Workshop, and the included components, waveforms, and labs, OSSIE makes an ideal platform for SDR education and research. In the classroom, the labs provide a solid introduction to SCA and SDR concepts and prepare students for further SDR study. For research at the undergraduate level, the Waveform Workshop abstracts enough of the details that the learning curve associated with learning about SDR is greatly diminished. Students can get up to speed quickly, and can start making custom waveforms from pre-made components almost immediately. With knowledge of the Python programming language, students can create custom SDR applications using the WaveDash controller. At the graduate level, students can go more in-depth, working with the core framework itself, or simply using OSSIE as a platform, creating components and waveforms to test new signal processing techniques. This paper describes a Summer independent study completed by an undergraduate student at Virginia Tech. The goal of the project was to design, develop, and demonstrate a proof-of-concept SCA-based multimode SDR transceiver than can quickly be reconfigured to operate using multiple modulation techniques. To do this, the student used OSSIE to create a software application that could launch and control an AM receiver and an FM transceiver.

Fig. 1: AM Receiver Design The second waveform was an FM transceiver that was implemented based on a waveform and components that a graduate student had implemented for an SDR class using an earlier version of OSSIE. As shown in figure 2, the FM waveform consists of 10 components deployed to a GPP. Transmit and receive are the two different paths associated with the FM waveform. When path select is set to one, it behaves as a transmitter; on the other hand, when the path select is changed to zero, it behaves as a receiver. In receiver mode, the signal reaches the decimator and reduces the sampling rate by a factor of 10 to 25 ksps. A WFM demodulator receives the signal and outputs the demodulated signal to the amplifier. Finally, the signal reaches the soundcard and the transmission is completed. Likewise, when the transceiver behaves like a transmitter the signal is first amplified. Then, in order to increase the effective sampling rate the signal is then interpolated. Finally, the Frequency Modulator receives the signal and outputs the demodulated signal to the USRP for transmission.

Fig. 2: FM Transceiver Design

2.2 Implementation Both of these waveforms were implemented using OEF. Figure 3 shows the main OEF interface when creating waveforms. To implement a waveform using existing signal

Fig. 4: Connecting Ports in OEF

3.1 Phase I - Learning the WaveDash Controller The first phase was spent getting familiar with the WaveDash controller. The controller is the part of Wavedash that handles all of the communication with running waveforms. By leveraging the controller, you can programmatically install and control waveforms from Python applications. For this project, the student studied WaveDash itself and other applications written by the OSSIE team that make use of the WaveDash Controller, and then wrote several small Python applications to gain experience with the WaveDash controller before moving on to phase II.

3.2 Phase II - Learning wxPython Once familiar with how to use the WaveDash controller, phase II consisted of learning wxPython, a GUI framework for Python. The student spent about a month learning the framework and making mock-up GUIs for the project. Fig. 3: OEF Interface for creating Waveforms processing components and devices, the developer first drags all of the needed components from the Available Resources window to the Waveform window. Once there, the components can be expanded to display their ports. Input and output ports can then be dragged together to make connections (see figure 4). Once all of the necessary port connections are made, the waveform is essentially finished and only needs to be built and installed. With the original OWD, this step had to be performed manually using the automake tools. One of the major improvements of the switch to OEF was automatic building and installation. Every time the waveform is saved with OEF, it is rebuilt and reinstalled.

3. Creating the Application After creating the two waveforms, the next step in the project was to create an application with a GUI to control them. This process was broken down into three phases.

3.3 Phase III - Final Development The final phase consisted of bringing together knowledge of both the WaveDash controller and wxPython to create a GUI application capable of running and controlling the waveforms the student had previously created. The final design, shown in figures 5 and 6, first allows the user to select the AM or Narrowband FM radio. In either case, the output volume can be controlled with the top slider which controls gain on the amplifier between the demodulator and the sound card. When the AM modulation type is chosen, the user can specify the frequency to listen on and can adjust the squelch to control the amount of static. When the narrowband FM is chosen instead, the user first has to decide whether to transmit or receive. Then he or she can enter a frequency. The Start/Stop button installs and uninstalls the waveforms, and the reset button resets all of the controls to their default states. All of the controls that alter radio parameters work by using the WaveDash controller to configure properties of the

waveform components. Configuring the properties is a fairly complex operation, involving several CORBA method calls. The WaveDash controller hides most of this complexity however, allowing the user to simply specify a component, a property, and a new value for the property. Installing and uninstalling the waveforms is similarly complex, but again the WaveDash controller hides the complexity. The user only has to specify the name of the waveform he or she wishes to install or uninstall.

of either waveform while WaveDash was used simultaneously to change property values while the waveform ran. The plot from ALF could then be observed to make sure it changed appropriately. During testing, the signal power level into the USRP was adjusted from about -95 dBm to -40 dBm while observing the spectrum of the received signal and monitoring the audio out of the demodulator to determine the power level at which a discernable signal could be demodulated. The spectrum plots generated using ALF enabled comparison of observed signal bandwidth with bandwidth calculated using Carson’s Rule [7]. In the case of the AM signal, both the carrier and modulating frequency were easily observable.

5. Conclusion

Fig. 5: The Final GUI: AM Radio

Initially released in 2004, OSSIE has been used in the classroom both at Virginia Tech and at the Naval Postgraduate School. The set of included labs teach users how to use OSSIE by engaging them in active learning. The Waveform Workshop abstracts away many of the details of the SCA, greatly reducing the learning curve involved with SDR research. The student who completed the project described here had no prior experience with the SCA or SDRs. Despite that, she was able to design waveforms and implement and test two waveforms, along with a GUI application to control them, in just over two months. At the same time, those who possess more in depth SDR knowledge can use OSSIE as well. It has also been used in a variety of research projects as described earlier. By combining easy to use tools with a robust core framework, OSSIE makes an ideal platform for SDR education and research.

References [1] [2] [3] [4] [5]

[6]

Fig. 6: The Final GUI: FM Radio [7]

4. Measuring SDR Performance After completing the final application, the FM transceiver was analyzed to determine the minimum signal strength necessary to produce detectable audio. Testing was accomplished using a combination of ALF, WaveDash, a function generator and an oscilloscope. Once the waveforms were installed by OEF, either ALF or WaveDash could be used to install and start them. ALF was then used to plot the output

[8]

[9]

[10]

Corba faq. http://www.omg.org/gettingstarted/corbafaq.htm. Ettus research. http://www.ettus.com. Ossie project web site. http://ossie.wireless.vt.edu. Software communications architecture: Home page. http://sca.jpeojtrs.mil/. G. Abgrall, F. Le Roy, J.-P. Diguet, G. Gogniat, and J.-P. Delahaye. Predictibility of inter-component latency in a software communications architecture operating environment. In Parallel Distributed Processing, Workshops and Phd Forum (IPDPSW), 2010 IEEE International Symposium on, pages 1 –8, 2010. C. Ahn, J. Kim, and S. Choi. Implementation of smart antenna and transceiver api on ossie platform for wireless innovation forum standards. In SDR Forum Technical Conference, Washington DC, December 2010. L. W. Couch. Digital and analog communication systems, page 324. Prentice Hall, 6th edition, 2001. J. A. DePriest. A practical approach to rapid prototyping of sca waveforms. Master’s thesis, Virginia Tech, Blacksburg, VA, April 2006. C. Gonzalez, C. Dietrich, S. Sayed, H. Volos, J. Gaeddert, P. Robert, J. Reed, and F. Kragh. Open-source sca-based core framework and rapid development tools enable software-defined radio education and research. Communications Magazine, IEEE, 47(10):48 –55, 2009. E. Grayver, H. Green, and J. Roberson. Sdrphy - xml description for sdr physical layer. In MILITARY COMMUNICATIONS CONFERENCE, 2010 - MILCOM 2010, pages 1140 –1146, November 2010.

[11] B. Gu, J. Jung, K. Kim, J. Heo, N. Park, G. Jeon, and Y. Cho. Swicom: An sdr-based wireless communication gateway for vehicles. Vehicular Technology, IEEE Transactions on, 59(4):1593 –1605, May 2010. [12] S. Hasan, P. Balister, K. Lee, J. Reed, and S. Ellingson. A low cost multi-band/multi-mode radio for public safety. In SDR Forum Technical Conference, Orlando, FL, 2006. [13] E. Redding, T. Rittenbach, H. Satake, and C. Dietrich. Ossie-based gra testbed. In Military Communications Conference, 2009. MILCOM 2009. IEEE, pages 1 –8, 2009. [14] M. Robert, S. Sayed, C. Aguayo, R. Menon, K. Channak, C. V. Valk, C. Neely, T. Tsou, J. Mandeville, and J. H. Reed. Ossie: Open source sca for researchers. In SDR Forum Technical Conference, 2004. [15] D. Seeralan, S. H. Edwards, and C. B. Dietrich. The waveform dashboard: An interactively configurable gui for prototype sca-based sdr waveforms. In SDR Forum Technical Conference, Washington DC, December 1-4 2009. [16] S. Singh, M. Adrat, and M. Antweiler. Nato rto/ist rtg on sdr: Demonstrating portability and interoperability of sca-based waveforms. In SDR 09 Technical Conference and Product Exposition, December 1-4 2009. [17] J. Snyder, S. H. Edwards, and C. B. Dietrich. Towards an open-source integrated development environment for sca-based components and waveforms. In SDR Forum Technical Conference, Washington DC, October 2008. [18] T. Ulversøy and J. O. Neset. On workload in and sca-based system, with varying component and data packet sizes. In RTO Information Systems Technology Panel (IST) Symposium, Prague, Czech Republic, 2008.