數(shù)據(jù)幀
對(duì)于發(fā)送設(shè)備和接收設(shè)備來說,兩者的串行通信配置應(yīng)該設(shè)置為完全相同。
起始位:起始位是在實(shí)際數(shù)據(jù)之前添加的同步位。起始位標(biāo)記數(shù)據(jù)包的開始。通常,空閑數(shù)據(jù)線,即當(dāng)數(shù)據(jù)傳輸線不傳輸任何數(shù)據(jù)時(shí),它保持在高電壓電平。為了開始數(shù)據(jù)傳輸,發(fā)送 UART 將數(shù)據(jù)線從高電平拉到低電平(從 1 到 0)。接收 UART 在數(shù)據(jù)線上檢測(cè)到這種從高到低的變化,并開始讀取實(shí)際數(shù)據(jù)。通常,只有一個(gè)起始位。
數(shù)據(jù)位:數(shù)據(jù)位是從發(fā)送方傳輸?shù)浇邮辗降膶?shí)際數(shù)據(jù)。數(shù)據(jù)幀的長(zhǎng)度可以在 5 到 9 之間(如果不使用奇偶校驗(yàn),則為 9 位,如果使用奇偶校驗(yàn),則只有 8 位)。
奇偶校驗(yàn)位:奇偶校驗(yàn)允許接收器檢查接收到的數(shù)據(jù)是否正確。Parity 是一個(gè)低級(jí)錯(cuò)誤檢查系統(tǒng),有兩種類型:偶校驗(yàn)和奇校驗(yàn)。
停止位:表示一幀數(shù)據(jù)的結(jié)束。電平邏輯為“1”停止位,顧名思義,標(biāo)志著數(shù)據(jù)包的結(jié)束。它通常有兩位長(zhǎng),但通常只使用一個(gè)位。為了結(jié)束傳輸,UART 將數(shù)據(jù)線保持在高電壓。
如果用通用IO口模擬UART總線,則需一個(gè)輸入口,一個(gè)輸出口。
接收
UART受一個(gè)內(nèi)部時(shí)鐘信號(hào)控制。該時(shí)鐘信號(hào)是數(shù)據(jù)傳輸率的倍頻,典型是比特率的8或16倍。接收器在每個(gè)時(shí)鐘脈沖時(shí)測(cè)試接收到的信號(hào)狀態(tài)是否為開始比特。
如果開始比特的低電平持續(xù)傳輸1個(gè)比特所需時(shí)間的一半以上,則認(rèn)為開始了一個(gè)數(shù)據(jù)幀的傳輸;否則,則認(rèn)為是毛刺脈沖并忽略。
到了下一個(gè)比特時(shí)間后,線路狀態(tài)被采樣并送入移位寄存器。約定的表示一個(gè)字符的所有數(shù)據(jù)比特(典型為5至8個(gè)比特)接收后,移位寄存器可被接收系統(tǒng)使用。UART將設(shè)置一個(gè)標(biāo)記指出新數(shù)據(jù)可用,并產(chǎn)生一個(gè)處理器中斷請(qǐng)求主機(jī)處理器取走接收到的數(shù)據(jù)。
UART的標(biāo)準(zhǔn)特性之一是在接收下一個(gè)字符時(shí)在緩沖區(qū)保存上一個(gè)接收到的字符。這種“雙緩沖區(qū)”允許接收計(jì)算機(jī)用一個(gè)字符的傳輸時(shí)段來獲取緩沖區(qū)內(nèi)的上一個(gè)字符。
許多UART有更大的FIFO緩沖區(qū),允許主機(jī)一次處理多個(gè)字符,這特別適用于高傳輸數(shù)據(jù)率的串行通信同時(shí)處理器中斷頻率有限(通常中斷間隔大于1毫秒)。
發(fā)送器
UART把一個(gè)字符放入移位寄存器,就開始產(chǎn)生一個(gè)數(shù)據(jù)幀。對(duì)于全雙工通信,發(fā)送與接受使用不同的移位寄存器。使用更大的FIFO使得主機(jī)處理器或DMA(Direct Memory Access)放置多個(gè)字節(jié)后由UART自主完成傳輸。UART用一個(gè)標(biāo)志位表示busy。
在 UART 中,發(fā)送器和接收器必須事先就時(shí)序參數(shù)達(dá)成一致。此外,UART 在每個(gè)數(shù)據(jù)字的開頭和結(jié)尾使用特殊位來同步發(fā)送器和接收器。
在基于 UART 的串行通信中,發(fā)送器和接收器以下列方式進(jìn)行通信。發(fā)送設(shè)備上的 UART 即發(fā)送 UART 從 CPU(微處理器或微控制器)接收并行數(shù)據(jù)并將其轉(zhuǎn)換為串行數(shù)據(jù)。
該串行數(shù)據(jù)被傳輸?shù)浇邮赵O(shè)備上的 UART,即接收 UART。接收 UART 在接收到串行數(shù)據(jù)后,將其轉(zhuǎn)換回并行數(shù)據(jù)并提供給 CPU。由于 UART 涉及并行到串行和串行到并行數(shù)據(jù)轉(zhuǎn)換,因此移位寄存器是 UART 硬件的重要組成部分(具體來說是兩個(gè)移位寄存器:發(fā)送器移位寄存器和接收器移位寄存器)。
UART規(guī)則
如前所述,UART 中沒有時(shí)鐘信號(hào),發(fā)送器和接收器必須就串行通信的某些規(guī)則達(dá)成一致,以實(shí)現(xiàn)無差錯(cuò)數(shù)據(jù)傳輸。規(guī)則包括:
?同步位(開始位和停止位)
?奇偶校驗(yàn)位
?數(shù)據(jù)位和
?波特率
波特率:使用波特率提到數(shù)據(jù)傳輸?shù)乃俣?。發(fā)送 UART 和接收 UART 必須在波特率上達(dá)成一致才能成功傳輸數(shù)據(jù)。
波特率以每秒位數(shù)為單位。一些標(biāo)準(zhǔn)波特率是 4800 bps、9600 bps、19200 bps、115200 bps 等。其中 9600 bps 波特率是最常用的一種。
讓我們看一個(gè)示例數(shù)據(jù)幀,其中必須傳輸兩個(gè)數(shù)據(jù)塊,即 00101101 和 11010011。幀的格式是 9600 8N1 即 9600 bps,有 8 位數(shù)據(jù),無奇偶校驗(yàn)和 1 個(gè)停止位。在這個(gè)例子中,我們沒有使用奇偶校驗(yàn)位
-
寄存器
+關(guān)注
關(guān)注
31文章
5434瀏覽量
124539 -
uart
+關(guān)注
關(guān)注
22文章
1276瀏覽量
103978 -
發(fā)送器
+關(guān)注
關(guān)注
1文章
261瀏覽量
27285 -
數(shù)據(jù)幀
+關(guān)注
關(guān)注
0文章
49瀏覽量
6957
發(fā)布評(píng)論請(qǐng)先 登錄

#硬聲創(chuàng)作季 #FPGA Zedboard教程-44 UART串口發(fā)送器的分析實(shí)現(xiàn)-1

#硬聲創(chuàng)作季 #FPGA Zedboard教程-44 UART串口發(fā)送器的分析實(shí)現(xiàn)-2

#硬聲創(chuàng)作季 #FPGA Zedboard教程-44 UART串口發(fā)送器的分析實(shí)現(xiàn)-3
通用異步接收器/發(fā)送器(UART)
通用異步接收器/發(fā)送器(UART)
請(qǐng)問STM8 UART發(fā)送器根據(jù)M位的狀態(tài)發(fā)送8位或9位的數(shù)據(jù)字怎么實(shí)現(xiàn)?
MAX1472 ASK發(fā)送器的輸出匹配網(wǎng)絡(luò)設(shè)計(jì)

MAX3140集成通用異步接收發(fā)送器(UART)和失效保護(hù)的

MAX3109 雙通用異步接收發(fā)送器(UART)
高帶寬、高頻發(fā)送器參考設(shè)計(jì)

UART的幀格式詳細(xì)資料講解
ADV7535:帶HDMI發(fā)送器的MIPI/DSI接收器數(shù)據(jù)表

開啟Cache后UART無法發(fā)送新數(shù)據(jù)
4-20mA電流環(huán)路發(fā)送器入門

評(píng)論