對UART RS232 485通訊的理解

2021-10-05 16:07:11 字數 2996 閱讀 1403

實際上這一篇博文想表達的就是想說清楚什麼是串列埠通訊。

先普及一下通訊的基本知識點:

資料通訊的種類序列通訊、並行通訊。不管是什麼型別的通訊,再怎麼複雜的,也是在這兩種上面衍生出來的。

許多傳輸線或者通路組成的,每條線可以一位一位的傳輸,這些位可以在規定的時間裡傳輸完成,也可以在一定的時間內,多位同時傳輸;這就是序列通訊和並行通訊。

資料通訊的傳輸方向1、單工:在任何時刻都只能進行乙個方向的通訊,即乙個固定為傳送裝置,另乙個固定為接收裝置。單工就類似乙個只允許單方向執行的車道,在任何時刻,只允許一輛車向同乙個方向走,不允許逆行。

2、半雙工: 兩個裝置之間可以收發資料,但不能在同一時刻進行。這個形象舉例就像是對講機,你在說話往外發的時候,別人就不能同時給你發,等你講完了,別人再給你回話。

3、全雙工:在同一時刻,兩個裝置之間可以同時收發資料。這個就像手機通話,你講話的同時,對方同時可以插話,你也可以聽到。

資料通訊的方式:同步、非同步。

同步和非同步的區別:首先很多地方都有同步和非同步的概念,簡單來說就是傳送方和接收方按照同乙個時鐘週期工作就叫同步,傳送方和接收方沒有按照統一的時鐘週期、而各自按照自己的時鐘週期工作就叫非同步。

同步通訊中,通訊雙方按照統一節拍工作,所以配合很好;一般需要傳送方給接收方傳送資訊同時傳送時鐘訊號,接收方根據傳送方給它的時鐘訊號來安排自己的節奏。同步通訊用在通訊雙方資訊交換頻率固定,或者經常通訊時。

非同步通訊又叫非同步通知。非同步就是隨時都可以,但怎麼來區分開始,動作和結束呢?這就需要一幀資料裡面需要安插開始傳輸位(開始位)、資料內容、結束位(停止位)以作區分,然後還需要一定的傳輸頻率(波特率),這樣才能將資料傳送出去。在雙方通訊的頻率不固定時(有時3ms收發一次,有時3天才收發一次)不適合使用同步通訊,而適合非同步通訊。非同步通訊時接收方不必一直在意傳送方,傳送方需要傳送資訊時會首先給接收方乙個資訊開始的起始訊號,接收方接收到起始訊號後就認為後面緊跟著的就是有效資訊,才會開始注意接收資訊,直到收到傳送方發過來的結束標誌。

串列埠通訊是屬於非同步的,這個時候的波特率就顯得很重要了。

uart(universal asynchronous receiver/transmitter)即通用非同步收發傳輸器,英文縮寫是uart,中文簡稱串列埠,既然是「器」,顯然,它就是個裝置而已,要完成乙個特定的功能的硬體,是裝置間進行非同步通訊的關鍵模組。uart負責處理資料匯流排和序列口之間的串/並、並/串轉換,並規定了幀格式(就是經常說的 9600,n,8,1);通訊雙方只要採用相同的幀格式和波特率(這就是非同步通訊的特點),就能在未共享時鐘訊號的情況下,僅用兩根訊號線(rx 和tx)就可以完成通訊過程,因此也稱為非同步序列通訊。實際上uart這個器件是整個電路板是否支援串列埠通訊的標誌。

通常,串列埠通訊由乙個起始位,多個資料位,一般是8位,或者8位以下,從乙個位元組的低位開始傳輸,傳輸完畢後傳輸停止位,這就是乙個基本的串列埠協議,當然這個協議中也可以安插一些空閒位,還有奇偶校驗位。我們可以很形象的用一幅圖來表示:

1)rs-232標準

rs-232是美國電子工業協會eia(electronic industry association)制定的一種序列物理介面標準。rs是英文「推薦標準」的縮寫,232為標識號。rs-232是對電氣特性以及物理特性的規定,只作用於資料的傳輸通路上,它並不內含對資料的處理方式。需要說明一下,很多人經常把rs-232、rs-422、rs-485 誤稱為通訊協議,這是很不應該的,其實它們僅是關於uart通訊的乙個機械和電氣介面標準(頂多是網路協議中的物理層面)。

該標準規定採用乙個25 個腳的db-25 聯結器,對聯結器的每個引腳的訊號內容加以規定,還對各種訊號的電平加以規定。後來ibm的pc 機將rs-232 簡化成了db-9 聯結器,從而成為今天的事實標準。而工業控制的rs-232 口一般只使用rxd(2)、txd(3)、gnd(5) 三條線。

2)rs-485/ rs-422標準

rs-232介面可以實現點對點的通訊方式,但這種方式不能實現聯網功能。於是,為了解決這個問題,乙個新的標準rs-485產生了。rs-485的資料訊號採用差分傳輸方式,也稱作平衡傳輸,它使用一對雙絞線,將其中一線定義為a,另一線定義為b。 

通常情況下,傳送驅動器a、b之間的正電平在+2~+6v,是乙個邏輯狀態,負電平在-2~6v,是另乙個邏輯狀態。另有乙個訊號地c,在rs-485中還有一「使能」端,而在rs-422中這是可用可不用的。

rs-422 的電氣效能與rs-485完全一樣。主要的區別在於:rs-422 有4 根訊號線:兩根傳送、兩根接收。由於rs-422 的收與發是分開的所以可以同時收和發(全雙工),也正因為全雙工要求收發要有單獨的通道,所以rs-422適用於兩個站之間通訊,星型網、環網,不可用於匯流排網;rs-485 只有2 根訊號線,所以只能工作在半雙工模式,常用於匯流排網。

其實rs232/485只是上面提到的uart資料幀的傳輸方式、途徑。直白點就是怎麼將資料幀中的0和1bit通過物理的接線傳輸出去。這就涉及到乙個問題,在不同的線路上如何表示0和1呢?當然,我們都知道他們肯定是通過電平訊號表示的0和1,所以他們的差異就只是表示0和1的電平或者叫電壓是多少不同,判定多少伏表示0和1的方式的區別。線路上傳輸的資料是一樣的,只是表現形式略有差異。

所以rs232/485就是代表一種電平標準,只是同ttl不同的一種電平。

後續再補上。。。。。

1、uart和rs232/rs485的關係是什麼?

2、**匯流排通訊機制(通訊基礎+串列埠+i2c)

3、ttl,coms,usb,232,422,485電平之詳細介紹及使用

1007 422通訊問題

一 422信問題記錄 情景 1,通訊資料鏈為dsp晶元28335 處理能力較低,對外介面422,波特率115200 2,通訊另外一端板載計算機 linux系統,埠422 115200 二 現象 1,任務計算機通過串列埠傳送資料給資料鏈,資料鏈接收資料正常,資料鏈向任務計算機傳送資料,出現資料異常。接...

2 1 通訊基礎

一 基本概念 1.資料 訊號與碼元 資料是指傳送資訊的實體。訊號是指資料的電氣或電磁表現,是資料在傳輸過程中的存在形式。資料和訊號都可用 模擬的 或 數字的 來修飾 a.連續變化的資料 或訊號 稱為模擬資料 或模擬訊號 b.取值僅允許為有限的幾個離散值的資料 或訊號 稱為數字資料 或數碼訊號 資料傳...

13 1 通訊時序解析

隨著我們對通訊技術的深入學習,大家要逐漸在頭腦中建立起時序這種概念。所謂 時序 從字面意義上來理解,一是 時間問題 二是 順序問題 先說 順序問題 這個相對簡單一些。我們在學 uart 串列埠通訊的時候,先 1 位起始位,再 8 位資料位,最後 1 位停止位,這個先後順序不能錯。我們在學 1602 ...