CN116506096B - 时钟同步方法、***、组件、设备 - Google Patents
时钟同步方法、***、组件、设备 Download PDFInfo
- Publication number
- CN116506096B CN116506096B CN202310752783.8A CN202310752783A CN116506096B CN 116506096 B CN116506096 B CN 116506096B CN 202310752783 A CN202310752783 A CN 202310752783A CN 116506096 B CN116506096 B CN 116506096B
- Authority
- CN
- China
- Prior art keywords
- message
- slave
- module
- clock
- master
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 94
- 230000005540 biological transmission Effects 0.000 claims abstract description 90
- 230000004044 response Effects 0.000 claims abstract description 24
- 230000001360 synchronised effect Effects 0.000 claims description 31
- 238000012937 correction Methods 0.000 abstract description 18
- 238000010586 diagram Methods 0.000 description 6
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 description 5
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0008—Synchronisation information channels, e.g. clock distribution lines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/403—Bus networks with centralised control, e.g. polling
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Systems (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本公开提供一种时钟同步方法、***、组件、设备。应用于的从模块的时钟同步方法包括响应于接收到主模块发送的第一消息,向所述主模块发送第二消息并开始计时;响应于接收到所述主模块发送的第三消息,停止计时;其中,所述第三消息是所述主模块在接收到所述第二消息后间隔第一预设时长发出的;将当前的计时时长与所述第一预设时长的差值除以2,得到所述主模块与所述从模块之间的传输延时;根据所述传输延时,对所述主模块与所述从模块进行时钟同步。通过计时的方式,得到所述主模块与所述从模块之间的传输延时,可以进行主模块与从模块之间的时钟校正。
Description
技术领域
本公开涉及总线技术领域,尤其涉及一种时钟同步方法、***、组件、设备。
背景技术
片上***(System on chip,SOC)内部总线的互联协议有高级可扩展接口(Advanced eXtensible Interface,AXI)协议、I2C(Inter Integrated Circuit)总线、I3C(Improved Inter Integrated Circuit)等。主模块芯片(master die)和各个从模块芯片(slave die)之间通过总线连接。目前芯粒(Chiplet)技术在SOC技术中的应用正在变得越来越普遍,但是小芯片(主模块和各个从模块)之间的时钟往往是不同步的,小芯片之间除了数据通信以外他们还有时钟同步的需求。
发明内容
本公开的目的是提供一种时钟同步方法、***、组件、设备,解决了现有技术中主模块和各个从模块的时钟不同步的技术问题。
根据本公开的一个方面,提供一种时钟同步方法,应用于总线***的从模块,包括:
响应于接收到主模块发送的第一消息,向主模块发送第二消息并开始计时;
响应于接收到主模块发送的第三消息,停止计时;其中,第三消息是主模块在接收到第二消息后间隔第一预设时长发出的;
将当前的计时时长与第一预设时长的差值除以2,得到主模块与从模块之间的传输延时;
根据传输延时,对主模块与从模块进行时钟同步。
在一些实施例中,上述时钟同步方法中,根据传输延时,对主模块与从模块进行时钟同步,包括:
根据传输延时,向主模块发送对应的第四消息;其中,第四消息携带传输延时;
接收主模块发送的第五消息;其中,第五消息是主模块在接收到第四消息后,根据传输延时生成的,第五消息携带第二预设时长,第二预设时长与传输延时的和等于指定值;
在接收到主模块发送的第五消息后间隔第二预设时长的时间,重启从模块的从时钟;
其中,从时钟和主模块的主时钟同时重启。
在一些实施例中,上述时钟同步方法中,总线***包括至少两个从模块,各个从模块按照上述的方法重启对应的从时钟,以使各个从模块的从时钟同时重启。
在一些实施例中,上述时钟同步方法中,总线***包括至少两个从模块,各个从模块对应的指定值相同,且各个从模块对应的第五消息是主模块同时发出的。
在一些实施例中,上述时钟同步方法中,根据传输延时,向主模块发送对应的第四消息之前,上述方法还包括:
向主模块发送第一中断消息,以触发主模块返回第六消息;
根据传输延时,向主模块发送对应的第四消息,包括:
响应于接收到第六消息,根据传输延时,向主模块发送对应的第四消息。
在一些实施例中,上述时钟同步方法中,上述方法还包括:
响应于接收到主模块发送的第七消息,向主模块发送第八消息;其中,第八消息携带从模块接收到第七消息时从时钟的时间值,用于实现主模块根据其发出第七消息时主时钟的时间值、从模块接收到第七消息时从时钟的时间值以及传输延时,确认主时钟和从时钟是否同步;或,第八消息携带从模块发出第八消息时从时钟的时间值,用于实现主模块根据其接收到第八消息时主时钟的时间值、从模块发出第八消息时从时钟的时间值以及传输延时,确认主时钟和从时钟是否同步。
在一些实施例中,上述时钟同步方法中,响应于接收到主模块发送的第七消息,向主模块发送第八消息之前,还包括:
响应于接收到主模块发送的第九消息,向主模块发送第二中断消息,以触发主模块返回第七消息。
在一些实施例中,上述时钟同步方法中,总线***包括至少两个从模块,任意两个从模块发送第二中断消息的时间间隔大于第三预设时长。
在一些实施例中,上述时钟同步方法中,上述方法还包括:
接收主模块发送的第十消息,并确认从模块接收到第十消息时从时钟的时间值;其中,第十消息携带主模块发出第十消息时主时钟的时间值;
根据从模块接收到第十消息时从时钟的时间值、主模块发出第十消息时主时钟的时间值以及传输延时,确认主时钟和从时钟是否同步。
根据本公开的另一个方面,提供一种时钟同步方法,应用于总线***的主模块,包括:
向从模块发送第一消息,以触发从模块开始计时以及返回第二消息;
在接收到第二消息后间隔第一预设时长向从模块发送第三消息,以触发从模块停止计时,从而使得从模块将当前的计时时长与第一预设时长的差值除以2,得到主模块与从模块之间的传输延时,进而根据传输延时,对主模块与从模块进行时钟同步。
在一些实施例中,上述时钟同步方法中,上述方法还包括:
接收从模块发送的第四消息,第四消息是从模块根据传输延时生成的,其中携带传输延时;
根据第四消息携带的传输延时,生成第五消息;其中,第五消息携带第二预设时长,第二预设时长与传输延时的和等于指定值;
向从模块发送第五消息,以使得从模块在接收到主模块发送的第五消息后间隔第二预设时长的时间,重启从模块的从时钟;
其中,从时钟和主模块的主时钟同时重启。
在一些实施例中,上述时钟同步方法中,总线***包括至少两个从模块,主模块按照上述的方法使得各个从模块重启对应的从时钟,以使各个从模块的从时钟同时重启。
在一些实施例中,上述时钟同步方法中,总线***包括至少两个从模块,各个从模块对应的指定值相同;
各个从模块对应的第五消息是主模块同时发出的。
在一些实施例中,上述时钟同步方法中,接收从模块发送的第四消息之前,上述方法还包括:
响应于接收到从模块发送的第一中断消息,向从模块发送第六消息,以触发从模块返回第四消息。
在一些实施例中,上述时钟同步方法中,上述方法还包括:
向从模块发送第七消息,以触发从模块返回第八消息;其中,第八消息携带从模块接收到第七消息时从时钟的时间值;根据主模块发出第七消息时主时钟的时间值、从模块接收到第七消息时从时钟的时间值以及传输延时,确认主时钟和从时钟是否同步;或,
向从模块发送第七消息,以触发从模块返回第八消息;其中,第八消息携带从模块发出第八消息时从时钟的时间值;根据主模块接收到第八消息时主时钟的时间值、从模块发出第八消息时从时钟的时间值以及传输延时,确认主时钟和从时钟是否同步。
在一些实施例中,上述时钟同步方法中,向从模块发送第七消息之前,还包括:
向从模块发送第九消息,以触发从模块返回第二中断消息;
向从模块发送第七消息,包括:
响应于接收到从模块发送的第二中断消息,向从模块发送第七消息。
在一些实施例中,上述时钟同步方法中,总线***包括至少两个从模块,任意两个从模块发送第二中断消息的时间间隔大于第三预设时长。
在一些实施例中,上述时钟同步方法中,上述方法还包括:
向从模块发送第十消息,以触发从模块确认其接收到第十消息时从时钟的时间值;其中,第十消息携带主模块发出第十消息时主时钟的时间值,以使得从模块根据其接收到第十消息时从时钟的时间值、主模块发出第十消息时主时钟的时间值以及传输延时,确认主时钟和从时钟是否同步。
根据本公开的另一方面,提供一种总线***,包括:
总线;
从模块,被配置为实现上述任一实施例所述的应用于从模块的时钟同步方法;
主模块,被配置为实现上述任一实施例所述的应用于主模块的时钟同步方法。
根据本公开的另一方面,提供一种电子组件,包括上述任一实施例所述的总线***。
根据本公开的另一方面,提供一种电子设备,包括上述任一实施例所述的电子组件。
附图说明
图1为本公开一个实施例提供的一种时钟同步方法(应用于从模块)的流程示意图;
图2为本公开一个实施例提供的一种时钟同步方法的时序图;
图3为本公开一个实施例提供的一种总线***的连接结构示意图;
图4为本公开一个实施例提供的另一种时钟同步方法的时序图;
图5为本公开一个实施例提供的另一种时钟同步方法的时序图;
图6为本公开一个实施例提供的另一种时钟同步方法的时序图;
图7为本公开一个实施例提供的另一种时钟同步方法的时序图;
图8为本公开一个实施例提供的一种时钟同步方法(应用于主模块)的流程示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
本公开的目的是提供一种时钟同步方法、***、组件、设备,其中,应用于的从模块的时钟同步方法包括响应于接收到主模块发送的第一消息,向主模块发送第二消息并开始计时;响应于接收到主模块发送的第三消息,停止计时;其中,第三消息是主模块在接收到第二消息后间隔第一预设时长发出的;将当前的计时时长与第一预设时长的差值除以2,得到主模块与从模块之间的传输延时;根据传输延时,对主模块与从模块进行时钟同步。
这种时钟同步方案中,通过计时的方式,得到主模块与从模块之间的传输延时,可以进行主模块与从模块之间的时钟校正,从而实现了主模块与从模块之间的时钟同步。
本公开的一个实施例提供一种时钟同步方法,应用于总线***的从模块,如图1所示,包括:
步骤S110:响应于接收到主模块发送的第一消息,向主模块发送第二消息并开始计时;
步骤S120:响应于接收到主模块发送的第三消息,停止计时;其中,第三消息是主模块在接收到第二消息后间隔第一预设时长发出的;
步骤S130:将当前的计时时长与第一预设时长的差值除以2,得到主模块与从模块之间的传输延时;
步骤S140:根据传输延时,对主模块与从模块进行时钟同步。
总线***中,主模块与从模块之间通过总线实现信息传输,总线可以为AXI总线、I2C总线或I3C总线等。
传输延时的测试原理如图2所示,可以理解的是,时序图中,T为主模块的主时钟的时间值,T'为从模块的从时钟的时间值,Td为主模块与从模块之间的传输延时,如图2所示,主模块在主时钟的T0时间发出第一消息,从模块在接收到第一消息后,在从时钟的T'0时间发出第二消息并开始计时,主模块在主时钟的T1时间接收到第二消息,其间隔第一预设时长△T1,也即在主时钟的(T1+△T1)时间发出第三消息,从模块在从时钟的T'1时间接收到第三消息后停止计时,此时计时时长(T'1- T'0)等于(2*Td+△T1)。所以,从模块将当前的计时时长(T'1- T'0)与第一预设时长△T1的差值除以2,就可以得到主模块与从模块之间的传输延时Td。
在一些实施例中,第一预设时长△T1的大小不限,可以为任意数值。
在一些实施例中,主模块可以将第一预设时长△T1携带于第三消息中发送至从模块,也可以携带于其它信息中发送至从模块,在此不做限定。
在一些实施例中,第二消息的类型为ACK信息,为了实现主模块在接收到第二消息时,主模块有充足的时间去分析第二消息时ACK消息还是NACK消息,确认是ACK消息后,再发出第三消息,所以优选的,第一预设时长△T1大于主模块分析第二消息所需要的时间。在一些实施例中,第一预设时长△T1可以为30个时间单位(时钟加1,为1个时间单位)。
在一些实施例中,主模块分析第二消息是ACK消息还是NACK消息的方式为,第二消息携带对应的有效标识的,1指示第二消息为ACK消息,0指示第二消息为NACK消息,有效标识与ACK消息和NACK消息的对应关系记录于存储器中,主模块在接收到第二消息时,主模块的软件程序根据第二消息携带的有效标识去寄存器中查找对应信息,从而确定第二消息是ACK消息还是NACK消息。
其中,从模块的计时功能通过从时钟实现,即从时钟也是计时器。
在一些实施例中,在进行时钟校正时,主模块可以向从模块发送一个校正消息(其中携带其发出该校正消息时主时钟的时间值Tr),从模块在接收到该校正信息时,记录其接收到校正信息时从时钟的时间值T'r,由于这两个时间值与传输延时Td和时钟偏差offset(主时钟与从时钟之间的时钟偏差)之间存在如下关系:T'r=Tr+Td+offset,所以从模块可以计算得到时钟偏差offset,从而可以实现主模块与从模块之间的时钟校正,进而实现主模块与从模块之间的时钟同步。
在另一些实施例中,在进行时钟校正时,从模块可以向主模块发送一个校正消息(其中携带其发出该校正消息时从时钟的时间值T'r和传输延时Td),主模块在接收到该校正信息时,记录其接收到校正信息时主时钟的时间值Tr,由于这两个时间值与传输延时Td和时钟偏差offset(主时钟与从时钟之间的时钟偏差)之间存在如下关系:Tr=T'r+Td-offset,所以主模块可以计算得到时钟偏差offset,从而可以实现主模块与从模块之间的时钟校正,进而实现主模块与从模块之间的时钟同步。
在另一些实施例中,在进行时钟校正时,可以不需要计算时钟偏差offset,对应的,步骤S140步骤具体包括:
步骤S142:根据传输延时,向主模块发送对应的第四消息;其中,第四消息携带传输延时;
步骤S144:接收主模块发送的第五消息;其中,第五消息是主模块在接收到第四消息后,根据传输延时生成的,第五消息携带第二预设时长,第二预设时长与传输延时的和等于指定值;
步骤S146:在接收到主模块发送的第五消息后间隔第二预设时长的时间,重启从模块的从时钟;
其中,从时钟和主模块的主时钟同时重启。
其中,重启是指时钟从0开始计时。
可以理解为,从时钟和主时钟同时重启,从时钟和主时钟之间的时钟偏差offset等于0,即重启时就实现了时钟校正和时钟同步。这种时钟同步方案中,不需要得到时钟偏差就可以实现时钟同步,可以缩短时钟同步所需要的时间。
而主时钟与从时钟同时重启的方式为:在主模块发出第五消息时,主模块可以确定从时钟会在主模块发出第五消息后间隔指定值(第二预设时长与传输延时的和)的时间重启,所以主模块可以控制主时钟在发出第五消息后间隔指定值的时间重启,也就实现了从时钟和主时钟同时重启。
在一些实施例中,第四消息还携带重启指令,以进一步实现从模块在接收到主模块发送的第五消息后间隔第二预设时长的时间,重启从模块的从时钟。
在一些实施例中,总线***包括至少两个从模块。在这种总线***中,为了实现主模块和从模块的时钟同步,各个从模块的从时钟需要同时重启。各个从模块的从时钟重启的方式与上述方法相同,此处不再赘述。
如图3所示,总线***包括3个从模块,分别为从模块0、从模块1和从模块2。
在一些实施例中,为了实现各个从模块的从时钟的同时重启,各个从模块对应的指定值相同,且各个从模块对应的第五消息是主模块同时发出的,从而实现各个从模块的从时钟都是在主模块发出第五消息后间隔指定值(第二预设时长与传输延时的和)的时间同时重启的。
可以理解为,如图2所示,主模块发出第五消息时主时钟的时间值为T3,上述指定值等于传输延时Td加上第二预设时长△T2,在进行时钟同步时,可以设置当主模块接收到所有从模块发出的第四消息,即获取到各个从模块对应的传输延时Td后,根据各个从模块对应的传输延时Td,设置上述指定值(指定值需要大于等于各个从模块对应的传输延时Td,优选大于各个从模块对应的传输延时Td),然后,在选取一发送时间T3,主模块向各个从模块同时发出对应的第五消息。
示例性的,如图3所示,从模块0对应的传输延时是5个时间单位,从模块1对应的传输延时是6个时间单位,从模块2对应的传输延时是8个时间单位,那么主模块就可以设置指定值为10个时间单位,即从模块0收到第五消息后的5个时间单位(第二预设时长)重启从时钟,从模块1收到第五消息后的4个时间单位(第二预设时长)重启从时钟,从模块2收到第五消息后的2个时间单位(第二预设时长)重启从时钟,从而实现所有从模块的从时钟真正的启动时间(重启时间)是一致的(即同一时间从0开始计时)。
在一些实施例中,如图4所示,步骤S142之前,上述方法还包括:
向主模块发送第一中断消息,以触发主模块返回第六消息。
对应的,步骤S142包括:
响应于接收到第六消息,根据传输延时,向主模块发送对应的第四消息。
可以理解为,当从模块得到传输延时之后,如果直接将携带传输延时的第四消息发送给主模块,此时有可能主模块还没有准备好接收者传输延时,所以,优选的方式为,从模块得到传输延时之后,先通过中断的方式通知主模块,表示该从模块已经得到了传输延时,如果主模块准备好接收传输延时之后,可以向从模块发出第六消息,以读取从模块得到的传输延时,第六消息相当于一个读消息。
在一些实施例中,可以设置从模块在收到第三消息后间隔一段时间△T3(大于从模块计算传输延时所需要的时间),再向主模块发送第一中断消息,为从模块计算传输延时的过程预留足够的时间。示例性的,间隔的这一段时间可以为30个时间单位。
在一些实施例中,主模块和从模块在时钟同步之后,受外界干扰,一段时间之后会再次出现时钟偏差,所以,为了实现主模块能够及时确认主模块和从模块的时钟是否同步,可以设置主模块在需要确认时钟是否同步时,向从模块发送第七消息,以读回从时钟的时间值,从而确认从时钟的时间值是否有误差,有误差的话,说明存在时钟偏差。具体的,确认时钟是否同步的步骤包括:
响应于接收到主模块发送的第七消息,向主模块发送第八消息;其中,第八消息携带从模块接收到第七消息时从时钟的时间值,用于实现主模块根据其发出第七消息时主时钟的时间值、从模块接收到第七消息时从时钟的时间值以及传输延时,确认主时钟和从时钟是否同步;或,第八消息携带从模块发出第八消息时从时钟的时间值,用于实现主模块根据其接收到第八消息时主时钟的时间值、从模块发出第八消息时从时钟的时间值以及传输延时,确认主时钟和从时钟是否同步。
可以理解为,如图5所示,第一种时钟同步确认方案为:主模块在发出第七消息时,可以记录其发出第七消息时主时钟的时间值T5,从模块在接收到第七消息时可以记录其接收到第七消息时从时钟的时间值T'5,然后通过第八消息将从模块接收到第七消息时从时钟的时间值T'5返回给主模块,主模块接收到第八消息时,确认T'5是否等于(T5+Td),若是,则说明主时钟和从时钟是同步的,否则,说明主时钟和从时钟不同步(即存在时钟偏差)。
当从模块存在时钟偏差时,可以按照前述步骤S110~S140重新进行时钟同步,也可以针对存在误差的从模块,根据T'5与(T5+Td)的差值,得到主时钟和从时钟的时钟偏差,然后主模块可以通过总线发出广播命令,指示对应的从模块进行时钟校正,从模块根据时钟偏差将从时钟调整为与主时钟一致。
第二种时钟同步确认方案为:主模块发出第七消息,触发从模块返回第八消息(其中携带了从模块发出第八消息时从时钟的时间值T'6),主模块在接收到第八消息时,记录主模块接收到第八消息时主时钟的时间值T6,主模块接收到第八消息时,确认T6是否等于(T'6+Td),若是,则说明主时钟和从时钟是同步的,否则,说明主时钟和从时钟不同步(即存在时钟偏差)。
与第一种时钟同步确认方案类似的,当从模块存在时钟偏差时,可以按照前述步骤S110~S140重新进行时钟同步,也可以针对存在误差的从模块,根据T6与(T'6+Td)的差值,得到主时钟和从时钟的时钟偏差,然后主模块可以通过总线发出广播命令,指示对应的从模块进行时钟校正,从模块根据时钟偏差将从时钟调整为与主时钟一致。
在一些实施例中,响应于接收到主模块发送的第七消息,向主模块发送第八消息之前,还包括:
响应于接收到主模块发送的第九消息,向主模块发送第二中断消息,以触发主模块返回第七消息。
可以理解为,当主模块需要读回从时钟的时间值,以确认从时钟的时间值是否有误差(时钟偏差)时,主模块如果直接将第七消息发送给从模块,但是有可能此时从模块还没有准备好被读取并返回对应的时间值,所以,优选的方式为,如图6所示,主模块先向从模块发送第九消息告知从模块,主模块将要来读数据,从模块准备好后通过中断的方式(第二中断消息)告知主模块,主模块接收到之后再发送第七消息。
在一些实施例中,在总线***包括至少两个从模块的场景下,任意两个从模块发送第二中断消息的时间间隔大于第三预设时长。
可以理解为,主模块可能同时向各个从模块发出第九消息,以确认各个从模块的从时钟的时间值是否有误差,设置任意两个从模块发送第二中断消息的时间间隔大于第三预设时长,可以避免主模块同时接收到两个从模块发出的第二中断消息,造成信息漏读,实现主模块在一个时刻最多只接收一个第二中断消息。
其中,上述第三预设时长需要大于各个从模块对应的传输延时。
在一些实施例中,上述第三预设时长可以为100个时间单位。
示例性的,在如图3所示的总线***中,可以设置从模块0在收到第九信息以后隔100个时间单位给主模块发第二中断消息,然后主模块发出第七消息读回从模块0的从时钟的时间值来确认是否同步,同理,让从模块1在收到第九信息以后隔200个时间单位给主模块发第二中断消息,然后主模块发出第七消息读回从模块1的从时钟的时间值,让从模块2在收到第九信息以后隔300个时间单位给主模块发第二中断消息,然后主模块发出第七消息读回从模块2的从时钟的时间值。
在一些实施例中,还提供第三种时钟同步确认方案为:主模块直接将主时钟的时间值发送给从模块,由从模块判断主时钟和从时钟是否同步。具体的,确认时钟是否同步的步骤包括:
接收主模块发送的第十消息,并确认从模块接收到第十消息时从时钟的时间值;其中,第十消息携带主模块发出第十消息时主时钟的时间值;
根据从模块接收到第十消息时从时钟的时间值、主模块发出第十消息时主时钟的时间值以及传输延时,确认主时钟和从时钟是否同步。
可以理解为,如图7所示,主模块在发出第十消息时,第十消息中携带了主模块发出第十消息时主时钟的时间值T7,从模块在接收到第十消息时可以记录其接收到第十消息时从时钟的时间值T'7,然确认T'7是否等于(T7+Td),若是,则说明主时钟和从时钟是同步的,否则,说明主时钟和从时钟不同步(即存在时钟偏差,时钟偏差等于|(T7+Td)- T'7|)。
当从模块存在误差(时钟偏差)时,可以通过中断消息的方式将误差(时钟偏差)信息返回给主模块,然后可以按照前述步骤S110~S140重新进行时钟同步,也可以针对存在误差的从模块,主模块可以通过总线发出广播命令,指示对应的从模块进行时钟校正,从模块根据时钟偏差将从时钟调整为与主时钟一致。
基于相同的发明构思,本公开实施例还提供一种时钟同步方法,应用于总线***的主模块,如图8所示,包括:
步骤S210:向从模块发送第一消息,以触发从模块开始计时以及返回第二消息;
步骤S220:在接收到第二消息后间隔第一预设时长向从模块发送第三消息,以触发从模块停止计时,从而使得从模块将当前的计时时长与第一预设时长的差值除以2,得到主模块与从模块之间的传输延时,进而根据传输延时,对主模块与从模块进行时钟同步。
在一些实施例中,步骤S220之后,上述方法还包括:
步骤S230:接收从模块发送的第四消息,第四消息是从模块根据传输延时生成的,其中携带传输延时;
步骤S240:根据第四消息携带的传输延时,生成第五消息;其中,第五消息携带第二预设时长,第二预设时长与传输延时的和等于指定值;
步骤S250:向从模块发送第五消息,以使得从模块在接收到主模块发送的第五消息后间隔第二预设时长的时间,重启从模块的从时钟;
其中,从时钟和主时钟同时重启。
在一些实施例中,总线***包括至少两个从模块,主模块按照上述的方法使得各个从模块重启对应的从时钟,以使各个从模块的从时钟同时重启。
在一些实施例中,上述时钟同步方法中,总线***包括至少两个从模块,各个从模块对应的指定值相同;
各个从模块对应的第五消息是主模块同时发出的。
在一些实施例中,上述时钟同步方法中,接收从模块发送的第四消息之前,上述方法还包括:
响应于接收到从模块发送的第一中断消息,向从模块发送第六消息,以触发从模块返回第四消息。
在一些实施例中,上述时钟同步方法中,上述方法还包括:
向从模块发送第七消息,以触发从模块返回第八消息;其中,第八消息携带从模块接收到第七消息时从时钟的时间值;根据主模块发出第七消息时主时钟的时间值、从模块接收到第七消息时从时钟的时间值以及传输延时,确认主时钟和从时钟是否同步;或,
向从模块发送第七消息,以触发从模块返回第八消息;其中,第八消息携带从模块发出第八消息时从时钟的时间值;根据主模块接收到第八消息时主时钟的时间值、从模块发出第八消息时从时钟的时间值以及传输延时,确认主时钟和从时钟是否同步。
在一些实施例中,上述时钟同步方法中,向从模块发送第七消息之前,还包括:
向从模块发送第九消息,以触发从模块返回第二中断消息;
向从模块发送第七消息,包括:
响应于接收到从模块发送的第二中断消息,向从模块发送第七消息。
在一些实施例中,上述时钟同步方法中,总线***包括至少两个从模块,任意两个从模块发送第二中断消息的时间间隔大于第三预设时长。
在一些实施例中,上述时钟同步方法中,上述方法还包括:
向从模块发送第十消息,以触发从模块确认其接收到第十消息时从时钟的时间值;其中,第十消息携带主模块发出第十消息时主时钟的时间值,以使得从模块根据其接收到第十消息时从时钟的时间值、主模块发出第十消息时主时钟的时间值以及传输延时,确认主时钟和从时钟是否同步。
上述应用于主模块的时钟同步方法的具体实施过程可参见上述任一实施例所述的应用于从模块的时钟同步方法,此处不再赘述。
基于相同的发明构思,本公开实施例还提供一种总线***,如图3所示,包括总线、从模块和主模块。
从模块,被配置为实现上述任一实施例所述的应用于从模块的时钟同步方法;
主模块,被配置为实现上述任一实施例所述的应用于主模块的时钟同步方法。
其中,上述总线***为需要通过总线实现读写操作的处理芯片或片上***(System-on-a-chip,SOC)芯片。
基于相同的发明构思,本公开实施例还提供一种电子组件,该电子组件包括上述任一实施例所述的总线***。
在一些使用场景下,该电子组件的产品形式体现为显卡;在另一些使用场景下,该电子组件的产品形式体现为CPU主板。
基于相同的发明构思,本公开实施例还提供一种电子设备,该电子设备包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (19)
1.一种时钟同步方法,应用于总线***的从模块,包括:
响应于接收到主模块发送的第一消息,向所述主模块发送第二消息并开始计时;
响应于接收到所述主模块发送的第三消息,停止计时;其中,所述第三消息是所述主模块在接收到所述第二消息后间隔第一预设时长发出的;
将当前的计时时长与所述第一预设时长的差值除以2,得到所述主模块与所述从模块之间的传输延时;
根据所述传输延时,向所述主模块发送对应的第四消息;其中,所述第四消息携带所述传输延时;
接收所述主模块发送的第五消息;其中,所述第五消息是所述主模块在接收到所述第四消息后,根据所述传输延时生成的,所述第五消息携带第二预设时长,所述第二预设时长与所述传输延时的和等于指定值;
在接收到所述主模块发送的第五消息后间隔所述第二预设时长的时间,重启所述从模块的从时钟;
其中,所述从时钟和所述主模块的主时钟同时重启。
2.根据权利要求1所述的方法,所述总线***包括至少两个从模块,各个从模块按照如权利要求1所述的方法重启对应的从时钟,以使各个从模块的从时钟同时重启。
3.根据权利要求1所述的方法,所述总线***包括至少两个从模块,各个从模块对应的所述指定值相同,且各个从模块对应的所述第五消息是所述主模块同时发出的。
4.根据权利要求1所述的方法,根据所述传输延时,向所述主模块发送对应的第四消息之前,所述方法还包括:
向所述主模块发送第一中断消息,以触发所述主模块返回第六消息;
根据所述传输延时,向所述主模块发送对应的第四消息,包括:
响应于接收到所述第六消息,根据所述传输延时,向所述主模块发送对应的第四消息。
5.根据权利要求1所述的方法,所述方法还包括:
响应于接收到所述主模块发送的第七消息,向所述主模块发送第八消息;其中,所述第八消息携带所述从模块接收到所述第七消息时从时钟的时间值,用于实现所述主模块根据其发出所述第七消息时主时钟的时间值、所述从模块接收到所述第七消息时所述从时钟的时间值以及所述传输延时,确认所述主时钟和所述从时钟是否同步;或,所述第八消息携带所述从模块发出所述第八消息时从时钟的时间值,用于实现所述主模块根据其接收到所述第八消息时主时钟的时间值、所述从模块发出所述第八消息时所述从时钟的时间值以及所述传输延时,确认所述主时钟和所述从时钟是否同步。
6.根据权利要求5所述的方法,响应于接收到所述主模块发送的第七消息,向所述主模块发送第八消息之前,还包括:
响应于接收到所述主模块发送的第九消息,向所述主模块发送第二中断消息,以触发所述主模块返回所述第七消息。
7.根据权利要求6所述的方法,所述总线***包括至少两个从模块,任意两个从模块发送第二中断消息的时间间隔大于第三预设时长。
8.根据权利要求1所述的方法,所述方法还包括:
接收所述主模块发送的第十消息,并确认所述从模块接收到所述第十消息时从时钟的时间值;其中,所述第十消息携带所述主模块发出所述第十消息时主时钟的时间值;
根据所述从模块接收到所述第十消息时所述从时钟的时间值、所述主模块发出所述第十消息时所述主时钟的时间值以及所述传输延时,确认所述主时钟和所述从时钟是否同步。
9.一种时钟同步方法,应用于总线***的主模块,包括:
向从模块发送第一消息,以触发所述从模块开始计时以及返回第二消息;
在接收到所述第二消息后间隔第一预设时长向所述从模块发送第三消息,以触发所述从模块停止计时,从而使得所述从模块将当前的计时时长与所述第一预设时长的差值除以2,得到所述主模块与所述从模块之间的传输延时,进而根据所述传输延时,对所述主模块与所述从模块进行时钟同步;
接收所述从模块发送的第四消息,所述第四消息是所述从模块根据所述传输延时生成的,其中携带所述传输延时;
根据所述第四消息携带的所述传输延时,生成第五消息;其中,所述第五消息携带第二预设时长,所述第二预设时长与所述传输延时的和等于指定值;
向所述从模块发送所述第五消息,以使得所述从模块在接收到所述主模块发送的第五消息后间隔所述第二预设时长的时间,重启所述从模块的从时钟;
其中,所述从时钟和所述主模块的主时钟同时重启。
10.根据权利要求9所述的方法,所述总线***包括至少两个从模块,所述主模块按照如权利要求9所述的方法使得各个从模块重启对应的从时钟,以使各个从模块的从时钟同时重启。
11.根据权利要求9所述的方法,所述总线***包括至少两个从模块,各个从模块对应的所述指定值相同;
各个从模块对应的所述第五消息是所述主模块同时发出的。
12.根据权利要求9所述的方法,接收所述从模块发送的第四消息之前,所述方法还包括:
响应于接收到所述从模块发送的第一中断消息,向所述从模块发送第六消息,以触发所述从模块返回所述第四消息。
13.根据权利要求9所述的方法,所述方法还包括:
向所述从模块发送第七消息,以触发所述从模块返回第八消息;其中,所述第八消息携带所述从模块接收到所述第七消息时从时钟的时间值;根据所述主模块发出所述第七消息时主时钟的时间值、所述从模块接收到所述第七消息时所述从时钟的时间值以及所述传输延时,确认所述主时钟和所述从时钟是否同步;或,
向所述从模块发送第七消息,以触发所述从模块返回第八消息;其中,所述第八消息携带所述从模块发出所述第八消息时从时钟的时间值;根据所述主模块接收到所述第八消息时主时钟的时间值、所述从模块发出所述第八消息时所述从时钟的时间值以及所述传输延时,确认所述主时钟和所述从时钟是否同步。
14.根据权利要求13所述的方法,向所述从模块发送第七消息之前,还包括:
向所述从模块发送第九消息,以触发所述从模块返回第二中断消息;
向所述从模块发送第七消息,包括:
响应于接收到所述从模块发送的所述第二中断消息,向所述从模块发送第七消息。
15.根据权利要求14所述的方法,所述总线***包括至少两个从模块,任意两个从模块发送第二中断消息的时间间隔大于第三预设时长。
16.根据权利要求9所述的方法,所述方法还包括:
向所述从模块发送第十消息,以触发所述从模块确认其接收到所述第十消息时从时钟的时间值;其中,所述第十消息携带所述主模块发出所述第十消息时主时钟的时间值,以使得所述从模块根据其接收到所述第十消息时所述从时钟的时间值、所述主模块发出所述第十消息时所述主时钟的时间值以及所述传输延时,确认所述主时钟和所述从时钟是否同步。
17.一种总线***,包括:
总线;
从模块,被配置为实现权利要求1至8中任一项所述的时钟同步方法;
主模块,被配置为实现权利要求9至16中任一项所述的时钟同步方法。
18.一种电子组件,包括权利要求17所述的总线***。
19.一种电子设备,包括权利要求18所述的电子组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310752783.8A CN116506096B (zh) | 2023-06-26 | 2023-06-26 | 时钟同步方法、***、组件、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310752783.8A CN116506096B (zh) | 2023-06-26 | 2023-06-26 | 时钟同步方法、***、组件、设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116506096A CN116506096A (zh) | 2023-07-28 |
CN116506096B true CN116506096B (zh) | 2023-10-20 |
Family
ID=87325073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310752783.8A Active CN116506096B (zh) | 2023-06-26 | 2023-06-26 | 时钟同步方法、***、组件、设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116506096B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527123B (zh) * | 2023-12-07 | 2024-06-25 | 小米汽车科技有限公司 | 时间同步方法、装置、车辆及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103178987A (zh) * | 2012-07-12 | 2013-06-26 | 深圳市康必达中创科技有限公司 | 基于ZigBee无线技术的数字化变电站分布测试方法 |
CN108111244A (zh) * | 2016-11-25 | 2018-06-01 | 上海东软医疗科技有限公司 | 一种时钟校正的方法、装置和*** |
CN108650050A (zh) * | 2018-05-09 | 2018-10-12 | 西安电子科技大学 | 一种分布式网络时钟同步方法 |
CN111092789A (zh) * | 2019-12-18 | 2020-05-01 | 歌尔微电子有限公司 | 数据传输方法、装置、设备及计算机可读存储介质 |
CN112804021A (zh) * | 2020-12-31 | 2021-05-14 | 北京新能源汽车技术创新中心有限公司 | 一种时间同步方法、装置、车辆以及介质 |
CN115941099A (zh) * | 2021-08-20 | 2023-04-07 | 台达电子工业股份有限公司 | 分布式时钟同步***及其控制方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10013313A1 (de) * | 2000-03-20 | 2001-09-27 | Alcatel Sa | Verfahren, Module und Programm-Module zur Synchronisierung |
WO2020183392A1 (en) * | 2019-03-12 | 2020-09-17 | Uhnder, Inc. | Method and apparatus for mitigation of low frequency noise in radar systems |
-
2023
- 2023-06-26 CN CN202310752783.8A patent/CN116506096B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103178987A (zh) * | 2012-07-12 | 2013-06-26 | 深圳市康必达中创科技有限公司 | 基于ZigBee无线技术的数字化变电站分布测试方法 |
CN108111244A (zh) * | 2016-11-25 | 2018-06-01 | 上海东软医疗科技有限公司 | 一种时钟校正的方法、装置和*** |
CN108650050A (zh) * | 2018-05-09 | 2018-10-12 | 西安电子科技大学 | 一种分布式网络时钟同步方法 |
CN111092789A (zh) * | 2019-12-18 | 2020-05-01 | 歌尔微电子有限公司 | 数据传输方法、装置、设备及计算机可读存储介质 |
CN112804021A (zh) * | 2020-12-31 | 2021-05-14 | 北京新能源汽车技术创新中心有限公司 | 一种时间同步方法、装置、车辆以及介质 |
CN115941099A (zh) * | 2021-08-20 | 2023-04-07 | 台达电子工业股份有限公司 | 分布式时钟同步***及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116506096A (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116506096B (zh) | 时钟同步方法、***、组件、设备 | |
CN111030909B (zh) | 一种应用于can总线多主设备通讯间时间同步的方法 | |
CN109951890B (zh) | 一种数据通信方法、中继节点、终端节点及通信*** | |
US6763413B2 (en) | Method for the serial transfer of data between two electronic bus stations and bus station for use in said method | |
JPH06324977A (ja) | データ転送方法 | |
CN108255776A (zh) | 一种兼容apb总线的i3c主设备、主从***及通信方法 | |
CN112765082B (zh) | 多主机仲裁方法、装置和可读存储介质 | |
US20200201808A1 (en) | Time-division multiplexing (tdm) data transfer on serial interfaces | |
CN101699419A (zh) | 数据传输方法以及使用该方法的通用串行总线主机控制器 | |
EP3327579A1 (en) | Serial data communications using a uart module and method therefor | |
CN112463693A (zh) | 基于m-lvds总线的多板卡通信***及方法 | |
US20160007291A1 (en) | Wireless communication apparatus and communication system | |
CN113722254B (zh) | 一种适用于工业控制现场的多主机通讯总线*** | |
JP2734246B2 (ja) | パイプラインバス | |
CN116126771A (zh) | 一种两线spi的通信***及方法 | |
CN111757371A (zh) | 一种传输时延的统计方法、服务器及存储介质 | |
CN115994057A (zh) | 芯片总线的检测方法、装置、电子设备和存储介质 | |
CN109586832B (zh) | 无线同步方法、无线从机、无线主机和无线同步*** | |
JPH01500396A (ja) | データ送信装置を信号回線に接続する方法と装置 | |
JPS6217779B2 (zh) | ||
CN114828218A (zh) | 参考信号传输时机有效性的确定方法和用户设备 | |
KR100597436B1 (ko) | 무선 1394 시스템의 사이클 타임 동기화 장치 및 그 방법 | |
JP2000269988A (ja) | 同報通信データ転送システム | |
KR101276837B1 (ko) | 서로 다른 동작 주파수로 동작하는 프로세서 시스템 간의 통신을 지원하기 위한 장치 | |
US6463491B1 (en) | Data transfer making efficient use of time concerning bus arbitration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |