27-07-2012, 04:50 PM
Wireless Optical Communication System
Wireless Optical Communication System.doc (Size: 55.5 KB / Downloads: 31)
Project Goals
The goal of our project is to develop a low powered, inexpensive, and versatile optical
wireless communication system. Such a system should be able to send transmission
messages using lasers, and should be low powered, especially compared to radio
frequency based wireless communications. Our goal is to create and design a versatile
system so that the system can be used for different types of wireless networks, including
IP based networks and wireless sensor networks.
Our primary objective is to develop a working system that can achieve wireless
communication over laser. This entails the design and development of the hardware, data
link, and physical layers of the system. This includes the data network protocols,
including the method of using the laser to transmit information over air. We also need to
design the higher level network protocols, such that data frames can be transferred over
the data link layers.
A secondary goal will be to compare and contrast the power consumption of the optical
wireless communication system against a typical RF wireless communication system. We
seek to demonstrate that for some wireless applications, an optical wireless system holds
certain advantages in terms of power and other characteristics. It is our goal as well to
develop a framework for further research and analysis into such a system, and making
one actually viable.
Overall we seek to develop a working communication system where two nodes can
transfer data (in the form of bytes) to each other using laser pulses, and demonstrate that
such a system can indeed work. In this paper, we will explain the motivation for such a
system, where a laser based network has advantages over traditional RF ones, and how
we implemented our prototype network.
Project Background
Wireless communications has become increasingly important in technology,
communication, and computer science. From cell phones to wireless internet to home
devices, everything is being converted from wired into wireless. A major research and
focus area in fact has been the wireless sensor network. This network relies on low
powered self-contained nodes that sense the environment, such as temperature or
humidity [14]. These nodes must be able to transfer and receive information wirelessly.
Indeed, a lot of research and funding has been put into developing wireless systems. Most
of the focus has gone to radio frequency wireless communication. One area however that has not seen much focus is an optical wireless based system, specifically using lasers.
There has been some research done in this area, and there is at least one vendor that sells
a large laser based data transmitter for use in local area networks over IP [15]. But overall
the field is limited, and there isn't any production unit for a small laser engine that can be
used in smaller networks with more stringent power requirements, like a wireless sensor
network or other mesh network.
The motivations and benefits of a laser based wireless network over a traditional radio
frequency network are several. Most important is that for infrequently communicating
nodes, lasers require much less power. This is because they do not need to actively listen
as is the case with RF [18]. This can mean substantial power savings for devices that very
rarely receive any messages. These nodes then are free to stay in sleep mode when not
sensing, rather than having to power on the radio unit. As radio communications tends to
be the biggest source of power consumption in many systems, this can be significant.
Another is that the range of a high powered laser is up to a few kilometers [11], and the
beam focus is relatively narrow. This means that it would be possible to very directly
send a message to another device a few kilometers away, without interfering with other
devices. In a RF wireless network, a transmission causes traffic and nodes listening to
that channel will pick it up [17]. But a laser based wireless network will not have that
issue, since the only possibility for interference will be nodes that lie on the laser beam
path.
Challenges include coming up with a reliable laser coding scheme and optimizing for
latency and bandwidth. These are challenges inherent in any wireless communication
system. Limits to this are of course obvious - a laser based communication system will
have extreme LOS limitations, in that if the laser and detector cannot see each other, then
they cannot communicate. As such, a laser based communication network will be
inappropriate in many applications. Another limitation is that these nodes must be fixed.
If a node moves, then other nodes will no longer point to that node's current position.
Likewise, that node will no longer be correctly pointing to other nodes with its laser.
Therefore, wireless applications that entail movement of nodes would not be appropriate
for an optical wireless system.
III. Project Description
Because we are trying to develop what essentially is a network, it is useful to compare
our project against the OSI network stack. Our design has two hardware components, a
small testboard with a MSP430 attached to a laser and laser detector, and the Intel XScale
platform. The testboard essentially contains the data link and physical layer of the OSI
network stack. The XScale platform will be handling the upper layers of the OSI
networking stack. The two units are connected via a serial connection, specifically RS-
232. The overview of the design can be seen in Figure 1. The way this works is that the XScale will read in a line of text or a file, and break it
down into bytes. At this layer, the XScale must frame the bytes, and add error detection
codes as well. Because of the versatility, combined with the high processing power of the
XScale, many different types of networks can be run on top of our laser wireless system.
For example, the XScale can process IP data, and convert that appropriately into a byte
pattern to send over the laser board. On the receiver side, the XScale will receive the
bytes from the laser board and convert that back into the original message.
The laser board, which encompasses our data link and physical layers, will do the actual
transmission of bytes over the air. It will receive bytes from the XScale, and encode that
onto a laser beam. The laser board is essentially a byte pipe for the XScale. The laser
board will then code the byte into a series of laser pulses, and pulses the laser diode
accordingly. The receiver unit will detect these laser pulses, and based on the timing
pattern of the laser pulse, will decode what the byte originally was. It will then send the
raw byte to the XScale platform via RS-232. From there, the XScale program will
determine what to do with the data, based on the framing that was received.
Implementation
The actual implementation involves two systems - the laser board system and the Intel
XScale platform. These two systems are connected via a serial cable utilizing RS-232.
Data to be transmitted out will be sent from the XScale to the laser board, and data that
has been received will be sent from the laser board to the XScale.
Our specific implementation of our laser system makes use of a test board with a TI
MSP430 microcontroller. The MSP430 is a very low powered microcontroller [7], and
thus was ideal for our system. In addition, the test board had test points that connected
directly with the port and pins on the MSP430, which we were able to use to solder the
laser diode as well as the laser detection unit. The MSP430 has an UART, which we
attach to a RS232 level converter [8], so that we can use communicate with the Intel
XScale via the serial cable. Through this the XScale can send data bytes to transmit, and
receive data bytes from the laser board. The laser diode we selected is connected to the test board via test points. In reality, the
test board has additional drivers for such an application [10]. When we want to pulse the
laser diode to send out a laser beam, we set the voltage to high going into the laser diode
from the microcontroller. This will pulse the laser driver to send the appropriate voltage
to the laser diode, which will cause the laser diode to shoot out a laser pulse.
Likewise, our laser detector consisted of a separate module that was wired to other test
points on our board. Our laser detector actually was a pre-made unit consisting of laser
sensor diodes, connected to an amplifier circuit. The end result is that whenever our laser
detector module receives a laser pulse, it will send a voltage high to the MSP430, alerting
that a laser pulse has been detected.
The basic algorithm works by encoding the incoming byte into a timing pattern. Every
byte that gets transmitted essentially is represented by a specific timing pattern. For a
given byte, we have 11 time slots. Each time slot can contain a laser pulse, or can contain
nothing. For example, if we wish to send out byte 0x01, then we would break down the
timing pattern and only fire the laser on the last time slot. Other bytes have different
patterns. We start off every byte with a 101 sequence (that is, time slot 0 has a laser
pulse, time slot 1 has no pulse, and time slot 2 has a pulse).
The receiver laser board will receive then a series of pulses. As it gets a pulse, the
microcontroller will record the precise time of when that pulse occurred. After the 11
pulses happen, it will recreate the timeslot sequence by calculating the time differential
between each pulse. In our case, the time slots are 100 microseconds wide, and thus after
receiving the 101 sequence, the receiver will calculate whether or not a time slot had a
laser pulse by basing it off how far apart the laser pulses are.
Once the receiver laser board determines the byte that was transmitted, it goes ahead and
transmits that through the serial line up to the XScale platform. Thus, our laser board data
link layer fully handles the transmission of bytes across the air using lasers.
Our XScale implementation then handles the higher layers. As mentioned before, the
XScale communicates with the laser board via RS-232 [10]. More specifically, the
program on the XScale will open up the COM1 port using /dev/ttyS0, which returns a file
descriptor that can be used for doing I/O.