Condivisione della tecnologia

Esperimento di comunicazione seriale UART

2024-07-12

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

1. Tipi di comunicazione

1.1 Secondo il metodo di comunicazione dei dati

1.1.1 Comunicazione seriale

vantaggio: Occupa meno pin ed ha un costo contenuto

discordanza:La velocità di trasmissione è lenta

ApplicazioniSituazioni di comunicazione a lunga distanza e a bassa velocità

1.1.2 Comunicazione parallela

vantaggio: Velocità di trasmissione elevata

discordanza: Occupa molti pin e ha costi elevati

Applicazioni:Situazioni a breve distanza.

1.2 Secondo la direzione di trasmissione dei dati

1.2.1 Comunicazione simplex:

      I dati possono essere trasferiti solo in una direzione.

1.2.2 Comunicazione half-duplex:

I dati possono essere trasferiti in entrambe le direzioni, ma devono essere suddivisi nel tempo.

1.2.3 Comunicazione full-duplex:

I dati possono essere trasmessi in entrambe le direzioni contemporaneamente.

1.3 Classificazione per direzione di sincronizzazione dei dati

1.3.1 Comunicazione sincrona

Trasferimento dati con porta orologio

1.3.2 Comunicazione asincrona

Non esiste una porta orologio e il mittente e il destinatario utilizzano i propri orologi per controllare il processo di invio e ricezione dei dati.

2. Porta seriale UART

Significato: trasmettitore ricevitore asincrono universale, un bus dati seriale, Converte i dati paralleli in dati seriali per la trasmissione durante l'invio di dati e converte i dati seriali ricevuti in dati paralleli durante la ricezione dei dati. Per raggiungere questo obiettivo sono necessarie due linee di segnale. Una viene utilizzata per la trasmissione della porta seriale e l'altra è responsabile della ricezione della porta seriale tra i due dispositivi che devono essere collegate in modo incrociato.

1.strato fisico: Tipo di interfaccia, livello standard, ecc.

2.Livello di protocollo: Protocollo di comunicazione (incluso formato dati, velocità di trasmissione, ecc.)

UART Un frame di dati durante la trasmissione o la ricezione è costituito da 4 È costituito da bit di inizio, bit di dati, bit di parità e bit di stop. 。

        iniziare un po': All'inizio di un frame deve essere mantenuto un bit basso di livello basso 0.

        bit di dati: I bit di dati da trasmettere, i bit di dati possono essere 5~8 bit, prima LSB, ultimo MSB.

        Controlla la cifra: Bit facoltativo, occupa un bit e non necessita di controllo.

        Fermati un po': La fine di un frame, obbligatoria, che occupa facoltativamente 0,5/1/1,5/2 bit, mantenendo il livello logico alto.

Baud rate: la velocità della comunicazione seriale è espressa dal baud rate, che rappresenta il numero di bit di dati binari trasmessi al secondo. L'unità è bps (bit al secondo).Le velocità di trasmissione comunemente utilizzate sono 96001920038400, 57600 e 115200 Aspettare.

L'UART è responsabile del completamento della conversione dei dati da seriale a parallelo, mentre la trasmissione del segnale è implementata da un circuito driver esterno.Il processo di trasmissione dei segnali elettrici ha standard di livello e specifiche di interfaccia diversi per la comunicazione seriale asincronaStandard di interfacciaC'è RS232RS422, RS485, ecc., che definiscono diverse caratteristiche elettriche dell'interfaccia, come ad esempio Tipo di connettore RS-232 è un input e output single-ended, mentre Tipo RS-422/485 Per ingresso e uscita differenziali

Aspettare.

3. Compiti sperimentali

        Il compito sperimentale di questa sezione è che il computer host invii i dati alla scheda di sviluppo Venus tramite l'assistente di debug della porta seriale The Venus Development Board PL Il terminale riceve i dati tramite la porta seriale USB_UART e invia i dati ricevuti al computer host per completare il loopback dei dati della porta seriale. Velocità di trasmissione UART: 115200. Bit di stop: 1, bit di dati 8, nessun bit di parità.

4. Disegnare il diagramma a blocchi del sistema

Nel modulo uart_rx: uart_rxd sono i dati ricevuti dalla porta seriale e uart_rx_done indica che la conversione dei dati è completata (i dati vengono convertiti da dati paralleli a dati seriali). uart_rx_data rappresenta i dati seriali al termine della conversione. Nota: i dati paralleli ricevuti sono 1 bit e i dati seriali convertiti sono 8 bit.

Nel modulo uart_tx: uart_tx_dat rappresenta i dati seriali a 8 bit che sono stati convertiti, uart_tx_en rappresenta i dati che sono stati convertiti da parallelo a seriale, uart_txd rappresenta i dati paralleli convertiti e uart_tx_busy rappresenta i dati che sono stati convertiti da seriale a seriale. seriale ed è in fase di conversione.

       

5. Disegna il diagramma della forma d'onda

Poiché uart_rxd è un segnale asincrono e il bit di avvio è di livello basso, il fronte di discesa deve essere catturato qui, quindi deve essere elaborato in tre battute, in modo che sia possibile ottenere il segnale del bit di avvio della ricezione dei datiinizio_itIl segnale indica che stanno arrivando dati paralleli e quindi è possibile eseguire il lavoro di conversione da parallelo a seriale;

                  bandiera_rx Indica che è in corso la conversione dei dati paralleli in dati seriali, a partire da start_en e terminando con rx_cnt=9 e baud_cnt a 216. Questo per evitare la situazione in cui il bit di inizio dei dati del frame successivo arriva prima della fine dei dati del frame, quindi il bit di stop è controllato su 0,5 bit;

                 baud_cnt: L'orologio di sistema è 50 Mhz, ovvero 50000000, e la velocità di trasmissione qui è 115200, quindi 50000000/115200=434, ovvero sono necessari 434 cicli di orologio di sistema per trasmettere un bit di dati, quindi è necessario il contatore baud_cnt.

                dati_rx : Poiché i dati seriali sono 8 bit, è meglio aggiungere un indice per facilitare la ricerca di un determinato bit di dati e l'assegnazione di un valore. Pertanto è richiesto rx_cnt.

                 dati_rx_t:Dati seriali convertiti.

diagramma della forma d'onda uart_rx

uart_tx_en: indica che la conversione dei dati seriali è completata, ovvero il segnale uart_rx_done.

uart_data_t: memorizza temporaneamente i bit di dati seriali dopo la conversione per facilitare la successiva trasmissione.

baud_cnt: come sopra.

tx_cnt: come sopra.

diagramma della forma d'onda uart_tx

6. Simulazione

forma d'onda di simulazione uart_rx

simulazione della forma d'onda uart_tx

diagramma generale della forma d'onda uart

7. Verifica a livello di Consiglio

Apri lo strumento di debug della porta seriale

Aggiungi l'attributo debug al segnale di cui deve essere eseguito il debug, masterizza il programma sulla scheda di sviluppo e inserisci le seguenti informazioni nell'assistente della porta seriale.

Perché i codici esadecimali a quattro cifre di 55 66 77 sono rispettivamente 0101 0101, 0110 0110, 0111 0111.