High-precision timely satellite time service and time keeping method with fault-tolerant mechanism
By dividing UTC time information into whole seconds and fractional parts, and utilizing the continuity of PPS second pulses and satellite messages for real-time updates and corrections, the timeliness and accuracy issues of satellite timekeeping under faults such as satellite signal interruption are resolved, and high-precision time reference establishment and calibration are achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- BEIJING AEROSPACE AUTOMATIC CONTROL RES INST
- Filing Date
- 2025-12-31
- Publication Date
- 2026-04-21
AI Technical Summary
Under fault conditions such as satellite signal interruption, recovery after interruption, and abnormal timing of second pulse and message information, the existing technology cannot establish the initial time reference in a timely manner, and the self-timekeeping does not have fault-tolerant calibration function, thus failing to achieve high-precision and timely time synchronization.
The UTC time information is divided into whole second part and fractional part after the second. Taking advantage of the continuity between the PPS second pulse and the whole second UTC time of the satellite message, the fractional part after the second is updated in real time by the device timing, and real-time correction is performed after the initial time base is established to avoid timing errors.
It improves the system's response speed for time synchronization and time calibration, enhances the system's reliability and timing accuracy under fault conditions, and does not require additional hardware overhead.
Smart Images

Figure CN121900129A_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of integrated navigation and proposes a method for timely and accurate system time synchronization and timekeeping under fault conditions such as sudden interruption of satellite signals, recovery after interruption, and abnormal timing of second pulse and message information. Background Technology
[0002] Using satellites such as BeiDou and GPS to synchronize the time of navigation systems is a crucial method for establishing a time reference for navigation systems. It is widely used in multi-source information fusion navigation systems such as inertial / satellite integrated navigation and inertial / astronomical integrated navigation, for time synchronization between primary inertial information and auxiliary sensor measurements. Satellite timing information generally includes a PPS (Pulse Per Second) signal and a message containing UTC time. Due to the large amount of message information and long transmission time, there is a significant time delay between the system receiving the message and the satellite generating it. Therefore, to accurately mark the satellite timing time, a hardware-based method is typically used to generate high and low level PPS signals, and the rising or falling edge of the high or low level signal represents the corresponding message generation time, thereby significantly improving timing accuracy. Chen Wei, in his paper "Research on High-Precision Time Synchronization Method Based on Satellite Timing," elaborates on the above process from a hardware implementation perspective. Next, the integrated navigation system uses the PPS pulse signal and time message information transmitted by the satellite receiver to update its own system timing, achieving synchronization with UTC time and establishing an initial time reference. Then, it uses the system's internal crystal oscillator to achieve self-timekeeping and continuously receives PPS and message information to achieve real-time alignment between the inertial instrument pulses and satellite information. This method is a common time synchronization and timekeeping scheme in the field of integrated navigation systems, but it has the following shortcomings: The initial time base is not established in a timely manner. Since the message information is delayed relative to the PPS signal, the time information in the message is usually parsed and the time base is obtained in the previous PPS cycle, and then the UTC time is updated in the next PPS cycle. The system does not have time fault tolerance calibration function under abnormal conditions such as sudden interruption of satellite signal and recovery after interruption when it is self-guarding; The system lacks the function of time-tolerance calibration to detect abnormal timing of PPS pulses and message information. Summary of the Invention
[0003] The technical problem solved by this invention is to propose a high-precision and timely satellite time synchronization and timekeeping method with fault tolerance mechanism, which can perform timely and accurate time synchronization and timekeeping under fault conditions such as sudden interruption of satellite signal, recovery after interruption, and abnormal timing of second pulse and message information.
[0004] The solution of this invention is: a high-precision, timely satellite time synchronization and timekeeping method with a fault-tolerant mechanism, comprising: The UTC time information required for device time synchronization and timekeeping is divided into whole second part and fractional part after the second; After receiving the second pulse for the first time, the device keeps time by using its internal timing mechanism. By determining the continuity between the second pulse and the whole-second UTC time of the satellite message, and by using the device timing to update the fractional part after the second in real time, and then using the received UTC time information to update the whole-second part, the initial time reference is established. The timing error caused by missing second pulses, time messages, or drift of the device's timing system is corrected in real time using the second pulse and whole second UTC time of satellite messages.
[0005] Preferably, the establishment of the initial time base includes: After initialization, the device begins receiving and responding to the PPS second pulse signal via an interrupt, while simultaneously receiving UTC time information for satellite messages in whole seconds. Upon receiving the first PPS second pulse signal, the device responds to an interrupt signal, enabling the PPS flag (PPS_mark) to be 1. Simultaneously, after initialization, the device immediately begins real-time periodic responses to its own crystal oscillator timing interrupt, starting the internal pulse timer `pulcnt` to accumulate. It also checks the PPS_mark flag; if PPS_mark is 1, the device updates the UTC time timer `Y_M_D_H_Min_Sec.abc` each timing cycle according to the following assignment formula: Y_M_D_H_Min_Sec.abc = Y_M_D_H_Min_Sec.abc+△T Where △T is the device timing cycle setting, Y_M_D_H_Min_Sec represents the year, month, day, hour, minute, and second of the whole second part; .abc represents the decimal part after the whole second node; Each time the device responds to a PPS interrupt, it needs to record the current pulse timer value, denoted as pulsecnt_PPS; when the device first obtains the UTC integer second node timing value UTC_Y_M_D_H_Min_Sec1, it immediately records the current pulse timer value, denoted as pulsecnt_UTC; compare the difference between the current pulsecnt_UTC and pulsecnt_PPS, if: 0< (pulcnt_UTC - pulcnt_PPS)△T<1s The year, month, day, hour, minute, and second information before the second node of the UTC timer Y_M_D_H_Min_Sec.abc will be updated immediately, and the decimal places will remain unchanged after the second. The initial time base of the device has been successfully established.
[0006] Preferably, after the time base is established, the time difference between the time message and the PPS second pulse is judged before correction to avoid timing errors caused by abnormal timing faults between the second pulse and the message information.
[0007] Preferably, when the device receives the UTC time integer node value UTC_Y_M_D_H_Min_Sec of the satellite message for the second time and thereafter, it compares it with the UTC timer integer node value, and compares the difference between the current pulcnt_UTC and pulcnt_PPS, and performs correction according to the following rules: If 0 < (pulcnt_UTC - pulcnt_PPS)△T < 1s and Y_M_D_H_Min_Sec ! = UTC_Y_M_D_H_Min_Sec Y_M_D_H_Min_Sec = UTC_Y_M_D_H_Min_Sec, otherwise do not update.
[0008] Preferably, the real-time correction includes: When the device receives the PPS second pulse signal for the second time or subsequent times, it responds to the PPS interrupt, checks the UTC time timer Y_M_D_H_Min_Sec.abc within the interrupt, and performs UTC time calibration as follows: If .abc <= 500ms: Do not update Y_M_D_H_Min_Sec; .abc=0; Otherwise, update using the following assignment formula: Y_M_D_H_Min_Sec = Y_M_D_H_Min_Sec + 1s; .abc=0.
[0009] Preferably, the device is a combined navigation system, a rocket control system, or a device with time synchronization and timekeeping application requirements.
[0010] A high-precision, timely satellite time synchronization and timekeeping system with fault-tolerant mechanisms includes: The self-timekeeping module continuously and periodically maintains its own time by updating the device's internal UTC time after receiving the second pulse for the first time. The time reference establishment module divides the UTC time information required for device time synchronization and timekeeping into whole second part and fractional part after the second; by judging the continuity between the second pulse and the whole second UTC time of the satellite message, and using the device timing to update the fractional part after the second in real time, and then using the received UTC time information to update the whole second part, the initial time reference is established; The time error correction module, after the initial time base is established, uses the internal UTC time provided by the self-synchronization module to correct timing errors caused by missing second pulses, time messages, or drift of the device's timing system in real time, based on the second pulse and the whole second UTC time of the satellite message.
[0011] Preferably, the time base establishment module processes the data in the following manner: After initialization, the device begins receiving and responding to the PPS second pulse signal via an interrupt, while simultaneously receiving the UTC time information of satellite messages in whole seconds. When the PPS second pulse signal is received for the first time, the device responds to the interrupt signal, enabling the PPS flag PPS_mark to be equal to 1. At the same time, after initialization, the device immediately begins to periodically respond to its own crystal oscillator timing interrupt in real time, starting the internal pulse timer pulsecnt to accumulate; and checks the PPS_mark flag. If PPS_mark is 1, the self-timekeeping module is triggered to start self-timekeeping. Each time the device responds to a PPS interrupt, it needs to record the current pulse timer value, denoted as pulsecnt_PPS; when the device first obtains the UTC integer second node timing value UTC_Y_M_D_H_Min_Sec1, it immediately records the current pulse timer value, denoted as pulsecnt_UTC; compare the difference between the current pulsecnt_UTC and pulsecnt_PPS, if: 0< (pulcnt_UTC - pulcnt_PPS)△T<1s The system will immediately update the year, month, day, hour, minute, and second information before the second node of the UTC timer Y_M_D_H_Min_Sec.abc currently updated by the self-time synchronization module, while keeping the decimal places unchanged after the second. The initial time base of the device has been successfully established.
[0012] A computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps of a high-precision, timely satellite time synchronization and timekeeping method with fault tolerance.
[0013] A computer software product includes: a processor and a storage device; Storage device for storing one or more programs. When the one or more programs are executed by one or more processors, the one or more processors implement the high-precision, timely satellite time synchronization and timekeeping method with fault tolerance.
[0014] The advantages of this invention compared to the prior art are: This invention divides the UTC time information required for timing and timekeeping in a combined navigation system into an integer second part and a fractional part after the second. Simultaneously, it utilizes the integer second node characteristics of the PPS second pulse and the precise timing characteristics of the time message information to assign and correct these two parts respectively. While completing the establishment of the time base and the correction of time drift, it can update or establish the initial value of the UTC time in the next PPS cycle without waiting for the parsing of the time message of the previous PPS cycle to be completed. This improves the system's time synchronization and time calibration response speed and can adapt to fault conditions such as second pulse interruption and recovery after interruption.
[0015] This invention determines the time difference between the time message and the PPS second pulse before time calibration, which can avoid timing errors caused by faults such as abnormal timing of the second pulse and message information, and improve system reliability.
[0016] This invention requires no additional hardware overhead; it can complete the time reference establishment and calibration using only the internal computing and processing unit of the integrated navigation system, and the system timing accuracy can directly reach the minimum timing accuracy used by the computing and processing unit. Attached Figure Description
[0017] Figure 1 Satellite time synchronization and timekeeping methods and timing sequence. Detailed Implementation
[0018] The present invention will be further described below with reference to the embodiments.
[0019] This embodiment describes a high-precision, timely satellite timing and timekeeping method with a fault-tolerant mechanism. The device is illustrated using a combined navigation system as an example. Figure 1 As shown, it includes the following steps: (1) After the integrated navigation system is initialized, the internal computing and processing unit starts receiving and responding to the PPS second pulse signal via an interrupt, and simultaneously receives the satellite message's whole-second UTC time information (year, month, day, hour, minute, second) via the communication interface. When the PPS second pulse signal is received for the first time, the integrated navigation system responds to the interrupt signal and enables the PPS flag bit PPS_mark = 1 (initial value is zero). At the same time, after the integrated navigation system is initialized, it immediately begins to periodically respond to its own crystal oscillator timing interrupt in real time (interrupt priority is higher than PPS interrupt, timing period is set to ΔT), and starts the internal pulse timer pulcnt to accumulate (initial value is zero), that is... pulcnt = pulcnt +1(1) And check the PPS_mark flag. If PPS_mark == 1, then update the UTC timer Y_M_D_H_Min_Sec.abc every timing cycle (using a timing interrupt), as follows: Y_M_D_H_Min_Sec.abc = Y_M_D_H_Min_Sec.abc+△T(2) In Y_M_D_H_Min_Sec (initially all zeros), Y, M, D, H, Min, and Sec represent the year, month, day, hour, minute, and second of the whole-second UTC time, respectively; .abc represents the fractional part after the whole-second node (also initially zero). The specific resolution depends on the minimum timing period △T of the integrated navigation system. When updating the UTC timer, the year, month, day, hour, minute, and second must be updated according to the time carry-over rules.
[0020] (2) When the integrated navigation system responds to the PPS interrupt each time, it needs to record the current pulse timer pulcnt value, which is denoted as pulcnt_PPS (initial value is zero).
[0021] (3) When the integrated navigation system receives the message sent by the satellite receiver for the first time through the communication interface and successfully parses it to obtain the UTC integer second node timing value UTC_Y_M_D_H_Min_Sec1, it immediately records the current pulse timer pulcnt value as pulcnt_UTC (initial value is zero). Compare the difference between the current pulcnt_UTC and pulcnt_PPS. If: 0< (pulcnt_UTC - pulcnt_PPS)△T<1s(3) Then immediately update the year, month, day, hour, minute, and second information before the second node of the UTC timer Y_M_D_H_Min_Sec.abc, and keep the decimal places unchanged after the second. Y_M_D_H_Min_Sec = UTC_Y_M_D_H_Min_Sec1(4) At this point, the initial time reference of the integrated navigation system was successfully established.
[0022] (4) After that, each time a message is received and successfully parsed, pulsecnt_UTC must be recorded.
[0023] (5) When the integrated navigation system receives the PPS second pulse signal again (the second time and thereafter, excluding the first time), the integrated navigation system responds to the PPS interrupt, checks the UTC time timer Y_M_D_H_Min_Sec.abc in the interrupt, and performs UTC time calibration as follows: If .abc <= 500ms: Y_M_D_H_Min_Sec = Y_M_D_H_Min_Sec; (5) .abc=0; otherwise: Y_M_D_H_Min_Sec = Y_M_D_H_Min_Sec + 1s; (6) .abc=0; (6) When the integrated navigation system successfully receives the UTC integer second node timing value UTC_Y_M_D_H_Min_Seck from the message sent by the satellite receiver again (the second time and thereafter, excluding the first time) through the communication interface (k represents the kth time, k≥2), it compares it with the UTC timer integer second node value, and compares the difference between the current pulsecnt_UTC and pulsecnt_PPS, and corrects it according to the following rules: If 0 < (pulcnt_UTC - pulcnt_PPS)△T < 1s and Y_M_D_H_Min_Sec ! = UTC_Y_M_D_H_Min_Seck Y_M_D_H_Min_Sec = UTC_Y_M_D_H_Min_Seck; (7) otherwise: Y_M_D_H_Min_Sec = UTC_Y_M_D_H_Min_Sec; (8) During the above process, the integrated navigation system continuously and periodically responds to its own crystal oscillator timing interrupts to maintain self-time. Each timing cycle (using the interrupt) updates the UTC timer Y_M_D_H_Min_Sec.abc, and updates the year, month, day, hour, minute, and second according to the time carry-over rules. Y_M_D_H_Min_Sec.abc = Y_M_D_H_Min_Sec.abc+△T(9) The method involved in this invention can be applied not only to integrated navigation systems, but also to various devices with similar time synchronization and timekeeping application requirements.
[0024] This invention also provides a high-precision, timely satellite timing and timekeeping system with a fault-tolerant mechanism, comprising: The self-timekeeping module continuously and periodically maintains its own time by updating the device's internal UTC time after receiving the second pulse for the first time. The time reference establishment module divides the UTC time information required for device time synchronization and timekeeping into whole second part and fractional part after the second; by judging the continuity between the second pulse and the whole second UTC time of the satellite message, and using the device timing to update the fractional part after the second in real time, and then using the received UTC time information to update the whole second part, the initial time reference is established; The time error correction module, after the initial time base is established, uses the internal UTC time provided by the self-synchronization module to correct timing errors caused by missing second pulses, time messages, or drift of the device's timing system in real time, based on the second pulse and the whole second UTC time of the satellite message.
[0025] Preferably, the time base establishment module processes the data in the following manner: After initialization, the device begins receiving and responding to the PPS second pulse signal via an interrupt, while simultaneously receiving the UTC time information of satellite messages in whole seconds. When the PPS second pulse signal is received for the first time, the device responds to the interrupt signal and enables the PPS flag PPS_mark = 1. At the same time, after initialization, the device immediately begins to periodically respond to its own crystal oscillator timing interrupt in real time, starts the internal pulse timer pulsecnt to accumulate, and checks the PPS_mark flag. If PPS_mark is 1, the self-timekeeping module is triggered to start self-timekeeping. Each time the device responds to a PPS interrupt, it needs to record the current pulse timer value, denoted as pulsecnt_PPS; when the device first obtains the UTC integer second node timing value UTC_Y_M_D_H_Min_Sec1, it immediately records the current pulse timer value, denoted as pulsecnt_UTC; compare the difference between the current pulsecnt_UTC and pulsecnt_PPS, if: 0< (pulcnt_UTC - pulcnt_PPS)△T<1s The system will immediately update the year, month, day, hour, minute, and second information before the second node of the UTC timer Y_M_D_H_Min_Sec.abc currently updated by the self-time synchronization module, while keeping the decimal places unchanged after the second. The initial time base of the device has been successfully established.
[0026] For details on the implementation of other functions in the system, please refer to the relevant descriptions in the methods.
[0027] The present invention further provides a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the steps of the high-precision and timely satellite time synchronization and timekeeping method with fault tolerance mechanism.
[0028] The present invention further provides a computer software product, including: a processor and a storage device; Storage device for storing one or more programs. When the one or more programs are executed by one or more processors, the one or more processors implement the high-precision, timely satellite time synchronization and timekeeping method with fault tolerance.
[0029] Although the present invention has been disclosed above with reference to preferred embodiments, it is not intended to limit the present invention. Any person skilled in the art can make possible changes and modifications to the technical solutions of the present invention by utilizing the methods and techniques disclosed above without departing from the spirit and scope of the present invention. Therefore, any simple modifications, equivalent changes and alterations made to the above embodiments based on the technical essence of the present invention without departing from the content of the technical solutions of the present invention shall fall within the protection scope of the technical solutions of the present invention.
[0030] The parts of this invention not described in detail are common knowledge to those skilled in the art.
Claims
1. A high-precision, timely satellite time synchronization and timekeeping method with fault-tolerant mechanism, characterized in that... include: The UTC time information required for device time synchronization and timekeeping is divided into whole second part and fractional part after the second; After receiving the second pulse for the first time, the device keeps time by using its internal timing mechanism. By determining the continuity between the second pulse and the whole-second UTC time of the satellite message, and by using the device timing to update the fractional part after the second in real time, and then using the received UTC time information to update the whole-second part, the initial time reference is established. The timing error caused by missing second pulses, time messages, or drift of the device's timing system is corrected in real time using the second pulse and whole second UTC time of satellite messages.
2. The method according to claim 1, characterized in that: The establishment of the initial time base includes: After initialization, the device begins receiving and responding to the PPS second pulse signal via an interrupt, while simultaneously receiving UTC time information for satellite messages in whole seconds. Upon receiving the first PPS second pulse signal, the device responds to an interrupt signal, enabling the PPS flag (PPS_mark) to be 1. Simultaneously, after initialization, the device immediately begins real-time periodic responses to its own crystal oscillator timing interrupt, starting the internal pulse timer `pulcnt` to accumulate. It also checks the PPS_mark flag; if PPS_mark is 1, the device updates the UTC time timer `Y_M_D_H_Min_Sec.abc` each timing cycle according to the following assignment formula: Y_M_D_H_Min_Sec.abc = Y_M_D_H_Min_Sec.abc+△T Where △T is the device timing cycle setting, Y_M_D_H_Min_Sec represents the year, month, day, hour, minute, and second of the whole second part; .abc represents the decimal part after the whole second node; Each time the device responds to a PPS interrupt, it needs to record the current pulse timer value, denoted as pulcnt_PPS; when the device first obtains the UTC integer second node timing value UTC_Y_M_D_H_Min_Sec1, it immediately records the current pulse timer value, denoted as pulcnt_UTC; compare the difference between the current pulcnt_UTC and pulcnt_PPS, if: 0< (pulcnt_UTC - pulcnt_PPS)△T<1s The year, month, day, hour, minute, and second information before the second node of the UTC timer Y_M_D_H_Min_Sec.abc will be updated immediately, and the decimal places will remain unchanged after the second. The initial time base of the device has been successfully established.
3. The method according to claim 2, characterized in that: After the time base is established, the time difference between the time message and the PPS second pulse is judged before correction to avoid timing errors caused by abnormal timing faults between the second pulse and the message information.
4. The method according to claim 3, characterized in that: When the device receives the UTC time node value UTC_Y_M_D_H_Min_Sec for the second time or subsequent times of the satellite message, it compares it with the UTC time timer node value and compares the difference between the current pulcnt_UTC and pulcnt_PPS, and performs correction according to the following rules: If 0 < (pulcnt_UTC - pulcnt_PPS)△T < 1s and Y_M_D_H_Min_Sec ! = UTC_Y_M_D_H_Min_Sec Y_M_D_H_Min_Sec = UTC_Y_M_D_H_Min_Sec, otherwise do not update.
5. The method according to claim 2, characterized in that: The real-time correction includes: When the device receives the PPS second pulse signal for the second time or subsequent times, it responds to the PPS interrupt, checks the UTC time timer Y_M_D_H_Min_Sec.abc within the interrupt, and performs UTC time calibration as follows: If .abc <= 500ms: Do not update Y_M_D_H_Min_Sec; .abc=0; Otherwise, update using the following assignment formula: Y_M_D_H_Min_Sec = Y_M_D_H_Min_Sec + 1s; .abc=0.
6. The method according to claim 1, characterized in that: The equipment mentioned is a combined navigation system, a rocket control system, or equipment with time synchronization and timekeeping application requirements.
7. A high-precision, real-time satellite timing and timekeeping system with a fault-tolerant mechanism, characterized in that... include: The self-timekeeping module continuously and periodically maintains its own time by updating the device's internal UTC time after receiving the second pulse for the first time. The time reference establishment module divides the UTC time information required for device time synchronization and timekeeping into whole second part and fractional part after the second; by judging the continuity between the second pulse and the whole second UTC time of the satellite message, and using the device timing to update the fractional part after the second in real time, and then using the received UTC time information to update the whole second part, the initial time reference is established; The time error correction module, after the initial time base is established, uses the internal UTC time provided by the self-synchronization module to correct timing errors caused by missing second pulses, time messages, or drift of the device's timing system in real time, based on the second pulse and the whole second UTC time of the satellite message.
8. The system according to claim 7, characterized in that: The time base establishment module processes the data in the following manner: After initialization, the device begins receiving and responding to the PPS second pulse signal via an interrupt, while simultaneously receiving the UTC time information of satellite messages in whole seconds. When the PPS second pulse signal is received for the first time, the device responds to the interrupt signal, enabling the PPS flag PPS_mark to be equal to 1. At the same time, after initialization, the device immediately begins to periodically respond to its own crystal oscillator timing interrupt in real time, starting the internal pulse timer pulsecnt to accumulate; and checks the PPS_mark flag. If PPS_mark is 1, the self-timekeeping module is triggered to start self-timekeeping. Each time the device responds to a PPS interrupt, it needs to record the current pulse timer value, denoted as pulcnt_PPS; when the device first obtains the UTC integer second node timing value UTC_Y_M_D_H_Min_Sec1, it immediately records the current pulse timer value, denoted as pulcnt_UTC; compare the difference between the current pulcnt_UTC and pulcnt_PPS, if: 0< (pulcnt_UTC - pulcnt_PPS)△T<1s The system will immediately update the year, month, day, hour, minute, and second information before the second node of the UTC timer Y_M_D_H_Min_Sec.abc currently updated by the self-time synchronization module, while keeping the decimal places unchanged after the second. The initial time base of the device has been successfully established.
9. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method as described in any one of claims 1 to 5.
10. A computer software product, characterized in that... include: Processors and storage devices; Storage device for storing one or more programs. When the one or more programs are executed by one or more processors, the one or more processors perform the method according to any one of claims 1-5.