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