uart通信原理及結構
uart通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART,是一種異步收發傳輸器,是電腦硬件的一部分。它將要傳輸的資料在串行通信與并行通信之間加以轉換。作為把并行輸入信號轉成串行輸出信號的芯片,UART通常被集成于其他通訊接口的連結上。
具體實物表現為獨立的模塊化芯片,或作為集成于微處理器中的周邊設備。一般是RS-232C規格的,與類似Maxim的MAX232之類的標準信號幅度變換芯片進行搭配,作為連接外部設備的接口。在UART上追加同步方式的序列信號變換電路的產品,被稱為USART(Universal Synchronous Asynchronous Receiver Transmitter)。
簡單來說UART是一種通用串行數據總線,用于異步通信。該總線雙向通信,可以實現全雙工傳輸和接收。在嵌入式設計中,UART用于主機與輔助設備通信,如汽車音響與外接AP之間的通信,與PC機通信包括與監控調試器和其它器件,如EEPROM通信。
uart通信原理
UART即通用異步收發器,是一種串行通信方式。數據在傳輸過程中是通過一位一位地進行傳輸來實現通信的,串行通信方式具有傳輸線少,成本底等優點,缺點是速度慢。串行通信分為兩種類型:同步通信方式和異步通信方式。但一般多用異步通信方式,主要因為接受和發送的時鐘是可以獨立的這樣有利于增加發送與接收的靈活性。異步通信是一個字符接著一個字符傳輸,一個字符的信息由起始位、數據位、奇偶校驗位和停止位組成。
每一個字符的傳輸靠起始位來同步,字符的前面一位是起始位,用下降沿通知收方開始傳輸,緊接著起始位之后的是數據位,傳輸時低位在前高位在后,字符本身由5~8位數據位組成。數據位后面是奇偶校驗位,最后是停止位,停止位是用高電平來標記一個字符的結束,并為下一個字符的傳輸做準備。停止位后面是不同長度的空閑位。停止位和空閑位都規定為高電平,這樣可以保證起始位有一個下降沿。UART的幀格式如圖2.1所示。
UART的幀格式包括線路空閑狀態(idle,高電平)、起始位(start bit,低電平)、5~8位數據位(data bits)、校驗位(parity bit,可選)和停止位(stop bit,位數可為1、1.5、2位)。
在串口的異步通信中,數據以字節為單位的字節幀進行傳送。發送端和接收端必須按照相同的字節幀格式和波特率進行通信。其中字節幀格式規定了起始位、數據位、寄偶效驗位、停止位。起始位是字節幀的開始。使數據線處于邏輯0狀態 ,用于向接收端表明開始發送數據幀,起到使發送和接收設備實現同步。停止位是字節幀的終止,使數據線處于邏輯1狀態。用于向接收端表明數據幀發送完畢。波特率采用標準速度9600bit/s。
這種格式是由起始位和停止位來實現字符的同步。UART內部一般有配置寄存器,可以配置數據位數(5~8位)、是否有校驗位和校驗的類型、停止位的位數(1,1.5,2)等
UART的結構
UART的設計采用模塊化的設計思想,主要分為 3個模塊:數據發送模塊、數據接收模塊及波特率發生器控制模塊。發送模塊實現數據由并行輸入到串行輸出,接收模塊實現數據由串行輸入到并行輸出,波特率發生器模塊控制產生UART時鐘頻率。
從圖中可以看出UART主要有由數據總線接口、控制邏輯、波特率發生器、發送部分和接收部分組成且控制邏輯一般是由MP即微處理器模塊實現,圖中的對象器件一般指和CPU進行通信的外圍串行通信設備類打印機等。
連線采用最簡單的3線制連接模式,即只需要兩根信號線和一根地線來完成數據收發。而FPGA 只需要選擇兩個普通I/O引腳分別與接口芯片MAX3232對應引腳T2IN、R2OUT相連即可完成將串口電平轉換為設備電路板的工作電平,即實現RS-232電平和TTL/ CMOS 電平的轉換。一個MAX3232芯片可以支持兩個串口的電平變換,我們選擇其中的一組接口,圖中的4個電阻可以省去。在電路中加入了0Ω的跳線電阻,是為了在這組接口出故障時可以方便地跳線,使用另一組接口。
UART模塊設計
接收模塊接收模塊的實現方法
接收的數據幀是可編程的。它包括了1個起始位、5~8個數據位、1個可選奇偶校驗位和1~2個停止位,這些都可以通過線控制寄存器(UCONn)來設置。接收器還可以檢測到溢出錯誤、奇偶校驗錯誤、幀錯誤和中止狀況,每種情況下都會將一個錯誤標志置位。
A.溢出錯誤表示新的數據已經覆蓋了舊的數據,因為舊的數據沒有及時讀走;
B.奇偶檢驗錯誤表示接收器隊接收到的數據進行奇偶校驗,奇偶檢驗結果錯誤;
C.幀錯誤表示接收到的數據沒有有效的停止位;
D.中止狀況表示RxDn的輸入被保持為0狀態超過了一個幀傳輸的時間;
E.在FIFO模式下接收FIFO不為空,但接收器已經在3個字時間內沒有接收到任 何數據,就認為發生了接收超時狀況。
接收模塊的端口信號
此模塊是本設計的重點,完成對并行數據的串行輸出。接收器的端口信號如下圖3.3所示。
非常好我支持^.^
(84) 43.8%
不好我反對
(108) 56.2%
相關閱讀:
- [電子說] fpga的開發流程有哪些步驟?fpga和嵌入式系統的區別在哪里? 2023-10-24
- [電子說] STM32H7芯片系列中定時器同步啟動并輸出PWM波形的實現方法 2023-10-24
- [電子說] STM32H7時鐘I/O響應頻率和定時器最高頻率的測試方法 2023-10-24
- [人工智能] 研華推出EPC-B3000系列嵌入式工控機,搭載先進X86架構CPU,助力邊緣人工智能應用 2023-10-24
- [嵌入式技術] 探討嵌入式系統的軟硬件框架 2023-10-24
- [電子說] 專題一:為何選擇rk3588開發與Jetson Nano引腳兼容的嵌入式產品 2023-10-23
- [電子說] 專題二:為何選擇rk3588開發與Jetson Nano引腳兼容的嵌入式產品之規格對比 2023-10-23
- [電子說] GPU是否有替代方案? 2023-10-23
( 發表人:龔婷 )