拓冰建站拓冰建站
首页 / 资讯中心 / 正文

国产EtherCAT芯片与主从站方案实战:从选型到调试全指南

EtherCAT这个协议在工业自动化圈子里火了这么多年已经不算什么新鲜词了。但最近两年风向明显变了以前大家讨论的是怎么用倍福的从站IP核做产品现在更多人在问国产ESC芯片到底能不能打。加上正点原子RK3568开发板、STM32H723这些平台都在往EtherCAT上靠Linux 6.6内核原生IGC网卡支持和实时补丁的推进整个生态确实到了一个从能用到好用的转折点。这篇东西我就从国产EtherCAT芯片切入把主站、从站、硬件电路、软件配置这些实操层面的东西一并梳理一遍希望能帮正在选型和入坑的同行少走点弯路。1. EtherCAT技术底座搞懂主从站架构和通信原理再谈国产化1.1 为什么EtherCAT能成为工业实时总线的事实标准EtherCATEthernet Control Automation Technology之所以在运动控制和多轴同步场景里几乎成了标配核心就一句话它把以太网帧直接从主站穿透到从站每个从站只处理属于自己的那部分数据。这与传统以太网每个节点收完整个包再转发的模式完全不同。打个比方传统以太网像快递员挨家挨户送完整包裹每个收件人都要拆包、签字、再打包给下一家而EtherCAT像一列火车每节车厢从站到了站点只把自己那节车厢的货物卸下、装上新的货物火车头拉着整列车继续跑最后回到始发站。这个处理中传输processing on the fly的机制让EtherCAT的刷新周期可以做到微秒级1000个分布式I/O的刷新时间典型值在100微秒以内。具体到帧结构上EtherCAT在主站和从站之间传输的是标准以太网帧EtherType 0x88A4。帧头后面紧跟一个或多个EtherCAT数据报Datagram每个数据报带有寻址信息、命令类型、长度和WKCWorking Counter工作计数器。从站ESCEtherCAT Slave Controller芯片在硬件层面解析帧匹配地址后将数据插入或提取同时置位WKC。主站通过检查WKC值是否等于预期就能确认所有从站是否都正确处理了数据。这就是EtherCAT高实时、高同步、低成本三大优势的技术根基。1.2 主站与从站的分工一个负责调度一个负责执行从开发者的视角看EtherCAT系统分成主站和从站两个角色。主站负责发起通信维护网络状态机INIT→PRE-OP→SAFE-OP→OP发送过程数据帧处理邮箱通信、诊断、热连接等。主站可以是通用的以太网MAC控制器加软件协议栈比如Linux下的IgH主站、Acontis、KPA、TwinCAT也可以用带专用硬件时间戳的网卡来增强同步性能。从站则是被控制的对象比如伺服驱动器、步进驱动器、I/O模块、编码器接口、阀岛等。每个从站的核心是一颗ESC芯片或FPGA实现的软核ESC它完成以下工作在硬件上完成以太网帧的转发和数据处理不占用本地CPU提供DPRAM双端口RAM作为协议栈和本地应用的共享数据区通过FMMU现场总线存储映射单元把过程数据映射到逻辑地址实现主站到从站的自由寻址通过SyncManager同步管理器管理邮件和过程数据的有序收发理解了这个分工你就能明白为什么EtherCAT主站可以用普通的千兆网卡软件实现而从站的实时性却必须在硬件层面完成。这也是后面讨论国产芯片时最关键的选型逻辑做主站重点是网卡和实时操作系统做从站核心就是ESC芯片或IP核。1.3 状态机与通信模式COE、FOE、EOE到底怎么选EtherCAT从站的工作状态由主站通过状态机控制。四个主状态依次是INIT初始化允许邮箱通信通常用EEPROM读取配置PRE-OP预运行邮箱通信已就绪过程数据未激活SAFE-OP安全运行过程数据发送到从站但输出保持安全状态OP运行过程数据全速交换输出正常驱动在应用层EtherCAT支持多种协议映射最常见的是CoECANopen over EtherCAT和FoEFile over EtherCAT。CoE沿用了CANopen的对象字典概念SDO服务数据对象和PDO过程数据对象在EtherCAT中分别通过邮箱和过程数据通道实现。这意味着你如果之前做过CANopen设备移植到EtherCAT时对象字典可以继续沿用只是底层从CAN换成EtherCAT工作量会小很多。FoE相当于EtherCAT通道下的TFTP常用于固件升级。EOEEthernet over EtherCAT则是把标准以太网帧封装到EtherCAT里传输适合需要TCP/IP通信但不想额外布线的场景但实时性不如原生过程数据。实操中运动控制类设备基本走CoE固件升级走FoE诊断和Web配置页面才用EOE。搞清楚这三种模式后面调试主站配置时就不容易把PDO映射和邮箱配置搞混。2. 国产EtherCAT芯片全景从站ESC和主站SoC两条线都在发力2.1 从站ESC芯片国产替代的主力战场EtherCAT从站控制器的核心功能是帧转发和FMMU/SyncManager管理这些功能都是固定逻辑用ASIC实现最合适。过去这个市场长期被德国倍福Beckhoff的ET1100/ET1200把持后来也有日本的瑞萨R-IN32M3等方案。国产芯片这几年的突破点主要就是对准这些进口ESC做引脚兼容和寄存器兼容替代。目前市面上能见到的国产EtherCAT从站芯片大致分几类完全兼容ET1100/ET1200的ASIC这类芯片在引脚定义、寄存器映射、EEPROM接口、PDIProcess Data Interface上都尽量做到和倍福原版一致方便直接替换。替换时主要看引脚兼容性、DPRAM大小、FMMU/SyncManager数量是否够用。集成MCUESC的SoC比如在Cortex-M内核MCU内部直接集成EtherCAT从站控制器好处是省掉外部SPI/并行接口的通信开销固件和协议栈跑在同一颗芯片里成本更低、可靠性更高。这类方案是国产从站芯片的热门路线。FPGA 国产IP核严格说不是芯片但很多中小批量设备会采用国产FPGA配合自研或授权的EtherCAT IP核来做从站。优点是灵活性高缺点是成本、功耗和开发周期不如ASIC。关键参数上看选ESC芯片时重点看这几项支持几路FMMU和SyncManager一般设备3路FMMU、4~8路SyncManager就够DPRAM容量典型值4KB~8KBPDO映射数据量大时需更大PDI接口类型SPI从模式是主流也有8/16位并行接口是否支持分布式时钟DC功能这直接关系到多轴同步精度工作温度范围和工业级认证2.2 主站侧国产化软主站是主流网卡选型有讲究从站芯片国产化热闹但主站侧的国产化逻辑不太一样。EtherCAT主站本质上是个软件协议栈跑在普通x86/ARM处理器上对硬件没有特殊要求除了做DC高精度同步时需要硬件时间戳辅助。所以主站国产化的核心其实是能不能在国产CPU如瑞芯微RK3568、RK3588上稳定运行IgH或商业主站协议栈能不能针对国产或主流以太网PHY/网卡做驱动优化尤其是实时补丁下的低延迟能不能适配国产实时操作系统比如SylixOS、RT-Thread等以RK3568为例这颗Cortex-A55四核SoC在工业HMI和运动控制主站场景里出镜率越来越高。搭配IgH主站和PREEMPT_RT实时补丁在百微秒级控制周期下完全可以胜任多轴联动任务。正点原子等厂商推出RK3568 EtherCAT开发板也侧面印证了这个平台在EtherCAT主站方向上的适用性。这里多说一句网卡选型。EtherCAT主站对网卡的要求是驱动稳定、中断延迟低、支持多队列。Intel I210/I211这些经典网卡在IgH社区有良好支持而Linux 6.6内核里IGC驱动Intel 2.5GbE Controller的完善让I225/I226这些新网卡也能稳定跑IgH这是个值得关注的变化。用板载千兆网卡时尽量避开那些驱动不完善的USB网卡或realtek网卡否则实时性很难保证。2.3 选型对比几类方案的适用场景和取舍方案类型成本开发难度实时性适用场景进口ET1100 独立MCU中高中优通用从站设备兼容性最好国产兼容ESC MCU中中优成本敏感的中大批量设备集成ESC的国产MCU SoC低中低优伺服、步进驱动等空间受限产品FPGA EtherCAT IP高高优需要灵活定制PDO映射和特殊功能时Linux软主站IgH低中良中低轴数运动控制、测试台架Windows商业主站高低优高性能多轴运动控制、视觉联动别被国产一词框住思路。我自己的看法是从站芯片只要是寄存器级兼容ET1100/ET1200的替换成本很低主站这边你真正要评估的是操作系统实时性和网卡驱动而不是处理器是不是国产。方案好不好最终看的是整个控制链路的抖动和同步精度。3. 从站硬件电路设计从ESC芯片到PHY的完整搭建笔记3.1 最小系统构成ESC、PHY、EEPROM、MCU四大件一个标准的EtherCAT从站硬件围绕ESC芯片展开核心模块包括ESC芯片负责帧处理和协议逻辑PHY芯片连接物理网口实现电平转换和解码。EtherCAT规定使用MII接口的百兆PHY常见的比如KSZ8081、KSZ8091、LAN8720AEEPROM存放从站厂商ID、产品码、设备名、PDI配置等上电时ESC自动加载主站烧写SII信息也写到这颗EEPROM本地MCU通过PDI接口SPI或并行总线和ESC通信跑从站协议栈如SOEM、SSC生成的从站代码控制具体应用逻辑板上至少需要两个RJ45网口IN和OUTIN口和OUT口在PCB走线上直接连接到两路PHYESC内部完成帧的转发。只有一个网口时OUT口可以用终端电阻和15pF电容处理成末端节点模式这在EtherCAT规范里也是允许的。原理图设计上最需要注意的是ESC和PHY之间的MII信号线等长以及PHY的时钟电路和上电时序。PHY的TX_CLK/RX_CLK要保证25MHz晶振或时钟源要稳否则网络协商会出问题。3.2 PHY选型与外围电路杂散电容和变压器别乱省EtherCAT从站PHY主流的选型逻辑是支持100BASE-TX、MII接口、工业级温度、片内集成终端电阻。很多国产PHY或者兼容型号也出来了但实测下来我用得最顺的还是MicrochipMicrosemi的KSZ8081系列和TI的DP83822原因就一个稳定、成熟、参考设计多。外围电路里几个人容易踩坑的点网络变压器选带中心抽头、传输比1:1的百兆网络变压器即可品牌不重要关键是要有足够隔离耐压。很多工程师图便宜省掉变压器直接用直连短距离调试可能行但到了现场EMC测试和插拔场景一定会后悔。终端电阻靠近网口侧需要根据驱动器配置放置差分对终端匹配电阻。RJ45内置变压器时PHY侧的终端电阻通常已集成或建议按datasheet外接。25MHz时钟给PHY提供25MHz参考时钟如果ESC也复用同一时钟源务必确认时钟驱动能力和抖动指标。实测中遇到过因为时钟分配导致EtherCAT扫描不稳定的情况最后用独立的时钟缓冲器解决。3.3 SPI接口与外部MCU从站协议栈的数据通道ESC最常用的PDI就是SPI从模式MCU作为SPI主设备通过DPRAM的读写完成和ESC的数据交换。硬件上注意几个细节SPI引脚要尽量短、远离高频开关节点减少干扰DPARM的读写时序要严格按ESC datasheet的时序图尤其是WAIT/IRQ信号。在低成本MCU上用硬件SPIDMA能显著降低CPU占用中断信号INT/IRQ接MCU的外部中断引脚ESC收到主站新数据或邮箱事件时通过中断通知MCU去读DPRAM。有的工程师偷懒改成轮询省了引脚但增加了延迟不推荐STM32平台做从站MCU很常见但要注意不同系列的文件包DFP和库函数版本。比如STM32H723的DFP包一定要和你用的Keil版本匹配否则芯片头文件或启动文件不对调试时会出各种莫名其妙的问题。4. 主站与从站软件配置从IgH到CoDeSys的实操闭环4.1 Linux下IgH主站安装与实时补丁内核别乱升级IgHEtherLab主站在开源社区的地位不用多说。想把它跑稳操作系统层面首要任务就是实时性。建议用带PREEMPT_RT补丁的内核或者干脆用实时发行版如带RT内核的Ubuntu、Debian。这里特别提一下Linux 6.6 LTS内核因为IGC网卡驱动的成熟6.6在EtherCAT主站方面比老内核省心很多而且PREEMPT_RT补丁在主线里的整合度也越来越高。从源码编译IgH主站的步骤大致如下确认内核头文件已安装且版本和当前内核一致从Git仓库克隆IgH源码并切换到稳定分支./configure --prefix/usr/local/etherlab --enable-generic --enable-igcmake和make modulessudo make modules_install后执行sudo depmod -a加载主站模块sudo modprobe ec_master配置阶段要改的文件是/etc/ethercat.conf主要设置主站使用的网卡MAC地址。用ethercat命令行工具可以扫描总线、查看从站信息、切换状态。一个小技巧调试时用ethercat debug打开调试输出到内核日志比反复拨码排查直观很多。IgH主站对网卡驱动的编译有两种方式一种是把网卡绑定到EtherCAT主站上让主站直接接管网卡驱动通过ec_master提供的驱动接口另一种是用内核原生网卡驱动配合SOEM的用户态实现。前者实时性更好后者更容易上手看你的实际需求选择。4.2 CoDeSys配置EtherCAT主站图形化总线和PDO映射很多做设备集成的同行不走IgH而是用CoDeSys比如CoDeSys Control RTE SL直接配主站。这条路的核心是CoDeSys Runtime支持EtherCAT主站功能你可以把一套运动控制逻辑直接跑在工控机上不用自己写主站协议栈代码。用CoDeSys配EtherCAT主站时几个实操要点安装对应目标系统的CoDeSys Control包并确保授权正确在Device里添加EtherCAT Master设备选择对应的网卡和驱动模式扫描从站时如果某些国产从站SCAN不成功大概率是SII里的信息不完整或校验错误这时可以手动添加从站并选择对应ESI文件EtherCAT Slave Information甚至手工修改设备名和厂商ID后强制进入运行PDO映射建议在从站设备属性里做。注意每个PDO的最大长度、SyncManager的方向和起始地址要一致否则OP状态会报同步错误CoDeSys调试EtherCAT时最常用的窗口是总线配置里的状态诊断能直接看到每个从站是否成功进入OP、是否有WKC错误、是否报警。把每个从站的DC配置对号入座能省不少现场排查时间。4.3 从站代码生成与脉冲当量步进电机的EtherCAT接入细节给从站做协议栈最简单的方式是用倍福SSCSlave Stack Code工具生成代码模板。SSC工具可以选择目标架构比如STM32、接口类型SPI、支持的功能CoE、DC、FoE然后生成C代码工程在里面实现应用层的PDO映射和应用逻辑。生成代码后最关键的应用层工作是定义PDO映射。拿步进驱动器脉冲控制举例你要确定从站接收的PDO里包含目标位置、速度、方向、使能等变量输出的PDO里包含当前位置、状态字、报警码。把这些变量用SSC工具映射到FMMU和SyncManager对应的地址PDO才能在OP状态下正确交换。很多人在这里会卡在脉冲当量上。简单说脉冲当量是发送1个脉冲时执行机构移动的距离它等于驱动器的细分和机械传动比的比值。假设步进驱动器设置为20000脉冲/转减速比1:10丝杠导程10mm那么电机转一圈带动丝杠走10mm需要20000×10200000个脉冲脉冲当量就是10/2000000.00005mm。这个值体现在PDO变量里主站算好位置指令从站根据脉冲当量换算成实际脉冲数发给驱动器。实际配置中这类计算建议在主站侧完成从站只接收逻辑位置值避免从站CPU在做浮点计算时引入延迟。如果在从站侧计算务必用定点数并且处理好溢出。5. 常见问题与排查技巧实测中反复踩过的坑5.1 从站扫描失败或状态机卡住遇到主站扫描不到从站、或者状态机从PRE-OP进不了SAFE-OP/OP先按以下顺序排查物理层确认网线是直通线EtherCAT链路上所有端口的LINK灯都亮。两个从站之间的网线长度不要超过100米标准限制但现场建议控制在50~80米内留足余量。SII EEPROM信息很多扫描失败是EEPROM里的设备描述信息不完整。用配置工具读出SII内容确认Vendor ID、Product Code、Revison Number和ESI文件一致。国产芯片如果寄存器级兼容有时候需要用倍福的SII工具把低成本EEPROM的配置重新写一遍。WKC错误频繁大概率是PDO映射长度和SyncManager配置不匹配。逐个禁用SM通道测试找到引发WKC问题的变量。DC同步错误先关掉DC测试纯过程数据通信如果正常再逐从站开启DC。分布式时钟不同步时重点检查PHY时钟源是否稳定以及DC的时钟漂移补偿参数是否配置成功。5.2 国产ESC芯片替换后运行不稳定做ET1100国产替代时最典型的问题是能通信但不稳。常见原因有三个DPRAM时序和读改写bit操作差异部分国产芯片在连续位操作或地址边界行为上和原版有细微差别导致协议栈软件对DPRAM的特殊访问方式出现异常。应对方案是协议栈升级到支持该芯片的SDK版本并按芯片手册优化SPI速率和等待周期。FMMU数量和PDO映射大小冲突映射的逻辑地址超过FMMU数量支持的上限主站报地址错误。这种问题在软件上可以规避优先保证过程数据映射小且精简。EEPROM类型不兼容国产ESC对EEPROM的访问时序或者支持的型号范围比ET1100窄导致上电读取SII失败而回退到默认配置。按芯片推荐列表更换EEPROM型号即可。另外有些国产从站芯片在内部集成了EtherCAT PHY或者简化了外部PHY连接这时网口变压器的选型和PCB布局更关键否则EMC容易出问题。5.3 Linux主站延迟抖动大或偶尔断连IgH主站在Linux上跑最影响实时性的不是CPU频率而是中断延迟。排查方向确认实时补丁生效uname -a里有PREEMPT_RT字样检查中断亲和性把EtherCAT网卡的中断绑定到专门的CPU核心隔离其他任务干扰降低CPU调频干扰把CPU governor设为performance避免变频带来的延迟波动关闭不必要的网络服务特别是网络管理工具、防火墙、日志服务可能引起进程调度抖动更换网卡驱动参数某些网卡需要关闭报文合并coalescing或中断节流降低驱动层面引入的延迟用cyclictest工具测系统实时性基线如果时延超过50us优先排查内核配置和驱动。EtherCAT控制周期要是1ms那基本没什么压力但如果做到250us甚至125us这些细节全是决定成败的。5.4 芯片测试与PAT控制产线批量设备时的必备技能如果做的是批量产品EtherCAT从站的测试环节就得尽早规划。芯片测试和PATProgrammable Address Test控制在产线上是两件事芯片测试指的是对ESC芯片本身的电气特性和功能进行检验比如SPI读写、PHY环回、FMMU映射验证PAT控制指的是给每个从站在生产时分配一个独立的站地址或者在运行中修改站地址方便同一批设备在产线上自动配置实操中可以在从站固件里预留一段测试模式代码上电后进入测试状态通过串口或者调试口接收产线指令完成MAC地址烧录、SII写入、环路测试、PDO回环验证。这样要比在总线上一个个手动测试高效得多也避免生产环节漏测导致现场大批量出问题。6. 写在最后的个人体会我做EtherCAT相关项目这几年最大的感受是协议本身不复杂难的是让整个链路在工业现场保持稳定。国产EtherCAT芯片的成熟确实让从站设备成本降下来了但选型别只看价格兼容性、稳定性和工具链支持才是决定项目交付周期的关键。无论你选进口还是国产方案一定要留足总线调试的时间和精力尤其是复杂PDO映射和DC同步的调优这是急不来的。再补充一个小技巧不管做主站还是从站先用单从站的最小闭环主站—一个从站—回环把链路弄通再接多个从站组链。这个顺序看起来慢但排查问题时能省下成倍的时间。EtherCAT再方便也逃不开先简单后复杂的调试铁律。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门