Les interfaces de communication

jpparisy

Patibulaire mais presque
Jusqu'à présent, nous avons vu des dispostifs qui ne fournissent ou ne nécessitent que peu d'informations, à part l'afficheur 7 segments. Il y en a toutefois d'autres qui ont besoin de plus, par exemple un afficheur graphique ou un module GPS.

Pour satisfaire ce besoin, plusieurs interfaces ont été développées au cours du temps, permettant d'envoyer ou recevoir beaucoup d'informations tout en minimisant le nombre de lignes de connexion.

Je vais en présenter quelques unes, compatibles avec les microcontrôleurs, sans trop entrer dans les détails.

Le fait de connaître leur fonctionnement permet également de réaliser des adaptateurs d'une interface vers une autre, par exemple depuis l'interface série d'un GPS vers une interface I²C.
 
L'interface PWM (Pulse Width Modulation, Modulation en largeur d'impulsion) n'est pas issue d'un standard industriel, mais elle est largement utilisée dans nos ensembles de radiocommande pour commander la position d'un servo-moteur.

Le PWM dans le monde de la radiocommande

Le principe est d'envoyer une impulsion de largeur variable, variant en général entre 1000 µs et 2000 µs, la position neutre du servo étant à 1500 µs. Cette impulsion se répète toutes le 20 ms environ.

Le gros intérêt de cette liaison est qu'elle ne nécessite qu'une ligne, plus une masse.

L'inconvénient est que cette ligne ne véhicule qu'une seule information et que cette information étant analogique, elle n'est pas très précise.

Le PWM dans le monde normal

En utilisation normale, hors radiocommande, la modulation PWM est une technique couramment utilisée pour synthétiser des signaux analogiques à l'aide de circuits logiques fonctionnant en tout ou rien.

Le principe général est qu'en appliquant une succession d'états logiques (0 ou 1) pendant des durées bien choisies, on peut obtenir en moyenne n'importe quelle valeur analogique intermédiaire variant entre 0 et la tension maximale.

Ce principe est utilisé sur les variateurs électroniques pour moteurs à balais pour obtenir une tension variable : plus l'impulsion est courte, plus la tension moyenne aux bornes du moteur est faible.

De nombreux microcontrôleurs proposent des sorties de ce type.
 
L'interface PPM (Pulse Position Modulation, Modulation par Position d'Impulsions) est également utilisée dans les ensembles de radiocommande pour transporter séquentiellement plusieurs impulsions PWM sur une seule ligne.

Son fonctionnement est le suivant, par exemple ici pour 6 voies :
ppm1.jpg

  • Au départ, la ligne est dans un état donné : + V dans le cas d'une modulation positive, 0 V pour une modulation négative.
  • Un changement d'état indique le début d'une impulsion, ce qui déclenche le début de la lecture du temps.
  • Après environ 300 µs, la ligne revient à son état initial.
  • Le changement d'état suivant indique la fin de l'impulsion courante et le début de la suivante.
  • Lorsque toutes les impulsions ont été transmises, la ligne reste dans l'état initial jusqu'à ce que 20 ms se soient écoulées, comptées à partir du début de la première impulsion. Ce délai est utilisé pour se synchroniser entre les trains d'impulsions.
Il faut noter qu'avec ce système, qui date des débuts des radiocommandes proportionnelles, on ne peut pas trop augmenter le nombre d'impulsions transportées : chaque impulsion pouvant durer jusqu'à 2 ms, même en augmentant le temps total à 22.5 ms, on ne pourra pas dépasser 10 impulsions car il faut garder un temps minimum pour le délai de synchronisation.

De plus en plus de récepteurs en 2.4 Ghz proposent cette interface, ce qui permet de n'avoir qu'une seule liaison pour contrôler une carte de commande, par exemple pour un hélicoptère ou multi-rotors.
 
Pour pallier le défaut du nombre de voies de l'interface PPM, des constructeurs ont, dans le passé, développé des interfaces appelée PCM (Pulse Coded Modulation) pour leurs ensembles en modulation de fréquence (FM). Malheureusement, chaque constructeur a développé sa propre interface, incompatible avec celles des autres marques.

Avec la généralisation du 2.4 Ghz, ceci n'est plus utilisé sous cette forme, à ma connaissance.
Pour approfondir le sujet, je vous invite à lire l'excellent article de Monsieur Francis Thobois.
 
L'interface SSI (Synchronous Serial Interface) permet de transporter des données numériques, elle ne nécessite que deux lignes plus une masse (0 V). Une des lignes, appelée "clock", transporte un signal d'horloge et l'autre ligne, appelée "data", transporte les données, sous forme de bits (0 ou 1), synchronisées par le signal d'horloge. Il y a un dispositif maître, généralement le microcontrôleur, qui envoie le signal d'horloge et un dispositif esclave qui le lit. La vitesse de l'horloge n'a aucune importance et elle n'a pas besoin d'être stable, mais plus elle sera rapide, plus vite les données seront échangées. Les données peuvent être envoyées indifféremment par le maître ou l'esclave. Il n'y a pas de protocole d'échange particulier, tout dépend de la programmation des dispositifs.

Sur ce dessin, voyons comment transitent les données en fonction de l'horloge :
ssi1.jpg

  • Au départ, la ligne "clock" est au niveau haut.
  • À l'instant "t1", la ligne "clock" passe au niveau bas, signalant la mise en route.
  • À l'instant "t2", la ligne "clock" passe au niveau haut, le dispositif émetteur positionne la ligne "data" à une certaine valeur.
  • À l'instant "t3", la ligne "clock" passe au niveau bas, le dispositif récepteur peut alors lire la ligne "data".
  • À l'instant "t4", la ligne "clock" passe au niveau haut, le dispositif émetteur peut écrire.
  • Le cycle se reproduit jusqu'à ce que toutes les données aient été envoyées.
  • À l'instant "tn", lorsque l'envoi de données est terminé, la ligne "clock" passe au niveau haut et y reste.
Les données échangées n'ont aucune signification pour cette interface et n'importe quel nombre de bits peut être envoyé, ces bits n'ont de sens que pour les dispositifs émetteur et récepteur. Il est important de lire la documentation du dispositif pour pouvoir la programmer.

Si on veut utiliser plusieurs dispositifs esclaves, on les branche en parallèle sur les lignes et on ajoute pour chacun une ligne appelée "CS" (Chip Select), permettant d'indiquer avec quel dispositif on dialogue.
 
Haut