>> Technologie Électronique >  >> Téléviseurs >> Câble coaxial

L'UART : Contrôleur matériel pour communications port série

L'UART (Universal Asynchronous Receiver/Transmitter) est le circuit matériel dédié — soit un CI discret (ex: 16550, 16C550, SC16IS7xx) soit un bloc IP inside microcontrôleur/SoC — qui implémente le protocole série asynchrone (bit de start, 5–9 bits data, parité, bits stop) et gère la signalisation électrique (RS-232, RS-485, TTL, LVTTL).

Fonctions principales

  • Parallele-vers-Série (TX) : Prend octet depuis CPU/bus data → charge dans registre décalage TX → sort bits à baud rate avec trame start/stop/parité.
  • Série-vers-Parallele (RX) : Détecte bit start → échantillonne ligne à 16x baud (suréchantillonnage) → décale bits dans registre RX → vérifie parité/stop → assert interruption / positionne flag → CPU lit octet.
  • Générateur Baud Rate : Diviseur verrou (DLL/DLM) divise horloge système (1,8432 MHz, 14,7456 MHz, 48 MHz, etc.) vers baud cible (300–921600+).
  • Tampons FIFO (16550A+) : FIFO 16 octets TX/RX réduisent surcharge interruptions CPU. Niveaux déclenchement programmables (1, 4, 8, 14).
  • Contrôle flux : Matériel (RTS/CTS, DTR/DSR) ou Logiciel (XON/XOFF) via registre contrôle modem.
  • Statut modem / Contrôle ligne : Entrées DCD, RI, DSR, CTS ; Sorties DTR, RTS, OUT1, OUT2, Loopback.

UART vs « Port Série »

  • UART : Le moteur matériel (silicium).
  • Port Série : L'interface système (COM1, ttyS0, /dev/ttyUSB0) présentée par OS/driver, comprenant UART + transceiver (MAX232, MAX485, CP210x, FT232) + connecteur (DB9, RJ45, USB, header).

Implémentations courantes

  • PC (Legacy) : Puce Super I/O (ITE, Nuvoton, SMSC) → UART compatible 16550 → DB9 (RS-232).
  • Adaptateur USB-Série : FTDI FT232R, Silicon Labs CP2102, Prolific PL2303, CH340 — contrôleur USB device + UART intégré + transceiver.
  • Microcontrôleur (STM32, ESP32, AVR, PIC, RP2040) : Plusieurs UART périphériques on-chip (USART, LPUART). TTL direct (3,3V/5V).
  • FPGA/ASIC : Soft IP core (Xilinx UARTlite, Intel Avalon UART) ou macro durci.

Registres clés (Standard 16550)

Offset (DLAB=0)RegistreFonction
0x00RBR / THRReceive Buffer / Transmit Holding
0x01IERInterrupt Enable (RX, TX, Line Status, Modem Status)
0x02IIR / FCRInterrupt ID (Read) / FIFO Control (Write)
0x03LCRLine Control (Word Length, Stop Bits, Parity, DLAB, Break)
0x04MCRModem Control (DTR, RTS, OUT1, OUT2, Loop)
0x05LSRLine Status (DR, OE, PE, FE, BI, THRE, TEMT, FIFOERR)
0x06MSRModem Status (DCD, RI, DSR, CTS, Delta bits)
0x07SCRScratchpad
0x00/0x01 (DLAB=1)DLL / DLMDivisor Latch Low/High (Baud Rate)

En résumé : L'UART est le cheval de bataille silicium ; le port série est l'abstraction OS. Pas d'UART = pas de comms série (bit-banging GPIO excepté).

Câble coaxial