日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
一種RS-485總線自定義通信協(xié)議及其應(yīng)用
[1] [2]  下一頁
一種RS-485總線自定義通信協(xié)議及其應(yīng)用
 更新時間:2008-8-16 21:10:09  點擊數(shù):12
【字體: 字體顏色

    摘要:RS-485總線是集散控制系統(tǒng)常用的組網(wǎng)方法,但具體的通信協(xié)議并沒有一個統(tǒng)一的標(biāo)準(zhǔn)。本文詳細討論一種基于RS-485總線通信協(xié)議的設(shè)計,具有可靠、編程實現(xiàn)簡單、易擴展等特點,能夠很容易地移植到其它系統(tǒng)中;結(jié)合一個電力參數(shù)實時監(jiān)測系統(tǒng)實例,介紹本協(xié)議的具體應(yīng)用。

    關(guān)鍵詞:RS-485 通信協(xié)議 集散控制系統(tǒng)

1 概述

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

在集散控制系統(tǒng)中,普遍采用RS-485總線作為底層通信接口。它具有穩(wěn)定可靠、編程簡單、組網(wǎng)快速、價格低廉的優(yōu)點,但在協(xié)議設(shè)計實現(xiàn)方面并沒有一個統(tǒng)一的規(guī)范,導(dǎo)致不同的控制系統(tǒng)常常采用不同的通信協(xié)議。因此,有必要結(jié)合我們的工作實踐,設(shè)計一種有通用性的高效可靠的協(xié)議,從而簡化基于RS-485的分布式測試系統(tǒng)通信部分的設(shè)計,既能夠保證通信的穩(wěn)定可靠,又能夠把精力集中到測控系統(tǒng)算法的設(shè)計上。

    通信協(xié)議的設(shè)計通常采用分層的機構(gòu),如ISO的OSI參考模型。這里也采用分層的結(jié)構(gòu)來描述我們自定義的基于RS-485總線的通信協(xié)議,如圖1所示。

圖1中,物理層是利用物理媒介實現(xiàn)物理連接的功能描述和執(zhí)行連接的規(guī)程,提供用于建立、保持和斷開物理連接的機械的、電氣的、功能的和過程的條件;數(shù)據(jù)鏈路層用于建立、維持和拆除鏈路連接,實現(xiàn)無差錯傳輸?shù)墓δ?應(yīng)用層針對不同的應(yīng)用,利用鏈路層提供的服務(wù),完成不同通信節(jié)點之間的通信。

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

2 協(xié)議的設(shè)計

2.1 物理層協(xié)議設(shè)計

RS-485通信網(wǎng)絡(luò)是一種總線式的結(jié)構(gòu),如圖2所示。上位機(以PC為例)和下位機(以基于MCS-51的智能儀器為例)都掛在通信總線上,物理層的通信協(xié)議由RS-485標(biāo)準(zhǔn)和MCS-51的多機通信方式共同方式。

2.1.1 EIA RS-485標(biāo)準(zhǔn)

RS-485是工業(yè)界使用最為廣泛的雙向、平衡傳輸標(biāo)準(zhǔn)接口,支持多點連接,允許創(chuàng)建多達32個節(jié)點的網(wǎng)絡(luò);具有傳輸距離遠(最大傳輸距離1200m),傳輸速率快(1200 m時為100kb/s),抗干擾能力強,布線簡單等優(yōu)點。

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

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

這種功能使得基于MCS-51的智能儀器能夠方便地通過RS-485接口芯片組成網(wǎng)絡(luò)。

2.1.3 物理層的功能

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

發(fā)送程序比較簡單,接收程序的流程如圖3所示(以MCS-51為例)。采用循環(huán)查詢RI標(biāo)志位的方式,可以在規(guī)定的時間內(nèi)(即在規(guī)定的循環(huán)次數(shù)內(nèi))實現(xiàn)一個字節(jié)的接收。規(guī)定時間的長短由循環(huán)次數(shù)決定。如果在規(guī)定的時間內(nèi)未收到,則視為通信失敗。

2.2 數(shù)據(jù)鏈路層協(xié)議設(shè)計

數(shù)據(jù)鏈路層的基本通信單位是帖,幀結(jié)構(gòu)如圖4所示。

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

*冗余幀長度域是可選的,它是幀長度域的重復(fù),可以用來檢查在傳輸過程中幀長度域是否存在傳輸錯誤。

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

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

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

2.3 應(yīng)用層協(xié)議設(shè)計

應(yīng)用層是協(xié)議的最高層,它的設(shè)計對于不同的應(yīng)用可以有所不同,但是也存在很多通用性的原則。應(yīng)用層數(shù)據(jù)報的格式如圖6所示。

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

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

*數(shù)據(jù)域是通信中傳輸?shù)牟杉瘮?shù)據(jù)、系統(tǒng)參數(shù)等。

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

應(yīng)用層也個有一定的差錯檢查能力:首先,它引入了冗余類型字節(jié);其次,數(shù)據(jù)域字節(jié)也可以采用CRC校驗等方法進行校驗。

3 協(xié)議的具體實現(xiàn)及應(yīng)用

在設(shè)計基于RS-485的分布式測控系統(tǒng)時,在上位機呼叫下位機地址之后就可利用本協(xié)議的規(guī)范來設(shè)計具體的通信流程。

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

另外,接收方倘若在規(guī)定的時間內(nèi)不能接收到數(shù)據(jù),則可以發(fā)送復(fù)位幀,同時接收方的程序回到通信程序的開始,并清空緩沖區(qū)的數(shù)據(jù);而發(fā)送方的收到復(fù)位幀后也回到通信程序的開始,并清空緩沖區(qū)中的數(shù)據(jù)。然后,雙方重新同步。

    本協(xié)議已經(jīng)成功地運用到一個分布式電力參數(shù)監(jiān)測系統(tǒng)中,不僅簡化通信程序的設(shè)計,而且保證了通信的高效和可靠。該系統(tǒng)基于RS-485總線的網(wǎng)絡(luò)拓撲結(jié)構(gòu)與圖2類似。下位機負責(zé)現(xiàn)場的電力量的采樣和存儲,上位機負責(zé)循環(huán)呼叫下位機,以了解現(xiàn)場情況是否正常,并且每幀一定時間收集下位機存儲的數(shù)據(jù),并對數(shù)據(jù)進行分析管理。上位機收集下位機數(shù)據(jù)的程序流程如圖7所示。

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

實驗證明,本協(xié)議具有編程簡單、通信可靠、易于擴展的優(yōu)點,能夠有效地推廣到基于RS-485的分布式測控系統(tǒng)中。

  • 上一篇: 用插值調(diào)整法設(shè)計單片機串行口波特率
  • 下一篇: 基于TINI的一線制網(wǎng)絡(luò)互連技術(shù)
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1