萬沈文,吳海然,方立,吳忠兵,閆渠成
?。ㄉ虾U袢A重工電氣有限公司,上海 200125)
摘要:動力定位系統(tǒng)主要用來解決船舶深海動力定位問題,系統(tǒng)對網(wǎng)絡(luò)實(shí)時性和安全性有著極高的要求。同時動力定位系統(tǒng)網(wǎng)絡(luò)節(jié)點(diǎn)多且網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,部分單元控制器和數(shù)據(jù)采集器往往需要收發(fā)兩個網(wǎng)絡(luò)的數(shù)據(jù)。在深入比較分析各種實(shí)時以太網(wǎng)的基礎(chǔ)上,選擇了具有實(shí)時性和安全性的工業(yè)以太網(wǎng)POWERLINK為研究對象,采用ZYNQ為硬件平臺,提出了在ZYNQ上建立兩個MicroBlaze軟核分別運(yùn)行兩個獨(dú)立POWERLINK協(xié)議的新方法。該方法能解決控制器雙網(wǎng)絡(luò)平臺復(fù)用問題,同時還能實(shí)現(xiàn)POWERLINK主從站的任意組合,達(dá)到優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)和降低成本的效果。最后組建了POWERLINK雙協(xié)議網(wǎng)絡(luò)并利用wireshark進(jìn)行抓包測試,測得兩組網(wǎng)絡(luò)實(shí)際參數(shù)與設(shè)計參數(shù)相同且數(shù)據(jù)交互傳輸正確,實(shí)驗(yàn)結(jié)果證明了該方案的可靠性和正確性。
關(guān)鍵詞:POWERLINK;雙協(xié)議;ZYNQ;動力定位系統(tǒng)
中圖分類號:TP23;TP393.11文獻(xiàn)標(biāo)識碼:ADOI: 10.19358/j.issn.1674-7720.2017.09.020
引用格式:萬沈文,吳海然,方立,等.基于ZYNQ的POWERLINK雙協(xié)議組網(wǎng)研究與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2017,36(9):67-70,77.
0引言
動力定位系統(tǒng)(Dynamic Positioning System,DPS)通過實(shí)時檢測船舶的實(shí)際位置與目標(biāo)位置的偏差,計算出使船舶到達(dá)目標(biāo)位置所需推力的大小,并對船舶上各推進(jìn)器進(jìn)行推力分配控制,從而使船盡可能地保持在所要求的位置和方向上[1]。船舶動力定位控制系統(tǒng)對安全性和實(shí)時性要求非常高,一旦出現(xiàn)故障,將帶來巨大的經(jīng)濟(jì)損失和安全問題。此外動力定位系統(tǒng)網(wǎng)絡(luò)節(jié)點(diǎn)多且網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,部分控制器和數(shù)據(jù)采集單元往往要收發(fā)兩個網(wǎng)絡(luò)的數(shù)據(jù)。在比較各種實(shí)時以太網(wǎng)[23]后選擇POWERLINK來作為動力定位控制系統(tǒng)的實(shí)時以太網(wǎng)。
目前,POWERLINK的研究集中在協(xié)議性能分析與應(yīng)用等方面,在國內(nèi)主要用于CNC和機(jī)器人[4]以及安全控制等領(lǐng)域[5]。而POWERLINK在多網(wǎng)絡(luò)平臺下的使用研究較少,北方自動控制技術(shù)研究所研究的雙層POWERLINK網(wǎng)絡(luò)網(wǎng)關(guān)采用的雙芯片架構(gòu)(MCU+FPGA)主要用于實(shí)現(xiàn)兩組網(wǎng)絡(luò)傳輸同步性問題[6],但對單FPGA芯片上實(shí)現(xiàn)雙網(wǎng)絡(luò)和數(shù)據(jù)傳輸問題未做出相關(guān)研究。國外研究方面意大利帕多瓦大學(xué)的L.Seno等人將POWERLINK應(yīng)用于報警處理系統(tǒng)[7];法國格勒諾布爾大學(xué)的
A.Soury等人將POWERLINK和openSAFETY結(jié)合使用在電梯網(wǎng)絡(luò)化控制系統(tǒng)中[8]。以上多為研究POWERLINK分布式組網(wǎng)、安全性冗余設(shè)計及POWERLINK仿真[911],對雙網(wǎng)絡(luò)組網(wǎng)模式研究較少。
本文對船舶動力定位控制系統(tǒng)網(wǎng)絡(luò)進(jìn)行了研究,分析網(wǎng)絡(luò)拓?fù)鋱D的結(jié)構(gòu)。根據(jù)控制單元和數(shù)據(jù)采集單元的使用情況,設(shè)計了一種以ZYNQ和PHY芯片為硬件平臺,并在ZYNQ上建立兩個MicroBlaze軟核獨(dú)立運(yùn)行POWRLINK協(xié)議。最后用wireshark分別對兩組網(wǎng)絡(luò)進(jìn)行抓包測試,網(wǎng)絡(luò)測試參數(shù)與網(wǎng)絡(luò)設(shè)計參數(shù)一致,驗(yàn)證了設(shè)計方案的正確性和可靠性。
1動力定位系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)分析
如圖1所示動力定位系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)主要分為3層:信息層、控制層及設(shè)備層。信息層主要是由計算機(jī)組成,在整個系統(tǒng)中主要是控制各個設(shè)備的信息傳輸顯示設(shè)備的運(yùn)行狀態(tài)。控制層主要由控制器和工業(yè)以太網(wǎng)組成,其中CU為控制單元器,DAU為數(shù)據(jù)采集器。CU主要負(fù)責(zé)解析指令、算法執(zhí)行和數(shù)據(jù)通信,DAU主要負(fù)責(zé)采集外接設(shè)備如風(fēng)傳感器、無線電系統(tǒng)、推進(jìn)器等數(shù)據(jù)信息。設(shè)備層主要是由艏向傳感器、動力系統(tǒng)和推力系統(tǒng)等組成。
POWERLINK網(wǎng)絡(luò)中負(fù)責(zé)管理總線使用權(quán)的節(jié)點(diǎn)被稱為POWERLINK管理節(jié)點(diǎn)(Managed Node,MN),通常稱為主站。網(wǎng)絡(luò)上的所有可用節(jié)點(diǎn)都由管理節(jié)點(diǎn)管理操作,一個POWERLINK網(wǎng)絡(luò)只能有一個管理節(jié)點(diǎn)。僅在MN分配的通信時隙內(nèi)發(fā)送報文的所有其他節(jié)點(diǎn)被稱為受控節(jié)點(diǎn)(Controlled Node,CN), 通常稱為從站[12]。從站的數(shù)據(jù)收發(fā),完全由主站控制。
動力定位系統(tǒng)設(shè)備數(shù)量多、網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,部分控制器和數(shù)據(jù)采集單元往往要收發(fā)兩個網(wǎng)絡(luò)的數(shù)據(jù)。如圖2所示,CU1、CU2、CU3將指令和算法下發(fā)到DAU1、DAU2、DAU3中,在此網(wǎng)絡(luò)中CU1、CU2、CU3作為主站使用,DAU1、DAU2、DAU3作為從站使用。
動力定位系統(tǒng)的單元控制器大多作主站使用,但在部分網(wǎng)絡(luò)中控制器在特殊情況下被當(dāng)作從站使用。如圖3所示,該網(wǎng)絡(luò)中CU1為主站,CU3為從站接受CU1發(fā)出的控制指令和算法,然后再將指令和算法轉(zhuǎn)發(fā)給DAU4。
從以上兩組網(wǎng)絡(luò)拓?fù)鋱D中可以看出,CU3在第一種網(wǎng)絡(luò)中作主站使用,在第二種網(wǎng)絡(luò)中作從站使用。換而言之,CU3需要分別運(yùn)行POWERLINK主從站兩種協(xié)議才能實(shí)現(xiàn)該功能。
2系統(tǒng)設(shè)計
2.1硬件設(shè)計
考慮到控制器功能復(fù)雜以及FPGA資源等問題,故選擇Xilinx公司的ZYNQ作為硬件平臺。除了ZYNQ之外,實(shí)現(xiàn)POWERLINK通信節(jié)點(diǎn)還需要如下硬件:
?。?)一片512 MB×8 bit的NAND Flash芯片S34ML04G100TFI,用作存儲POWERLINK程序和文件系統(tǒng)。
?。?)兩片128 MB×16 bit的DDR3芯片MT41J128M16HA125IT,作為運(yùn)行POWERLINK協(xié)議棧所需要的外部內(nèi)存。
?。?)POWELRINK是通過節(jié)點(diǎn)地址來尋址的,每個節(jié)點(diǎn)都有一個NodeID,需要一個8 bit撥碼開關(guān)來設(shè)置節(jié)點(diǎn)的NodeID。
(4)網(wǎng)絡(luò)總路數(shù)為兩路,選擇兩片型號為88E1111的芯片作為PHY芯片。采用IO接口較少的RMII(Reduced Medium Idependent Interface)模式作為PHY的工作模式。在PHY芯片上再外接兩個RJ45的網(wǎng)口,每路端口均提供通信與watchdog狀態(tài)指示LED。
(5)50 MHz的晶振為FPGA和整個硬件系統(tǒng)提供時鐘源。
?。?)JTAG接口用于軟件的調(diào)試和程序的下載。
硬件系統(tǒng)框圖如圖4所示。
2.2軟件設(shè)計
目前常用的POWERLINK方案有兩種:基于MCU/CPU的C語言方案和基于FPGA的Verilog HDL方案。POWERLINK是一種基于C語言的方案,如果運(yùn)行于FPGA中需要在FPGA內(nèi)實(shí)現(xiàn)一個軟處理器,如MicroBlaze[13]。
POWERLINK雙協(xié)議實(shí)現(xiàn)需要在嵌入式處理器中選擇AXI system下的Dual MicroBlaze Processor System模式,對每個MicroBlaze的時鐘頻率和Local Memory size進(jìn)行設(shè)置,一般情況下Local Memory設(shè)置為8 KB。POWERLINK內(nèi)部總共使用了兩種總線,一種是AXI總線,另一種是LMB總線。AXI(Advanced eXtensible Interface)總線是一種高帶寬、低延遲的總線,主要用在片內(nèi)兩個主從設(shè)備的數(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)的通信結(jié)構(gòu),axi2axi_connector實(shí)現(xiàn)AXIlite總線上的slave共享,兩個MicroBlaze核之間協(xié)同處理共享slave。總線上掛處理器通信模塊Mailbox和處理器同步模塊Mutex。兩個MicroBlaze各自有一個BRAM用來存儲處理器私有的指令和數(shù)據(jù)。表1列出了雙MicroBlaze中系統(tǒng)結(jié)構(gòu)的主要模塊。
如圖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)形、星形和菊花鏈形等。
設(shè)置完XPS中的MicroBlaze、bram和AXI總線后將硬件設(shè)計導(dǎo)出至SDK軟件中,
在SDK中導(dǎo)入POWERLINK開源程序后建立BSP(Board Support Package)達(dá)到軟件在硬件主板上運(yùn)行的目的。程序需要配置各站的節(jié)點(diǎn)號、通信周期、數(shù)據(jù)量,并將應(yīng)用程序變量和對象字典對應(yīng)的對象關(guān)聯(lián)起來,需要修改的部分如下:
?。?)主站節(jié)點(diǎn)號、通信周期和數(shù)據(jù)量設(shè)置:
#define NODEID0xF1//主站節(jié)點(diǎn)號為241
#define CYCLE LEN 800//通信周期設(shè)置為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是默認(rèn)值。
設(shè)置對象字典參數(shù)時根據(jù)自己的需要主要修改索引、子索引和數(shù)據(jù)類型的值。
(3)POWERLINK通過對象字典中的Object數(shù)據(jù)封裝和解析數(shù)據(jù)幀,在demo_main.c程序中有DigitalIn_Domain1和DigitalOut_Domain1兩個變量。主站周期性地把DigitalIn_Domain1變量值發(fā)送給節(jié)點(diǎn)1,周期性地把從節(jié)點(diǎn)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)絡(luò)IP地址最后三位為POWERLINK節(jié)點(diǎn)號,因此設(shè)置時節(jié)點(diǎn)號不能重復(fù)。根據(jù)節(jié)點(diǎn)號可將POWERLINK程序分主站程序和從站程序,編寫腳本文件將主站與主站、主站與從站、從站與從站3種模式組合成3個文件,根據(jù)應(yīng)用需求通過JTAG下載至硬件系統(tǒng)中。
3系統(tǒng)測試及結(jié)果分析
POWERLINK通信過程比較復(fù)雜,為了能更好地測試雙協(xié)議運(yùn)行情況,搭建了一組主站運(yùn)行雙協(xié)議的POWERLINK網(wǎng)絡(luò),如圖7所示。主站的兩個網(wǎng)口各自接入不同的HUB中,其中一個HUB接入從站節(jié)點(diǎn)1,通信周期為500 μs,數(shù)據(jù)量為250 B。另一個HUB接入從站節(jié)點(diǎn)2和從站節(jié)點(diǎn)3,通信周期為800 μs,數(shù)據(jù)量為250 B。在PC上運(yùn)行wireshark軟件接入網(wǎng)絡(luò)中進(jìn)行測試,這樣能從抓包數(shù)據(jù)中明顯看出兩組數(shù)據(jù)的區(qū)別及各網(wǎng)絡(luò)的運(yùn)行情況。
圖8中主站240與從站1通信數(shù)據(jù)量為250 B,POWERLINK通信周期為兩個相鄰SOC幀時間間隔,即500 μs。圖9中主站240與從站2和從站3通信數(shù)據(jù)量為250 B,通信周期為800 μs。兩個網(wǎng)絡(luò)的從站節(jié)點(diǎn)號、通信周期和數(shù)據(jù)量均與實(shí)驗(yàn)設(shè)計參數(shù)一致,故雙協(xié)議網(wǎng)絡(luò)通信正常,能實(shí)現(xiàn)POWERLINK網(wǎng)絡(luò)。
從圖10和圖11中可以得知,經(jīng)過長時間多次測試數(shù)據(jù)前三位均為0,沒有出現(xiàn)錯誤計數(shù)現(xiàn)象,說明POWERLINK雙協(xié)議運(yùn)行數(shù)據(jù)傳輸正確。
4結(jié)束語
本文以動力定位系統(tǒng)為應(yīng)用背景,針對動力系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,單個控制器在兩個網(wǎng)絡(luò)中同時使用這一情況,深入研究POWERLINK原理及協(xié)議,提出了以ZYNQ為硬件平臺,在雙MicroBlaze軟核平臺上分別運(yùn)行POWERLINK協(xié)議的方法,然后搭建測試網(wǎng)絡(luò)從節(jié)點(diǎn)號、通信周期、數(shù)據(jù)量和數(shù)據(jù)出錯率衡量雙協(xié)議網(wǎng)絡(luò)的正確性和穩(wěn)定性。經(jīng)過多次測試得到實(shí)驗(yàn)實(shí)際參數(shù)與實(shí)驗(yàn)設(shè)計參數(shù)一致且數(shù)據(jù)交互傳輸正確這一結(jié)論,驗(yàn)證了該方案的可行性。
參考文獻(xiàn)
?。?] FOSSEN T I.Guidance and control of ocean vehicles[M].John Wiley & Sons. Ltd,Chichester,1994.
[2] 單春榮, 劉艷強(qiáng), 郇極. 工業(yè)以太網(wǎng)現(xiàn)場總線EtherCAT及驅(qū)動程序設(shè)計[J]. 制造業(yè)自動化, 2007, 29(11):79-82.
?。?] 謝經(jīng)明, 陳幼平, 周祖德,等. SERCOS總線協(xié)議及其在數(shù)控系統(tǒng)中應(yīng)用[J]. 機(jī)械與電子, 2001(5):3-5.
?。?] 劉爭明, 王欽若, 萬振磊. 基于工業(yè)以太網(wǎng)Ethernet Powerlink和ARM9的伺服控制系統(tǒng)的設(shè)計[J]. 工業(yè)控制計算機(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.
?。?] 趙經(jīng)時, 史貴林, 張靜怡,等. 一種雙層Powerlink網(wǎng)絡(luò)的網(wǎng)關(guān)[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.