![5dbc6fdb2056a780300c730bada4fd08.png](https://img-blog.csdnimg.cn/img_convert/5dbc6fdb2056a780300c730bada4fd08.png)
EtherCAT从站控制器的分布式时钟有以下几个特点:
- 实现主从站之间的时钟同步
- 可产生同步输出信号(这里不大清楚,是输出时钟信号吗?有朋友知道的可以指正)
- 完成输入事件的精确捕捉
- 产生同步中断(我的理解就是输出同步中断信号,从站处理器接收其产生的中断信号并进入中断处理)
- 数字输出信号同步更新
- 输出输入信号同步采样
以下展开讨论:
1、时钟同步
以下会经常提到几个重点词汇,这里先一一说明:
系统时间定义:
- 北京时间的2000年1月1日00:00(作为最初时间起始点)
- 最小单位为1ns
- 64位值来计数(2的64次方 个 ns,足以超过500年)
- 低32位可以表示的范围为4.2秒,足以用作通信和时间戳记。(有的ESC只有32位分布式时钟,也可以被64位分布式时钟所兼容,时钟戳记就是记录下各个时间点)
参考时钟定义:
各个EtherCAT设备都采用一个参考时钟。
那么谁的时钟作为参考时钟呢?
通常把与主站通信的,第一个具有分布式时钟的从站控制器(ESC),其时钟作为整个系统的参考时钟,也就提供了系统时间。参考时钟可以调整为“全局参考时钟”,例如IEEE 1588主时钟。
有关IEEE 1588相关资料:IEEE1588时钟(PTP时钟系统)介绍
本地时钟定义:
各个DC从站都有自己的本地时钟,本地时钟最初独立于参考时钟运行。而之后本地时钟和参考时钟之间的偏差(时钟漂移,偏移)都可以被补偿,而后达到与参考时钟相同步的效果。偏移量校对可以通过将偏移量加至本地时钟的方式完成,时钟漂移要通过对本地时钟速度(频率)的测量和调整来达到校对。
主时钟定义:
参考时钟通常为EtherCAT主站初始化,由主站按照系统时间定义,使用主时钟将系统时间传递出去。其实这里我还是有点不太理解主时钟是什么意思。。。但是感觉无伤大雅。大概就是主站的时钟吧?(说的不对请懂的朋友多多指正)
明白以上的几个关键时钟定义,接下来咱们切入正题。
顾名思义,时钟同步可以使得主从站共用一个系统时间,也可以实现EtherCAT设备之间的同步运行,设备内的本地程序运行同样。
对系统时间来说,所有从站都向其同步,也就是说只能有一个参考时钟(系统时间)。
但是系统时间要实现同步还存在一些干扰因素:
- 传输延迟(这个好理解,就算是光速也会有延迟,何况这个会涉及到硬件上的反应时间)
- 各个从站的本地时钟漂移(各个从站时钟源不一所导致)
- 各个从站的本地时钟偏移(上电后的时间和系统时间的偏移值)
这些因素下边会细讲。
各个ESC可以产生同步信号,使得本地应用程序与整个系统的系统时间相同步。这个同步信号可以直接被控制器自己内部使用(例如中断),或者触发 数字输出信号更新/数字信号输入采样。
时钟同步过程:
主站会测量所有从站上的