掌桥专利:专业的专利平台
掌桥专利
首页

时间同步方法与时间同步系统

文献发布时间:2023-06-19 11:52:33


时间同步方法与时间同步系统

技术领域

本发明是有关于一种时间同步技术,且特别是有关于一种时间同步方法与时间同步系统。

背景技术

控制器区域网路(Controller Area Network,CAN)是一种总线标准,其可用于车载电子系统或其他产业的电子系统中,以使电子系统中的晶片及/或电子仪器相互通讯。CAN系统中的节点亦称为CAN装置(或CAN总线装置)。多个CAN装置之间可通过双绞线彼此连接以进行通讯。

一般来说,当CAN装置接收到数据包时,此CAN装置会根据装置内建的时钟对接收到的数据包加上一个时间戳,并将此数据包暂存于缓存器中。尔后,外接的电脑装置可以经由通用串行总线(Universal Serial Bus,USB)或以太网等通讯协议来从此CAN装置的缓存器中读取数据包与相关的封包接收时间等信息。但是,在实务上,CAN装置内建的时钟往往与真实时间存在误差,且不同CAN装置的时钟可能也彼此不同步,从而造成应用程序对数据包的接收时间发生误判。

发明内容

本发明提供一种时间同步方法与时间同步系统,可将CAN装置所接收的数据包的接收时间与主机装置的时间进行同步。

本发明的实施例提供一种时间同步方法,其用于控制器区域网路(ControllerArea Network,CAN)系统,所述时间同步方法包括:在所述CAN系统中的CAN装置的测试模式下,建立所述CAN装置与主机装置之间的时间映射关系;在所述CAN装置的正常模式下,从所述CAN装置读取至少一数据包的CAN时间信息;以及根据所述时间映射关系与所述CAN时间信息,记录所述至少一数据包的主机时间信息。

本发明的实施例另提供一种时间同步系统,其包括主机装置与至少一CAN装置。所述至少一CAN装置包括第一CAN装置并耦接至所述主机装置。所述主机装置用以在所述第一CAN装置的测试模式下,建立所述第一CAN装置与所述主机装置之间的时间映射关系。所述主机装置更用以在所述第一CAN装置的正常模式下,从所述第一CAN装置读取至少一数据包的CAN时间信息。所述主机装置更用以根据所述时间映射关系与所述CAN时间信息,记录所述至少一数据包的主机时间信息。

基于上述,在CAN装置的测试模式下,CAN装置与主机装置之间的时间映射关系可被建立。此外,在CAN装置的正常模式下,至少一数据包的CAN时间信息可从CAN装置中读取。根据所述时间映射关系与所述CAN时间信息,所述至少一数据包的主机时间信息可被记录,使得所述至少一数据包的接收时间与主机装置的时间进行同步。

附图说明

图1是根据本发明的一实施例所绘示的时间同步系统的示意图。

图2是根据本发明的一实施例所绘示的建立第一CAN装置与主机装置之间的时间映射关系的示意图。

图3是根据本发明的一实施例所绘示的根据时间映射关系与CAN时间信息,记录数据包的主机时间信息的示意图。

图4是根据本发明的一实施例所绘示的时间同步方法的流程图。

图5是根据本发明的一实施例所绘示的时间同步方法的流程图。

图6是根据本发明的一实施例所绘示的时间同步方法的流程图。

图7是根据本发明的一实施例所绘示的时间同步方法的流程图。

其中:

100:时间同步系统;

10:控制器区域网路(CAN)系统;

11(1)~11(n):CAN装置;

12:主机装置;

21、22、23:时间范围;

PT(1)、PT(2):测试封包;

PN(k):数据包;

TP(1)、TP(2)、TP(k):主机时间信息;

TC(1)、TC(2)、TC(k):CAN时间信息;

r(1)、r(2)、r(3)、r(4):差值;

S401~S403、S501~S505、S601~S603、S701~S703:步骤。

具体实施方式

图1是根据本发明的一实施例所绘示的时间同步系统的示意图。请参照图1,时间同步系统100包括控制器区域网路(Controller Area Network,CAN)系统10与主机装置12。CAN系统10包括多个CAN装置11(1)~11(n)。CAN装置11(1)~11(n)装置彼此之间可通过双绞线连接以相互通讯。

CAN装置11(1)~11(n)中的每一者可包括CAN控制器(例如微控制器)与CAN收发器。CAN控制器用以控制CAN装置的运作,而CAN收发器则可用以从其他CAN装置接收数据包或发送数据包至其他CAN装置。

CAN装置11(1)~11(n)中的每一者可连接至一或多个电子控制单元(ElectronicControl Unit,ECU)。在一实施例中,是设定时间同步系统100与CAN系统10设置于车载系统中。因此,所述ECU可以是用以控制此车载系统中特定车用电子组件的控制器。此外,多个ECU可经由CAN系统10(例如CAN装置11(1)~11(n))彼此通讯。然而,在另一实施例中,时间同步系统100与CAN系统10亦可以设置于其他类型的电子系统中,而不限于车载系统。

主机装置12耦接至CAN系统10。主机装置12可经由通用串行总线(UniversalSerial Bus,USB)或以太网等通讯协定来连接至CAN系统10中的第一CAN装置并与第一CAN装置通讯。例如,主机装置12可为任意类型的电脑装置或电脑主机。例如,主机装置12可包括中央处理单元(CPU)、或是其他可编程的一般用途或特殊用途的微处理器、数字信号处理器(Digital Signal Processor,DSP)、可编程控制器、专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、可编程逻辑装置(Programmable Logic Device,PLD)或其他类似装置或这些装置的组合。

在一实施例中,主机装置12可在第一CAN装置的测试模式下,建立第一CAN装置与主机装置12之间在时间上的映射关系(亦称为时间映射关系)。此时间映射关系可用于将主机装置12的时钟与第一CAN装置的时钟同步。

在一实施例中,测试模式亦称为回授(loopback)模式。当第一CAN装置处于测试模式时,若第一CAN装置接收到来自主机装置12的数据包(亦称为测试数据包),第一CAN装置可直接将此测试数据包回传给主机装置12,而不将此测试数据包发送给CAN系统10中的其余CAN装置。

在一实施例中,主机装置12可在第一CAN装置的正常模式下,从第一CAN装置读取至少一数据包(亦称为数据包)的CAN时间信息。例如,当第一CAN装置从CAN系统10中的其余CAN装置接收到一个数据包时,第一CAN装置可记录其接收到此数据包的时间(即CAN时间信息)。换言之,一个数据包的CAN时间信息可反映第一CAN装置接收到此数据包的时间。第一CAN装置可将所接收到的数据包与相关的信息(例如数据包ID、数据包内容及CAN时间信息)储存于其内部的缓存器。当第一CAN装置处于正常模式时,主机装置12可从第一CAN装置的缓存器中读取数据包以及与此数据包相关的信息(例如所述CAN时间信息)。

在一实施例中,主机装置12可根据所述时间映射关系与所述数据包的CAN时间信息,记录所述数据包的主机时间信息。此主机时间信息是指当第一CAN装置接收到某一数据包时,此时的主机装置12的时钟所指示的时间。换言之,在从第一CAN装置读取的某一数据包的CAN时间信息后,主机装置12可根据所述时间映射关系将此数据包的CAN时间信息转换为当第一CAN装置接收到此数据包时,此时的主机装置12的时钟所指示的时间(即主机时间信息)。

在以下的实施例中,是以CAN装置11(1)作为第一CAN装置的范例。然而,在另一实施例中,第一CAN装置亦可以是指CAN装置11(2)~11(n)中的一或多者。

图2是根据本发明的一实施例所绘示的建立第一CAN装置与主机装置之间的时间映射关系的示意图。请参照图1与图2,在时间范围21内,主机装置12可将CAN装置11(1)设定为测试模式(亦称为第一测试模式)。在第一测试模式下(即时间范围21内),主机装置12可发送测试数据包(亦称为第一测试数据包)PT(1)至CAN装置11(1)。然后,主机装置12可记录测试数据包PT(1)的主机时间信息(亦称为第一主机时间信息)TP(1)与测试数据包PT(1)的CAN时间信息(亦称为第一CAN时间信息)TC(1)。

在一实施例中,当送出测试数据包PT(1)时,主机装置12可记录送出测试数据包PT(1)时的主机时间信息T1(Tx)。例如,主机时间信息T1(Tx)可反映主机装置12送出测试数据包PT(1)的时间。当CAN装置11(1)接收到测试数据包PT(1)时,CAN装置11(1)可记录测试数据包PT(1)的CAN时间信息TC(1)。例如,CAN时间信息TC(1)可反映CAN装置11(1)接收到测试数据包PT(1)的时间。当主机装置12接收到CAN装置11(1)回传的测试数据包PT(1)时,主机装置12可记录测试数据包PT(1)的另一主机时间信息T1(Rx)。例如,主机时间信息T1(Rx)可反映主机装置12接收到测试数据包PT(1)的时间。主机装置12可根据主机时间信息T1(Tx)与T1(Rx)决定主机时间信息TP(1)。例如,主机时间信息TP(1)可等于(T1(Tx)+T1(Rx))/2。在一实施例中,记录主机时间信息TP(1)与CAN时间信息TC(1)的操作类似于建立主机时间信息TP(1)与CAN时间信息TC(1)之间的映射关系。

在记录主机时间信息TP(1)与CAN时间信息TC(1)后,在时间范围22内,主机装置12可控制CAN装置11(1)从第一测试模式切换至正常模式。在CAN装置11(1)的正常模式下(即时间范围22内),主机装置12可从CAN装置11(1)读取至少一数据包的CAN时间信息。

须注意的是,在图2的实施例中,是以读取数据包PN(k)的CAN时间信息TC(k)作为范例。其中,数据包PN(k)是暂存在CAN装置11(1)的缓存器的数据包,且CAN时间信息TC(k)可反映CAN装置11(1)接收到数据包PN(k)的时间。主机装置12可记录数据包PN(k)的CAN时间信息TC(k)。数据包PN(k)的数目可以是一或多个,本发明不加以限制。

在记录数据包PN(k)的CAN时间信息TC(k)后,在时间范围23内,主机装置12可将CAN装置11(1)再次设定为测试模式(亦称为第二测试模式)。在第二测试模式下(即时间范围23内),主机装置12可发送测试数据包(亦称为第二测试数据包)PT(2)至CAN装置11(1)。然后,主机装置12可记录测试数据包PT(2)的主机时间信息(亦称为第二主机时间信息)TP(2)与测试数据包PT(2)的CAN时间信息(亦称为第二CAN时间信息)TC(2)。

在一实施例中,当送出测试数据包PT(2)时,主机装置12可记录送出测试数据包PT(2)时的主机时间信息T2(Tx)。例如,主机时间信息T2(Tx)可反映主机装置12送出测试数据包PT(2)的时间。当CAN装置11(1)接收到测试数据包PT(2)时,CAN装置11(1)可记录测试数据包PT(2)的CAN时间信息TC(2)。例如,CAN时间信息TC(2)可反映CAN装置11(1)接收到测试数据包PT(2)的时间。当主机装置12接收到CAN装置11(1)回传的测试数据包PT(2)时,主机装置12可记录测试数据包PT(2)的另一主机时间信息T2(Rx)。例如,主机时间信息T2(Rx)可反映主机装置12接收到测试数据包PT(2)的时间。主机装置12可根据主机时间信息T2(Tx)与T2(Rx)决定主机时间信息TP(2)。例如,主机时间信息TP(2)可等于(T2(Tx)+T2(Rx))/2。在一实施例中,记录主机时间信息TP(2)与CAN时间信息TC(2)的操作类似于建立主机时间信息TP(2)与CAN时间信息TC(2)之间的映射关系。

图3是根据本发明的一实施例所绘示的根据时间映射关系与CAN时间信息,记录数据包的主机时间信息的示意图。请参照图1至图3,主机装置12可根据主机时间信息TP(1)、CAN时间信息TC(1)、主机时间信息TP(2)、CAN时间信息TC(2)及数据包PN(k)的CAN时间信息TC(k)决定主机时间信息TP(k)。主机时间信息TP(k)可反映当CAN装置11(1)接收到数据包PN(k)时,此时的主机装置12的时钟所指示的时间。

在一实施例中,主机装置12可根据主机时间信息TP(1)、CAN时间信息TC(1)、主机时间信息TP(2)及CAN时间信息TC(2),将CAN时间信息TC(k)映射至主机时间信息TP(k)。在一实施例中,主机装置12可获得CAN时间信息TC(k)相较于CAN时间信息TC(1)与TC(2)的至少其中之一的偏移时间信息。然后,主机装置12可根据主机时间信息TP(1)、主机时间信息TP(2)及此偏移时间信息获得主机时间信息TP(k)。

在一实施例中,主机装置12可根据CAN时间信息TC(1)、TC(2)及TC(k)获得差值r(1)与r(2)。差值r(1)反映CAN时间信息TC(1)与TC(k)之间的时间差(例如r(1)=TC(k)-TC(1))。差值r(2)反映CAN时间信息TC(k)与TC(2)之间的时间差(例如r(2)=TC(2)-TC(k))。差值r(1)及/或r(2)可为所述偏移时间信息。主机装置12可根据差值r(1)与r(2)的比值(或者差值r(1)与(r(1)+r(2))的比值)来在主机时间信息TP(1)与TP(2)之间决定主机时间信息TP(k)。

须注意的是,主机时间信息TP(1)与所决定的主机时间信息TP(k)之间具有差值r(3),且主机时间信息TP(2)与所决定的主机时间信息TP(k)之间具有差值r(4)。差值r(3)反映主机时间信息TP(1)与TP(k)之间的时间差(例如r(3)=TP(k)-TP(1))。差值r(4)反映主机时间信息TP(k)与TP(2)之间的时间差(例如r(4)=TP(2)-TP(k))。差值r(3)与r(4)之间的比值可相同(或实质相同)于差值r(1)与r(2)之间的比值。

在一实施例中,主机装置12可获得主机时间信息TP(1)与TP(2)之间的时间差Td。主机装置12可将时间差Td乘上(r(1)/(r(1)+r(2)))获得差值r(3)。然后,主机装置12可将主机时间信息TP(1)加上差值r(3)以获得主机时间信息TP(k)。须注意的是,主机装置12还可藉由其他的逻辑运算方法来获得主机时间信息TP(k),只要符合上述数值比例之规范即可。

在一实施例中,主机装置12可将所获得的数据包PN(k)的主机时间信息TP(k)藉由主机装置12的显示器呈现。藉此,主机装置12的操作者可以根据主机装置12的显示器所呈现的信息清楚得知数据包PN(k)是在主机装置12的时钟所指示的时间点TP(k)被CAN装置11(1)接收。此外,主机装置12的应用程序可根据同步后的主机时间信息TP(k)来对数据包PN(k)进行处理。

图4是根据本发明的一实施例所绘示的时间同步方法的流程图。请参照图4,在步骤S401中,在CAN系统中的CAN装置的测试模式下,建立所述CAN装置与主机装置之间的时间映射关系。在步骤S402中,在所述CAN装置的正常模式下,从所述CAN装置读取至少一数据包的CAN时间信息。在步骤S403中,根据所述时间映射关系与所述CAN时间信息,记录所述至少一数据包的主机时间信息。

图5是根据本发明的一实施例所绘示的时间同步方法的流程图。请参照图5,在步骤S501中,将CAN装置设定为测试模式。在步骤S502中,在所述CAN装置中建立接收器线程(receiver thread)。在步骤S503中,从主机装置送出测试数据包并记录数据包送出时的时间。在步骤S504中,从主机装置的接收器线程接收从所述CAN装置返回的测试数据包并记录主机装置与所述CAN装置分别接收到此测试数据包的时间。在步骤S505中,根据步骤S503与S504所记录的时间记录测试数据包的主机时间信息以及测试数据包的CAN时间信息。例如,图5的流程与相关操作可于图2中的时间范围21与23内执行。

图6是根据本发明的一实施例所绘示的时间同步方法的流程图。请参照图6,在步骤S601中,将CAN装置设定为正常模式。在步骤S602中,建立一记录档。在步骤S603中,从所述CAN装置读取至少一数据包以及与所述至少一数据包相关的CAN信息,并将这些信息记载于所述记录档。例如,图6的流程与相关操作可于图2中的时间范围22内执行。

图7是根据本发明的一实施例所绘示的时间同步方法的流程图。请参照图7,在步骤S701中,开启所述记录档。在步骤S702中,从所述记录档中读取所述至少一数据包的CAN信息,包含CAN时间信息。在步骤S703中,根据所建立的时间映射关系与所述CAN信息记录所述至少一数据包的主机时间信息。例如,图7的步骤S703可参照图3的实施例之说明,在此不重复赘述。

然而,图4至图7中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图4至图7中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图4至图7的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。

综上所述,在CAN装置的测试模式下,CAN装置与主机装置之间的时间映射关系可被建立。此外,在CAN装置的正常模式下,至少一数据包的CAN时间信息可从CAN装置中读取。根据所述时间映射关系与所述CAN时间信息,所述至少一数据包的主机时间信息可被记录,使得所述至少一数据包的接收时间与主机装置的时间进行同步。藉此,可有效改善以往CAN装置的时钟与主机装置的时钟之间在时间上不同步而衍生的问题(例如主机装置的应用程序对数据包的接收时间及/或顺序发生误判)。

相关技术
  • 时间同步方法、时间同步系统、时间主设备以及时间从设备
  • 时间同步装置、时间同步系统和时间同步方法
技术分类

06120113079459