萬沈文,吳海然,方立,吳忠兵,閆渠成
(上海振華重工電氣有限公司,上海 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)
中圖分類號:TP23;TP393.11文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.09.020
引用格式:萬沈文,吳海然,方立,等.基于ZYNQ的POWERLINK雙協(xié)議組網(wǎng)研究與實現(xiàn)[J].微型機與應用,2017,36(9):67-70,77.
0引言
動力定位系統(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)[23]后選擇POWERLINK來作為動力定位控制系統(tǒng)的實時以太網(wǎng)。
目前,POWERLINK的研究集中在協(xié)議性能分析與應用等方面,在國內(nèi)主要用于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仿真[911],對雙網(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)絡結構分析
如圖1所示動力定位系統(tǒng)網(wǎng)絡結構主要分為3層:信息層、控制層及設備層。信息層主要是由計算機組成,在整個系統(tǒng)中主要是控制各個設備的信息傳輸顯示設備的運行狀態(tài)??刂茖又饕煽刂破骱凸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分配的通信時隙內(nèi)發(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作為從站使用。
動力定位系統(tǒng)的單元控制器大多作主站使用,但在部分網(wǎng)絡中控制器在特殊情況下被當作從站使用。如圖3所示,該網(wǎng)絡中CU1為主站,CU3為從站接受CU1發(fā)出的控制指令和算法,然后再將指令和算法轉(zhuǎn)發(fā)給DAU4。
從以上兩組網(wǎng)絡拓撲圖中可以看出,CU3在第一種網(wǎng)絡中作主站使用,在第二種網(wǎng)絡中作從站使用。換而言之,CU3需要分別運行POWERLINK主從站兩種協(xié)議才能實現(xiàn)該功能。
2系統(tǒng)設計
2.1硬件設計
考慮到控制器功能復雜以及FPGA資源等問題,故選擇Xilinx公司的ZYNQ作為硬件平臺。除了ZYNQ之外,實現(xiàn)POWERLINK通信節(jié)點還需要如下硬件:
(1)一片512 MB×8 bit的NAND Flash芯片S34ML04G100TFI,用作存儲POWERLINK程序和文件系統(tǒng)。
?。?)兩片128 MB×16 bit的DDR3芯片MT41J128M16HA125IT,作為運行POWERLINK協(xié)議棧所需要的外部內(nèi)存。
?。?)POWELRINK是通過節(jié)點地址來尋址的,每個節(jié)點都有一個NodeID,需要一個8 bit撥碼開關來設置節(jié)點的NodeID。
?。?)網(wǎng)絡總路數(shù)為兩路,選擇兩片型號為88E1111的芯片作為PHY芯片。采用IO接口較少的RMII(Reduced Medium Idependent Interface)模式作為PHY的工作模式。在PHY芯片上再外接兩個RJ45的網(wǎng)口,每路端口均提供通信與watchdog狀態(tài)指示LED。
?。?)50 MHz的晶振為FPGA和整個硬件系統(tǒng)提供時鐘源。
?。?)JTAG接口用于軟件的調(diào)試和程序的下載。
硬件系統(tǒng)框圖如圖4所示。
2.2軟件設計
目前常用的POWERLINK方案有兩種:基于MCU/CPU的C語言方案和基于FPGA的Verilog HDL方案。POWERLINK是一種基于C語言的方案,如果運行于FPGA中需要在FPGA內(nèi)實現(xiàn)一個軟處理器,如MicroBlaze[13]。
POWERLINK雙協(xié)議實現(xiàn)需要在嵌入式處理器中選擇AXI system下的Dual MicroBlaze Processor System模式,對每個MicroBlaze的時鐘頻率和Local Memory size進行設置,一般情況下Local Memory設置為8 KB。POWERLINK內(nèi)部總共使用了兩種總線,一種是AXI總線,另一種是LMB總線。AXI(Advanced eXtensible Interface)總線是一種高帶寬、低延遲的總線,主要用在片內(nèi)兩個主從設備的數(shù)據(jù)傳輸上。LMB(Local Memory Bus)是本地內(nèi)存總線,用于內(nèi)存總線訪問存放指令和數(shù)據(jù)的片上塊RAM。內(nèi)存總線有指令內(nèi)存總線(ilmb)和數(shù)據(jù)內(nèi)存總線(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)結構的主要模塊。
如圖6所示將兩個POWERLINK IP核的數(shù)據(jù)和寄存器引腳S_AXI_MAC_PKT和S_AXI_MAC_REG以及兩個MicroBlaze軟核數(shù)據(jù)端口M_AXI_DP共同連至ZYQN內(nèi)部axi2axi_connector IP上。POWERLINK IP中主要包含物理層HUB和MAC,不同的IP核包含POWERLINK不同的組網(wǎng)模式,組網(wǎng)模式主要有環(huán)形、星形和菊花鏈形等。
設置完XPS中的MicroBlaze、bram和AXI總線后將硬件設計導出至SDK軟件中,
在SDK中導入POWERLINK開源程序后建立BSP(Board Support Package)達到軟件在硬件主板上運行的目的。程序需要配置各站的節(jié)點號、通信周期、數(shù)據(jù)量,并將應用程序變量和對象字典對應的對象關聯(lián)起來,需要修改的部分如下:
(1)主站節(jié)點號、通信周期和數(shù)據(jù)量設置:
#define NODEID0xF1//主站節(jié)點號為241
#define CYCLE LEN 800//通信周期設置為800 μs
#define CONFIG_TX_PAYLOAD 250//發(fā)250 B
#define CONFIG_RX_PAYLOAD 250//收250 B
?。?)對象字典主要參數(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ù)類型的值。
?。?)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)中。
3系統(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)絡的運行情況。
圖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)絡。
從圖10和圖11中可以得知,經(jīng)過長時間多次測試數(shù)據(jù)前三位均為0,沒有出現(xiàn)錯誤計數(shù)現(xiàn)象,說明POWERLINK雙協(xié)議運行數(shù)據(jù)傳輸正確。
4結束語
本文以動力定位系統(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ù)交互傳輸正確這一結論,驗證了該方案的可行性。
參考文獻
?。?] FOSSEN T I.Guidance and control of ocean vehicles[M].John Wiley & Sons. Ltd,Chichester,1994.
?。?] 單春榮, 劉艷強, 郇極. 工業(yè)以太網(wǎng)現(xiàn)場總線EtherCAT及驅(qū)動程序設計[J]. 制造業(yè)自動化, 2007, 29(11):79-82.
[3] 謝經(jīng)明, 陳幼平, 周祖德,等. SERCOS總線協(xié)議及其在數(shù)控系統(tǒng)中應用[J]. 機械與電子, 2001(5):3-5.
?。?] 劉爭明, 王欽若, 萬振磊. 基于工業(yè)以太網(wǎng)Ethernet Powerlink和ARM9的伺服控制系統(tǒng)的設計[J]. 工業(yè)控制計算機, 2011, 24(4):55-56.
?。?] 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.
?。?] 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.