CN111857884B - High-reliability satellite-borne software starting system and method - Google Patents

High-reliability satellite-borne software starting system and method Download PDF

Info

Publication number
CN111857884B
CN111857884B CN202010734383.0A CN202010734383A CN111857884B CN 111857884 B CN111857884 B CN 111857884B CN 202010734383 A CN202010734383 A CN 202010734383A CN 111857884 B CN111857884 B CN 111857884B
Authority
CN
China
Prior art keywords
starting
mode
satellite
code
software
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
Application number
CN202010734383.0A
Other languages
Chinese (zh)
Other versions
CN111857884A (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.)
Shanghai Engineering Center for Microsatellites
Innovation Academy for Microsatellites of CAS
Original Assignee
Shanghai Engineering Center for Microsatellites
Innovation Academy for Microsatellites of CAS
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 Shanghai Engineering Center for Microsatellites, Innovation Academy for Microsatellites of CAS filed Critical Shanghai Engineering Center for Microsatellites
Priority to CN202010734383.0A priority Critical patent/CN111857884B/en
Publication of CN111857884A publication Critical patent/CN111857884A/en
Application granted granted Critical
Publication of CN111857884B publication Critical patent/CN111857884B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

The invention provides a high-reliability satellite-borne software starting system and a method, comprising the following steps: an initialization module configured to initialize parameters using a root program; the three-mode starting frequency module is configured to perform three-mode starting on the satellite-borne software; and the sequential starting module is configured to sequentially start the satellite-borne software when the three-mode starting fails.

Description

High-reliability satellite-borne software starting system and method
Technical Field
The invention relates to the technical field of spacecraft control, in particular to a high-reliability satellite-borne software starting system and method.
Background
As the human aerospace activities are more frequent and the footprints of aerospace exploration are more and more distant, the human aerospace activities are gradually expanded from an initial near-ground orbit to a deep space with more distant orbits, planetary exploration and the like. The complexity of the harsh complex space environment and the spacecraft itself place higher demands on the reliability of the start-up of the on-board software. The on-board software needs to be able to start up normally in extremely complex situations and to have a certain self-error correction capability. The starting mode of the traditional aerospace software generally adopts PROM memory software of an antifuse, and adopts a main mode and a backup mode to increase reliability. The software is started by adopting a simple triple-modular redundancy mode or is not started by triple-modular redundancy. In addition, limited by FLASH capacity, only critical modules are typically triple modular redundant, and triple modular redundancy for all codes is lacking. Although the reliability of the satellite-borne software can be increased to a certain extent, the following disadvantages exist:
1) The satellite-borne software does not carry out triple-modular redundancy in the starting process, and when the code is influenced by the space environment and has certain bit errors, the software can fail to start, and the task of a spacecraft can fail;
2) The traditional triple-modular redundancy starting mode can be started normally when dealing with some bit errors of codes, but a plurality of codes stored in an extreme environment can have errors of the same bit, so that the error bit is used as the normal bit when performing the triple-selection double-voting, and the starting failure is caused;
3) The traditional satellite-borne software starting mode does not have a cross-starting function and lacks the capability of coping with complex environments. When the code in a certain area is wrong and cannot be recovered, the mode can lead to the single machine to be stopped due to the fact that the single machine is always unable to be started normally, the satellite function is invalid, and the satellite task is influenced;
4) PROM capacity limitations and only one write, cannot be altered once writing is completed. This limits the flexibility of the spacecraft to a large extent. With the more and more diversified roles of the spacecraft, on-orbit optimization or new function addition may be required according to actual conditions, and the new function addition can only be performed by launching a new spacecraft, so that the cost is high;
5) The on-track running of the software may cause that the memory program cannot be started normally again due to the single event upsetting accumulation effect.
Disclosure of Invention
The invention aims to provide a high-reliability satellite-borne software starting system and method, which are used for solving the problem of low starting reliability of the existing satellite-borne software.
In order to solve the technical problems, the invention provides a highly reliable satellite-borne software starting system, which comprises:
an initialization module configured to initialize parameters using a root program;
the three-mode starting frequency module is configured to perform three-mode starting on the satellite-borne software;
and the sequential starting module is configured to sequentially start the satellite-borne software when the three-mode starting fails.
Optionally, in the high-reliability spaceborne software starting system, the high-reliability spaceborne software starting system further includes a fixed storage carrier, a first non-fixed storage carrier, a second non-fixed storage carrier and a third non-fixed storage carrier, wherein:
the fixed storage carrier stores the root program so that the initialization module loads the root program onto a satellite;
the first non-solid storage carrier, the second non-solid storage carrier and the third non-solid storage carrier all store state marks and satellite-borne software images;
the three-mode starting frequency module and the sequential starting module determine to start the three modes or the sequential starting according to whether the three-mode starting frequency is more than or equal to 2;
and the three-mode starting frequency module and the sequence starting module load the satellite-borne software image onto a satellite.
Optionally, in the highly reliable on-board software start-up system,
the first non-solid storage carrier, the second non-solid storage carrier and the third non-solid storage carrier all comprise a three-mode starting times storage area, a three-mode code selection mark storage area, a curing area code storage area and a reconstruction area code storage area;
the code storage area of the solidifying area and the code storage area of the reconstruction area both store the codes of the same satellite-borne software image;
the three-mode starting frequency module and the sequential starting module determine to start the three modes or the sequential starting according to whether the three-mode starting frequency is more than or equal to 2;
and the three-mode starting frequency module judges whether codes in the code storage area of the curing area are used as satellite-borne software images to be loaded on the satellite or codes in the code storage area of the reconstruction area are used as satellite-borne software images to be loaded on the satellite according to the three-mode code selection mark.
Optionally, in the highly reliable satellite-borne software starting system, each three-mode starting times storage area has three-mode starting times, and the three-mode starting times of each three-mode starting times storage area are subjected to first voting to obtain a first mode voting result; and
the first mode voting result of the first non-solid storage carrier, the first mode voting result of the second non-solid storage carrier and the first mode voting result of the third non-solid storage carrier are subjected to second voting to obtain a final mode voting result;
when the satellite-borne software is started, the three-mode starting frequency module and the sequence starting module determine to perform the three-mode starting or the sequence starting according to the final mode voting result.
Optionally, in the highly reliable on-board software start-up system,
each three-mode code selection mark storage area is provided with three-mode code selection mark bits, and the three-mode code selection marks of each three-mode code selection mark storage area are subjected to first voting to obtain a first state voting result;
the first state voting result of the first non-solid storage carrier, the first state voting result of the second non-solid storage carrier and the first state voting result of the third non-solid storage carrier are subjected to second voting to obtain a final state voting result;
when the satellite-borne software is started, the three-mode starting frequency module and the sequence starting module determine to perform corresponding starting operation according to the final state voting result.
Optionally, in the high-reliability on-board software start-up system, the three-mode start-up includes:
judging whether the number of times of the triple-mode starting is more than or equal to 2, if yes, exiting, otherwise judging whether a triple-mode code selection mark is started from a reconstruction area code storage area;
if yes, copying codes in the code storage area of the reconstruction area, loading the codes into a temporary memory area in a three-mode, and changing a three-mode code selection mark into a mode of starting from the code storage area of the solidification area;
otherwise, copying the codes of the code storage area of the curing area, loading the codes into the temporary memory area in a triple mode, and changing a triple mode code selection mark into a mode of starting from the code storage area of the curing area;
jumping to a starting address, and starting a bootstrap program;
judging whether the three-mode starting is normally started, if so, setting the three-mode starting frequency to be 0 and ending, otherwise, judging whether the three-mode starting frequency is more than or equal to 2, if so, starting sequentially, and otherwise, restarting the three-mode starting.
Optionally, in the high-reliability on-board software start-up system, loading the high-reliability on-board software into the memory temporary storage area through a three-mode includes:
firstly judging whether each byte of the codes of the first non-solid storage carrier, the second non-solid storage carrier and the third non-solid storage carrier can pass the test of three-out-two, copying the byte data to a memory temporary storage area if the test passes, and performing the triple modular redundancy copy of the next byte;
if the byte is not satisfied, performing bit-by-bit three-taking-two operation on the byte, and performing three-mode copying of the next byte after completing the operation of the byte;
addresses of bytes that do not satisfy the two-out-of-three operation are recorded.
Optionally, in the high-reliability on-board software start-up system, the sequential start-up includes:
reading a sequence starting code sequence number;
copying the mirror image code of the corresponding sequence number to the memory temporary storage area;
setting the next starting code sequence number;
jumping to a starting address, and starting a bootstrap program;
judging whether the starting is normal, if so, recording a normal code sequence number, otherwise, repeating the steps.
Optionally, in the highly reliable on-board software start-up system,
in the process of the three-mode starting, recording the addresses of bytes which do not meet the three-taking-two operation, and correcting the bytes which do not meet the three-taking-two operation in the loading process after the software is started successfully;
when the sequence is started, the sequence starting module records the normal code sequence number, and after the sequence is started, the satellite-borne software mirror images corresponding to the normal code sequence number are used for refreshing other satellite-borne software mirror images;
the satellite-borne software starts to normally run, and starts an on-satellite task process and a code inspection process; comparing the consistency of the stored data in the first non-solid storage carrier, the second non-solid storage carrier and the third non-solid storage carrier by using the task idle time, and recording inconsistent addresses and inconsistent quantity; and when the inconsistent number is greater than a threshold value, correcting the stored data at the inconsistent address by the on-board software in a maintenance task.
The invention also provides a high-reliability satellite-borne software starting method, which comprises the following steps:
the initialization module uses a root program to initialize parameters;
the three-mode starting frequency module is used for carrying out three-mode starting on the satellite-borne software;
and when the three-mode starting fails, the sequence starting module sequentially starts the satellite-borne software.
In the high-reliability satellite-borne software starting system and method provided by the invention, the parameter is initialized by the initialization module by using the root program, the satellite-borne software is subjected to three-mode starting by the three-mode starting frequency module, and when the three-mode starting fails, the satellite-borne software is sequentially started by the sequential starting module, so that the satellite-borne software is combined with three-mode redundancy and sequential starting in a starting mechanism, the starting reliability of the satellite-borne software is greatly improved, and the system and method are particularly suitable for complex application scenes such as the aerospace field.
The invention optimizes the traditional triple-modular redundancy mode and the sequential starting mode, and the satellite-borne software starting mechanism can correct software errors, thereby greatly reducing the error probability of the satellite-borne software and improving the capability of the satellite-borne software to cope with the space complex environment.
The invention endows the space-borne software with a cross-mutually-starting function, and can effectively cope with the scene that the single machine is not started normally and is dead due to the fact that the regional code error cannot be recovered. The satellite is effectively ensured to successfully complete the set task.
The three non-solid storage carriers in the invention can be repeatedly erased and programmed, thereby increasing the flexibility of satellite functions. The satellite functions can be optimized in orbit or new functions can be added according to actual conditions, and the functional density of the satellite is improved.
According to the method, when software normally operates, the consistency of data stored by three non-fixed storage carriers is monitored by using the task idle time, and when the inconsistent quantity exceeds the threshold, the Nor Flash error data is corrected by using the maintenance task, so that the long-term stability of satellite operation is improved.
Drawings
FIG. 1 is a flow chart of a method for starting up highly reliable satellite-borne software according to an embodiment of the present invention;
FIG. 2 is a schematic diagram of three non-solid storage carriers in a highly reliable on-board software start-up system according to an embodiment of the invention.
Detailed Description
The high-reliability on-board software start-up system and method provided by the invention are further described in detail below with reference to the accompanying drawings and specific embodiments. Advantages and features of the invention will become more apparent from the following description and from the claims. It should be noted that the drawings are in a very simplified form and are all to a non-precise scale, merely for convenience and clarity in aiding in the description of embodiments of the invention.
The invention provides a high-reliability satellite-borne software starting system and method, which aim to solve the problem of low starting reliability of the existing satellite-borne software.
In order to achieve the above-mentioned idea, this embodiment provides a highly reliable start system and method for on-board software, including: an initialization module configured to initialize parameters using a root program; the three-mode starting frequency module is configured to perform three-mode starting on the satellite-borne software; and the sequential starting module is configured to sequentially start the satellite-borne software when the three-mode starting fails.
Specifically, in the highly reliable spaceborne software starting system, the highly reliable spaceborne software starting system further includes a fixed storage carrier, a first non-fixed storage carrier, a second non-fixed storage carrier and a third non-fixed storage carrier, wherein: the fixed storage carrier stores the root program so that the initialization module loads the root program onto a satellite; the first non-solid storage carrier, the second non-solid storage carrier and the third non-solid storage carrier all store state marks and satellite-borne software images; the three-mode starting frequency module and the sequential starting module determine to start the three modes or the sequential starting according to whether the three-mode starting frequency is more than or equal to 2; and the three-mode starting frequency module and the sequence starting module load the satellite-borne software image onto a satellite.
As shown in fig. 2, in the highly reliable satellite-borne software starting system, the first non-solid storage carrier, the second non-solid storage carrier and the third non-solid storage carrier all include a three-mode starting times storage area, a three-mode code selection mark storage area, a curing area code storage area and a reconstruction area code storage area; the code storage area of the solidifying area and the code storage area of the reconstruction area both store the codes of the same satellite-borne software image; the three-mode starting frequency module and the sequential starting module determine to start the three modes or the sequential starting according to whether the three-mode starting frequency is more than or equal to 2; and the three-mode starting frequency module judges whether codes in the code storage area of the curing area are used as satellite-borne software images to be loaded on the satellite or codes in the code storage area of the reconstruction area are used as satellite-borne software images to be loaded on the satellite according to the three-mode code selection mark.
Further, in the highly reliable satellite-borne software starting system, each three-mode starting times storage area is provided with three-mode starting times, and the three-mode starting times of each three-mode starting times storage area are subjected to first voting to obtain a first mode voting result; the first mode voting result of the first non-solid storage carrier, the first mode voting result of the second non-solid storage carrier and the first mode voting result of the third non-solid storage carrier are subjected to second voting to obtain a final mode voting result; when the satellite-borne software is started, the three-mode starting frequency module and the sequence starting module determine to perform the three-mode starting or the sequence starting according to the final mode voting result.
Further, in the highly reliable satellite-borne software starting system, each three-mode code selection mark storage area is provided with three-mode code selection mark bits, and the three-mode code selection mark bits of each three-mode code selection mark storage area are subjected to first voting to obtain a first state voting result; the first state voting result of the first non-solid storage carrier, the first state voting result of the second non-solid storage carrier and the first state voting result of the third non-solid storage carrier are subjected to second voting to obtain a final state voting result; when the satellite-borne software is started, the three-mode starting frequency module and the sequence starting module determine to perform corresponding starting operation according to the final state voting result.
As shown in fig. 1, in the high-reliability on-board software start-up system, the three-mode start-up includes: judging whether the number of times of the triple-mode starting is more than or equal to 2, if yes, exiting, otherwise judging whether a triple-mode code selection mark is started from a reconstruction area code storage area; if yes, copying codes in the code storage area of the reconstruction area, loading the codes into a temporary memory area in a three-mode, and changing a three-mode code selection mark into a mode of starting from the code storage area of the solidification area; otherwise, copying the codes of the code storage area of the curing area, loading the codes into the temporary memory area in a triple mode, and changing a triple mode code selection mark into a mode of starting from the code storage area of the curing area; jumping to a starting address, and starting a bootstrap program; judging whether the starting is normal, if yes, ending, otherwise, setting a three-mode code selection mark of the corresponding code storage area.
Specifically, in the highly reliable on-board software start-up system, loading the on-board software start-up system into the memory temporary storage area through the three-mode includes: firstly judging whether each byte of the codes of the first non-solid storage carrier, the second non-solid storage carrier and the third non-solid storage carrier can pass the test of three-out-two, copying the byte data to a memory temporary storage area if the test passes, and performing the triple modular redundancy copy of the next byte; if the byte is not satisfied, performing bit-by-bit three-taking-two operation on the byte, and performing three-mode copying of the next byte after completing the operation of the byte; addresses of bytes that do not satisfy the two-out-of-three operation are recorded.
As shown in fig. 1, in the high-reliability on-board software start-up system, the sequential start-up includes: reading a sequence starting code sequence number; copying the mirror image code of the corresponding sequence number to the memory temporary storage area; setting the next starting code sequence number; jumping to a starting address, and starting a bootstrap program; judging whether the starting is normal, if so, recording a normal code sequence number, otherwise, repeating the steps.
In addition, in the high-reliability satellite-borne software starting system, in the process of three-mode starting, the addresses of bytes which do not meet the three-taking-two operation are recorded, and after the software is started successfully, the bytes which do not meet the three-taking-two operation in the loading process are corrected; when the sequence is started, the sequence starting module records the normal code sequence number, and after the sequence is started, the satellite-borne software mirror images corresponding to the normal code sequence number are used for refreshing other satellite-borne software mirror images; the software starts to normally run, and starts to start an on-board task process and a code inspection process; comparing the consistency of the stored data in the first non-solid storage carrier, the second non-solid storage carrier and the third non-solid storage carrier by using the task idle time, and recording inconsistent addresses and inconsistent quantity; and when the inconsistent quantity is larger than the threshold value, correcting the stored data at the inconsistent address by the satellite-borne software in the maintenance task.
The embodiment also provides a high-reliability satellite-borne software starting method, which comprises the following steps: the initialization module uses a root program to initialize parameters; the three-mode starting frequency module is used for carrying out three-mode starting on the satellite-borne software; and when the three-mode starting fails, the sequence starting module sequentially starts the satellite-borne software.
In the high-reliability satellite-borne software starting system and method provided by the invention, the parameter is initialized by the initialization module by using the root program, the satellite-borne software is subjected to three-mode starting by the three-mode starting frequency module, and when the three-mode starting fails, the satellite-borne software is sequentially started by the sequential starting module, so that the satellite-borne software is combined with three-mode redundancy and sequential starting in a starting mechanism, the starting reliability of the satellite-borne software is greatly improved, and the system and method are particularly suitable for complex application scenes such as the aerospace field.
The invention optimizes the traditional triple-modular redundancy mode and the sequential starting mode, and the satellite-borne software starting mechanism can correct software errors, thereby greatly reducing the error probability of the satellite-borne software and improving the capability of the satellite-borne software to cope with the space complex environment.
The invention endows the space-borne software with a cross-mutually-starting function, and can effectively cope with the scene that the single machine is not started normally and is dead due to the fact that the regional code error cannot be recovered. The satellite is effectively ensured to successfully complete the set task.
The three non-solid storage carriers in the invention can be repeatedly erased and programmed, thereby increasing the flexibility of satellite functions. The satellite functions can be optimized in orbit or new functions can be added according to actual conditions, and the functional density of the satellite is improved.
According to the method, when software normally operates, the consistency of data stored by three non-fixed storage carriers is monitored by using the task idle time, and when the inconsistent quantity exceeds the threshold, the Nor Flash error data is corrected by using the maintenance task, so that the long-term stability of satellite operation is improved.
The invention improves the starting reliability of the satellite-borne software, combines the characteristics of triple-modular redundancy starting and sequential starting by a starting mechanism, and increases the cross-starting function of the software. The triple-modular redundancy starting not only realizes the triple-modular loading function, but also can record the address of error data in the loading process so as to correct errors in an application layer after loading is completed; the method comprises the steps that when software is started, the sequence starting is carried out, the sequence number of the normally started mirror image is recorded, and after the software is started successfully, the normally started mirror image is used for carrying out covering refreshing on other mirror images so as to ensure the reliability of codes on the satellite; the function of the cross start of the software ensures that the mirror images of the software started each time are different, when the code fault of a certain area cannot be recovered during the on-orbit running or ground debugging of the satellite-borne software, if the software does not have the function of the cross start at this time, the software can always start from an error mirror image area, so that the normal start is always impossible, and the dead halt is caused. This situation occurs in an on-orbit satellite, and the corresponding hardware may fail, which may cause task failure, and even on the ground, a stand-alone uncapping process is necessary to solve the problem, which is time-consuming and labor-consuming.
The invention provides a high-reliability satellite-borne software starting mechanism, which combines the characteristics of traditional triple-modular redundancy and sequential starting and increases the cross-starting function of software. The invention can greatly improve the starting reliability of the satellite-borne software and correct software errors. Meanwhile, the scheme of the invention adopts the space-navigation-level Nor Flash capable of being repeatedly programmed as a carrier for software storage, can erase, write and reconstruct functions for many times, can greatly improve the flexibility of the satellite, and gives the satellite higher functional density.
The invention comprises a hardware carrier and software, wherein the hardware takes PROM and 3 domestic aerospace grade Nor Flash as the carrier for software storage. The PROM is used for storing boot programs and guiding the start of satellite-borne software; the Nor Flash is used for storing a state flag and a satellite-borne software image (see FIG. 2), wherein each Nor Flash is divided into a three-mode startup time storage area, a three-mode code selection flag storage area, a curing area code storage area and a reconstruction area code storage area. The method comprises the steps that a mark storage area of each Nor Flash stores three parts of two marks (the marks are expressed by one byte) respectively, when the marks are used, the marks in each Nor Flash are firstly subjected to triple-modular redundancy reading, then triple-modular voting is carried out on three mark results read through triple-modular, a final mark is obtained, and when software is started, corresponding starting operation is carried out according to the twice triple-modular voting results. When the mirror image software is loaded, the codes of the solidifying area or the reconstruction area are selected according to the triple-mode starting mark to be loaded, and after the code loading area is determined, the codes of the corresponding area are loaded into the memory temporary storage area in a triple-mode.
The starting flow of the satellite-borne software is shown in figure 1. The scheme combines the mode of triple-modular redundancy starting and sequential starting, and the mirror software is started in a triple-modular redundancy mode by default, and in an extreme case, when the triple-modular redundancy starting fails, the satellite carrier software is started in a sequential starting mode. In the scheme, an error byte address is recorded in the process of three-mode starting, and error bytes are corrected immediately after software is started; and when the sequence is started, the serial numbers of the normal starting mirror codes are recorded, and the correct mirror images are used for refreshing the wrong mirror images again after the codes are started so as to ensure the correctness of the mirror image software. In the running process of the mirror image software, the code inspection process periodically checks and corrects the code so as to ensure the reliability of the code on the satellite.
The specific scheme is as follows:
1) Powering up and starting, and running boot programs by software from PROM;
2) Initializing hardware by a boot program, and preparing an environment for the next code loading;
3) boot loads the satellite-borne software code: when loading, firstly judging whether the number of times of the triple-modular starting is more than or equal to 2, if not, selecting a code of a curing area or a reconstruction area according to a triple-modular code selection mark to load, when carrying out triple-modular, firstly judging whether each byte of the triple code can pass the check of three-out-of-two, if the check passes, copying the byte data to a memory temporary storage area, carrying out triple-modular redundancy copy of the next byte, if the byte is not satisfied, carrying out bit-by-bit triple-out operation on the same byte of the triple-split code, and carrying out triple-modular copy of the next byte after completing the operation of the byte; when the number of times of the three-mode starting is more than or equal to 2, and the starting mode is sequential starting, starting the codes one by one according to the storage sequence of the codes until the software is successfully started;
4) After the software is started successfully, firstly correcting the error bytes in the loading process, and then starting an on-board task process and a code inspection process by the software;
5) The software starts to run normally, three Nor Flash storage data consistency are compared by using task idle time, and inconsistent addresses and inconsistent quantity are recorded; and when the non-consistency of the three Nor Flash storage data is larger than the threshold value, correcting the error data in the maintenance task by the software.
In summary, the foregoing embodiments describe in detail different configurations of the highly reliable on-board software start-up system and method, and of course, the present invention includes, but is not limited to, configurations listed in the foregoing embodiments, and any contents that are transformed based on the configurations provided in the foregoing embodiments fall within the scope of protection of the present invention. One skilled in the art can recognize that the above embodiments are illustrative.
In the present specification, each embodiment is described in a progressive manner, and each embodiment is mainly described in a different point from other embodiments, and identical and similar parts between the embodiments are all enough to refer to each other. For the system disclosed in the embodiment, the description is relatively simple because of corresponding to the method disclosed in the embodiment, and the relevant points refer to the description of the method section.
The above description is only illustrative of the preferred embodiments of the present invention and is not intended to limit the scope of the present invention, and any alterations and modifications made by those skilled in the art based on the above disclosure shall fall within the scope of the appended claims.

Claims (5)

1. A highly reliable on-board software start-up system, comprising:
an initialization module configured to initialize parameters using a root program;
the three-mode starting frequency module is configured to perform three-mode starting on the satellite-borne software;
the sequence starting module is configured to sequentially start the satellite-borne software when the three-mode starting fails;
the system comprises a fixed storage carrier, a first non-fixed storage carrier, a second non-fixed storage carrier and a third non-fixed storage carrier, wherein the fixed storage carrier stores the root program so that the initialization module loads the root program on a satellite, the first non-fixed storage carrier, the second non-fixed storage carrier and the third non-fixed storage carrier store state marks and satellite-borne software images, a three-mode starting time module and a sequence starting module determine to start three modes or start the sequence according to the three-mode starting time, the three-mode starting time module and the sequence starting module load the satellite-borne software images on the satellite, the first non-fixed storage carrier, the second non-fixed storage carrier and the third non-fixed storage carrier comprise a three-mode starting time storage area, a three-mode code selection mark storage area, a curing area code storage area and a reconstruction area code storage area, the curing area code storage area and the same satellite-borne software images, the three-mode starting time module and the sequence starting module determine whether the three-mode starting time module loads the three-mode starting time codes on the satellite-mode starting time code or the satellite-image loading sequence as a three-mode starting time code storage area;
wherein the three-mode activation comprises:
judging whether the number of times of the triple-mode starting is more than or equal to 2, if yes, exiting, otherwise judging whether a triple-mode code selection mark is started from a reconstruction area code storage area;
if yes, copying codes in the code storage area of the reconstruction area, loading the codes into a temporary memory area in a three-mode, and changing a three-mode code selection mark into a mode of starting from the code storage area of the solidification area;
otherwise, copying the codes of the code storage area of the curing area, loading the codes into the temporary memory area in a triple mode, and changing a triple mode code selection mark into a mode of starting from the code storage area of the curing area;
jumping to a starting address, and starting a bootstrap program;
judging whether the starting is normal, if so, setting the three-mode starting times to 0 and ending, otherwise, judging whether the three-mode starting times is more than or equal to 2, if so, starting sequentially,
otherwise, restarting the three modes;
wherein the sequential initiation comprises:
reading a sequence starting code sequence number;
copying the mirror image code of the corresponding sequence number to the memory temporary storage area;
setting the next starting code sequence number;
jumping to a starting address, and starting a bootstrap program;
judging whether the starting is normal, if so, recording a normal code sequence number, otherwise, repeating the steps.
2. The high-reliability on-board software starting system according to claim 1, wherein each three-mode starting times storage area is provided with three-mode starting times, and the three-mode starting times of each three-mode starting times storage area are subjected to first voting to obtain a first mode voting result; and
the first mode voting result of the first non-solid storage carrier, the first mode voting result of the second non-solid storage carrier and the first mode voting result of the third non-solid storage carrier are subjected to second voting to obtain a final mode voting result;
when the satellite-borne software is started, the three-mode starting frequency module and the sequence starting module determine to perform the three-mode starting or the sequence starting according to the final mode voting result.
3. The high-reliability on-board software start-up system of claim 1, wherein each of the three modulo-code selection flag storage areas has three modulo-code selection flag bits, and the three modulo-code selection flags of each of the three modulo-code selection flag storage areas vote for a first time to obtain a first state voting result;
the first state voting result of the first non-solid storage carrier, the first state voting result of the second non-solid storage carrier and the first state voting result of the third non-solid storage carrier are subjected to second voting to obtain a final state voting result;
when the satellite-borne software is started, the three-mode starting frequency module and the sequence starting module determine to perform corresponding starting operation according to the final state voting result.
4. The high-reliability on-board software start-up system of claim 1, wherein loading it into the memory scratch pad by a three-mode approach comprises:
firstly judging whether each byte of the codes of the first non-solid storage carrier, the second non-solid storage carrier and the third non-solid storage carrier can pass the test of three-out-two, copying the byte data to a memory temporary storage area if the test passes, and performing the triple modular redundancy copy of the next byte;
if the byte is not satisfied, performing bit-by-bit three-taking-two operation on the byte, and performing three-mode copying of the next byte after completing the operation of the byte;
addresses of bytes that do not satisfy the two-out-of-three operation are recorded.
5. The highly reliable on-board software start-up system of claim 1,
in the process of the three-mode starting, recording the addresses of bytes which do not meet the three-taking-two operation, and correcting the bytes which do not meet the three-taking-two operation in the loading process after the software is started successfully;
when the sequence is started, the sequence starting module records the normal code sequence number, and updates the satellite-borne software mirror image by using the satellite-borne software mirror image corresponding to the normal code sequence number after the sequence is started;
the satellite-borne software starts to normally run, and starts an on-satellite task process and a code inspection process; comparing the consistency of the stored data in the first non-solid storage carrier, the second non-solid storage carrier and the third non-solid storage carrier by using the task idle time, and recording inconsistent addresses and inconsistent quantity; and when the inconsistent number is greater than a threshold value, correcting the stored data at the inconsistent address by the on-board software in a maintenance task.
CN202010734383.0A 2020-07-24 2020-07-24 High-reliability satellite-borne software starting system and method Active CN111857884B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010734383.0A CN111857884B (en) 2020-07-24 2020-07-24 High-reliability satellite-borne software starting system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010734383.0A CN111857884B (en) 2020-07-24 2020-07-24 High-reliability satellite-borne software starting system and method

Publications (2)

Publication Number Publication Date
CN111857884A CN111857884A (en) 2020-10-30
CN111857884B true CN111857884B (en) 2023-11-14

Family

ID=72947473

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010734383.0A Active CN111857884B (en) 2020-07-24 2020-07-24 High-reliability satellite-borne software starting system and method

Country Status (1)

Country Link
CN (1) CN111857884B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113687871B (en) * 2021-05-28 2024-05-03 西安空间无线电技术研究所 Method and device for starting up and preventing deadlock of satellite-borne microprocessor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0802709D0 (en) * 2008-02-14 2008-03-19 Transitive Ltd Multiprocessor computing system with multi-mode memory consistency protection
CN107515800A (en) * 2017-07-17 2017-12-26 上海卫星工程研究所 On-board software dependability design system and method based on software redundancy
CN110737482A (en) * 2019-10-08 2020-01-31 浙江大学 On-line two-out-of-three starting device and method for satellite star service system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0802709D0 (en) * 2008-02-14 2008-03-19 Transitive Ltd Multiprocessor computing system with multi-mode memory consistency protection
CN107515800A (en) * 2017-07-17 2017-12-26 上海卫星工程研究所 On-board software dependability design system and method based on software redundancy
CN110737482A (en) * 2019-10-08 2020-01-31 浙江大学 On-line two-out-of-three starting device and method for satellite star service system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于COTS器件的异构冗余星载计算机加固设计;王德波;《电子测量技术》;第43卷(第10期);1-6 *

Also Published As

Publication number Publication date
CN111857884A (en) 2020-10-30

Similar Documents

Publication Publication Date Title
CN108446189B (en) Satellite-borne embedded software fault-tolerant starting system and method
CN107391189B (en) On-orbit programming method of satellite-borne software
US8527730B2 (en) Data updating method, memory system and memory device
US5913219A (en) Database recovery apparatus and method of using dual plane nonvolatile memory
DE102008003944B4 (en) Memory system and programming method for a memory system
US8914702B2 (en) Bit error repair method and information processing apparatus
CN111176890B (en) Satellite-borne software data storage and anomaly recovery method
CN107220097B (en) On-orbit programming and overloading method for large-scale complex structure software
US20010049799A1 (en) Disk array device including a memory with backup power supply and method thereof
RU2248627C2 (en) Method and device for changing content of memory devices of control blocks
CN111857884B (en) High-reliability satellite-borne software starting system and method
CN112332902B (en) On-orbit reconstruction system and method for on-satellite autonomous control
CN110674046B (en) Method for improving reliability of satellite-borne embedded file system
CN106980557B (en) Storage partition-based satellite-borne software heterogeneous backup method
US10831601B2 (en) Reconstruction hard disk array and reconstruction method for to-be-reconstructed hard disks therein including comparing backup data with an access timestamp of first, second and third hard disks
CN113961151B (en) Storage method and device of fault log, electronic equipment and storage medium
CN113849456A (en) Spaceborne FPGA reconstruction method
CN111158660B (en) Multi-mode on-orbit programming method for on-board software EEPROM (electrically erasable programmable read-Only memory)
CN112099833B (en) Remote updating method for firmware of spaceborne computer
CN208351451U (en) A kind of fault-tolerant activation system of spaceborne embedded software
CN112506527A (en) On-track reconstruction breakpoint continuous transmission implementation method based on antifuse Field Programmable Gate Array (FPGA)
US10866867B2 (en) Method of error correction in a flash memory
CN114924808B (en) SRAM type FPGA on-orbit reliable loading method based on double storage programs
CN113377005B (en) Air management and control method, system and storage medium for redundancy airplane management computer software
CN115565598B (en) Data storage and repair method and system for temporary failure of RAID array disk

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