大家好,很高興和各位一起分享我的文章,喜歡和支持我的工程師,一定記得給我點贊、收藏、分享。
加微信[xyzn3333]與作者溝通交流,免費獲取更多單片機與嵌入式的海量電子資料。
是不是還有人對RS485與Modbus傻傻分不清楚?針對兩者的區(qū)別,本文對小白進行一次普及。大牛們請主動跳過,當然也可以分享給你身邊的小小白。
RS485是工業(yè)應用中廣泛使用的串行數(shù)據(jù)傳輸標準。在實現(xiàn)RS485通信時,通常使用Modbus協(xié)議,所以就造成了很多人將RS485與Modbus混為一談。本文從以下幾點進行重點介紹:
- 什么是RS485通信?
- 485的半雙工通信?
- Modbus通信原理?
- Modbus消息格式?
- RS485與Modbus的區(qū)別?
01、什么是RS485通信
RS485是一種類似于RS232的協(xié)議,用于實現(xiàn)串行數(shù)據(jù)通信。這兩種協(xié)議使用不同的電信號來實現(xiàn)數(shù)據(jù)傳輸。工業(yè)環(huán)境中使用RS485比RS232更廣泛的原因之一是它能夠為連接到同一總線的多個設(shè)備提供服務。這樣,在查詢多個設(shè)備時就不需要有多個接口,只是通過區(qū)分總線上不同設(shè)備的地址就可以進行通信,可以通過軟件固定、撥碼開關(guān)、不同電阻電壓等形式來區(qū)分不同的設(shè)備。由于RS485比RS232更多的優(yōu)越性,所以我們會經(jīng)常看到RS485協(xié)議直接連接到USB、GSM或以太網(wǎng)端口,如在工業(yè)互聯(lián)網(wǎng)行業(yè)比較通用的串口服務器,主要是將RS485轉(zhuǎn)換為以太網(wǎng)接口。
使用RS485端口的設(shè)備通常采用Modbus協(xié)議。下表總結(jié)了RS485協(xié)議的特點。RS485在平衡線路上提供半雙工傳輸,傳輸距離可達1.2公里。
02、485的半雙工通信
半雙工系統(tǒng)由一個或多個發(fā)送機和接收機組成,但同時一次只能有一個主機發(fā)送數(shù)據(jù)。通信是由發(fā)送端向特定接收方發(fā)出請求而實現(xiàn)的。RS485網(wǎng)絡(luò)基于主/從框架構(gòu)建。主機扮演發(fā)送器的角色,向作為接收器的指定從機發(fā)出請求。主機監(jiān)聽響應,如果在適當?shù)臅r間范圍內(nèi)未獲得響應,將終止通信。
03、Modbus通信原理
Modbus消息的原理。在Modbus RS485網(wǎng)絡(luò)中,當主設(shè)備向連接的從設(shè)備發(fā)送查詢時,通信開始。從設(shè)備實時監(jiān)控網(wǎng)絡(luò),以收到專門針對它的查詢時,要么執(zhí)行一個操作,要么回復主機。
查詢僅由主設(shè)備發(fā)起。
Modbus協(xié)議允許主機選擇將消息尋址到特定的從設(shè)備或同時與所有從設(shè)備通信。這是通過一個特殊的“廣播”地址實現(xiàn)的。但是有一些產(chǎn)品設(shè)計時,設(shè)計為不接收“廣播”地址命令。讀寫操作通過使用線圈的Modbus消息發(fā)送。線圈由16位字和二進制寄存器組成。從機只能對接收到的消息做出響應,而不會啟動與主機的通信。并行連接到RS485總線的每個從設(shè)備都分配了一個唯一的Modbus從設(shè)備ID。所有Modbus通信都從發(fā)送從設(shè)備ID開始,以提醒從設(shè)備接收查詢或通知主設(shè)備哪個設(shè)備提供了回復。與RS232連接的工作方式相同,從設(shè)備和主設(shè)備需要保證配置相同,如傳輸速度(波特率)、奇偶校驗等參數(shù)需要在整個網(wǎng)絡(luò)中同步。04
Modbus消息格式
Modbus協(xié)議中定義了主設(shè)備和從設(shè)備之間的Modbus通信中使用的消息格式。Modbus查詢由設(shè)備(或廣播)地址、定義任何請求操作的功能代碼、隨請求返回的數(shù)據(jù)以及錯誤檢查字段組成。Modbus響應由驗證已采取請求操作的字段、隨響應發(fā)送的數(shù)據(jù)和錯誤檢查字段組成。如果從設(shè)備無法完成請求或錯誤影響了消息的接收,則從設(shè)備將創(chuàng)建一條錯誤消息作為其響應。Modbus通信采用兩種不同的串行傳輸模式:ASCII和RTU。Modbus ASCII(美國信息交換標準代碼)模式將每個8位消息作為兩個ASCII字符發(fā)送。ASCII模式的優(yōu)點包括能夠在文本控制臺上輕松監(jiān)控消息。該模式還允許在不啟動超時的情況下接受1秒的間隔。Modbus RTU(遠程終端單元)模式以不同的格式傳輸消息。這里,8位消息包含兩個4位十六進制字符。使用這種傳輸模式的數(shù)據(jù)需要以連續(xù)流的形式發(fā)送,并且與ASCII模式相比,在波特率相當?shù)那闆r下能夠?qū)崿F(xiàn)更好的吞吐量。
05、Modbus VS RS-485
Modbus是一種協(xié)議。Modbus協(xié)議定義了用于交換數(shù)據(jù)的消息傳遞結(jié)構(gòu)。Modbus可以使用多種不同類型的電氣標準,并連接到RS 485。Modbus通信可以通過RS 232、RS 485、RS 422、無線電、衛(wèi)星、TCP/IP進行。Modbus不定義其通信的物理介質(zhì),而是定義消息傳遞結(jié)構(gòu)。RS485是一種電氣標準。RS485定義了允許數(shù)據(jù)傳輸?shù)奈锢黼娦盘栯娖胶徒泳€。總結(jié)一句話:
Modbus定義協(xié)議類型,RS485定義協(xié)議上的信號電平。