• 正文
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

ElfBoard嵌入式教育科普|UART接口全面解析

03/10 09:40
651
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
掌握UART通信接口的深入知識,對嵌入式初學(xué)者而言,不僅能夠深化對通信協(xié)議與方式的認(rèn)知,增強(qiáng)調(diào)試技巧及通信接口設(shè)計(jì)能力,還能拓寬應(yīng)用范疇并培育系統(tǒng)級思考方式。因此本文將對UART接口進(jìn)行全面解析,助力嵌入式初學(xué)者在智能硬件時代構(gòu)建可靠、高效的嵌入式系統(tǒng)

一、基本概念

UART的全稱是Universal Asynchronous Receiver/Transmitter,譯為通用異步收發(fā)傳輸器,是一種硬件設(shè)備,也是一種異步串口通信協(xié)議。它作為一種串行、異步、全雙工的通信協(xié)議,將所需傳輸?shù)臄?shù)據(jù)一位接一位地傳輸,在協(xié)議中信號線上的狀態(tài)位高電平代表“1”,低電平代表“0”。其特點(diǎn)是通信線路簡單,只要一對傳輸線就可以實(shí)現(xiàn)雙向通信,大大降低了成本,但傳送速度較慢。

這里簡單對比理解一下全雙工和半雙工、串行和并行、異步和同步幾種通信方式的區(qū)別:

(1)全雙工

指通信雙方可以同時進(jìn)行發(fā)送和接收數(shù)據(jù),而且可以同時進(jìn)行這兩個操作而不會互相干擾。通常需要兩條物理通信線(或通道),一條用于發(fā)送數(shù)據(jù),另一條用于接收數(shù)據(jù)。典型的例子包括電話系統(tǒng),其中兩個人可以同時說話和聽對方說話,而不會發(fā)生沖突。

(2)半雙工

指通信雙方可以交替進(jìn)行發(fā)送和接收數(shù)據(jù),但不能同時進(jìn)行。當(dāng)一個設(shè)備發(fā)送數(shù)據(jù)時,另一個設(shè)備必須處于接收模式,并且反之亦然。只需要一條物理通信線(或通道),這條線在不同時間段上被用于發(fā)送和接收操作。例如,對講機(jī)就是典型的半雙工通信設(shè)備,一個人說話時其他人必須等待,不能同時說話。

(3)串行

串行傳輸是指數(shù)據(jù)位按順序一個接一個地傳輸,通過單一的通信線(通道)進(jìn)行。每個數(shù)據(jù)位依次發(fā)送或接收,依據(jù)一個時鐘信號進(jìn)行同步。由于數(shù)據(jù)逐位傳輸,通常速度比較慢,但可以使用較少的物理線路,適合長距離通信和資源有限的情況。

(4)并行

并行傳輸是指同時傳輸多個數(shù)據(jù)位,每個數(shù)據(jù)位使用獨(dú)立的通信線(通道)。每個數(shù)據(jù)位可以獨(dú)立進(jìn)行傳輸和接收。由于同時傳輸多個位,因此可以實(shí)現(xiàn)更高的數(shù)據(jù)傳輸速率,但也需要更多的物理線路和更復(fù)雜的硬件支持。

(5)同步

同步傳輸是指數(shù)據(jù)按照預(yù)定的時鐘信號進(jìn)行傳輸,發(fā)送和接收端設(shè)備需要共享時鐘信號,以便正確地解釋數(shù)據(jù)。通信雙方需要通過時鐘信號來同步數(shù)據(jù)的傳輸速率和時序。能夠?qū)崿F(xiàn)高速數(shù)據(jù)傳輸,并確保數(shù)據(jù)的時序一致性和準(zhǔn)確性。常見于需要精確的時序控制和高速數(shù)據(jù)傳輸?shù)膽?yīng)用,如內(nèi)存總線、以太網(wǎng)等。

(6)異步

異步傳輸是指數(shù)據(jù)不需要通過外部的時鐘信號來同步傳輸,而是通過在數(shù)據(jù)包中引入起始位和停止位來識別每個數(shù)據(jù)包的開始和結(jié)束。通信雙方的時鐘可以是獨(dú)立的。更簡單和靈活,適用于低速和不需要精確時序的通信。異步傳輸不需要嚴(yán)格的時鐘同步,因此可以減少硬件復(fù)雜度和成本。

二、工作模式

UART 通道有兩條數(shù)據(jù)線。每個設(shè)備上都有一個 RX 引腳和一個 TX 引腳(RX 用于接收,TX 用于發(fā)送)。每個設(shè)備的 RX 引腳都連接到另一個設(shè)備的 TX 引腳。此類型的設(shè)備連接是沒有時鐘線的。

連接好后,UART就會采用字節(jié)數(shù)據(jù)并以順序方式發(fā)送各個位。在接收端,第二個UART將這些位重新組合成完整的字節(jié)。

在UART中,傳輸數(shù)據(jù)是以數(shù)據(jù)幀的方式進(jìn)行的,一個標(biāo)準(zhǔn)的UART數(shù)據(jù)幀如下圖所示:

起始位:先發(fā)出一個邏輯“0”,表示傳輸字符開始。

數(shù)據(jù)位:可以是5~8位邏輯“0”或“1”。如ASCII碼(7位),擴(kuò)展BCD碼(8位),采用小端傳輸。

校驗(yàn)位:數(shù)據(jù)位加上這一位后,使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn))。

停止位:它是一個字符數(shù)據(jù)的結(jié)束標(biāo)志??梢允?位、1.5位、2位的高電平。

空閑位:處于邏輯“1”狀態(tài),表示當(dāng)前線路上沒有資料傳送。

UART除了要關(guān)注以上的數(shù)據(jù)幀之外,還有很重要的一點(diǎn)就是波特率,波特率指UART傳輸?shù)臄?shù)據(jù)速率,以波特(Baud)為單位。波特率決定了每秒鐘傳輸?shù)谋忍財?shù)。通信的雙方必須設(shè)置相同的波特率,以確保數(shù)據(jù)的正確傳輸,常見的波特率有9600、115200等。

三、常見類型

UART通信本身定義了數(shù)據(jù)傳輸?shù)倪壿嫿Y(jié)構(gòu)、幀格式和波特率等內(nèi)容,但它并未對實(shí)際傳輸信號的電壓范圍做具體規(guī)定。電平標(biāo)準(zhǔn)決定了數(shù)據(jù)傳輸?shù)男盘栯妷悍秶?、傳輸距離以及抗干擾性能,不同的電平標(biāo)準(zhǔn)實(shí)現(xiàn)UART通信,用來滿足不同的應(yīng)用需求。

常見的串行通信電平標(biāo)準(zhǔn)有TTL、RS-232和RS-485,它們的常見電壓區(qū)別如下圖所示:

(1)TTL
基于TTL的UART通信是UART協(xié)議應(yīng)用最簡單的使用場景,即直接把數(shù)字IO輸出的高低電平作為實(shí)際的物理信號進(jìn)行傳輸。TTL 使用的是標(biāo)準(zhǔn)的TTL邏輯電平(Transistor-Transistor Logic),常見的電平有5V、3.3V、1.8V。
不同電平標(biāo)準(zhǔn)對應(yīng)的邏輯高低電平如下表:

在物理連接上,只需要設(shè)備共地,通過一根信號線即可完成單向的設(shè)備通訊。如果需要雙向全雙工,使用兩根信號線即可。適用于短距離通信,通常在電子 DIY 項(xiàng)目、嵌入式系統(tǒng)、和各種傳感器執(zhí)行器之間的通信中被廣泛采用。

(2)RS-232

RS-232是美國電子工業(yè)聯(lián)盟(EIA)指定的串行數(shù)據(jù)通信的接口標(biāo)準(zhǔn),原始編號全稱是EIA-RS-232(簡稱232,RS232)。它被廣泛用于計(jì)算機(jī)串行接口外設(shè)連接。RS-232C標(biāo)準(zhǔn)中,其中EIA(Electronic Industry Association)代表美國電子工業(yè)協(xié)會,RS(Recommended Standard)代表標(biāo)準(zhǔn),232是標(biāo)識號,C代表RS232的第三次修改(1969年),在這之前,還有RS232B、RS232A。RS-232主要用于計(jì)算機(jī)串行接口(COM端口)和外部設(shè)備之間的通信,如調(diào)制解調(diào)器、打印機(jī)等,主要應(yīng)用于短距離通信。

RS-232 的電平范圍通常在-15V至+15V之間,典型電壓為±12V。標(biāo)準(zhǔn)規(guī)定輸入端邏輯高電平范圍為-3V到-15V ,邏輯低電平范圍為+3V到+15V;輸出端邏輯高電平范圍為-5V到-15V,邏輯低電平+5V到+15V。RS-232信號線在沒有數(shù)據(jù)傳輸時保持在負(fù)電壓,數(shù)據(jù)傳輸開始時電壓在正負(fù)電平之間交替,這種較大的電壓擺幅提高了抗干擾性,使RS-232在短距離通信中穩(wěn)定可靠。

(3)RS-485

電子工業(yè)協(xié)會于1983年在RS-422工業(yè)總線標(biāo)準(zhǔn)的基礎(chǔ)之上指定并發(fā)布了RS-485總線工業(yè)標(biāo)準(zhǔn)。RS-485工業(yè)總線標(biāo)準(zhǔn)具有能夠有效支持多個分節(jié)點(diǎn),通信距離遠(yuǎn),并且對于信息的接收靈敏度較高等特性。RS-485總線一般主要用于與外部各種工業(yè)設(shè)備進(jìn)行信息傳輸和數(shù)據(jù)交換,所具備的對于噪聲的有效抑制能力、高效的數(shù)據(jù)傳輸速率與良好的數(shù)據(jù)傳輸?shù)目煽啃阅芤约翱蓴U(kuò)展的通信電纜的長度是其他的許多工業(yè)通信標(biāo)準(zhǔn)所無法比擬的。

它是一種多點(diǎn)、差分信號的串行通信標(biāo)準(zhǔn),通常用于在遠(yuǎn)距離(高達(dá)1200米)和噪聲環(huán)境下進(jìn)行通信。RS485 UART以正負(fù)差分電平來表示數(shù)據(jù),邏輯1和邏輯0之間的電壓差異決定了信號的傳輸和接收。支持多個設(shè)備在同一通信線上傳輸數(shù)據(jù),使用低功耗驅(qū)動器接收器,可以提供較高的數(shù)據(jù)傳輸速率。

關(guān)于UART接口就介紹到這里,衷心希望這些內(nèi)容能為屏幕前努力學(xué)習(xí)嵌入式開發(fā)的小伙伴帶來實(shí)質(zhì)性的幫助與啟發(fā)。

同時ElfBoard向全國高校發(fā)出誠摯邀請,期望能在定制化嵌入式課程設(shè)計(jì)、聯(lián)合創(chuàng)建嵌入式實(shí)驗(yàn)室以及嵌入式師資專業(yè)化培訓(xùn)等多個維度開展深度合作。我們深信,通過共同努力可以為學(xué)生提供更加貼近產(chǎn)業(yè)需求的高質(zhì)量嵌入式教育,從而培養(yǎng)出更多具備實(shí)戰(zhàn)能力的優(yōu)秀人才。

嵌入式教育產(chǎn)品展示:

(ELF 1開發(fā)板、ELF 1S開發(fā)板以及顯示屏

ELF 1開發(fā)板搭載由NXP(恩智浦半導(dǎo)體)推出的兼具通用性和高性價比的處理器--i.MX6ULL?!伴_發(fā)簡單、資料豐富、功能全面”是i.MX6ULL系列產(chǎn)品的亮眼標(biāo)簽。

ELF 1S開發(fā)板是在ELF 1的基礎(chǔ)上通過P2排針連接一塊擴(kuò)展板后組成的升級版本,該擴(kuò)展板集成了HDMI、RS232、RS485、Ethernet、IIC、CAN、光線傳感器、4G模塊等功能外設(shè)。

這兩款開發(fā)板無疑是初學(xué)者踏入嵌入式開發(fā)領(lǐng)域的理想起點(diǎn)。

(ELF?2學(xué)習(xí)板)

ELF 2學(xué)習(xí)板基于瑞芯微RK3588高性能處理器設(shè)計(jì),擁有四核ARM Cortex-A76與四核ARM Cortex-A55的CPU架構(gòu),主頻高達(dá)2.4GHz,內(nèi)置6TOPS算力的NPU,這款高性能學(xué)習(xí)板可以助力高校人工智能教學(xué),輕松駕馭多種深度學(xué)習(xí)框架,高效處理各類復(fù)雜的AI任務(wù)。

(敬請期待:嵌入式人工智能實(shí)驗(yàn)箱即將登場)

相關(guān)推薦