时间触发协议(TTP)环境中的时钟同步 【技术领域】
本发明涉及用于监视和管理具有若干通信节点的通信系统内数据业务的方法和电路装置,使用其有可能通过自治媒体访问控制来操作通信系统。
背景技术
将定时通信协议推荐用于例如在汽车工业内使用的分布式实时计算机系统。这种通信程序例如描述在S.polenda和G.Kroiss的“TTP:‘Drive by Wire’ingreifbarer Nhe”Elektronik,1999年第14期,第36至43页和J.Berwanger等人的“FlexRay-The Communication System for Advanced Automotive ControlSystems”,SAE World Congress 2001中。在这些系统中,媒体访问控制基于时分复用方法,例如带有在系统设计过程中事先定义的静态通信时间表的TDMA(时分多址)。该时间表为每个通信节点定义了它在通信周期内可以发送数据的时间。在这种类型的定时通信协议中,在没有采取进一步保护措施的情况下,可能会发生单个的故障节点(也称作“喋喋不休的白痴(babbling idiot)”,它总是在分配的时隙之外发送)阻塞整个数据业务。
为了防止这种情况,通常通过用于例如在1998年6月德国慕尼黑的第28届容错计算国际年度讨论会上C.Temple的“Avoiding the Babbling-Idiot Failure ina Time-Triggered Communication System”描述的所述协议地总线监视器来保护到传输媒体的访问。总线监视器具有独立的时间基础,并安装有调度表,这允许仅在为通信节点预留的时隙期间和在这些时隙之前与之后的短暂容差区域期间写访问媒体。如果总线监视器建立通信节点正在试图在为其预留的时间周期之外写入数据总线,它停止此访问,报告错误状态,并永久地阻塞这个通信节点进一步的总线访问。因而,该总线监视器确保了通信节点的故障静寂(fail-silent)特性。
在原理上,分布式装置内的每个通信节点都可以装备它自己的总线监视器,但是在星形网络的情况下,也可能使用具有中央总线监视器的解决方案;该中央总线监视器监视连接到星形耦合器的所有节点的通信。例如,可以在WO01/13230A1中找到这种类型的中央总线监视器的详细描述。
位于分布式装置中通信节点内的通信控制器和总线监视器应当尽可能地相互独立操作,但是它们的通信时间表在初始化期间至少一次进行同步。通常,此同步另外在固定的时间间隔上进行重复,例如在每个通信周期的开始时重复一次。在使用在通信节点内分散结构中的总线监视器的解决方案的情况下,可借助于来自通信控制器的合适控制信号轻易地实现这样的同步。为了在分布式装置中相互同步通信控制器,通常使用用于全局时钟同步的算法。使用总线监视器和通信控制器之间接口的合适设计,分散装置中总线监视器也可以遵循用于全局时钟同步的校正。
在包括有源网络耦合器(下文中称作有源星形耦合器)的星形网络的情况下,通信节点通常经点到点连接而连接到星形耦合器。由通信节点发送的数据借助于星形耦合器内的分布单元传送到所有其它的通信节点。除了数据线路之外,中央总线监视器应当不再需要其它的到将要被监视的通信控制器的连接。因此,必须以不同于在分散装置内总线监视器情况下的方式来执行总线监视器与所连接的通信控制器的同步。一种推荐的选择是集成中央总线控制器与分配的通信控制器。这个通信控制器可主动地同步它自身与网络内的其它通信控制器,并通过预定义的时隙发送诸如状态信息的数据。由于在空间上临近,有可能借助于合适的控制线路来同步中央总线监视器与这个通信控制器的通信时间表。这种方法的缺点是严重依赖于这个通信控制器的正确起作用。
【发明内容】
本发明的一个目的是提供一种上述类型的方法,其中中央总线监视器与分布式装置内通信节点的时分复用图解(schematic)和全局时钟时间同步。还将规定一种能够用于实现根据本发明的方法的电路装置。
这个目的通过在权利要求1中要求保护的方法和在权利要求7中要求保护的电路装置来实现。根据本发明的方法和根据本发明的电路装置的有益实施例是相关从属权利要求的标的物。
根据本发明的用于监视和管理具有若干通信节点的通信系统内数据业务的方法,所述通信节点通过由总线监视器监视的接口进行通信,该方法包括下述步骤:
a)提供用于所有通信节点的预定义通信时间表;
b)初始化总线控制器;
c)同步总线监视器的通信时间表与由分布式装置中的通信节点执行的预定义通信时间表,根据在接口上观察到的活动进行同步;
d)由总线监视器监视通信节点的活动;
e)比较所述活动与预定义通信时间表;
f)停止所述接口用于一通信节点,其中对于该通信节点已经检测到与预定义通信时间表不兼容的活动。
总线监视器监视在所有星形接口上的活动,并使用它自己的通信图解来控制所有通信节点到分布单元的访问。
在此“活动”应当理解为从“不活动”到“活动”和从“活动”到“不活动”的状态转变。对这些状态转变或活动的观察引起通信节点的通信时间表的监视、与总线监视器的预定义通信时间表的比较、以及用于中央总线监视器的预定义通信时间表与分布式装置中通信节点的通信时间表的同步。与公知的解决方案相反,因为不需要所接收数据分组的解码,根据本发明的方法可用于使用大多数不同编码方法的通信系统。
总线监视器可以联合地监视用于所有连接的通信节点的通信时间表。此外,或者作为选择,可具体比较在特定接口上观察到的活动与用于连接到此接口的通信节点的通信时间表。以这种方式,甚至在完成总线监视器的同步之前,可识别出例如正在所有时隙内发送数据的通信节点的不正确的行为。根据计划使用的要求,随后可在较早的级别上停用相关接口,这甚至可防止系统启动的干扰。在其中总线监视器的保护功能在开机之后必须保持停用直到已经同步总线监视器和通信节点或它们的通信控制器的通信时间表的通信系统中,这个特性特别重要。
在初始化阶段中,在一些情况下,通信控制器的活动将尚未符合预定义的通信时间表。例如,因为各个通信控制器仅仅在延迟之后集成到网络内或者必需解决媒体访问冲突,可能出现矛盾。在此周期期间,总线监视器允许通过通信控制器的持续写访问,并将其自身限制到活动的观察。连续地比较所观察的活动与作为用于总线监视器的通信时间表一部分的同步模式。
如果使用根据本发明的中央总线监视器来监视活动,则不需要附加的通信控制器用于其控制,所以免除了一种可能的错误源。
可以使用各种方法来进行中央总线监视器内通信时间表的同步。例如,如果在定义通信时间表时使用诸如SOC(周期的开始Start of Cycle)帧的不同长度的具体符号或数据分组来识别通信周期的开始,则这些数据分组可以被轻易地识别,并用于同步。这种类型的特殊数据分组并不一定必须定位在通信周期的开始时,但是清楚分配给通信周期内的已知时刻必须是可能的。进一步的选择是使用预定义序列的数据分组来识别通信周期内的已知时刻。
此外,总线监视器与符合分布式装置中通信控制器理解的通信系统的全局时钟时间的连续同步是必需的。
在星形接口上由活动检测器识别出的“不活动”到“活动”或“活动”到“不活动”的状态转变也用于总线监视器的这种时钟同步。在大多数的时间控制通信协议中,用于数据分组开始的时刻适合于作为时钟同步的基准。这个时刻可由总线监视器识别为从“不活动”到“活动”的状态转变。在通信时间表同步之后,总线监视器可以借助于其本地时钟预先计算期望用于识别数据分组起点的状态转变的时刻。此外,它可以定义期望窗口,此窗口定义围绕其中状态转变被视为允许的数据分组的开始时刻的期望时刻的区域。
对于每个接收到的数据分组,总线监视器确定期望的和实际观察到的状态转变之间的偏差。独立地为所连接的每个通信节点确定这个偏差,并将其用于校正总线监视器的本地时间。在最简单的情况下,以这样的方式执行所述校正,即在每个数据分组抵达所计算的期望窗口内时,匹配本地时间与观察到的时刻。然而,这种方法的一个缺点在于具有缺陷本地时钟的通信节点将直接影响总线监视器的本地时间。如果在校正中包含多个通信节点的数据分组开始时刻的所测量的偏差,则可以实现总线监视器本地时间的容错校正。随后,可以将已知的算法用于全局时钟同步。
通信控制器相互之间的同步通常借助于用于全局时钟同步的公知方法来实现,例如在1995年9月13日至15日德国Bad Neuenahr的第14届可靠分布式系统研讨会上的论文集中H.Kopetz等人的“A synchronization strategy for a time-triggered multicluster real-time system”中描述的。
在初始化之后,中央总线监视器必须保持被停用,从而允许发送的所有数据分组的未保护传输,直到其通信时间表与分布式装置中的通信节点的通信时间表同步为止。仅在已经实现同步时,例如通过分布单元,仅根据预定义通信时间表,总线监视器才开始从一个发送通信节点向另一个节点传送数据分组。
本发明还描述了一种用于监视和管理具有若干通信节点的通信系统内的数据业务的电路装置,所述通信节点通过接口相互通信,该电路装置包括:
-至少一个带有连接的通信节点的有源星形耦合器,提供用于所有通信节点的预定义通信时间表;和
-中央总线监视器,连接到有源星形耦合器,在总线监视器的初始化之后,总线监视器的通信时间表与由分布式装置中的通信节点执行的预定义通信时间表同步,所述同步基于在接口上观察到的活动进行,此总线监视器监视通信节点的活动,比较所述活动与预定义通信时间表,并停止该接口用于一节点,其中对于该节点,已经检测到与预定义通信时间表不兼容的活动。
每个接口最好装备有至少一个活动检测器。如果用于星形耦合器内定向控制的接口装备有活动检测器,则可以利用这个事实。
可以提供将从一个通信节点接收的信号传送给其它通信节点的分布单元,但这并不是绝对必需的。
还可以设置以便可以使用用于总线监视器的活动检测器,它监视有源星形耦合器内星形节点的活动。随后,在此仅可利用与状态改变时刻有关的信息。然而,总线监视器不能识别出活动到接口的分配。该实施例的优点在于它还可以使用总线驱动器来实现,该总线驱动器并未使任何活动信号可利用。
在具有有源星形耦合器的星形网络的情况下,总线监视器可以有利地与有源星形耦合器组合,以形成一个单元。通过使用根据本发明的方法可以降低这种类型的具有集成总线监视器的有源星形耦合器的成本和空间要求。
当使用根据本发明的至少一个电路装置时,总线监视器允许所连接的通信节点仅根据它自己的通信时间表访问诸如有源星形耦合器的分布单元。如果在具有有源多星形拓扑结构的时间控制通信系统内使用若干电路装置,则这还包括有源星形耦合器之间的通信。例如在汽车和航空工业中可以发现应用的领域。
【附图说明】
将参考在附图中图示的实施例进一步描述本发明,然而,本发明并不限制于此。
图1图示根据本发明的带有总线监视器的有源星形耦合器的实施例;
图2图示类似于图1的实施例,但是没有分布单元;
图3图示带有用于总线监视器的附加活动检测器的另一个简化实施例;
图4图示通信时间表的一个例子;和
图5图示通信时间表的另一个例子。
【具体实施方式】
图1图示带有通信节点10、20和30的有源星形耦合器的实施例,所述通信节点通过分配的双向总线驱动器12、22和32连接到星形点40,并连接到分布单元50,此分布单元50分布所接收的数据。每个总线驱动器12、22和32包括利用放大器AS和AE以普通方式实现的发送路径和接收路径。分布单元50例如可以作为“有限状态机”以数字形式来执行。连接到总线驱动器12、22和32及分布单元50的是总线监视器60,主控制器70连接到总线监视器60,用于控制和配置总线监视器60。每个总线驱动器12、22、和32装备有活动检测器14、24和34,它连接在相关总线驱动器12、22和32的接收路径内,以便它可以识别在接收路径上的活动,并将它们报告给总线监视器60。在所图示的基本状态中,所有的总线驱动器12、22和32作为接收机操作,并且总线监视器60允许通信节点的连续写访问。如果来自所连接的通信节点10、20或30例如来自节点30的数据现在抵达接口之一,则相关的活动检测器34将此报告给分布单元50。这个单元随后控制其它总线驱动器10、20内的开关S2,以便将它们切换到发送。这使得能够分布所接收的数据到通信节点10和20。分布单元50可以识别从多个接口同时报告的活动中的媒体访问冲突,并可以例如通过优先权控制来予以解决。有源星形耦合器的这个基本功能由总线监视器60辅助,以实现它平谷来自各个总线驱动器的活动信号的效果,并借助于开关S1,可通过控制线允许或拒绝所连接通信节点的写访问。
图2图示未装备分布单元的另一个实施例。每个总线驱动器12、22和32提供有用于所接收信号的活动检测器14、24和34,和用于所发送信号的活动检测器16、26和36。在所图示的开关位置上,对于所接收的数据分组,由活动检测器14首先检测在一个接口上的活动,并在短暂延时之后,也由活动检测器16检测。在从星形点向接口发送信号的情况下,仅由活动检测器16检测活动。根据这两个活动信号在时间中的状态和变化,在该图中用18、28和38表示的控制单元推导出用于改变开关S2方向的控制信号。这种类型的控制信号从尚未公开出版的专利申请......(ID 605940“Active star without data loss”)中获知。如图1所示的实施例,总线监视器60从所有的总线驱动器12、22和32接收独立的活动信号,并通过每次总线驱动器内的开关S1的操作来控制通信节点10、20和30的写访问。
图3图示另一种实施例。总线监视器60配备有它自己的活动检测器62,用于监视在星形点40上的活动。与图1和图2所示的电路装置相反,在此仅可利用与状态改变时刻有关的信息。活动到接口的分配不能由总线监视器60识别。然而,根据本发明的方法现在可以利用并不使任何活动信号可利用的总线驱动器来实现。
借助于来自活动检测器的信号,总线监视器60接收与在星形耦合器的数据输入上当前观察到的状态“活动”或“不活动”有关的信息。它可以据此确定用于状态转变的时刻,并进而确定发送数据分组的时刻和持续时间。在图1和图2所示的实施例中,将来自节点10、20和30的每个接口的活动信号馈送给总线监视器60。因此,它可以一起比较在各个接口上的活动以及所有活动和其预定义通信时间表。这个通信时间表也可以经通信接口80由主控制器70传送给总线监视器60,或在使用简化的电路装置时可存储在总线监视器60的只读存储器例如ROM或FLASH中。
将参考图4和图5描述通信周期的同步的选择。
图4图示精确地提供一个数据分组的通信时间表的例子,该数据分组的长度不同于所有其它数据分组的长度。只要总线监视器根据其长度识别出这个数据分组,它就可以同步它的通信时间表。现在没有必要知道如何将数据分组分配给星形接口。在所图示的例子中,SOC符号的持续时间不同于所有其它数据分组的持续时间。在通信周期开始时周期地发送SOC符号。结果,能够防止因随机低频干扰产生的不正确同步。为此,在通信周期结束时,总线监视器定义SOC期望窗口,并且不执行其本地时钟的同步,直至在这个窗口内再次识别出SOC符号的开始。
图5图示提供常规数据分组序列的通信时间表的一个例子,包括将它们分配给星形接口,这些数据分组仅在时分双工帧内出现一次。应当选择这个序列,以使得它不能够与出现的其它序列混淆,即使属于这个序列的数据分组之一丢失也不能够混淆,从而甚至在通信节点故障时也能够同步。通过例子,图5包含用于同步的序列:帧2-帧3-帧4。
所描述的两种选择的组合有助于提高同步的可靠性。
总线监视器可将所观察到的在数据线路上活动的时刻存储完整的通信周期的时长,并且然后在第二步中通过比较或相关这些时刻与通信时间表来确定正确的同步。
只要所观察到的通信节点的活动与预定义同步模式或同步符号毫无疑义地一致,则总线监视器可同步它的通信时间表。仅在此之后,它才执行它的实际保护功能,并借助于总线驱动器内的开关S1,允许由通信节点仅根据它自己的通信时间表进行写访问。
如果通信节点在根据总线监视器的通信时间表用于该通信节点的时隙之外发送数据,则开关S1阻止到分布单元的访问。借助于来自活动检测器的信号,总线监视器可识别出这样的时间表的违反,并将其报告给主控制器。根据此应用,主控制器可以独立地阻止具有不正确时间行为的通信节点的访问,或者可以将此故障报告给更高层的诊断单元,该诊断单元随后例如启动故障通信节点的重置。
如上所已经解释的,除了总线监视器与所连接的通信节点的通信时间表的同步之外,还必须确保总线监视器的本地时钟与通信节点的本地时钟的同步,以及这些节点彼此同步。