同步模块的制作方法

文档序号:7950159阅读:164来源:国知局
专利名称:同步模块的制作方法
背景技术
在分布式通信系统或数据处理系统中,对其系统组件的时间同步有着很高的要求。这些组件的时钟发生器通常通过经由异步网络交换具有时间戳的数据分组来相互同步,或与通过该异步网络可达的参考时钟发生器同步。
作为通过异步网络对时钟发生器进行节拍同步以及相位同步的协议,目前一般偏好使用在IEEE 1588(IEEE电器和电子工程师协会)标准中定义的所谓PTP协议(PTP精确时间协议)。该标准使得可以原则上达到非常高的同步精度。但对达到该同步精度的硬件要求在这些标准的当前版本中,即日期为2002年11月8日的“IEEE Std1588TM-2002,IEEE Standard for a Precision Clock SynchronizationProtocol for Networked Measurement and Control Systems”中未明确描述。
以下对该标准的引用涉及上述版本,其特定的公开内容包括在本文件中。
迄今可达到的同步精度特别是由于在通过软件实现的IEEE 1588协议栈设置和读取时间戳时产生的所谓软件抖动而受到限制。软件抖动主要是由于负责的协议例程的不稳定的处理流程造成的,该处理流程通常由操作系统通过多个所谓的中断而中止。在IEEE 1588标准框架内该软件抖动还被称为“协议栈延迟波动”。实践中表明,以这种方式仅能达到数量级在1μs至100μs的同步精度。
尽管借助PTP协议的硬件实现原则上可以达到较高的同步精度,但这样的硬件实现也带来数倍高的成本。

发明内容
因此本发明要解决的技术问题在于,提供一种具有按照IEEE 1588标准的PTP协议实现的同步模块,通过该同步模块可以比较小的成本实现更高的同步精度。
本发明的技术问题通过具有权利要求1特征的同步模块实现。
本发明的优选实施方式以及扩展由从属权利要求给出。


以下借助附图详细描述本发明的实施例。在此分别以示意图示出图1为示出不同的时间戳点及其延迟时间的图;以及图2示出按照本发明的同步模块。
具体实施例方式
图1示出用于说明不同时间戳点及其延迟时间的、公知的IEEE1588TM-2002标准文件6.2.4章中的图。其中示出的消息时间戳点是诸如图1所示的PTP协议的Sync消息和Delay_Req消息的同步消息的识别特征。当相关消息穿过按照PTP协议的时钟时间戳点时,可以识别消息时间戳点。图1示出沿虚线箭头穿过针对所到达的数据分组的PTP协议栈的、典型的Sync消息或Delay_Req消息。在图1中通过在一系列前导的“10”位模式之后的第一“11”位模式表示的消息时间戳点,在离开物理传输介质之后经过时间段inbound_latency之后到达时钟时间戳点。上述实施方式也可以有意义地应用到发出同步消息的时间戳和延迟时间上。
图2示意性示出按照本发明的同步模块。按照本发明,在该同步模块中,借助特殊的硬件时间戳模块而不是通过软件来实现IEEE 1588标准的时间关键的部分,即时间戳功能。硬件时间戳模块作为独立的组件实现,并具有特定的接口。而IEEE 1588标准的、安排在OSI参考模型2-7层上的功能相反则通过符合标准的程序模块来实现,该程序模块尤其是产生待发送的同步消息,并为该同步消息配备过后将由硬件时间戳模块来覆盖的时间戳。
硬件时间戳模块具有以下功能块实时时钟RTC具有相应于PTP协议的originTimestamp字段、并因此而具有PTP协议的TimeRepresentation类型的计数变量“秒”和“毫微秒”的32位计数器。
消息检测器MD(用于要发送和接收的同步消息)
消息检测器MD用于识别PTP协议的同步消息标识PTP_SYNC_MESSAGE和PTP_DELAY_REQ_MESSAGE,并可将识别出的同步消息的特定字段存储在中间存储器FIFO中。
对消息标识PTP_SYNC_MESSAGE和PTP_DELAY_REQ_MESSAGE的识别过程如下1.对于标记的帧识别并考虑所谓的标记(tag);2.通过比较串行位流的位模式和以太网帧的特定字段(例如作为PTP消息的所谓事件端口的UDP端口319和字段“control”)来识别PTP_SYNC_MESSAGE和PTP_DELAY_REQ_MESSAGE;3.读取PTP字段“control”和“sequenceId”;4.将该字段存储在中间存储器FIFO中;5.存储在时刻“消息时间戳点”记录的RTC时间戳。
中间存储器FIFO(先进先出存储器)其内容例如为

消息处理器MM消息处理器MM可以改变由消息检测器MD识别出的同步消息的特定字段的值。
对于要发送的同步消息,消息处理器MM可以分别利用在按照图1的时刻“消息时间戳点”有效的、实时时钟RTC的当前时间值来覆盖该同步消息的时间戳字段originTimestamp。然后消息处理器MM计算“UDP checksum(校验和)”字段和Ethernet-CRC字段,并覆盖相应同步消息的这些字段。对时间戳字段和校验和字段的覆盖是“瞬间(on the fly)”完成的,即仅有很小的额外延迟。而在利用软件实现的时间戳功能中,会出现明显的延迟以及不规则的、并由此难以补偿的抖动。
对于要接收的同步消息,可以将IEEE 1588-2002标准进行可选地扩展,使得为SyncMessage和DelayRequestMessage消息设置附加字段“ReceiveTimestamp”。目前正在计划用于增加新字段及新消息的所谓“扩展机制”。附加设置的ReceiveTimestamp字段可以通过消息处理器MM在接收同步消息时利用在按照图1的时刻“消息时间戳点”有效的、实时时钟RTC的当前时间值来描述。然后消息处理器MM计算“UDP checksum(校验和)”字段和Ethernet-CRC字段,并覆盖所接收的同步消息的这些字段。这是“瞬间”完成的,即仅有很小的额外延迟。
在按照本发明的同步模块中,尤其可以通过消息检测器MD和消息处理器MM对实时时钟RTC的直接(硬件)访问来实现这种非常小的时间延迟以及其最大程度的恒定。
消息时间戳点存储器MTP消息时间戳点存储器MTP存储在物理接口的接口组件PHY识别出同步消息的前导的时刻的时间戳。为了触发时间戳的存储,接口组件PHY向消息时间戳点存储器MTP和硬件时间戳模块发送一个信号。一旦消息检测器MD也同样识别出该同步消息,则消息检测器MD就可以将该信号发送并存储在消息时间戳点存储器MTP中的时刻作为确切的时间戳使用。
通过这种设置可以最大程度地避免会由接口组件PHY造成的抖动。
PLL电路PLL(PLL锁相环)实时时钟RTC由时钟信号“本地时钟(local clock)”提供时钟脉冲。该时钟信号可以由外部PLL电路PLL输入。可选地,还可以将PLL电路PLL作为功能块集成在一起。
实时时钟RTC的粗调通过直接设置PTP协议栈中的初始值来进行。实时时钟RTC的微调通过调节PLL电路PLL进行。
对于要通过按照本发明的同步模块发送的PTP同步消息,在同步模块中的流程为通过IEEE 1588程序模块在PTP协议栈中产生要发送的同步消息,并通过层4和3(UDP/IP)传送给MAC层(MAC介质存取控制)。时间戳字段如在迄今的IEEE 1588-2002标准中设置的那样通过IEEE 1588程序模块来填写。在将同步消息通过MII接口(MII独立于介质的接口)从MAC层转发到接口组件PHY时,通过硬件时间戳模块对该同步消息进行解码。如果在此由消息检测器MD识别出Sync消息或DelayRequest消息,则由消息处理器MM用实时时钟RTC的当前高精度时间值来取代由IEEE 1588程序模块设置的时间戳字段。此外还进行校验和“UDP checksum”和Ethernet-CRC字段的更新。
通过硬件时间戳模块直接在消息时间戳点产生图1所示的时钟时间戳点。由此可以将延迟时间“进入延迟”(inbound_latency)和“发出延迟”(outbound_latency)以及协议栈延迟波动降低到非常小的值。
时钟信号“本地时钟”的节拍和相位精度对于所谓的“普通时钟(ordinary clock)”和“边界时钟(boundary clock)”就相对于参考时间源(主时钟)的抖动和最大时间存放(Zeitablage)来说都得到了明显的改善。
下面列出了协议栈延迟波动的典型值与时钟时间戳点的实现之间的关系

通过使可达到的同步精度达到毫微秒级,使得IEEE 1588标准有了众多的新的应用领域。
本发明的其它优点在于,协议栈延迟波动最大程度地与软件的影响无关。这样的软件影响例如由于大的或不稳定的处理器负载、中断截止时间,大的或不稳定的中断频度、变化的处理器性能和/或中断控制器的体系结构而产生。
还特别具有优点的是,协议栈延迟波动最大程度地与其上运行PTP协议的硬件平台(处理器,硬件体系结构)无关。而相反,在将按照IEEE 1588-2002的、其中时间戳模块通过软件(层7或层2)实现的同步模块移植到其它硬件平台上时,协议栈延迟波动会发生很大改变。
通过具有优点地在硬件和软件之间分配功能,即在硬件时间戳模块和IEEE 1588程序模块之间分配功能,可以较小的额外开销实现非常高的同步精度。
如果替代分离的时钟发生器而用与硬件时间戳模块相同的时钟信号“本地时钟”为接口组件PHY提供时钟脉冲,则还可以进一步提高同步精度。以这种方式可以在接口组件PHY和硬件时间戳模块之间产生内在的同步。
按照本发明的同步模块既可以作为单独的ASIC(特定用途集成电路)、FPGA(场可编程门阵列)或CPLD(可编程复杂逻辑器件)使用,也可以作为位传输层(在采用如MDI的寄存器I/F的情况下)组件的组成部分嵌入或作为网络处理器的组成部分使用。
权利要求
1.一种按照IEEE 1588标准的同步模块,用于在要发送的同步消息中按照IEEE 1588标准的PTP协议设置时间戳,具有a)用于产生要发送的同步消息和按照PTP协议在该同步消息中设置第一时间戳的程序模块;b)硬件实现的时间戳模块,用于从该程序模块接管同步消息并根据PTP协议发送该同步消息,其具有-实时时钟(RTC),-消息检测器(MD),用于通过同步消息与其它消息的区别来识别该同步消息,-消息处理器(MM),用于利用由实时时钟(RTC)当前调用的第二时间戳来覆盖由消息检测器(MD)识别出的同步消息中的第一时间戳。
2.根据权利要求1所述的同步模块,其特征在于,所述消息处理器(MM)设置用来为具有所述第二时间戳的同步消息确定当前校验和,并利用该新的校验和来覆盖由程序模块插入同步消息中的校验和。
3.根据权利要求1或2所述的同步模块,其特征在于,所述消息检测器(MD)以及消息处理器(MM)直接与实时时钟(RTC)耦合。
4.根据权利要求1至3中任一项所述的同步模块,其特征在于,具有与所述消息检测器耦合的中间存储器(FIFO),用于临时存储从由该消息检测器识别出的同步消息中提取的同步信息以及与该同步信息相对应的当前调用的时间戳。
5.根据权利要求1至4中任一项所述的同步模块,其特征在于,所述消息处理器(MM)设置用来将由实时时钟(RTC)当前调用的接收时间戳填入到所接收同步消息的相对于IEEE 1588-2002标准来说是附加的字段中。
全文摘要
本发明涉及一种同步模块,用于在要发送的同步消息中按照IEEE1588标准的PTP协议设置时间戳,其具有用于产生要发送的同步消息和在该同步消息中设置第一时间戳的程序模块,以及硬件实现的时间戳模块,该模块从程序模块接收同步消息并根据PTP协议转发。按照本发明,该时间戳模块具有实时时钟(RTC)、用于通过同步消息与其它消息的区别来识别同步消息的消息检测器(MD),以及消息处理器(MM),用于利用由实时时钟(RTC)当前调用的第二时间戳来覆盖由消息检测器(MD)识别出的同步消息中的第一时间戳。
文档编号H04J3/06GK101080889SQ200580043285
公开日2007年11月28日 申请日期2005年11月24日 优先权日2004年12月16日
发明者A·埃里克, S·舒勒 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1