宋 寶,徐 健,刁思勉,唐小琦
(1.華中科技大學(xué) 機械科學(xué)與工程學(xué)院,武漢 430074;2.中國地質(zhì)大學(xué)(武漢)研究生院,武漢 430074)
?
基于分時復(fù)用策略的EtherCAT從站IP核設(shè)計及實現(xiàn)*
宋寶1,徐 健1,刁思勉2,唐小琦1
(1.華中科技大學(xué) 機械科學(xué)與工程學(xué)院,武漢 430074;2.中國地質(zhì)大學(xué)(武漢)研究生院,武漢 430074)
在分析工業(yè)以太網(wǎng)EtherCAT協(xié)議基礎(chǔ)之上,針對現(xiàn)今EtherCAT從站采用專用ASIC或者商用IP核實現(xiàn)的成本高、不靈活等問題,提出了一種基于通用FPGA的實現(xiàn)方法。該方法根據(jù)數(shù)據(jù)幀驅(qū)動特性的分時復(fù)用策略,將EtherCAT從站IP核中的各個功能模塊任務(wù)進行分類,利用FPGA的并行特性進行模塊任務(wù)的串并行調(diào)度,實現(xiàn)了在無數(shù)據(jù)幀緩存的條件下EtherCAT從站IP核。實驗結(jié)果表明,基于該方法設(shè)計及實現(xiàn)的IP核不僅具有良好的兼容性和穩(wěn)定性,還具有更為優(yōu)良同步特性和快速響應(yīng)特性。
EtherCAT從站;分時復(fù)用;IP核
現(xiàn)場總線技術(shù)在自動化系統(tǒng)中得到了越來越廣泛的應(yīng)用,特別是在基于實時以太網(wǎng)的現(xiàn)場總線控制系統(tǒng)中,如高端數(shù)控加工、機器人控制等實時領(lǐng)域[1-2]。實時工業(yè)以太網(wǎng)協(xié)議EtherCAT由于其具有高效率、支持多種拓?fù)?、同步性能好等特點,廣泛應(yīng)用在各類設(shè)備當(dāng)中[3]。
EtherCAT控制系統(tǒng)的要求EtherCAT從站控制器具有協(xié)議兼容一致性、低延時地快速響應(yīng)性、持續(xù)地穩(wěn)定可靠性和高精度的同步性[4-5]。EtherCAT從站的實現(xiàn)可以采用從站專用控制芯片或者IP核,如采用Beckhoff公司的ET1100進行EtherCAT伺服驅(qū)動器和數(shù)據(jù)采集系統(tǒng)設(shè)計[6-8],采用TI公司的AM335x進行運動控制和驅(qū)動軟件的研究[9-10],未曾見有文獻提及EtherCAT從站IP核的設(shè)計方法及思路。
因此,為解決專用芯片和商用IP核成本高、系統(tǒng)集成不靈活等問題,本文提出了一種基于通用FPGA實現(xiàn)EtherCAT從站控制器的方法。該方法基于數(shù)據(jù)幀驅(qū)動特性的分時復(fù)用策略,將EtherCAT從站IP核中的各個功能模塊任務(wù)進行分類,利用FPGA的并行特性進行模塊任務(wù)的串并行調(diào)度,實現(xiàn)了在無數(shù)據(jù)幀緩存的條件下EtherCAT從站IP核,具有平臺靈活性好、成本低等優(yōu)勢。
以從站控制器收發(fā)數(shù)據(jù)通道中的數(shù)據(jù)幀特性進行分析,如圖1所示,在一個定時周期Tcycle_time內(nèi),從站會收到周期性數(shù)據(jù)幀和若干非周期性數(shù)據(jù)幀,這些數(shù)據(jù)幀之間的間隔tδframe由主站控制器設(shè)定,其最小值為960ns,考慮物理層鏈路的抖動為tjitter,幀長為tframe,數(shù)據(jù)幀處理延時為tdelay。為使從站控制器處理連續(xù)數(shù)據(jù)幀時雙口RAM不沖突,應(yīng)該滿足以下條件:
其中,tdelay直接反映了從站控制器的響應(yīng)特性,其值越小越表示其響應(yīng)特性越好。
圖1 從站收發(fā)數(shù)據(jù)幀特性分析
為確保在實現(xiàn)協(xié)議功能的前提之下,盡量減小tdelay,提出了一種基于數(shù)據(jù)幀特性驅(qū)動的多任務(wù)分時復(fù)用調(diào)度策略,如圖2所示?;跀?shù)據(jù)幀驅(qū)動特性的從站IP核的任務(wù)可以根據(jù)數(shù)據(jù)幀進行分類和劃分,利用FPGA的并行操作特性可以實現(xiàn)各類任務(wù)之間的串并行調(diào)度,實現(xiàn)無緩存數(shù)據(jù)幀條件下的多任務(wù)處理,避免了傳統(tǒng)存儲轉(zhuǎn)發(fā)的長延時,從而極大程度地減小了tdelay。
從站IP核根據(jù)雙口RAM搶占分時復(fù)用特性將各個功能模塊的任務(wù)劃分為兩類,一類是基于數(shù)據(jù)幀驅(qū)動的模塊任務(wù),比如雙口RAM數(shù)據(jù)的上傳和下載,CRC32校驗等;而另一類是并行與整個從站IP核的運行過程,不以數(shù)據(jù)幀為驅(qū)動特性的模塊任務(wù),比如PHY鏈路的狀態(tài)管理,PDI接口等。根據(jù)整個從站IP核實現(xiàn)的分時復(fù)用的快速響應(yīng)策略,數(shù)據(jù)幀從PHY芯片到達FPGA后,經(jīng)過PHY鏈路管理模塊將數(shù)據(jù)rxd/rxdv送至數(shù)據(jù)幀接收端口,之后同時根據(jù)幀結(jié)構(gòu)驅(qū)動的分時復(fù)用策略執(zhí)行雙口RAM操作和CRC32校驗兩個模塊的任務(wù)。
圖2 數(shù)據(jù)幀分時復(fù)用驅(qū)動策略
其中,雙口RAM操作模塊無緩存地產(chǎn)生發(fā)送數(shù)據(jù)幀,直接驅(qū)動CRC32計算模塊,計算新產(chǎn)生數(shù)據(jù)的CRC數(shù)值,附于幀尾后轉(zhuǎn)發(fā)至下一節(jié)點。另一個CRC32校驗任務(wù)從幀頭部分一直持續(xù)到幀尾部分,若幀尾CRC校驗正確,則按照優(yōu)先級次序依次搶占調(diào)用雙口RAM。同時根據(jù)幀類型驅(qū)動的分時復(fù)用策略執(zhí)行數(shù)據(jù)幀內(nèi)容驅(qū)動的任務(wù)模塊,如分布時鐘控制環(huán)、SII EEPROM接口操作和應(yīng)用層狀態(tài)更新等任務(wù)。
以EtherCAT數(shù)據(jù)幀驅(qū)動為例,其格式如圖3所示。利用數(shù)據(jù)幀分時復(fù)用的驅(qū)動特性,將從站IP核中的功能模塊任務(wù)按照EtherCAT數(shù)據(jù)幀結(jié)構(gòu)的定義進行分時調(diào)用。其中,每個子報文所占的時間為tcmdn,數(shù)據(jù)幀只有在子報文的有效數(shù)據(jù)范圍內(nèi)才會上傳和下載雙口RAM中的數(shù)據(jù),因此,為了滿足無緩存數(shù)據(jù)的數(shù)據(jù)幀發(fā)送,tcmdn即為子報文搶占調(diào)用雙口RAM的時間;同時,該數(shù)據(jù)幀驅(qū)動了全數(shù)據(jù)幀范圍的任務(wù),從幀頭至幀尾部分,數(shù)據(jù)幀驅(qū)動CRC驗算模塊,驗算接收通道數(shù)據(jù)幀CRC,并計算發(fā)送數(shù)據(jù)幀CRC;在數(shù)據(jù)幀結(jié)尾,CRC驗算成功后開始執(zhí)行周期性類型幀的驅(qū)動任務(wù);當(dāng)然, EtherCAT從站IP核中同時驅(qū)動并不以數(shù)據(jù)幀來驅(qū)動的模塊,其并不影響無緩存數(shù)據(jù)的數(shù)據(jù)幀發(fā)送。
圖3 數(shù)據(jù)幀驅(qū)動特性的從站IP核調(diào)度
因此,基于數(shù)據(jù)幀驅(qū)動特性的分時復(fù)用策略實現(xiàn)了在無緩存數(shù)據(jù)幀的條件下,從站IP核直接進行低延時地處理和轉(zhuǎn)發(fā),從而極大程度上減小了tdelay,確保了從站控制器的快速響應(yīng)特性;其次,實現(xiàn)了EtherCAT協(xié)議所要求的從站控制器的各個功能模塊,并且利用FPGA的并行操作特性可以方便集成在從站控制器當(dāng)中,確保了協(xié)議兼容的一致性;當(dāng)然,各個模塊任務(wù)在以數(shù)據(jù)幀驅(qū)動特性為核心的調(diào)度之下,避免了各個功能模塊間搶占調(diào)用雙口RAM產(chǎn)生的沖突,提高了整個IP核的執(zhí)行效率和穩(wěn)定性;最后,以數(shù)據(jù)幀驅(qū)動特性作為支持分布時鐘的控制環(huán)輸入,可以在更新參考時鐘后及時進行控制環(huán)的迭代來校準(zhǔn)本地系統(tǒng)時間,實現(xiàn)各個節(jié)點之間的高精度的同步性能。
基于數(shù)據(jù)幀分時復(fù)用驅(qū)動的從站IP核收發(fā)數(shù)據(jù)時序圖如圖4所示,以RMII為例,數(shù)據(jù)幀在每次緩存完一個字節(jié)后進行產(chǎn)生CRC計算信號使能CRC校驗?zāi)K計算一次產(chǎn)生CRC結(jié)果,依次類推,到有效數(shù)據(jù)接收完成后計算產(chǎn)生數(shù)據(jù)的校驗值;同時,在原有數(shù)據(jù)幀接收完成幀尾后判斷是否進行相應(yīng)任務(wù)的操作。另一方面,雙口RAM的操作模塊根據(jù)接收通道中的數(shù)據(jù)產(chǎn)生發(fā)送數(shù)據(jù)txd_reg[1..0],與CRC校驗相同,CRC計算模塊計算該幀的CRC數(shù)值,將其置于幀尾并產(chǎn)生發(fā)送數(shù)據(jù)幀txd至下一節(jié)點。由圖中可以看出,發(fā)送數(shù)據(jù)txd[1..0]相對于接收數(shù)據(jù)rxd[1..0]的tdelay僅有兩個時鐘周期,滿足了從站控制器的快速響應(yīng)性能要求。EtherCAT從站IP核的分布時鐘控制環(huán)同步作為周期性數(shù)據(jù)幀驅(qū)動的一個模塊子任務(wù),其同步算法流程圖如圖5所示。其中,本地時鐘local_time由上電系統(tǒng)啟動后開始運行,分布時鐘控制的同步任務(wù)就是使本地系統(tǒng)時鐘與參考系統(tǒng)時鐘一致,包括兩方面的內(nèi)容,其一是初始偏移量Toffset的補償,其二是實時動態(tài)補償漂移的過程。當(dāng)含有參考時鐘的數(shù)據(jù)幀到來,鎖存本地系統(tǒng)時間副本tlocal_copy_sys_time和tsys_ref作為本周期的分布時鐘控制環(huán)的輸入,計算本地時鐘漂移:
Δt=tlocal_copy_sys_time-Tdelay-tsys_ref
其中,Δt表示本地系統(tǒng)時鐘與參考系統(tǒng)時鐘的漂移量,根據(jù)控制算法流程,在以后的控制環(huán)的Δt個刷新周期內(nèi),每次補償1ns來補償Δt的時鐘偏移量。以周期性數(shù)據(jù)幀進行每個周期的分布時鐘控制環(huán)輸入,可以使本地系統(tǒng)時鐘與參考時鐘保持動態(tài)一致,從而使各個節(jié)點同時產(chǎn)生SYNC/Latch同步信號。
圖4 從站IP核收發(fā)數(shù)據(jù)時序圖
圖5 從站IP核同步流程圖
為驗證測試基于分時復(fù)用策略的EtherCAT從站IP核,針對基于此方法設(shè)計的TSV-HL伺服驅(qū)動器進行了響應(yīng)性能、同步性、穩(wěn)定性和兼容性測試。
首先,搭建了利用FPGA主站分別測試從站IP核和ET1100快速響應(yīng)的實驗平臺,仿真測試結(jié)果如圖6所示,以主站發(fā)送使能和接收使能之間的間隔作為兩種方案響應(yīng)能力的評價指標(biāo),其中,IP核方案的響應(yīng)時間為740ns,而ET1100的響應(yīng)時間為920ns。從中可以看出,基于分時復(fù)用策略的EtherCAT從站IP核具有優(yōu)越的快速響應(yīng)能力。
圖6 快速響應(yīng)能力測試對比結(jié)果
圖7 同步信號產(chǎn)生仿真圖
以Beckhoff公司TwinCAT軟件作為主站測試了兩軸TSV-HL伺服驅(qū)動器的同步性能,其觀測采樣同步產(chǎn)生信號的仿真圖如圖7所示,其采樣時鐘為100MHz。其中,主站同時使能SYNC0和SYNC1同步信號,周期為1ms,SYNC1滯后SYNC0信號1000ns,從產(chǎn)生的SYNC信號可以看出單軸仿真測試的同步信號輸出達到了主站的控制要求。
利用示波器余輝功能,通道1以參考節(jié)點SYNC0信號作為觸發(fā)條件,通道2觀測另一節(jié)點的SYNC0信號,測試結(jié)果圖如圖8所示。可以看出相對于參考節(jié)點的平均誤差大致為-20ns,抖動大致為±20ns,相比較于采用ET1100方案的某伺服驅(qū)動器的±300ns而言,具有較為優(yōu)良的同步性能。
圖8 兩軸同步信號SYNC示意圖
以TwinCAT+單軸TSV-HL伺服驅(qū)動器進行穩(wěn)定性測試,以2ms的通信周期進行連續(xù)12h不間斷地運行,測試其丟幀和錯幀等情況,測試結(jié)果如圖9所示,可以看出不論從TwinCAT監(jiān)測還是從站IP核中的錯誤計數(shù)器監(jiān)測,都不存在丟幀和錯幀的現(xiàn)象,從而反應(yīng)出基于分時復(fù)用策略從站IP核的穩(wěn)定性。
圖9 穩(wěn)定性測試結(jié)果
為測試從站IP核的兼容性,搭建了如圖10所示的測試平臺,包括自制主站、新時達AS260伺服驅(qū)動器、松下A5B伺服驅(qū)動器和四臺TSV-HL伺服驅(qū)動器,測試平臺能夠正常無故障地運轉(zhuǎn),表明從站IP核能夠兼容在標(biāo)準(zhǔn)的EtherCAT網(wǎng)絡(luò)中,能夠適應(yīng)標(biāo)準(zhǔn)EtherCAT接口設(shè)備的互操作性連接。
圖10 兼容性測試平臺
實驗結(jié)果表明,本文提出的基于分時復(fù)用策略的EtherCAT從站IP核設(shè)計和實現(xiàn)方法,能夠在通用低成本FPGA平臺的基礎(chǔ)之上實現(xiàn)EtherCAT通信接口的功能,具有良好的兼容性和穩(wěn)定性;并且有相對于專用ASIC方案而言,具有更為優(yōu)良的同步特性和快速響應(yīng)特性,對靈活低成本在設(shè)備上集成EtherCAT接口具有良好的借鑒意義,具有廣泛的工程應(yīng)用前景和市場價值。
[1] 馮世寧, 馬杰, 趙雪飛. 若干種實時以太網(wǎng)標(biāo)準(zhǔn)的比較[J]. 南京師范大學(xué)學(xué)報: 工程技術(shù)版, 2010, 10(2): 88-92.
[2] Vitturi S, Peretti L, Seno L. Real-time Ethernet networks for motion control[J]. Computer Standards & Interfaces, 2011, 33(5): 465-476.
[3] 徐健, 宋寶, 唐小琦. EtherCAT 與 Modbus 協(xié)議轉(zhuǎn)換網(wǎng)關(guān)的設(shè)計及實現(xiàn)[J]. 組合機床與自動化加工技術(shù), 2015(4): 71-73.
[4] Kim K, Sung M, Jin H W. Design and implementation of a delay-guaranteed motor drive for precision motion control[J]. Industrial Informatics, IEEE Transactions on, 2012, 8(2): 351-365.
[5] Cena G, Bertolotti I C, Scanzio S. Evaluation of EtherCAT distributed clock performance[J]. Industrial Informatics, IEEE Transactions on, 2012, 8(1): 20-29.
[6] 李文虎, 李葉松, 王江城. 伺服驅(qū)動器 EtherCAT 接口設(shè)計[J]. 電氣傳動, 2011, 41(7): 51-55.
[7] 李木國, 王磊, 王靜, 等. 基于 EtherCAT 的工業(yè)以太網(wǎng)數(shù)據(jù)采集系統(tǒng)[J]. 計算機工程, 2010, 36(3): 237-239.
[8] 郭忺. 實時 EtherCAT 通訊的交流伺服驅(qū)動器研究[D]. 廣州:華南理工大學(xué), 2014.
[9] 趙巍. 基于 EtherCAT 總線的運動控制器通信系統(tǒng)設(shè)計與實現(xiàn)[D]. 哈爾濱:哈爾濱工業(yè)大學(xué), 2013.
[10] 任計羽. EtherCAT 從站軟件的設(shè)計與實現(xiàn)[D]. 成都:中國科學(xué)院研究生院 (光電技術(shù)研究所), 2014.
(編輯趙蓉)
Design and Implementation of the EtherCAT Slave IP Core Based on Time Division Multiplexing Strategy
SONG Bao1, XU Jian1, DIAO Si-mian2,TANG Xiao-qi1
(1.School of Mechanical Science and Engineering, HuaZhong University of Science and Technology, Wuhan 430074, China;2. Graduate School, China University of Geosciences, Wuhan 430074, China )
In the analysis of industrial Ethernet EtherCAT protocol basis for today EtherCAT slave or commercial use of special ASIC IP core to achieve the high costs, inflexible and other issues, a common FPGA-based implementation method is proposed. The method according to the driving characteristics of the data frame of time division multiplexing strategy, classifying the EtherCAT slave IP Core individual functional modules mission, carrying out modules tasks with serial and parallel scheduling using FPGA parallel feature to achieve in the absence of data-frame buffer conditions under EtherCAT slave IP Core. Experimental results show that the design and implementation based on the method of IP Core not only has good compatibility and stability, but also has more excellent synchronization characteristics and fast response.
EtherCAT slave;time division multiplexing;IP Core
1001-2265(2016)04-0026-03DOI:10.13462/j.cnki.mmtamt.2016.04.007
2015-06-12
“高檔數(shù)控機床與基礎(chǔ)制造裝備”科技重大專項(2012ZX04001041)
宋寶(1974—),女,湖北黃岡人,華中科技大學(xué)副教授,研究方向為數(shù)控技術(shù)、嵌入式系統(tǒng),(E-mail)songbao@mail.hust.edu.cn。
TH166;TG659
A