tokenpocket钱包官方入口|控制器与ethercat物理接口
tokenpocket钱包官方入口|控制器与ethercat物理接口
EtherCAT学习笔记(3)物理层 - 知乎
EtherCAT学习笔记(3)物理层 - 知乎首发于EtherCAT笔记切换模式写文章登录/注册EtherCAT学习笔记(3)物理层夏日凉风发呆业务爱好者ET1100和PHY的总结_ 这个人总结的比我好,有需要的可以转而看这个。————————————————我是分割线————————————————带物理层的ESC一般都支持MII接口,有的还支持RMII。具体含义介绍如下:MII与RMII接口的区别以我的理解。。。MII和RMII就是PHY和MAC的接线?MII之后我会再仔细研究。这里先鸽着。因为RMII带了TX FIFOs,这个东西会增加EtherCAT的转发延迟还有抖动误差,所以RMII一般不被推荐使用。****************************************************************************************以太网物理层要求****************************************************************************************倍福公司为了减少帧处理和转发的时间,省掉了一个FIFO接口,MII接口被最佳化。但以此为代价,也对PHY作了额外的要求。这些要求在PHY卖方不难完成。EtherCAT对以太网PHY的要求:遵循 IEEE 802.3 100BaseTX支持100Mbit/s 全双工提供至少一个MII 接口具备autonegotiation机制支持MII 管理接口支持MDI/MDI-X auto-crossover其失效反应时间必须比15us快,从而满足冗余操作不得修改数据前导长度我本人具体是奔着原理去的,对这些发售方的要求不怎么感兴趣。有朋友感兴趣的可以自行查找。****************************************************************************************MII接口信号****************************************************************************************图1 MII接口信号示意图表1 MII接口信号描述信息MDIO信号要接上拉电阻,一般为4.7KΩ,上拉电阻可以集成在ESC内部也可在外部,依ESC而定。MCLK驱动能力要达到 rail-to-rail,默认状态为高电平。若ESC MII接口没有使用,LINK_MII必须处于表明无连接的逻辑值,RX_CLK, RXD, RX_ER,和RX_DV都要接地。****************************************************************************************标准和增强型链路检测****************************************************************************************对以太网来说,标准和增强型MII链路检测是用来错误检测和处理的,这个要和实际的链路检测区分开(告诉ESC物理层连接是否可用)增强型链路检测和标准相反,例如如果在不到10us的时间内发生32次RX 错误,会额外断开一个链接。本地循环关闭,并且通过MII管理接口重新启动自动协商机制,通知链路伙伴,链路伙伴接收到知道也会关闭自己的本地循环。(这里的链路伙伴是什么。。。什么是本地循环。。。。)ESC会保持该链路关闭,知道链路在自动协商机制当中关闭再开启之后,才会打开。增强型链路的可行性依赖于PHY地址配置,否则必须禁用它。****************************************************************************************MII管理接口(MI)****************************************************************************************大部分带有MII/RMII端口的ESC使用MII管理接口来和以太网通信。大部分ESC不用MII管理接口来进行链接检测及链接模式配置。对于链接检测,ESC会使用单独的LINK_MII 信号来表示。MII管理接口可以由EtherCAT主站使用,或者本地微控制器。增强型链接检测是在发生通讯错误后,用MI来重启自动协商机制来完成的。****************************************************************************************物理地址/物理地址偏移****************************************************************************************物理地址在增强链路检测和MI链路检测里至关重要,因为ESC需要将逻辑地址和物理地址相关联。EtherCAT可以通过PHY地址寄存器访问以太网。基本上各个ESC通过使用逻辑端口号加上可选的PHY地址偏移来寻址PHY。 可用的PHY地址偏移量有赖于ESC,并由PHY地址配置信号配置。通常来说,PHY地址偏移量要为0,逻辑端口号与物理地址相匹配。有的以太网物理地址具有一些特定的功能,例如物理地址0是一个广播地址。在这种情况下,物理地址0就不能用了。所以,物理地址偏移量应当不能为0,但也要在ESC实际支持的范围内,否则链路检测等功能就会失效。不过,主站也会和物理层通信,使其使用实际的物理地址。EtherCAT的通信有很多方式(例如使用LINK_MII信号)。手册建议说物理地址的选择应当为“逻辑端口号+1”。若端口0为EBUS通信,端口1-3有物理地址1-3,即物理地址偏移量为0 。若ESC的PHY地址偏移配置映射了实际的物理地址设置,主站可以使用物理地址寄存器内的0-3的值来访问物理层。(翻译的好拗口,感觉自己都没理解到位。。。) 表2 PHY地址配置和设置相匹配的情况若实际PHY物理地址设置和ESC的PHY地址配置不同,主站会使用ESI提供的PHY地址映射,即物理地址1-4访问逻辑端口0-3 。表3 PHY地址配置和设置不匹配的情况****************************************************************************************逻辑接口****************************************************************************************EtherCAT通过MI寄存器(这个寄存器我好像没找到,也许是指相关的意思)控制MI。表4 MI接口相关寄存器MI支持读PHY寄存器和写PHY寄存器两种命令格式。MI读/写该操作有以下标准流程:查看MI状态寄存器,确保MI处于空闲状态。写PHY地址至PHY地址寄存器。将要访问的PHY寄存器编号写入PHY寄存器地址寄存器,编号范围0-31。只写:将要写入的数据写入PHY Data寄存器(一个字或两个字节)。写入控制寄存器以发起命令。对于读操作:写1至第8位。对于写操作:写1至第0位,使能写操作,写1至第9位。两个位要在一个帧内。写使能实现一个写保护机制,该保护机制对同一个帧内后边的MI命令同样有效(也有写保护?)。如果EtherCAT的帧没有错误的话,该命令会在EOF(End of Frame )之后执行。等待MI状态寄存器的Busy bit清零。查看MI状态寄存器的Command Error bits。如果命令有效该位会自动清零。 read error bit 标识读错误,例如PHY地址是错误的,它由我们写0来清除。只读:可以在 PHY Data register读取数据。注意:命令寄存器(即9:8位,寄存器中的寄存器?)的位是自动清除的。手动清除也可以。PDI/ECAT的MI接口分配ECAT 主站会控制MI接口(默认情况下),如果要用PDI控制的话,可以将 Register MII Management PDI Access State (0x0517) 的0位置1 。MI协议MI访问始于 32个 1(也就是 0xFFFFFFFF?),后边是01(帧启动位),操作位(01为写,10为读),然后物理地址(5 bits)和物理寄存器地址(5 bits)会写入物理层,然后是一个数据传回标志(10为写,Z0为读,Z意思就是MDIO处于高阻态),两个数据字节会跟随其后,在数据字节传回后,整个传输就结束了。定时规格表5 MI定时规格字符说明图2 写访问时序有一些地方用词典翻译比我自己翻译的到位,故会引用直接翻译。有一些地方可能说的不够清楚不好,可以的话希望各位朋友指正,供大家共同学习。编辑于 2020-11-25 11:23工控赞同添加评论分享喜欢收藏申请转载文章被以下专栏收录EtherCA
EtherCAT从站物理层接口MII&EBUS简介_ebus接口-CSDN博客
>EtherCAT从站物理层接口MII&EBUS简介_ebus接口-CSDN博客
EtherCAT从站物理层接口MII&EBUS简介
最新推荐文章于 2023-12-15 16:07:51 发布
野猪力量
最新推荐文章于 2023-12-15 16:07:51 发布
阅读量7.7k
收藏
25
点赞数
1
分类专栏:
EtherCAT
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wofreeo/article/details/89530732
版权
EtherCAT
专栏收录该内容
45 篇文章
45 订阅
订阅专栏
EtherCAT从站物理层接口有MII和EBUS两种,根据倍福官方的资料可以看到:
MII(Media Independent Interface,介质无关接口)需要使用以太网PHY芯片,MII接口也是标准的以太网物理层接口;
EBUS是倍福定义的数据传输标准,是基于LVDS(Low Voltage Differential Signal,低压差分信号)的,无需额外的物理层芯片,从而避免了物理层的附加传输时延,但是只适合短距离传输。
而之前文章中提到的EK1100耦合器,就是将MII信号转换成EBUS信号的,从而可以不用RJ45接口以及PHY芯片,更加节省空间成本。
优惠劵
野猪力量
关注
关注
1
点赞
踩
25
收藏
觉得还不错?
一键收藏
知道了
0
评论
EtherCAT从站物理层接口MII&EBUS简介
EtherCAT从站物理层接口有MII和EBUS两种,根据倍福官方的资料可以看到:MII(Media Independent Interface,介质无关接口)需要使用以太网PHY芯片,MII接口也是标准的以太网物理层接口;EBUS是倍福定义的数据传输标准,是基于LVDS(Low Voltage Differential Signal,低压差分信号)的,无需额外的物理层芯片,从而避免了物理...
复制链接
扫一扫
专栏目录
倍福E-bus和K-bus区别
weixin_41883890的博客
01-27
9515
E-bus指的是EtherCAT总线,K-bus指的是除了EtherCAT总线外的,其他类的耦合器(例如CANopen耦合器)和模块之间通讯的高速串行总线。本文介绍E-bus和K-bus的区别和相关产品
E-Bus简介
1.1. E-bus
1.1.1. 概念
Twincat系统连接倍福I/O系统时,默认Ethercat作为I/O总线,I/O模块之间使用E-Bus作为背板总线,E-Bus本质就是Ethercat,只不过传输的时候不是用的网线,而是背板后面的弹簧片触点(6个弹簧触点).所谓一网到底,就是每个
adapter:与eBUS加热系统通讯的硬件接口
04-30
eBUS适配器
该存储库用于创建eBUS适配器的在线文档,以便与连接到2线总线系统(许多供热系统使用的“能量总线”)的eBUS设备进行通信。
旧的v2文档仍保留在此处的,在此处可以获取最新版本: :
参与评论
您还未登录,请先
登录
后发表或查看评论
基于EBUS通信的 EtherCAT高速 背板方案
weixin_45650427的博客
12-12
479
基于ET1200, EBUS LVDS通讯的高速背板
EtherCAT简介
最新发布
m0_73482095的博客
12-15
176
EtherCAT(EtherNet Control Automation Technology)是由德国公司BECKHOFF公司于2003年提出的实时工业以太网技术。其具有高速、高数据有效率的特点,支持多种设备的连接拓扑结构。从站节点使用专用的控制芯片,例如:microchip公司的Lan9252、BECKHOFF公司的ET1100等ESC(EtherCAT slave controller)芯片。主站的搭建方式有很多,例如:开源主站IGH、SOEM、商业化主站TwinCAT等。
多通路fpga 通信_【论文精选】基于FPGA的EtherCAT从站通信链路分析与验证
weixin_39876856的博客
12-29
416
原标题:【论文精选】基于FPGA的EtherCAT从站通信链路分析与验证马保全1,2,姚旺君1,2,刘云龙1,2,张晓莉1,2,黄 兵1,2,赵德政1,2(1.工业控制系统信息安全技术国家工程实验室,北京100083;2.华北计算机系统工程研究所,北京100083)摘 要:EtherCAT是工业控制领域广泛应用的现场总线之一,从站控制器ESC(EtherCAT Slave Controller)是...
【EtherCAT理论篇】二、EtherCAT工作原理
热门推荐
zhandouhu的博客
10-26
2万+
1、EtherCAT系统组成
EtherCAT是一种实时以太网技术,由一个主站设备和多个从站设备组成。主站设备使用标准的以太网控制器,具有良好的兼容性,任何具有网络接口卡的计算机和具有以太网控制的嵌入式设备都可以作为EtherCAT的主站。对于PC计算机而言,主站控制器多采用倍福开发的TwinCAT软件。EtherCAT从站使用专门的从站控制器(ESC),如专用集成芯片ET1100和E...
ebus:简单的顺序事件总线
05-09
巴士
高性能事件总线,被设计为Scrollback中的集中式数据流交换机。 它在客户端和服务器上都已投入生产。
在客户端上,它的作用与Flux Dispatcher类似。
这不是PubSub吗?
可以通过这种方式使用它,但是它还可以做其他一些事情。
可以按预定顺序或并行触发订户
订户可以在将有效负载传递给下游订户之前对其进行修改
订户可能会抛出错误以停止传播到其他订户
与Flux的Dispatcher不同,ebus允许具有不同订户列表的多个事件,并支持异步订户。
当前的API
var bus = require("ebus")();
bus.on("event", callback, priority);
bus.emit("event", data, callback);
bus.off("event", callback);
// debugging
bus.setDebug(
EtherCAT协议基础知识(Part 2)
工业通讯__HongKe的博客
10-12
4805
二、EtherCAT物理层和链路层
1.物理层
倍福对EtherCAT协议的物理层实现提供了两种方案:普通方案以及EtherCATP方案;
①普通方案:采用通用的、低成本的RJ45接口,以及物理层PHY芯片,通信介质可采用TX(双绞线,最大传输距离100m)或FX(光纤,最大传输距离20km)进行传输,另有LVDS形式可供进行电路板级的协议数据传输。
②EtherCATP方案:EtherCAT P(P = power,电源)是对EtherCAT 标准协议的补充。它不仅传输通信数据,而且通过单..
倍福PLC中的EtherCAT与E-Bus的关系
TManHero的博客
06-01
5046
Twincat系统连接倍福自己的家的I/O系统时,默认Ethercat作为I/O总线,I/O模块之间使用E-Bus作为背板总线,其实,E-Bus本质就是Ethercat,只不过传输的时候不是用的网线,而是背板后面的弹簧片触点(6个弹簧触点).所谓一网到底,就是每个I/O模块都是一个Ethercat从站。习惯是把EtherCAT用于相邻连接的I/O模块叫做E-Bus,连接空间上有距离的设备时叫做EtherCAT,实质上两者并无实质的区别
...
倍福--EtherCAT诊断方法
weixin_41883890的博客
06-24
3944
在调试阶段可能会出现EtherCAT模块因接线、参数配置等问题而导致无法使用的情况。本文介绍Ethercat模块网络诊断和硬件排查的基本方法。1.1.2. EK1100 EtherCAT Link口状态显示
同样连接网口的灯也有状态显示,一般需要查看网口的灯是否在正常状态,LinK口的LED灯显示状态和意义如下所示:
1.1.3. EK1100 EtherCAT Run灯的含义
Run灯的变化是根据状态机进行变化的,EtherCAT状态机如下所示:
因此LED RUN灯颜色和状态意义如下所示:
总线(Bus)
小泽
02-05
5849
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束,按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。
当总线空闲(其他器件都以高
NI LabView连接BECKHOFF EtherCAT从站.pdf
03-23
NI LabView连接BECKHOFF EtherCAT从站
Ethercat_最新的从站协议工具SSC_V5.12
03-25
Ethercat_最新的从站协议工具SSC_V5.12
eBUS-SDK-64-bit-for-JAI.6.1.4.5137.zip
06-01
From https://www.jai.com/support-software/jai-software
eBUS 是一个单独的 SDK,开发人员可编写实现接收、发送操作模式的单一操作代码,也可编写同时实现两者操作的代码。eBUS SDK 基于单个 API 构建,可通过 GigE、10 GigE 和USB 接收视频,通过 Windows、Mac 和 Linux 操作系统进行移植。借助 Developer Seat License,设计人员可以在与最终用户相同的环境中开发生产就绪的软件应用程序,并快速轻松地修改不同媒体的应用程序,同时避免支持来自不同供应商的 APIs。与相机供应商提供的 SDK 相比,eBUS 使开发人员不必束缚于某个特定相机,而是可以选择最适合应用的设备。
EtherCAT从站源代码.zip
07-05
STM32F103RB+ET1100 Ethercat 从站源码,有IO 输入输出 程序, 有DS402 程序,有原理图 带 XML文件
BECKHOFF TwinCAT连接 NI EtherCAT从站.pdf
03-22
BECKHOFF TwinCAT连接 NI EtherCAT从站
ETG.2000 EtherCAT从站信息规范.pdf
10-15
ETG.2000 EtherCAT从站信息规范记录了XML文件内容的详细信息,XML文件内记述着驱动器特有的信息(制造商,产品信息,配置文件,对象,过程数据,时间同步,同步管理器设置等)
ethercat从站搭建指南-英文版
05-05
ethercat从站搭建指南——英文版
EtherCAT从站协议栈代码笔记之cia402appl.c
豚
09-05
1万+
首先解释一下CiA,CiA是一个组织,CAN in Automation,主要工作是推广CANopen协议。CANopen大概是这样的:
CANopen四问 http://www.gongkong.com/article/201412/55783.html
1. CANopen的起源,CANopen从何而来?
德国Bosch公司于1983年研发CAN协议,用于汽车传动系统的网络通讯。之后...
stm32 ethercat从站电路
11-14
在STM32 EtherCAT从站电路中,主要包含了STM32微控制器、EtherCAT通信的物理层芯片、以及连接这两者的接口电路。STM32微控制器负责实时处理和响应来自EtherCAT主站的命令和数据,同时利用物理层芯片与其他从站进行...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
野猪力量
CSDN认证博客专家
CSDN认证企业博客
码龄13年
暂无认证
134
原创
1万+
周排名
214万+
总排名
184万+
访问
等级
1万+
积分
934
粉丝
1049
获赞
255
评论
5351
收藏
私信
关注
热门文章
STM32CubeMX介绍、下载与安装
112732
RS232、RS485标准以及在DB9公头、母头上的接线定义
67343
详细讲解单片机复位电路原理
64010
电机控制中的FOC
63739
Word文档中粘贴图片不显示
60448
分类专栏
rtos
1篇
数据结构
3篇
Keil
1篇
STM32CubeMX
EDA
2篇
Linux
1篇
C语言
7篇
HTML+CSS
1篇
perl
5篇
征服C指针
笔记
7篇
c#
2篇
嵌入式
131篇
labview
9篇
python
7篇
EtherCAT
45篇
VxWorks
9篇
论文
2篇
Matlab
24篇
工程问题C语言求解
1篇
电机控制
6篇
最新评论
keil软件中怎么显示系统中各种内存的值?
pengjun_45:
keil
LabVIEW打包成exe的一些问题及应对方法
零卡快乐水:
你好,我在改完 “在程序框图中指定路径”后,程序面板左上角的箭头就断开了,报错,显示我dll端口错误链接或者没连,但是没改之前都是连的好好的
STM32F4+DP83848以太网通信指南系列
L1366389359:
链接都没了,还有其他渠道的吗
My_ARM_Starter_Board_F4开发板串口例程
Boone3011:
我也遇到同样的问题,可以把你的发我一下吗?
Boone301@126.com
stm32cubemx重新生成代码时,自己添加文件如何处理
keyword_candy:
不完全可行,大更改的时候会导致编译通过不了
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
微雪F746开发板移植ucosiii注意事项
What is a blocking function?
环形缓冲区的实现原理(ring buffer)
2020年9篇
2019年162篇
2018年141篇
目录
目录
分类专栏
rtos
1篇
数据结构
3篇
Keil
1篇
STM32CubeMX
EDA
2篇
Linux
1篇
C语言
7篇
HTML+CSS
1篇
perl
5篇
征服C指针
笔记
7篇
c#
2篇
嵌入式
131篇
labview
9篇
python
7篇
EtherCAT
45篇
VxWorks
9篇
论文
2篇
Matlab
24篇
工程问题C语言求解
1篇
电机控制
6篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
个
红包个数最小为10个
红包总金额
元
红包金额最低5元
余额支付
当前余额3.43元
前往充值 >
需支付:10.00元
取消
确定
下一步
知道了
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom 发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。
余额充值
EtherCAT学习之路——概述 - 知乎
EtherCAT学习之路——概述 - 知乎首发于EtherCAT学习之路切换模式写文章登录/注册EtherCAT学习之路——概述白细胞 最近在做基于EtherCAT的项目,看了一些网上的博客,感觉写的都比较松散。虽然,自己也是才开始学习,希望能把这段时间学到的东西总结一下。这是倍福的官方介绍,有时间的可以看一下。1.EtherCAT简介 EtherCAT是由德国BECKHOFF自动化公司于2003年提出的实时工业以太网技术。它具有高速和高数据有效率的特点,支持多种设备连接拓扑结构。其从站节点使用专用的控制芯片,主站使用标准的以太网控制器。 EtherCAT是一种工业以太网技术,看到的大多数应用场景都是伺服电机。因为是基于以太网的技术,所以EtherCAT相比于CAN总线而言,速率上要快不少。EtherCAT可以达到100M的速率,而CAN只有1M。此外,EtherCAT还具备低延时和精准同步的特点。 在工业总线中,低延时、精准同步是用户的关键需求。试想一下,工厂中某个器件的生产需要A/B/C三个机器协同操作,原本预想的是A先操作期间,然后B把器件传递给C,C再操作。如果,A/B/C不同步,或者操作命令的传达有延时,A还没有操作完器件,B就已经开始进行传递了。这时要么器件损坏,要么就做出来个半成品。而EtherCAT相比于普通的以太网技术就有这两点的优点。2.EtherCAT基本原理 EtherCAT基本原理这一节PLC攻城狮的《浅析EtherCAT 总线》讲的还是比较清楚,推荐大家看一下。下面我就简单说一下自己的理解。 倍福官方对EtherCAT的传递机制的命名叫做:ON The Fly。图 2-1 On The Fly On The Fly技术可以从两方面来解读,第一个方面是以太帧“时分复用”。一般以太帧里都只包含了一个设备发送的消息,5个设备就会发送5条以太帧。而EtherCAT则是多个从站共享一条以太帧。就像图2-1中的火车,EtherCAT主站发出了“火车”(以太帧),各个从站则从这辆火车的不同的“车厢”(子报文)中提取或插入自己的“乘客”(消息)。这样一来就实现了以太帧的“时分复用”,只用一条以太帧(最大1486byte),就可以让各个从站都收发出自己的消息,大大的降低了通信的延时(这一部分《浅析EtherCAT 总线》里面讲的比较清楚,还没理解的同学可以看看)。 On The Fly影响的另一个方面就是总线仲裁了。所谓总线(例如CAN总线),就是大家都共用一条通道来通信,各个设备都挂载在同一条总线上。所以,当一个总线上的多个设备同时想要发消息的时候,就会产生冲突,所以,就有总线仲裁的机制。控制器决定当前时刻,谁来发消息,谁来“占用”这条总线。而EtherCAT玩了一个花样,EtherCAT的各个设备之间是一种P2P(Point to Point)的连接方式,这些设备根本没有连接在“同一条”总线上。下面是EtherCAT的连接结构。图 2-2 EtherCAT连接结构 图2-2中,最左边的是主站,后面的都是从站,各个从站下面还挂载了不同的设备。可以看到主站向从站1发送以太帧,从站1接收、处理完自己的子报文后,再把以太帧发送给从站;从站2接收,处理完自己的子报文后在发送给从站3;如此往返,直到最后一个从站n接收处理完自己的消息,再把这条以太帧返回回去。所以,各个从站之间根本就不会存在总线冲突。EtherCAT只需要预先配置好各个从站占用的子报文位置,也就是On The Fly技术,就可以解决总线总裁这一个老大难的问题,确实是一箭双雕。 当然,这种解决方案也是有它的缺点的。比如,从站数量非常多的时候,最后一个从站就需要等前面的从站一次次转发才能收到消息。当然,我觉得EtherCAT应该也想到了这点,应该也采取了某种机制来避免这种最远设备延迟的缺陷。但是,我还没深挖这个问题,所以,没看到相关的解决机制。如果有了解的同学希望能指教一下。3.EtherCAT系统组成 EtherCAT系统主要就一个主站和若干从站组成。如图3-1所示:图3-1 EtherCAT系统组成 EtherCAT一般使用软件的方式来实现主站,包括倍福的TwinCAT,Igh,KingStar等等都是基于一台实时操作系统的PC,通过以太网卡,来实现主站的功能。因为,主站不是我的项目重点,所以,目前了解的还不多。先挖一个坑,后面有时间了研究一下,再来补上。现在我是用TwinCAT的免费版来学习和调试的。TwinCAT本身是收费的,不过,它有试用版,试用版不具备实时功能,调试一下设备还是足够了。 从站的组成如图3-2所示:图 3-2 从站组成 从站一般是有3部分器件组成的:物理层器件、EtherCAT从站控制器(EtherCAT Slave Control)和微处理器(MCU)。物理层器件就是以太网的PHY芯片和网口,ESC是实现EtherCAT协议栈的专用ASIC,从站控制微处理器主要实现应用层(如CANopen)和用户自定义的程序。 看到这里没有通信基础知识的通信可能就有点懵逼了。物理层,数据链路层,应用层这些是个啥玩意?这里我就简单说一下,想要深入理解还是可以看看OSI模型,大多数的通信技术都脱离不了这个框架。图 3-3 OSI模型 这里偷了个懒,盗用一下PLC攻城狮的图片。OSI中有7层,EtherCAT系统中只用了3层:物理层、数据链路层、应用层。先降维的说一下这几层是啥意思。最基本的通信就是咱们人类说话,我就以我们普通对话来讲解一下这三层的意思。 物理层:人类的语言是通过嘴发声,声波在空气中传播,传递到耳朵,耳朵听音再汇聚到大脑,大脑最终判断出声音中的信息。我们的嘴、耳、声波和空气就是物理层。物理层的重点是信号在介质中的传递表示,不同的字有不同的发音规则,不同的频率和声调,比如“哦”,我们就需要发出“o”这个音,我们听到“o”这个音的时候,才能判断出“哦”这个字。计算机通信的原理和这个也是一样的,信号在光纤、电缆以及空气中传播,计算机需要判断电缆上的电平的高低来判断0,1bit。当然,计算机比人类要傻很多,它不知道“某句话”的“发音”是从什么时候开始的,什么时候结束的,所以,物理层还需要告诉它信号的起始时刻和持续的长度等等。 数据链路层:通过前面的物理层,我们已经具备了基本的发声的手段,通过嘴改变声音的频率、音调、音长等特征(通信系统中,天线或者光模块改变信号的电平高低、信号频率、调制方式等特征),让声音在空气中传播(通信系统中,信号在相应的介质中传播),然后,耳朵识别这些频率、音调、音长等特征(通信系统中,接收端的识别信号的电平高低、频率、调制方式),最终实现口到耳的传播。 但是,光是这样还足够实现通信。试想一下,你和你的几个朋友处在一个嘈杂的环境当中,远处有汽车的轰鸣,旁边还有小孩子在哭闹,你的朋友们每个人在抢着发言,大家七嘴八舌的,根本听不清对方在说什么。所以,你和你的朋友之间想要对话就必须克服两个困难,第一,屏蔽掉耳旁的那些轰鸣声、哭闹声;第二,需要建立一种对话机制,让大家互相可以听清对方的话语。 第一点中描述的那些轰鸣、哭闹声,实际上就是通信系统中的噪声,噪声太大时,我们是无法通信的,因为我们根本听不清旁边的人在说些什么,只能听到轰鸣、哭闹声。最简单克服噪声的办法就是提高信号的发射功率,也就是大声地说话,让自己的声音盖过那些哭闹声,也即是通信系统中的功率控制。还有一种办法就是我们过滤掉一些噪声,虽然,这些声音都会进入我们的耳朵,但是,我们的大脑可以过滤掉一些不关注的声音,专注的去接收那些关注的声音,也即是通信系统中的频率选择。此外,大家七嘴八舌的说话也是一个问题。7,8个人同时在说话,你能听清楚一两个就不错了,其他人在说啥,根本没法听清。所以,我们说话的时候,一般会有一个轮流的机制。每个人说两句,别人说话的时候,别插嘴。或者,两个人说悄悄话,不打扰到别人,自己也听得清。这里的轮流说话机制,就是通信系统中的“时分复用”或者“频分复用”;一个人说7个人听,就是广播;1对1的悄悄话就是单播。数据链路层实际上就是用来解决以上的这些问题。 数据链路层会将待传输的消息组成一个帧,如图3-4所示:图3-4 EtherCAT帧结构 这个帧里就会包含目的地址、源地址、帧数据、帧校验位等。通过目的地址就可以确定帧传递的对象,通过源地址接收方也可以知道是谁发送了这条帧。在数据帧之外的地方,一般还会存在一个控制器(比如EtherCAT主站),这个控制器会决定,其他的从站什么时候传输数据,数据可以占用多少的资源。在其他的一些更复杂的通信系统中,数据链路层还会根据当前的信道条件(噪声情况),来决定各个设备的发射功率,调制方式等。 应用层:说完了数据链路层,我们还需要继续了解一下应用层。首先需要明确的一点,这里的应用层和我们手机、电脑上的应用程序不是一个东西。最为常见的应用层协议就是HTTP。简单来说,应用层是对数据的一种格式约定。这里还是用人类的对话来打个比方。你和一个老外,大家都有口有耳,也都是文明人,知道等对方说完自己再说。但是,你不懂英文,他不懂中文,你们还是无法交流。他说了“double”,你以为是“打包”;他说“You need cry deal”,你以为是“有你的快递”。这实际上就是你们的应用层协议不对等,他安装的是“英语”应用层协议,你安装的是“中文”应用层协议,大家说话牛头不对马嘴,根本无法交流。再夸张一点,我和你都是中国人,我们都听得懂中文,当时我是学通信的,你是学自动化的,我说PRACH信道,信道检查与估计,匹配滤波这些词的时候,你能明白每一个字的意思,但是连着一起是啥就不知道了。这就是因为你确实“通信系统”这个应用层协议。应用层协议最终的目的,就是让消息的收发双方知道这一串“1010101010”代表的是什么意思。本来这一章准备昨天就写完了,谁知道写了这么多无关的内容,后面准备新开一个博客把OSI的7层就讲一下,然后再把这一节删除掉。4.学习书目 其实,前面说了这么多,我觉得只有这一节最重要,介绍一下我的参考书目。网上虽然有各种各样的博客、知乎文字,但是始终是比不上书本上的详细和系统的。网上这些博客可能可以吃个快餐,但绝对不是什么捷径。不系统的学习,只能让你一知半解,能做个Demo出来就不错了。一旦遇到一点bug,根本无从下手。所以,一定要多读书,读好书。 这里有几本书要给大家推荐一下。 首先是北京航空航天大学出版社,郇极、刘艳强编写的《工业以太网现场总线EtherCAT驱动程序设计及应用》。这本书详细的介绍了EtherCAT协议、从站控制芯片以及相关应用层协议。我这里的大多数内容都取自于这本书中,如果能把这本书都看懂、看明白,那EtherCAT从站开发,应该不会有太大的难点。 第二是周立功的《CANopen轻松入门》。EtherCAT是一个数据链路层的协议,所以还需要配合上层的应用层协议才能更好的工作,CANopen即是工业物联网中一个比较常用的应用层协议。事实上,进行从站开发的时候,应用层协议会占到很大的比例。因为,EtherCAT从站一般都会使用一个专用ASIC(如ET1100)来实现EtherCAT协议栈,也即是完成数据链路层的工作。对于数据链路层,我们只需要做一些配置工作,而应用层协议则需要通过软件来实现。 第三是倍福官方的《EtherCAT Slave Information Specification 》和《Application Note ET9300》。前面说了,EtherCAT协议栈的功能都是在ET1100上实现的,开发从站是不涉及这部分数据链路层的代码的。但是,我们还是对从站进行相应的配置,包括PDI控制,SYNC信号脉冲宽度等信息(称为EtherCAT Slave Information,ESI)。这些信息的配置就在《EtherCAT Slave Information Specification》里有详细讲解。此外,从站开发还需要实现CANopen等应用层协议。对于应用层协议的实现,在《Application Note ET9300》里有比较详细的讲解。像ET1100、AX58100、LAN9252这些EtherCAT控制芯片,其芯片厂商都会提供一些Demo程序,这些Demo程序实际上都是基于《Application Note ET9300》里的软件框架来完成的。《Application Note ET9300》只有英文版,我自己也还没有看完,而且比较重要,后面专门拿一章来细讲。 第四是SSC,这是倍福提供的一个软件。前面说了,从站开发的两个关键步骤是EtherCAT控制芯片的配置和应用层协议的实现。倍福提供了SSC这样一个软件,它可以直接根据配置和需求,生成所需的xml描述文件和应用层代码。当然,这个软件生成的代码原生只适配与倍福自己的ET1100或ET1200芯片,其他的LAN9252、AX58100都做一些修改。这个东西看着很美好,也就那么回事。其实,每个芯片厂商都有提供自己的Demo程序,这些Demo程序都简单实现了应用层协议。如果是使用非倍福的芯片,不如直接在芯片厂商的Demo程序上改,这样可以避免一些莫名其妙的bug。不过,如果所需的应用层协议,芯片厂商没有提供Demo程序的话,还是需要用SSC生成一个参考,然后,再基于这个参考来修改。题外话原本以为一个晚上可以搞定的工作,生生花了2个晚上。很多地方写得比较零碎,特别是OSI那一段扯得有点远了,写了不少和主题无关的内容,后面找时间再重新精简一下。第一次写博客,可能有不少不准确或者错误的地方,还请大家见谅。如有不对之处,还请多多指教。编辑于 2020-03-13 16:39工业互联网/物联网平台个人博客以太网(Ethernet)赞同 19716 条评论分享喜欢收藏申请转载文章被以下专栏收录EtherCAT学习之路EtherCAT从站开
EtherCAT从站学习笔记——2.1物理层 - 知乎
EtherCAT从站学习笔记——2.1物理层 - 知乎首发于EtherCAT从站学习切换模式写文章登录/注册EtherCAT从站学习笔记——2.1物理层鹏飞亿里探索宇宙规律,施加适当激励。EtherCAT物理层是EtherCAT参考模型中的最底层,它为网络信号的传输提供了物理接口,同时接收来自数据链路层的数据单元,并对它们进行相应的解码。根据系统需求,可以选择是否加入通信帧数据,之后再将处理的物理信号发送给其他节点的传输介质,然后在之后的节点上接收信号并进行解码。要想实现设备之间的数据交换,在物理层的下面就必须有连接设备的实际传输介质。EtherCAT物理层连接原理如图2-3所示。其中,RJ45是一种标准的网络物理接口;隔离变压器用来隔离信号以保证通信的可靠性;物理层芯片PHY则用来实现数据编译、译码和收发;在物理层芯片PHY和以太网通信控制芯片ESC之间是通过一个MII(Media Independent Interface)接口来交换数据。ESC芯片是实现EtherCAT数据链路层协议的专用集成电路芯片,它处理EtherCAT数据帧,并为从站控制装置提供数据接口。编辑于 2021-12-13 17:39物理层(计算机网络)工业控制伺服电机赞同 71 条评论分享喜欢收藏申请转载文章被以下专栏收录EtherCAT从站学习EtherCAT工业现场总线,伺服系统