Capítulo 3 – Sniffando/monitorando o enlace serial entre “PC Mestre” e “Dispositivo Alvo”
Comunicação entre um dispositivo de hardware e um PC via serial
O PC Mestre (à direita) se comunica com o Dispositivo Alvo através de um
Dispositivo de Comunicação Serial (normalmente um conversor USB↔Serial:
UART/TTL, RS-232 ou RS-485). O PC Sniffer (à esquerda)
abre duas portas (COM5 e COM6) e, com dois adaptadores USB-para-serial,
escuta passivamente as linhas: em COM5 conecte o RX ao TX do Dispositivo,
em COM6 conecte o RX ao TX do PC. Os terras (GND) são comuns.
3.1 Propósito e conceitos
Queremos monitorar e snifar os bytes que trafegam entre o software no PC Mestre
e o Dispositivo Alvo, sem interferir na comunicação. É um típico man-in-the-middle físico passivo:
dois adaptadores USB-para-serial conectados apenas em RX “leem” cada direção.
Isso é útil para depuração, análise de protocolo e como registrador para auditoria ou engenharia reversa.
3.2 Conexões (passo a passo)
- COM5 (PC Sniffer) → conecte o RX do adaptador ao TX do Dispositivo (escute o que o Alvo envia).
- COM6 (PC Sniffer) → conecte o RX do adaptador ao TX do PC (escute os comandos do PC Mestre).
- GND comum entre os dois adaptadores e os dois dispositivos (referência compartilhada).
- Não conecte os TX dos adaptadores do PC Sniffer: permanecemos em somente escuta (alta impedância), sem perturbar a linha.
No SerialTool abra duas sessões: COM5 e COM6. Em ambas, defina
a taxa de baud e o formato idênticos aos usados pelo Mestre/Dispositivo (por exemplo, 115200-8N1). Se você não souber a baud,
tente valores comuns ou meça a duração do bit com um osciloscópio/analizador lógico.
3.3 Mesmo protocolo, níveis diferentes: UART/TTL, RS-232, RS-485
O protocolo serial assíncrono (start, 7/8 bits de dados enviados com LSB primeiro, paridade opcional, 1+ stop) é o mesmo.
Só muda o nível físico sobre o qual os bits trafegam:
- UART/TTL (3,3 V/5 V): sinais single-ended, “1” alto / “0” baixo.
- RS-232: níveis invertidos e ± tensão (tipicamente ±3…±12 V), ainda single-ended.
- RS-485: diferencial no par A/B, frequentemente half-duplex multi-drop; recomenda-se um terra de referência comum.
Portanto, use o adaptador correto:
USB↔TTL para UART, USB↔RS-232 para RS-232, USB↔RS-485 para RS-485. O quadro permanece idêntico, mas os níveis elétricos e a topologia (diferencial/terminação) diferem.
3.4 Onde é usado (CNC, industrial, etc.)
Essa configuração é comum em CNC, máquinas industriais, PLC/HMI, robótica,
balanças, POS, sensores, instrumentos, automação predial e, em geral, qualquer sistema onde um PC/PLC
controla um dispositivo via serial. O método de sniffing descrito aqui permite monitorar/snifar/depurar/registrar o tráfego
para análise funcional, diagnóstico de falhas, rastreamento de comandos e validação.
3.5 Modbus sobre serial
Portas seriais frequentemente carregam Modbus RTU/ASCII, um protocolo amplamente usado de mestre/escravo (agora cliente/servidor) na indústria.
O Mestre envia requisições (leitura/escrita de coils e registers) e o Dispositivo responde.
O SerialTool inclui um cliente Modbus para consultar rapidamente registradores (diagnóstico e testes),
além do monitor/visualizador hex útil para ver quadros brutos (endereço, função, dados, CRC).
3.6 Atualização de firmware e parametrização
No mundo embarcado a serial é amplamente usada para atualizações de firmware ou passagem de parâmetros ao Alvo.
Exemplos: bootloaders em placas customizadas, ecossistemas como Arduino, diversos microcontroladores. Aqui o desenvolvedor pode ter duas necessidades:
- Depurar a aplicação que conversa com o Alvo (verificar comandos, temporização, erros).
- Engenharia reversa de um protocolo existente (há um software Mestre “fechado” conversando com uma placa;
eu snifo para entender suas mensagens e depois as replico com meu próprio software).
3.7 Observações práticas e ferramentas
- Essa configuração normalmente requer dois PCs (o Mestre e o PC Sniffer) e pelo menos dois conversores USB-para-serial para sniffing bidirecional.
- Para RS-232 use um tap/conversor RS-232; para RS-485 conecte uma interface somente de recepção aos terminais A/B
(respeitando a terminação e a polaridade). Em RS-485 half-duplex você inferirá a direção pelo contexto de temporização.
- Excluímos pinos de controle (RTS/CTS, DTR/DSR, DCD, RI); se o sistema usa controle de fluxo por hardware, considere sondas dedicadas.
- No SerialTool você pode ativar visualizações HEX, marcas de tempo e salvar como registrador (texto/CSV/pcap) para análise posterior.
Em resumo: mesmo protocolo serial (quadros assíncronos), níveis físicos diferentes (TTL/RS-232/RS-485).
Com tapping passivo de dois RX e software como o SerialTool você pode monitorar, snifar,
depurar e registrar de forma confiável a comunicação entre um PC Mestre e um Dispositivo Alvo.