UART

一,基礎知識

數據通信方式:

並行通信:利用多條數據線將數據的各位同時傳送。

串行通信:利用一條數據線將數據一位位地順序傳送。

異步通信:以一個字符爲傳輸單位,通信中兩個字符間的時間間隔是不固定的。

通信協議:通信雙方約定的一些規則,在異步通信時,對數據格式有如下約定:規定有空閒位,起始位,資料位,奇偶校驗位,停止位。

波特率:衡量數據傳輸速率標準

記錄每秒傳送的二進制位數,例如數據傳送速率爲120字符/秒,而每一位字符爲10位,則其傳送的波特率爲10*120=1200位/秒=1200波特

傳送方式:

單工方式:只能A向B發送數據

半雙工方式:A能向B發送,B能向A發送,當時A,B不能同時發送數據

全雙工方式:A,B能同時互相發送數據。

二,UART基本原理

通用異步收發器,用來串行傳輸數據,發送時:CPU將數據並行寫入UART,UART按照一定的格式在一根信號線上串行發出:接收時:UART檢測另一根信號線上的信號,

將串行數據放在緩衝區中,CPU可讀取UART獲得的這些數據。


從linux系統或者裸機程序中獲得數據送到發送緩衝區寄存器中,在FIFO方式,要發送的數據先寫入到FIFO寄存器,然後複製到發送移位器,通過發送數據引腳TxDn移位輸出,而接收數據從接收數據引腳RxDn輸入並移位,然後從接收移位器複製到FIFO寄存器。在非FIFO方式,要發送的數據先寫入發送保持寄存器,然後複製到發送移位器,通過TxDn引腳移位輸出,要接收的數據通過RxDn引腳並移位,然後從移位器複製到接收保持寄存器。

發送移位器是爲了讓數據一位一位的往外發送。

3.UART程序流程

1)UART初始化

設置波特率->設置數據傳輸格式->選擇通道工作模式

設置波特率:

UBRDIV=(int)(PCLK/(buad rate *16))-1

eg:波特率爲115200bps,UART時鐘PCK=40MHz,

UBRDIV=(int)(40000000/(115200*16))-1

設置數據傳輸格式:

ULCON,設置數據位,校驗位,奇校驗,還是偶校驗,停止位,流量控制

設置通道工作模式:

UCON,設置中斷模式,查詢模式或者DMA模式

2)發送數據

UTXHn

3)接收數據

URXHn

發佈了43 篇原創文章 · 獲贊 15 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章