一種RS-485總線自定義通信協議及其應用

2020-11-22 電子產品世界

http://www.eepw.com.cn/article/201612/332843.htm

1 概述

工業控制系統中,集散控制是目前最常用的測量控制方式。通常,一個集散控制系統由一個主控計算機(上位機)和一系列基於MCU的前端智能儀器(下位機)構成,它們之間再通過一定的物理媒介連接在一起,以完成必要的通信功能。對於一個特定的測控系統而言,所要測控的對象和所採取的測控算法是個有個性的東西;而上位機和下位機之間的通信可以看作是一系列命令流和數據流的流動,所採用的通信協議是用來保證傳輸過程的可靠和高效,是具有共性的,能夠也應該有一個統一的設計標準。

在集散控制系統中,普遍採用RS-485總線作為底層通信接口。它具有穩定可靠、編程簡單、組網快速、價格低廉的優點,但在協議設計實現方面並沒有一個統一的規範,導致不同的控制系統常常採用不同的通信協議。因此,有必要結合我們的工作實踐,設計一種有通用性的高效可靠的協議,從而簡化基於RS-485的分布式測試系統通信部分的設計,既能夠保證通信的穩定可靠,又能夠把精力集中到測控系統算法的設計上。

通信協議的設計通常採用分層的機構,如ISO的OSI參考模型。這裡也採用分層的結構來描述我們自定義的基於RS-485總線的通信協議,如圖1所示。

圖1中,物理層是利用物理媒介實現物理連接的功能描述和執行連接的規程,提供用於建立、保持和斷開物理連接的機械的、電氣的、功能的和過程的條件;數據鏈路層用於建立、維持和拆除鏈路連接,實現無差錯傳輸的功能;應用層針對不同的應用,利用鏈路層提供的服務,完成不同通信節點之間的通信。

下面結合每一層討論這種自定義協議的具體設計,重點介紹如何實現可靠高效的通信,如何處理通信中錯誤,如何編程實現。

2 協議的設計

2.1 物理層協議設計

RS-485通信網絡是一種總線式的結構,如圖2所示。上位機(以PC為例)和下位機(以基於MCS-51的智能儀器為例)都掛在通信總線上,物理層的通信協議由RS-485標準和MCS-51的多機通信方式共同方式。

2.1.1 EIA RS-485標準

RS-485是工業界使用最為廣泛的雙向、平衡傳輸標準接口,支持多點連接,允許創建多達32個節點的網絡;具有傳輸距離遠(最大傳輸距離1200m),傳輸速率快(1200 m時為100kb/s),抗幹擾能力強,布線簡單等優點。

2.1.2 MCS-51串口的多機通信方式

MCS-51具有多機通信功能。當串口以方式2(或方式3)接收時,若SM2(多機控制位)為1,這時只接收第9位為1的串行數據(把第9位為1的串行字節稱為地址,把第9位為9的串行字節稱為數據);當SM2=0時,不論第9位為何值都接收。

這種功能使得基於MCS-51的智能儀器能夠方便地通過RS-485接口晶片組成網絡。

2.1.3 物理層的功能

物理層要完成發送及接收字節流的任務,但對傳輸過程的可靠性不做出保證,而由高層協議來保證。物理層為鏈路層提供接口(以子程序的形式來描述),包括Send子程序(功能為發送一個字節)及Receive子程序(功能為接收一個字節)。

發送程序比較簡單,接收程序的流程如圖3所示(以MCS-51為例)。採用循環查詢RI標誌位的方式,可以在規定的時間內(即在規定的循環次數內)實現一個字節的接收。規定時間的長短由循環次數決定。如果在規定的時間內未收到,則視為通信失敗。

2.2 數據鏈路層協議設計

數據鏈路層的基本通信單位是帖,幀結構如圖4所示。

*幀長度域為每一幀的第一個字節,用來說明幀體的長度。

*冗餘幀長度域是可選的,它是幀長度域的重複,可以用來檢查在傳輸過程中幀長度域是否存在傳輸錯誤。

*幀體域用來封裝來自上層(應用層)的數據報,長度是1~255B,鏈路層對這一部分不做處理,由應用層處理。

鏈路層可以採用如下方法進行差錯處理。首先,幀長度域的引入可以方便程序的設計,同時也能夠起到一定的檢查錯誤的功能,可以發現傳輸過程中丟失字節的錯誤,並且丟棄緩衝區接收錯誤的字節。首次,可以採用冗餘字節的方法,對關鍵字節(幀長度)發送兩次,只有接收到的兩個幀長度字節一致時才認為接收到的是正確的。此外,對發送的每個字節可以採用CRC校驗等方法進行校驗。

鏈路層向上層(應用層)提供的接口(以子程序的形式來描述)為SendFrame(功能是發送一幀)和ReceiveFrame(功能是接收一幀),程序流程如圖5所示,其中利用了下層(物理層)提供的接口。

2.3 應用層協議設計

應用層是協議的最高層,它的設計對於不同的應用可以有所不同,但是也存在很多通用性的原則。應用層數據報的格式如圖6所示。

*類型域用來指定數據報的類型,一共可以表示256種類型,其中,0用來表示數據;其它256種用來表示命令。

*冗餘類型域是可選的,它的作用是檢查類型域在傳輸過程中是否存在錯誤。

*數據域是通信中傳輸的採集數據、系統參數等。

數據報可以分成兩類:命令型數據報(類型域不為0)和數據型數據報(類型域為0)。具體的命令可以根據具體的應用來設計,由具體程序負責解釋。

應用層也個有一定的差錯檢查能力:首先,它引入了冗餘類型字節;其次,數據域字節也可以採用CRC校驗等方法進行校驗。

3 協議的具體實現及應用

在設計基於RS-485的分布式測控系統時,在上位機呼叫下位機地址之後就可利用本協議的規範來設計具體的通信流程。

基於本協議的通信可以有兩種機制。一種是面向握手的,即每發出一幀,總是要等待確認幀,否則將認為是通信出錯。這是一種可靠的通信方式,適合傳輸系統命令和一些非常重要的系統參數。另一種是無握手的,即發送方假設接收方總是接收正確,從而無須等待確認幀就不停地發送,適合大量前端採集數據的發送。這種機制的優點是發送過程簡單、快速,缺點是不能保證傳輸過程的可靠性。

另外,接收方倘若在規定的時間內不能接收到數據,則可以發送復位幀,同時接收方的程序回到通信程序的開始,並清空緩衝區的數據;而發送方的收到復位幀後也回到通信程序的開始,並清空緩衝區中的數據。然後,雙方重新同步。

本協議已經成功地運用到一個分布式電力參數監測系統中,不僅簡化通信程序的設計,而且保證了通信的高效和可靠。該系統基於RS-485總線的網絡拓撲結構與圖2類似。下位機負責現場的電力量的採樣和存儲,上位機負責循環呼叫下位機,以了解現場情況是否正常,並且每幀一定時間收集下位機存儲的數據,並對數據進行分析管理。上位機收集下位機數據的程序流程如圖7所示。

因為傳輸數據數量比較大,所以通信過程採用了無握手方式,以簡化程序設計,提高通信速度。通信雙方在接收時使用了復位幀,以保證在失去同步後及時恢復。幀格式如圖8所示(沒使用冗餘字節)。

實驗證明,本協議具有編程簡單、通信可靠、易於擴展的優點,能夠有效地推廣到基於RS-485的分布式測控系統中。


相關焦點

  • RS-485串行數據通信協議
    概述 串行數據通信的協議從RS-232到千兆位乙太網,雖然每種協議都有特定的應用領域,但任何情況下我們都必須考慮成本和物理層(PHY)性能。
  • 波特率自適應的RS-485中繼器設計
    使用RS-485總線,一對雙絞線就能實現多站聯網,構成分布式系統,且設備簡單、價格低廉,能進行長距離通信,因而得到了廣泛的應用。由於在雙絞線上的電平損耗,RS-485標準通信的最大傳輸距離是1 200 m,因此更遠距離的應用中必須使用中繼器。網絡節點數與所選晶片驅動能力和接收器的輸入阻抗有關。
  • RS-485的多機通信方案探究
    由此出現了許多通信手段,如RS-232、RS-485、CAN總線、ZigBee等,綜合考慮性能和成本,RS-485通信無疑是性價比最高的通信方式。因此探究高效、實用的多機通信方案具有重大的意義。1 系統框圖 RS-485多機通信結構圖如圖1所示。
  • 深度剖析RS-485組網問題及總線測試
    RS-485總線優點眾所皆知,並且為保證通信的穩定性,都會使用隔離RS-485模塊進行信號隔離。但在RS-485實際組網時,或多或少會遇到不能通信、通信出錯、RS-485收發器損壞等情況,其中究竟為何?本文將深度剖析RS-485組網問題。
  • 串口、COM口、UART、TTL、USB、RS-232、RS-485、I2C、SPI、CAN、1...
    UART協議。)的縮寫,是一個外部總線標準,用於規範電腦與外部設備的連接和通訊,是應用在PC領域的接口技術,特點是傳輸速度快,支持熱插拔,可連接多個設備。 1、RS-485概述   RS-485和RS-232一樣,都是串行通信標準,現在的標準名稱是TIA/EIA-485-A,習慣稱為RS-485標準,RS-485彌補了RS-232通信距離短,速率低的缺點。
  • modbus通信協議,profibus、FF、CAN總線等幾種現場總線知識合集
    今天小編就給大家介紹一下modbus通信協議,profibus、FF、CAN總線等幾種現場總線。 Modbus的應用 應用於電子控制器上的一種通用語言。通過此協議,控制器相互之間、控制器經由網絡(例如乙太網)和其它設備之間可以通信。 當在同一Modbus網絡上通信時,此協議決定了每個控制器需要知道它們的設備地址,識別按地址發來的消息,決定要產生何種行動。 此協議支持傳統的RS-232、RS-422、RS-485和乙太網設備。
  • 關於RS232 RS422 RS485三種異步通信
    RS-422由RS-232發展而來,為改進RS-232通信距離短、速率低的缺點,RS-422定義了一種平衡通信接口,將傳輸速率提高到10Mbps,傳輸距離延長到4000英尺(速率低於100Kbps時),並允許在一條平衡總線上連接最多10個接收器。RS-422是一種單機發送、多機接收的單向、平衡傳輸規範,被命名為TIA/EIA-422-A標準。
  • 深度介紹rs485總線接口通訊協議定義標準以及管腳引腳
    本文引用地址:http://www.eepw.com.cn/article/201808/385592.htmRS485通信網絡接口是一種總線式的結構,上位機(以個人電腦為例)和下位機(以51系列單片機http://www.51hei.com為例)都掛在通信總線上,RS485物理層的通信協議由RS485標準和51單片機的多機通訊方式。
  • 【EE問答】如何選擇RS-232/RS-485/RS-422轉換器
    您的計算機或者您的設備也許只有rs-232口,如果要進行有效而可靠的rs-485或rs-422通信,就要為您的應用選擇正確的rs-232/rs- 485/rs-422轉換器。
  • RS-485的節點和距離的理論極限
    這種思想體現在最新的《一種帶中繼功能的串口轉換器》專利文獻中。對於BOSIKA而言,下一代RS-485總線的變化就是要不受最遠距離和節點數的限制,同時下一代RS-232/RS-485中繼轉換器485A2還得保持無需供電的特性。在這個思路中,BOSIKA的RS-232/RS-485中繼轉換器突破了傳統RS-485總線的節點數和距離的限制。
  • 一種高效的串行通信協議的制定及實現
    EIA-RS232是全雙工的通信模式,可保證短距離點對點的高速傳輸,EIA-RS485實現了較長距離下的多點互聯通信。CAN屬於現場總線的範疇,採用了多主機制,改善了在集散控制系統下的主從通信模式[2]。隨著應用需求的複雜化,對串行通信的性能、通信效率的提升需求越來越明顯。
  • Modbus總線的特點_Modbus總線的應用
    打開APP Modbus總線的特點_Modbus總線的應用 電氣自動化應用 發表於 2020-06-16 14:37:36   Modbus的起源和發展   Modbus是由Modicon(現為施耐德電氣公司的一個品牌)在1979年發明的,是全球第一個真正用於工業現場的總線協議。
  • 基於RS485總線的溫溼度監控系統設計
    監控系統以RS-485總線協議為基礎組成分布式網絡結構,採用PC機與單片機組成的多機系統完成丈量與控制任務。  2 系統硬體結構及工作原理  2.1網絡監控系統結構      2.2 主從式通訊網絡  監控系統中網絡通訊採用RS-485串行總線連接,串行通訊具有傳輸間隔長、連接簡單、使用靈活方便、數據傳輸可靠性高的特點,在產業監控、數據採集和實時控制系統中得到了廣泛應用。
  • 485通訊協議程序怎麼寫(51單片機的485通信程序案例)
    RS-485總線接口是一種常用的串口,具有網絡連接方便、抗幹擾性能好、傳輸距離遠等優點。RS-485收發器採用平衡發送和差分接收,因此具有抑制共模幹擾的能力,加上收發器具有高的靈敏度,能檢測到低達200mv的電壓,可靠通信的傳輸距離可達數千米。
  • 使用GMR隔離提高PROFIBUS RS-485的可靠性
    PROFIBUS是最常見的現場總線,當前有超過5000萬個節點在運行。該總線最初於1989年在德國開發出來並被註冊為DIN 19245,國際電工委員會(IEC)已在IEC 61158標準中承認了PROFIBUS及其各種互連格式。
  • 詳解RS-485上下拉電阻的選擇
    根據RS-485標準,當485總線差分電壓大於+200mV時,485收發器輸出高電平;當485總線差分電壓小於-200mV時,485收發器輸出低電平;當485總線上的電壓在-200mV~+200mV時,485收發器可能輸出高電平也可能輸出低電平,但一般總處於一種電平狀態,若485收發器的輸出低電平,這對於UART通信來說是一個起始位,此時通信會不正常
  • 深入探討隔離式RS-485收發器
    隔離是防止電流在兩個通信點之間流動、但允許數據和功率信號在其間傳輸的一種手段。隔離可防止高電壓對敏感電子元件造成損壞或對人造成傷害。另外它還可以通過大的地電位差消除通信鏈路中的接地迴路,以保持信號完整性。
  • 485總線結構解決方案及485通訊和TCP網絡通訊優缺點對比
    多年來我們的工程商已經習慣了應用485通信方式的網絡門禁解決方案,很多人走入了一個誤區,認為485組網門禁系統是一種最簡單、最穩定、最成熟的工業總線結構,其實不然,485總線是一種用於設備聯網的、經濟型的、傳統的工業總線方式。
  • 基於C8051F040單片機的CAN總線和RS-232串口通信設計
    為了實現對CAN總線和RS-232串口雙向通信需求,提出了一種基於C8051F040單片機的數據通信方案,並完成系統設計。分析了CAN總線和RS-232串口的通信特點,介紹了單片機硬體,並對軟體的設計思路與流程做了詳盡描述,完成功能檢測。實驗結果表明,該設計達到了要求。
  • PROFIBUS-DP現場總線詳解
    1.PROFIBUS的協議結構  PROFIBUS協議結構是根據ISO7498國際標準,以OSI作為參考模型的。PROFIBUS-DP定義了第1、2層和用戶接口。第3到7層未加描述。用戶接口規定了用戶及系統以及不同設備可調用的應用功能,並詳細說明了各種不同PROFIBUS-DP設備的設備行為。