《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的EtherCAT從站控制器FMMU模塊設(shè)計
基于FPGA的EtherCAT從站控制器FMMU模塊設(shè)計
姚旺君,林浩,王永利,邢計元,張鵬
(1.工業(yè)控制系統(tǒng)信息安全技術(shù)國家工程實驗室,,北京 100083,; 2. 中國電子信息產(chǎn)業(yè)集團(tuán)有限公司第六研究所,,北京 100083)
摘要: EtherCAT是一類比較成熟的工業(yè)以太網(wǎng)現(xiàn)場總線,,專用于運(yùn)動控制領(lǐng)域。系統(tǒng)通信采用主從結(jié)構(gòu),,其中從站控制器ESC(EtherCAT Slave Controller)是從站模塊實現(xiàn)EtherCAT協(xié)議數(shù)據(jù)通信的關(guān)鍵芯片,,對從站控制芯片進(jìn)行自主研究設(shè)計有助于深入了解EtherCAT總線技術(shù),,并實現(xiàn)工業(yè)現(xiàn)場總線自主化設(shè)計,。依據(jù)從站控制器ESC的功能,,基于FPGA設(shè)計了ESC的子功能模塊FMMU(Field Memory Management Units),通過主站對從站進(jìn)行邏輯寫操作驗證了FMMU功能模塊的正確性,。仿真結(jié)果表明,,基于FPGA的FMMU功能模塊的實現(xiàn)方案可行。
關(guān)鍵詞: EtherCAT ESC FMMU FPGA
中圖分類號:TP273
文獻(xiàn)標(biāo)識碼:A
DOI: 10.19358/j.issn.2096-5133.2018.08.019
中文引用格式:姚旺君,林浩,王永利,等.基于FPGA的EtherCAT從站控制器FMMU模塊設(shè)計[J].信息技術(shù)與網(wǎng)絡(luò)安全,,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模塊設(shè)計


 

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

關(guān)鍵詞:



 

Abstract: 

Key words:  EtherCAT; ESC; FMMU; FPGA

 

0  引言

 

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

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

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

 

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

 

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

 

微信截圖_20180925145258.png

 

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

 

微信截圖_20180925145308.png

 

 

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

 

2.1 FMMU運(yùn)行原理

 

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

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

 

微信截圖_20180925145419.png

 

微信截圖_20180925145428.png

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

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

 

2.2 FMMU實現(xiàn)原理

 

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

 

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

 

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

 



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

微信截圖_20180925145723.png

 

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

 

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

 

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

 

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

 

微信截圖_20180925150041.png

 

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

 

3  功能測試

 

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

 

3.1 測試?yán)f明

 

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

 

微信截圖_20180925150137.png


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

 

微信截圖_20180925150144.png


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

 

微信截圖_20180925150151.png


3.2 仿真測試驗證

 

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

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

 

 

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

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

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

 


 

4  結(jié)論

 

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

 

參考文獻(xiàn)

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

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

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

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

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

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

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

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

 

 

作者簡介:

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

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

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

 

 


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