32
1 October 26, 2006 ME 6405 Mechatronics Serial Communication Interface Serial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

Embed Size (px)

Citation preview

Page 1: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

1October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Serial Communication Interface

Brian GuerrieroJon Rogers

Robert Thiets

Page 2: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

2October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Presentation Outline

Types of Data Transmission• Parallel• Serial

Serial Communication• Synchronous• Asynchronous

Baud and Bit Rates

Asynchronous Serial Transmission

Serial Communication With the HC11

Examples of data words are transmitted

Page 3: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

3October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Types of Data Transmission

Parallel Data Transmission

♦Simultaneous transmission

♦Requires separate data lines

♦Bits must stay synchronized

♦Fast

♦Expensive

♦Example: Printer connections

Transmitter

Receiver

One Word

Page 4: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

4October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Types of Data Transmission

Serial Data Transmission

♦Transfers one bit at a time

♦Requires only one data line Bits must stay synchronized

♦Slow compared to parallel transmission

♦Less Expensive

♦Example: USB

Transmitter

Receiver

One Word

Page 5: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

5October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Serial Data Communication

♦ Two basic types of Serial Data Communication:– Synchronous Communication– Asynchronous Communication

Page 6: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

6October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Synchronous Communication

♦ Transmitter and receiver have their clocks synchronized

♦ Data rates are dependent on clock rates♦ Continuously transmitting characters to remain in

sync.

Page 7: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

7October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Asynchronous Communication

♦ NO synchronization– No need to send idle characters

♦ Transmitter and receiver operate independently– Transmitter can send data at any time– Receiver is always ready to accept data

♦ Requires a start and stop bit to identify each byte of data

♦ How does receiver know that data is arriving?– If the line is idle, it is sending a constant ‚1‘ (mark state)– The receiver is able to recognize a jump from ‚1‘ to ‚0‘

with the start bit and is alerted that data is about to be sent.

Page 8: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

8October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

BIT RATE (Bit/s)

♦Number of data bits (High/Low V) transmitted per second.

Example of Windows Bit Rates

Page 9: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

9October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

BAUD RATE (Bd)

♦Rate of “Symbol” transfer

♦Each symbol > 1 bit

♦Symbol type and size determined by quality of hardware

SymbolBits

sBitBitRatesSymbolBd

/

)/()/(

Page 10: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

10October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

BAUD RATE (Bd)

Example Calculations

♦ Consider baud rate: 4800 baud

♦ 12 bits/word = 1 start bit + 8 data bits + 1 parity bit + 2 stop bits

– Bit time = 1/(baud rate) = 1/4800baud = 0.208ms/bit

– Word time = (12 bits)*(bit time) = 2.5ms

– Word rate = 1/(word time) = 400 words/s

– Bit rate = (word rate)*(8 data bits) = 3200 bits/s

Page 11: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

11October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Asynchronous Serial Transmission

♦Bits are transmitted in a specified format

♦Defined by settings on transmitter and receiver:

-Start Bit-Data Bits-Parity Bits-Stop Bits

Example of Windows setting

Page 12: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

12October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Asynchronous Serial Transmission

One Data Package

♦Four parts per package

Start Bit

DataBit 0

DataBit 1

DataBit 2

DataBit 3

DataBit 4

DataBit 5

DataBit 6

DataBit 7

ParityBit

Stop Bits (2)HIGH

LOW

Page 13: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

13October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Asynchronous Serial Transmission

Start Bits

♦Start bit drops from 1 to 0 to signal start of transmission

Start Bit

Previously HIGH

Now LOW

Page 14: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

14October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Asynchronous Serial Transmission

Data Bits

♦The content of the package

♦Usually 8 bits

♦LSB sent First

Ex: This transmitted word is 10111001,

or $B9

DataBit 2

DataBit 0

DataBit 1

DataBit 3

DataBit 4

DataBit 5

DataBit 6

DataBit 7

LSB MSB

FLOW

Page 15: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

15October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Asynchronous Serial Transmission

Parity Bit

♦ Used to check for errors

♦ Helps verify signal integrity

♦ 2 Types: -Even: makes sum of all bits INCLUDING parity bit EVEN -Odd: makes sum of all bits INCLUDING parity bit ODD♦ Not applicable to HC11

DataBit 7

ParityBit (H or L)

Page 16: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

16October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Asynchronous Serial Transmission

Stop Bit

♦ Stop bit indicates all data has been transferred

♦ 1 or 2 Stop bits

StopBit 1

StopBit 2

Parity or Bit 7

Page 17: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

17October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Asynchronous Serial Transmission

Noise

♦ Causes errors in reading data

♦ Start bit is misread and begins reading too early

Start BitNOISE

Goes LOW

Stop Bit

Page 18: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

18October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

HC11 SCI Registers

♦ 5 Main Registers:– BAUD: Sets bit rate for SCI– SCCR1: Sets control bits for the 9-bit character

format and the receiver wake up feature – SCCR2: Main control register– SCSR: Status Register– SCDR: Main Data Register

Page 19: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

19October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

HC11 SCI Registers

BAUD Register

♦ Used to set the bit rate of the SCI system– TCLR: Clear baud rate timing chain bit– SCP1: SCP0 – Baud rate pre-scale select bits– RCKB: SCI baud rate clock test bit– SCR2: SCR0 – SCI baud rate select bits

Address: $102BBit 7 6 5 4 3 2 1 Bit 0

Read: 0 0Write: TCLR RCKBReset: 0 0 0 0 0 U U U

U = Unaffected

SCR1 SCR0SCP00 SCP1 SCR2

Page 20: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

20October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

HC11 SCI Registers

SCCR1 RegisterAddress: $102C

Bit 7 6 5 4 3 2 1 Bit 0Read: R8 0 0 0 0Write:Reset: U U 0 0 0 0 0 0

U = Unaffected

WAKET8 M

♦ Contains control bits related to the 9-bit data character format and the receiver wake up feature– R8: Receive data bit 8– T8: Transmit data bit 8– M: SCI character length bit– WAKE: Wakeup method select bit– Bits 0, 1, 2 & 5: Not used (always 0)

Page 21: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

21October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

HC11 SCI Registers

SCCR2 RegisterAddress: $102D

Bit 7 6 5 4 3 2 1 Bit 0Read:Write:Reset: 0 0 0 0 0 0 0 0

U = Unaffected

RWU SBKTIE TETCIE RIE ILIE RE

♦ Main control register for SCI sub-system– TIE: Transmit interrupt enable bit– TCIE: Transmit complete interrupt enable bit– RIE: Receive interrupt enable bit– ILIE: Idle-line interrupt enable bit– TE: Transmit enable bit– RE: Receive enable bit– RWU: Receiver wakeup bit– SBK: Send break bit

Page 22: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

22October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

HC11 SCI Registers

SCSR RegisterAddress: $102E

Bit 7 6 5 4 3 2 1 Bit 0Read: TDRE TC RDRF IDLE OR NF FE 0Write:Reset: 1 1 0 0 0 0 0 0

U = Unaffected

♦ SCI status register– TDRE: Transmit data register empty bit– TC: Transmit complete bit– RDRF: Receive data register full bit– IDLE: Idle-line detect bit– OR: Overrun error bit– NF: Noise flag– FE: Framing Error bit– Bit 0: is not used (always 0)

Page 23: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

23October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

HC11 SCI Registers

SCDR RegisterAddress: $102F

Bit 7 6 5 4 3 2 1 Bit 0Read: R7 R6 R5 R4 R3 R2 R1 R0Write: T7 T6 T5 T4 T3 T2 T1 T0Reset:

U = UnaffectedUnaffected by rest

♦ SCI data register– Two separate registers– When SCDR is read, the read-only RDR is

accessed– When SCDR is written, the write-only TDR is

accessed– R7 - R0: Read bits– T7 - T0: Write bits

Page 24: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

24October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Auxiliary Port D

♦ SCI uses the 2 least significant bits of Port D

♦ These bits are used for receiving and transmitting data

♦ Data direction register does not control Port D while SCI is in use but it is important since it will have control when the SCI operation is aborted

♦ SPCR register controls the Port D wire-OR mode bit, which controls the driver functions of the Port D pins, even if they are being used by the SCI

Page 25: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

25October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Wake Up

♦ M68HC11 supports a receiver wake up function, which is intended for systems having more than one receiver

♦ The transmitting device directs messages to an individual receiver or group of receivers by passing addressing information in the initial byte

♦ Receivers not addressed activate the receiver wakeup function– This makes these receivers dormant for the

remainder of the unwanted message♦ Wake up mode is enable by writing a 1 to the RWU bit

in the SCCR2 register

Page 26: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

26October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Wake Up

♦ Two methods of Wakeup– Address-Mark Wakeup

• Most significant bit is used to indicate if the message is data(0) or address(1)

• All receivers wake up if the bit is 1 and check to see if the message is for them

♦ Send Breaks– Break characters are character-length periods where the

TxD line goes to 0– Character length is influenced by the M bit in the SCCR1

• M = 0 – All characters are 10 bit times long• M = 1 – all characters are 11 bit times long

– Break characters have no start and stop bits

Page 27: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

27October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Examples of SCI

Transmit - Configuration

MAIN EQU $1040SCCR2 EQU $102DBAUD EQU $102BSCSR EQU $102ESCDR EQU $102D

Assemble code starting hereAddress of SCI control register 2Address of Baud rate control registerAddress of SCI status registerAddress of SCI data register

♦ Let’s say we want to transmit hex number 2C at a Baud rate of 1200

♦ First set up variables and set Baud rate:

Page 28: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

28October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Examples of SCI

Transmit – Set Baud Rate

♦ How to set the Baud rate:

– Crystal Frequency = 8 MHz

– First, set BAUD bits SCP2 =1 and SCP1 = 1

• Divides crystal freq. by 13 8 MHz ÷ 13 ≈ 9600

– Then set SCR2 = 0, SCR1 = 1, SCR0 = 1

• Divides result by 8 9600 ÷ 8 = 1200

See tables on P. 29-30!

TCLR SCP2 SCP1 SCP0 RCKB SCR2 SCR1 SCR0BAUD

Page 29: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

29October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Examples of SCI

Transmit !

ORG MAIN LDAA #$33 STAA BAUD LDAA #$08 STAASCCR2

LOOP LDAA #$2C STAA SCDR

CHECK LDAA SCSR ANDA #$C0 CMPA #$C0 BNE CHECK SWI

This sets bits like in last slideWrite to the Baud registerSet the Transmit Enable bit highWrite to SCCR2

Put you data to transmit hereStore it in the SCI data register

Load the status register to Acc ACheck to see if Transmit Complete flag is set

If it is not, loop and keep checkingIf it is, we’re done

Page 30: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

30October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Examples of SCI

Receive- Configuration

♦ Once again, Baud rate of 1200♦ Set up things in a similar way:

MAIN EQU $1041SCCR2 EQU $102DBAUD EQU $102BSCSR EQU $102ESCDR EQU $102FSTORE EQU $1040

Assemble code starting hereAddress of SCI control register 2Address of Baud rate control registerAddress of SCI status registerAddress of SCI data registerAddress of place to store incoming data

Page 31: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

31October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Examples of SCI

Receive!

ORG MAINLDAA #$33STAA BAUDLDAA #$04STAA SCCR2

CHECK LDAA SCSRANDA #$20CMPA #$20BNE CHECKLDAA SCDRSTAA STORESWI

This sets bits like in previous slideWrite to the Baud registerSet the Receive Enable bit highWrite to SCCR2

Load the status register into Acc ACheck to see if RDRF flag is set(Receive Data Register Full)If not, keep checking until it isWhen data has been received, store it

Page 32: 1 October 26, 2006ME 6405 MechatronicsSerial Communication Interface Brian Guerriero Jon Rogers Robert Thiets

32October 26, 2006 ME 6405 Mechatronics Serial Communication Interface

Questions

?