• Nenhum resultado encontrado

Nome Endereço IRQ COM1 3F8 4 COM2 2F8 3 COM3 3E8 4 COM4 2E UART - Universal Asynchronous Receiver/Transmitter. descrição

N/A
N/A
Protected

Academic year: 2021

Share "Nome Endereço IRQ COM1 3F8 4 COM2 2F8 3 COM3 3E8 4 COM4 2E UART - Universal Asynchronous Receiver/Transmitter. descrição"

Copied!
12
0
0

Texto

(1)

5555

O estudo do funcionamento da porta série nos PC’s, é o estudo da UART utilizada para a implementar. Os endereços na memória de entrada/saída, são referidos na tabela 1, em que COM1, COM2, COM3 e COM4 correspondem respectivamente à porta série 1, 2, 3 e 4.

Nome Endereço IRQ COM1 3F8 4 COM2 2F8 3 COM3 3E8 4 COM4 2E8 3

Tabela 1- Endereços das portas série com1 a com4 num PC.

1. UART - Universal Asynchronous Receiver/Transmitter

As UART’s necessitam de uma relógio para trabalhar. Nesta caso o cristal utilizado é de 1.8432 MHz. O cristal é ligado directamente À UART nos pinos XIN e XOUT, usando poucos componentes adicionais de modo a ajudar o cristal a oscilar. Este relógio vai ser usado para gerar a taxa de transmissão em que a velocidade de transmissão é calculada por 1.8Mhz /(16 x velocidade de transmissão).

O estudo da porta série nos PC é basicamente o estudo da UART 16550 usada nos PC’s, é possível efectuar o download a partir de http://www.natsemi.com, disponível em formato PDF, ou de http://www.ti.com, que é a UART TL16C750 que tem uma FIFO de 64 bytes.

1.1 Tipos de UART’s utilizadas nos PC’s

Tipo descrição

8250 Primeira UART utilizada nos PC’s, não dispunha de registo de uso geral.

16450 Começou a ser utilizada nos AT’s, pode atingir a taxa de transmissão até 38.4KBps. Ainda é comum a existência de a UART.

16550 Primeira de uma geração de UART’s com buffer de memória. Tem um memória FIFO de 16 bytes

16650 Contem um buffer de 32 bytes. Permite a programação de controlo de fluxo XON/XOFF

(2)

programação de controlo de fluxo XON/XOFF

16750 Com memória FIFO de 64 bytes.

Tabela 2- Tipos de UART’s utilizadas nos PC’s.

Figura 1- Pinout da UART PC16550D da National Semiconductor

1.3 Função dos pinos TD – Transmit Data

Por onde são transmitidos os dados em série.

RD – Receive Data

Por onde são recebidos os dados em série.

/CTS- Clear To Send

Quando a zero indica que o modem ou o dispositivo de dados está pronto para trocar dados. A linha /CTS é um sinal de entrada, que indica o estado do modem, cujo valor pode ser testado, pela leitura do bit 4 do registo MSR. O bit zero do MSR indica se houve variação do /CTS, desde a ultima leitura deste registo.

/DCD- Data Carrier Detect

Quando a zero indica que a portadora foi detectada pelo modem. É uma entrada de estado do modem, cujo valor pode ser testado pela leitura do bit 7 do registo MSR. O bit 3 do MSR indica se houve variação na linha /DCD desde a ultima leitura deste registo.

(3)

/DSR- Data Set Ready

Quando a zero indica que o modem está pronto para estabelecer a comunicação. A linha /DSR é um linha de estado do modem, cujo valor pode ser testado em MSR no bit 5. O bit 1 do MSR indica se houve alguma variação na linha /DSR desde a ultima leitura deste registo.

/DTR- Data Terminal Ready

Quando a zero informa o modem que a UART está pronta para estabelecer a comunicação. O sinal /DTR pode ser activado a zero colocando um’1’ no bit zero do registo MCR.

/RTS- Request To Send

Quando a zero informa o modem que a UART está pronta para trocar dados, o sinal /RTS pode ser activo a zero, colocando um ‘1’ no bit 1 do MCR.

/RI- Ring Indicator

Quando a zero indica que o modem recebeu um sinal de corrente de chamar, esta linha pode ser testada pela leitura do bit 6 do registo MSR. O bit 6 é o complemento do sinal /RI. O bit 2 do MSR indica se houve variação na linha RI desde a ultima leitura.

2. PINOUT DA PORTA SÉRIE

DB 25 DB 9 Nome pino 2 pino 3 TD pino 3 pino 2 RD pino 4 pino 7 RTS pino 5 pino 8 CTS pino 6 pino 6 DSR pino 7 pino 5 GND pino 8 pino 1 CD pino 20 pino 4 DTR pino 22 pino 9 RI

Tabela 3- Pin-out da porta série, PC’s para fichas macho de 9 e 25 pinos.

2.1 Ligações em null-modem

Esta é ligação para ligação de dois dispositivos DTE. Requer apenas três linhas entre os dois dispositivos /TD, RD e GND). A transmissão é efectuada pela linha de TD e a recepção é efectuada pela linha de RD. O controle de fluxo é implementado directamente pois em ambos os lados se ligam entre si as linhas DTR, DSR e CD e as linhas RTS e CTS são as duas ligadas entre si.

TD ! RD

RD " TD

(4)

DTR- DSR- CD- -DTR -DSR -CD RTS- CTS- -RTS -CTS

Tabela 4- Esquema de ligação em null-modem

3. CONFIGURAÇÃO DOS REGISTOS

Tabela 5- Localização dos registos na UART

(5)

REGISTO IER ( Interrupt Enable Register: BASE+1)

Permite habilitar os cinco tipos de interrupção da UART. Cada interrupção pode ser individualmente habilitada. Pode-se inibir qualquer interrupção da UART colocando os bits 0 a 3 a nível lógico ‘0’.

Bit Função

7 Reservado

6 Reservado

5 Habilita o modo de baixo consumo 4 Habilita o modo de repouso 3 Habilita o Modem status interrupt 2 Habilita Receive line interrupt

1 Habilita interrupção associada à transmissão 0 Habilita interrupção associada à recepção de dados

REGISTO IIR ( Interrupt Identification Register: BASE+2)

Este é um registo só de leitura. De forma a minimizar o software e dedicação do CPU a UART possibilita a configura de quatro limiares para a identificação da interrupção.

Bit designação Função 6 : 7 Bit 6 Bit 7

0 0 Sem FIFO

0 1 FIFO habilitada mas não utilizada

1 1 FIFO habilitada

5 64 bytes FIFO habilitada, só em 16750

4 Reservado

3 0 Reservado

1 Na 16550 interrupção de time-out, pendente 1 : 2 Bit 2 Bit 1

0 0 Interrupção do estado do modem

0 1 Interrupção de registo de transmissaão vazio 1 0 Interrupção de dados recebidos disponiveis 1 1 Interrupção de estado da linha de recepção

0 0 Interrupção pendente

1 Nenhuma interrupção pendente

REGISTO FCR ( FIFO Control Register: BASE+2)

Este é um registo só de escrita, na mesma localização de IIR(este é só de leitura). É usado para habilitar as FIFO, limpar a FIFO, definir o limiar da FIFO e seleccionar sinalização DMA.

(6)

Bit designação Função

6 : 7 Bit 7 Bit 6 Interrupção por transição de nível lógico

0 0 1 byte

0 1 4 bytes

1 0 8 bytes

1 1 16 bytes

5 64 bytes FIFO habilitada, só em 16750

4 Reservado

3 Selecciona modo DMA. Toca o estado dos pinos RXRDY e TXRDY

2 Limpa a FIFO de transmissão 1 Limpa a FIFO de recepção 0 Habilita as FIFO

REGISTO LCR ( Line Control Register: BASE+3)

Onde se configura o formato da transmissão, também onde está localizado o bit DLAB.

Bit Designação Função

7 1 DLAB – Divisor Latch Enable Bit

0 Permite o acesso ao registo de

transmissão/recepção e ao registo de habilitação de interrupções (IER)

6 Habilita bloqueio da UART

3 : 5 Bit 5 Bit 4 Bit 3 Selecção da paridade

X X 0 Sem paridade

0 0 1 Paridade ímpar

0 1 1 Paridade par

1 0 1 Paridade alta

1 1 1 Paridade baixa

2 Tamanho do stop bit

0 1-stop bit

1 2 stop bits quando o tamanho da palavra de dados é de 6, 7 ou 8 bits

1,5 stop bit quando o tamanho da palavra é de 5 bits

0 : 1 Bit 1 Bit 0 Tamanho da palavra de dados

0 0 5 bits

0 1 6 bits

1 0 7 bits

(7)

REGISTO MCR ( Modem Control Register: BASE+4)

Este registo controla o interface com o modem.

Bit Função

7 Reservado

6 Reservado

5 Habilita o controlo de fluxo automático ( só 16750)

4 Modo loopback

3 Saída auxiliar OUTPUT 2 2 Saída auxiliar OUTPUT 1

1 Coloca linha RTS Request To Send a ‘1’ 0 Coloca linha DTR Data Terminal Ready a ‘1’

REGISTO LSR ( Line Status Register: BASE+5)

Este registo permite fornecer informações ao CPU que dizem respeito à transferência de dados.

Bit Função

7 Erro na FIFO de recepção

6 Registo de recepção de dados está vazio 5 Registo de transmissão de dados está vazio 4 Interrupção de break

3 Erro de quadro 2 Erro de paridade 1 Erro de overrun 0 Dados disponíveis

REGISTO MSR ( Modem Status Register: BASE+6)

Este registo indica o estado corrente das linhas de controlo do modem ao CPU.

Bit Função

7 Detecção de portadora 6 Indica a chamar

5 Data set Ready

4 Clear To Send

3 Variação em DCD

2 Indicado de a chamar 1 Variaçãi de DSR

(8)

4. CONTROLO DE FLUXO

Nestas aplicações o controlo de fluxo pode ser realizado por software ou por hardware. Por software são utilizados dois caractere Xon e Xoff, que correspondem aos caracteres ASCII 17 e 20. Nas aplicações com modems este como têm um buffer de memória pequeno, enviam o caractere Xoff, quando este enche, de modo a indicar ao computador para o envio de dados, quando volta a poder aceitar dados envia o caractere Xon. Este tipo de controlo de fluxo tem a vantagem de não necessitar de hardware adicional, o que pode ser uma desvantagem em ligações a baixa velocidade, pois como cada caractere requer pelo menos 10 bits, o envio do Xon e Xoff pode baixar a taxa de transmissão!

O controlo de fluxo por hardware também é conhecido por RTS/CTS. Usa duas linhas na comunicação série em vez dos caracteres de controle atra´s referidos. Este controle por hardware não baixa a taxa de transmissão, Assim quando o computador quer transmitir dados activa a linha de RTS, então o modem se pode receber dadosreponderá activando a linha de CTS e o computador começa a transmissão de dados. Caso o modem não pode receber dados não activa a linha de CTS.

O controle de fluxo atrás referido, foi exemplificado com uma ligação de um computador a um modem, no entanto os mecanismos referidos aplicam-se entre quaisquer dois equipamentos em comunicação série.

5. APLICAÇÕES

(9)
(10)

Figura 4- Exemplo de ligação entre CPU e UART.

// exemplo para testar o funcionamento da porta série // adaptado de “Interfacing the serial RS232 port v5.0” // de www.beyondlogic.org

#include <dos.h> #include <stdio.h> #include <conio.h>

#define PORT1 0x3F8 // define endereço para a porta série COM1 void main (void)

{

int c, ch;

outportb(PORT1+1,0); // desactiva as interrupções

outportb(PORT1+3,0x080); // coloca o DLAB a 1

outportb(PORT1+0,0x03); // configura o baud-rate

(11)

outportb(PORT1+3,0x03); // 8 bits, sem paridade e 1 stop bit

outportb(PORT1+2,0x0c7); // FIFO controle

outportb(PORT1+4,0); // activa DTR, RTS e OUT2

printf(“\n Programa para testar o funcionamento da porta série. Prima ESC para sair \n”)

do {

c= inportb(PORT1+5); //verifica se recebeu algum caractere

if (c&1)

{

ch=inportb(PORT1); //caso tenha recebido vai lê-lo printf (“%c”,ch); // visualiza o caractere recebido }

if (kbhit()) // se for premida alguma tecla?

{

ch=getch(); // lê a tecla

outportb (PORT1, ch); // envia pela porta série }

}while (ch!=27); // enquanto não for premida a tecla de ESC

}

(12)

Referências

PC16550D Universal Asybchronous Receiver/transmitter with FIFOS – National Semiconductor

Referências

Documentos relacionados

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

A prova do ENADE/2011, aplicada aos estudantes da Área de Tecnologia em Redes de Computadores, com duração total de 4 horas, apresentou questões discursivas e de múltipla

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação

Apothéloz (2003) também aponta concepção semelhante ao afirmar que a anáfora associativa é constituída, em geral, por sintagmas nominais definidos dotados de certa

A abertura de inscrições para o Processo Seletivo de provas e títulos para contratação e/ou formação de cadastro de reserva para PROFESSORES DE ENSINO SUPERIOR

Como já destacado anteriormente, o campus Viamão (campus da última fase de expansão da instituição), possui o mesmo número de grupos de pesquisa que alguns dos campi

A Altus Sistemas de Informática, de São Leopoldo; a Rio Grande Energia (RGE), de Caxias do Sul; a Santa Ignês Cereais e Transportes, de São Borja; o Sesc Lajeado; a Suspensys