Escolar Documentos
Profissional Documentos
Cultura Documentos
Comunicação Serial
PIC16F877A
Sumário
1 Introdução
5 Interface com PC
Tipos de Comunicação
Direção do Fluxo de Dados
Tipos de Comunicação
Quantidade de Vias de Dados por Fluxo
Comunicação Síncrona
Mestre: Sistema responsável pela geração do sinal de clock
Escravo: Sistema que monitora o sinal de sincronismo,
reagindo nas transições relevantes.
Atenção
O mestre não é, necessariamente, o transmissor. Ele apenas gera o
sinal de sincronismo. O escravo deve diferenciar, de alguma forma,
as requisições de escrita das requisições de leitura.
Comunicação Síncrona
Exemplo: Mestre recebendo dados
Comunicação Síncrona
Exemplo: Mestre enviando dados
Comunicação Assíncrona
Visão Geral
RCSTA
SPBRG
USART TXSTA
RCREG
TXREG
Configuração
Configuração
Pacotes de 9 bits
Bit de Paridade
O 9◦ bit pode ser o bit de paridade, mas a verificação de
integridade é feita por software.
Configuração
Baud Rate
BRGH = 0 BRGH = 1
fOSC fOSC
Assíncrono Baud = Baud =
64(X + 1) 16(X + 1)
fOSC
Síncrono Baud = –
4(X + 1)
SPBRG = round(X ) 0 ≤ SPBRG ≤ 255
Sistemas Microprocessados Comunicação Serial
Introdução
Comunicação Serial Síncrona
Comunicação Serial Assíncrona
Porta Serial no PIC16F877A
Interface com PC
Configuração
Baud Rate
|BaudIDEAL − BaudREAL |
Erro% =
BaudIDEAL
9.6 1 25 0.16
19.2 1 12 0.16
Configuração
Resumo
Registrador RCSTA
SPEN Ativa porta serial
SREN Habilita recepção singular
CREN Habilita recepção contínua
RX9 Habilita recepção de 9 bits
RX9D Nono bit recebido
Registrador TXSTA
SYNC Comunicação síncrona (1) ou assíncrona (0)
CSRC Mestre (1) ou escravo (0) ; SYNC=1 apenas
TXEN Habilita a transmissão
BRGH Modo alta velocidade (1) ou baixa velocidade (0)
TX9 Habilita transmissão de 9 bits
TX9D Nono bit a ser enviado
Registrador SPBRG: Baud Rate
Sistemas Microprocessados Comunicação Serial
Introdução
Comunicação Serial Síncrona
Comunicação Serial Assíncrona
Porta Serial no PIC16F877A
Interface com PC
Recepção
Recepção serial usa um registrador de deslocamento, RSR, não
acessível para leitura e escrita
Byte recebido vai para um fila de 2 bytes, acessada pelo
registrador RCREG
Quando o software lê RCREG, a CPU é notificada que o byte
recebido será processado e então o registrador aponta para o
próximo byte da fila (caso exista)
Flag RCSTAbits.OERR (somente leitura) indica erro por
Overrun, situação onde já existem 2 bytes na fila e o bit de
parada de um terceiro pacote é detectado
nesse caso, o byte mais recente não sai do registrador RSR e é
descartado
na ocorrência desse erro, o flag deve ser zerado, indiretamente,
fazendo CREN = 0
Sistemas Microprocessados Comunicação Serial
Introdução
Comunicação Serial Síncrona
Comunicação Serial Assíncrona
Porta Serial no PIC16F877A
Interface com PC
Recepção
Recepção
Detecção de Endereços
Quando RCSTAbits.ADDEN=0
todos os pacotes são recebidos e acessados por RCREG
Recepção
Detecção de Endereços
Transmissão
Exemplo
Programa Echo
1 #include "config877a.h"
2 #include <xc.h>
3 void main() {
4 TRISCbits.TRISC6 = 1; //para usar o periférico,
5 TRISCbits.TRISC7 = 1; //RC6 e RC7 devem ser entradas
6 TXSTAbits.TXEN = 1; //ativa transmissão
7 TXSTAbits.BRGH = 1; //Modo de alta velocidade
8 SPBRG = 25; //BaudRate = 9600bps
9 RCSTAbits.SPEN = 1; //ativa porta serial
10 RCSTAbits.CREN = 1; //habilita recepção contínua
11 INTCONbits.GIE = 1; //chave global
12 INTCONbits.PEIE = 1; //chave de grupo
13 PIE1bits.RCIE = 1; //chave individual (recepção)
14 while(1); //loop infinito
15 }
Sistemas Microprocessados Comunicação Serial
Introdução
Comunicação Serial Síncrona
Comunicação Serial Assíncrona
Porta Serial no PIC16F877A
Interface com PC
Exemplo
Programa Echo (continuação)
Características Elétricas
Interface RS-232
Interface RS-232
Interface RS-485
Interface RS-485
Tensão Diferencial e Resistência a Ruídos
Interface RS-485
Interface USB
Datasheet do PIC16F877A
http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf
PICmicro Mid-Range MCU Family Reference Manual
http://ww1.microchip.com/downloads/en/DeviceDoc/31000a.pdf
Desbravando o PIC - Ampliado e Atualizado para PIC 16F628A
David José de Souza