Comment créer un simple transmetteur UART série HDL Verilog

Comment créer un simple transmetteur UART série HDL Verilog


La plupart émetteur récepteur asynchrone universel (UART) que je trouve en ligne, sont trop compliquées et difficiles à comprendre, ici je vais vous expliquer une théorie simple et aussi le code sur la façon de construire un.

Instructions

1 Première permet de parler de la façon dont les émetteurs fonctionnent. Le principe de base consiste à envoyer plusieurs bits de données sur une seule ligne. Dans notre émetteur, ces données sont parallèles, mais de réduire le nombre de câbles nécessaires, on utilise une communication série qui est converti en parallèle à l'extrémité de réception.

Les choses de base dont nous avons besoin sont les suivantes:

Un diviseur d'horloge (notre compteur)

Cela nous permet d'envoyer des données à une certaine vitesse (vitesse de transmission). Notre récepteur échantillonner et prendre le bit de données par bit.

Un registre à décalage

Nous avons besoin de savoir combien de bits à la fois que nous transmettons, notre registre à décalage aura un bit de départ, les bits de données, bit de parité (en option), bit de fin.

Un diagramme d'état

Avant writting tout code, nous devons penser à ce que nous avons besoin de créer et de la meilleure façon est de créer un diagramme d'état de notre conception. Nous savons pour un émetteur dont nous avons besoin 2 états, IDLE et ÉMISSION.

2 Comment créer un simple transmetteur UART série HDL Verilog

Après avoir un diagramme d'états, maintenant, nous pouvons calculer notre compteur sera. Ceci est réalisé en utilisant:

compteur = vitesse d'horloge FPGA vitesse de transmission /

Dans cet exemple, j'utilise un taux de 9600 bauds, ce qui rend mon compteur = 5208.

3 Comment créer un simple transmetteur UART série HDL Verilog


Enfin, nous calculons notre registre à décalage et de terminer l'écriture de notre machine d'état. Dans mon exemple de code que j'utilise un bit de départ, bit de parité, 8 bits de données et bit de fin. Ceci est 11 bits au total.

Les deux images dans les étapes 2 et 3 dans le même module complet notre code de l'émetteur nécessaire à la programmation du FPGA. Ce code va travailler avec un autre FPGA connecté en série ou avec des fenêtres hyperterminal parmi d'autres matériels. Peut être facilement modifiable à travailler avec beaucoup plus.

4 Enfin, nous créons un appareil de test pour corriger les erreurs et de simuler notre programme avant de programmer le FPGA.

Ceci conclut l'émetteur. S'il vous plaît laisser des commentaires si vous avez des questions ou vous sentez qu'il ya quelque chose qui manque ici.

Conseils et avertissements

  • L'émetteur et le récepteur doivent connaître la vitesse de transmission à laquelle les données sont envoyées.