- Types de protocoles de communication
- Modes de transmission en communication série
- Synchronisation d'horloge
- Autres termes liés à la communication série
- Protocoles série synchrones
- Protocoles série asynchrones
- Conclusion
Avant de commencer avec les protocoles de communication série, décomposons la terminologie en trois parties. La communication est une terminologie très connue qui implique l'échange d'informations entre deux ou plusieurs supports. Dans les systèmes embarqués, la communication signifie l'échange de données entre deux microcontrôleurs sous forme de bits. Cet échange de bits de données dans le microcontrôleur se fait par un ensemble de règles définies appelées protocoles de communication. Maintenant, si les données sont envoyées en série, c'est-à-dire l'une après l'autre, le protocole de communication est appelé protocole de communication série. Plus spécifiquement, les bits de données sont transmis un par un de manière séquentielle sur le bus de données ou le canal de communication en communication série.
Types de protocoles de communication
Il existe différents types de transfert de données disponibles dans l'électronique numérique, comme la communication série et la communication parallèle. De même, les protocoles sont divisés en deux types tels que le protocole de communication série et les protocoles de communication parallèle. Des exemples de protocoles de communication parallèle sont ISA, ATA, SCSI, PCI et IEEE-488. De même, il existe plusieurs exemples de protocoles de communication série tels que CAN, ETHERNET, I2C, SPI, RS232, USB, 1-Wire et SATA, etc.
Dans cet article, les différents types de protocoles de communication série seront abordés. La communication série est l'approche la plus utilisée pour transférer des informations entre les périphériques de traitement de données. Chaque appareil électronique, qu'il s'agisse d'un ordinateur personnel (PC) ou d'un mobile, fonctionne sur une communication série. Le protocole est la forme de communication sécurisée et fiable ayant un ensemble de règles adressées par l'hôte source (expéditeur) et l'hôte de destination (récepteur) similaire à une communication parallèle.
Modes de transmission en communication série
Comme déjà dit ci-dessus, dans une communication série, les données sont envoyées sous forme de bits, c'est-à-dire des impulsions binaires et il est bien connu que, un binaire représente la logique HAUT et zéro représente la logique BAS. Il existe plusieurs types de communication série selon le type de mode de transmission et de transfert de données. Les modes de transmission sont classés en Simplex, Half Duplex et Full Duplex.
Méthode Simplex:
Dans la méthode simplex, l'un ou l'autre du support, c'est-à-dire l'émetteur ou le récepteur, peut être actif à la fois. Ainsi, si l'expéditeur transmet les données, le destinataire ne peut qu'accepter et vice versa. La méthode simplex est donc une technique de communication à sens unique. Les exemples bien connus de méthode simplex sont la télévision et la radio.
Méthode semi-duplex:
Dans la méthode semi-duplex, l'expéditeur et le destinataire peuvent être actifs mais pas en même temps. Donc, si l'expéditeur transmet, le destinataire peut accepter mais ne peut pas envoyer et inversement. Les exemples bien connus du semi-duplex sont Internet où l'utilisateur envoie une demande de données et les obtient du serveur.
Méthode duplex intégral:
Dans la méthode duplex intégral, le récepteur et l'émetteur peuvent s'envoyer des données en même temps. L'exemple bien connu est le téléphone mobile.
En dehors de cela, pour une transmission de données appropriée, l'horloge joue un rôle important et c'est l'une des sources principales. Un dysfonctionnement de l'horloge entraîne une transmission de données inattendue, même parfois une perte de données. Ainsi, la synchronisation d'horloge devient très importante lors de l'utilisation d'une communication série.
Synchronisation d'horloge
L'horloge est différente pour les périphériques série et elle est classée en deux types à savoir. Interface série synchrone et interface série asynchrone.
Interface série synchrone:
Il s'agit d'une connexion point à point d'un maître à un esclave. Dans ce type d'interface, tous les appareils utilisent un seul bus CPU pour partager les données et l'horloge. La transmission de données devient plus rapide avec le même bus pour partager l'horloge et les données. Il n'y a pas non plus de discordance dans la vitesse de transmission dans cette interface. Du côté de l'émetteur, il y a un décalage des données sur la ligne série fournissant l'horloge comme un signal séparé car il n'y a pas de bits de démarrage, d'arrêt et de parité sont ajoutés aux données. Du côté du récepteur, les données sont extraites à l'aide de l'horloge fournie par l'émetteur et convertissent les données série en une forme parallèle. Les exemples bien connus sont I2C et SPI.
Interface série asynchrone:
Dans l'interface série asynchrone, le signal d'horloge externe est absent. Les interfaces série asynchrones peuvent être vues principalement dans les applications longue distance et conviennent parfaitement à une communication stable. Dans l'interface série asynchrone, l'absence de source d'horloge externe fait qu'il repose sur plusieurs paramètres tels que le contrôle du flux de données, le contrôle des erreurs, le contrôle du débit en bauds, le contrôle de transmission et le contrôle de réception. Du côté de l' émetteur, il y a un décalage des données parallèles sur la ligne série en utilisant sa propre horloge. Il ajoute également les bits de contrôle de démarrage, d'arrêt et de parité. Du côté du récepteur, le récepteur extrait les données en utilisant sa propre horloge et reconvertit les données série sous la forme parallèle après avoir supprimé les bits de démarrage, d'arrêt et de parité. Les exemples bien connus sont RS-232, RS-422 et RS-485.
Autres termes liés à la communication série
Outre la synchronisation d'horloge, il y a certaines choses à retenir lors du transfert de données en série, telles que la vitesse de transmission, la sélection des bits de données (cadrage), la synchronisation et la vérification des erreurs. Discutons ces termes en bref.
Débit en bauds: Le débit en bauds est le débit auquel les données sont transférées entre l'émetteur et le récepteur sous forme de bits par seconde (bps). Le débit en bauds le plus couramment utilisé est 9600. Mais il existe d'autres choix de débit en bauds tels que 1200, 2400, 4800, 57600, 115200. Plus le débit en bauds sera gras, plus les données seront transférées à la fois. Pour la communication de données également, la vitesse de transmission doit être la même pour l'émetteur et le récepteur.
Cadrage: Le cadrage désigne le nombre de bits de données à envoyer de l'émetteur au récepteur. Le nombre de bits de données diffère en cas d'application. La plupart des applications utilisent 8 bits comme bits de données standard, mais il peut également être sélectionné comme 5, 6 ou 7 bits.
Synchronisation: les bits de synchronisation sont importants pour sélectionner un morceau de données. Il indique le début et la fin des bits de données. L'émetteur définira les bits de démarrage et d'arrêt de la trame de données et le récepteur l'identifiera en conséquence et effectuera le traitement ultérieur.
Contrôle des erreurs: le contrôle des erreurs joue un rôle important lors de la communication série car de nombreux facteurs affectent et ajoutent du bruit dans la communication série. Pour se débarrasser de cette erreur, les bits de parité sont utilisés là où la parité vérifie la parité paire et impaire. Donc, si la trame de données contient le nombre pair de 1, alors elle est connue sous le nom de parité paire et le bit de parité dans le registre est mis à 1. De même si la trame de données contient un nombre impair de 1, alors il est appelé parité impaire et efface le bit de parité impair dans le registre.
Le protocole est comme un langage commun que le système utilise pour comprendre les données. Comme décrit ci-dessus, le protocole de communication série est divisé en types, c'est-à-dire synchrone et asynchrone. Maintenant, les deux seront discutés en détail.
Protocoles série synchrones
Le type synchrone de protocoles série tels que SPI, I2C, CAN et LIN sont utilisés dans différents projets car c'est l'une des meilleures ressources pour les périphériques embarqués. Ce sont également les protocoles largement utilisés dans les principales applications.
Protocole SPI
L'interface périphérique série (SPI) est une interface synchrone qui permet à plusieurs microcontrôleurs SPI d'être interconnectés. Dans SPI, des fils séparés sont nécessaires pour les données et la ligne d'horloge. De plus, l'horloge n'est pas incluse dans le flux de données et doit être fournie comme un signal séparé. Le SPI peut être configuré comme maître ou comme esclave. Les quatre signaux SPI de base (MISO, MOSI, SCK et SS), Vcc et Ground font partie de la communication de données. Il faut donc 6 fils pour envoyer et recevoir des données de l'esclave ou du maître. Théoriquement, le SPI peut avoir un nombre illimité d'esclaves. La communication de données est configurée dans les registres SPI. Le SPI peut fournir jusqu'à 10 Mbps de vitesse et est idéal pour la communication de données à haute vitesse.
La plupart des microcontrôleurs ont une prise en charge intégrée de SPI et peuvent être directement connectés à un appareil pris en charge par SPI:
- Communication SPI avec le microcontrôleur PIC PIC16F877A
- Comment utiliser la communication SPI dans le microcontrôleur STM32
- Comment utiliser SPI dans Arduino: Communication entre deux cartes Arduino
Communication série I2C
Communication à deux lignes entre circuits intégrés (I2C) entre différents circuits intégrés ou modules où deux lignes sont SDA (Serial Data Line) et SCL (Serial Clock Line). Les deux lignes doivent être connectées à une alimentation positive en utilisant une résistance pull up. I2C peut fournir une vitesse allant jusqu'à 400 Kbps et il utilise un système d'adressage 10 bits ou 7 bits pour cibler un périphérique spécifique sur le bus i2c afin de pouvoir connecter jusqu'à 1024 périphériques. Il a une longueur de communication limitée et est idéal pour la communication à bord. Les réseaux I2C sont faciles à configurer car ils n'utilisent que deux fils et de nouveaux appareils peuvent simplement être connectés aux deux lignes de bus I2C communes. Comme le SPI, le microcontrôleur a généralement des broches I2C pour connecter n'importe quel périphérique I2C:
- Comment utiliser la communication I2C dans le microcontrôleur STM32
- Communication I2C avec le microcontrôleur PIC PIC16F877
- Comment utiliser I2C dans Arduino: Communication entre deux cartes Arduino
USB
USB (Universal Serial Bus) est un protocole largement utilisé avec différentes versions et vitesses. Un maximum de 127 périphériques peut être connecté à un seul contrôleur hôte USB. L'USB fait office de périphérique «plug and play». L'USB est utilisé dans presque des appareils tels que les claviers, les imprimantes, les périphériques multimédias, les appareils photo, les scanners et les souris. Il est conçu pour une installation facile, des données plus rapides, moins de câblage et d'échange à chaud. Il a remplacé les ports série et parallèle plus volumineux et plus lents. L'USB utilise une signalisation différentielle pour réduire les interférences et permettre une transmission à grande vitesse sur une longue distance.
Un bus différentiel est construit avec deux fils, l'un représentant les données transmises et l'autre son complément. L'idée est que la tension «moyenne» sur les fils ne transporte aucune information, ce qui entraîne moins d'interférences. En USB, les appareils sont autorisés à consommer une certaine quantité d'énergie sans demander à l'hôte. L'USB n'utilise que deux fils pour le transfert de données et est plus rapide que l'interface série et parallèle. Les versions USB prennent en charge différentes vitesses telles que 1,5 Mbps (USB v1.0), 480 Mbps (USB2.0), 5 Gbps (USB v3.0). La longueur du câble USB individuel peut atteindre jusqu'à 5 mètres sans hub et 40 mètres avec hub.
POUVEZ
Le Controller Area Network (CAN) est utilisé par exemple dans l'automobile pour permettre la communication entre les calculateurs (unités de commande du moteur) et les capteurs. Le protocole CAN est robuste, peu coûteux et basé sur des messages et couvre de nombreuses applications - par exemple les voitures, les camions, les tracteurs, les robots industriels. Le système de bus CAN permet un diagnostic et une configuration d'erreur centralisés sur tous les calculateurs. Les messages CAN sont classés par ordre de priorité via les ID afin que les ID les plus prioritaires ne soient pas interrompus. Chaque ECU contient une puce pour recevoir tous les messages transmis, décider de la pertinence et agir en conséquence - cela permet de modifier et d'inclure facilement des nœuds supplémentaires (par exemple, des enregistreurs de données de bus CAN). Les applications comprennent le démarrage / arrêt des véhicules, les systèmes de prévention des collisions. Les systèmes de bus CAN peuvent fournir une vitesse allant jusqu'à 1 Mbps.
Microfil
MICROWIRE est une interface série 3 fils 3 Mbit / s essentiellement un sous-ensemble de l'interface SPI. Microwire est un port d'E / S série sur les microcontrôleurs, de sorte que le bus Microwire se trouve également sur les EEPROM et autres puces périphériques. Les 3 lignes sont SI (Serial Input), SO (SerialOutput) et SK (Serial Clock). La ligne d'entrée série (SI) vers le microcontrôleur, SO est la ligne de sortie série et SK est la ligne d'horloge série. Les données sont décalées sur le front descendant de SK et sont valorisées sur le front montant. SI est décalé sur le front montant de SK. Une amélioration de bus supplémentaire pour MICROWIRE est appelée MICROWIRE / Plus. La principale différence entre les deux bus semble être que l'architecture MICROWIRE / Plus au sein du microcontrôleur est plus complexe. Il prend en charge des vitesses allant jusqu'à 3 Mbps.
Protocoles série asynchrones
Le type asynchrone de protocoles série est essentiel pour un transfert de données fiable à plus longue distance. La communication asynchrone ne nécessite pas d'horloge de synchronisation commune aux deux appareils. Chaque appareil écoute et envoie indépendamment des impulsions numériques qui représentent des bits de données à un débit convenu. La communication série asynchrone est parfois appelée série TTL (Transistor-Transistor Logic), où le niveau de haute tension est la logique 1 et la basse tension équivaut à la logique 0. Presque tous les microcontrôleurs sur le marché ont aujourd'hui au moins un récepteur asynchrone universel. Émetteur (UART) pour la communication série. Les exemples sont RS232, RS422, RS485 etc.
RS232
Le RS232 (norme recommandée 232) est un protocole très courant utilisé pour connecter différents périphériques tels que des moniteurs, des CNC, etc. Le RS232 est disponible en connecteurs mâles et femelles. Le RS232 est une topologie point à point avec un maximum d'un appareil connecté et couvre une distance allant jusqu'à 15 mètres à 9600 bps. Les informations sur l'interface RS-232 sont transmises numériquement par 0 et 1 logiques. Le "1" logique (MARK) correspond à une tension comprise entre -3 et -15 V. Le "0" logique (ESPACE) correspond à un tension dans la plage de +3 à +15 V.Il est livré avec un connecteur DB9 qui a 9 broches telles que TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND.
RS422
Le RS422 est similaire au RS232 qui permet d'envoyer et de recevoir simultanément des messages sur des lignes séparées mais utilise un signal différentiel pour cela. Dans le réseau RS-422, il ne peut y avoir qu'un seul appareil émetteur et jusqu'à 10 appareils récepteurs. La vitesse de transfert de données en RS-422 dépend de la distance et peut varier de 10 kbps (1200 mètres) à 10 Mbps (10 mètres). La ligne RS-422 est composée de 4 fils pour la transmission de données (2 fils torsadés pour la transmission et 2 fils torsadés pour la réception) et un fil de masse GND commun. La tension sur les lignes de données peut être comprise entre -6 V et +6 V. La différence logique entre A et B est supérieure à +0,2 V.Logique 1 correspond à la différence entre A et B inférieure à -0,2 V. La norme RS-422 ne définit pas de type spécifique de connecteur, il peut généralement s'agir d'un bornier ou d'un connecteur DB9.
RS485
Comme RS485 utilise une topologie multipoint, il est le plus utilisé dans les industries et est le protocole préféré de l'industrie. RS422 peut connecter 32 pilotes de ligne et 32 récepteurs dans des configurations différentielles, mais à l'aide de répéteurs et d'amplificateurs de signal supplémentaires jusqu'à 256 appareils. Le RS-485 ne définit pas de type de connecteur spécifique, mais il s'agit souvent d'un bornier ou d'un connecteur DB9. La vitesse de fonctionnement dépend également de la longueur de la ligne et peut atteindre 10 Mbit / s à 10 mètres. La tension sur les lignes est comprise entre -7 V et +12 V. Il existe deux types de RS-485 tels que le mode semi-duplex RS-485 avec 2 contacts et le mode duplex intégral RS-485 avec 4 contacts. Pour en savoir plus sur l'utilisation de RS485 avec d'autres microcontrôleurs, consultez les liens:
- Communication série RS-485 MODBUS utilisant Arduino UNO comme esclave
- Communication série RS-485 entre Raspberry Pi et Arduino Uno
- Communication série RS485 entre Arduino Uno et Arduino Nano
- Communication série entre STM32F103C8 et Arduino UNO via RS-485
Conclusion
La communication série est l'un des systèmes d'interface de communication largement utilisés dans l'électronique et les systèmes embarqués. Les débits de données peuvent être différents pour différentes applications. Les protocoles de communication série peuvent jouer un rôle décisif dans ce type d'applications. Le choix du bon protocole série devient donc très important.