Adaptadores USB para Serial: Drivers, Níveis e Armadilhas
Como funcionam adaptadores USB para serial, por que drivers e chips falsificados importam, RS-232 versus níveis TTL, e como fazer equipamentos DB9 funcionarem.
Um adaptador USB para serial é um pequeno conversor que transforma uma porta USB em uma porta serial RS-232, para que um computador sem porta serial ainda possa se comunicar com um console de roteador, um CLP, uma impressora de etiquetas, uma balança ou um equipamento de laboratório. O adaptador contém um chip conversor, e esse chip é toda a história: ele decide qual driver o computador precisa, quais níveis de sinal aparecem nos pinos e se o adaptador continuará funcionando após a próxima atualização do sistema operacional. Escolha o errado e você não obtém nada, caracteres corrompidos ou hardware danificado na outra ponta.
O que há dentro do adaptador
Um adaptador USB para RS-232 é três coisas em uma carcaça moldada: uma interface USB, um chip controlador serial e um level shifter que produz tensões RS-232 verdadeiras. O chip controlador se apresenta ao computador como uma porta COM virtual. O sistema operacional carrega um driver para esse chip, e o driver faz a porta aparecer como uma porta serial normal para o software de terminal.
É por isso que o driver importa mais do que o cabo. O chip interno determina o driver, e o driver determina se o adaptador funciona no seu sistema operacional. Adaptadores construídos com chips bem suportados geralmente são instalados pelo próprio sistema operacional ou por um pacote de driver assinado. Adaptadores construídos com cópias não licenciadas desses chips podem ser bloqueados pelo driver do fabricante genuíno, que é a falha clássica: o adaptador funcionou por anos, então uma atualização de driver parou de reconhecê-lo.
Chips falsificados são um problema real neste mercado. Um chip conversor que não é a peça genuína pode reportar a mesma identidade, então o driver genuíno carrega, detecta a incompatibilidade e recusa o dispositivo. Os sintomas incluem uma porta que aparece e desaparece, um dispositivo que mostra um erro no gerenciador de dispositivos ou uma porta que abre mas não envia nada. A resposta prática é comprar adaptadores construídos com chips que têm driver publicado e mantido, e manter esse instalador de driver junto com o equipamento que ele atende.
RS-232, TTL e a diferença que danifica o hardware
RS-232 não é a mesma coisa que o sinal serial em uma placa de microcontrolador. RS-232 usa sinais single-ended onde uma tensão entre +3 V e +15 V é um 0 lógico (espaço) e entre -3 V e -15 V é um 1 lógico (marca). Uma porta serial TTL ou CMOS, como encontrada em placas de microcontrolador e muitos headers embutidos, usa níveis lógicos de 3,3 V ou 5 V.
Conectar os dois diretamente pode danificar o lado de baixa tensão. Uma saída RS-232 verdadeira oscila para tensões positivas e negativas que uma entrada de 3,3 V não foi projetada para aceitar. Se o equipamento espera TTL, use um adaptador USB para TTL ou um level shifter, não um adaptador USB para RS-232. Se o equipamento espera RS-232, um adaptador USB para TTL não vai acioná-lo.
| Tipo de adaptador | Níveis de saída | Uso típico |
|---|---|---|
| USB para RS-232 | +3 V a +15 V e -3 V a -15 V | Equipamentos DB9 ou DB25, consoles, modems, balanças |
| USB para TTL | Lógica de 3,3 V ou 5 V | Placas de microcontrolador, headers embutidos |
| USB para RS-422/485 | Diferencial | Longas distâncias, Modbus RTU, controle de iluminação DMX512 |
O padrão permite RS-232 até 15 m (50 ft) a 19.200 baud; taxas de baud mais baixas vão mais longe. RS-422 e RS-485 são diferenciais e vão muito mais longe, até 1200 m (4000 ft) em velocidades mais baixas, razão pela qual equipamentos industriais frequentemente os usam.
Conectores e pinagens que você vai encontrar
A maioria dos adaptadores USB para serial termina em um conector DE-9 macho, geralmente chamado DB9. A pinagem do PC (DTE) é fixa: pino 1 DCD, pino 2 RXD, pino 3 TXD, pino 4 DTR, pino 5 terra de sinal, pino 6 DSR, pino 7 RTS, pino 8 CTS, pino 9 RI. Equipamentos mais antigos podem usar um DB25, onde a pinagem é diferente: pino 2 TXD, pino 3 RXD, pino 4 RTS, pino 5 CTS, pino 6 DSR, pino 7 terra de sinal, pino 8 DCD, pino 20 DTR, pino 22 RI. A referência completa RS-232 serial pinouts: DB9 and DB25 lista ambos, e vale a pena verificar antes de montar um cabo.
DTE significa computador ou terminal; DCE significa modem. Um cabo direto conecta DTE a DCE. Dois DTEs precisam de um cabo null modem, onde TXD e RXD se cruzam, RTS e CTS se cruzam, DTR cruza com DSR e DCD, e o terra de sinal passa direto. Um gender changer troca macho e fêmea sem cruzar nada, então ele não transforma um cabo direto em um cabo null modem. Se dois computadores ou dois equipamentos de terminal não se comunicam, a página null modem cables and adapters cobre a fiação e os adaptadores prontos.
Drivers, portas e o sistema operacional
Um adaptador USB para RS-232 aparece como uma porta COM no Windows e como um dispositivo como /dev/ttyUSB0 ou /dev/tty.usbserial no Linux e macOS. O número da porta pode mudar quando o adaptador é desconectado e reconectado, ou quando é movido para uma porta USB diferente. O software de terminal que armazena uma porta COM fixa então falhará ao abrir a porta, o que parece uma falha do adaptador, mas não é.
Dois hábitos previnem a maior parte disso. Primeiro, conecte o adaptador na mesma porta USB todas as vezes, para que o número da porta permaneça estável. Segundo, anote o número da porta na documentação do equipamento. No Linux, uma regra baseada no número de série do adaptador pode fixar o nome do dispositivo; nem todo adaptador reporta um número de série, então verifique antes de confiar nisso.
O USB em si não é o limite aqui. Mesmo o USB 1.1 Full Speed a 12 Mbps é muito mais rápido do que qualquer taxa de baud serial comum, e o lado USB do adaptador não é o que restringe o link. A página USB 3.0, 3.1, 3.2 and USB4: speeds and names decoded explica os rótulos de velocidade se você estiver escolhendo entre adaptadores e hubs, mas para trabalho serial qualquer porta USB funcional é suficiente.
Fazendo equipamentos antigos voltarem a se comunicar
Percorra o link em ordem e mude uma coisa de cada vez.
- Confirme que o adaptador é reconhecido. Verifique o gerenciador de dispositivos ou o log do sistema para um dispositivo serial e anote o nome da porta.
- Confirme que o driver corresponde ao chip. Se o adaptador não for reconhecido, instale o driver para o chip dentro dele, não um genérico.
- Confirme o tipo de cabo. Direto para DTE para DCE, null modem para DTE para DTE.
- Confirme as configurações seriais. Taxa de baud, bits de dados, paridade, bits de parada e controle de fluxo devem coincidir em ambas as pontas. O controle de fluxo é o culpado usual: controle de fluxo por hardware (RTS/CTS) vai travar se o cabo não transportar esses pinos.
- Confirme os níveis. Equipamentos RS-232 precisam de um adaptador RS-232; headers TTL precisam de um adaptador TTL.
Para trabalho de console, um cabo rollover inverte todos os oito pinos de ponta a ponta e é usado com um adaptador RJ45 para DB9 em portas de console estilo Cisco. Muitos dispositivos mais novos têm uma porta de console USB, que não precisa de adaptador algum.
O que dá errado
Uma atualização de driver bloqueia o adaptador. Chips falsificados são recusados pelo driver do fabricante genuíno. O adaptador não está com defeito; o driver não o aceita mais. Mantenha um instalador de driver confiável ou substitua o adaptador por um construído com um chip com driver mantido.
Um adaptador USB para TTL é usado em equipamento RS-232, ou o contrário. O primeiro caso geralmente não dá comunicação; o segundo pode danificar o lado de baixa tensão. Combine o adaptador com os níveis que o equipamento espera.
O cabo errado é usado entre dois DTEs. Um cabo direto entre dois computadores ou dois terminais não funcionará. É necessário um cabo ou adaptador null modem.
O número da porta muda. O adaptador está bem, mas o software de terminal está olhando para a porta antiga. Selecione novamente a porta ou fixe o nome do dispositivo.
O controle de fluxo está configurado errado. Com controle de fluxo por hardware selecionado e sem fiação RTS/CTS, o link trava após os primeiros caracteres. Tente sem controle de fluxo ou controle de fluxo por software para provar o link, depois configure corretamente.
Espera-se que um gender changer cruze sinais. Ele apenas troca macho e fêmea. Ele não transforma um cabo direto em um cabo null modem.
Espera-se que o adaptador alimente o equipamento. Uma porta serial é um link de dados, não uma fonte de alimentação. Equipamento que precisa de sua própria energia ainda precisa de sua própria energia.
Tentam-se longas distâncias de cabo em altas taxas de baud. RS-232 é limitado a 15 m (50 ft) a 19.200 baud, e menos em taxas mais altas. Para longas distâncias, use RS-422 ou RS-485.
Uma extensão USB é adicionada sem verificar a alimentação. Um hub sem alimentação compartilha a energia da porta host entre seus dispositivos. Se o adaptador for instável através de um hub, conecte-o diretamente ou use um hub alimentado.
Perguntas frequentes
Por que meu adaptador USB para serial parou de funcionar após uma atualização de driver?
O adaptador provavelmente contém uma cópia falsificada de um chip conversor. O driver do fabricante genuíno detecta a incompatibilidade e recusa o dispositivo. O adaptador não está com defeito, mas não funcionará com esse driver. Substitua-o por um adaptador construído com um chip com driver mantido, ou mantenha um instalador de driver confiável para o equipamento que ele atende.
Qual é a diferença entre um adaptador USB para RS-232 e um adaptador USB para TTL?
RS-232 usa sinais single-ended onde +3 V a +15 V é um 0 lógico e -3 V a -15 V é um 1 lógico. TTL usa níveis lógicos de 3,3 V ou 5 V. Conectar os dois diretamente pode danificar o lado de baixa tensão, então combine o adaptador com o equipamento: RS-232 para portas DB9 ou DB25, TTL para headers de microcontrolador.
Como conecto dois computadores com adaptadores USB para serial?
Cada computador precisa de seu próprio adaptador, e os dois adaptadores são unidos com um cabo null modem ou um adaptador null modem. Um cabo null modem cruza TXD e RXD, cruza RTS e CTS, e cruza DTR com DSR e DCD, com o terra de sinal passando direto. Um cabo direto não funcionará entre dois DTEs.
Qual a distância máxima que posso usar um cabo de adaptador USB para serial?
O lado RS-232 é limitado a 15 m (50 ft) a 19.200 baud, e menos em taxas de baud mais altas. O lado USB é limitado pelas regras de cabo USB, não pelo adaptador. Para distâncias maiores, use RS-422 ou RS-485, que são diferenciais e alcançam até 1200 m (4000 ft) em velocidades mais baixas.
Por que o número da minha porta serial fica mudando?
O número da porta é atribuído quando o adaptador é conectado, e pode mudar se o adaptador for movido para uma porta USB diferente. Conecte o adaptador na mesma porta USB todas as vezes, ou fixe o nome do dispositivo usando o número de série do adaptador onde o sistema operacional suportar. Nem todo adaptador reporta um número de série.
Leia a seguir
Cabos de impressora paralela: IEEE 1284, DB25 e Centronics
Cabos de impressora paralela IEEE 1284 explicados: conectores DB25 e Centronics 36, limites de comprimento, modos e quando um adaptador USB-paralelo funciona.
Cabos Null Modem: Fiação, Adaptadores e Pinagens
Um cabo null modem cruza TX e RX para conectar dois computadores diretamente. Abrange pinagens DB9 e DB25, adaptadores versus cabos e teste de loopback.
Pinagem RS-232: DB9 e DB25 Explicados
Referência completa de pinagem RS-232 para conectores DB9 e DB25: atribuições de pinos DTE e DCE, níveis de tensão, limites de cabo e o erro TTL que danifica placas.