Porta serial - Serial port

Um conector D-subminiatura macho usado para uma porta serial em um computador compatível com IBM PC junto com o símbolo da porta serial

Na computação , uma porta serial é uma interface de comunicação serial por meio da qual as informações são transferidas para dentro ou para fora sequencialmente, um bit de cada vez. Isso está em contraste com uma porta paralela , que comunica vários bits simultaneamente em paralelo . Ao longo da maior parte da história dos computadores pessoais , os dados foram transferidos por meio de portas seriais para dispositivos como modems , terminais , vários periféricos e diretamente entre computadores.

Embora interfaces como Ethernet , FireWire e USB também enviem dados como um fluxo serial , o termo porta serial geralmente denota hardware compatível com RS-232 ou um padrão relacionado, como RS-485 ou RS-422 .

Os PCs de consumo modernos substituíram amplamente as portas seriais por padrões de alta velocidade, principalmente USB. No entanto, as portas seriais ainda são frequentemente utilizadas em aplicações que exigem interfaces simples e de baixa velocidade, como sistemas de automação industrial, instrumentos científicos, sistemas de ponto de venda e alguns produtos industriais e de consumo.

Os computadores servidores podem usar uma porta serial como um console de controle para diagnósticos, enquanto o hardware de rede (como roteadores e switches ) normalmente usa portas de console seriais para configuração, diagnóstico e acesso de manutenção de emergência. Para fazer interface com esses e outros dispositivos, os conversores USB para serial podem adicionar de forma rápida e fácil uma porta serial a um PC moderno.

Hardware

Atualmente, muitos dispositivos usam um circuito integrado chamado UART para implementar uma porta serial. Este IC converte caracteres de e para a forma serial assíncrona , implementando o tempo e o enquadramento dos dados especificados pelo protocolo serial no hardware. O IBM PC implementa suas portas seriais, quando presentes, com um ou mais UARTs.

Sistemas de custo muito baixo, como alguns dos primeiros computadores domésticos , usariam a CPU para enviar os dados por meio de um pino de saída , usando a técnica de bit banging . Esses primeiros computadores domésticos geralmente tinham portas seriais proprietárias com pinagens e níveis de voltagem incompatíveis com RS-232.

Antes da integração em grande escala (LSI) tornar os UARTs comuns, as portas seriais eram comumente usadas em mainframes e minicomputadores , que teriam vários circuitos integrados de pequena escala para implementar registradores de deslocamento, portas lógicas, contadores e todas as outras lógicas necessárias. Conforme os PCs evoluíram, as portas seriais foram incluídas no chip Super I / O e, em seguida, no chipset .

DTE e DCE

Os sinais individuais em uma porta serial são unidirecionais e ao conectar dois dispositivos, as saídas de um dispositivo devem ser conectadas às entradas do outro. Os dispositivos são divididos em duas categorias: equipamento de terminal de dados (DTE) e equipamento de terminação de circuito de dados (DCE). Uma linha que é uma saída em um dispositivo DTE é uma entrada em um dispositivo DCE e vice-versa, então um dispositivo DCE pode ser conectado a um dispositivo DTE com um cabo direto, em que cada pino em uma extremidade vai para o mesmo número pino na extremidade oposta.

Convencionalmente, computadores e terminais são DTE, enquanto periféricos, como modems, são DCE. Se for necessário conectar dois dispositivos DTE (ou DCE) juntos, um cabo com linhas TX e RX reversas, conhecido como cross-over , roll-over ou cabo de modem nulo, deve ser usado.

Gênero

Geralmente, os conectores de porta serial são sexados , permitindo apenas que os conectores se encaixem com um conector do sexo oposto. Com os conectores D-subminiatura , os conectores machos têm pinos salientes e os conectores fêmeas têm soquetes redondos correspondentes. Qualquer tipo de conector pode ser montado no equipamento ou em um painel; ou terminar um cabo.

Os conectores montados no DTE são provavelmente machos e os montados no DCE são provavelmente fêmeas (sendo os conectores do cabo o oposto). No entanto, isso está longe de ser universal; por exemplo, a maioria das impressoras seriais tem um conector DB25 fêmea, mas são DTEs. Nessa circunstância, os conectores de gênero apropriado no cabo ou um trocador de gênero podem ser usados ​​para corrigir a incompatibilidade.

Conectores

O único conector especificado no padrão RS-232 original era o subminiatura D de 25 pinos, no entanto, muitos outros conectores foram usados ​​para economizar dinheiro ou espaço físico, entre outros motivos. Em particular, como muitos dispositivos não usam todos os 20 sinais definidos pelo padrão, geralmente são usados ​​conectores com menos pinos. Enquanto exemplos específicos seguem, inúmeros outros conectores foram usados ​​para conexões RS-232.

O conector DE-9 de 9 pinos tem sido usado pela maioria dos PCs compatíveis com IBM desde a opção Adaptador Serial / Paralelo para o PC-AT , onde o conector de 9 pinos permite que uma porta serial e paralela se encaixem na mesma placa. Este conector foi padronizado para RS-232 como TIA-574 .

Alguns eletrônicos miniaturizados, particularmente calculadoras gráficas e equipamentos de rádio amador e bidirecional , têm portas seriais usando um conector de telefone , geralmente os conectores menores de 2,5 ou 3,5 mm e a interface de 3 fios mais básica - transmissão, recepção e aterramento.

Um cabo rollover Cisco usando o padrão 8P8C Yost

Os conectores 8P8C também são usados ​​em muitos dispositivos. O padrão EIA / TIA-561 define uma pinagem usando este conector, enquanto o cabo rollover (ou padrão Yost) é comumente usado em computadores Unix e dispositivos de rede, como equipamentos da Cisco Systems .

Par de conectores Mini DIN-8 fêmea usados ​​para portas seriais RS-422 em um computador Macintosh LC

Muitos modelos de Macintosh favorecem o padrão RS-422 relacionado, principalmente usando conectores mini-DIN circulares . O Macintosh incluiu um conjunto padrão de duas portas para conexão a uma impressora e um modem, mas alguns notebooks PowerBook tinham apenas uma porta combinada para economizar espaço.

Os conectores 10P10C podem ser encontrados em alguns dispositivos.

Outro conector comum é um conector de pino 10 × 2 comum em placas-mãe e placas de expansão, que geralmente é convertido através de um cabo de fita para o conector DE-9 de 9 pinos mais padrão (e frequentemente montado em uma placa de slot livre ou outra parte do o alojamento).

Pinouts

A tabela a seguir lista os sinais RS-232 comumente usados ​​e as atribuições de pinos:

Sinal Direção Pino conector
Nome Circuito V.24 Abreviação DTE DCE DB-25 DE-9 ( TIA-574 ) MMJ 8P8C ("RJ45") 10P10C ("RJ50")
EIA / TIA-561 Yost (DTE) Yost (DCE) Cyclades Digi (opção ALTPIN) Instrumentos Nacionais Cyclades Digi
Dados Transmitidos 103 TxD Fora No 2 3 2 6 6 3 3 4 8 4 5
Dados recebidos 104 RxD No Fora 3 2 5 5 3 6 6 5 9 7 6
Terminal de dados pronto 108/2 DTR Fora No 20 4 1 3 7 2 2 8 7 3 9
Detecção de portadora de dados 109 DCD No Fora 8 1 N / D 2 2 7 7 1 10 8 10
Conjunto de dados pronto 107 DSR No Fora 6 6 6 1 N / D 8 N / D 5 9 2
Indicador de toque 125 RI No Fora 22 9 N / D N / D N / D N / D N / D 2 10 1
Pedido de envio 105 RTS Fora No 4 7 N / D 8 8 1 1 2 4 2 3
Limpar para enviar 106 CTS No Fora 5 8 N / D 7 1 8 5 7 3 6 8
Campo de sinal 102 G Comum 7 5 3, 4 4 4, 5 4, 5 4 6 6 5 7
Terra Protetora 101 PG Comum 1 N / D N / D N / D N / D N / D N / D 3 N / D 1 4

O aterramento do sinal é um retorno comum para as outras conexões; ele aparece em dois pinos no padrão Yost, mas é o mesmo sinal. O conector DB-25 inclui um segundo aterramento protetor no pino 1, que deve ser conectado por cada dispositivo ao seu próprio aterramento ou similar. A conexão do aterramento de proteção ao aterramento do sinal é uma prática comum, mas não recomendada.

Observe que EIA / TIA 561 combina DSR e RI, e o padrão Yost combina DSR e DCD.

Abstração de hardware

Os sistemas operacionais geralmente criam nomes simbólicos para as portas seriais de um computador, em vez de exigir que os programas se refiram a elas por endereço de hardware.

Os sistemas operacionais do tipo Unix geralmente rotulam os dispositivos de porta serial como / dev / tty * . TTY é uma abreviatura comum sem marca registrada para teletipo , um dispositivo comumente conectado às portas seriais dos primeiros computadores, e * representa uma string que identifica a porta específica; a sintaxe dessa string depende do sistema operacional e do dispositivo. No Linux , 8250 / 16550 UART portas seriais de hardware são nomeados / dev / ttyS * , adaptadores USB aparecem como / dev / ttyUSB * e vários tipos de portas seriais virtuais não necessariamente têm nomes começando com tty .

Os ambientes DOS e Windows referem-se às portas seriais como portas COM : COM1, COM2, .. etc.

Aplicativos comuns para portas seriais

O padrão RS-232 é usado por muitos dispositivos especializados e personalizados. Esta lista inclui alguns dos dispositivos mais comuns conectados à porta serial de um PC. Alguns deles, como modems e mouses seriais, estão caindo em desuso, enquanto outros estão prontamente disponíveis.

As portas seriais são muito comuns na maioria dos tipos de microcontroladores , onde podem ser usadas para se comunicar com um PC ou outros dispositivos seriais.

Como os sinais de controle de uma porta serial podem ser facilmente ligados e desligados por um switch, alguns aplicativos usavam as linhas de controle de uma porta serial para monitorar dispositivos externos, sem trocar dados seriais. Uma aplicação comercial comum desse princípio era para alguns modelos de fonte de alimentação ininterrupta que usavam as linhas de controle para sinalizar perda de energia, bateria fraca e outras informações de status. Pelo menos algum software de treinamento em código Morse usava uma chave de código conectada à porta serial para simular o uso real do código. Os bits de status da porta serial podem ser amostrados muito rapidamente e em momentos previsíveis, tornando possível para o software decifrar o código Morse.

Definições

Velocidades comuns da porta serial
Taxa de bits
(taxa Baud)
Tempo
por bit

Velocidade da porta serial predefinida do Windows
Outras razões pelas quais essa velocidade é comum
75 bit / s 13333,3 μs sim
110 bit / s 9090,9 μs sim Modem Bell 101
134,5 bit / s 7434,9 μs sim
150 bit / s 6666,6 μs sim
300 bit / s 3333,3 μs sim Modem Bell 103 ou modem V.21
600 bit / s 1666,7 μs sim
1.200 bit / s 833,3 μs sim Modem Bell 202 , Bell 212A ou V.22
1.800 bit / s 555,6 μs sim
2.400 bit / s 416,7 μs sim Modem V.22bis
4.800 bit / s 208,3 μs sim Modem V.27ter
7.200 bit / s 138,9 μs sim
9.600 bit / s 104,2 μs sim Modem V.32
14.400 bit / s 69,4 μs sim Modem V.32bis
19.200 bit / s 52,1 μs sim
31.250 bit / s 32 μs Não Porta MIDI
38.400 bit / s 26,0 μs sim
56.000 bit / s 17,9 μs sim Modem V.90 / V.92
57.600 bit / s 17,4 μs sim Modem V.32bis com compressão V.42bis
76.800 bit / s 13,0 μs Não Redes BACnet MS / TP
115.200 bit / s 8,68 μs sim Modem V.34 com compressão V.42bis , modem
serial V.90 / V.92 de baixo custo

com compressão V.42bis ou V.44

128.000 bit / s 7,81 μs sim Adaptador de terminal ISDN de interface de taxa básica
230.400 bit / s 4,34 μs Não LocalTalk , modem V.90 / V.92
serial de ponta

com compressão V.42bis ou V.44

250.000 bit / s 4,0 μs Não DMX512 , iluminação de palco e rede de efeitos
256.000 bit / s 3,91 μs sim

Os padrões seriais fornecem muitas velocidades de operação diferentes, bem como ajustes ao protocolo para levar em conta as diferentes condições de operação. As opções mais conhecidas são velocidade, número de bits de dados por caractere, paridade e número de bits de parada por caractere.

Em portas seriais modernas que usam um circuito integrado UART , todas essas configurações podem ser controladas por software. O hardware da década de 1980 e anteriores pode exigir a configuração de interruptores ou jumpers em uma placa de circuito.

A configuração de portas seriais projetadas para serem conectadas a um PC se tornou um padrão de fato, geralmente declarado como 9600/8-N-1 .

Velocidade

As portas seriais usam sinalização de dois níveis (binária), de modo que a taxa de dados em bits por segundo é igual à taxa de símbolo em baud . Uma série padrão de taxas é baseada em múltiplos das taxas para teleimpressoras eletromecânicas ; algumas portas seriais permitem que muitas taxas arbitrárias sejam selecionadas, mas as velocidades em ambos os lados da conexão devem corresponder, ou os dados serão recebidos como algo sem sentido.

A capacidade de definir uma taxa de bits não significa que resultará em uma conexão funcional. Nem todas as taxas de bits são possíveis com todas as portas seriais. Alguns protocolos de uso especial, como MIDI para controle de instrumentos musicais, usam taxas de dados seriais diferentes dos padrões de teleimpressora. Algumas implementações de porta serial podem escolher automaticamente uma taxa de bits observando o que um dispositivo conectado está enviando e sincronizando com ele.

A velocidade total inclui bits para o enquadramento (bits de parada, paridade, etc.) e, portanto, a taxa de dados efetiva é menor do que a taxa de transmissão de bits. Por exemplo, com o enquadramento de caracteres 8-N-1 , apenas 80% dos bits estão disponíveis para dados; para cada oito bits de dados, mais dois bits de enquadramento são enviados.

As taxas de bits comumente suportadas incluem 75, 110, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600 e 115200 bit / s.

Os osciladores de cristal com uma frequência de 1,843200 MHz são vendidos especificamente para essa finalidade. Isso é 16 vezes a taxa de bits mais rápida e o circuito da porta serial pode facilmente dividir isso em frequências mais baixas, conforme necessário.

Bits de dados

O número de bits de dados em cada caractere pode ser 5 (para código Baudot ), 6 (raramente usado), 7 (para ASCII verdadeiro ), 8 (para a maioria dos tipos de dados, pois este tamanho corresponde ao tamanho de um byte ) ou 9 (raramente usado). 8 bits de dados são usados ​​quase universalmente em aplicativos mais recentes. 5 ou 7 bits geralmente só fazem sentido com equipamentos mais antigos, como teleimpressoras.

A maioria dos projetos de comunicação serial envia os bits de dados dentro de cada byte LSB ( bit menos significativo ) primeiro. Este padrão também é conhecido como "little endian".

Também possível, mas raramente usado, é "big endian" ou MSB ( bit mais significativo ) primeiro; isso foi usado, por exemplo, pelo terminal de impressão IBM 2741 .

A ordem dos bits geralmente não é configurável na interface da porta serial, mas é definida pelo sistema host. Para se comunicar com sistemas que requerem uma ordem de bits diferente do padrão local, o software local pode reordenar os bits dentro de cada byte antes de enviar e logo depois de receber.

Paridade

A paridade é um método de detecção de erros na transmissão. Quando a paridade é usada com uma porta serial, um bit de dados extra é enviado com cada caractere de dados, organizado de forma que o número de 1 bits em cada caractere, incluindo o bit de paridade, seja sempre ímpar ou sempre par. Se um byte for recebido com o número incorreto de 1s, ele deve ter sido corrompido. No entanto, um número par de erros pode passar na verificação de paridade.

As teleimpressoras eletromecânicas foram preparadas para imprimir um caractere especial quando os dados recebidos continham um erro de paridade, para permitir a detecção de mensagens danificadas pelo ruído da linha . Um único bit de paridade não permite a implementação de correção de erro em cada caractere, e os protocolos de comunicação que funcionam em links de dados seriais terão mecanismos de nível superior para garantir a validade dos dados e solicitar a retransmissão dos dados recebidos incorretamente.

O bit de paridade em cada caractere pode ser definido como um dos seguintes:

  • Nenhum (N) significa que nenhum bit de paridade é enviado.
  • Odd (O) significa que o bit de paridade é definido de forma que o número de "uns lógicos" deve ser ímpar.
  • Par (E) significa que o bit de paridade é definido de forma que o número de "uns lógicos" deve ser par.
  • Paridade de marca (M) significa que o bit de paridade é sempre definido para a condição de sinal de marca (lógico 1).
  • A paridade de espaço (S) sempre envia o bit de paridade na condição de sinal de espaço (0 lógico).

Além de aplicativos incomuns que usam o último bit (geralmente o 9º) para alguma forma de endereçamento ou sinalização especial, a marca ou paridade de espaço é incomum, pois não adiciona nenhuma informação de detecção de erro.

A paridade ímpar é mais útil do que a paridade par, pois garante que pelo menos uma transição de estado ocorra em cada caractere, o que o torna mais confiável na detecção de erros como aqueles que podem ser causados ​​por incompatibilidades de velocidade da porta serial. A configuração de paridade mais comum, no entanto, é "nenhuma", com a detecção de erros tratada por um protocolo de comunicação.

Bits de parada

Os bits de parada enviados no final de cada caractere permitem que o hardware do sinal receptor detecte o final de um caractere e seja ressincronizado com o fluxo de caracteres. Dispositivos eletrônicos geralmente usam um bit de parada. Se forem usadas teleimpressoras eletromecânicas lentas , um e meio ou dois bits de parada são necessários.

Notação convencional

A notação convencional data / parity / stop (D / P / S) especifica o enquadramento de uma conexão serial. O uso mais comum em microcomputadores é 8 / N / 1 (8N1). Isso especifica 8 bits de dados, sem paridade, 1 bit de parada. Nesta notação, o bit de paridade não está incluído nos bits de dados. 7 / E / 1 (7E1) significa que um bit de paridade par é adicionado aos 7 bits de dados para um total de 8 bits entre os bits de início e de parada. Se um receptor de um fluxo 7 / E / 1 está esperando um fluxo 8 / N / 1, metade dos bytes possíveis serão interpretados como tendo o conjunto de bits alto.

Controle de fluxo

O controle de fluxo é usado em circunstâncias em que um transmissor pode enviar dados mais rápido do que o receptor é capaz de processá-los. Para lidar com isso, as linhas seriais geralmente incorporam um método de handshaking , geralmente distinguido entre handshaking de hardware e software .

O handshaking de hardware é feito com sinais extras, geralmente os circuitos de sinal RS-232 RTS / CTS ou DTR / DSR. Geralmente, o RTS e o CTS são desligados e ligados em extremidades alternativas para controlar o fluxo de dados, por exemplo, quando um buffer está quase cheio. O DTR e o DSR estão normalmente ligados o tempo todo e, de acordo com o padrão RS-232 e seus sucessores, são usados ​​para sinalizar de cada extremidade que o outro equipamento está realmente presente e ligado. No entanto, os fabricantes construíram ao longo dos anos muitos dispositivos que implementaram variações fora do padrão do padrão, por exemplo, impressoras que usam DTR como controle de fluxo.

O handshaking de software é feito, por exemplo, com caracteres de controle ASCII XON / XOFF para controlar o fluxo de dados. Os caracteres XON e XOFF são enviados pelo receptor ao remetente para controlar quando o remetente enviará os dados, ou seja, esses caracteres vão na direção oposta aos dados que estão sendo enviados. O circuito começa no estado "envio permitido". Quando os buffers do receptor se aproximam da capacidade, o receptor envia o caractere XOFF para dizer ao remetente para parar de enviar dados. Posteriormente, depois que o receptor esvaziou seus buffers, ele envia um caractere XON para dizer ao remetente para retomar a transmissão. É um exemplo de sinalização dentro da banda , em que as informações de controle são enviadas pelo mesmo canal que seus dados.

A vantagem do handshaking de hardware é que ele pode ser extremamente rápido; não impõe nenhum significado particular, como ASCII, aos dados transferidos; e é sem estado . Sua desvantagem é que requer mais hardware e cabeamento, e estes devem ser compatíveis em ambas as extremidades.

A vantagem do handshaking de software é que ele pode ser feito com cabos e circuitos de handshaking de hardware incompatíveis ou ausentes. A desvantagem, comum a todas as sinalizações de controle dentro da banda, é que ela apresenta complexidades para garantir que a) as mensagens de controle sejam transmitidas mesmo quando as mensagens de dados são bloqueadas eb) os dados nunca podem ser confundidos com sinais de controle. O primeiro é normalmente tratado pelo sistema operacional ou driver de dispositivo; o último normalmente, garantindo que os códigos de controle sejam " escapados " (como no protocolo Kermit ) ou omitidos por design (como no controle de terminal ANSI ).

Se nenhum handshaking for empregado, um receptor de saturação pode simplesmente falhar ao receber dados do transmissor. As abordagens para evitar isso incluem reduzir a velocidade da conexão para que o receptor possa sempre acompanhar; aumentar o tamanho dos buffers para que ele possa manter a média por mais tempo; usando atrasos após operações demoradas (por exemplo, no termcap ) ou empregando um mecanismo para reenviar dados que foram corrompidos (por exemplo, TCP ).

Porta serial virtual

Uma porta serial virtual é uma emulação da porta serial física. Há vários casos de uso, incluindo o redirecionamento serial port (descrito abaixo), modems implementadas através de software , e Bluetooth 's perfil de porta serial .

Redirecionamento de porta serial

O software de redirecionamento de porta serial cria portas seriais virtuais extras em um sistema operacional sem instalação de hardware adicional (como placas de expansão , etc.) para dividir ou redirecionar os dados de e para uma porta serial para uma variedade de aplicativos.

Uma opção é compartilhar dados entre vários aplicativos. Uma porta serial normalmente só pode ser monitorada por um dispositivo por vez sob as restrições da maioria dos sistemas operacionais, mas um redirecionador de porta serial pode criar duas portas virtuais, para dois aplicativos separados monitorarem os mesmos dados, por exemplo, a saída de um dispositivo GPS Dados de localização.

Outra opção é comunicar-se com outro dispositivo serial via Internet ou LAN como se estivessem conectados localmente, usando serial sobre LAN .

Veja também

Referências

Leitura adicional

  • Porta serial completa: portas COM, portas USB virtuais COM e portas para sistemas incorporados ; 2ª edição; Jan Axelson; Lakeview Research; 380 páginas; 2007; ISBN  978-1-931-44806-2 .

links externos