|
Le principe Le but de la liaison série est de pouvoir communiquer entre deux entités (PC ou autres) avec le moins de fils possibles. Tous les bits et octets de données qui doivent circuler le font les uns après les autres. Dans ce cas, il ne faut plus qu'un seul fil. Autrement, il fallait un fil pour chaque bit, c'est ce qui se passe dans la liaison parallèle. Les 8 bits circulent en même temps. Avec la liaison série, il y a un gain de fil particulièrement appréciable si les distances à cabler sont grandes.
|
Comment passe l'information ? Les bits d'un octet passent les uns après les autres. Les octets aussi. Afin que le récepteur fasse la distinction entre deux octets, l'échange est standardisé avec des marqueurs de début et de fin de transmission entre chaque octet. Le terme "octet" (8 bits) est à mettre en guillemets parce qu'avec la liaison série, les données échangées peuvent tenir sur 5, 6 ,7 ou 8 octets. Mais tant pis, je continuerai à dire "octet". La transmission d'un octet commence par un bit START (actif à l'état bas). Suivent ensuite les bits de l'octet. Ces bits peuvent être suivis d'un bit de controle qui est en général un bit de parité (paire ou impaire). Le tout se termine par 1, 1.5 ou 2 bit de STOP. Exemple
: transmission de la lettre 'A' ( = 0x41 en hexa ou 01000001 en binaire
) La ligne est au repos à l'état haut. La parité est ici '?' parce qu'elle peut être paire ou impaire. Notez que l'on commence ici par le bit 0 pour finir par le bit 7. Dans d'autres protocoles série, il est possible de commencer par la fin. C'est le cas pour les cartes à puces par exemple. Il existe des cartes à convention directe et d'autres à convention indirecte. Et ainsi de suite pour tous les autres octets .. |
Le câblage Voici quelques schémas que j'avais récupéré sur un site. Ils se passent de commentaires si ce n'est que : DTE = Data Terminal Equipment (ordinateur) et DCE = Data Communication Equipment (modem, infrarouge, etc...).
|
L ' UART 8250 La liaison série est assurée sur les PC par l'UART 8250. Pour simplifier, c'est une puce qui se charge de transmettre ou de recevoir les données du port série.
De plus, voici un tableau répertoriant les différents registres de l'UART 8250 :
Sur une carte-mère, l'UART a une adresse : souvent 3F8h pour le COM1. A cette adresse, vous ajoutez A2A1A0b et vous avez l'adresse du registre correspondant. Par exemple, pour accéder à LCR, l'adresse est 3F8h + 011b = 3FBh et pour écrire la valeur 0 dans ce registre :
Astuces : RBR et THR ont la même adresse mais selon que l'on lit ou on écrit, on accède à RBR (lecture) ou THR (écriture). DLAB est une astuce pour accéder à 10 registres sur 3 bits. DLAB est en fait le bit 7 du registre LCR.
|