Nwlapcug.com


Come creare un semplice trasmettitore seriale UART in verilog HDL

Come creare un semplice trasmettitore seriale UART in verilog HDL


La maggior parte UART Universal Asynchronous Receiver Transmitter () che ho trovato on-line, sono troppo complicati e difficili da capire, qui vi spiegherò alcuni semplice teoria e anche il codice su come costruire uno.

Istruzioni

1

In primo luogo permette parlare come trasmettitori funzionano. Il principio di base consiste nell'inviare più bit di dati su una singola riga. Nel nostro trasmettitore, questi dati sono paralleli, tuttavia per ridurre il numero di cavi necessari, usiamo la comunicazione seriale che viene convertito in parallelo all'estremità ricevente.

Le cose di base che ci serve sono i seguenti:

Un divisore di orologio (nostro contatore)

Questo sono consente di inviare dati a una certa velocità (in baud). Il nostro ricevitore campione e prendere i dati bit per bit.

Uno shift register

Abbiamo bisogno di sapere quanti bit alla volta ci stiamo trasmettendo, nostro registro a scorrimento avrà un bit di start, bit di dati, bit(optional) di parità, bit di fine.

Un diagramma di stato

Prima di scrivere qualsiasi codice, dobbiamo pensare a quello che abbiamo bisogno di creare e il modo migliore è la creazione di un diagramma di stato del nostro design. Sappiamo che per un trasmettitore abbiamo bisogno di 2 Stati, IDLE e TRASMETTENTE.

2Come creare un semplice trasmettitore seriale UART in verilog HDL


Dopo aver visto un diagramma di stato, ora possiamo calcolare quale sarà il nostro contatore. Questa operazione viene eseguita utilizzando:

contatore = velocità di clock FPGA / velocità in baud

In questo esempio io uso un baud rate di 9600, rendendo il mio contatore = 5208.

3Come creare un semplice trasmettitore seriale UART in verilog HDL


Infine, calcoliamo il nostro registro a scorrimento e finire di scrivere la nostra macchina di stato. Nel mio codice di esempio utilizzo un bit di start, bit di parità, 8 bit di dati e fine bit. Si tratta di un totale di 11 bit.

Entrambe le immagini nel passaggio 2 e 3 insieme nello stesso modulo completano nostro codice trasmettitore richiedeva di programmare per FPGA. Questo codice funziona con un altro FPGA collegati in serie o con hyperterminal di windows tra altri componenti hardware. Può essere facilmente modificabile per lavorare con molto di più.

4

Ultima, creiamo un apparecchio di prova per correggere eventuali errori e simulare il nostro programma prima di programmare il FPGA.

Questo conclude il trasmettitore. Si prega di lasciare commenti, se avete qualunque domande o sentono che c'è qualcosa che manca qui.

Consigli & Avvertenze

  • Trasmettitore e ricevitore deve conoscere il baud rate a cui viene inviati dati.