Ethercat解析
文章平均质量分 62
识荒者
知识焦虑的心灵港湾。(本人目前在找工作,欢迎介绍)
展开
-
Ethercat解析(五)之基础答疑
(1) 为什么要将EtherCAT主站整合在内核空间? 答:一方面考虑到内核空间相比于用户空间函数的延迟时间短且内核空间可直接操控硬件;另一方面,由于主站大多是周期工作,而内核定时器执行周期工作较为精准。 EtherCAT-1.5.2理论上支持任何实时性(rtai,xenomai)或者非实时内核(linux-2.6以上的版本)(2) EtherCAT本地化网卡与通用网卡优劣分析 答:Et...原创 2018-08-09 08:59:36 · 3876 阅读 · 0 评论 -
Ethercat解析(十四)之初始化流程
一、EtherCAT入口源代码执行命令sudo /etc/init.d/ethercat start,将会从文件module.c文件中的ec_init_module函数中开始往下执行初始化流程。二、初始化大致过程(1) ec_init_module 主要用于生成/dev/EtherCAT设备,并且调用ec_master_init初始化主机相关信息。ec_master_in...原创 2018-08-18 22:26:07 · 3792 阅读 · 2 评论 -
Ethercat解析(十)之从站配置
配置文件根据设定的从站在总线上面的位置、厂商ID和产品码与具体的从站进行绑定。对于从站在总线上的位置,驱动提供了别名和位置编码相结合的方式寻找对应的从站。别名和位置编码都是16位的数字,其存放在从站的EEPROM中,具体的含义是: 别名 位置 描述 0 0-65535 由于别名为0,因此其位置编码就是从站在总线上的绝对位置 1-65535 0-65...原创 2018-08-13 10:22:17 · 15270 阅读 · 21 评论 -
Ethercat解析(十三)之fsm_master状态机
1. fsm_master结构体struct ec_fsm_master { ec_master_t *master; /**< master the FSM runs on */ ec_datagram_t *datagram; /**< datagram used in the state machine */ unsigned int retries;...原创 2018-08-17 22:55:30 · 2132 阅读 · 0 评论 -
Ethercat解析(四)之搭建RTAI实时内核(Ubuntu12.04)
一、环境系统:Ubuntu12.04 i386(请注意,amd64暂时不支持该实时内核) 实时补丁:linux-image-3.4-9-rtai-686-pae二、获取下载地址: http://releases.ubuntu.com/precise/三、安装搭建(1) 更新Ubuntu源和包sudo apt-get updatesudo apt-get di...原创 2018-08-08 12:50:41 · 3944 阅读 · 0 评论 -
Ethercat解析(十二)之命令行工具的使用
说明:EtherCAT为了方便用户空间对主站进行调试,因此提供一套用户空间使用的工具来设置从站参数,观察调试信息等等。正常情况下,每个主站的实例都会生成一个字符设备,名字为:/dev/EtherCATx。欲想深入了解其他命令,可通过执行ethercat –help命令来查看详细使用方法。下面具体的介绍了一下各参数及命令的使用,其中[ ]中为必选参数,&lt; &gt;为可选参数。1.1...原创 2018-08-15 11:39:39 · 10532 阅读 · 3 评论 -
Ethercat解析(九)之过程数据
主站通过过程数据对象(ProcessData Objects (PDOs))来获取从站的输入输出。 ① 读取:通过SII从eeprom(一般存放的固定的PDOs数据)中读取。 ② 写入:使用COE进行配置PDOs。应用层可以在周期数据交换中注册一个PDOs条目,所有注册的PDOs条目之和通过逻辑寻址定义了过程数据映像(processdata image)。 通过创建域(Domains)可...原创 2018-08-12 09:43:46 · 9632 阅读 · 1 评论 -
Ethercat解析(三)之Ubuntu添加Xenomai实时内核补丁
前言:给Ubuntu添加Xenomai实时补丁是为了使igh ethercat 1.5.2主站获得更好的响应及实时性,虽然在这期间也遇到一些问题,但由于一些大佬以及相关文档的帮助下,整体还是没有遇到太大的问题,为此,我将自己的心得整理出来。一、准备工作及系统环境系统环境及内核版本:32位Ubuntu14.04.5、4.4.0 添加实时补丁的内核版本:3.14.44 实时补丁Xeno...原创 2018-08-07 13:57:42 · 7132 阅读 · 0 评论 -
Ethercat解析(八)之主站运行阶段
由主站驱动提供的EtherCAT主站可运行在如下图中几个阶段:孤儿阶段:主站等待以太网连接。空闲阶段:主站已经连接了以太网,但是应用空间没有对主站请求。在此阶段,主站会自动扫描从站总线并等待应用空间的操作。在此阶段,命令行工具可以访问总线,但是由于缺少总线配置,不能进行过程数据的交换。可操作阶段:主站被应用层请求,此时可对总线进行配置也可进行过程数据的交换。...原创 2018-08-11 09:50:37 · 3500 阅读 · 1 评论 -
Ethercat解析(十一)之分布时钟
驱动代码中,同步时钟涉及到如下几个概念: ⑴ 本地时钟:每一个支持DC的从站都有一个纳秒级分辨率的本地时钟寄存器。每次从机上电,则寄存器从0开始计时,这就意味着不同的从机因为上电开机的时间不同而本地时钟也会有差异,所以需要对从机的本地时钟对比参考时钟进行偏移补偿。再者,从机的时钟一般由时钟单元为参考,所以每个从机的时钟频率也会有极小的误差,但是由于这种极小的误差在长时间的工作中会累积,所...原创 2018-08-14 13:07:38 · 11754 阅读 · 0 评论 -
Ethercat解析(二)之获取、编译、安装(debian7)
说明:EtherCAT(以太网控制自动化技术)是一个开放架构,以以太网为基础的现场总线系统,其名称的CAT为控制自动化技术(Control Automation Technology)字首的缩写。EtherCAT是确定性的工业以太网,最早是由德国的Beckhoff公司研发。优势:免费、开源、稳定性能良好、支持实时扩展。注意:该环境是在debian7上打了rtai实时补丁所使用的安装配置。...原创 2018-08-06 09:41:40 · 2981 阅读 · 11 评论 -
Ethercat解析(七)之主站框架
下图为完整的主站框架图:对于主站驱动来说,一个驱动可以生成多个主站,具体驱动加载方法为: 加载方法: 加载一个主站,则为:insmod ec_master main_devices=00:0E:0C:DA:A2:20其中后面为网卡的MAC地址。加载多个主站,则:insmod ec_master main_devices=00:0E:0C:DA:A2:20,00:E8:8...原创 2018-08-10 10:02:42 · 5572 阅读 · 0 评论 -
Ethercat解析(一)之获取、编译、安装(Ubuntu14.04)
前言:EtherCAT(以太网控制自动化技术)是一个开放架构,以以太网为基础的现场总线系统,其名称的CAT为控制自动化技术(Control Automation Technology)字首的缩写。EtherCAT是确定性的工业以太网,最早是由德国的Beckhoff公司研发。优势:免费、开源、稳定性能良好、支持实时扩展。说明:该文档主要是建立在上节中已经对Ubuntu14.04添加完xeno...原创 2018-08-05 10:31:57 · 8323 阅读 · 5 评论 -
Ethercat解析(六)之功能概述
⑴ 通过几个有限的状态机进行通信 ① 当从机拓扑改变,主站自动重新扫描; ② 运行状态下可进行总线的监控,掉电自动重新配置;(2) 分布时钟的支持 ① 通过应用程序接口可配置从站的DC参数; ② 可根据参考时钟同步分布式从站(偏移和漂移补偿); ③ 可选择将参考时钟同步到主时钟或其他方式;(3) 支持CANopen over EtherCAT(COE) ① SDO的上传下载和信...原创 2018-08-09 10:16:40 · 4127 阅读 · 0 评论 -
Ethercat解析(十五)之程序框架
以下为igh ethercat1.5.2程序的框架,整合如下:原创 2018-08-19 10:40:51 · 3925 阅读 · 12 评论