42
Microcontroladores Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão Interface Serial e RTC

Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

  • Upload
    vantruc

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Microcontroladores

Prof. Guilherme PeronProf. Heitor S. LopesProf. Ronnier Rohrich

Prof. Rubão

Interface Serial e RTC

Page 2: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Conceitos● Paridade

○ Bit acrescentado ao dado, destinado à detecção de erro. A paridade simples detecta 1 erro, mas não corrige:■ Paridade par: número par de bits no estado 1,

incluindo o bit de paridade.■ Paridade ímpar: número ímpar de bits no estado 1,

incluindo o bit de paridade.○ Ex: caráter ASCII ‘A’é 65d=41h: 01000001b tem 2 bits

em 1:■ Se for usada a paridade ímpar: acrescenta-se mais

um bit 1 (3 bits 1 é ímpar): 010000011b■ Se for usada a paridade par: acrescenta-se mais um

bit 0 (2 bits 1 é par): 010000010b

Page 3: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Conceitos● Tanto o transmissor quanto receptor devem ter as

mesmas configurações quanto à velocidade, tamanho da palavra, paridade e número de stop bits.○ A paridade deve ser previamente definida entre TX e

RX: par, ímpar ou sem paridade.○ Normalmente se usa 1 ou 2 stop bits. Estes devem

garantir que o receptor tenha tempo de receber e armazenar o caráter, antes de receber o próximo.

○ A quantidade de bits na informação transmitida também pode variar: de 5 a 8 bits.

● Bit rate é o número de bits por segundo transmitidos através da interface serial.

Page 4: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Conceitos● Quando não há dados sendo transmitidos, a linha fica

em nível lógico 1.● O receptor reconhece a borda de descida do Start Bit e

sincroniza seu clock● Após 1 ciclo e meio começa a fazer a leitura dos

demais bits a cada clock

Page 5: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Padrão Elétrico da RS232-C● Opera com tensões referenciadas ao terra

○ Nível lógico 0: entre +3 e +25V (usualmente +12V)○ Nível lógico 1: entre -3 e -25V (usualmente -12V)

● Taxas de transmissão padronizadas: 110, 300, 600, 1200, 2400, 4800, 9600 e 19200

Page 6: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Driver de linha para RS232-C● MAX232:

○ Utiliza alimentação simples (0 e 5V)

○ Gera internamente tensões simétricas +12V e -12V

○ Tem 2 drivers e 2 receivers em um único chip.

○ Máx. bit-rate: 120kbps

Page 7: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Introdução

Page 8: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Interrupção serial no AT89C5131● USART - Porta serial TxD e RxD (P3.0 e P3.1)(Universal Synchronous - Assynchronous Receive-Transmit)● Modo de comunicação Full-duplex ● Endereço de hardware 0023h na memória de programa● Flags TI e RI responsáveis por atender a interrupção, ou

seja quando receber um dado pelo pino de RX (P3.0), o flag RI levanta. Na transmissão segue o mesmo processo, onde o flag TI levanta a partir do momento que o dado sai pelo pino TX (P3.1)

● Programação de registros adicionais (SBUF, SCON)● Pode operar em 03 modos assíncronos (modo 0 a 3) e 01

modo síncrono (Modo 0) que ele chama de shift register.

Page 9: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Endereço da interrupção serial

Page 10: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Flag da interrupção serial

Page 11: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Comunicação serial no 8051● SCON: byte que especifica o modo e o status

da comunicação● SBUF: registrador duplo, um para Tx e outro

para Rx

Page 12: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Byte de controle SCON● Endereço 98H do SFR

Page 13: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Byte de controle PCON● Endereço 87H do SFR

○ Não é bit-endereçável, deve ser modificado com a operação lógica OR:■ ORL PCON, #80H

Page 14: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Modos de operação● 4 modos possíveis, definidos pelos bits SM0 e

SM1● Define comunicação síncrona (modo 0) ou

assíncrona (demais modos)

Page 15: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Modo 0● Shift-register de 8 bits

● Pino P3.0 funciona como transmissor e receptor

● Pino P3.1 funciona como clock de referência

● Baud-rate fixo fclock/12

● Normalmente não é usado para comunicação.

Page 16: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Aplicação do Modo 0● Paginação de memória ou expansão de I/O

Page 17: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Modo 1● UART de 8 bits com taxa de comunicação

variável● O clock é ajustável através do timer 1● Transmissão de 10 bits: 1 start bit (1->0), 8 bits

de dado, 1 stop bit (0 -> 1)● A paridade é opcional e deve ser gerada por

software● Ao receber um byte, RI=1, SBUF=byte,

RB8=stop bit

Page 18: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Modos 2 e 3● UART de 9 bits com taxa de comunicação fixa (modo 2)

ou variável (modo 3)● Baud-rate:

○ Modo 2: o clock é fixo em 1/32 ou 1/64 de fclock do 8051 (ajustado pelo bit do SMOD do PCON)

○ Modo 3: o clock é ajustável através do timer 1● Comunicação com 11 bits: 1 start bit (1->0), 8 bits de

dado, 1 bit programável (em TB8/RB8), 1 stop bit (0 -> 1)

● A paridade é gerada automaticamente no bit P (PSW.0) ap artir do Acc e pode ser utilizada: PSW.0 => TB8

Page 19: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Controle das interrupções● TI (Transmit Interrupt)

○ TI=1 por hardware após transmitir o oitavo bit (modo 0) ou no início do stop bit (modos 1, 2, 3)

○ Deve ser zerado (TI=0) pela rotina de atendimento de interrupção

● RI (Receive Interrupt)○ RI=1 por hardware após receber o oitavo bit (modo

0) ou no meio do stop bit (modos 1, 2, 3)○ Deve ser zerado (RI=0) pela rotina de atendimento

de interrupção

Page 20: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Taxa de Transmissão - Baud rate ● A taxa pode ser programada através de um clock

externo, ou utilizar o mesmo clock do microcontrolador

Page 21: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Taxa de Transmissão - Baud rate ● Pode envolver o registro BDRCON, para controle da

taxa

Page 22: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Taxa de Transmissão - Baud rate

Page 23: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Baud-rates típicos● Calma que não precisa calcular para xtal 24.00 MHz

Page 24: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Baud-rates típicos● Calma que não precisa calcular para xtal 24.00 MHz

Page 25: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Leitura e envio de dados pela serial● Os dados devem ser lidos ou escritos em

SBUF (99H).● Por exemplo, para escrever o caráter ‘X’ na

porta serial:

MOV SBUF,#’X’

● Para ler um byte recebido pela serial:

MOV A,SBUF

Page 26: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Exemplo - ProgramaçãoORG 0023h ;endereço serial ljmp serial_intRETI ; quando sair da int serial, volta ao main

MAIN PROGRAM...CLR SM0SETB SM1 ;UART mode 1 (8-bit variable)CLR SM2 ;sem multi processamentoSETB EA ; habilita todas interrupçõesSETB REN ;habilita recepção da serialSETB ES ;habilita a interrupção serial

Page 27: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Exemplo - Programaçãocontinuação do Main--------------------

;definição de taxa (baud rate) em 4800 bps (bps por seg)MOV BRL,#243MOV BDRCON,#00000110b ; RBCK e SPD=1ORL PCON,#1000000b ; mascara SMOD=1 sem mexer nos ; demais bitsORL BDRCON,#00010000b ;set BRR=1 sem mexer no resto

Page 28: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Exemplo - Programaçãocontinuação do Main--------------------

; timer initializationMOV TMOD,#1 ;timer0 no modo1 (recarga automatica)MOV TH0,#00hMOV TL0,#00hSETB ET0 ;habilita int timer0SETB TR0 ;liga o timer e deixa ele ligado ever

JMP $ ; vamos ficar na mesma linha no main

(Ou seja o programa principal não irá executar nada. Só recebe e manda via serial)

Page 29: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Exemplo - Programaçãocontinuação da subrotina de atendimento da serial--------------------;SERIAL INTERRUPTserial_int: JNB RI,ri_not_set ;esperando recepção CLR RI ; byte recebeu, então devo zerar RI ; para novo byte entrar MOV A,SBUF ;byte recebido e armazenado no acc SJMP end_serial ; vai pro final da subrotina

ri_not_set: CLR TI ; se chegou aqui, é pq houve apenas ; transmissão ;então zera-se o flag de transmissãoend_serial: RET

Page 30: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Real-Time Clock

Page 31: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

RTC● Para que serve um RTC?

○ Real-Time Clock○ DS1307

Page 32: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Características do DS1307● Conta segundos, minutos, horas, dia do mês, mês, dia da

semana e ano● Correção automática para ano bissexto● Baixíssimo consumo com bateria: 500nA● Contém uma memória RAM de 56 bytes● Contém um gerador de onda quadrada programável (1 Hz,

4 KHz, 8 KHz, 32 KHz)● Utiliza a interface 2-wire (I2C) com frequência máxima do

clock SCL de 100 KHz (modo standard)● Utiliza um cristal oscilador de 32,768KHz

Page 33: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Mapas de endereços e registradores

Page 34: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Características ● O conteúdo dos dados está em BCD● Bit 7 do registrador 0 (CH) liga (0)/desliga

(1) o clock● Ao ligar o chip, o conteúdo dos

registradores é indeterminado● Bit 6 do registrador de horas seleciona o

modo 12/24● No modo 12 horas, o bit 5 é AM/PM

Page 35: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Gerador de onda quadrada ● Registrador de controle

● SQWE: habilita o gerador (em 1)● OUT: nível lógico de SQW/OUT quando SQWE=0● RS1/RS0: seleção da frequência gerada:

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

OUT 0 0 SQWE 0 0 RS1 RS007h

Page 36: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Transferência de dados (I2C) ● Slave Address: 1101000

Page 37: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Ligação do DS1307 no kit

Page 38: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

TWI no AT89C5131 ● Equivalente à I2c

Page 39: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Registrador SSCON (93h) ● Synchronous Serial Control Register:

○ CR0, CR1 e CR2 selecionam velocidade - ver datasheet

Page 40: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Registrador SSDAT (95h) ● Synchronous Serial Data Register (R/W):

Page 41: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Registrador SSCS (94h) ● Read-Synchronous Serial Control and Status Register

○ Códigos de status - ver datasheet

Page 42: Interface Serial e RTC - ct.utfpr.edu.brct.utfpr.edu.br/deptos/cpgei/bioinfo/bioserver/disciplinas/sist... · Bit acrescentado ao dado, destinado à detecção de erro. A paridade

Registrador SSADR (96h) ● Synchronous Serial Address Register (R/W)