肖博翰,王洪武,張東寧
(中國電子科技集團(tuán)公司第二十一研究所,上海 200233)
機(jī)械臂是基于機(jī)器人技術(shù)的自動(dòng)化機(jī)械裝置,在多種領(lǐng)域具有廣闊的應(yīng)用前景[1]。整個(gè)機(jī)械臂電機(jī)一體化控制系統(tǒng)由主站、從站和通信子系統(tǒng)三部分組成,本文描述控制系統(tǒng)從站的設(shè)計(jì)。
該系統(tǒng)從站是采用嵌入式方案來設(shè)計(jì)的,從站控制伺服驅(qū)動(dòng)器實(shí)現(xiàn)電機(jī)控制,EtherCAT從站控制器(ESC)實(shí)現(xiàn)EtherCAT通信,使機(jī)械臂電機(jī)一體化系統(tǒng)具備精確的位置控制[2]。
EtherCAT從站可分為簡單從站和復(fù)雜從站。簡單從站通過ESC實(shí)現(xiàn)I/O功能,復(fù)雜從站通過μC(微處理器)[3]和ESC實(shí)現(xiàn)復(fù)雜EtherCAT從站,本文的EtherCAT從站是復(fù)雜從站。
EtherCAT是基于以太網(wǎng)的現(xiàn)場總線系統(tǒng),EtherCAT (Ethernet control automation technology)協(xié)議是以太網(wǎng)控制自動(dòng)化技術(shù)的縮寫,EtherCAT協(xié)議是由Beckoff開發(fā)并經(jīng)ISO,IEC和SEMI認(rèn)證的開放總線標(biāo)準(zhǔn),EtherCAT是最快的工業(yè)以太網(wǎng)技術(shù)[4]。EtherCAT支持100BASE-TX(電纜,2個(gè)節(jié)點(diǎn)間的最大距離為100 m),100BASE-FX(光纖,2個(gè)節(jié)點(diǎn)間的最大距離為100 km)和LVDS(差分信號,針對模塊化設(shè)備,2個(gè)節(jié)點(diǎn)間的最大距離為10 m)等多種以太網(wǎng)信號。
1.1EtherCAT工作原理
EtherCAT采用主從通信結(jié)構(gòu),一個(gè)EtherCAT數(shù)據(jù)幀就能完成所有節(jié)點(diǎn)數(shù)據(jù)的發(fā)送和接收。EtherCAT網(wǎng)絡(luò)通信先由主站發(fā)出下行的數(shù)據(jù)幀,數(shù)據(jù)幀遍歷所有從站,從站分析尋址到本站的報(bào)文,根據(jù)命令對數(shù)據(jù)幀中數(shù)據(jù)進(jìn)行提取或插入,更新數(shù)據(jù)幀中的工作計(jì)數(shù)器(WKC)來表示從站成功訪問數(shù)據(jù)幀的數(shù)據(jù),然后將數(shù)據(jù)幀傳遞給下一個(gè)從站[5]。從站中數(shù)據(jù)的處理是由硬件來完成的,這使得EtherCAT數(shù)據(jù)幀經(jīng)過每個(gè)從站的傳輸延時(shí)極小[6]。當(dāng)某一網(wǎng)段或分支上的最后一個(gè)節(jié)點(diǎn)監(jiān)測到開放端口(無下一從站),利用以太網(wǎng)技術(shù)的全雙工特性,將處理后的數(shù)據(jù)幀作為上行數(shù)據(jù)幀從最后一個(gè)從站返回給主站[7]。主站處理完返回?cái)?shù)據(jù)表示一次通信的結(jié)束。EtherCAT的通訊機(jī)制使網(wǎng)絡(luò)不會(huì)出現(xiàn)通信沖突并且具有高實(shí)時(shí)性。EtherCAT網(wǎng)絡(luò)通信原理如圖1所示。
圖1 EtherCAT網(wǎng)絡(luò)通信原理圖
1.2EtherCAT協(xié)議
EtherCAT幀結(jié)構(gòu)如圖2所示。EtherCAT協(xié)議在幀類型為0x88A4的IEEE 802.3以太網(wǎng)幀中嵌入報(bào)文,在標(biāo)準(zhǔn)的以太網(wǎng)報(bào)文頭后放置EtherCAT報(bào)文頭,EtherCAT報(bào)文頭用來描述EtherCAT數(shù)據(jù)長度、保留位和協(xié)議類型,EtherCAT報(bào)文里的過程數(shù)據(jù)對象(PDO)用于實(shí)現(xiàn)EtherCAT從站之間的數(shù)據(jù)交互[8]。EtherCAT數(shù)據(jù)幀包含一個(gè)或多個(gè)EtherCAT子報(bào)文,子報(bào)文由子報(bào)文頭、數(shù)據(jù)和WKC組成[9]。子報(bào)文頭的命令決定主站設(shè)備對從站設(shè)備的訪問方式:1)讀,寫或讀-寫;2)通過直接尋址或邏輯尋址訪問多個(gè)從站設(shè)備,地址區(qū)用于尋址從站設(shè)備,R為reserved位,M為0表示該報(bào)文是最后一個(gè)子報(bào)文,M為1時(shí)表示該報(bào)文后面跟隨著其他子報(bào)文。從站的尋址文方式分為物理尋址和邏輯尋址。物理尋址包括位置尋址和節(jié)點(diǎn)尋址;物理尋址時(shí)字段的前16位用于區(qū)分被尋址的從節(jié)點(diǎn)(最多接入65 535個(gè)節(jié)點(diǎn)),后16位表示從節(jié)點(diǎn)中的某一部分內(nèi)存;位置尋址時(shí)字段前16位是根據(jù)從站位置顯示負(fù)值的計(jì)數(shù)器,報(bào)文每經(jīng)過一次從站計(jì)數(shù)器自動(dòng)加1,當(dāng)某一從站的計(jì)數(shù)器值為0時(shí),依據(jù)命令對該從站執(zhí)行操作,該尋址模式常用于檢查總線連接的節(jié)點(diǎn)總數(shù);節(jié)點(diǎn)尋址時(shí)主站給每個(gè)從站分配唯一地址。物理尋址會(huì)使從站產(chǎn)生額外開銷;邏輯尋址通過FMMU單元實(shí)現(xiàn)單一命令尋址大量從站。
圖2 EtherCAT幀的結(jié)構(gòu)
EtherCAT協(xié)議的優(yōu)勢如下:
1) 高帶寬,帶寬100 Mbit/s,每幀最多可以容納1 486字節(jié),每幀的最大有效數(shù)據(jù)利用率達(dá)90%以上;
2) 靈活拓?fù)洌瑑啥丝谠O(shè)備僅支持線形和環(huán)形拓?fù)?,三端口設(shè)備和四端口設(shè)備可以支持星形/樹形拓?fù)洌畲罂梢匀菁{65 535個(gè)設(shè)備;
3) 納秒級精確同步,分布式時(shí)鐘技術(shù)使多軸同步偏差小于1 μs,并且能基于主站時(shí)鐘進(jìn)行調(diào)整;
4) 實(shí)時(shí)以太網(wǎng),EtherCAT數(shù)據(jù)幀通過ESC on the fly處理,整個(gè)過程由硬件完成,無軟件開銷;
5) 高可靠性,EtherCAT通信中若鄰近站點(diǎn)移除或發(fā)生故障,信息流自動(dòng)環(huán)回,保障了通信網(wǎng)絡(luò)的正常工作;
6) 低硬件成本,基于物理環(huán)形邏輯。
EtherCAT從站設(shè)計(jì)包括三個(gè)部分:物理層(網(wǎng)口),數(shù)據(jù)鏈路層(EtherCAT從站控制器ESC和EEPROM)和應(yīng)用層(μC),從站硬件結(jié)構(gòu)圖如圖3所示。
圖3 從站硬件結(jié)構(gòu)
ESC在數(shù)據(jù)鏈路層起重要作用,EtherCAT從站使用ESC作為接口,實(shí)現(xiàn)EtherCAT主站和從站μC的通信,ESC通過I2C和外部EEPROM連接,EEPROM中存儲ESC基本配置信息。常用的ESC分為芯片形式ESC和IP核(IPcore)形式ESC。芯片形式ESC有Beckoff的ET1100和ET1200,Hilscher的netX50和netX100,Microchip的LAN9252以及TI的Sitara AM335X等;IPcore形式ESC采用FPGA方案,只需要用戶購買IPcore即可。本文中從站的μC和ESC分別使用TI公司的TMS320F28335和Beckoff公司的ET1100,PDI采用SPI方式通信。
ET1100是ESC的專用芯片,其內(nèi)部包含8個(gè)現(xiàn)場總線內(nèi)存管理單元FMMU、8個(gè)存儲同步管理單元SyncManager、8 kB的雙端口RAM以及64位分布式時(shí)鐘等。
FMMU用于實(shí)現(xiàn)物理地址到邏輯地址(4G地址空間)的映射,F(xiàn)MMU的配置樣例如表1所示,樣例中邏輯地址(0x00010011.3-0x00010013.0)映射到物理地址(0x0F01.1-0x0F02.6),表1中的L值表示邏輯地址跨越三個(gè)字節(jié)數(shù)。
表1 FMMU的配置樣例
SyncManager是EtherCAT主從站之間用來保證數(shù)據(jù)一致性的數(shù)據(jù)交換緩存區(qū),通過配置SyncManager來決定通信方式和方向,SyncManager產(chǎn)生中斷來通知從站接收或者發(fā)送數(shù)據(jù)。SyncManager支持單緩存模式和三緩存模式。單緩存模式通過握手機(jī)制來保證過程數(shù)據(jù)的一致性,主從站使用同一段內(nèi)存并且該內(nèi)存在同一時(shí)間只能被主站或者從站訪問;三緩存模式用于周期性數(shù)據(jù)通信,當(dāng)緩沖區(qū)寫入數(shù)據(jù)的速度快于接收方讀取的速度,舊數(shù)據(jù)就會(huì)被新數(shù)據(jù)替換掉。
2.1ESC的硬件結(jié)構(gòu)
ESC硬件結(jié)構(gòu)如圖4所示,本文中ET1100和PHY之間通過MII(Media Independent Interface)接口相連,網(wǎng)絡(luò)接口由網(wǎng)卡芯片PHYKS8721和網(wǎng)絡(luò)變壓器H1102組成[10]。ET1100通過I2C和EEPROM連接,通過配置引腳RUN/EEPROM_SIZE(寄存器0x0502[7])的高低電平對EEPROM進(jìn)行選型,當(dāng)引腳RUN/EEPROM_SIZE為0時(shí)支持1 kB~16 kB的存儲空間;引腳RUN/EEPROM_SIZE為1時(shí)支持32 kB~4 MB的存儲空間;本文選用16 kB的EEPROM芯片(24LC16B)。
圖4 ECS的硬件結(jié)構(gòu)
ESC提供4個(gè)MII或EBUS接口,用于連接EtherCAT主從站、實(shí)現(xiàn)線纜冗余以及拓?fù)浣Y(jié)構(gòu)的改變。物理層接口數(shù)目和類型通過引腳配置實(shí)現(xiàn)。P_CONF[3∶0]引腳決定端口類型,P_MODE[1∶0]引腳決定接口數(shù)目,其配置方式如表2和表3所示。
表2 ESC物理層接口類型配置
續(xù)表
表3 ESC物理層端口數(shù)目配置
2.2ET1100和TMS320F28335間的PDI接口
過程數(shù)據(jù)接口(PDI)用于實(shí)現(xiàn)ET1100和TMS320F28335間的數(shù)據(jù)交互,ET1100支持的PDI接口如表4所示。
表4 ET1100支持的PDI接口
本文中PDI采用SPI接口,通過配置PDI控制寄存器0x0140[7∶0]實(shí)現(xiàn)接口選擇,ET1100和TMS320F28335進(jìn)行SPI通信時(shí)管腳的對應(yīng)關(guān)系如表5所示。PDI接口的選擇和配置在從站信息(ESI)的EEPROM配置區(qū)進(jìn)行,只有在引腳EEPROM_LOADED的信號是高電平時(shí),PDI接口才被激活[11]。
表5 ET1100和TMS320F28335進(jìn)行SPI
整個(gè)EtherCAT從站軟件用于實(shí)現(xiàn)數(shù)據(jù)的輸入輸出和電機(jī)控制,在DSP初始化后,主站發(fā)送EtherCAT幀到達(dá)ESC時(shí)產(chǎn)生中斷,DSP響應(yīng)中斷后從ESC中讀取數(shù)據(jù),DSP將收到的數(shù)據(jù)解碼后傳輸給控制程序,程序產(chǎn)生信號脈沖給伺服驅(qū)動(dòng)器來運(yùn)行電機(jī),同時(shí)DSP寫入反饋數(shù)據(jù)到ESC中,主站讀取反饋狀態(tài)后為下一步操作做準(zhǔn)備。
EtherCAT從站的軟件設(shè)計(jì)分為驅(qū)動(dòng)層、EtherCAT協(xié)議棧兩層。驅(qū)動(dòng)層由根據(jù)從站設(shè)備編寫ET1100的XML格式配置文件(ESI)和根據(jù)從站硬件平臺編寫相關(guān)的設(shè)備驅(qū)動(dòng)組成。EtherCAT協(xié)議棧架構(gòu)圖如圖5所示,協(xié)議棧是按通信層次劃分應(yīng)用層(AL)和數(shù)據(jù)鏈路層(DL),主要包括串行接口模塊(Spihw.*),狀態(tài)機(jī)模塊(Ecatslv.*),應(yīng)用層接口模塊(Ecatappl.*),郵箱服務(wù)模塊(Mailbox.*),SDO服務(wù)處理模塊(Sdoserv.*)以及訪問CoE對象字典模塊(Objdef.*)等。
圖5 EtherCAT協(xié)議棧架構(gòu)圖
EtherCAT協(xié)議棧的任務(wù)流程圖如圖6所示,EtherCAT協(xié)議棧程序先完成初始化任務(wù),然后根據(jù)檢測到的應(yīng)用層請求事件,在主循環(huán)中完成周期性過程數(shù)據(jù)和非周期性事件的處理。
圖6 EtherCAT協(xié)議棧的任務(wù)流程圖
EtherCAT協(xié)議棧主要用于狀態(tài)機(jī)轉(zhuǎn)換,非周期性事件處理以及周期性事件處理。
協(xié)議棧中的狀態(tài)機(jī)有五種狀態(tài),狀態(tài)機(jī)各個(gè)狀態(tài)對應(yīng)的服務(wù)如表6所示。狀態(tài)機(jī)按照“初始化狀態(tài)→預(yù)運(yùn)行狀態(tài)→安全運(yùn)行狀態(tài)→運(yùn)行狀態(tài)”的不可逆順序進(jìn)行狀態(tài)轉(zhuǎn)換,只有從運(yùn)行狀態(tài)返回時(shí)才可逆,其中引導(dǎo)狀態(tài)為可選狀態(tài),只能與初始化狀態(tài)相互轉(zhuǎn)化的[12]。
表6 EtherCAT狀態(tài)機(jī)各個(gè)狀態(tài)對應(yīng)的服務(wù)
AL_controlInd()函數(shù)用于處理EtherCAT狀態(tài)機(jī)轉(zhuǎn)換,AL_controlInd()函數(shù)的功能流程圖如圖7所示。狀態(tài)機(jī)的改變由主站發(fā)起,從站只有在SM通道參數(shù)配置和狀態(tài)機(jī)轉(zhuǎn)化的需求相對應(yīng)時(shí)才調(diào)用通信服務(wù)函數(shù),從站狀態(tài)機(jī)向高級別轉(zhuǎn)化時(shí)通信服務(wù)才被開啟,反之則關(guān)閉。
圖7 AL_controlInd()函數(shù)的功能流程圖
協(xié)議棧中的非周期性事件即郵箱數(shù)據(jù)通信,其通信機(jī)制與CANopen協(xié)議類似并且需要對狀態(tài)機(jī)進(jìn)行正確的處理。協(xié)議棧中周期性事件(過程數(shù)據(jù)通信)處理可以在自由運(yùn)行模式(查詢方式)或者同步運(yùn)行模式(中斷方式)下進(jìn)行,本文在中斷方式下由同步管理寄存器實(shí)現(xiàn)周期性事件處理。
4.1EtherCAT從站I/O開關(guān)量測試
EtherCAT從站I/O開關(guān)量測試平臺以裝有德國倍福公司TwinCAT軟件的PC作為主站,PC安裝倍福官網(wǎng)指定類型的Intel網(wǎng)卡,用網(wǎng)線連接PC和EtherCAT從站,TwinCAT軟件安裝倍福EtherCAT驅(qū)動(dòng)后,在TwinCAT軟件中右鍵點(diǎn)擊I/O Device來掃描EtherCAT設(shè)備,設(shè)置TwinCAT軟件里RxPDO node的32位輸出的高低電平,觀察到EtherCAT從站開發(fā)板上的LED燈亮滅,表明EtherCAT從站和主站通信成功并且能夠?qū)崿F(xiàn)I/O開關(guān)量功能。其測試環(huán)境如圖8所示。
圖8 EtherCAT從站I/O開關(guān)量測試環(huán)境
4.2EtherCAT從站實(shí)時(shí)性測試
實(shí)時(shí)以太網(wǎng)網(wǎng)絡(luò)測試平臺以插有赫優(yōu)訊(hilscher)公司PCI卡(CIFX)的PC作為主站,赫優(yōu)訊網(wǎng)絡(luò)分析儀(NANL-B500G-RE)通過以太網(wǎng)口連接到PC,網(wǎng)絡(luò)分析儀可以連接3個(gè)EtherCAT控制系統(tǒng)從站設(shè)備,通過SYCON.net軟件對EtherCAT網(wǎng)絡(luò)進(jìn)行配置,其配置界面如圖9所示。通過netANALYZER軟件采集整個(gè)網(wǎng)絡(luò)的通信數(shù)據(jù),分析得到網(wǎng)絡(luò)性能、網(wǎng)絡(luò)時(shí)間抖動(dòng)和網(wǎng)絡(luò)負(fù)載等信息,使用wireshark軟件可以導(dǎo)出抓取到的報(bào)文數(shù)據(jù)。
圖9 EtherCAT網(wǎng)絡(luò)配置界面
本文進(jìn)行實(shí)時(shí)性測試時(shí)構(gòu)建了一主三從的EtherCAT網(wǎng)絡(luò),使用wireshark軟件的時(shí)間相關(guān)參數(shù)圖形化分析功能對數(shù)據(jù)幀進(jìn)行分析,測得網(wǎng)絡(luò)數(shù)據(jù)幀的平均循環(huán)周期約為1 ms(波動(dòng)范圍0.997~1.003 ms)如圖10所示,結(jié)果表明,該EtherCAT從站具有良好的實(shí)時(shí)性。
圖10 網(wǎng)絡(luò)數(shù)據(jù)幀平均循環(huán)周期分布圖
本文設(shè)計(jì)了基于EtherCAT協(xié)議的機(jī)械臂電機(jī)一體化控制系統(tǒng)從站,介紹了EtherCAT技術(shù),電機(jī)一體化控制系統(tǒng)的從站硬件和軟件設(shè)計(jì)。通過實(shí)驗(yàn)平臺對EtherCAT從站進(jìn)行了實(shí)時(shí)性和I/O開關(guān)量功能測試,測試結(jié)果表明,該從站的性能具有良好的性能。本文采用層次化和模塊化的軟硬件設(shè)計(jì)方案,降低了機(jī)械臂電機(jī)一體化控制系統(tǒng)從站的開發(fā)難度和成本;使用成熟的測試平臺方案,使得調(diào)試變得簡單,進(jìn)一步提高了機(jī)械臂電機(jī)一體化控制系統(tǒng)的研發(fā)效率。