首页 > 其他分享 >(笔记)深入解读EtherCAT时钟DC同步的三种模式

(笔记)深入解读EtherCAT时钟DC同步的三种模式

时间:2024-07-22 16:40:19浏览次数:14  
标签:触发 同步 主站 DC SM EtherCAT Event 时钟

 

一、DC同步原理         

用EtherCAT的分布式时钟(DC)功能使从站设备同步指的是,总线中的第一个DC从站被定义为基准时钟,EtherCAT主站将基准时钟的时间分配至所有的从站。因此,EtherCAT主站周期性发送一个ARMW命令,以此读取存储在时钟主站的ESC(EtherCAT从站控制器)上适当的寄存器中的总线时间,并将这个值写入DC-从站相应的寄存器中。这些DC从站通过整合在ESC中的一个控制器来更新他们的本地时间。为保证请求的精度(可以接收低于1us的值),特殊从站之间的EtherCAT帧延迟必须得到额外的补偿。对于每个从站来说,一个帧从发送到接受的这段时间将被测量。然后,根据总线拓扑结构,主站计算从站之间的延迟,并将相应延迟补偿值写入到ESC中的寄存器0x928

 

ESC控制器的DC单元提供两个数字输出信号,SYNC0和SYNC1。频率一般对应于EtherCAT总线时钟的SYNC脉冲通常都是基于总线时间生成的。举个例子:如果EtherCAT主站用1ms发送周期性的I/O数据,SYNC脉冲频率通常也设置为1kHz。这些SYNC信号在从站一侧,一方面是可作为一个数字输出信号(例如要激活从站硬件组件),另一方面作为从站软件中断源。也就是说,很明显的要在SYNC脉冲被释放之前为所有从站提供新的信号。要实现这一目标,新的周期性I/O数据到达和SYNC脉冲之间的相隔时间的必须保证最小化。             

通常情况下,EtherCAT主站协议栈通过在其控制硬件(例如嵌入式x86PC中的8254计时器)中的硬件计时器来发送循环输出数据。如果系统运行周期为1kHz,那么8254计时器以及负责生成同步脉冲的从站计时器都应设置为1kHz。但8254计时器和从站计时器都不能准确的运行1kHz的周期率。实际上,这两个计时器之间有些偏差,因此,在主站里发送周期性I/O数据和从站中的一系列SYNC脉冲之间可以实现非恒定间隔。为了控制一个定义好的常量值的间隔,EtherCAT主站必须要与DC时钟主站同步(就是主站上的第一个DC从站)。这一机制被称为分布式时钟主站同步(DCM)。

它可以以两种不同的方式实现:

  • 重新调整用来执行EtherCAT主站的硬件中所使用的物理计时器(例如8254定时器)(主站转换);
  • 重新调整DC时钟主站的总线时间时间(总线转换)。

DCM控制器周期性计算EtherCAT主站时间和DC时钟主站时间之间的差异。根据设定值(即SYNC脉冲到主站中计时器中断的距离),PI控制器算法计算重新调整的值。当使用"主站转换"时,重新调整值会影响EtherCAT主站的物理计时器(例如8254);而当使用的"总线转换"时,它则会影响DC时钟主站的寄存器0x920。

EtherCAT主站ClassA支持这两种方法(主站转换和总线转换)。

主站与从站的同步是EtherCAT最具挑战性的特点之一。 

 

       

二 同步模式

A、Free Run (非同步): 从站的过程数据处理,由内部事件触发,与主站循环无关。

B、SM-Synchronous: 从站的过程数据处理,由接收到携带过程数据的周期性数据帧时所产生的硬件中断触发.

C、 DC-Synchronous: 从站的过程数据处理,由基于分布时钟和系统时间的硬件中断触发。         

 

2.1 Free Run(非同步)

从站的过程数据处理,由内部事件触发,与主站循环无关

 

 

1、每个从站的定时周期都不一样

2、每个定时周期到的时候,每个从站去执行自己的程序,<比如检查通道上有没有合适的新的输入数据,有的话就令其输出有效(Output valid)或者检查有没有需要输入的数据,将其放到对应的同步管理器通道上(input prepare)让主站取走>

3、对于Free Run 模式而言,好比每个人都有自己的手表,但是如果没有一起对时的话。手表的本身的时间是不一样的(可能表和表之间存在时间差,一个8点一个10点),那么在这种情况下,公司如果要求9点上班,那么每个人到公司的时间都是自己手表上的9点,但是不是统一的9点,他们到达公司的时间是不一样,所以Free Run模式没有任何的同步性可言    

 

2.2 SM-Synchronous(Sync Manager同步管理器)         

从站的过程数据处理,由接收到携带过程数据的周期性数据帧时所产生的硬件中断

 

 

 

1、一般而言,如果EtherCAT总线通讯时的同步模式不是DC模式,那么就是SM同步模式了。

2、SM(Sync Manager同步管理器)指的是同步管理器的同步,它的触发方式是通过SM Event,也就是我们的数据帧在到达对应的从站的时候,会触发一个叫做同步管理器事件的信号(即SM Event),当从站接受到这个信号的时候,会进入到对应的中断服务例程(即中断保存当期任务,去执行插入的中断例程,这里指线程中断处理相关数据,这也是SM Event和 Free Run的不同之处),即SM是通过中断服务例程来处理对应的数据。    

3、从站检测到SM Event事件信号的时候会进入到中断服务例程去处理相应的数据(比如把输出数据有效,然后把输入数据放到同步管理器的通道上让主站取走)

4、由于SM同步模式是根据数据帧到达特定从站的时候来触发SM Event事件信号来进行同步,那么对于一个特地给的帧来说,它到达每一个从站的时间必然是不同的,当系统很庞大的时候,每个从站接收到数据帧的时间就会相差很大,越在后边的从站接收到数据帧的时间就越晚,它的同步效果就越差。

5、手表举例:10个人10个表,10个人开始对表,从0开始计时,当上一个人完成了对表计时之后,才通知到下一个人进行对表计时,依次传递,那么到最后的第10个人它开始计时的时间是最晚的。完成对时之后,如果公司要求是10点上班,每个人按照自己手表上的10点到达,那么第10个人一定是最晚的。

 

2.3 DC-Synchronous (Sync0 Event)

从站的过程数据处理,由基于分布时钟和系统时间的硬件中断触发

 

 

 

  

 

 

受主站应用的影响,数据帧到达时间会有所波动(~us)

EtherCAT帧的波动:us级

DC同步事件的波动:ns级

1、Sync0 Event和SM Event事件信号是类似的,他们都是一个中断事件信号,对于一个从站而言,如果中断信号触发了而且中断屏蔽寄存器没有屏蔽掉该中断信号,那么从站就会进入到中断服务例程;

2、中断服务例程就是说从站从主循环中跳出,暂停并保留主程序状态,然后执行中断服务例程这一部分内容,比如说周期性数据的输出,周期性数据的实时性比较强,那么中断信号可以满足这种比较强的实时性需求,不会因为其他信号来耽误它的操作,其它的中断信号会进入等待状态直到前一个中断信号被恢复,即进入到恢复现场阶段;

3、不同于SM Event的地方是Sync0 Event是根据我们自己设定的延时时间触发而不是帧到达时候才触发;

4、注意,虽然简单DC同步机制中没有用到SM Event事件信号,但是它依旧是存在的,因为只要当Frame帧到达从站的时候就会触发SM Event事件信号,这里只是不用到该信号来进行触发而已,(需要明白不管是哪一种同步机制,SM Event都是存在的,当从站接受到数据帧的时候都会产生SM Event事件信号)。      

 

2.4 DC-Synchronous 优化    

 

1、优化的DC模式同时使用了SM Event事件信号和Sync0 Event事件信号,而简单DC同步机制只是使用Sync0 Event这一种事件信号进行同步,无论使用哪一种同步模式,只要当数据帧Frame到达从站的时候都会触发对应的SM Event事件信号。

2、在这种优化的DC模式中,当对应的SM Event事件信号触发后,从站会进入到中断服务例程进行数据的处理,把数据帧Frame中对应的所需数据进行计算,然后复制到管理器通道对应的用户区域,等待Sync0 Event同步信号触发之后让从站取走,然后SM Event中断完成,恢复现场,然后等待Sync0 Event信号的触发到来,也就是同步信号的触发,可以看到由于之前SM Event中断中已经完成了前期数据的处理,当Sync0 Event同步信号触发时,程序进入到中断服务例程,就只需要很短的一段Output Delay Time,马上就进入到Output Valid(输出有效)状态。

3、这种优化版的DC同步机制相对于之前的简单DC模式,优点就是Output Delay Time输出延时没有那么长了,主要是因为第二种优化的DC模式利用SM Event事件信号的触发完成了前期从数据帧中对应从站数据的计算和复制到管理器通道上,所以当Sync0 Event同步信号触发后,只需要从管理器通道取走已计算并复制好了的数据,进入到输出有效Output Valid的延时时间自然就比较短了,而第一种简单的DC模式只是使用到了Sync0 Event同步信号,所以当Sync0 Event触发后,需要在Output Delay Time时间内完成数据的复制和计算,所以简单DC模式下的Output Delay Time延时时间就会比较长。

 

2.5 DC同步丢帧

1、问题描述:在使用DC模式的时候会出现一种同步丢帧的情况,就是说数据帧在到达尾端从站之前,所有从站的Sync0 Event同步事件信号就已经触发了,也就是说数据帧传输的太慢,可能还来不及到达尾端从站,但是它的同步事件信号已经触发了,而此时从站却从管理器通道上获取不到数据帧中对应的数据,从站就会判断数据帧丢失了,这就是同步丢帧的问题。

当一个系统较大时,尾端的从站接收到数据帧的时间也比较晚,因为存在物理传输时间,所以越后面的从站接收到的数据帧时间就越晚,虽然Sync0 Event事件信号在完成DC对时之后是同步触发的,但是数据帧的传递时间是依次递增的,如果我们刚开始留出的偏移时间(shift time)不够大的话就有可能在尾端从站发生同步丢帧的情况

2、解决方案:把第一个从站和主站之间的偏移时间调大,可以在TwinCAT中对Shift Time进行调整。(由于Sync0 Event是同步触发的,只需要设置好第一个从站和主站之间的Shift time,后面的从站和主站的Shift Time也都是这个值)。

 

三、优化DC模式的时序分析    

 

1、当数据帧Frame依次到达每一个从站的时候,EtherCAT的机制会触发SM Event事件信号,(数据帧依次发送到各个从站的时间是一个慢慢变长的延时时间,这是硬件上必然发生无法改善的事情)。

2、然后从站会把数据帧上从站需要的数据进行计算并复制到同步管理器通道上,然后会进行中断事件恢复,

3、主程序等待一个DC Sync Signal同步事件中断信号(也就是Sync0 Event),这个Sync0 Event同步事件信号是所以从站同时触发的,就像规定的9点上班一样<这里的前提是主站已经通过发送帧对各个从站完成了对表计时步骤,各个从站的时间是同步一致的>。

4、当Sync0 Event事件信号同步触发时候,由于之前已经完成了数据的计算和复制,那么此时的输出抖动会非常小,约为15ns,(输出抖动jitter和主站有关,在SM Event事件之前由主站触发),同时同步性能也会非常好(Output Delay time会很短,Output Valid输出有效很快触发)。

5、在Output Valid输出有效触发之后,从站会等待一个Input Latch信号,它可以是Sync1 Event事件信号,也可以是Sync0 Event事件信号触发后一段固定的延时时间,这取决于我们在TwinCAT上的设置情况。

 

四、 总结

总体的DC分布式时钟模式汇总如下流程所示:

 

 

          

注:本文转自:https://mp.weixin.qq.com/s/hd_10Nl0Q2WwfFW8if_4RA,若有侵权,请联系删除。

 

标签:触发,同步,主站,DC,SM,EtherCAT,Event,时钟
From: https://www.cnblogs.com/tdyizhen1314/p/18316344

相关文章

  • AP9235B dc-dc升压恒流电源驱动IC 2.8-30V 输出电流2A SOT23-6 白光LED驱动方案
    概述 AP9235B系列是一款固定振荡频率、恒流输出的升压型DC/DC转换器,非常适合于移动电话、PDA、数码相机等电子产品的背光驱动。输出电压可达30V,3.2V输入电压可以驱动六个串联LED,2.5V输入电压可以驱动两路并联LED(每路串联三个LED)。通过改变CE脚上PWM信号的占空比可以控制LED的......
  • 《太阁立志传5》d3dcompiler_47.dll丢失最有效的5种解决方法
    遇到《太阁立志传5》(TaikouRisshidenV)游戏运行时报错“d3dcompiler_47.dll文件丢失”的问题,意味着游戏所依赖的DirectX组件缺失或损坏。以下是解决这一问题的五种最有效方法:d3dcompiler_47.dll丢失后果游戏和图形应用:许多现代游戏和图形密集型应用程序依赖于Direct3D,缺少......
  • (82)DC命令--->(01)DC综合命令
    1目录(a)IC简介(b)数字IC设计流程(c)Verilog简介(d)DC综合命令(e)结束1IC简介(a)在IC设计中,设计师使用电路设计工具(如EDA软件)来设计和模拟各种电路,例如逻辑电路、模拟电路、数字信号处理电路等。然后,根据设计电路的规格要求,进行布局设计和布线,确定各个电路元件的位置和连线方式。......
  • IDC服务器搬迁布线公司
    进入21世纪以来,随着云计算、大数据、互联网的不断发展,各级部门、企事业单位建设、启用了一大批数据中心机房,随着时间的推移,许多数据中心机房已使用了相当长一段时间,逐渐面临生命周期结束的问题,产生大量搬迁需求。机房搬迁常见的需求包括以下三类。一是随着业务发展,当前机房......
  • DC-2靶机通关
        最近一段时间我将会持续更新DC系列的靶机通关过程,大家如果也有正在玩儿这些靶机的可以关注一下作者,欢迎大家一起讨论学习!!!        1.实验环境:攻击机:kali2023.2靶机:DC-22.1扫描网段内的主机:2.2扫描靶机开放端口等信息:这里可以发现主机开放了两个端口一......
  • ucosiii(1): 时钟节拍函数
    时钟节拍中断调用OSTimeTick()函数voidOSTimeTick(void){if(OSRunning!=OS_STATE_OS_RUNNING){return;}>OSTimeTickHook();/*Calluserdefinablehook*/#if(OS_CF......
  • 《基于 CDC、Spark Streaming、Kafka 实现患者指标采集》
    ......
  • NTP时间同步服务器(卫星时钟同步装置)基本架构介绍
    NTP时间同步服务器(卫星时钟同步装置)基本架构介绍NTP时间同步服务器(卫星时钟同步装置)基本架构介绍京准电钟官微——ahjzsz摘要:基于北斗的全球卫星系统(BDS)的高精度同步时钟信号在电网广域测量系统(WAMS)等很多领域具有广泛用途;但在实际应用中存在因卫星失锁等原因导致同步时钟信号......
  • EtherCAT主站IGH-- 16 -- IGH之fsm_foe.h/c文件解析
    EtherCAT主站IGH--16--IGH之fsm_foe.h/c文件解析0预览一该文件功能`fsm_foe.c`文件功能函数预览二函数介绍1.`ec_fsm_foe_init`2.`ec_fsm_foe_clear`3.`ec_fsm_foe_exec`4.`ec_fsm_foe_success`5.`ec_fsm_foe_transfer`6.`ec_fsm_foe_err......
  • EtherCAT总线耦合器:在Codesys里进行IO组态案例
    EtherCAT总线耦合器:在Codesys和Twincat软件里组态案例EtherCAT总线耦合器作为网络接口,连接主控制器(如PLC)和其他EtherCAT设备,实现实时、高效的数据交换。它能够支持工业自动化系统中的监控和控制功能,确保数据的准确性和实时性。一、在欧姆龙SysmacStudio软件中配置EtherCAT总线耦......