萬沈文,吳海然,方 立,吳忠兵,閆渠成
(上海振華重工電氣有限公司,上海 200125)
基于ZYNQ的POWERLINK雙協(xié)議組網(wǎng)研究與實現(xiàn)
萬沈文,吳海然,方 立,吳忠兵,閆渠成
(上海振華重工電氣有限公司,上海 200125)
動力定位系統(tǒng)主要用來解決船舶深海動力定位問題,系統(tǒng)對網(wǎng)絡實時性和安全性有著極高的要求。同時動力定位系統(tǒng)網(wǎng)絡節(jié)點多且網(wǎng)絡結構復雜,部分單元控制器和數(shù)據(jù)采集器往往需要收發(fā)兩個網(wǎng)絡的數(shù)據(jù)。在深入比較分析各種實時以太網(wǎng)的基礎上,選擇了具有實時性和安全性的工業(yè)以太網(wǎng)POWERLINK為研究對象,采用ZYNQ為硬件平臺,提出了在ZYNQ上建立兩個MicroBlaze軟核分別運行兩個獨立POWERLINK協(xié)議的新方法。該方法能解決控制器雙網(wǎng)絡平臺復用問題,同時還能實現(xiàn)POWERLINK主從站的任意組合,達到優(yōu)化網(wǎng)絡結構和降低成本的效果。最后組建了POWERLINK雙協(xié)議網(wǎng)絡并利用wireshark進行抓包測試,測得兩組網(wǎng)絡實際參數(shù)與設計參數(shù)相同且數(shù)據(jù)交互傳輸正確,實驗結果證明了該方案的可靠性和正確性。
POWERLINK;雙協(xié)議;ZYNQ;動力定位系統(tǒng)
動力定位系統(tǒng)(Dynamic Positioning System,DPS)通過實時檢測船舶的實際位置與目標位置的偏差,計算出使船舶到達目標位置所需推力的大小,并對船舶上各推進器進行推力分配控制,從而使船盡可能地保持在所要求的位置和方向上[1]。船舶動力定位控制系統(tǒng)對安全性和實時性要求非常高,一旦出現(xiàn)故障,將帶來巨大的經(jīng)濟損失和安全問題。此外動力定位系統(tǒng)網(wǎng)絡節(jié)點多且網(wǎng)絡結構復雜,部分控制器和數(shù)據(jù)采集單元往往要收發(fā)兩個網(wǎng)絡的數(shù)據(jù)。在比較各種實時以太網(wǎng)[2-3]后選擇POWERLINK來作為動力定位控制系統(tǒng)的實時以太網(wǎng)。
目前,POWERLINK的研究集中在協(xié)議性能分析與應用等方面,在國內主要用于CNC和機器人[4]以及安全控制等領域[5]。而POWERLINK在多網(wǎng)絡平臺下的使用研究較少,北方自動控制技術研究所研究的雙層POWERLINK網(wǎng)絡網(wǎng)關采用的雙芯片架構(MCU+FPGA)主要用于實現(xiàn)兩組網(wǎng)絡傳輸同步性問題[6],但對單FPGA芯片上實現(xiàn)雙網(wǎng)絡和數(shù)據(jù)傳輸問題未做出相關研究。國外研究方面意大利帕多瓦大學的L.Seno等人將POWERLINK應用于報警處理系統(tǒng)[7];法國格勒諾布爾大學的A.Soury等人將POWERLINK和openSAFETY結合使用在電梯網(wǎng)絡化控制系統(tǒng)中[8]。以上多為研究POWERLINK分布式組網(wǎng)、安全性冗余設計及POWERLINK仿真[9-11],對雙網(wǎng)絡組網(wǎng)模式研究較少。
本文對船舶動力定位控制系統(tǒng)網(wǎng)絡進行了研究,分析網(wǎng)絡拓撲圖的結構。根據(jù)控制單元和數(shù)據(jù)采集單元的使用情況,設計了一種以ZYNQ和PHY芯片為硬件平臺,并在ZYNQ上建立兩個MicroBlaze軟核獨立運行POWRLINK協(xié)議。最后用wireshark分別對兩組網(wǎng)絡進行抓包測試,網(wǎng)絡測試參數(shù)與網(wǎng)絡設計參數(shù)一致,驗證了設計方案的正確性和可靠性。
如圖1所示動力定位系統(tǒng)網(wǎng)絡結構主要分為3層:信息層、控制層及設備層。信息層主要是由計算機組成,在整個系統(tǒng)中主要是控制各個設備的信息傳輸顯示設備的運行狀態(tài)。控制層主要由控制器和工業(yè)以太網(wǎng)組成,其中CU為控制單元器,DAU為數(shù)據(jù)采集器。CU主要負責解析指令、算法執(zhí)行和數(shù)據(jù)通信,DAU主要負責采集外接設備如風傳感器、無線電系統(tǒng)、推進器等數(shù)據(jù)信息。設備層主要是由艏向傳感器、動力系統(tǒng)和推力系統(tǒng)等組成。
POWERLINK網(wǎng)絡中負責管理總線使用權的節(jié)點被稱為POWERLINK管理節(jié)點(Managed Node,MN),通常稱為主站。網(wǎng)絡上的所有可用節(jié)點都由管理節(jié)點管理操作,一個POWERLINK網(wǎng)絡只能有一個管理節(jié)點。僅在MN分配的通信時隙內發(fā)送報文的所有其他節(jié)點被稱為受控節(jié)點(Controlled Node,CN), 通常稱為從站[12]。從站的數(shù)據(jù)收發(fā),完全由主站控制。
動力定位系統(tǒng)設備數(shù)量多、網(wǎng)絡結構復雜,部分控制器和數(shù)據(jù)采集單元往往要收發(fā)兩個網(wǎng)絡的數(shù)據(jù)。如圖2所示,CU1、CU2、CU3將指令和算法下發(fā)到DAU1、DAU2、DAU3中,在此網(wǎng)絡中CU1、CU2、CU3作為主站使用,DAU1、DAU2、DAU3作為從站使用。
圖2 CU1、CU2、CU3為主站的網(wǎng)絡拓撲圖
動力定位系統(tǒng)的單元控制器大多作主站使用,但在部分網(wǎng)絡中控制器在特殊情況下被當作從站使用。如圖3所示,該網(wǎng)絡中CU1為主站,CU3為從站接受CU1發(fā)出的控制指令和算法,然后再將指令和算法轉發(fā)給DAU4。
圖3 CU1為主站CU3為從站的網(wǎng)絡拓撲圖
從以上兩組網(wǎng)絡拓撲圖中可以看出,CU3在第一種網(wǎng)絡中作主站使用,在第二種網(wǎng)絡中作從站使用。換而言之,CU3需要分別運行POWERLINK主從站兩種協(xié)議才能實現(xiàn)該功能。
2.1 硬件設計
考慮到控制器功能復雜以及FPGA資源等問題,故選擇Xilinx公司的ZYNQ作為硬件平臺。除了ZYNQ之外,實現(xiàn)POWERLINK通信節(jié)點還需要如下硬件:
(1)一片512 MB×8 bit的NAND Flash芯片S34ML04G100TFI,用作存儲POWERLINK程序和文件系統(tǒng)。
(2)兩片128 MB×16 bit的DDR3芯片MT41J128M16HA-125IT,作為運行POWERLINK協(xié)議棧所需要的外部內存。
(3)POWELRINK是通過節(jié)點地址來尋址的,每個節(jié)點都有一個NodeID,需要一個8 bit撥碼開關來設置節(jié)點的NodeID。
(4)網(wǎng)絡總路數(shù)為兩路,選擇兩片型號為88E1111的芯片作為PHY芯片。采用IO接口較少的RMII(Reduced Medium Idependent Interface)模式作為PHY的工作模式。在PHY芯片上再外接兩個RJ45的網(wǎng)口,每路端口均提供通信與watchdog狀態(tài)指示LED。
(5)50 MHz的晶振為FPGA和整個硬件系統(tǒng)提供時鐘源。
(6)JTAG接口用于軟件的調試和程序的下載。
硬件系統(tǒng)框圖如圖4所示。
圖4 基于ZYNQ平臺的硬件系統(tǒng)框圖
2.2 軟件設計
目前常用的POWERLINK方案有兩種:基于MCU/CPU的C語言方案和基于FPGA的Verilog HDL方案。POWERLINK是一種基于C語言的方案,如果運行于FPGA中需要在FPGA內實現(xiàn)一個軟處理器,如MicroBlaze[13]。
POWERLINK雙協(xié)議實現(xiàn)需要在嵌入式處理器中選擇AXI system下的Dual MicroBlaze Processor System模式,對每個MicroBlaze的時鐘頻率和Local Memory size進行設置,一般情況下Local Memory設置為8 KB。POWERLINK內部總共使用了兩種總線,一種是AXI總線,另一種是LMB總線。AXI(Advanced eXtensible Interface)總線是一種高帶寬、低延遲的總線,主要用在片內兩個主從設備的數(shù)據(jù)傳輸上。LMB(Local Memory Bus)是本地內存總線,用于內存總線訪問存放指令和數(shù)據(jù)的片上塊RAM。內存總線有指令內存總線(ilmb)和數(shù)據(jù)內存總線(dlmb)兩種,分別用于處理器指令和數(shù)據(jù)接口。
如圖5所示系統(tǒng)采用AXI總線作為系統(tǒng)的通信結構,axi2axi_connector實現(xiàn)AXIlite總線上的slave共享,兩個MicroBlaze核之間協(xié)同處理共享slave??偩€上掛處理器通信模塊Mailbox和處理器同步模塊Mutex。兩個MicroBlaze各自有一個BRAM用來存儲處理器私有的指令和數(shù)據(jù)。表1列出了雙MicroBlaze中系統(tǒng)結構的主要模塊。
圖5 雙MicroBlaze系統(tǒng)結構圖
圖6 POWERLINK IP與MicroBlaze連接圖
如圖6所示將兩個POWERLINK IP核的數(shù)據(jù)和寄存器引腳S_AXI_MAC_PKT和S_AXI_MAC_REG以及兩個MicroBlaze軟核數(shù)據(jù)端口M_AXI_DP共同連至ZYQN內部axi2axi_connector IP上。POWERLINK IP中主要包含物理層HUB和MAC,不同的IP核包含POWERLINK不同的組網(wǎng)模式,組網(wǎng)模式主要有環(huán)形、星形和菊花鏈形等。
設置完XPS中的MicroBlaze、bram和AXI總線后將硬件設計導出至SDK軟件中,
表1 雙MicroBlaze系統(tǒng)主要模塊
在SDK中導入POWERLINK開源程序后建立BSP(Board Support Package)達到軟件在硬件主板上運行的目的。程序需要配置各站的節(jié)點號、通信周期、數(shù)據(jù)量,并將應用程序變量和對象字典對應的對象關聯(lián)起來,需要修改的部分如下:
(1)主站節(jié)點號、通信周期和數(shù)據(jù)量設置:
#define NODEID 0xF1
//主站節(jié)點號為241
#define CYCLE LEN 800
//通信周期設置為800 μs
#define CONFIG_TX_PAYLOAD 250
//發(fā)250 B
#define CONFIG_RX_PAYLOAD 250
//收250 B
(2)對象字典主要參數(shù)包括索引、子索引、對象類型、訪問類型和數(shù)據(jù)類型等,具體如下:
EPL_OBD_SUBINDEX_RAM_VAR(0x6000, 0x00, kEplObdTypUInt8, kEplObdAccConst, tEplObdUnsigned8, NumberOfEntries, 0x01)
其中0x6000是索引;0x00是0x6000的子索引;kEplObdTypUInt8是8 bit無符號對象類型;kEplObdAccConst是訪問類型;tEplObdUnsigned8是8 bit無符號數(shù)據(jù)類型;NumberOfEntries是索引名字;0x01是默認值。
設置對象字典參數(shù)時根據(jù)自己的需要主要修改索引、子索引和數(shù)據(jù)類型的值。
(3)POWERLINK通過對象字典中的Object數(shù)據(jù)封裝和解析數(shù)據(jù)幀,在demo_main.c程序中有DigitalIn_Domain1和DigitalOut_Domain1兩個變量。主站周期性地把DigitalIn_Domain1變量值發(fā)送給節(jié)點1,周期性地把從節(jié)點1收到的值存入到變量DigitalOut_Domain1中。
//將接收的數(shù)據(jù)放入變量DigitalIn_Domain1中
ObdSize = CONFIG_RX_PAYLOAD;
uiVarEntries = 1;
EplRet = EplApiLinkObject(0x6100, DigitalIn_Domain1, &uiVarEntries, &ObdSize, 0x01);
if(EplRet != kEplSuccessful)
{
goto ExitShutdown;
}
POWERLINK網(wǎng)絡IP地址最后三位為POWERLINK節(jié)點號,因此設置時節(jié)點號不能重復。根據(jù)節(jié)點號可將POWERLINK程序分主站程序和從站程序,編寫腳本文件將主站與主站、主站與從站、從站與從站3種模式組合成3個文件,根據(jù)應用需求通過JTAG下載至硬件系統(tǒng)中。
POWERLINK通信過程比較復雜,為了能更好地測試雙協(xié)議運行情況,搭建了一組主站運行雙協(xié)議的POWERLINK網(wǎng)絡,如圖7所示。主站的兩個網(wǎng)口各自接入不同的HUB中,其中一個HUB接入從站節(jié)點1,通信周期為500 μs,數(shù)據(jù)量為250 B。另一個HUB接入從站節(jié)點2和從站節(jié)點3,通信周期為800 μs,數(shù)據(jù)量為250 B。在PC上運行wireshark軟件接入網(wǎng)絡中進行測試,這樣能從抓包數(shù)據(jù)中明顯看出兩組數(shù)據(jù)的區(qū)別及各網(wǎng)絡的運行情況。
圖7 雙網(wǎng)絡測試網(wǎng)絡連接圖
圖8中主站240與從站1通信數(shù)據(jù)量為250 B,POWERLINK通信周期為兩個相鄰SOC幀時間間隔,即500 μs。圖9中主站240與從站2和從站3通信數(shù)據(jù)量為250 B,通信周期為800 μs。兩個網(wǎng)絡的從站節(jié)點號、通信周期和數(shù)據(jù)量均與實驗設計參數(shù)一致,故雙協(xié)議網(wǎng)絡通信正常,能實現(xiàn)POWERLINK網(wǎng)絡。
圖8 單從站網(wǎng)絡抓包數(shù)據(jù)圖
圖9 雙從站網(wǎng)絡抓包數(shù)據(jù)圖
從圖10和圖11中可以得知,經(jīng)過長時間多次測試數(shù)據(jù)前三位均為0,沒有出現(xiàn)錯誤計數(shù)現(xiàn)象,說明POWERLINK雙協(xié)議運行數(shù)據(jù)傳輸正確。
圖10 單從站數(shù)據(jù)檢測圖
圖11 雙從站數(shù)據(jù)檢測圖
本文以動力定位系統(tǒng)為應用背景,針對動力系統(tǒng)網(wǎng)絡結構復雜,單個控制器在兩個網(wǎng)絡中同時使用這一情況,深入研究POWERLINK原理及協(xié)議,提出了以ZYNQ為硬件平臺,在雙MicroBlaze軟核平臺上分別運行POWERLINK協(xié)議的方法,然后搭建測試網(wǎng)絡從節(jié)點號、通信周期、數(shù)據(jù)量和數(shù)據(jù)出錯率衡量雙協(xié)議網(wǎng)絡的正確性和穩(wěn)定性。經(jīng)過多次測試得到實驗實際參數(shù)與實驗設計參數(shù)一致且數(shù)據(jù)交互傳輸正確這一結論,驗證了該方案的可行性。
[1] FOSSEN T I.Guidance and control of ocean vehicles[M].John Wiley & Sons. Ltd,Chichester,1994.
[2] 單春榮, 劉艷強, 郇極. 工業(yè)以太網(wǎng)現(xiàn)場總線EtherCAT及驅動程序設計[J]. 制造業(yè)自動化, 2007, 29(11):79-82.
[3] 謝經(jīng)明, 陳幼平, 周祖德,等. SERCOS總線協(xié)議及其在數(shù)控系統(tǒng)中應用[J]. 機械與電子, 2001(5):3-5.
[4] 劉爭明, 王欽若, 萬振磊. 基于工業(yè)以太網(wǎng)Ethernet Powerlink和ARM9的伺服控制系統(tǒng)的設計[J]. 工業(yè)控制計算機, 2011, 24(4):55-56.
[5] MOYNE J R, TILBURY D M. The emergence of industrial control networks for manufacturing control, diagnostics, and safety data[J]. Proceedings of the IEEE, 2007, 95(1):29-47.
[6] 趙經(jīng)時, 史貴林, 張靜怡,等. 一種雙層Powerlink網(wǎng)絡的網(wǎng)關[J]. 火力與指揮控制, 2015(7):180-183.
[7] SENO L, VITTURI S, ZUNINO C. Analysis of Ethernet powerlink wireless extensions based on the IEEE 802.11 WLAN[J]. IEEE Transactions on Industrial Informatics, 2009, 5(2):86-98.
[8] SOURY A, CHARFI M, GENON-CATALOT D, et al. Performance analysis of Ethernet powerlink protocol: application to a new lift system generation[C]. Emerging Technologies & Factory Automation. IEEE, 2015:1-6.
[9] CENA G, SENO L, VALENZANO A, et al. Performance analysis of Ethernet powerlink networks for distributed control and automation systems[J]. Computer Standards & Interfaces, 2009, 31(3):566-572.
[10] LIMAL S, POTIER S, DENIS B, et al. Formal verification of redundant media extension of Ethernet powerlink[C]. Emerging Technologies and Factory Automation, 2007 ETFA, IEEE Conference on, 2007:1045-1052.
[11] SENO L, VITTURI S. A simulation study of Ethernet powerlink networks[C]. Emerging Technologies and Factory Automation, 2007 ETFA, IEEE Conference on, 2007:740-743.
[12] 肖維榮,王瑾秋,宋華振.開源實時以太網(wǎng)POWERLINK詳解[M].北京:機械工業(yè)出版社,2015.
[13] 徐欣,于紅旗.基于FPGA的嵌入式系統(tǒng)設計[M].北京:機械工業(yè)出版社,2005.
Research and implementation of POWERLINK dual protocol network based on ZYNQ
Wan Shenwen, Wu Hairan, Fang Li, Wu Zhongbing,Yan Qucheng
(Shanghai Zhenhua Heavy Electric Co. Ltd., Shanghai 200125, China)
Dynamic positioning system is mainly used to solve the problem of deep-sea dynamic positioning. It has a very high demand for the real-time and security of the network. Dynamic positioning system has many network nodes and complicated network structure.Part of control unit and data acquisition unit often need to send and receive two sets of network data. This thesis researches a real-time and security of industrial Ethernet POWERLINK based on the comparative analysis of various kinds of real-time Ethernet. It presents a new method for establishing two MicroBlaze and running two POWERLINK protocol respectively in ZYNQ platform. This method not only can solve the problem of reusing controller in the dual network platform controller, but also can realize any combination of master-slave stations, so as to optimize the structure of network and reduce the cost. Finally, POWERLINK dual protocol network is tested by Wireshark. The measured parameters of two groups are the same as the design parameters and data interaction is correct. The reliability and accuracy of the design is proved through experiments.
POWERLINK; dual protocol; ZYNQ; dynamic positioning system
TP23;TP393.11
A
10.19358/j.issn.1674- 7720.2017.09.020
萬沈文,吳海然,方立,等.基于ZYNQ的POWERLINK雙協(xié)議組網(wǎng)研究與實現(xiàn)[J].微型機與應用,2017,36(9):67-70,77.
2016-12-14)
萬沈文(1990-),男,碩士,工程師,主要研究方向:以太網(wǎng)技術與應用,F(xiàn)PGA算法。