芯准AS6802开源原型系统(3):无故障冷启动同步之一 — 先启动CM后启动SM
从本篇文章开始,将逐一介绍湖南华芯通的芯准AS6802时间同步开源原型系统的7个验证案例。
首先介绍无故障冷启动同步场景的第一个案例-先启动CM后启动SM,验证此场景下所有节点从冷启动开始,最终达到同步的过程。
无故障同步场景
一、验证环境
验证环境的网络拓扑结构如图1,实景如图2所示,由4台AS6802同步节点、1台交换机、1台4通道示波器以及控制终端PC组成。
4台AS6802时间同步节点组成一个同步域,包含1个压缩主(CM)和3个同步主(SM1~SM3)。示波器的四个通道分别连接到同步节点板卡上的测试点,探测个节点的同步脉冲信号,并实时计算同步脉冲信号间的误差。所有同步节点与控制终端PC通过一个普通交换机组成带外配置管理网络,实现控制终端PC对同步节点的配置和状态监控。所有同步节点在运行过程中采集状态信息,并实时发送给控制终端,控制终端可通过回溯这些状态报文来监控分析节点的状态变化,辅助调试与测试。
二、案例说明
本案例测试在无故障情况下,先启动压缩主CM,再分别启动三个同步主SM1~SM3,验证所有节点是否能正常从冷启动开始完成同步,同步过程是否符合AS6802标准中的冷启动流程。
本案例使用的关键参数配置如表1所示:
参数名称 |
参数值 |
同步精度 |
100ns |
最大传输延迟 |
100us |
容错故障节点数 |
1个 |
最大集成周期 |
63个 |
接受窗口大小 |
200ns |
观察窗口大小 |
100ns |
时钟周期 |
8ns |
三、预期结果
CM先启动后,由于此时系统尚未同步,会从CM_INTEGRATE跳转到CM_UNSYNC状态,等待接收并广播系统中SM发送的CS帧,以开启冷启动流程;
SM1启动后,由于同步节点数量尚未达到关键参数的设定阈值,CM和SM1仍无法同步,会在冷启动相关的状态循环跳转,如图3所示:
SM2启动后,经过冷启动的容错握手机制,CM、SM1和SM2达成同步条件,三个节点完成同步,预期结果如图4所示:
最后,启动SM3节点,由于存在已同步网络,SM3接收到广播的IN帧后,会跳过冷启动流程,直接根据IN帧与其他节点同步,并最终稳定在SM_STABLE状态。
四、测试结果
下面介绍实际测试过程。为了便于查看结果,我们将示波器远程界面输出到控制终端PC的显示器中,与控制端界面并行显示。同时,控制终端PC存储了整个验证过程中所有节点设备发送的状态报文,基于这些状态报文,我们可以回溯各阶段中节点的状态跳转情况。
首先,通过控制终端PC启动CM,可以看到示波器出现CM的同步时钟波形如图6所示:
然后启动SM1,示波器中出现了SM1的波形,但是CM和SM1的波形并没有同步,从示波器的测量结果来看(图7),二者的延时误差明显超过了设定的100ns。
通过在控制终端存储的状态报文回溯节点状态,由于只启动了一个SM,sync_membership变量值仅为1,不满足核心参数中设定的阈值,因此CM和SM1一直在冷启动相关的状态中循环,无法达成同步(图8)。
其次,启动SM2,如图9所示,示波器中3个设备的波形同步,并且动态测量功能显示误差远小于设定的100ns精度范围。
通过控制端存储的状态报文回溯启动SM2后的节点状态变化,如图10所示。可以看到,在SM2启动前,由于IN帧的 membership不满足核心参数,CM和SM1依旧在冷启动相关状态循环;当SM2启动后,sync_membership达到核心参数设定阈值(2),满足跳转到同步状态的条件,三台设备最终完成同步。
最后,启动SM3,如图11所示,4台设备波形实现同步,且示波器中动态测量功能显示误差满足精度范围。
回溯节点状态,如图12所示。SM3启动前,CM/SM1/SM2已经在多次同步下达成STABLE状态,并且IN帧的membership是2;在SM3启动后,在INTEGRATE状态收到了系统中广播的IN帧,直接跳过了冷启动流程跳转到SYNC状态,完成与其他节点同步。并且,在SM3同步后,再次收到的IN帧的同步membership从2变成了3,即代表系统中所有节点完成了同步。最终,SM3在经历多个同步的集成周期后,跳转到STABLE状态,此时,所有节点达成稳定同步。
从上述回溯过程可以看出,在CM先启动的情况下,当启动的SM节点数量满足设定参数时,整个系统可以通过冷启动流程达成同步。而后加入的SM则会通过接收CM压缩广播后的IN帧快速同步到网络中。
本文关于无故障同步场景的第一个案例介绍完毕,最终测试结果与预期结果一致。
下一篇文章中,我们将继续介绍无故障冷启动场景的第二个案例——先启动SM后启动CM。