RS485通訊和Modbus通訊協議彙總

2021-09-25 09:52:07 字數 3244 閱讀 7260

rs-485上的軟體層協議modbus主要依賴於主從模式。主從模式是指在半雙工通訊方式上,2個或者2個以上的裝置組成的通訊系統中:

特別提醒,rs-485硬體協議決定,對於每乙個位元組資料的傳輸是先發高位,再發地位,所以假設陣列u8型陣列revarr[2]存放著接收到的資料,那麼接收端解析資料應該是u16型data = revarr[0] * 256 + revarr[1]。

在工業控制、電力通訊、智慧型儀表等領域,通常情況下是採用串列埠通訊的方式進行資料交換。最初採用的方式是rs232介面,由於工業現場比較複雜,各種電氣裝置會在環境中產生比較多的電磁干擾,會導致訊號傳輸錯誤。除此之外,rs232介面只能實現點對點通訊,不具備聯網功能,最大傳輸距離也只能達到幾十公尺,不能滿足遠距離通訊要求。

而rs485則解決了這些問題,資料訊號採用差分傳輸方式,可以有效的解決共模干擾問題,最大距離可以到1200公尺,並且允許多個收發裝置接到同一條匯流排上。隨著工業應用通訊越來越多,2023年施耐德電氣制定了乙個用於工業現場的匯流排協議modbus協議,現在工業中使用rs485通訊場合很多都採用modbus協議,所以今天我們來了解下rs485通訊和modbus通訊協議。

【rs485通訊】

實際上在rs485之前rs232就已經誕生,但是rs232有幾處不足的地方:

1、介面的訊號電平值較高,達到十幾v,容易損壞介面電路的晶元,而且和ttl電平不相容,因此和微控制器電路接起來的話必須加轉換電路。

2、傳輸速率有侷限,不可以過高,一般到幾十kb/s就到極限了。

3、介面使用訊號線和gnd與其他裝置形成共地模式的通訊,這種共地模式傳輸容易產生干擾,並且抗干擾性能也比較弱。

4、傳輸距離有限,最多只能通訊幾十公尺。

5、通訊的時候只能兩點之間進行通訊,不能夠實現多機聯網通訊。

針對rs232介面的不足,就不斷出現了一些新的介面標準,rs485就是其中之一,他具備以下的特點:

1.邏輯「1」以兩線間的電壓差為+(2—6)v表示;邏輯「0」以兩線間的電壓差為-(2—6)v表示。介面訊號電平比rs232c降低了,就不易損壞電路的晶元,且該電平與ttl電平相容,可方便與ttl電路連線。

2.rs485通訊速度快,資料最高傳輸速率為10mbps以上

3.rs485內部的物理結構,採用的是平衡驅動器和查分接收器的組合,抗干擾能力大大增加。

4.傳輸速率最遠可達到1200公尺左右,但是他的傳輸速率和傳輸距離是成反比的,只有在100kb/s以下的傳輸速率,才能達到最大的通訊距離,如果需要傳輸更遠距離可以使用中繼。

5.可以在匯流排上進行聯網實現多機通訊,匯流排上允許掛多個收發器,從現有的rs485晶元來看,有可以掛32、64、128、256等不同個裝置的驅動器。

rs485有兩線制和四線制兩種接線,四線制只能實現點對點的通訊方式,現很少採用,現在多採用的是兩線制接線方式,這種接線方式為匯流排式拓樸結構在同一匯流排上最多可以掛接32個結點。在rs485通訊網路中一般採用的是主從通訊方式,即乙個主機帶多個從機。很多情況下,連線rs-485通訊鏈路時只是簡單地用一對雙絞線將各個介面的「a」、「b」端連線起來。而忽略了訊號地的連線,這種連線方法在許多場合是能正常工作的,但卻埋下了很大的隱患,這有二個原因:

(1)共模干擾問題:rs-485介面採用差分方式傳輸訊號方式,並不需要相對於某個參照點來檢測訊號,系統只需檢測兩線之間的電位差就可以了。但人們往往忽視了收發器有一定的共模電壓範圍,rs-485收發器共模電壓範圍為-7~+12v,只有滿足上述條件,整個網路才能正常工作。當網路線路中共模電壓超出此範圍時就會影響通訊的穩定可靠,甚至損壞介面。

(2)emi問題:傳送驅動器輸出訊號中的共模部分需要乙個返回通路,如沒有乙個低阻的返回通道(訊號地),就會以輻射的形式返回源端,整個匯流排就會像乙個巨大的天線向外輻射電磁波。由於pc機預設的只帶有rs232介面,有兩種方法可以得到pc上位機的rs485電路:(1)通過rs232/rs485轉換電路將pc機串列埠rs232訊號轉換成rs485訊號,對於情況比較複雜的工業環境最好是選用防浪湧帶隔離珊的產品。(2)通過pci多串列埠卡,可以直接選用輸出訊號為rs485型別的擴充套件卡。

【modbus通訊協議】

modbus協議是應用於電子控制器上的一種通用語言。通過此協議,控制器相互之間、控制器經由網路(例如乙太網)和其它裝置之間可以通訊。它已經成為一通用工業標準。有了它,不同廠商生產的控制裝置可以連成工業網路,進行集中監控。此協議定義了乙個控制器能認識使用的訊息結構,而不管它們是經過何種網路進行通訊的。它描述了一控制器請求訪問其它裝置的過程,如何回應來自其它裝置的請求,以及怎樣偵測錯誤並記錄。它制定了訊息域格局和內容的公共格式。

modbus具有以下幾個特點:

(1)標準、開放,使用者可以免費、放心地使用modbus協議,不需要交納許可證費,也不會侵犯智財權。目前,支援modbus的廠家超過400家,支援modbus的產品超過600種。

(2)modbus可以支援多種電氣介面,如rs-232、rs-485等,還可以在各種介質上傳送,如雙絞線、光纖、無線等。

(3)modbus的幀格式簡單、緊湊,通俗易懂。使用者使用容易,廠商開發簡單。

r【tu協議幀資料】

modbus有兩種通訊傳輸方式,一種是ascii模式,一種是rtu模式。由於ascii模式的資料位元組是7bit資料位,51微控制器無法實現,而且應用也相對較少,所以這裡我們只用rtu模式。兩種模式相似,會用一種另外一種也就會了。一條典型的rtu資料幀如圖所示。

和我們實用串列埠通訊程式類似,我們一次傳送的資料幀必須是作為乙個連續的資料流進行傳輸。我們在實用串列埠通訊程式中採用的方法是定義30ms,如果接收到的資料超過了30ms還沒有接收到下乙個位元組,我們就認為這次的資料結束。而modbus的rtu模式規定不同資料幀之間的間隔是3.5個位元組通訊時間以上。如果在一幀資料完成之前有超過3.5個位元組時間的停頓,接收裝置將重新整理當前的訊息並假定下乙個位元組是乙個新的資料幀的開始。同樣的,如果乙個新訊息在小於3.5個位元組時間內接著前邊乙個資料開始的,接收的裝置將會認為它是前一幀資料的延續。這將會導致乙個錯誤,因此大家看rtu資料幀最後還有16bit的crc校驗。

功能**:在第二個位元組功能**位元組中,modbus規定了部分功能**,此外也保留了一部分功能**作為備用或者使用者自定義,這些功能碼大家不需要去記憶,甚至都不用去看,直到你有用到的那天再過來查這個**即可。

crc校驗:crc校驗是一種資料演算法,是用來校驗資料對錯的。crc校驗函式把一幀資料除最後兩個位元組外,前邊所有的位元組進行特定的演算法計算,計算完後生成了乙個16bit的資料,作為crc校驗碼,新增在一幀資料的最後。接收方接收到資料後,同樣會把前邊的位元組進行crc計算,計算完了再和發過來的crc的16bit的資料進行比較,如果相同則認為資料正常,沒有出錯,如果比較不相同,則說明資料在傳輸中發生了錯誤,這幀資料將被丟棄,就像沒收到一樣,而傳送方會在得不到回應後做相應的處理錯誤處理。

原文連線

RS485通訊介紹

rs485通訊介紹 rs 485 半雙工 邏輯1 2v 6v 邏輯0 6v 2v 這裡的電平指ab 兩線間的電壓差。一 基本電路實現 1 基礎的rs485電路 需要控制re de cn 來控制485狀態的切換,一般連在一起用io口控制。當cn為低時485處於接收狀態 當r d為高時485處於傳送狀態...

rs485除錯助手 RS485通訊連線方式是怎樣的

電工之家 www.dgzj.com qq群 2179090 rs485是串列埠的一種,常見的還有rs232,rs422,都屬於串列埠,它們都只是定義了電氣特性的通訊結構,並沒有定義資料傳輸的協議。有的人很容易混淆它們之間的概念,比如人家問你是什麼通訊協議,你回答是rs485,那麼別人就悶了。所謂的通...

s232 rs422和rs485通訊介面的區別

rs232與rs485是兩個難搞清的東西,儘管它們非常不同。1.什麼是rs 232 c介面?採用rs 232 c介面有何特點?傳輸電纜長度如何考慮?答 計算機與計算機或計算機與終端之間的資料傳送可以採用序列通訊和並行通訊二種方式。由於序列通訊方式具有使用線路少 成本低,特別是在遠端傳輸時,避免了多條...