CN112578847A - 一种基于Linux系统的多MCU时钟同步方案 - Google Patents
一种基于Linux系统的多MCU时钟同步方案 Download PDFInfo
- Publication number
- CN112578847A CN112578847A CN202011519364.2A CN202011519364A CN112578847A CN 112578847 A CN112578847 A CN 112578847A CN 202011519364 A CN202011519364 A CN 202011519364A CN 112578847 A CN112578847 A CN 112578847A
- Authority
- CN
- China
- Prior art keywords
- mcu
- time
- sub
- new reference
- tick
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明公开了一种基于linux系统的多MCU时钟同步方案,包括:1)主MCU通过对时IO中断各子MCU,各子MCU记忆此时刻系统滴答,将系统滴答作为新基准滴答并开启时间窗;2)主MCU下发新基准时间,各子MCU收到新基准时间后给主MCU发送回复帧;3)在规定的等待时间内,若主MCU收到全部子MCU的回复帧,则再次通过对时IO中断各子MCU,跳转4);若没有等到所有子MCU的回复帧,则等待各子MCU重置时间窗后跳转1)再次进行对时;4)若各子MCU检测到第二次中断,则用子MCU的新基准时间和新基准滴答更新原基准时间和原基准滴答;5)更新各子MCU的时标。本发明通过对IO中断、MCU内核系统滴答、时间窗的利用,将时钟同步误差控制在1ms以内,从而支持设备实现更复杂的功能和应用。
Description
技术领域
本发明涉及嵌入式技术领域,尤其涉及一种基于Linux系统的多MCU时钟同步方案。
背景技术
MCU全名为Microcontroller Unit,意为微处理单元,又称单片机,其将计算机的各种设备进行频率和规格的缩减后整合到单一芯片上,兼容性强,被各类硬件设备所广泛使用。
内含多MCU的嵌入式系统能够满足硬件设备的模块化功能设计要求以使得硬件设备能够根据不同的应用场景更换或扩展不同的功能模块,为消费者提供更灵活的产品服务,提高产品的竞争力。
多MCU系统运行过程中需要获取准确的统一时间以进行信息交互从而实现复杂的功能和应用,所以时钟同步是实现多MCU嵌入式系统的必要功能。由于客观的物理条件限制,在多MCU系统运行时,其各时钟之间会存在差异。而如今常见的基于广播的对时方案仍存在时钟同步精度不足的问题。
发明内容
本发明针对现有技术存在的不足和缺陷,提供了一种基于Linux系统的多MCU时钟同步方案,方案通过对IO中断、MCU内核系统滴答、时间窗的利用,将时钟同步的误差控制在1ms以内。
本发明的目的可以通过以下技术方案来实现:
一种基于Linux系统的多MCU时钟同步方案,包括以下步骤:
步骤1:主MCU通过对时IO中断各子MCU,各子MCU内核记忆此时刻系统滴答systick,将系统滴答systick作为新基准滴答systickBaseNew并开启时间窗;
步骤2:主MCU下发新基准时间timeBaseNew,各子MCU应用层收到新基准时间timeBaseNew后给主MCU发送回复帧;
步骤3:在规定的等待时间内,若主MCU收到全部子MCU的回复帧,则再次通过对时IO中断各子MCU,跳转步骤4;若没有等到所有子MCU的回复帧,则等待各子MCU内核重置时间窗后跳转步骤1再次进行对时;
步骤4:若各子MCU内核检测到第二次中断,则用子MCU的新基准时间timeBaseNew和新基准滴答systickBaseNew更新原基准时间timeBase和原基准滴答systickBase;
步骤5:更新各子MCU的时标time。
进一步地,所述步骤1中子MCU开启的时间窗时间为2~4秒。
进一步地,所述步骤2中主MCU下发的新基准时间timeBaseNew为步骤1中主MCU中断子MCU那一时刻的时间。
进一步地,所述步骤3中的规定等待时间不超过2秒;若规定时间内没有收到所有子MCU的回复帧则跳转步骤1再次进行对时的次数仅为一次,若对时仍旧失败,则放弃该轮对时操作。
进一步地,所述步骤4中更新子MCU的原基准时间timeBase和原基准滴答systickBase的的过程中不能被中断打断,不能被应用读取。
进一步地,所述步骤5中各子MCU的时标time的计算方式为:time=timeBase+(systick-systickBase),其中systick为当前时刻的系统滴答。
本发明的有益技术效果:通过对IO中断、MCU内核系统滴答、时间窗的利用,提高了多MCU的时钟同步精度,将时钟同步的误差控制在1ms以内,从而能够支持设备实现更复杂的功能和应用。
附图说明
图1是本发明的总体流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不限定本发明。
实施例
一种基于Linux系统的多MCU时钟同步方案,包括以下步骤:
步骤1:主MCU通过对时IO中断各子MCU,各子MCU内核记忆此时刻系统滴答systick,将系统滴答systick作为新基准滴答systickBaseNew并开启时间窗;其中子MCU开启的时间窗时间为2~4秒。
实施例中,假设系统滴答systick每500μs触发一次,测试用子MCU内核记忆的系统滴答systick为1000,则新基准滴答systickBaseNew为1000,设定时间窗为4秒。
步骤2:主MCU下发新基准时间timeBaseNew,各子MCU应用层收到新基准时间timeBaseNew后给主MCU发送回复帧;其中timeBaseNew为步骤1中主MCU中断子MCU那一时刻的时间。
实施例中下发的新基准时间timeBaseNew为12:00:00:000。
步骤3:在规定的等待时间内,若主MCU收到全部子MCU的回复帧,则再次通过对时IO中断各子MCU,跳转步骤4;若没有等到所有子MCU的回复帧,则等待各子MCU内核重置时间窗后跳转步骤1再次进行一次对时,若对时仍旧失败,则放弃该轮对时操作;其中规定等待时间不超过2秒。
实施例中规定等待时间为2秒,主MCU收到子MCU的回复帧,则再次通过对时IO中断子MCU,跳转步骤4。
步骤4:若各子MCU内核检测到第二次中断,则用子MCU的新基准时间timeBaseNew和新基准滴答systickBaseNew更新原基准时间timeBase和原基准滴答systickBase;更新过程不能被中断打断,也不能被应用读取。
实施例中,子MCU内核检测到第二次中断,则用子MCU的新基准时间timeBaseNew和新基准滴答systickBaseNew更新原基准时间timeBase和原基准滴答systickBase,则timeBase为12:00:00:000,systickBase为1000。
步骤5:更新各子MCU的时标time;计算方式为:time=timeBase+(systick-systickBase),其中systick为当前时刻的系统滴答。
实施例中,当前时刻的系统滴答systick为1010,则最终得子MCU的时标time=12:00:00:005。
上述实施例是对本发明的具体实施方式的说明,而非对本发明的限制,有关技术领域的技术人员在不脱离本发明的精神和范围的情况下,还可做出各种变换和变化以得到相对应的等同的技术方案,因此所有等同的技术方案均应归入本发明的专利保护范围。
Claims (6)
1.一种基于Linux系统的多MCU时钟同步方案,其特征在于,包括以下步骤:
步骤1:主MCU通过对时IO中断各子MCU,各子MCU内核记忆此时刻系统滴答systick,将系统滴答systick作为新基准滴答systickBaseNew并开启时间窗;
步骤2:主MCU下发新基准时间timeBaseNew,各子MCU应用层收到新基准时间timeBaseNew后给主MCU发送回复帧;
步骤3:在规定的等待时间内,若主MCU收到全部子MCU的回复帧,则再次通过对时IO中断各子MCU,跳转步骤4;若没有等到所有子MCU的回复帧,则等待各子MCU内核重置时间窗后跳转步骤1再次进行对时;
步骤4:若各子MCU内核检测到第二次中断,则用子MCU的新基准时间timeBaseNew和新基准滴答systickBaseNew更新原基准时间timeBase和原基准滴答systickBase;
步骤5:更新各子MCU的时标time。
2.根据权利要求1所述的一种基于Linux系统的多MCU时钟同步方案,其特征在于,所述步骤1中子MCU开启的时间窗时间为2~4秒。
3.根据权利要求1所述的一种基于Linux系统的多MCU时钟同步方案,其特征在于,所述步骤2中主MCU下发的新基准时间timeBaseNew为步骤1中主MCU中断子MCU那一时刻的时间。
4.根据权利要求1所述的一种基于Linux系统的多MCU时钟同步方案,其特征在于,所述步骤3中的规定等待时间不超过2秒;若规定时间内没有收到所有子MCU的回复帧则跳转步骤1再次进行对时的次数仅为一次,若对时仍旧失败,则放弃该轮对时操作。
5.根据权利要求1所述的一种基于Linux系统的多MCU时钟同步方案,其特征在于,所述步骤4中更新子MCU的原基准时间timeBase和原基准滴答systickBase的过程中不能被中断打断,不能被应用读取。
6.根据权利要求1所述的一种基于Linux系统的多MCU时钟同步方案,其特征在于,所述步骤5中各子MCU的时标time的计算方式为:time=timeBase+(systick-systickBase),其中systick为当前时刻的系统滴答。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011519364.2A CN112578847A (zh) | 2020-12-21 | 2020-12-21 | 一种基于Linux系统的多MCU时钟同步方案 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011519364.2A CN112578847A (zh) | 2020-12-21 | 2020-12-21 | 一种基于Linux系统的多MCU时钟同步方案 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112578847A true CN112578847A (zh) | 2021-03-30 |
Family
ID=75136437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011519364.2A Pending CN112578847A (zh) | 2020-12-21 | 2020-12-21 | 一种基于Linux系统的多MCU时钟同步方案 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112578847A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711297A (zh) * | 2020-12-28 | 2021-04-27 | 青岛鼎信通讯股份有限公司 | 一种基于linux的多mcu时钟同步方案 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008861A (zh) * | 2006-01-26 | 2007-08-01 | 国际商业机器公司 | 确定时基值的电路和方法 |
US20110185216A1 (en) * | 2008-09-02 | 2011-07-28 | Yang Zhao | Time Synchronization Method and System for Multicore System |
CN102265237A (zh) * | 2008-08-21 | 2011-11-30 | 克罗诺洛吉克有限公司 | 同步和计时方法及设备 |
CN104092697A (zh) * | 2014-07-18 | 2014-10-08 | 杭州华三通信技术有限公司 | 一种基于时间的防重放方法及装置 |
CN105075155A (zh) * | 2013-04-05 | 2015-11-18 | 菲尼克斯电气公司 | 自动化装置和用于减少时间抖动的方法 |
CN105550156A (zh) * | 2015-12-02 | 2016-05-04 | 浙江大华技术股份有限公司 | 一种时间同步的方法及装置 |
CN106131947A (zh) * | 2016-09-14 | 2016-11-16 | 潘进 | 一种无线网络设备间时钟同步的方法 |
CN111506156A (zh) * | 2020-06-17 | 2020-08-07 | 北京机电工程研究所 | 一种处理器阵列的授时方法及系统 |
-
2020
- 2020-12-21 CN CN202011519364.2A patent/CN112578847A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008861A (zh) * | 2006-01-26 | 2007-08-01 | 国际商业机器公司 | 确定时基值的电路和方法 |
CN102265237A (zh) * | 2008-08-21 | 2011-11-30 | 克罗诺洛吉克有限公司 | 同步和计时方法及设备 |
US20110185216A1 (en) * | 2008-09-02 | 2011-07-28 | Yang Zhao | Time Synchronization Method and System for Multicore System |
CN105075155A (zh) * | 2013-04-05 | 2015-11-18 | 菲尼克斯电气公司 | 自动化装置和用于减少时间抖动的方法 |
CN104092697A (zh) * | 2014-07-18 | 2014-10-08 | 杭州华三通信技术有限公司 | 一种基于时间的防重放方法及装置 |
CN105550156A (zh) * | 2015-12-02 | 2016-05-04 | 浙江大华技术股份有限公司 | 一种时间同步的方法及装置 |
CN106131947A (zh) * | 2016-09-14 | 2016-11-16 | 潘进 | 一种无线网络设备间时钟同步的方法 |
CN111506156A (zh) * | 2020-06-17 | 2020-08-07 | 北京机电工程研究所 | 一种处理器阵列的授时方法及系统 |
Non-Patent Citations (2)
Title |
---|
何万里等: "基于CAN总线的分布式高精度时钟的实现", 《计算机工程与应用》 * |
郭晓冬等: "UPFC实验系统实时数据同步交换研究", 《电气应用》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711297A (zh) * | 2020-12-28 | 2021-04-27 | 青岛鼎信通讯股份有限公司 | 一种基于linux的多mcu时钟同步方案 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102929735B (zh) | 一种时钟校正的方法和设备 | |
JP4856503B2 (ja) | Todクロックをステアリングするためのシステムおよび方法 | |
CN101601214B (zh) | 促进协调定时网络中的恢复的方法和系统 | |
RU2008133417A (ru) | Модель синхронизации равноправных участников | |
CN105677465B (zh) | 应用于银行跑批处理的数据处理方法及装置 | |
CN108564463B (zh) | 一种银行异常交易冲正方法及系统 | |
CN112578847A (zh) | 一种基于Linux系统的多MCU时钟同步方案 | |
CN112711297A (zh) | 一种基于linux的多mcu时钟同步方案 | |
CN101923369A (zh) | 基板管理控制器时间管理系统及方法 | |
CN111478834A (zh) | 一种基于非实时系统的EtherCAT主站同步方法 | |
JP2009181576A (ja) | 計算機又はプログラム可能機械において時間値を処理するための方法 | |
CN108259109A (zh) | Ptp域中的网络设备及tod同步方法 | |
CN109194432A (zh) | 一种kvm下多虚拟机时间同步系统 | |
US20110171948A1 (en) | Transaction in memory object store | |
CN105653376A (zh) | Arm平台中bios与bmc同时启动时保证信息同步的优化算法 | |
JP2000259429A (ja) | タイマー管理装置および方法 | |
CN110795118A (zh) | 一种云平台升级工具及升级方法 | |
CN114124280B (zh) | 一种基于cpt原子钟的多系统间时间同步及对时方法及系统 | |
CN105515709A (zh) | 基于国产FPGA和uclinux操作系统的时间同步装置 | |
CN112597242B (zh) | 一种基于涉及批量任务的应用系统数据切片的抽取方法 | |
US7085948B2 (en) | Method, apparatus, and computer program product for implementing time synchronization correction in computer systems | |
CN111506668B (zh) | 机器人集群智能化数据同步方法及系统 | |
CN201215637Y (zh) | 一种计算机授时卡及系统 | |
CN106020332A (zh) | 计时处理方法及系统 | |
CN110492961B (zh) | 高精度的过程层以太网交换机系统时间同步方法和系统 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210330 |