ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

从ET1100到AX58100:EtherCAT从站硬件改版实战记录

从ET1100到AX58100:EtherCAT从站硬件改版实战记录 去年年底我接了个伺服从站控制板的改版需求原方案用的是BECKHOFF的ET1100稳定是稳定但一个案子做下来物料成本、交期、开发周期都有点让人挠头。正好那段时间亚信的AX58100在圈子里被讨论得越来越多价格、封装、以及集成两颗以太网PHY的设计听起来非常对我的胃口就抱着试试看的心态做了一轮完整的替换升级。这篇文章就是把这几个月的实操记录整理出来包括方案选型、硬件设计、从站配置、DC时钟同步、常见主站对接以及各种排坑细节给正在做EtherCAT从站选型的朋友一个真实参考。如果你刚接触EtherCAT先简单补个背景EtherCAT从站方案里最核心的硬件是ESCEtherCAT Slave Controller也就是从站控制器芯片它在硬件层面负责转发和解析EtherCAT报文。ET1100是很多老工程师的首选但这几年大家把目光转向AX58100是因为它在同样满足ESC功能需求的前提下把成本、体积和BOM复杂度都往下压了一截。这篇文章适合做伺服驱动、I/O模块、阀岛、协议转换网关的硬件或嵌入式工程师阅读也适合正在评估下一代从站平台怎么选型的项目负责人。1. 为什么我会想换掉 ET11001.1 ET1100 稳定但“有点老”ET1100这颗芯片在EtherCAT从站领域的地位不用我多吹大量伺服、PLC、IO模块都在用它资料全、案例多、生态成熟很多工程师一听到“EtherCAT从站”脑子里蹦出来的第一个方案就是它。我上一个项目也用它跑了两年多整体非常稳几乎没出过通信层面的毛病。但稳定归稳定放到2025年这个时间点它的一些问题开始变得很扎眼。首先是物料成本。ET1100本身价格就不低而且它不带PHY必须外接两颗10/100M以太网PHY芯片再加上网络变压器、电阻电容、PCB走线一颗从站芯片的成本硬生生翻了好几倍。你说功能强吧确实强但很多中小型从站设备根本用不到那么多扩展能力纯属为用不上的性能买单。其次是PCB面积和Layout难度。ET1100封装偏大引脚也多外围PHY布局、差分对走线、阻抗匹配都要小心伺候。每次改版打样Layout工程师都要在以太网那部分反复检查生怕哪根线布得不好导致过不了EMC或者通信不稳定。我之前的板子本身尺寸就被客户卡得很死光是把ET1100、两颗PHY、隔离变压器、RJ45塞进一个紧凑的IO模块里就花了不少功夫。再说说供应和交期。ET1100作为老型号这几年供应链波动的时候交期也被拉长过几次。做工业产品最怕什么最怕产品定义好了、代码写完了结果芯片买不到。所以从那个时候起我就开始认真关注有没有替代方案。1.2 AX58100 为什么会进入视野第一次听说AX58100是同行在做EtherCAT远程IO模块时提到说亚信电子这颗料集成度很高两颗PHY直接集成在芯片内部外围省掉一大片。我当时第一反应是怀疑毕竟以前也见过号称“集成PHY的工业以太网芯片”实际用起来要么驱动不完善要么稳定性拉胯要么功耗发热感人。后来我在一个伺服项目的前期选型会上再次见到AX58100供应商给的报价直接把项目成本降了一个档次再加上现货交期比ET1100好很多就决定认真评估。我专门去翻了数据手册和官方评估板的资料发现这颗芯片的寄存器体系和ET1100有相当高的兼容性整体设计思路也是照着EtherCAT从站控制器的经典架构来的心里稍微有点底了。之后又看了几个国内厂商的量产产品确实有不少已经在用AX58100不是那种只在PPT上出现的东西这才放心进入实质性测试。现在回头看当时决定试AX58100最重要的原因有三个一是集成PHY之后BOM和Layout大幅简化二是单颗芯片成本优势明显三是供应链和资料获取比想象中顺畅。当然真正决定换不换还是得看后面实际测试数据不能只看纸面参数。2. 硬件选型与整体方案设计2.1 从站硬件的核心架构EtherCAT从站硬件上看起来是一块板子、两个RJ45网口但数据流是很清晰的主站发送的报文先进入上行网口通过网络变压器到ESC芯片ESC在硬件层面解析帧头和目的地址把属于自己的过程数据写进内部存储区同时把需要回复的数据插入报文的对应位置再从下行网口发出去。整个过程不经过MCU干预完全由ESC硬件完成这也是EtherCAT能实现微秒级周期通信的根本原因。所以从站的控制逻辑并不复杂MCU通过SPI或并行接口跟ESC通信周期性读取输入数据、写入输出数据。AX58100集成了两个以太网PHY相当于把原来ET1100外挂PHY的这部分工作收进芯片内部从硬件架构上看就是“MCU AX58100 网络变压器 RJ45”四个核心部分简洁很多。我当时选的主控是STM32F407因为项目里要用到不少普通GPIO和模拟量采集F407性能足够也可以用STM32F103这类更便宜的内核。AX58100提供SPI从站接口F407做SPI主站跑在几MHz到二十几MHz的时钟频率下对于几十字节的PDO过程数据完全够用。2.2 为什么选择 SPI 从站方式而不是并行总线ESC和MCU之间的数据通道一般有SPI、8/16位并行总线、局部总线等方式。ET1100支持并行接口很多老方案也喜欢用并行因为理论上单次传输数据量更大、延迟更低。但我这次选型用了SPI原因很实际。第一SPI引脚少。并行接口动辄十几二十根线不仅占用MCU引脚资源PCB布线也更拥挤。用SPI的话四根线搞定板子干净很多。第二对大多数I/O类从站来说SPI速度完全够用。EtherCAT一个周期内的过程数据往往只有几十字节SPI在几MHz下传输这些数据也就是微秒级的事远小于整个通信周期的预算。第三SPI从站方式下MCU的角色比较简单任务就是“定时读、定时写”代码逻辑清晰出问题容易排查。我之前也担心过SPI会不会成为瓶颈尤其是做伺服驱动器的时候需要传输的控制字、状态字、目标位置、实际位置加起来可能上百字节。实测下来2MHz到10MHz之间的SPI速率都能满足1kHz同步周期下的数据交互完全没有压力。如果哪天真遇到超大PDO需求AX58100也可以切换到其他接口模式不至于被卡死。2.3 两颗PHY带来的拓扑灵活性很多入门工程师会问EtherCAT从站到底需要几个TX网口答案是常规从站至少要有两个以太网口一个作为上行口接主站或上一从站一个作为下行口接下一从站这样才能把总线手拉手串下去形成菊花链拓扑。最后一台设备可以不接下行网线但硬件上最好两个口都设计上方便客户现场灵活接线。ET1100因为不带PHY要外接两颗PHY才能实现双网口所以外围成本高、布线复杂。AX58100直接把两颗PHY集成进去外部只需要两颗网络变压器和两个RJ45座子BOM和Layout都轻了很多。顺带一提AX58100内部集成的是标准10/100M以太网PHY直接用RJ45座子带变压器那种最省事。如果项目需要做光纤或者特殊接口也可以通过外部扩展PHY的模式来处理只是我这次做的普通IO模块用不到就没仔细折腾。3. AX58100 与 ET1100 的资源对比和选型评估3.1 核心参数与资源对比为了选型时心里有数我把AX58100和ET1100的关键差异做了个对比列了个表方便大家直接看对比项ET1100AX58100我的实际感受以太网PHY外置需另配PHY芯片内置两颗10/100M PHYAX58100的BOM和Layout压力小很多封装与体积比较大引脚多小尺寸封装密度高板子面积能明显缩小成本偏高加上PHY成本更高单芯片成本优势大物料清单报价直接下降FMMU / SM资源经典水平相对更充足多PDO映射时更从容DC分布式时钟支持支持两者都能做同步但寄存器细节不同资料与生态非常成熟官方例程评估板中文资料偏少新手建议先拿官方demo跑通再改供应情况老型号有交期波动现货渠道更多这点是我换料的直接推手之一表格不是万能的但对项目决策很有参考价值。ET1100的优势在于资料极其丰富几乎你能想到的问题都能在论坛或者老工程师口中找到答案AX58100则是“硬件集成度高、成本友好”的典型代表更适合新产品从零开始设计。我特别提醒一句不要只看芯片单价要把网络变压器、PCB面积、生产贴片、售后维护这些全算进TCO总拥有成本AX58100的优势会被放大得更明显。我这次改版后仅PCB面积就缩小了大概三分之一整机少了两种物料型号采购和生产端都轻松不少。3.2 哪些项目适合换哪些没必要换虽然我这次是“告别ET1100”但并不是说所有项目都应该无脑换AX58100。做技术选型最怕跟风我按自己的经验分了三种情况。第一种全新设计的中小型从站设备比如远程I/O、阀岛、模拟量采集模块、简单的伺服驱动器我建议直接上AX58100。这类设备对PDO数据量要求不高但成本很敏感体积也希望能做小一点AX58100正好精准命中这些需求。第二种老产品维护或者已经完成各种认证的产品不建议随便换。换芯片不只是换一个器件那么简单它牵连着PCB改版、固件重写、EMC测试重新做认证费用比省下来的物料成本可能还高。除非原芯片真的买不到否则别折腾。第三种对同步性能和扩展性有极致要求的场合比如多轴高端伺服、需要特殊同步模式的关键设备那要谨慎评估。AX58100的DC功能完全够用但ET1100在某些极端场景下积累的案例和调校经验更多。稳妥起见先用官方评估板搭个最小系统把你的主站、负载、同步周期都模拟一遍再决定是否全线替换。4. 移植过程与关键实现细节4.1 硬件设计与打板注意点从ET1100换成AX58100硬件设计的工作量不算大但有几个细节一定要盯紧否则后面调试会非常痛苦。晶振部分AX58100需要一颗25MHz晶振给内部PHY和ESC逻辑提供基准时钟。晶振要尽量靠近芯片负载电容按数据手册推荐值选走线要短地平面要完整。我第一次画板的时候把晶振放得稍微远了一点结果偶尔出现从站上电后扫描不到的情况后来把晶振挪到芯片旁边、调整了负载电容问题就消失了。电源部分AX58100的PHY有模拟电源引脚对纹波比较敏感。我建议用低噪声LDO给模拟电源单独供电数字部分才用DC-DC。如果DC-DC纹波大会直接影响PHY的信号质量严重时会出现丢包或者同步抖动。实测经验是电源纹波控制在50mV以内才比较稳妥。网络变压器和RJ45直接选那种RJ45座子集成变压器的型号比如HanRun、Bel Fuse这类Layout时注意差分对等长和阻抗控制。如果对EMC要求高变压器中心抽头怎么处理要严格照着参考设计来不要自己发明。EEPROM我挂了一颗I2C接口的EEPROM容量不用很大几Kbit就够。这颗EEPROM用来存EtherCAT从站配置信息和厂商参数上电时AX58100会自动读取如果EEPROM内容不对或I2C时序有问题从站都上不了线。我第一次调试时忘了给EEPROM写内容结果从站一直处于扫描不到的状态折腾了半天才发现是这个问题。复位电路也值得注意MCU要确保比AX58100晚一点开始配置不然MCU启动时AX58100还在复位状态SPI配置会丢失。最简单的做法是用MCU的GPIO控制AX58100的复位引脚然后等上十几毫秒再初始化。4.2 EEPROM 配置与 ESI 文件EtherCAT从站上电后主站会通过ESC读取EEPROM里的厂商ID、产品码、FMMU/SM默认配置等信息用来识别从站设备。如果EEPROM是空的或者内容不对主站就没法正确识别你更别提进入OP状态。这是很多新手第一次点EtherCAT从站时最容易卡住的地方。我在实际项目里是先准备一份正确的EEPROM镜像然后用亚信官方的烧录工具离线烧录到EEPROM里再贴上板子。如果板子已经贴好也可以利用TwinCAT的在线写EEPROM功能在主站扫描到从站后把配置写进去但这种方法在量产阶段不太推荐效率低而且有写坏的风险。EEPROM里的信息要和ESI文件EtherCAT Slave InformationXML格式保持一致。ESI文件是给主站用的设备描述文件主站导入之后才知道你的从站有哪些对象字典、哪些PDO映射、支持什么同步模式。开发阶段我一般先用文本编辑器写一个最简ESI能识别到从站就行等应用逻辑稳定了再把PDO、DC参数补全生成正式版ESI发给客户或现场工程师。4.3 寄存器初始化与协议栈接入AX58100的寄存器体系可以说“继承”了EtherCAT ESC的经典框架但细节上和ET1100有不少差异不能直接搬ET1100的初始化代码。我建议先跑通官方例程理解它初始化的流程再根据自己的应用需求精简。最小初始化序列大概是这么几步先复位AX58100等待芯片稳定然后配置ESC的DL控制寄存器包括站地址、自动增量地址等再配置SyncManager把过程数据使用的缓冲区和方向设置好接着配置FMMU把主站逻辑地址映射到本地物理地址最后使能ESC中断让MCU能响应SYNC事件或通信状态变化。我用的是SPI从站接口初始化代码就是MCU往AX58100的寄存器读写。每次SPI传输的格式是“地址字节 数据长度 数据”具体时序细节要照着数据手册来。刚开始移植时最容易错的是SPI模式设置AX58100的SPI接口和很多MCU默认的CPOL/CPHA不一致复位后如果配置错读回来的寄存器全是0xFF或者乱码当时我还以为是焊接问题拿示波器量了半天才发现是SPI极性配错了。跑通寄存器读写之后还要把协议栈代码接进来。EtherCAT从站的状态机有INIT、PREOP、SAFEOP、OP四个状态主站会逐步让从站切换到这些状态。应用代码在OP状态才能开始周期性交换过程数据。我的做法是先把官方协议栈的例程原封不动编译进去用TwinCAT扫描、切换状态确认从站能顺利进入OP再开始往里加自己的功能代码。这样一步步来出问题时好定位。4.4 DC 时钟同步与 FMMU 映射实操如果做多轴伺服或者需要高精度同步的设备DCDistributed Clock分布式时钟是必须用好的功能。它的原理是主站在启动阶段通过读写每个从站的系统时间寄存器测出每段链路的传输延时和从站之间的时钟偏移然后每个从站都按照统一的基准时间调整自己的本地时钟。同步运行的时候每个从站根据配置好的周期产生SYNC0/SYNC1中断信号MCU在这个中断里做采样和输出这样所有从站的操作就能对齐到同一时刻。我在AX58100上调DC没有遇到太多硬件层面的问题因为它把时钟同步逻辑做在芯片内部主要工作是设置SYNC0的周期和触发模式然后把SYNC中断信号引到MCU的外部中断引脚。需要注意的一点是晶振精度会影响DC同步效果建议用50ppm或更高精度的晶振不然几个从站时间基准偏差累积起来同步精度会变差。FMMUFieldbus Memory Management Unit的作用就是把主站的逻辑地址映射到从站本地地址。打个比方主站发送的一块过程数据就像一个“大箱子”每个从站通过FMMU知道自己要从箱子里的哪个位置取东西、放到自己本地的哪个位置。实际配置时我需要把主站下发的逻辑地址映射到AX58100内部的输出缓冲区比如主站逻辑地址0x1000开始的2字节映射到从站输出缓冲0x0F00的位置。这里顺带回应一下网上有人问的“FMMU支持软件加密”问题。FMMU本质上是一个地址重映射功能不是加密模块它负责的是数据位置的转换不是数据内容的保护。如果有安全需求应该在应用层加白名单、校验、加密通道之类的机制不要把FMMU当成安全边界来用。5. 与常见主站配套的实战记录5.1 先拿 TwinCAT 当调试主站EtherCAT开发阶段我最常用的调试主站是TwinCAT。它扫描从站很方便能直接看到从站是否进入OP状态、PDO映射是否正常、FMMU配置对不对。一旦通信有问题TwinCAT的错误信息比IGH的命令行输出更直白对快速定位问题很有帮助。用TwinCAT调试AX58100的时候先把ESI文件放到TwinCAT的EtherCAT设备描述目录下然后执行扫描。如果EEPROM配置正确、硬件链路正常TwinCAT就能识别到从站的厂商ID和设备名。这里有个小经验扫描不到从站时不要急着查软件先用笔记本或者示波器看从站的Link灯是否亮RJ45网口是否协商到100M物理层不通的话软件怎么配置都是白搭。从站能够进入OP之后我习惯先在TwinCAT里强制输出几个字节观察从站LED或者输出口有没有变化再反向把输入数据映射到TwinCAT变量里。这个“点灯测试”虽然简单但能把SPI、FMMU、SM、应用代码整条链路串起来验证一遍很高效。5.2 汇川主站对接要点与“汇川EtherCAT总线配置”很多国内工程师用的是汇川PLC做EtherCAT主站后台经常看到“汇川ethercat总线配置”这类热搜词。我也专门拿AX58100从站去跟汇川的控制器联调过整体流程和TwinCAT类似但有几个细节值得注意。第一汇川主站对从站ESI文件的规范性要求比较高。如果ESI文件里对象字典定义不全或者PDO映射有歧义导入时可能会报错。建议在发布ESI之前用TwinCAT先测一遍确认从站能正常扫描、配置、进入OP再用同一个文件给汇川主站用。第二汇川的同步模式设置和TwinCAT略有不同。如果你在主站里选了DC同步从站的SYNC周期必须要跟主站配置的周期一致否则会出现从站能进OP但运行时抖动偏大的问题。我遇到过现场把周期配成500us但从站代码里还是按1ms触发SYNC中断结果整个轴的运动曲线明显不平滑。第三汇川主站扫描从站时如果发现从站停留在PREOP或者频繁报错可以先查一下从站EEPROM里的厂商ID和产品码是否跟ESI文件一致。很多时候是从站用了旧固件、烧了旧配置信息对不上主站就不认这个设备。5.3 Linux 主站与 RK3568/IGH 的一点说明现在不少设备走Linux平台主站用开源的IGHEtherCAT Master for Linux还有人专门做“适配RK3568的EtherCAT IGH主站驱动”。我虽然没有在RK3568上做过完整量产项目但也评估过类似方案这里给一个参考判断IGH主站对从站芯片是透明的AX58100作为标准ESC从站理论上不需要为IGH做任何特殊适配。真正需要花精力的是主站所在平台的网卡驱动和实时性。IGH对网卡驱动有要求很多板载网卡因为DMA或中断处理方式不同需要打补丁或者换网卡才会稳定运行。如果你看到主站侧频繁丢帧、从站偶发断站先查主站Log再查网卡中断不要一上来就怀疑从站芯片。另外有朋友问过“EtherCAT Library for LabVIEW”这类问题。LabVIEW做EtherCAT监控或者测试是可以的但本质上LabVIEW这边也是走一个主站协议栈要么是NI自家的模块要么是第三方封装的IGH/TwinCAT接口。对从站侧AX58100来说没有任何额外要求只要ESC行为符合标准任何标准主站都能识别和通信。6. 常见问题与排查速查表6.1 通信起不来先查物理层每次有人问我“从站扫描不到怎么办”我的第一句话永远是先看灯再看线最后才看软件。AX58100的两个PHY都有Link/Activity指示引脚如果没接LED也可以用示波器量RJ45变压器初级是否有差分信号。物理层通了再谈上层配置。检查顺序我列在下面基本覆盖了大多数“通信起不来”的情况RJ45网线松了或者线序不对换一根已知正常的网线网络变压器焊接不良或者型号不对检查TX/RX差分对的直流偏置25MHz晶振起振了吗示波器看波形频率准不准AX58100复位是否正常释放复位引脚有没有被外设拉低EEPROM是否烧写了正确的配置I2C总线上有没有波形SPI接口的极性、速率、片选逻辑是否匹配。我在调试过程中有一次把AX58100的网口接到了交换机上结果从站一直识别不到后来才发现EtherCAT从站设备不能直接插普通交换机必须连主站或者上一从站的网口。这个错误看起来很基础但确实容易疏忽。6.2 同步抖动和偶发断站怎么查从站可以进OP但运行中偶尔掉线、重启后恢复或者同步信号抖动偏大这类问题排查起来比较费时。我总结了几条高频原因和处理办法做成一个速查表现象可能原因解决办法同步中断抖动大晶振精度不足或者负载电容配置不对换高精度晶振检查晶振Layout从站偶发断站后恢复电源纹波过大PHY信号质量差换低噪声电源优化变压器周边电路数据随机错位FMMU/SM配置不对或者SPI读写时序竞争按主站要求重新配置映射增加互斥保护断电重启后无法进OPEEPROM内容被破坏或者写保护没处理好重新烧录EEPROM确认I2C地址正确SPI回读数据异常SPI模式错误或者片选时序有问题对照数据手册查CPOL/CPHA必要时降低SPI速率表里最后一项我特别有感触。AX58100的SPI接口看起来跟普通SPI设备一样但实际时序要求比较严格片选信号高电平的时间、字节之间的间隔、时钟空闲电平都有讲究。用逻辑分析仪抓波形能省掉很多瞎猜的时间。6.3 从ET1100往AX58100移植时容易踩的坑如果你也是从ET1100迁过来我建议不要抱着“反正都是ESC代码改改就能用”的心态。AX58100的寄存器地址、中断机制、EEPROM布局和ET1100有相似之处但不是完全兼容实测踩过几个坑。第一个坑是中断标志位的处理方式不一样。ET1100在某些事件上触发的中断位和AX58100并不完全一致清中断的方式也有差别。如果把旧代码直接搬过来可能出现“中断一直触发、主程序永远处理不完”的情况。第二个坑是PHY管理接口不同。ET1100外挂PHY时需要单独配置MDIO/MDC接口AX58100的PHY是内建的但也有自己的PHY寄存器访问方式。如果你需要读PHY状态比如网线是否插上、协商速率是多少要改用AX58100的PHY寄存器映射不能沿用ET1100外挂PHY那套。第三个坑是EEPROM镜像不能直接搬。ET1100的EEPROM布局和AX58100不同即使是同样的厂商ID和产品码写入格式、校验方式都有差异。直接用旧镜像烧进AX58100的EEPROM主站扫描时大概率识别不了。我建议从亚信官方模板出发只修改自己需要的字段不要从旧项目复制整个EEPROM文件。第四个坑是SPI接口的物理参数。ET1100和AX58100的SPI模式可能不同这里说的是CPOL/CPHA不是寄存器概念。MCU的SPI外设配置一定要对照目标芯片的数据手册重新确认不要拿旧工程的初始化参数直接套用。我一开始就是没注意这个读回来的数据完全对不上怀疑了半天硬件。7. 结尾这次从ET1100换到AX58100整体体验可以用“赚到了”来形容。BOM成本降下来了PCB面积小了Layout和EMC的压力也小了很多通信稳定性和同步精度在实际测试中也都达到了项目要求。如果你问我建不建议换我的答案是具体项目具体评估但AX58100绝对值得纳入你的选型池。最后分享一个特别实用的经验AX58100的官方评估板原理图和PCB文件建议直接找原厂FAE要比自己在网上扒零散资料靠谱得多。我当时就是照着官方评估板的Layout画的板子第一版打样就能跑通省掉了大量试错时间。换芯片这件事最怕的不是芯片本身有问题而是你凭感觉设计出了问题又不知道怎么排查。如果你也在折腾EtherCAT从站方案欢迎多交流。毕竟这种底层选型做对了后面几代产品都能省心不少。
返回列表