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