logo资料库

IEEE1588时间同步协议在Linux下的分析与实现.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
您的论文得到两院院士关注 文章编号:1008- 0570(2006)12- 1- 0283- 03 软 件 天 地 IEEE1588 时间同步协议在 Lin u x 下的分析与实现 Th e An alys is an d Im p lem en tatio n o f IEEE1588 Tim e Syn ch ro n izatio n Pro to co l u n d er Lin u x (重庆邮电学院重庆市网络控制技术与智能仪器仪表重点实验室)王 飞 雪 王 平 谢 昊 飞 WANG FEIXUE WANG PING XIE HAOFEI 摘要:以 IEEE1588 精 确 时 间 同 步 标 准 为 基 础 , 通 过 对 工 业 以 太 网 中 PTP 协 议 的 深 入 研 究 和 分 析 , 着 重 探 讨 了 如 何 在 装 有 lin- ux 系 统 的 现 场 设 备 上 实 现 时 间 同 步 , 并 给 出 相 应 的 实 现 方 案 。 关键词:IEEE1588;时间同步;工业以太网;Linux;主时钟 中图分类号:TP273 文献标识码:A Abstr act:In this article,on the basis of the precise IEEE1588 time synchronization, by lucubrating and analysing the PTP protocol in Ethernet, the time synchronization of local equipments realized under Linux is discussed emphatically. Keywor ds:IEEE1588,time synchr onization,industr ial Ether net,Linux, master clock 1 引 言 IEEE1588 定义了一个在工业自动化系统中的精 确同步时钟协议 (PTP 协议),该协议与网络交流、本地 计算和分配对象有关。本文以 PTP 协议为依托,主要针 对以太网中对时间同步精度要求高的 linux 操作系统 的现场设备,实现了一种基于组播的报文传输系统,把 各个现场设备的时间统一在误差所允许的范围内。 2 工业以太网现场设备时间同步机制 2.1 PTP 协议系统结构 一个 1588 精确时钟系统包括多个节点,每一个 节点都代表一个时钟。每个时钟之间经由网络连接, 按工作原理分为两种时钟:普通时钟和边界时钟。它们 之间的区别是普通时钟只有一个 PTP 端口,而边界时 钟包括多个 PTP 端口。如图 1 所示。 链路上每一个现场设备或者具有普通时钟或具有边 界时钟。在网络中,每一个时钟都可能处于下面几种 状态:从属时钟(SLAVE)、主时钟(MASTER)和原主时钟 (GRANDMASTER)。每个时钟所处的状态是根据最优 化的主时钟算法决定的,同步报文周期地通过任何与 主时钟相联系的时钟端口发送给其它的从时钟。 2.2 PTP 普通时钟协议模型 图 2 说明了一个使用通信技术的普通时钟,该时 钟通过两个接入点接入到 PTP 通信链路上,这两个点 是由事件端口和普通端口用它们的相关地址形成,一 起称做 PTP 端口。此端口和该时钟的协议引擎进行通 信。协议引擎对一个时钟很重要,它轮流访问时钟的 特殊端口信息和普通信息,它与时钟的 6 个相关的数 据集相关,协议引擎也能读出时钟当前时间和调整当 地时钟的时间。 技 术 创 新 图 1 IEEE1588 时间同步典型的 PTP 系统 在图 1 中,每一个矩形就代表每一个包含普通时 钟的节点,椭圆形代表包括包含边界时钟(有数个普通 时钟)的节点。那些直线所代表的是 PTP 通信链路,在 王飞雪:硕士研究生 本项目得到了国家 863 计划项目 (2003AA412030)和 科技部创新基金项目的资助 图 2 普通时钟协议模型示意图 2.3 PTP 协议的同步原理 以太网中的各个设备发出和接收有时间信息的 报文,并且在每一个发送和接收的报文中加上发出和 接收的时间戳。有了时间戳,接收方就可以计算出自 《 PLC 技术应用 200 例》 邮局订阅号: 82-946 360 元 / 年 - 283 -
软 件 天 地 中文核心期刊《 微计算机信息》(测控自动化)2006 年第 22 卷第 12-1 期 己在网络中的时钟误差和延时。PTP 协议定义了四种 多点传送的报文类型:同步报文 Sync 报文;Sync 之后 的报文 Follow_Up 报文;延时请求报文 Delay_Req 报 文;还有一种是延时请求应答报文 Delay_ Resp 报文, 它是回应 Delay_Req 报文的。同步报文是由主时钟周 期性发出的(一般为每两秒一次).通过两次的包含有时 间戳的报文的发送,真正的发送时间被正确的记录下 来。用来最终准确地计算出主时钟和从时钟之间的时 间差。具体过程如下图示: RITHM 的模块,它的作用是根据同步报文的不同的数 据集,把合格的同步报文都进行比较以选择出最佳的 报文。该模块包含了 6 个函数,COMPARE_2()函数对 层 ClockStratum 和标志 ClockIdentifier 比较,如果属性 不同,可以判断谁是比较好的时钟,如果这两个属性 相同,则需调用 VARIANCE_COMPARISON()函数对时 钟变量 localClockVariance 和边界时钟 grandmasterIs- BoundaryClock 进行判断比较,如果这两个属性相同, 则需调用 UUID_GRANDMASTER ()函数对报文 A、B 数据集中的 grandmasterUUID 域的三个属性作比较。 COMPARE_3()函数是对双亲端口域 parentPortField 和 两 种 序 列 号 grandmasterSequenceId 和 SequenceId 进 行选择的。 UUID_SELF()和 UUID_SOURCE()两个函 数都是用来对不同的 UUID 作比较的。该模块返回了 一个报文,这个报文的数据集经过比较,是较好的一 个。所有端口都运行此算法,可把最好的时钟选出来。 技 术 创 新 图 3 主从时钟时间偏差及时间延迟表示图 从图 3 可知,整个过程包括四次发送报文。为了 用一个标准时间的时钟(主时钟)来校正其它的时钟, 主、从时钟的时间差和报文传输延迟计算如下: master_to_slave_delay = (sync_receipt_time) - (o- riginTimestamp)或 master_to_slave_delay = (sync_receipt_time) - (pre- ciseOriginTimestamp) 从、主时钟时间差和报文传输延迟计算如下: slave_to_master_delay = (delayReceiptTimestamp) - (delay_req_sending_time) Delay= (master_to_slave_delay+slave_to_master_de- lay)/2 图 4 时钟数据集比较模块表示图 3.1.2 状态决断算法模块 该模块定义 STATE_DECISION_ALGORITHM ()函 数来进行状态的决断和数据集的更新。在默认数据集的 层数是 1 或 2 的前提下,调用 DATASET_COMPARI- SON_ALGORITHM模块来判定本地时钟默认数据集 Do 和较好时钟 Erbest 哪个为更好。 偏 离 时 间 Offset =(sync_receipt_time) (origin- Timestamp)- delay。根据偏离时间可以精确地对从时 钟进行时间校正。在这个过程中,假设传输介质是对 称均匀的。 - 3 系 统 实 现 系统的软件实现是开发的核心,要确保所选择的 时钟是整个系统中最好的主时钟,以及报文在 linux 操作系统的各个现场设备发送和接收的顺序,而且是 连续的发送和接收,从时钟在多大的精度上来同步主 时钟,都是需要考虑的问题。本文中的设计是无连接 的 UDP 通信,它的各个设计模块如下。 3.1 主时钟算法模块设计 3.1.1 数据集比较模块 本 文 定 义 了 DATASET_COMPARISON_ALGO- 图 5 状态决断算法模块表示图 3.2 报文发送接收模块 为了在网络中进行主时钟和多个从时钟的通信, 模块用 void* MonitorSend()函数来实现主时钟向从时 钟的组播发送。调用此函数就完成了建立套接口、初 始化 IP 多播地址、开始进行 IP 多播等。进行了初始化 IP 多播地址之后,sendto 函数就不停地向组内的各个 设备时钟发送带有时间戳的两种报文,这两种报文都 - 284 - 360元 / 年 邮局订阅号: 82-946 《 现场总线技术应用 200 例》
您的论文得到两院院士关注 调用函数 GetCurrentTime()获取了当时的精确时间。返 回一个 CntpTime 类型的时间戳,这时间戳包含在发送 出去的报文结构中。 发送方即主时钟的报文 Sync 和报文 Follow_ Up 发送出 去,作为接收 报 文 的 从 时 钟 , 接 下 来 应 该 Monitorreceive()函数的编写。启动了组播支持后,进行 广播套接口设置,并接收 sync 报文和 follow_up 报文 时立即调用上述的 GetCurrentTime()函数,记录下当前 的时间戳,并封装好再加上一些认证信息再发送到主 时钟。从时钟还需调用 SetCurrentTime()函数来调整自 己的时间以进行同步。 3.3 程序的固化和运行 本文设计的程序将在有 ARM9 平台的设备中运 行,基于 ARM9 的特性,需要对 Linux 内核进行剪裁, 以减小运行时占用的空间至 7M 左右。为了减少不必 要的空间,还需要进行库的选择,只保留需要的库。然 后将交叉调试好的程序烧写到 ARM9 的 Flash 存储模 块中,再进行调试和运行,经过同步信息的交换,从属 时钟与主时钟实现了精确同步。 4 结 束 语 1588 IEEE Protocol for 长期以来,工业以太网在 windows 下进行广播控 制,占用空间大,精度低。本文作者的创新点是基于 ARM9 平台,运行 linux 系统,且以组播的方式进行同 步控制,占用空间小,提高了同步的精确度达到微秒 级。有效地解决了各设备时间不一致所带来的问题, 具有一定实践意义。 参考文献: [1]TC9- Technical Committee on Sensor Technology, Standard for a Precision Clock Synchronization Networked Measurement and Control Systems. [2]Matt Welsh 等著,洪峰译,《linux 权威指南》,中国电力出版 社,第三版,2000 年 3 月 [3]高世伟,乔卫民,敬岚,基于 uCLinux 的嵌入式通讯的设计[J] 微计算机信息,2005,29 [4]庄亚俊,刘国平,吴敏,赵虹,胡春华.一种基于工业以太网的 监控系统的设计与应用[J].微计算机信息,2005,4 [5]毛德操,胡希明,《LINUX 内核源代码情景分析》(上、下册),浙 江大学出版社,2001 年 9 月 作者简介: 王飞雪(1974—),女,重庆人,重庆邮电学院 网络控制实验室硕士研究生,主要从事 Linux 下应用 程序的开发,平台间程序移植;王 平(1963—),男,重庆 人,1994 年西南交通大学获博士学位,现为重庆邮电 学院教授、博士生导师。研究方向:工业以太网及网络 控制技术、无线控制网络及其应用、智能仪器仪表。 Biogr aphy:Wang Feixue (1974—), female, ChongQing person, the graduated student of ChongQing University of Posts and Telecommunications,engaging in design of application under linux and replanting of application among flats;Wang Ping (1963—),male, professor and dr tutor of ChongQing University of Posts and Telecommunications.Research direction:industrial 软 件 天 地 technique,wireless control network Ethernet and network control and application, intelligent instruments. (400065 重庆市重庆邮电学院重庆市网络控制技术与 智能仪器仪表重点实验室)王飞雪 王 平 谢昊飞 通 讯 地 址:(400065 重 庆 市 重 庆 邮 电 学 院 重 庆 市 网 络 控制技术与智能仪器仪表重点实验室)王飞雪 (收稿日期:2006.3.12)(修稿日期:2006.4.10) (上接第 244 页) 在系统仿真曲线图 4 中, 蓝色曲线为非线性函数的输 出, 即目标曲线, 红色的曲线为神经网络的逼进曲线, 即实际输出曲线。我们可以看出两条曲线的吻合度还 是比较好的, 可以认为神经网络比较好的实现了所要 逼进的非线性方程的功能。从而实现了对倒立摆模型 的识别。 技 术 创 新 图 4 5 结 束 语 本 文 作 者 的 创 新 点 为 采 用 了 对 非 线 性 系 统 进 行 变换和分离的方法, 并利用 BP 神经网络对非线性系 统的逼近能力, 建立了单极倒立摆系统结构的辨识网 络。通过仿真, 以上辨识结果证明了 BP 神经网络对非 线性函数的良好逼近性, 表明了利用神经网络结构建 立倒立摆的神经网络模型是可行的。所建立的神经网 络也能较为准确的反映倒立摆的系统性能。 参考文献: [1] 欧阳黎明编著.MATLAB 控制系统设计. 国防工业出版社. 2001.1. [2] 刘金琨. 先进 PID 控制与 MATLAB 仿真. 电子工业出版社. 2004.9. [3]黄丹,周少武,吴新开,张志飞,基于 LQR 最优调节露的倒立摆 控制系统[J].微计算机信息 2004,2. 作者简介:颜昕:男(1979—),民族: 汉, 研究生, 控制理论 与控制 工程专业;赵 英凯: 男, ( 1943- ) ,民族 : 汉,教 授, 博导,研究领域: 智能控制, 神经网络以及过程控制。 Biogr aphy:Yan Xin,male(1979- ),master,Major:Theory of Control and Engineering of Control. (21009 江苏南京市南京工业大学 自动化学院)颜昕 赵英凯 窦东阳 通讯地址:(21009 江苏南京市南京工业大学 自动化学 院)颜昕 (收稿日期:2006.5.28)(修稿日期:2006.6.26) 《 PLC 技术应用 200 例》 邮局订阅号: 82-946 360 元 / 年 - 285 -
分享到:
收藏