pc/cp 364- serial communication-uartdenethor.wlu.ca/pc364/uartbeam.pdf · 2016-12-15 · arduino...

Post on 11-Jul-2020

13 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Serial Communication -UARTArduino Serial Library

PC/CP 364Serial Communication-UART

Terry Sturtevant

Wilfrid Laurier University

December 15, 2016

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Serial Communication -UART

Universal Asynchronous Receiver TransmitterSimplest form of serial communicationBetween 2 devicesUses 2 signals (and Ground), Rx and TxAsynchronous, so both must agree on baud rate

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Serial Communication -UART

Universal Asynchronous Receiver Transmitter

Simplest form of serial communicationBetween 2 devicesUses 2 signals (and Ground), Rx and TxAsynchronous, so both must agree on baud rate

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Serial Communication -UART

Universal Asynchronous Receiver TransmitterSimplest form of serial communication

Between 2 devicesUses 2 signals (and Ground), Rx and TxAsynchronous, so both must agree on baud rate

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Serial Communication -UART

Universal Asynchronous Receiver TransmitterSimplest form of serial communicationBetween 2 devices

Uses 2 signals (and Ground), Rx and TxAsynchronous, so both must agree on baud rate

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Serial Communication -UART

Universal Asynchronous Receiver TransmitterSimplest form of serial communicationBetween 2 devicesUses 2 signals (and Ground), Rx and Tx

Asynchronous, so both must agree on baud rate

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Serial Communication -UART

Universal Asynchronous Receiver TransmitterSimplest form of serial communicationBetween 2 devicesUses 2 signals (and Ground), Rx and TxAsynchronous, so both must agree on baud rate

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Communication parameters

1 Start bit at “0” levelLSB transmitted firstCan have odd, even, or no parity bit1 or 2 Stop bits at “1” level

Since start and stop bits are opposite, new characters can alwaysbe detected.

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Communication parameters

1 Start bit at “0” level

LSB transmitted firstCan have odd, even, or no parity bit1 or 2 Stop bits at “1” level

Since start and stop bits are opposite, new characters can alwaysbe detected.

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Communication parameters

1 Start bit at “0” levelLSB transmitted first

Can have odd, even, or no parity bit1 or 2 Stop bits at “1” level

Since start and stop bits are opposite, new characters can alwaysbe detected.

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Communication parameters

1 Start bit at “0” levelLSB transmitted firstCan have odd, even, or no parity bit

1 or 2 Stop bits at “1” level

Since start and stop bits are opposite, new characters can alwaysbe detected.

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Communication parameters

1 Start bit at “0” levelLSB transmitted firstCan have odd, even, or no parity bit1 or 2 Stop bits at “1” level

Since start and stop bits are opposite, new characters can alwaysbe detected.

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Communication parameters

1 Start bit at “0” levelLSB transmitted firstCan have odd, even, or no parity bit1 or 2 Stop bits at “1” level

Since start and stop bits are opposite, new characters can alwaysbe detected.

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0

LSB

1

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0

LSB

1

1 1

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0

LSB

1 2

1 1 1

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0

LSB

1 2 3

1 1 1 0

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0

LSB

1 2 3 4

1 1 1 0 0

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0

LSB

1 2 3 4 5

1 1 1 0 0 1

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0

LSB

1 2 3 4 5 6

1 1 1 0 0 1 1

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0

LSB

1 2 3 4 5 6 7

MSB

1 1 1 0 0 1 1 0

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start Stop

0

LSB

1 2 3 4 5 6 7

MSB

1 1 1 0 0 1 1 0

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start Stop

0

LSB

1 2 3 4 5 6 7

MSB

1 1 1 0 0 1 1 0

UART no parity - 01100111

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start Stop

Parity0 1 2 3 4 5 6 7

UART even parity

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start Stop

Parity0 1 2 3 4 5 6 7

UART even parity

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start Stop

Parity0 1 2 3 4 5 6 7

UART odd parity

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Baud rate calculation

Baud rate is the number of bits possible in a seconde.g. 9600 baud → 1 bit takes 1

9600 secondAfter start bit is detected, wait time for 11

2 bit to testfor first data bit and then after every 1 bit intervalResetting at the start bit allows some clock variation

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Baud rate calculation

Baud rate is the number of bits possible in a second

e.g. 9600 baud → 1 bit takes 19600 second

After start bit is detected, wait time for 112 bit to test

for first data bit and then after every 1 bit intervalResetting at the start bit allows some clock variation

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Baud rate calculation

Baud rate is the number of bits possible in a seconde.g. 9600 baud → 1 bit takes 1

9600 second

After start bit is detected, wait time for 112 bit to test

for first data bit and then after every 1 bit intervalResetting at the start bit allows some clock variation

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Baud rate calculation

Baud rate is the number of bits possible in a seconde.g. 9600 baud → 1 bit takes 1

9600 secondAfter start bit is detected, wait time for 11

2 bit to testfor first data bit and then after every 1 bit interval

Resetting at the start bit allows some clock variation

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Baud rate calculation

Baud rate is the number of bits possible in a seconde.g. 9600 baud → 1 bit takes 1

9600 secondAfter start bit is detected, wait time for 11

2 bit to testfor first data bit and then after every 1 bit intervalResetting at the start bit allows some clock variation

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0

1

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0 1

1 1

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0 1 2

1 1 1

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0 1 2 3

1 1 1 0

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0 1 2 3 4

1 1 1 0 0

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0 1 2 3 4 5

1 1 1 0 0 1

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0 1 2 3 4 5 6

1 1 1 0 0 1 1

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

0 1 2 3 4 5 6 7

1 1 1 0 0 1 1 0

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start Stop

0 1 2 3 4 5 6 7

1 1 1 0 0 1 1 0

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start Stop

0 1 2 3 4 5 6 7

1 1 1 0 0 1 1 0

Bit timing

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

RS232 communication

Voltages are inverted±3→ ±12Zero is not a valid voltageMark level (inactive/1) is a negative voltageSpace level (active/0) is a positive voltage

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

RS232 communication

Voltages are inverted

±3→ ±12Zero is not a valid voltageMark level (inactive/1) is a negative voltageSpace level (active/0) is a positive voltage

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

RS232 communication

Voltages are inverted±3→ ±12

Zero is not a valid voltageMark level (inactive/1) is a negative voltageSpace level (active/0) is a positive voltage

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

RS232 communication

Voltages are inverted±3→ ±12Zero is not a valid voltage

Mark level (inactive/1) is a negative voltageSpace level (active/0) is a positive voltage

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

RS232 communication

Voltages are inverted±3→ ±12Zero is not a valid voltageMark level (inactive/1) is a negative voltage

Space level (active/0) is a positive voltage

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

RS232 communication

Voltages are inverted±3→ ±12Zero is not a valid voltageMark level (inactive/1) is a negative voltageSpace level (active/0) is a positive voltage

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

ParityMark 0 1 2 3 4 5 6 7

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start

ParityMark

Space

0 1 2 3 4 5 6 7

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start Stop

ParityMark

Space

0 1 2 3 4 5 6 7

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Baud rate calculationRS232 communication

Start Stop

ParityMark

Space

0 1 2 3 4 5 6 7

RS232 levels

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Arduino Serial

Serial.begin(9600)start port and set baudratewhile(!Serial)wait to connectif (Serial.available() > 0)returns True if data available, False if not

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Arduino Serial

Serial.begin(9600)start port and set baudrate

while(!Serial)wait to connectif (Serial.available() > 0)returns True if data available, False if not

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Arduino Serial

Serial.begin(9600)start port and set baudratewhile(!Serial)wait to connect

if (Serial.available() > 0)returns True if data available, False if not

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Arduino Serial

Serial.begin(9600)start port and set baudratewhile(!Serial)wait to connectif (Serial.available() > 0)returns True if data available, False if not

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Arduino Serial (continued)

Serial.write(value)write valueSerial.print(’A’)write string as ASCIIinByte = Serial.read()read byteSerial.end()close port

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Arduino Serial (continued)

Serial.write(value)write value

Serial.print(’A’)write string as ASCIIinByte = Serial.read()read byteSerial.end()close port

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Arduino Serial (continued)

Serial.write(value)write valueSerial.print(’A’)write string as ASCII

inByte = Serial.read()read byteSerial.end()close port

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Arduino Serial (continued)

Serial.write(value)write valueSerial.print(’A’)write string as ASCIIinByte = Serial.read()read byte

Serial.end()close port

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Arduino Serial (continued)

Serial.write(value)write valueSerial.print(’A’)write string as ASCIIinByte = Serial.read()read byteSerial.end()close port

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Arduino Serial sample code

v o i d s e t u p ( ) {S e r i a l . b e g i n ( 9 6 0 0 ) ;w h i l e ( ! S e r i a l ) {

;}

}

v o i d l o o p ( ) {i f ( S e r i a l . a v a i l a b l e ( ) > 0) {

i n B y t e = S e r i a l . r e a d ( ) ;S e r i a l . w r i t e ( i n B y t e ) ;}

}

Terry Sturtevant PC/CP 364 Serial Communication-UART

Serial Communication -UARTArduino Serial Library

Arduino Serial sample code

v o i d s e t u p ( ) {S e r i a l . b e g i n ( 9 6 0 0 ) ;w h i l e ( ! S e r i a l ) {

;}

}

v o i d l o o p ( ) {i f ( S e r i a l . a v a i l a b l e ( ) > 0) {

i n B y t e = S e r i a l . r e a d ( ) ;S e r i a l . w r i t e ( i n B y t e ) ;}

}

Terry Sturtevant PC/CP 364 Serial Communication-UART

top related