Comme avec la plupart des systèmes numériques, un niveau de tension “haut” est utilisé pour indiquer un “1” logique et un niveau de tension “bas” est utilisé pour indiquer une “0” logique. Puisque le protocole UART ne définit pas des tensions ou des gammes de tensions spécifiques pour ces niveaux, parfois le niveau haut est également appelé “marque” alors que le niveau bas est appelé “espace”. A noter que dans l'état d'inactivité (où aucune donnée n'est émise),la ligne est maintenue au niveau haut. Cela permet la détection facile d'une ligne ou d'un émetteur endommagé.
Bits de départ et d'arrêt
Puisque l'UART est asynchrone, l'émetteur doit signaler que les bits de données arrivent. Cela est réalisé en utilisant le bit de départ. Le bit de départ est une transition de l'état d'inactivité à un état bas, et immédiatement suivi par les bits de données utilisateur.
Après que les bits de données soient terminés, le bit d'arrêt indique la fin des données utilisateur. Le bit d'arrêt est une transition de retour à l'état haut ou à l'état d'inactivité ou restant à l'état haut pour une durée de bit supplémentaire. Un second bit d'arrêt (optionnel) peut être configuré, généralement pour donner le temps au récepteur d'être prêt pour la prochaine trame, mais cela n'est pas une pratique commune.
Bits de données
Les bits de données sont des données utilisateur ou des bits “pratiques” et viennent immédiatement après le bit de départ. Il peut y avoir de 5 à 9 bits de données utilisateur, bien que 7 ou 8 bits soient les plus courants. Ces bits de données sont généralement émis avec le bit le moins significatif en premier.
Exemple :
Si nous voulons envoyer la lettre capitale “S” dans 7 bits ASCII, la séquence de bit est 1 0 1 0 0 1 1. Nous inversons d'abord l'ordre des bits pour les placer dans l'ordre de bit le moins significatif, qui est 1 1 0 0 1 0 1, avant de les envoyer. Après que le dernier bit de données soit envoyé, le bit d'arrêt est utilisé pour terminer la trame et la ligne retourne à l'état d'inactivité.
- 7 bits ASCII ‘S’ (0x52) = 1 0 1 0 0 1 1
- Ordre LSB = 1 1 0 0 1 0 1