• Nenhum resultado encontrado

Laboratório de Sistemas Processadores e Periféricos Porta Serial Prática 14

N/A
N/A
Protected

Academic year: 2021

Share "Laboratório de Sistemas Processadores e Periféricos Porta Serial Prática 14"

Copied!
8
0
0

Texto

(1)

Laborat´orio de Sistemas Processadores e Perif´ericos

Porta Serial

Pr´atica 14

Gustavo G. Parma

Assunto: Interface Serial

Objetivos: O aluno dever´a ser capaz de utilizar e conhecer os fundamentos da porta serial do microcomputador

1

Introdu¸c˜

ao Te´

orica

O computador pode se comunicar paralelamente ou serialmente com os perif´ericos. A classifica¸c˜ao entre serial ou paralelo ´e feita em fun¸c˜ao da forma como os bits de dados s˜ao transmitidos. Se os dados s˜ao transmitidos de uma ´unica vez, ou em grupos, a comunica¸c˜ao ´e paralela. Se os dados s˜ao transmitidos um ap´os o outro, a comunica¸c˜ao ´e serial.

A porta paralela do computador foi desenvolvida devido a ent˜ao baixa velocidade de transmiss˜ao da porta serial. Entretanto, observa-se hoje que a taxa de transmiss˜ao de dados seriais tem aumentado cada vez mais, alcan¸cando patamares acima de 56 Kbps (bits por segundo). ´E importante ressaltar que uma comunica¸c˜ao serial envolve n˜ao somente os bits de dados, mas tamb´em bits de sinaliza¸c˜ao (start bit, stop bit, bit de paridade, e outros). Desta forma, uma comunica¸c˜ao de 56Kbps n˜ao significa que s˜ao transmitidos 56K

8 bytes/s.

A comunica¸c˜ao serial do computar ´e feita atrav´es da UART (Universal Asynchorouns Receiver Trasmitter) 8250, a qual est´a conectada com uma RS232, que, por sua vez, ´e a respons´avel por conectar eletricamente o computador ao perif´erico.

A conex˜ao serial envolve alguns parˆametros que devem ser configurados antes de se haver a comu-nica¸c˜ao propriamente dita. S˜ao estes os principais parˆametros a serem configurados:

1. (a) velocidade de comunica¸c˜ao; (b) stop bits;

(c) tamanho da palavra a ser transmitida; (d) paridade.

Portanto, antes de se utilizar o 8250, deve-se configur´a-lo corretamente. Por configurar a porta serial, entende-se configurar tanto o emissor quanto o receptor. Por se tratar de uma comunica¸c˜ao ass´ıncrona, n˜ao existe um sinal de clock respons´avel pelo sincronismo entre emissor e receptor. Se o emissor estiver configurado de forma diferente do receptor, um erro do tipo framing ser´a gerado pelo controlador.

Antes de se transmitir um dado, deve-se, tamb´em, verificar se o 8250 est´a pronto para transmit´ı-lo, ou se o controlador ainda est´a transmitindo um dado anterior.

Quando a porta serial recebe algum dado, a UART pode informar `a CPU que este dado foi recebido atrav´es do sistema de interrup¸c˜ao (IRQ3 para COM2 ou IRQ4 para COM1) ou atrav´es de um dos seus bits de status. Se o processador n˜ao retirar este dado do controlador e ele receber um novo dado, um erro do tipo overrun ser´a gerado.

A RS232, utilizada para conectar a UART ao mundo externo, pode ser utilizada apenas quando a distˆancia entre o processador e o perif´erico for pequena. Caso contr´ario, deve ser utilizado um modem. A RS232 utiliza duas linhas, n˜ao balanceadas, para a comunica¸c˜ao, uma para a transmiss˜ao de dados

(2)

e outra para a recep¸c˜ao (a comunica¸c˜ao utilizando a RS485 utiliza linhas balanceadas). Para operar um modem, definiu-se uma norma mundial, chamada V24, na qual os pinos de controle necess´arios ao acionamento do modem s˜ao definidos. A RS232 pode estar dispon´ıvel no computador atrav´es de dois conectores distintos, um DB9 ou um DB25. A tabela abaixo mostra as conex˜oes dos pinos dos conectores com os sinais de controle da RS232.

DB9 DB25 Nome Descri¸c˜ao

- 1 GND Terra de prote¸c˜ao 3 2 TX Transmiss˜ao de dados 2 3 RX Recep¸c˜ao de dados

7 4 RTS Permiss˜ao para transmitir

8 5 CTS Permiss˜ao para transmiss˜ao concedida 6 6 DSR Modem pronto

5 7 GND Terra do sinal

1 8 DCD Portadora de dados detectada 4 20 DTR Terminal pronto

9 22 RI Indicador de chamada

Pode-se utilizar as fun¸c˜oes da bios (semelhante as fun¸c˜oes do DOS) para o controle da UART. Entretanto, pode ser realizada uma configura¸c˜ao do UART utilizando diretamente os endere¸cos dos doze registradores internos do controlador 8250, o qual est´a instalado no endere¸co base 03F 8h , para a COM1, (ou 02F 8h, para a COM2) e utiliza 8 endere¸cos fisicos na arquitetura do computador pessoal, como mostra a tabela abaixo:

Endere¸co base DLAB Acesso Abrev. Nome do Registrador

+0 0 write THR Transmitter Holding Register +0 0 read RDR Receiver Data Register +0 1 r/w BDL Baud-Rate Divisor (Low) +1 1 r/w BDH Baud-Rate Divisor (high) +1 0 r/w IER Interrupt-Enable Register +2 - read IIR Interrupt-Identification +2 - write FCR Fifo Control Register +3 - r/w LCR Line-Control register +4 - r/w MCR Modem-control register +5 - read LSR Line-Status Register +6 - read MSR Modem-status Register +7 - r/w SR Scratch Pad Register

Na tabela acima, DLAB se refere ao estado do bit 7 do registrador LCR. Os registradores mencionados s˜ao discriminados a seguir.

1. THR

Registrador de escrita.

Este ´e o registrador de envio de dados. Um dado escrito neste registrador ser´a serializado e enviado pela RS232.

2. RDR

Registrador de leitura.

Este ´e o registrador de chegada de dados. Uma vez que a RS232 tenha recebido um dado e a UART tenha paralelizado-o adequadamente, ele estar´a dispon´ıvel neste endere¸co.

3. BDL e BDH

Registrador de leitura e escrita.

Estes dois registradores ser˜ao respons´aveis por determinar a taxa de transmiss˜ao (baud-rate) da conex˜ao. Para acessar estes registradores ´e necess´ario que o DLAB (bit 7 de LCR) seja igual a ”1”.

(3)

O baud rate ´e determinado em fun¸c˜ao de uma palavra de 16 bits, sendo determinado atrav´es da seguinte equa¸c˜ao: baud-rate = 115200

divisor. BDL se refere aos 8 bits menos significativos do divisor

e BDH se refere aos 8 bits mais significativos do divisor.

Em fun¸c˜ao da equa¸c˜ao mostrada, pode-se determinar as seguintes tabelas dos valores a serem escritos em BDL e BDH para um determinado baud-rate.

Velocidade Parte alta (BDH) Parte baixa (BDL)

50 09h 00h 75 06h 00h 150 03h 00h 300 01h 80h 600 00h C0h 1200 00h 60h 2400 00h 30h 4800 00h 18h 9600 00h 0Ch 19200 00h 06h 38400 00h 03h 57600 00h 02h 115200 00h 01h 4. IER

Registrador de leitura e escrita.

Permite controlar quando e como a UART ir´a gerar alguma interru¸c˜ao. A tabela a seguir mostra o significado de cada bit deste registrador. Escrevendo ”1”no bit, habilita-se a sua fun¸c˜ao, ”0”desabilita a fun¸c˜ao. Os bits reservados devem ser mantidos em ”0”.

Bit Significado 7 reservado 6 reservado

5 modo de baixa potˆencia (somente para o CI 16750) 4 modo sleep (somente para o CI 16750)

3 interrup¸c˜oes de status do modem

2 interrup¸c˜ao de status da linha de recep¸c˜ao 1 interrup¸c˜ao de THR vazio

0 interrup¸c˜ao de RDR com dados

A interrup¸c˜ao de RDR com dados talez seja a mais importante, pois mostra que existe um dado dispon´ıvel na UART, o qual deve ser lido o quando antes para se evitar um erro de overrun. A interrup¸c˜ao de THR vazio sinaliza que o buffer de sa´ıda terminou de enviar tudo o que havia sido colocado nele.

A interrup¸c˜ao de status da linha de recep¸c˜ao indica que algmia coisa no registrador LSR foi alterada. Geralmente sinaliza uma codi¸c˜ao de erro.

A interrup¸c˜ao de status do modem sinaliza quandl alguma coisa no modem externo conectado ao computador mudar, tal como o telefone tocando, uma conex˜ao com sucesso ao outro modem ou uma desconex˜ao.

5. IIR

Registrador de Leitura.

Utilizado para identificar as caracter´ısticas funcionais da UART utilizada. Pode ser utilizado para identificar o motivo pelo qual a UART disparou uma interrup¸c˜ao ou para a identifica¸c˜ao da UART.

(4)

Bit valor Significado 7 e 6 00 CI sem FIFO

01 FIFO existente mas n˜ao funcionando 10 condi¸c˜ao reservada

11 FIFO habilitada

5 1 FIFO de 64 bytes habilitada (somente para o 16750) 4 - reservado

3, 2 e 1 000 Interrup¸c˜ao de status do modem 001 interrup¸c˜ao de THR vazio 010 interrup¸c˜ao de RDR com dados

011 interrup¸c˜ao de status da linha de recep¸c˜ao 100 reservado

101 reservado 110 FIFO time-out 111 reservado

0 1 n˜ao existˆencia de interrup¸c˜ao pendente

Uma vez detectada o motivo pelo qual a UART gerou a interrup¸c˜ao, ´e necess´ario elimin´a-la, o que pode ser realizado utilizando-se a opera¸c˜ao descrita na tabela abaixo.

Motivo da interru¸c˜ao m´etodo de reset da interrup¸c˜ao Interrup¸c˜ao de status do modem ler MSR

interrup¸c˜ao de THR vazio ler IIR ou escrever em THR interrup¸c˜ao de RDR com dados ler RDR

interrup¸c˜ao de status da linha de recep¸c˜ao Ler LSR

FIFO time-out ler RDR

6. FCR

Registrador de escrita.

Este registrador foi introduzido ap´os o lan¸camento da UART 8250 original. Ele ´e utilizado para controlar como os buffers FIFO ir˜ao funcionar, sendo poss´ıvel, tamb´em, ligar ou desligar o FIFO. A tabela abaixo explica o significado de cada bit deste registrador.

Bit Significado

Valor N´ıvel do trigger (16 bytes) N´ıvel do Trigger (64 bytes) 7 e 6 00 1 bytes 1 byte

01 4 bytes 16 bytes 10 8 bytes 32 bytes 11 14 bytes 56 bytes

5 Habilita a FIFO de 64 bytes (somente para o 16750) 4 reservado

3 Sele¸c˜ao de modo de DMA 2 Limpa a FIFO de transmiss˜ao 1 Limpa a FIFO de recep¸c˜ao 0 Habilita as FIFOS

Escrever um ”0”no bit 0 desabilita as FIFOs e a UART passa a funcionar como o 8250 original, fazendo com que os demais bits deste registrador percam suas fun¸c˜oes.

Os bits 1 e 2 s˜ao utilizados para zerar os buffers das FIFOs. Eles devem ser zerados no in´ıcio de uma aplica¸c˜ao, para garantir que n˜ao exista nenhum dado ”restante”de outra aplica¸c˜ao. Estes bits s˜ao automaticamente resetados, ou seja, ap´os escrever ”1”neles, n˜ao ´e necess´ario escrever ”0”.

O bit 3 controla a forma pela qual o DMA ir´a acontecer e, do ponto de vista do programador n˜ao possui grande utilidade, podendo ser ignorado.

(5)

uma interru¸c˜ao. Em CIs anteriores ao 16750 este bit ´e reservado e deve ser mantido em n´ıvel l´ogico ”0”.

Os bits 6 e 7 descrevem o tamanho do n´ıvel de trigger utilizado para gerar uma interru¸c˜ao. Este ´e o n´umero de caracters que deve ser armazanado na FIFO antes que uma interrup¸c˜ao seja gerada, avisando que o dado deve ser removido da FIFO.

7. LCR

Registrador de escrita e leitura. Este ´e um dos principais registradores da UART. Ele ´e utili-zado para setar o DLAB (Divisor Latch Access Bit), permitindo escrever nos registradores que controlam o baud-rate, e ´e utilizado para definir o quadro da comunica¸c˜ao (o protocolo que ser´a utilizado). A tablea a seguir explica o significado de cada bit deste registrador.

Bit Significado

7 DLAB, acesso ao divisor da baud-rate 6 habilita sinal Break

valor sele¸c˜ao da paridade xx0 sem paridade 3, 4, 5 001 paridade ´ımpar

011 paridade par 101 marca (sempre 1) 111 espa¸co (sempre 0) valor quantidade de stop bits 2 0 um stop bit

1 1,5 stop bits ou 2 stop bits

valor tamanho da palavra a ser transmitida 00 5 bits

0, 1 01 6 bits 10 7 bits 11 8 bits

Os bits 0 e 1 controlam quantos bits de cada palavra de dados s˜ao enviados serialmente. O bit 2 controla quantos stop bits s˜ao transmitidos, caso sejam enviados 5 bits da palavra de dados, s˜ao enviados 1 ou 1,5 stop bits, caso contr´ario s˜ao enviados sempre 1 ou 2 stop bits.

Os bits 3, 4 e 5 controlam como a paridade ser´a criada. Quando o bit 5 valer ”0”, n˜ao ser´a enviado o bit de paridade. Caso seja selecionada a paridade par ou ´ımpar, ser´a adicionado um bit de tal forma que a quantidade de 1s transmitida seja par ou ´ımpar, respectivamente. Caso a paridade ”marca”seja selecionada, o bit de paridade valer´a sempre ”1”, independente da quantidade de 1s transmitida. Se a paridade ”espa¸co”for selecionada, o bit de paridade valer´a sempre ”0”.

8. MCR

Registrador de escrita e leitura

Este registrador permite fazer um controle de fluxo do hardware. Ele permite a manipula¸c˜ao direta de quatro pinos diferentes da UART (nem todos conectados ao DB-9 de sa´ıda do PC). ´E importante salientar que a maioria das UARTs requer que a sa´ıda auxiliar 2 seja colocada em n´ıvel l´ogico ”1”para habilitar as interrup¸c˜oes. A tabela a seguir apresenta o significado de cada bit deste regitrador.

Bit Significado 7 reservado 6 reservado

5 controle autom´atico de fluxo habilitado (16750) 4 Modo de retorno

3 sa´ıda auxiliar 2 2 sa´ıda auxiliar 1

1 requisi¸c˜ao para envio (RTS) 0 Terminal de dados pronto (DTR)

(6)

Destas sa´ıda em um PC, somente os sinais RTS e DTR s˜ao conectados `a sa´ıda do conector DB-9. O modo de retorno ´e utilizado para testar a UART, verificando se os circuitos est˜ao funcionando bem entre a CPU e a UART. Quando colocado em n´ıvel ”1”, qualquer caracter que chega ao registrador de envio ser´a imediatamente encontrado no registrador de recebimento da UART. Os sinais RTS e DTS ser˜ao obtidos no resitrador de estatus do modem.

Caso o CI utilizado seja o 16750, o bit 5 possibilita que a UART controle diretamente o estado de RTS e DTS, dependendo do estado atual da FIFO. Caso o CI utilizado n˜ao seja o 16750, este bit deve ser mantido em ”0”.

9. LSR

Registrador de Leitura.

Informa sobre poss´ıveis condi¸c˜oes de erros baseadas no dado que foi recebido. A tabela abaixo explica o significado de cada bit deste registrador.

Bit Significado

7 erro na FIFO de recep¸c˜ao 6 serializador de bits vazio 5 buffer de transmiss˜ao vazio 4 sinal de break recebido 3 erro de framing

2 erro de paridade 1 erro de overrun 0 dado pronto

O bit 7 se refere a erros que est˜ao nos caracteres da FIFO. Se qualquer caractere que est´a na FIFOpossui um ou mais erros listados, este bit serve para lembrar que a FIFO precisa ser limpa que os dados n˜ao s˜ao confi´avies e que possuem um ou mais erros.

Os bits 5 e 6 se referem `a condi¸c˜ao dos circuitos de transmiss˜ao do caractere e auxiliam a identificar que a UART est´a pronta para receber outro caractere. O bit 6 ´e colocado em n´ıvel l´ogico ”1”se todos oas caracteres tiverem sido transmitidos (incluindo a FIFO, se ativa). O bit 5 informa que a UART ´e capaz de receber mais caracteres (n˜ao necessariamente que os caracteres anteriormentes j´a foram transmitidos).

O bit 4 recebe n´ıvel l´ogico ”1”quando a linha de entrada de dados serial n˜ao tiver recebidno nenhum novo bit no per´ıodo de tempo que for no m´ınimo igual a toda a palavra da dados serial, inclindo start bit, bits de dados, bit de paridade e stop bits (para um dado baud-rate).

Um erro de framing ocorre quando o stop bit recebido ´e igual a n´ıvel l´ogico ”0”. Um erro de paridade ocorre quando a paridade do dado recebido n˜ao confere com o bit de paridade transmitido. Um erro de overrun ´e um sinal de que existem problemas no software que lida com a porta serial, ou que o sistema operacional n˜ao est´a fornecendo acesso adequado a UART. Este erro ocorre quando um caractere recebido est´a esperando para ser lido mas o registrador de deslocamento de entrada est´a tentando mover o conte´udo do novo caractere recebido para RDR.

10. MSR

Registrador de Leitura.

Possui informa¸c˜oes sobre o estatus atual do modem. O modem acessado desta forma pode ser um modem externo ou um modem interno que utiliza a UART como interface com o computador. A tabela a seguir explica o significado de cada bit deste registrador.

(7)

Bit Significado

7 Portadora detectada 6 Indicador de chamada 5 Conjunto de dados pronto 4 pronto para enviar

3 variac˜ao da portadora de dados 2 varia¸c˜ao no indicador de chamada 1 varia¸c˜ao no conjunto de dados pronto 0 varia¸c˜ao no pronto para enviar

O bit 7 permanecer´a em ”1”enquanto o modem estiver conectado a outro modem. O bit indicador de chamada (bit 6) ´e conectado diretamente ao pino RI (ring indicator) da RS-232. Este bit assume ”1”quando ´e identificada uma chamada telefˆonica.

Os bits 5 (conjunto de dados pronto -DSR) e 4 (pronto para enviar - CTS) s˜ao encontrados na RS-232 e conectados aos sinais RTS e DTR, transmitidos pelo MCR. OS demais bits que indicam varia¸c˜ao (bits 3, 2, 1 e 0) ser˜ao iguais a ”1”se o bit associado a eles tiver sofrido alguma altera¸c˜ao de estado desde a ´ultima vez que este registrador foi acessado. A ´unica diferen¸ca est´a no bit 2 (varia¸c˜ao no indicador de chamada), o qual ser´a ”1”se o bit indicador de chamada for do n´ıvel l´ogico ”1”para nel l´ogico ”0”.

11. SR

Registrador de leitura e escrita.

N˜ao possui fun¸c˜ao definida, podendo ser utilizado como ”mem´oria”extra. Normalmente um byte escrito neste registrador pode ser acessado posteriormente.

1.1

Breve resumo

Para a correta inicializa¸c˜ao da UART, os seguintes passos devem ser seguidos: 1. Determinar, previamente, quais ser˜ao os parˆametros da comunica¸c˜ao:

(a) baud-rate

(b) quantidade de bits de dados (c) quantidade de stop bits (d) tipo de paridade

2. Deve-se programar adequadamente o baud-rate da transmiss˜ao, observando, para isso, o valor de DLAB para o correto acesso a BDL e BDH.

3. Configurar o registrador FCR adequadamente, aproveitando para limpar as FIFOs.

4. Configurar o registrador LCR adequadamente, considerando os parˆametros da comunica¸c˜ao 5. Configurar IER adequadamente, habilitando ou desabilitando as poss´ıveis fontes de gera¸c˜ao de

interrup¸c˜ao.

6. Se necess´ario, configurar MCR (principalmente o bit 3, caso seja optado por trabalhar com interrup¸c˜ao).

Ap´os estas configura¸c˜oes, a UART estar´a pronta para enviar ou receber dados. Antes do envio de um determinado dado, ´e importante verificar no registrador LSR, principalmente os bits 6 e 5. O envio ocorre escrevendo o dado em THR e, quando um dado for recebido, ele ser´a disponibilizado em RDR.

Pode-se, tamb´em, configurar a UART utilizando uma das fun¸c˜oes da BIOS (basic Input output System). Ao contr´ario das fun¸c˜oes do DOS, as quais est˜ao todas concentradas na INT21h, as fun¸c˜oes da BIOS s˜ao chamadas em fun¸c˜ao da interrup¸c˜ao. A interrup¸c˜ao respons´avel pelo gerenciamento das portas de comunica¸c˜ao serial ´e a INT14h (RS232 IO).

(8)

Figura 1: Algoritmo a ser implementado.

2

Parte Experimental :

Desenvolver um programa que possibilite ao usu´ario programar (velocidade e quantidade de stop bits) e enviar continuamente um dado pela porta serial. O dado enviado ser´a visto pelo oscilosc´opio.

O usu´ario poder´a configurar a porta serial para trabalhar com uma dentre trˆes velocidades (1200, 2400 ou 4800 bps) e optar por enviar um ou dois stop bits. As demais configura¸c˜oes dever˜ao ser mantidas sempre constantes: oito bits de dados e paridade do tipo ”marca”. Estas configura¸c˜oes ser˜ao realizadas uma ´unica vez, no come¸co do programa. Ap´os a configura¸c˜ao o programa dever´a solicitar do usu´ario um caractere e entrar´a, ent˜ao, em um loop enviando sempre este mesmo caractere. Caso o usu´ario digite um novo caractere (sem que seja solicitado), o novo caractere dever´a ser enviado. Somente quando a tecla ”ESC”for pressionada o programa dever´a ser finalizado. A figura 1 mostra o algoritmo a ser implementado.

3

Bibliografia

1. <http://en.wikibooks.org/wiki/Serial Programming:8250 UART Programming>. Acessado em 03 de agosto de 2006.

2. <http://interface.centraltreasure.com/files/pdf/Serial Port RS232 UART Programming pdf.pdf>. Acessado em 03 de agosto de 2006.

Referências

Documentos relacionados

Era de conhecimento de todos e as observações etnográficas dos viajantes, nas mais diversas regiões brasileiras, demonstraram largamente os cuidados e o apreço

Quanto aos objetivos propostos no capítulo introdutório pode-se afirmar que a presente pesquisa conseguiu elaborar procedimentos que permitam integrar os conceitos

The presence of human herpesvirus 8 (HHV-8) – associated with all forms of Kaposi’s sarcoma – has also been recently identified in mycosis fungoides lesions.. However, a

O CES é constituído por 54 itens, destinados a avaliar: (a) cinco tipos de crenças, a saber: (a1) Estatuto de Emprego - avalia até que ponto são favoráveis, as

Como o objetivo deste trabalho era verificar em que medida o uso do software Geogebra poderia contribuir para a compreensão do ciclo trigonométrico e das funções seno e cosseno,

Foi membro da Comissão Instaladora do Instituto Universitário de Évora e viria a exercer muitos outros cargos de relevo na Universidade de Évora, nomeadamente, o de Pró-reitor (1976-

Nos pontos encostados ao hotel (D1, C1, E1), no período chuvoso foram identificados 32 gêneros, 1 gênero classificou-se como constante com 100% (Anoplostoma), 8

ensino superior como um todo e para o curso específico; desenho do projeto: a identidade da educação a distância; equipe profissional multidisciplinar;comunicação/interatividade