当前位置:首页 > 工业控制 > 现场总线
[导读] 摘 要: EtherCAT是工业控制领域广泛应用的现场总线之一,从站控制器ESC(EtherCAT Slave Controller)是从站模块实现EtherCAT协议数据通信的关键,对从站控制

摘 要: EtherCAT是工业控制领域广泛应用的现场总线之一,从站控制器ESC(EtherCAT Slave Controller)是从站模块实现EtherCAT协议数据通信的关键,对从站控制芯片实现自主可控是工业控制系统国产化研发的重要基础。基于EtherCAT通信协议及基本通信功能逻辑,设计了EBUS编码/解码、Auto-forwarder、Loop-back function关键通信节点的FPGA状态机,并通过解析各阶段数据状态变化,验证了各节点通信数据的正确性。实验结果表明,基于上述状态机的FPGA实现EtherCAT从站基本通信链路是完全可行的。

0 引言

EtherCAT是由BECKHOFF提出的在工业控制领域获得广泛应用的现场总线之一,该总线具备全双工工作模式,可基于主站(Master)和从站(Slave)连接的模式实现数据传递,且具有低延时、高安全性的特点。EtherCAT从站控制器ESC(EtherCAT Slave Controller)是从站模块实现EtherCAT通信协议的关键,目前国内基于EtherCAT协议的通信功能基本都采用ET1100/ET1200等从站芯片来实现[1-4]。然而,由于这类芯片除基本通信功能外,还具备大量其他功能,而此类额外通信机制并不对我国技术人员公开,造成对此类通信芯片还无法实现完全自主可控,采用有效的安全机制提升系统安全性更是无从谈起。随着工业控制领域的信息安全问题日益突出,此类不可自主可控通信芯片的应用给我国核心控制系统的运行引入一定安全风险。为了实现对控制系统用通信芯片的完全自主可控,基于FPGA实现EtherCAT通信协议的自主化开发显得非常必要,同时也是采用自主安全机制提升通信系统安全能力的重要前提。

基本通信链路是实现收发EtherCAT协议数据的核心,因此,本研究基于EtherCAT协议特征及数据传递机制,设计关键通信节点的FPGA状态机,验证FPGA实现EtherCAT从站控制器基本通信链路功能的可行性,为完善EtherCAT其他通信功能及安全机制奠定重要基础。

1 EtherCAT从站控制器框架

EtherCAT主站与各从站之间的通信链路如图1所示。通信过程中,数据帧遍历所有从站设备,数据帧通过某一从站时,从站设备根据报文命令分析寻址到本机报文并进行读/写数据到指定位置,数据帧到达最后一个从站后,该从站把处理后的数据帧发送给主站。主站收到此上行电报后处理返回数据,一次通信结束[5-6]。

EtherCAT从站控制器主要包括数据帧处理单元、EBUS接口编码/解码模块、Auto-forwarder模块、Loop-back funcTIon模块等。以ET1100/ET1200从站控制器为例,其内部框架如图2所示,主要包括MII、EBUS接口,EtherCAT数据帧处理单元,现场总线内存管理单元(FMMU,Fliedbus Memory Management Unit),存储同步管理通道(SM,SyncManager),分布时钟,PDI接口,ESC地址空间(包括寄存器和用户数据存储器),EEPROM控制,以及状态控制、中断、看门狗和物理层管理等部分。

其中,帧处理单元(EtherCAT Processing Unit)分析并处理EtherCAT数据流。现场总线内存管理单元(FMMU,Fliedbus Memory Management Unit)是EtherCAT从站控制IP核中的核心模块之一,用于实现主站对从站的逻辑寻址。存储同步管理通道(SM,SyncManager)实现主站和本地应用数据交换。Ethercat帧和PDI接口都必须轮询处理器来判断另一端是否完成访问。PDI接口模块是ESC芯片的应用数据接口。

在FPGA实现EtherCAT从站控制器的过程中,如果能实现数据链路的通路,数据帧能够通过EBUS、MII接口传输到FPGA中,FPGA将数据帧进行识别并进行CRC校验,解包出EtherCAT的帧格式和协议命令,并通过端口连接状态将数据帧发送。那么,可以说明EtherCAT从站控制器是可以在FPGA中进行自主开发实现。在以上的数据链路中,EBUS接口涉及到EBUS模块,EBUS模块主要对EBUS协议进行解析,通过曼彻斯特编码/解码接收或发送数据;FPGA将数据帧进行识别并进行CRC校验是Auto-Forwarder模块;通过Loop-back funcTIon模块将数据帧发送。以下分别介绍上述各模块的实现过程。

2 各模块实现逻辑

2.1 EBUS编码/解码模块

对于EBUS实现方式,EBUS接口的LVDS信号数据率是100 Mb/s,EBUS接口是利用曼彻斯特编码/解码(Manchester encoded)通过LVDS方式实现。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

720P即1280×720,按60fps算像素率约55.3M像素/秒,1像素/时钟用60~75MHz即可跑满;做预处理不存整帧,采用“灰度化—行缓冲—3×3 Sobel—阈值输出”流式管线最省资源。 先转灰度再进算法,避...

关键字: Sobel算子 FPGA 硬件逻辑

FPGA验证最费人的是手写testbench:功能点一多,定向用例、边界用例、随机回归全靠手工,既慢又容易漏。用Python做“向量生成—testbench渲染—仿真调用—结果比对—报告汇总”闭环,可把几百个组合用例一键...

关键字: Python测试 仿真向量 FPGA

CDC核心不是“都会写”,而是按信号类型选型:单比特电平用同步器,窄脉冲用展宽/toggle,多比特低频配置用手握,持续数据流用异步FIFO。多比特总线直接打两拍最易出错,各bit走线延迟不同会采到中间态。

关键字: FPGA 异步FIFO 握手协议

工业串口最怕三类问题:半包、粘包、噪声错帧。用“环形缓冲收字节+按字节状态机解析+CRC16校验”三层结构,可做到无动态分配、低RAM占用、错误帧自动重同步。

关键字: 串口解包 状态机 CRC16

本项目展示了如何从 Digilent Arty Z7 FPGA 板的 XADC 获取模拟数据,并在运行于 Windows 电脑上的 LabVIEW 中显示。FPGA 与 LabVIEW 之间的通信通过自定义硬件接口实现,...

关键字: FPGA 寄存器 Python

DAQnx是一个基于单个控制器插槽和三个应用插槽的模块化仪器平台。它将嵌入式Linux系统、USB控制、可编程的时序/触发/同步架构,以及可更换的数据采集、射频、FPGA和I/O模块集成于同一机箱中。在多年观察工程师和研...

关键字: Linux系统 射频 FPGA RP2040

原装2600的电路板尺寸约为9.75 x 5.25英寸,而µTari的电路板仅为4.7 x 3.5英寸,体积大约只有原版的三分之一。µTari使用了所有原始芯片(包括6507 CPU、TIA和RIOT),它真实存在,而非...

关键字: 电路板 FPGA 控制器

该单芯片解决方案可在宽工作电压范围内完成电平转换,简化与最新处理器的高精度内部时钟网络互连

关键字: 时钟缓冲器 SoC FPGA

RP2354则基于RP2350提供的基础设计,并在封装中集成2MB QSPI闪存,从而实现更紧凑的解决方案。它保留了双核Arm Cortex-M33和双核Hazard3 RISC-V架构,配备520KB SRAM、PIO...

关键字: FPGA 寄存器 RP2354
关闭