本帖最后由 lushp88 于 2017-11-27 00:48 编辑
一、在有些应用场合,需要同时采集不同点的信号方便信号分析,比如:基站定位技术,同时采集几个基站的信号差。这种场合应用很多,电站电力系统的信号采集都是需要同时采集不同点的信号,那么如何同时采集不同点的信号呢?答案IEEE1588协议,它可以保证每个采集点的时间基本同步,NTP协议在互联网网络可以保证1~50ms精度(全球网络),NTP精度有时候还不能满足同步精度要求,那这时有出现一种精度更高的协议叫PTP,它能精确到纳秒级同步。实现它必须使用硬件时间戳(NTP是通过软件计算时延来计算时间偏差的)。
二、实现PTP方案
STM32F107集成以太网控制器,STM32F107内部集成MAC/DMA/PTP控制器,只要外挂一颗PHY就可以实现TCP/IP协议,轻轻松松和互联网相连。
STM32F107 实现IEEE1588协议是基于TCP/IP之上的一个协议,PTP是使用网内组播(UDP组播)实现时间同步,多节点会通过BMC算法计算最佳主时钟节点,然后所有的从节点都以最佳节点为时间参考。PTP实测精度可以在±100ns内同步(同一台交换机,同一网段),下图:是实测的同步精度
红色框是两个节点是启动ADC采集的触发信号(目前采集速率是10kps),可以看到两个节点基本保持在100ns之内偏差,也就实现同步采集!
下图是采集到的信号DAC输出显示
影响精度的因素多,网路,元器件的精度等!以下视频分别使用普通的20PPM和1PPM VCO有源晶振,触发ADC同步效果(ADC触发同步是在PTP同步完成之后的同步,它不能代表PTP的精度,但是PTP精度绝对影响ADC的触发同步。PTP是时间同步的基础,ADC是在PTP同步之后的应用,这里实现的方法是PTP同步之后,利用同步校对信号不断的对TIM矫正而实现的同步,所有触发ADC信号均使用DMA控制寄存器不需要软件介入,矫正过后的TIM定时触发ADC)
IEEE1588 PTPV2 1PPM晶振同步效果
IEEE1588 PTPV2 20PPM晶振同步效果
|