Partage de technologie

Expérience de communication série UART

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Types de communication

1.1 Selon la méthode de communication des données

1.1.1 Communication série

avantage: Occupe moins de broches et a un faible coût

défaut:La vitesse de transmission est lente

ApplicationsSituations de communication longue distance et à faible vitesse

1.1.2 Communication parallèle

avantage: Taux de transmission rapide

défaut: Occupant de nombreuses broches et coût élevé

Applications:Situations de courte distance.

1.2 Selon le sens de transmission des données

1.2.1 Communication simplex :

      Les données ne peuvent être transférées que dans un seul sens.

1.2.2 Communication semi-duplex :

Les données peuvent être transférées dans les deux sens, mais elles doivent être partagées en temps partagé.

1.2.3 Communication duplex intégral :

Les données peuvent être transmises simultanément dans les deux sens.

1.3 Classification par sens de synchronisation des données

1.3.1 Communication synchrone

Transfert de données avec port horloge

1.3.2 Communication asynchrone

Il n'y a pas de port d'horloge et l'expéditeur et le destinataire utilisent leurs propres horloges pour contrôler le processus d'envoi et de réception des données.

2. Port série UART

Signification : Émetteur-récepteur asynchrone universel, un bus de données série, Il convertit les données parallèles en données série pour la transmission lors de l'envoi de données, et convertit les données série reçues en données parallèles lors de la réception des données. Deux lignes de signal sont nécessaires pour y parvenir. L'une est utilisée pour la transmission du port série et l'autre est responsable de la réception du port série TXD et RXD entre les deux appareils qui doivent être connectés de manière croisée.

1.couche physique: Type d'interface, niveau standard, etc.

2.Couche de protocole: Protocole de communication (y compris le format des données, le taux de transmission, etc.)

UART Une trame de données en émission ou en réception est constituée de 4 Il se compose d'un bit de démarrage, d'un bit de données, d'un bit de parité et d'un bit d'arrêt. 。

        peu de démarrage: Au début d'une trame, un bit faible de niveau bas 0 doit être maintenu.

        Bits de données: Les bits de données à transmettre, les bits de données peuvent être de 5 à 8 bits, LSB en premier, MSB en dernier.

        Chiffre de contrôle: Bit facultatif, occupe un bit et n'a pas besoin d'être vérifié.

        Bit d'arrêt: La fin d'une trame, obligatoire, occupant éventuellement 0,5/1/1,5/2 bits, maintenant un niveau logique haut.

Débit en bauds : le débit de communication série est exprimé par le débit en bauds, qui représente le nombre de bits de données binaires transmis par seconde. L'unité est le bps (bits par seconde).Les débits en bauds couramment utilisés sont de 9 6001920038400, 57600 et 115200 attendez.

L'UART est chargé de terminer la conversion série-parallèle des données, tandis que la transmission du signal est mise en œuvre par un circuit pilote externe.Le processus de transmission des signaux électriques a différentes normes de niveau et spécifications d'interface pour la communication série asynchrone.Normes d'interfaceIl y a RS232RS422, RS485, etc., qui définissent différentes caractéristiques électriques de l'interface, telles que RS-232 est une entrée et une sortie asymétriques, tandis que RS-422/485 Pour entrée et sortie différentielles

attendez.

3. Tâches expérimentales

        La tâche expérimentale de cette section est que l'ordinateur hôte envoie des données à la Venus Development Board et à la Venus Development Board PL via l'assistant de débogage du port série. Le terminal reçoit des données via le port série USB_UART et envoie les données reçues à l'ordinateur hôte pour terminer le bouclage des données du port série. Débit en bauds UART : 115 200. Bit d'arrêt : 1, bit de données 8, pas de bit de parité.

4. Dessiner un schéma fonctionnel du système

Dans le module uart_rx : uart_rxd correspond aux données reçues par le port série, et uart_rx_done indique que la conversion des données est terminée (les données sont converties des données parallèles en données série). uart_rx_data représente les données série une fois la conversion terminée. Remarque : les données parallèles reçues sont de 1 bit et les données série converties sont de 8 bits.

Dans le module uart_tx : uart_tx_dat représente les données série 8 bits qui ont été converties, uart_tx_en représente que les données ont été converties de parallèle en série, uart_txd représente les données parallèles converties et uart_tx_busy représente que les données ont été converties de série en série. série et est en cours de conversion.

       

5. Dessiner un diagramme de forme d'onde

Étant donné que uart_rxd est un signal asynchrone et que le bit de démarrage est de niveau bas, il est nécessaire de capturer le changement de front descendant, il doit donc être traité en trois battements, afin que le signal du bit de démarrage de la réception des données puisse être obtenu.start_frLe signal indique que des données parallèles arrivent, puis la conversion parallèle en série peut être effectuée ;

                  drapeau rx Indique que la conversion des données parallèles en données série est en cours, en commençant par start_en et en terminant par rx_cnt=9 et baud_cnt à 216. Ceci permet d'éviter la situation dans laquelle le bit de début des données de trame suivante arrive avant la fin des données de trame, de sorte que le bit d'arrêt est contrôlé à 0,5 bits ;

                 baud_cnt: L'horloge système est de 50 MHz, soit 5 000 000, et le débit en bauds ici est de 115 200, donc 5 000 000/115 200 = 434, c'est-à-dire qu'il faut 434 cycles d'horloge système pour transmettre un bit de données, le compteur baud_cnt est donc nécessaire.

                données_rx : Étant donné que les données série sont de 8 bits, il est préférable d'ajouter un index pour faciliter la recherche d'un certain bit de données et l'attribution d'une valeur. Par conséquent, rx_cnt est requis.

                 rx_data_t:Données série converties.

diagramme de forme d'onde uart_rx

uart_tx_en : indique que la conversion des données série est terminée, c'est-à-dire le signal uart_rx_done.

uart_data_t : stocke temporairement les bits de données série après la conversion pour faciliter la transmission ultérieure.

baud_cnt : Idem que ci-dessus.

tx_cnt : Idem que ci-dessus.

diagramme de forme d'onde uart_tx

6. Simulations

forme d'onde de simulation uart_rx

simulation de forme d'onde uart_tx

diagramme global de forme d'onde uart

7. Vérification au niveau du conseil d'administration

Ouvrez l'outil de débogage du port série

Ajoutez l'attribut de débogage au signal qui doit être débogué, gravez le programme sur la carte de développement et entrez les informations suivantes dans l'assistant de port série.

Parce que les codes hexadécimaux à quatre chiffres de 55 66 77 sont respectivement 0101 0101, 0110 0110, 0111 0111.