Quelques petits protocoles de communication et leurs différences. Ces protocoles peuvent être utilisés pour la communication avec un arduino. |
-
RS-232C'est le protocole de communication le plus simple, il ne nécessite qu'un seul fil de données (communication dans un sens) ou deux (duplex). Il permet la communication entre deux appareils, il n'y a pas vraiment de "master" ou de "slave": un appareil envoie et l'autre reçoit.Les données peuvent être transmises sur plusieurs dixaines de mètres, c'est le protocole de choix pour établir une communication numérique à distance, par exemple un capteur dans la cave et un afficheur au rez de chaussée (pour une communication analogique on utilisera si possible une boucle 4 - 20mA). L'exemple le plus classique, c'est l'arduino qui envoie des données à un écran LCD ou une imprimante série. Il existe deux versions du protocole série, qui ne diffèrent que par les tensions: il y a le protocole RS-232 classique qui utilise des tensions négatives et positives et le protocole RS-232-TTL qui utilise les niveaux 0 et 5V et a une logique inversée. Les imprimantes utilisent le protocole standard, tandis que les écrans LCD modernes utilisent le protocole TTL.
I2CLe protocole I2C (Inter Integrated Circuit) a été développé dans les années 1980 pour la communication à l'intérieur d'un appareil électronique (téléviseur, magnétoscope) entre les différents composants qui le composent.Ce protocole est simple et bien conçu et ne sécessite que deux lignes de communication (en plus d'une masse) pour relier tous les comosants qui doivent échanger des données. Il permet un ou plusieurs masters et un ou plusieurs slaves.
Actuellement il est encore utilisé dans de nombreuses applications (les puces à mémoire EEPROM, certains capteurs intelligents, les écrans d'ordinateur,...). SPIC'est un protocole plus récent et plus rapide. Il travaille avec des lignes unidirectionelles, ce qui permet de transmettre des signaux sur une plus grande distance en utilisant des amplificateurs, mais la distance est limitée à quelques mètres au maximum. Il nécessite 4 lignes de communication.C'est une norme qui est utilisée nativement par certains périphériques comme les cartes de mémoire de type SD. Un interface SD ne se compose que d'un porte-cartes et d'un connecteur. Pour utiliser ce protocole avec Arduino il faut utiliser la librairie SPI. Cette routine utilise les lignes numériques arduino uno 11, 12 et 13 et la ligne 4. Pour lire une carte de mémoire, il faut également utiliser la librairie SD qui contient les routines pour accéder à la carte (formatée FAT16 ou FAT32). Un exemple où les données sont enregistrées sur carte SD se trouve ici: enregistrement des données de fonctionnement de mon chauffage. Un exemple de carte SD est à droite, on voit bien les 4 lignes de données: Chip Select, Master Out Slave In, Serial Clock, Master In Slave Out et l'alimentation. Le circuit ne contient qu'un régulateur de tension 3.3V pour les cartes qui ne fonctionnent qu'en 3.3V.
CANLe bus de données CAN est un bus sériel qui permet de relier plusieurs appareils. C'est un bus rapide dont la caractéristique principale est que la transmission est priorisée: un périphérique avec une priorité plus basse stoppe sa transmission s'il détecte la transmission d'un périphérique avec une priorité plus élevée.C'est un bus qui n'a pas d'adresses au sens strict: l'adresse est en fait un numéro de priorité. Tous les appareils lisent les données du bus et les utilisent si nécessaire. Le bus était à l'origine utilisé dans les voitures pour permettre de limiter le nombre de cables, mais il est maintenant également utilisé dans l'industrie. Les tensions sur le bus ne sont pas compatibles avec les tensions utilisées par l'arduino (out tout autre microcontroller). Un circuit intégré spécifique effectue les conversions entre SPI et CAN: MCP2515.
Autres protocoles de communicationLa plupart des écrans lcd ont nativement un protocole de communication parallèle sur 4 bits (transmettant un demi-octet ou nibble à la fois). Pour éviter de bloquer de nombreuses lignes numériques de l'arduino, la plupart des écrans lcd ont un petit interface supplémentaire qui accepte les données au format sériel classique et les transforme au format adapté aux écrans LCD.Un écran a jusqu'à 16 broches, dont on en utilise 7 pour la communication. Ecrire vers un écran lcd de cette manière utilise plus de la moitié des broches d'un arduino uno, alors qu'il est possible de le faire en n'utilisant qu'une seule broche. Par contre, utiliser la communication parallèle permet de donner des instructions spécifiques à l'écran, la communication sérielle ne permettant que quelques instructions de base (effacer l'écran, saut d'une ligne,...). Les autres broches servent au backlighting, au réglage du contraste et à l'alimentation. |
Publicités - Reklame