Les bus d’adresses et de données dans un microcontrôleur sont des liaisons parallèles :
Je peux recevoir ou envoyer simultanément N bits via un bus de taille N.
Si je veux dialoguer avec un capteur ou un autre processeur,
utiliser une liaison parallèle mobiliserait N fils ( et N broches ).
Pour éviter cette consommation de ressources, on utilise des liaisons séries :
Je tire uniquement un fil entre l’émetteur et le récepteur pour envoyer ou
recevoir les données.
Cela implique évidemment que pour envoyer N bits, il faut envoyer ces bits
les uns après les autres ; c’est forcément plus lent qu’une liaison parallèle,
mais peu d’application nécessiteraient véritablement ce type de solution.
Comme les bits sont envoyés les uns après les autres, il faut mettre d’accord l’émetteur et le récepteur sur l’instant de réception de chaque bit.
La liaison peut être :
REMARQUE :
Il faut être sûr que l’état d’un bit s’est stabilisé ; par rapport à l’horloge de réception, on attend donc une demi période pour relever la valeur d’un bit.
Dans le cas d’une liaison asynchrone, il y a forcément un glissement qui décale le moment d’échantillonage du bit reçu.
Le Front descendant du bit de Start permet de se resynchroniser.
Pour certaines liaisons, il existe 2 fils pour transmettre les données ; on peut donc envoyer et recevoir en même temps. il s’agit alors d’une liaison Full Duplex.
Si un seul fil est présent, on ne peut que recevoir ou envoyer à un instant t
Un registre à décalage permet de charger simultanément N Bits ( via le bus de données du microcontrôleur ), puis d’envoyer chaque bit à une vitesse définie lors de la configuration.
Exemple de mise en oeuvre pour une liaison UART :