WO2014188764A1 - 機能安全制御装置 - Google Patents
機能安全制御装置 Download PDFInfo
- Publication number
- WO2014188764A1 WO2014188764A1 PCT/JP2014/056388 JP2014056388W WO2014188764A1 WO 2014188764 A1 WO2014188764 A1 WO 2014188764A1 JP 2014056388 W JP2014056388 W JP 2014056388W WO 2014188764 A1 WO2014188764 A1 WO 2014188764A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- task
- safety
- control device
- functional safety
- processor
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B9/00—Safety arrangements
- G05B9/02—Safety arrangements electric
Definitions
- the present invention relates to a functional safety control device mounted on a vehicle or the like for ensuring functional safety.
- Vehicles must ensure their functional safety by constantly monitoring their safety status with a microprocessor or the like and executing appropriate safety-related processing when necessary.
- IEC61508, ISO26262, etc. have been established as international standards for functional safety.
- IEC61508 defines various techniques for constructing a safety-related system using hardware such as a microprocessor or PLC (Programmable Logic Controller) and a computer program (software). By using the technique defined in IEC61508, it is possible to construct a safety-related system using a computer system.
- safety-related application an application program related to functional safety
- normal control application an application program related to normal control
- time partitioning of an application program is performed on one microprocessor, and a safety-related application is temporally separated from a normal control application.
- the conventional technology has a drawback that the processing is complicated because the processing is performed by sequentially switching the application processing by task management called time partitioning.
- the functional safety control device executes a safety-related task related to ensuring functional safety of a control target by instructing control contents for the control target and a normal control task excluding functional safety related to control of the control target.
- the processor performs a safety-related task using an external signal input from the outside as a trigger.
- (A) It is a figure which shows the structure of the execution monitoring task and safety related task concerning 2nd Embodiment, (b) The priority of an execution monitoring task, a normal control task, and a safety related task. It is a flowchart which shows the process of the safety related task and execution monitoring task concerning 2nd Embodiment. It is a flowchart which shows the process of the safety related task concerning 2nd Embodiment. It is a flowchart which shows the process of the execution monitoring task concerning 2nd Embodiment. It is a flowchart which shows the process of the normal control task when the external signal concerning 2nd Embodiment stops.
- FIG. 1 is a circuit configuration diagram of a functional safety control device 1 according to the first embodiment.
- the functional safety control device 1 includes a processor 2, a watchdog timer (WDT) 3, and an event generation circuit 4.
- WDT watchdog timer
- PLC Programmable Logic Controller
- the processor 2 includes a nonvolatile memory 10 composed of an EP-ROM, an execution memory 11 composed of a RAM, an I / O module 12, a timer module 13, a CPU 14, and an interrupt controller 15.
- the WDT 3 always counts a timer internally, and has a function of clearing the counter when a clear signal is input from the processor 2, and a function of outputting a time-up signal when the counter value exceeds a predetermined value. have. If a clear signal is periodically input to the WDT 3 from the processor 2 and no time-up signal is output from the WDT 3, it can be confirmed that the processor 2 is operating normally. When the processor 2 does not operate normally and the clear signal is not output from the processor 2 to the WDT 3, the counter value of the WDT 3 counts up and outputs a time-up signal when the counter value exceeds a predetermined value To do. By connecting this signal to, for example, a reset circuit or the like (not shown), it is possible to shift the apparatus to a safe state by shutting off the driving of the external device 5 or the like when the processor 2 operates abnormally.
- the event generation circuit 4 is provided outside the processor 2 and periodically generates two external signals INT1 and INT2.
- the period in this case may be fixed and determined in advance, or may be arbitrarily set by the processor 2 or the like. By connecting the output of this event generation circuit 4 to the external interrupt terminal of the interrupt controller 15 of the processor 2, periodic interrupt processing is generated.
- the I / O module 12 is connected to an external device 5 such as a sensor and an actuator, and is connected to the control unit 7 via the network 6 to take in and output an input value.
- the timer module 13 has a function of setting a predetermined time, and an interrupt is generated when the set time is reached.
- the CPU 14 executes a program stored in the nonvolatile memory 10.
- the interrupt controller 15 When the interrupt is generated from the external interrupt terminal, the interrupt controller 15 jumps to the address registered in the vector table 100 stored in the non-volatile memory 10 and executes the processing from there. It has at least two external interrupt terminals, and external signals INT1 and INT2 are input from the event generation circuit 4.
- the vector table 100 is a table that associates an interrupt with a process for dealing with the interrupt.
- the OS 101 is executed by the CPU 14, and uses hardware resources such as the CPU 14, the execution memory 11, and the nonvolatile memory 10 to perform task management, interrupt management, time management, resource management, inter-task synchronization, and the like. Perform the process.
- the application consists of tasks in units of execution, and task management manages the execution timing and execution order of those tasks.
- Applications include safety-related applications, normal control applications, and execution monitoring applications.
- the safety-related application includes a safety-related task 102 including an instruction code for realizing functional safety established by IEC61508, ISO26262, etc. as international standards for functional safety.
- the normal control application includes a normal control task 103 including an instruction code for realizing a certain function to be controlled.
- the execution monitoring application includes an execution monitoring task 104 that monitors the execution of the safety-related task 102.
- the safety-related task 102, the normal control task 103, and the execution monitoring task 104 will be described as an example of being stored as a program in the nonvolatile memory 10 composed of an EP-ROM, but may be stored in other media, Further, it may be supplied via the network 6 or may be stored in a recording medium provided as a program product.
- the safety-related task 102 executes an abnormality detection process and a fail-safe process for shifting to a safe state when an abnormality occurs. For example, when there is an element (component) of the external device 5 for realizing a certain function to be controlled and the safety target is violated due to a failure of the element, a safety mechanism that monitors whether the element is operating normally Build up.
- temporal separation protection is realized by using external interrupt processing.
- the normal control task 103 is executed by the task management of the OS 101, the safety related task 102 is started by an interrupt triggered by the external signal INT1 from the event generating circuit 4, and the execution monitoring task 104 is triggered by an interrupt triggered by the external signal INT2. to start. Therefore, even if the task management of the OS 101 becomes abnormal, the safety related task 102 and the execution monitoring task 104 can be executed. Thereby, the execution time of the CPU 14 for the safety-related task 102 and the execution monitoring task 104 can be separated from the execution time of the normal control task 103 in terms of time.
- FIG. 2 is a functional block diagram of the normal control task 103 in the motor control, and shows an example of a main function using a resolver signal in the motor control.
- the processor 2 is shown as a functional block of the normal control task 103, which is shown by a target current calculation process 202 and a PWM (Pulse Width Modulation) output process 203.
- PWM Pulse Width Modulation
- the motor 250, the resolver 240 that detects the rotation speed of the motor, and the motor control unit 200 that controls the motor 250 are configured.
- the motor control unit 200 includes a resolver IC 201 that can convert a signal from the resolver 240 into an angle, a processor that performs an operation based on the signal, and a PWM output buffer 204 that transmits the PWM output to the motor.
- the processor 2 in addition to the angle information output from the resolver IC 201 so that the motor torque becomes the command torque value, the battery high voltage (not shown) information and the actual current value flowing through the motor (not shown) A target current is calculated in the target current calculation process 202 based on information and the like.
- the target current value is converted into a PWM signal by the PWM output processing 203 and output to the PWM output buffer 204.
- the PWM signal output from the processor 2 is converted into a signal of a level that can drive the motor, and is output to the motor 250 to control the motor 250.
- the target current may change, and the motor output may change suddenly due to the change in PWM output. This can cause, for example, sudden changes in vehicle behavior and violate safety goals.
- a safety mechanism that can detect an abnormal state for an element that may violate the safety target (in this case, the resolver IC) is constructed, and it is configured to be able to quickly shift to a safe state when an abnormality occurs. Is required.
- FIG. 3 shows an example of a safety mechanism against the failure of the resolver IC 201 in the motor control.
- a safety mechanism there is a means for adding another resolver IC to make it redundant, but here, an example in which the function of the resolver IC is made redundant by software will be described.
- the processor 2 is shown as a functional block of the normal control task 103 by a target current calculation process 202 and a PWM output process 203. Furthermore, an angle calculation process 211, a comparison process 212, and a fail-safe process 213 are shown with the processor 2 as a functional block of the safety-related task 102.
- the signal of the resolver 240 is input to the processor, and the motor angle is calculated by the angle calculation process 211. If an abnormality occurs by comparing the motor angle and the angle calculated from the resolver IC 201, a fail safe process 213 is performed, for example, a signal is sent to the PWM output buffer, and the PWM signal is shut off. Although not shown in the figure, as a fail-safe process, in addition to the PWM signal cutoff, a MIL (MultifunctionMultiIndicator Lamp: warning light) may be turned on or a PWM cutoff signal may be sent to the host controller. Good.
- MIL MultifunctionMultiIndicator Lamp: warning light
- the angle calculation process 211, the comparison process 212, and the fail safe process 213 are safety mechanisms for satisfying the functional safety against the resolver IC 201 failure, and the calculation process is the safety related task 102.
- Other processing is for controlling the motor, and is a normal control task 103.
- the normal control task 103 is divided into a plurality of tasks for each control item, and the operation timing is determined according to the control purpose, and these tasks are assigned to a JOB table as shown in FIG.
- FIG. 5 shows an example in which the operation cycle is 1 ms, 2 ms, and 10 ms as the JOB table.
- each job is registered in these tables, and this JOB table is executed for each determined cycle.
- the calculation can be performed at a predetermined period. Since the JOB table is executed in order from the task listed at the top, it is registered in consideration of the calculation order between tasks.
- a safety related JOB table for executing safety related tasks is defined in the JOB table, and when it is detected that interruption by an external signal is interrupted, the task management processing in the normal control task 103 is performed by the processor 2.
- the safety-related task of the safety-related JOB table is executed by.
- the OS 101 performs task management so that each task can be executed at a predetermined calculation cycle.
- An example is shown in FIG.
- the processing shown in FIG. 4 is assumed to be started every 1 ms by the OS 101 with reference to the timer module 13, for example.
- step S401 processing for counting up the timer of each JOB is performed in the software.
- task management of 1 ms, 2 ms, and 10 ms is performed, so each JOB timer is counted up each time a process is called.
- step S402 it is determined whether or not the 1 ms JOB timer is 1 or more.
- the timer for 1 ms JOB is set to 0 in step S403, and then the process proceeds to step S404 to execute the 1 ms JOB task.
- the tasks A, B, and C described in the 1 ms JOB table of FIG. 5 are executed in order.
- step S405 it is determined whether or not the 2 ms JOB timer is 2 or more. If 2 ms or more, the 2 ms JOB timer is set to 0 in step S406, and then the process proceeds to step S407 to execute the 2 ms JOB task in order.
- step S408 it is determined whether or not the 10 ms JOB timer is 10 or more. If 10 or more, the 10 ms JOB timer is set to 0 in step S409, and then the process proceeds to step S410 to execute the 10 ms JOB task in order.
- the normal control task 103 is managed by the OS 101 and executes processing.
- the safety-related task 102 is activated by an interrupt by the external signal INT1 from the event generation circuit 4, and the normal control task 103 is executed in the processing of FIG. 4 before the external interrupt is generated.
- step S601 determines the cause of the external interrupt. If the external interrupt is not for starting the safety-related task 102, the process proceeds to step S609, and the process is executed in consideration of the priority order of the external interrupt process and the scheduled task process determined by the JOB table.
- step S601 determines whether an interrupt for starting the safety-related task 102 has occurred. If it is determined in step S601 that an interrupt for starting the safety-related task 102 has occurred, the process proceeds to step S602, and an internal counter for interrupt monitoring is reset. This internal counter is counted up by software, and as will be described later, for example, when a predetermined value greater than 20 ms is reached, it is detected that the external signal INT1 has been interrupted. Details will be described later with reference to FIG.
- step S603 the normal control task 103 that is already operating is temporarily suspended. Then, it progresses to step S604 and the safety related task 102 is performed.
- the safety-related task 102 tasks 1 to N are defined in the order of processing, and in step S604, one of the tasks 1 to N is executed in the order of processing.
- step S604 the number of times abnormality is detected as a result of execution is counted for each task 1 to N, and in step S605, it is determined whether there is a task whose count value is n times, for example, 5 times. To do. If the count value has reached n times, it is assumed that an abnormality has occurred, and in step S606, a warning such as lighting of the MIL corresponding to the task is issued. Note that the count value is cleared after the countermeasure for the warning is completed.
- step S607 If the count value has not reached n times in step S605, or after a warning such as turning on the MIL is performed in step S606, it is determined in step S607 whether all the safety-related tasks 102 have been completed. To do. If all the safety-related tasks 102 have not been completed, the process returns to step S604, and the task in the next processing order among the tasks 1 to N is executed. When all the processes of the safety related task 102 are completed, the process proceeds to step S608, and the normal control task 103 process is resumed.
- FIG. 7 is a flowchart showing processing of the normal control task when the external signal is interrupted.
- the operation flow of the safety-related task 102 in FIG. 6 described above is generated by an external signal INT1 having a period determined to be 20 ms, for example, and is periodically called and processed.
- step S602 the internal counter for interrupt monitoring is reset. However, if the external signal INT1 is interrupted for some reason, the process in step S602 is not performed.
- step S701 it is detected whether the internal counter for interrupt monitoring is larger than k. If the internal counter is larger than k, for example, larger than 70 ms, it is detected that the external signal is interrupted.
- step S ⁇ b> 702 the processor 2 executes the safety-related task 102 by the task management process in the normal control task 103. Specifically, the normal control task 103 executes the safety related task based on the safety related JOB table shown in FIG.
- the configuration in which the processing of the safety-related task 102 is executed with the highest priority can always execute the safety-related task 102 even if the OS 101 becomes abnormal. It becomes possible.
- the safety-related task 102 is monitored using the WDT 3 conventionally used for processor monitoring. That is, in the process of the safety-related task 102, a trigger signal for WDT3 is created and output to WDT3.
- WDT3 detects the abnormality and shuts down the power by resetting the processor 2, for example. It is possible to transition to a safe state.
- both the safety-related task 102 and the normal control task 103 may be monitored using WDT3.
- a trigger signal for WDT3 is calculated in the normal control task 103, and the trigger signal for WDT3 is output to the WDT3 only when the trigger signal for WDT3 is normally calculated in the safety-related task 102. By doing so, both tasks can be monitored.
- the safety-related task 102 has the highest priority for interrupt processing. Therefore, when the processing of the safety-related task 102 itself becomes heavy, the computation load increases, and the normal control task that originally controls the control target There is also a possibility that 103 may not operate normally. Accordingly, a second embodiment for reducing the processing load of the safety-related task 102 will be described.
- FIG. 8A shows the configuration of the execution monitoring task and the safety-related task
- FIG. 8B shows the priority order of the execution monitoring task, the normal control task, and the safety-related task.
- an execution monitoring task 104 for monitoring whether or not each safety-related task 102 has been executed is added.
- the safety-related task 102 is composed of a plurality of tasks, for example, tasks 1 to N.
- the execution monitoring task 104 determines whether or not each safety-related task 102 has been executed, and the safety-related task 102 is normal. If it is determined that it is not operating, fail-safe operation is performed.
- the priority of the execution monitoring task 104 is the highest priority, and the safety related task 102 has a lower priority than the normal control task 103.
- the execution monitoring task 104 is activated by interrupt processing using the external signal INT2, and the safety-related task 102 is activated by interrupt processing using the external signal INT1.
- the execution monitoring task 104 Since the execution monitoring task 104 only monitors the execution of the safety related task 102, the processing load is lower than that of the safety related task 102. By making this execution monitoring task 104 the highest priority process, the interrupt processing load can be reduced, and even when the safety related task 102 becomes abnormal while ensuring the operation of the normal control task 103, the fail safe process The operation can be surely executed.
- FIG. 9 is a flowchart showing processing of the safety-related task 102 and the execution monitoring task 104.
- FIG. 9 shows processing executed when an external interrupt occurs.
- the external signal INT1 is an interrupt for executing the safety-related task 102
- the external signal INT2 is an interrupt for executing the execution monitoring task 104, and is periodically output from the event generation circuit 4.
- an external interrupt it is determined in step S901 whether it is an external interrupt for activating the safety-related task 102 or the execution monitoring task 104.
- step S910 If the external interrupt is not an interrupt for starting the safety-related task 102 or the execution monitoring task 104, the process proceeds to step S910, and the processing is performed in consideration of the priority order of the external interrupt processing and the scheduled task processing determined by the JOB table. Executed.
- step S902 when an interrupt for starting the safety-related task 102 or the execution monitoring task 104 is generated by an external interrupt, the process proceeds to step S902, and the internal counter for interrupt monitoring is reset.
- This internal counter is counted up by software. As will be described later, for example, when a predetermined value greater than 20 ms is reached, it is detected that the external signals INT1 and INT2 have been interrupted.
- step S903 the cause of the external interrupt is determined.
- the process proceeds to step S904, where the normal control task 103 that is already operating is temporarily interrupted, and the execution monitoring task 104 processing is executed in step S905.
- the safety-related task 102 is periodically executed. If it can be determined that the safety-related task 102 is not periodically executed, a fail-safe process such as processor reset is performed to shift to a safe state.
- the execution monitoring task 104 in step S905 when the safety related task 102 is periodically executed, the process proceeds to step S906, and the processing of the normal control task 103 is resumed.
- step S903 if the external interrupt is not the execution monitoring task 104 by the external signal INT2 in step S903, that is, if the external interrupt signal is the external signal INT1 that activates the safety-related task 102, the process proceeds to step S907 and the normal control task 103 The process is prioritized, and the process of the safety-related task 102 is made to wait until the normal control task 103 ends.
- step S908 the process of the safety-related task 102 described later is executed. That is, by executing the safety-related task 102 with a lower priority than the normal control task 103, it is possible to prevent the original control from failing due to an increase in the interrupt load of the safety-related task 102.
- the execution monitoring task 104 In order to monitor whether or not the execution monitoring task 104 is operating normally, the execution monitoring task 104 generates a trigger signal for WDT3.
- both the safety-related task 102 and the execution monitoring task 104 may be monitored.
- monitoring of the safety mechanism can be realized.
- FIG. 10 is a flowchart showing the safety-related task processing according to the second embodiment, and shows details of step S908 in FIG.
- step S1001 a variable i for sequentially specifying tasks 1 to N is set to 1.
- step S1002 task i is executed.
- the variable i is 1, the task 1 is executed.
- step S1002 the number of times an abnormality is detected in the execution result is counted for each task 1 to N.
- step S1003 it is determined whether the task has detected n times, for example, 5 times. If the number of times has reached n times, it is considered that an abnormality has surely occurred, and in step S1004, a warning such as lighting of the MIL corresponding to the task is given. The number of times stored for each task 1 to N is cleared after the response to the warning is completed.
- step S1005 after the i-th task is completed, the execution flag is set to 1 corresponding to the task number.
- step S1006 it is determined whether the variable i is N. If N is not N, 1 is added to the variable i in step S1007, and the process returns to step S1002. If the variable i becomes N in step S1006, the tasks 1 to N of the safety related task 102 are terminated. If some abnormality occurs and the process of the safety-related task shown in FIG. 10 is not executed, there is a task whose execution flag is not set to 1.
- FIG. 11 is a flowchart showing the processing of the execution monitoring task 104, and shows details of step S905 in FIG.
- step S1101 a variable i for sequentially specifying tasks 1 to N is set to 1.
- step S1102 it is determined whether or not the execution flag of the i-th task is 1. If the i-th task of the safety-related task 102 is executed, the execution flag is 1. However, if the i-th task is not executed, the execution flag is 0. By looking at this flag, the safety-related task 102 Whether or not to execute can be determined.
- step S11007 If the execution flag of the i-th task is 1, it is determined that the i-th task is normally executed, and the unexecuted counter of the i-th task is cleared to 0 in step S1106, and the process advances to step S11007.
- the execution flag of the i-th task is set to 0.
- step S1102 if the execution flag of the i-th task is not 1 in step S1102, the process proceeds to step S1103, and the non-execution counter of the i-th task is incremented. Thereafter, the process proceeds to step S1104, where it is determined whether or not the execution counter of the i-th task has reached a predetermined value. For example, when the process of the execution monitoring task 104 shown in FIG. 11 is executed a plurality of times as a result of the task non-executed state lasting for a predetermined period, the task execution counter becomes a predetermined value or more. If it is equal to or greater than the predetermined value, the process proceeds to step S1105 to perform a fail-safe operation such as reset.
- a fail-safe operation such as reset.
- the safety related task 102 Since the safety related task 102 has a lower priority than the normal control task 103, the safety related task 102 may be canceled if the processing load of the normal control task 103 temporarily increases. Moreover, since it is driven by the event generation circuit 4, there is a possibility that the drive cycle may vary. In consideration of this case, the predetermined value of the execution counter is determined.
- step S1104 it is determined whether the variable i is N. If N is not N, 1 is added to the variable i in step S1109, and the process returns to step S1102. If the variable i becomes N in step S1108, the execution monitoring task 104 is terminated.
- FIG. 12 is a flowchart showing processing of the normal control task when the external signal is interrupted.
- an external signal is generated at a predetermined cycle and is periodically called and processed.
- the internal counter for interrupt monitoring is reset. However, if the external signal is interrupted for some reason, the process of step S602 is not performed.
- step S1201 it is detected whether the internal counter for interrupt monitoring is larger than k. If the internal counter is larger than k, for example, larger than 70 ms, it is detected that the external signal is interrupted.
- step S ⁇ b> 1202 the processor 2 executes the safety-related task 102 by the task management process in the normal control task 103.
- step S ⁇ b> 1203 the processor 2 executes the safety-related task 102 by the task management process in the normal control task 103.
- the safety related task 102 Since the safety related task 102 is activated by an external signal, the safety related task 102 does not operate when the external signal is lost. In this case, as described above, the WDT 3 detects the abnormality and resets the processor 2.
- the safety-related task 102 is a safety mechanism that monitors the failure of the target element, and it is not desirable to immediately reset the safety mechanism 102 because it is lost. Preferably, although the MIL lighting and the output are limited, the function can be continued as much as possible. Therefore, when the external signal is lost, the safety-related task 102 may be configured to be executed by the task management that the OS 101 has. However, since the safety mechanism is lost at this time, the vehicle driver can recognize the vehicle by performing a fail-safe operation, a display of the loss of the safety mechanism, or the like.
- the event generation circuit 4 is configured in the functional safety control device 1, but may be in another functional safety control device, for example, the control unit 7. In this case, it is configured to connect to the external interrupt terminal of the interrupt controller 15 of the processor 2 using wire connection or CAN (Controller-Area-Network) communication.
- a plurality of event generation circuits 4 may be provided, and a plurality of external signals may be connected to the external interrupt terminal of the interrupt controller 15.
- the safety-related task 102 is periodically executed with an external signal.
- an external signal may not be limited to the safety-related task 102. That is, it is good also as a structure which performs arbitrary processing periodically with an external signal.
- the monitoring calculation unit may be periodically executed with an external signal.
- the processor 2 executes the safety-related task 102 using an external signal input from the outside as a trigger. Therefore, independently of the task management of the OS 101 of the processor 2 executing the normal control task 103, instruction codes for realizing functional safety established by IEC61508, ISO26262, etc. as international standards for functional safety are included. Since the safety-related task 102 can be executed, it is possible to separate the normal control task 103 in terms of time. Therefore, the safety-related task 102 and the normal control task 103 can be arranged in the same processor 2, and the functional safety control device 1 can be provided at a low cost by configuring it with a simple process.
- the external signal is periodically generated.
- the safety related task 102 is executed by the interrupt processing of the processor 2. Since the safety-related task 102 is activated at a fixed time interval, the target element can be periodically monitored, and a process of shifting to a safe state within a predetermined time from the time when an abnormality occurs can be performed.
- the period of the external signal is determined by the allowable time from the occurrence of an abnormality to the transition to a safe state, the number of determinations necessary for determining the abnormality, and the like. For example, if the allowable time is 200 ms and 5 times are required for determining the abnormality, a pulse period of 40 ms is sufficient. Of course, the period may be set shorter in consideration of an interrupt error or the like.
- the processor 2 executes the safety-related task 102 in preference to the normal control task 103 by an interrupt process using an external signal.
- the task management of the processor 2 becomes abnormal, and even if an interrupt occurs, the safety-related task 102 does not operate and does not shift to a safe state. Therefore, by making the priority of this interrupt the highest priority, the safety related task 102 can be executed even when the processor 2 becomes abnormal.
- An execution monitoring task 104 that monitors the execution of the safety-related task 102 is further provided, and the processor 2 executes the execution monitoring task 104 in preference to the normal control task 103, and the normal control task 103 is executed as the safety-related task 102. Execute over priority. In general, if the safety-related task 102 is given the highest priority, the safety-related task 102 can be executed without fail. However, if the safety-related task 102 increases, the computation load increases, and the normal control task 103 becomes normal. Does not work.
- the execution monitoring task 104 is given the highest priority, and the priority of the conventional safety-related task 102 is lowered, thereby ensuring the function of functional safety.
- the influence on the processing of the normal control task 103 can be minimized.
- the processor 2 performs task management processing in the normal control task 103.
- a safety related task 102 is executed.
- the safety-related task 102 is executed by an external interrupt, if an external signal is interrupted, the safety-related task 102 cannot be executed, and an abnormal state is detected when an element targeted by the safety-related task 102 becomes abnormal You will not be able to do it. Therefore, when the external signal is interrupted, the safety-related task 102 is executed by using the task management process of the normal control task 103, so that a fail-safe operation such as MIL lighting or output restriction is performed, and the abnormality of the target element is detected. Monitoring can be continued.
- the present invention is not limited to the above-described embodiment, and other forms conceivable within the scope of the technical idea of the present invention are also included in the scope of the present invention as long as the characteristics of the present invention are not impaired. It is.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Safety Devices In Control Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
簡素な処理により機能安全の実現を可能にする。 安全関連タスク102はイベント発生回路4からの外部信号による割込みで起動される。ステップS603では、既に動作している通常制御タスク103を一時中断して、安全関連タスク102を実行する。安全関連タスク102は、処理順にタスク1~Nが定義されており、ステップS604ではタスク1~Nを処理順に実行する。ステップS604では、実行された結果に異常が検出された回数を各タスク1~N別にカウントしており、ステップS605では、そのカウント値がn回に達していれば、確実に異常が発生していると見做し、ステップS606で、そのタスクに対応したMILの点灯等の警告を行う。安全関連タスク102の処理が終了した場合には、通常制御タスク103処理を再開する。
Description
本発明は、機能安全の確保のために車両等に搭載される機能安全制御装置に関する。
車両は、マイクロプロセッサ等によって安全状態を常時監視し、必要な場合は適切な安全関連処理を実行することで、機能安全を確保する必要がある。
機能安全に関する国際標準としてIEC61508やISO26262等が制定されている。IEC61508は、マイクロプロセッサやPLC(Programmable Logic Controller)等のハードウェアとコンピュータプログラム(ソフトウェア)によって安全関連系を構築するための様々な技法を定めている。IEC61508で定められている技法を用いることで、コンピュータシステムを用いて安全関連系を構築することが可能となる。
一方、近年マイクロプロセッサの処理能力向上及びハードウェアコストの低減を目的として、複数のアプリケーションを1つのマイクロプロセッサで実行することがトレンドとなっている。この場合、機能安全に関するアプリケーションプログラム(以下、安全関連アプリケーションと呼ぶ) をその他のアプリケーションプログラム(以下、通常制御アプリケーションと呼ぶ)と共に1つのマイクロプロセッサ上で動作させる。
安全関連アプリケーション及び通常制御アプリケーションを含むソフトウェア全体に機能安全規格で定められている手法を適用すると、互いのアプリケーションが干渉しないように独立的な構成にしなければならない。
例えば、特許文献1に開示されている技術では、1つのマイクロプロセッサ上でアプリケーションプログラムのタイムパーティションニングを行い、安全関連アプリケーションを通常制御アプリケーションから時間的に分離させている。
しかし、従来の技術では、タイムパーティショニングというタスク管理によってアプリケーション処理を逐次切り換えて処理を行っているため、処理が複雑になる欠点がある。
請求項1に記載の機能安全制御装置は、制御対象に対する制御内容を指示して制御対象の機能安全の確保に関する安全関連タスクと、制御対象の制御に関する機能安全を除いた通常制御タスクとを実行するプロセッサを備えた機能安全制御装置において、プロセッサは、外部から入力された外部信号をトリガにして安全関連タスクを実行することを特徴とする。
本発明によれば、簡素な処理により機能安全対応の実現が可能となる。
(第1の実施の形態)
図1は、第1の実施の形態に係わる機能安全制御装置1の回路構成図である。機能安全制御装置1は、プロセッサ2、ウォッチドックタイマ(WDT)3及びイベント発生回路4より構成されている。以下、マイクロプロセッサやPLC(Programmable Logic
Controller)を総称してプロセッサ2と称する。
図1は、第1の実施の形態に係わる機能安全制御装置1の回路構成図である。機能安全制御装置1は、プロセッサ2、ウォッチドックタイマ(WDT)3及びイベント発生回路4より構成されている。以下、マイクロプロセッサやPLC(Programmable Logic
Controller)を総称してプロセッサ2と称する。
プロセッサ2は、EP-ROMで構成される不揮発性メモリ10、RAMで構成される実行用メモリ11、I/Oモジュール12、タイマモジュール13、CPU14、割り込みコントローラ15で構成される。
WDT3は常時内部でタイマをカウントし、プロセッサ2からクリア信号が入力されたときには、そのカウンタをクリアする機能を有し、そのカウンタ値が所定値以上となった時に、タイムアップ信号を出力する機能を有している。プロセッサ2から定期的にクリア信号をWDT3に入力し、WDT3からタイムアップ信号が出力されなければ、プロセッサ2が正常に動作していることが確認できる。プロセッサ2が正常に動作しなくなり、プロセッサ2からクリア信号がWDT3に出力されなくなった場合には、WDT3のカウンタ値がカウントアップして、カウンタ値が所定値を超えたところで、タイムアップ信号を出力する。この信号を、例えばリセット回路等(図示せず) に接続することにより、プロセッサ2の異常動作時に、例えば外部機器5等の駆動を遮断することにより装置を安全な状態に移行させることができる。
イベント発生回路4は、プロセッサ2の外部に設けられ、2つの外部信号INT1、INT2をそれぞれ周期的に発生するものである。この場合の周期は、あらかじめ固定で決められていてもよく、プロセッサ2等より任意に設定されるものでもよい。このイベント発生回路4の出力をプロセッサ2の割り込みコントローラ15の外部割込み端子に接続することにより定期的な割り込み処理が発生することになる。
I/Oモジュール12は、センサ、アクチュエータ等の外部機器5と接続され、また、ネットワーク6を介して制御ユニット7と接続され、入力値の取り込みや出力を行う。
タイマモジュール13は、所定の時刻を設定する機能を有し、設定された時刻に達すると割り込みが発生する。CPU14は不揮発性メモリ10に格納されているプログラムを実行する。
割り込みコントローラ15は、外部割込み端子より割り込みが発生すると、不揮発性メモリ10に格納されたベクタテーブル100に登録された番地にジャンプし、そこから処理を実行する。外部割込み端子少なくとも2つの端子を備え、イベント発生回路4から外部信号INT1、INT2が入力される。ベクタテーブル100は、割り込みとそれに対処する処理とを関連づけるテーブルである。
OS101は、CPU14によって実行されることにより、CPU14、実行用メモリ11、および不揮発性メモリ10等のハードウェア資源を利用して、タスク管理、割り込み管理、時間管理、資源管理、およびタスク間同期等の処理を行う。
アプリケーションは、実行単位のタスクで構成されており、タスク管理とはそれらのタスクの実行タイミングや実行順序を管理するものである。アプリケーションには、安全関連アプリケーション、通常制御アプリケーション、実行監視アプリケーションがある。安全関連アプリケーションは、機能安全に関する国際標準としてIEC61508やISO26262等が制定されている機能安全を実現する為の命令コードを含んだ安全関連タスク102よりなる。通常制御アプリケーションは、ある制御対象の機能を実現するための命令コードを含んだ通常制御タスク103よりなる。実行監視アプリケーションは、安全関連タスク102の実行を監視する実行監視タスク104よりなる。
安全関連タスク102、通常制御タスク103、および実行監視タスク104はプログラムとしてEP-ROMで構成される不揮発性メモリ10に記憶される例で説明するが、その他の媒体に記憶されていてもよく、また、ネットワーク6を介して供給されたものであってもよく、プログラム商品として提供される記録媒体に記憶されたものであってもよい。
安全関連タスク102は、異常の検出処理および、異常が発生した場合に安全状態へ移行するためのフェールセーフ処理を実行する。例えば、ある制御対象の機能を実現する為の外部機器5のエレメント(構成要素)があり、そのエレメントの故障によって安全目標を侵害する場合、そのエレメントが正常に動作しているかを監視する安全機構を構築する。
同一のプロセッサ2を用いて、上記の通常制御タスク103と安全関連タスク102や実行監視タスク104を共存させるためには、互いのアプリケーションが干渉を起こさないように、可能な限り分離独立させる必要がある。すなわち、CPU14、実行用メモリ11、I/Oモジュール12を含むハードウェア資源を、時間的に分離保護する必要がある。
本実施の形態では、時間的な分離保護は外部割込み処理を使用することで実現する。通常制御タスク103はOS101のタスク管理で実行し、安全関連タスク102はイベント発生回路4からの外部信号INT1をトリガにした割込みにより起動し、実行監視タスク104は外部信号INT2をトリガにした割り込みにより起動する。そのため、たとえOS101のタスク管理が異常となっても安全関連タスク102、実行監視タスク104を実行することができる。これにより、安全関連タスク102、実行監視タスク104に対するCPU14の実行時間は、通常制御タスク103の実行時間と時間的に分離することができる。
次に図2及び3を用いて通常制御タスク103と安全関連タスク102について説明する。図2は、モータ制御における通常制御タスク103の機能ブロック図であり、モータ制御におけるレゾルバ信号を使った主機能の一例を示したものである。プロセッサ2を通常制御タスク103の機能ブロックとして、目標電流演算処理202及びPWM(Pulse Width Modulation:パルス幅変調)出力処理203で示している。
モータ250とモータの回転数を検出するレゾルバ240とモータ250を制御するモータ制御ユニット200から構成されている。モータ制御ユニット200は、レゾルバ240からの信号を角度に変換できるレゾルバIC201とその信号を基に演算を行うプロセッサ及びそのPWM出力をモータに伝達するためのPWM出力バッファ204を備えている。プロセッサ2内ではモータトルクが指令トルク値となるように、レゾルバIC201が出力する角度情報のほかに、バッテリの高電圧( 図示せず)情報 やモータに流れている実電流値(図示せず)情報などを基に目標電流演算処理202にて目標電流を算出する。
目標電流値はPWM出力処理203にてPWM信号に変換されPWM出力バッファ204に出力される。PWM出力バッファでは、プロセッサ2から出力されたPWM信号を、モータ駆動できるレベルの信号に変換しモータ250に出力し、モータ250を制御する。本構成図において、レゾルバIC201に故障が発生し、レゾルバICの演算に誤差が生じると、目標電流が変化し、PWM出力が変化することによりモータトルクが急変する恐れがある。これによって、例えば車両挙動が急変し、安全目標を侵害することがある。そこで、機能安全では、安全目標を侵害する恐れのあるエレメント( ここではレゾルバIC)に対し異常状態を検出できる安全機構を構築し、異常発生時には速やかに安全状態に移行できる構成となっていることが求められている。
図3は、モータ制御におけるレゾルバIC201失陥時に対する安全機構の一例を示したものである。安全機構としてレゾルバICをもう1つ追加して冗長化させる手段もあるが、ここでは、ソフトウェアにてレゾルバICの機能を冗長化させた例について説明する。
図3では、プロセッサ2を通常制御タスク103の機能ブロックとして、目標電流演算処理202及びPWM出力処理203で示している。更に、プロセッサ2を安全関連タスク102の機能ブロックとして、角度算出処理211及び比較処理212及びフェールセーフ処理213を示している。
レゾルバ240の信号をプロセッサに入力し、角度算出処理211にてモータ角度を算出する。そのモータ角度とレゾルバIC201から算出される角度を比較処理212して異常が発生した場合には、フェールセーフ処理213をおこない、例えば、PWM出力バッファに信号を送り、PWM信号を遮断する。なお、図示していないが、フェールセーフ処理として、PWM信号遮断のほかにもMIL(Multifunction Indicator Lamp:警告灯)の点灯や、上位コントローラに対してPWM遮断信号を送る処理を追加実施してもよい。本図における、角度算出処理211及び比較処理212及びフェールセーフ処理213がレゾルバIC201失陥に対する機能安全を満たすための安全機構であり、その演算処理は安全関連タスク102となる。それ以外の処理はモータを制御するためのものであり、通常制御タスク103となる。
次に図4を用いて通常制御タスク103の処理について説明する。通常制御タスク103は、制御の項目ごとに複数のタスクに分割され、さらに制御目的に応じた演算タイミングが決められており、これらのタスクを図5に示すようなJOBテーブルに割り付けている。
図5ではJOBテーブルとして、演算周期が1ms、2ms、10msの例を記載しているが、これらのテーブルに各タスクを登録し、決められた周期毎にこのJOBテーブルを実行することによって、決められた周期で演算を行うことができる。JOBテーブルは上位に記載されているタスクから順に実行されるため、タスク間の演算順序を考慮して登録される。更に、JOBテーブルには、安全関連タスクを実行する安全関連JOBテーブルが定められており、外部信号による割り込みが途絶したことが検出された場合に、プロセッサ2によって通常制御タスク103内におけるタスク管理処理によって安全関連JOBテーブルの安全関連タスクを実行する。
OS101は、各タスクが決められた演算周期で処理が実行できるようにタスク管理を行っている。その一例を図4に示す。図4に示す処理は、例えば、OS101がタイマモジュール13を参照して1msごとに起動するものとする。
ステップS401では、ソフトウェア内において各JOBのタイマをカウントアップする処理を実施する。本フローでは1ms、2ms、10msのタスク管理を行うため、それぞれのJOBのタイマを、処理が呼ばれるごとにカウントアップする。
その後、ステップS402に進み、1msJOBのタイマが1以上かどうかを判定する。1以上の場合には、ステップS403で1msJOBのタイマを0にした後、ステップS404へ進み1msJOBタスクを実行する。ここでは、先に述べたように図5の1msJOBテーブルに記載されたタスクA、B、Cを順番どおりに実行する。
その後、ステップS405に進み、2msJOBのタイマが2以上かどうかを判定し、2以上の場合には、ステップS406で2msJOBのタイマを0にした後、ステップS407へ進み2msJOBタスクを順に実行する。
その後、ステップS408に進み、10msJOBのタイマが10以上かどうかを判定し、10以上の場合には、ステップS409で10msJOBのタイマを0にした後、ステップS410へ進み10msJOBタスクを順に実行する。このように通常制御タスク103はOS101によってタスク管理が行われ処理を実行している。
次に図6を用いて安全関連タスク102の動作フローについて説明する。安全関連タスク102はイベント発生回路4からの外部信号INT1による割込みにより起動され、この外部割込みが発生する前は、図4の処理にて通常制御タスク103が実行されている。
イベント発生回路4は、例えば20msと決められた周期で外部信号INT1が発生するため、本割り込み処理は定期的に呼び出されることになる。外部割込みが発生すると、ステップS601へ進み、外部割込みの要因を判定する。外部割込みが安全関連タスク102起動用ではない場合には、ステップS609へ進み、外部割込み処理とJOBテーブルで決められた定時タスク処理の優先順序を勘案して処理が実行される。
一方、ステップS601で、安全関連タスク102起動用の割り込みが発生したと判別された場合には、ステップS602に進み、割り込み監視用の内部カウンタをリセットする。この内部カウンタはソフトウェアによりカウントアップされ、後述するように、例えば、20msより大きな所定値になると、外部信号INT1が途絶したことが検出される。詳細は図7を用いて後述する。
次のステップS603では、既に動作している通常制御タスク103を一時中断する。その後、ステップS604へ進み、安全関連タスク102を実行する。安全関連タスク102は、処理順にタスク1~Nが定義されており、ステップS604ではタスク1~Nのいずれかのタスクを処理順に実行する。
ステップS604では、実行された結果、異常が検出された回数を各タスク1~N別にカウントしており、ステップS605では、そのカウント値がn回、例えば5回になったタスクがあるかを判断する。カウント値がn回に達していれば、確実に異常が発生していると見做し、ステップS606で、そのタスクに対応したMILの点灯等の警告を行う。なお、カウント値は警告に対する対処が終了した後にクリアされる。
ステップS605でカウント値がn回に達していない場合や、ステップS606でMILの点灯等の警告が行われた後に、ステップS607では安全関連タスク102の全てのタスクが終了したかどうかの判定を実施する。安全関連タスク102の全てのタスクが終了していなければ、ステップS604に戻り、タスク1~Nのうち次の処理順のタスクを実行する。安全関連タスク102の処理が全て終了した場合には、ステップS608へ進み、通常制御タスク103処理を再開する。
図7は、外部信号が途絶した場合の通常制御タスクの処理を示すフローチャートである。前述の図6の安全関連タスク102の動作フローは、例えば20msと決められた周期で外部信号INT1が発生して、定期的に呼び出されて処理されている。そして、ステップS602で、割り込み監視用の内部カウンタがリセットされている。しかし、何らかの原因により、外部信号INT1が途絶した場合には、ステップS602の処理が行われなくなる。
図7に示す処理は、通常制御タスクにおいて、例えば20msより長い周期で繰り返し実行される。ステップS701で、割り込み監視用の内部カウンタがkより大きいかを検出し、内部カウンタがkより大きい、例えば70msより大きい場合には、外部信号が途絶したことを検出する。ステップS702で、プロセッサ2は通常制御タスク103内におけるタスク管理処理によって安全関連タスク102を実行する。具体的には、通常制御タスク103は、図5に示す安全関連JOBテーブルに基づいて、安全関連タスクを実行する。
このように、安全関連タスク102の処理を最優先で実行する構成とすることにより、OS101が異常になったとしても必ず安全関連タスク102を実行することができるため、安全状態に移行することが可能となる。
また、機能安全に対応するためには、安全関連タスク102が正しく実行されていることを監視する必要がある。そこで従来からプロセッサ監視に用いられているWDT3を使って安全関連タスク102の監視を行う構成とする。即ち、安全関連タスク102の処理において、WDT3用のトリガ信号を作成し、これをWDT3に対して出力する構成とする。
これにより、例えば外部割込み信号が異常となり、安全関連タスク102が実行できなくなったときには、WDT3用のトリガ信号が出力されなくなるため、WDT3が異常を検知し、例えばプロセッサ2をリセットして動力を遮断し安全な状態に遷移することが可能となる。
このような構成をとればWDT3を使って安全関連タスク102が正常に機能しているかの健全性監視を行うことができる。
また、WDT3を使って安全関連タスク102と通常制御タスク103の両方を監視してもよい。この場合、例えば通常制御タスク103内でWDT3用のトリガ信号を算出し、安全関連タスク102ではWDT3用のトリガ信号が正常に算出された場合のみ、WDT3用のトリガ信号をWDT3へ出力する構成とすることで、両方のタスクの監視を行うことができる。
(第2の実施の形態)
次に、第2の実施の形態について説明する。機能安全制御装置1の回路構成図は、図1に示す第1の実施の形態と同様であるので図示および説明を省略する。通常制御タスクの処理は図4に示すフローチャートと同様である。通常制御タスクのJOBテーブルも図5と同様である。
次に、第2の実施の形態について説明する。機能安全制御装置1の回路構成図は、図1に示す第1の実施の形態と同様であるので図示および説明を省略する。通常制御タスクの処理は図4に示すフローチャートと同様である。通常制御タスクのJOBテーブルも図5と同様である。
第1の実施の形態では、安全関連タスク102は割り込み処理が最優先となっているため、安全関連タスク102の処理自体が重くなると、演算負荷が高くなり、本来制御対象を制御する通常制御タスク103が正常に動作しなくなってしまう虞もある。そこで安全関連タスク102の処理負荷を低減する第2の実施の形態について説明する。
図8(a)は、実行監視タスクと安全関連タスクの構成、図8(b)は、実行監視タスク、通常制御タスクと安全関連タスクの優先順位を示す図である。
図8(a)に示すように、安全関連タスク102に加えて、それぞれの安全関連タスク102が実行されたか否かを監視する実行監視タスク104を追加する。安全関連タスク102は複数のタスク、例えばタスク1~Nにて構成されており、実行監視タスク104は、それぞれの安全関連タスク102が実行されたか否かの判定し、安全関連タスク102が正常に動作していないと判断された場合にはフェールセーフ動作を行う。
実行監視タスク104の優先順位は最優先とし、安全関連タスク102は通常制御タスク103より優先度を下げる。実行監視タスク104は外部信号INT2を使って割り込み処理にて起動され、安全関連タスク102は外部信号INT1を使って割り込み処理にて起動される構成とする。
実行監視タスク104は、安全関連タスク102の実行を監視しているだけであるため、安全関連タスク102に比べて処理負荷は低い。この実行監視タスク104を最優先処理とすることで、割り込み処理負荷を低くすることができ、通常制御タスク103の動作を確保しつつ、安全関連タスク102が異常となった場合でも、フェールセーフ処理動作を確実に実行することが可能となる。
図9は、安全関連タスク102および実行監視タスク104の処理を示すフローチャートである。図9は外部割込みが発生したときに実行される処理である。外部信号INT1は、安全関連タスク102を実行する割り込み、外部信号INT2は実行監視タスク104を実行する割り込みであり、イベント発生回路4より周期的に出力される。外部割込みが発生するとS901で安全関連タスク102若しくは実行監視タスク104を起動するための外部割り込みであるか否かの判定をする。
外部割込みが安全関連タスク102若しくは実行監視タスク104を起動するための割り込みではない場合は、ステップS910に進み、外部割り込み処理とJOBテーブルで決められた定時タスク処理の優先順序を勘案して処理が実行される。
一方、外部割込みが安全関連タスク102若しくは実行監視タスク104を起動するための割り込みが発生した場合には、ステップS902に進み、割り込み監視用の内部カウンタをリセットする。この内部カウンタはソフトウェアによりカウントアップされ、後述するように、例えば、20msより大きな所定値になると、外部信号INT1、INT2が途絶したことが検出される。
ステップS903では、外部割り込みの要因を判定する。外部割り込みが外部信号INT2による実行監視タスク104の場合にはステップS904へ進み、既に動作している通常制御タスク103を一時中断し、ステップS905にて実行監視タスク104処理を実行する。ここでは、後述するように、安全関連タスク102が定期的に実行されているかの判定を行う。もしここで安全関連タスク102が定期的に実行されていないと判断できる場合には、例えばプロセッサリセットのフェールセーフ処理等をおこなって安全状態に移行するようにする。ステップS905の実行監視タスク104において、安全関連タスク102が定期的に実行されている場合にはステップS906へ進み、通常制御タスク103の処理を再開する。
一方、ステップS903で、外部割り込みが外部信号INT2による実行監視タスク104でない場合、すなわち外部割り込み信号が安全関連タスク102を起動する外部信号INT1である場合には、ステップS907へ進み、通常制御タスク103処理を優先し、通常制御タスク103が終了するまで安全関連タスク102の処理を待機させる。通常制御タスク103処理が終了した場合にはステップS908へ進み、後述する安全関連タスク102の処理を実行する。即ち安全関連タスク102の実行は、通常制御タスク103より優先順位を低くすることで、安全関連タスク102の割り込み負荷増加により、本来の制御が破綻することを防ぐことが出来る。
このとき、実行監視タスク104が正常に動作しているかを監視するために、WDT3用のトリガ信号は、実行監視タスク104にて行う。もちろん、安全関連タスク102と実行監視タスク104の両方を監視してもよいが、トリガ出力は実行監視タスク104でおこなうことにより、安全機構の監視を実現することが可能となる。
図10は、第2の実施の形態に係わる安全関連タスクの処理を示すフローチャートであり、図9のステップS908の詳細を示すものである。
ステップS1001では、タスク1~Nを順に指定するための変数iを1に設定する。次のステップS1002で、タスクiを実行する。変数iが1の場合はタスク1を実行する。そして、ステップS1002では、実行された結果に異常が検出された回数を各タスク1~N別にカウントする。
そして、ステップS1003では、異常が検出された回数がn回、例えば5回になったタスクであるかを判断する。回数がn回に達していれば、確実に異常が発生していると見做し、ステップS1004で、そのタスクに対応したMILの点灯等の警告を行う。なお、タスク1~N別に記憶された回数は警告に対する対処が終了した後にクリアされる。
ステップS1005では、i番目のタスクが終了した後に、タスク番号に対応して実行フラグを1に設定する。そして、ステップS1006で、変数iがNになったかを判断し、NになっていなければステップS1007で、変数iに1を加算してステップS1002の処理に戻る。ステップS1006で、変数iがNになれば、安全関連タスク102のタスク1~Nを終了する。何らかの異常が生じて、図10に示す安全関連タスクの処理が実行されなかった場合には、実行フラグが1に設定されないタスクが存在することになる。
図11は、実行監視タスク104の処理を示すフローチャートであり、図9のステップS905の詳細を示すものである。ステップS1101では、タスク1~Nを順に指定するための変数iを1に設定する。次のステップS1102にてi番目のタスクの実行フラグが1か否かを判定する。安全関連タスク102のi番目のタスクが実行されていれば、実行フラグが1となっているが、未実行の場合には0となっているため、このフラグをみることで、安全関連タスク102の実行有無を判定することができる。
i番目のタスクの実行フラグが1の場合には、正常にi番目のタスクが実行されているとして、ステップS1106にて、i番目のタスクの未実行カウンタを0クリアして、ステップS11007へ進み、i番目のタスクの実行フラグを0にする。
一方、ステップS1102で、i番目のタスクの実行フラグが1でない場合には、ステップS1103へ進み、i番目のタスクの未実行カウンタをインクリメントする。その後、ステップS1104へ進み、i番目のタスクの実行カウンタが所定値となったか否かの判定を行う。例えば、タスクの未実行状態が所定期間続いた結果、図11に示す実行監視タスク104の処理が複数回実行された場合に、タスクの実行カウンタが所定値以上となる。所定値以上となった場合には、ステップS1105へ進みリセットなどのフェールセーフ動作を行う。
安全関連タスク102は、通常制御タスク103より優先順位が低いため、通常制御タスク103の処理負荷が一時的に大きくなった場合には、安全関連タスク102がキャンセルされる場合がある。また、イベント発生回路4によって駆動されるため、駆動周期に変動が発生する虞もある。その場合も考慮して、実行カウンタの所定値を定めている。
一方、ステップS1104で、i番目のタスクの未実行カウンタが所定値以下の場合には、ステップS1107へ進み、i番目のタスクの実行フラグを0にクリアする。
そして、ステップS1108で、変数iがNになったかを判断し、NになっていなければステップS1109で、変数iに1を加算してステップS1102の処理に戻る。ステップS1108で、変数iがNになれば、実行監視タスク104を終了する。
そして、ステップS1108で、変数iがNになったかを判断し、NになっていなければステップS1109で、変数iに1を加算してステップS1102の処理に戻る。ステップS1108で、変数iがNになれば、実行監視タスク104を終了する。
図12は、外部信号が途絶した場合の通常制御タスクの処理を示すフローチャートである。前述の図9の安全関連タスク102および実行監視タスク104の処理を示すフローチャートは、決められた周期で外部信号が発生して、定期的に呼び出されて処理されている。そして、ステップS902で、割り込み監視用の内部カウンタがリセットされている。しかし、何らかの原因により、外部信号が途絶した場合には、ステップS602の処理が行われなくなる。
図12に示す処理は、通常制御タスクにおいて、例えば20msより長い周期で繰り返し実行される。ステップS1201で、割り込み監視用の内部カウンタがkより大きいかを検出し、内部カウンタがkより大きい、例えば70msより大きい場合には、外部信号が途絶したことを検出する。ステップS1202で、プロセッサ2は通常制御タスク103内におけるタスク管理処理によって安全関連タスク102を実行する。次に、ステップS1203で、プロセッサ2は通常制御タスク103内におけるタスク管理処理によって安全関連タスク102を実行する。
以上により、安全関連タスク102が期待通りのタイミングで実行されていない場合には、その異常を検知して安全状態へ遷移させることが可能となる。
安全関連タスク102は外部信号により起動されるため、外部信号が失墜した場合には、安全関連タスク102が動作しない。この場合には、前述したようにWDT3にてその異常を検出し、プロセッサ2をリセットする等の処理が取られる。しかし、安全関連タスク102は、対象エレメントの故障を監視している安全機構であり、その安全機構が失われたからといって、即リセットするのは望ましくない。好ましくは、MIL点灯や出力制限はするものの、なるべくその機能を継続できる状態にすることである。そこで、外部信号が失墜した場合には、安全関連タスク102はOS101が持っているタスク管理で実行するような構成とすればよい。但し、このときは安全機構が喪失しているため、フェールセーフ動作や、安全機構喪失の表示等をすることにより、車両の運転者が認識できる状態とする。
(変形例)
本発明は、以上説明した第1および第2の実施の形態を次のように変形して実施することができる。
本発明は、以上説明した第1および第2の実施の形態を次のように変形して実施することができる。
(1)上述した実施の形態では、イベント発生回路4は、機能安全制御装置1内にある構成となっているが、他の機能安全制御装置、例えば制御ユニット7にあってもよい。この場合は、ワイヤー接続やCAN(Controller Area Network)通信等を使って、プロセッサ2の割り込みコントローラ15の外部割込み端子に接続する構成とする。また、イベント発生回路4を複数個設け、複数の外部信号が割り込みコントローラ15の外部割込み端子に接続される構成としてもよい。
(2)上述した実施の形態では、安全関連タスク102を外部信号で周期的に実行する構成としたが、外部信号で実行するものを安全関連タスク102に限定しなくてもよい。即ち任意の処理を外部信号で周期的に実行する構成としてもよい。例えば、プロセッサ内に主機能演算部と主機能演算部の処理を監視する監視演算部が存在した場合、この監視演算部を外部信号で周期的に実行してもよい。
以上説明した実施の形態によれば、次の作用効果が得られる。
(1)制御対象に対する制御内容を指示して制御対象の機能安全の確保に関する安全関連タスク102と、制御対象の制御に関する機能安全を除いた通常制御タスク103とを実行するプロセッサ2を備えた機能安全制御装置1において、プロセッサ2は、外部から入力された外部信号をトリガにして安全関連タスク102を実行するようにしている。したがって、通常制御タスク103の実行しているプロセッサ2のOS101のタスク管理とは独立して、機能安全に関する国際標準としてIEC61508やISO26262等が制定されている機能安全を実現する為の命令コードを含んだ安全関連タスク102を実行することができるため、通常制御タスク103と時間的な分離が可能となる。よって、同一のプロセッサ2内に安全関連タスク102と通常制御タスク103を配置することができ、機能安全制御装置1を簡素な処理で構成することにより低コストに提供することが可能となる。
(1)制御対象に対する制御内容を指示して制御対象の機能安全の確保に関する安全関連タスク102と、制御対象の制御に関する機能安全を除いた通常制御タスク103とを実行するプロセッサ2を備えた機能安全制御装置1において、プロセッサ2は、外部から入力された外部信号をトリガにして安全関連タスク102を実行するようにしている。したがって、通常制御タスク103の実行しているプロセッサ2のOS101のタスク管理とは独立して、機能安全に関する国際標準としてIEC61508やISO26262等が制定されている機能安全を実現する為の命令コードを含んだ安全関連タスク102を実行することができるため、通常制御タスク103と時間的な分離が可能となる。よって、同一のプロセッサ2内に安全関連タスク102と通常制御タスク103を配置することができ、機能安全制御装置1を簡素な処理で構成することにより低コストに提供することが可能となる。
(2)外部信号は周期的に発生され、外部信号がプロセッサ2に入力された時、プロセッサ2の割り込み処理により安全関連タスク102を実行する。安全関連タスク102は、決まった時間間隔で起動されるので、対象となるエレメントを周期的に監視して、異常が発生した時点から所定時間内に安全状態に移行させる処理を行うことができる。なお外部信号の周期は、異常が発生してから安全状態に移行するまでの許容時間と異常確定に必要な判断回数等によって決定する。例えば許容時間が200msで異常確定に5回必要な場合、パルス周期は40msで十分である。もちろん、割り込み誤差等を考慮して、周期をさらに短く設定してもよい。
(3)プロセッサ2は、外部信号による割り込み処理により、通常制御タスク103に優先して安全関連タスク102を実行する。プロセッサ2のタスク管理が異常となり、割り込みが入っても安全関連タスク102が動作せず、安全状態に移行しない場合がある。そこで本割り込みの優先順位を最優先にすることにより、プロセッサ2が異常となった場合でも安全関連タスク102を実行することが可能となる。
(4)安全関連タスク102の実行を監視する実行監視タスク104を更に備え、プロセッサ2は、実行監視タスク104を通常制御タスク103よりも優先して実行し、通常制御タスク103を安全関連タスク102よりも優先して実行する。一般に、安全関連タスク102の処理を最優先にすると、必ず安全関連タスク102を実行することが出来る反面、安全関連タスク102の処理が大きくなると、演算負荷が大きくなり、通常制御タスク103が正常に動作しなくなる。そこで、安全関連タスク102の実行を監視する実行監視タスク104を追加し、この実行監視タスク104を最優先とし、従来の安全関連タスク102の優先順位を下げることで、機能安全の機能を確保しつつ通常制御タスク103の処理への影響を最小限することが出来る。
(5)外部信号が途絶したことを検出する検出部ステップS701、S1201を更に備え、検出部により外部信号が途絶したことが検出された時、プロセッサ2は通常制御タスク103内におけるタスク管理処理によって安全関連タスク102を実行する。安全関連タスク102を外部割り込みで実行する場合、外部信号が途絶した場合、安全関連タスク102を実行することが出来ず、安全関連タスク102が対象としているエレメントが異常となった時に異常状態を検出することが出来なくなってしまう。そこで、外部信号が途絶した場合には、通常制御タスク103のタスク管理処理を使って安全関連タスク102を実行することにより、MIL点灯や出力制限などのフェールセーフ動作を行いつつ、対象エレメントの異常監視を継続することが出来る。
本発明は、上記の実施の形態に限定されるものではなく、本発明の特徴を損なわない限り、本発明の技術思想の範囲内で考えられるその他の形態についても、本発明の範囲内に含まれる。
2・・・プロセッサ、3・・・WDT、4・・・イベント発生回路、14・・・CPU、15・・・割り込みコントローラ、102・・・安全関連タスク、103・・・通常制御タスク、104・・・実行監視タスク
Claims (8)
- 制御対象に対する制御内容を指示して前記制御対象の機能安全の確保に関する安全関連タスクと、前記制御対象の制御に関する前記機能安全を除いた通常制御タスクとを実行するプロセッサを備えた機能安全制御装置において、
前記プロセッサは、外部から入力された外部信号をトリガにして前記安全関連タスクを実行することを特徴とする機能安全制御装置。 - 請求項1記載の機能安全制御装置であって、
前記外部信号は周期的に発生され、前記外部信号が前記プロセッサに入力された時、前記プロセッサの割り込み処理により前記安全関連タスクを実行することを特徴とする機能安全制御装置。 - 請求項2記載の機能安全制御装置であって、
前記プロセッサの割り込み処理により前記安全関連タスクを実行した結果、所定回数の割り込み処理により所定回数の異常が検出された場合に異常を警告することを特徴とする機能安全制御装置。 - 請求項1~3のいずれか一項に記載の機能安全制御装置であって、
前記外部信号は前記プロセッサの外部に設けられたイベント発生回路から発生されることを特徴とする機能安全制御装置。 - 請求項1~3のいずれか一項に記載の機能安全制御装置であって、
前記プロセッサは、前記外部信号による前記割り込み処理により、前記通常制御タスクに優先して前記安全関連タスクを実行することを特徴とする機能安全制御装置。 - 請求項1~3のいずれか一項に記載の機能安全制御装置であって、
前記安全関連タスクの実行を監視する実行監視タスクを更に備え、
前記プロセッサは、前記実行監視タスクを前記通常制御タスクよりも優先して実行し、前記通常制御タスクを前記安全関連タスクよりも優先して実行することを特徴とする機能安全制御装置。 - 請求項6記載の機能安全制御装置であって、
前記外部信号は少なくとも2つ以上の信号を持ち、
前記外部信号の1つをトリガにして前記実行監視タスクを実行し、
前記外部信号の他の1つをトリガにして前記安全関連タスクを実行することを特徴とする機能安全制御装置。 - 請求項1~3のいずれか一項に記載の機能安全制御装置であって、
前記外部信号が途絶したことを検出する検出部を更に備え、
前記検出部により前記外部信号が途絶したことが検出された時、前記プロセッサは前記通常制御タスク内におけるタスク管理処理によって前記安全関連タスクを実行することを特徴とする機能安全制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015518127A JPWO2014188764A1 (ja) | 2013-05-23 | 2014-03-12 | 機能安全制御装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013108919 | 2013-05-23 | ||
JP2013-108919 | 2013-05-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014188764A1 true WO2014188764A1 (ja) | 2014-11-27 |
Family
ID=51933330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/056388 WO2014188764A1 (ja) | 2013-05-23 | 2014-03-12 | 機能安全制御装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2014188764A1 (ja) |
WO (1) | WO2014188764A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108287931A (zh) * | 2017-01-10 | 2018-07-17 | 大陆泰密克汽车系统(上海)有限公司 | 用于优化车辆电子控制系统安全参数的方法 |
KR102102806B1 (ko) * | 2018-12-18 | 2020-04-22 | 상명대학교산학협력단 | 안전 필수 시스템의 안전활동 관리방법 및 그 안전활동 관리장치 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04295902A (ja) * | 1991-03-25 | 1992-10-20 | Meiki Co Ltd | 射出成形機の制御装置 |
JPH07186847A (ja) * | 1993-12-27 | 1995-07-25 | Asuko Kk | 車両用安全装置 |
JP2000104570A (ja) * | 1998-09-28 | 2000-04-11 | Toyota Motor Corp | 内燃機関の回転数制御装置 |
JP2005513356A (ja) * | 2001-12-21 | 2005-05-12 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 自動車の機能ユニットを制御する方法および装置 |
JP2006287683A (ja) * | 2005-04-01 | 2006-10-19 | Yokogawa Electric Corp | コントロールステーション |
JP2012015953A (ja) * | 2010-07-05 | 2012-01-19 | Asahi Kasei Electronics Co Ltd | スピーカアンプおよび電子機器 |
-
2014
- 2014-03-12 JP JP2015518127A patent/JPWO2014188764A1/ja active Pending
- 2014-03-12 WO PCT/JP2014/056388 patent/WO2014188764A1/ja active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04295902A (ja) * | 1991-03-25 | 1992-10-20 | Meiki Co Ltd | 射出成形機の制御装置 |
JPH07186847A (ja) * | 1993-12-27 | 1995-07-25 | Asuko Kk | 車両用安全装置 |
JP2000104570A (ja) * | 1998-09-28 | 2000-04-11 | Toyota Motor Corp | 内燃機関の回転数制御装置 |
JP2005513356A (ja) * | 2001-12-21 | 2005-05-12 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 自動車の機能ユニットを制御する方法および装置 |
JP2006287683A (ja) * | 2005-04-01 | 2006-10-19 | Yokogawa Electric Corp | コントロールステーション |
JP2012015953A (ja) * | 2010-07-05 | 2012-01-19 | Asahi Kasei Electronics Co Ltd | スピーカアンプおよび電子機器 |
Non-Patent Citations (1)
Title |
---|
MASUYUKI KOBAYASHI: "Saishin Sedai Anzen Keiso System no Tokucho to sono Jirei -Flexible Kosei to Kantan .Open na Engineering Tool", KEISO, vol. 51, no. 10, 1 October 2008 (2008-10-01), pages 32 - 35 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108287931A (zh) * | 2017-01-10 | 2018-07-17 | 大陆泰密克汽车系统(上海)有限公司 | 用于优化车辆电子控制系统安全参数的方法 |
WO2018130474A1 (en) * | 2017-01-10 | 2018-07-19 | Continental Teves Ag & Co. Ohg | Method for optimizing safety parameter of vehicle electronic control system |
CN108287931B (zh) * | 2017-01-10 | 2021-11-05 | 大陆泰密克汽车系统(上海)有限公司 | 用于优化车辆电子控制系统安全参数的方法 |
KR102102806B1 (ko) * | 2018-12-18 | 2020-04-22 | 상명대학교산학협력단 | 안전 필수 시스템의 안전활동 관리방법 및 그 안전활동 관리장치 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2014188764A1 (ja) | 2017-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107003915B (zh) | 驱动控制装置 | |
JP4893931B2 (ja) | セーフティ・コントローラ | |
US9098074B2 (en) | Safety-related control unit and method for controlling an automated installation | |
CN107957692B (zh) | 控制器冗余方法、装置及系统 | |
JP6140448B2 (ja) | 制御装置内の監視構想 | |
US10592356B2 (en) | Microcontroller and electronic control unit | |
JP2019101515A (ja) | 半導体装置及びその電源監視方法 | |
JP2013514497A5 (ja) | ||
JP2020101526A (ja) | 電圧監視装置および方法 | |
JP5241706B2 (ja) | 電気駆動システムの電子制御装置、電気駆動システムの電子駆動ユニットおよび電気駆動システム | |
WO2014188764A1 (ja) | 機能安全制御装置 | |
JP6007677B2 (ja) | 安全制御システム、及び安全制御システムのプロセッサ | |
US10120742B2 (en) | Power supply controller system and semiconductor device | |
EP3220539B1 (en) | Motor controller | |
JP6502211B2 (ja) | 車両制御装置 | |
JP2016066139A (ja) | 車両制御装置 | |
JP6681304B2 (ja) | 自動車用制御装置及び自動車用内燃機関制御装置 | |
JP6359239B2 (ja) | プロセス制御システム内の装置に複数トリップ限界値を適用する方法および装置 | |
JP7394276B2 (ja) | ピーエルシーシステムのエラー状態制御方法 | |
JP7310501B2 (ja) | プログラマブルコントローラ | |
JP7504222B2 (ja) | 車載用制御システム | |
JP5559100B2 (ja) | 電子制御システム | |
JP5136770B2 (ja) | 産業用コントローラ | |
WO2024122023A1 (ja) | 車両の制御システム | |
JP2018195128A (ja) | 診断装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14800799 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2015518127 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14800799 Country of ref document: EP Kind code of ref document: A1 |