專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力
提供最新的單片機資訊,行業(yè)消息以及公司新聞動態(tài)
UART(通用異步收發(fā)器),這是用于全雙工串行通信的最常見協(xié)議。它是設(shè)計用于執(zhí)行異步通信的單個LSI(大規(guī)模集成)芯片。該設(shè)備將數(shù)據(jù)從一個系統(tǒng)發(fā)送到另一系統(tǒng)。在本文中,英銳恩單片機開發(fā)工程師將介紹UART通信的基礎(chǔ)知識以及UART的工作原理。
什么是UART?
“ UART”代表通用異步收發(fā)器。它是微控制器內(nèi)部的硬件外圍設(shè)備。UART的功能是將傳入和傳出的數(shù)據(jù)轉(zhuǎn)換為串行二進制流。使用串行到并行轉(zhuǎn)換將從外圍設(shè)備接收的8位串行數(shù)據(jù)轉(zhuǎn)換為并行形式,使用串行到并行轉(zhuǎn)換將從CPU接收的并行數(shù)據(jù)轉(zhuǎn)換為并行形式。該數(shù)據(jù)以調(diào)制形式存在,并以定義的波特率傳輸。
為什么要使用UART?
諸如SPI(串行外圍接口)和USB(通用串行總線)之類的協(xié)議用于快速通信。當(dāng)不需要高速數(shù)據(jù)傳輸時,使用UART。它是帶有單個發(fā)送器/接收器的廉價通信設(shè)備。它需要一根導(dǎo)線來傳輸數(shù)據(jù),而需要另一根導(dǎo)線來接收數(shù)據(jù)。
可以使用RS232-TTL轉(zhuǎn)換器或USB-TTL轉(zhuǎn)換器將其與PC(個人計算機)接口。RS232和UART之間的共同點是它們都不需要時鐘來發(fā)送和接收數(shù)據(jù)。Uart幀由1個起始位,1個或2個停止位以及一個用于串行數(shù)據(jù)傳輸?shù)钠媾夹r炍唤M成。
UART框圖
UART由以下核心組件組成。它們是發(fā)送器和接收器。發(fā)送器由發(fā)送保持寄存器,發(fā)送移位寄存器和控制邏輯組成。類似地,接收器由接收保持寄存器,接收器移位寄存器和控制邏輯組成。通常,發(fā)送器和接收器都配有波特率發(fā)生器。
波特率發(fā)生器生成發(fā)送器和接收器必須發(fā)送/接收數(shù)據(jù)的速度。發(fā)送保持寄存器包含要發(fā)送的數(shù)據(jù)字節(jié)。發(fā)送移位寄存器和接收移位寄存器將這些位向左或向右移位,直到發(fā)送/接收一個字節(jié)的數(shù)據(jù)為止。
除了這些,還提供了讀或?qū)懣刂七壿嬕愿嬷螘r進行讀/寫。波特率發(fā)生器產(chǎn)生的速度范圍從110 bps(每秒比特)到230400。大多數(shù)情況下,微控制器提供更高的波特率,例如115200和57600,以實現(xiàn)更快的數(shù)據(jù)傳輸。GPS和GSM等設(shè)備在4800和9600中使用較低的波特率。
一、UART如何工作?
要了解UART的工作原理,您需要了解串行通信的基本功能。簡而言之,發(fā)送器和接收器使用開始位,停止位和定時參數(shù)相互同步。原始數(shù)據(jù)為并行形式。例如,我們有4位數(shù)據(jù),要將其轉(zhuǎn)換為串行形式,我們需要并行到串行轉(zhuǎn)換器。通常,D觸發(fā)器或鎖存器用于設(shè)計轉(zhuǎn)換器。
(1)D–觸發(fā)器的工作
D觸發(fā)器也稱為數(shù)據(jù)觸發(fā)器,當(dāng)且僅當(dāng)時鐘將時鐘從高態(tài)轉(zhuǎn)換為低電平或從低態(tài)轉(zhuǎn)換為高態(tài)時,才從輸入側(cè)向輸出側(cè)移位一位。同樣,如果要傳輸四位數(shù)據(jù),則??需要4個觸發(fā)器。
注意,在這里:
“D”代表輸入數(shù)據(jù)。
“CLK”表示時鐘脈沖。
“Q”表示輸出數(shù)據(jù)?,F(xiàn)在,讓我們設(shè)計一個并行到串行和串行到并行轉(zhuǎn)換器。
(2)并行到串行轉(zhuǎn)換
步驟1:
取4個觸發(fā)器。觸發(fā)器的數(shù)量等于要發(fā)送的位數(shù)。同樣,將多路復(fù)用器放在每個觸發(fā)器的前面,但不包括第一個。放置一個多路復(fù)用器以合并數(shù)據(jù)并將其轉(zhuǎn)換為串行位。它有兩個輸入,一個并行位數(shù)據(jù),另一個來自前一個觸發(fā)器。
第2步:
現(xiàn)在,一次在D個觸發(fā)器中加載數(shù)據(jù)。它將拉出并行數(shù)據(jù),并移動最后一個觸發(fā)器的最后一位(四個),然后是第三位,第二位,最后是第一位?,F(xiàn)在,為了將并行數(shù)據(jù)轉(zhuǎn)換為串行形式,使用了串行到并行轉(zhuǎn)換器。
(3)串行到并行轉(zhuǎn)換
步驟1:
取4個觸發(fā)器。觸發(fā)器的數(shù)量與要發(fā)送的位數(shù)相同。
步驟2:
最初,禁用并行總線。直到所有位都加載后才啟用。將數(shù)據(jù)存儲在第一個觸發(fā)器的輸入處?,F(xiàn)在將時鐘設(shè)為高電平,這會將最低有效位移至第二個觸發(fā)器的輸入和第一個觸發(fā)器的輸出。同樣,通過使時鐘脈沖為高,將所有位一一移位。轉(zhuǎn)換器處于保持狀態(tài),直到所有位都傳輸?shù)捷敵鰹橹埂?br/>
步驟3:
現(xiàn)在,每個觸發(fā)器都包含一位串行數(shù)據(jù)。同時,所有位都傳送到觸發(fā)器輸出,使能總線。這將使轉(zhuǎn)換器一次發(fā)送所有位。
(4)協(xié)議格式
UART從起始位“0”開始通信。起始位啟動串行數(shù)據(jù)的傳輸,終止位結(jié)束數(shù)據(jù)事務(wù)。
它還具有奇偶校驗位(偶數(shù)或奇數(shù))。偶校驗位由“0”(偶數(shù)1)表示,奇校驗位由“1”(偶數(shù)1)表示。
(5)傳輸
使用單條傳輸線(TxD)完成數(shù)據(jù)傳輸。在這里,“0”被認為是空格,而“1”被認為是標(biāo)記狀態(tài)。
發(fā)送器一次發(fā)送一位。發(fā)送一位后,發(fā)送下一位。這樣,所有數(shù)據(jù)位都以預(yù)定義的波特率發(fā)送到接收器。傳輸每個位會有一定的延遲。例如,要以9600波特率發(fā)送一個字節(jié)的數(shù)據(jù),則每個比特以108微秒的延遲發(fā)送。數(shù)據(jù)添加有奇偶校驗位。因此,需要10位數(shù)據(jù)才能發(fā)送7位數(shù)據(jù)。注意:在發(fā)送時,始終首先發(fā)送LSB(最低有效位)。
(6)接收幀
在接收過程中,RxD線(接收器)用于接收數(shù)據(jù)。
(7)UART接口示例
本示例演示了ESP8266 UART與MAX232的接口。但是,在介紹接口細節(jié)之前,讓我分享一下Max232驅(qū)動程序的引腳細節(jié)。
MAX232 IC由5V電源供電,該電源包括一個電容電壓發(fā)生器,用于驅(qū)動232電平電壓。它帶有雙發(fā)送器,也稱為驅(qū)動器(TIN,TOUT)和接收器(RIN和ROUT)。
在這里,我使用了內(nèi)置UART的ESP8266(32位微控制器)。ESP8266可以使用AT指令通過RS232到TTL電平轉(zhuǎn)換器(MAX232)進行通信。下圖顯示了ESP8266與PC(個人計算機)的連接。
通過通過PC請求有效的AT命令,WiFi芯片將以確認響應(yīng)。我不想深入了解ESP8266,在以后的教程中將對此進行解釋。
以下是與PC進行串行通信的步驟。
1.將ESP8266的發(fā)射器(TX)連接到RS232的接收器(TX)到TTL電平轉(zhuǎn)換器(MAX232)和PC的RX。
2.將ESP8266的接收器(RX)連接到PC的TX和TTL轉(zhuǎn)換器的RX。
(8)UART與USART
USART是UART的基本形式。從技術(shù)上講,它們是不同的。但是,兩者的定義相同。這些是微控制器外設(shè),可將并行數(shù)據(jù)轉(zhuǎn)換為串行位,反之亦然。
(9)UART的優(yōu)點與缺點
1.優(yōu)點
UART的優(yōu)點是,它支持使用兩條線的全雙工通信。而且,它不需要外部時鐘就可以進行數(shù)據(jù)通信。它支持使用奇偶校驗位進行錯誤檢查,并且可以輕松更改數(shù)據(jù)長度。
2.缺點
UART的主要缺點是,它不支持多從機或多主機配置。并且,數(shù)據(jù)分組的大小被限制為9位。UART不適合在高能耗下進行繁重的串行通信。
(10)應(yīng)用領(lǐng)域
1.串行調(diào)試端口使用UART驅(qū)動程序來打印來自外部世界的數(shù)據(jù)。
2.我們可以使用它來向嵌入式設(shè)備發(fā)送命令和從嵌入式設(shè)備接收命令。
3.在通訊GPS,GSM / GPRS調(diào)制解調(diào)器,Wi-Fi芯片等與UART操作。
4.在大型機訪問中用于連接不同的計算機。
以上就是英銳恩單片機開發(fā)工程師分享的UART通信協(xié)議與單片機UART的工作原理。