Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
Open-Source SCA Implementation-Embeddedand
Software Communications Architecture
OSSIE and SCA Waveform Development
Edoardo Paone
2Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
The thesis project
Develop a OSSIE waveform based on IEEE 802.15.4:
• Understand SCA and the OSSIE waveform development
• Analyze the IEEE 802.15.4 standard protocol
• Import GNU Radio libraries into OSSIE components
• Implement a RX/TX waveform prototype using the USRP
• Evaluate the OSSIE waveform development tools and process
3Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
SDR – Software Defined Radio
4Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
SoftModem
• modem with minimal hardware
• it uses host computer’s resources instead of dedicated hardware
• easier upgrades to new modem standards
• reduction in production costs, component size and weight
5Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
SCA Waveform Development
• Abstraction of underlying hardware and sofware
– platform independence, portability of applications
– reuse of waveform design modules
• CORBA for intercomponent communication
– component implementation in different languages
– distributed waveform (TCP transport rule)
6Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
SCA – Abstraction layers
7Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
Universal Software Radio Peripheral (USRP)
Materials for the thesis project:
• A personal computer(dualcore processor, 2 GB RAM)
• Ubuntu Linux 8.04
• GNU Radio 3.2.2
• OSSIE 0.7.4
• 2 USRPs
• Eclipse
8Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
OSSIE project
• Open-Source SCA-based Implementation – Embedded (OSSIE)
• Developed at Wireless@Virginia Tech (Blacksburg, VA)
• Professor-in-charge: Dr. Jeffrey H. Reed
• Source code, documentation, tutorials available at:
http://ossie.wireless.vt.edu
9Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
OSSIE distribution
• Latest version: OSSIE 0.8.0 (released in January 2010)
• It can be installed on PCs running Linux(or in a virtual machine on Windows)
• The OSSIE package includes:
– The Core Framework (CF)– The OSSIE Eclipse Feature (OEF)– A set of tools for waveform development– A component library
10Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
OSSIE Core Framework
• written in C++ using the omniORB CORBA ORB (open source)
• implements key elements of the SCA specification
• CORBA transport rules define inter-component communication:
– TCP/IP, for distributed waveforms– Unix domain sockets
P. Balister, et al., “Impact of the use of CORBA for Inter-Component Communication in SCA Based Radio”, Nov 2006
T. Tsou, et al., "Latency Profiling for SCA Software Radio", Nov 2007
11Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
OSSIE Component
12Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
OSSIE Component
• C++ or Python implementation
• Standard Interfaces:basic real and complex data representations in 8, 16,
and 32 bit sizes passed in the form of CORBA sequences
• Custom Interfaces:can be defined using Interface Description Language
(IDL) and compiled with the IDL compiler
13Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
OSSIE Component
• Data buffering:effectively decouples the CORBA call sequence from
signal processing code
14Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
OSSIE Waveform
15Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
OSSIE Waveform
• Drag-and-drop of component library, graphical tools for interconnecting components
• Waveform XML representation generated by the OEF:
– List of components– Configuration of components– Component interconnections– Target deployment node
16Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
OSSIE Waveform <connections> <connectinterface id="DCE:e1aa5d66-824a-11dc-adea-00123f63025f"> <providesport> <providesidentifier>samples_in</providesidentifier> <findby> <namingservice name="ChannelDemo1"/> </findby> </providesport> <usesport> <usesidentifier>symbols_out</usesidentifier> <findby> <namingservice name="TxDemo1"/> </findby> </usesport> </connectinterface> <connectinterface id="DCE:e1ad7154-824a-11dc-85b0-00123f63025f"> <providesport> <providesidentifier>symbols_in</providesidentifier> <findby> <namingservice name="RxDemo1"/> </findby> </providesport> <usesport> <usesidentifier>samples_out</usesidentifier> <findby> <namingservice name="ChannelDemo1"/> </findby> </usesport> </connectinterface> </connections>
17Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
IEEE 802.15.4
• MCPS = MAC common part sublayer
• MCPS-SAP = MCPS service access point
• MLME = MAC layer management entity
• MLME-SAP = MLME service access point
• PD = PHY data
• PLME = PHY layer management entity
• SSCS = service-specific convergence sublayer
• LLC = logical link control
18Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
Custom Interfaces - IDL
19Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
#include "ossie/PortTypes.idl"
module customInterfaces{
/* link layer SAP for mac layer */interface sap_mac_to_link{
void macpsData_confirm( in octet msduHandle, in octet status, in unsigned long Timestamp );
void mcpsData_indication( in octet SrcAddrMode, in unsigned short SrcPANId, in unsigned long long SrcAddr, in octet DstAddrMode, in unsigned short DstPANId, in unsigned long long DstAddr, in octet msduLength, in PortTypes::CharSequence msdu, in octet msduLinkQuality, in octet DSN, in unsigned long Timestamp, in octet SecurityLevel, in octet KeyIdMode, in unsigned long long KeySource, in octet KeyIndex );};};
Custom Interfaces - IDL
20Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
Component Structure
21Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
PHY layer
22Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
MAC - Simulation
MAC 1 MAC 2
TEST OUTPUTOBSERVER
TEST INPUTGENERATOR
TESTCOMPONENT
TEST WAVEFORMsap
_mac_to
_ph
y
sap
_ph
y_ t
o_ m
ac
23Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
PHY - Simulation
MAC 2
TEST OUTPUTOBSERVER
TEST INPUTGENERATOR
TESTCOMPONENT
TEST WAVEFORM
MAC 1
realC
harPHY 1 PHY 2
realC
har
24Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
RX/TX path – GNU Radio solution
MAC PHY
MODEM_USRP
USRP
25Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
UCLA Zigbee PHY
GNU Radio implementation of the IEEE 802.15.4 physical layer.
26Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
MODEM_USRP WorkModule
27Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
MODEM_USRP component
28Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
RX/TX path – GNU Radio solution
MAC PHY MODEM_USRP
GPP device USRP device
Waveform Development
SCA platform
TCP/IP
USRP
OS / HW
GPP
Memory
29Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
RX/TX path – OSSIE solution
MAC PHY MODEM
GPP device USRP device
Waveform Development
SCA platform
TCP/IP
USRP
OS / HW
GPP
Memory
30Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
RX/TX path – OSSIE solution
MAC PHYMODULATOR
USR
P
DEMODULATOR
31Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
MODULATOR component
• Python implementation
• mylib.symbol_sink
• ieee802_15_4_mod
• input/output buffers
32Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
DEMODULATOR component
• C++ implementation
• fm_demodulation.h
• symbol_source.h
• input/output buffers
33Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
Waveform Simulation
• all components deployed on the GPP (no USRP)
• radio channel simulated by the channel component
• test case implemented in the TEST component
34Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
The target waveform
Two configurations:
• a chat application
• a TUN/TAP interface
CHAT MAC PHYMODEMUSRP
TUN/TAP MAC PHYMODEMUSRP
35Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
GNU Radio vs. OSSIEGNU Radio OSSIE
Waveform structure:● the top_module class represents a container for the flowgraph● the flowgraph is then implemented as a single thread
● defined in the XML descriptor files and instanciated at runtime● one or more threads for each component
Component interconnections:● defined in the source code with the connect() method● functional decomposition and hierarchical structure
● defined in the XML descriptor files and instanciated at runtime● functional composition but flat structure
Data transfer:● if data is available in the input buffer, the top_module calls the work method● synchronization and scheduling tecniques
● performed by CORBA calls, data is temporarely stored in input/output buffers● no synchronization between components, independent threads
36Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
Measurements
GNU Radio OSSIE
Average data transfer size 12.5 KB 16 KB
Average data transfer delay
1.5 ms 1 ms
Average input data rate 8 MB/s 15.4 MB/s
USRP:• ADC sample rate: 64 Msps• Decimation factor: 16• Output sample rate: 4 Msps• Theoretical limit USB 2.0: 8 Msps
37Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
USRP – Data transfer delay
1 7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 974 10 16 22 28 34 40 46 52 58 64 70 76 82 88 94 100
103106
109112
115118
121124
127130
133136
139142
145148
151154
157160
163166
169172
175178
181184
187190
193196
199
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
20000
Delay between successive read operations from the USRP
OSSIE
GNU Radio
Experiment number
Dat
a tra
nsfe
r del
ay (m
icro
seco
nds)
38Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
USRP – Data transfer size
13
57
911
1315
1719
2123
2527
2931
3335
3739
4143
4547
4951
5355
5759
6163
6567
6971
7375
7779
8183
8587
8991
9395
9799
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
Sixe of data read from the USRP
GNU Radio
OSSIE
Experiment number
Dat
a tra
nsfe
r siz
e (b
ytes
)
39Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
Results
• GNU Radio:– Adaptive scheduling– Variable data rate– Data transfer synchronization
• OSSIE:– Independent scheduling for each component– Constant data rate– No synchronization between components
40Monday 15 February 2010
Edoardo , KTHOSSIE and
SCA Waveform Development
Thank you for your attention
Acknowledgements