EtherCAT 网站链接

http://www.ethercat.org.cn/cn.htm

       EtherCAT技术介绍

       EtherCAT系统组成和工作原理

       EtherCAT采用主从式结构,主站PC机采用标准的100Base-TX以太网卡,从站采用专用芯片。系统控制周期由主站发起,主站发出下行电报,电报的最大有效数据长度为1498字节。数据帧遍历所有从站设备,每个设备在数据帧经过时分析寻址到本机的报文,根据报文头中的命令读入数据或写入数据到报文中指定位置,并且从站硬件把该报文的工作计数器(WKC)加1,表示该数据被处理。整个过程会产生大约10ns的时间延迟[1]。数据帧在访问位于整个系统逻辑位置的最后一个从站后,该从站把经过处理的数据帧做为上行电报直接发送给主站。主站收到此上行电报后,处理返回数据,一次通信结束。系统结构原理图如图1所示:

       EtherCAT支持几乎所有的拓扑类型,包括线型、树型、星型等,其在物理层可使用100BASE-TX双绞线、100BASE-FX光纤或者 LVDS(Low Voltage Differential Signaling, 即低压差分信号传输),还可以通过交换机或介质转换器实现不同以太网布线的结合。快速以太网的物理层(100Base-TX)允许两个设备之间的最大电缆长度为100米,而LVDS的物理层只能保障10米的传输间距,适合于近距离站点的连接。整个网络最多可以连接65535个设备。









       借助于从站中的EtherCAT专用芯片和主站中读取网卡数据的DMA技术,整个协议处理过程都在硬件中进行。EtherCAT系统可以在30μs内刷新1000个I/O点,它可以在300μs内交换一帧多达1486个字节的协议数据,这几乎相当于12000个数字量输入或输出。控制100个输入输出数据均为8字节的伺服轴只需要100μs[2]。EtherCAT的高性能使它还可以处理分布式驱动器的电流(转矩)控制。

      EtherCAT数据帧结构

      EtherCAT以标准以太网技术为基础,在MAC(媒体访问层)增加了一个确定性调度的软件层,该软件层实现了通信周期内的数据帧的传输。EtherCAT采用标准的IEEE802.3以太网帧,帧结构如图2,各部分含义见表1:


       EtherCAT没有重新定义新的以太网帧结构,而是在标准以太网帧结构中使用了一个特殊的以太网帧类型0x88A4,采用这种方式可以使控制数据 直接写入以太网帧内,并且可以与遵守其它协议的以太网帧在同一网络中并行。一个EtherCAT帧中可以包含若干个EtherCAT子报文,报文结构如图3,各部分含义见表2,每个报文都服务于一块逻辑过程映像区的特定内存区域,由FMMU(Fieldbus Memory Management Unit,负责逻辑地址与物理地址的映射)寄存器和SM(Sync Manager,负责对ESC和微处理器内存的读写)寄存器定义,该区域最大可达4GB字节。EtherCAT报文由一个16位的WKC(Working Count)结束,其数据区最大长度可达1486个字节。在报文头中由8位命令区数据决定主站对从站的寻址方式,由于数据链独立于物理顺序,因此可以对EtherCAT从站进行任意的编址。


EtherCAT组成及运行原理

    EtherCAT使用全双工通信技术构成主从结构,主站使用标准的以太网控制器,传输介质通常使用100BASE-TX规范的5类UTP双绞线缆;从站由专用控制芯片或者FPGA  IP核构成,TI公司已推出带有EtherCAT功能的微控制器M335X。



    EtherCAT的运行原理如图1所示,图中j为从站个数,j=1,2,…,i,…,n。主站发出下行电报,数据帧遍访所有从站,在数据帧到达每个从站时,从站解析出本机报文,并对报文数据进行处理,然后将该数据帧传输到下一个从站,从站再进行类似的处理,直至传输完整个回路。最后一个从站发回经过完全处理的数据帧,并由紧挨着主站的从站作为响应,将数据帧发送给主站,完成一个周期的数据处理。


1.2 EtherCAT协议

    EtherCAT的数据帧结构如图2所示。从图中可以看出,它采用的是标准的以太网帧结构,帧类型为0x88A4。数据包由EtherCAT头和Ether CAT数据组成,而若干个子报文又组成了数据区。子报文又由子报文头、数据域及工作计数器组成。子报文头决定该子报文应传输到对应的从站,以及该从站对子报文进行读或者写操作。在主从站通信的过程中,16位的工作计数器(WKC)的值显得尤为重要。主站发起周期控制的时候,预先给定WKC一个值,当数据帧遍历完整个设备的时候,通过对比返回的WKC值,可以验证数据报文是否被EtherCAT从站节点正确处理。




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IEC 6-1131/3的5种标准编程语言

用于开发控制系统和商业管理系统的TRACE MODE6编程工具面向不同领域的软件工程师. TRACE MODE6包含的五种编程语言为:Techno SFC、Techno LD、Techno FBD、Techno ST和Techno IL. 这些语言是下列IEC 6-1131/3标准语言的扩展: SFC(顺序功能图…

ngRx 官方示例分析 - 4.pages

Page 中通过构造函数注入 Store,基于 Store 进行数据操作。 注意 Component 使用了 changeDetection: ChangeDetectionStrategy.OnPush. OnPush means that the change detectors mode will be set to CheckOnce during hydration. /app/containers/collection-page…

用ffmpeg把yuv格式转化为mpeg格式

http://blog.sina.com.cn/s/blog_5f5ad6a90100cs5k.html

方法:查询MongoDB数据库中最新一条数据(JAVA)

使用JAVA语言查询MongoDB中某个数据库某个集合的最新一条数据&#xff1a; MongoCollection<Document> cpu MongoClient.getDatabase("sysmgr").getCollection("cpu"); //获取所需集合 Document dbo cpu.find().sort(descending("time"…

NoPause/NoEmgAbort的任务 与后台任务的区别

NoPause/NoEmgAbort的任务示例 下面的例子显示了一个程序&#xff0c;可以监视控制器的错误并根据错误编号在发生错误时切换I/O On/Off。 Function main Xqt ErrorMonitor, NoEmgAbort : FendFunction ErrorMonitor Wait ErrorOnIf 4000 < SysErr And Syserr < 5999 T…

30分钟搞定后台登录界面(103个后台PSD源文件、素材网站)(转)

出处&#xff1a;http://www.cnblogs.com/best/p/6582294.html 目录 一、界面预览二、PSD源文件预览三、工具分享四、资源说明五、素材下载网站六、下载去年八月时要做一个OA系统为了后台界面而烦恼&#xff0c;后来写了一篇博客&#xff08;《后台管理UI的选择》&#xff09;介…

Linux 查看服务器开放的端口号

在讨论这个问题前&#xff0c;我们先来了解一下物理端口、逻辑端口、端口号等计算机概念。 端口相关的概念&#xff1a; 在网络技术中&#xff0c;端口&#xff08;Port&#xff09;包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口&#xff0c;如ADSL Modem、集…

VC的文件路径为什么要用双斜杠

在编程时&#xff0c;打开文件的路径在用单斜杠时&#xff0c;会出现问题&#xff0c;例如&#xff1a; image cvLoadImage("C:\Users\lyb\Documents\Visual Studio 2013\Projects\smooth\Debug\pic.png", 0);这样的写法在编译时&#xff0c;不会出现编译错误&#…

FFMpeg中apiexample.c例子分析——解码分析

FFMpeg中apiexample.c例子分析——解码分析 收藏 我们直接从 video_decode_example() 函数开始讲&#xff0c;该函数实现了如何去解码一个视频文件&#xff0c;以 .mpeg 文 件为例。 &#xff08; 1 &#xff09;将缓存的末尾清 0 &#xff0c;从而确保读操作不会越界导致破…

[转]整理一些好的开源项目

首先说明&#xff0c;要想找开源项目&#xff0c;当然是Github&#xff01; 另外oschina上面也可能有你要的&#xff0c;这个是分类的链接&#xff1a;http://www.oschina.net/project/tags&#xff0c;比如这个是一个Python的相关开源资源&#xff1a;http://www.oschina.net/…

android是32-bit系统还是64-bit系统

转自&#xff1a;http://www.cnblogs.com/pengwang/archive/2013/03/11/2954496.html 电脑CPU分32位和64位&#xff0c;这个我们都知道。用了这么长时间的android手机&#xff0c;突然有个疑问&#xff1a;android OS运行在多少位的CPU上呢&#xff1f; android应用程序是基于D…

海尔系列报道之一:海尔“小微”怎么玩

海尔去年裁了1.6万人&#xff0c;今年上半年裁了5000人&#xff0c;这2.1万人去了哪&#xff1f;除了被淘汰的部分&#xff0c;他们中的大多数去了169家小微公司. 从今年年初开始&#xff0c;海尔集团品牌总监范建斌就带着海尔品牌部的两个姑娘开始筹划做一个文化小微公司&…

FFMpeg中apiexample.c例子分析——编码分析

FFMpeg中apiexample.c例子分析——编码分析apiexample.c例子教我们如何去利用ffmpeg库中的api函数来自己编写编解码程序。 &#xff08;1&#xff09;首先&#xff0c;main函数中一开始会去调用avcodec_init()函数&#xff0c;该函数的作用是初始化libavcodec&#xff0c;而我们…

.net 常见异常及其翻译

System.Exception//所有异常的基类型System.ApplicationException//发生非致命应用程序错误时引发的异常System.SystemException//为System命名空间中的预定义异常定义基类System.SystemException//异常根类System.AccessViolationException//在试图读写受保护内存时引发的异常…

Access2010打开系统表MSysObjects的控制权限

一、显示系统表 第一步&#xff1a;单击左上角【文件】页签&#xff0c;点击【选项】打开选项对话框&#xff0c;如图所示 第二步&#xff1a;在【Access选项】对话框中&#xff0c;选择【当前数据库】&#xff0c;在【导航】栏下&#xff0c;点击【导航选项】打开【导航选项】…

抓屏的各种方法(http://www.codeproject.com/KB/dialog/screencap.aspx)

文章翻译自 P.GopalaKrishna 的 Various methods for capturing the screen 一文&#xff0c;原版地址见下面。本文章版权归原作者所有。 如果转载该译文 , 请保证文章的完整性&#xff0c;并注明来自 www.farproc.com 袁晓辉 2005/6/12 原版地址&…

与 OpenCV 1 同时使用

与 OpenCV 1 同时使用 目的 对于OpenCV的开发团队来说&#xff0c;持续稳定地提高代码库非常重要。我们一直在思考如何在使其易用的同时保持灵活性。新的C接口即为此而来。尽管如此&#xff0c;向下兼容仍然十分重要。我们并不想打断你基于早期OpenCV库的开发。因此&am…

第五周 Leetcode 99. Recover Binary Search Tree (HARD)

Leetcode99 给定一个 二叉搜索树&#xff0c;其中两个节点被交换&#xff0c;写一个程序恢复这颗BST. 只想到了时间复杂度O&#xff08;n&#xff09;空间复杂度O&#xff08;h&#xff09; h为树高的解法&#xff0c;还没想到空间O(1&#xff09;的解法。 交换的情况只有两种&…

Fedora15安装NVIDIA显卡驱动全过程

Fedora安装N卡驱动全过程 Fedora安装NVIDIA显卡全过程&#xff0c;经过自己亲自安装 折腾了一个上午&#xff0c;搞定了N卡驱动安装&#xff0c;现将安装步骤整理如下&#xff1a; 1、首先访问Nvidia官网下载最新的Linux驱动&#xff1a;http://www.nvidia.cn/Download/index…