La maggior parte dei trasmettitori di ricevitore asincrono universali (UART) che ho trovato online, sono troppo complicati e difficili da capire, qui spiegherò alcune semplici teorie e anche il codice su come costruirne uno .
Per prima cosa parliamo di come funzionano i trasmettitori. Il principio di base è inviare più bit di dati su una sola riga. Nel nostro trasmettitore, questi dati sono paralleli, tuttavia per ridurre il numero di cavi necessari, utilizziamo la comunicazione seriale che viene convertita in parallelo all'estremità di ricezione.
Le cose di base di cui abbiamo bisogno sono le seguenti:
Un divisore di clock (il nostro contatore)
Questo ci consente di inviare dati a una determinata velocità (baud rate). Il nostro ricevitore campionerà e prenderà i dati bit per bit.
Un registro a scorrimento
Dobbiamo sapere quanti bit alla volta stiamo trasmettendo, il nostro registro a scorrimento avrà un bit di inizio, bit di dati, bit di parità (opzionale), bit di fine.
Un diagramma di stato
Prima di scrivere qualsiasi codice, dobbiamo pensare a ciò che bisogno di creare e il modo migliore è creare un diagramma di stato del nostro design. Sappiamo che per un trasmettitore abbiamo bisogno di 2 stati, IDLE e TRASMISSIONE.
Dopo avere un diagramma di stato, ora possiamo calcolare quale sarà il nostro contatore. Questo viene fatto usando:
counter = FPGA clock speed /baud rate
In questo esempio uso un baud rate di 9600, rendendo il mio contatore = 5208.
Ultimo , calcoliamo il nostro registro a scorrimento e finiamo di scrivere la nostra macchina a stati. Nel mio codice di esempio uso un bit di inizio, bit di parità, 8 bit di dati e bit di fine. Questo è un totale di 11 bit.
Entrambe le immagini dei passaggi 2 e 3 nello stesso modulo completano il nostro codice trasmettitore necessario per programmare sull'FPGA. Questo codice funzionerà con un altro FPGA collegato in serie o con Windows hyperterminal tra l'altro hardware. Può essere facilmente modificabile per funzionare con molto di più.
Infine, creiamo un dispositivo di prova per correggere eventuali errori e simulare il nostro programma prima di programmare l'FPGA.
Questo conclude il trasmettitore. Si prega di lasciare commenti se si hanno domande o si sente che manca qualcosa qui.
Suggerimenti
Sia il trasmettitore che il ricevitore devono conoscere la velocità di trasmissione a cui vengono inviati i dati.
Computer © www.354353.com