《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 工業通信用網關設計及其關鍵技術研究
工業通信用網關設計及其關鍵技術研究
夏繼強, 梁超眾, 邢春香
北京航空航天大學 機械工程及自動化學院, 北京100191
摘要: 提出了工業通信用網關系統的一般設計方法,并以PROFIBUS-DP智能網關設計為例對網關設計的關鍵技術——數據映射關系、實時性、可靠性及故障處理進行了研究。對其他類型的工業網關的設計具有指導意義。
中圖分類號: TP393
文獻標識碼: A
The design of PROFIBUS-DP intelligent gateway
XIA Ji Qiang, LIANG Chao Zhong, XING Chun Xiang
Mechanical Engineering and Automation School, Beihang University, Beijing 100191, China
Abstract: Proposed a general method of industrial communication system design adopting gateway. Details of key issues, namely data-mapping management, real-time and reliability performance as well as troubleshooting was described, with PROFIBUS-DP/MODBUS gateway as an example. It provides a reference model for other gateway′s design.
Key words : FCS; gateway; real-time performance; reliability performance; data mapping

    采用現場總線技術的工業測控系統具有結構簡單、易于維護、開放性、分散性和可互操作性等優點。但因為現階段多種現場總線協議的共存,導致其上述優點不能充分體現出來。針對目前工業測控領域多種現場總線共存的客觀事實,探討如何將兩種或多種現場總線系統集成具有重要意義。
    在上述情況下,網關無疑是系統集成解決方案很好的選擇。結合國家863課題,本文以中國四聯集團與北京航空航天大學共同研發PROFIBUS-DP智能網關為例對工業通信網絡用網關的設計進行了闡述并對其實現的關鍵技術進行了詳細分析。
1 網關系統解決方案設計
    現場總線用網關一般要擔負兩種或多種總線之間的協議數據轉換的責任,屬于系統連接的關鍵部分。因此系統大多采用圖1所示的的結構來實現。

    應用本網關所組成的系統總體結構如圖2所示。智能網關在系統中無縫連接PROFIBUS-DP(以下簡稱”DP”)現場總線系統與MODBUS總線系統,實現同一系統內兩種總線設備的共存。

    本系統中,微控制器為中國四聯集團研發的控制器。本智能網關在設計上為其預留了一個用于與控制器通信的接口。底層的I/O模塊實現工業現場信號的檢測或控制執行設備的運行。
2 網關結構設計
    現階段的網關設計主要有協議芯片、硬核、軟核三種解決方案:
    (1) 協議芯片解決方案:采用專門芯片來實現相關協議,這種方法開發周期短,實現起來相對簡單,比較適合于快速開發,但成本稍高。
    (2) 硬核解決方案:主要是對ASIC如CPLD、FPGA等進行硬件編程來實現相關協議的IP核。此方案對開發人員的硬件及軟件知識要求最高,協議稍復雜,實現難度就很大。但是網關性能可以與采用協議芯片實現方式相媲美。
    (3) 軟核解決方案:用軟件實現協議數據鏈路層協議處理功能,結合相應的外圍硬件電路實現協議功能。此方法成本低,但需要開發人員充分了解相關協議及協議運作機制。對于復雜的協議,編程工作量巨大,且可靠性不易保證,受單片機處理速度影響,通常網關的性能不如其他兩種方法。
    在一般工業控制用網關設計中,都有較短的開發周期及很高的可靠性要求。因此,對于復雜的協議如DP、CAN、FF總線等一般選用協議芯片實現;對于較簡單的協議如MODBUS等一般用軟核實現。本網關采用了DP協議芯片與MODBUS軟核相結合的實現方式。其硬件結構如圖3所示。

    按照功能劃分,網關可以分為電源管理模塊、中央管理模塊、DP從站模塊和RS485通信模塊。
    本網關設計要求串行口速率能夠達到921.6 kb/s。基于此要求,硬件平臺選用PHILIPS公司的ARM7-TDMI核微處理器。
    電源管理模塊負責整套系統的電源供給,系統的穩定運行與電源模塊的穩定性能關系密切,此處設計的電源模塊兼有熱插拔和電壓轉換功能;DP從站模塊的核心功能由協議芯片(VPC3+C)實現;中央管理模塊除了實現對DP從站模塊的配置和管理,還要完成MODBUS協議的實現以及兩種協議數據交換協議棧的實現。
3 網關系統的實現
    網關系統在軟件設計方面與網關連接總線系統所采用的協議有較大差別,但一般協議在定義時為了實現靈活性好、易于實現和維護等優點都采用分層結構。網關軟件設計時也可以采用分層結構,最后在應用層實現協議數據的相互轉換。本網關協議棧的實現采用的就是這種分層的思想。
  網關協議棧是連接MODBUS輸入/輸出模塊與DP通信的橋梁。協議棧分為DP通信層、協議數據映射層和MODBUS通信層三層。網關協議棧分層結構及各層功能如圖4所示。

3.1 軟件總體結構設計
    本網關的軟件總體流程如圖5所示。CPU通過驅動VPC3+C來實現對DP通信過程的控制,包括通信接口檢查、正常和發生故障情況下的診斷數據的發送及數據交換等過程;通過MODBUS協議實現對下掛的輸入/輸出從站模塊的查詢操作;通過對模塊應答幀(或通信超時)進行分析來判斷模塊的狀態以及模塊的通道狀態,根據模塊狀態信息填充DP的診斷域的數據,并以此為依據實現對網關通信狀態(正常通信、報告故障或警告信息)的控制。

3.2 PROFIBUS-DP總線驅動
    此網關DP通信部分采用協議芯片VPC3+C,其內部含有4 KB RAM,用戶可根據需要對其進行設置;具有兩種微處理器接口:數據/地址總線復用或單獨操作。因為ARM核對外部RAM操作的速度較快,時序不能滿足VPC3+C的操作時序,因此這里用ARM的GPIO口來模擬VPC3+C的操作時序。本文模擬的是其在Intel模式下內部寄存器的讀寫時序。
    此驅動主要提供了以下功能:nxp_vpc3_read、nxp_vpc3_write  、nxp_vpc3_init、nxp_vpc3_reset、nxp_vpc3_isr,這些函數分別向上層應用提供了讀寫VPC3+C寄存器、對其初始化、復位操作及中斷的處理功能。其中對寄存器的讀寫操作是關鍵部分,函數原型如下:
    unsigned char nxp_vpc3_read(unsigned int addr);    
    void nxp_vpc3_write(unsigned int addr,unsigned char data);
其中addr為要讀寫的寄存器地址,data為要寫入的數據。
3.3 MODBUS協議的實現
  為提高信號傳輸的距離及抗干擾能力,此處MODBUS物理層采用標準RS485通信。為了保證MODBUS協議軟核的健壯性,設計了其有限狀態機[1]模型,如圖6所示,并根據此有限狀態機模型運用狀態路由器進行軟件實現。

3.4 協議數據的映射處理
    此部分處理效率的高低直接關系到網關系統的性能,因此設計過程中應該謹慎設計。
  此部分完成協議數據映射層的實現,具體的數據映射關系管理見4.1節闡述。
4 網關關鍵技術研究
    對于工業用網關應用來說,保證網關正常工作的首要條件是其所連接的系統數據映射關系的正確性,其次可靠性和故障處理能力是網關可長期穩定工作的重要影響因素,對網關實時性的要求則因系統的不同而各異。
4.1 數據映射關系管理
  如何管理網關連接的兩種或多種系統中的設備在通信數據中的映射關系,即通常意義上的尋址,是很重要的步驟。而這一部分針對網關所連接的不同,總線設備也有很大區別。
  本網關對所有可能下掛的模塊的輸入輸出數據格式進行分析,然后分別定義了各個模塊對應的通信接口配置字,并在GSD文件以下例格式進行描述:
    Module="AI31xx——4 channels" 0xd3; 輸入模塊AI31xx占4個字長
    EndModule
  這樣在對其進行硬件組態時,只需要將對應的模塊放到對應的地址槽中即可。
  在網關協議棧中同樣保留上述表用來查詢下掛模塊類型對應的控制字和硬件組態數據進行比較。并以硬件組態數據為標準填充數據映射表,單個模塊數據映射表數據結構如下:
typedef struct{
  unsigned char cfg_data;       /*記錄模塊的參數配置字*/
  MODULE_STATE this_state;         /*當前模塊的狀態*/
  unsigned char start_position;             /*記錄模塊數據在
              PROFIBUS-DP中交換數據中的起始地址*/
  unsigned char data_length;            /*記錄模塊數據在
                PROFIBUS-DP中交換數據中所占長度*/
  unsigned char data_direction;        /*記錄模塊數據在
             PROFIBUS-DP中是輸入數據還是輸出數據*/
    } IO_CONFIG_PRM。
其中MODULE_STATE為枚舉數據類型,代表MODBUS從站當前狀態,數據結構如下:
typedef enum module_state{
        TYPE_OK,
    NOT_EXIST,
        TYPE_DISAGREE
}MODULE_STATE;
4.2 保證實時性措施
    網關在對兩種協議的數據進行映射的過程中采用了一次性內存拷貝技術和單緩沖區技術來盡快完成數據的處理且保證是最新數據,以此來保證網關通信的實時性能。
    一次性內存拷貝技術是指網關從協議芯片內部讀取到DP的輸出數據后,直接將此數據填充到MODBUS輸出幀對應的位置;從MODBUS輸入模塊得到的數據直接填入到DP協議芯片的輸入緩沖區的對應位置。用這種方式來減少內存拷貝過程中所耗費的時間。
    網關單緩沖區[2,3]技術也是為了保證數據為最新數據而采用的。所謂單緩沖區即不管兩種協議通信中待轉換的數據而只保留當前最新的一幀。此網關連接的兩種設備的正常數據通信都是周期性的,且周期一般固定不變。如果MODBUS數據交換的周期小于DP的數據交換周期,網關的緩存中只有一幀有效數據;如果MODBUS數據交換周期大于DP的數據交換周期,且采用鏈表結構保存DP的幀數據,則不管預先緩沖區有多大,肯定導致緩沖區溢出的問題,從而使DP的輸出數據不能及時更新到MODBUS從站的通道上進而影響系統的實時性。
    高效地使用指針可以大大提高網絡協議棧性能。本網關在MODBUS協議實現過程的信息處理中就采用了函數指針實現指針路由功能,避免了因過多判斷對系統性能的影響,這樣做不僅提高了系統處理信息的能力,也使系統有很好的擴展性能。上述一次性內存拷貝技術也是通過指針來實現的。
4.3 保證可靠性措施
  在硬件方面,除了保證網關性能所必須的參數外,還應在成本和可靠性方面做出一定的折中。本系統中為了提高系統的抗干擾能力,與外界通信的部分和系統在物理接口上都進行b 電氣隔離,此處的3個通信接口都需要進行隔離。根據通信性能要求的不同,選擇磁耦隔離+驅動芯片完成DP通信的隔離兼物理層電平轉換功能;用雙通道磁耦隔離芯片來完成另外兩路串行口通信的隔離。這兩款芯片都采用了最新的基于芯片尺寸的變壓器隔離技術的磁耦,與傳統的光耦比較,其轉換速度、瞬態共模抑制能力、功耗、尺寸及成本等方面均有很明顯的優勢。為了滿足工業現場即插即用的要求,設計了電源轉換及保護電路來實現網關供電系統的穩定,保證系統的可靠運行,并支持帶電作業(熱插拔功能)。
    系統除了在上電之后對下掛的MODBUS模塊進行類型查詢并與DP主站組態模塊類型進行比較外,在進入正常數據交換之后,也會實時地對模塊的狀態進行分析以判斷是否有故障發生。故障標志是在網關和MODBUS從站進行通信過程中根據從站的回應幀來判斷的。
    網關系統中如何保證多種總線通信的互不干擾是很重要的環節。此網關系統中MODBUS協議是由軟件來實現的,考慮到需要定時器等保證通信的可靠性,為了防止兩種協議通信的相互影響,對DP輸出數據的讀取采用查詢的方式而非中斷方式進行訪問。這樣在DP的數據到來后不會打斷正在進行的MODBUS通信過程,尤其是在DP通信速率較高的情況下,這種設計的可靠性更加明顯。如果采用中斷的方式,當DP通信速率超過一定值后,其勢必影響網關與MODBUS從站之間的通信,嚴重時會導致MODBUS幀傳輸的不完整性,從而導致網關對MODBUS模塊通信狀態的誤判,進而影響系統的可靠性。
4.4 模塊故障信息的處理
  如果MODBUS模塊出現故障,如何將對應的故障上傳到對智能網關進行組態的DP主站是很重要的一環,處理得當可以使系統的運行和維護變得簡便靈活。
  西門子的DP從站設備只要有一個模塊出現錯誤,則模塊從屬的從站會退出正常的數據交換狀態,這樣導致此從站相連的其他正常模塊也不能進行數據交換,進而對于整個設備的運行產生影響。這種處理方式認為所有的模塊都屬于關鍵模塊,只要有一個出現問題其余都會“被迫下線”,但這種處理方式不太靈活。本網關處理方式為:在查詢到模塊類型之后,實際模塊類型和組態類型一致則網關將對應模塊映射為標準的DP模塊;否則,將判斷故障,并將故障診斷信息傳遞給DP主站,并不斷查詢錯誤模塊的類型,直到相應故障解除后將其映射成標準的DP模塊。在此過程中正常模塊的通信不受影響。相比來看,本網關在處理故障的策略則更加靈活。本網關可以判斷的故障診斷信息包括:模塊類型錯誤、模塊超時故障、模塊不存在故障以及模擬量輸入模塊的通道斷線標志。
  本網關在其對應的GSD文件中的用戶自定義診斷數據部分定義了上述4種故障對應的代碼。故障代碼格式如下:
    Unit_Diag_Bit(x)=“插槽x中模塊不存在”
    Unit_Diag_Bit(8+x)=“插槽x中模塊類型錯誤”
    Unit_Diag_Bit(16+x)=“插槽x中模塊超時”
    Unit_Diag_Bit(24+x+8×y)=“插槽x中模塊通道y斷線”
  在正常運行中,在標準的診斷信息后只需要使用3+x個字節即可描述x個模塊的診斷信息。在系統運行過程中該診斷信息由中央管理模塊管理,如果存在故障,則填入VPC3+C的用戶診斷緩沖區,然后置位診斷狀態位,這樣主站會在檢測到此診斷位的下一個訪問周期發送請求從站診斷報文幀,待取回診斷幀后繼續進行正常的數據交換請求。上述過程不斷重復,直至網關下掛的模塊故障消除為止。在此過程中不存在上述故障的模塊則仍然映射成標準的DP從站模塊,正常的數據更新不受影響。該網關采用這種方式來保證狀態正常的模塊不停止工作,提高系統的靈活性。
5 網關性能測試
    網關在設計好之后,必須對其進行性能測試以判斷其是否達到設計指標,并為用戶進行系統設計提供依據。
  本網關的性能和下掛模塊以及DP總線波特率設定有直接的關系。經過測試和DP通信速率可以到達DP協議規定的最高速度12 Mb/s;與MODBUS每個模塊完成一次通信的最長時間為10.7 ms(波特率為115.2  kb/s時);一個掃描周期內故障判斷等所用時間為400 ?滋s。用戶在設計過程中可以根據實際系統需求進行具體分析和配置。
  本文對工業通信用網關的設計進行了闡述,以PROFIBUS-DP智能網關的設計為例對此類網關實現的關鍵技術進行了分析。針對本網關,硬件方面,采用電源管理模塊實現網關的熱插拔功能,采用專用芯片解析DP協議,采用磁耦隔離代替傳統的光耦隔離,提高了系統的性能和可靠性。軟件方面,采用單緩沖區設計、一次性內存拷貝技術以及合理的中斷應用來保證系統的實時性和可靠性。對網關的數據映射處理和故障處理進行了詳細的分析,并給出了其性能參數。本設計為其他工業通信用網關的設計提供了參考依據。
參考文獻
[1]  楊瑞霞.運用狀態機提高嵌入式軟件效率[J].單片機與嵌入式系統應用,2009(5):69-71.
[2]  LEE K C, LEE S, LEE H H. Implementation and PID tuning of network-based control systems via profibus polling network[J] .Computer Standards and Interfaces, 2004,26 (3) :22-240.
[3]  LEE S, HA K N. NDIS-based virtual polling algorithm  for IEEE 802.11b for guaranteeing the real-time requirements. Computer Standards & Interfaces,2007,29:316-324.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美日韩精品一区二区三区| 黑人一区二区三区四区五区| 欧美亚洲在线播放| 在线一区亚洲| av成人毛片| 一本色道**综合亚洲精品蜜桃冫 | 亚洲图片欧美一区| 99这里只有久久精品视频| 亚洲精品亚洲人成人网| 亚洲三级毛片| 日韩午夜在线播放| 99re热这里只有精品视频 | 最新成人av在线| 亚洲国产精品久久久久秋霞影院| 久久爱www.| 亚洲黄色一区二区三区| 91久久亚洲| 一本久道久久久| 亚洲一二三级电影| 午夜精品国产| 久久精品91| 麻豆精品视频在线观看视频| 欧美成人tv| 欧美伦理在线观看| 国产精品白丝jk黑袜喷水| 国产精品福利av| 国产精品一区二区久久| 国产一区二区三区四区三区四| 韩日在线一区| 亚洲国产片色| 99综合精品| 亚欧美中日韩视频| 亚洲韩国日本中文字幕| 日韩午夜精品| 亚洲欧美一区二区三区久久| 久久国产综合精品| 麻豆国产精品va在线观看不卡| 欧美精品网站| 国产精品人成在线观看免费 | 一区二区国产精品| 午夜在线成人av| 亚洲国内精品| 亚洲专区一二三| 久久久噜噜噜久久中文字幕色伊伊 | 久久久久免费视频| 欧美激情一区二区三区不卡| 国产精品成人一区二区网站软件 | 一区二区三区精品视频| 欧美在线视频一区| 欧美顶级大胆免费视频| 国产精品极品美女粉嫩高清在线| 国产亚洲高清视频| 最新国产拍偷乱拍精品| 亚洲影视综合| 亚洲区一区二区三区| 亚洲综合色网站| 蜜桃视频一区| 国产精品理论片| 亚洲第一天堂无码专区| 亚洲午夜av在线| 亚洲国产一区在线| 欧美一级视频免费在线观看| 欧美va天堂va视频va在线| 国产精品人人爽人人做我的可爱| 亚洲国产成人不卡| 亚洲欧美日韩在线播放| 日韩视频一区二区三区在线播放| 欧美在线观看一区二区| 欧美日韩91| 韩日欧美一区二区| 亚洲永久免费av| 日韩视频精品在线| 久久久久久午夜| 国产精品美女www爽爽爽视频| 亚洲高清网站| 欧美伊人精品成人久久综合97 | 欧美电影在线观看完整版| 国产欧美一区二区色老头| 亚洲美女电影在线| 亚洲高清不卡在线观看| 欧美一区二区日韩一区二区| 欧美日韩大片| 在线观看欧美一区| 香蕉久久夜色精品国产| 亚洲午夜成aⅴ人片| 你懂的亚洲视频| 国产一区观看| 亚洲一区二区精品| 在线一区观看| 欧美激情小视频| 一区二区三区在线视频观看| 午夜视频在线观看一区二区三区| 亚洲视屏在线播放| 欧美经典一区二区三区| 激情五月综合色婷婷一区二区| 亚洲欧美综合v| 亚洲欧美另类综合偷拍| 欧美日本韩国一区二区三区| 1024成人| 亚洲高清一区二区三区| 久久精品免费电影| 国产婷婷精品| 亚洲图片在线观看| 亚洲在线一区二区| 欧美午夜电影一区| 日韩视频久久| 一本色道久久精品| 欧美伦理a级免费电影| 亚洲人成在线观看网站高清| 亚洲国产99精品国自产| 久久精品一本久久99精品| 国产麻豆精品theporn| 亚洲欧美日韩综合| 久久国产一区二区| 国产一区二区视频在线观看| 久久er精品视频| 久久久综合视频| 激情综合色综合久久| 亚洲国产日韩欧美综合久久| 久久综合给合| 在线观看视频一区二区| 亚洲激情视频网站| 女人天堂亚洲aⅴ在线观看| 在线不卡中文字幕播放| 91久久在线| 欧美精品粉嫩高潮一区二区 | 亚洲欧美视频在线| 国产精品影院在线观看| 午夜精品一区二区三区在线播放| 欧美在线观看网站| 国产主播一区二区三区| 久久精品亚洲一区二区| 你懂的视频欧美| 亚洲狼人精品一区二区三区| 中日韩高清电影网| 国产精品久久久久久久9999| 亚洲自拍偷拍福利| 久久精品视频亚洲| 伊人久久大香线蕉av超碰演员| 亚洲人成免费| 欧美日韩国产限制| 亚洲一区美女视频在线观看免费| 欧美在线3区| 在线播放中文字幕一区| 99精品国产在热久久| 欧美午夜在线视频| 欧美一区二区三区久久精品茉莉花 | 亚洲精品在线免费观看视频| 欧美日韩一区在线观看| 午夜精品久久久久久久久久久久 | 久久在线精品| 91久久亚洲| 亚洲欧美色婷婷| 国产永久精品大片wwwapp| 最新亚洲一区| 欧美午夜不卡在线观看免费 | 国产深夜精品| 亚洲人成毛片在线播放| 欧美亚洲第一页| 欧美有码在线视频| 欧美激情中文不卡| 亚洲一级二级在线| 美女视频一区免费观看| aⅴ色国产欧美| 久久久噜噜噜久噜久久| 亚洲精品久久久久久久久| 香蕉成人伊视频在线观看 | 宅男精品视频| 国产在线观看精品一区二区三区| 亚洲麻豆视频| 国产九色精品成人porny| 亚洲国产精品久久久| 欧美系列一区| 亚洲狠狠婷婷| 国产精品日韩二区| 91久久久亚洲精品| 国产欧美日韩激情| 亚洲精品中文在线| 国产欧美精品一区| 亚洲美女精品久久| 国产午夜精品美女视频明星a级| 99视频有精品| 韩国女主播一区| 亚洲无线一线二线三线区别av| 影音先锋日韩精品| 亚洲欧美在线免费观看| 亚洲激情影视| 久久久天天操| 亚洲一区二区三区四区五区黄| 老司机成人网| 亚洲欧美日韩一区二区在线| 欧美日本亚洲| 亚洲国产精品久久久久婷婷884 | 久久精品一区蜜桃臀影院| 国产精品久久九九| aⅴ色国产欧美| 亚洲第一黄色| 久久久精品日韩欧美| 亚洲调教视频在线观看| 欧美欧美在线|