2. Sitara工业以太网硬件架构解析
在工业以太网控制器开发中,硬件架构决定了协议栈能跑多快、实时性上限在哪里、以及现场布线与EMC能否过关。TI Sitara系列(AM335x、AM437x、AM57xx)虽然都面向工业场景,但三者的以太网子系统定位差异明显:AM335x以CPSW双MAC加PRU-ICSS为特色,AM437x强化了PRU-ICSS并提升主频与外设,AM57xx则把CPSW升级为千兆双口并配合双核PRU-ICSS与DSP。理解这些差异,是选型与硬件设计的第一步。
一、CPSW:芯片内部的以太网交换中枢
CPSW(Common Platform Switch)是Sitara内部集成的以太网MAC与交换模块。以AM335x为例,CPSW提供两个外部MII/RMII/RGMII端口,内部包含两个MAC、一个3端口交换引擎(两个外部口加一个内部主机口)以及CPDMA控制器。主机口通过L3/L4互联接到ARM Cortex-A8,因此CPU看到的是“一块网卡”,而两个外部口之间可以硬件线速转发,不占用CPU。AM437x的CPSW基本沿用该结构,但配合更高主频与更大内部带宽;AM57xx的CPSW升级为千兆能力,两个外部口可独立配置为MAC模式或交换模式。
实际配置中,CPSW的工作模式由设备树与寄存器共同决定。典型做法是把两个外部口都设为“双MAC模式”(dual-emac),此时芯片表现为两个独立网口,适合EtherCAT主站或双网冗余;若设为“交换模式”(switch),则两个口在同一广播域内,适合级联拓扑。需要特别注意的是,CPSW的RGMII接口对时序敏感,AM335x在RGMII模式下必须正确配置IO延迟(通过CFGCHIP寄存器或PHY内部延迟),否则千兆链路会出现CRC错误。
二、PRU-ICSS:工业实时协议的可编程引擎
PRU-ICSS(Programmable Real-time Unit and Industrial Communication Subsystem)是Sitara区别于通用MPU的核心。它包含两个200MHz的PRU核、共享RAM、中断控制器、UART、eCAP以及专用的MII接口。PRU可以独立于ARM核运行,直接访问MII引脚,用软件实现EtherCAT、PROFINET IRT、EtherNet/IP等协议的实时帧处理。以EtherCAT从站为例,PRU负责在帧到达时完成ESC(EtherCAT Slave Controller)的读写与转发,延迟可控制在微秒级,而ARM核只处理非实时任务。
AM335x集成一个PRU-ICSS,AM437x同样为一个但性能更强,AM57xx则集成两个PRU-ICSS,可同时支持两路工业以太网协议或一路协议加一路其他实时任务。PRU-ICSS的MII接口通常直接连到PHY,与CPSW的MII接口是独立的引脚组,设计时不能混淆。PRU固件通过TI的PRU-ICSS工业软件包(如PRU-ICSS-ETHERCAT-SLAVE)加载,开发时需关注固件版本与芯片硅版本的匹配。
三、MAC与PHY接口:MII、RMII、RGMII怎么选
Sitara的以太网MAC对外提供MII、RMII、RGMII三种接口。MII需要16根数据与控制线,时钟25MHz,适合PRU-ICSS直连PHY;RMII把数据线压缩到2根,时钟50MHz,适合引脚受限的CPSW口;RGMII用DDR方式在125MHz下传输4位数据,实现千兆,是AM335x/AM437x CPSW口最常用的方式。选型时先看速率:百兆用MII或RMII,千兆必须RGMII。再看引脚预算:RMII最省,RGMII次之,MII最费。
PHY侧的选择同样关键。工业现场推荐使用支持宽温、带电缆诊断和EEE的PHY,如DP83867、DP83822等。RGMII连接时,TX和RX的时钟延迟必须与PHY匹配:若PHY内部不提供延迟,则需在Sitara侧通过CFGCHIP寄存器开启内部延迟;若PHY提供延迟,则Sitara侧应关闭,避免双重延迟导致采样错误。MDIO总线用于读写PHY寄存器,需加上拉电阻(通常1.5kΩ至10kΩ),并注意MDIO时钟不超过2.5MHz。
四、时钟与电源设计要点
时钟是工业以太网稳定性的隐形杀手。CPSW的RGMII需要125MHz参考时钟,PRU-ICSS的MII需要25MHz,两者通常由同一颗25MHz晶振经PLL分频得到。设计时要确认晶振精度优于±50ppm,否则EtherCAT等协议可能无法锁定。PHY通常需要独立的25MHz晶振或时钟输入,建议与Sitara共用一颗晶振并通过时钟缓冲器分配,以减少频差。若使用RMII,则需50MHz时钟,可由Sitara输出或PHY提供,但只能有一方驱动。
电源方面,Sitara内核通常为1.1V,IO为1.8V或3.3V,PHY可能还需要1.0V、2.5V等。上电顺序必须遵循芯片手册:一般先内核后IO,避免IO先上电导致漏电流。PRU-ICSS的MII接口电平与PHY的IO电平必须一致,否则需加电平转换。去耦电容要靠近电源引脚,每个电源引脚配0.1μF,整体再配10μF。工业现场建议在PHY的模拟电源上增加磁珠和LC滤波,以抑制传导干扰。
- RGMII延迟配置:确认PHY与Sitara只有一方开启延迟。
- MDIO上拉:1.5kΩ~10kΩ,时钟≤2.5MHz。
- 晶振精度:±50ppm以内,PHY与MAC共源或同频。
- 上电顺序:内核先于IO,PHY电源按手册时序。
- PRU固件版本:与芯片硅版本匹配,加载前确认。
把以上四点串起来看:CPSW负责通用以太网与交换,PRU-ICSS负责硬实时协议,MAC-PHY接口决定速率与引脚,时钟与电源决定长期稳定性。实际硬件设计时,建议先用TI的PinMux工具确认引脚复用,再对照原理图逐项检查RGMII延迟、MDIO上拉和电源时序。只有这些底层细节正确,上层的EtherCAT、PROFINET协议栈才能稳定运行。