Serial Communications Interface (SCI)

32
Serial Communications Interface (SCI) Michael Lennard Zachary Peters Bao Nguyen

description

Serial Communications Interface (SCI). Michael LennardZachary PetersBao Nguyen. Overview. Types of Data TransmissionMichael Lennard Parallel Serial Serial Communication Synchronous Asynchronous Baud and Bit Rates Asynchronous Serial TransmissionZachary Peters - PowerPoint PPT Presentation

Transcript of Serial Communications Interface (SCI)

Page 1: Serial Communications Interface (SCI)

Serial Communications Interface (SCI)

Michael Lennard Zachary Peters Bao Nguyen

Page 2: Serial Communications Interface (SCI)

Overview Types of Data Transmission Michael

Lennard• Parallel• Serial

Serial Communication• Synchronous• Asynchronous

Baud and Bit Rates

Asynchronous Serial Transmission Zachary Peters

Serial Communication With the HCS12Bao Nguyen

Examples of data words are transmitted

Page 3: Serial Communications Interface (SCI)

Parallel Data Transmission

Simultaneous

transmission

Requires separate data

lines

Uses a clock to keep

bits synchronized

Fast but Expensive

Requires short cables

to prevent

Cross-Talk/Skewing

Example: Printer Cable

Presenter: Michael Lennard

Transmitter

Receiver

One ‘Word’

Page 4: Serial Communications Interface (SCI)

Serial Data Transmission One bit sent at a time Slow compared to

Parallel Requires only a single

transmission line & port

Cheap! Can often be clocked

faster than parallel data

Example: USB, Firewire, Ethernet

Presenter: Michael Lennard

Transmitter

Receiver

One Word

Page 5: Serial Communications Interface (SCI)

Serial Data Transmission Two Basic Types of Serial Data Transmission

Synchronous Asynchronous

Two solutions to same problem - Receiver needs to know When data starts When data stops If data was processed correctly

Presenter: Michael Lennard

Page 6: Serial Communications Interface (SCI)

Synchronous Serial Communication Transmitter and Receiver have synchronized

clocks Continuous data must be sent to maintain

synchronization Any data not on a clock cycle is considered noise Establish transmission parameters before sending

data 30% faster than asynchronous transmission for

large continuous blocks of data

Presenter: Michael Lennard

Transmitter Receiver

Data

Clock Ticks

123

Page 7: Serial Communications Interface (SCI)

Asynchronous Serial Communication

Transmitter & Receiver are independent Transmitter sends ‘Start’, ‘Stop’ and ‘Parity’

bits with each word of data Simpler to implement and less expensive than

synchronous Data received between a Stop bits and the

next Start bit is ignored

Presenter: Michael Lennard

Transmitter Receiver

Data Word

ParityStop Start

Page 8: Serial Communications Interface (SCI)

Baud Rate vs. Bit Rate Baud Rate (Bd) is the rate at which Symbols

(Signaling Events) are transferred Number of bits per Symbol is Hardware

Specific Our hardware uses just 1’s and 0’s and thus just 1

bit/Symbol Bit rate is the absolute rate at which bits are

transmitted Can be changed for each port

Presenter: Michael Lennard

SymbolBits

sBitBitRatesSymbolBd

/

)/()/(

Page 9: Serial Communications Interface (SCI)

Baud Rate vs. Characters Per Second Not all bits sent are data

Asynchronous Serial Communication has Start/Stop/Parity bits

Characters per Second (cps) is a measure of data throughput Throughput = Rate of actual data sent Standard character = 1 bit

Characters = Total bits – Overhead bits

Presenter: Michael Lennard

Page 10: Serial Communications Interface (SCI)

Example Problem You have an asynchronous serial connection

with 2 bits/Symbol and a 9600 bd line speed. You want to send data in an 8 bit data format with 1 parity, 1 start bit and 1 stop bit. Calculate the throughput in cps.

Presenter: Michael Lennard

Page 11: Serial Communications Interface (SCI)

Overview Types of Data Transmission Michael

Lennard• Parallel• Serial

Serial Communication• Synchronous• Asynchronous

Baud and Bit Rates

Asynchronous Serial TransmissionZachary Peters

Serial Communication With the HCS12Bao Nguyen

Examples of data words are transmitted

Page 12: Serial Communications Interface (SCI)

Asynchronous Serial Communication Transmitter and Receiver Operate

independently Transmitter sends data at any time Receiver is always ready to accept data

No need for clock signals However… format and transfer rate must

match during transmission

Presenter: Zachary Peters

Page 13: Serial Communications Interface (SCI)

Asynchronous Transmission Data word contains information before and

after that specifies the beginning and end of word

This synchronizes transmitter and receiver during transmission

Bit transfer rate is determined by programmer, but limited by interfaces

Presenter: Zachary Peters

Page 14: Serial Communications Interface (SCI)

Data Format Start bit – indicates the beginning of word Data bit – data user is transmitting Parity bit – checks integrity of data Stop bit – indicates the end of the word

Presenter: Zachary Peters

Page 15: Serial Communications Interface (SCI)

Start Bit Opposite polarity from idle bit state

Idle state for HCS12 = all 1’s so start bit = 0 Alerts receiver that the data transmission is

about to begin Accuracy verification methods to reduce noise

(discussed later)

Presenter: Zachary Peters

Page 16: Serial Communications Interface (SCI)

Data Bits Actual Data being sent or received plus parity

bit Most common mode: 8-bit transmission

Used for ASCII character transmission (ASCII code is 7-bit + 1 parity bit = 8-bit)

Less common mode: 9-bit transmission Can be used to send a full byte of data + parity bit Example: sending an address

LSB transmitted first

Presenter: Zachary Peters

Page 17: Serial Communications Interface (SCI)

Data Bits Example:

8-bit mode:1100010101111 ASCII Code in Data “T”

9-bit mode: 11011010100011 Hex equivalent in Data $2B

Presenter: Zachary Peters

DataStart Bit

Stop Bits

Parity Bit

DataStart Bit

Stop Bits

Parity Bit

Page 18: Serial Communications Interface (SCI)

Parity Bit 1 Bit

Located at end of data bits Used as a method of ensuring proper data

transmission Even Parity

Parity bit = 1, if # of ones in the set is odd (makes the total # of ones even)

Odd Parity Parity bit = 1, if # of ones in the set is even

(makes the total # of ones odd)

Presenter: Zachary Peters

Page 19: Serial Communications Interface (SCI)

Stop Bit 1 or 2 bits Only used due to asynchronous nature

(Synchronous transmitters/receivers don’t need start/stop bits)

Occurs directly after the parity bit Bit is the same as the polarity of the data-

line’s idle state Idle state for HCS12 = all 1’s so stop bits = 1

Presenter: Zachary Peters

Page 20: Serial Communications Interface (SCI)

Noise Detection Problem:

A premature bit (1 or 0) can cause the receiver to think it is receiving data before it should be, or receive incorrect data

Solution: Sample at higher freq than baud rate and take “average” of samples

RT Clock = Baud rate * 16 16 samples of each bit

RT3, RT5, RT7 are recorded

Presenter: Zachary Peters

Page 21: Serial Communications Interface (SCI)

Noise Detection for Start Bit Samples taken after the signal falls to 0 to

verify if it is indeed a start bit If two ‘1’s in sample then not a start bit If one ‘1’ in sample then noise bit flagged

Presenter: Zachary Peters

Page 22: Serial Communications Interface (SCI)

Overview Types of Data Transmission Michael

Lennard• Parallel• Serial

Serial Communication• Synchronous• Asynchronous

Baud and Bit Rates

Asynchronous Serial Transmission Zachary Peters

Serial Communication With the HCS12Bao Nguyen

Examples of data words are transmitted

Page 23: Serial Communications Interface (SCI)

SCI Baud Rate Registers SCIBDH & SCHBDL - $00C8-$00C9

13-Bit register determines SCI Baud rate Baud rate generator is Disabled until TE or RE bit is set

for the first time after reset. Baud rate generator is turned off when this register

contains $0000 Note: Writing to SCIBDH has no effect w/out writing to

SCIBDL

Presenter: Bao Nguyen

Page 24: Serial Communications Interface (SCI)

SCI Control Register 1SCICR1 - $00CA

Presenter: Bao Nguyen

LOOPS (loop operation enable) – 0: Normal, 1: Loop Operation

SCISWAI (SCI wait mode enable) – 0: Off 1: On M (data format mode) – 0: 8 data bits, 1: 9 data bits.

Both use 1 start bit and 1 stop bit PE (parity enable) – 0: Off, 1: On PT (parity type) – 0: Even, 1: Odd

Page 25: Serial Communications Interface (SCI)

SCI Control Register 2SCICR2 - $00CB

TIE (transmit interrupt enable) – 0: disables interrupts for transmit data register empty, 1: enables

TCIE (transmit complete interrupt enable) – 0: disables interrupts for transmit complete, 1: enables

RIE (receiver interrupt enable) – 0: disables interrupts for receiver full and overrun , 1: enables

ILIE (idle line interrupt enable) – 0: disables interrupts for idle line, 1: enables

TE (transmit enable) – 0: disable transmitter, 1: enable RE (receiver enable) – 0: disable receiver, 1: enable

Presenter: Bao Nguyen

Page 26: Serial Communications Interface (SCI)

SCI Status Register 1SCISR1 - $00CC

Read only register Can be used to provide input to the microcontroller for

generation of SCI interrupts TDRE (transmit data register empty) – 0: No byte

transferred,1: byte successfully transferred to transmit shift register

TC (transmit complete flag) – 0: transmission in progress, 1: no transmission in progress

RDRF (receive data register full) – 0: no data in data register, 1: data in data register

IDLE (idle flag) – 0: receiver input is active, 1: receiver input has become idle

Presenter: Bao Nguyen

Page 27: Serial Communications Interface (SCI)

SCI Status Register 2SCISR2 - $00CD

BK13 (break transmit character length) – 0: 10 or 11 bit, 1: 13 or 14 bit

TXDIR (transmitter pin direction) – 0: TXD pin used as input, 1: TXD pin used as output. (used only in single wire mode)

RAF (receiver active flag) – 0: no reception in progress, 1: reception in progress

Presenter: Bao Nguyen

Page 28: Serial Communications Interface (SCI)

SCI Data RegistersSCIDRH &SCIDRL - $00CE - $00CF

SCIRDL contains incoming bytes of data from serial port

R8 – bit 8 of received 9-bit data T8 – bit 8 of transmitted 9-bit data

Presenter: Bao Nguyen

Page 29: Serial Communications Interface (SCI)

Asynchronous Data Transmission

Example 1: Hex# 4A16 is to be sent with one start bit, even parity, 8-

bit data length and two stop bits 4A16 = 0100 10102

Note: Little endian communication used (LSB sent first)

Start Bit Data Bit 0 Data Bit 1 Data Bit 2 Data Bit 3 Data Bit 4 Data Bit 5 Data Bit 6 Data Bit 7 Parity Bit Stop Bit Stop Bit

0 0 1 0 1 0 0 1 0 1 1 1

Presenter: Bao Nguyen

Page 30: Serial Communications Interface (SCI)

Asynchronous Data Transmission

Example 2: Hex# B416 is to be sent with one start bit, even parity, 8-

bit data length and two stop bits B416 = 1011 01002

Start Bit Data Bit 0 Data Bit 1 Data Bit 2 Data Bit 3 Data Bit 4 Data Bit 5 Data Bit 6 Data Bit 7 Parity Bit Stop Bit Stop Bit

0 0 0 1 0 1 1 0 1 0 1 1

Presenter: Bao Nguyen

Page 31: Serial Communications Interface (SCI)

Asynchronous Data Transmission

Example 3: Hex# B416 is to be sent with one start bit, odd parity, 8-

bit data length and two stop bits B416 = 1011 01002

Start Bit Data Bit 0 Data Bit 1 Data Bit 2 Data Bit 3 Data Bit 4 Data Bit 5 Data Bit 6 Data Bit 7 Parity Bit Stop Bit Stop Bit

0 0 0 1 0 1 1 0 1 1 1 1

Presenter: Bao Nguyen

Page 32: Serial Communications Interface (SCI)

Thank You!

Any Questions?