文獻(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.
基于FPGA的EtherCAT從站控制器FMMU模塊設(shè)計
摘要:EtherCAT是一類比較成熟的工業(yè)以太網(wǎng)現(xiàn)場總線,專用于運(yùn)動控制領(lǐng)域。系統(tǒng)通信采用主從結(jié)構(gòu),其中從站控制器ESC(EtherCAT Slave Controller)是從站模塊實(shí)現(xiàn)EtherCAT協(xié)議數(shù)據(jù)通信的關(guān)鍵芯片,對從站控制芯片進(jìn)行自主研究設(shè)計有助于深入了解EtherCAT總線技術(shù),并實(shí)現(xiàn)工業(yè)現(xiàn)場總線自主化設(shè)計。依據(jù)從站控制器ESC的功能,基于FPGA設(shè)計了ESC的子功能模塊FMMU(Field Memory Management Units),通過主站對從站進(jìn)行邏輯寫操作驗(yàn)證了FMMU功能模塊的正確性。仿真結(jié)果表明,基于FPGA的FMMU功能模塊的實(shí)現(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)勢在于高速、高實(shí)時性以及精確時鐘同步。這些優(yōu)勢的實(shí)現(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)中實(shí)現(xiàn),ESC是實(shí)現(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)行研究,以實(shí)現(xiàn)自主化設(shè)計。目前國內(nèi)已經(jīng)有針對EtherCAT總線技術(shù)的研究的:文獻(xiàn)[5]設(shè)計并驗(yàn)證了ESC實(shí)現(xiàn)的通信鏈路可行性,文獻(xiàn)[6]提出了一種使用FPGA實(shí)現(xiàn)FMMU的算法,但是上述研究都是進(jìn)行理論推導(dǎo)與算法設(shè)計,沒有工程實(shí)踐應(yīng)用。針對該問題,本文基于FPGA依據(jù)EtherCAT工作原理,設(shè)計一種能滿足工程實(shí)踐的EtherCAT功能單元FMMU,實(shí)現(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]。
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)度接口。
2 FMMU原理及實(shí)現(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é)束位、從站物理起始地址、從站物理起始位、訪問方式(讀、寫、讀寫)、使能。映射實(shí)例如表1和圖3所示。
本實(shí)例是將32位的主站邏輯地址0x00014708映射到本地從站物理地址0x0F05,從實(shí)例配置表中可以看出,邏輯映射起始位為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實(shí)現(xiàn)原理
根據(jù)以上FMMU運(yùn)行原理及配置實(shí)例分析,可將FMMU的實(shí)現(xiàn)原理分為兩部分:FMMU配置設(shè)計與實(shí)現(xiàn)、FMMU數(shù)據(jù)處理設(shè)計與實(shí)現(xiàn)。
2.2.1 FMMU配置設(shè)計與實(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的配置實(shí)現(xiàn)過程(即在PREOP狀態(tài),主站發(fā)FPWR命令幀進(jìn)行配置)如圖4所示。從站FPGA根據(jù)EEPROM配置的FMMU個數(shù)(0x0004寄存器的值,即圖中變量n)依照圖4所示邏輯對從站的FMMU進(jìn)行配置,配置的邏輯地址起始位要大于等于配置的物理地址起始位。
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ū)域?yàn)?x0F00:0x0F03的數(shù)字量輸出寄存器的按位寫操作,對于除此區(qū)域之外的其他地址區(qū)域的按位寫操作,未映射的區(qū)域?qū)粚懭敕嵌x的值,按字節(jié)寫沒有這種區(qū)域限制。圖5所示為寫操作的實(shí)現(xiàn)邏輯。
在寫操作的實(shí)現(xiàn)邏輯中,通過設(shè)置掩碼,將需要寫入的bit置1,不需要寫入的bit置0,然后將掩碼與原先物理地址區(qū)域或寄存器中的原值進(jìn)行邏輯運(yùn)算,既將要寫入的bit寫入了物理寄存器中,又保留了不需要更新的物理寄存器中的原值保留。
3 功能測試
功能測試選取LWR命令進(jìn)行驗(yàn)證,對兩個從站采用按位寫的映射方式。通過在testbench(測試臺)中編寫EtherCAT邏輯寫測試包激勵,使用Modelsim對設(shè)計的FMMU模塊設(shè)計進(jìn)行仿真測試,驗(yà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所示。
第一個從站的配置如表11所示,假設(shè)此從站物理寄存0x0F00:0F03初始值為0xabcdef78,按FMMU實(shí)現(xiàn)原理分析,F(xiàn)MMU模塊截取邏輯寫幀的值應(yīng)該為6 bit: 010100,寫入到物理寄存器0x0F00:0x0F03(leastbit:10101001即為0x95)的值為0x95cdef78。
第二個從站的配置如表12所示,假設(shè)此從站物理寄存0x0F00:0F03初始值為0x12345678;按FMMU 實(shí)現(xiàn)原理分析,F(xiàn)MMU模塊截取邏輯寫幀的值應(yīng)該為6 bit: 001101,寫入到物理寄存器0x0F00:0x0F03(leastbit:00011010即為0x58)的值為0x12585678。
3.2 仿真測試驗(yàn)證
仿真采用Modelsim軟件進(jìn)行,根據(jù)表11和表12的配置要求,對從站1和從站2分別進(jìn)行邏輯按位寫仿真驗(yà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實(shí)現(xiàn)邏輯代碼的Modelsim仿真數(shù)據(jù)結(jié)果,驗(yàn)證了FMMU原理及其邏輯實(shí)現(xiàn)的正確性,說明用FPGA實(shí)現(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實(shí)時工業(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è)計與實(shí)現(xiàn)[J]. 自動化與儀表, 2011(8):37-40.
[5] 馬保全, 姚旺君, 劉云龍,等. 基于FPGA的EtherCAT從站通信鏈路分析與驗(yàn)證[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:yaowan19432003@163.com。
林浩(1988-),男,博士,工程師,主要研究方向:工業(yè)控制與自動化、機(jī)器人。
王永利(1982-),男,碩士,工程師,主要研究方向:信息安全、信號處理。