萬沈文,吳海然,方 立,吳忠兵,閆渠成
(上海振華重工電氣有限公司,上海 200125)
基于ZYNQ的POWERLINK雙協議組網研究與實現
萬沈文,吳海然,方 立,吳忠兵,閆渠成
(上海振華重工電氣有限公司,上海 200125)
動力定位系統主要用來解決船舶深海動力定位問題,系統對網絡實時性和安全性有著極高的要求。同時動力定位系統網絡節點多且網絡結構復雜,部分單元控制器和數據采集器往往需要收發兩個網絡的數據。在深入比較分析各種實時以太網的基礎上,選擇了具有實時性和安全性的工業以太網POWERLINK為研究對象,采用ZYNQ為硬件平臺,提出了在ZYNQ上建立兩個MicroBlaze軟核分別運行兩個獨立POWERLINK協議的新方法。該方法能解決控制器雙網絡平臺復用問題,同時還能實現POWERLINK主從站的任意組合,達到優化網絡結構和降低成本的效果。最后組建了POWERLINK雙協議網絡并利用wireshark進行抓包測試,測得兩組網絡實際參數與設計參數相同且數據交互傳輸正確,實驗結果證明了該方案的可靠性和正確性。
POWERLINK;雙協議;ZYNQ;動力定位系統
動力定位系統(Dynamic Positioning System,DPS)通過實時檢測船舶的實際位置與目標位置的偏差,計算出使船舶到達目標位置所需推力的大小,并對船舶上各推進器進行推力分配控制,從而使船盡可能地保持在所要求的位置和方向上[1]。船舶動力定位控制系統對安全性和實時性要求非常高,一旦出現故障,將帶來巨大的經濟損失和安全問題。此外動力定位系統網絡節點多且網絡結構復雜,部分控制器和數據采集單元往往要收發兩個網絡的數據。在比較各種實時以太網[2-3]后選擇POWERLINK來作為動力定位控制系統的實時以太網。
目前,POWERLINK的研究集中在協議性能分析與應用等方面,在國內主要用于CNC和機器人[4]以及安全控制等領域[5]。而POWERLINK在多網絡平臺下的使用研究較少,北方自動控制技術研究所研究的雙層POWERLINK網絡網關采用的雙芯片架構(MCU+FPGA)主要用于實現兩組網絡傳輸同步性問題[6],但對單FPGA芯片上實現雙網絡和數據傳輸問題未做出相關研究。國外研究方面意大利帕多瓦大學的L.Seno等人將POWERLINK應用于報警處理系統[7];法國格勒諾布爾大學的A.Soury等人將POWERLINK和openSAFETY結合使用在電梯網絡化控制系統中[8]。以上多為研究POWERLINK分布式組網、安全性冗余設計及POWERLINK仿真[9-11],對雙網絡組網模式研究較少。
本文對船舶動力定位控制系統網絡進行了研究,分析網絡拓撲圖的結構。根據控制單元和數據采集單元的使用情況,設計了一種以ZYNQ和PHY芯片為硬件平臺,并在ZYNQ上建立兩個MicroBlaze軟核獨立運行POWRLINK協議。最后用wireshark分別對兩組網絡進行抓包測試,網絡測試參數與網絡設計參數一致,驗證了設計方案的正確性和可靠性。
如圖1所示動力定位系統網絡結構主要分為3層:信息層、控制層及設備層。信息層主要是由計算機組成,在整個系統中主要是控制各個設備的信息傳輸顯示設備的運行狀態。控制層主要由控制器和工業以太網組成,其中CU為控制單元器,DAU為數據采集器。CU主要負責解析指令、算法執行和數據通信,DAU主要負責采集外接設備如風傳感器、無線電系統、推進器等數據信息。設備層主要是由艏向傳感器、動力系統和推力系統等組成。
POWERLINK網絡中負責管理總線使用權的節點被稱為POWERLINK管理節點(Managed Node,MN),通常稱為主站。網絡上的所有可用節點都由管理節點管理操作,一個POWERLINK網絡只能有一個管理節點。僅在MN分配的通信時隙內發送報文的所有其他節點被稱為受控節點(Controlled Node,CN), 通常稱為從站[12]。從站的數據收發,完全由主站控制。
動力定位系統設備數量多、網絡結構復雜,部分控制器和數據采集單元往往要收發兩個網絡的數據。如圖2所示,CU1、CU2、CU3將指令和算法下發到DAU1、DAU2、DAU3中,在此網絡中CU1、CU2、CU3作為主站使用,DAU1、DAU2、DAU3作為從站使用。

圖2 CU1、CU2、CU3為主站的網絡拓撲圖
動力定位系統的單元控制器大多作主站使用,但在部分網絡中控制器在特殊情況下被當作從站使用。如圖3所示,該網絡中CU1為主站,CU3為從站接受CU1發出的控制指令和算法,然后再將指令和算法轉發給DAU4。

圖3 CU1為主站CU3為從站的網絡拓撲圖
從以上兩組網絡拓撲圖中可以看出,CU3在第一種網絡中作主站使用,在第二種網絡中作從站使用。換而言之,CU3需要分別運行POWERLINK主從站兩種協議才能實現該功能。
2.1 硬件設計
考慮到控制器功能復雜以及FPGA資源等問題,故選擇Xilinx公司的ZYNQ作為硬件平臺。除了ZYNQ之外,實現POWERLINK通信節點還需要如下硬件:
(1)一片512 MB×8 bit的NAND Flash芯片S34ML04G100TFI,用作存儲POWERLINK程序和文件系統。
(2)兩片128 MB×16 bit的DDR3芯片MT41J128M16HA-125IT,作為運行POWERLINK協議棧所需要的外部內存。
(3)POWELRINK是通過節點地址來尋址的,每個節點都有一個NodeID,需要一個8 bit撥碼開關來設置節點的NodeID。
(4)網絡總路數為兩路,選擇兩片型號為88E1111的芯片作為PHY芯片。采用IO接口較少的RMII(Reduced Medium Idependent Interface)模式作為PHY的工作模式。在PHY芯片上再外接兩個RJ45的網口,每路端口均提供通信與watchdog狀態指示LED。
(5)50 MHz的晶振為FPGA和整個硬件系統提供時鐘源。
(6)JTAG接口用于軟件的調試和程序的下載。
硬件系統框圖如圖4所示。

圖4 基于ZYNQ平臺的硬件系統框圖
2.2 軟件設計
目前常用的POWERLINK方案有兩種:基于MCU/CPU的C語言方案和基于FPGA的Verilog HDL方案。POWERLINK是一種基于C語言的方案,如果運行于FPGA中需要在FPGA內實現一個軟處理器,如MicroBlaze[13]。
POWERLINK雙協議實現需要在嵌入式處理器中選擇AXI system下的Dual MicroBlaze Processor System模式,對每個MicroBlaze的時鐘頻率和Local Memory size進行設置,一般情況下Local Memory設置為8 KB。POWERLINK內部總共使用了兩種總線,一種是AXI總線,另一種是LMB總線。AXI(Advanced eXtensible Interface)總線是一種高帶寬、低延遲的總線,主要用在片內兩個主從設備的數據傳輸上。LMB(Local Memory Bus)是本地內存總線,用于內存總線訪問存放指令和數據的片上塊RAM。內存總線有指令內存總線(ilmb)和數據內存總線(dlmb)兩種,分別用于處理器指令和數據接口。
如圖5所示系統采用AXI總線作為系統的通信結構,axi2axi_connector實現AXIlite總線上的slave共享,兩個MicroBlaze核之間協同處理共享slave。總線上掛處理器通信模塊Mailbox和處理器同步模塊Mutex。兩個MicroBlaze各自有一個BRAM用來存儲處理器私有的指令和數據。表1列出了雙MicroBlaze中系統結構的主要模塊。

圖5 雙MicroBlaze系統結構圖

圖6 POWERLINK IP與MicroBlaze連接圖
如圖6所示將兩個POWERLINK IP核的數據和寄存器引腳S_AXI_MAC_PKT和S_AXI_MAC_REG以及兩個MicroBlaze軟核數據端口M_AXI_DP共同連至ZYQN內部axi2axi_connector IP上。POWERLINK IP中主要包含物理層HUB和MAC,不同的IP核包含POWERLINK不同的組網模式,組網模式主要有環形、星形和菊花鏈形等。
設置完XPS中的MicroBlaze、bram和AXI總線后將硬件設計導出至SDK軟件中,

表1 雙MicroBlaze系統主要模塊
在SDK中導入POWERLINK開源程序后建立BSP(Board Support Package)達到軟件在硬件主板上運行的目的。程序需要配置各站的節點號、通信周期、數據量,并將應用程序變量和對象字典對應的對象關聯起來,需要修改的部分如下:
(1)主站節點號、通信周期和數據量設置:
#define NODEID 0xF1
//主站節點號為241
#define CYCLE LEN 800
//通信周期設置為800 μs
#define CONFIG_TX_PAYLOAD 250
//發250 B
#define CONFIG_RX_PAYLOAD 250
//收250 B
(2)對象字典主要參數包括索引、子索引、對象類型、訪問類型和數據類型等,具體如下:
EPL_OBD_SUBINDEX_RAM_VAR(0x6000, 0x00, kEplObdTypUInt8, kEplObdAccConst, tEplObdUnsigned8, NumberOfEntries, 0x01)
其中0x6000是索引;0x00是0x6000的子索引;kEplObdTypUInt8是8 bit無符號對象類型;kEplObdAccConst是訪問類型;tEplObdUnsigned8是8 bit無符號數據類型;NumberOfEntries是索引名字;0x01是默認值。
設置對象字典參數時根據自己的需要主要修改索引、子索引和數據類型的值。
(3)POWERLINK通過對象字典中的Object數據封裝和解析數據幀,在demo_main.c程序中有DigitalIn_Domain1和DigitalOut_Domain1兩個變量。主站周期性地把DigitalIn_Domain1變量值發送給節點1,周期性地把從節點1收到的值存入到變量DigitalOut_Domain1中。
//將接收的數據放入變量DigitalIn_Domain1中
ObdSize = CONFIG_RX_PAYLOAD;
uiVarEntries = 1;
EplRet = EplApiLinkObject(0x6100, DigitalIn_Domain1, &uiVarEntries, &ObdSize, 0x01);
if(EplRet != kEplSuccessful)
{
goto ExitShutdown;
}
POWERLINK網絡IP地址最后三位為POWERLINK節點號,因此設置時節點號不能重復。根據節點號可將POWERLINK程序分主站程序和從站程序,編寫腳本文件將主站與主站、主站與從站、從站與從站3種模式組合成3個文件,根據應用需求通過JTAG下載至硬件系統中。
POWERLINK通信過程比較復雜,為了能更好地測試雙協議運行情況,搭建了一組主站運行雙協議的POWERLINK網絡,如圖7所示。主站的兩個網口各自接入不同的HUB中,其中一個HUB接入從站節點1,通信周期為500 μs,數據量為250 B。另一個HUB接入從站節點2和從站節點3,通信周期為800 μs,數據量為250 B。在PC上運行wireshark軟件接入網絡中進行測試,這樣能從抓包數據中明顯看出兩組數據的區別及各網絡的運行情況。

圖7 雙網絡測試網絡連接圖
圖8中主站240與從站1通信數據量為250 B,POWERLINK通信周期為兩個相鄰SOC幀時間間隔,即500 μs。圖9中主站240與從站2和從站3通信數據量為250 B,通信周期為800 μs。兩個網絡的從站節點號、通信周期和數據量均與實驗設計參數一致,故雙協議網絡通信正常,能實現POWERLINK網絡。

圖8 單從站網絡抓包數據圖

圖9 雙從站網絡抓包數據圖
從圖10和圖11中可以得知,經過長時間多次測試數據前三位均為0,沒有出現錯誤計數現象,說明POWERLINK雙協議運行數據傳輸正確。

圖10 單從站數據檢測圖

圖11 雙從站數據檢測圖
本文以動力定位系統為應用背景,針對動力系統網絡結構復雜,單個控制器在兩個網絡中同時使用這一情況,深入研究POWERLINK原理及協議,提出了以ZYNQ為硬件平臺,在雙MicroBlaze軟核平臺上分別運行POWERLINK協議的方法,然后搭建測試網絡從節點號、通信周期、數據量和數據出錯率衡量雙協議網絡的正確性和穩定性。經過多次測試得到實驗實際參數與實驗設計參數一致且數據交互傳輸正確這一結論,驗證了該方案的可行性。
[1] FOSSEN T I.Guidance and control of ocean vehicles[M].John Wiley & Sons. Ltd,Chichester,1994.
[2] 單春榮, 劉艷強, 郇極. 工業以太網現場總線EtherCAT及驅動程序設計[J]. 制造業自動化, 2007, 29(11):79-82.
[3] 謝經明, 陳幼平, 周祖德,等. SERCOS總線協議及其在數控系統中應用[J]. 機械與電子, 2001(5):3-5.
[4] 劉爭明, 王欽若, 萬振磊. 基于工業以太網Ethernet Powerlink和ARM9的伺服控制系統的設計[J]. 工業控制計算機, 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] 趙經時, 史貴林, 張靜怡,等. 一種雙層Powerlink網絡的網關[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] 肖維榮,王瑾秋,宋華振.開源實時以太網POWERLINK詳解[M].北京:機械工業出版社,2015.
[13] 徐欣,于紅旗.基于FPGA的嵌入式系統設計[M].北京:機械工業出版社,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雙協議組網研究與實現[J].微型機與應用,2017,36(9):67-70,77.
2016-12-14)
萬沈文(1990-),男,碩士,工程師,主要研究方向:以太網技術與應用,FPGA算法。