Nome: Jonis Alves Demamann
Cadeira: Programação de Periféricos
Curso: Engenharia da Computação
RS-232 e Configuração da UART 16550A
PORTA SERIAL
A porta serial é o denominador comum das comunicações por computador. Até mesmo os PC’s e periféricos mais primitivos aceitam uma porta serial.
A porta serial é muito usada entre os componentes do computador. E tem uma concepção simples: uma linha para enviar dado, outra para receber dados, algumas outras para regular como os dados são enviados pelas duas outras linhas. Por sua simplicidade, a porta serial tem sido usada para fazer o PC se comunicar com qualquer dispositivo imaginável. Mesmo sendo lenta quando comparada a porta paralela, uma porta serial é boa para modems, os quais podem puxar sinais por uma linha telefônica e também para mouse, que não precisa enviar grandes quantidades de dados.
O termo oficial promulgado pela IBM para a porta serial é porta de comunicações de dados assíncrona. Embora normalmente seja abreviado para porta assíncrona ou porta de comunicação. Além disso, como a grande maioria das ligações seriais aceitas pela industria do PC opera sob um padrão chamado RS-232 ( um nome dado por uma associação industrial, a Electronics Industry Association, ou EIA), a porta serial comum normalmente é descrita por sua especificação como porta RS-232.
Não importa o nome usado, todas as portas seriais da IBM são iguais, pelo menos funcionalmente. Todas usam 8, 16 ou 32 bits paralelos que um computador apanha do seu bus (barramento) de dados e vira de lado – transformando uma tira de dados digitais em uma cadeia de pulsos que caminha bit a bit. Essa forma de comunicação recebe o nome serial porque os bits individuais de informação são transferidos em longas séries.
Muitos infortúnios podem cair sobre o vulnerável bit de dado serial a medida que percorre a conexão. Um dos bits de um byte inteiro de dados pode se desviar deixando um pedaço de dado com um valor menor na chegada do que na partida. Com a vaga no fluxo de dados, todos os outros bits pularão um lugar e assumirão novos valores . Ou então pode ocorrer o caso oposto, de erros no fluxo da comunicação empurrar todos os bits para trás. De qualquer forma, o prognóstico não é bom. Com essa forma elementar de comunicações seriais, um bit a mais ou a menos causará um erro em todos os bytes seguintes.
Estabelecer comunicações seriais confiáveis significa contornar esses problemas de erro de bit e muitos outros mais. Graças a alguma engenhosidade digital, no entanto, as comunicações seriais funcionam e funcionam bem – o bastante para que um PC dependam delas.
COMUNICAÇÕES SÍNCRONAS E ASSÍNCRONAS
Dois dos principais métodos de comunicação serial são usados para evitar o desastre dos erros em bits seriais. Em um deles, os sistemas de envio e recepção são sincronizados por meio de algum tipo de sinal auxiliar, de modo que os dois lados da conexão estejam sempre alerta. Um clock, sincronizado entre a unidade de transmissão e recepção, temporiza com precisão o período que separa cada bit de dados. Um bit a mais ou a menos pode ser inesperada no fluxo de bits. Apenas olhando o relógio, você pode distinguir as comunicações por computador, um bit de dados real do ruído de interferência. Essa forma de transferência serial sincronizada pelo tempo chama-se comunicação síncrona, sendo uma técnica usada principalmente em sistemas de grande porte.
O sistema sincronizado falha sempre que os sistemas de envio e recepção perdem sua tranca de sinal mútuo. O fluxo de dados torna-se pouco mais do que um ruído.
A alternativa é incluir marcadores de lugar no fluxo de bits para ajudar acompanhar cada bit. Um marcador poderia, por exemplo, indicar a posição atribuída a um bit. Um bit ocorrendo sem o seu marcador poderia ser considerado como erro. Naturalmente, esse esquema simples teria muito desperdício, exigindo dois sinais digitais( o marcador e o bit de dados) para cada bit de informação transferido.
Um sistema intermediário funciona melhor. Em vez de indicar cada bit, o marcador poderia indicar o inicio de um pequeno fluxo de bits. A posição de cada bit no fluxo poderia ser definida sincronizando-os a intervalos regulares. Embora esse método seja semelhante a transferência síncrona, os sistemas transmissor e receptor não precisam ficar presos, exceto por pequenos intervalos entre os marcadores. A chegada de um marcador indica ao sistema receptor para começar a procurar os bits e rodar um temporizador curto. O problema de enviar e receber timers fora de sincronismo é eliminado reiniciando-se o clock a cada marcador, reduzindo o período entre os marcadores, não há tempo suficiente para o timer se perder.
Esse sistema de curto prazo temporizado
normalmente é chamado comunicação assíncrona, pois os sistemas de
envio e recepção não precisam estar sincronizada exatamente um com o outro. Os
bits marcadores oferecem a tranca temporária necessária para distinguir um
fluxo curto de bits de dados
Como dados seriais, os bits de uma palavra são enviados um de cada vez por um canal de comunicação. Por convenção, o bit menos significativo da palavra é enviado primeiro. O restante dos bits segue em ordem de grandeza crescente.
Junto a esses bits de dados há um pulso muito especial de tamanho duplo chamado bit de início; ele indica o início de uma palavra de dados. Um ou mais bits de fim indicam o final da palavra. Entre o último bit da palavra e o primeiro bit de fim, um bit de paridade costuma ser incluído para a verificação da integridade dos dados. Junto, os bits de dados, o bit de início, o bit de paridade e os bits de fim compõem um quadro de dados.
BITS DE PARIDADE
Cinco tipos de bits de paridade podem ser usados na comunicação serial, dois deles oferecendo um meio de detectar erros de transmissão ao nível de bit. Essa detecção de erros funciona contando o número de bits na palavra de dados e determinando se o resultado é par ou ímpar. Na paridade ímpar, o bit de paridade é ativado (passado para o nível lógico um) quando o número de bits da palavra é impar. A paridade par ativa o bit de paridade quando o total de bits de uma palavra é par.
Na paridade marca, o bit de paridade é sempre ativado, não importando o total de bits da palavra. A paridade espaço sempre deixa o bit de paridade desativado. Nenhuma paridade significa que o quadro não tem espaço para um bit de paridade. Embora emitindo um bit de integridade de dados ( que pode ser fornecido por outro meios), isso permite comunicações mais eficientes, comprimindo mais informações em um determinado número de bits transmitidos.
POLARIDADE DE SINAL
Todos os bits de um sinal serial no padrão RS-232 são enviados pela linha de comunicação como pulsos passando para negativo superpostos a uma voltagem positiva normal mantida na linha de dados. Ou seja, a presença de um bit na palavra serial interromperá uma voltagem positiva contínua com um breve pulso negativo.
Comparado com os sistemas lógicos normais, os dados no padrão RS-232 parecem estar de cabeça para baixo. Não há um motivo particularmente bom para essa inversão, exceto por ser o modo como as coisas têm sido feitas e, no caso das comunicações, as coisas funcionam melhor quando todos usam o mesmo padrão.
VELOCIDADE DE ENVIO DOS DADOS
Uma outra característica importante de todo sinal serial é a velocidade em que os bits no trem de dados serial são nominalmente enviados. O formato padrão dessa medida é muito simples: o número de bits enviados por segundo, com a unidade padrão sendo um bit por segundo, ou bps.
Por questões um tanto arbitrárias, as velocidades de bit são enumeradas em
incrementos pouco usuais. A velocidade mínima comum é 300 bps,
embora esteja disponíveis submúltiplos mais lentos: 50, 100 e 150 bps. As velocidades mais rápidas simplesmente duplicam a
velocidade anterior, passando para 600, 1200, 4800, 9600 e
Essas velocidades oficiais lentas são importantes porque o controle da porta serial por software impõe uma carga tão grande sobre o microprocessador do sistema que os chips mais lentos não podem trabalhar com velocidades maiores. Como as maiores velocidades não podem ser aceitas por todo o software, a IBM escolheu não sancionar tais velocidades em seus computadores mais antigos.
Com o surgimento dos modelos 90 e 95 do PS/2, a IBM incluiu um novo método de controle de porta serial que aumenta o potencial de velocidade serial eliminando o overhead do microprocessador. Nessas máquinas (e nas mais novas), as portas seriais tiram proveito do controle de DMA com controle de bus. Esse recurso aumenta a velocidade aceita oficialmente nas portas seriais para 38400 bps.
Até mesmo a mais rápida dessas velocidades oficiais não é suficiente para o hardware da maior parte do PCs. Na verdade, muitos softwares atualmente se aproveitam de um projeto de hardware, em particular de todas as portas seriais no padrão da IBM, para gerar velocidades muito maiores como 115200 bps. Embora a comunicação serial possa ocorrer em velocidades muito maiores( milhões ou bilhões de bits por segundo em alguns sistemas), o projeto clássico de porta serial da IBM limita a maior parte do hardware do computadores pessoais a velocidade de 115200 bp
HARDWARE SERIAL
O circuito ao núcleo das portas seriais da maior parte dos computadores
compatíveis com a IBM é um chip especial com a única finalidade de transformar
os sinais do bus paralelo em um fluxo de pulsos seriais . Chamado
transmissor/receptor assíncrono universal, ou UART (Universal Asynchronous receiver/transmitter), esse chip aceita oito linhas de dados como
entrada paralela e gera uma saída serial totalmente estruturada. Pelo nome, o
chip UART foi projetado para trabalhar nos dois sentidos – transmitindo e
recebendo. Um chip pode converter sinais em uma linha de comunicações para o
tipo paralelo que o PC deseja, bem como tornar bits paralelos
8250
O termo UART descreve a função e a família do circuito integrado. O chip exato recebe uma designação numérica atribuída pelo fabricante. Três tipos diferentes de UART são usados nos vários computadores que seguem o padrão do PC. O mais antigo, mais lento e menor chip foi usado pelo PC e XT, instalado na placa adaptadora de comunicação, de modo que possam imitar com precisão o produto da IBM. O mesmo chip foi usado como parte de muitos modems internos de menor velocidade.
Além de fazer a conversão paralela-serial-paralela básica, o chip UART 8250 também controla o fluxo de informações e a velocidade em que a troca acontece. Ele define a taxa de dados do sinal serial dividindo um clock oscilador de 1,8432 MHz fornecido pelo PC. A velocidade é definida por um divisor carregado em um dos registradores do chip. O tamanho da palavra, a paridade e o número de bits de fim são definidos de forma semelhante. Outros registradores permitem que o seu PC monitore o chip e o progresso das comunicações que ele gerencia.
Por mais maravilhosos que pareça. O 8250 representa uma tecnologia
ultrapassada. Desde os primeiros tempos do PC, esse chip não era muito
recomendado. O problema do 8250 é que ele é lento e não pode acompanhar os
computadores mais simples. Por outro lado, seu projeto básico tornou-se uma
parte obrigatória de todo PC, pois os programadores tinham controle direto dos
registradores no chip (em vez de escrever seu software para acessá-lo por meio
do BIOS da IBM, que foi o principal culpado da limitação da velocidade da porta
serial). Como resultado, para manter compatibilidade com o software, todas as
portas seriais posteriores tinham que duplicar a função de registrador do
16450
Na busca de um melhor desempenho, em 1984 os projetistas de hardware passaram para UART 16450, um sucessor de 16 bits e registradores compatíveis com o 8259. Esse chip, desde então, continuou como veio principal da maior parte das portas seriais. E como as velocidades do bus de expansão não mudaram substancialmente nos últimos oito anos, o 16450 é veloz o suficiente para a maior parte dos usuários.
No entanto, em 1987 o chip escolhido passou a ser o 16550 de melhor desempenho ,
em seguida,
Outro desenvolvimento além da velocidade, a multitarefa, desafiava o 16450. Quando um dos UARTs mais antigos ( 8250 ou o 16450) recebe uma informação antes de poder aceitar outra palavra. Na maior parte dos sistemas de comunicações o UART sinaliza seu microprocessador com uma interrupção e depois entrega a palavra de dados e volta a telecomunicar-se. No envio de dados, o chip aceita de forma semelhante apenas uma palavra de cada vez.
Esse processo tem desvantagens sérias, sobretudo porque o microprocessador pode estar ocupado com outra tarefa no momento em que a UART tenta fazer uma interrupção. Uma vez sinalizado dessa forma, o processador deve parar o que estava fazendo para atender o UART. Mas, como o UART e a linha de comunicação podem ter que esperar, o desempenho sofre nos dois lados do UART. As necessidades de dados dos modems de alta velocidade, como os modelos V.32 bits, agravam ainda mais a situação.
O UART 16550 oferece uma boa solução para esse problema: um buffer FIFO (primeiro a entrar, primeiro a sair) de 16 bytes na própria placa. Esse pequeno trecho de memória permite que o 16550 continue se comunicando mesmo quando um computador de multitarefa passa sua atenção para outros projetos. Se for programado corretamente ( e usar o software correto, pois os programas devem ser escritos especificamente para tirar proveito do buffer do 16550), o chip pode transportar seus 16 bytes de comunicações sozinho, enviando ou recebendo dados enquanto o microprocessador realiza outra tarefa. Observe que o buffer do chip 16550 deve ser ativado especificamente pelo software. Se o buffer não estiver ativo, o 16550 funcionará exatamente da mesma forma que o 16450, sem trazer qualquer beneficio adicional ao seu PC
Tipos de UART
8250 |
First
UART in this series. It contains no scratch register. The 8250A was an
improved version of the 8250 which operates faster on the bus side. |
8250A |
This UART
is faster than the 8250 on the bus side. Looks exactly the same to software
than 16450. |
8250B |
Very
similar to that of the 8250 UART. |
16450 |
Used in AT's (Improved bus speed over 8250's). Operates
comfortably at 38.4KBPS. Still quite common today. |
16550 |
This was
the first generation of buffered UART. It has a 16 byte buffer, however it
doesn't work and is replaced with the 16550A. |
16550A |
Is the
most common UART use for high speed communications eg
14.4K & 28.8K Modems. They made sure the FIFO buffers worked on this
UART. |
16650 |
Very
recent breed of UART. Contains a 32 byte FIFO, Programmable X-On / X-Off
characters and supports power management. |
16750 |
Produced
by |
CONJUNTO DE CHIPS
No entanto, o chip de UART está desaparecendo. Suas funções estão sendo assumidas por ASICs (Application-Specific Integrated Circuits). Os conjuntos de chips dos quais a maior parte dos PCs se compõe atualmente incluem o circuito de uma ou duas UARTs. Nos PCs mais modernos, a função do UART está oculta na mesma lasca de silício do restante das funções lógicas do PC. Além disso, alguns fabricantes começaram a reunir várias funções de comunicação em um único pacote para uso em placas de multifunção. A Wester Digital 16C532, por exemplo, combina o equivalente elétrico de dois UARTs 16550 e uma porta paralela em um único chip. Até mesmo nesses chips mais avançados, o projeto interno dos UARTs embutidos continua a imitar as versões independentes para assegurar compatibilidade completa do sistema.
ENDEREÇAMENTO DE I/O
Para acessar os registradores do UART, o microprocessador do PC deve enviar comando por meio das portas de entrada/saída (I/O) do sistema. Na verdade, a arquitetura padrão do PC atribui um bloco de oito portas de I/O a cada UART( e assim, cada adaptador de comunicação assíncrona, ou porta serial do PC), embora apenas sete sejam usadas.
FUNÇÕES DOS REGISTRADORES
O registrador no endereço de base atribuído a cada porta serial é usado para comunicações de dados. Os bytes são movidos para a UART usando as instruções OUT e IN do microprocessador. Os seis endereços seguintes são usados por outros registradores de porta serial, os quais, em ordem, são os seguintes: Registrador de Identificação de Interrupção, Registrador de Controle da Linha, Registrador de Controle do Modem, Registrador de Status da linha e Registrador de Status do Modem. Outro registador, chamado Latch do Divisor, compartilha o endereço de base usado pelos registradores de Transmissão e Recepção, e os próximos registradores mais altos usados pelo registrador de ativação da interrupção. Ele é acessado alterando-se uma opção no registrador de controle de linha.
Esse latch armazena o divisor que determina a velocidade
operacional da porta serial. Qualquer valor carregado no latch
é multiplicado por 16. O produto resultante é usado para dividir o sinal de clock fornecido ao chip do UART para determinar a
velocidade
Os registradores não apenas armazenam os valores utilizados pelo chip UART, mas também são usados para informar ao sistema como a transmissão serial está ocorrendo. Por exemplo, o registrador de Status da linha indica se um caráter carregado para transmissão foi realmente enviado. Também indica quando um novo caráter foi recebido.
Embora podendo mudar os valores armazenados nesses registradores manualmente por meio do Debug ou de programas próprios, esses registradores em geral dão flexibilidade ao programador.
Em vez de ter que usar DIP switches ou jumpers, a facilidade de endereçamento direto dos registradores permite que todos os parâmetros operacionais vitais sejam definidos pelo software. Por exemplo. Carregando os valores apropriados no registrador de controle da linha, se altera o tamanho da palavra, paridade e número de bits de parada usados em cada palavra serial.
CONTROLE DE FLUXO
Além das transmissões de dados, o UART também cria e reage a outros sinais que controlam sua operação e o modo como a transmissão serial é gerenciada. O controle é permitido por meio de vários registradores acessados pelo computador por meio de portas de I/O. Por exemplo, para mudar a velocidade em que a porta serial se comunica, basta carregar um número correto em um registrador. O controle da transmissão é mantido por voltagens que aparecem ou são recebidas nos conectores de porta serial no painel traseiro do computador pessoal.
Uma dessa outras funções da UART é ordenar para o controle do fluxo de dados na linha serial. Cada intercâmbio serial é uma verdadeira conversa entre dois lados. Quando um lado fala, o outro precisa ouvir. Assim como uma conversa educada, se o ouvinte não estiver prestando atenção, nada será comunicado. E se quem se fala for muito rápido, o ouvinte ficará confuso e perderá a maior parte do que foi dito. As comunicações seriais entre computadores sofrem dos mesmos problemas. Sem uma medição correta da saída, os computadores podem lançar dados que serão perdidos no espaço. Até mês mesmo quando a conexão é boa, o equipamento receptor pode estar preso e não poder dar atenção a informação serial entregue a ele. Ou então os dados seriais podem chegar com tanta velocidade que excedam a capacidade do sistema receptor de fazer algo no mesmo instante – até mesmo salvar a informação para inspeção posterior. Por conseguinte, são necessários alguns meios para que o sistema receptor diga ao sistema transmissor que pare até que esteja pronto para solicitar dados. Sugiram várias técnicas para controlar o fluxo de dados seriais, todas classificadas como métodos de handshking, que é o acordo de termos para o método de transmissão.
A solução mais fácil é usar um fio especial como linha de sinal, que o sistema receptor pode empregar, a fim de indicar que está realmente pronto para receber. Como esse método usa um hardware extra (o fio do controle de fluxo), ele é chamado handshaking de hardware. Esse é o método básico de controle de fluxo adotado pelos computadores pessoais da IBM. Alguns canais de comunicação não permitem o uso desse fio extra para sinalização. Por exemplo, a conexão telefônica usada pelos modem ( o principal dispositivo de comunicações seriais) só tem os dois fios necessários para a transmissão dos dados. Sem um meio de sinalização por hardware, algum método alternativo de controle de fluxo torna-se necessário. A forma lógica de gerenciar essas comunicações é dar ao ouvinte caracteres especiais usados como semáforos com a finalidade de indicar ao transmissor para diminuir a velocidade ou parar. Outro caráter pode seu usado para indicar quando é possível acelerar novamente. Essa forma de controle de fluxo é chamada handshaking de software, pois não é feita pelo hardware. Além do mais, os indicadores de controle de fluxo possuem as mesmas idéias que já estão incorporadas no código do software.
Embora a maioria dos periféricos do PC que utilizavam uma conexão serial ofereçam a opção de handshking de software, sem drivers especiais esse método não funciona corretamente com PCs ou compatíveis. O computador sequer percebe os caracteres de controle do fluxo e, portanto, não segue suas orientações. O resultado é um overflow de dados, e a perda de caracteres. Por exemplo, se você usar uma impressora serial e o handshking não funcionar, caracteres, palavras ou parágrafos inteiros podem desaparecer misteriosamente das listagens.
No entanto, o controle de fluxo por software faz parte integrante de vários programas aplicativos, para controlar periféricos, como impressoras, ou para revezamento em modems( que não podem passar adiante os sinais de handshking de hardware) para fontes de dados remotas.
INTERRUPÇÕES
O UART interage com os microprocessadores no PC. Ele precisa entrar com um pedido para transferir informações de modo que o microprocessador possa processar os dados para a tela ou armazena-los. Para conseguir a mais alta velocidade, o UART deve poder passar os dados tão rapidamente quanto os recebe. Toda vez que usar o controle de fluxo para terminar a seqüência de informações, a velocidade de transmissão diminui. Consequentemente o UART precisa passar os dados adiante logo que possa – imediatamente, se possível. Ele precisa ter atenção imediata do microprocessador. O UART pode conseguir isso enviando uma interrupção de hardware ao microprocessador.
A maior parte das portas seriais exige que o usuário atribua uma interrupção. (As comunicações seriais não funcionam sem controle de interrupção, mas isso restringirá bastante a velocidade) O ideal é que cada porta serial tenha sua própria interrupção para evitar conflitos. No entanto, o PC possui algumas interrupções de hardware, e a IBM tentou limitar o número de portas seriais atribuíveis. Duas interrupções são normalmente usadas: IRQ3 e IRQ4. A porta serial COM1 normalmente deve receber a requisição de interrupção compartilha a IRQ3 com COM2, e COM4 compartilha a IRQ4 comoCOM1.
Esse sistema primitivo de compartilhamento de interrupções tem suas desvantagens. Dois ou mais dispositivos seriais podem operar ao mesmo tempo e enviar interrupções ao seu microprocessador. Se dois dispositivos usando a mesma interrupção disputarem a atenção do microprocessador, o chip poderá não saber qual a porta que precisa de atendimento imediato. Como atribuir portas seriais, é importante evitar endereçar a mesma interrupção a dois dispositivos seriais que operam ao mesmo tempo.
CONECTORES
A manifestação externa de uma porta serial é o conector que ela fornece para o usuário ligar os dispositivos seriais. É possível identificar as portas seriais em um computador compatível com o IBM pelos tipos de conectores encontrados. Dois tipos diferentes de conectores são normalmente usados. IBM, PCs, XTs e PS/2s usam conectores D machos de 25 pinos em suas portas seriais. Ats usam conectores D machos de 9 pinos. Os conectores menores do AT foram projetados para o espaço apertado do suporte da placa na porta serial/paralela combinada, que esses sistemas utilizam. Nem todos os 25 pinos de um conector serial são ativamente usados no esquema da IBM, permitindo o uso de conectores mais, curtos; a porta paralela usa toda a sua alocação de pinos. Obviamente, a porta serial for a candidata preferida para a redução no tamanho.
As portas paralelas, que também usam conectores D de 25 pinos, podem ser distinguidas por serem fêmeas (ou seja, os conectores têm furos no lugar de pinos). As saídas de vídeo MDA/CGA/EGA mais antigas, que utilizam conectores D de 9 pinos como os das portas seriais do AT, também usam conectores fêmeas
Como a maioria dos cabos seriais é equipada com conectores de 35 pinos em ambas as portas, é preciso instalar um adaptador que converta a conexão de 9 pinos do AT em 25 pinos. Há vários adaptadores disponíveis no mercado, mas você pode construir um sem problemas. A figura 1 mostra a pinagem correta de um conversor serial de 9 para 25 pinos
COMO FUNCIONAM AS PORTAS SERIAIS
O Que é RS-232?
RS é uma abreviação de “Recommended Standard”. Ela relata uma padronização de uma interface comum para comunicação de dados entre equipamentos, criada no início dos anos 60, por um comitê conhecido atualmente como “Electronic Industries Association” (EIA). Naquele tempo, a comunicação de dados compreendia a troca de dados digitais entre um computador central (mainframe) e terminais de computador remotos, ou entre dois terminais sem o envolvimento do computador. Estes dispositivos poderiam ser conectados através de linha telefônica, e consequentemente necessitavam um modem em cada lado para fazer a decodificação dos sinais.
Dessas idéias nasceu o padrão RS232. Ele especifica as tensões, temporizações e funções dos sinais, um protocolo para troca de informações, e as conexões mecânicas. A mais de 30 anos desde que essa padronização foi desenvolvida, a EIA publicou três modificações. A mais recente, EIA232E, foi introduzida em 1991. Ao lado da mudança de nome de RS232 para EIA232, algumas linhas de sinais foram renomeadas e várias linhas novas foram definidas. Embora tenha sofrido poucas alterações, muitos fabricantes adotaram diversas soluções mais simplificadas que tornaram impossível a simplificação da padronização proposta. As maiores dificuldades encontradas pelos usuários na utilização da interface RS232 incluem pelo menos um dos seguintes fatores:
à A ausência ou conexão errada de sinais de controle, resultam em estouro do buffer (“overflow”) ou travamento da comunicação.
à Função incorreta de comunicação para o cabo em uso, resultam em inversão das linhas de Transmissão e Recepção, bem como a inversão de uma ou mais linhas de controle (“handshaking”).
Felizmente, os drivers utilizados são bastante tolerantes aos abusos cometidos, e os CIs normalmente sobrevivem.
O RS-232 atribui funções particulares aos fios em um cabo serial. Além de dois condutores usados para dados, vários outro são necessários para handshaking de hardware e para fazer com que tudo funcione corretamente
As várias conexões e seus nomes nos conectores seriais da IBM com 25 pinos 9(DTE) e 9 pinos aparecem na tabela abaixo
Vantagens de usar transmição serial:
- É necessário uma menor quantidade de fios.
- Cabos seriais podem ser mais longos que cabos
paralelos. Portas seriais transmitem o bit ‘1’ como
- Os micro controladores precisam ter somente 2 pinos, TXD (Transmit Data) e RXD (Receive Data), comparado com no mínimo 8 pinos necessário quando se usa uma transmissão de 8 bits no método paralelo.
Pinagem da Porta Serial da IBM
Pinos |
Função |
Mnemônico |
2 |
Transmissão de dados |
TXT |
3 |
Recepção de dados |
RXD |
4 |
Solicitação de dados |
RTS |
5 |
Pronto para enviar |
CTS |
6 |
Data set pronto |
RTS |
7 |
Terra do sinal |
GND |
8 |
Detecção da portadora |
CD |
20 |
Terminal de dados pronto |
DTR |
22 |
Indicador de chamadas |
RI |
Conexão do tipo loop de corrente (apenas no IBM Async Sdapter, hoje obsoleto )
9 |
Transmissão de retorno do loop de corrente |
11 |
Transmissão de dados do loop de corrente |
18 |
Recepção de dados do loop de corrente |
25 |
Recepção do retorno do loop de corrente |
Conector de 9 pinos (estilo AI)
1 |
Detecção de portadora |
CD |
2 |
Recepção de dados |
RXD |
3 |
Transmissão de dados |
TXD |
4 |
Terminal de dados pronto |
DTR |
5 |
Terra do sinal |
GND |
6 |
Data set pront |
DSR |
7 |
Solicitação de envio |
RTS |
8 |
Pronto para enviar |
CTS |
9 |
Indicador de chamada |
RI |
O mais importante de todos ó o número sete, o terra de sinal. Esse fio oferece o caminho de retorno necessário para sinais de dados e de handshaking. Esse fio deve estar presente em todos os cabos seriais.
O terra do sinal é separado e completamente diferente do pino um, terra do chassi. O pino do conector serial correspondente a esse fio é conectado diretamente ao chassis metálico ou ao gabinete do equipamento, da mesma forma que o pino terra de uma tomada comum de corrente alternada. Na realidade, essa conexão oferece a mesma função de segurança do terra elétrico. Ela assegura que as partes metálicas externas dos dois dispositivos estejam no mesmo potencial elétrico. Isso evita que você leve um choque se tocar os dispositivos ao mesmo tempo Ela transporta qualquer eletricidade que possa fluir entre as duas unidades em vez de permitir que o seu coro faça isso (colocando sua vida em risco)
ATERRAMENTO CORRETO
Entretanto, essa conexão nem sempre é necessária, e nem sempre é desejável. Não é necessária quando os dois dispositivos já estão aterrados juntos por meio de cabos de corrente alternada. Pode não ser desejável, quando os dois dispositivos estão separados por uma grande distância e retiram a alimentação de fontes diferentes. Os potenciais de aterramento elétrico variam ( devido a diferentes resistências em cada caminho de retorno do terra), e é totalmente possível que cabos de corrente alternada aterrados possam colocar os dos dispositivos em potenciais bem diferentes. O circuito de terra do chassi poderia, então, transportar uma corrente substancial como loop de terra. Se a corrente no loop for bastante intensa, poderá causar interferência elétrica. Há uma pequena chance de que possa derreter o condutor de terra do chassi e causar u incêndio.
A melhor estratégia é a seguinte:
· Se os dois dispositivos seriais numa conexão estiverem aterrados por meio de seus cabos de corrente alternada, não precisa um fio de terra do chassi.
· Se apenas um estiver aterrado por meio do cabo de corrente alternada, a melhor coisa a fazer é também aterrar o outro por meio do cabo. Caso contrário, deverá usar uma conexão de terra do chassi na sua porta serial.
FUNÇÕES DOS SINAIS
Tentar realizar uma comunicação serial poderia ser inútil se um ou outro dispositivo da conexão estivesse desligado. Sem um segundo dispositivo para ouvir, a informação de um lado da linha serial se perderia no espaço. Consequentemente, a especificação RS-232 inclui dois fios dedicados a revelar se há um dispositivo conectado a outra ponta da conexão, e se ele está ligado.
O sinal no pino 20 chama-se Data Terminal Ready, ou simplesmente DTR. É uma voltagem positiva enviada do dispositiva enviada do dispositivo DTE para indicar que o dispositivo está conectado, ligado e pronto para iniciar a comunicação.
O sinal complementar aparece no pino 6. Ele se chama Data Set Ready, ou DST; uma voltagem positiva nessa linha indica que o DCE está ligado e pronto para fazer o seu trabalho.
Em uma conexão serial RS-232 normal, os dois sinais devem estar presentes para que algo mais aconteça. O DTE envia o sinal DTR ao DCE, e o DCE envia o sinal DSR ao DTE. Os dois dispositivos, então, saberão que o outro está pronto.
TEMPORIZAÇÃO DOS SINAIS
A norma EIA232 especifica uma taxa máxima de transferência de dados de
20.000 bits por segundo (o limite usual é 19200 bps).
Baud rates fixos não são fornecidos pela norma.
Contudo, os valores comumente usados são 300, 1200, 2400, 4800, 9600 e 19200 bps. Mudanças no estado dos sinais de nível lógico “
à Sinais que entram na zona de transição durante uma mudança de estado deve atravessar essa região com direção ao estado oposto sem reverter a direção ou reentrar;
à Para os sinais de controle, o tempo na zona de transição deve ser menor do que 1ms; Para sinais de temporização, o tempo para atravessar a zona de transição deve ser:
à Menor do que 1 ms para períodos de bits maiores que 25 ms;
à 4% do período de um bit para períodos entre 25 ms e 125 ms;
à Menor do que 5 ms para períodos menores que 125 ms.
As rampas de subida e de descida de uma transição não devem exceder 30 V/ms. Taxas maiores do que esta podem induzir sinais em condutores adjacentes de um cabo.
Conversores de nível TTL – RS232
A maioria dos
equipamentos digitais utilizam níveis TTL ou CMOS. Portanto, o primeiro passo
para conectar um equipamento digital a uma interface RS232 é transformar níveis
TTL (
Nos casos onde serão implementados somente as linhas de transmissão e de recepção de dados, não seria necessário 2 chips e fontes de alimentação extras.
Bibliografia:
http://www.totse.com/en/technology/telecommunications/uart.html
http://www.beyondlogic.org/serial/serial.htm
http://www.fact-index.com/1/16/16550_uart.html
http://www.webopedia.com/TERM/U/UART.html