serial input/output - computer science and engineeringcs2121/lecturenotes/08s2/week13new... ·...

76
S1, 2006 COMP9032 Week13 1 Serial Input/Output Lecturer: Annie Guo

Upload: others

Post on 05-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 1

Serial Input/Output

Lecturer: Annie Guo

Page 2: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 2

Lecture overview

• Serial communication

– Concepts

– Standards

• USART in AVR

Page 3: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 3

Why Serial I/O?

• Problems with Parallel I/O:

– Needs a wire for each bit.

– When the source and destination are more than a

few feet the parallel cable can be bulky and

expensive.

– Susceptible to reflections and induced noises for

long distance communication.

• Serial I/O overcomes these problems.

Page 4: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 4

Transmit Data

Buffer

Parallel In/Serial

Out Shift Register

Data From

Source

Received Data

Buffer

Serial In/Parallel

Out Shift Register

Data To Destination

Serial Data Tclock Rclock

TRANSMITTER RECEIVER

n n

Serial Communication System

Structure

Page 5: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 5

Serial Communication System

Structure (cont.)

• At the communication source:

– The parallel interface transfers data from the

source to the transmit data buffer.

– The data is loaded into the Parallel In Serial Out

(PISO) register and Tclock shifts the data bits out

from the shift register to the receiver.

Page 6: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 6

Serial Communication System

Structure (cont.)

• At the communication destination:

– Rclock shifts each bit received into the Serial In

Parallel Out (SIPO) register.

– After all data bits have been shifted, they are

transferred to the received data buffer.

– The data in the received data buffer can be read

by an input operation via the parallel interface.

Page 7: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 7

Serial Communication

• There are two basic types of serial

communications

– synchronous

– asynchronous

Page 8: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 8

Synchronous VS Asynchronous

• Synchronous

– Transmitter and receiver are synchronized

• Need extra hardware for clock synchronization

– Having faster data transfer rate

• Asynchronous

– Transmitter and receiver use different clocks. No

clock synchronization is required.

– Used in many applications such as keyboards,

mice, modems

– The rest of this lecture focuses on Asynchronous

communication

Page 9: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 9

UART

• The device that implements both transmitter and

receiver in a single integrated circuit is called a UART

(Universal Asynchronous Receiver/Transmitter).

• UART uses least significant first order

– The least significant bit of data is transferred first

• Data are transmitted asynchronously.

– Clocks on both sides are not synchronized

– But receivers have a way to synchronise the data receiving

operation with data transmission operation

• UART is the basis for most serial communication

hardware.

Page 10: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 10

UART Structure

Transmitter

Receiver

UART

Receiver

Transmitter

UART

Tclock1

Rclock1 Tclock2

Rclock2

Data Bus Data Bus

Page 11: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 11

UART Data Formats

• Before transmission, data should be encoded

– Many encoding schemes, such as ASCII

• Each encoded data is encapsulated with two bits

– Start bit and stop bit

• Mark and space: the logic one and zero levels are

called mark and space.

– When the transmitter is not sending anything, it holds the

line at mark level, also called idle level.

Least Significant

Bit

Optional

Parity Bit

Stop

Bit

Start

Bit

Data Bits

Mark

Space

Page 12: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 12

UART Data Formats (cont.)

• Typical bits in data transmission: – Start bit: When the transmitter has data to send, it first

changes the line from the mark to the space level for one bit time. This synchronises the receiver with transmitter. When the receiver detects the start bit, it knows to start clocking in the serial data bits.

– Data bits: representing a data, such as a character

– Parity bit: used to detect errors in the data

• For odd parity: the bit makes the total number of 1s in the data odd

• For even parity: the bit makes the total number of 1s in the data even.

– Stop bit: added at the end of data bits. It gives one bit-time between successive data. Some systems require more than one stop bit.

Page 13: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 13

Data Transmission Rate

• The rate at which bits are transmitted is called

baud rate.

• It is given in bits per second

• Standard data rates – Baud:

110, 150, 300, 600, 900, 1200, 2400, 4800, 9600,

14400, 19200, 38400, 57800

Page 14: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 14

Communication System Types

• Three ways that data can be sent in serial

communication system:

– Simplex system

– Full-duplex (FDX) system

– Half-duplex (HDX) system

Page 15: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 15

Simplex System

– Data are sent in one direction only

• For example, computer to a serial printer.

– Simple

• If the computer does not send data faster than the printer

can accept it, no handshaking signals are required.

– Two signal wires are needed for this system.

Computer Printer

Page 16: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 16

Full-Duplex (FDX) System

– Data are transmitted in two directions.

– It is called four-wire system, although only two

signal wires and a common ground are sufficient.

Terminal Computer

Page 17: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 17

Half-Duplex (HDX) System

– Data are transmitted in two directions with only

one pair of signal lines.

– Additional hardware and handshaking signals

must be added to an HDX system.

Computer Computer

Page 18: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 18

DTE & DCE

• There are two typical devices in

communications

• DCE

– Data Communications Equipment

• Provides a path for communication

• DTE

– Data Terminal Equipment

• Connects to a communication line

Page 19: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 19

DTE & DCE – example

• A communication system for internet access

– PC and Internet provider server are DTEs

– Two modems are DCEs

modem PC modem Provider

server

phone line

Page 20: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 20

Modem

• A modulator/demodulator

– It converts logic levels into tones to be sent over a

telephone line.

– At the other end of the telephone line, a

demodulator converts the tones back to logic

levels.

Page 21: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 21

Standards for the Serial I/O

Interface • Interface standards are needed to allow

different manufacturers’ equipment to be

interconnected

• Must define the following elements:

– Handshaking signals

– Direction of data flow

– Types of communication devices.

– Connectors and interface mechanical

considerations.

– Electrical signal levels.

Page 22: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 22

Standards for the Serial I/O

Interface (cont.) • Popular standards include RS-232-C, RS-

422, RS-423 and RS-485. – RS-232-C standard is used in most serial

interface.

– If the signals must be transmitted farther than 50 feet or greater than 20 Kbits/second, another electrical interface standard such as RS-422, RS-423 or RS-485 should be chosen.

– For RS-422, RS-423 and RS-485, handshaking, direction of signal flow, and the types of communication devices are based on the RS-232-C standard.

Page 23: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 23

Two RS232-C Connectors

DE9 pin assignments

DB25 pin assignments

Page 24: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 24

DE9 DB25 Signal Purpose

1 PG Protective ground: this is actually the shield

in a shielded cable. It is designed to be

connected to the equipment frame and may

be connected to external grounds.

3 2 TxD Transmitted data: Sourced by DTE and

received by DCE. Data terminal equipment

cannot send unless RTS, CTS, DSR and

DTR are asserted.

2 3 RxD Received data: Received by DTE, sourced

by DCE.

7 4 RTS Request to send: Sourced by DTE, received

by DCE. RTS is asserted by the DTE when

it wants to send data. The DCE responds by

asserting CTS.

RS-232-C Signal Definitions

Page 25: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 25

DE9 DB25 Signal Purpose

8 5 CTS Clear to send: Sourced by DCE, received

by DTE. CTS must be asserted before the

DTE can transmit data.

6 6 DSR Data set ready: Sourced by DCE and

received by DTE. Indicates that the DCE

has made a connection on the telephone

line and is ready to receive data from the

terminal. The DTE must see this asserted

before it can transmit data.

5 7 SG Signal ground: Ground reference for this

signal is separate from pin 1, protective

ground.

RS-232-C Signal Definitions (cont.)

Page 26: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 26

DE9 DB25 Signal Purpose

1 8 DCD Data carrier detect: Sourced by DCE,

received by DTE. Indicates that a DCE has

detected the carrier on the telephone line.

Originally it was used in half-duplex

systems but can be used in full-duplex

systems, too.

4 20 DTR

9 22 RI Ring indicator: Sourced by DCE and

received by DTE. Indicates that a ringing

signal is detected.

Data terminal ready: Sourced by DTE and

received by DCE. Indicates that DTE is

ready to send or receive data.

RS-232-C Signal Definitions (cont.)

Page 27: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 27

RS-232-C Interconnections

• When two serial ports are connected, the data rate,

the number of data bits, whether parity is used, the

type of parity, and the number of stop bits must be

set properly and identically on each UART.

• Proper cables must be used. There are four kinds of

cables from which to choose, depending on the types

of devices to be interconnected.

– Full DTE – DCE cable

– Minimal DTE – DCE cable

– DTE – DTE null modem cable

– Minimal null modem cable

Page 28: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 28

TxD 3 2 2 3 TxD

RxD 2 3 3 2 RxD

SG 5 7 7 5 SG

RTS 7 4 4 7 RTS

CTS 8 5 5 8 CTS

DCD 1 8 8 1 DCD

DSR 6 6 6 6 DSR

DTR 4 20 20 4 DTR

DTE DTE DCE DCE

DE9 DB25 DB25 DE9

Full DTE – DCE cable

RS-232-C Interconnections (cont.)

Page 29: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 29

TxD 3 2 2 3 TxD

RxD 2 3 3 2 RxD

SG 5 7 7 5 SG

RTS 7 4 4 7 RTS

CTS 8 5 5 8 CTS

DCD 1 8 8 1 DCD

DSR 6 6 6 6 DSR

DTR 4 20 20 4 DTR

DTE DTE DCE DCE

DE9 DB25 DB25 DE9

Minimal DTE-DCE cable

RS-232-C Interconnections (cont.)

Page 30: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 30

TxD 3 2 2 3 TxD

RxD 2 3 3 2 RxD

SG 5 7 7 5 SG

RTS 7 4 4 7 RTS

CTS 8 5 5 8 CTS

DCD 1 8 8 1 DCD

DSR 6 6 6 6 DSR

DTR 4 20 20 4 DTR

DTE DTE DTE DTE

DE9 DB25 DB25 DE9

DTE – DTE null modem cable

RS-232-C Interconnections (cont.)

Page 31: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 31

TxD 3 2 2 3 TxD

RxD 2 3 3 2 RxD

SG 5 7 7 5 SG

RTS 7 4 4 7 RTS

CTS 8 5 5 8 CTS

DCD 1 8 8 1 DCD

DSR 6 6 6 6 DSR

DTR 4 20 20 4 DTR

DTE DTE DTE DTE

DE9 DB25 DB25 DE9

Minimal null modem cable

RS-232-C Interconnections (cont.)

Page 32: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 32

RS-232-C Logic levels:

Mark -25 to –3 volts

Space +25 to +3 volts

D R

RS-232-C

Logic levels TTL Logic

levels

TTL Logic

levels

RS-232-C Interface

Page 33: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 33

RS-423 Standard

• Also a single ended system.

• Allows longer distance and higher data rates than

RS-232-C.

• Allows a driver to broadcast data to 10 receivers.

D R

R

Up to 10

receivers

RS-423 Interface

Page 34: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 34

RS-422 Standard

• RS-422 line drivers and receivers operates

with differential amplifier.

– These drivers eliminate much of the common-

mode noise experienced with long transmission

lines, thus allowing the longer distances and

higher data rates.

D R

R

Up to 10

receivers

RS-422 Interface

Page 35: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 35

RS-485 Standard

• Similar to RS-422 in that it uses differential line

drivers and receivers.

• Unlike RS-422, RS-485 provides for multiple drivers

and receivers in a bussed environment.

– Up to 32 drivers/receivers pairs can be used together.

D R

R

Up to 32

receivers

RS-485 Interface

D

Up to 32

drivers

Page 36: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

USB

• http://www.jaycar.com.au/images_uploaded/u

sbbus.pdf

S1, 2006 COMP9032 Week13 36

Page 37: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

In the latest PCs, many of the peripherals such as thekeyboard, mouse, scanners, printers, modem and evenexternal CD-ROM drives and CD-writers connect to thecomputer itself via a USB cable � either directly or viaa �hub� expander unit. Here�s a brief introduction to theUniversal Serial Bus or USB, which was developedexpressly for this job.

As personal computers became more and more powerful and began to be used to handle photographicimages, audio, video and other �bulky� data, it becameevident that existing communications buses were notgoing to be good enough to carry the data back andforth between the computers and their growing array ofperipherals � especially as users wanted the data to bemoved around faster, rather than more slowly. So agroup of leading computer and telecom firms includingIBM, Intel, Microsoft, Compaq, Digital Equipment, NECand Northern Telecom got together and developed USB.

The USB is a medium-speed serial data bus designedto carry relatively large amounts of data over relativelyshort cables: up to about five metres long. It can support data rates of up to 12Mb/s (megabits per second), which is fast enough for most PC peripheralssuch as scanners, printers, keyboards, mice, joysticks,graphics tablets, low-res digital cameras, modems, digitalspeakers, low speed CD-ROM and CD-writer drives,external Zip disc drives and so on.

The USB is an addressible bus system, with a seven-bitaddress code so it can support up to 127 differentdevices or �nodes� at once (the �all zeroes� code is not avalid address). However it can have only one �host�: thePC itself. So a PC with its peripherals connected via theUSB forms a �star� local area network (LAN).

On the other hand any device connected to the USBcan have a number of other nodes connected to it indaisy-chain fashion, so it can also form the �hub� for amini-star subnetwork. Similarly you can have a device

which purely functions as a hub for other node devices,with no separate function of its own. This expansion viahubs is because the USB supports a tiered star topology,as shown in Fig.1. Each USB hub acts as a kind of �trafficcop� for its part of the network, routing data from thehost to its correct address and preventing �bus contention� clashes between devices trying to send dataat the same time.

On a USB hub device, the single port used to connectto the host PC � either directly or via another hub �is known as the �upstream� port, while the ports usedfor connecting other devices to the USB are known asthe �downstream� ports. This is illustrated in Fig.2.

USB hubs work �transparently� as far as the host PCand its operating system are concerned. Most hubs provide either four or seven downstream ports, or lessif they already include a USB device of their own.

Another important feature of the USB is that it�sdesigned to allow �hot swapping�: devices can be pluggedinto and unplugged from the bus without having to turnthe power off and on again, re-boot the PC or evenmanually start a driver program. A new device can simply be connected to the USB, and the PC�s operatingsystem should recognise it and automatically set up thenecessary driver to service it. Windows 98 and laterversions of Windows 95 do this, as do the latestMacintosh operating systems.

Power and dataUSB cables consist of two twisted pairs of wires, one

pair used to carry the bidirectional serial data and theother pair 5V DC power. This makes it possible for low-powered peripherals such as a mouse, joystick ormodem to be powered directly from the USB � orstrictly from the host PC (or the nearest hub) upstream,via the USB.

Most modern PCs have two USB ports, and eachcan provide up to 500mA of 5V DC power for bus-powered peripherals. Individual peripheral devices(including hubs) can draw a maximum of 100mAfrom their upstream USB port, so if they requireless than this figure for operation they can be buspowered. If they need more, they have to use theirown power supply such as a plug-pack adaptor. Hubsshould be able to supply up to 500mA at 5V from

Electus Distribution Reference Data Sheet: USBBUS.PDF (1)

Fig.1: The USB is a medium speed serial bus used totransfer data between a PC and its peripherals. Ituses a �tiered star� configuration, with expansion viahubs (either separate, or in USB devices).

The USB or Universal Serial Bus

Fig.2: The port on a USB device or hub whichconnects to the PC host (either directly or viaanother hub) is known as the �upstream� port,while hub ports which connect to additionalUSB devices are �downstream� ports.Downstream ports use Type A sockets, whileupstream ports use Type B sockets.

Page 38: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

each downstream port, if they�re not bus powered.Serial data is sent along the USB in differential or

�push-pull� mode, with opposite polarities on the twosignal lines. This improves the signal-to-noise ratio(SNR), by doubling the effective signal amplitude andalso allowing the cancellation of any common-modenoise induced into the cable. The data is sent in non-return-to-zero (NRTZ) format, with signal levels of3.3V peak (i.e., 6.6V peak differential).

USB cables use two different types of connector:�Type A� plugs for the upstream end, and �Type B� plugsfor the downstream end. Hence the USB ports of PCsare provided with matching Type A sockets, as are the

downstream ports of hubs, while the upstream ports ofUSB devices (including hubs) have Type B sockets. TypeA plugs and sockets are flat in shape and have the fourconnections in line, while Type B plugs and sockets aremuch squarer in shape and have two connections oneither side of the centre spigot. (Fig.3)

Both types of connector are polarised so they cannotbe inserted the wrong way around. Fig.3 shows the pinconnections for both type of connector, with socketsshown and viewed from the front.

Note that although USB cables having a Type A plug ateach end are available, they should never be used toconnect two PCs together, via their USB ports. This isbecause a USB network can only have one host, andboth would try to claim that role. In any case, the cablewould also short their 5V power rails together, whichcould cause a damaging current to flow. USB is notdesigned for direct data transfer between PCs.

All normal USB connections should be made using

cables with a Type A plug at one end and a Type B plugat the other, although extension cables with a Type Aplug at one end and a Type A socket at the other canalso be used, providing the total extended length of acable doesn�t exceed 5m.

By the way, USB cables are usually easy to identify asthe plugs have a distinctive symbol moulded into them� see Fig.4.

Data formatsUSB data transfer is essentially in the form of

�packets� of data, sent back and forth between the hostand peripheral devices. However because USB isdesigned to handle many different types of data, it canuse four different data formats as appropriate.

One of the two main formats is bulk asynchronousmode, which is used for transferring data that isn�t timecritical. This is the format used to transmit data from ascanner or digital scanner for example, or to a printer.The packets can be interleaved on the USB with othersbeing sent to or from other devices.

The other main format is isochronous mode, used totransfer data that iiss time critical � such as audio datato digital speakers, or to/from a modem. These packetsmust not be delayed by those from other devices.

The two other data formats are interrupt format,used by devices to request servicing from the PC/host,and control format, used by the PC/host to send tokenpackets to control bus operation, and by all devices tosend handshake packets to indicate whether the datathey have just just received was OK (�ACK�) or haderrors (�NAK�).

Some of the data formats are illustrated in Fig.5.Note that all data packets begin with a �sync� byte(01hex), used to synchronise the PLL (phase-lockedloop) in the receiving device�s USB controller. This isfollowed by the packet identifier (PID), containing afour-bit nibble (sent in both normal and inverted form)which indicates the type of data and the direction it�sgoing in (i.e., to or from the host). Token packets thenhave the 7-bit address of the destination device and a4-bit �end point� field to indicate which of that device�sregisters it�s to be sent to.On the other hand data packets have a data field of up

to 1023 bytes of data following the PID field, while�Start of Frame� (SOF) packets have an 11-bit frameidentifier instead and handshake packets have no otherfield. Most packets end with a cyclic redundancy check(CRC) field of either five or 16 bits, for error checking,except handshake packets which rely on the redundancyin the PID field. All USB data is sent serially, of course,and least-significant-bit (LSB) first.

Luckily all of the fine details of USB handshaking anddata transfer are looked after by the driver software inthe PC and the firmware built into the USB controllerinside each USB peripheral device and hub � so normally all you have to do is hook it all together andperhaps supply a driver for a new device, when the PC�soperating system can�t find it. Most USB peripheralscome with their driver on a floppy disk or CD-ROM.

(Copyright © Electus Distribution, 2001)

Electus Distribution Reference Data Sheet: USBBUS.PDF (2)

Fig.3: Pin connections for the two differenttypes of USB socket, as viewed from the front.

Fig.4: Most USBplugs have thisdistinctivemarking symbol.

Fig.5: Examples ofthe various kindsof USB signallingand data packets.

Page 39: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

Firewire

• http://www.jaycar.com.au/images_uploaded/fi

rewire.pdf

S1, 2006 COMP9032 Week13 37

Page 40: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

Around 1986, Apple Computer Inc developed a veryfast but relatively low cost serial interface for distributing digital audio and other bulk data betweenpersonal computers, and between computers and theirperipherals. The new high speed serial interface wasdesigned to replace the relatively expensive SCSI parallelinterface, and Apple dubbed it FireWire (which is stillan Apple trademark).

Firewire was so successful that other manufacturerssoon began using it under licence. In 1995 Sony releasedits DCR-VX1000 digital video camcorder, which featuredessentially the same interface for input and output ofdigital video. Sony dubbed the interface iLink, and hasgradually provided the interfaces on all of its digitalcamcorders and VCRs. (iLink is a Sony trademark.)

It was soon realised that the FireWire/iLink interfacewas ideal not just for conveying digital video and audio,but for fast transfer of large amounts of any kind of digital data. Because of this the IEEE (Institution ofElectrical and Electronics Engineers) established it in1995 as an industry standard data interface, known asIEEE 1394-1995 � or �IEEE 1394� for short.

Nowadays IEEE 1394 interfaces are used on a verywide range of digital equipment, both in the computerand entertainment electronics industries. They�re standard on the majority of digital camcorders andVCRs, as well as on video editing workstations andadvanced computer graphics systems, and will probablybe standard on the new DVD-RW and DVD-RAM videorecorders. They�re increasingly found even inside largeworkstations and servers, to interface peripherals likelarge hard disk drives and arrays, CD-writers and scanners.

In fact it looks very much as if IEEE 1394 could wellbecome the standard high speed interface for the coming era of digital convergence � the merging ofcomputers, communications and entertainment technology.

Note that although there are some similaritiesbetween IEEE 1394 and the USB, there are quite a fewdifferences. USB is slower and essentially designed fornetworks with a single host (the PC), whereas IEEE 1394

can be used for peer-to-peer communication. A digitalcamcorder can stream video and audio data to both adigital VCR and a DVD-RAM recorder simultaneously viaan IEEE 1394 network, for example, with no need forassistance from a PC or other network controller device(after it has been allocated an isochronous channel forthe transfer � see later).

Fast & powerfulIEEE 1394 can transmit data at three rates: 98.304,

196.608 and 393.216Mb/s (megabits per second), whichare usually rounded to 100Mb/s, 200Mb/s and 400Mb/s� and officially labelled �S100�, �S200� and �S400� respectively. As you can see even the lowest rate isnearly 10 times that of USB.

Most consumer equipment like digital camcorders,VCRs and DVD-RAM recorders use the S100 rate,which is more than capable of handling a compressedvideo-and-audio data stream. The majority of PCI/IEEE1394 interface adaptor cards for PCs will also supportS200, while some can also support S400.

Like USB, IEEE 1394 is designed to allow �hot swapping�. Devices can be connected and/or disconnected without turning off the power or resetting,etc. The device which is performing the bus managerrole constantly monitors bus status, and reconfigures itdynamically whenever nodes are added or disconnected.

Data is transferred on the IEEE 1394 bus in addressedpackets, and is transaction-based. The transfers can beasynchronous or isochronous. Asynchronous transfersare used mainly for bus configuration, setting up transfers and handshaking, but are also used for bulkdata transfer to and from hard disk drives, etc.Isochronous transfers are used for transporting time-sensitive data like digital video and audio.

IEEE 1394 data packets have a 64-bit address header,which is divided into a 10-bit network address, a 6-bitnode address and the remaining 48 bits for data (ormode control) memory addresses at the receiving node.This gives IEEE 1394 the ability to address 1023 networks of 63 nodes, each with up to 281TB (terabytes) of data addresses.

In practical terms this tends to mean up to 63 devicescan be hooked up via IEEE 1394 cables as a network,with each device able to have tens or even hundreds of

Jaycar Electronics Reference Data Sheet: FIREWIRE.PDF (1)

Fig.1: A fairly typical IEEE 1394 network used ina digital video editing studio. The PC would generally take the role of bus manager andisochronous resource manager.

IEEE 1394 (AKA �FireWire� & �iLink�)

Fig.2: How the DS coding works. The Strobe signal is produced at the transmitting port, byexclsuive-ORing the Data and Clock. Then at thereceiving end the Clock is reconstructed by exclusive-ORing the Data and Strobe signals.

Page 41: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

gigabytes of memory � and plenty of room for more!Typically devices have three IEEE 1394 ports, but they

can have up to 27. This allows networks to be as simpleas a DV camcorder connected to a digital VCR, or morecomplicated like the setup shown in Fig.1. As you cansee this shows a �tree� topology, taking advantage of theability of each device to act as a bus repeater or �minihub�.

One device on the bus acts as bus manager, and canalso act as isochronous resource manager. The latterallocates bus bandwidth for isochronous data transferswhen devices request them. When there�s a PC in thenetwork, it usually performs the roles of bus managerand isochronous resource manager.

As the IEEE 1394 bus uses time-domain multiplexing(TDM), the isochronous resource manager allocateseach isochronous transfer a �channel� consisting of somany �bandwidth allocation units� (i.e., a guaranteed proportion of the total time slots). A bandwidth allocation unit is 20.3ns, so there are 6144 of them in aIEEE 1394 �basic cycle� of 125us. However 25us of everycycle is always reserved for asynchronous control datatransfers, so a maximum of 4195 units is available forisochronous transfers. Typically a stream from a DVcamcorder to a PC or digital VCR might need to beallocated a channel of say 1800 bandwidth units, forabout 30Mb/s.

Only one data packet can occur every basic cycle for aparticular isochronous transfer channel, using that channel�s allocated bandwidth units. However multipleisochronous transfers can take place at the same time,providing there�s enough bandwidth available. The transfers can even be at different rates � say one atS100 and another at S200. If there isn�t enough bandwidth available when a device requests it, it waitsuntil the bandwidth does become available.

Asynchronous transfers can have multiple data packetsper basic cycle, within the 25us reserved for this type ofsignalling.

Data-Strobe codingAll data is sent along the IEEE 1394 bus in serial four

byte (32-bit) words, called quadlets. And the quadletsare encoded together with their clock signal onto twoNRZ (non return to zero) bus signals, using a techniqueknown as Data-Strobe (DS) coding. This improves transmission reliability by ensuring that only one of thetwo signals changes in each data bit period.

Fig.2 shows how DS coding works. The top waveformshows the Data bits being sent, while the bottom waveform shows the Clock signal. At the transmittingnode these two are fed to an exclusive-OR gate to generate the Strobe signal, shown in the centre. It�s thissignal and the Data signal which are sent along the bus,

and as you can see there�s only one change in the pairevery bit period.

At the receiving device, though, the Data and Strobesignals are again fed to an exclusive-OR gate. The output of this gate effectively reconstructs the Clocksignal again, with its timing still accurately locked to theData. The DS coding therefore avoids the need for IEEE1394 receivers to have a PLL (phase-locked loop).

Twisted pairsThe IEEE 1394 Data and Strobe signals are sent on

cables with two separately shielded twisted-wire pairs,called TPA (twisted pair A) and TPB (twisted pair B).Transfers in one direction have the Strobe signal on TPAand the Data signal on TPB, while those in the oppositedirection have the Data signal on TPA and the Strobesignal on TPB. Fig.3 shows the idea.

There are two different kinds of IEEE 1394 cable, withmatching connectors. The primary type of cable has notonly the two separately shielded wire pairs TPA andTPB, but also two DC power conductors � the negativebeing grounded. A cross-section of this type of cable isshown in Fig.4, and as you can see there�s also an outershield and sleeve.

The IEEE 1394 standard allows nodes to be suppliedwith DC power via the two power conductors. Thepower can be supplied at a voltage between 8V and 33V,and the current can be up to 1.5 amps.

The type of cable shown in Fig.4 is used for most�mainstream� IEEE 1394 applications, such as interfacinglarge hard disk arrays to DV editing workstations.

The second type of cable used for IEEE 1394 has onlythe two shielded twisted pairs TPA and TPB, and cantherefore only be used for signal transfer. This is thetype of cable first used in Sony�s iLink, and is now commonly used for digital video applications. Most DVcamcorders and VCRs use this type of cable.

Due to the high speed at which IEEE 1394 works,cables between device nodes should be no longer than5m long to limit signal attenuation. There should also beno more than 16 cable �hops� separating any two nodesin an IEEE 1394 network.

ConnectorsJust as there are two types of cable, there are two

types of IEEE 1394 connector to match. Not surprisinglyone type provides six connections and the other onlyfour. Both of the plugs are shown in Fig.5, together with

Jaycar Electronics Reference Data Sheet: FIREWIRE.PDF (2)

Fig.3: The Strobe and Data signals are sent alongthe IEEE 1394 bus via two shielded twisted-wirepairs, TPA and TPB.

Fig.4: The primary type of IEEE 1394 cable hasa pair of power conductors as well as the twoshielded signal pairs TPA and TPB.

Page 42: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

their pinouts. The corresponding sockets and theirpinouts are complementary, of course.

As you can see both plugs are polarised and fairlycompact. But the inserting section of the primary 6-pin plug is much larger (11.3 x 6.2mm) than thatof the 4-pin plug, which is very small indeed (6.45 x3.5mm). The larger plug is polarised by a pair ofchamfers at one narrow end, while the smaller onehas an indent in the centre of one side.

Normally all devices with IEEE 1394 ports are fitted with sockets, and the cables have plugs ateach end. Adapter cables are available to allow datatransfer between devices with 6-pin and 4-pin sockets, with appropriate plugs at each end. (Thereare also short adaptor cables with a plug and asocket, to mate with a standard like-to-like cable.)

NNOOTTEE tthhaatt iinn aall ll ssttaannddaarrdd IIEEEEEE 11339944 ccaabblleess,,tthhee ccoonnnneeccttiioonnss ttoo tthhee ttwwoo ssiiggnnaall ��ttwwiisstteedd ppaaiirrss��aarree ttrraannssppoosseedd bbeettwweeeenn tthhee ttwwoo eennddss.. TThhaatt iiss,, iinnaa 66--ppiinn ttoo 66--ppiinn ccaabbllee ppiinnss 44 aanndd 33 aatt eeaacchh eennddccoonnnneecctt ttoo ppiinnss 66 aanndd 55 aatt tthhee ootthheerr,, rreessppeeccttiivveellyy.. SSiimmiillaarrllyy iinn aa 44--ppiinn ttoo 44--ppiinn ccaabblleeppiinnss 22 aanndd 11 aatt eeaacchh eenndd ccoonnnneecctt ttoo ppiinnss 44 aanndd 33aatt tthhee ootthheerr,, rreessppeeccttiivveellyy..

Because of their complex construction and thesmall size and precision of their connectors, IEEE1394 cables can be quite expensive. Because of thisand the tiny size of the 4-pin connectors in particular, they should be treated with care toensure that they provide reliable communication atthe fast data rates involved.

(Copyright © Jaycar Electronics, 2002)

Jaycar Electronics Reference Data Sheet: FIREWIRE.PDF (3)

Fig.5: The two different types of IEEE 1394 plug,and their basic pin connections. But note thatthe TPA and TPB connections are transposed inall standard IEEE 1394 cables.

IEEE 1394/FireWire Cables stocked by JaycarA range of standard IEEE 1394/Firewire/i.Link cables are now stocked by Jaycar Electronics stores and

authorised dealers. Here�s a quick rundown on the cables available and their catalogue numbers:

FFoorr mmoorree iinnffoorrmmaattiioonn,, pplleeaassee rreeffeerr ttoo tthhee llaatteesstt JJaayyccaarr EEnnggiinneeeerriinngg CCaattaalloogguuee oorr vviissiitt wwwwww..jjaayyccaarr..ccoomm..aauu

44--ppiinn ttoo 44--ppiinn CCaabblleess2m long Cat No. WC-76405m long Cat No. WC-7641

66--ppiinn ttoo 66--ppiinn CCaabblleess2m long Cat No. WC-76445m long Cat No. WC-7645

66--ppiinn ttoo 44--ppiinn CCaabblleess2m long Cat No. WC-76475m long Cat No. WC-7648

Page 43: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 38

AVR USARTs

• Two USART units

– Unit 0

– Unit 1

• Each unit can be configured for synchronous

or asynchronous serial communication

• USART unit 0 is used on our lab board to

receive program code downloaded from the

PC host via USB

Page 44: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 39

AVR USARTs (cont.)

• Support many serial frames.

• Have transmission error detection

– Odd or even parity error

– Framing error

• Three interrupts on

– TX Complete

– TX Data Register Empty

– RX Complete.

Page 45: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 40

USART

Block

Diagram

Page 46: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 41

AVR USART Structure

• The USART consists of three components:

clock generator, transmitter and receiver

• Clock generator

– consists of synchronization logic for external clock

input used by synchronous slave operation, and

the baud rate generator.

• Transmitter

– consists of a single write buffer, a serial Shift

Register, Parity Generator and Control Logic for

handling different serial frame formats.

Page 47: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 42

AVR USART Structure (cont.)

• Receiver

– The Receiver is the most complex part of the

USART module due to its clock and data recovery

units.

• The recovery units are used for asynchronous data

reception.

– In addition to the recovery units, the Receiver

includes a Parity Checker, Control Logic, a Shift

Register and a Receive Buffer (UDR).

– The Receiver supports the same frame formats as

the Transmitter, and can detect Frame Error, Data

Over Run and Parity Error.

Page 48: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 43

Frame Formats

• Up to 30 formats

– combinations of

• 1 start bit (St)

• 5, 6, 7, 8, or 9 data bits

• no, even or odd parity bit (P)

• 1 or 2 stop bits (Sp)

• Example

Page 49: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 44

Parity Bit

• Used to check whether the received data is different from the sending data

• Two forms of the parity bit – Even parity

– Odd parity

– Where di in the two formulas is a data bit, n is the

number of data bits.

0ddddP011nneven

1ddddP011nnodd

Page 50: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 45

Control Registers

• Three control registers are used in USART

operation:

– UCSRA

• for storing the status flags of USART

• for controlling transmission speed and use of multiple

processors

– UCSRB

• for enabling interrupts, transmission operations

• for setting frame formats

• for bit extension

– UCSRC

• For operation configuration

Page 51: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 46

UCSRA

• USART Control and Status Register A

Page 52: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 47

UCSRA Bit Descriptions

• Bit 7 – RXC: USART Receive Complete

– Set when the receive buffer is not empty

– The RXC flag can be used to generate a Receive

Complete interrupt

• Bit 6 – TXC: USART Transmit Complete

– Set when the entire frame in the Transmit Shift

Register has been shifted out and there are no

new data present in the transmit butter

– TXC is automatically cleared when a transmit

complete interrupt is executed.

– TXC can generate a Transmit Complete interrupt

Page 53: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 48

UCSRA Bit Descriptions (cont.)

• Bit 5 – UDRE: USART Data Register Empty – Set when the transmit buffer (UDR) is empty

– Can be used to generate a Data Register Empty interrupt

• Bit 4 – FE: Frame Error – Set when the next character in the receive buffer

had a Frame Error when received.

• Bit 3 – DOR: Data OverRun – Set when a Data OverRun condition is detected.

– A Data OverRun occurs when the receive buffers are all full and a new start bit is detected.

Page 54: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 49

UCSRA Bit Descriptions (cont.)

• Bit 2 – UPE: USART Parity Error

– Set when the next character in the receive buffer had a

Parity Error when received and the Parity Checking was

enabled

• Bit 1 – U2X: Double the USART Transmission Speed

– Set for doubling the transfer rate for asynchronous

communication

• Bit 0 – MPCM: Multi-processor Communication Mode

– If set, all the incoming frames received by the USART

Receiver that do not contain address information will be

ignored.

Page 55: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 50

UCSRB

• USART Control and Status Register B

Page 56: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 51

UCSRB Bit Descriptions

• Bit 7 – RXCIE: RX Complete Interrupt Enable

– Set to enable interrupt on the RXC flag

• Bit 6 – TXCIE: TX Complete Interrupt Enable

– Set to enable interrupt on the TXC flag

• Bit 5 – UDRIE: USART Data Register Empty

Interrupt Enable

– Set to enable interrupt on the UDRE flag.

Page 57: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 52

UCSRB Bit Descriptions (cont.)

• Bit 4 – RXEN: Receiver Enable – Set the enable the USART receiver.

– The Receiver will override normal port operation for the RxD pin when enabled. Disable the Receiver will flush the receive buffer invalidating the FE, DOR and UPE flags.

• Bit 3 – TXEN: Transmitter Enable – Set to enable the USART Transmitter

– The Transmitter will override normal port operations for the TxD pin when enabled. The disabling of the Transmitter will not become effective until transmissions are complete.

Page 58: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 53

UCSRB Bit Descriptions (cont.)

• Bit 2 – UCSZ2: Character Size

– The bit combined with the UCSZ1:0 bits in UCSRC sets the

number of data bits in a frame.

• Bit 1 – RXB8: Receive Data Bit 8

– The ninth data bit of the received character when operating

with serial frames with nine data bits. Must be read before

reading the low bits from UDR

• Bit 0 – TXB8: Transmit Data Bit 8

– The ninth data bit in the character to be transmitted when

operating with serial frames with nine data bits. Must be

written before writing the low bits to UDR

Page 59: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 54

UCSRC

• USART Control and Status Register C

Page 60: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 55

UCSRC Bit Descriptions

• Bit 6 – UMSEL: USART Mode Select

– 0: Asynchronous Operation

– 1: Synchronous Operation

• Bit 5:4 – UPM1:0: Parity Mode

– Set to enable Parity bit operation

UPM1 UPM0 Parity Mode

0 0 Disabled

0 1 Reserved

1 0 Enabled, Even Parity

1 1 Enabled, Odd Parity

Page 61: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 56

UCSRC Bit Descriptions (cont.)

• Bit 3 – USBS: Stop Bit Select

– 0: 1-bit

– 1: 2-bit

• Bit 2:1 – UCSZ1:0: Character Size

– Together with UCSZ2 to determine the number of

bits for a character

UCSZ2 UCSZ1 UCSZ0 Character Size

0 0 0 5-bit

0 0 1 6-bit

0 1 0 7-bit

0 1 1 8-bit

1 0 0 Reserved

1 0 1 Reserved

1 1 0 Reserved

1 1 1 9-bit

Page 62: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 57

UCSRC Bit Descriptions (cont.)

• Bit 0 – UCPOL: Clock Polarity

UCPOL Transmitted Data Changed Received Data

Sampled

(Output of TxD Pin) (Input on RxD Pin)

0 Rising XCK Edge Failing XCK Edge

1 Failing XCK Edge Rising XCK Edge

Page 63: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 58

USART Initialization

• Initialization process consists of

– Setting the baud rate,

– Setting the frame format; and

– Enabling the Transmitter or the Receiver

• For interrupt driven USART operation, the

Global Interrupt Flag should be cleared when

doing the initialization

Page 64: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 59

Sample Code

• Initialize USART 1

USART_Init:

; Set baud rate, which is stored in r17:r16

sts UBRR1H, r17

sts UBRR1L, r16

; Enable receiver and transmitter

ldi r16, (1<<RXEN1)|(1<<TXEN1)

sts UCSR1B,r16

; Set frame format: 8 bit data, 2 stop bits

ldi r16, (1<<USBS1)|(3<<UCSZ10)

sts UCSR1C,r16

Page 65: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 60

Data Transmission

• The USART Transmitter is enabled by setting the Transmit Enable (TXEN) bit in the UCSRB Register. – A data transmission is initiated by loading the

transmit buffer with the data to be transmitted. • The CPU can load the transmit buffer by writing to the

UDR I/O location. The buffered data in the transmit buffer will be moved to the Shift Register when the Shift Register is ready to send a new frame.

– The Shift Register is loaded with new data if it is in idle state (no ongoing transmission) or immediately after the last stop bit of the previous frame is transmitted. When the Shift Register is loaded with new data, it will transfer one complete frame at the rate given by the baud register, U2X bit or by XCK depending on mode of operation.

Page 66: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 61

Sample code

• Data Transmission

– The code below uses polling of the Data Register

Empty (UDRE) flag.

• When using frames with less than eight bits, the most

significant bits written to the UDR are ignored.

USART_Transmit:

; Wait for empty transmit buffer

lds r15, UCSR1A

sbrs r15,UDRE1

rjmp USART_Transmit

; Put data (r16) into buffer, sends the data

sts UDR1,r16

Page 67: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 62

Status of Data Transmission

• The USART Transmitter has two flags that indicate

its state:

– USART Data Register Empty (UDRE)

• Set: when the transmit buffer is empty and ready to receiver

new data

• Clear: when the transmit butter contains data to be moved into

the shift register

– Transmit Complete (TXC)

• Set: when data in the Transmit Shift Register has been shifted

out and there are no new data currently present in the transmit

buffer

• Clear: otherwise

• Both flags can be used for generating interrupts.

Page 68: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 63

Data Reception

• The USART Receiver is enabled by writing

the Receive Enable (RXEN) bit in the UCSRB

Register

– The baud rate, mode of operation and frame

format must be set up once before doing any

transmissions. If synchronous operation is used,

the clock on the XCK pin will be overridden and

used as transmission clock.

Page 69: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 64

Sample code

• Data reception

USART_Receive:

; Wait for data to be received

lds r10, UCSR1A

sbrs r10, RXC1

rjmp USART_Receive

; Get and return received data from buffer

lds r16, UDR1

Page 70: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 65

Status of Data Reception

• The Receive Complete (RXC) flag indicates if

there are unread data present in the receive

buffer.

– Set: when unread data exist in the receive buffer

– Clear: otherwise

• If the receiver is disabled (RXEN = 0), the

receive buffer will be flushed and

consequently the RXC bit will become zero.

Page 71: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 66

Error Detection

• Three errors are checked on the receiver

side:

– Frame error

• By checking whether the first stop bit is corrected

received

– Parity error

• By checking whether the data received has the same

(odd or even) number of 1’s as in the data from the

tranmistter.

– Data OveRun error

• By checking if any data is yet read but is overwritten by

incoming data frame.

Page 72: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 67

Error Recovery

• Main sources of errors in asynchronous data

transmission

– Data reception is “out sync” with transmission

– Noise added to the data

Page 73: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 68

Error Recovery (cont.)

• AVR includes a clock recovery and a data recovery unit for handling errors in asynchronous transmission. – The clock recovery logic is used for synchronizing

the internally generated baud rate clock to the incoming asynchronous serial frames at the RxD pin.

• Based on the start bit

– The data recovery logic samples and low pass filters each incoming bit, thereby improving the noise immunity of the Receiver

• Based on multiple sampling and majority policy for each incoming bit

Page 74: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 69

Error Recovery (cont.)

• The following figure gives an illustration

– The sample rate is 16 times the baud rate

– When the Clock Recovery logic detects a high

(idle) to low (start) transition on the RxD line, it

uses the samples 8, 9 and 10 to decide if it is a

valid bit (namely, 0)

• If the majority of the three bits are 0, the bit is valid; data

recovery is followed.

• If the majority of the three bits are 1, the bit is invalid; the

circuit looks for next start bit.

Page 75: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 70

Error Recovery (cont.)

– When the receiver clock is synchronized to the

start bit, the data recovery can begin for each

subsequent data bit.

– The decision of the logic level of the received bit is

taken by doing a majority voting of the logic value

to the three samples in the center of the received

bit.

Page 76: Serial Input/Output - Computer Science and Engineeringcs2121/LectureNotes/08s2/week13new... · 2011. 5. 10. · Lecture overview • Serial communication –Concepts –Standards

S1, 2006 COMP9032 Week13 71

Reading Material

• Chapter 7: Computer Buses and Parallel

Input and Output. Microcontrollers and

Microcomputers by Fredrick M. Cady.

• Mega64 Data Sheet

– USART