Top Banner
A Reconfigurable OSSIE/GNU Radio Component for SDR Applications Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich
26
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

A Reconfigurable OSSIE/GNU Radio Component for SDR Applications

Garrett Vanhoy, MaryPat Beaufait, Duyun Chen

Advisor: Dr. Carl Dietrich

Page 2: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

What is Software-Defined Radio (SDR)?Any radio whose physical layer functionality

is implemented in softwareSoftware Communications Architecture

(SCA) is an open SDR standardOSSIE and GNU Radio

Waveform development suitesWaveform: a collection of components

deployed on a given device to perform signal processing

Page 3: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Problem Statement• OSSIE components are very high-level

for easy waveform construction• GNU Radio (GR) provides low-level

components which are suited for specific DSP tasks

• OSSIE and GR: Intuitively complementary, but no direct interface

• Can we combine the advantages of both?

Page 4: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Development Tools Feature Comparison

Feature OSSIE GNU Radio (GR)

Generic Component Project (GC)

SCA-Based X X

Granularity Coarse (High-Level)

Fine (Low-Level)

Variable

Latency Moderate/High Low Low within component

Distributed Waveform Support

X X

Page 5: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Create an OSSIE generic component (GC) that can encapsulate GNU Radio blocks

Support reconfigurationBe able to add or replace GNU Radio blocks

during runtime as well as change their properties

Provide an intuitive graphical interface for reconfiguration

Enable automated control (e.g. cognitive engine)

Reconfigure in near real time (<100 ms)2

Goals

Page 6: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Project MethodologyGNU Radio blocks

Primarily in Python Only performance critical cores in C++

OSSIE components Standard components in C++ Option to generate Python components

Plan Create a Python GC that could encapsulate one

or more GNU Radio blocksEffectively combine the functionality of OSSIE

and GNU Radio

Page 7: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Implementation of the GC• The core of the GC is written in Python• Data conversions to interface OSSIE and

GR I/O• GR Hierarchical blocks

• Higher level container for GR blocks• Uniform I/O ports • Readily interchangeable design

• GUI to enable intuitive user manipulation of the component’s infrastructure

Page 8: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Levels of the Generic Component

Page 9: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Generic Waveform

Components and processing can be distributed over multiple nodes

Page 10: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

GC Structure

Page 11: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

GCEngine Structure

Page 12: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Hierarchical Blocks

Page 13: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Wireless Body Area Network (WBAN) or BANQuickly reconfigurable

component ideal for health monitoring

Possible adaptations if an anomaly is detected:

Distributed waveform support allows for dynamically managing tradeoffs between processing and communication reliability

Depiction of BAN, LAN, and WAN interaction1

Page 14: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Common WBAN Devices and Their Specifications2

WBAN Device Specifications

Page 15: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

DemonstrationsGUIDistributed Waveform

Page 16: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Overhead From Analysis and Reconfiguration

Page 17: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Further Work – GC Limitations• We can only process one stream of data with

current GC implementation• GR top block must be restarted every time a

packet of data flows through the componentIndividual components are not aware of what

is going on in other componentsInput data types other than complexShort

(integers) cannot be processed

Page 18: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Conclusions✔ Created an OSSIE generic component (GC)

that can encapsulate GNU Radio blocks✔ Supported reconfiguration

✓ Able to add or replace GNU Radio blocks during runtime as well as change their properties

✔ Provided an intuitive graphical interface for reconfiguration

✔ Enabled automated control (e.g. cognitive engine)

✔ Reconfigured in near real time (<<100 ms)2

Page 19: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

AcknowledgementsDr. Carl DietrichDan DePoyJeong-O JeongOSSIE TeamDr. Tamal BoseDr. Kay ThamvichaiDr. Tonya Smith-JacksonNSF

Page 20: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

References for GC Implementation• Python v2.7 Documentation:

http://docs.python.org/• wxPython Website: http://www.wxpython.org/• wxPython Widgets Documentation:

http://docs.wxwidgets.org/2.8.4/wx_contents.html

• OSSIE Development Website and User Guide: http://ossie.wireless.vt.edu/

• GNU Radio Wiki: http://gnuradio.org/redmine/wiki/gnuradio

• OSSIE and GNU Radio Live DVD from Dan Depoy

Page 21: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

References for WBAN and Biological Signal DataMIT – BIH Database Distribution:

http://ecg.mit.edu/Physiologic Signals:

http://www.physionet.org/Matlab Files of Signals:

http://www.physionet.org/cgi-bin/ATM

Page 22: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

References for Presentation Diagrams1. Monton, E.; Hernandez, J.F.; Blasco, J.M.; Herve, T.;

Micallef, J.; Grech, I.; Brincat, A.; Traver, V.; , "Body       area network for wireless patient monitoring," Communications, IET , vol.2, no.2, pp.215-222, February 2008 doi: 10.1049/iet-com:20070046

2. Patel, M.; Jianfeng Wang; , "Applications, challenges, and prospective in emerging body area networking technologies, " Wireless Communications, IEEE , vol.17, no.1, pp.80-88, February 2010 doi:10.1109/MWC.2010.5416354

Page 23: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Any Questions?

Page 24: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

What is OSSIE?Open-Source SCA Implementation - Embedded

OSSIE provides tools and components for waveform development, including distributed waveforms.

What is GNU Radio?GNU Radio is a library of signal processing blocks

GNU Radio is not chiefly a simulation tool, but rather a collection of low-level modules that can be manipulated to perform SDR tasks

Page 25: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Further Work• Limitation: We can only process one stream of data

with our implementation of the GC. • Potential Solution: The GC can be modified to handle as

many inputs as necessary if the same processing can be done on all streams. There is a GNU Radio module called “Vector to Stream” that could be used in conjunction with a function that senses the desired number of inputs to process.

• Limitation: The flowgraph must be restarted every time a packet of data flows through the component.• Potential Solution: Make sure the component only

reconfigures when its properties are changed by making the top block wait for data after it finishes processing.

Page 26: Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.

Further WorkLimitation: Individual components are not aware of

what is going on in other components. Potential Solution: Add metadata input and output ports to

the GC so that properties can be passed along components in a GW.

Limitation: The input data type for the GC is currently complexShort (integers). Other data types cannot be processed.Potential Solution: GCEngine includes conversions from

two short streams to two float streams, which is then converted to one complex stream. There are also reverse conversions for the output. Modify this slightly, replacing the first and last conversions involving short streams with the appropriate stream data type.