>> Tecnologia Eletrônica >  >> TVs >> Cabos Coaxiais

UART: Controlador de Hardware para Comunicações em Porta Serial

O UART (Universal Asynchronous Receiver/Transmitter) é o circuito de hardware dedicado — seja um CI discreto (ex.: 16550, 16C550, SC16IS7xx) ou um bloco IP dentro de um microcontrolador/SoC — que implementa o protocolo serial assíncrono (bit de start, 5–9 bits de dados, paridade, bits de stop) e gerencia a sinalização elétrica (RS-232, RS-485, TTL, LVTTL).

Funções Principais

  • Paralelo-para-Serial (TX): Recebe byte da CPU/barramento → carrega no Registrador de Deslocamento TX → transmite bits na taxa de baud com enquadramento start/stop/paridade.
  • Serial-para-Paralelo (RX): Detecta bit de start → amostra linha a 16× baud (oversampling) → desloca bits para Registrador RX → verifica paridade/stop → dispara interrupção/define flag → CPU lê byte.
  • Gerador de Taxa de Baud: Latch divisor (DLL/DLM) divide clock do sistema (1,8432 MHz, 14,7456 MHz, 48 MHz, etc.) para baud alvo (300–921600+).
  • Buffers FIFO (16550A+): FIFOs TX/RX de 16 bytes reduzem overhead de interrupção da CPU. Níveis de trigger programáveis (1, 4, 8, 14).
  • Controle de Fluxo: Hardware (RTS/CTS, DTR/DSR) ou Software (XON/XOFF) via registrador de controle de modem.
  • Status de Modem/Controle de Linha: Entradas DCD, RI, DSR, CTS; saídas DTR, RTS, OUT1, OUT2, Loopback.

UART vs. "Porta Serial"

  • UART: O motor de hardware (silício).
  • Porta Serial: A interface do sistema (COM1, ttyS0, /dev/ttyUSB0) apresentada pelo SO/driver, compreendendo UART + transceiver (MAX232, MAX485, CP210x, FT232) + conector (DB9, RJ45, USB, header).

Implementações Comuns

  • PC (Legado): Chip Super I/O (ITE, Nuvoton, SMSC) → UART compatível 16550 → DB9 (RS-232).
  • Adaptador USB-Serial: FTDI FT232R, Silicon Labs CP2102, Prolific PL2303, CH340 — controlador USB + UART integrado + transceiver.
  • Microcontrolador (STM32, ESP32, AVR, PIC, RP2040): Múltiplos UARTs on-chip (USART, LPUART). TTL direto (3,3V/5V).
  • FPGA/ASIC: Soft IP core (Xilinx UARTlite, Intel Avalon UART) ou macro endurecido.

Registradores Principais (Padrão 16550)

Offset (DLAB=0)RegistradorFunção
0x00RBR / THRBuffer de Recepção / Holding de Transmissão
0x01IERHabilitação de Interrupção (RX, TX, Status Linha, Status Modem)
0x02IIR / FCRID de Interrupção (Leitura) / Controle FIFO (Escrita)
0x03LCRControle de Linha (Comprimento Palavra, Stop Bits, Paridade, DLAB, Break)
0x04MCRControle de Modem (DTR, RTS, OUT1, OUT2, Loop)
0x05LSRStatus Linha (DR, OE, PE, FE, BI, THRE, TEMT, FIFOERR)
0x06MSRStatus Modem (DCD, RI, DSR, CTS, bits Delta)
0x07SCRScratchpad
0x00/0x01 (DLAB=1)DLL / DLMDivisor Latch Low/High (Taxa Baud)

Conclusão: O UART é o cavalo de batalha do silício; a porta serial é a abstração do SO. Sem UART = sem comunicações seriais (exceto bit-banging GPIO).