Upload
unizikedu
View
1
Download
0
Embed Size (px)
Citation preview
CERTIFICATION
This is to certify that this seminar work was done by
OSISIOGU, UKACHI OLUWASEUN of the department of
Electronic and Computer Engineering in partial
fulfillment for the award of Bachelor Degree in
Engineering at Nnamdi Azikiwe University, Awka
-------------------------------------
Prof. (Mrs.) C. C. Okezie
Project Supervisor
1
DEDICATION
I dedicate this seminar paper to the Almighty God for
His grace and infinite love towards me and to my darling
parents, siblings, and close friends for their
encouragement morally, academically, financially and
otherwise.
2
ACKNOWLEDGEMENT
I thank God for the grace of life and abundance of
blessings which He showered upon me. I wish to express
my gratitude to my supervisor Prof (Mrs.) C.C. Okezie
for her support, guidance and encouragement during this
seminar writing.
I also want to acknowledge my parents, Prof. and Mrs. U.
A. Osisiogu, who has been of immense supports to my
academics and my siblings Onyekachi, Tochukwu and Ayo-
Oluwa who have been a source of encouragement.
I also express my gratitude to Prof. V.E Idigio, Prof.
Iyiama, Dr. A.C.O Azugbogu, Dr. Ohaneme, Dr. (Mrs.) S.U.
3
Nnebe, Dr. Ken Akpado, Dr. Tony Isizoh. Dr. T.L Alumuna,
Dr. Ifeagwu, , Dr. Udenze, Engr. Steve Ufuorah, Engr.
Ezeagu, Engr. Azubike Aniedu, Engr. Okorogu and Gerald
Nwalozie. These ones have impacted a lot of knowledge in
me turning me into the well-equipped man that I am
today. I know that the sky is their limit and they will
achieve much more in their lives.
Last but not the least are my wonderful friends,
Onyedika, Confidence, Jason, Uzoma, Henry, Kelechi,
Gabriel and a host of others who in one way or the other
made a huge impact in my life, I love you all.
TABLE OF CONTENTS
CERTIFICATION...................................14
DEDICATION......................................2ACKNOWLEDGEMENT.................................3TABLE OF CONTENTS...............................4SECTION ONE.....................................7INTRODUCTION....................................7SECTION TWO: AN OVERVIEW ON ARDUINO............10
2.1 Introduction...................................10
2.2 Arduino Uno....................................11
2.3 General Specifications.........................11
2.3.1 Power Specification.............................12
2.3.2 Memory Specification............................13
2.3.3 Input and Output................................13
2.3.4Communication....................................14
2.4 Programming the Arduino........................15
2.5 Automatic (Software) Reset.....................16
2.6 USB Over-current Protection....................16
2.7 Physical Characteristics.......................17
3. SECTION THREE: SERIAL COMMUNICATION.........18
3.1 Definition.....................................18
3.2 Differences between Serial and ParallelCommunication......................................18
3.3 Clock skew.....................................205
3.4 Asynchronous and Synchronous Data Transmission. 21
3.4.1The advantages and disadvantages of synchronous over asynchronous serial communication...........23
3.5 The DCE and the DTE............................23
3.6 The Mode of Operation of a Serial Rate Transfer(SRT)..............................................24
3.6.1Baud rate........................................26
3.6.2 Data bits.......................................27
3.6.3Start and Stop (Synchronisation) bits:...........27
3.6.4 Parity..........................................28
3.7 Examples of Serial Communication Standards....29
3.7.1RS-232...........................................29
3.7.2.........................................................RS-42230
3.7.3.........................................................RS-42331
3.7.4.........................................................RS-48532
3.7.5..............................USB (Universal Serial Bus)34
3.7.6 Fire Wire (IEEE 1394)...........................35
3.7.7 Ethernet........................................36
3.7.8MIDI.............................................366
3.7.9 IIC or I2C- Inter-Integrated Circuit.............38
3.7.10 SPI-Serial Peripheral Interface................38
3.7.11 PCI Express....................................39
SECTION FOUR...................................41
4.1 THE PROCEDURE FOR SERIAL COMMUNICATION IN ARDUINOIN CREATING SYSTEMS................................41
4.2 UART...........................................42
4.3 Applications of Serial Communication in Arduino42
4.4 Examples of the utilisation of serialcommunication in Arduino...........................43
4.4.1 .Sending Debug Information from Arduino to Computer43
4.4.2Sending Formatted Text and Numeric Data from Arduino...............................................43
4.4.3 Receiving serial Data in Arduino................44
4.4.4 Arduino to Arduino communication................44
SECTION FIVE: CONCLUSION.......................45REFERENCES.....................................46
7
SECTION ONEINTRODUCTION
In the field of electronics, the interconnection of
circuits in order to create a symbiotic system is vital.
For this interconnection to be accomplished, between
processors, sensors and other integrated circuits they
must share a common communication protocol. One of such
communication protocol is the serial communication
protocol.
The aim of this paper is to present a good understanding
of serial communication and how it relates to Arduino.8
Serial in a general context means one after the other,
although in the context of computing it means the
sending of computer information sequentially [1].
Communication simply means the exchange of information
between people and devices. [2] Therefore serial
communication can be defined as the form of information
exchange in which the individual bits that compromise
the information in the form of bytes or character travel
one after the other through a single channel.
However, serial communication is common method of
transmitting data between a computer and a peripheral
device such as a programmable instrument or even another
computer. [3] Serial communication transmits data one bit
at a time, sequentially, over a single communication
line to a receiver. Serial is also a most popular
communication protocol that is used by many devices for
instrumentation.
The history of long distance communication can be traced
back to the days when smoke signaling where by covering
a fire with blanket and quickly removing it can a
generate a puff of smoke. With some training, the sizes,
shapes and timing of these puffs can be observed from a
long distance, noticeable to anyone within its visual
range. Stone bowls used by Native Americans and the9
towers of the Great Wall of China are examples of
signaling stations that utilized this form of
communication. As technology advanced; in the 19th
century the Morse code was invented by Samuel F.B.
Morse, the use of telegraph was introduced concurrently
and long distanced communication improved to an extent.
In 1960 work on ASCII (American Standard Code for
Information Interchange) began and the first edition of
the standard was published in 1963, a major revision in
1967, and the most recent update in 1986. [4] Till today
it defines codes for the 128 characters used in
communication. In 1962 the first serial port
communication was introduced by the Radio Sector of the
EIA. This particular technology has evolved into various
standards like the USB, FireWire, Ethernet, RS-485, SPI,
SONET and I2C with many others. The evolution that
occurred in serial communication can be said to have
come because of the insatiable need for people to
communicate faster and even over longer distances.
Serial communication can now be used to transfer data
with a very high throughput. There are still recent
developments that are in progress on how to even
increase the throughput at even longer distances which
10
makes this subject an interesting and important field of
research.
Arduino is an open-source computer hardware and software
company, project and user community that designs and
manufactures kits for building digital devices and
interactive objects that can sense and control the
physical world. [5]
The Arduino platform has become quite popular with
people just starting out with electronics, and for good
reason. Unlike most previous programmable circuit
boards, the Arduino does not need a separate piece of
hardware (called a programmer) in order to load new code
onto the board, a USB can be simply used. Additionally,
the Arduino IDE uses a simplified version of C++, making
it easier to learn to program. Finally, Arduino provides
a standard form factor that breaks out the functions of
the microcontroller into a more accessible package.
The importance of this paper is to look at this vital
protocol (serial communication) and understand how it
works with Arduino by understanding Arduino Uno and how
serial communication works conventionally. Once the
foundation has been laid, this paper will then connect
these two concepts in order to give a satisfactory
understanding on the topic.
11
Section 1 gives a general overview and some basic
definitions on the subject matter. Section 2 gives a
detailed view on Arduino. Section 3 deals with some
necessary details on serial communication and gives an
explanation some serial communication standards. Section
4 deals with how Arduino utilises the capacity of serial
communication and Section 5 gives the summary this
paper.
12
SECTION TWO: AN OVERVIEW ON ARDUINO
2.1 Introduction Arduino is an open-source platform used for building
electronics projects. Arduino consists of both a
physical programmable circuit board (often referred to
as a microcontroller) and a piece of software, or IDE
(Integrated Development Environment) that runs on the
user’s computer, used to write and upload computer code
to the physical board. The Arduino platform has become
quite popular with people just starting out with
electronics, and for good reason. Unlike most previous
programmable circuit boards, the Arduino does not need a
separate piece of hardware (called a programmer) in
order to load new code onto the board; the user can
simply use a USB cable. Additionally, the Arduino IDE
uses a simplified version of C++, making it easier to
learn to program. Finally, Arduino provides a standard13
form factor that breaks out the functions of the
microcontroller into a more accessible package.
Arduino manufactures many different boards, each with
different potentials. In addition, Arduino is “open
source” hardware. This implies that others can modify
and produce derivatives of Arduino boards that provide
even more functionality.
Examples such boards are:
a)Arduino Uno
b)LilyPad Arduino
c)RedBoard
d)Arduino Mega
e)Arduino Leonardo
This paper will only discuss Arduino Uno and its
specifications
2.2 Arduino Uno
The Arduino Uno is a microcontroller board based on the
ATmega328 (datasheet). It has 14 digital input/output
pins (of which 6 can be used as PWM outputs), 6 analog
14
inputs, a 16 MHz crystal oscillator, a USB connection, a
power jack, an ICSP header, and a reset button. It
contains everything needed to support the
microcontroller; simply connect it to a computer with a
USB cable or power it with an AC-to-DC adapter or
battery to get started. The Uno differs from all
preceding boards in that it does not use the FTDI USB-
to-serial driver chip. Instead, it features the
Atmega8U2 programmed as a USB-to-serial converter.
"Uno" means one in Italian and is named to mark the
upcoming release of Arduino 1.0. The Uno and version 1.0
will be the reference versions of Arduino, moving
forward. The Uno is the latest in a series of USB
Arduino boards, and the reference model for the Arduino
platform. [6]
2.3 General Specifications
Microcontroller ATmega328Operating Voltage 5VInput Voltage (recommended) 7-12VInput Voltage (limits) 6-20VDigital I/O Pins 14 (of which 6 provide PWM
output)Analog Input Pins 6
15
DC Current per I/O Pin 40 mADC Current for 3.3V Pin 50 mASRAM 2 KBEEPROM 1 KBClock Speed 16 MHz
Figure 1: A Diagram of an Arduino Uno Board
2.3.1 Power SpecificationThe Arduino Uno can be powered via the USB connection or
with an external power supply. The power source is
selected automatically. External (non-USB) power can
come either from an AC-to-DC adapter (wall-wart) or16
Table 1: Arduino Uno Specifications
battery. The adapter can be connected by plugging a
2.1mm center-positive plug into the board's power jack.
Leads from a battery can be inserted in the GND and VIN
pin headers of the POWER connector. The board can
operate on an external supply of 6 to 20 volts. If
supplied with less than 7V, however, the 5V pin may
supply less than five volts and the board may be
unstable. If using more than 12V, the voltage regulator
may overheat and damage the board. The recommended range
is 7 to 12 volts.
The power pins are as follows:
A) VINThe input voltage to the Arduino board when it's using
an external power ource (as opposed to
5 volts from the USB connection or other regulated power
source). The user can supply voltage through this pin,
or, if supplying voltage via the power jack, access it
through this pin.
B) 5 VThe regulated power supply used to power the
microcontroller and other components on the board. This
17
can come either from VIN via an on-board regulator, or
be supplied by USB or another regulated 5V supply.
C) 3.3V A 3.3 volt supply generated by the on-board regulator.
Maximum current draw is 50 mA.
D) GND. Ground pins.
E) IOREF: This pin on the Arduino board provides thevoltage reference with which the microcontroller
operates. A properly configured shield can read the
IOREF pin voltage and select the appropriate power
source or enable voltage translators on the outputs for
working with the 5V or 3.3V.
2.3.2 Memory SpecificationThe ATmega328 has 32 KB (with 0.5 KB used for the
bootloader). It also has 2 KB of SRAM and 1 KB of
EEPROM.
2.3.3 Input and OutputEach of the 14 digital pins on the Uno can be used as an
input or output, using pinMode(), digitalWrite(), and
digitalRead() functions. They operate at 5 volts. Each
pin can provide or receive a maximum of 40 mA and has an
internal pull-up resistor (disconnected by default) of
18
20-50 kOhms. In addition, some pins have specialized
functions:
Serial: 0 (RX) and 1 (TX). Used to receive (RX) and
transmit (TX) TTL serial data. These pins are connected
to the corresponding pins of the ATmega8U2 USB-to-TTL
Serial chip.
External Interrupts: 2 and 3. These pins can be
configured to trigger an interrupt on a low value, a
rising or falling edge, or a change in value. See the
attachInterrupt() function for details.
PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output
with the analogWrite() function.
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins
support SPI communication using the SPI library.
LED 13: There is a built-in LED connected to digital pin
13. When the pin is HIGH value, the LED is on, when the
pin is LOW, it's off. The Uno has 6 analog inputs,
labeled A0 through A5, each of which provide 10 bits of
resolution (i.e. 1024 different values). By default they
measure from ground to 5 volts, though is it possible to
change the upper end of their range using the AREF pin
and the analogReference() function.
Additionally, some pins have specialized functionality:
19
TWI: A4 or SDA pin and A5 or SCL pin. Support TWI
communication using the Wire library. There are a couple
of other pins on the board:
AREF: Reference voltage for the analog inputs. Used with
analogReference().
Reset. Bring this line LOW to reset the microcontroller.
Typically, this is used to add a reset button to
shields which block the one on the board.
2.3.4 CommunicationThe Arduino Uno has a number of facilities for
communicating with a computer, another Arduino, or other
microcontrollers. The ATmega328 provides UART-TTL (5V)
serial communication, which is available on digital pins
0 (RX) and 1 (TX). An ATmega8U2 on the board channels
this serial communication over USB and appears as a
virtual com port to software on the computer. The '8U2
firmware uses the standard USB COM drivers, and no
external driver is needed. However, on Windows, an *.inf
file is required.
The Arduino software includes a serial monitor which
allows simple textual data to be sent to and from the
Arduino board. The RX and TX LEDs on the board will
flash when data is being transmitted via the USB-to
serial chip and USB connection to the computer (but not
20
for serial communication on pins 0 and 1). A
SoftwareSerial library allows for serial communication
on any of the Uno's digital pins. The ATmega328 also
support I2C (TWI) and SPI communication. The Arduino
software includes a Wire library to simplify use of the
I2C bus.
2.4 Programming the Arduino
The Arduino Uno can be programmed with the Arduino
software .Select “Arduino Uno” from the Tools > Board
menu (according to the microcontroller on the board).
The ATmega328 on the Arduino Uno comes pre-burned with a
boot loader that allows the user to upload new code to
it without the use of an external hardware programmer.
It communicates using the original STK500 protocol
(reference, C header files). The user can also bypass
the boot loader and program the microcontroller through
the ICSP (In-Circuit Serial Programming) header. The
ATmega16U2 (or 8U2 in the rev1 and rev2 boards) firmware
source code is available. The ATmega16U2/8U2 is loaded
with a DFU boot loader, which can be activated by:
On Rev1 boards: connecting the solder jumper on the back
of the board (near the map of Italy) and then resetting
the 8U2.
21
On Rev2 or later boards: there is a resistor that
pulling the 8U2/16U2 HWB line to ground, making it
easier to put into DFU mode.
The user can then use Atmel's FLIP software (Windows) or
the DFU programmer (Mac OS X and Linux) to load a new
firmware. Or the user can use the ISP header with an
external programmer (overwriting the DFU boot loader).
2.5 Automatic (Software) ResetRather than requiring a physical press of the reset
button before an upload, the Arduino Uno is designed in
a way that allows it to be reset by software running on
a connected computer. One of the hardware flow control
lines (DTR) of the ATmega8U2/16U2 is connected to the
reset line of the ATmega328 via a 100 Nano farad
capacitor. When this line is asserted (taken low), the
reset line drops long enough to reset the chip. The
Arduino software uses this capability to allow you to
upload code by simply pressing the upload button in the
Arduino environment. This means that the boot loader can
have a shorter timeout, as the lowering of DTR can be
well coordinated with the start of the upload.
This setup has other implications. When the Uno is
connected to either a computer running Mac OS X or
Linux, it resets each time a connection is made to it
22
from software (via USB). For the following half-second
or so, the boot loader is running on the Uno. While it
is programmed to ignore malformed data (i.e. anything
besides an upload of new code), it will intercept the
first few bytes of data sent to the board after a
connection is opened. If a sketch running on the board
receives one-time configuration or other data when it
first starts, make sure that the software with which it
communicates waits a second after opening the connection
and before sending this data.
The Uno contains a trace that can be cut to disable the
auto-reset. The pads on either side of the trace can be
soldered together to re-enable it. It's labeled "RESET-
EN". You may also be able to disable the auto-reset by
connecting a 110 ohm resistor from 5V to the reset line.
2.6 USB Over-current Protection
The Arduino Uno has a resettable poly-fuse that protects
your computer's USB ports from shorts and over-current.
Although most computers provide their own internal
protection, the fuse provides an extra layer of
protection. If more than 500 mA is applied to the USB
port, the fuse will automatically break the connection
until the short or overload is removed.
23
2.7 Physical Characteristics
The maximum length and width of the Uno PCB are 2.7 and
2.1 inches respectively, with the USB connector and
power jack extending beyond the former dimension. Three
screw holes allow the board to be attached to a surface
or case. Note that the distance between digital pins 7
and 8 is 160 mil not an even multiple of the 100 mil
spacing of the other pins.
24
3. SECTION THREE: SERIAL COMMUNICATION
3.1 Definition
Serial communication is a common method of transmitting
data between a computer and a peripheral device such as
a programmable instrument or even another computer.
Serial communication transmits data one bit at a time,
sequentially, over a single communication line to a
receiver. Serial is also a most popular communication
protocol that is used by many devices for
instrumentation.[7] This method is used when data transfer
rates are very low or the data must be transferred over
long distances and also where the cost of cable and
synchronization difficulties, make parallel
communication impractical. Serial communication is
popular because most computers have one or more serial
ports, so no extra hardware is needed other than a cable
to connect the instrument to the computer or two
computers together.
25
3.2 Differences between Serial and ParallelCommunication
In this section, a comparative study on parallel and
serial communications will be treated in order to aid
the understanding of the differences, advantages and
disadvantages of both in detail.
Parallel ports are typically used to connect a PC to a
printer and are rarely used for other connections. A
parallel port sends and receives data eight bits at a
time over eight separate wires or lines. This allows
data to be transferred very quickly. However, the setup
looks more bulky because of the number of individual
wires it must contain. But, in the case of a serial
communication, as stated earlier, a serial port sends
and receives data, one bit at a time over one wire.
While it takes eight times as long to transfer each byte
of data this way, only a few wires are required.
Although this is slower than parallel communication,
which allows the transmission of an entire byte at once,
it is simpler and can be used over longer distances. For
example, the IEEE 488 specifications for parallel
communication state that the cabling between equipment
can be no more than 20 meters total, with no more than 2
meters between any two devices; serial, however, can26
extend as much as 1200 meters (with high-quality
cable).
However, at first sight it would seem that a serial link
must be inferior to a parallel one, because it can
transmit less data on each clock tick. Although, it is
often the case that, in modern technology, serial links
can be clocked considerably faster than parallel links,
and achieve a higher data rate. Even in shorter distance
communications, serial computer buses are becoming more
common because of a tipping point where the
disadvantages of parallel busses (clock skew,
interconnect density) outweigh their advantage of
simplicity (no need for serializer and deserializer).
The serial port on a PC is a full-duplex device meaning
that it can send and receive data at the same time. In
order to be able to do this, it uses separate lines for
transmitting and receiving data. From the above
discussion we could understand that serial
communications have many advantages over parallel
communication like:
a) Requires fewer interconnecting cables and henceoccupies less space.
27
b) "Cross talk" is less of an issue, because there arefewer conductors compared to that of parallelcommunication cables.
c) Many ICs and peripheral devices have serialinterfaces.
d) Clock skew between different channels is not anissue.
e) No need of Serialiser/Deserialiser (SerDes).
f) Cheaper to implement.
In the attempt to gain a good
understanding of serial communication it
is vital that the following terms are explained.
3.3 Clock skew
Clock skew is a phenomenon in synchronous circuits in
which the clock signal sent from the clock circuit
arrives at different components at different times,
which can be caused by many things, like:
a) Wire-interconnect length,
b) Temperature variations, 28
Figure 2: Parallel Communication
Figure 3: Serial Communication
c) Variation in intermediate devices,
d) Capacitive coupling,
e) Material imperfections,
As the clock rate of a circuit increases, timing becomes
more critical and less variation can be tolerated if the
circuit is to function properly. There are two types of
clock skew: Positive skew, which occurs when the clock
reaches the receiving register later than it reaches the
register sending data to the receiving register and
negative skew which just opposite: the receiving register
gets the clock earlier than the sending register. Two
types of violation can be caused by clock skew. One
problem is caused when the clock travels more slowly
than the path from one register to another - allowing
data to penetrate two registers in the same clock pulse,
or maybe destroying the integrity of the latched data.
This is called a hold violation because the previous
data is not held long enough at the destination flip-
flop to be properly clocked through.
29
3.4 Asynchronous and Synchronous DataTransmission
Like any data transfer methods, Serial Communication
also requires coordination between the sender and
receiver. For example, when to start the transmission
and when to end it, when one particular bit or byte ends
and another begins, when the receiver's capacity has
been exceeded, and so on. Here comes the need for
synchronization between the sender and the receiver. A
protocol defines the specific methods of coordinating
transmission between a sender and receiver.
Let us take an example. A serial data signal between two
PCs must have individual bits and bytes that the
receiving PC can distinguish. If it does not, then the
receiving PC cannot tell where one byte ends and the
next one begin or where one bit ends and begins. So the
signal must be synchronized in such a way that the
receiver can distinguish the bits and bytes as the
transmitter intends them to be distinguished.
There are two ways to synchronize the two ends of the
communication namely synchronous and asynchronous. The
synchronous signaling methods use two different signals.
A pulse on one signal line indicates when another bit of
information is ready on the other signal line. The
30
asynchronous signaling methods use only one signal. The
receiver uses transitions on that signal to figure out
the transmitter bit rate (known as auto baud) and
timing, and set a local clock to the proper timing,
typically using a PLL to synchronize with the
transmission rate. A pulse from the local clock
indicates when another bit is ready. That means
synchronous transmissions use an external clock, while
asynchronous transmissions are use special signals along
the transmission medium. (Refer to Figure 4)
Asynchronous communication is the commonly prevailing
communication method in the personal computer industry,
due to the reason that it is easier to implement and has
the unique advantage that bytes can be sent whenever
they are ready, and no need to wait for blocks of data
to accumulate.
31
3.4.1 The advantages and disadvantages of synchronous over asynchronous serial communication
The one of the crucial advantages of synchronous
data transfer is the lower overhead and thus,
32
Figure 4: (1) Synchronous and (2) Asynchronous serial Communication.
greater throughput, compared to asynchronous one.
But it has some disadvantages such as,
Slightly more complex and
Hardware is more expensive.
One of the main disadvantages of asynchronous
technique is the large relative overhead, where a
high proportion of the transmitted bits are uniquely
for control purposes and thus carry no useful
information. But it holds some advantages like,
1) Simple and doesn't require much synchronization
on both communication sides.
2) The timing is not as critical as for synchronous
transmission; therefore hardware can be made
cheaper.
3) Set-up is very fast, so well suited for
applications where messages are generated at
irregular intervals, for example data entry from the
keyboard.
3.5 The DCE and the DTE
33
The terms DTE and DCE are very common in the data
communications technologies. DTE is an acronym for Data
Terminal Equipment and DCE stands for Data Communications
Equipment. As the full DTE name indicates, this is a
piece of device that ends a communication line, whereas
the DCE provides a path for communication. Using the
following example a good understanding of their
functions can be achieved. For instance, a computer
which wants to communicate with the Internet through a
modem and a dial-up connection, in order to get to the
Internet the computer tells the modem to dial the number
of the internet service provider. After the modems have
dialed the number, the modem of the provider will answer
the call. Then your connection is established. Now you
have a connection with the server from your provider and
you can use the Internet. In this example, your PC is a
Data Terminal (DTE). The two modems (internal modem and
that one of the provider's) are DCEs. They make the
communication between you and your provider possible.
When there is a need to look at the server of your
provider, do we call that a DTE or DCE? The answer is a
DTE. It ends the communication line between you and the
server, although it gives you the possibility to surf
around the globe. The reason why it is a DTE is that
34
when you want to go from your provider's server to
another place it uses another interface. So DTE and DCE
are interface dependent devices. It means, for your
connection to the server, the server is a DTE, but the
same server is a DCE for the equipment that it is
attached to the rest of the Network.
3.6 The Mode of Operation of a Serial Rate
Transfer (SRT)
Serial communication requires the specification the
following five parameters:
1) The speed or baud rate of the transmission,
2) The number of data bits encoding a character,
3) The sense of the optional parity bit, (whether to be
used or not, if yes then odd or even)
4) The number of stop bits,
5) Full or half-duplex operation.
Each transmitted character is packaged in a character
frame that consists of a single start bit followed by
the data bits, the optional parity bit, and the stop bit
or bits, as shown in the Figure 4
35
After the stop bit, the line may remain idle
indefinitely, or another character may immediately be
started. The minimum stop bit length required by the
system can be larger than a "bit". In fact it can be 1.5
stop bits, or 2 stop bits, or even the new hardware that
doesn't support fractional stop bits can be configured
to send 2 stop bits when transmitting and requiring 1
stop bit when receiving.
Typically, serial communication is carried out using
ASCII form of the data. Communication is completed using
3 transmission lines: Ground, Transmit, and Receive.
Since serial is asynchronous (in many applications), the
port is able to transmit data on one line while
receiving data on another. Other lines are available for
handshaking, but are not required. The important serial
characteristics are baud rate, data bits, stop bits, and
parity and for two ports to communicate, these
parameters must match.36
Figure 5: Diagram of a Character Frame
In the following section the parameters that are common
with serial communication will be explained.
3.6.1 Baud rate
The baud rate is used to specify data speed, which is a
measure of the number of times a digital signal changes
state in one second or the number of signal events or
signal transitions occurring per second. The changes can
be
a) From positive voltage to zero voltage,
b) From zero voltage to negative voltage, or
c) From positive voltage to negative voltage.
The baud rate can never be higher than the raw bandwidth
of the channel, as measured in Hz. Baud rate and bit
rate, often and incorrectly, are used interchangeably.
The relationship between baud rate and bit rate depends
on the sophistication of the modulation scheme used to
manipulate the carrier. The bit rate (bits per second or
37
…………………… (1)
bps) and baud rate can be the same, if each bit is
represented by a signal transition in a single-bit
modulation scheme. Baud rate is almost always a lower
figure than bps for a given digital signal because some
signal modulation techniques allow more than one data
bit to be transmitted per change state. So the bit rate
(bps) and baud rate (baud per second) can be connected
by the formula:
The number of bit per baud is determined by the
modulation technique. The following two examples give
how it could be.
1) When FSK ("Frequency Shift Keying", a transmission
technique) is used, each baud transmits one bit; only
one change in state is required to send a bit. Thus, the
modem's bps rate is equal to the baud rate.
2) When we use a baud rate of 2400, you use a modulation
technique called phase modulation that transmits four
bits per baud. So,
38
Such modems are capable of 9600 bps operation. Common
baud rates for telephone lines are 14400, 28800, and
33600. Baud rates greater than these are possible, but
these rates reduce the distance by which devices can be
separated.
3.6.2 Data bits
When the computer sends a packet of information, the
amount of actual data may not be a full 8 bit. Standard
values for the data packets are 5, 7, and 8 bits. Which
setting that is configured depends on what information
you are transferring. For example, standard ASCII has
values from 0 to 127 (7 bits). Extended ASCII uses 0 to
255 (8 bits). If the data being transferred is a simple
text (standard ASCII), then sending 7 bits of data per
packet is sufficient for communication, otherwise 8 bits
of data per packet is utilised. A packet refers to a
single byte transfer, including start or stop bits, data
bits, and parity. Since the number of actual bits
39
Figure 6: An Illustration of Baud Rate
depends on the protocol selected, the term packet is
used to cover all instances.
3.6.3 Start and Stop (Synchronisation) bits:
Stop bit is used to indicate the end of a single packet.
Typical values are 1, 1.5, and 2 bits. Since the data is
clocked across the lines and each device has its own
clock, it is possible for the two devices to become
slightly out of sync. Therefore, the stop bits not only
indicate the end of transmission but also give the
computers some room for error in the clock speeds. The
more bits that are used for stop bits, the greater the
lenience in synchronizing the different clocks, but the
slower the data transmission rate. Start bit is the bit,
which signals the receiver that data is coming. Every
byte of data in an asynchronous serial transmission is
preceded by a start bit and followed by a stop bit.
3.6.4 Parity
40
Figure 7: A Frame with the start andstop shown
It's used for error checking in serial communication.
There are two types of parity: even and odd. And the
option of using no parity is also available. For even
and odd parity, the serial port will set the parity bit
(the last bit after the data bits) to a value to ensure
that the transmission has an even or odd number of logic
high bits. For example, let us take the data as 011.Then
for even parity; the parity bit would be 0 to keep the
number of logic high bits even. Similarly, for odd
parity the parity bit would be 1, resulting in three
logic high bits.
3.7 Examples of Serial Communication Standards
3.7.1 RS-232
Originally, RS-232 is a standard for serial
communication transmission of data. It formally defines
the signals connecting between a DTE (data terminal
41
Figure 8: Parity Bits
equipment) such as a computer terminal, and a DCE (data
circuit-terminating equipment, originally defined as
data communication equipment [8]), such as a modem as it
was originally designed for telecommunication. The RS-
232 standard is commonly used in computer serial ports.
The standard defines the electrical characteristics and
timing of signals, the meaning of signals, and the
physical size and pin-out of connectors.
However, an RS-232 serial port was once a standard
feature of a personal computer, used for connections to
modems, printers, mice, data storage, uninterruptible
power supplies, and other peripheral devices. However,
RS-232 is hampered by low transmission speed, large
voltage swing, and large standard connectors. In modern
personal computers, USB has displaced RS-232 from most
of its peripheral interface roles. Many computers do not
come equipped with RS-232 ports and must use either an
external USB-to-RS-232 converter or an internal
expansion card with one or more serial ports to connect
to RS-232 peripherals. Nevertheless, RS-232 devices are
still used, especially in industrial machines,
networking equipment and scientific instruments [9].
42
3.7.2 RS-422
RS-422, also known as TIA/EIA-422, is a technical
standard originated by the Electronic Industries
Alliance that specifies electrical characteristics of a
digital signaling circuit. Differential signaling can
transmit data at rates as high as 10 Mbit/s, or may be
sent on cables as long as 1500 meters. Some systems
directly interconnect using RS-422 signals, or RS-422
converters may be used to extend the range of RS-232
connections. The standard only defines signal levels;
other properties of a serial interface, such as
electrical connectors and pin wiring, are set by other
standards. [10]
A common use of RS-422 is for RS-232 extenders. An RS-
232-compatible variant of RS-422 using a mini-DIN-8
connector was widely used on Macintosh hardware until it
43
Figure 9: RS-232 port with a DB-25 connector (female)
(and ADB) was replaced by Universal Serial Bus on the
iMac in 1998.
Broadcast automation systems and post-production linear
editing facilities use RS-422A to remotely control the
players/recorders located in the central apparatus room.
In most cases the Sony 9-pin connection is used, which
makes use of a standard DE-9 connector. This is a de
facto industry standard connector for RS-422 used by
many manufacturers.
3.7.3 RS-423
RS/EIA/TIA-423 is a standard for serial communications.
It defines an unbalanced (single-ended) interface
(similar to RS-232), with a single, unidirectional
sending driver, and allows for up to 10 receivers
44
Figure 10: RS-422 with a DB-9 Connector
(similar to RS-422). It is normally implemented in
integrated circuit technology and can also be employed
for the interchange of serial binary signals between DTE
& DCE. There is no common pin-out for RS-423. The BBC
(British Broadcasting Cooperation) Micro-computer used a
5-pin DIN connector. DEC (Disaster Emergency Committee)
used it extensively with a Modified Modular Jack
connector. This was sometimes called "DEC-423". [11]
3.7.4 RS-485
TIA-485-A, also known as ANSI/TIA/EIA-485, TIA/EIA-485,
EIA-485 or RS-485, is a standard defining the electrical
characteristics of drivers and receivers for use in
balanced digital multipoint systems. The standard is
published by the Telecommunications Industry
Association/Electronic Industries Alliance (TIA/EIA).
Digital communications networks implementing the EIA-485
45
Figure 11: An RS-423 cable with a DB-9 and a DB-25 pin out
standard can be used effectively over long distances and
in electrically noisy environments. Multiple receivers
may be connected to such a network in a linear, multi-
drop configuration. These characteristics make such
networks useful in industrial environments and similar
applications. [12]
RS-485 enables the configuration of inexpensive local
networks and multi-drop communications links. It offers
data transmission speeds of 35 Mbit/s up to 10 m and 100
Kbit/s at 1200 m. Since it uses a differential balanced
line over twisted pair (like RS-422), it can span
relatively large distances (1,200 m). A rule of thumb is
that the speed in bit/s multiplied by the length in
meters should not exceed 108. Thus a 50 meter cable
should not signal faster than 2 Mbit/s. [13] [14]
46
Figure 12: An RS 232 to RS 485 Converter
RS-485 signals are used in a wide range of computer and
automation systems. In a computer system, SCSI-2 and
SCSI-3 may use this specification to implement the
physical layer for data transmission between a
controller and a disk drive. RS-485 is used for low-
speed data communications in commercial aircraft cabins
vehicle bus. It requires minimal wiring, and can share
the wiring among several seats, reducing weight.
RS-485 is used as the physical layer underlying many
standard and proprietary automation protocols used to
implement Industrial Control Systems, including the most
common versions of Modbus and Profibus. These are used
in programmable logic controllers and on factory floors.
Since it is differential, it resists electromagnetic
interference from motors and welding equipment.
In theatre and performance venues RS-485 networks are
used to control lighting and other systems using the
DMX512 protocol.
RS-485 is also used in building automation as the simple
bus wiring and long cable length is ideal for joining
remote devices. It may be used to control video
surveillance systems or to interconnect security control
panels and devices such as access control card readers.47
It can also be used in model railway: controlling the
layout in a network/PC environment, connectors in this
case are 8P8C / RJ45.
Although many applications use RS-485 signal levels; the
speed, format, and protocol of the data transmission is
not specified by RS-485. Interoperability of even
similar devices from different manufacturers is not
assured by compliance with the signal levels alone.
RS-485 does not specify any connector or pin-out.
Circuits may be terminated on screw terminals, D-
subminiature connectors, or other types of connectors.
However, there is a common pin labeling that applies to
all connectors which is; A (inverting pin), B (non-
inverting pin), SC (reference pin). The SC line is the
optional voltage reference connection. This is the
reference potential used by the transceiver to measure
the A and B voltages. The B line is positive (compared
to A) when the line is idle (i.e., data is 1). [15]
3.7.5 USB (Universal Serial Bus)
48
Universal Serial Bus (USB) is an industry standard
developed in the mid-1990s that defines the cables,
connectors and communications protocols used in a bus
for connection, communication, and power supply between
computers and electronic devices. [16]
USB was designed to standardize the connection of
computer peripherals (including keyboards, pointing
devices, digital cameras, printers, portable media
players, disk drives and network adapters) to personal
computers, both to communicate and to supply electric
power. It has become commonplace on other devices, such
as smartphones, PDAs and video game consoles.[17] USB has
effectively replaced a variety of earlier interfaces,
such as serial and parallel ports, as well as separate
power chargers for portable devices.
The designers of this standard are Compaq, DEC, IBM,
Intel, Microsoft, NEC and Nortel. The design of this
standard was in 1996 (19 years ago). The production of
this standard has been from 1997 to present. Previous
standards that superseded the USB are the serial port,
parallel port, game port, Apple Desktop Bus, and PS/2
connector. The length of the cable is between 2–5 meters
(by category), The connectors conventionally have the
49
design specifications of width of 12 mm (A-plug), 8.45
mm (B-plug); 7 mm (mini/micro-USB) and height 4.5 mm (A-
plug), 7.78 mm (B-plug, pre-v3.0); 1.5–3 mm (mini/micro-
USB). Electrical characteristics includes a signal
voltage level of 5 V ± 0.25 V and a maximum current
output of 0.5 – 0.9 Amps, but for charging devices up to
5 A. Also, the USB is specially designed for data
transfer and some of the specifications that facilitate
that capability are the packet data transfer ability, it
also has a bit rate capacity of 1.5/12/450/5,000/10,000
Mbit/s depending on the version.[18]
Pin 1 is for the power supply or Vcc, pin 2 is for
negative data (-) pin 3 is for positive data (+) pin 4
is the ground pin.
3.7.6 Fire Wire (IEEE 1394)50
Figure13: A diagram of a USB showing its pinouts
IEEE 1394 is an interface standard for a serial bus for
high-speed communications and isochronous real-time data
transfer. It was developed in the late 1980s and early
1990s by Apple, who called it FireWire. The 1394
interface is comparable to USB though USB has more
market share.[19] Apple first included FireWire in some of
its 1999 Macintosh models, and most Apple Macintosh
computers manufactured in the years 2000 - 2011 included
FireWire ports. However, in 2011 Apple began replacing
Firewire with the Thunderbolt interface and as of 2014,
FireWire has been replaced by Thunderbolt on new Macs.[20] The 1394 interface is also known by
the brand i.LINK (Sony), and Lynx
(Texas Instruments). IEEE 1394
replaced parallel SCSI in many
applications, because of lower implementation costs and
a simplified, more adaptable cabling system. The 1394
standard also defines a backplane interface, though this
is not as widely used.
Common applications of FireWire include military and
aerospace vehicles for data bus network in those
vehicles. It can also be used for networking but only
for ad-hoc terminals (no routers involved except a hub
is to be used). The reason that makes FireWire useful in51
Figure 14: A FireWire Cable
IIDC (Instrumentation & Industrial Digital Camera) is
the FireWire data format standard for live video, and is
used by Apple's iSight A/V camera. The system was
designed for machine vision systems [check it] but is
also used for other computer vision applications and for
some webcams. It is also used in iPod and iPhone
synchronisation and charging. [21][22]
3.7.7 Ethernet
Ethernet is a family of computer networking technologies
for local area networks (LANs) and metropolitan area
networks (MANs). It was commercially introduced in 1980
and first standardized in 1983 as IEEE 802.3, [23] and has
since been refined to support higher bit rates and
longer link distances. Over time, Ethernet has largely
replaced competing wired LAN technologies such as token
ring, FDDI, and ARCNET. The primary alternative for
contemporary LANs is not a wired standard, but instead a
wireless LAN standardized as IEEE 802.11 and also known
as Wi-Fi.
The major application of Ethernet protocol is the
networking capabilities it possesses. Unlike FireWire
52
this is one uses hubs, repeaters, switches and routers.
It also has a good capacity of 10 Mbit/s to 1Gbit/s.
3.7.8 MIDI
MIDI - Musical Instrument Digital Interface is a
technical standard that describes a protocol, digital
interface and connectors and allows a wide variety of
electronic musical instruments, computers and other
related devices to connect and communicate with one
another. A single MIDI link can carry up to sixteen
channels of information, each of which can be routed to
a separate device.
MIDI carries event messages that specify notation, pitch
and velocity, control signals for parameters such as
volume, vibrato, audio panning, cues, and clock signals
that set and synchronize tempo between multiple devices.
These messages are sent to other devices where they
control sound generation and other features. This data
can also be recorded into a hardware or software device
called a sequencer, which can be used to edit the data
and to play it back at a later time. [24]
53
Figure 15: A typical Ethernetcable
MIDI technology was standardized in 1983 by a panel of
music industry representatives, and is maintained by the
MIDI Manufacturers Association (MMA). All official MIDI
standards are jointly developed and published by the MMA
in Los Angeles, California, US, and for Japan, the MIDI
Committee of the Association of Musical Electronics
Industry (AMEI) in Tokyo.
Common applications of include firstly Instrument
control; MIDI was invented so that musical instruments
could communicate with each other and so that one
instrument can control another. Secondly, it can be used
for composition of musical notes [25].
3.7.9 IIC or I2C- Inter-Integrated Circuit54
Figure 16: The image of a MIDI port and cable respectively starting from left
The I²C bus was developed in 1982; its original purpose
was to provide an easy way to connect a CPU to
peripherals chips in a TV set. Peripheral devices in
embedded
Systems are often connected to the microcontroller as
memory-mapped I/O devices.
One common way to do this is connecting the peripherals
to the microcontroller parallel address and data busses.
This results in lots of wiring on the PCB (printed
circuit board) and additional ‘glue logic’ to decode the
address bus on which all the peripherals are connected.
In order to spare microcontroller pins, additional logic
and make the PCBs simpler – in order words, to lower the
costs – Philips labs in Eindhoven (The Netherlands)
invented the ‘Inter-Integrated Circuit’, IIC or I²C
protocol that only requires two wires for connecting all
the peripheral to a microcontroller. The original
55
Figure 17: A schematic diagram of the IIC
specification defined a bus speed of 100 kbps (kilobits
per second). The specification was reviewed several
times, notably introducing the 400 kbps speed in 1995
and – since 1998, 3.4 Mbps for even faster peripherals.[26]
3.7.10 SPI-Serial Peripheral Interface
The Serial Peripheral Interface (SPI) bus is a
synchronous serial communication interface specification
used for short distance communication, primarily in
embedded systems. The interface was developed by
Motorola and has become a de facto standard. Typical
applications include sensors, Secure Digital cards, and
liquid crystal displays.
SPI devices communicate in full duplex mode using
master-slave architecture with a single master. The
master device originates the frame for reading and
writing. Multiple slave devices are supported through
selection with individual slave select (SS) lines.
Sometimes SPI is called a four-wire serial bus,
contrasting with three-, two-, and one-wire serial
buses. The SPI may be accurately described as a
synchronous serial interface, [27] but it is different
from the Synchronous Serial Interface (SSI) protocol,56
which is also a four-wire synchronous serial
communication protocol, but employs differential
signaling and provides only a single simplex
communication channel.
3.7.11 PCI Express
Peripheral Component Interconnect Express, officially
abbreviated as PCIe, is a high-speed serial computer
expansion bus standard designed to replace the older
PCI, PCI-X, and AGP bus standards. PCIe has numerous
improvements over the older standards, including higher
maximum system bus throughput, lower I/O pin count and
smaller physical footprint, better performance scaling
for bus devices, a more detailed error detection and
reporting mechanism (Advanced Error Reporting, AER[28]),
and native hot-plug functionality. More recent revisions
of the PCIe standard provide hardware support for I/O
virtualization.
57
Figure 18: A Block diagram of theSPI
The PCI Express electrical interface is also used in a
variety of other standards, most notably in ExpressCard
as a laptop expansion card interface, and in SATA
Express as a computer storage interface.
Format specifications are maintained and developed by
the PCI-SIG (PCI Special Interest Group), a group of
more than 900 companies that also maintains the
conventional PCI specifications. PCIe 3.0 is the latest
standard for expansion cards that is in production and
available on mainstream personal computers. [28][29]
58
Figure 19: Image of a board
SECTION FOUR
4.1 THE PROCEDURE FOR SERIAL COMMUNICATION IN ARDUINOIN CREATING SYSTEMS
The Arduino Uno has a number of facilities for
communicating with a computer, another Arduino, or other
microcontrollers. The ATmega328 provides UART (universal
asynchronous receiver / transmitter) TTL (Transistor-to-
Transistor Logic) 5 V serial communication, which is
available on digital pins 0 (RX) and 1 (TX). An
ATmega8U2 on the board channels this serial
communication over USB and appears as a virtual com port
to software on the computer. The '8U2 firmware uses the
standard USB COM drivers, and no external driver is59
needed. Arduino has two additional standards of serial
communication which includes I2C and the SPI. These two
standards are made available for the Arduino to be able
to communicate with other Arduinos and ICs as the user
may want to use them.
4.2 UART
A UART, universal asynchronous receiver / transmitter is
responsible for performing the main task in serial
communications with computers.
60
Figure 20: A Block Diagram of the USB to UART Conversion
The UART performs serial-to-parallel conversions on data
received from a peripheral device and parallel-to-serial
conversion on data received from the CPU. The CPU can
read the UART status at any time. The UART includes
control capability and a processor interrupt system that
can be tailored to minimize software management of the
communications link.
The combination of the name UART TTL is actually the
combination of the type serial communication used and
the voltage level that is being implemented for
communication.
4.3 Applications of Serial Communication in Arduino
61
Figure 21: A Block Diagram of the UART standard.
Serial communication in Arduino has a vast number of
applications which includes
1.Modem Applications,
2.Data Transfer between sensors and other ICs,
3.Interfacing with modules, other Arduinos, sensors
and PCs,
4.Processing with PCs,
5.Debugging the program written on the micro-
controller,
4.4 Examples of the utilisation of serialcommunication in Arduino
4.4.1 Sending Debug Information from Arduino to Computer
In the case where a user chooses to send text and
data, so that it will be displayed on a PC so that
whatever goes in and out of the Arduino, could be
monitored. This can be made possible by using the
Arduino IDE, to type the appropriate codes that will
activate that functionality.
62
4.4.2 Sending Formatted Text and Numeric Data from Arduino
In a situation where a user has the intention of
sending a normal text, such task is not difficult when
compared to sending a formatted text and numeric data.
Arduino uses various data types and therefore can be
able to know the data the user expects it to print
out. In this scenario it is possible to say here that
serial communication can be used to send a vast amount
of data irrespective of the type of data it sends. As
usual a code is sent to the Arduino for the function
to be activated.
4.4.3 Receiving serial Data in Arduino
If a user needs to know how the Arduino react to
commands or data sent from a computer for the sake of
63
Figure 22: A real-time Arduino to PCcommunication
debugging the circuit, this can also be achieved with
the help of serial communication.
In achieving this it is pertinent to know that it is
easy to receive 8-bit values (chars and bytes),
because the functions used in the programming uses 8-
bit values. The process that actually makes this
possible is the conversion of ASCII characters to
numerical values and vice-versa. There is a code that
activates this ability. [30]
4.4.4 Arduino to Arduino communication
It is possible to chain Arduinos together in such a
way as to get communication between the two. Having
Arduino-Arduino communication can be useful for many
projects, such as having one Arduino to run motors and
having another sense the surroundings and then relay
commands to the other Arduino. This can be done in
several methods, using I2C and Serial Peripheral
Interface, to list a few.
64
SECTION FIVE: CONCLUSION
Finally, this paper has been able to give attention to a
process that has facilitated the development of
electronic circuits through the discussion on Serial
Communication, by doing so the subject on Serial
Communication has not been neglected and should remain a
constant field of research in order to create a better
standard that will improve its current status.
Could there still be a lot more that can be discovered
about serial communication in the field of computing?
How can this actually improve the applications of
embedded electronics? How can this underlying process
improve the way many devices communicate in order to
achieve complex systems and still be efficient?
These are questions that Computer Engineers are to keep
asking themselves, so that we can continue to maximize
the process of serial communication.
65
Figure 23: Chains of Arduinos connected together through serial communication
This paper has been able to act as an eye opener to this
hidden but vital process and calls for more hands to be
on deck as researchers and developers improve on serial
communication. “Shoot for the moon. Even if you miss,
you'll land among the stars.”- Norman Vincent Peale.
There is need to aim to reach the best in the area of
Serial Communication, even if it is not reached,
something close to it can be achieved and the benefits
will be enjoyed by all.
REFERENCES
1.Encarta, M. (2009). Serial Communication. In
Computer.
2.Learn.sparkfun.com,. (2015). Serial Communication -
learn.sparkfun.com. Retrieved 20 May 2015, from
https://learn.sparkfun.com/tutorials/serial-66
communication
3.En.wikibooks.org,. (2015). History of Serial
Communications - Wikibooks, open books for an open
world. Retrieved 26 May 2015, from
http://en.wikibooks.org/wiki/History_of_Serial_Commu
nications
4.Axelson, J. (2007). Serial port complete. Madison,
Wis.: Lakeview Research.
5.Arduino.cc,. (2015). Arduino - Introduction.
Retrieved 28 May 2015, from
http://www.arduino.cc/en/guide/introduction
6.Arduino Datasheet. (2005) (1st ed., pp. 1-8).
7.Eeherald.com,. (2015). Embedded Systems Course -
serial communications basics. Retrieved 21 May 2015,
from
http://www.eeherald.com/section/design-guide/esmod7.
html
8. EIA standard RS-232-C: Interface between Data
Terminal Equipment and Data Communication Equipment
Employing Serial Binary Data Interchange.
Washington: Electronic Industries Association.
Engineering Dept. 1969. OCLC 38637094
9.Arcelect.com,. (2015). RS232 Tutorial on Data
Interface and cables. Retrieved 28 May 2015, from
67
http://www.arcelect.com/rs232.htm
10. TIA/EIA STANDARD, Electrical Characteristics of
Balanced Voltage Digital Interface Circuits,
TIA/EIA-422-B, May 1994
11. 11. Instruments, N. (2013) (2nd ed., pp. 1-10).
Texas Instruments. Retrieved from
http://www.ti.com/lit/an/snla044b/snla044b.pdf
12. Wikipedia,. (2015). RS-485. Retrieved 28 May
2015, from http://en.wikipedia.org/wiki/RS-485
13. Manny, S., Jing, Z., Kevin, Z., Clark, K., &
Thomas, K. (2010). RS-422 and RS-485 Standards
Overview and System Configurations, Application
Report (2nd ed.). Texas Instruments.
14. Bb-elec.com,. (2011). Polarities for
Differential Pair Signals (RS-422 and RS-485) - B&B
Electronics. Retrieved 28 May 2015, from
http://www.bb-elec.com/Learning-Center/All-White-
Papers/Serial/%95-Polarities-for-Differential-Pair-
Signals-(RS-422.aspx?
utm_source=redirect&utm_medium=SiteTransition&utm_co
ntent=bbeurope
15. . Simson.net,. (1999). Boston Globe Online /
Business / USB deserves more support. Retrieved 28
68
May 2015, from
http://simson.net/clips/1999/99.Globe.05-
20.USB_deserves_more_support+.shtml
16. Bakalar, J. (2009). Sony PlayStation 3 review -
CNET. CNET. Retrieved 28 May 2015, from
http://reviews.cnet.com/consoles/sony-playstation-3-
60gb/4505-10109_7-31355103.html
17. Wikipedia,. (2015). USB. Retrieved 24 May 2015,
from http://en.wikipedia.org/wiki/USB
18. Yaghmour, K. (2003). Building embedded Linux
systems. Beijing: O'Reilly.
19. Richard Mourn, D. (2013). IEEE-1394 and AS5643
bring deterministic networking to high reliability
Mil-Aero designs. Embedded. Retrieved 28 May 2015,
from
http://www.embedded.com/design/connectivity/4406396/
2/IEEE-1394-and-AS5643-brings-deterministic-
networking-to-high-reliability-Mil-Aero-designs-
20. Standards.sae.org,. (2015). AS5643: IEEE-1394b
Interface Requirements for Military and Aerospace
Vehicle Applications - SAE International. Retrieved
28 May 2015, from http://standards.sae.org/as5643/
21. Swift, A. (1997). A brief introduction to MIDI.
Doc.ic.ac.uk. Retrieved 28 May 2015, from
69
http://www.doc.ic.ac.uk/~nd/surprise_97/journal/vol1
/aps2/
22. Huber, D. (1999). The MIDI manual. Boston: Focal
Press.
23. Web.archive.org,. (2015). What is a DAW -
Digital audio workstation - home recording guide.
Retrieved 28 May 2015, from
http://web.archive.org/web/20120110031303/http://hom
erecording.guidento.com/daw.htm
24. Web.archive.org,. (2015). What is a DAW -
Digital audio workstation - home recording guide.
Retrieved 28 May 2015, from
http://web.archive.org/web/20120110031303/http://hom
erecording.guidento.com/daw.htm
25. Wikipedia,. (2015). Serial Peripheral Interface
Bus. Retrieved 29 May 2015, from
http://en.wikipedia.org/wiki/Serial_Peripheral_Inter
face_Bus
26. Zhang, Y., & T. Long, N. (2007). Proceedings of
the Linux Symposium (1st ed.). Ottawa, Ontario.
Retrieved from
http://ols.fedoraproject.org/OLS/Reprints-2007/zhang
-Reprint.pdf
27. Pcisig.com,. PCI-SIG - PCI Express Base 3.0
70
Specification. Retrieved 25 May 2015, from
https://www.pcisig.com/specifications/pciexpress/bas
e3/
28. Mindshare.com,. MindShare - PCI Express
(Training). Retrieved 25 May 2015, from
http://www.mindshare.com/learn/?section=132B11E3
29. Margolis, M. (2012). Arduino cookbook.
Sebastopol, Calif.: O'Reilly.
30. Reddy, N. (2013). Oscilloscope/Logic Analyser
using Arduino (1st ed.). Retrieved from
http://grietinfo.in/projects/MAIN/EEE2013/cd-5-
documentation.pdf
71