unit 10 - part 3

14
Unit 10 - Part 3

Upload: nitesh

Post on 11-Jan-2016

25 views

Category:

Documents


2 download

DESCRIPTION

Unit 10 - Part 3. Address Selects Receiver. Receivers are put in “standby” mode by setting RWU (Receiver Wake Up) = 1. Address Character. N Character Message. XMTR. RCVR. RCVR. RCVR. RCVR. ……. Receiver Wake Up. If RWU == “1” (Receiver is in ‘stand-by’ state) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Unit 10 - Part 3

Unit 10 - Part 3

Page 2: Unit 10 - Part 3

Address Selects Receiver

AddressCharacter

N Character Message

XMTR

RCVR RCVR RCVR RCVR……..

Receivers are put in “standby” mode by setting RWU (Receiver Wake Up) = 1

Page 3: Unit 10 - Part 3

Receiver Wake Up

• If RWU == “1” (Receiver is in ‘stand-by’ state)

– If WAKE == “1” (Address Mark Wakeup)• A logic 1 in the msb position of a frame clears the RWU bit

and wakes up the SCI. (The logic 1 marks the frame as an address frame.)

» If Address matches, then Receive Message» If Address doesn’t match, then set RWU=“1”

– If WAKE == “0” (Idle line Wakeup)• An idle condition on the input clears the RWU bit and wakes

up the SCI. The next frame that is received is assume to contain an Address

– If Address matches, then Receive Message– If Address doesn’t match, then set RWU=“1”

Page 4: Unit 10 - Part 3

RWU = “1”, WAKE = “0”

FrameN+1

Characters

FrameN+1

Characters

FrameN+1

Characters

Line Idle

• Enable Receiver when receiver input is in Idle state (when 10 or 11 1’s are received)• Next received character is considered an Address• If Address matches then receive the rest of Frame• If Address doesn’t match, set RWU = ”1” to ignore rest of Frame

Page 5: Unit 10 - Part 3

RWU = “1” WAKE = “1”

• Received “wakes up” if Most Significant Bit of Received Character = “1”– 1 in MSB: Character is an Address– Receive Address

• If Match, receive remainder of frame• If No Match, set RWU back to “1” and ignore

remainder of frame

Page 6: Unit 10 - Part 3

Single Wire Mode

• Loops = “1”, RSRC = “1”– TxDIR = “0” -- TxData is Input to Receiver– TxDIR = “1” -- TxData is Transmitter Output

XMTR

RCVR

TxDIR = “1”

TxDIR = “0”

Single WireHalf Duplex

TxD pin

Page 7: Unit 10 - Part 3

SCI Interrupts

• 4 Sources of Interrupts on SCI– TDRE = “1” – Transmitter SCI Buffer Empty– TC = “1” – Transmitter Finished– RDRF = “1” – Receiver SCI Buffer Full– IDLE = “1” – Receive Line is Idle

• TDRE and RDRF are commonly used

• TC and IDLE used in special applications

Page 8: Unit 10 - Part 3

SCI Interrupt Processingvoid sci0_isr(void){// SCI Interrupt has occurred, determine reason if((SCI0SR1&0x20)!=0) { // RDRF=“1” was source of interrupt, buffer is full c=SCI0DRL; // Read character to empty buffer ---- // handle the character } if((SCI0SR1&0x80)!=0) { // TDRE=“1” was source of interrupt, buffer is empty // Case 1 – If have a character c to transmit SCI0DRL = c; // Write character to full buffer } else {// Case 2 – No character to transmit SCI0CR2 = SCI0CR2&0x7F; // set TIE=“0” to disable transmitter interrupts } ---- ----}

Page 9: Unit 10 - Part 3
Page 10: Unit 10 - Part 3
Page 11: Unit 10 - Part 3
Page 12: Unit 10 - Part 3
Page 13: Unit 10 - Part 3
Page 14: Unit 10 - Part 3