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(顺序功能图…

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;介…

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

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

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

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

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

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

与 OpenCV 1 同时使用

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

机器学习(machine learning)之AdaBoost算法

转自&#xff1a;http://blog.csdn.net/haidao2009/article/details/7514787 浅谈 Adaboost 算法 机器学习是利用一些方法来使机器实现人的学习行为&#xff0c;以便获取新的知识或技能&#xff0c;重新组织已有的知识结构使之不断改善自身的性能。 AdaBoost全名“adaptive B…

使用CodeFirst创建并更新数据库

本文主要介绍如何使用CodeFirst模式来新建并更新数据库 在使用Entity Framwork的三种方式&#xff08;ModelFist、DBFirst、CodeFirst&#xff09;中&#xff0c;CodeFirst方式书写的代码最为干净。 至于CodeFist方式的详细优缺点请各位读者自行搜索&#xff0c;这里不多赘述。…

浅析人脸检测之Haar分类器方法

由于工作需要&#xff0c;我开始研究人脸检测部分的算法&#xff0c;这期间断断续续地学习Haar分类器的训练以及检测过程&#xff0c;在这里根据各种论文、网络资源的查阅和对代码的理解做一个简单的总结。我试图概括性的给出算法的起源、全貌以及细节的来龙去脉&#xff0c;但…

利用微软平台生成报表,线性图,柱形图

说来惭愧,以前的工作中一直借助第三方dll进行报表制作,比如线性图,柱形图. 因为现在工作的这家公司不允许随便引入第三方dll,听同事说起可以建rdl类型文件进行引入到winform窗体中,窗体上使用reportViewer控件进行关联展示.下面是我今天摸索3个小时的结果分享. 第一步. 首先找到…

opencv 模板匹配(cvMatchTemplate)

opencv 模板匹配(cvMatchTemplate) 模板匹配是通过在输入图像上滑动模板图像块对实际的图像块和输入图像进行匹配&#xff0c;并且可以利用函数cvMinMaxLoc()找到最佳匹配的位置。例如在工业应用中&#xff0c;可以锁定图像中零部件的位置&#xff0c;并根据具体的位置&…

[BZOJ1880] [Sdoi2009] Elaxia的路线 (SPFA 拓扑排序)

Description 最近&#xff0c;Elaxia和w**的关系特别好&#xff0c;他们很想整天在一起&#xff0c;但是大学的学习太紧张了&#xff0c;他们 必须合理地安排两个人在一起的时间。Elaxia和w**每天都要奔波于宿舍和实验室之间&#xff0c;他们 希望在节约时间的前提下&#xff0…

用OPENCV视觉解数独

用OPENCV视觉解数独 2010-06-29 看到增强视觉网站上介绍老外用视觉解SUDOKU(http://www.cvchina.info/2011/05/29/video-sudoku-solver/)&#xff0c;觉得应该不难&#xff0c;于是用OPENCV和训练好的数字分类器&#xff0c;也试着做一个&#xff0c;纯属娱乐 基本思路如下&…

第三次毕业设计任务书

一. 进度计划 时间 计划进度 3.24-3.30 尝试将kdd数据预处理用代码实现 3.31-4.6 将kdd数据预处理用代码实现以及与aprior算法的结合 二. 课题需求 2.1 数据预处理的功能和主要方法 在现实中,由于数据的来源、组织、存储等的多样性,海量的原始数据中一般都很难避免“脏数据…

JMS-activMq与spring进行整合

对JMS做了一个简要介绍之后&#xff0c;接下来就讲一下Spring整合JMS的具体过程。JMS只是一个标准&#xff0c;真正在使用它的时候我们需要有它的具体实现&#xff0c;这里我们就使用Apache的activeMQ来作为它的实现。所使用的依赖利用Maven来进行管理&#xff0c;具体依赖如下…

CSS层叠样式表

HTML主要控制内容 CSS主要控制格式。 样式表是用来指定样式信息的句法机制。 之所以将CSS称为层叠样式表&#xff0c;是因为它可以在3个层次上进行定义。 内联样式表 内联样式表位于开始标签中&#xff0c;其设置只对该元素起作用 文档样式表 文档样式表位于文档的头部区域&…

对X264/FFMPEG架构探讨---感觉不错

3. FFMPEG架构分析FFMPEG是目前被应用最广泛的编解码软件库&#xff0c;支持多种流行的编解码器&#xff0c;它是C语言实现的&#xff0c;不仅被集成到各种PC软件&#xff0c;也经常被移植到多种嵌入式设备中。使用面向对象的办法来设想这样一个编解码库&#xff0c;首先让人想…

如何快糙好猛的使用Shiqi.Yu老师的公开人脸检测库(附源码)

前言 本次编写所用的库为于仕祺老师免费提供的人脸检测库。真心好用&#xff0c;识别率和识别速度完全不是Opencv自带的程序能够比拟的。将其配合Opencv的EigenFace算法&#xff0c;基本上可以形成一个小型的毕业设计。&#xff08;我是学机械的啊喂&#xff01;&#xff01;&a…

Maven理解

2019独角兽企业重金招聘Python工程师标准>>> Maven概念 参考maven入门 冰河winner Maven作为一个构建工具&#xff0c;不仅能帮我们自动化构建&#xff0c;还能够抽象构建过程&#xff0c;提供构建任务实现;它跨平台&#xff0c;对外提供了一致的操作接口&#xff0…