WO2005013130A1 - リアルタイム制御システム - Google Patents

リアルタイム制御システム Download PDF

Info

Publication number
WO2005013130A1
WO2005013130A1 PCT/JP2003/009877 JP0309877W WO2005013130A1 WO 2005013130 A1 WO2005013130 A1 WO 2005013130A1 JP 0309877 W JP0309877 W JP 0309877W WO 2005013130 A1 WO2005013130 A1 WO 2005013130A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
processing
event
control system
real
Prior art date
Application number
PCT/JP2003/009877
Other languages
English (en)
French (fr)
Inventor
Kunihiko Tunedomi
Shinya Imura
Takanori Yokoyama
Original Assignee
Hitachi, Ltd.
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 Hitachi, Ltd. filed Critical Hitachi, Ltd.
Priority to EP03817783A priority Critical patent/EP1653354A4/en
Priority to PCT/JP2003/009877 priority patent/WO2005013130A1/ja
Priority to JP2005507400A priority patent/JPWO2005013130A1/ja
Priority to CNA038267322A priority patent/CN1802634A/zh
Priority to US10/566,359 priority patent/US7484214B2/en
Publication of WO2005013130A1 publication Critical patent/WO2005013130A1/ja

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/26Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25227Polling time is variable for each node, as function of time needed for each node

Definitions

  • the present invention relates to a real-time control system, and more particularly to a real-time control system that detects a periodic event or detects an event of a plurality of signals to perform a task process.
  • the response performance from the reception of the signal from the control target to the start of processing is improved, and the necessary processing is executed and executed within the time limit.
  • Real-time performance is required.
  • OS operating system
  • OS EK / VDX Operating System Specification 2.2.1 The standard OS installed in a car provides a timetable service, a function that starts multiple tasks periodically. When a system call that starts this timetable service is executed, the registered task group is activated at specified intervals, and the activation realizes the periodic task power.
  • Such a real-time control system having an OS is used in a controller for controlling an engine of an automobile, and this controller can be configured to operate on a time basis using a periodic task. Many. Because this In the method of (1), the calculation load is easily adjusted by adjusting the task execution interval, and the description of the task is simplified. In this method, the periodic task first determines whether or not an event has occurred by polling the input module, and continues to process the event when it occurs.
  • the following real-time control system is disclosed. This real-time control system notifies the processing unit of an input from the control object as an interrupt signal, generates an interrupt, interrupts the process during execution, and interrupts Activate and execute the task for processing the controlled object. Also, in order to guarantee the real-time property of the task that is executing the interrupt processing, interrupts are disabled during the interrupt of the task.
  • Japanese Patent Application Laid-Open No. 2002-189606 describes a periodic task control method that eliminates the overhead time at the time of restarting by temporarily stopping and restarting the periodic program. It has been disclosed.
  • Japanese Patent Application Laid-Open No. 2000-250764 there is a description that a plurality of tasks are subdivided for each function, and the tasks are executed as independent tasks, thereby reducing an application switching overhead time. An apparatus is disclosed.
  • the start cycle of the periodic task is at least about 1 ms ec, or when multiple tasks are executed using a timer.
  • the input interval was about 1 msec.
  • the processing speed of the CPU 50-60 MHz operation
  • the calculation load was not so large.
  • finer control has become necessary due to environmental requirements. For example, in the case of an automobile engine using an electric valve or the like, control is required to be performed at a cycle that is at least an order of magnitude shorter than the conventional cycle. Or, even when multiple tasks are executed, it is required to control them with finer timing (a few lOusec).
  • the present invention has been made in view of such a problem, and an object thereof is to provide a case where a periodic event occurs or a plurality of events occur simultaneously. In this case, the periodic task is performed accurately, and the processing start time is prevented from being delayed due to the accumulation of multiple overhead times. It is to provide a real-time control system that performs possible control. Disclosure of the invention
  • a real-time control system includes a driver unit that receives an input signal and outputs an interrupt signal corresponding to various task processes; a polling unit that performs polling based on the interrupt signal; A task processing unit that performs a task process based on the interrupt signal, wherein the polling unit outputs a task processing signal based on the polling at the end of the task, and the task processing unit Performs task processing based on the task processing signal.
  • the real-time control system of the present invention configured as described above performs an interrupt process in the driver unit, performs a task process based on the interrupt signal, and does not perform the interrupt process in the driver unit thereafter.
  • the task is processed based on the task processing signal from the polling unit. In other words, when performing event processing, the task does not have to be started by repeatedly receiving an interrupt signal from the driver unit, and when task processing is continuous, the overhead time is once for the first time. .
  • the task processing unit includes event processing means for executing event processing, and task determining means for determining continuity of the event processing. When the judgment result is continued, the above event processing is continuously executed.
  • the real-time control system of the present invention configured as described above is provided with an event processing means adapted to an input signal, a plurality of input signals that are continuously or simultaneously input during the task processing are processed in the task determination processing. Therefore, the overhead time is only one time at the beginning of task processing because it is regarded as a series of processing. In the case of an input with a wide interval, the overhead time and the processing time of the polling unit occur. However, the processing time of the polling unit does not take much time, so the overall time is not affected.
  • the event processing means performs the periodically triggered event processing, and determines the execution of the processing according to the continuation or termination of the event processing determined by the task determining means.
  • the real-time control system of the present invention configured as described above performs continuation or termination of event processing in a task when performing periodic activation, and determines the event processing operation of the event processing means.
  • the overhead time that has occurred in each cycle is only generated once when the cycle starts.
  • the polling unit polls a current time from a timer, and outputs a task processing signal as a start time of the event processing unit based on the polling result.
  • the task process signal may be a signal serving as a start time of the task process. Since the signal for determining the time calls the timer outside the system of the present invention and does not determine the start time via the driver, the start time can be transmitted to the processing means in the task earlier. it can.
  • the task determination unit determines the continuity of the task processing based on a continuation number of the task processing or the presence or absence of an interrupt signal during the task processing.
  • the real-time control system of the present invention configured as described above can determine the continuity of the event processing in accordance with the interruption of the signal, the content of the event processing, and the like.
  • the real-time control system includes a scheduler that communicates with the driver unit, the task processing unit, and the polling unit, starts upon receiving the interrupt signal, and stores the determination result.
  • the real-time control system of the present invention configured as described above temporarily stores data in the scheduler when the driver unit, the task, and the polling unit communicate with each other. Data can be transmitted from the scheduler at an efficient timing.
  • the scheduler has a period table for recording a period corresponding to the event processing unit, and when the event processing is completed, the task determination unit determines the event from the period table. Determine the continuity of the processing.
  • the polling unit calculates the polling time from the timer shown above and the cycle of the cycle table.
  • the start time of the corresponding task processing can be calculated, and the data can be transmitted to the task processing unit.
  • the period table is provided in the scheduler, the period table may be provided outside the scheduler, and the scheduler may receive the period of the period table.
  • the scheduler prohibits the interrupt signal from interrupting the task until the scheduler stores the result of the determination while the task determination unit is running.
  • the real-time control system of the present invention configured as described above prohibits the interruption of the interruption signal during the event processing, so that the processing can be executed reliably without being affected by the interruption during the task processing.
  • the polling unit polls the interrupt signal generated during the event processing, and outputs a task processing signal for executing the event processing corresponding to the interrupt signal.
  • the real-time control system of the present invention configured as described above polls even if a request for the next event processing occurs during the event processing. No need to send. Thus, there is no overhead time for each interrupt.
  • the real-time control system wherein: The continuity of the event processing is determined based on the presence or absence of the lock processing signal.
  • the task determining means assigns a priority to each of the task processing signals and reads. Further, in the real-time control system according to the present invention, when a plurality of the task processing signals are detected at the same time, the task judging means performs the event processing by the event processing means at the time of the detection. A signal different from the task processing signal corresponding to the above is read preferentially.
  • the real-time control system of the present invention configured as described above executes event processing means corresponding to each input signal, and when a plurality of input signals are input, assigns priorities to the treatment order, A condition may be set so that the same signal is not processed continuously. By setting such a condition, the event processing corresponding to the interrupt request can be accurately satisfied.
  • FIG. 1 is a block diagram illustrating a hardware configuration of a controller according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing a first embodiment of the real-time control system according to the present invention.
  • Figure 3 is an event table showing the correspondence between task IDs and events based on interrupt factors.
  • Figure 4 is a table showing the cycle time for each event.
  • FIG. 5 is a control flow chart showing processing contents of the scheduler according to the first embodiment.
  • FIG. 6 is a control flowchart showing the task processing contents of the task.
  • FIG. 7 is a control flowchart showing details of the processing of the timer polling unit.
  • FIG. 8 is a timing chart showing processing of a conventional event periodic task.
  • FIG. 9 is a timing chart showing the processing of the event periodic task according to the present embodiment.
  • FIG. 1 ⁇ is a block diagram showing a second embodiment of the real-time control system according to the present invention.
  • FIG. 11 is a control flowchart showing the task processing content of the task according to the second embodiment.
  • FIG. 12 is a control flowchart showing the contents of the polling process of FIG.
  • FIG. 13 is a conventional timing chart when the input B is input during the processing of the input A.
  • FIG. 14 is a timing chart according to the second embodiment when the input B is input during the processing of the input A.
  • FIG. 15 is a timing chart according to the second embodiment when input B is input after input A processing.
  • FIG. 1 is a control block diagram illustrating a hardware configuration of a real-time control system (controller) 10 according to an embodiment of the present invention.
  • the controller 10 includes a CPU 11 (arithmetic unit), a memory 12, an output module 13, and an input module 14, and these hardware are connected by a path. .
  • the input module 14 is hardware for processing input signals A and B as input signals. Reflect the input signal to the register, and interrupt the CPU 11 if necessary.
  • the input module 14 can receive one or more input signals, and can interrupt the CPU 11 every time a signal is input.
  • the input module 14 has a flag for identifying a port that has received an input signal, and can provide the flag to the CPU 11 as an interrupt factor.
  • the CPU 11 has an arithmetic unit, receives a signal from the input module 14 as an interrupt factor, receives the interrupt factor, reads a signal serving as an instruction from the memory 12, and executes the signal.
  • the CPU 11 has a timer 15 and a built-in memory.
  • the timer 15 is a counter that indicates the elapsed time to the CPU 11.
  • the timer 15 is an up-counter.
  • the present invention can be implemented even when the timer 15 is a down-counter.
  • the memory 12 has a non-volatile memory, a Z, and a volatile memory, and receives an input signal from the CPU 11 and sends a signal to the CPU 11 as an instruction for an operation performed by the CPU 11.
  • the non-volatile memory includes an EEPROM or a flash memory.
  • the non-volatile memory stores programs and initial data values.
  • volatile memories include SRAMs and SDRAMs, and volatile memory records data and Z or a stack.
  • An operating system hereinafter, referred to as OS for implementing the real-time control device of the embodiment is also recorded in the memory 12.
  • the output module 13 is hardware that processes an output signal based on a calculation result from the CPU 11.
  • Output module 13 can have one or more output ports. Incidentally, in the present embodiment, the output module 13 may not be provided.
  • FIG. 2 is a control lock diagram showing software of the real-time control system of the first embodiment.
  • the software of the present embodiment includes a scheduler 1, a timer polling unit 2, a period table 3, a driver unit 4, a task processing unit (hereinafter, referred to as a task) 5, and a timer 15 in the CPU 11.
  • the scheduler 1, the timer polling unit 2, the driver unit 4, and the task 5 are included in the OS, but may exist outside the OS as middleware. In addition, two or more tasks 5 may exist according to the requirements of the application.
  • the driver unit 4 includes an interrupt handler in the driver unit 4 and an input module. Initialize the registers of Yule 14 and consist of Z or device driver to read and write. That is, the driver unit 4 initializes the registers of the input module 14 and the output module 13 immediately after the reset. When it is necessary to interrupt the reception of an input signal which causes an interrupt of the input module 14 described above, the driver unit 4 outputs the input A or the input B from the input module 14. It is set to allow signal interruption. Then, the interrupt handler of the driver unit 4 reads the input signal from the input module 14 immediately after the interrupt occurs, and transmits the interrupt signal to the scheduler 1.
  • the interrupt handler of the driver unit 4 reads the input signal from the input module 14 immediately after the interrupt occurs, and transmits the interrupt signal to the scheduler 1.
  • the scheduler 1 is activated when the interrupt handler of the driver unit 4 receives the input A or input B interrupt signal read from the input module 14.
  • FIG. 3 shows a task ID for identifying a plurality of event processing means 51 existing in a task 5, which will be described later, and an event (event) based on an input A or input B interrupt factor input by the driver unit 4.
  • This is an event table showing the correspondence between,, and, and the schedule ruler 1 has this event table.
  • the scheduler 1 searches for the task ID from the event table according to the event of the input A or the input B, and transmits the searched task ID to the task 5.
  • the scheduler 1 stores data for two tasks, but three or more tasks are also possible.
  • the scheduler 1 receives a return value described later, which is a signal from the task 5, reads the task cycle time from the cycle table 3, and gives an argument to the timer polling unit 2, and as a result,
  • the task processing signal which is the start time of the next task processing of task 5, is sent to task 5.
  • the task 5 is a program for executing an application process, an event processing unit 51 for performing a plurality of event processes corresponding to a task ID, a task determining unit 52 for determining whether to continue or end the event process, Having. Then, in order to execute the event processing means 51 having the event processing function of the task 5, the schedule is executed.
  • the task ID retrieved from the event table of the ruler 1 jumps to the entry address, thereby activating the task 5 and returning the result of the determination by the task determining means described above to the scheduler 1.
  • the event processing means 51 of the task 5 may include an event task and an event-initiated periodic task, and the scheduler 1 includes these two types of event processing means.
  • Support 5 1 Other embodiments may support periodic tasks. If a periodic task is supported, a periodic task timer interrupt occurs. If this occurs during the execution of an event-initiated periodic task, a wait time occurs in the task, and the cycle time may be exceeded. To avoid this, the scheduler 1 disables interrupts when activating the event-triggered periodic task, and enables interrupts when terminating the event-triggered periodic task. .
  • the cycle table 3 has a table indicating the cycle time for each event, as shown in FIG.
  • the cycle table 3 is a program that receives the task ID from the scheduler 1, searches for the cycle time of each event corresponding to the task ID, and sends the event to the scheduler.
  • the event is an event-triggered periodic task
  • the task is 1, the event is a non-periodic event task.
  • data for two tasks is stored, more than three tasks are possible.
  • the timer polling unit 2 is a program that polls the timer 15 until a target time, and returns a task processing signal, which is a start time of the task processing, to the scheduler 1 when the target time comes.
  • the scheduler 1 calls the timer polling unit 2 by the next activation time of the task 5.
  • the scheduler 1 gives the cycle of the event processing means 51, which is an activation type periodic task of the task 5, to the timer polling unit 2 as an argument.
  • the scheduler 1 since the scheduler 1 is started by the input of the input A or the input B, the interrupt of the input A and the input B is permitted.
  • FIG. 5 is a control flow chart showing processing contents of the scheduler 1 of the real-time control system according to the first embodiment.
  • Scheduler 1 is interrupted from driver 4 When it is received, execution starts.
  • the above-mentioned interrupt signal is read from the driver unit 4. This interrupt signal is a flag for identifying what kind of interrupt it is, and here is a flag corresponding to “input A” or “input B”.
  • step 504 the scheduler 1 stores either a “continue” or “end” signal as a return value from the task determination means 52 of the task 5. If the return value is “finished”, the scheduler 1 is terminated, and if the return value is “continue”, the process proceeds to step 505.
  • step 505 the task ID shown above is used to search the cycle table 3 shown in FIG. 4 to determine whether the cycle of the task 5 is 0 (ie, determine whether the task 5 has a cycle.
  • ID 0 (event: input A)
  • the cycle is 10 usec
  • task ID 1 (event: input B)
  • the cycle is 0 usec
  • step 506 the timer polling unit 2 is executed, and waits until the next task activation time.
  • the period searched by the scheduler 1 is given to the timer polling unit 2 as an argument. Details of the execution of the timer polling unit 2 will be described later with reference to FIG. The Thereafter, a series of steps 503 to 506 are repeatedly executed until the return value from task 5 in step 504 becomes “end”.
  • FIG. 6 is a control flow chart showing the processing of the task of step 503 shown in FIG. First, in step 601, whether the task determination means 52 of task 5 is "continued"
  • a determination process is performed to determine whether to “end”.
  • the judgment processing includes, for example, whether or not an interrupt of input A has occurred, and whether or not the number of times task 5 has been activated and the event processing means 51 has been executed after the event has reached a prescribed number.
  • a judgment criterion is set, a judgment process is performed according to the judgment criterion, and the routine proceeds to step 62.
  • the determination result is determined based on the determination processing of the task determining means 52 in step 61. If the judgment result is “finished”, the process proceeds to step 603, and “finished” is returned to the scheduler 1 as a return value, and the task 5 is terminated.
  • the judgment result is
  • step 604 the process proceeds to step 604 to perform event processing.
  • the CPU 11 executes the event using the event processing means 51 corresponding to the input A or the input B. If there is an output, a signal is output from the output module 13. Thereafter, the flow advances to step 605, and “continue” is returned to the scheduler 1 as a return value, and the processing ends.
  • FIG. 7 is a control flowchart showing the processing of the timer polling unit 2.
  • Tc the current time
  • To the polling end time To (hereinafter, To) at which the previous polling ended are read.
  • T c is the current value of timer 15.
  • To is the time when the timer polling unit 2 saved the data at the time of the previous execution.
  • the timer polling unit 2 is executed for the first time. Therefore, when step 701, the To is undefined. Therefore, in order to avoid this problem, the scheduler 1 reads the timer 15 between steps 501 and 502 in FIG. 5 and records it as To of the timer polling unit 2. Good.
  • step 702 the activation time Tn (hereinafter, ⁇ ) of the event processing means 51 of the task 5 to be processed next is obtained.
  • ⁇ ⁇ is obtained from ⁇ 1: 0 + period-((:).
  • ⁇ ⁇ ⁇ If timer 15 overflows between ⁇ and T c, If Tc is smaller than To, the value is corrected to determine Tn.
  • step 703 Tc is read again from the timer 15.
  • step 704 it is determined whether Tc is greater than ⁇ . If an overflow of timer 15 occurs between Tc and Tn, that is, if Tn is smaller than Tc, the comparison between Tn and Tc is not performed until timer 15 overflows. Steps 703 and 704 are repeated until the result of the comparison in step 704 becomes true. If step 704 is true, go to step 705 and save Tc to To.
  • FIG. 8 and 9 are timing charts showing the processing of the event periodic task as the event processing means 51, FIG. 8 is a conventional timing chart, and FIG. 9 is a timing chart according to the present embodiment. .
  • the periodic task first determines whether or not an event has occurred by polling the input module, and continues to perform the event processing when it occurs.
  • the interrupt processing takes an overhead time T i (hereinafter T i).
  • T i processing determination time
  • Tj processing determination time
  • Tt event processing time
  • the interrupt handler of the drive unit is started. At that time, the interrupt processing time takes Ti. After that, scheduler 1 activates task 5 and performs the judgment process. As shown in FIG. 8, similarly to T j, the determination processing time takes T j.
  • the judgment processing is “continue”, the event processing is performed and executed during the event processing time T t (hereinafter, T t). After the event processing, if there is time until the next cycle, the scheduler 1 activates the timer polling unit 2 and waits for the polling time Tp (hereinafter ⁇ ).
  • FIG. 10 is a control block diagram showing a second embodiment of the real-time control system of the present invention.
  • the software of the real-time control system according to the present embodiment includes a driver unit 4 ', a polling unit 2', and task processing means (hereinafter, referred to as a task) 5 '.
  • a task task processing means
  • the driver unit 4 is an interrupt handler and a depth driver that initializes, reads, or writes the registers of the input module 14.
  • the driver unit 4 initializes the registers of the input module 14 and the output module 13 immediately after the reset. If a reception interrupt is required, set to enable the interrupt from input module 14.
  • the driver section 4 permits the interruption of the inputs A and B in advance.
  • An interrupt handler is executed immediately after an interrupt occurs.
  • the driver unit 4 reads the input signal from the input module 14, outputs an interrupt signal, and performs processing for calling the task 5 '. In the present embodiment, there are two inputs, input A and input B, but there may be three or more inputs.
  • Task 5 ′ is a program that executes application processing.
  • the entry address of the task 5, is stored in the driver unit 4, and the task 5, is composed of one or more functions.
  • the task determining means 5 2 ′ It has an event processing means 51 A having an input A function for processing input A, and an event processing means 51 B having an input processing function B for processing input B.
  • the polling unit 2 is a program that polls an interrupt signal corresponding to the input A or the input B of the driver unit 4, and outputs a task processing signal to the task 5 ′.
  • task 5 'event processing means 51A and event processing means 51B When the execution of task 5 'event processing means 51A and event processing means 51B is completed, task 5' is not immediately terminated, and the polling unit 2 is used to check for the presence of an interrupt factor. And outputs a task processing signal called from the task determining means 52.
  • FIG. 11 shows the processing of task 5 of the real-time control system according to the second embodiment.
  • FIG. 6 is a control flow chart showing processing contents.
  • step 1101 task 5 'reads an interrupt signal passed as an argument from driver unit 4' immediately after being started by driver unit 4 '. Then, the process proceeds to step 1102.
  • step 1102 the task determining means 52 'determines whether the interrupt signal which is the interrupt factor is "Input A" or "Input B". Here, if it is "input A", the process proceeds to step 1103, and the input A function of the event processing means 51A corresponding to the input A is executed.
  • the input A function is a function that is executed when an input A interrupt occurs.
  • the event processing means 51A calculates the ignition timing and the like. If the interrupt signal is "input B" in step 1102, the flow advances to step 1104 to execute the input B function. If the interrupt signal is "none" in step 1102, the task 5 'is terminated.
  • the task determination means 52 of the task calls the polling unit 2 and receives a task processing signal if any. After that, the determination of step 1102 is performed again using the task processing signal, and the series of operations described above is repeated until the determination of step 1102 becomes “none”.
  • the determination of 02 is classified into two types according to the selection method when a plurality of signals exist at the same time. The first method is to select signals alternately.
  • the interrupt source is selected in a fixed order (priority order).
  • input A or input B is alternately selected, so that processing can be performed fairly. For example, it is suitable for a system in which processing of input A and input B has no priority.
  • input A is always selected, and input B is selected only when there is no input A.
  • the input processing may be executed with priority. For example, it is suitable for a system in which the processing priority of input A is higher than that of input B.
  • the first method and the second method are described, but the input A and the input B may be selected in an order other than these.
  • the determination in step 1102 is based on the determination method when the same signal is detected again. Also classified into two types.
  • the first method is to execute the event processing means 51A or the event processing means 51B corresponding to the signal detected again. Second, it ignores re-detected signals and selects undetected signals.
  • the advantage of the first method is that if there is continuous input, the input function can be executed multiple times without the overhead time of the interrupt handler.
  • the first method is suitable when the input A is a periodic input and the period is extremely short compared to the overhead of the interrupt handler.
  • the merit of the second method is that interrupts can be periodically enabled.
  • task 5 ′ operates with interrupts disabled to ensure real-time performance (high priority), but if task 5 ′ continues to operate, interrupts other than input A or input B will be interrupted. When we enter, we cannot process it. Therefore, by using the second method, after the processing of the input A and the input B is performed once, the task 5 ′ is ended and the other interrupt is inserted.
  • FIG. 12 is a control flow chart showing the contents of polling processing in step 1105 of FIG.
  • an interrupt signal is read from the driver unit 4,.
  • the interrupt signal is recorded collectively or separately in the register of the input module 14 or the output module 13. Read the necessary interrupt signal among these.
  • the interrupt signal of the input A and the input B is read.
  • the interrupt signal is returned to task 5 ′ as a return value. If the number of inputs is 32 or less, the interrupt factor for each input can be replaced with a bitmap to form a 4-bit code and returned as a function return value.
  • FIGS. 13 to 15 are timing charts showing the processing of the event processing means 51 A and the event processing means 51 B.
  • FIG. 13 shows a case where the input B is input during the processing of the input A.
  • FIG. 14 is a timing chart according to the present embodiment when input B is input during processing of input A, and
  • FIG. 15 is a timing chart of input B after input A processing. 6 is a timing chart according to the present embodiment when input is performed.
  • an overhead time Ti which is a time for performing an interrupt handler process after an input A interrupt occurs.
  • the event processing means 51 A for processing the input A is executed for the processing time Tt.
  • the processing of the event processing means 51A is executed because the interrupt is disabled.
  • the interrupt prohibition is released and the interrupt of input B is detected by the computing unit.
  • the interrupt handler is called again, and after the overhead time Ti, the event processing means 51B is executed.
  • the interrupt handler of the driver unit 4 ′ performs the interrupt processing during the overhead time T i as in the related art.
  • T i is about several 10 ⁇ sec
  • Tp is 1 ⁇ sec or less, so that the task cycle can be significantly reduced.
  • each input requires a polling time T p in addition to the overhead time T i, so that the polling time T p
  • this time is extremely short, and does not adversely affect the performance.
  • driver section For example, the driver section, task, scheduler, polling section, and the like are program contents adapted to their functions, and the functions remain unchanged even if these configurations are integrated and further divided.
  • first embodiment and the second embodiment have been described separately.
  • An embodiment in which forms are combined may be used.
  • input signals, timer signals, and the like were used as interrupted task processing signals, but the present invention is not limited to these signals.
  • controllers for automobiles controllers for engine pre-trash seats, seatbelts, pretensioners, airbags, clutches, anti-block systems, electric valve engine, etc.
  • general controllers for example, controllers for automobiles (controllers for engine pre-trash seats, seatbelts, pretensioners, airbags, clutches, anti-block systems, electric valve engine, etc.) and general controllers.
  • the present invention is not particularly limited as long as the system is applicable to a controller of an industrial device and an interrupt signal is input.
  • the real-time control system of the present invention accurately executes a periodic task when a periodic event occurs or when a plurality of events occur at the same time.
  • the delay of the processing start time due to the accumulation of the overhead time it is possible to perform control capable of responding more finely and control capable of responding quickly and reliably to a plurality of commands.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mechanical Engineering (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Combustion & Propulsion (AREA)
  • Computer Hardware Design (AREA)
  • Chemical & Material Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Control By Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

周期タスクを的確に実施し、複数のオーバヘッド時間の累積による処理開始時間の遅れを防止することで、より細かな応答が可能な制御及び複数の指令に対して迅速かつ確実に応答可能な制御を行うリアルタイム制御システムを提供する。 入力信号を受信し各種タスク処理に対応した割込み信号を出力するドライバ部と、該割込み信号に基づいてポーリングするポーリング部と、前記割込み信号に基づきタスク処理をするタスク処理部と、を備えたリアルタイム制御システムであって、前記ポーリング部は、前記タスク終了時に前記ポーリングに基づきタスク処理信号を出力し、前記タスク処理部は、タスク処理信号に基づいて前記タスク処理をしてなる。

Description

明 細 書 リアルタイム制御システム 技術分野
本発明はリアルタイム制御システムに係り、 特に、 周期的なイベントを検出-し 、 又は複数の信号のイベントを検出してタスク処理を行うリアルタイム制御シス テムに関する。 背景技術
自動車の制御コントローラ及びその他の産業機器の制御コントローラにおいて 、 制御対象からの信号を受信してから処理を開始するまでの応答性能を向上させ 、 かつ制約時間内に必要な処理を確実に実行し終了させるような、 リアルタイム 性が求められている。 特に、 自動車の制御応答性及び安全性の確保などを課題と して所定の処理をリアルタイムに実行する必要性があるオペレーティングシステ ム (以下 OSと云う) においては、 周期的にタスクを起動する周期タスクと、 ィ ベント発生時にタスクを起動するイベントタスクと、 をサポートする必要がある 例えば、 非特許文献である OS EK/VDX Op e r a t i n g S y s t em S p e c i f i c a t i o n 2. 2. 1に示される如きような自動車に 搭載された標準的な OSは、 タイムテーブルサービスという、 周期的に複数のタ スクを起動する機能を提供している。 このタイムテーブルサービスを開始するシ ステムコールを実行すると、 登録されたタスク群が、 指定された周期毎に起動さ れ、 この起動により、 周期タスク力 実現される。
このような、 OSを有したリアルタイム制御システムは、 自動車のエンジン制 御用のコントローラで用いられており、 このコントローラは、 周期タスクを用い て、 時間駆動で動作するようにシステムが構築されることが多い。 なぜなら、 こ の方式では、 タスクの実行間隔を調整することにより、 演算負荷を調節しやすい ことと、 タスクの記述が簡素になることと、 からである。 この方式では、 周期タ スクは、 最初に、 ィベントが発生しているかどうかを、 入力モジュールのポーリ ングで判定し、 発生時に、 イベント処理を続けて行う。
ただし、 特殊なエンジン制御では、 〇Sの定義する周期以下で、 タスクを起動 したいことがある。 この場合は、 周期タスク機能を用いることはできない。 かわ りに、 タイマポーリング関数をタスク内にもち、 次の周期時間になるまで、 ポー リングを行うことになる。
また、 非特許文献である O p e r a t i n g S y s t em C omc e p t s — F o u r t h E d i t i o n-p p. 30- 32 (Ab r a h am S i l b e r s c h a t z著: Ad d i s o n— We s l e y P u b 1 i s h i n g c ommp a n y出版) には、 以下のようなリアルタイム制御システムが 開示されている。 このリアルタイム制御システムは、 制御の応答性を高めるため に、 制御対象物からの入力を、 割込み信号として、 演算機に通知し、 割込みを発 生させ、 実行中に処理を中断させ、 割込みハンドラから、 制御対象物の処理を行 うタスクを起動し、 実行する。 また、 割込み処理実行中のタスクのリアルタイム 性を保証するため、 そのタスクの割込み中は、 割込み禁止にしている。
さらに、 特開 2002- 1 89606号公報の明細書には、 周期的プログラム を一次停止し、 再開するように構成することにより、 再開時のオーバへッド時間 をなくすような周期タスク制御方法が開示されている。 この他にも、 特開 200 0 - 250764号公報の明細書には、 複数あるタクスを機能毎に細分化して、 独立タスクとすることにより、 アプリケーションの切り替えオーバへッド時間を 少なくする処理実行装置が開示されている。
このように、 同一タスクを繰り返し周期的に実行するエンジン制御などの場合 は、 周期タクスの起動周期が、 最低でも 1ms e c程度であり、 又はタイマを使 用して複数のタスクを実行する場合は、 入力間隔が、 1 m s e c程度であった。 そして、 これらの時間は、 CPU (50〜60MH z動作) の処理速度に対して 、 比較的長い時間であるために、 演算負荷はそれほど大きくなかった。 しかし、 最近では、 環境対応の要求などにより、 より細かい制御が必要となってきている 。 例えば、 電駆弁などを用いた自動車用エンジンでは、 従来の周期よりも一桁以 上短い周期で制御することが求められている。 又は、 複数のタスクを実行する場 合でも、 より木目細かいタイミング (数 l O u s e c ) で制御することが求めら れている。
これらの条件を満たすためには、 周期的にタスクを実行するような処理の場合 は、 その処理周期を短くする必要がある。 従来の方法では、 周期始めにあたる割 込み処理に要するオーバへッド時間は変えられないので、 イベント処理の時間を 短くなるような処理を行っている。 しかし、 これは、 タイマ割込みの回数が多発 するため、 演算負荷が増大する。 また、 オーバヘッド時間よりも短い周期でタス クを実行することはできない。 さらに、 このような周期タスク方式では、 各周期 に発生するオーバへッド時間が累積されることにより、 イベントの検出が最大で 1周期遅れる可能性もある。 また、 従来のタイマポーリング方式では、 起動中の タスク以外のタスクを動作させることができないため、 キヤリブレーションなど の制御以外の処理を行えない。
さらに、 複数の割込み処理を行う場合は、 各々の処理が重複するような割込み を禁止しているので、 それぞれ独立して、 上記の処理が発生すため、 各々の割込 みには、 オーバへッド時間が数 1 0〜数 1 0 0 u s e c必要となる。 このオーバ ヘッド時間は、 非常に大きいため、 上述した、 要求は満たせない。 また、 複数の 割込みを順に処理するので、 個々の割込みのオーバへッド時間が累積されて全体 として処理の時間がかかり、 後に実行されるタスクほど、 その開始が遅れ、 さら に、 割込みが多い時は、 すべての割込みに対してその要求を満たせなことも考え られる。
このように、 複数の割込みが連続的、 又は同時に発生した時に、 個々の割込み 時に発生するオーバへッド時間を軽減するような構成に関わる技術は、 これまで に開示されていない。
本発明は、 このような問題に鑑みてなされたものであって、 その目的とすると ころは、 周期性のあるイベントが発生した場合又は複数のイベントが同時に発生 した場合において、 周期タスクを的確に実施し、 複数のオーバヘッド時間の累積 による処理開始時間の遅れを防止することで、 より細かな応答が可能な制御及び 複数の指令に対して迅速かつ確実に応答可能な制御を行うリアルタイム制御シス テムを提供することにある。 発明の開示
前記目的を達成すべく、 本発明に係るリアルタイム制御システムは、 入力信号 を受信し各種タスク処理に対応した割込み信号を出力するドライバ部と、 該割込 み信号に基づいてポーリングするポーリング部と、 前記割込み信号に基づきタス ク処理をするタスク処理部と、 を備えたリアルタイム制御システムであって、 前 記ポーリング部は、 前記タスク終了時に前記ポーリングに基づきタスク処理信号 を出力し、 前記タスク処理部は、 前記タスク処理信号に基づいてタスク処理をす る。
前記のごとく構成された本発明のリアルタイム制御システムは、 ドライバ部で 、 割込み処理をし、 割込み信号に基づいてタスク処理を行ない、 それ以降の割込 み信号は、 ドライバ部で割込み処理を行なわず、 ポーリング部からのタスク処理 信号に基づいてタスク処理される。 すなわち、 イベント処理をする際には、 ドラ ィパ部から、 繰り返して割込み信号を受信して、 タスクを起動しなくてもよく、 タスク処理が連続時には、 オーバヘッド時間は、 初回の一回となる。
本発明に係るリアルタイム制御システムは、 前記タスク処理部が、 イベント処 理を実行するイベント処理手段、 及び該イベント処理の継続性を判定処理するタ スク判定手段からなり、 前記イベント処理手段は、 前記判定結果が継続時に、 前 記イベント処理を継続実行する。
前記のごとく構成された本発明のリアルタイム制御システムは、 入力信号に合 わせたイベント処理手段を備えたとしても、 タスク処理中に連続的又は同時に入 力された複数の入力信号は、 タスク判定処理を行なうので、 一連の処理であると みなすためオーバヘッド時間は、 タスク処理始めの一回のみとなる。 また、 間隔 が開いた入力の場合は、 オーバへッド時間とポーリング部の処理時間が発生する が、 ポーリング部の処理時間は、 それほどの時間は要しないので、 全体としての 時間に影響はない。
本発明に係るリアルタイム制御システムは、 前記イベント処理手段が、 周期起 動するイベント処理をし、 タスク判定手段で判定されたィベント処理の継続又は 終了の判定に従って、 処理の実行を決定する。
前記のごとく構成された本発明のリアルタイム制御システムは、 周期起動を行 う際には、 タスク内でイベント処理の継続又は終了の判定を行い、 イベント処理 手段のイベント処理の動作を決定するので、 周期毎に、 発生していたオーバへッ ド時間は、 周期起動時に一回発生するのみである。
本発明に係るリアルタイム制御システムは、 前記ポーリング部が、 現時点の時 刻をタイマからポーリングし、 このポーリング結果を基づいて、 前記イベント処 理手段の開始時刻となるタスク処理信号を出力する。
前記のごとく構成された本発明のリアルタイム制御システムは、 周期起動をす るようなタスク処理の場合には、 タスク処理信号が、 タスク処理の開始時刻とな る信号であってもよく、 この開始時刻を決める信号は、 本発明のシステムの外部 のタイマをコールし、 ドライパ部を経由して開始時刻決定をするすることがない ので、 開始時刻をより早くタスク内の処理手段に送信することができる。
本発明に係るリアルタイム制御システムは、 前記タスク判定手段が、 前記タス ク処理の継続回数、 又は前記タスク処理中の割込み信号の有無に基づき、 前記タ スク処理の継続性を判定する。
前記のごとく構成された本発明のリアルタイム制御システムは、 イベント処理 の継続性を、 その信号の割込み、 イベント処理の内容、 などのに合わせて決定で きる。
本発明に係るリアルタイム制御システムは、'前記ドライバ部、 前記タスク処理 部、 及び前記ポーリング部と通信し、 前記割込み信号の受信に伴い起動し、 前記 判定結果を格納するスケジューラを備える。
前記のごとく構成された本発明のリアルタイム制御システムは、 ドライバ部、 タスク、 及びポーリング部が相互通信を行う時にスケジューラにデータを一時格 納することが可能となり、 効率のよいタイミングにスケジューラからデータを伝 達することができる。
本発明に係るリアルタイム制御システムは、 前記スケジューラが、 前記ィベン ト処理手段に対応した周期を記録する周期テーブルを有し、 前記イベント処理の 完了時に、 前記タスク判定手段は、 前記周期テーブルから前記イベント処理の継 続性を判定する。
前記のごとく構成された本発明のリアルタイム制御システムは、 スケジューラ に処理に対応した周期テーブルを設けているので、 先に示したタイマからポーリ ングした時刻と、 周期テーブルの周期から、 ポーリング部で、 対応したタスク処 理の開始時刻を算出し、 それらのデータをタスク処理部に送信することができる 。 また、 周期テーブルから、 イベント処理手段に周期性があるかの判定をするこ とが可能となり、 この判定結果からも、 イベント処理を継続するか決定できる。 さらに、 周期テーブルをスケジューラ内に設けているが、 周期テーブルはスケジ ユーラ外に設け、 スケジューラが周期テーブルの周期を受信してもよい。
本発明に係るリアルタイム制御システムは、 前記スケジューラが、 前記タスク 判定手段が起動中に、 終了となる前記判定結果を格納するまでは、 前記割込み信 号が前記タスクに割込むことを禁止する。
前記のごとく構成された本発明のリアルタイム制御システムは、 イベント処理 途中に割込み信号の割込みを禁止しているので、 タクス処理中に、 割込みの影響 を受けることが無く、 確実に処理を実行できる。
本発明に係るリアルタイム制御システムは、 前記ポーリング部が、 前記ィベン ト処理中に発生した前記割込み信号をポーリングし、 該割込み信号に対応した前 記イベント処理を実行するタスク処理信号を出力する。
前記のごとく構成された本発明のリアルタイム制御システムは、 イベント処理 中に、 次のイベント処理の要求が発生したとしても、 ポーリングしているので、 このような割込みを禁止し再度ドライバ部に入力信号を送信する必要がない。 よ つて、 個々の割込み時に、 オーバヘッド時間は発生しない。
本発明に係るリアルタイム制御システムは、 前記タスク判定手段が、 前記タス ク処理信号の有無に基づいて、 前記イベント処理の継続性を判定する。
前記のごとく構成された本発明のリアルタイム制御システムは、 割込み信号が タスク処理信号であり、 割込みが無い時は、 イベント処理は終了することができ る。
また、 本発明に係るリアルタイム制御システムは、 複数の前記タスク処理信号 が、 同時に検出された時に、 前記タスク判定手段が、 前記タスク処理信号の各々 に優先順位を付けて、 リードする。 また、 本発明に係るリアルタイム制御システ ムは、 複数の前記タスク処理信号が、 同時に検出された時は、 前記タスク判定手 段が、 前記検出時に、 前記イベント処理手段がイベント処理をしている処理に対 応した前記タスク処理信号とは異なる信号を優先的にリードする。
前記のごとく構成された本発明のリアルタイム制御システムは、 それぞれの入 力信号に対応したィベント処理手段を実行し、 複数の入力信号が入力されたとき は、 その処置順序に優先順位を付けたり、 連続して同じ信号を処理しないような 条件を設定してもよく、 このように設定することで、 割込みの要求に対応したィ ベント処理を的確に満すことができる。
図面の簡単な説明
図 1は、 本発明の実施形態に係るコントローラのハードウェアの構成を示すブ口 ック図である。
図 2は、 本発明に係るリアルタイム制御システムの第一の実施形態を示すブロッ ク図である。
図 3は、 タスク I Dと、 割込み因子に基づくイベントと、 の対応を示すイベント テーブルである。
図 4は、 イベント毎の周期時間を示したテーブルである。
図 5は、 第一の実施形態に係るスケジューラの処理内容を示す制御フロー図であ る。
図 6は、 タスクのタスク処理内容を示す制御フロー図である。
図 7は、 タイマポーリング部の処理の詳細を示す制御フロー図である。
図 8は、 従来のィベント周期型タスクの処理を示すタイミングチヤ一トである。 図 9は、 本実施形態に係るィベント周期型タスクの処理を示すタイミングチヤ一 トである。
図 1◦は、 本発明に係るリアルタイム制御システムの第二の実施形態を示すプロ ック図である。
図 1 1は、 第二の実施形態に係るタスクのタスク処理内容を示す制御フロー図で ある。
図 1 2は、 図 1 1のポーリング処理内容を示す制御フロー図である。
図 1 3は、 入力 Aの処理中に入力 Bが入力された時の従来のタイミングチヤ一ト である。
図 1 4は、 入力 Aの処理中に入力 Bが入力された時の第二の実施形態に係るタイ ミングチャートである。
図 1 5は、 入力 A処理後に入力 Bが入力された時の第二の実施形態に係るタイミ ングチヤ一トである。 発明を実施するための最良の形態
以下、 本発明に係るリアルタイム制御システムの実施形態を図面に基づき詳細 に説明する。
図 1は、 本発明の一実施形態に係るリアルタイム制御システム (コントローラ) 1 0のハードウェアの構成を示す制御ブロック図である。 図 1に示すように、 コ ントローラ 1 0は、 C P U 1 1 (演算装置) 、 メモリ 1 2出力モジュール 1 3、 及び入力モジュール 1 4、 からなり、 これらのハードウェアは、 パスにより結合 されている。
入力モジュール 1 4は、 入力信号である入力 A及び入力 Bを処理するハードウ エアである。 入力信号をレジスタに反映し、 必要ならば、 C P U 1 1に割込みを 入れる。 そして、 この入力モジュール 1 4は、 1つ以上の入力信号を受けること が可能であり、 信号が入力される毎に、 C P U 1 1に割込みを入れることができ る。 具体的には、 入力モジュール 1 4は、 入力信号を受けたポートを識別するた めのフラグを持ち、 フラグを C P U 1 1に割込み要因として与えることができる また、 CPU1 1は、 演算機をもち、 入力モジュール 14からの信号を割込み 要因として受取り、 この割込み要因を受けて、 メモリ 12から命令となる信号を リ一ドし、 実行する。 この他にも、 CPU 1 1は、 タイマ 15、 及び内蔵メモリ を有している。 タイマ 1 5を内蔵しない CPUを用いる場合は、 外付けのタイマ を用いてもよい。 このタイマ 15は、 経過時刻を CPU 1 1に示すカウンタであ る。 本実施形態では、 タイマ 15はアップカウンタとするが、 タイマ 15がダウ ンカウンタの場合でも、 実施可能である。
また、 メモリ 12は、 不揮発性メモリ、 及び Z又は、 揮発性メモリを有し、 C PU1 1からの入力信号を受けて、 CPU1 1が行う演算の命令となる信号を C PU1 1に送る。 不揮発性メモリとしては、 EE PROM又はフラッシュメモリ などがあり、 不揮発性メモリは、 プログラムや、 データの初期値が記録される。 一方、 揮発性メモリとしては、 S RAMS又は SDRAMなどがあり、 揮発性メ モリは、 データ、 及び Z又は、 スタックが記録される。 実施形態のリアルタイム 制御装置を実施するオペレーティングシステム (以下 O Sと云う) も、 メモリ 1 2に記録される。
さらに、 出力モジュール 13は、 CPU 1 1からの演算結果に基づいて、 出力 信号を処理するハードウェアである。 出力モジュール 13は、 1つ以上の出力ポ ートを持つことができる。 ちなみに、 本実施形態では、 出力モジュール 13は、 なくてもよい。
図 2は、 第一の実施形態のリアルタイム制御システムのソフトウエアを示すブ 制御ロック図である。 本実施形態のソフトウェアは、 スケジューラ 1、 タイマポ 一リング部 2、 周期テーブル 3、 ドライバ部 4、 タスク処理部 (以下タスクと云 う) 5及び CPU 1 1にあるタイマ 15により構成される。
スケジューラ 1、 タイマポーリング部 2、 ドライバ部 4、 及びタスク 5は、 O Sに含まれるが、 ミ ドルウェアとして OSの外に存在してもよい。 また、 タスク 5は、 アプリケーションの要求にあわせて、 2つ以上存在してもよい。
まず、 ドライバ部 4は、 ドライバ部 4内にある割込みハンドラ、 及び入力モジ ユール 1 4のレジスタを初期設定、 及び Z又は、 リード及びライ トするデバイス ドライバからなる。 すなわち、 ドライバ部 4は、 リセット直後に、 入力モジユー ル 1 4や出力モジュール 1 3のレジスタを初期化する。 また、 先に示した入力モ ジュール 1 4の割込み要因となる入力信号の受信割込みをする必要がある場合に は、 ドライバ部 4は、 入力モジュール 1 4から入力 A又は入力 Bなどからなる入 力信号の割込みを許可するように設定される。 そして、 ドライバ部 4の割込みハ ンドラは、 割込みが発生した直後に、 入力モジュール 1 4から入力信号をリード し、 スケジューラ 1に、 割込み信号を送信する。
また、 スケジューラ 1は、 ドライバ部 4の割込みハンドラが、 入力モジュール 1 4からリードした入力 A又は入力 Bの割込み信号を受信することにより、 起動 する。
図 3は、 後述するタスク 5内に存在する複数のイベント処理手段 5 1を識別す るタスク I Dと、 ドライバ部 4で入力された入力 A又は入力 Bの割込み要因に基 づくイベント (事象) と、 の対応関係を表したイベントテーブルであり、 スケジ ユーラ 1は、 このィベントテーブルを有している。 そして、 スケジューラ 1は、 入力 A又は入力 Bのィベントに従って、 イベントテーブルから、 タスク I Dを検 索し、 検索したタスク I Dをタスク 5に送信する。 ちなみに、 スケジューラ 1は 、 入力 Aの割込みをタスク I D = 0、 入力 Bの割込みをタスク I D = 1と識別し 、 タスク I Dをタスク 5に送信し、 タスク 5を起動させる。 また、 スケジューラ 1は、 2タスク分のデータを保存しているが、 3以上のタスクでも可能である。 さらに、 スケジューラ 1は、 タスク I D送信後に、 タスク 5からの信号である後 述する戻り値を受信し、 周期テーブル 3からタスク周期時間を読み取り、 そして タイマポーリング部 2に引数を与え、 その結果、 タスク 5の次回のタスク処理開 始時刻であるタスク処理信号をタスク 5に送る。
また、 タスク 5は、 アプリケーション処理を実行するプログラムであり、 タス ク I Dに対応した複数のイベント処理を行うイベント処理手段 5 1と、 ィベント 処理の継続又は終了を判定するタスク判定手段 5 2と、 を有する。 そして、 タス ク 5のイベント処理関数を有したィベント処理手段 5 1を実行するために、 スケ ジユーラ 1のイベントテーブルから検索されたタスク I Dは、 ェントリァドレス にジャンプすることで、 タスク 5を起動し、 先に示したタスク判定手段の判定結 果を、 スケジューラ 1にリターンする。
この他にも、 実施形態に係るタスク 5のイベント処理手段 5 1は、 イベントタ スクと、 イベント起動型周期タスクと、 を有してもよく、 スケジューラ 1は、 こ の 2種類のイベント処理手段 5 1をサポートする。 他の実施形態では、 周期タス クをサポートしてもよい。 周期タスクをサポートする場合は、 周期タスクのタイ マの割込みが発生する。 これが、 イベント起動型周期タスク実行中に発生すると 、 タスクに待ち時間が発生し、 周期時間をオーバすることがある。 これを回避す るために、 スケジューラ 1は、 イベント起動型周期タスクを起動するときに、 割 込み禁止とし、 このイベント起動型周期タスクを終了するときに、 割込みを許可 とするようになっている。
また、 周期テーブル 3は、 図 4に示す、 イベント毎の周期時間を示したテープ ルを有している。 この周期テーブル 3は、 スケジューラ 1からのタスク I Dを受 信して、 タスク I Dに対応した各イベントの周期時間を検索し、 スケジューラに 送信するプログラムである。 ちなみに、 この表では、 タスク I D = 0の時は、 ィ ベントは、 イベント起動型周期タスクであり、 タスク = 1の時は、 周期性を持た ないィベントタスクであることを示している。 また、 2タスク分のデータを保存 しているが、 3以上のタスクでも可能である。
タイマポーリング部 2は、 目標時間までタイマ 1 5をポーリングし、 目標時刻 になるとスケジューラ 1に、 タスク処理の起動時刻であるタスク処理信号を、 リ ターンするプログラムである。 スケジューラ 1は、 タスク 5の次の起動時刻まで に、 タイマポーリング部 2をコールする。 スケジューラ 1は、 タスク 5の起動型 周期タスクであるイベント処理手段 5 1の周期を、 引数としてタイマポーリング 部 2に与える。 本実施形態では、 入力 A又は入力 Bの入力によりスケジューラ 1 を起動するため、 入力 A及び入力 Bの割込みを許可しておく。
図 5は、 第一の実施形態に係るリアルタイム制御システムのスケジューラ 1の 処理内容を示す制御フロー図である。 スケジューラ 1は、 ドライバ部 4から割込 みを受けると実行開始する。 まず、 ステップ 5 0 1では、 先に示した割込み信号 をドライバ部 4からリードする。 この割込み信号は、 どのような割込みであるか を識別するためのフラグであり、 ここでは、 「入力 A」 又は 「入力 B」 に対応し たフラグである。
ステップ 5 0 2で、 図 3に示したイベントテーブルを用いて、 割込み信号によ り起動させるタスク 5を検索する。 起動するタスク 5がない場合は、 スケジユー ラを終了し、 起動するタスク 5のタクス I Dがある場合は、 ステップ 5 0 3に進 み、 タスク 5を起動させる。 すなわち、 入力 Aが割込んだ場合は、 タスク I D = 0を与え、 入力 Bが割込んだ場合は、 タスク I D二 1を与え、 タスク 5を起動さ せる。 このタスク 5の起動は、 タスク 5のエントリアドレスにジャンプすること により実現する。 また、 コンテキストスィッチが必要な場合は、 C P U 1 1のレ ジスタを全て保存し、 レジスタをクリァする。 ステップ 5 0 3でタスク 5が起動 し、 イベント処理手段 5 1の処理が終了すると、 ステップ 5 0 4に進む。 ここに 示すステップ 5 0 3の詳細は、 後述する図 6で説明する。
ステップ 5 0 4では、 スケジューラ 1は、 タスク 5のタスク判定手段 5 2から 、 戻り値として 「継続」 又は 「終了」 のどちらかの信号を格納する。 戻り値が 「終了」 の場合は、 スケジューラ 1は、 終了され、 戻り値が、 「継続」 の場合は 、 ステップ 5 0 5に進む。
ステップ 5 0 5は、 先に示したタスク I Dを用いて、 図 4に示す周期テーブル 3を検索し、 タスク 5の周期が 0かどうカゝ (周期をもっかどう力 を判定する。 例えば、 タスク I D = 0 (ィベント :入力 A) の場合は、 周期は 1 0 u s e c と なり、 タスク I D = 1 (ィベント :入力 B ) の場合は、 周期は 0 u s e cとなる 。 そして、 周期が 0 (タスク I D = 1 ) の場合は、 スケジューラ 1を終了させ、 それ以外 (タスク I D = 2 ) の場合は、 タスク 5は、 イベント起動型周期タスク であると判断し、 ステップ 5 0 6に進む。
ステップ 5 0 6では、 タイマポーリング部 2を実行し、 次のタスク起動時刻ま で待つ。 タイマポーリング部 2には、 スケジューラ 1で検索した周期を、 引数と して与える。 このタイマポーリング部 2の実行の詳細は、 後述する図 7で説明す る。 その後、 ステップ 5 0 4にあるタスク 5からの戻り値が 「終了」 となるまで 、 一連のステップ 5 0 3〜ステップ 5 0 6を繰り返し実行する。
図 6は、 図 5に示すステップ 5 0 3のタスクの処理を示す制御フロー図である 。 まず、 ステップ 6 0 1では、 タスク 5のタスク判定手段 5 2が 「継続」 するか
「終了」 するかどうかの判定処理を行う。 判定処理は、 例えば 「入力 Aの割込み が発生しているかどうカ 、 「イベント発生後、 タスク 5が起動しイベント処理 手段 5 1を実行した回数が、 規定の回数に達したかどうか」 などの判定基準を設 け、 その判定基準に従って、 判定処理を行い、 ステップ 6 0 2に進む。 ステップ 6 0 2では、 ステップ 6 0 1のタスク判定手段 5 2の判定処理に基づいて、 判定 結果を判断する。 判定結果が 「終了」 であれば、 ステップ 6 0 3に進み、 「終了 」 を戻り値としてスケジューラ 1に返し、 タスク 5を終了させる。 判定結果が
「継続」 であれば、 ステップ 6 0 4に進み、 イベント処理を行う。 イベント処理 では、 C P U 1 1が、 入力 A又は入力 Bに対応したイベント処理手段 5 1を用い て実行する。 出力があれば、 出力モジュール 1 3から、 信号を出力する。 その後 、 ステップ 6 0 5に進み、 「継続」 を戻り値としてスケジューラ 1に返し、 終了 する。
図 7は、 タイマポーリング部 2の処理を示す制御フロー図である。 まず、 ステ ップ 7 0 1で、 現在時刻 T c (以下 T c ) と前回ポーリングが終了したポーリン グ終了時刻 T o (以下 T o ) とをリードする。 T cは、 現時点でのタイマ 1 5の 値である。 また、 T oは、 タイマポーリング部 2が前回の実行時に保存した時の 時刻である。 イベント発生直後の場合は、 タイマポーリング部 2をはじめて実行 するので、 ステップ 7 0 1の実行時には、 T oは不定となる。 そこで、 この問題 を回避するために、 図 5のステップ 5 0 1とステップ 5 0 2の間で、 スケジユー ラ 1がタイマ 1 5をリードし、 タイマポーリング部 2の T oとして記録しておく とよい。
次に、 ステップ 7 0 2で、 次に処理される予定であるタスク 5のイベント処理 手段 5 1の起動時刻 T n (以下 Τ η ) を求める。 Τ ηは、 〃1:0 +周期-丁(:"にょ り求まる。 Τ οから T cの間でタイマ 1 5がォーパフローした場合、 すなわち、 T oよりも T cが小さい場合、 その分を補正して Tnを決定する。
その後、 ステップ 703で、 タイマ 1 5から T cを再度リードする。 ステップ 704で、 T cが Τ ηよりも大きいかどうか判定する。 T cと Tnの間で、 タイ マ 15のオーバフローが発生する場合、 すなわち T cよりも Tnが小さい場合、 タイマ 15がォーパフローになるまでは、 T nと T cの比較は行わない。 ステツ プ 704の比較の結果、 真になるまで、 ステップ 703及びステップ 704を繰 り返す。 ステップ 704が真になる 'と、 ステップ 705に進み、 T cを T oに保 存する。
図 8及び図 9は、 ィベント処理手段 51であるイベント周期型タスクの処理を 示すタイミングチャートであり、 図 8は、 従来のタイミングチャートであり、 図 9は、 本実施形態に係るタイミングチャートである。
図 8に示すように、 従来の方式では、 周期タスクは、 最初に、 イベントが発生 しているかどうかを、 入力モジュールのポーリングで判定し、 発生時に、 ィベン ト処理を続けて行う。 入力 Aの割込み発生後、 割込み処理にオーバヘッド時間 T i (以下 T i ) かかる。 その後、 タスク処理中で、 判定処理に処理判定時間 T j (以下 T j ) 、 イベント処理にイベント処理時間 T t (以下 T t) かかる。 これ を繰り返すので、 本方式の最小のタスク周期は、 T i + T j + T tとなる。
一方、 図 9に示すように、 本実施形態では、 入力 Aが入力されるとドライブ部 の割込みハンドラが起動される。 そのとき、 割込み処理時間は、 T iかかる。 そ の後、 スケジューラ 1がタスク 5を起動し、 判定処理を行う。 図 8に示すように T j と同様に判定処理時間は T jかかる。 判定処理が 「継続」 の場合、 イベント 処理を行い、 イベント処理時間 T t (以下 T t) の間で実行される。 イベント処 理終了後、 次の周期まで時間があれば、 スケジューラ 1が、 タイマポーリング部 2を起動し、 ポーリング時間 Tp (以下 Τρ) だけ待つ。 以降は、 判定処理が 「終了」 と判断するまで、 T j,T t,Τ ρを繰り返す。 従って、 タスク 5の周期 は、 T j +T t +Tpとなり、 この周期最小値は T p = 0ときなので、 T j +T tとなる。 ここで、 T iは数 10 u s e c程度であるのに対して Tpは 1 u s e c以下であるので、 タスクの周期は大幅に短縮することができる。 次に、 図 1 0は、 本発明のリアルタイム制御システムの第二の実施形態を示す 制御ブロック図である。 本実施形態のリアルタイム制御システムのソフトウエア は、 ドライバ部 4 ' 、 ポーリング部 2 ' 、 及びタスク処理手段 (以下タスクと云 う) 5 ' より構成される。 タスク 5 ' は、 アプリケーションの要求にあわせて、 2つ以上存在することができる。
ドライバ部 4, は、 割込みハンドラ、 及び、 入力モジュール 1 4のレジスタを 、 初期設定、 若しくはリード、 又はライトするデパイスドライバである。 ドライ パ部 4, は、 リセット直後に、 入力モジュール 1 4や出力モジュール 1 3のレジ スタを初期化する。 受信割込みが必要な場合は、 入力モジュール 1 4からの割込 みを許可するように設定する。 本実施形態では、 入力信号である入力 Aと入力 B の割込みによりタスク 5, を起動するため、 ドライパ部 4, は入力 A、 入力 Bの 割込みを予め許可している。 割込みハンドラは、 割込みが発生した直後に実行さ れる。 ドライバ部 4, は、 入力モジュール 1 4から入力信号をリードし、 割込み 信号を出力し、 タスク 5 ' を呼び出す処理を行う。 本実施形態では、 入力が入力 Aと入力 Bとの 2つだが、 3個以上の入力があってもよい。
また、 タスク 5 ' は、 アプリケーション処理を実行するプログラムである。 タ スク 5, のエントリァドレスは、 ドライバ部 4, が記憶しており、 タスク 5, は 、 一つ以上の関数から構成されるが、 本実施形態では、 少なくとも、 タスク判定 手段 5 2 ' と、 入力 Aの処理を行う入力 A関数を有したイベント処理手段 5 1 A と、 入力 Bの処理を行う入力処理関数 Bを有したイベント処理手段 5 1 Bと、 を 有する。
また、 ポーリ ング部 2, は、 ドライバ部 4, の入力 A又は入力 Bに対応した割 込み信号をポーリングし、 タスク 5 ' にタスク処理信号を出力するプログラムで ある。 タスク 5 ' のイベント処理手段 5 1 A、 イベント処理手段 5 1 Bの実行が 終了したときに、 すぐにタスク 5 ' は終了されず、 割込み因子の有無を確認する ために、 ポーリング部 2, は、 タスク判定手段 5 2 , からコールされるタスク処 理信号を出力する。
図 1 1は、 第二の実施形態に係るリアルタイム制御システムのタスク 5, の処 理内容を示す制御フロー図である。 まず、 ステップ 1 1 0 1では、 タスク 5 ' は 、 ドライバ部 4 ' より起動された直後、 ドライバ部 4 ' より引数として渡された 割込み信号をリードする。 そしてステップ 1 1 0 2に進み、 ステップ 1 1 0 2で は、 割込み要因である割込み信号を" 入力 A" 又は" 入力 B " のいずれの割込み であるかタスク判定手段 5 2 ' で判定する。 ここで、 " 入力 A" ならば、 ステツ プ 1 1 0 3に進み、 入力 Aに対応したイベント処理手段 5 1 Aの入力 A関数を実 行する。 入力 A関数は、 入力 Aの割込みが発生した時に行う関数である。 例えば 、 入力 Aが、 エンジンコントローラュニットのクランク信号であれば、 イベント 処理手段 5 1 Aでは、 点火タイミングの計算などを行う。 ステップ 1 1 0 2にお いて、 割込み信号が、 " 入力 B " であれば、 ステップ 1 1 0 4に進み入力 B関数 を実行する。 もし、 ステップ 1 1 0 2において、 割込み信号が" なし" であれば 、 タスク 5 ' を終了する。 次に、 ステップ 1 1 0 5において、 タスクのタスク判 定手段 5 2, はポーリング部 2, をコールし、 タスク処理信号があれば受信する 。 その後、 再び、 タスク処理信号を用いてステップ 1 1 0 2の判定を行い、 ステ ップ 1 1 0 2の判定が、 " なし" になるまで、 先に示した一連の作業を繰り返す ステップ 1 1 0 2の判定は、 同時に複数の信号が存在する時の選択方式により 、 2種類に分類される。 第一に、 信号を交互に選択する方式である。 これは、 前 回検出した信号を、 メモリに記憶しておき、 これ以外の信号を選択する方式であ る。 第二に、 割込み要因を定まった順序 (優先順位を付けた順序) で選択する方 式である。 第一の方式の場合、 入力 A又は入力 Bを交互に選択するので、 公平に 処理することができる。 例えば、 入力 A、 入力 Bの処理に優先順位が存在しない ようなシステムに適している。 第二の方式の場合は、 入力 Aを必ず選択し、 入力 A 無い場合のみ入力 Bを選択する。 あるいは、 入力処理を優先的に実行しても よい。 例えば、 入力 Aの処理の優先順位が、 入力 Bの順位よりも高いようなシス テムに適している。 本実施例では、 第一の方式、 第二の方式を示したが、 これら 以外の順序で、 入力 A、 入力 Bを選択してもよい。
さらにステップ 1 1 0 2の判定は、 同一信号が、 再度検出された時の判定方式 によっても、 二種類に分類される。 第一に、 再度検出された信号に対応するィべ ント処理手段 5 1 A、 又はイベント処理手段 5 1 Bを実行する方式である。 第二 に、 再度検出された信号は無視し、 未検出の信号を選択する方式である。 第一の 方式のメリットは、 連続して入力がある場合、 割込みハンドラのオーバへッド時 間なしに、 複数回の入力関数を実行できることである。
そしてこのような第一の方式は、 入力 Aが周期的な入力であり、 かつ、 その周 期的が割込みハンドラのオーバべッドに比べて、 極めて短い場合に適している。 第二の方式のメリットは、 定期的に割込み許可状態にできることである。 本実施 形態では、 タスク 5 ' は、 リアルタイム性を確保する (優先順位が高い) ために 割込み禁止で動作しているが、 タスク 5 ' が動作し続けると、 入力 A又は入力 B 以外の割込みが入った時に、 処理できない。 そこで、 第二の方式を用いることで 、 入力 A、 入力 Bの処理を一回行ったあとに、 タスク 5 ' をー且終了させること で、 他の割込みが入れるようにする。
図 1 2は、 図 1 1のステップ 1 1 0 5のポーリング処理内容を示す制御フロー 図である。 まず、 ステップ 1 2 0 1で、 ドライバ部 4, から割込み信号をリード する。 割込み信号は、 入力モジュール 1 4、 出力モジュール 1 3いずれかのレジ スタに、 一括、 又は分散して記録される。 これらのうち必要な割込み信号を、 リ ードする。 本実施形態では、 タスク 5 ' は入力 Aと入力 Bの割込み処理を行うの で、 入力 A及び入力 Bの割込み信号をリードする。 そしてステップ 1 2 0 2にお いて、 割込み信号を、 タスク 5 ' に戻り値として返す。 入力の数が、 3 2個以内 であれば、 入力ごとの割込み要因をビットマップに置き換えて 4パイトコードに し、 関数の戻り値として返すこともできる。 もし、 3 2個以上の入力があれば、 割込み要因を保存する構造体を生成し、 そのボインタをリターンしてもよい。 図 1 3〜図 1 5は、 イベント処理手段 5 1 A及びイベント処理手段 5 1 Bの処 理を示すタイミングチャートであり、 図 1 3は、 入力 Aの処理中に入力 Bが入力 された時の従来のタイミングチャートであり、 図 1 4は、 入力 Aの処理中に入力 Bが入力された時の本実施形態に係るタイミングチャートであり、 図 1 5は、 入 力 A処理後に入力 Bが入力された時の本実施形態に係るタイミングチャートであ る。
図 1 3に示すように、 従来では、 入力 Aの割込みが発生してから、 割込みハン ドラの処理を行う時間であるオーバヘッド時間 T iを要する。 その後、 入力 Aの 処理を行うイベント処理手段 5 1 Aを処理時間 T tの間、 実行する。 イベント処 理手段 5 1 Aの処理中に、 入力 Bの割込みが発生しても、 割込み禁止されている ので、 イベント処理手段 5 1 Aの処理を実行する。 その後、 イベント処理手段 5 •1 Aの処理が終了すると、 割込み禁止が解除されて、 入力 Bの割込みが演算機に より検出される。 そして、 再び割込みハンドラがコールされ、 オーバヘッド時間 T i後に、 イベント処理手段 5 1 Bを実行する。
図 1 4に示すように、 本実施形態では、 まず、 入力 Aの信号が入力されると、 従来と同様に、 ドライバ部 4 ' の割込みハンドラが、 オーバヘッド時間 T iの間 、 割込み処理を行う。 しかし、 イベント処理手段 5 1 Aの処理中に、 入力 Bの割 込みが発生すると、 この信号が、 ポーリング部 2 ' に格納され、 関数終了後、 ポ ーリング時間 T pだけポーリングを行い、 イベント処理手段 5 1 Βを実行する。 ここでも、 第一の実施形態と同様に、 T iは数 1 0 u s e c程度であるのに対し て T pは 1 u s e c以下であるので、 タスクの周期は大幅に短縮することができ る。
図 1 5に示すように、 入力 Aと入力 Bの入力間隔が大きい場合には、 各々の入 力には、 オーバヘッド時間 T iに加え、 ポーリング時間 T pが必要となるので、 ポーリング時間 T pだけ無駄な処理を行うことになるが、 この時間も前述したよ うに、 極めて短い時間であるので、 性能に悪影響を及ぼすことはない。
以上、 本発明の一実施形態について詳述したが、 本発明は、 前記の実施形態に 限定されるものではなく、 特許請求の範囲に記載された本発明の精神を逸脱しな い範囲で、 種々の設計変更を行うことができるものである。
例えば、 ドライバ部、 タスク、 スケジューラ、 ポーリング部などは、 その機能 に合わせたプログラム内容であって、 これらの構成が統合及びさらに分割されて も、 その機能に変わりはない。
また、 第一の実施形態と第二の実施形態とを別個に説明したが、 これらの実施 形態を複合させるような実施形態であってもよい。 特に、 割込みされたタスク処 理信号として、 入力信号、 タイマの信号などを用いたが、 これらの信号に限られ るものではない。
また、 これらのリアルタイム制御システムは、 例えば、 自動車のコントローラ (エンジンプリタラシュ 'シート、 シートベルト .プリテンショナ一、 エアパッ グ、 クラッチ、 アンチブロックシステム、 電駆弁エンジン等のコントローラ) や 、 一般の産業機器のコントローラなどに適用可能であり、 割込み信号が入力され るようなシステムであるならば、 特に制限されるものではない。 産業上の利用の可能性
以上の説明から理解できるように、 本発明のリアルタイム制御システムは、 周 期性のあるイベントが発生した場合又は複数のィベントが同時に発生した場合に おいて、 周期タスクを的確に実施し、 複数のオーバヘッド時間の累積することに よる処理開始時間の遅れを防止することで、 より細かな応答が可能な制御及び複 数の指令に対して迅速かつ確実に応答可能な制御を行うことができる。

Claims

請 求 の 範 囲
1 . 入力信号を受信し各種タスク処理に対応した割込み信号を出力する ドライバ 部と、 該割込み信号に基づいてポーリングするポーリング部と、 前記割込み信号 に基づきタスク処理をするタスク処理部と、 を備えたリアルタイム制御システム であって、
前記ポーリング部は、 前記タスク終了時に前記ポーリングに基づきタスク処理 信号を出力し、 前記タスク処理 ¾3は、 タスク処理信号に基づいて前記タスク処理 をすることを特徴とするリアルタイム制御システム。
2 . 前記タスク処理部は、 イベント処理を実行するイベント処理手段、 及び該ィ ベント処理の継続性を判定処理するタスク判定手段からなり、 前記イベント処理 手段は、 前記判定結果が継続時に、 前記イベント処理を継続実行することを特徴 とする請求項 1に記载のリアルタイム制御システム。
3 . 前記イベント処理手段は、 周期起動するイベント処理をすることを特徴とす る請求項 1又は 2に記載のリアルタイム制御システム。
4 . 前記ポーリング部は、 タイマをポーリングし、 前記タスク処理の開始時刻と なる前記タスク処理信号を出力することを特徴とする請求項 1〜 3のいずれか一 項に記載のリアルタイム制御システム。
5 . 前記タスク判定手段は、 前記タスク処理の継続回数、 又は前記タスク処理中 の割込み信号の有無に基づき、 前記タスク処理の継続性を判定することを特徴と する請求項 2〜 4のいずれか一項に記載のリアルタイム制御システム。
6 . 前記ドライバ部、 前記タスク処理部、 及び前記ポーリング部と通信し、 前記 割込み信号の受信に伴い起動し、 前記判定結果を格納するスケジューラを備える ことを特徴とする請求項 2〜 5のいずれか一項に記載のリアルタイム制御システ ム。
7 . 前記スケジューラは、 前記イベント処理手段に対応した周期を記録する周期 テーブルを有し、 前記タスク判定手段は、 前記イベント処理の完了時に、 前記周 期テーブルの信号に基づき前記イベント処理の継続性を判定することを特徴とす る請求項 6に記载のリアルタイム制御システム。
8 . 前記スケジューラは、 前記タスク判定手段が起動中に、 終了となる前記判定 結果を格納するまでは、 前記割込み信号が前記タスクに割込むことを禁止するこ とを特徴とする請求項 6又は 7に記載のリアルタイム制御システム。
9 . 前記ポーリング部は、 前記タスク処理中に発生した前記割込み信号をポーリ ングし、 該割込み信号に対応した前記ィベント処理を実行する前記タスク処理信 号を出力することを特徴とする請求項 1又は 2に記載のリアルタイム制御システ ム。 ·
1 0 . 前記タスク判定手段は、 前記タスク処理信号の有無に基づいて、 前記ィべ ント処理の継続性を判定することを特徴とする請求項 9に記載のリアルタイム制 御システム。
1 1 . 複数の前記タスク処理信号が、 同時に検出された時は、 前記タスク判定手 段は、 前記タスク処理信号の各々に優先順位を付けて、 リードすることを特徴と する請求項 2又は 1 0に記載のリアルタイム制御システム。
1 2 . 複数の前記タスク処理信号が、 同時に検出された時は、 前記タスク判定手 段は、 前記検出時に、 前記イベント処理手段がイベント処理をしている処理に対 応した前記タスク処理信号とは異なる信号を優先的にリードすることを特徴とす る請求項 2又は 1 0に記載のリアルタイム制御システム。
PCT/JP2003/009877 2003-08-04 2003-08-04 リアルタイム制御システム WO2005013130A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP03817783A EP1653354A4 (en) 2003-08-04 2003-08-04 REAL-TIME CONTROL SYSTEM
PCT/JP2003/009877 WO2005013130A1 (ja) 2003-08-04 2003-08-04 リアルタイム制御システム
JP2005507400A JPWO2005013130A1 (ja) 2003-08-04 2003-08-04 リアルタイム制御システム
CNA038267322A CN1802634A (zh) 2003-08-04 2003-08-04 实时控制系统
US10/566,359 US7484214B2 (en) 2003-08-04 2003-08-04 Real time control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/009877 WO2005013130A1 (ja) 2003-08-04 2003-08-04 リアルタイム制御システム

Publications (1)

Publication Number Publication Date
WO2005013130A1 true WO2005013130A1 (ja) 2005-02-10

Family

ID=34113486

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/009877 WO2005013130A1 (ja) 2003-08-04 2003-08-04 リアルタイム制御システム

Country Status (5)

Country Link
US (1) US7484214B2 (ja)
EP (1) EP1653354A4 (ja)
JP (1) JPWO2005013130A1 (ja)
CN (1) CN1802634A (ja)
WO (1) WO2005013130A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013084059A (ja) * 2011-10-06 2013-05-09 Denso Corp 電子制御装置
CN104199353A (zh) * 2014-08-22 2014-12-10 山东超越数控电子有限公司 一种冷备份与热备份组合的双主机指挥控制系统

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4856983B2 (ja) * 2006-03-02 2012-01-18 株式会社日立製作所 ストレージシステム及びスケジューリング方法
JP5427008B2 (ja) * 2009-11-27 2014-02-26 富士通テン株式会社 車載表示システム
CN102632308B (zh) * 2012-03-22 2013-08-28 江苏省艾格森数控设备制造有限公司 电火花成型机的控制方法
US9507513B2 (en) 2012-08-17 2016-11-29 Google Inc. Displaced double tap gesture
WO2017091963A1 (zh) * 2015-11-30 2017-06-08 华为技术有限公司 一种信息处理方法及装置
JP6504089B2 (ja) * 2016-03-10 2019-04-24 横河電機株式会社 工程監視装置、工程監視システム、工程監視方法、工程監視プログラム及び記録媒体
CN108521951A (zh) * 2018-03-28 2018-09-14 贵州大学 一种播种单体减振自动控制方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60176145A (ja) * 1984-02-23 1985-09-10 Fujitsu Ltd 割込み処理回路
JPS62209626A (ja) * 1986-03-10 1987-09-14 Casio Comput Co Ltd 割り込み制御方式
JPH0926887A (ja) * 1995-07-12 1997-01-28 Mitsubishi Electric Corp オペレーティングシステム及びこれを用いるデータ処理装置
JP2003015885A (ja) * 2001-07-05 2003-01-17 Canon Inc 割り込み制御手段
JP2003036176A (ja) * 2001-07-24 2003-02-07 Sony Corp 割り込み処理システム

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3913070A (en) * 1973-02-20 1975-10-14 Memorex Corp Multi-processor data processing system
US5081577A (en) * 1989-12-22 1992-01-14 Harris Corporation State controlled device driver for a real time computer control system
US5201053A (en) * 1990-08-31 1993-04-06 International Business Machines Corporation Dynamic polling of devices for nonsynchronous channel connection
US5153837A (en) * 1990-10-09 1992-10-06 Sleuth Inc. Utility consumption monitoring and control system
FR2677474B1 (fr) * 1991-06-04 1993-09-24 Sextant Avionique Dispositif permettant d'accroitre les performances d'un noyau d'executif temps reel associe a une structure multiprocesseur pouvant comprendre un nombre eleve de processeurs.
US5404536A (en) * 1992-09-15 1995-04-04 Digital Equipment Corp. Scheduling mechanism for network adapter to minimize latency and guarantee background processing time
US5440746A (en) * 1992-11-06 1995-08-08 Seiko Epson Corporation System and method for synchronizing processors in a parallel processing environment
US5471618A (en) * 1992-11-30 1995-11-28 3Com Corporation System for classifying input/output events for processes servicing the events
DE19500957A1 (de) * 1994-07-19 1996-01-25 Bosch Gmbh Robert Verfahren zur Steuerung von technischen Vorgängen oder Prozessen
US5619409A (en) * 1995-06-12 1997-04-08 Allen-Bradley Company, Inc. Program analysis circuitry for multi-tasking industrial controller
EP0768609B1 (en) * 1995-10-16 2003-06-25 Hitachi, Ltd. Multimedia data transferring method
US6154832A (en) * 1998-12-04 2000-11-28 Advanced Micro Devices, Inc. Processor employing multiple register sets to eliminate interrupts
US7257814B1 (en) * 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US6366686B1 (en) * 1999-01-19 2002-04-02 National Instruments Corporation Video acquisition system including an improved event architecture
JP2000250764A (ja) 1999-02-26 2000-09-14 Nippon Telegr & Teleph Corp <Ntt> 周期タスク制御方法および周期タスク制御プログラムを記憶した記憶媒体
US6434708B1 (en) * 1999-04-09 2002-08-13 Integrated Technology Express, Inc. Programmable timer & methods for scheduling time slices executed by a controller circuit
US6633942B1 (en) * 1999-08-12 2003-10-14 Rockwell Automation Technologies, Inc. Distributed real-time operating system providing integrated interrupt management
US6425038B1 (en) * 1999-09-28 2002-07-23 Rockwell Automation Technologies, Inc. Conversion of desk-top operating system for real-time control using installable interrupt service routines
US7058949B1 (en) * 2000-11-08 2006-06-06 Unisys Corporation Operating system scheduler/dispatcher with randomized resource allocation and user manipulable weightings
JP3578082B2 (ja) 2000-12-20 2004-10-20 株式会社デンソー 処理実行装置及び記録媒体
US7114163B2 (en) * 2001-03-07 2006-09-26 Hardin David S Software component model for time sensitive embedded applications
US20030014474A1 (en) * 2001-05-30 2003-01-16 Mckaig Ray S. Alternate zero overhead task change circuit
US20040049628A1 (en) * 2002-09-10 2004-03-11 Fong-Long Lin Multi-tasking non-volatile memory subsystem
US7313797B2 (en) * 2002-09-18 2007-12-25 Wind River Systems, Inc. Uniprocessor operating system design facilitating fast context switching
US20040088704A1 (en) * 2002-10-30 2004-05-06 Advanced Simulation Technology, Inc. Method for running real-time tasks alongside a general purpose operating system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60176145A (ja) * 1984-02-23 1985-09-10 Fujitsu Ltd 割込み処理回路
JPS62209626A (ja) * 1986-03-10 1987-09-14 Casio Comput Co Ltd 割り込み制御方式
JPH0926887A (ja) * 1995-07-12 1997-01-28 Mitsubishi Electric Corp オペレーティングシステム及びこれを用いるデータ処理装置
JP2003015885A (ja) * 2001-07-05 2003-01-17 Canon Inc 割り込み制御手段
JP2003036176A (ja) * 2001-07-24 2003-02-07 Sony Corp 割り込み処理システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
See also references of EP1653354A4 *
TAKANORI YOKOYAMA ET AL.: "Kumikomi Seigyo System no tame no Jikan Kudo Object shiko Software Kaihatsuho", THE TRANSACTIONS OF THE INSTITUTE OF ELECTROS, vol. J84-D-1, no. 4, 2001, pages 338 - 349, XP002984737 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013084059A (ja) * 2011-10-06 2013-05-09 Denso Corp 電子制御装置
CN104199353A (zh) * 2014-08-22 2014-12-10 山东超越数控电子有限公司 一种冷备份与热备份组合的双主机指挥控制系统

Also Published As

Publication number Publication date
US20060242650A1 (en) 2006-10-26
US7484214B2 (en) 2009-01-27
EP1653354A4 (en) 2008-03-26
JPWO2005013130A1 (ja) 2006-09-28
CN1802634A (zh) 2006-07-12
EP1653354A1 (en) 2006-05-03

Similar Documents

Publication Publication Date Title
US8856196B2 (en) System and method for transferring tasks in a multi-core processor based on trial execution and core node
US8417990B2 (en) Multi-core processing system for vehicle control or an internal combustion engine controller
EP1685486B1 (en) Interrupt handling in an embedded multi-threaded processor to avoid priority inversion and maintain real-time operation
WO2005013130A1 (ja) リアルタイム制御システム
JP4241462B2 (ja) 制御ユニットおよびマイクロコンピュータ
EP1422627B1 (en) Method for generating interrupt commands in a microprocessor system and relative priority interrupt controller
US20100281485A1 (en) Method For Changing Over A System Having Multiple Execution Units
US8423681B2 (en) Control apparatus for process input-output device
US20050160425A1 (en) Limitation of the response time of a software process
US20050050541A1 (en) Method of and apparatus for task control, and computer product
JP2001216170A (ja) 専用ポーリング処理組み込みオペレーティング方法及び専用ポーリング処理組み込みオペレーティングシステム
JP6861275B2 (ja) 車両制御装置
US20080282248A1 (en) Electronic computing device capable of specifying execution time of task, and program therefor
US20020147761A1 (en) Processing execution apparatus having data reference limiting function
US20030135723A1 (en) Method and device for processing interrupt signals
WO2019159310A1 (ja) 電子制御装置
JP2002041493A (ja) マイクロコンピュータ
JP2012103802A (ja) 情報処理装置、電子制御ユニット
US8464100B2 (en) System for checking a program memory of a processing unit
JP2018124856A (ja) 電子制御装置
KR102075086B1 (ko) Dma를 활용한 epm 마이크로틱 생성 긴급 중단 방법
JP4231465B2 (ja) 組込み制御装置
JP3361949B2 (ja) プログラム検証装置
JPH0683652A (ja) マイクロコンピュ−タシステム
JP2006048241A (ja) 組込み制御装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP KR US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2005507400

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 20038267322

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2006242650

Country of ref document: US

Ref document number: 10566359

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2003817783

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2003817783

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 10566359

Country of ref document: US