久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于RS-485總線多CPU控制系統簡化網絡模型及其通訊協議

基于RS-485總線多CPU控制系統簡化網絡模型及其通訊協議

作者: 時間:2012-12-11 來源:網絡 收藏

3 系統通信協議

3.1 數據鏈路層協議

關于數據幀的定義前面已經敘述,在這不予解釋。在多CPU的控制系統中子控制器的地址可以通過在硬件中設置一個撥碼開關,通過設置撥碼開關的值來設置子控制器的物理地址。其網絡地址也就是撥碼開關的“0”和“1”組合。在設置過程中其地址分配為:00H為主控制器,01H~FFH為子控制器。主控制器依次查詢子控制器的地址,當與某個子控制器對話的時候,其他子控制器均不作應答。

3.2 運輸層通信協議

TCP/IP運輸層有兩個主要的協議:TCP(傳輸控制協議)和UDP(用戶數據報協議)。TCP協議是面向連接的協議即發送方每發出一幀,接受方總要等待確認幀,否則認為出錯,因而該方式是一種可靠的通信方式。而UDP協議是無連接的協議,其發送方總是認為接收方接收正確,從而無需等待。這種協議雖然發送過程簡單,但其可靠性不高。對于多CPU的控制系統來說,其傳輸的命令和參數都是非常重要的,所以選擇類似于TCP協議方式,建立連接和數據幀傳送過程如圖3和4所示。

由圖3所示可知,當主控制器查詢到某個子控制器時,如果子控制器有指令數據幀要發送給主控制器則子控制器發送A_S_HAVE,主控制器收到后發出應答控制字A_M_READY;如果子控制器被主控制器查詢到沒有指令數據幀要發送給主控制器,則發送A_S_OVER,告訴主控制器無數據幀發送,主控制器退出此次連接繼續查詢下一個子控制器。

由圖4所示可知,通信連接建立以后主控制器和子控制器之間可以進行指令數據幀傳輸。當傳輸完一個數據幀后,接收方需要應答相應的連接控制字(如:“已接收一幀”即A_S_RECEIVED/A_M_RECEIVED),只有這樣才能繼續發送下一幀指令數據幀,否則認為發送不成功。

3.3 應用層通信協議

應用層是四層簡化網絡模型中最頂層,其主要關心具體要發送什么數據和接收到數據后執行后續的操作等,而數據傳輸由應用層以下的層完成。應用層主要包含以下幾點:

(1)數據格式:在多CPU控制系統中采用兩種格式的數據。一是本地使用的數據,為了編程方便和直觀,采用ASCⅡ碼來表示。二是網絡通信數據,為了使通信程序高效、簡潔,采用壓縮BCD碼。通過這兩種格式數據大大提高了網絡傳輸效率。

(2)消息:在應用層中采用WIN32操作平臺的“消息”概念來描述控制器之間的數據傳輸,其內容與指令數據幀相同。由于本地對數據處理可能很快,而數據傳輸要等待網絡連接建立,這樣數據本地處理和網絡傳輸就不能夠同步進行,所以就必須采用緩沖機制來協調。仿照WIN32操作平臺中對消息的處理辦法,用循環隊列數據結構來緩沖消息(如圖5所示)。消息全部采用統一長度,一般采用4個字節,隊列中每個元素為一個數組(長度為4個字節),每個隊列中共有5個元素,采用先進先出(FIFO)原則,并且循環使用。生成或收到的消息時先放入消息數組中,并作為一個元素放入REAL指針所指尾部入緩沖隊列(REAL加1),進行通信時從HEAD指針所指首部取出最先進入隊列數據幀(HEAD加1)。同時系統對當前的消息中第一個字節(控制指令)內容進行判斷,從而進入相應的消息處理程序。

4 通信軟件的抗干擾措施

4.1 在協議中增加差錯控制措施

當主控制器發送呼叫幀后,如果在規定的時間內沒有收到子控制器的應答幀或沒有得到正確應答幀,則認為通信失敗。只有等到下次再與該子控制器建立連接時,重新完成上次未交換的數據幀。同時采用累加校驗字段來判斷數據是否正確,通過以上措施可以有效的防止通信錯誤發生。

4.2 在軟件設計中適當增加延時

當主控制器或子控制器有一種狀態轉到另一種狀態時,插入一定延時(一般為幾十毫秒),其可以大大提高總線穩定性,從而可提高數據傳輸可靠性。

5 結束語

由RS-485網絡的多CPU控制系統的特點,并參照ISO七層網絡模型和TCP/IP協議設計思想,提出了適用于該系統的四層簡化網絡模型、各層的通信協議和數據幀的格式。在實際應用中,根據四層簡化網絡模型及其通信協議編制的通信軟件在實際應用中效果良好、通信速度和可靠性得到大大的提高。


上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉