芯准AS6802开源原型系统(7):结团检测与消除之一 — 1个SM构成1个结团
本文介绍芯准AS6802时间同步开源原型系统的第七个验证案例:结团检测与消除场景中的1个SM构成1个结团。该场景验证在同步过程中,单个节点设备相对其它节点时钟偏移超过设定精度范围,导致此节点与其它节点失去同步,而结团检测功能能将其检测出来并归类为异步结团,并且在不影响其它节点的情况下修复时钟偏移,使所有节点重新同步。
案例7
一、验证环境
验证环境的网络拓扑结构如图1,实景如图2所示,由4台AS6802同步节点、1台交换机、1台4通道示波器以及控制终端PC组成。
4台AS6802时间同步节点组成一个同步域,包含1个压缩主(CM)和3个同步主(SM1~SM3)。示波器的四个通道分别连接到同步节点板卡上的测试点,探测个节点的同步脉冲信号,并实时计算同步脉冲信号间的误差。所有同步节点与控制终端PC通过一个普通交换机组成带外配置管理网络,实现控制终端PC对同步节点的配置和状态监控。所有同步节点在运行过程中采集状态信息,并实时发送给控制终端,控制终端可通过回溯这些状态报文来监控分析节点的状态变化,辅助调试与测试。
二、案例说明
本案例验证单个SM节点相对于其它同步节点时钟偏移超过精度范围的的情况下,根据AS6802标准中的结团检测机制,系统是否能够检测出异步节点,并在不影响其他节点的情况下,恢复该节点与其它节点的同步。
本案例使用的关键参数配置如表1所示:
参数名称 |
参数值 |
同步精度 |
100ns |
最大传输延迟 |
100us |
容错故障节点数 |
1个 |
最大集成周期 |
63个 |
接受窗口大小 |
200ns |
观察窗口大小 |
100ns |
时钟周期 |
8ns |
在本次验证中,选取SM3作为时钟节点,验证步骤如下:
(1)通过控制终端依次启动SM1、SM2、SM3和CM,观察所有节点达到同步状态;
(2)通过控制终端设置SM3节点的同步调试参数,使其在稳定同步的第32个集成周期,同步时钟向前偏移32个晶振脉冲,即256ns;
(3)通过示波器观察SM3失效后的系统同步状态;
(4)通过控制终端的状态报文历史回溯功能分析在第32个集成周期前后各节点同步过程的状态变化,验证是否与预期结果一致。
三、预期结果
SM1~SM3及CM分别启动后,所有节点通过冷启动流程达到同步状态,并通过周期性地发送与处理IN帧,稳定在同步状态,如图3所示:
当集成周期满足设定调试条件(实验中设定为第32个集成周期),SM3的同步时钟发生偏移,使其发送IN帧的时刻也相应提前。
当3个SM节点的IN帧到达CM后,SM3与另两个SM的间隔超过设定的窗口参数,CM会将SM3的IN帧单独压缩并派发。
由于SM1和SM2的压缩IN帧的同步membership是2,满足同步阈值条件,因此SM1、SM2和CM会在接受窗口内接收到该IN帧,继续保持在同步的STABLE状态。
SM3在接受窗口内只收到自己发出的IN帧的压缩帧,其membership为1,会触发异步结团检测条件(即检测到异步结团),从而跳出同步STABLE状态,进入INTEGRATE状态。在后续的集成周期中,SM3将在INTEGRATE状态收到来自CM的压缩IN帧(从SM1和SM2的IN帧压缩得到),满足同步条件,可以根据该IN帧直接进入SYNC状态,与其它节点重新同步。
预期结果如图4所示:
四、测试结果
下面是实际测试过程。为了便于查看结果,我们将示波器远程界面输出到控制终端PC的显示器,与控制端界面并行显示。同时,控制终端PC存储了整个验证过程中所有节点设备发送的状态报文,基于这些状态报文,我们可以回溯各阶段中节点的状态跳转情况:
首先,通过控制终端启动SM1~SM3以及CM节点,从示波器中可以看到4台设备波形实现同步,动态测量显示误差满足100ns精度范围,如图5所示:
然后,控制SM3节点,使其在同步稳定后的第32个集成周期插入256ns的时钟偏移,从示波器的实物界面中可以看到所有节点的波形仍然保持在同步状态,动态延时测量显示同步误差也一直满足100ns精度范围,但SM3的波形出现了短暂的残影,因为SM3会先跳出同步状态,紧接着在后续集成周期再恢复同步,由于示波器显示速度过快,此过程只能看到残影,具体变化可在历史回溯中分析,如图6所示。
下面在控制端通过存储的状态报文回溯节点状态(图7)。可以看到,初始4个节点通过冷启动完成同步后,同步membership的数量为3,表示所有SM正常工作。
在第33个集成周期,CM的同步membership变为2,即只有两个SM(SM1和SM2)的压缩IN帧落在CM接受窗口内用于时钟修正,因为在上个集成周期中SM3时钟偏移导致其发送的IN帧压缩后落在CM的接受窗口之外,不能用于时钟修正。
同时,SM3在接受窗口内收到的同步IN帧中membership仅为1(压缩自自己发出的IN帧),不满足设定阈值,同步失败,跳转到INTEGRATE状态;而其它两个节点在接受窗口内收到的同步IN帧membership为2,依旧满足同步条件,继续保持在STABLE状态。
在接下来的集成周期中,SM3在INTEGRATE状态收到了CM返回的IN帧(从SM1和SM2的IN帧压缩得到),并满足同步阈值(membership为2)。SM3根据该IN帧直接跳转到SYNC状态,重新同步到其它节点中。
从上述测试过程可以看出,单个SM节点的时钟偏移在超过设定阈值时会被结团检测功能识别,引起该节点重启同步过程;在不影响其余节点同步的情况下,该节点会在接下来的集成周期重新同步,修复时钟偏移。
结团检测场景的第一个案例介绍完毕,测试结果与预期结果一致,符合AS6802标准中定义的结团检测机制。
下一篇文章将开始介绍结团检测与场景的第二个验证案例-2个SM构成1个结团。
文章推荐
芯准AS6802开源原型系统(3):无故障冷启动同步之一 — 先启动CM后启动SM