IEEE1588的全称是“网络测量和控制系统的精密时钟同步协议标准”,IEEE1588标准的草案基础来自惠普公司的1990至1998年的有关成果,换句语说,安捷伦科技对IEEE1588标准作出重要贡献。安捷伦实验室的资深研究员John Eidson被网络业界视为专家,他的“IEEE1588在测试和测量系统的应用”,以及“IEEE1588:在测控和通信的应用”两篇论文对IEEE1588协议有精辟和全面的介绍。IEEE1588协议是通用的提升网络系统定时同步能力的规范,在起草过程中主要参考以太网来编制,使分布式通信网络能够具有严格的定时同步,并且应用于工业自动化系统。基本构思是通过硬件和软件将网络设备(客户机)的内时钟与主控机的主时钟实现同步,提供同步建立时间小于10μs的运用,与未执行IEEE1588协议的以太网延迟时间1,000μs相比,整个网络的定时同步指标有显著的改善。
在这里简要说明IEEE1588的特点:
·早期的网络时间协议(NTP)只有软件,而IEEE1588既使用软件,亦同时使用硬件和软件配合,获得更精确的定时同步;
·GPIB总线没有同步时钟传送,依靠并行电缆和限制电缆长度(每器件距离)不超过5m来保证延迟小于30μs;
·GPIB的数据线与控制线是分开的,VXI和PXI两种总线分别在VME和PCI计算机总线上扩展,都要增加时钟线。IEEE1588无需额外的时钟线,仍然使用原来以太网的数据线传送时钟信号,使组网连接简化和降低成本;
·时钟振荡器随时间产生漂移,需要标准授时系统作校准,校准过程要缩短和安全可靠。目前常用的有GPS(全球定位系统)和IRIGB(国际通用时间格式码),IRIGB每秒发送一个帧脉冲和10MHz基准时钟,实现主控机/客户机的时钟同步。IEEE1588采用时间分布机制和时间调度概念,客户机可使用普通振荡器,通过软件调度与主控机的主时钟保持同步,过程简单可靠,节约大量时钟电缆;
·IEEE1588推出的时间尚短,还有待完善和修正。例如,对集线器和开关的透明网络可提供很好的定时同步,但还未克服装有路由器的带有不决定性的网络定时。目前正在设计和试产可测量引入延时和自动补偿延时的网络开关芯片。还有,IEEE1588完整芯片还未推出,只有FPGA基的代用芯片,Intel公司已声称尽快生产可支持奔腾处理器的IEEE1588完整芯片。
在工业自动化方面更早采用IEEE1588,发表的文章也比较多,特别是在自动控制和数据采集方面有所收获。专门供应网络时间服务器的Symmetricom公司介绍一种涡轮机控制系统,前端的各种传感器连接到数据采集板,板上安装的精确时钟通过IEEE1588协议的以太网与系统主时钟同步,使传感器的同步时间发生在1μs内,每秒钟内要执行200次测量,测量间隔5ms,传感器的轮换时间是1μs。控制系统内的多种测量仪器在时间对准后,按本地时钟捕捉数据和分析数据,清除了触发产生的延迟。这种利用IEEE1588协议的以太网数据采集系统,节省大量分别连接每个传感器的线缆,达到精确定时同步,便于远控测量,成本降低,已引起业界的重视。当前工业自动化使用IRIGB格式时间码,具有每天时间准确度小于1μs。应该看到,IEEE1588具有潜力,再将控制系统的每天时间准确度推进到100ns。原因在于IRIGB时间码要每秒发送1个时钟脉冲至每个测量设备,并且随该脉冲发送每天的时戳,而IEEE1588协议可直接将每天时间信息从主控时钟发送到客户时钟,更具有优势。从发展趋势来看,采用IEEE1588协议的以太网将在工业自动化系统中占有市场。
同样,采用IEEE1588协议 的以太网,解决了通用以太网延迟时间长和同步能力差的瓶颈,显然在测量仪器系统的应用中将发挥更大作用。事实上,以太网的仪器扩展接口LXI就是以采用IEEE1588协议的以太网作为骨干的仪器应用,再配备测量仪器系统所需的其它条件,组成吸收了GPIB到VXI和PXI的特点而构建的新一代测量仪器接口。
IEEE1588是一个主要运行于以太网的网络时钟同步协议,主要目标是在局域网范围内实现高于微秒级的同步精度。与常见的时钟同步协议NTP相比,区别在于下面几点:
1. TimeStamp是在硬件级打上去的,这样相比于NTP就没有了App发起packet到硬件将packet发送出去之间的延迟,所以1588能做到很高的精度。TimeStamp可以在MAC层打,也可以在PHY层打。打在MAC层实现较方便,但精度不如打在PHY层,因为在MAC和PHY之间存在着数据抖动。一般来说,做在MAC层能实现100ns以内的同步误差,打在PHY层能实现25ns以内的同步误差。但是也正因为在硬件层打TimeStamp,所以实现1588要求修改ETH硬件,并修改底层协议栈,实现起来较复杂。顺便说下,协议本身并不强制在硬件级打TimeStamp,纯软件的实现也是存在的,但其同步精度无法保证,一般将纯软件实现作为验证协议栈的一种手段,而不用于现场环境。
2. IEEE1588使用广播或组播传递协议包,这就限制了1588只能用在支持广播或组播的网络上。
3. IEEE1588没有专门的时间服务器,但存在着主从层次结构。网络上运行该协议的设备通过协议包的交换确立主从层次结构,并在网络拓补发生改变时重新确立主从层次。
IEEE1588协议有两个版本,分别是早期的1588-2002和最新的1588-2008。协议包不兼容。不过现在支持该协议的设备都使用了新版协议,所以兼容性基本上不是问题。
该协议也被接纳为IEC标准:IEC-61588。
我们国家有该协议的翻译稿:
GB/T 25931-2010 网络测量和控制系统的精确时钟同步协议
在后面的介绍中,若不作特别说明,均针对1588-2008。
实际上,1588本身并不限制仅用于以太网,只要是支持广播或组播的网络(比如CAN/485等),理论上都可以运行该协议。不过目前市场上能看到的支持该协议的硬件几乎都是以太网的,所以我们的介绍也将以Ethernet为例子。