《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的EtherCAT從站控制器FMMU模塊設計
基于FPGA的EtherCAT從站控制器FMMU模塊設計
姚旺君,林浩,王永利,邢計元,張鵬
(1.工業(yè)控制系統(tǒng)信息安全技術國家工程實驗室,北京 100083; 2. 中國電子信息產(chǎn)業(yè)集團有限公司第六研究所,北京 100083)
摘要: EtherCAT是一類比較成熟的工業(yè)以太網(wǎng)現(xiàn)場總線,專用于運動控制領域。系統(tǒng)通信采用主從結構,其中從站控制器ESC(EtherCAT Slave Controller)是從站模塊實現(xiàn)EtherCAT協(xié)議數(shù)據(jù)通信的關鍵芯片,對從站控制芯片進行自主研究設計有助于深入了解EtherCAT總線技術,并實現(xiàn)工業(yè)現(xiàn)場總線自主化設計。依據(jù)從站控制器ESC的功能,基于FPGA設計了ESC的子功能模塊FMMU(Field Memory Management Units),通過主站對從站進行邏輯寫操作驗證了FMMU功能模塊的正確性。仿真結果表明,基于FPGA的FMMU功能模塊的實現(xiàn)方案可行。
關鍵詞: EtherCAT ESC FMMU FPGA
中圖分類號:TP273
文獻標識碼:A
DOI: 10.19358/j.issn.2096-5133.2018.08.019
中文引用格式:姚旺君,林浩,王永利,等.基于FPGA的EtherCAT從站控制器FMMU模塊設計[J].信息技術與網(wǎng)絡安全,2018,37(8):77-82.
The design of FMMU module in EtherCAT slave controller based on FPGA
Yao Wangjun,Lin Hao,Wang Yongli, Xing Jiyuan,Zhang Peng
(1. National Engineering Laboratory for Industry Control System Information Security Technology, Beijing 100083, China; 2. The 6th Research Institute of China Electronics Corporation, Beijing 100083, China)
Abstract: EtherCAT is a type of mature industry Ethernet field bus technology, escpecially in motion control system.This communication system uses master and slave structure. The ESC (EtherCAT Slave Controller) is a critical microchip for communication protocol implementation, and it’s helpful for deeply understanding the technique of the EtherCAT and for autonomous design of industry Ethernet field bus technology. Based on the function of EtherCAT slave controller, the basic function FMMU is designed .The results show that implementation of FMMU is completely feasible based on FPGA (Field-Programmable Gate Array).
Key words : EtherCAT; ESC; FMMU; FPGA

基于FPGAEtherCAT從站控制器FMMU模塊設計


 

摘要:EtherCAT是一類比較成熟的工業(yè)以太網(wǎng)現(xiàn)場總線,專用于運動控制領域。系統(tǒng)通信采用主從結構,其中從站控制器ESC(EtherCAT Slave Controller)是從站模塊實現(xiàn)EtherCAT協(xié)議數(shù)據(jù)通信的關鍵芯片,對從站控制芯片進行自主研究設計有助于深入了解EtherCAT總線技術,并實現(xiàn)工業(yè)現(xiàn)場總線自主化設計。依據(jù)從站控制器ESC的功能,基于FPGA設計了ESC的子功能模塊FMMU(Field Memory Management Units),通過主站對從站進行邏輯寫操作驗證了FMMU功能模塊的正確性。仿真結果表明,基于FPGA的FMMU功能模塊的實現(xiàn)方案可行。

關鍵詞:



 

Abstract: 

Key words:  EtherCAT; ESC; FMMU; FPGA

 

0  引言

 

EtherCAT是由BECKHOFF提出和設計的一種工業(yè)以太網(wǎng)現(xiàn)場總線技術,廣泛應用于運動控制領域[1-2] 

EtherCAT主要優(yōu)勢在于高速、高實時性以及精確時鐘同步。這些優(yōu)勢的實現(xiàn)基于EtherCAT設計的幾個關鍵技術:飛讀飛寫(processing on the fly)、FMMU(Fieldbus Memory Management Unit)、DC(Distribute Clock)。以上幾個關鍵技術都是在EtherCAT從站控制器ESC(EtherCAT Slave Controller)中實現(xiàn),ESC是實現(xiàn)EtherCAT通信協(xié)議的關鍵[3-4]

目前,EtherCAT從站控制技術由國外掌握,IP核和芯片全部是由國外公司提供。我國正在執(zhí)行智能制造2025國家戰(zhàn)略,沒有自主化的先進的工業(yè)現(xiàn)場總線,工業(yè)系統(tǒng)升級就只能是亦步亦趨,跟隨國外公司的步伐,無法開發(fā)出具有自主創(chuàng)新技術的專用產(chǎn)品。在工業(yè)控制系統(tǒng)領域,國外工業(yè)控制系統(tǒng)企業(yè)占據(jù)競爭優(yōu)勢,然而,工業(yè)現(xiàn)場總線是工業(yè)控制系統(tǒng)運行的樞紐,無論什么數(shù)據(jù)都要經(jīng)過這個樞紐進行傳輸,出于系統(tǒng)安全的考慮,有必要對工業(yè)現(xiàn)場總線進行研究,以實現(xiàn)自主化設計。目前國內(nèi)已經(jīng)有針對EtherCAT總線技術的研究的:文獻[5]設計并驗證了ESC實現(xiàn)的通信鏈路可行性,文獻[6]提出了一種使用FPGA實現(xiàn)FMMU的算法,但是上述研究都是進行理論推導與算法設計,沒有工程實踐應用。針對該問題,本文基于FPGA依據(jù)EtherCAT工作原理,設計一種能滿足工程實踐的EtherCAT功能單元FMMU,實現(xiàn)了FMMU的地址映射以及數(shù)據(jù)字節(jié)和位提取的功能。

 

1  EtherCAT系統(tǒng)及功能組成

 

EtherCAT主站與從站組成結構如圖1所示。主從站的單次通信過程是:主站遍歷所有從站設備,數(shù)據(jù)幀通過某一從站時,從站設備根據(jù)報文命令分析尋址到本機報文并定位到指定位置進行數(shù)據(jù)讀/寫,數(shù)據(jù)幀到達最后一個從站后,該從站把處理后的數(shù)據(jù)幀發(fā)送給主站。主站收到此上行電報后處理并返回數(shù)據(jù),一次完整的通信過程結束[5-7]。EtherCAT系統(tǒng)整個通信過程由主從站內(nèi)部狀態(tài)機控制,主站采用廣播尋址、自增量尋址、配置地址尋址、邏輯尋址等尋址方式和命令,這個階段,主站獲取了所連從站的基本信息,從站也根據(jù)主站數(shù)據(jù)幀要求對自身進行配置,有過程數(shù)據(jù)要求的對相關從站的FMMU進行配置,這些工作完成后,主從站轉入OP(Operation)態(tài)[7-8]

 

微信截圖_20180925145258.png

 

EtherCAT從站控制器IP主要包括端口控制(Ports)處理單元、Auto-forwarder模塊、Loopback模塊、FMMU、SyncManager、PDI(Process Data Interface)單元、復位處理單元、分布時鐘、EEPROM接口單元、REGS及RAM區(qū),每個功能模塊之間的關聯(lián)如圖2所示。根據(jù)不同的通信階段及從站配置類型,EtherCAT可通過FMMU直接訪問從站控制器的地址控制,讀寫RAM或寄存器區(qū);有的從站過程數(shù)據(jù)交互時必須先通過SyncManager,才能對RAM或寄存器區(qū)進行讀寫訪問,其中SyncManager是為了數(shù)據(jù)一致性以及數(shù)據(jù)安全性而設計的,既用作訪問RAM或寄存器區(qū)的管理單元,又可以作為PDI和ECAT數(shù)據(jù)同步的調(diào)度接口。

 

微信截圖_20180925145308.png

 

 

2  FMMU原理及實現(xiàn)

 

2.1 FMMU運行原理

 

FMMU作為EtherCAT從站控制器的核心功能之一,采用地址映射技術將主站的邏輯地址轉換為從站的物理地址,映射地址空間達4 GB。FMMU用于主站對于從站的邏輯尋址命令幀中,而且能在一個數(shù)據(jù)子幀中對多個分布式從站進行尋址,既能節(jié)約數(shù)據(jù)幀資源,提高數(shù)據(jù)幀利用率,又能方便主站本地的地址空間管理和分配。 

EtherCAT系統(tǒng)運行時,每個EtherCAT從站都有一個配置文件,即ESI(EtherCAT Slave Information)文件,規(guī)定了每個從站的軟件版本、類型、資源配置包括FMMU個數(shù)等情況。主站利用配置工具,將每個從站的ESI文件作為輸入生成ENI(EtherCAT Network Information)文件,主站軟件根據(jù)各個ENI文件了解自身所在EtherCAT網(wǎng)絡的從站信息。主站運行起來后會根據(jù)ENI文件要求對各個從站進行配置,F(xiàn)MMU就是由主站在PREOP到SAFEOP狀態(tài)轉換過程中進行配置的,主站根據(jù)每個從站的ENI信息對相關從站的FMMU配置以下信息:主站邏輯起始地址、字節(jié)長度、邏輯起始位、邏輯結束位、從站物理起始地址、從站物理起始位、訪問方式(讀、寫、讀寫)、使能。映射實例如表1和圖3所示。

 

微信截圖_20180925145419.png

 

微信截圖_20180925145428.png

本實例是將32位的主站邏輯地址0x00014708映射到本地從站物理地址0x0F05,從實例配置表中可以看出,邏輯映射起始位為bit 5,結束位為bit 3,映射長度為7 bit,操作類型是寫。 

從站FMMU是由主站在PREOP狀態(tài)利用FPWR(Configured Address Physical Write)命令進行配置的。從站配置成功,并且系統(tǒng)轉入OP狀態(tài)之后,在進行過程數(shù)據(jù)的交互時,從站會收到主站發(fā)出的邏輯尋址的EtherCAT子報文,根據(jù)各個從站的FMMU邏輯配置情況,查詢是否有與子報文中邏輯地址區(qū)相匹配的區(qū)域,如果有,且為輸入類型數(shù)據(jù)(主站讀訪問操作),則從站FMMU會將映射的物理地址區(qū)數(shù)據(jù)插入到EtherCAT子報文數(shù)據(jù)區(qū)的對應位置;如果配置邏輯地址在子報文邏輯地址區(qū)域內(nèi)且為輸出類型數(shù)據(jù)(主站寫訪問操作),則從站FMMU根據(jù)配置要求將邏輯地址區(qū)數(shù)據(jù)抽取到被映射的相應物理地址區(qū)。

 

2.2 FMMU實現(xiàn)原理

 

根據(jù)以上FMMU運行原理及配置實例分析,可將FMMU的實現(xiàn)原理分為兩部分:FMMU配置設計與實現(xiàn)、FMMU數(shù)據(jù)處理設計與實現(xiàn)。

 

2.2.1 FMMU配置設計與實現(xiàn)

 

根據(jù)EtherCAT協(xié)議和規(guī)范,從站的FMMU只能由主站進行配置,配置寄存器的基地址為0x0600開始的256B(FMMU個數(shù)為8,每個FMMU配置寄存器個數(shù)為16)的區(qū)域,表2~9所示為FMMU的所有配置寄存器描述說明(其中y表示FMMU索引,值為0~15)。

 



FMMU的配置實現(xiàn)過程(即在PREOP狀態(tài),主站發(fā)FPWR命令幀進行配置)如圖4所示。從站FPGA根據(jù)EEPROM配置的FMMU個數(shù)(0x0004寄存器的值,即圖中變量n)依照圖4所示邏輯對從站的FMMU進行配置,配置的邏輯地址起始位要大于等于配置的物理地址起始位。

微信截圖_20180925145723.png

 

2.2.2 FMMU數(shù)據(jù)處理-主站讀

 

主站發(fā)LRD(邏輯讀)或者LRW(邏輯讀寫)命令幀,通過FMMU對從站進行讀操作,讀操作分為按位讀(bit-wise reading)和按字節(jié)讀 (byte-wise reading)兩種方式,按位讀支持對從站任何允許的地址區(qū)域操作。邏輯讀操作處理邏輯為: FPGA代碼判斷訪問類型是否為讀配置、幀命令是否為LRD和LRW、地址是否在邏輯映射地址區(qū)間內(nèi),滿足這三個條件后,置一個標志位,在此標志位為1的情況下,將被映射的物理地址中的數(shù)據(jù)插入到數(shù)據(jù)幀的邏輯地址空間。

 

2.2.3FMMU數(shù)據(jù)處理-主站寫

 

主站發(fā)LWR或者LRW命令幀,通過FMMU對從站進行寫操作,寫操作分為按位寫和按字節(jié)寫兩種方式。對于按位操作來說,對同一個從站內(nèi)的兩個FMMU都進行按位寫操作的情況下,兩個FMMU的邏輯起始地址之差值設置為大于等于3。對于按字節(jié)操作來說,沒有這個限制。按位寫只支持對從站地址區(qū)域為0x0F00:0x0F03的數(shù)字量輸出寄存器的按位寫操作,對于除此區(qū)域之外的其他地址區(qū)域的按位寫操作,未映射的區(qū)域?qū)粚懭敕嵌x的值,按字節(jié)寫沒有這種區(qū)域限制。圖5所示為寫操作的實現(xiàn)邏輯。

 

微信截圖_20180925150041.png

 

在寫操作的實現(xiàn)邏輯中,通過設置掩碼,將需要寫入的bit置1,不需要寫入的bit置0,然后將掩碼與原先物理地址區(qū)域或寄存器中的原值進行邏輯運算,既將要寫入的bit寫入了物理寄存器中,又保留了不需要更新的物理寄存器中的原值保留。

 

3  功能測試

 

功能測試選取LWR命令進行驗證,對兩個從站采用按位寫的映射方式。通過在testbench(測試臺)中編寫EtherCAT邏輯寫測試包激勵,使用Modelsim對設計的FMMU模塊設計進行仿真測試,驗證從站0xF00:0xF03中最終被寫入數(shù)據(jù)的正確性。

 

3.1 測試例說明

 

測試例采用兩個從站,從站的0xF00:0xF03寄存器值默認復位都為0;主站采用LWR命令,邏輯起始地址0x01000011,寫入5B數(shù)據(jù)0xaa556789ab,網(wǎng)絡協(xié)議采用高字節(jié)順序,即高字節(jié)數(shù)據(jù)存放在低字節(jié)地址,而且在傳輸中最先傳輸最低位,數(shù)據(jù)格式見表10所示。

 

微信截圖_20180925150137.png


第一個從站的配置如表11所示,假設此從站物理寄存0x0F00:0F03初始值為0xabcdef78,按FMMU實現(xiàn)原理分析,F(xiàn)MMU模塊截取邏輯寫幀的值應該為6 bit: 010100,寫入到物理寄存器0x0F00:0x0F03(leastbit:10101001即為0x95)的值為0x95cdef78。

 

微信截圖_20180925150144.png


第二個從站的配置如表12所示,假設此從站物理寄存0x0F00:0F03初始值為0x12345678;按FMMU 實現(xiàn)原理分析,F(xiàn)MMU模塊截取邏輯寫幀的值應該為6 bit: 001101,寫入到物理寄存器0x0F00:0x0F03(leastbit:00011010即為0x58)的值為0x12585678。

 

微信截圖_20180925150151.png


3.2 仿真測試驗證

 

仿真采用Modelsim軟件進行,根據(jù)表11和表12的配置要求,對從站1和從站2分別進行邏輯按位寫仿真驗證。

根據(jù)表11中第一個從站的測試例,取主站邏輯地址0x01000011中的數(shù)據(jù)0x55,得到的mask為0x3E00,處理后的數(shù)據(jù)為0x1540;取主站邏輯地址0x01000012中的數(shù)據(jù)0xaa,得到的mask為0x0040,處理后的數(shù)據(jù)為0x2a95,如圖6所示。

 

 

對數(shù)據(jù)進行掩碼操作處理,將物理地址0x0F00 中bit1~bit6對應的6 bit數(shù)據(jù)用邏輯地址0x01000011對應的bit3開始的6 bit數(shù)據(jù)替換,得到從站1的物理地址0x0F00的數(shù)據(jù)為0x95,數(shù)據(jù)處理仿真結果如圖7所示。

根據(jù)表12中第二個從站的測試例,取主站邏輯地址0x01000013中的數(shù)據(jù)0x89,得到的mask為0x3E00,處理后的數(shù)據(jù)為0x19C0;取主站邏輯地址0x01000014中的數(shù)據(jù)0x67,得到的mask為0x0040,處理后的數(shù)據(jù)為0x2295,如圖8所示。

對數(shù)據(jù)進行掩碼操作處理,將物理地址0x0F01 中bit1~bit6對應的6 bit數(shù)據(jù)用邏輯地址0x01000013對應的bit3開始的6 bit數(shù)據(jù)替換,得到從站2的物理地址0x0F01的數(shù)據(jù)為0x58,數(shù)據(jù)處理仿真結果如圖9所示。

 


 

4  結論

 

通過對FMMU實現(xiàn)邏輯代碼的Modelsim仿真數(shù)據(jù)結果,驗證了FMMU原理及其邏輯實現(xiàn)的正確性,說明用FPGA實現(xiàn)EtherCAT從站控制器FMMU模塊是完全可行的,為開發(fā)完善的ESC從站控制器創(chuàng)造了條件。

 

參考文獻

[1] 謝香林.EtherCAT網(wǎng)絡及其伺服運動控制系統(tǒng)研究[D].大連:大連理工大學,2008.

[2] 胡世江. 基于ET1100的EtherCAT實時工業(yè)以太網(wǎng)從站設計[J]. 可編程控制器與工廠自動化, 2009 (11):67-70.

[3] GB/T 31230.3-2014,工業(yè)以太網(wǎng)現(xiàn)場總線EtherCAT 第3部分:數(shù)據(jù)鏈路層服務定義[S].北京:中國標準出版社出版,2014. 

[4] 馬軍賢,周侗,楊志家,等. EtherCAT從站的設計與實現(xiàn)[J]. 自動化與儀表, 2011(8):37-40. 

[5] 馬保全, 姚旺君, 劉云龍,等. 基于FPGA的EtherCAT從站通信鏈路分析與驗證[J].電子技術應用, 2017, 43(8):95-99. 

[6] 楊建武,胡濤濤. EtherCAT從站控制IP核中FMMU的一種算法[J]. 制造業(yè)自動化, 2013, 35(10): 83-86. 

[7] 郇極,劉艷強.工業(yè)以太網(wǎng)現(xiàn)場總線EtherCAT驅(qū)動程序設計及應用[M].北京:北京航空航天大學出版社,2010.

[8] 汪雅楠.工業(yè)以太網(wǎng)EtherCAT通信系統(tǒng)的研究與仿真[D].北京:北京交通大學,2011.(收稿日期:2018-05-22)

 

 

作者簡介:

姚旺君(1983-),通信作者,男,碩士,工程師,主要研究方向:工業(yè)控制系統(tǒng)、電路與系統(tǒng)、信號處理。E-mail:yaowan19432003@163.com。 

林浩(1988-),男,博士,工程師,主要研究方向:工業(yè)控制與自動化、機器人。 

王永利(1982-),男,碩士,工程師,主要研究方向:信息安全、信號處理。

 

 


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。