基于LabVIEW 的分布式数据采集系统时钟同步方法
作者:刘娜
来源:《科技创新与生产力》 2015年第7期
刘娜
(中航高科智能测控有限公司,北京 100176)
摘要:通过IEEE1588时钟同步方式实现局域网中分布式系统采集单元的时钟同步,重点
介绍了通过LabVIEW软件来实现时钟同步的方法,最终可达到微秒级的同步,并对此种方法进
行了验证。
用LabVIEW软件通过IEEE1588方式实现时钟同步的方法简单、便捷,可推广到其他分布式局域网系统中。
关键词:分布式数据采集;IEEE1588时钟同步;LabVIEW
中图分类号:TP274 文献标志码:A DOI:10.3969/j.issn.1674-9146.2015.07.048
收稿日期:2015-03-26;修回日期:2015-06-26
作者简介:刘娜(1982-),女,山西太原人,工程师,主要从事数据采集系统开发研究,E-mail:liunana2005@。
随着计算机网络的发展,分布式网络已广泛应用于航空飞机测试、航海舰载以及核能发电
等采集数据多、实时性要求较高等领域。
同步采集是这类分布式数据采集系统的一个关键点,
数据采集的实时性、准确性和系统的高效性都要求系统能进行实时通信。
为此,笔者针对分布
式实时数据采集系统提出了相应的IEEE1588方式时钟同步方案,并详细阐述了实现时钟同步的具体方法,以此满足不同系统对时间精度要求的目的。
1 分布式数据采集系统
分布式数据采集系统属于局域网构架,单元间通过网络进行数据交互,主要由集线器和数
据采集单元、服务器、客户端等组成。
其中各个数据采集单元的设计相同,均由一个系统控制
器和多个功能板卡搭建的系统构成。
而系统控制器是采集器的核心,它控制着数据采集单元内
的各个功能板卡的配置和单元内的数据传输,同时保持数据采集单元与外部通信;功能板用以
实现A/D,FIFO处理等功能,包括数据采集传送。
大量数据从各个数据采集单元采集到再通过
网络实时传输到可进行显示的客户端和可存储数据的服务器。
在一个数据采集系统中,对于来
自不同数据采集单元的数据在记录和保存时都需要统一的时间标识,以便存储和事后处理,这
就需要各个数据采集单元的时间同步。
对于高速数据采集来说,采集单元的时钟同步精度要求更高。
然而,由于产生时钟的晶振
具有频率漂移的特性,故对于具有多个采集单元的分布式系统,如果仅仅在系统启动时进行一
次同步,数据的同步传输将会随着系统运行时间的增长而失步。
因此时钟的同步就是保证数据
同步传输的关键所在,也是保证系统正常工作的条件。
IEEEl588标准旨在解决网络的时钟同步
问题,它制定了将分散在测量和控制系统内的分离节点上独立运行的时钟同步到一个高精度和
高准确度时钟上的协议。
2 时钟同步原理
IEEEl588标准全称是网络测量和控制系统的精密时钟同步协议标准(Precision Timing Protocol,PTP)。
该协议能够在所有支持多播的网络上实现,特别适合于以太网,但并不局限于以太网,目的是使分布式网络中的所有时钟保持精确的同步。
PTP协议是一个关于时钟同步
的协议标准,它被应用于由多个节点组成的分布式系统中,在系统中每个节点代表一个独立运
行的时钟。
PTP协议将整个网络内的时钟分为主时钟和从时钟,整个系统中的最优时钟为最高
主时钟。
时钟同步原理借鉴了IEEEl588协议中的同步原理,同步时先由主设备通过多播形式发出时钟同步报文,所有与主设备在同一域中的设备都将收到该同步报文后,再根据同步报文中
的时间戳和主时钟到从时钟的线路延时计算出与主时钟的偏差,对本地的时钟进行调整。
3 时钟同步的硬件结构
本系统在硬件设计上主要采用PXI总线测试技术以提高测试速度和可靠性,减小测试系统
体积,均衡系统负载,扩展系统的使用范围和灵活性。
为此选用NI公司的PXI-6683定时和同
步模块。
PXI-6683模块可用于同步和实时的系统时间,还能够在一台PXI机箱内部或多台机箱
之间低偏移路由时钟信号和触发,为PXI系统提供一个多设备同步方式。
另外,PXI-6683模块
还具有一个板载TCXO,可通过GPS,IEEE 1588,IRIG-B或PPS驯服获得长期稳定性,由各个
采集单元的PXI-6683时钟同步卡来完成同步的工作。
系统采用独立组网方式,网络拓扑结构采用星型网络结构。
系统中的数据采集单元成为星
形网络中的节点,节点间用网线相连。
系统符合协议IEEE802.3和CSMA/CD标准,可以与标
准的以太网完美兼容。
4 时钟同步的软件实现
文中主要基于LabVIEW环境开发程序,LabVIEW使用的是图形化编辑语言编写程序,适合
开发测量或控制系统。
LabVIEW开发环境集成了快速构建各种应用所需的所有工具,提供很多
外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。
此外很多数
采仪器、板卡等都提供了LabVIEW环境可使用的驱动接口,使得对仪器的程控使用更加方便快
捷[1]。
首先通过对时钟同步板卡PXI-6683的设置,使得通过驯服板载TCXO或10 MHz CLKIN时
钟驱动PXI背板10 MHz时钟。
利用LabVIEW环境开发程序,对插在PXI机箱时间槽的PXI-
6683板卡进行时钟同步设置,选用IEEE1588时钟同步方式,驯服TCXO到背板时钟(见图1)。
其次对数据采集单元内的功能板卡进行同步设置,数据采集单元内的所有板卡的时钟源要
选用背板时钟,这样所有数据采集卡就基于同一个时钟基准。
以数据采集AD板卡为例,
PXI_Clk10为背板时钟,选用此时钟作为参考时钟源。
对于每个数据采集卡都同样设置,这样
就有了统一的时钟基准,即10 M背板时钟作为采样时钟基准按一定的采集频率进行数据采集(见图2)。
至此,每个数据采集单元的时钟同步设置完成,但要使所有数据采集单元的时间
统一,还需要对此进行时钟同步。
此时,数据采集单元之间的同步可通过PXI-6683板卡来完成。
当设备接入网络时,按照PTP协议,主时钟将一个同步消息向所有从属时钟发送,并创建
一个内部传送时间标签。
当一个从属时钟接收到同步消息时会创建一个自己的到达时间标签,
主时钟发出一个包括发送时间标签数据的跟进消息。
此时,每个从属时钟都知道主时钟发送同
步信息及该消息到达的时间,这个时间差可使每个从属时钟将其内部时钟与主时钟保持同步。
为了确定网络延时,从属时钟会向主时钟发送一个延时请求消息,并创建一个时间标签。
主时
钟监测到延时请求消息的到达时间,然后将此信息以一个延时响应消息发送回从属时钟,这两
个时间标签之间的时间差代表了网络传播的延时时间。
从属时钟可以处理延时和微调内部时钟。
在定期的间隔内,主时钟发送一个新的同步消息和一个跟进消息以保持时钟同步[2]。
首先选取一个数据采集单元作为主时钟,其他则为从时钟,编程实现见图3。
如果需要采集单元内的板卡同时启动采集,可用定时事件来触发,也可以选择板卡的时钟
触发源等多种软件或硬件来触发启动采集。
本文主要介绍前一种方法(见图4)。
设置一个未
来的时间点,当到达该时刻时,采集被启动。
功能板卡在启动采集前添加触发功能,触发源要
选择和输出时间触发事件一致的触发项(见图5)。
4 同步验证
为了验证系统内不同数据采集单元之间的时钟同步性,由电脑连接两个数据采集单元组成
简单的分布式采集系统,采集单元再把数据实时上传到电脑,并对此数据进行图形显示,从而
观察时钟同步前后的变化。
当两个采集单元连接到同一个信号发生器时,信号发生器会发出1 000 Hz的正弦波形。
当未经时钟同步时,可以看到两个采集单元的波形并不重叠,而是按照各
自采集单元中数据采集板卡的板载时钟来采集,两个波形的相位差会随着时间而进行周期性变化。
当把两个采集单元的时钟进行同步后,两个波形的相位差是固定的,因为两个采集单元时
钟虽然同步了,但两个采集单元并不是同时刻开始采集,所以波形会一直保持固定的相位差。
如果把两个采集单元通过触发的方式同时启动采集(见图6),两个波形几乎重合在一起,同
步精度也达到微秒级别。
5 结束语
本文给出了基于LabVIEW软件平台实现的分布式数据采集系统的时钟同步,开发简单灵活、易实现,满足了一般的基于局域网的高速实时数据采集系统对采集单元同步的要求,经实际验
证和使用,同步精度达到了微秒级别,满足了一般数据采集系统对同步精度的要求,适用于各
种领域和类型的分布式数据采集系统,对类似的数据采集系统时钟同步的设计和使用具有借鉴
作用。
参考文献:
[1] 杨乐平. LabVIEW高级程序设计[M].北京:清华大学出版社,2003.
[2] 李聪,高丽.基于IEEE 1588的时钟同步技术在分布式系统中的应用[J].电子设计工程,2009(12):21-22.
(责任编辑高腾)。