李 益,王成杰,史世友,付建國(guó)
(中車株洲電力機(jī)車研究所有限公司,湖南 株洲 412001)
隨著工業(yè)領(lǐng)域自動(dòng)化程度的加深,普通現(xiàn)場(chǎng)總線通信速率已達(dá)瓶頸,無法滿足工業(yè)控制系統(tǒng)對(duì)現(xiàn)場(chǎng)總線的需求。風(fēng)電領(lǐng)域常用CANopen現(xiàn)場(chǎng)總線,其通信速率最高為1 Mbit/s,每幀數(shù)據(jù)為8個(gè)字節(jié),存在通信速度慢和傳輸數(shù)據(jù)量小的問題,無法滿足風(fēng)電領(lǐng)域更高的現(xiàn)場(chǎng)通信實(shí)用性需求。目前工業(yè)控制領(lǐng)域現(xiàn)場(chǎng)總線技術(shù)開始向?qū)崟r(shí)以太網(wǎng)的方向發(fā)展。相較于常規(guī)現(xiàn)場(chǎng)總線,實(shí)時(shí)以太網(wǎng)具有成本低、帶寬大、通信速率快、安全性高及抗干擾能力強(qiáng)等優(yōu)勢(shì)。Modubus/TCP,Ethernet/IP,EtherCAT,Ether-net PowerLink,EPA,PROFINET IRT和SERCOS III是較常用的工業(yè)實(shí)時(shí)以太網(wǎng)技術(shù)。其中,EtherCAT具有高速、高有效數(shù)據(jù)率和低延時(shí)的特點(diǎn),其網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)靈活,且在協(xié)議中封裝了IP/UDP,不需要IP協(xié)議就能實(shí)現(xiàn)通信,適應(yīng)性強(qiáng),因此受到廣泛的關(guān)注。
EtherCAT由一個(gè)主站設(shè)備和多個(gè)從站設(shè)備組成[1]。傳統(tǒng)以太網(wǎng)通信需要主站和從站不停地收發(fā)數(shù)據(jù),EtherCAT與之不同,其使用相同的物理和數(shù)據(jù)鏈路層。EtherCAT中,主站是唯一允許發(fā)送幀的節(jié)點(diǎn),子站只能轉(zhuǎn)發(fā)幀;數(shù)據(jù)幀就像火車一樣,從主站開出,途經(jīng)各個(gè)子站,把對(duì)應(yīng)子站的數(shù)據(jù)放下或者帶上,最后回到主站。這種方法有助于確保操作的實(shí)時(shí)性并避免延遲,從而滿足工業(yè)領(lǐng)域低延時(shí)、高響應(yīng)需求。主站設(shè)備使用標(biāo)準(zhǔn)的以太網(wǎng)控制器,具有良好的兼容性,任何具有網(wǎng)絡(luò)接口的計(jì)算機(jī)和具有以太網(wǎng)控制功能的嵌入式設(shè)備都可以作為EtherCAT的主站[1],因此,通信系統(tǒng)設(shè)計(jì)的核心在于從站的設(shè)計(jì)。目前,從站的實(shí)現(xiàn)方式一種是在現(xiàn)場(chǎng)可編程邏輯門陣列(field programmable gate array,F(xiàn)PGA)中集成IP-Core,這需要在控制器上新增FPGA芯片;另一種是在微處理器芯片內(nèi)實(shí)現(xiàn)EtherCAT從站功能,此方式雖然硬件集成度高,但軟件實(shí)現(xiàn)復(fù)雜、開發(fā)周期長(zhǎng)。本文選用LAN9252型芯片作為從站控制芯片實(shí)現(xiàn)EtherCAT數(shù)據(jù)鏈路層協(xié)議來處理EtherCAT數(shù)據(jù)幀,為從站控制器提供數(shù)據(jù)接口[2]。從站微處理器核心芯片選用ZYNQ7000型芯片來解析通信信息、實(shí)現(xiàn)設(shè)備控制[2],同時(shí)采用VxWorks實(shí)時(shí)操作系統(tǒng)來構(gòu)建嵌入式平臺(tái),以實(shí)現(xiàn)高實(shí)時(shí)性通信。該方案針對(duì)不同領(lǐng)域,可通過更換微處理器方式實(shí)現(xiàn)EtherCAT從站的快速移植。太網(wǎng)電纜或光纜,采用以太網(wǎng)全雙工通信技術(shù)構(gòu)成主從站通信方式。
EtherCAT系統(tǒng)運(yùn)行原理如圖1所示,其主要步驟如下:
圖1 EtherCAT系統(tǒng)原理Fig.1 Schematic diagram of EtherCAT system
(1)EtherCAT通信由主站發(fā)起,主站發(fā)出一包數(shù)據(jù)幀依次傳輸?shù)礁鱾€(gè)從站;
(2)各從站監(jiān)測(cè)到數(shù)據(jù)幀后,從主站分配給它的數(shù)據(jù)幀偏移地址處讀取數(shù)據(jù),將其待發(fā)送數(shù)據(jù)裝載到數(shù)據(jù)幀上,并標(biāo)識(shí)該從站已處理該報(bào)文;
(3)當(dāng)網(wǎng)絡(luò)中最后一個(gè)從站節(jié)點(diǎn)處理完數(shù)據(jù)幀后,將數(shù)據(jù)幀轉(zhuǎn)發(fā)回主站,主站捕獲返回的數(shù)據(jù)幀并對(duì)其進(jìn)行處理,從而完成一次通信過程。
在該系統(tǒng)中,完成一次數(shù)據(jù)幀傳輸大概需要幾納秒時(shí)間,彌補(bǔ)了傳統(tǒng)以太網(wǎng)系統(tǒng)因先對(duì)數(shù)據(jù)包進(jìn)行解析再?gòu)?fù)制成過程數(shù)據(jù)而造成通信效率低的缺陷。
EtherCAT從站硬件主要由從站微處理器和從站控制器等組成(圖2)。本文采用ZYNQ7000型芯片作為從站微處理器,其負(fù)責(zé)實(shí)現(xiàn)應(yīng)用層功能;采用EtherCAT協(xié)議棧芯片LAN9252實(shí)現(xiàn)數(shù)據(jù)鏈路層與物理層之間的數(shù)據(jù)交互。LAN9252從站物理層接口有MII和EBUS兩種,其中MII接口是標(biāo)準(zhǔn)的以太網(wǎng)物理層接口,EBUS是倍福公司定義的數(shù)據(jù)傳輸標(biāo)準(zhǔn)接口。
圖2 EtherCAT從站系統(tǒng)框圖Fig.2 Block diagram of EtherCAT slave system
EtherCAT是一種以以太網(wǎng)為基礎(chǔ)的開放架構(gòu)的現(xiàn)場(chǎng)總線系統(tǒng),其可以支持線形、樹形和星形設(shè)備連接拓?fù)浣Y(jié)構(gòu),物理介質(zhì)可以選100Base-TX標(biāo)準(zhǔn)支持的以
本文中EtherCAT從站控制器采用LAN9252型芯片,其集成了兩個(gè)以太網(wǎng)物理層(physical layer,PHY),具有3個(gè)端口;每個(gè)以太網(wǎng)PHY包含一個(gè)全雙工100BASE-TX收發(fā)器且支持100 Mbit/s(100BASETX)工作速率[2](圖3)。LAN9252包括一個(gè)EtherCAT從控制器,此控制器具有4 kB雙端口存儲(chǔ)器(DPRAM)和3個(gè)現(xiàn)場(chǎng)總線存儲(chǔ)器管理單元(FM‐MU)[2],每個(gè)FMMU均執(zhí)行將邏輯地址映射到物理地址的任務(wù)。EtherCAT從控制器還包括4個(gè)存儲(chǔ)管理通道,允許在EtherCAT主器件和本地應(yīng)用之間進(jìn)行數(shù)據(jù)交換[2]。每個(gè)存儲(chǔ)管理通道提供緩沖模式和郵箱模式兩種。在緩沖模式下,從站微處理器和EtherCAT主器件可同時(shí)寫入數(shù)據(jù)。LAN9252中的緩沖區(qū)始終包含最新數(shù)據(jù)。如果新數(shù)據(jù)在舊數(shù)據(jù)被讀出前到達(dá),則舊數(shù)據(jù)將丟失。在郵箱模式下,從站微處理器和EtherCAT主器件通過握手方式來訪問緩沖區(qū),從而確保不會(huì)丟失任何數(shù)據(jù)[3]。
圖3 LAN9252內(nèi)部結(jié)構(gòu)Fig.3 Internal structure of LAN9252
本設(shè)計(jì)的從站微處理器采用ZYNQ7000型芯片,其核心集成了ARM雙核Cortex-A9處理器以及FPGA全可編程硬件,運(yùn)行速率高達(dá)1 GHz;且具有512 kB L2高速緩存和256 kB片上存儲(chǔ)器,可容納整個(gè)實(shí)時(shí)操作系統(tǒng)。該處理器提供了搭建EtherCAT從站所有必要的通信接口。LAN9252的過程數(shù)據(jù)接口(process data inter‐face,PDI)一般是通過并行IO接口或串行外設(shè)接口(serial peripheral interface,SPI)兩種方式而實(shí)現(xiàn)的。
本設(shè)計(jì)采用SPI接口與LAN9252通信,其硬件接口如圖4所示。LAN9252的IRQ引腳被連接至ZYNQ7000的外部中斷引腳。由于LAN9252通過SYNC0和SYNC1引腳為從站提供精確的同步脈沖,因此也需將SYNC0和SYNC1引腳連接至ZYNQ7000模塊的外部中斷引腳。
圖4 從站硬件接口圖Fig.4 Interface diagram of the slave hardware
EtherCAT從站軟件主要分為底層驅(qū)動(dòng)軟件、Ether‐CAT協(xié)議棧以及應(yīng)用層(圖5)。驅(qū)動(dòng)層提供所有硬件的驅(qū)動(dòng)函數(shù),主要完成ZYNQ7000與LAN9252之間的數(shù)據(jù)交互。EtherCAT協(xié)議棧實(shí)現(xiàn)主從站之間的數(shù)據(jù)交互,通過配置存儲(chǔ)在EEPROM存儲(chǔ)器中的EtherCAT從站控制器(EtherCAT slave controller,ESC)模塊配置文件實(shí)現(xiàn)該功能。應(yīng)用層軟件主要由微處理器完成協(xié)議解析和數(shù)據(jù)處理等工作。
圖5 從站軟件架構(gòu)Fig.5 Architecture diagram of the slave software
采用ZYNQ7000型微處理器作為EtherCAT從站控制器,其與從站控制芯片LAN9252采用SPI通信進(jìn)行數(shù)據(jù)交互。ZYNQ7000首先進(jìn)行SPI通信初始化,再對(duì)LAN9252中ESC寄存器進(jìn)行初始化以及通信狀態(tài)機(jī)處理,以便完成通信初始化,最后配置好周期性數(shù)據(jù)的處理邏輯,進(jìn)行過程數(shù)據(jù)通信,進(jìn)而滿足應(yīng)用層協(xié)議的需求。軟件框架流程如圖6所示。
圖6 軟件框架流程Fig.6 Flow chart of the software framework
LAN9252寄存器分為直接尋址寄存器和間接尋址寄存器。直接尋址寄存器分為系統(tǒng)控制和狀態(tài)寄存器、過程數(shù)據(jù)RAM訪問寄存器。間接尋址寄存器分為PHY寄存器和EtherCA T內(nèi)核控制狀態(tài)寄存器(control and status register,CSR)。
訪問直接尋址寄存器的讀寫操作如下:
(1)讀處理以每個(gè)時(shí)鐘1位的方式輸入指令代碼和字節(jié)地址,并以每個(gè)時(shí)鐘1位的方式輸出數(shù)據(jù)。其首先將使能信號(hào)置為有效,接著寫入讀指令(03H),后面跟兩個(gè)地址字節(jié)(低地址在前,高地址在后),最后輸出該寄存器內(nèi)容。
(2)寫處理以每個(gè)時(shí)鐘1位的方式輸入指令代碼、地址和數(shù)據(jù)字節(jié)。首先寫入寫指令(02H),其后跟兩個(gè)地址字節(jié),該地址字節(jié)用于指定器件內(nèi)的字節(jié)地址,地址字節(jié)后跟數(shù)據(jù)(32位數(shù)據(jù))。
對(duì)于LAN9252寄存器的讀寫操作,首先必須完成SPI對(duì)字節(jié)順序的測(cè)試,如果回讀到返回值為“0x87654321”,即可認(rèn)為接口處于正確工作狀態(tài)。
訪問EtherCAT間接尋址寄存器,必須通過以下方式進(jìn)行讀寫操作:首先將CSR接口命令寫入寄存器(0x304H);接著將CSR地址字段設(shè)置為所需寄存器地址;最后將CSR大小字段設(shè)置為所需大小,若將讀寫位“置1”,則完成讀周期,若將讀寫位清零,則完成寫周期,具體如圖7所示。
圖7 間接尋址讀寫流程Fig.7 Indirect addressing read and write process
協(xié)議棧驅(qū)動(dòng)軟件主要完成EtherCAT數(shù)據(jù)的接收和發(fā)送以及錯(cuò)誤處理任務(wù)。在過程數(shù)據(jù)處理中,檢查本地計(jì)時(shí)寄存器,采用VxWorks輔助定時(shí)器sysAux‐ClkRateSet進(jìn)行1 ms定時(shí),用于檢查EtherCAT看門狗時(shí)間,以便實(shí)現(xiàn)多從站節(jié)點(diǎn)通信同步。PDI_Isr中斷函數(shù)是整個(gè)從站設(shè)計(jì)的關(guān)鍵,也是開發(fā)應(yīng)用程序的主要目的,用于與主站進(jìn)行信息交換并進(jìn)行數(shù)據(jù)處理,實(shí)現(xiàn)從站命令所要求的功能。當(dāng)從站處理器檢測(cè)到有過程數(shù)據(jù)輸入時(shí),觸發(fā)該中斷。進(jìn)入中斷后,首先判斷初始化是否完成,若完成,則判斷應(yīng)用程序是否觸發(fā)過程數(shù)據(jù)輸出事件,若條件滿足,再判斷從站是否處于就緒狀態(tài),若該條件也滿足,則向主站發(fā)送數(shù)據(jù),完成數(shù)據(jù)發(fā)送流程;接著再判斷從站是否處于同步模式,若條件滿足,則處理過程數(shù)據(jù)同步事件,再判斷從站是否處于就緒狀態(tài),若條件滿足,則接收主站下發(fā)數(shù)據(jù),完成數(shù)據(jù)接收流程。收發(fā)數(shù)據(jù)流程如圖8所示。
圖8 收發(fā)數(shù)據(jù)流程Fig.8 Flow chart of sending and receiving data
為了驗(yàn)證本設(shè)計(jì)EtherCAT從站控制系統(tǒng)的可行性,搭建了一主一從網(wǎng)絡(luò)測(cè)試系統(tǒng)。主站是一臺(tái)裝有EtherCAT測(cè)試軟件的PC機(jī),從站為搭載LAN9252從站控制芯片的風(fēng)電主控板,PC機(jī)與所設(shè)計(jì)的從站控制器通過以太網(wǎng)網(wǎng)線相連,從而構(gòu)成主從站系統(tǒng),如圖9所示。在此環(huán)境中,分別進(jìn)行了通信周期為1 ms,5 ms和10 ms的通信測(cè)試,以驗(yàn)證該EtherCAT從站控制系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性。
圖9 測(cè)試平臺(tái)Fig.9 Testing platform
在EtherCAT測(cè)試軟件上先掃描EtherCAT器件,掃描成功后運(yùn)行測(cè)試軟件,確認(rèn)主站運(yùn)行狀態(tài)正常后,開始填寫主站發(fā)送數(shù)據(jù),同時(shí)接收從站數(shù)據(jù)。
使用網(wǎng)絡(luò)封包分析軟件測(cè)試數(shù)據(jù)幀傳輸時(shí)間,從抓取報(bào)文分析可知,相鄰兩幀報(bào)文分別為主站發(fā)送報(bào)文和從站響應(yīng)報(bào)文,相鄰兩報(bào)文時(shí)間間隔即為通信響應(yīng)周期;通過對(duì)抓包30 000幀數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,結(jié)果如表1所示。3種通信周期下從站響應(yīng)周期大約為12μs,均未超過20μs。由此可知,該EtherCAT從站系統(tǒng)通信響應(yīng)速度快、實(shí)時(shí)性強(qiáng),滿足風(fēng)電領(lǐng)域通信需求。
表1 EtherCAT從站系統(tǒng)測(cè)試結(jié)果Tab.1 Test results of the EtherCAT slave system
在上述3種通信周期下,利用EtherCAT測(cè)試軟件主站監(jiān)測(cè)從站實(shí)時(shí)狀態(tài)的功能,監(jiān)測(cè)通信過程中發(fā)送幀、丟包幀、發(fā)送/傳輸錯(cuò)誤數(shù)。對(duì)3種通信周期,均監(jiān)測(cè)30 000個(gè)數(shù)據(jù)幀,測(cè)出系統(tǒng)的丟包率均為0,由此可知,該EtherCAT從站系統(tǒng)通信穩(wěn)定性高。基于此測(cè)試結(jié)果,最終配置的EtherCAT通信周期為3 ms,數(shù)據(jù)量為360字節(jié),滿足目前風(fēng)電領(lǐng)域通信需求。
為了解決風(fēng)電領(lǐng)域CANopen現(xiàn)場(chǎng)總線運(yùn)行速率慢和傳輸數(shù)據(jù)量小的問題,本文設(shè)計(jì)了一種微處理器ZYNQ7000搭載EtherCAT從站控制器LAN9252的EtherCAT數(shù)據(jù)通信從站系統(tǒng),并針對(duì)過程數(shù)據(jù)處理進(jìn)行了軟件驅(qū)動(dòng)解析。搭建了測(cè)試系統(tǒng)對(duì)該從站通信系統(tǒng)進(jìn)行測(cè)試,結(jié)果顯示,該從站系統(tǒng)通信穩(wěn)定性高、實(shí)時(shí)性較強(qiáng)、通信周期短且數(shù)據(jù)量大,通信周期由原來的10 ms縮短到3 ms,通信數(shù)據(jù)量由96字節(jié)擴(kuò)充到360字節(jié),更好地滿足了風(fēng)電領(lǐng)域通信需求。本研究目前只完成了單EtherCAT從站節(jié)點(diǎn)系統(tǒng)的搭建和性能測(cè)試,后續(xù)將針對(duì)多節(jié)點(diǎn)EtherCAT組網(wǎng)系統(tǒng)的通信實(shí)時(shí)性和穩(wěn)定性等特性進(jìn)行研究。