- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WinCE环境下SNTP协议的研究与实现
摘要:以工业控制领域中的SNTP时间同步协议为基础,对其工作过程及原理进行深入剖析,着重探讨了如何在Windows CE环境下实现时间同步,并给出相应的实现方案。最后给出了Windows CE环境下的SNTP协议栈运行结果。
关键词:SNTP;时间同步;Windows CE
中图分类号:TP273文献标识码:A文章编号:1009-3044(2008)11-20228-04
1 引言
控制网络的“实时性”已成为目前工控领域的重中之重,通信系统必须保证传输实时性的确定性、精确性和稳定性。也就是说工业现场设备向网络上发送数据都必须遵循严格的时序,这就要求具有在所有通信设备之间实现精确时间同步的能力。简单网络时钟同步协议(SNTP)是目前在工控领域中广泛使用的、对终端及工作站进行时间同步控制的协议,它是一个简化了的NTP服务器和NTP客户端的协议,不需要实现NTP协议的所有功能,因此极大地简化了控制过程中复杂的时间控制,节约了运行空间和成本。在现场设备上运行SNTP协议栈是为了使在控制网络内的其它设备的系统时钟与标准的时钟源保持同步,其同步精度一般可达到1-50ms。本文在深入分析SNTP协议的工作原理的基础上,着重探讨了如何在WinCE环境下实现时间同步的方案,实现了各个设备终端与标准的时钟源保持同步。最后给出了WinCE环境下的SNTP协议栈的运行结果。
2 SNTP协议的工作原理
为实现现场设备间的时间同步,每个设备自上电初始化起便周期性地向系统时间服务器发出时间同步的请求,通过时间服务器的响应来保持设备的本地时间和系统时间的一致。
(1)现场设备A(客户端)发送一个SNTP包给现场设备B(服务器端),该包带有它离开现场设备A的时间戳,该时间戳为T1。
(2)当此SNTP包到达现场设备B时,现场设备B加上自己的时间戳,该时间戳为T2。
(3)当此SNTP包离开现场设备B时,现场设备B再次加上自己的时间戳,该时间戳为T3。
(4)当现场设备A接收到该响应包时,加上一个新的时间戳,该时间戳为T4。
整个同步过程如图1所示。
因为SNTP协议简化了NTP协议的复杂的时间控制,所以整个同步过程实际上只需两步:一个SNTP包从一个现场设备发送到另一个现场设备,然后又回到原来那个现场设备,只不过SNTP包在发送和接收时都要加上当前时间戳。所以共有四个时间戳,如表1所示。
至此,作为客户端的现场设备A已拥有足够的信息来计算两个重要的参数:一是SNTP数据包在服务器端和客户端之间往返的时间延迟RoundTripDelay,二是现场设备A和现场设备B的时钟差即偏离时间Offset。由此现场设备A能够设定自己的时钟与现场设备B同步。可以根据如下公式算出现场设备A与现场设备B之间的时间差。
RoundTripDelay =(T4-T1)-(T3-T2)
=(DestinationTimestamp - OriginateTimestamp)
-(TransmitTimestamp- ReceiveTimestamp)
Offset = T2-T1- RoundTripDelay/2
= T2-T1-((T4?CT1)-(T3-T2))/2
=((T2-T1)+(T3-T4))/2
=((ReceiveTimestamp - OriginateTimestamp)
+(TransmitTimestamp - DestinationTimestamp))/2
用偏离时间Offset与现场设备A进行时间补偿,就可以精确地对现场设备A进行时间校正。在这个过程中,假设传输介质是对称均匀的。
3 SNTP协议在Windows CE环境下的实现
3.1 SNTP时间报文格式的定义
在服务器端与客户端程序中都涉及到SNTP时间报文发送和接收,SNTP时间报文的格式由SntpPacket结构来表示,其具体定义如下:
struct SntpPacket
{
BYTE m_LiVnMode;
BYTE m_Stratum;
char m_Poll;
char m_Precision;
long m_RootDelay;
long m_RootDispersion;
char m_ReferenceID[4];
CSntpTimePacket m_ReferenceTimestamp;
CSntpTimePacket m_OriginateTimest
您可能关注的文档
最近下载
- 房产税城镇土地使用税政策讲解.pdf VIP
- 《弟子规正版全文-带拼音-完善打印版》.docx VIP
- 新大学日语阅读与写作1东娜练习答案及译文.pptx
- 第19课 法国大革命和拿破仑帝国 课件(共33张PPT).pptx VIP
- 施工现场节假日前安全检查表.doc VIP
- 500kV龙昌Ⅰ、Ⅱ号线直线塔绝缘子单串改双串施工方案.pdf VIP
- 结构优化的群体智能优化算法研究.pdf VIP
- 新视野大学英语(第四版)读写教程1(思政智慧版)课件 B1U1 Section A Fresh start.pptx VIP
- 北京-407EV-标准版-BJ5030XXYVRRC-BEV-407EV纯电动汽车产品使用说明书.pdf VIP
- GB50666混凝土结构工程施工规范.pdf VIP
文档评论(0)