UART(Universal Asynchronous Receiver/Transmitter)是一種異步收發(fā)傳輸器,是設(shè)備間進行異步通信的關(guān)鍵模塊。該設(shè)備通過信號線將需要發(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ù)男省4送猓琔ART的串行數(shù)據(jù)傳輸不需要使用時鐘信號來同步傳輸,而是依賴于發(fā)送設(shè)備和接收設(shè)備之間預(yù)定義的配置。
UART通信過程需要設(shè)置波特率、數(shù)據(jù)長度、開始/停止位等參數(shù)。波特率決定了發(fā)送數(shù)據(jù)的速度,而數(shù)據(jù)長度和開始/停止位則用于確保數(shù)據(jù)的正確傳輸和接收。
在UART通信中,兩個UART直接相互通信。發(fā)送UART將控制設(shè)備(如CPU)的并行數(shù)據(jù)轉(zhuǎn)換為串行形式,以串行方式將其發(fā)送到接收UART。只需要兩條線即可在兩個UART之間傳輸數(shù)據(jù),數(shù)據(jù)從發(fā)送UART的Tx引腳流到接收UART的Rx引腳。
UART屬于異步通訊,這意味著沒有時鐘信號,取而代之的是在數(shù)據(jù)包中添加開始和停止位。這些位定義了數(shù)據(jù)包的開始和結(jié)束,因此接收UART知道何時讀取這些數(shù)據(jù)。
當(dāng)接收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.記錄接收了多少位(包括起始位和結(jié)束位)。為0是起始位,為9是結(jié)束位。
start_flag:檢測到uart_rxd下降沿拉高
rx_flag:檢測到start_flag拉高,它也拉高。檢測到停止位拉低。
uart_data(寄存器):在rx_cnt為1時將數(shù)據(jù)bit0存入寄存器第0位… …
uart_done:傳輸完成標(biāo)志位,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個停止位:
在實際應(yīng)用中,UART廣泛應(yīng)用于各種設(shè)備和系統(tǒng)中,以實現(xiàn)數(shù)據(jù)的有效傳輸和通信。例如,在計算機硬件中,UART用于連接計算機的內(nèi)部和外部設(shè)備,如調(diào)制解調(diào)器、打印機等。在嵌入式系統(tǒng)中,UART也扮演著重要角色,用于實現(xiàn)設(shè)備之間的數(shù)據(jù)交換和通信。
審核編輯:黃飛
-
計數(shù)器
+關(guān)注
關(guān)注
32文章
2261瀏覽量
94991 -
數(shù)據(jù)通信
+關(guān)注
關(guān)注
2文章
433瀏覽量
33880 -
異步通信
+關(guān)注
關(guān)注
1文章
57瀏覽量
10186 -
時鐘信號
+關(guān)注
關(guān)注
4文章
453瀏覽量
28666 -
并行數(shù)據(jù)
+關(guān)注
關(guān)注
0文章
11瀏覽量
7580
發(fā)布評論請先 登錄
相關(guān)推薦
評論