基于FPGA狀態(tài)機(jī)設(shè)計(jì)實(shí)現(xiàn)EtherCAT從站基本通信鏈路并驗(yàn)證
摘 要: EtherCAT是工業(yè)控制領(lǐng)域廣泛應(yīng)用的現(xiàn)場(chǎng)總線之一,從站控制器ESC(EtherCAT Slave Controller)是從站模塊實(shí)現(xiàn)EtherCAT協(xié)議數(shù)據(jù)通信的關(guān)鍵,對(duì)從站控制芯片實(shí)現(xiàn)自主可控是工業(yè)控制系統(tǒng)國(guó)產(chǎn)化研發(fā)的重要基礎(chǔ)?;贓therCAT通信協(xié)議及基本通信功能邏輯,設(shè)計(jì)了EBUS編碼/解碼、Auto-forwarder、Loop-back function關(guān)鍵通信節(jié)點(diǎn)的FPGA狀態(tài)機(jī),并通過(guò)解析各階段數(shù)據(jù)狀態(tài)變化,驗(yàn)證了各節(jié)點(diǎn)通信數(shù)據(jù)的正確性。實(shí)驗(yàn)結(jié)果表明,基于上述狀態(tài)機(jī)的FPGA實(shí)現(xiàn)EtherCAT從站基本通信鏈路是完全可行的。
0 引言EtherCAT是由BECKHOFF提出的在工業(yè)控制領(lǐng)域獲得廣泛應(yīng)用的現(xiàn)場(chǎng)總線之一,該總線具備全雙工工作模式,可基于主站(Master)和從站(Slave)連接的模式實(shí)現(xiàn)數(shù)據(jù)傳遞,且具有低延時(shí)、高安全性的特點(diǎn)。EtherCAT從站控制器ESC(EtherCAT Slave Controller)是從站模塊實(shí)現(xiàn)EtherCAT通信協(xié)議的關(guān)鍵,目前國(guó)內(nèi)基于EtherCAT協(xié)議的通信功能基本都采用ET1100/ET1200等從站芯片來(lái)實(shí)現(xiàn)[1-4]。然而,由于這類芯片除基本通信功能外,還具備大量其他功能,而此類額外通信機(jī)制并不對(duì)我國(guó)技術(shù)人員公開,造成對(duì)此類通信芯片還無(wú)法實(shí)現(xiàn)完全自主可控,采用有效的安全機(jī)制提升系統(tǒng)安全性更是無(wú)從談起。隨著工業(yè)控制領(lǐng)域的信息安全問(wèn)題日益突出,此類不可自主可控通信芯片的應(yīng)用給我國(guó)核心控制系統(tǒng)的運(yùn)行引入一定安全風(fēng)險(xiǎn)。為了實(shí)現(xiàn)對(duì)控制系統(tǒng)用通信芯片的完全自主可控,基于FPGA實(shí)現(xiàn)EtherCAT通信協(xié)議的自主化開發(fā)顯得非常必要,同時(shí)也是采用自主安全機(jī)制提升通信系統(tǒng)安全能力的重要前提。
基本通信鏈路是實(shí)現(xiàn)收發(fā)EtherCAT協(xié)議數(shù)據(jù)的核心,因此,本研究基于EtherCAT協(xié)議特征及數(shù)據(jù)傳遞機(jī)制,設(shè)計(jì)關(guān)鍵通信節(jié)點(diǎn)的FPGA狀態(tài)機(jī),驗(yàn)證FPGA實(shí)現(xiàn)EtherCAT從站控制器基本通信鏈路功能的可行性,為完善EtherCAT其他通信功能及安全機(jī)制奠定重要基礎(chǔ)。
1 EtherCAT從站控制器框架EtherCAT主站與各從站之間的通信鏈路如圖1所示。通信過(guò)程中,數(shù)據(jù)幀遍歷所有從站設(shè)備,數(shù)據(jù)幀通過(guò)某一從站時(shí),從站設(shè)備根據(jù)報(bào)文命令分析尋址到本機(jī)報(bào)文并進(jìn)行讀/寫數(shù)據(jù)到指定位置,數(shù)據(jù)幀到達(dá)最后一個(gè)從站后,該從站把處理后的數(shù)據(jù)幀發(fā)送給主站。主站收到此上行電報(bào)后處理返回?cái)?shù)據(jù),一次通信結(jié)束[5-6]。
EtherCAT從站控制器主要包括數(shù)據(jù)幀處理單元、EBUS接口編碼/解碼模塊、Auto-forwarder模塊、Loop-back funcTIon模塊等。以ET1100/ET1200從站控制器為例,其內(nèi)部框架如圖2所示,主要包括MII、EBUS接口,EtherCAT數(shù)據(jù)幀處理單元,現(xiàn)場(chǎng)總線內(nèi)存管理單元(FMMU,F(xiàn)liedbus Memory Management Unit),存儲(chǔ)同步管理通道(SM,SyncManager),分布時(shí)鐘,PDI接口,ESC地址空間(包括寄存器和用戶數(shù)據(jù)存儲(chǔ)器),EEPROM控制,以及狀態(tài)控制、中斷、看門狗和物理層管理等部分。
其中,幀處理單元(EtherCAT Processing Unit)分析并處理EtherCAT數(shù)據(jù)流?,F(xiàn)場(chǎng)總線內(nèi)存管理單元(FMMU,F(xiàn)liedbus Memory Management Unit)是EtherCAT從站控制IP核中的核心模塊之一,用于實(shí)現(xiàn)主站對(duì)從站的邏輯尋址。存儲(chǔ)同步管理通道(SM,SyncManager)實(shí)現(xiàn)主站和本地應(yīng)用數(shù)據(jù)交換。Ethercat幀和PDI接口都必須輪詢處理器來(lái)判斷另一端是否完成訪問(wèn)。PDI接口模塊是ESC芯片的應(yīng)用數(shù)據(jù)接口。
在FPGA實(shí)現(xiàn)EtherCAT從站控制器的過(guò)程中,如果能實(shí)現(xiàn)數(shù)據(jù)鏈路的通路,數(shù)據(jù)幀能夠通過(guò)EBUS、MII接口傳輸?shù)紽PGA中,F(xiàn)PGA將數(shù)據(jù)幀進(jìn)行識(shí)別并進(jìn)行CRC校驗(yàn),解包出EtherCAT的幀格式和協(xié)議命令,并通過(guò)端口連接狀態(tài)將數(shù)據(jù)幀發(fā)送。那么,可以說(shuō)明EtherCAT從站控制器是可以在FPGA中進(jìn)行自主開發(fā)實(shí)現(xiàn)。在以上的數(shù)據(jù)鏈路中,EBUS接口涉及到EBUS模塊,EBUS模塊主要對(duì)EBUS協(xié)議進(jìn)行解析,通過(guò)曼徹斯特編碼/解碼接收或發(fā)送數(shù)據(jù);FPGA將數(shù)據(jù)幀進(jìn)行識(shí)別并進(jìn)行CRC校驗(yàn)是Auto-Forwarder模塊;通過(guò)Loop-back funcTIon模塊將數(shù)據(jù)幀發(fā)送。以下分別介紹上述各模塊的實(shí)現(xiàn)過(guò)程。
2 各模塊實(shí)現(xiàn)邏輯2.1 EBUS編碼/解碼模塊
對(duì)于EBUS實(shí)現(xiàn)方式,EBUS接口的LVDS信號(hào)數(shù)據(jù)率是100 Mb/s,EBUS接口是利用曼徹斯特編碼/解碼(Manchester encoded)通過(guò)LVDS方式實(shí)現(xiàn)。