EtherCAT是如何工作的

article/2025/10/9 2:16:59

来源https://blog.csdn.net/u014311679/article/details/90713554
若有侵权,请联系删除。

这次讨论一下ETHERCAT是如何工作的:
在这里插入图片描述
应用层-数据链路层-物理层
物理层
RJ45标准连接器;TX to FX转换器;LVDS:低电压差分信号;接收标准以太网帧结构
应用层
通过过程数据接口(PDI:SEMC)可以连接MCU或者I/O,在这个基础上还可以绑定或链接独立硬件或软件进行扩展
数据链路层
EEPROM-由master通过网线烧写的ESI文件,用来配置ESC的时序引脚/中断/PDI接口模式的定义
下面有几个比较重要的模块需要重点介绍一下:
ESI(Ethercat slave information)
在这里插入图片描述
ESI(.xml文件):每个EtherCAT设备都必须随货给用户一个ESI文件,一般是.xml格式
Master和slave各有一份,它包含厂商信息,序列号,过程数据接口工作方式及过程数据结构,与UC的接口模式配置,对象字典配置等信息的文件,slave的ESI文件是由Master通过TwinCAT由网线烧写的
FMMU(现场总线内存管理单元)
在这里插入图片描述
将逻辑地址转换为物理地址,FMMU允许由逻辑地址找到位于多个从站设备内的数据段,一个报文地址数据位于几个任意分布的从站内.
通过对他的配置让slave内的实际位址映射到ECAT提供得逻辑位址,配置好FMMU reg后,主机会把资料放到设定的逻辑位址上,当一帧经过从站时,FMMU将数据映射到对应的实际位址上;当从站要传回数据到master时,把实际位址通过FMMU映射到帧的逻辑位址上传回主机。
SyncManager(同步管理器)
SyncManager防止同时访问DPRAM部分(数据一致性)
邮箱类型(邮箱类型数据)使用握手机制交互的单缓冲区的模式。由SM通道0和通道1进行收发,写方必须先写,读方才能读,读端必须先读,写端才能再写
在这里插入图片描述

缓冲类型(过程数据)数据对于双向都可用,由SM通道2和3进行收发,3个BUFFER保证了数据的一致性,并保证在任何时候都可以访问最新的数据,总有一个空的缓冲区可读,总有一个一致性的缓冲区可写
在这里插入图片描述
结构框架及数据流向总览
在这里插入图片描述
通过上图可以看到EtherCAT从设备的整体结构,标准以太帧的数据传到从设备上,物理层获取数据,通过RJ45到PHY经Port到达EtherCAT Proccessing Unit(处理单元),到这里就进入了数据链路层,通过FMMU做数据映射取到属于自己的数据,如果是邮箱类型数据就放到DPRAM的邮箱缓冲区通过SM0/SM1通道来与上层交互,如果是缓冲类型数据就放到对应的过程数据缓冲区通过SM2/SM3通道与上层进行交互;同时在ESC(ethercat从设备控制器)中还包含功能寄存器,它可以通过前面所说的EEPROM信息(ESI)来配置ESC的各项参数和功能属性;通过PDI(过程数据接口)将缓冲区的数据传到MCU(应用层),由于我们所用的协议是COE(canopen over ethercat),所以邮箱数据会以SDO(服务数据对象)形式呈现,而过程数据会以PDO(过程数据对象)的形式通过后面要说明的对象字典的映射来与更高一层的控制协议(如Cia402)进行数据交互。


http://chatgpt.dhexx.cn/article/26LmML1d.shtml

相关文章

IgH详解十、EtherCAT DC(1)理论

(Distributed Clocks) 分布式时钟 分布式时钟相当于每个节点都有一个时钟,在同一时刻,触发所有节点做给定的动作,要达到同一时刻触发就要求大家的时钟保持一致,也就是同步。 比如每个人都有手机,只要手机接入网络&…

EtherCAT 之邮箱

EtherCAT特点 由于工作需要, 最近在学习EtherCAT总线,对于主站和从站的通信,发表一下我个人的理解。 1. EtherCAT为保证低延迟高响应,不可能像MODBUS一样用软件解析数据包再转发的模式,而是采用“高速火车”不停车上下…

IgH详解八、EtherCAT SDO原理

主站通过使用 SDO对对象字典进行读取/写入操作,完成对从站设备进行参数设置、状态监视等。 从站SDO的读写是非实时的,所以需要多次访问来确保数据操作的正确性。 如下图写入操作,主站把数据发送到从站,从站返回WC确保数…

Ethercat学习笔记

1、EtherCAT原理介绍 EtherCAT从站设备在报文经过其节点时读取相应的数据报文,同样输入数据也是在报文经过时插入到报文中。整个过程报文只有几纳秒的时间延迟,实时性获得极大提高 EtherCAT作为一种工业以太网总线,充分利用了以太网的全双工…

igh ethercat主站文档(中文翻译上)

此翻译主要是用翻译软件翻译,部分自己修改,若有不当之处,可以下方评论或私聊我提醒修改,若转载,请注明出处 本文是1-4章节。 1 The IgH EtherCAT Master 本章介绍有关EtherCAT主站…

EtherCAT设备协议详解五、Modular Device Profile

ETG.5001.1: General MDP Device ModelETG5001定义了通用的模块设备模型,现在远程可扩展的IO模块基本都使用本协议实现 从总线上看是一个从站,实际上可以扩展多个卡片式IO模块 一个从站对应多个插槽,插槽可随机插入不同型号的卡片IO&#xff…

[工业互联-17]:常见EtherCAT主站与实现方法

目录 第1章 EtherCAT入门 1.1 简介 1.2 EtherCAT通信架构 第2章 EtherCAT主站方案 2.1 方案概述 2.2 主站配置步骤 2.3 EtherCAT主站软件 第3章 Windows操作系统支持EtherCAT的基本步骤 第4章 常见主站软件介绍:TwinCAT 4.1 简介 4.2 软件架构 4.3 应…

EtherCAT设备协议详解二、EtherCAT状态机及配置流程

EtherCAT状态机(ESM) EtherCAT状态机定义了每个EtherCAT从站设备的分步设置,并指示了可用的功能。设备可以拒绝来自主站的状态请求,并通过错误指示(AL 状态寄存器中的错误标志)和相关错误代码(A…

Ethercat解析(十一)之分布时钟

驱动代码中,同步时钟涉及到如下几个概念: ⑴ 本地时钟:每一个支持DC的从站都有一个纳秒级分辨率的本地时钟寄存器。 每次从机上电,则寄存器从0开始计时,这就意味着不同的从机因为上电开机的时间不同而本地时钟也会有…

EtherCAT简介

EtherCAT(用于控制自动化技术的以太网)是Beckhoff(倍福)在2003年开发的实时以太网网络。它基于CANOPEN协议和以太网,但是与Internet通信或网络通信不同之处在于,它专门针对工业自动化控制进行了优化。这些标…

倍福EtherCAT通信协议详细解析

简介 1.1 运动控制 1.2 实时以太网 1.3 EtherCATEtherCAT原理介绍 2.1 实时性 2.2 端口管理 2.3 EtherCAT网络拓扑 2.4 EtherCAT网络协议栈 2.5 EtherCAT数据帧格式 2.6 EtherCAT设备寻址方式 2.7 分布式时钟(Distribute Clock) 2.8 应用层(Application Layer) 2.9 设备配置(De…

EtherCAT (学习笔记)

文章目录 1. 简介1.1 运动控制1.2 实时以太网1.3 EtherCAT 2. EtherCAT原理介绍2.1 实时性2.2 端口管理2.3 EtherCAT网络拓扑2.4 EtherCAT网络协议栈2.5 EtherCAT数据帧格式2.6 EtherCAT设备寻址方式2.7 分布式时钟(Distribute Clock)2.8 应用层(Application Layer)2.9 设备配置…

拨打电话功能

1.html方式 界面效果&#xff1a;直接跳转到拨号界面 实现方法 <a href"tel:18212345678">在线客服</a> 2.ts方式 界面效果&#xff1a;下面有弹窗&#xff0c;选择后&#xff0c;直接拨打出去 实现方法 2.1调用与html同名的ts文件内方法 步骤 1&#x…

Axure实现模拟拨打电话和真实拨打电话

Axure模拟拨打电话 Axure RP是一个专业的快速原型设计工具&#xff0c;让负责定义需求和规格、设计功能和界面的专家能够快速创建应用软件或Web网站的线框图、流程图、原型和规格说明文档。作为专业的原型设计工具&#xff0c;它能快速、高效的创建原型&#xff0c;同时支持多…

uniapp 实现拨打电话

uniapp 实现拨打电话 实现代码真机调试 参数必须是一个对象(object)&#xff0c;它包含一些属性(参数)&#xff1a; 实现代码 <!-- 电话图标 需要在哪点击实现打电话在哪加 --> <view class"flex diygw-col-3" click"phone(item)"><view …

uniapp实现点击拨打电话功能

uniapp实现点击拨打电话 使用uniapp自带的api&#xff1a;uni.makePhoneCall 以下是具体实现的代码&#xff1a; <view class"btn" click"telFun()">电话咨询</view>methods: {//拨打电话&#xff1a;telFun() {uni.makePhoneCall({phoneNum…

JS调用拨打电话功能

1.通过window.location.href 示例&#xff1a; window.location.hreftel://123456789&#xff1b; 2.通过a标签 示例&#xff1a; uniapp调用拨打电话功能&#xff1a;使用uni.makePhoneCall 示例&#xff1a;uni.makePhoneCall({ phoneNumber: Phone, success(){ console.l…

Xamarin.Android实现拨打电话的功能

目录 1、说明2、效果实现3、实现过程3.1 Manifest配置3.2 界面设置3.3 String资源3.4 具体实现 4、 代码下载5、参考资料 1、说明 通过Xamarin.Android实现拨打电话的功能。VS2019社区版 2、效果实现 3、实现过程 3.1 Manifest配置 必须得有拨打电话的权限设定。 <?xm…

flutter-拨打电话功能

使用插件:url_launcher 添加插件 命令行添加&#xff1a; flutter pub add url_launcher 这会自动在pubspec.yaml添加 url_launcher: ^6.0.20 建议直接命令行添加&#xff0c;这样就不用关心版本号是不是写对了&#xff0c;或者配置文件里配置错误什么的问题出现 导包 在…

拨打电话

拨打电话是手机常用的功能&#xff0c;Android中可以通过Intent启动android.intent.action.CALL&#xff0c;然后设置Uri参数&#xff0c;拨打电话的prefix为“tel”&#xff0c;所以如果要拨打电话1388888&#xff0c;Uri的字符串应为“tel:1388888”&#xff0c;即&#xff1…