欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PDF文档下载
     

    IEEE_1588协议.pdf

    • 资源ID:8571031       资源大小:658.62KB        全文页数:45页
    • 资源格式: PDF        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    IEEE_1588协议.pdf

    IEEE 1588协议 基础篇 Contents 一、时钟同步模型 二、消息字段 三、数据集 四、数据类型 一、时钟同步模型一、时钟同步模型 IEEE 1588 又叫网络化测量及控制系统的精确时钟 同步协议,PTP(精 确时钟协议),使用硬件和软件配合,不需要额外的 时钟线,仍然使用原 来以太网的数据线传送时钟信号,使组网连接简化和 降低成本。 1.1 PTP消息类型消息类型 分为两类:事件消息、普通消息。事件消息是在发 送和接收端都要打精 确的时间戳,普通消息不需要打时间戳。 (1)事件消息:SYNC、Delay_Req、Pdelay_Req、 Pd lR 1.2 消息时间戳的产生消息时间戳的产生 当发送和接收任何事件消息时,都会产生时间戳。 当消息的时间戳点经 过节点与网络的边界时,时间戳事件发生,时间戳产 生模型如下图所示: 上图中ABC为打时间戳的点这个点越靠近 1.3 两种同步机制两种同步机制 ? 延时请求响应机制(Delay Request-Response Mechanism) ? 对等延时机制(Peer Delay Mechanism) (1)延时请求响应机制 使用Sync、Delay_Req、Follow_Up,Delay_Resp消息进行消息 同步,测量 一对PTP端口的,模型为 () () 21 43 2143 2143 ()2 ()2 ttDelayOffset ttDelayOffset Delaytttt Offsettttt =+ = =+ = 在算法校正过程中,对从时钟的校正是通过校正offset实现的,Delay通 常影响Offset的值,因此要通过测量这个延迟值来修正Offset。 (2)对等延时机制 对等延时机制用来测量端到端传输时间,如支持对等延时 机制的通信端口的链路延时。用Pdelay_Req, Pdelay_Resp,Pdelay_Resp_Follow_Up消息进行同步。 对于普通和边界时钟,对等延时机制与端口是master还是 slave没有关系。 () 2143 ()2meanPathDelaytttt=+ 1.4 设备类型设备类型 有5中基本的设备类型 (1)普通时钟(Oridinary clock) (2)边界时钟(Boundary clock) (3)端到端透明时钟(End-to-end transparent clock) (4)对等透明时钟(Peer-to-Peer transparent clock) (5)管理节点(Management node) 普通和边界时钟的端口,两种机制都可以使用,端到 端透明时钟与这两个 机制无关,对等透明时钟使用对等延时机制。 (1)普通时钟 通过以一个物理端口为媒介的两个逻辑接口和网络通信,事 件接口用来发 送和接收事件消息,包括两类数据集,分别是时钟数据集和 端口数据集。 端口数据集包含端口属性,包括PTP状态。 Protocol engine: (1)发送和接收PTP消息 (2)维护数据集 (3)执行与端口相关的状态机 (4)如果端口在slave状态,基于接收到的PTP 定时消息和产生的时 间戳,计算Master的时间。 Local clock: 当普通时钟端口在slave状态时,本地时钟的控制 环路调节时钟,使它 的时钟与它的主一致。如果端口在master状态,本 地时钟在freerun状态 (2)边界时钟 边界时钟模型如图所示,有多个物理端口,每个端 口和一个普通时钟的端 口类似,但有一些例外: 1)时钟数据集对边界时钟的所有端口共用; 2)local clock也对边界时钟的所有端口共用; 3)每一个协议引擎需要附加功能,它需要处理所有 端口的状态,决定 利用哪个端口提供的时间信号来同步本地时钟。 与同步、建立主从层次和信令相关的信息终止在一 个边界时钟的协议引 擎,不再向前转发,管理消息由边界时钟的其它端口 转发,服从限制一个系 统的消息传输时间的约束 (3)End-to-End透明时钟 设备模型如图所示,像一个网桥、路由器和转发器一样,端 到端透明时钟 发送所有的消息。对于PTP事件消息,驻留时间桥测量PTP事件 消息的驻留 时间。驻留时间在一个特殊的域correctionField累积。这些校 正是当事件消 息进入和离开透明时钟产生的时间戳的不同。校正值计算如下 图所示 注意注意用来计算驻留时间的时间戳是基于本地时间产 a)RC(Rate Control) 利用延时请求响应机制校正本地时钟频率等于 master的时钟频率。这个方 法的关键是它的操作是一个闭环,这意味着在一个节 点的本地振荡器调节会 影响下面的节点。 b) RE(Rate Estimation) 不控制本地振荡器,让其自由运行,用本地时间计 算的驻留时间加到Sync 或者Follow_Up消息中,比较接收到的sync和 Follow_Up的驻留时间,计算本 地自由运行时钟与上一级时钟之比。 当驻留时间相对于时钟比值的足够大,一连串透明 时钟的最差相位误差累 (4)Peer_to_Peer 透明时钟 设备模型如图所示,与End_to_End透明时钟不同在 于:它校正和处理 PTP定时消息的方式上。对等透明时钟有一个block, 这个block用来计算每 个端口与其它端口的链路延时。通过交换 Pdelay_Req,Pdelay_Resp和 Pdelay_Resp_Follow_Up消息来计算。 对等透明时钟和链路延时的校正模型如下图所示。 (5)管理节点 管理节点的设备特征是: a)可以有一个或者多个物理连接连接到网络中; b)PTP管理消息的手动或可编程接口。 c)能结合所有的时钟类型。 1.5 同步 在协议的执行过程中又来那个阶段: (1)建立主从层次; (2)同步时钟 1.5.1 建立主从层次建立主从层次 PTP的状态有:Master、Slave和Passive。利用最佳主时 钟算法来找最好的时 钟,包含两个独立算法:(1)数据集比较算法 (2)状态决策算法 ? 数据集比较算法以下列这些优先属性比较算法: (1)priority1:用户可配置的指定,指这个时钟是否是固 定的可选时钟; (2)clockClass:详细说明时钟的TAI可跟踪性属性; (3)clockAccuracy:定义一个时钟精度的属性; (4)offsetScaledLogVariance:定义时钟稳定性属性; (5)Priority2:是否是备选的主时钟; (6)clockIdentity:基于独特标志符的附加表示规则。 最佳主时钟算法清楚地选择两个时钟中的一个更优。 简单的主从层次如下图所示: 只有普通和边界时钟维持这种状态形式,同时也只有边界时钟能在主从层次中建立分 支点。 二、消息字段 PTP协议根据发送和接收到的消息来计算时间偏 差和延迟,每个消息都 由一个消息头(header),消息体(body)和消息 后缀(suffix)组成。 2.1 消息头消息头 2.1.1 transportSpecific(Nibble) 根据传输的媒介有不同的说明。 2.1.2 MessageType(Enumeration4) 2.1.3 versionPTP(UInteger4) 是发送消息节点的数据集portDS.versionNumber的值。 2.1.5 domainNumber(UInteger8) 此消息的发出节点不同,domainNumber的值不同。 2.1.6 flagField(Ocet2) 一些标志位,表示的意义如下表 2.1.7 correctionField(Integer64) 它的值是ns数诚意216,如2.5ns表示成 0 x0000000000028000,它的值依赖于消息 类型 2.1.8 sourcePortIdentity(PortIdentity) sourcePortIdentiy的值是发送消息端口数据集的 portDS.portIdentity的值。 2.1.9 sequenceId(UInteger16) 除了Follow_Up、Delay_Resp、Pdelay_Resp、 Pdelay_Resp_Follow_Up、 management消息外,所有的消息都有sequenceId序列池,对 于从同一个时钟的同 一个端口发出同一个消息,后一个消息的sequenceId是前一个 的值1,采用循环计 数的方式。 2.1.10 controlField(UInteger8) 主要是为兼容V1版本而设置的一组值,接收方不使用这组消 息。 2.1.11 logMessageInterval(Integer8) 的值决定于消息类型如 2.2 Announce 消息域如表: 2.2.1 originTimestamp(Timestamp) 当Announce消息发送时,这个的值置为0或者是与发送节点 的本地时间相差在 1s之内。 2.2.2 currentUtcOffset 2.2.3 grandmasterPriority1(UInteger8) 发送节点数据集成员的parentDS.grandmasterPriority1的值。 2.3.4 grandmasterClockQuality(ClockQuality) 发送节点数据集成员的parentDS.grandmasterClockQuality的 值。 2.3.5 grandmasterPriority2(UInteger8) 发送节点数据集成员的parentDS.grandmasterPriority2的值。 2.3.6 grandmasterIdentity(ClockIdentity) 数据集成员的parentDS.grandmasterIdentity的值。 2.3.7 stepsRemoved(UInteger16) 发送消息的时钟数据集的currentDS.stepsRemoved的值。 2.3 Sync和Delay_Req消息 2.3.1 originTimestamp(Timestamp) 对于Sync消息,当为One-step时钟时,OriginTimestamp的 值应该是Sync的 ,不包括小数ns,Sync消息 correctionField的值和 originTimestamp的值应该是真实的 。当为Two- step时钟时,originTimestamp的值还是 ,不包括小 数ns,但是correctionField的值是0,由对应的Follow_Up消息 来表示 2.4 Follow_Up消息 2.4.1 preciseOriginTimestamp(Timestamp) Follow_Up消息的preciseOriginTimestamp是与对应的Sync 消息的,Follow_Up消息和 Sync消息的correctionField 的和与preciseOriginTimestamp相加,就是同步消息发送的精确 时间。 2.5 Delay_Resp消息 2.6 Pdelay_Req消息 注意:这里的reserved域是为了使得Pdelay_Req消息的长度 等于Pdelay_Resp消 息的长度,因为在一些网络或者网桥中,长度不同的消息有不 同的传输时间,这样 会引来不对称误差。 2.7 Pdelay_Resp消息 2.9 管理消息 2.9.1 domainNumber of the header domainNumber应该是目标domain 2.9.2 sequenceId of the header 如果是一个响应management消息,sequenceId是接收到的 管理消息的 sequenceId,否者也有一个序列池。 2.9.4 startingBoundaryHops(UInteger8) 对于非响应的管理消息,startingBoundaryHops是依情况变 化的。对于响应的管理 消息,它的值是startingBoundaryHopsboundaryHops。 2.9.5 boundaryHops(UInteger8) 指管理消息在边界时钟的剩下需连续转发数量。 2.9.6 actionFiled(Enumeration4) 5FReserved 4ACKNOWLEDGE 3COMMOND 2RESPONSE 1SET 0GET Value(hex)Action 三、数据集 普通和边界时钟应该维护的数据集有: (1)defaultDS (2)currentDS (3)parentDS (4)timePropertiesDS (5)portDS 透明时钟应该维护的数据集: (1)transparentClockDefaultDS (2)transparentClockPortDS 数据集有三种属性:分别为staticdynamic 3.1 defaultDS数据集成员说明 defaultDS数据集是描述时钟本身的属性。成员有 -defaultDS.twostepFlag - defaultDS.clockIdentity - defaultDS.numberPorts - defaultDS.clockQuality - defaultDS.priority1 - defaultDS.priority2 - defaultDS.domainNumber - defaultDS.slaveOnly 前三个是静态数据成员 defaultDS.clockQuality是动态成员,包括: (1)defaultDS.clockQuality.clockClass (2)defaultDS.clockQuality.ClockAccuracy (3)defaultDS.clockQuality.offsetScaledLogVariance 这三个数据成员都是时钟自己的属性。 3.2 currentDS数据集成员说明 数据成员都是动态的,包括的成员有: (1)currentDS.stepsRemoved 指的是在本地时钟和grandmaster时钟之间通信路径的数 量。 (2)currentDS.offsetFromMaster = (3)currentDS.meanPathDelay 按照两种机制算出来的路径延迟。 3.3 parentDS数据集说明 parentDS数据集的初始化应该在defaultDS数据集初始化之 后,它的所有成员都是 动态的。 数据集成员有: (1)parentDS.parentPortIdentity 指的是发送Sync消息的Master的PortIdentity,初始化值应该 遵循: a)parentDS.parentPortIdentity.clockIdentity的值是 defaultDS.clockIdentity的值。 b)parentDS.portNumber的值初始化为0。 (2)parentDS.parentStats 如果时钟有一个端口是Slave状态,并且统计地计算出了 parentDS.observedParentOffsetScaledLogVariance和 parentDS observedParentClockPhaseChangeRate的值时 (4) parentDS.observedParentClockPhaseChangeRate 以从时钟来观察的parent时钟的相位变化率估计,正值表示 parent时钟的相位变 化率大于slave时钟的相位变化率。初始化值为7FFFFFFF。 注:这个值依赖于测量时间间隔,如果这个值对一个应用来 说确实有用,时间 间隔应该在PTP协议中说明。 (5)parentDS.grandmasterIdentity 它是grandmaster时钟的clockIdentity。初始化值为 defaultDS.clockIdentity。 (6)parentDS.grandmasterClockQuality (7)parentDS.grandmasterPriority1 (8)parentDS.grandmasterPriority2 5678都是grandmaster的对应的值初始化时都初始化成 3.4 timePropertiesDS数据集成员说明 timePropertiesDS数据集成员有: (1)timeProtertiesDS.currentUtcOffset (2)timeProtertiesDS.currentUtcOffsetValid (3)timeProtertiesDS.leap59 (4)timeProtertiesDS.leap61 (5)timeProtertiesDS.timeTraceable (6)timeProtertiesDS.frequencyTraceable (7)timeProtertiesDS.ptpTimescale (8)timeProtertiesDS.timeSource currentDS数据集的所有成员都是动态的。 timeProtertiesDS.ptpTimescale的值应该在其它数据集成员初 始化之前进行初始 化。 3.5 portDS数据集成员说明 对普通时钟的端口和边界时钟的每个端口,应该维护端口数 据集来给协议决策和提 供消息域的值作为基础。数据集的数量应该是 defaultDS.numberPorts的值。 静态成员有: (1)portDS.portIdentity 这个值就是本地端口的PortIdentity属性。 动态成员有: (1)portDS.portState:值与状态的对应关系如下表所示 (2)portDS.logMinDelayReqInterval 指的是Delay_Req消息最小允许的平均时间间隔,这个值是 slave发个master,这 个的值视master时钟能处理的Delay_Req消息的能力来确定。 (3)portDS.peerMeanPathDelay 如果时钟是peer-to-peer时钟,这个的值硬挨链路上的当前单 路传输延迟的估计。 可配置成员有: (1)portDS.logAnnounceInterval 这个值说明Annouce消息发送的时间间隔。 (2)portDS.announceReceiptTimeout portDS.announceReceiptTimeout的值指发出 ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES时,没有收到 Announce消息的个数。 (3)portDS.logSyncInterval 指的是Sync消息的时间间隔 四、数据类型 数据类型有源数据类型和衍生数据类型,衍生数据类型都是 由源数据类型构成的。 4.1 源数据类型 4.2 衍生数据类型 (1)时间间隔类型描述TimeInterval struct TimeInterval Interger64 scaledNanoseconds;/单位是2-16ns。 (2)时间戳类型描述Timestamp struct Timestamp UInteger48 seconds; UInteger32 nanoseconds; (3) ClockIdentity typedef Octet8 ClockIdentity; (4)PortIdentity struct PortIdentity ClockIdentity clockIdentity; (5)PortAddress 表示PTP端口协议地址 Struct PortAddress Enumeration16 networkProtocol; UInteger16 addressLength; OctetaddressLength addressField; (6)时钟质量 struct ClockQuality UInteger8 clockClass; Enumeration8 clockAccuraccy; Integer16 offsetScalelogVariance; (7)TLV扩展 struct TLV (8)PTP Text 用来表示PTP消息的文本材料 Struct PTPText UInteger8 lengthField; OctetlengthField textField; (9)FaultRecord 用来组成错误纪录 UInteger16 faultRecordLength; Timestamp faultTime; Enumeration8 severityCode; PTPText faultName; PTPText faultValue; PTPText faultDescription; Back Back Back Back Back

    注意事项

    本文(IEEE_1588协议.pdf)为本站会员(大张伟)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开