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