Ethercat解析(十一)之分布时钟
驱动代码中,同步时钟涉及到如下几个概念:
⑴ 本地时钟:每一个支持DC的从站都有一个纳秒级分辨率的本地时钟寄存器。
每次从机上电,则寄存器从0开始计时,这就意味着不同的从机因为上电开机的时间不同而本地时钟也会有差异,所以需要对从机的本地时钟对比参考时钟进行偏移补偿。再者,从机的时钟一般由时钟单元为参考,所以每个从机的时钟频率也会有极小的误差,但是由于这种极小的误差在长时间的工作中会累积,所以想要完全的时钟同步,也要对这种时钟漂移进行补偿。
⑵ 应用时间:应用层为总线提供的基础时间。
用途:
① 配置从站的时钟偏移;
② 为从站的同步脉冲发生器设定开始时间;
③ 为主站时钟同步参考时钟;
偏移补偿:对于偏移补偿,每个从站都有偏移补偿寄存器,偏移补偿值加上从站本地时钟的初始值就是参考时钟的值,数学表达式为:
漂移补偿:所谓的漂移误差就是由于DC从站使用各自本地时钟源,它们的计时周期存在一定的漂移,这将导致时钟运行不同步。因为支持DC从站的一个特殊机制使得漂移补偿成为可能,这个机制就是当有一个写系统时间寄存器操作的时候,内部时间控制环路(internal time control loop)去比较写入时间(减去传输延迟)和当前的系统时间,比较的误差将作为时间控制寄存器的输入,依次来增加或减缓本地时钟,从而消除漂移误差。
传输延迟:以太网帧在由从站到从站的传输过程中需要一些时间,假如不作处理,传输的这个时间将会不断的积累,最终可能达到毫秒级误差,因此我们必须在漂移补偿的时候将传输延迟考虑在内。支持DC的EtherCAT从站提供了一个测量传输延迟的方案:对于从站的四个端口都配有一个接收时间寄存器,大部分当数据帧到达每个从站后,从站都会分别保存每个端口接收到的以太网帧的时刻。主站通过读取记录的这个时间值来计算EtherCAT帧在从站之间和从站到参考时钟的传输延迟并把从站到参考时钟的传输延迟写入传输延迟寄存器中,通过这种方法,漂移补偿可以达到纳秒级同步。
检测同步:支持DC的从站提供了32位系统时间寄存器(地址为0x092c),该寄存器以符号幅度码(sign-and-magnitude coding)的形式存放着本地时间与参考时钟之间的差值(纳秒级分辨率)。在linux中,可以使用命令行工具查看该寄存器的值,具体操作为:
$watch -n0 "ethercat reg_read -p4 -tsm32 0x92c"
同步信号:同步时钟仅仅是总线上同步事件的一个必要条件,每个支持DC从站有两个可编程同步事件,事件触发的同步信号以备供应用层调用。每个同步事件可根据应用要求既可以只触发一次也可以循环触发。编程同步信号是一种所谓的设置”AssignActivate“字和设置同步信号的周期和转变时间的问题。”AssignActivate“字的设置方式跟具体的从站有关,而且必须从XML文件中对描述从站对”AssignActivate“字的设置,在典型的同步信号的配置可以找到”OpModes“。
Ethercat解析(十一)之分布时钟相关推荐
- EtherCAT主站SOEM源码解析----分布时钟DC
分布时钟(DC,Dsitributed Clock)可以使所有EtherCAT设备使用相同的系统时间,从而控制各设备任务的同步执行. 1.DC从站 支持分布式时钟的从站称为DC从站,同步原理如下所示: ...
- Ethercat解析(六)之功能概述
⑴ 通过几个有限的状态机进行通信 ① 当从机拓扑改变,主站自动重新扫描: ② 运行状态下可进行总线的监控,掉电自动重新配置: (2) 分布时钟的支持 ① 通过应用程序接口可配置从站的DC参数: ② 可 ...
- 基恩士plc-EtherCAT三十一轴,控制案例程序
基恩士plc-EtherCAT三十一轴,控制案例程序(包含plc程序/人机界面/BOM表) ID:6914666466012375七中往事 以下内容不属于本博内容,仅仅是相关参考: 该套程序是电芯自动 ...
- Ethercat解析(二)之获取、编译、安装(debian7)
EtherCAT解析之 – -- 获取.编译.安装(debian7) 说明:EtherCAT(以太网控制自动化技术)是一个开放架构,以以太网为基础的现场总线系统,其名称的CAT为控制自动化技术(Con ...
- 基恩士plc-EtherCAT三十一轴,控制案例
基恩士plc-EtherCAT三十一轴,控制案例程序(包含plc程序/人机界面/BOM表) YID:9811666466012375七中往事
- Ethercat解析(十二)之命令行工具的使用
说明:EtherCAT为了方便用户空间对主站进行调试,因此提供一套用户空间使用的工具来设置从站参数,观察调试信息等等.正常情况下,每个主站的实例都会生成一个字符设备,名字为:/dev/EtherCAT ...
- Ethercat解析(三)之命令行工具的使用
说明:EtherCAT为了方便用户空间对主站进行调试,因此提供一套用户空间使用的工具来设置从站参数,观察调试信息等等.正常情况下,每个主站的实例都会生成一个字符设备,名字为:/dev/EtherCAT ...
- Ethercat解析(十四)之初始化流程
一.EtherCAT入口 源代码执行命令sudo /etc/init.d/ethercat start,将会从文件module.c文件中的ec_init_module函数中开始往下执行初始化流程. 二 ...
- Ethercat解析(三)之Ubuntu添加Xenomai实时内核补丁
前言:给Ubuntu添加Xenomai实时补丁是为了使igh ethercat 1.5.2主站获得更好的响应及实时性,虽然在这期间也遇到一些问题,但由于一些大佬以及相关文档的帮助下,整体还是没有遇到太 ...
最新文章
- 我是如何自学 Python 的
- 如何寻找合适的189邮箱pushmail客户端
- 安装Oracle Database 11g 找不到文件“WFMLRSVCApp.ear” .
- JS中toFixed()方法的问题及解决方案
- python基础包括什么-Python基础教程 模块包含什么
- Xcode编译Undefined symbols for architecture xxx 错误总结
- Go 语言中的 new() 和 make()的区别
- 几个SpringCloud常见面试题及答案
- Lambdas:来到您附近的Java 8!
- 为什么需要超过48k的采样音频?
- 怎么查看指定app日志_Linux系统查看系统信息和日志有哪些常用的命令
- HTML,,,音乐,html embed用法
- iOS开发中防止键盘挡住UITextField解决方案
- 详述由ENQ:TX – ROW LOCK CONTENTION引起的全局死锁处理过程
- 如何降低 Python 的内存消耗量?
- 剑指offer面试题04. 二维数组中的查找(Array)
- 多年收集的一些稀有软件1
- shapefile(.shp,.dbf,.prj)导入导出
- 英国资深律师称加密货币和智能合约必然将成为社会主流
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java影视资源分享论坛23562
热门文章
- 通过opencv的函数进行图片修复:cv2.inpaint()
- MySQL快速生成大量测试数据1000万
- 3-3HDFS中文件的读写操作
- 华图砖题库php文件怎么打印_事业单位招聘考试《工会基础知识》试题库及答案1380题...
- 跨域 · 后台设置:头部header(服务器端添加属性、属性值,浏览器端获取属性及其值) - 数据篇
- 非插件实现回复可见效果
- 月老盲盒小纸条微信云开发小程序源码
- 龙果充值平台,具备话费充值、流量充值、话费卡兑换功能;可以拓展其他充值兑换业务;也适用于支付、鉴权等业务功能的拓展。
- Spring Boot 2.0 开源项目--云收藏。收藏你所喜欢的一切。
- http状态码批量查询工具V2.0