从ET1100到LAN9252: EtherCAT移植与HAL修改指南

需积分: 50 26 下载量 24 浏览量 更新于2024-08-07 收藏 1.23MB PDF 举报
"本资源主要介绍了在软件转换过程中,如何将基于ET1100的 EtherCAT 系统移植到使用 Microchip 的 LAN9252 设备,特别是涉及到 EtherCAT 协议栈的硬件抽象层(HAL)的修改,以及配置头文件 ecat_def.h 的调整。" 在软件转换中,尤其是涉及 EtherCAT 这样的实时工业通信协议时,确保兼容性和效率至关重要。ET1100 是一款常用的 EtherCAT 从控制器,而 LAN9252 是 Microchip 提供的一款集成双以太网PHY的 EtherCAT 从控制器,具备菊花链拓扑支持和3端口能力。移植过程的目标是利用 HAL 层来隐藏硬件差异,使得应用能够无缝地在不同硬件平台上运行。 硬件抽象层(HAL)是协议栈和应用之间的关键接口,它封装了底层硬件的具体实现,允许上层软件独立于具体的硬件设备。在从 ET1100 迁移到 LAN9252 的过程中,需要对 HAL 层进行特定的修改,以适应 LAN9252 的特性。对于 PIC32 用户,可以参考"AN1916 Integrating Microchip's LAN9252 SDK with Beckhoff's EtherCAT SSC"文档来获取详细指导。对于其他系统级芯片(SoC)用户,建议查阅 LAN9252 数据手册来了解如何适应这个新的硬件平台。 配置头文件 `ecat_def.h` 在 EtherCAT 系统中扮演着重要角色,因为它包含了硬件设置的定义。在移植过程中,必须更新此文件以匹配 LAN9252 的规范。具体来说,这包括修改邮箱和PDRAM的读写大小,以符合 LAN9252 的要求。这些更改直接影响到数据传输的效率和正确性。 LAN9252 具有丰富的功能,如4K字节的双端口存储器(DPRAM),4个同步管理器(SyncManager),3个现场总线存储器管理单元(FMMU)和1个64位分布式时钟。这些功能使得 LAN9252 能够高效处理 EtherCAT 数据流,实现精确的时间戳生成和一致性校验,确保在实时环境中稳定运行。 在数据包转发流程中,LAN9252 的各个端口可以接收、校验和转发以太网帧,同时支持环回功能,以便在没有链路或端口不可用时保持通信。端口0与 EtherCAT 处理单元(EtherCAT Processing Unit, EPU)交互,负责处理 EtherCAT 数据流,协调对内部寄存器和 EtherCAT 从控制器存储空间的访问,提供与 EtherCAT 主机和本地应用的数据交换。 从 ET1100 到 LAN9252 的移植涉及了多个层面的工作,包括硬件接口的适配、软件层的修改以及配置参数的调整。这一过程要求开发者深入理解 EtherCAT 协议栈的结构以及新硬件的特性和功能,以确保移植后的系统能够达到与原系统相当的性能和稳定性。