论文部分内容阅读
随着信息时代的快速发展,时钟同步技术在各行各业都扮演着十分重要的角色,尤其是分布式测控系统对时钟同步的精度要求越来越高。传统的NTP协议虽然被广泛使用,但是它最多只能达到毫秒级的同步水平,无法适用于对同步精度要求更高的场合;GPS可以实现高精度定位与对时功能,但是GPS设备安装费用昂贵,并且存在政治风险,因此也不适合大规模使用。IEEE 1588协议可以达到亚微秒级的同步水平,具有精度高、易实现、成本低等众多优点,可被广泛应用于分布式测量与控制系统中。本文在深入分析IEEE 1588协议的基础上,研究了IEEE 1588协议的同步机制和最佳主时钟算法,设计了基于IEEE 1588协议的软件实现框架,模块化各个部件的功能,并采用滤波算法(FIR和IIR滤波器)过滤时钟偏差和链路延时,减小了时钟信息传输过程中产生的抖动,并且采用频率补偿算法(PI控制器)补偿从时钟相对于主时钟的频率偏差,最终实现相位同步和频率同步。本文设计了两种方法来实现IEEE 1588协议,分别是基于IEEE 1588协议的网络层实现方法和MAC层实现方法。网路层实现方法基于PTPd2采用纯软件方式实现,在网络驱动层获取报文时间戳,并且用Wireshark抓包软件捕获报文经过MAC层的时间戳,通过在主-从时钟中补偿报文由网络驱动层传输到MAC层的时间,可达到近似在MAC层获取时间戳的效果,进而提高同步精度;MAC层实现方法采用硬件方式实现,采用STM32F407作为时钟节点,DP83848作为物理层芯片,并且移植LwIP轻型协议栈作为网络通信的基础,由硬件自动获取通信报文到达MAC层与物理层之间的MII/RMII接口的时间戳,最终实现时钟同步。最后进行时钟同步性能测试,通过设置不同的Announce报文接收周期、不同的同步周期、不同P、I值、补偿出边界时间并且连接不同的中间设备等等,进行实验测试,最终网络层实现方法的同步精度可以达到19?s,MAC层实现方法的时钟同步精度可以达到28ns。测试结果表明,本文设计的基于IEEE 1588协议的时钟同步系统可以满足大部分场合的需求。