Michael Lennard Zachary Peters Bao Nguyen Overview Types of Data Transmission Michael Lennard Parallel Serial Serial Communication Synchronous Asynchronous Baud and Bit Rates Asynchronous Serial Transmission Zachary Peters ID: 223618
Download Presentation The PPT/PDF document "Serial Communications Interface (SCI)" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Serial Communications Interface (SCI)
Michael Lennard Zachary Peters Bao NguyenSlide2
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 HCS12 Bao Nguyen
Examples of data words are transmitted Slide3
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/SkewingExample: Printer Cable
Presenter: Michael Lennard
Transmitter
Receiver
One
‘Word’Slide4
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, EthernetPresenter: Michael Lennard
Transmitter
Receiver
One WordSlide5
Serial Data Transmission
Two Basic Types of Serial Data Transmission
Synchronous
Asynchronous
Two solutions to same problem - Receiver needs to know
When data startsWhen data stops
If data was processed correctly
Presenter: Michael LennardSlide6
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
1
23Slide7
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
Parity
Stop
StartSlide8
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/SymbolBit rate is the absolute rate at which bits are transmitted
Can be changed for each port
Presenter: Michael LennardSlide9
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
bitCharacters = Total bits – Overhead bits
Presenter: Michael LennardSlide10
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 LennardSlide11
Overview
Types of Data Transmission Michael Lennard
Parallel
Serial
Serial Communication
Synchronous
Asynchronous
Baud and Bit RatesAsynchronous Serial Transmission Zachary PetersSerial Communication With the HCS12 Bao NguyenExamples of data words are transmitted Slide12
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 transmissionPresenter: Zachary PetersSlide13
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 PetersSlide14
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 PetersSlide15
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 PetersSlide16
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 transmissionCan be used to send a full byte of data + parity bitExample: sending an addressLSB transmitted first
Presenter: Zachary PetersSlide17
Data Bits
Example:
8-bit mode:
1100010101111
ASCII Code in Data “T”9-bit mode: 11011010100011 Hex equivalent in Data $2B
Presenter: Zachary PetersDataStart BitStop Bits
Parity BitData
Start BitStop BitsParity BitSlide18
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 ParityParity bit = 1, if # of ones in the set is even (makes the total # of ones odd)
Presenter: Zachary PetersSlide19
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 = 1Presenter: Zachary PetersSlide20
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 bitRT3, RT5, RT7 are recorded Presenter: Zachary PetersSlide21
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 PetersSlide22
Overview
Types of Data Transmission Michael Lennard
Parallel
Serial
Serial Communication
Synchronous
Asynchronous
Baud and Bit RatesAsynchronous Serial Transmission Zachary PetersSerial Communication With the HCS12 Bao NguyenExamples of data words are transmitted Slide23
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 NguyenSlide24
SCI Control Register 1
SCICR1 - $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: OddSlide25
SCI Control Register 2
SCICR2
- $
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: enablesTE (transmit enable) – 0: disable transmitter, 1: enable
RE (receiver enable) – 0: disable receiver, 1: enablePresenter: Bao NguyenSlide26
SCI Status Register 1
SCISR1 - $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 NguyenSlide27
SCI Status Register 2
SCISR2 - $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 NguyenSlide28
SCI Data Registers
SCIDRH &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 NguyenSlide29
Asynchronous Data Transmission
Example 1:
Hex# 4A
16
is to be sent with one start bit, even parity, 8-bit data length and two stop bits
4A
16
= 0100 1010
2
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 NguyenSlide30
Asynchronous Data Transmission
Example 2:
Hex# B4
16
is to be sent with one start bit, even parity, 8-bit data length and two stop bits
B4
16
= 1011 0100
2
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 NguyenSlide31
Asynchronous Data Transmission
Example 3:
Hex# B4
16
is to be sent with one start bit,
odd
parity, 8-bit data length and two stop bits
B4
16
= 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 NguyenSlide32
Thank You!
Any Questions?