Você está na página 1de 30

Comunicao Serial

TRANSMISSO RECEPO

D7 D0
DESLOCAMENTO

DESLOCAMENTO
D6
D7 D1
D0
D5
D6
D7 D2
D1
D0
D4
D5
D6
D7 D3
D2
D1
D0
D3
D4
D5
D6
D7 D4
D3
D2
D1
D0
D2
D3
D4
D5
D6
D7 D5
D4
D3
D2
D1
D0
D1
D2
D3
D4
D5
D6
D7 D6
D5
D4
D3
D2
D1
D0
D0
D1
D2
D3
D4
D5
D6
D7 D7
D6
D5
D4
D3
D2
D1
D0

D0
D1
D2
D3
D4
D5
D6
D7 D0
D1
D2
D3
D4
D5
D6
D7

Canal de transmisso
Comunicao Serial
Direo da Transferncia dos Dados
a) SIMPLEX

FLUXO DE DADOS
TRANSM. RECEP.

b) HALF-DUPLEX

TRANSM. FLUXO DE DADOS TRANSM.

RECEP. RECEP.

c) FULL-DUPLEX

TRANSM. TRANSM.
FLUXO DE DADOS RECEP.
RECEP.
Comunicao Serial
Tipos de Comunicao Serial

Sncrona: um sinal de clock em separado associado com o


dado.

Assncrona: no existe sincronismo entre transmissor e


receptor - a re-sincronizao feita caractere
por caractere.
Comunicao Serial
Comunicao Serial Assncrona
Assncrona
a. Formato do Caractere
1, 1e 1/2 ou 2 stop bits
bits de repouso prximo
repouso
5 a 8 bits de dados caracter

1 0 1/0 1/0 1/0 1/0 1/0 1/0 1 1 1 1 1/0

start bit bit de paridade


start bit

b. Sincronismo
O sincronismo feito a cada caractere, atravs de um clock localizado no
receptor, cujo perodo K vezes menor do que o perodo de durao do bit.

TB = K.Tc
TB - tempo de durao do bit
Tc - perodo do clock de sincronismo do caractere
Comunicao Serial
Comunicao Serial Assncrona
Assncrona
c. Deteco do Start Bit (K=16)
TB= 16.Tc
1 0 0/1

1 0 0 0 0 0 0 0 0
Tc
Aps a amostragem de 8 zeros, garante-se o START bit, ou seja, o incio
do caractere.

.
d. Temporizao na Recepo do caractere ( K=16)
.
start bit bit de paridade
TB D 0 D1 D2 D3 D4 D5 D6 D7
1 0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 stop bit

8 Tc 16 Tc 16 Tc 16 Tc 16 Tc 16 Tc 16 Tc 16 Tc 16 Tc 16 Tc 16 Tc
Comunicao Serial
Comunicao Serial Assncrona
Assncrona
e. Velocidade de Comunicao
Considerando um caractere formado por 11 bits, como segue:
1 start bit
8 bits de dados
1 bit de paridade
1 stop bit
Considerando por exemplo, uma velocidade de comunicao de 10
caracteres por segundo, tem-se:
11 bits/caractere x 10 caracteres/s = 110 bits/s

Define-se:
BAUD = bits/s

BAUD RATE = Taxa de Comunicao


Comunicao Serial
Comunicao Serial Assncrona
Assncrona

f. Taxas de Comunicao mais Comuns

Taxa TB
110 Baud . 9.1 ms
150 Baud . 6.66 ms
300 Baud . 3.33 ms
600 Baud . 1.66 ms
1200 Baud 833 us
2400 Baud 416 us
4800 Baud 208 us
9600 Baud . 104 us
19200 Baud 52 us
Comunicao Serial RS 232 - C
Padronizada pela EIA ( Electronic Industries Association - USA)

RS : Recommended Standard
232 : nmero da norma
C : nmero de revises da norma

Tipo de comunicao : Serial Assncrona


Caractersticas da Interface
Taxa de Comunicao de 75 Baud a 19200 Baud

Comprimento do cabo de ligao entre equipamentos:


menor do que 15 metros, sem amplificao.

No existe isolao eltrica entre os equipamentos


Comunicao Serial RS 232 - C

Um Protocolo de Comunicao de Dados estabelece regras para a


comunicao entre um DTE e um DCE ou entre um DTE e um DTE.

DTE : Data Terminal Equipment


Equipamento que compreende a fonte de dados, a recepo de dados ou
ambos

DCE : Data Communication Equipment


Equipamento que providencia as funes necessrias para manter uma
conexo de dados, e realizar a converso do sinal necessria comunicao
entre um DTE e o circuito de comunicao.
Comunicao Serial RS 232 - C

Caractersticas Eltricas do Sinal

Lgica Negativa

STATUS
nvel lgico 1 0
nvel de tenso - 25V a -3V + 3 V a + 25V
funo OFF ON
condio do sinal MARK SPACE
Comunicao Serial RS 232 - C

Transmisso Recepo
+25V +25V
- SPACE -SPACE
- NIVEL 0 - NVEL 0
- ON - ON
+5V 2V +3V
regio de
regio de
transio
transio
2V -3V
-5V
- MARK - MARK
- NIVEL 1 MARGEM DE RUDO - NIVEL 1
- OFF - OFF
-25V -25V
Comunicao Serial RS 232 - C
Caractersticas Mecnicas da Interface
- Conector de 25 pinos - DB 25 13 1

DB 25 P (macho) - DTE
DB 25 S (fmea) - DCE
Conjunto de Sinais para o DTE 25 14

PINO NOME FUNO PINO NOME FUNO


1 GND Terra da carcaa 13 SCTS CTS secundrio
2 TXD Transmisso de dados 14 STxD Transmisso secundrio
3 RXD Recepo de dados 15 TSET Transmit Signal Element Timing
4 RTS Request To Send 16 SRxD Recepo secundrio
5 CTS Clear To Send 17 RSET Receive Signal Element Timing
6 DSR Data Set Ready 18 - No usado
7 GND Terra do sinal 19 SRTS RTS secundrio
8 DCD Data Carrier Detect 20 DTR Data Terminal Ready
9/10 - reservado para testes 21 SQD Signal Quality Detector
no conjunto de dados 22 RI Ring Indicator
11 - No usado 23 DSRS Data Signal Rate Select
12 SDCD DCD secundrio 24 TSET Transmit signal Element Timing
25 - No usado
Comunicao Serial RS 232 - C
Caractersticas Funcionais do Circuito
Transmisso de Dados (TxD)
TxD
DTE DCE

Esta linha permanece em nvel lgico 1 (tenso negativa), enquanto no


tiver dados.

Recepo de Dados (TxD)

RxD
DTE DCE

Esta linha permanece em nvel lgico 1 (tenso negativa), enquanto no


tiver dados.
Comunicao Serial RS 232 - C

Comunicao Serial com Handshaking

TxD

DTE RTS DCE


CTS RTS Request to Send
CTS Clear to Send

RTS

CTS

TxD DADO SERIAL


Comunicao Serial RS 232 - C
Implementao em Microcomputadores

TXD TXD
2 2 2 2
RXD RXD
3 3 3 3
4 RTS
4
5 CTS
5
DTE 6 DSR DCE DTE DCE
6
7 GND 7 GND 7
7
8 DCD
8
DTR
20 20
RI
22 22

Full Duplex Padro Trs Fios


Comunicao Serial RS 232 - C

Modem Nulo Trs Fios com Loop de Luxo


TXD TXD
2 2 2 2
RXD RXD
3 3 3 3
4 4
5 5
DTE DTE DTE 6 6 DCE
7 GND 7 7 GND 7
8 8
20 20

pino 4: RTS pino 8: DCD


pino 5: CTS pino 20: DTR
pino 6: DSR
Interface
InterfaceSerial
Serialno
noMicrocontrolador
Microcontrolador8051
8051
A porta serial full-duplex
F8
F0 B
Para
ParaTransmitir
Transmitirum
um E8

Dado
DadoSerialmente
Serialmente
E0
D8
ACC

D0 PSW
Escrever
Escreverno
noSBUF
SBUF C8 T2CON T2MOD RCAP2L RCAP2H TL2 TH2

C0
B8 IP
B0 P3
A8 1E
A0 P2
Para
ParaReceber
Receberum
um 98 SCON SBUF

Dado
DadoSerialmente
Serialmente
90 P1
88 TCON TMOD TL0 TL1 TH0 TH1
80 P0 SP DPL DPH PCON
Ler
Lerdo
doSBUF
SBUF
Os registradores SBUF de recepo e de
transmisso so fisicamente separados.
Interface
InterfaceSerial
Serialno
noMicrocontrolador
Microcontrolador8051
8051
F8
F0 B
E8
E0 ACC
D8
D0 PSW
C8 T2CON T2MOD RCAP2L RCAP2H TL2 TH2

C0
B8 IP
B0 P3

SCON
SCON Usado
Usadopara
A8 1E
para
A0 P2
programar
programaraaInterface
InterfaceSerial
Serial 98 SCON SBUF
90 P1
Enderevel a Bit
88 TCON TMOD TL0 TL1 TH0 TH1
80 P0 SP DPL DPH PCON

PCON
PCON Possui
Possuium
umbit
bit(SMOD)
(SMOD)
que
quepermite
permitedobrar
dobrarBaud
BaudRate
Rate
No enderevel a Bit
Interface
InterfaceSerial
Serialno
noMicrocontrolador
Microcontrolador8051
8051
A porta serial pode operar em 4 Modos
Modo 0 Modo Sncrono: O dado serial (de 8 Bits com LSB primeiro)
transmitido e recebido atravs de RxD. O TxD envia o clock. A Taxa de
Comunicao (baud rate) fixa em 1/12 da freqncia do oscilador .

Modo 1 Modo Assncrono: 10 Bits so transmitidos (via TxD) ou recebidos (via


RxD) : 1 StartBit, 8 Bits de dados com LSB primeiro e um StopBit. O baud rate
varivel .

Modo 2 Modo Assncrono: 11 Bits so transmitidos (via TxD) ou recebidos (via


RxD) : 1 StartBit, 8 Bits de dados com LSB primeiro, um nono Bit programvel, e
um StopBit . O baud rate programvel para 1/32 ou 1/64 da freqncia do
oscilador.

Modo 3 Modo Assncrono: 11 Bits so transmitidos (via TxD) ou recebidos (via


RxD) : 1 StartBit, 8 Bits de dados com LSB primeiro, um nono Bit programvel, e
um StopBit. O baud rate varivel .
Programao dos Modos de Operao da Interface Serial

Registrador de Controle da Porta Serial - SCON


Enderevel a Bit

SCON SM0 SM1 SM2 REN TB8 RB8 TI RI

Modo de
SM0 SM1 Taxa de Transmisso
Funcionamento
0 0 0 Fclock / 12
0 1 1 Varivel (10 bits)
1 0 2 Fclock / 32 ou Fclock / 64
1 1 3 Varivel (11 bits)

SM2 - Habilita a comunicao em multiprocessadores nos modos 2 e 3 .


No modo 0 , SM2 deve ser igual a zero .
Programao dos Modos de Operao da Interface Serial

SCON SM0 SM1 SM2 REN TB8 RB8 TI RI

REN - Habilita a recepo serial 1 Habilita a recepo Serial


0 Desabilita a recepo Serial

TB8 - o nono bit de dados que ser transmitido nos modos 2 e 3. Setado
ou zerado por Software.

RB8 - o nono bit de dado que foi recebido nos modos 2 e 3. No Modo 1,
se SM2=0 RB8 o StopBit recebido. No Modo 0 RB8 no
usado.

TI - Flag de Interrupo da Transmisso. Setado por Hardware no fim do


oitavo bit no Modo 0, ou no comeo do StopBit nos outros Modos.

RI - Flag de Interrupo da Recepo. Setado por Hardware no fim do


oitavo bit no Modo 0, ou na metade do tempo do StopBit, nos outros
Modos.
((Baud Rates)Taxas
Baud Rates) Taxasde
decomunica
comunicao
o

Modo 0 : Baud Rate fixo. = Freqncia do oscilador / 12


Modo 2 : Baud Rate fixo. = Freqncia do oscilador / 32 ou 64

Modo 1 ou Modo 3 : Baud Rate varivel. Pode ser gerado tanto pelo Timer 1
ou Timer 2 (8052)
O T1 usado no Modo 2 (Auto Reload) como Timer (C/T = 0)

K (Freqncia do Oscilador )
BaudRate =
32 12 [256 (TH 1)]

Se SMOD = 0 ento K=1 (default)


Se SMOD = 1 ento K=2 Presente apenas nas
verses CHMOS

PCON SMOD -- -- -- GF1 GF2 PD IDL


Presente em todas as
verses bit 7 bit 0
((Baud Rates)Taxas
Baud Rates) Taxasde
decomunica
comunicao
o

Logo, deve-se calcular o valor de TH1 (Byte mais significativo do


Contador 1, que no Modo 2 carregado em TL1 no fim de cada
contagem)
TH1 um valor inteiro de 8 Bits (de 00 a 255)

K (Freqncia do Oscilador )
TH 1 = 256
384 (Baud Rate )

Arredonda-se TH1 para o inteiro mais prximo.


Como o arredondamento pode no produzir o Baud Rate desejado,
deve-se escolher uma outra freqncia para o cristal adotando-se o
valor arredondado de TH1.
Exemplo:
Exemplo:

Gerar a Taxa de Comunicao de 19,2 KBPS (19.200 BPS) sendo a


freqncia do cristal de 12 MHz.

K (Freqncia do Oscilador )
TH 1 = 256
384 (Baud Rate )

Fazendo SMOD = 1 ento K = 2


2 12 10 6
TH 1 = 256 = 252,74 253 0 FDh
384 19200

Como TH1 deve ser inteiro, deve-se ajustar a freqncia do cristal :


BaudRate 384 (256 TH 1)
Freqncia do Oscilador =
K

19200 384 (256 253)


Freqncia do Oscilador = = 11059200 Hz = 11.059 MHz
2
Operao no Modo1: Comunicao serial Assncrona. (10 Bits)

Transmisso :

1. A transmisso comea escrevendo-se o dado em SBUF

MOV SBUF,#dado

2. Quando o MSB for transmitido, o bit TI de SCON setado.


Operao no Modo1: Comunicao serial Assncrona. (10 Bits)

Recepo :

1. Iniciada quando uma transio de 1 para 0 detectada em RxD . A linha


amostrada 16 vezes. O valor aceito aps 2 ou 3 amostras para evitar
rudo (falso StartBit)

2. O dado recebido deslocado por um Shift Register e ao final carregado


em SBUF, o StopBit em RB8 e RI setado .

3. Isto s ocorre se a seguinte condio existir no final da ltima recepo


a) Ri =0

b) SM2 ou StopBit recebido = 1

Se estas condies no ocorrerem, o dado foi perdido


Exemplo: Transmitir o cdigo ASCII da letra A pelo canal serial a um taxa de 1200 BPS.
Considerar o cristal da CPU de 11,0592 MHz.
Timer 1 Timer 0
ORG 0 GATE C/T M1 M0 GATE C/T M1 M0

MOV TMOD,#20h ;TMOD = 00100000 Timer 1 no


;Modo 2, controle por software
K (Freqncia do Oscilador )
TH 1 = 256
384 (Baud Rate )
MOV TH1,#232 ;valor 232 em TH1 e TL1 para
;gerar a Taxa de Comunicao de
MOV TL1,#232 ;1200 BPS com fc=11,0592 MHz e
; K=1(default)
SETB TR1 ;Dispara Temporizador
MOV SCON,#40h ;SCON = 01000000 modo 1 do
;Canal Serial
SM0 SM1 SM2 REN TB8 RB8 TI RI

MOV SBUF, #A ; Transmite o caractere ASCII A


JNB TI,$ ; Espera terminar a transmisso
CLR TI ; Prepara para nova transmisso
SJMP $ ; Pra
Exemplo: Receber um cdigo ASCII pelo canal serial a um taxa de 1200 BPS.
Considerar o cristal da CPU de 11,0592 MHz.

SCON SM0 SM1 SM2 REN TB8 RB8 TI RI


ORG 0
MOV TMOD,#20h ;TMOD = 00100000 Timer 1 no
;Modo 2, controle por software
MOV TH1,#232 ;valor 232 em TH1 e TL1 para
;gerar a Taxa de Comunicao de
MOV TL1,#232 ;1200 BPS com fc=11,0592 MHz e
; K=1(default)
SETB TR1 ;Dispara Temporizador
MOV SCON,#40h ;SCON = 01000000 modo 1 do
;Canal Serial
SETB REN ; Habilita a Recepo
JNB RI,$ ;Espera terminar a recepo
MOV A, SBUF ; L o dado recebido serialmente
CLR RI ; Prepara para nova recepo
SJMP $ ; Pra
Exemplo: Receber e Transmitir qualquer caractere ASCII pelo canal serial a um taxa de
1200 BPS, utilizando a Interrupo.
Considerar o cristal da CPU de 11,0592 MHz.
.
Exerccio:
Exerccio:

Construir um programa que seja capaz de enviar pela


porta serial uma frase armazenada na memria de
programa do microcontrolador, toda vez que o nmero
50h (cdigo ASCII da letra P) for recebido pela porta
serial.
Utilizar Baud Rate de 9600.
Construir em duas verses:
1 - sem o uso da interrupo serial;
2 utilizando interrupo serial.

Você também pode gostar