CN117111682A - 一种在中标麒麟系统下使用时统板实现时间同步的方法 - Google Patents

一种在中标麒麟系统下使用时统板实现时间同步的方法 Download PDF

Info

Publication number
CN117111682A
CN117111682A CN202311075001.8A CN202311075001A CN117111682A CN 117111682 A CN117111682 A CN 117111682A CN 202311075001 A CN202311075001 A CN 202311075001A CN 117111682 A CN117111682 A CN 117111682A
Authority
CN
China
Prior art keywords
time
system board
pulse
interrupt
board
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
Application number
CN202311075001.8A
Other languages
English (en)
Inventor
刘丽霞
陈婧
孙昆
张宝亮
卫永安
杨舸
李汉阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Computer Technology and Applications
Original Assignee
Beijing Institute of Computer Technology and Applications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Computer Technology and Applications filed Critical Beijing Institute of Computer Technology and Applications
Priority to CN202311075001.8A priority Critical patent/CN117111682A/zh
Publication of CN117111682A publication Critical patent/CN117111682A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Electric Clocks (AREA)

Abstract

本发明涉及一种在中标麒麟系统下使用时统板实现时间同步的方法,属于计算机软件领域。本发明时钟设备通过输出标准秒脉冲来控制时统板的走时系统,将卫星时间同步到时统板时间,使用时统板驱动接口,设计循环每隔interval秒定期读取时统板时间更改或同步操作系统时间服务,这样应用程序可以直接调用获取系统时间的标准函数来实现时间同步。本发明提出设计使用时统板定时给本地时间校时,应用程序通过读取本地时间实现时间同步,本发明提出的技术方案稳定和有效。

Description

一种在中标麒麟系统下使用时统板实现时间同步的方法
技术领域
本发明属于计算机软件领域,具体涉及一种在中标麒麟系统下使用时统板实现时间同步的方法。
背景技术
在多任务应用中,各个子系统设备间要求工作时间高精度同步,为保证采集的数据和处理数据具有严格的实时性和同时性,装备系统通常使用高精度时统板设备保证武器装备系统中时间同步问题。时统板一般会插在机箱里通过总线与中央处理器(CentralProcessing Unit,CPU)联接。时统板与时钟设备,CPU间连接关系,见图1。
其中,时钟设备提供标准秒脉冲信号和绝对时间源。时钟设备通过输出标准秒脉冲来控制时统板的走时系统,从而同步时统板时间。时钟设备通过接收卫星获取北斗或全球定位系统(Global Positioning System,GPS)的世界统一时间(Universal TimeCoordinated,UTC),然后随着秒脉冲同步转发到时统板。时统板使用现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)作为主控芯片及高稳晶振提供稳定时钟和高精度电路保证0.01ms级以上的时间稳定精准同步。
设备驱动程序作为应用软件与硬件设备沟通的桥梁,其性能优劣直接影响到设备在操作系统控制下的工作状态,因此开发高性能的设备驱动程序显得十分重要。
中标麒麟操作系统是基于开源Linux技术开发的国产操作系统,通过对内核进行修改和加固,改善内存、CPU(多内核系统)、输入输出和网络的性能和可扩展性。针对PCIe设备的驱动,中标麒麟与Linux下的驱动架构是通用的。
在中标麒麟操作系统下使用时统板获取时间的实际应用中,一台主机上需要多个应用程序获取到卫星的绝对时间,为了保证时间的同步,每个应用程序需要获取时统板时间,同一时间读取时统板的需求,对时统板驱动提出了更高的设计要求,一般会使用信号量来进行同步协调。多层次信号量的使用,如果出现不规范,会对系统造成死锁等灾难。另外,时间信息和秒脉冲信号同时使用才能保证时间的精度,目前,大部分时统板驱动中,秒脉冲的使用都是中断独占机制,也就是同一时间,秒脉冲只能被一个应用程序使用,不能使用秒脉冲使得其他应用程序获取准确时间受限。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种在中标麒麟系统下使用时统板实现时间同步的方法,以解决多层次信号量的使用,如果出现不规范,会对系统造成死锁等灾难,秒脉冲只能被一个应用程序使用,不能使用秒脉冲使得其他应用程序获取准确时间受限的问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种在中标麒麟系统下使用时统板实现时间同步的方法,该方法包括两部分:时统板驱动软件设计和校时服务设计;
在中标麒麟操作系统下,设计的时统板驱动软件包括:驱动模块加载、驱动模块实现和驱动模块卸载;
驱动模块实现,提供虚拟文件系统的接口函数对应的字符设备驱动,分内核态和用户态两部分进行设计,包括:秒脉冲中断响应和处理、打开时统板和读时间;
秒脉冲中断响应和处理包括:当秒脉冲到来时,操作系统在内核态便会触发中断,与中断挂接的中断处理函数将中断信息告知用户态,这种告知方式通过在内核态和用户态层设置异步通知实现;
打开时统板包括:在内核态,打开时统板是对时统板设备进行秒脉冲中断使能操作,在用户态,执行系统函数open操作后,使用系统函数s ignal(SIGIO,stPps)设置信号处理函数;
读取时间包括:在内核态,读取时间实现从时统板寄存器获取到实时时间,然后将时间返回到用户态,在用户态,调用标准IO函数read()来接收从内核驱动层获得的时间信息;
校时服务设计包括:时钟设备通过输出标准秒脉冲来控制时统板的走时系统,将卫星时间同步到时统板时间,通过设计循环每隔interval秒定期读取时统板时间来更改或同步操作系统时间服务,应用程序直接调用获取系统时间的标准函数来实现时间同步。
进一步地,时钟设备提供标准秒脉冲信号和绝对时间源,时钟设备通过输出标准秒脉冲来控制时统板的走时系统,从而同步时统板时间;时钟设备通过接收卫星获取北斗或全球定位系统GPS的世界统一时间UTC,然后随着秒脉冲同步转发到时统板;时统板使用现场可编程逻辑门阵列FPGA作为主控芯片及高稳晶振提供稳定时钟和高精度电路。
进一步地,驱动模块加载包括:注册PCIe驱动,查找PCIe设备,IO地址映射到内存地址,动态获取字符设备号,注册cdev设备和创建设备类。
进一步地,驱动模块卸载包括:注销cdev设备,释放设备号。
进一步地,在内核态,设置与中断挂接的中断处理函数,当时统板秒脉冲到来时,系统会自动执行中断处理函数,在中断处理函数中通过异步通知机制发送信号SIGIO来告知用户态整秒时刻到来。
进一步地,在用户态,初始化时统板,使用open接口打开设备成功后,使用系统函数s ignal(SIGIO,stPps)设置与内核态信号SIGIO对应的信号处理函数stPps。秒脉冲中断到来时,内核自动执行中断处理函数,发送SIGIO到用户态,用户态的SIGIO信号被触发时,系统自动执行信号处理函数stPps。
进一步地,在信号处理函数stPps中,用户设置自己使用秒脉冲中断的用途。
进一步地,用途包括:计数、获取读取整秒时间、使用整秒时间进行校时或发布通知。
进一步地,打开时统板还包括:在用户态使用fcntl(m_fd,F_SETFL,FASYNC)设置信号的异步通知模式。
进一步地,所述校时服务设计具体实现步骤包括:
在一个whi le循环中,用户态等到内核态秒脉冲中断后,统计秒脉冲到来的次数num,如果达到interval次,也就是interval秒后,将实时读取的时统板整秒时间,写入操作系统时间,接着将秒脉冲统计次数num清零,继续循环执行上述操作,直到人为干预停止更新本地时间为止才跳出whi le循环。
(三)有益效果
本发明提出一种在中标麒麟系统下使用时统板实现时间同步的方法,本发明提出设计使用时统板定时给本地时间校时,应用程序通过读取本地时间实现时间同步。与现有技术相比,通过实验对比直接读取时统板时间与读取被时统板定时校准的本地时间的误差,说明了提出的技术方案稳定和有效;同时,拓展了时统板应用,在时统板功能使用上具有一定的参考和推广价值。
附图说明
图1为时统板连接图;
图2为本发明时统板驱动功能实现图;
图3为本发明校时服务的设计实现图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明的目的就是设计时统板驱动,并提出设计和实现时统板同步校准本地时间的服务,该服务实现应用程序通过随时读取本地时间来实现时间同步应用。该发明不仅能满足时间同步应用,另外也能规避驱动程序设计复杂性带来异常问题。
本发明提供一种在中标麒麟系统下使用时统板实现时间同步的方法,包括两部分,一部分是时统板驱动软件的设计,另一部分是校时服务的设计和实现。
在中标麒麟操作系统下,设计的时统板驱动软件包括:驱动模块加载、驱动模块实现和驱动模块卸载。
驱动模块加载包括:注册PCIe驱动,查找PCIe设备,IO地址映射到内存地址,动态获取字符设备号,注册cdev设备,创建设备类。
驱动模块卸载包括:注销cdev设备,释放设备号。
驱动模块实现,提供虚拟文件系统的接口函数对应的字符设备驱动。有了驱动程序提供的访问接口函数,对应用程序而言,硬件设备只是一个设备文件,可以像操作普通文件一样对硬件设备进行操作访问。
图2是时统板驱动模块实现的主要设计内容。分内核态和用户态两部分进行设计,包括:秒脉冲中断响应和处理、打开时统板和读时间。
(1)秒脉冲中断响应和处理。
时统板通过秒脉冲进行时间校准,时钟设备每整秒向时统板发送一个TTL电平作为秒脉冲信号,时统板接收到TTL电平后,时统板的FPGA程序维护的毫秒值计数器就会清零。于是在用户态层可以通过获取秒脉冲信号来判断是否为整秒。
实现机理是:当秒脉冲到来时,操作系统在内核态便会触发中断,与中断挂接的中断处理函数将中断信息告知用户态。这种告知方式,需要分别在内核态和用户态层设置异步通知实现。
在内核态,设置与中断挂接的中断处理函数,这样,当时统板秒脉冲到来时,系统会自动执行中断处理函数,在中断处理函数中通过异步通知机制发送信号SIGIO来告知用户态整秒时刻到来。
在用户态,初始化时统板,使用open接口打开设备成功后,使用系统函数s ignal(SIGIO,stPps)设置与内核态信号SIGIO对应的信号处理函数stPps。秒脉冲中断到来时,内核自动执行中断处理函数,发送SIGIO到用户态,用户态的SIGIO信号被触发时,系统自动执行信号处理函数stPps。在信号处理函数stPps中,用户可以设置自己使用秒脉冲中断的用途,比如计数,获取读取整秒时间,使用整秒时间进行校时或发布通知等应用。
(2)打开时统板。在内核态,打开时统板主要功能是对时统板设备进行秒脉冲中断使能操作。在用户态,主要是执行系统函数open操作后,使用系统函数s ignal(SIGIO,stPps)设置信号处理函数,使用fcntl(m_fd,F_SETFL,FASYNC)设置信号的异步通知模式。
(3)读取时间。在内核态,读取时间实现从时统板寄存器获取到实时时间,然后将时间返回到用户态。在用户态,调用标准IO函数read()来接收从内核驱动层获得的时间信息。
图3是校时服务的设计实现图。
基于图2时统板驱动模块功能实现的接口,设计了同步校准本地时间的服务。
实现原理就是时钟设备通过输出标准秒脉冲来控制时统板的走时系统,将卫星时间同步到时统板时间,使用图1中时统板驱动接口,设计循环每隔interval秒定期读取时统板时间更改或同步操作系统时间服务,这样应用程序可以直接调用获取系统时间的标准函数来实现时间同步。具体实现步骤如下:
在一个whi le循环中,用户态等到内核态秒脉冲中断后,统计秒脉冲到来的次数num(每整秒来一个秒脉冲中断),如果达到interval次,也就是interval秒后,将实时读取的时统板整秒时间,写入操作系统时间,接着将秒脉冲统计次数num清零,继续循环执行上述操作,直到人为干预停止更新本地时间为止才跳出whi le循环。
为了验证本发明设计的驱动有效性和同步时间方案的可行性,设计了测试软件,同时查询时统板时间和操作系统时间进行对比,以时统板时间作为基准,评定被定时校准的操作系统时间误差。运行时统板定时校准操作系统时间的服务后,任一时刻,从时统板读取的时间与读取的操作系统时间相差均在1ms以内。在实际应用中,这个误差可以接受。
因此,本文设计的使用时统板定时更新本地时间的方法实用有效,一方面拓展了时统板的使用方法,另一方面也为用户更灵活地获取和使用时间提供了便利。
本发明提出设计使用时统板定时给本地时间校时,应用程序通过读取本地时间实现时间同步。与现有技术相比,通过实验对比直接读取时统板时间与读取被时统板定时校准的本地时间的误差,说明了提出的技术方案稳定和有效;同时,拓展了时统板应用,在时统板功能使用上具有一定的参考和推广价值。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (10)

1.一种在中标麒麟系统下使用时统板实现时间同步的方法,其特征在于,该方法包括两部分:时统板驱动软件设计和校时服务设计;
在中标麒麟操作系统下,设计的时统板驱动软件包括:驱动模块加载、驱动模块实现和驱动模块卸载;
驱动模块实现,提供虚拟文件系统的接口函数对应的字符设备驱动,分内核态和用户态两部分进行设计,包括:秒脉冲中断响应和处理、打开时统板和读时间;
秒脉冲中断响应和处理包括:当秒脉冲到来时,操作系统在内核态便会触发中断,与中断挂接的中断处理函数将中断信息告知用户态,这种告知方式通过在内核态和用户态层设置异步通知实现;
打开时统板包括:在内核态,打开时统板是对时统板设备进行秒脉冲中断使能操作,在用户态,执行系统函数open操作后,使用系统函数signal(SIGIO,stPps)设置信号处理函数;
读取时间包括:在内核态,读取时间实现从时统板寄存器获取到实时时间,然后将时间返回到用户态,在用户态,调用标准IO函数read()来接收从内核驱动层获得的时间信息;
校时服务设计包括:时钟设备通过输出标准秒脉冲来控制时统板的走时系统,将卫星时间同步到时统板时间,通过设计循环每隔interval秒定期读取时统板时间来更改或同步操作系统时间服务,应用程序直接调用获取系统时间的标准函数来实现时间同步。
2.如权利要求1所述的在中标麒麟系统下使用时统板实现时间同步的方法,其特征在于,时钟设备提供标准秒脉冲信号和绝对时间源,时钟设备通过输出标准秒脉冲来控制时统板的走时系统,从而同步时统板时间;时钟设备通过接收卫星获取北斗或全球定位系统GPS的世界统一时间UTC,然后随着秒脉冲同步转发到时统板;时统板使用现场可编程逻辑门阵列FPGA作为主控芯片及高稳晶振提供稳定时钟和高精度电路。
3.如权利要求1所述的在中标麒麟系统下使用时统板实现时间同步的方法,其特征在于,驱动模块加载包括:注册PCIe驱动,查找PCIe设备,IO地址映射到内存地址,动态获取字符设备号,注册cdev设备和创建设备类。
4.如权利要求1所述的在中标麒麟系统下使用时统板实现时间同步的方法,其特征在于,驱动模块卸载包括:注销cdev设备,释放设备号。
5.如权利要求1所述的在中标麒麟系统下使用时统板实现时间同步的方法,其特征在于,在内核态,设置与中断挂接的中断处理函数,当时统板秒脉冲到来时,系统会自动执行中断处理函数,在中断处理函数中通过异步通知机制发送信号SIGIO来告知用户态整秒时刻到来。
6.如权利要求5所述的在中标麒麟系统下使用时统板实现时间同步的方法,其特征在于,在用户态,初始化时统板,使用open接口打开设备成功后,使用系统函数signal(SIGIO,stPps)设置与内核态信号SIGIO对应的信号处理函数stPps;秒脉冲中断到来时,内核自动执行中断处理函数,发送SIGIO到用户态,用户态的SIGIO信号被触发时,系统自动执行信号处理函数stPps。
7.如权利要求6所述的在中标麒麟系统下使用时统板实现时间同步的方法,其特征在于,在信号处理函数stPps中,用户设置自己使用秒脉冲中断的用途。
8.如权利要求7所述的在中标麒麟系统下使用时统板实现时间同步的方法,其特征在于,用途包括:计数、获取读取整秒时间、使用整秒时间进行校时或发布通知。
9.如权利要求8所述的在中标麒麟系统下使用时统板实现时间同步的方法,其特征在于,打开时统板还包括:在用户态使用fcntl(m_fd,F_SETFL,FASYNC)设置信号的异步通知模式。
10.如权利要求1-9任一项所述的在中标麒麟系统下使用时统板实现时间同步的方法,其特征在于,所述校时服务设计具体实现步骤包括:
在一个whi le循环中,用户态等到内核态秒脉冲中断后,统计秒脉冲到来的次数num,如果达到interval次,也就是interval秒后,将实时读取的时统板整秒时间,写入操作系统时间,接着将秒脉冲统计次数num清零,继续循环执行上述操作,直到人为干预停止更新本地时间为止才跳出whi le循环。
CN202311075001.8A 2023-08-24 2023-08-24 一种在中标麒麟系统下使用时统板实现时间同步的方法 Pending CN117111682A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311075001.8A CN117111682A (zh) 2023-08-24 2023-08-24 一种在中标麒麟系统下使用时统板实现时间同步的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311075001.8A CN117111682A (zh) 2023-08-24 2023-08-24 一种在中标麒麟系统下使用时统板实现时间同步的方法

Publications (1)

Publication Number Publication Date
CN117111682A true CN117111682A (zh) 2023-11-24

Family

ID=88808723

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311075001.8A Pending CN117111682A (zh) 2023-08-24 2023-08-24 一种在中标麒麟系统下使用时统板实现时间同步的方法

Country Status (1)

Country Link
CN (1) CN117111682A (zh)

Similar Documents

Publication Publication Date Title
US5715438A (en) System and method for providing time base adjustment
US5948111A (en) Real time comparison of integrated circuit operation
US6460107B1 (en) Integrated real-time performance monitoring facility
US6223228B1 (en) Apparatus for synchronizing multiple processors in a data processing system
US5448716A (en) Apparatus and method for booting a multiple processor system having a global/local memory architecture
US8275979B2 (en) Initialization of a data processing system
US10102050B2 (en) System and method for generating cross-core breakpoints in a multi-core microcontroller
EP1082660A2 (en) Fault tolerant computing system using instruction counting
JPH0374756A (ja) 情報処理システム
US4631667A (en) Asynchronous bus multiprocessor system
GB1565320A (en) Transferring data information
US6584586B1 (en) Apparatus and method for capturing and transferring internal system activity
US6389383B1 (en) System and method for interfacing software and hardware
US10162792B2 (en) Method and system for high precision time synchronization
US20040193735A1 (en) Method and circuit arrangement for synchronization of synchronously or asynchronously clocked processor units
CN117111682A (zh) 一种在中标麒麟系统下使用时统板实现时间同步的方法
US6775789B2 (en) Method, system and program products for generating sequence values that are unique across operating system images
Bapp et al. Towards fail-operational systems on controller level using heterogeneous multicore soc architectures and hardware support
CN201215637Y (zh) 一种计算机授时卡及系统
CN114779883B (zh) 系统时钟同步方法、装置、系统及存储介质
CN109710565B (zh) Vpx机箱b码时统的逻辑实现系统及方法
Smith Jr et al. Development and evaluation of a fault-tolerant multiprocessor (FTMP) computer. Volume 1: FTMP principles of operation
US20230153156A1 (en) Synchronization of system resources in a multi-socket data processing system
CN100547557C (zh) 一种多模电子系统的组合同步方法
US11748141B2 (en) Providing virtual devices direct access to clock times in memory locations managed by a hypervisor

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