《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 工業通信用網關設計及其關鍵技術研究
工業通信用網關設計及其關鍵技術研究
夏繼強, 梁超眾, 邢春香
北京航空航天大學 機械工程及自動化學院, 北京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網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产高清一区二区三区 | 天天做天天爱天天操 | 午夜想想爱午夜剧场 | 毛片网站有哪些 | 草草视频在线播放 | 日韩高清中文字幕 | 天天射美女 | 天天插天天爽 | 国产精品1024在线永久免费 | 日本动态120秒免费 日本二区视频 | 丁香六月在线 | 有色hd| 九九免费观看全部免费视频 | 你懂的手机在线视频 | 五月激情六月丁香 | 狠狠色丁香九九婷婷综合五月 | 8000av在线 | 污视频免费观看网站 | 欧美va免费大片 | 国产一级淫 | 欧美专区在线 | 国产成人乱码一区二区三区在线 | 国产精品日韩精品 | 国产黄视频在线观看 | 羞羞视频免费观看 | 欧美日韩在线成人看片a | 亚洲欧洲免费 | 荡女淫春未删减在线观看 | 人人成人免费公开视频 | 在线观看黄色x视频 | 日韩欧美中文字幕在线观看 | 精品在线免费观看视频 | 美女黄色在线 | 久久久99精品免费观看精品 | 久草手机在线视频 | 一级毛片a女人刺激视频免费 | 九九九九九九精品免费 | 欧美性精品videofree | 久久99精品久久久久久国产越南 | 日本在线资源 | 成人无遮挡毛片免费看 |