PROFI BUS-DP/MODBUS的網(wǎng)關結(jié)構(gòu)設計
中央處理器模塊除了實現(xiàn)對PROFIBUS-DP從站模塊的配置和管理外,還要完成MODBUS協(xié)議的實現(xiàn)以及兩種協(xié)議數(shù)據(jù)交換協(xié)議棧的實現(xiàn)。為了提高系統(tǒng)的抗干擾能力,和外界進行通信的部分需要和系統(tǒng)在物理接口上進行電氣隔離,此處的3個通信接口都需要進行隔離。根據(jù)通信速度要求的不同,選擇磁耦芯片模塊完成PROFIBUS-DP通信的隔離兼物理層電平轉(zhuǎn)換功能;用雙通道磁耦隔離芯片來完成另外兩路串行口通信的隔離。這兩款芯片都采用了最新的基于芯片尺寸的變壓器隔離技術的磁耦。和傳統(tǒng)的光耦比較,其轉(zhuǎn)換速度、瞬態(tài)共模抑制能力、功耗、尺寸及成本等方面均有很明顯的優(yōu)勢。本文引用地址:http://www.ex-cimer.com/article/181148.htm
3 系統(tǒng)的軟件設計
3.1 軟件總體結(jié)構(gòu)設計
一般情況下,現(xiàn)場總線協(xié)議之間的轉(zhuǎn)換器可分為物理層的中繼器、MAC層的網(wǎng)橋及應用層的網(wǎng)關等幾種形式。中繼器方式需要更改底層硬件,網(wǎng)橋方式對應MAC層的協(xié)議轉(zhuǎn)換復雜,而網(wǎng)關的形式則使得原有網(wǎng)段的協(xié)議不需做任何改變,實現(xiàn)起來最為簡單。
本系統(tǒng)采用了網(wǎng)關形式,軟件總體流程如圖3所示,主要實現(xiàn)了PROFIBUS-DP協(xié)議芯片VPC3+C的驅(qū)動程序和MODBUS協(xié)議,同時在應用層實現(xiàn)了PROFIBUS-DP總線和MODBUS總線協(xié)議數(shù)據(jù)幀的轉(zhuǎn)換。MODB-US協(xié)議只是定義了消息域的格局和內(nèi)容的公共格式,具體的物理層及應用層可以由用戶根據(jù)需要定義。本網(wǎng)關MODBUS通信部分物理層采用標準的RS485總線,MAC協(xié)議是由軟件實現(xiàn)的。
CPU通過驅(qū)動VPC3+C來實現(xiàn)對PROFIBUS熔一DP通信過程的控制,包括通信接口檢查、正常和發(fā)生故障情況下診斷數(shù)據(jù)的發(fā)送及數(shù)據(jù)交換等過程;通過MODBUS協(xié)議實現(xiàn)對下掛的輸入/輸出從站模塊的查詢操作;通過對輸入/輸出模塊的應答幀(或通信超時)進行分析來判斷模塊的狀態(tài)以及模塊的通道狀態(tài);根據(jù)模塊狀態(tài)信息填充PROFIBUS-DP的診斷域的數(shù)據(jù),并以此為依據(jù)來對網(wǎng)關狀態(tài)(正常通信、報告錯誤或警告信息)進行控制。
3.2 網(wǎng)關協(xié)議棧設計
網(wǎng)關協(xié)議棧為MODBUS輸入/輸出模塊和PROFI-BUS-DP通信的橋梁。協(xié)議棧采用分層結(jié)構(gòu):PROFIBUS-DP通信層、協(xié)議映射層和MODDBUs I/O通信層。協(xié)議棧結(jié)構(gòu)及報文處理流程如圖4所示。
(1)PROFIBUS-DP通信層
負責對VPC3+C通信狀態(tài)的監(jiān)控管理,按照一定的規(guī)則將PROFIBUS-DP總線通信收到的數(shù)據(jù)映射到CPU內(nèi)部的存儲器,供I/O通信層調(diào)用,完成輸出數(shù)據(jù)的更新;把I/O通信層的輸入數(shù)據(jù)按照一定的規(guī)則映射到CPU內(nèi)部的寄存器,在適當?shù)臅r候?qū)懭隫PC3+C的輸入數(shù)據(jù)緩沖區(qū),以完成輸入數(shù)據(jù)的更新。
評論