Skip to content

UART

  • 2 fils utilisés: Rx et Tx
  • Transmet bit par bit, avec une structure de paquet précise
  • Communication 'serial'
  • Vitesse de transfert: 9600 baud moyenne, 115200 max.

Il n'y a pas de synchronisation d'horloge, le fonctionnement "standard" d'un UART est de déclencher la lecture d'un caractère lorsqu'il voit le signal start pendant plus d'une demi-période (moins étant interprété comme du bruit sur le réseau).

La ligne de transmission de données est généralement gardée en état 1 lorsqu'il n'y a pas de transmission de données.

Pour démarrer une transmission, l'UART va donc mettre la ligne en état 0 pendant un cycle d'horloge.

Certains UARTs intègrent une FIFO primitive, pour cacher les caractères arrivants, le temps que le CPU soit prêt à les traiter.

Pour que le transfert puisse être effectué, la baud rate des 2 chips UART doit être au plus différent de 10%.

Paquet

  • Start bit: Toujours à 0
  • 5 à 9 data-bits
  • 0 à 1 bit de parité: Présent/absent selon le protocole
  • 1 à 2 stop-bits: Toujours à 1, nombre changeant selon le protocole
1
2
3
4
5
-------------------------------------------------
| Start bit | Data bits | Parity bit | Stop bit |
-------------------------------------------------
|     0     | 10110100  |     0      |    11    |
-------------------------------------------------

Avec bit de parité, la data-frame peut être de 5 à 8 bits. Sans bit de parité, elle peut monter jusqu'à 9 bits.

La majorité du temps, la data-frame est ordonnée en LSB-first.

Hardware

Les chipsets les plus simples à reconnaitre sont de la marque FTDI, modèles de la gamme FT (le plus commun étant le FT232RL).

Le modèle 16550/16550A (modèle générique, plusieurs marques l'implémentant) est aussi un modèle reconnu.

Modèles reconnus

Source: https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter

  • WD1402A
  • Exar XR21V1410
  • SIG60
  • Intersil 6402
  • CDP 1854 (RCA, now Intersil)
  • Zilog Z8440
  • Z8530/Z85C30
  • 8250
  • 8251
  • Motorola 6850
  • 6551
  • Rockwell 65C52
  • 16450
  • 82510
  • 16550
  • 16550A
  • 16C552
  • 16650
  • 16750
  • 16850
  • 16C850
  • 16950
  • 16C950
  • 16954
  • 16C954
  • 16C1550/16C1551
  • 16C2450
  • 16C2550
  • SCC2691
  • SCC28L91
  • SCC2692
  • SC26C92
  • SC28L92
  • SCC28C94
  • SCC2698B
  • SCC28L198
  • 16750
  • 16850
  • 16C850
  • 16950
  • 16C950
  • 16954
  • 16C954
  • 16C1550/16C1551
  • 16C2450
  • 16C2550
  • SCC2691
  • SCC28L91
  • SCC2692
  • SC26C92
  • SC28L92
  • SCC28C94
  • SCC2698B
  • SCC28L198
  • Hayes ESP
  • Exar XR17V352, XR17V354 and XR17V358
  • Exar XR17D152, XR17D154 and XR17D158
  • Exar XR17C152, XR17C154 and XR17C158
  • Exar XR17V252, XR17V254 and XR17V258