掌握UART等通信接口的深入知識,對嵌入式初學者而言,不僅能夠深化對通信協議與方式的認知,增強調試技巧及通信接口設計能力,還能拓寬應用范疇并培育系統級思考方式。因此本文將對UART接口進行全面解析,助力嵌入式初學者在智能硬件時代構建可靠、高效的嵌入式系統。
一、基本概念
UART的全稱是Universal Asynchronous Receiver/Transmitter,譯為通用異步收發傳輸器,是一種硬件設備,也是一種異步串口通信協議。它作為一種串行、異步、全雙工的通信協議,將所需傳輸的數據一位接一位地傳輸,在協議中信號線上的狀態位高電平代表“1”,低電平代表“0”。其特點是通信線路簡單,只要一對傳輸線就可以實現雙向通信,大大降低了成本,但傳送速度較慢。
這里簡單對比理解一下全雙工和半雙工、串行和并行、異步和同步幾種通信方式的區別:
(1)全雙工
指通信雙方可以同時進行發送和接收數據,而且可以同時進行這兩個操作而不會互相干擾。通常需要兩條物理通信線(或通道),一條用于發送數據,另一條用于接收數據。典型的例子包括電話系統,其中兩個人可以同時說話和聽對方說話,而不會發生沖突。
(2)半雙工
指通信雙方可以交替進行發送和接收數據,但不能同時進行。當一個設備發送數據時,另一個設備必須處于接收模式,并且反之亦然。只需要一條物理通信線(或通道),這條線在不同時間段上被用于發送和接收操作。例如,對講機就是典型的半雙工通信設備,一個人說話時其他人必須等待,不能同時說話。
(3)串行
串行傳輸是指數據位按順序一個接一個地傳輸,通過單一的通信線(通道)進行。每個數據位依次發送或接收,依據一個時鐘信號進行同步。由于數據逐位傳輸,通常速度比較慢,但可以使用較少的物理線路,適合長距離通信和資源有限的情況。
(4)并行
并行傳輸是指同時傳輸多個數據位,每個數據位使用獨立的通信線(通道)。每個數據位可以獨立進行傳輸和接收。由于同時傳輸多個位,因此可以實現更高的數據傳輸速率,但也需要更多的物理線路和更復雜的硬件支持。
(5)同步
同步傳輸是指數據按照預定的時鐘信號進行傳輸,發送和接收端設備需要共享時鐘信號,以便正確地解釋數據。通信雙方需要通過時鐘信號來同步數據的傳輸速率和時序。能夠實現高速數據傳輸,并確保數據的時序一致性和準確性。常見于需要精確的時序控制和高速數據傳輸的應用,如內存總線、以太網等。
(6)異步
異步傳輸是指數據不需要通過外部的時鐘信號來同步傳輸,而是通過在數據包中引入起始位和停止位來識別每個數據包的開始和結束。通信雙方的時鐘可以是獨立的。更簡單和靈活,適用于低速和不需要精確時序的通信。異步傳輸不需要嚴格的時鐘同步,因此可以減少硬件復雜度和成本。
二、工作模式
UART 通道有兩條數據線。每個設備上都有一個 RX 引腳和一個 TX 引腳(RX 用于接收,TX 用于發送)。每個設備的 RX 引腳都連接到另一個設備的 TX 引腳。此類型的設備連接是沒有時鐘線的。

連接好后,UART就會采用字節數據并以順序方式發送各個位。在接收端,第二個UART將這些位重新組合成完整的字節。
在UART中,傳輸數據是以數據幀的方式進行的,一個標準的UART數據幀如下圖所示:

起始位:先發出一個邏輯“0”,表示傳輸字符開始。
數據位:可以是5~8位邏輯“0”或“1”。如ASCII碼(7位),擴展BCD碼(8位),采用小端傳輸。
校驗位:數據位加上這一位后,使得“1”的位數應為偶數(偶校驗)或奇數(奇校驗)。
停止位:它是一個字符數據的結束標志。可以是1位、1.5位、2位的高電平。
空閑位:處于邏輯“1”狀態,表示當前線路上沒有資料傳送。
UART除了要關注以上的數據幀之外,還有很重要的一點就是波特率,波特率指UART傳輸的數據速率,以波特(Baud)為單位。波特率決定了每秒鐘傳輸的比特數。通信的雙方必須設置相同的波特率,以確保數據的正確傳輸,常見的波特率有9600、115200等。
三、常見類型
UART通信本身定義了數據傳輸的邏輯結構、幀格式和波特率等內容,但它并未對實際傳輸信號的電壓范圍做具體規定。電平標準決定了數據傳輸的信號電壓范圍、傳輸距離以及抗干擾性能,不同的電平標準實現UART通信,用來滿足不同的應用需求。
常見的串行通信電平標準有TTL、RS-232和RS-485,它們的常見電壓區別如下圖所示:

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

在物理連接上,只需要設備共地,通過一根信號線即可完成單向的設備通訊。如果需要雙向全雙工,使用兩根信號線即可。適用于短距離通信,通常在電子 DIY 項目、嵌入式系統、和各種傳感器和執行器之間的通信中被廣泛采用。
(2)RS-232
RS-232是美國電子工業聯盟(EIA)指定的串行數據通信的接口標準,原始編號全稱是EIA-RS-232(簡稱232,RS232)。它被廣泛用于計算機串行接口外設連接。RS-232C標準中,其中EIA(Electronic Industry Association)代表美國電子工業協會,RS(Recommended Standard)代表標準,232是標識號,C代表RS232的第三次修改(1969年),在這之前,還有RS232B、RS232A。RS-232主要用于計算機串行接口(COM端口)和外部設備之間的通信,如調制解調器、打印機等,主要應用于短距離通信。
RS-232 的電平范圍通常在-15V至+15V之間,典型電壓為±12V。標準規定輸入端邏輯高電平范圍為-3V到-15V ,邏輯低電平范圍為+3V到+15V;輸出端邏輯高電平范圍為-5V到-15V,邏輯低電平+5V到+15V。RS-232信號線在沒有數據傳輸時保持在負電壓,數據傳輸開始時電壓在正負電平之間交替,這種較大的電壓擺幅提高了抗干擾性,使RS-232在短距離通信中穩定可靠。
(3)RS-485
電子工業協會于1983年在RS-422工業總線標準的基礎之上指定并發布了RS-485總線工業標準。RS-485工業總線標準具有能夠有效支持多個分節點,通信距離遠,并且對于信息的接收靈敏度較高等特性。RS-485總線一般主要用于與外部各種工業設備進行信息傳輸和數據交換,所具備的對于噪聲的有效抑制能力、高效的數據傳輸速率與良好的數據傳輸的可靠性能以及可擴展的通信電纜的長度是其他的許多工業通信標準所無法比擬的。
它是一種多點、差分信號的串行通信標準,通常用于在遠距離(高達1200米)和噪聲環境下進行通信。RS485 UART以正負差分電平來表示數據,邏輯1和邏輯0之間的電壓差異決定了信號的傳輸和接收。支持多個設備在同一通信線上傳輸數據,使用低功耗驅動器和接收器,可以提供較高的數據傳輸速率。
關于UART接口就介紹到這里,衷心希望這些內容能為屏幕前努力學習嵌入式開發的小伙伴帶來實質性的幫助與啟發。
同時ElfBoard向全國高校發出誠摯邀請,期望能在定制化嵌入式課程設計、聯合創建嵌入式實驗室以及嵌入式師資專業化培訓等多個維度開展深度合作。我們深信,通過共同努力可以為學生提供更加貼近產業需求的高質量嵌入式教育,從而培養出更多具備實戰能力的優秀人才。
嵌入式教育產品展示:

ELF 1開發板搭載由NXP(恩智浦半導體)推出的兼具通用性和高性價比的處理器--i.MX6ULL。“開發簡單、資料豐富、功能全面”是i.MX6ULL系列產品的亮眼標簽。
ELF 1S開發板是在ELF 1的基礎上通過P2排針連接一塊擴展板后組成的升級版本,該擴展板集成了HDMI、RS232、RS485、Ethernet、IIC、CAN、光線傳感器、4G模塊等功能外設。
這兩款開發板無疑是初學者踏入嵌入式開發領域的理想起點。

ELF 2學習板基于瑞芯微RK3588高性能處理器設計,擁有四核ARM Cortex-A76與四核ARM Cortex-A55的CPU架構,主頻高達2.4GHz,內置6TOPS算力的NPU,這款高性能學習板可以助力高校人工智能教學,輕松駕馭多種深度學習框架,高效處理各類復雜的AI任務。
(敬請期待:嵌入式人工智能實驗箱即將登場)
-
單片機
+關注
關注
6053文章
44748瀏覽量
642413 -
嵌入式
+關注
關注
5113文章
19337瀏覽量
311168 -
嵌入式系統
+關注
關注
41文章
3650瀏覽量
130281 -
嵌入式開發板
+關注
關注
5文章
88瀏覽量
18945
發布評論請先 登錄
相關推薦
第61屆高博會圓滿閉幕,飛凌嵌入式教育品牌ElfBoard精彩回顧

嵌入式UART轉CAN模塊系列產品選型
嵌入式系統的全面解析
嵌入式Linux UART

嵌入式系統串口UART接口為啥沒有數據輸出

嵌入式系統串口UART接口為啥沒有數據輸出

首秀預告!ElfBoard即將亮相第61屆中國高等教育博覽會

第61屆高博會圓滿閉幕,飛凌嵌入式教育品牌ElfBoard精彩回顧

飛凌嵌入式旗下教育品牌ElfBoard亮相全國大學生嵌入式競賽總決賽現場

評論