Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial Internet of Things >> Embarqué

Comprendre l'UART

L'UART, ou émetteur-récepteur asynchrone universel, est l'un des protocoles de communication d'appareil à appareil les plus utilisés. Cet article montre comment utiliser un UART comme protocole de communication matériel en suivant la procédure standard.

Lorsqu'il est correctement configuré, l'UART peut fonctionner avec de nombreux types de protocoles série différents qui impliquent la transmission et la réception de données série. Dans la communication série, les données sont transférées bit par bit à l'aide d'une seule ligne ou d'un seul fil. Dans la communication bidirectionnelle, nous utilisons deux fils pour un transfert de données série réussi. Selon l'application et les exigences du système, les communications série nécessitent moins de circuits et de câbles, ce qui réduit le coût de mise en œuvre.

Dans cet article, nous discuterons des principes fondamentaux lors de l'utilisation d'un UART, en mettant l'accent sur la transmission de paquets, le protocole de trame standard et les protocoles de trame personnalisés qui sont des fonctionnalités à valeur ajoutée pour la conformité de la sécurité lorsqu'elles sont mises en œuvre, en particulier lors du développement de code. Au cours du développement du produit, ce document vise également à partager quelques étapes de base lors de la vérification sur une fiche technique de l'utilisation réelle.

À la fin de l'article, l'objectif est de mieux comprendre et respecter les normes UART afin de maximiser les capacités et les applications, en particulier lors du développement de nouveaux produits.

"Le plus gros problème de communication est l'illusion qu'elle a eu lieu."

—George Bernard Shaw

Le protocole de communication joue un rôle important dans l'organisation de la communication entre les appareils. Il est conçu de différentes manières en fonction des exigences du système, et ces protocoles ont une règle spécifique convenue entre les appareils pour parvenir à une communication réussie.

Les systèmes embarqués, les microcontrôleurs et les ordinateurs utilisent principalement un UART comme une forme de protocole de communication matérielle de périphérique à périphérique. Parmi les protocoles de communication disponibles, un UART n'utilise que deux fils pour ses extrémités d'émission et de réception.

Bien qu'il s'agisse d'une méthode de protocole de communication matérielle largement utilisée, elle n'est pas toujours entièrement optimisée. La mise en œuvre correcte du protocole de trame est généralement ignorée lors de l'utilisation du module UART à l'intérieur du microcontrôleur.

Par définition, UART est un protocole de communication matériel qui utilise une communication série asynchrone avec une vitesse configurable. Asynchrone signifie qu'il n'y a pas de signal d'horloge pour synchroniser les bits de sortie de l'appareil de transmission allant à l'extrémité de réception.

Interface


Figure 1. Deux UART communiquent directement entre eux.

Les deux signaux de chaque appareil UART sont nommés :

L'objectif principal d'une ligne d'émetteur et de récepteur pour chaque appareil est de transmettre et de recevoir des données série destinées à la communication série.


Figure 2. UART avec bus de données.

L'UART de transmission est connecté à un bus de données de contrôle qui envoie des données sous une forme parallèle. À partir de là, les données seront maintenant transmises sur la ligne de transmission (fil) en série, bit par bit, à l'UART de réception. Ceci, à son tour, convertira les données série en parallèle pour le périphérique de réception.

Les lignes UART servent de support de communication pour transmettre et recevoir une donnée à une autre. Notez qu'un appareil UART a une broche de transmission et de réception dédiée à la transmission ou à la réception.

Pour l'UART et la plupart des communications série, le débit en bauds doit être réglé de la même manière sur l'appareil de transmission et de réception. Le débit en bauds est le débit auquel les informations sont transférées vers un canal de communication. Dans le contexte du port série, le débit en bauds défini servira de nombre maximal de bits par seconde à transférer.

Le tableau 1 résume ce que nous devons savoir sur l'UART.

Tableau 1. Résumé UART

Fils2Vitesse9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1000000, 1500000Méthodes de transmissionAsynchroneNombre maximum de maîtres1Nombre maximum d'esclaves1

L'interface UART n'utilise pas de signal d'horloge pour synchroniser les dispositifs émetteur et récepteur; il transmet les données de manière asynchrone. Au lieu d'un signal d'horloge, l'émetteur génère un train de bits basé sur son signal d'horloge tandis que le récepteur utilise son signal d'horloge interne pour échantillonner les données entrantes. Le point de synchronisation est géré en ayant le même débit en bauds sur les deux appareils. Ne pas le faire peut affecter le moment de l'envoi et de la réception des données, ce qui peut entraîner des divergences lors du traitement des données. La différence admissible de débit en bauds peut atteindre 10 % avant que la synchronisation des bits ne devienne trop éloignée.

Transmission de données

Dans un UART, le mode de transmission est sous forme de paquet. La pièce qui relie l'émetteur et le récepteur inclut la création de paquets série et contrôle ces lignes matérielles physiques. Un paquet se compose d'un bit de début, d'une trame de données, d'un bit de parité et de bits d'arrêt.


Figure 3. Paquet UART.

Bit de démarrage

La ligne de transmission de données UART est normalement maintenue à un niveau de tension élevé lorsqu'elle ne transmet pas de données. Pour démarrer le transfert de données, l'UART de transmission tire la ligne de transmission de haut en bas pendant un (1) cycle d'horloge. Lorsque l'UART récepteur détecte la transition haute à basse tension, il commence à lire les bits dans la trame de données à la fréquence du débit en bauds.


Figure 4. Bit de démarrage.

Cadre de données

La trame de données contient les données réelles en cours de transfert. Il peut comporter cinq (5) bits jusqu'à huit (8) bits si un bit de parité est utilisé. Si aucun bit de parité n'est utilisé, la trame de données peut être longue de neuf (9) bits. Dans la plupart des cas, les données sont envoyées avec le bit le moins significatif en premier.


Figure 5. Bloc de données.

Parité

La parité décrit la régularité ou l'impair d'un nombre. Le bit de parité est un moyen pour l'UART de réception de savoir si des données ont changé pendant la transmission. Les bits peuvent être modifiés par un rayonnement électromagnétique, des débits en bauds incompatibles ou des transferts de données longue distance.

Une fois que l'UART de réception a lu la trame de données, il compte le nombre de bits avec une valeur de 1 et vérifie si le total est un nombre pair ou impair. Si le bit de parité est un 0 (parité paire), le 1 ou le bit logique haut dans la trame de données doit totaliser un nombre pair. Si le bit de parité est un 1 (parité impaire), le bit 1 ou les hauts logiques dans la trame de données doivent totaliser un nombre impair.

Lorsque le bit de parité correspond aux données, l'UART sait que la transmission était exempte d'erreurs. Mais si le bit de parité est à 0 et que le total est impair, ou que le bit de parité est à 1 et que le total est pair, l'UART sait que les bits de la trame de données ont changé.


Figure 6. Bits de parité.

Bits d'arrêt

Pour signaler la fin du paquet de données, l'UART d'envoi fait passer la ligne de transmission de données d'une basse tension à une haute tension pendant un (1) à deux (2) bits.


Figure 7. Bits d'arrêt.

Étapes de la transmission UART

Premièrement :l'UART de transmission reçoit des données en parallèle du bus de données.


Figure 8. Bus de données vers l'UART de transmission.

Deuxièmement :l'UART de transmission ajoute le bit de démarrage, le bit de parité et le(s) bit(s) d'arrêt à la trame de données.


Figure 9. Trame de données UART du côté Tx.

Troisièmement :le paquet entier est envoyé en série du bit de démarrage au bit d'arrêt de l'UART de transmission à l'UART de réception. L'UART de réception échantillonne la ligne de données à la vitesse de transmission préconfigurée.


Figure 10. Transmission UART.

Quatrièmement :l'UART de réception supprime le bit de démarrage, le bit de parité et le bit d'arrêt de la trame de données.


Figure 11. La trame de données UART du côté Rx.

Cinquièmement :l'UART de réception reconvertit les données série en parallèle et les transfère au bus de données à l'extrémité de réception.


Figure 12. Réception de l'UART vers le bus de données.

Protocole de trame

Une fonctionnalité clé qui est disponible dans l'UART mais pas encore pleinement utilisée est la mise en œuvre d'un protocole de trame. L'utilisation principale et l'importance de ceci est une valeur ajoutée pour la sécurité et la protection sur chaque appareil.

Par exemple, lorsque deux appareils utilisent le même protocole de trame UART, il existe des tendances selon lesquelles, lors de la connexion au même UART sans vérifier la configuration, l'appareil sera connecté à des broches différentes qui peuvent provoquer des dysfonctionnements dans le système.

D'un autre côté, sa mise en œuvre garantit la sécurité en raison de la nécessité d'analyser les informations reçues conformément au protocole de trame de conception. Chaque protocole de trame est spécifiquement conçu pour être unique et sécurisé.

Lors de la conception d'un protocole de trame, les concepteurs peuvent définir les en-têtes et les remorques souhaités, y compris le CRC, sur différents appareils. Dans la figure 13, deux (2) octets sont définis dans l'en-tête.

Deuxièmement :sous la carte mémoire, vérifiez l'adresse UART.


Figure 13. Exemple de protocole de trame UART.

Sur la base de l'échantillon, vous pouvez définir un en-tête, une bande-annonce et un CRC uniques à votre appareil.

En-tête 1 (H1 est 0xAB) et en-tête 2 (H2 est 0xCD)

L'en-tête est l'identifiant unique qui détermine si vous communiquez avec

le bon appareil.

Sélection de commande (CMD)

La commande dépendra de la liste des commandes conçues pour créer la communication entre deux appareils.

Longueur des données (DL) par commande

La longueur des données sera basée sur la commande choisie. Vous pouvez maximiser la longueur des données en fonction de la commande choisie, elle peut donc varier en fonction de la sélection. Dans ce cas, la longueur des données peut être ajustée.

Données n (Données variables)

Les données sont la charge utile à transférer depuis les appareils.

Bande-annonce 1 (T1 est 0xE1) et Bande-annonce 2 (T2 est 0xE2)

Les remorques sont des données qui sont ajoutées après la fin de la transmission. Tout comme l'en-tête, ils peuvent être identifiés de manière unique.

Vérification de redondance cyclique (formule CRC)

La formule de vérification de redondance cyclique est un mode de détection d'erreur supplémentaire pour détecter les modifications accidentelles des données brutes. La valeur CRC de l'appareil émetteur doit toujours être égale aux calculs CRC côté récepteur.

Il est conseillé d'ajouter de la sécurité en implémentant des protocoles de trame pour chaque appareil UART. Le protocole de trame nécessite des configurations identiques sur les appareils de transmission et de réception.

Opérations UART

Lorsque vous utilisez un protocole de communication matériel, il est indispensable de vérifier la fiche technique et le manuel de référence du matériel.

Voici les étapes à suivre :

Tout d'abord :vérifiez l'interface de la fiche technique de l'appareil.


Figure 14. Fiche technique du microcontrôleur.


Figure 15. Carte mémoire du microcontrôleur.

Troisièmement :vérifiez les détails spécifiques du PORT UART tels que le mode de fonctionnement, la longueur des bits de données, le bit de parité et les bits d'arrêt. Exemple de détails de port UART dans la fiche technique :

Port UART
Les exemples de MCU fournissent un port UART full-duplex, qui est entièrement compatible avec les UART standard PC. Le port UART fournit une interface UART simplifiée à d'autres périphériques ou hôtes, prenant en charge le transfert duplex intégral, DMA et asynchrone de données série. Le port UART prend en charge cinq à huit bits de données et aucune parité, paire ou impaire. Une trame se termine par un bit et demi ou deux bits d'arrêt.

Quatrièmement :vérifiez les détails de l'opération UART, y compris le calcul du débit en bauds. Le débit en bauds est configuré à l'aide de l'exemple de formule suivant. Cette formule varie en fonction du microcontrôleur.

Exemples de détails sur les opérations UART :

où,

OSR (taux de suréchantillonnage)
UART_LCR2.OSR =0 à 3
DIV (diviseur de débit)
UART_DIV =1 à 65535
M (débit en bauds fractionnaire DIVM M)
UART_FBR.DIVM =1 à 3
N (débit en bauds fractionnaire DIVM M)
UART_FBR.DIVN =0 à 2047

Cinquièmement :pour le débit en bauds, assurez-vous de vérifier quelle horloge périphérique (PCLK) utiliser. Dans cet exemple, un PCLK 26 MHz et un PCLK 16 MHz sont disponibles. Notez que l'OSR, le DIV, le DIVM et le DIVN varient selon l'appareil.

Tableau 2. Exemple de débit en bauds basé sur 26 MHz PCLK

Débit en bauds OSR DIV DIVM DIVN 9600324310781152003411563

Tableau 3. Exemple de débit en bauds basé sur 16 MHz PCLK

Débit en bauds OSR DIV DIVM DIVN 960031731078115200322348

Sixièmement :la partie suivante consiste à vérifier les registres détaillés de la configuration UART. Jetez un œil aux paramètres de calcul du débit en bauds tels que UART_LCR2, UART_DIV et UART_FBR. Le tableau 4 conduira à un registre spécifique à couvrir.

Tableau 4. Descriptions des registres UART

Nom Description Diviseur de débit UART_DIVBaudUART_FIBRFdébit en bauds fractionnaireUART_LCR2Contrôle de deuxième ligne

Septièmement :sous chaque registre, vérifiez les détails et remplacez les valeurs à calculer pour le débit en bauds, puis commencez à implémenter l'UART.

Pourquoi est-ce important ?

La connaissance du protocole de communication UART est avantageuse lors du développement de produits robustes et axés sur la qualité. Savoir comment envoyer des données en utilisant seulement deux fils, ainsi que comment transporter un paquet entier de données ou une charge utile, aidera à garantir que les données sont transférées et reçues sans erreur. Étant donné que UART est le protocole de communication matériel le plus couramment utilisé, cette connaissance peut permettre une flexibilité de conception dans les conceptions futures.

Cas d'utilisation

Vous pouvez utiliser UART pour de nombreuses applications, telles que :

Références

« Bases de la communication UART ». Hub de l'électronique, juillet 2017.

Campbell, Scott. « Bases de la communication UART ». Bases du circuit . Keim, Robert.

« Retour aux sources :le récepteur/émetteur asynchrone universel ». Tout sur les circuits , décembre 2016.

« Qu'est-ce que le protocole UART ? Communication UART expliquée. Flèche.


Embarqué

  1. Comprendre le processus de fabrication d'arbres
  2. Comprendre l'importance de la culture cloud
  3. Comprendre les avantages de la maintenance prédictive
  4. Comprendre les bases de la fraiseuse
  5. Comprendre la ligne de coupe à longueur
  6. Comprendre les différents types de contraintes résiduelles
  7. Comprendre le fonctionnement de l'amortisseur
  8. Comprendre les différents types d'écoulement de fluide
  9. Comprendre le terme couplage