一種RS-485總線自定義通信協議及其應用
發布時間:2008/5/27 0:00:00 訪問次數:941
     劉澤藝 晏 凱 陳云洽 來源:《單片機與嵌入式系統應用》
     摘要:rs-485總線是集散控制系統常用的組網方法,但具體的通信協議并沒有一個統一的標準。本文詳細討論一種基于rs-485總線通信協議的設計,具有可靠、編程實現簡單、易擴展等特點,能夠很容易地移植到其它系統中;結合一個電力參數實時監測系統實例,介紹本協議的具體應用。
    
    
     關鍵詞:rs-485
     通信協議 集散控制系統
     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子程序(功能為接收一個字節)。
 &
     劉澤藝 晏 凱 陳云洽 來源:《單片機與嵌入式系統應用》
     摘要:rs-485總線是集散控制系統常用的組網方法,但具體的通信協議并沒有一個統一的標準。本文詳細討論一種基于rs-485總線通信協議的設計,具有可靠、編程實現簡單、易擴展等特點,能夠很容易地移植到其它系統中;結合一個電力參數實時監測系統實例,介紹本協議的具體應用。
    
    
     關鍵詞:rs-485
     通信協議 集散控制系統
     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子程序(功能為接收一個字節)。
 &
上一篇:μC/OS的應用和擴展