文獻(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)是從站模塊實現(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]。
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原理及實現(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所示,。
本實例是將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)行配置,,配置的邏輯地址起始位要大于等于配置的物理地址起始位,。
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)邏輯。
在寫操作的實現(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所示。
第一個從站的配置如表11所示,,假設(shè)此從站物理寄存0x0F00:0F03初始值為0xabcdef78,,按FMMU實現(xiàn)原理分析,F(xiàn)MMU模塊截取邏輯寫幀的值應(yīng)該為6 bit: 010100,,寫入到物理寄存器0x0F00:0x0F03(leastbit:10101001即為0x95)的值為0x95cdef78,。
第二個從站的配置如表12所示,假設(shè)此從站物理寄存0x0F00:0F03初始值為0x12345678,;按FMMU 實現(xiàn)原理分析,,F(xiàn)MMU模塊截取邏輯寫幀的值應(yīng)該為6 bit: 001101,寫入到物理寄存器0x0F00:0x0F03(leastbit:00011010即為0x58)的值為0x12585678,。
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-),,男,,碩士,工程師,,主要研究方向:信息安全,、信號處理。