48
1 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

A Paper on Serial Communication

Embed Size (px)

DESCRIPTION

Arduino, Serial Communication,UART

Citation preview

Page 1: A Paper on Serial Communication

1

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

Page 2: A Paper on Serial Communication

2

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.

Page 3: A Paper on Serial Communication

3

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. 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.

Page 4: A Paper on Serial Communication

4

TABLE OF CONTENTS

CERTIFICATION.....................................................................................1DEDICATION ...........................................................................................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.4 Communication .........................................................................................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 Parallel Communication ................. 18

3.3 Clock skew............................................................................................ 20

3.4 Asynchronous and Synchronous Data Transmission ........................ 21

Page 5: A Paper on Serial Communication

5

3.4.1 The advantages and disadvantages of synchronous over asynchronousserial 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.1 Baud rate ...................................................................................................26

3.6.2 Data bits ....................................................................................................27

3.6.3 Start and Stop (Synchronisation) bits: .....................................................27

3.6.4 Parity .............................................................................................................28

3.7 Examples of Serial Communication Standards............................... 29

3.7.1 RS-232........................................................................................................29

3.7.2 RS-422................................................................................................ 30

3.7.3 RS-423................................................................................................ 31

3.7.4 RS-485................................................................................................ 31

3.7.5 USB (Universal Serial Bus)............................................................... 33

3.7.6 Fire Wire (IEEE 1394)..................................................................................35

3.7.7 Ethernet.........................................................................................................35

3.7.8 MIDI...........................................................................................................36

3.7.9 IIC or I2C- Inter-Integrated Circuit ............................................................37

3.7.10 SPI-Serial Peripheral Interface..................................................................38

3.7.11 PCI Express.................................................................................................39

SECTION FOUR .....................................................................................41

4.1 THE PROCEDURE FOR SERIAL COMMUNICATION INARDUINO IN CREATING SYSTEMS ...................................................... 41

4.2 UART.................................................................................................... 42

Page 6: A Paper on Serial Communication

6

4.3 Applications of Serial Communication in Arduino .............................. 42

4.4 Examples of the utilisation of serial communication in Arduino... 43

4.4.1 Sending Debug Information from Arduino to Computer .......................43

4.4.2 Sending 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

Page 7: A Paper on Serial Communication

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.

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 the 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

Page 8: A Paper on Serial Communication

8

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 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.

Page 9: A Paper on Serial Communication

9

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.

Page 10: A Paper on Serial Communication

10

SECTION TWO: AN OVERVIEW ON ARDUINO

2.1 IntroductionArduino 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 standard

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

Page 11: A Paper on Serial Communication

11

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

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 ATmega328

Operating Voltage 5V

Input Voltage (recommended) 7-12V

Input Voltage (limits) 6-20V

Digital I/O Pins 14 (of which 6 provide PWM output)

Analog Input Pins 6

DC Current per I/O Pin 40 mA

DC Current for 3.3V Pin 50 mA

SRAM 2 KB

EEPROM 1 KB

Clock Speed 16 MHz

Table 1: Arduino Uno Specifications

Page 12: A Paper on Serial Communication

12

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) or 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:

Page 13: A Paper on Serial Communication

13

A) VIN

The 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 V

The regulated power supply used to power the microcontroller and other components

on the board. This 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 the voltage 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 20-50 kOhms. In addition, some pins have specialized

functions:

Page 14: A Paper on Serial Communication

14

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:

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

Page 15: A Paper on Serial Communication

15

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 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.

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).

Page 16: A Paper on Serial Communication

16

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 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

Page 17: A Paper on Serial Communication

17

applied to the USB port, the fuse will automatically break the connection until the

short or overload is removed.

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.

Page 18: A Paper on Serial Communication

18

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.

3.2 Differences between Serial and Parallel Communication

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

Page 19: A Paper on Serial Communication

19

meters between any two devices; serial, however, can 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 hence occupies less space.

b) "Cross talk" is less of an issue, because there are fewer conductors compared tothat of parallel communication cables.

c) Many ICs and peripheral devices have serial interfaces.

d) Clock skew between different channels is not an issue.

e) No need of Serialiser/Deserialiser (SerDes).

f) Cheaper to implement.

Figure 2: Parallel Communication

Figure 3: Serial Communication

Page 20: A Paper on Serial Communication

20

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,

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.

Page 21: A Paper on Serial Communication

21

3.4 Asynchronous and Synchronous Data Transmission

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 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.

Page 22: A Paper on Serial Communication

22

Figure 4: (1) Synchronous and (2) Asynchronous serial Communication.

Page 23: A Paper on Serial Communication

23

3.4.1 The advantages and disadvantages of synchronous over asynchronousserial communication

The one of the crucial advantages of synchronous data transfer is the lower

overhead and thus, 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

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

Page 24: A Paper on Serial Communication

24

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 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.

Page 25: A Paper on Serial Communication

25

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

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.

In the following section the parameters that are common with serial communication

will be explained.

Figure 5: Diagram of a Character Frame

Page 26: A Paper on Serial Communication

26

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 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.

…………………… (1)

Page 27: A Paper on Serial Communication

27

2) When we use a baud rate of 2400, you use a modulation technique called phase

modulation that transmits four bits per baud. So,

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 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

Figure 6: An Illustration of Baud Rate

Page 28: A Paper on Serial Communication

28

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

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.

Figure 7: A Frame with the start and stop shown

Figure 8: Parity Bits

Page 29: A Paper on Serial Communication

29

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 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].

Figure 9: RS-232 port with a DB-25 connector (female)

Page 30: A Paper on Serial Communication

30

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 (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.

Figure 10: RS-422 with a DB-9 Connector

Page 31: A Paper on Serial Communication

31

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 (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 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]

Figure 11: An RS-423 cable with a DB-9 and a DB-25 pin out

Page 32: A Paper on Serial Communication

32

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]

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.

Figure 12: An RS 232 to RS 485 Converter

Page 33: A Paper on Serial Communication

33

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. 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)

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

Page 34: A Paper on Serial Communication

34

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 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.

Figure13: A diagram of a USB showing its pinouts

Page 35: A Paper on Serial Communication

35

3.7.6 Fire Wire (IEEE 1394)

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 in 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

Figure 14: A FireWire Cable

Page 36: A Paper on Serial Communication

36

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 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]

Figure 15: A typical Ethernet cable

Page 37: A Paper on Serial Communication

37

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 Circuit

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

Figure 16: The image of a MIDI port and cable respectively starting from left

Page 38: A Paper on Serial Communication

38

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 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,

Figure 17: A schematic diagram of the IIC

Page 39: A Paper on Serial Communication

39

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.

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]

Figure 18: A Block diagram of the SPI

Page 40: A Paper on Serial Communication

40

Figure 19: Image of a board utilizing PCI Express

Page 41: A Paper on Serial Communication

41

SECTION FOUR

4.1 THE PROCEDURE FOR SERIAL COMMUNICATION INARDUINO IN 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 is 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.

Figure 20: A Block Diagram of the USB to UART Conversion

Page 42: A Paper on Serial Communication

42

4.2 UART

A UART, universal asynchronous receiver / transmitter is responsible for performing

the main task in serial communications with computers.

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

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,

Figure 21: A Block Diagram of the UART standard.

Page 43: A Paper on Serial Communication

43

5. Debugging the program written on the micro-controller,

4.4 Examples of the utilisation of serial communication in Arduino

4.4.1 Sending Debug Information from Arduino to ComputerIn 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.

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.

Figure 22: A real-time Arduino to PC communication

Page 44: A Paper on Serial Communication

44

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 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.

Figure 23: Chains of Arduinos connected together through serialcommunication

Page 45: A Paper on Serial Communication

45

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.

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.

Page 46: A Paper on Serial Communication

46

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-

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_Communications

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 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

Page 47: A Paper on Serial Communication

47

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_content=b

beurope

15.. Simson.net,. (1999). Boston Globe Online / Business / USB deserves more

support. Retrieved 28 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

Page 48: A Paper on Serial Communication

48

May 2015, from 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://homerecording.guidento.c

om/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://homerecording.guidento.c

om/daw.htm

25.Wikipedia,. (2015). Serial Peripheral Interface Bus. Retrieved 29 May 2015,

from http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_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 Specification. Retrieved 25 May

2015, from https://www.pcisig.com/specifications/pciexpress/base3/

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