UART(Universal Asynchronous Receiver/Transmitter)是一種異步收發(fā)傳輸器,是設備間進行異步通信的關鍵模塊。該設備通過信號線將需要發(fā)送的數(shù)據(jù)以二進制的形式一位一位地發(fā)送出去,在傳輸?shù)倪^程中高電平表示發(fā)送的數(shù)據(jù)為“1”,低電平表示數(shù)據(jù)為“0”。異步通信的發(fā)送端和接收端可以由各自的時鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個時鐘源彼此獨立,互不同步。
UART具有雙向通信能力,可以實現(xiàn)全雙工傳輸和接收。全雙工數(shù)據(jù)通信允許數(shù)據(jù)同時在兩個方向上傳輸,這提高了數(shù)據(jù)傳輸?shù)男?。此外,UART的串行數(shù)據(jù)傳輸不需要使用時鐘信號來同步傳輸,而是依賴于發(fā)送設備和接收設備之間預定義的配置。
UART通信過程需要設置波特率、數(shù)據(jù)長度、開始/停止位等參數(shù)。波特率決定了發(fā)送數(shù)據(jù)的速度,而數(shù)據(jù)長度和開始/停止位則用于確保數(shù)據(jù)的正確傳輸和接收。
在UART通信中,兩個UART直接相互通信。發(fā)送UART將控制設備(如CPU)的并行數(shù)據(jù)轉換為串行形式,以串行方式將其發(fā)送到接收UART。只需要兩條線即可在兩個UART之間傳輸數(shù)據(jù),數(shù)據(jù)從發(fā)送UART的Tx引腳流到接收UART的Rx引腳。
UART屬于異步通訊,這意味著沒有時鐘信號,取而代之的是在數(shù)據(jù)包中添加開始和停止位。這些位定義了數(shù)據(jù)包的開始和結束,因此接收UART知道何時讀取這些數(shù)據(jù)。
當接收UART檢測到起始位時,它將以特定波特率的頻率讀取。波特率是數(shù)據(jù)傳輸速度的度量,以每秒比特數(shù)(bps)表示。兩個UART必須以大約相同的波特率工作,發(fā)送和接收UART之間的波特率只能相差約10%。
UART串口通信實驗
數(shù)據(jù)位:8bit,停止位1位,無校驗位,波特率115200bps
uart_rxd:數(shù)據(jù)線
clk_cont:循環(huán)時鐘計數(shù)器0-433
115200bps,1bit耗時1/115200s=8680.5ns
系統(tǒng)時鐘50MHZ,1時鐘周期20ns
8680.5/20=434.025,
可認為每434個時鐘周期發(fā)送1bit位數(shù)據(jù)
rx_cnt:接收數(shù)據(jù)位數(shù)計數(shù)器。Clk_cnt每計數(shù)434,rx_cnt+1.記錄接收了多少位(包括起始位和結束位)。為0是起始位,為9是結束位。
start_flag:檢測到uart_rxd下降沿拉高
rx_flag:檢測到start_flag拉高,它也拉高。檢測到停止位拉低。
uart_data(寄存器):在rx_cnt為1時將數(shù)據(jù)bit0存入寄存器第0位… …
uart_done:傳輸完成標志位,rx_cnt為9時拉高
發(fā)送UART從數(shù)據(jù)總線獲取并行數(shù)據(jù)后,它會添加一個起始位,一個奇偶校驗位和一個停止位來組成數(shù)據(jù)包并從Tx引腳上逐位串行輸出,接收UART在其Rx引腳上逐位讀取數(shù)據(jù)包。
UART數(shù)據(jù)包含有1個起始位,5至9個數(shù)據(jù)位(取決于UART),一個可選的奇偶校驗位以及1個或2個停止位:
在實際應用中,UART廣泛應用于各種設備和系統(tǒng)中,以實現(xiàn)數(shù)據(jù)的有效傳輸和通信。例如,在計算機硬件中,UART用于連接計算機的內(nèi)部和外部設備,如調制解調器、打印機等。在嵌入式系統(tǒng)中,UART也扮演著重要角色,用于實現(xiàn)設備之間的數(shù)據(jù)交換和通信。
審核編輯:黃飛
-
計數(shù)器
+關注
關注
32文章
2283瀏覽量
95854 -
數(shù)據(jù)通信
+關注
關注
2文章
454瀏覽量
34224 -
異步通信
+關注
關注
1文章
58瀏覽量
10282 -
時鐘信號
+關注
關注
4文章
464瀏覽量
28993 -
并行數(shù)據(jù)
+關注
關注
0文章
11瀏覽量
7627
發(fā)布評論請先 登錄
【Runber FPGA開發(fā)板】配套視頻教程——UART串口通信實驗
串口通信實驗分享
UART串口WiFi模塊的工作原理及應用

串口通信與串行通信的區(qū)別和寄存器及通信實驗等詳細資料說明

【STM32】(3) 串口通信實驗

評論