51
Interfaces Seriais Interfaces Seriais

sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

  • Upload
    lamhanh

  • View
    215

  • Download
    2

Embed Size (px)

Citation preview

Page 1: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

Interfaces SeriaisInterfaces Seriais

����� ������� �

�������

Page 2: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

Conteúdo

� ���������������������

� ������������� ������������!

� �����"�������#���� ���������� ������������!

� ��!������������ ������������!

� $����"�����������%�����������"��������!

Page 3: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

Como conectar equipamentos uns aos outros?

������"��������&� �������'

�����!�!�

� (���!

�)���� ������������

Page 4: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

Interface Paralela

Equipamento 1 Equipamento 2

Dados + controle

Page 5: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Todos os bits de uma palavra são transmitidos simultaneamente

� Cada canal necessita de diversos fios

Vantagens:Vantagens:

- Maior velocidade.- Simplicidadedas interfaces.

Desvantagens:Desvantagens:

- Muitos fios > custo- Ruído, perda desincronismo ®Menores distâncias

Interface Paralela

Page 6: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

Equipamento 1 Equipamento 2

Dados+

controle

SSííncronancrona

AssAssííncronancrona

IsIsóócronacrona

Interface Serial

Page 7: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Transmissor e receptor utilizam o mesmo clock commesma freqüência e fase

� Transferência de blocos

� Cada bloco:� Caracteres de sincronismo� Dados� Checagem de erro

� Pequeno overhead:� para cada bloco: + 3 bytes (2 sincronismo, 1 checksum)

� ex.: bloco=1024 bytes + 3 bytes = 1027 bytes0,3% de tempo extra !

Tipos de Interfaces Seriais - 1

Síncrona

Page 8: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Clocks do transmissor e do receptor podem estar ligeiramente diferentes

� ressincronismo a cada byte

� Transferência de bytes� Para cada byte mais 2 ou 3 bits:

� start bit� bit de paridade� stop bits (1 a 2)

� Grande overhead:� para cada byte + 3 bits = 11 bits

= 37,5% de tempo extra!= < velocidade

Tipos de Interfaces Seriais - 2

Assíncrona

Page 9: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Clock incluído ou incorporado ao dado� ressincronismo a cada pacote

� Transferência de pacotes� Contínuo e sem checagem dos dados� Útil para aplicações de transferência de grande

quantidade de dados e sem precisão.� Ex: Vídeo conferência

Tipos de Interfaces Seriais - 3

Isócrona

Page 10: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

Padrões de Comunicação Serial

*&�+

*(���!��,�

*

*

*

*

*

��������

*

*

�����

�$$$-./01

2()

*�(-13�

*�(-1��

*

(�����

�(-�/�

������

Page 11: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

Padrões de Comunicação Serial

*(��

*��&

*(4#��

*4� ��5(���(���!

��������

�����

*

(�����

$,$�+$,

������

Page 12: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Facilidade de implementação

� Menor Custo

� Atualmente alcança velocidades compatíveis com as síncronas

Embora as interfaces seriais sEmbora as interfaces seriais sííncronas ncronas sejam mais rsejam mais ráápidas, as interfaces pidas, as interfaces seriais assseriais assííncronas são mais utilizadas.ncronas são mais utilizadas.

Page 13: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Conjunto de regras pelas quais informações ou dados (ex: números, letras) podem ser convertidos a uma representação do código e vice-versa.

� Para transmitir a informação através de uma interface énecessário que ela esteja codificada de alguma forma.

� A unidade mais básica de informação para nós é o bit, que pode ter valores 0 ou 1. Toda informação utilizada pelos computadores é codificada de alguma forma em seqüências de bits.

ComunicaComunicaçção Serial ão Serial AssAssííncronancrona

Código:

Page 14: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Abreviação de: American Standard Code for InformationInterchange.

� Código universal para intercâmbio de informações, concebido especialmente para utilização em transmissão, recepção e processamento de dados.

� ASCII para 7 bits: 27 = 128 caracteres podem ser representados.

� ASCII para 8 bits: 28 = 256 caracteres diferentes.� ex.: o código ASCII 0100 0001 = 65D = 41H representa o caractere "A" .

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

Código ASCII:

Page 15: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Bit acrescentado ao dado, destinado à detecção de erros.

� Paridade par: número par de bits no estado 1.

� Paridade ímpar: número ímpar de bits no estado 1.

� ex.: caractere "A”em ASCII de 7 bits: 1 0 0 0 0 0 1.

� com paridade ímpar:� como tem-se 2 bits no estado 1, o bit de paridade também será 1,

de forma que no total tem-se 3 bits em 1 (ímpar).

� bit de paridade: 1 1 0 0 0 0 0 1.

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

Paridade:(1)

Page 16: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Ex.: dado com bit de paridade: 1 1 0 0 0 0 0 1.

� vamos supor que por um erro de transmissão, um dos bits 0 transformou-se em 1:

� 1 1 0 0 0 0 0 1 -------> 1 1 0 0 1 0 0 1.

� ao verificar a paridade, o receptor perceberá que há um número par de 1, e indicará que houve algum erro na transmissão, e que esse byte éinválido.

� E se houver um número par de mudanças?

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

Paridade:(2)

Page 17: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Ex.:

Transmissão do caractere A em ASCII com paridade ímpar e dois stop bits:

1 1 0 0 0 0 0 1 = b7 b6 b5 b4 b3 b2 b1 b0

Start b0 b1 b2 b3 b4 b5 b6 b7 Stop Stop

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

Transmissão de um Caractere:

Page 18: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Quando não há dados sendo transmitidos, a linha fica em nível lógico 1.

� Paridade: par, ímpar ou sem paridade.

� Normalmente se usa 1 ou 2 stop bits. Estes devem garantir que o receptor terá tempo de receber e armazenar o caractere, antes de receber o próximo.

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

� Obs: Transmissor e receptor devem ter as mesmasconfigurações quanto a velocidade, tamanho da palavra, paridade e número de stop bits!

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

Transmissão de um Caractere:

Page 19: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� 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.

� Se as freqüências do transmissor e do receptor estiverem perfeitamente sincronizadas, as leituras serão efetuadas exatamente no meio de cada ciclo.

� Tolerância a pequenas variações dos clocks de Tx e Rx.

Start b0 b1 b2 b3 b4 b5 b6 b7 Stop Stop

Sincroniza demais leituras

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

Transmissão de um Caractere:

Page 20: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� É o número de transições (ou eventos) por segundo.

� Cada evento pode transmitir mais de 1 bit:

ex.: modems, onde a variação de fase da portadora poderia representar dois ou mais bits.

� Quando cada evento representa apenas 1 bit, então o Bit Rate e o Baud Rate são iguais.

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

Bit Rate:

�� ÉÉ o o nnúúmero de bits por segundo mero de bits por segundo transmitidostransmitidos atravatravéés da interface serial. s da interface serial.

Baud Rate:

Page 21: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

RS-XXX

Page 22: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Padrão físico e elétrico.� Conector DB25 (no caso dos computadores PC, usa-se normalmente um DB9,

com os principais sinais).6)�����6)0����������������������!

��������������/�������������,���� �6�����- ,*6�

/�������������������������������7�6�����- �*6�

1�������������8���������������9�������(��� - �,(�

��������������3�������������&!��� ���(��� - 6,(�

����������������������������6����(�������5- 6(��

8���������������������������(:��!;����� - ;+6�

3�������������.�������������6����&����� 6�����- 6&6�

.���������������������������,���� �&!���- ,*&��

.8������������������������������7�&!���- �*&��

�������������1�������������6����,�� ��!�����5- 6,��

�1����������������������������<!��5&!����

�������������0���������������:�������� - ���

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

RS-232:

Page 23: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Null Modems: Conector simplificado, usado para transferência de dados� Hyperterminal do Windows: permite desabilitar sinais de controle de fluxo.

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

RS-232

Page 24: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Padrão físico e elétrico

� Opera com tensões referenciadas ao terra.

� Nível lógico 0 : tensão entre +3 e +15V� Nível lógico 1: tensão entre - 3 e - 15V

Faixas de tensãoinválido

+ 15V nível lógico

0+3V

0V inválido- 3V

nível lógico 1

- 15Vinválido

Valores típicos: + 12V e - 12V

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

RS-232:

Page 25: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� "Single ended": sinal referenciado à terra

TxRxTerra = 0 V

� Problemas:� Quedas de tensão ao longo do fio

� Susceptível a ruídos e diferenças de potencial de terras

� Limite de distância +/- 15m (depende da taxa e qualidade do cabo)

� Taxa máxima: 20Kbps

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

RS-232:

Page 26: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� "Differencial Voltage Pairs": Sinal Diferencial

Tx + Va - Vb < - 0.2V = 0Tx - Va - Vb > +0,2V = 1

par trançado� Vantagens:

� Mais imune a cross-talk

� Mais resistente a quedas de tensão

� Limite de distância: +/- 1200m (depende da taxa e cabo)

� Taxa máxima: 10Mbps

� Não define conector

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

RS-422:

Page 27: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Semelhante ao RS-422, mas com drivers tri-state:� Permite topologias de redes multiponto.� Rede do tipo “mestre-escravo”.� Até 64 dispositivos.

� Componentes para RS 422 e RS 485:� Am26LS32 – driver.� Am26LS32 – receiver.� MAX 481 / 483 / 485 / 487 / 1487 - transceivers.

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

RS-485:

Page 28: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Exemplo de topologia de rede com RS 485

Mestre

Escravos

Tx Rx

End. 1

End. 0

Tx RxTx Rx

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

RS-485:

End. n - 1

Page 29: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Filosofia Mestre-Escravo:� 1 mestre, n - 1 escravos, cada um com o seu endereço.

� Mestre: toma a iniciativa da comunicação.

� Escravos: só respondem às mensagens a eles endereçadas.� TxD do mestre: Chega a todos RxD dos escravos.� TxD dos escravos:

� Em alta impedância, quando um escravo for responder, conecta seu transmissor.

� Mestre: fica ciclicamente interrogando um por um os escravos, que respondem com seus dados, se possuírem.

� Boa solução para sistemas com poucos dispositivos, baixo tráfego ou onde a velocidade não for crítica.

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

RS-485:

Page 30: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Universal Asynchronous Receiver / Transmiter.� Conversão paralela / serial.� Inserção / retirada automática do Start-bit e Parity bit.� Velocidades programáveis.� Interrupções para transmissão / recepção.� Indicação de erros.

� Exemplos:� 8251 e 82C51, da Intel.� 16550 (usado nos PCs).

ComunicaComunicaçção Serial Assão Serial Assííncronancrona

UART:

Page 31: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51

� UART interna:

� Muitos microcontroladores possuem UARTs internas, como o

80C51.

� Existem modelos de 80C51 com duas UARTs, como o DS80C320 da DALLAS.

� UART do 80C51:

� Pode-se facilmente escrever ou ler dados via interface serial.

� Realiza todo o processo de serialização, adição de start bits e stop bit.

� Permite transferência via interrupções ou “wait for flag”.

Page 32: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

Estrutura da UART do 80C51

Page 33: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51

� Usando a UART:

� São necessários os seguintes passos para configurar corretamente a UART interna do 80C51:

� Definir a taxa de comunicação.

� Definir a origem do clock de comunicação.

� Programar o canal serial.

� Habilitar / desabilitar interrupções, caso se deseje (a técnica de “wait for

flag” também pode ser utilizada).

Page 34: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51

� Usando a UART:

� Modos de Operação:

� Modo 0: Shift Register de 8 bits

� dado: RXD

� clock: TXD = 1/12 clock do 80C51(fixo)

Page 35: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51

� Usando a UART:

� Modos de Operação:

� Modo 1: UART de 8 bits com taxa de comunicação variável.

� dado: TXD e RXD.

� clock: ajustável através do Timer 1 (não pode ser o Timer 0).

� 10 bits: 1 start bit, 8 bits de dado, 1 stop bit.

� paridade: opcional, por software.

Page 36: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51

� Usando a UART:

� Modos de Operação:

� Modo 2: UART de 9 bits com taxa de comunicação fixa.

� dado: TXD e RXD.

� clock: 1/32 ou 1/64 clock do 80C51 (fixo).

� 11 bits: 1 start bit, 8 bits de dado, 9o. bit programável, 1 stop bit.

� paridade: opcional, por software.

Page 37: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51

� Usando a UART:

� Modos de Operação:

� Modo 3: UART de 9 bits com taxa de comunicação variável.

� dado: TXD e RXD.

� clock: ajustável através do Timer 1 (não pode ser o Timer 0).

� 11 bits: 1 start bit, 8 bits de dado, 9o. bit programável, 1 stop bit.

� paridade: opcional, por software.

Page 38: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51� Usando a UART:

� Modos de Operação:� Modo 2 e Modo 3: permitem comunicação multiprocessadores.

� 1 mestre, n escravos, cada um com seu endereço.

� 9o. bit: =1 indica que a mensagem do mestre é de endereço (todos a examinam, e o escravo selecionado passa a pegar as mensagens seguintes de dados, com o 9o. bit = 0; os demais as ignoram, até o 9o. bit voltar a ser 1).

� o escravo pode também transmitir mensagens ao mestre, após estabelecida a conexão, mas para tanto não deve setar o 9o. bit.

Page 39: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51� Usando a UART:

� Programar o Timer1 para gerar o "Baud Rate“ (Modo 1 e Modo 3).

Page 40: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51� Programando o Timer

� Timer1 no modo 2 (auto-reload)

� Cálculo:� Baud Rate = k x FreqOsc

32 x 12 x [256 - (TH1)]

� se SMOD = 0, k=1 SMOD = bit 7 de PCONse SMOD = 1, k=2

� Ou seja:� se SMOD = 0 TH1 = 256 - ((FreqOsc / 384) / Baud)

se SMOD = 1 TH1 = 256 - ((FreqOsc / 192) / Baud)

Page 41: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51

� Programando o Timer - exemplo:

� Ex.: cristal de 11.0592 Mhz e deseja-se 19200bps.

� Supondo SMOD = 0.

� TH1 = 256 - ((11059000 / 384) / 19200)TH1 = 256 - 1,5 = 254.5.

� Impossível! Se usarmos para 254 teremos 14.400bps, se setarmos para 255 teremos 28.800bps! O que fazer?

� Basta mudar SMOD para 1.

� TH1 = 256 - ((11059000 / 192) / 19200)TH1 = 256 - 3 = 253.

Page 42: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51� Programando o Timer:

� Timer/Counter mode:� TMOD (89h) – bit endereçável

7------T1------4 | 3-----T0--------0

Gate C/T M1 M01 0 (modo 2)

contador out timer

TH1 (8Dh) = valor de recarga em TL1

TCON (88h) – byte endereçável

---T1---|---T0----|---T1----|---T0----

TF1 TR1TF0 TR0 IE1 IT1 IE0 IT0TF = overflowTR = liga /desligaIE = habilitação de interrupção

Timer 1: sem interrupção: 0100 xxxx

Page 43: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C51 80C51 Programando o Canal Serial:

� Modo Serial:� SCON (98h) – bit endereçável.

7--------------------------------------0

SM0 SM1 SM2 REN TB8 RB8 TI RI0 1 0 1

modo enable receive interrupt flagsserial reception transmite interrupt flags

(devem ser limpos por software).

� SM0 e SM1 definem o modo0 0 modo 0 = 8 bit Shift Register = Oscillator / 120 1 modo 1 = 8 bit UART = Baud Rate set by Timer 11 0 modo 2 = 9 bit UART = Oscillator / 321 1 modo 3 = 9 bit UART = Set by Timer 1.

� SM2 = flag para "Multiprocessor comunication". Caso esteja setada, RI somente será setado caso o nono bit recebido seja 1. Nos usos mais comuns, SM2 = 0.

� REN = deve estar setado para que a recepção seja habilitada.

Page 44: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51� Programando o Canal Serial:

� Modo Serial – continuação:� SCON (98h) – bit endereçável.

7--------------------------------------0

� SM0 SM1 SM2 REN TB8 RB8 TI RI0 1 0 1modo enable receive interrupt flags

serial reception transmite interrupt flags(devem ser limpos por software).

� TB8 é usado nos modos 2 e 3. O nono bit a ser transmitido é o nele contido.� RB8: idem a TB8 para recepção. O nono bit recebido será nele armazenado.� TI: Transmit Interrupt

Quando TI está setado, o programa pode assumir que a porta serial está pronta para transmitir o próximo byte.

� RI: Receive InterruptSempre que o 80C51 receber um byte completo, RI será setado, informando ao

software que o byte precisa ser lido, antes que seja recebido um novo valor.

Page 45: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51� Programando o Canal Serial:

� Modo Serial – continuação:� PCON (87h) – byte endereçável

7--------------------------------------0

SM0D X X X X X X X

SMOD = 0: Modo 2: divide clock do 80C51 por 64SMOD = 0: Modos 1 e 3: divide saída Timer 1 por 32

SMOD = 1: Modo 2: divide clock do 80C51 por 32SMOD = 1: Modos 1 e 3: divide saída Timer 1 por 16

Page 46: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51� Programando o Canal Serial:

� Interrupções.� IE (A8h) – bit endereçável.

7----------------4----------------------0.

EA ES ET1 EX1 ET0 EX0

� Por que usar interrupções?

� Qual a alternativa? Um esquema do tipo: wait for flag, onde o programa fica em loop perguntando ao dispositivo: "- Já recebeu dado?“, ou “- Acabou de transmitir o último dado?”

� No caso do wait for flag, o tempo de processamento gasto no poolingdos dispositivos é considerável: poderia ser usado no caso de programas pequenos e simples.

� As interrupções são uma maneira mais simples e limpa de fazer o mesmo serviço...

Page 47: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51� Programando o Canal Serial:

� Lendo e enviando dados:

� Os dados devem ser lidos ou escritos em SBUF (99h), por exemplo, se quisermos escrever o caractere "A" na porta serial, isso pode ser feito como a seguir:

� MOV SBUF,#'A' ou MOV SBUF, #41H

Page 48: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51

� Programando o Canal Serial:

� Exemplo de configuração sem interrupção:

; inicializacoes.

MOV TMOD,#00100000B ; Timer 1 no modo 2

MOV TH1,#0FDH ; configura para 9600bps

MOV TCON,#01000000B ; Ativa Timer 1

MOV PCON,#00000000B ; SMOD recebe 0 (Timer 1/32)

MOV SCON,#01000000B ; canal serial no modo 1

MOV IE,#00000000B ; desabilita interrupções

Page 49: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51� Usando o Canal Serial com “wait for flag”:

� Envio de caracteres - rotina CO (character output):

CO: JNB TI,$ ; lê estado TI da serialCLR TI ; Se TI OK, limpa TIMOV SBUF,B ; escreve dadoJNB TI,$ ; espera sua transmissaoRET

� Recebimento de caracteres - CI (character input):

CI: JNB RI,$ ; lê estado RI da serialCLR RI ; Se RI OK dado está presente,

; limpa RIMOV B,SBUF ; lê dadoRET

Page 50: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

ComunicaComunicaçção Serial ão Serial –– 80C5180C51� Usando o Canal Serial com “wait for flag”:

� Exemplo de rotina para imprimir uma mensagem (da ROM para a serial):

PRINT: MOV A,#00hMOVC A,@A+DPTRJZ PFIMMOV B,AACALL COINC DPTRSJMP PRINT

PFIM: RET

Page 51: sites.poli.usp.brsites.poli.usp.br/d/pcs2529/index_arquivos/serial.pdfHyperterminal do Windows: permite desabilitar sinais de controle de fluxo. ... 7-----0 SM0 SM1 SM2 REN TB8 RB8

� Usando o Canal Serial com interrupções� Recebimento de caracteres

MOV TMOD,#00100000B ; Timer 1 no modo 2

MOV TH1,#0FDH ; configura para 9600bps

MOV TCON,#01000000B ; Ativa Timer 1MOV PCON,#00000000B ; SMOD recebe 0 (Timer 1/32)MOV SCON,#01010000B ; canal serial no modo 1, com interrupçãoMOV DPTR,#9000H ; ponteiro para dado recebidoMOV IE,#10010000B ; habilita interrupçõesCLR C ; limpa carryJNC $ ; aguarda fim de stringLJMP 0000H ; volta ao Programa Monitor...

CIINT: JNB RI, FIM2 ; se for interrupção de transmissão, MOV A, SBUF ; lê dadoMOVX @DPTR, A ; caso contrário armazena-oINC DPTR ; incrementa ponteiro de dados

FIM1: CLR RI ; limpa RI=pedido interrupção de recepçãoFIM2: CLR TI ; limpa TI=pedido interrupção de transmissão

RETIFIM3: SETB C ; indica fim de string

AJMP FIM1