71
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

A Seminar Paper on Serial Communication in Arduino

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