www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 通信技術 > 通信技術
[導讀]UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)器)是一種常用的串行通信協(xié)議,廣泛應用于單片機或各種嵌入式設備之間的通信。

UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)器)是一種常用的串行通信協(xié)議,廣泛應用于單片機或各種嵌入式設備之間的通信。本文將詳細介紹UART通信的基本原理、工作模式、波特率計算以及常見使用方式,幫助有一定單片機開發(fā)能力的人群更好地理解和應用UART通信。

一、UART通信的異步通信機制

UART通信是一種異步串行通信方式,其基本原理是通過數據線上傳輸二進制數據位。UART通信系統(tǒng)主要由發(fā)送端和接收端兩部分組成,它們之間通過數據線進行數據傳輸。發(fā)送端將待發(fā)送的數據轉換為并行信號,然后通過驅動電路將并行信號轉換為串行信號,并通過發(fā)送電路將串行信號發(fā)送到數據線上。接收端則通過接收電路將數據線上的信號還原為并行信號,再通過解碼電路將并行信號轉換為原始數據位。

UART通信采用異步通信方式,即發(fā)送端和接收端之間通過數據線進行數據傳輸。在異步通信中,發(fā)送端和接收端不需要同時處于激活狀態(tài),而是通過起始位和停止位來標識數據幀的開始和結束。具體來說,當發(fā)送端產生起始位后,發(fā)送一個數據位;然后等待接收端的起始位,如果接收到起始位,則繼續(xù)發(fā)送下一個數據位;如果沒有接收到起始位,則認為數據幀傳輸失敗。同樣,當接收端產生停止位后,發(fā)送一個校驗位;然后等待發(fā)送端的停止位,如果接收到停止位,則認為數據幀傳輸成功。

二、UART的波特率

波特率表示單位時間內通過線路傳輸的二進制數據的位數,通常用bps(bits per second)表示。例如,如果波特率為9600bps,則每秒鐘可以傳輸9600個比特位的數據。

串口傳輸數據的波特率是單片機的時鐘系統(tǒng)來產生的,因此它和單片機的系統(tǒng)時鐘存在算式關系。

波特率= (16 * 時鐘頻率) / (32 * 采樣時間) + (1 * 時鐘頻率) / (32 * 采樣時間) - (1 * 時鐘頻率) / (64 * 采樣時間)

其中,采樣時間指從上一次起始位到本次起始位之間的時間間隔。例如,如果采樣時間為10ns,則波特率為9600bps。

常見的波特率有2400、4800、9600、19200、38400、57600、115200……它們都可是2400的整數倍,因此不同的波特率可以通過分頻器來產生?,F在的單片機雖然都有著不同的頻率,常見的有32MHz、48MHz和144MHz,通常它們都會有一個外部系統(tǒng)時鐘為單片機的外圍設備提供基礎時鐘頻率(如1MHz),UART產生波特率也是從該時鐘產生時鐘信號。

需要注意的是,在實際使用中,時鐘頻率可能會受到一些因素的影響,如晶振漂移、電源噪聲等。因此,為了保證數據傳輸的正確性和可靠性,建議在設計UART通信系統(tǒng)時使用外部晶振或時鐘發(fā)生器,并對其進行校準和補償。

三、停止位和奇偶校驗

在UART異步通信中,停止位用于表示數據幀的結束。停止位可以是1個或2個比特位。當停止位為1個比特位時,每個數據字節(jié)的后面都添加一個額外的時間間隔,以補償時鐘抖動和其他因素引起的誤差。例如,如果波特率為9600bps,則每個字節(jié)的時間間隔為4ms,因此每個停止位的時間間隔為4ms / 8 = 0.5ms。

當停止位為2個比特位時,每個數據字節(jié)的后面都添加兩個額外的時間間隔,即每個字節(jié)的時間間隔為4ms / (8 + 4) = 0.3125ms。這種模式適用于需要更高精度的數據傳輸場景。

奇偶校驗是一種常用的錯誤檢測方法,可以檢測數據傳輸過程中的錯誤和丟失。在UART通信中,可以通過設置奇偶校驗位來提高數據傳輸的正確性和可靠性。

需要注意的是,奇偶校驗位只能檢測數據傳輸過程中的錯誤和丟失,而不能保證數據的完整性和正確性。因此,在使用UART通信時,還需要采取其他措施來確保數據傳輸的正確性和可靠性。

四、UART的輪詢收發(fā)和中斷收發(fā)

前面我們講過,UART通信就是把一個字節(jié)的數據拆分成若干bit位,然后一個bit一個bit的發(fā)送。當一個字節(jié)的數據被送進UART發(fā)送器后,這個字節(jié)被轉換成bit位,UART發(fā)送這個字節(jié)后還要產生停止位,此時UART發(fā)送器已經空閑,可以繼續(xù)發(fā)送下一個字節(jié)。通常UART發(fā)送器發(fā)送完一個字節(jié)后會產生一個空閑狀態(tài),輪詢式發(fā)送就是等待這個空閑狀態(tài)并發(fā)送下一個字節(jié)。UART接收也是如此,UART接收器收完一個字節(jié)并收到停止位信號時,就會向單片機的UART數據寄存器保存剛收到的數據,并產生一個收到標志位,輪詢該標志位就可以接收到該字節(jié)數據。

但是在單片機系統(tǒng)中經常不止UART收發(fā)應用,這時就要用到中斷收發(fā)。通常單片機的UART收發(fā)都有RX收到中斷和TX完畢中斷。中斷發(fā)送時,UART發(fā)送器是空閑狀態(tài),此時往發(fā)送器里面寫入第一個字節(jié),該字節(jié)傳輸完畢后產生TX完畢中斷,在TX完畢中斷的服務函數中再填入后續(xù)字節(jié)并產生下一個中斷,最后直到把需要傳輸的字節(jié)都傳完為止。中斷接收時,UART接收器收到字節(jié)后會產生RX收到中斷,在RX收到中斷服務函數中讀取收到的字節(jié),每次中斷時都讀取收到的字節(jié)。

五、帶數據緩存的UART收發(fā)

在很多單片機系統(tǒng)中,都會提供UART Read和UART Write這樣的接口函數。一些高級的單片機甚至還有UART Read Callback和UART Write Callback這樣的回調函數來收發(fā)數據。通常很多單片機的數據處理能力相對UART通信來說要快得多,因此像采用上述接口函數的單片機系統(tǒng)都使用了數據緩存來輔助UART收發(fā)。常見的UART收發(fā)方式有這幾種:

數據隊列(Queue)收發(fā):

這種方式適合大多數單片機,只要有中斷就行。使用UART Write發(fā)送數據時,數據并不是直接寫入到UART發(fā)送器,而是放進了一個環(huán)形緩沖區(qū)中。然后在UART TX發(fā)送完畢中斷服務函數中讀取環(huán)形緩沖區(qū)并把讀到的字節(jié)送入UART發(fā)送器,然后等待TX發(fā)送完畢中斷服務函數再次執(zhí)行時送入下一個字節(jié),直到把環(huán)形緩沖區(qū)的數據送完為止。環(huán)形緩沖區(qū)通常有一個標記頭和尾的變量,只要頭和尾的變量值不相等就說明緩沖區(qū)有數據。使用UART Read接收數據時,也不是直接從UART接收器中獲取數據,而是從環(huán)形緩沖區(qū)中獲取數據。UART RX收到中斷服務函數中把UART接收器收到的字節(jié)送進環(huán)形緩沖區(qū),單片機執(zhí)行UART Read時獲取到的數據是環(huán)形緩沖區(qū)的數據,這樣可以保證單片機程序不用一直等待UART接收器。這種設計的優(yōu)點是可以有效地處理實時數據,避免了數據的丟失。但是,如果Queue的大小設置不當,可能會導致數據的溢出。因此,我們需要根據實際的應用場景來合理地設置Queue的大小。

我們今天要介紹的UART,全稱Universal Asynchronous

Receiver/Transmitter,通用異步收發(fā)傳輸器。使用TTL電平信號,和電腦的COM口(遵循RS-232)不同。它們之間不能直接通訊,需要在之間加入轉換器(如MAX232)。

Tips:

采用二進制來表示數據時:

TTL(晶體管-晶體管邏輯電平)電平信號規(guī)定,+5V等價于邏輯“1”,0V等價于邏輯“0”。

RS-232規(guī)定邏輯“1”的電平為-5V~-15 V,邏輯“0”的電平為+5 V~+15 V

UART工作原理:

和其它串口一樣,數據按照二進制從低位到高位一位一位的傳輸,能將要傳輸的數據在串行通信與并行通信之間加以轉換,能夠靈活地與外部設備進行全雙工數據交換。例如要傳輸一個字節(jié)的數據10001110,它是從低位0開始,一位一位的傳輸過去。

在 UART 通信中,兩個 UART 直接相互通信。發(fā)送端將來自控制設備(如 CPU)的并行數據轉換為串行形式,接著將其串行傳輸到接收端,然后接收端將串行數據轉換回并行數據以供接收設備使用。

數據從一個UART的發(fā)送引腳(Tx) 流向另一個UART的接收(Rx) 引腳:

UART通訊分類:

單工:UART只用Tx或Rx其中一根線進行通訊,也就是只作接收或發(fā)送;

半雙工:UART在同一時間,只用作發(fā)送或接收;

全雙工:UART在發(fā)送的同時,也可以接收;

UART波特率:

UART的波特率是指每秒傳輸的二進制位數(單位bps),比如9600bps,意思就是每秒鐘可以傳輸9600個位(bit)。

例如:設字符傳輸的速率為120字符/秒,而每1個字符為10位(bit),那么傳送的波特率為:10位/字符 * 120 字符/秒 = 1200 /秒 = 1200bps。那么每1位二進制位(bit)的傳送時間:

T = 1/1200 = 0.833ms

UART要求發(fā)送與接收兩個UART的波特率配置相同。如果發(fā)送與接收波特率不同,相差很大,接收端采樣點跨過多個電平,造成接收丟失,或者造成波特率不匹配,接收失敗,如下圖:

常見的波特率有9600、115200、128000、256000等。

通訊過程:

UART屬于異步傳輸數據,這意味著沒有時鐘信號將發(fā)送的位輸出與接收的位采樣同步,也就是發(fā)送與接收使用各自的時鐘。發(fā)送端將開始和停止位添加到傳輸的數據幀中,通過數據幀中定義的開始位和結束位,接收端知道何時開始讀取這些位。

每個數據幀包含 1 個起始位、5 到 9 個數據位(取決于 UART的設置,如果有奇偶校驗位是5到8,沒有則是5到9)、一個可選的奇偶校驗位和 1 個或 2 個停止位:

起始位:UART 數據傳輸線在不傳輸數據時通常保持在高電平。要開始發(fā)送數據時,發(fā)送端UART先在一個時鐘周期內將傳輸線從高電平拉到低電平。當接收端UART 檢測到從高到低的電壓轉換時,它開始以設置好的波特率的頻率讀取數據幀中的位。

數據:數據幀包含正在傳輸的實際數據。如果使用奇偶校驗位,它可以是 5 位到 8 位。如果不使用奇偶校驗位,則數據幀可以是 9 位。在大多數情況下,首先發(fā)送的數據是最低有效位。

校驗:奇偶校驗位是接收端UART 判斷數據在傳輸過程中是否發(fā)生變化的一種方式。位會因電磁輻射、不匹配的波特率或長距離數據傳輸而發(fā)生改變。接收端 UART 讀取數據幀后,檢查數據部分值為1的個數是奇數還是偶數。當奇偶校驗位與數據匹配時,UART 知道傳輸沒有錯誤。

停止:發(fā)送端UART 將數據傳輸線從低電平拉到高電平持續(xù)至少兩個位的時間來表示整個數據包的傳輸已經結束。

發(fā)送接收過程:

1.UART 從數據總線并行接收數據:

2.發(fā)送 UART 將起始位、奇偶校驗位和停止位添加到數據幀:

3.整個數據包從發(fā)送 UART 串行發(fā)送到接收 UART。接收 UART 以預配置的波特率對數據線進行采樣:

4.接收 UART 丟棄數據幀中的起始位、奇偶校驗位和停止位:

5.接收端 UART 將串行數據轉換回并行,并將其傳輸到接收端的數據總線:

聲明:該篇文章為本站原創(chuàng),未經授權不予轉載,侵權必究。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯合牽頭組建的NVI技術創(chuàng)新聯盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現場 NVI技術創(chuàng)新聯...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉