《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于ZYNQ的POWERLINK雙協(xié)議組網研究與實現
基于ZYNQ的POWERLINK雙協(xié)議組網研究與實現
2017年微型機與應用第9期
萬沈文,吳海然,方立,吳忠兵,閆渠成
上海振華重工電氣有限公司,上海 200125
摘要: 動力定位系統(tǒng)主要用來解決船舶深海動力定位問題,系統(tǒng)對網絡實時性和安全性有著極高的要求。同時動力定位系統(tǒng)網絡節(jié)點多且網絡結構復雜,部分單元控制器和數據采集器往往需要收發(fā)兩個網絡的數據。在深入比較分析各種實時以太網的基礎上,選擇了具有實時性和安全性的工業(yè)以太網POWERLINK為研究對象,采用ZYNQ為硬件平臺,提出了在ZYNQ上建立兩個MicroBlaze軟核分別運行兩個獨立POWERLINK協(xié)議的新方法。該方法能解決控制器雙網絡平臺復用問題,同時還能實現POWERLINK主從站的任意組合,達到優(yōu)化網絡結構和降低成本的效果。最后組建了POWERLINK雙協(xié)議網絡并利用wireshark進行抓包測試,測得兩組網絡實際參數與設計參數相同且數據交互傳輸正確,實驗結果證明了該方案的可靠性和正確性。
Abstract:
Key words :

  萬沈文,吳海然,方立,吳忠兵,閆渠成

  (上海振華重工電氣有限公司,上海 200125)

  摘要動力定位系統(tǒng)主要用來解決船舶深海動力定位問題,系統(tǒng)對網絡實時性和安全性有著極高的要求。同時動力定位系統(tǒng)網絡節(jié)點多且網絡結構復雜,部分單元控制器和數據采集器往往需要收發(fā)兩個網絡的數據。在深入比較分析各種實時以太網的基礎上,選擇了具有實時性和安全性的工業(yè)以太網POWERLINK為研究對象,采用ZYNQ為硬件平臺,提出了在ZYNQ上建立兩個MicroBlaze軟核分別運行兩個獨立POWERLINK協(xié)議的新方法。該方法能解決控制器雙網絡平臺復用問題,同時還能實現POWERLINK主從站的任意組合,達到優(yōu)化網絡結構和降低成本的效果。最后組建了POWERLINK雙協(xié)議網絡并利用wireshark進行抓包測試,測得兩組網絡實際參數與設計參數相同且數據交互傳輸正確,實驗結果證明了該方案的可靠性和正確性。

  關鍵詞:POWERLINK;雙協(xié)議;ZYNQ;動力定位系統(tǒng)

  中圖分類號:TP23;TP393.11文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.09.020

  引用格式:萬沈文,吳海然,方立,等.基于ZYNQ的POWERLINK雙協(xié)議組網研究與實現[J].微型機與應用,2017,36(9):67-70,77.

0引言

  動力定位系統(tǒng)(Dynamic Positioning System,DPS)通過實時檢測船舶的實際位置與目標位置的偏差,計算出使船舶到達目標位置所需推力的大小,并對船舶上各推進器進行推力分配控制,從而使船盡可能地保持在所要求的位置和方向上[1]。船舶動力定位控制系統(tǒng)對安全性和實時性要求非常高,一旦出現故障,將帶來巨大的經濟損失和安全問題。此外動力定位系統(tǒng)網絡節(jié)點多且網絡結構復雜,部分控制器和數據采集單元往往要收發(fā)兩個網絡的數據。在比較各種實時以太網[23]后選擇POWERLINK來作為動力定位控制系統(tǒng)的實時以太網。

  目前,POWERLINK的研究集中在協(xié)議性能分析與應用等方面,在國內主要用于CNC和機器人[4]以及安全控制等領域[5]。而POWERLINK在多網絡平臺下的使用研究較少,北方自動控制技術研究所研究的雙層POWERLINK網絡網關采用的雙芯片架構(MCU+FPGA)主要用于實現兩組網絡傳輸同步性問題[6],但對單FPGA芯片上實現雙網絡和數據傳輸問題未做出相關研究。國外研究方面意大利帕多瓦大學的L.Seno等人將POWERLINK應用于報警處理系統(tǒng)[7];法國格勒諾布爾大學的

  A.Soury等人將POWERLINK和openSAFETY結合使用在電梯網絡化控制系統(tǒng)中[8]。以上多為研究POWERLINK分布式組網、安全性冗余設計及POWERLINK仿真[911],對雙網絡組網模式研究較少。

  本文對船舶動力定位控制系統(tǒng)網絡進行了研究,分析網絡拓撲圖的結構。根據控制單元和數據采集單元的使用情況,設計了一種以ZYNQ和PHY芯片為硬件平臺,并在ZYNQ上建立兩個MicroBlaze軟核獨立運行POWRLINK協(xié)議。最后用wireshark分別對兩組網絡進行抓包測試,網絡測試參數與網絡設計參數一致,驗證了設計方案的正確性和可靠性。

1動力定位系統(tǒng)網絡結構分析

001.jpg

  如圖1所示動力定位系統(tǒng)網絡結構主要分為3層:信息層、控制層及設備層。信息層主要是由計算機組成,在整個系統(tǒng)中主要是控制各個設備的信息傳輸顯示設備的運行狀態(tài)??刂茖又饕煽刂破骱凸I(yè)以太網組成,其中CU為控制單元器,DAU為數據采集器。CU主要負責解析指令、算法執(zhí)行和數據通信,DAU主要負責采集外接設備如風傳感器、無線電系統(tǒng)、推進器等數據信息。設備層主要是由艏向傳感器、動力系統(tǒng)和推力系統(tǒng)等組成。

  POWERLINK網絡中負責管理總線使用權的節(jié)點被稱為POWERLINK管理節(jié)點(Managed Node,MN),通常稱為主站。網絡上的所有可用節(jié)點都由管理節(jié)點管理操作,一個POWERLINK網絡只能有一個管理節(jié)點。僅在MN分配的通信時隙內發(fā)送報文的所有其他節(jié)點被稱為受控節(jié)點(Controlled Node,CN), 通常稱為從站[12]。從站的數據收發(fā),完全由主站控制。

002.jpg

  動力定位系統(tǒng)設備數量多、網絡結構復雜,部分控制器和數據采集單元往往要收發(fā)兩個網絡的數據。如圖2所示,CU1、CU2、CU3將指令和算法下發(fā)到DAU1、DAU2、DAU3中,在此網絡中CU1、CU2、CU3作為主站使用,DAU1、DAU2、DAU3作為從站使用。

003.jpg

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

  從以上兩組網絡拓撲圖中可以看出,CU3在第一種網絡中作主站使用,在第二種網絡中作從站使用。換而言之,CU3需要分別運行POWERLINK主從站兩種協(xié)議才能實現該功能。

2系統(tǒng)設計

  2.1硬件設計

  考慮到控制器功能復雜以及FPGA資源等問題,故選擇Xilinx公司的ZYNQ作為硬件平臺。除了ZYNQ之外,實現POWERLINK通信節(jié)點還需要如下硬件:

 ?。?)一片512 MB×8 bit的NAND Flash芯片S34ML04G100TFI,用作存儲POWERLINK程序和文件系統(tǒng)。

  (2)兩片128 MB×16 bit的DDR3芯片MT41J128M16HA125IT,作為運行POWERLINK協(xié)議棧所需要的外部內存。

 ?。?)POWELRINK是通過節(jié)點地址來尋址的,每個節(jié)點都有一個NodeID,需要一個8 bit撥碼開關來設置節(jié)點的NodeID。

 ?。?)網絡總路數為兩路,選擇兩片型號為88E1111的芯片作為PHY芯片。采用IO接口較少的RMII(Reduced Medium Idependent Interface)模式作為PHY的工作模式。在PHY芯片上再外接兩個RJ45的網口,每路端口均提供通信與watchdog狀態(tài)指示LED。

 ?。?)50 MHz的晶振為FPGA和整個硬件系統(tǒng)提供時鐘源。

 ?。?)JTAG接口用于軟件的調試和程序的下載。

  硬件系統(tǒng)框圖如圖4所示。

  

004.jpg

  2.2軟件設計

  目前常用的POWERLINK方案有兩種:基于MCU/CPU的C語言方案和基于FPGA的Verilog HDL方案。POWERLINK是一種基于C語言的方案,如果運行于FPGA中需要在FPGA內實現一個軟處理器,如MicroBlaze[13]。

  POWERLINK雙協(xié)議實現需要在嵌入式處理器中選擇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所示系統(tǒng)采用AXI總線作為系統(tǒng)的通信結構,axi2axi_connector實現AXIlite總線上的slave共享,兩個MicroBlaze核之間協(xié)同處理共享slave??偩€上掛處理器通信模塊Mailbox和處理器同步模塊Mutex。兩個MicroBlaze各自有一個BRAM用來存儲處理器私有的指令和數據。表1列出了雙MicroBlaze中系統(tǒng)結構的主要模塊。

005.jpg

006.jpg

  如圖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不同的組網模式,組網模式主要有環(huán)形、星形和菊花鏈形等。

  設置完XPS中的MicroBlaze、bram和AXI總線后將硬件設計導出至SDK軟件中,

010.jpg

  在SDK中導入POWERLINK開源程序后建立BSP(Board Support Package)達到軟件在硬件主板上運行的目的。程序需要配置各站的節(jié)點號、通信周期、數據量,并將應用程序變量和對象字典對應的對象關聯(lián)起來,需要修改的部分如下:

 ?。?)主站節(jié)點號、通信周期和數據量設置:

  #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

  (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變量值發(fā)送給節(jié)點1,周期性地把從節(jié)點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節(jié)點號,因此設置時節(jié)點號不能重復。根據節(jié)點號可將POWERLINK程序分主站程序和從站程序,編寫腳本文件將主站與主站、主站與從站、從站與從站3種模式組合成3個文件,根據應用需求通過JTAG下載至硬件系統(tǒng)中。

3系統(tǒng)測試及結果分析

  POWERLINK通信過程比較復雜,為了能更好地測試雙協(xié)議運行情況,搭建了一組主站運行雙協(xié)議的POWERLINK網絡,如圖7所示。主站的兩個網口各自接入不同的HUB中,其中一個HUB接入從站節(jié)點1,通信周期為500 μs,數據量為250 B。另一個HUB接入從站節(jié)點2和從站節(jié)點3,通信周期為800 μs,數據量為250 B。在PC上運行wireshark軟件接入網絡中進行測試,這樣能從抓包數據中明顯看出兩組數據的區(qū)別及各網絡的運行情況。

 

007.jpg

008.jpg

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

009.jpg

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

4結束語

  本文以動力定位系統(tǒng)為應用背景,針對動力系統(tǒng)網絡結構復雜,單個控制器在兩個網絡中同時使用這一情況,深入研究POWERLINK原理及協(xié)議,提出了以ZYNQ為硬件平臺,在雙MicroBlaze軟核平臺上分別運行POWERLINK協(xié)議的方法,然后搭建測試網絡從節(jié)點號、通信周期、數據量和數據出錯率衡量雙協(xié)議網絡的正確性和穩(wěn)定性。經過多次測試得到實驗實際參數與實驗設計參數一致且數據交互傳輸正確這一結論,驗證了該方案的可行性。

  參考文獻

 ?。?] FOSSEN T I.Guidance and control of ocean vehicles[M].John Wiley & Sons. Ltd,Chichester,1994.

  [2] 單春榮, 劉艷強, 郇極. 工業(yè)以太網現場總線EtherCAT及驅動程序設計[J]. 制造業(yè)自動化, 2007, 29(11):79-82.

 ?。?] 謝經明, 陳幼平, 周祖德,等. SERCOS總線協(xié)議及其在數控系統(tǒng)中應用[J]. 機械與電子, 2001(5):3-5.

  [4] 劉爭明, 王欽若, 萬振磊. 基于工業(yè)以太網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.

 ?。?] 趙經時, 史貴林, 張靜怡,等. 一種雙層Powerlink網絡的網關[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.


此內容為AET網站原創(chuàng),未經授權禁止轉載。