首页 > 其他分享 >Ethernet vs. EtherCAT

Ethernet vs. EtherCAT

时间:2023-10-29 11:14:44浏览次数:29  
标签:网络层 网络 vs Ethernet EtherCAT 以太网 链路层 时钟

Ethernet也就是以太网,算是一种链路层的协议(IEEE 802.3)。如下图所示,链路层data link layer位于网络层和物理层中间。因此链路层的基本服务是将数据报通过单一通信链路从一个节点移动到相邻节点,但所提供的服务细节取决于链路层协议。链路层协议能够提供的可能服务包括:

1.成帧framing,链路层协议把网络层传过来的数据报封装为帧。一个帧由一个数据字段和若干首部字段组成,网络层数据报插在数据字段中。帧的结构取决于所使用的链路层协议。

2.链路接入,媒体访问控制medium access control, MAC协议规定了帧在链路上的传输规则。主要针对的是多路访问问题。

3.可靠交付,与TCP协议提供的可靠交付服务类似,通常用于易于产生高差错率的链路。

4.差错检测和纠正,相比于网络层和传输层的差错检测方法,链路层的差错检测通常更复杂,并且用硬件实现。

 

以太网和无线局域网是广播链路层技术的例子。在多路访问问题方面,以太网协议是带碰撞检测的载波侦听多路访问协议CSMA/CD。但对于今天广为使用的以太网是基于交换机switch的星形拓扑,采用的是存储转发分组交换。并且现代交换机是全双工的,使得一台交换机和一个节点能够在同时向对方发送帧而没有干扰。In a nutshell,在基于交换机的以太网局域网中,不会有碰撞,因此也没有必要使用CSMA/CD了。

以太网的帧结构如下图所示。

  • 数据字段 (46-1500bytes),网络层数据报,
  • 目的地址(6bytes),包含目的MAC地址,
  • 源地址(6bytes),包含源的MAC地址,
  • 类型(2bytes), 允许以太网复用多种网络层协议,
  • CRC(4bytes),循环冗余检测
  • 前同步码(8bytes),前7个字节用于“唤醒”接收适配器,并且将它们的时钟和发送方的时钟同步。第8个字节的最后两个bits警告适配器B,“重要的内容”就要来了。

以太网技术向网络层提供不可靠服务,不管有没有通过CRC校验,接收方都不会向发送方发送确认帧。没有通过CRC校验的话,接收方只是丢弃该帧。缺乏可靠的传输使得以太网简单和便宜,同时也意味着传递到网络层的数据报流能够有间隙。但同时也意味着以太网不能直接应用于具有实时要求的工业场景中。

 

EtherCAT是德国Beckhoff自动化公司2003年提出的实时工业以太网(IEC 61158)。网络层和传输层都删掉了,只保留了物理层、链路层和应用层。如下图所示。

在链路层上,EtherCAT采用的是主从模式,而非ethernet的对等模式。如下图所示。主站把封装好的帧发送出去,帧包含从站节点信息,包括寻址、EtherCAT命令类型以及实际过程数据。帧在网络中传输时,每个从站都会查找并提取属于它的数据,并在帧向下游传输时将新数据插入回帧中。当帧到达最后一个从站时,利用以太网的全双工功能将帧发送回主站。

 

EtherCAT最精确的同步机制基于分布式时钟DC,网络中各节点的时钟校准基于硬件。EtherCAT使用参考时钟,通常来自网络中的第一个DC从站。该参考时钟的时间分布在网络中的所有节点上,产生的抖动小于1μs。为了补偿由于网络中每个时钟的速度差异而导致的各种时钟飘逸,设备根据参考时钟定期进行自我调整。由于所有节点都在同一参考时钟上运行,因此可使用由精确的本地时钟管理的周期性触发器在网络上同时应用过程数据和输出信号。

此外,EtherCAT还支持非循环通信,包括各种邮箱协议,但这不能保证实时传输。 

EtherCAT实现的系统架构主要包含三个组件:配置文件、主站和从站。配置文件包含有关从站配置和网络拓扑的详细信息。主站使用配置文件来配置和初始化EtherCAT网络,管理EtherCAT网络、与从站交换数据以及与外部应用程序连接。从站通常是传感器、驱动器、执行器和I/O模块,在自动化系统中执行特定任务。

从站信息ESI文件是用XML写的,由从站制造商提供,包含从站的详细信息,如设备类型、支持的邮箱协议、同步设备及其输入和输出过程数据的映射。

网络信息ENI用于定义网络拓扑、从站在网络中的定位以及所有从站的过程数据结构。ENI文件被主站用来配置和初始化网络。

主站通常用PC、PLC、运动控制器来实现,负责与从站通信从而控制从站所属的设备。主站还负责管理网络时钟和网络同步,以及看门狗定时器和自动重试等错误处理机制。从站需要从站控制器ESC,用专用芯片实现。从站也具有内置的错误处理机制,有助于确保可靠的通信并防止错误导致系统故障。 

 

Refs:

1.计算机网络:自顶向下方法(原书第7版)

2.https://www.acontis.com/en/what-is-ethercat-communication-protocol.html

 

标签:网络层,网络,vs,Ethernet,EtherCAT,以太网,链路层,时钟
From: https://www.cnblogs.com/larissa-0464/p/17795318.html

相关文章

  • vscode 安装了clang之后 即使卸载也没有跳转功能记录
     借鉴这位博主  【精选】VSCodeC/C++无法跳转到定义、自动补全、悬停提示功能_c/c++:editconfigurations(json)-CSDN博客 (上图高亮部分)卸载clang 重启VSCode 然后IntelliSenseEngine开关设置为Default 应该就可以了 ......
  • VS and C++ Versions
    VS版本VC版本ToolSet版本MSC版本VisualStudio66 1200VisualStudio20037 1300VisualStudio20058801400VisualStudio20089901500VisualStudio2010101001600VisualStudio2012111101700VisualStudio2013121201800......
  • vscode 创建代码片段
    1vscode左下角设置>命令面板2输入snippets3选择新建全局代码片段文件4输入文件名称xxx.json(例如:vue-setup-less.json)5设置模板并保存快捷生成模板地址点击跳转......
  • MicroSIP-3.21.3+pjproject-2.13.1+ opus-1.3.1+VS2019
    本文记录了我通过VS2019编译MicroSIP-3.21.3开源项目的过程。Microsip:MicroSIPsourcecodepjproject:DownloadPJSIP-OpenSourceSIP,Media,andNATTraversallibraryopus:Downloads–OpusCodec(opus-codec.org)下载并解压后如图: 用vs2019将microsip的平......
  • LVS、Nginx、HAproxy区别与选择
    LVS:是LinuxVirtualServer的缩写,是一种基于Linux内核实现的高可用性、高性能的负载均衡技术 ;是基于四层的转发;Nginx:既是WEB服务器,缓存服务器,又是反向代理服务器,可以做七层的转发HAproxy:是基于四层和七层的转发,是专业的代理服务器;区别:LVS由于是基于四层的转发所以只能做端口......
  • vs code markdown mermaid预览插件安装
    安装预览插件预览指令使用control+shift+p效果......
  • vscode+phpstudy配置php环境
       php文件路径可以写phpstudy下载好的php文件目录 按照上面的步骤配置之后发现还是出错此时需要按照步骤添加fiveserver的js文件,设置php路径,使得fiveserver能够运行php文件 然后直接右键点击openwithfivesever即可成功打开 当然也可以点击右上角的小三角......
  • 使用vscode 用git 拉取代码,提示:在签出前,请清理存储库工作树
    使用vscode用git拉取代码,提示:在签出前,请清理存储库工作树如图:问题:git仓库上的代码和本地代码存在冲突了所以会报这个报错。解决办法:手动解决①gitstash先将本地修改存储起来②gitpull拉取远程③gitstashpop还原暂存内容放弃本地修改,直接覆盖①gitreset--hard②g......
  • Vsan数据恢复—异常断电Vsan存储上层虚拟机无法启动的数据恢复案例
    Vsan分布式存储故障&检测:异常断电导致一台vsan存储设备上层虚拟机无法启动。将故障Vsan存储上的所有磁盘编号后取出,由北亚企安的硬件工程师对vsan存储上的所有硬盘进行物理故障检测,经过检测没有发现硬盘存在物理故障。vsan存储结构简图:将vsan存储中所有硬盘以只读方式做全盘镜......
  • 使用vscode编译python
    使用vscode编译python1.需要提前安装python,vscodewin10安装python32.在vscode中安装Python插件a.在vscode中高效率的编辑Python代码,需要安装Python插件,点击图1中红框内的按钮b.在左上角的搜索框中输入:Python,如图2所示,点击图2中红框内的按钮安装插件,点击后红框内的......