陳志軍,韓利峰,黃 麗
(中國科學院 上海應用物理研究所,上海 201800)
EtherCAT是由德國BECKHOFF公司開發的實時工業以太網解決方案。它具有延時低、響應快和可靠性高的特點,由主站和從站組成。主站可以采用嵌入式控制器或電腦來實現,需配備標準以太網控制器,從站采用專用的從站協議控制器來實現[1]。
EtherCAT的主要特點如下:
1)網絡拓撲形式:可以組成環形、星形、線形等任意形式的拓撲結構,最多由65535個節點組成,結構沒有任何限制。
2)結構簡單、成本低:任何帶有標準以太網控制器的單元都可以作為EtherCAT主站,從簡單的I/O節點到復雜的設備都可以作為EtherCAT從站,且不需要配置交換機。
3)性能卓越:數據傳輸速度可以達到100 Mbit/s,數據刷新周期小于100μs,各個從站節點設備的同步精度小于1μs。
EtherCAT從站設備同時實現通信和控制應用兩部分功能,包括物理層、數據鏈路層和應用層3個核心部分。
EtherCAT從站物理層接口有MII和EBUS兩種,MII(Media Independent Interface)需要使用以太網PHY芯片,MII接口也是標準的以太網物理層接口;EBUS是倍福定義的數據傳輸標準,是基于LVDS(Low Voltage Differential Signal)的,無需額外的物理層芯片,從而避免了物理層的附加傳輸時延,但是只適合短距離傳輸。
數據鏈路層部分由從站控制器ESC(EtherCAT Slave Controller)來 實 現,ESC可 通 過ET1100、LAN9252、AX58100或FPGA來完成。ESC上的過程數據接口PDI(Process Data Interface)可分為32位的數字量I/O、SPI總線、8/16位的異步/同步微控制器接口,過程數據和參數是通過ESC上的DPRAM來交互的。
應用層部分由微處理器MCU(Micro Control Unit)來實現,MCU可通過DSP或STM來完成。應用層部分主要實現從站設備的狀態機、過程數據交互、非周期數據交互的郵箱協議,其性能取決于設備功能應用部分。
本方案采用AX58100作為EtherCAT從站控制器,STM32F407芯片作為從站微處理器,為此可以將整個從站系統分為ESC模塊(從站控制器部分)和MCU模塊(微處理器部分)兩大模塊。ESC模塊的功能是實現EtherCAT數據鏈路層的功能,通過硬件機制完成主站和從站之間的數據交換;MCU模塊的功能是實現應用層功能,可以采集應用設備的反饋數據。
AX58100芯片是亞信ASIX于2018年7月推出的新一代2/3端口EtherCAT從站控制芯片。其集成兩個支持100Mbps全雙工操作與HP Auto-MDIX功能的快速以太網PHY。AX58100支 持CANopen(CoE),TFTP(FoE),VoE等標準,EtherCAT協議適用于過程控制、運動控制、智能控制、數據采集、機械制造等領域,為各種實時工控產品應用提供了經濟有效的解決方案。AX58100提供1個三通道PWM控制器或1個步進控制器,1個用于閉環控制的增量/霍爾編碼接口,1個SPI Master接口用于SPI裝置數據采集和輸出,32個適用于工業實時I/O控制應用的數字控制I/O,以及1個I/O Watchdog提供監測I/O狀態來做適當處置以確保產品功能的安全性。AX58100提供兩種過程數據接口(PDI),Local Bus接口和SPI Slave接口,可通過這些接口將AX58100連接到外部傳統MCU以支持EtherCAT功能。AX58100有兩個內存空間,分別對應到ESC內存和Function緩存器,設計人員可以透過芯片選擇腳位來決定存取哪一個內存空間。內部網橋會根據設定的同步條件來自動同步ESC內存與功能緩存器的內容,提供EtherCAT Master來 遠 程 控 制AX58100的 功 能(PWM,SPI Master等)。 AX58100將ESC和應用程序中斷事件反應在中斷狀態緩存器,并透過條件或邊緣中斷觸發模式來通知外部MCU/DSP來管理這些ESC和應用程序中斷事件[2]。
圖1中,AX58100的PDI接口采用Local Bus接口,通過該接口使AX58100與MCU通信,此接口模式下,79號引腳SOF/LECSn/SCS_ESC為AX58100從站模式片選,64號 引 腳OE_EXT/LRDn/SCLK為Local Bus讀 信 號,78號引 腳OUTVLD/LWRn/MOSI為Local Bus寫 信 號,68號 引腳IO[22]/LBHE/PWM3H/TXD[3]為高字節使能,6號引腳LAT_IN/LRDY/MISO為Local Bus就緒輸出,1號引腳WD_TRIG/LINT/SINT為Local Bus中斷輸出,LA[0]~LA[13]為Local Bus的14位地址線,LDA[0]~LDA[15]為Local Bus的16位數據線,AX58100的片選、讀寫控制、地址與數據均通過FSMC方式與MCU連接[3]。19號引腳LED_RUN用于指示選擇片外EEPROM 容量,該引腳經4.7KΩ電阻接控制地,存儲器芯片為AT24C64,因此EEPROM容量為64Kbit;20號引腳LED_ERR用于指示端口模式為2端口或3端口,該引腳經4.7KΩ電阻接控制地;21號引腳EEP_DONE用于指示EEPROM的加載狀態,該引腳經4.7KΩ電阻接控制地。AX58100與AT24C64之間使用I2C接口,62號引腳SCL連接AT24C64的6號引腳SCL,作為時鐘線,63號引腳SDA連接AT24C64的5號引腳SDA,作為數據線。AX58100的EEPROM電路如圖2 所示。
AX58100內置的兩組高速以太網PHYs分別為P0和P1端口,本項目設計的EtherCAT從站的網絡接口電路如圖3所示。對于P0端口,38號引腳P0_TXOP和37號引腳P0_TXON為差分信號發送引腳,36號引腳P0_RXIP和35號引腳P0_RXIN為差分信號接收引腳;對于P1端口,24號引腳P1_TXOP和23號引腳P1_TXON為差分信號發送引腳,26號引腳P1_RXIP和25號引腳P1_RXIN為差分信號接收引腳。HFJ11-2450E-L12RL為網絡變壓器。
基于EtherCAT協議,采用STM32F407ZET6處理器。STM32F407ZET6處理器是ST公司推出的一款基于Cortex-M4F內核的芯片,支持兩種USB(即高速USB_HS和全速USB_FS)、安全數字輸入/輸出接口(SDIO)、串行外設接口(SPI)、內部集成接口(I2C)、最高達1MB的嵌入式Flash接口、控制器區域網絡(bxCAN)、12位ADC與DAC控制器、192kB靜態隨機存取存儲器(SRAM)及靈活靜態存儲控制器(FSMC)。STM32F407ZET6芯片接口分布如圖4所示。
STM32F407器件系統架構如圖5所示,Cortex-M4F是一款32位高性能,能夠用于實現EtherCAT從站協議的嵌入式應用的內核[4]。
USB供電電源電路如圖6所示。USB 采用四線制,1根為DM,1根為 DP,1根接5V電源。電源兩端設置0.1μF的電容穩定電壓。
I2C與EEPROM芯片連接。I2C采用雙線制,即串行數據線SDA和時鐘線SCL,設計如圖7所示。EEPROM芯片有8個引腳,通過SDA和SCL實現對數據的讀寫功能,AO、Al、A2、GND均做接地處理,VCC接3.3V電源。
結合AX58100和STM32F407芯片的工作原理,對EtherCAT從站展開硬件電路的設計,在采用AX58100作為EtherCAT從站控制器,STM32F407芯片作為從站微處理器的架構下,重點設計了AX58100的外圍電路,包括EEPROM電路和網絡接口電路;設計了STM32F407的外圍電路,包括USB供電電源電路和EEPROM電路,為EtherCAT從站的應用奠定了基礎。