CN107562443B - Satellite program control instruction maintenance method based on circular queue - Google Patents

Satellite program control instruction maintenance method based on circular queue Download PDF

Info

Publication number
CN107562443B
CN107562443B CN201710583022.9A CN201710583022A CN107562443B CN 107562443 B CN107562443 B CN 107562443B CN 201710583022 A CN201710583022 A CN 201710583022A CN 107562443 B CN107562443 B CN 107562443B
Authority
CN
China
Prior art keywords
instruction
program control
instructions
queue
time
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
CN201710583022.9A
Other languages
Chinese (zh)
Other versions
CN107562443A (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 Institute of Satellite Engineering
Original Assignee
Shanghai Institute of Satellite Engineering
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 Institute of Satellite Engineering filed Critical Shanghai Institute of Satellite Engineering
Priority to CN201710583022.9A priority Critical patent/CN107562443B/en
Publication of CN107562443A publication Critical patent/CN107562443A/en
Application granted granted Critical
Publication of CN107562443B publication Critical patent/CN107562443B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Selective Calling Equipment (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

The invention discloses a satellite program control instruction maintenance method based on a circular queue, which comprises the following steps: firstly, storing and maintaining a program control command by satellite-borne software through a circular queue based on time sequencing; secondly, instructions generated by each program control task are inserted into corresponding instruction queues according to the type and the execution time sequence of a sending channel and wait for execution; and step three, periodically querying the queue by the satellite-borne software and finishing the sending or delaying processing of the instruction. The satellite program control instruction maintenance method based on the circular queue establishes the circular queue for storing the instructions aiming at the program control instruction type, and all the instructions in the queue are sorted based on time. The satellite-borne software obtains the instructions meeting the sending conditions through periodic inquiry and finishes sending the instructions, or carries out delay processing on the instructions when the instruction concurrency does not exceed a rated threshold value, and all the instructions can be sent in order within a reasonable time range.

Description

Satellite program control instruction maintenance method based on circular queue
Technical Field
The invention relates to a satellite program control instruction maintenance method, in particular to a satellite program control instruction maintenance method based on a circular queue.
Background
The artificial satellite needs to perform specific tasks in space according to a preset plan, such as executing a series of actions of unfolding a solar panel, orienting the sun and the like after separating a satellite and an arrow, or starting a single-machine-to-planet communication such as a measurement and control transponder, a data transmission terminal and the like in advance when the satellite passes through a ground receiving station. These tasks usually require high execution time and execution sequence of actions, and must be performed autonomously by the on-board software. The satellite-borne software generally sends a program control command to a single machine or related satellite components such as a power supply, an attitude control component, a heater and the like to control the working state of the whole satellite to complete a given task when judging that the time, the geographic position, the remote measurement state and the like meet corresponding conditions.
With the increasing complexity of satellite applications, the programming task is also becoming increasingly large. On the other hand, the program control instructions have high requirements on execution time and execution sequence, and task failure may be caused by confusion and loss of the instructions or execution time exceeding an expected range, so a reliable program control instruction maintenance method is urgently needed to ensure that all instructions can be accurately transmitted according to a predetermined time range and sequence.
From the programming point of view, data structures such as fifo (First In First out) queue, linked list or array can be used to maintain the program control instruction, but these data structures have the following problems: firstly, the problem of security is that a data structure such as a linked list for dynamically opening up a memory space is easy to cause the problem of memory leakage, and the security and the reliability of satellite-borne software can be seriously damaged; secondly, the satellite-borne software may generate a plurality of program-controlled instruction sequences in a certain time period, and the generated instruction sequences may need to be executed first due to high emergency degree, so that the application requirements cannot be met by adopting a common FIFO type data structure; thirdly, the efficiency problem is that when the program control command is maintained by adopting data structures such as common arrays and the like, all the program control commands meeting the sending condition can be obtained only by polling, so that the command sending efficiency is influenced; and fourthly, the satellite-borne software is used as embedded software, the code amount is strictly limited, and the adoption of a linked list and other complex data structures inevitably leads to the great increase of the code amount, so that the difficulty is caused in engineering application.
Disclosure of Invention
The invention aims to solve the technical problem of providing a satellite program control instruction maintenance method based on a circular queue, which aims at program control instruction types to establish the circular queue for instruction storage, wherein all instructions in the queue are sorted based on time, satellite-borne software obtains the instructions meeting sending conditions through periodic inquiry and finishes sending, or carries out delay processing on the instructions when the instruction concurrency does not exceed a rated threshold value, so that all the instructions can be sent in order within a reasonable time range.
The invention solves the technical problems through the following technical scheme: a satellite program control instruction maintenance method based on a circular queue comprises the following steps:
firstly, storing and maintaining a program control command by satellite-borne software through a circular queue based on time sequencing;
secondly, instructions generated by each program control task are inserted into corresponding instruction queues according to the type and the execution time sequence of a sending channel and wait for execution;
step three, periodically inquiring the queue by the satellite-borne software;
and step four, the satellite-borne software completes the sending of the instructions when the instructions meet the sending conditions, or performs delay processing on the instructions when the instruction concurrence quantity does not exceed a rated threshold value, so that all the instructions are ensured to complete the sending in the order of the instruction queue within a reasonable time range.
Preferably, the instruction queue adopts static memory space allocation for the program control instruction cache queues respectively established for each instruction sending channel, and the instructions in the queues are sorted based on the time codes of the instructions.
Preferably, the instruction queue performs insertion, query and acquisition operations on queue elements through a head-of-queue pointer and a tail-of-queue pointer, and logically connects the queue elements end to circularly utilize a queue space.
Preferably, the instruction sending channel is a physical transmission channel for routing the programmed instruction to the instruction receiving party.
Preferably, the program-controlled tasks are function modules or functions for executing different program-controlled tasks, the program-controlled tasks generate different program-controlled instruction sequences, the program-controlled tasks have different priorities due to different degrees of urgency, and the instruction concurrency in any cycle is not greater than the threshold N by setting the priorities.
Preferably, the program control instruction sequence is a series of program control instructions with a sequential execution relationship, and a time interval between instructions in the same sequence is not less than P × T (P > -1), where P is a priority of the program control task and T is a check period of instruction transmission.
Preferably, the program-controlled instruction comprises a time code, a destination address and an instruction code content, wherein the time code is the execution time of the instruction; the destination address represents a receiving execution object of the instruction; the instruction code content indicates the specific program control action to be executed, and the instruction receiver is responsible for explaining and executing the program control action.
Preferably, the check period comprises the steps of:
step eleven, checking whether the queue is empty, if the queue is empty, returning, waiting for the next period for checking, and if not, entering the next step;
step twelve, checking whether the time of the head of line instruction reaches the execution time, namely tcmd<=tnowIs established, where tnowIf the current time is the current time, the execution time of the instruction is reached, the next step is entered, otherwise, the step is returned, and the step eleven is repeated after waiting for the next check period;
step thirteen, checking whether the instruction concurrency is greater than a threshold value, namely Ncmd>N, if the value is less than the threshold value, entering the next step, otherwise waiting for the next check period and repeating the step eleven, wherein N iscmdIs the amount of concurrency of instructions (N before entering the check)cmdInitialization is 0), N is an instruction concurrency threshold;
step fourteen, acquiring a queue head instruction from the queue;
step fifteen, judging whether the current instruction is overtime or not, if not, the instruction execution time t is judgedcmd>=tnowEntering the next step for processing, otherwise, discarding, returning to the eleventh step for continuing checking, wherein Δ t is a time margin;
sixthly, the instruction concurrency quantity NcmdAdding 1;
seventhly, judging whether an instruction is sent in the current period or not, if no instruction is sent, sending the instruction, setting an instruction sent mark in the current period, returning to the step eleven to continue checking, and otherwise, entering the next step;
eighteen, delay processing is carried out on the instruction, namely the instruction time code is added with delta T and then is inserted into the instruction queue again, wherein the delta T is delay time, and the step eleven is returned to continue checking.
Preferably, the instructions that are overtime in step fifteen should be sent in the subsequent period, so as to avoid being discarded due to overtime, and T < Δ T < T + (T- Δ T) × N is required.
Preferably, after the instruction is delayed in step eighteen, the instruction needs to be preferentially checked in the subsequent cycle and sent as soon as possible, and T-T/N < Δ T < T is required.
The positive progress effects of the invention are as follows: the satellite program control instruction maintenance method based on the circular queue establishes the circular queue for storing the instructions according to the program control instruction type, all the instructions in the queue are sorted based on time, satellite-borne software obtains the instructions meeting the sending condition through periodic query and finishes sending the instructions, or delay processing is carried out on the instructions when the instruction concurrency does not exceed a rated threshold value, all the instructions can be ensured to be sent in order within a reasonable time range, and because the instruction queue adopts a static local mode to distribute memory space, and the queue is simple to operate, the method is beneficial to implementation and application in engineering practice.
Drawings
FIG. 1 is a flow chart of the query and delay processing of an OC gate instruction in an embodiment of the present invention.
Fig. 2a to fig. 2d are schematic diagrams illustrating program control command formats in four embodiments of the present invention.
Fig. 3 is a schematic diagram illustrating an implementation effect of the present invention.
Detailed Description
The following provides a detailed description of the preferred embodiments of the present invention with reference to the accompanying drawings.
As shown in fig. 1 to 3, the method for maintaining satellite program control commands based on circular queues according to the present invention includes the following steps:
firstly, storing and maintaining a program control command by satellite-borne software through a circular queue based on time sequencing;
secondly, instructions generated by each program control task are inserted into corresponding instruction queues according to the type and the execution time sequence of a sending channel and wait for execution;
step three, periodically inquiring the queue by the satellite-borne software;
and step four, the satellite-borne software completes the sending of the instructions when the instructions meet the sending conditions, or performs delay processing on the instructions when the instruction concurrence quantity does not exceed a rated threshold value, so that all the instructions are ensured to complete the sending in the order of the instruction sequence within a reasonable time range.
The instruction queue adopts static memory space distribution aiming at the program control instruction cache queues respectively established by each instruction sending channel, and the instructions in the queues are sequenced based on the time codes of the instructions.
The instruction queue performs insertion, query and acquisition operations on queue elements through a head pointer and a tail pointer, and is logically connected end to end, and the queue space is circularly utilized.
The instruction sending channel is a physical transmission channel for routing the program-controlled instruction to the instruction receiving party.
The program control tasks are function modules or functions for executing different program control operations, different program control instruction sequences are generated by the program control tasks, the program control tasks have different priorities due to different degrees of urgency, and the instruction concurrency in any period is not greater than a threshold value N through setting of the priorities.
The program control command sequence is a series of program control commands with sequential execution relation, and the time interval between the commands in the same sequence is not less than P T (P > ═ 1), wherein P is the priority of the program control task, and T is the sending/checking period of the command.
The program control command comprises a time code, a destination address and a command code content, wherein the time code is the execution time of the command; the destination address represents a receiving execution object of the instruction; the instruction code content indicates the specific program control action to be executed, and the instruction receiver is responsible for explaining and executing the program control action.
The inspection cycle comprises the following steps:
step eleven, checking whether the queue is empty, if the queue is empty, returning, waiting for the next period for checking, and if not, entering the next step;
step twelve, checking whether the time of the head of line instruction reaches the execution time, namely tcmd<=tnowIs established, where tnowIf the current time is the current time, the execution time of the instruction is reached, the next step is entered, otherwise, the step is returned, and the step eleven is repeated after waiting for the next check period;
step thirteen, checking whether the instruction concurrency is greater than a threshold value, namely Ncmd>N, if the value is less than the threshold value, entering the next step, otherwise waiting for the next check period and repeating the step eleven, wherein N iscmdIs the amount of concurrency of instructions (N before entering the check)cmdInitialization is 0), N is an instruction concurrency threshold;
step fourteen, acquiring a queue head instruction from the queue;
step fifteen, judging whether the current instruction is overtime or not, if not, the instruction execution time t is judgedcmd>=tnowΔ t, entering the next step for processing, otherwise discarding, returning to the eleventh step for further checking, wherein tnowRepresenting the current time, and delta t is a time margin;
sixthly, the instruction concurrency quantity NcmdAdding 1;
seventhly, judging whether an instruction is sent in the current period or not, if no instruction is sent, sending the instruction, setting an instruction sent mark in the current period, returning to the step eleven to continue checking, and otherwise, entering the next step;
eighteen, delay processing is carried out on the instruction, namely the instruction time code is added with delta T and then is inserted into the instruction queue again, wherein the delta T is delay time, and the step eleven is returned to continue checking.
In step fifteen, the instructions overtime for multiple times should be sent in the subsequent period, so that discarding due to overtime is avoided, and T < delta T < T + (T-delta T) × N is required.
Eighteen, after the instruction is delayed, it needs to be checked preferentially in the following period and sent as soon as possible, and T-T/N < Δ T < T is required.
The satellite program control instruction queue is a program control instruction cache queue established aiming at various instruction sending channels. The instruction queue uses static memory space allocation, and the instructions in the queue are ordered based on the time code of the instruction. The instruction queue accesses the queue elements through a head pointer and a tail pointer, and is logically connected end to circularly utilize the queue space. The specific operation of the queue comprises the operations of inserting, querying, obtaining and the like of the instruction. Wherein: when inserting, firstly, searching an inserting position in the queue according to the instruction time code, and updating a queue tail pointer; the query mainly refers to checking the time code information of the head of line instruction; instruction fetching refers to fetching a head-of-queue instruction from an instruction queue and updating a head-of-queue pointer.
The programmed instruction sending channel refers to a physical transmission channel for routing the programmed instruction to an instruction receiving party, such as a 1553B bus or an RS-422 serial data link.
The program control task is a functional module for executing different program control operations, such as a thermal control module for switching on and off a heater; a flight program module for executing the separation of the star and the arrow; the data transmission program control module executes data transmission on-off and recording playback operation; and an attitude control program control module for controlling the satellite attitude and other operations. Different programming tasks generate different instruction sequences. The different priorities are given by the different urgency of the programmed tasks. The higher the priority, the more urgent is the programming task.
The program control instruction sequence is a series of program control instructions with sequential execution relation. Since the execution of some instructions in the same instruction sequence depends on the completion of the previous instruction, the instruction sequence execution has a strict order and must remain unchanged during the queue buffering process. In the present invention, it is required that the time interval between instructions in the same sequence is not less than P × T (P > -1). Wherein, P is the priority of the program control task, and the smaller the value of P, the higher the priority of the task is, the instruction needs to be executed as soon as possible. Conversely, a larger value of P indicates a lower task priority, and thus a lower urgency of the instruction. T is the issue (or check) cycle of the instruction.
The program control command comprises a time code, a destination address and a command code content, wherein the time code is the execution time of the command, and the position of the command in the queue is determined by the time code of the command; the destination address represents the object of the received execution of the instruction. Different command transmission channels can also cause differences in the format of the program-controlled commands, for example, commands transmitted through the 1553B bus need to indicate destination addresses through remote terminal addresses, while commands transmitted through the RS-422 data line may not need destination address information. The instruction code content indicates the specific program control action to be executed, and the instruction receiver is responsible for explaining and executing the program control action.
Instruction concurrency means that there are a plurality of instructions satisfying the transmission condition in a certain instruction transmission cycle. Because the command interval required in the command sequence generated by the program-controlled task is not less than P × T (P > ═ 1), there is command concurrency because multiple program-controlled tasks generate different program-controlled command sequences, and the command sequences overlap in transmission time. There may be situations where there are multiple instructions to be sent in a certain issue cycle. By setting the priority P of the program control task, the instruction concurrency in any period is not greater than the threshold N, otherwise, the instruction loss occurs.
In a specific embodiment, the on-board software runs on an on-board computer, and the on-board computer communicates with other stand-alone machines or components on the satellite through data links such as 1553B bus, RS-422 and the like. The on-board computer uses 5 external interrupts, the priority being in order from top to bottom: (1) a telemetry interrupt of 500 millisecond duration; (2) an OC gate instruction sending interrupt of 200 millisecond period; (3) remotely controlling the note number interruption; (4) interrupting AD sampling; (5)1553B bus communication is interrupted.
The satellite-borne software responds to five external interrupt signals to complete various satellite management tasks such as remote measurement, OC door instruction sending, remote control processing, AD sampling and bus communication. For interrupts with low real-time requirements, such as remote control note number interrupts and 1553B bus communication interrupts, the satellite-borne software is processed in a polling mode without interrupting the operation of the processor. And telemetry interruption of 500 millisecond period, AD sampling interruption and OC gate instruction sending interruption of 200 millisecond period are realized by adopting an interruption task mode, and the real-time performance of the processing is ensured.
In a telemetering main task of a 500 millisecond period, satellite-borne software completes multiple functions of flight program control, orbit calculation and data transmission program control, lithium battery program control, thermal control, emergency program control, bus communication (including bus instruction sending) and the like. The AD sampling task is used for collecting analog quantity telemetering, and the software interacts with the bottom layer FPGA through a mode of starting-acquiring data to finish analog quantity telemetering collection. The task of the 200 millisecond cycle is to specially process the transmission of the OC gate instruction, and only 1 OC gate instruction can be transmitted in a single cycle.
The on-board software may generate a plurality of program control command sequences during the operation cycle, such as flight program control, thermal control, and the like. In this example, different priorities are set according to the urgency of each programmed task, such as: the flight program control has the highest requirement on the instantaneity of the command, so the priority is highest, and P is set to be 1; the requirement of the thermal control task on the instantaneity of the instruction is the lowest, and the requirement is set to be 2.
The program control task generates various program control instructions, which are specifically divided into two types: OC gate commands transmitted over the RS-422 link and bus commands transmitted over the 1553B bus. The transmission format of the command is different, the OC gate command is a 30-byte long chain of PCM codes (fig. 2a), and the bus command is a 2-byte command code (fig. 2 b).
The embodiment establishes two instruction queues for the OC gate instruction and the bus instruction to maintain all the program control instructions. In this embodiment, the satellite-borne software is in a multitask form, and the OC gate instruction queue and the bus instruction queue serve as common resources and can be accessed by multiple tasks of the software at the same time. The format of the OC gate instruction (figure 2c) and the bus instruction (figure 2d) in the instruction queue is different from the format of the instruction transmitted on the channel, and the format is converted by software when the instruction is transmitted, so that an effective instruction format capable of being transmitted on the instruction channel is generated, and the transmission of the instruction is completed.
Fig. 1 is a flow chart illustrating the query and delay processing of the OC gate instruction according to the embodiment of the present invention. The OC door command sending period T is 200ms, so the on-board software will periodically execute the process in a 200ms period. Where the instruction concurrency threshold N is set to 16, the delay time Δ T is set to 198 milliseconds, and the time margin Δ T is 230 milliseconds.
Fig. 3 is a schematic diagram illustrating an implementation effect of the present invention. In the example, the flight control command sequence contains 3 OC gate commands (OC1, OC2, OC3) with the time interval of 200ms (P is 1). The thermal control command sequence contains 3 OC gate commands (OC4, OC5, OC6) with the time interval of 400ms (P is 2). And sending or delaying the instructions meeting the sending condition in each checking period until the correct sending of all the instructions is completed. For example: checking the time 0, and carrying out no processing if the instruction meeting the sending condition is not met; at check time 1, OC1 and OC4 simultaneously satisfy the sending condition, OC1 is sent according to the execution time sequence of the instructions, and OC4 is delayed (OC 4-1 is generated after 198ms delay); at check time 2, OC2 is sent out according to the instruction execution time sequence, and OC4-1 is delayed again, and so on. In the whole command sending process, OC4 is delayed 3 times, OC5 is delayed 2 times, and OC6 is delayed 1 time. Therefore, the setting of the priority P value of the program control task and the concurrency threshold N needs to be fully considered during software design, so that the instructions are prevented from being discarded due to excessive delay in the queue. It is noted that the delayed processing does not affect the issue order of the instructions in the instruction sequence, such as the execution order of the thermal control instruction sequence is still OC4, OC5, OC 6.
Compared with the prior art, the invention has the following beneficial effects:
firstly, the maintenance and management of the program control instruction are realized by adopting a static memory space allocation mode, the program safety problems of dynamic memory allocation and related memory leakage and the like are avoided, and the reliability and the safety of satellite-borne software are facilitated;
secondly, the program control instruction queue is sorted based on time, software only needs to check the head of queue instructions in a checking period without polling the whole queue, and the instruction sending efficiency is high;
in the process of inquiring and sending the instructions, all the instructions are ensured to be sent according to the sequence in the instruction sequence in which the instructions are located within a specified time range through inquiry time margin design and delay processing design, and the problems of instruction loss and disordered sending sequence are avoided;
and fourthly, the program control instruction queue maintenance method based on time sequencing is simple and comprises basic operations of instruction insertion, query, acquisition and the like, so that the method is simple and efficient to realize and does not cause huge code quantity.
In summary, the satellite program control instruction maintenance method based on the circular queue establishes the circular queue for storing the program control instruction type, all instructions in the queue are sorted based on time, the satellite-borne software periodically queries and obtains the instructions meeting the sending condition and completes sending, or delay processing is performed on the instructions when the instruction concurrency does not exceed the rated threshold, all the instructions can be ensured to be sent in order within a reasonable time range, and the instruction queue adopts a static local mode to distribute the memory space, and the queue is simple to operate, so that the method is beneficial to implementation and application in engineering practice.
The above embodiments are described in further detail to solve the technical problems, technical solutions and advantages of the present invention, and it should be understood that the above embodiments are only examples of the present invention and are not intended to limit the present invention, and any modifications, equivalent substitutions, improvements and the like made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims (1)

1. A satellite program control instruction maintenance method based on a circular queue is characterized by comprising the following steps:
firstly, storing and maintaining a program control command by satellite-borne software through a circular queue based on time sequencing;
secondly, instructions generated by each program control task are inserted into corresponding instruction queues according to the type and the execution time sequence of a sending channel and wait for execution;
step three, periodically inquiring the queue by the satellite-borne software;
step four, the satellite-borne software completes the sending of the instructions when the instructions meet sending conditions, or performs delay processing on the instructions when the instruction concurrence quantity does not exceed a rated threshold value, and ensures that all the instructions are sent according to the sequence in the instruction queue in which the instructions are located within a reasonable time range;
the instruction queue adopts static memory space distribution aiming at program control instruction cache queues respectively established by each instruction sending channel, and the instructions in the queues are sorted based on the time codes of the instructions;
the instruction queue performs insertion, query and acquisition operations on queue elements through a head pointer and a tail pointer, and is logically connected end to end, so that a queue space is circularly utilized;
the instruction sending channel is a physical transmission channel for routing the program-controlled instruction to an instruction receiving party;
the program control tasks are function modules or functions for executing different program control operations, the program control tasks generate different program control instruction sequences, the program control tasks have different priorities due to different degrees of urgency, and the instruction concurrency in any period is not greater than a threshold value N through setting of the priorities;
the program control instruction sequence is a series of program control instructions with a sequential execution relation, the time interval between the instructions in the same sequence is not less than P T, and P > is 1, wherein P is the priority of the program control task, and T is a check period for instruction sending;
the program control command comprises a time code, a destination address and a command code content, wherein the time code is the execution time of the command; the destination address represents a receiving execution object of the instruction; the instruction code content indicates the specifically executed program control action, and the instruction receiver is responsible for explaining and executing the program control action;
the cycle check of the instruction issue includes the following steps:
step eleven, checking whether the queue is empty, if the queue is empty, returning, waiting for the next period for checking, and if not, entering the next step;
step twelve, checking whether the time of the head of line instruction reaches the execution time, namely tcmd<=tnowIs established, where tnowIf the current time is the current time, the execution time of the instruction is reached, the next step is entered, otherwise, the step is returned, and the step eleven is repeated after waiting for the next check period;
step thirteen, checking whether the instruction concurrency is greater than a threshold value, namely Ncmd>N, if the value is less than the threshold value, entering the next step, otherwise waiting for the next check period and repeating the step eleven, wherein N iscmdThe value is the concurrency of the instruction, and N is the threshold value of the concurrency of the instruction;
step fourteen, acquiring a queue head instruction from the queue;
step fifteen, judging whether the current instruction is overtime or not, if not, the instruction execution time t is judgedcmd>=tnowEntering the next step for processing, otherwise, discarding, returning to the eleventh step for continuing checking, wherein Δ t is a time margin;
sixthly, the instruction concurrency quantity NcmdAdding 1;
seventhly, judging whether an instruction is sent in the current period or not, if no instruction is sent, sending the instruction, setting an instruction sent mark in the current period, returning to the step eleven to continue checking, and otherwise, entering the next step;
eighteen, performing delay processing on the instruction, namely adding delta T to the instruction time code and then reinserting the instruction time code into the instruction queue, wherein the delta T is delay time, and returning to the eleventh step to continue checking;
in the step fifteen, the instructions overtime for multiple times are sent in the subsequent period, so that the overtime is avoided and the instructions are discarded, and the time margin delta t is required to meet the following requirements: t < Δ T < T + (T- Δ T) × N;
in the eighteenth step, after the instruction is delayed, the instruction needs to be preferentially checked in a subsequent period and sent as soon as possible, and the delay time Δ T is required to meet: T-T/N < DeltaT < T.
CN201710583022.9A 2017-07-17 2017-07-17 Satellite program control instruction maintenance method based on circular queue Active CN107562443B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710583022.9A CN107562443B (en) 2017-07-17 2017-07-17 Satellite program control instruction maintenance method based on circular queue

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710583022.9A CN107562443B (en) 2017-07-17 2017-07-17 Satellite program control instruction maintenance method based on circular queue

Publications (2)

Publication Number Publication Date
CN107562443A CN107562443A (en) 2018-01-09
CN107562443B true CN107562443B (en) 2020-09-15

Family

ID=60973563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710583022.9A Active CN107562443B (en) 2017-07-17 2017-07-17 Satellite program control instruction maintenance method based on circular queue

Country Status (1)

Country Link
CN (1) CN107562443B (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108390712B (en) * 2018-01-24 2020-06-09 中国人民解放军63920部队 Judgment method for spacecraft instruction execution result facing multi-path remote measurement
CN108897630B (en) * 2018-06-06 2021-11-09 郑州云海信息技术有限公司 OpenCL-based global memory caching method, system and device
CN109117206B (en) * 2018-07-25 2021-04-13 中国空间技术研究院 Software program control reuse model generation method
CN109298887B (en) * 2018-10-24 2023-06-06 北京卫星制造厂有限公司 Program control instruction autonomous execution system and method based on callback function
CN109542063B (en) * 2018-11-21 2020-10-16 上海航天计算机技术研究所 Integrated interface control equipment and satellite-borne integrated electronic system
CN113204394B (en) * 2021-04-29 2022-06-07 北京微纳星空科技有限公司 Processing method, device and equipment of on-satellite program control data and storage medium
CN113868029A (en) * 2021-08-12 2021-12-31 北京航天长征飞行器研究所 Multitask concurrent test method and test system
CN113419714A (en) * 2021-08-23 2021-09-21 中国人民解放军国防科技大学 Satellite software design method, device and equipment based on task template
CN113467977B (en) * 2021-09-06 2021-11-30 西安热工研究院有限公司 SOE data uploading method and system based on circular queue and board card
CN114035912B (en) * 2021-09-28 2024-05-31 西安空间无线电技术研究所 Autonomous running method of agile satellite data transmission element task sequence
CN113672284B (en) * 2021-10-25 2022-01-28 北京中天星控科技开发有限公司 Instruction execution method, system, electronic equipment and storage medium
CN117270971B (en) * 2023-09-15 2024-03-19 上海合芯数字科技有限公司 Load queue control method and device and processor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257891A (en) * 2013-04-25 2013-08-21 上海卫星工程研究所 Dual-level analyzing type spacecraft task managing system and method
CN103984596A (en) * 2014-05-19 2014-08-13 上海微小卫星工程中心 Dispatching method and device of satellite borne software
CN104730983A (en) * 2015-03-11 2015-06-24 航天东方红卫星有限公司 High-precision time program control method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257891A (en) * 2013-04-25 2013-08-21 上海卫星工程研究所 Dual-level analyzing type spacecraft task managing system and method
CN103984596A (en) * 2014-05-19 2014-08-13 上海微小卫星工程中心 Dispatching method and device of satellite borne software
CN104730983A (en) * 2015-03-11 2015-06-24 航天东方红卫星有限公司 High-precision time program control method

Also Published As

Publication number Publication date
CN107562443A (en) 2018-01-09

Similar Documents

Publication Publication Date Title
CN107562443B (en) Satellite program control instruction maintenance method based on circular queue
CN113179227B (en) AT instruction control method based on queue
RU2019137096A (en) UNMANNED AIRCRAFT COMMUNICATION SYSTEM AND UNMANNED AIRCRAFT SERVER COMMUNICATION SYSTEM
CN102546843A (en) Method for achieving UART (universal asynchronous receiver/transmitter) communication interfaces through software simulation
CN105468019B (en) A kind of UAV Flight Control method of multitask independent parallel
CN102855156B (en) Interrupt controller and interrupt controlling method
CN101178664A (en) Task scheduling method and system in real-time operating system
CN102970202A (en) 1553B bus communication method based on preemptive strategy
CN111131194A (en) Network protocol converter based on software and hardware protocol stack and protocol conversion method
CN108199867B (en) Networking method of wired sensor network
CN112087052A (en) Intelligent power distribution terminal
WO2012031438A1 (en) Method and device for dispatching processor programs
US20080080504A1 (en) System and method for managing flow of a plurality of packets in a lossless communication network
CN101464844B (en) Control method and bus interface of RAM use right
CN109361761B (en) Internet of things communication terminal operating system
CN113067761B (en) Linear token data bus simulation platform based on OPNET
CN211786734U (en) PLC controller supporting deterministic data transmission
CN109542069A (en) A kind of dcs and method based on time Yu event combination drive
CN104008067A (en) Method and device for data storage
CN110362279B (en) Data real-time processing and storing system based on onboard high-speed bus
CN111258728A (en) Task execution method and device, storage medium and electronic device
CN115313633B (en) Power supply control method and control device in electric propulsion system
CN109947700B (en) Satellite-borne imaging data management method based on multi-level file symbols
CN102799472A (en) Real-time information processing and data transmission method for underwater active detection systems
CN116774637B (en) Numerical control system and data transmission method thereof

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