Wireless Transmission of JPEG file using GNU Radio and USRP



Similar documents
GNU Radio. An introduction. Jesper M. Kristensen Department of Electronic Systems Programmerbare digitale enheder Tuesday 6/3 2007

Rapid Prototyping of a Frequency Hopping Ad Hoc Network System

GnuRadio CONTACT INFORMATION: phone: fax: web:

Software Defined Radio

Field-Test Setup for DRM+, DRM30, FM and AM.

Transport Layer Protocols

A Transport Protocol for Multimedia Wireless Sensor Networks

HAM FOR HACKERS TAKE BACK THE AIRWAVES. JonM DEFCON 16

Spectrum analyzer with USRP, GNU Radio and MATLAB

Modular, Open-Source Software Transceiver for PHY/MAC Research

Process Control and Automation using Modbus Protocol

Department of Electrical and Computer Engineering Ben-Gurion University of the Negev. LAB 1 - Introduction to USRP

Lab Exercise Objective. Requirements. Step 1: Fetch a Trace

Introduction to EDGE. 2.1 What Is EDGE?

[Download Tech Notes TN-11, TN-18 and TN-25 for more information on D-TA s Record & Playback solution] SENSOR PROCESSING FOR DEMANDING APPLICATIONS 29

Single channel data transceiver module WIZ2-434

Software-Defined Radio White Paper

Application Note Receiving HF Signals with a USRP Device Ettus Research

Attenuation (amplitude of the wave loses strength thereby the signal power) Refraction Reflection Shadowing Scattering Diffraction

How To Make A Multi-User Communication Efficient

CS263: Wireless Communications and Sensor Networks

TCOM 370 NOTES LOCAL AREA NETWORKS AND THE ALOHA PROTOCOL

Tri-Band RF Transceivers for Dynamic Spectrum Access. By Nishant Kumar and Yu-Dong Yao

Quick Start X-Series Ettus Research

Lecture 21 ISDN Integrated Digital Network.

Data Link Layer(1) Principal service: Transferring data from the network layer of the source machine to the one of the destination machine

Bluetooth voice and data performance in DS WLAN environment

Demonstration of a Software Defined Radio Platform for dynamic spectrum allocation.

LoRa FAQs. 1 of 4 Semtech. Semtech Corporation LoRa FAQ

Elettronica dei Sistemi Digitali Costantino Giaconia SERIAL I/O COMMON PROTOCOLS

Local Area Networks transmission system private speedy and secure kilometres shared transmission medium hardware & software

Quick Start Guide. MRB-KW01 Development Platform Radio Utility Application Demo MODULAR REFERENCE BOARD

Whitepaper n The Next Generation in Wireless Technology

TCP/IP Network Communication in Physical Access Control

Computer Networks. Definition of LAN. Connection of Network. Key Points of LAN. Lecture 06 Connecting Networks

WUA Mbps Wireless USB Network Adapter

How To Recognize Voice Over Ip On Pc Or Mac Or Ip On A Pc Or Ip (Ip) On A Microsoft Computer Or Ip Computer On A Mac Or Mac (Ip Or Ip) On An Ip Computer Or Mac Computer On An Mp3

Broadcasting your attack: Security testing DAB radio in cars

Demystifying Wireless for Real-World Measurement Applications

Wireless g CF Card User Manual

INTRODUCTION TO COMMUNICATION SYSTEMS AND TRANSMISSION MEDIA

The Wireless Network Road Trip

Special Topics in Security and Privacy of Medical Information. Reminders. Medical device security. Sujata Garera

Chapter 7 Low-Speed Wireless Local Area Networks

Industrial Networks & Databases

Non-Data Aided Carrier Offset Compensation for SDR Implementation

Note monitors controlled by analog signals CRT monitors are controlled by analog voltage. i. e. the level of analog signal delivered through the

A Software Defined Radio Testbed Implementation

Application Note: AN00121 Using XMOS TCP/IP Library for UDP-based Networking

Bidirectional wireless communication using EmbedRF

AV1200 TL-PA8030P KIT. 3-Port Gigabit Passthrough Powerline Starter Kit. Highlights

OSBRiDGE 5XLi. Configuration Manual. Firmware 3.10R

Synapse s SNAP Network Operating System

TYLER JUNIOR COLLEGE School of Continuing Studies 1530 SSW Loop 323 Tyler, TX

Bluetooth in Automotive Applications Lars-Berno Fredriksson, KVASER AB

AIR DRM. DRM+ Showcase

Spectrum Sensing Through Implementation of USRP2

VLAN for DekTec Network Adapters

Network Performance: Networks must be fast. What are the essential network performance metrics: bandwidth and latency

A Division of Cisco Systems, Inc. GHz g. Wireless-G. USB Network Adapter with RangeBooster. User Guide WIRELESS WUSB54GR. Model No.

File Transfer And Access (FTP, TFTP, NFS) Chapter 25 By: Sang Oh Spencer Kam Atsuya Takagi

Ethernet. Ethernet. Network Devices

THE BCS PROFESSIONAL EXAMINATIONS BCS Level 5 Diploma in IT. October 2009 EXAMINERS' REPORT. Computer Networks

Internet Packets. Forwarding Datagrams

HIPAA Security Considerations for Broadband Fixed Wireless Access Systems White Paper

Networking Test 4 Study Guide

Wireless DMX Connector

LIN (Local Interconnect Network):

Transport and Network Layer

Application Note Design Process for Smart, Distributed RF Sensors Ettus Research

Technical Support Information Belkin internal use only

Chapter 9A. Network Definition. The Uses of a Network. Network Basics

524 Computer Networks

CSMA/CA. Information Networks p. 1

C24-CAMANL Video Server/Encoder

EECC694 - Shaaban. Transmission Channel

2.0 System Description

CSE331: Introduction to Networks and Security. Lecture 6 Fall 2006

Analysis of Open Source Drivers for IEEE WLANs

AN ANALYSIS OF DELAY OF SMALL IP PACKETS IN CELLULAR DATA NETWORKS

Example: Multiple OFDM Downstream Channels and Examining Backwards Compatibility. Mark Laubach, Avi Kliger Broadcom

Using Xbee in Serial Communication

Channel Bonding in DOCSIS 3.0. Greg White Lead Architect Broadband Access CableLabs

Application Note AN-00160

Adaptive DCF of MAC for VoIP services using IEEE networks

Fast Ethernet and Gigabit Ethernet. Networks: Fast Ethernet 1

Life of a Packet CS 640,

Achieving New Levels of Channel Density in Downstream Cable Transmitter Systems: RF DACs Deliver Smaller Size and Lower Power Consumption

ACRS 2.0 User Manual 1

Hello viewers, welcome to today s lecture on cellular telephone systems.

COMPUTERS ARE YOUR FUTURE CHAPTER 7 NETWORKS: COMMUNICATING AND SHARING RESOURCES

Networks. The two main network types are: Peer networks

SmartDiagnostics Application Note Wireless Interference

New technologies applied to Carrier Monitoring Software Systems. Juan Carlos Sánchez Integrasys S.A.

Communication Controller with IP services for leased lines and wireless links Radio Activity S.r.l.

Broadband Networks. Prof. Dr. Abhay Karandikar. Electrical Engineering Department. Indian Institute of Technology, Bombay. Lecture - 29.

How do I get to

Data Link Layer Overview

EECS 122: Introduction to Computer Networks Multiaccess Protocols. ISO OSI Reference Model for Layers

Transcription:

1 Wireless Transmission of JPEG file using GNU Radio and USRP Sachin Hirve, Saikrishna Gumudavally, Department of Electrical and Computer Engineering, Cleveland State University Abstract Wireless applications being on the rise with advent of new gadgets, there is increased need of transferring the hardware complexity to software in wireless transmission and reception. It helps in development as well as the multi-standard support for the wireless devices, where software enables making the radio functions hardware independent. Based on this premise, there is a lot of development taking place in the domain of Software Radio using GNU Radio (an Open Source toolkit) and USRP as hardware platform. Along the similar lines, we are planning to implement JPEG file transfer over wireless network using the GNU Radio framework with USRP hardware. Index Terms Access Protocols (Aloha), Software Defined Radio (SDR), Universal Software Radio Peripheral (USRP), Python. S I.INTRODUCTION OFTWARE defined radio (SDR) is finding an increased importance due to flexibility that it provides to implement radio functions. GNU Radio, an open source software tool, being a driving force to develop new wireless applications, is adding to multiple functionalities from same hardware. Universal Software Radio Peripheral (USRP) is the hardware device which is flexible enough to integrate with GNU radio. GNU radio and USRP together help in implementing Software Defined Radio functionalities. The base concept of SDR is to make radio functions hardware independent. The tasks like modulation, demodulation, encoding etc are implemented in software which eliminates the need of corresponding hardware. In essence, SDR leaves the hardware to do the basic functions like transmission/reception of signal and does all the complex signals processing on the general purpose processor thereby relieving the hardware from signal processing complexities. II.BACKGROUND As mentioned above GNU radio and USRP help in realizing SDR. GNU radio provides us with C++ classes which implement various signal processing functions, in other words they replicate hardware signal processing units. While the signal processing blocks are implemented in C++, the main application programming is done in Python. SWIG works as glue between C++ classes and Python language. SWIG is a Linux package that converts the C++ classes into Python compatible classes. This way, GNU Radio framework is able to harness both languages. While C++ provides compact code for signal processing block, Python is preferred because of its flexibility and ease to program. Using Python and C++ in combination, the signal processing units are implemented on general purpose processor by GNU Radio. Fig. 1 Block diagram of basic USRP system [1] USRP is the hardware platform for SDR which is composed of FPGA, ADC/DAC and USB controller. FPGA is used to reduce the data rate on wireless channel to the acceptable data rate to be transmitted over USB2.0 to the host computer [3]. ADC/DAC converts the data

USB AD9862 from analog to digital format and vice-versa. And USB is used to transfer data from USRP to host computer for signal processing. Sender FPGA DUC/ RF GNU radio (interpolation) DAC Front end PC USRP (mother board) Daughter board Receiver GNU radio FPGA (DDC/decimation) DUC Digital up-conversion DDC Digital down-conversion ADC Fig. 2 Software Radio Architecture [5] For the project purpose we are using Ubuntu 7.04 version as the development platform. It is found to be the most user- friendly flavor of Linux operating system with ease of installation of GNU Radio package. We will also be using wingware 3.0 as a software development environment. III.RELATED WORK RF Front end There has been a number of application development based on GNU Radio. Some of the applications use USRP as an integral part of the system whereas some of the implementation does not need USRP and basically concentrate on modulation/demodulation schemes rather than wireless communication challenges. We found four main applications which are quite close to our project title. The first implementation is JPEG file transfer over TCP/IP socket communication between two host computers without using USRP [4]. This implementation concentrated mainly on the modulation/demodulation scheme and JPEG encoding technique. While the main consideration was to test GNU Radio capability to transfer the image file, wireless communication was not addressed in this implementation. Second implementation used the wireless capability of the GNU Radio and USRP by implementing Aloha protocol to transfer a data file with a back-to-back cable connection between USRPs. While this scenario was quite similar to wireless communication, it failed to consider the interference and noise present in the environment due to noise-free channel provided by the back-to-back cable connection. Apart from it, it is also having some overheads in the protocol header which is still unaddressed in current implementation [2]. The third implementation is part of the GNU Radio package, in which the data is transmitted on virtual IP/Ethernet port. It resembles the data transmittion over TCP/IP without USRP [5]. The last implementation is also a part of the GNU Radio package, in which the sample data is transmitted on wireless channel using python package consisting of benchmark_tx.py and benchmark_rx.py files. It resembles the data transmittion over MAC layer in wired network [1]. After studing the above mentioned existing wireless applications using GNU Radio and USRP, we have realised that even though there have been attempts to transfer a JPEG file though GNU Radio without USRP and data transfer through Aloha, there is still a scope for testing the wireless communication for file transfer application. Therefore we propose to implement wireless JPEG file transfer application over USRP as our course project. A.Project Goal IV.PROJECT We have implemented the wireless transmission of JPEG file between two USRP boards using the modules in GNU Radio part of the course project. B.Project Plan For the ease of development the project is split into two stages where we initially implemented the file transfer between the USRP's using the loop back cable and later moved to implement wireless transfer of the file. The project is further divided into two parts mainly categorized as sender and receiver implementation. The radio functions like modulation or demodulation depending on whether it is a sender or a receiver is done by GNU Radio and transmission or reception of packets is done by the USRP at both the ends. C.Issues faced From our study of previous implementations resembling our project goal, we decided to follow Alohaapproach. While trying to reproduce the communication as given in documentation, we found some of the 2

problems hindering our progress in implementing wireless transmission. Long header resulting in larger overhead. Python compatibility issue o Previous work used older version of Python (earlier than 2.3) having timing module. o Current version (2.5) has no support for timing block. o Therefore, work around for using timing module functionality was needed. GNU Radio project version was quite old (2.5). Currently GNU Radio version is 3.1.1 and is not completely compatible with GNU Radio versions earlier than GNU Radio version 3.0. The above issues resulted in difficulties to setup wireless communication based on Aloha protocol using the existing GNU Radio project [2]. Based on this, we changed our approach for wireless transmission. We took benchmark_tx.py and benchmark_rx.py as our base framework. These two python modules in existing GNU Radio project are found to be working for wireless communication between two USRP hardwares. This implementation uses one way data flow. We made some changes in this module to enable JPG file transission with loop-back cable. We further made modifications in the existing code and made it two way communication by introducing acknowledgement based reception in transmission and reception. D.Project Schedule As per previously defined stages, the project was divided in two parts and the time frame for their completion was set as below. 1. Transferring the JPG file from one USRP to another through loop-back cable connection. March 31, 2008 This deadline got extended till April 20 th, 2008 due to poor packet reception at receiver end in case of low-frequency daughter boards. 2. Transferring the JPG file over wireless network. April, 30, 2008 This deadline was met in time and wireless transmission was implemented with file transfer capability. E.Procedure As per previous discussion, benchmark_tx.py and benchmark_rx.py have been used as frame work to generate packets at the transmitter and receiver respectively. The basic Benchmark_tx just dumps the data i.e. just transmits the data through USRP on wireless channel. Benchmark_rx application is always in listening mode and just listens to the incoming data through USRP. These two python codes take various command line arguments such as type of de/modulation scheme, bit rate and the packet size. The default modulation scheme, bit rate and packet size is GMSK, 500kbps, and 1500 bytes respectively. Other de/modulation techniques like DBPSK and DQPSK can also be used with these Benchmark_tx and Benchmark_rx programs. For our implementation, we chose DBPSK. At the Sender end, an application written in python, modulates the input JPEG file with one of the existing modulation schemes (DBPSK). Then the modulated signal is transmitted over wireless using the USRP and its RF front-end (1200MHz tranceiver). The transmitter after transmitting a packet waits for an ACK (for transmitted packet) to transmit the next packet. After transmitting a packet, it starts a timer. If it receives a NACK or fails to receive any thing before timer expires, it retransmits the packet. At the receiver end, we will receive the transmitted signals, which will be brought to the base band by the RF front-end and FPGA. The symbol stream received by the receiving host computer is demodulated using DBPSK demodulaton scheme. The received packets at the receiver are checked for errors at two levels, one where the packet header and PN code are checked and the other where CRC of the payload is verified [6]. If the CRC check is successfully completed then an output message true is displayed else false is displayed along with the packet number. If the packet is successfully received by the receiver then an ACK is transmitted else a NACK is sent. Receiver checks a new packet on reception against the latest successfully received packet. If it is a retransmitted packet by sender, it sends an ACK. Otherwise the new packet is saved in destination file and an ACK is sent for an ackmowledgement of the same. V.EXPERIMENTAL SETUP We used two host machines and two sets of USRP hardware for this project. The daughter boards for 3

4 intended application were 1200 MHz tranceiver boards. 2400 MHz tranceivers were also tried but found to be susceptible to noise which we think is due to wi-fi network in the vicinity of the lab environment. For loopback file transfer scheme, we found that BasicTx and BasicRx daughterboards give good performance. Our first implementaion needed the following setup as shown in Fig. 3. Here two USRP boards are connected back-toback through a loop-back cable (SMA-M to SMA-M cable). It uses BasicRx and BasicTx daughterboards. VI.RESULTS For loop-back cable scenario, using the setup as shown in Fig. 3, we were able to receive complete JPG file with no errors. It is due to no packet loss and corruptionless environment provided by dedicated wired channel of loopback cable. Following is the JPG file image (Fig. 5) which we transmitted from one USRP to another in both loop-back and wireless communication scenario. Fig. 5 Sample image for transmission (13.1KB size) In the first scenario of loop-back cable communication, received file was error free. The received file is shown in Fig. 6. Fig. 3 Loop-back communication setup of USRP system [4] In the second approach, we used 1200MHz tranceiver daughterboards for wireless communication. The experimental setup is shown in Fig. 4. Both the USRP boards were kept at at least 3 meters of distance to reduce the possible interference caused due to each other. Fig. 6 Image received with loop-back cable scenario In second scenario of wireless file transmission, following was the received file as in Fig. 7. Fig. 4 Wireless communication setup of USRP system Fig. 6 Image received with wireless transmission scenario

5 Here it is apparent that the received file contains some distartion, which can be attributed for lost packets in transmission and reception. Current implementation also needs little more efforts to make it robust against the environmental effects on packet transmission, duplicate packets and possible packet loss. Still this result confirms the successful communication between sender and receiver over wireless channel. VII.CONCLUSION As seen from the current implementations of wireless applications on USRP with GNU Radio, it is obvious that USRP in conjunction with GNU Radio is a powerful tool for developing and testing wireless applications. We used some of already tested functions in GNU Radio project for wireless JPEG file transfer. During the course of this project, we got benefited by the knowledge gained and hands-on experience on wireless application development. As demonstrated, we implemented wireless transmission of JPG file. This implementation needs to be made more efficient as the results obtained contain some packet loss affecting the image quality of received JPG file. As future work, we would like to make our implementation more efficient to handle lost and duplicate packets leading to distortion less JPG image at receiving end. REFERENCES [1] www.gnuradio.org/trac [2] www.cs.uni-paderborn.de/en/research-group/researchgroup-computer-networks/projects/gsr.html [3] http://www.nd.edu/~jnl/sdr/docs/tutorials/ [4] Ke-Yu, Chen, Zhi-Feng Chen, GNU Radio, http://www.wu.ece.ufl.edu/projects/softwareradio/docum ents/project%20report_james%20chen.pdf [5] gnuradio.utah.edu/trac/browser/gnuradio/trunk/gnura dio-examples/python/digital/tunnel.py [6] Gnuradio-3.1.1/guradioexamples/python/digital/readme.txt

[7] DETAILS OF EXPERIMENT A.Aloha-based approach As per previous discussion, we chose Aloha-based approach for wireless file transfer application. The source code files were taken from GNU Radio web page from Paderborn University and respective modifications were applied to the GNU Radio project in our host machines to be compatible with the source code. With this we tried to set up wireless commuication but could not succeed. We also found some of the problems in this implementaion, which we have listed in Issues Faced section of the project report. This experience motivated us to move to a different approach. We studied the GNU Radio documentation and found benchmark_tx and benchmark_rx modules in GNU Radio examples to work on wireless channel. These programs confirmed a successful wireless communication. After getting satisfied with this wireless communication, we took these modules as skeleton code for our wireless file transfer implementation. B.Benchmark_tx & rx based approach We would like to explain the working of benchmark_tx and benchmark_rx program modules before explaining details of our approach. Benchmark_Tx.py This transmission module sends the data packets continuously to the connected daughterboard without waiting for any acknoledgement of reception. Transmission frequency, bit rate, packet size and modulation schemes can be defined as command line arguments. This program also accepts file name as argument to send conents of text file over wireless channel. Benchmark_Rx.py This transmission module is always on listening mode. Whenever some data is received through USRP, it is checked for errors at two levels [6]. Firstly, the packet header and PN code are checked and the other where CRC of the payload is verified. Whenver a packet is received, a call back function rx_callback is called and if the CRC check is successfully completed, it displays an output message true, otherwise false is displayed along with the packet number. 6 communication functionality and using it to transfer JPG file using loop-back cable between two USRPs. Once this approach gave us the desired results, we moved to use the same setup for wireless transmission. We found that for wireless transmission, only 1200 MHz and 2400 MHz daughterboards work. After changing our experimental setup to include these daughterboards, we found that the packet loss and packet corruption was higher on wireless channel. This experience led us to change the functioning of Rx and Tx programs (Tx Transmitter, Rx Receiver). We modified these programs as per our following needs. Tx should send a packet and waits to receive an ACK from receiver. Tx starts a timer after sending a packet Tx will retransmit a packet when either it receives NACK or timer times out. When Tx receives any data while waiting for N/ACK, rx_callback function is called, which is similar to rx_callback in Rx program. If packet is not corrupted, it is checked for ACK or NACK message. Transmission or same packet or new one is decided on this message. Rx should wait for receiving a data packet from Tx. After checking the integrity of received data, an ACK mssage is sent to Tx and data is stored in destination file. If packet integrity check is failed, a NACK message is sent to Tx. In case of duplicate packets arriving at Rx due to loss of ACK in the channel, Rx will send the ACK message but will not store the data in destination file. We modified both of these programs to enable JPG file transfer. This step was almost like confirming the existing