WO2019239522A1 - 制御コントローラおよび車両制御システム - Google Patents
制御コントローラおよび車両制御システム Download PDFInfo
- Publication number
- WO2019239522A1 WO2019239522A1 PCT/JP2018/022599 JP2018022599W WO2019239522A1 WO 2019239522 A1 WO2019239522 A1 WO 2019239522A1 JP 2018022599 W JP2018022599 W JP 2018022599W WO 2019239522 A1 WO2019239522 A1 WO 2019239522A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- function group
- unit
- situation
- controller
- task
- Prior art date
Links
- 230000006870 function Effects 0.000 claims abstract description 267
- 238000000034 method Methods 0.000 claims abstract description 101
- 230000008569 process Effects 0.000 claims abstract description 88
- 238000000638 solvent extraction Methods 0.000 claims abstract description 17
- 230000008859 change Effects 0.000 claims description 75
- 238000005192 partition Methods 0.000 claims description 52
- 238000012545 processing Methods 0.000 claims description 49
- 238000000926 separation method Methods 0.000 claims description 32
- 238000002360 preparation method Methods 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 9
- 125000000524 functional group Chemical group 0.000 claims description 6
- 238000013461 design Methods 0.000 description 29
- 230000002093 peripheral effect Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 15
- 238000003860 storage Methods 0.000 description 12
- 230000007704 transition Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/06—Improving the dynamic response of the control system, e.g. improving the speed of regulation or avoiding hunting or overshoot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
Definitions
- the present disclosure relates to a control controller and a vehicle control system.
- Embedded control systems are required to operate safely in various situations. For example, if the algorithm that operates optimally in situation A differs from the algorithm that optimally operates in situation B, both programs need to be installed. However, in order to install both programs, a higher-performance CPU and memory are required, and there is a problem that the hardware cost of the system increases. For example, in order to identify the signs of country A and country B with high accuracy in the sign recognition program of the automatic driving system, it is necessary to prepare two programs optimized for each country. This is not limited to two countries, but may increase further with countries C and D, and it is practically difficult to install all programs in the system because it leads to an increase in cost. Therefore, for example, a technique called OTA (Over The Air) has been proposed to download a necessary program in a necessary situation.
- OTA Over The Air
- the performance of the remaining controller when the system status is switched from the normal driving mode without a failure (situation A) to the mode in which the controller failure has occurred (situation B).
- situation A the normal driving mode without a failure
- situation B the mode in which the controller failure has occurred
- the controller is called an electronic control unit (ECU), and the ECUs are connected by an in-vehicle network. Control data and programs can be transferred between ECUs via a network.
- Patent Document 1 discloses a program for dynamically selecting an ECU whose function is to be replaced based on priority from among remaining ECUs when a microcomputer malfunction occurs in the ECU, and performing a function replacement for the selection target. This shows a series of flows that enable the system degeneration control to be realized.
- Patent Document 1 does not consider changing the program while driving. For this reason, the technique of Patent Document 1 has a problem that when a plurality of programs are operated on a microcomputer of one ECU, they interfere with each other and affect the control performance, and guarantee the operation after the process switching. is not.
- Non-Patent Document 1 discloses a method for making no interference as Freedom From Interference.
- Non-Patent Document 2 shows time division scheduling.
- Non-Patent Document 2 it is necessary to statically design slots. For this reason, it is necessary to allocate a slot in advance for processing after a failure. That is, the assignment before the failure remains even after the failure, and conversely, the assignment for the after failure is set even before the failure. This indicates that slots (resources) are assigned in advance not only to the situation A and the situation B but to all situations, and the technique of Non-Patent Document 2 has a problem that resources cannot be effectively used.
- the present disclosure has been made in view of such a situation, and a technique for updating a system without affecting the operation of another program when a part of the program is dynamically replaced in accordance with a change in the situation. I will provide a.
- a control controller is a controller that manages and executes a plurality of functions in units of a predetermined function group, and dynamically updates the function group unit.
- a mode changing unit that permits execution of the function group.
- the function of the system can be changed according to the situation without affecting the control, so that availability and safety can be ensured.
- FIG. 1 is a diagram illustrating a schematic configuration example of a vehicle system 10 according to the present embodiment. It is a figure which shows the example of the state transition of ECU-A11 in this embodiment. It is a figure which shows the example of the data flow of the function group by this embodiment. It is a figure which shows the example of the task structure 1111 before the update (situation A01) of 1st Embodiment. It is a figure which shows the structural example of the task information 1112 and the execution management setting 1113 of the update function group in the update (situation AtoB02) of 1st Embodiment.
- FIG. 10 is a flowchart for explaining a traveling track determination process by a determination function unit 1102; 10 is a flowchart for explaining common initialization processing by a common initialization unit 1103.
- 12 is a flowchart for explaining a peripheral recognition process performed by a peripheral recognition unit 1104.
- 10 is a flowchart for explaining a situation A specific initialization process by a situation A specific initialization unit 1105; 10 is a flowchart for explaining a peripheral recognition process performed by a peripheral recognition unit 2106.
- FIG. 7 is a flowchart for explaining screen display processing from a screen display unit 1201 of the ECU-B12.
- 10 is a flowchart for explaining an update preparation instruction process by an update preparation instruction unit 1202 of the ECU-B12.
- 10 is a flowchart for explaining an update execution instruction process by an update execution instruction unit 1203 of the ECU-B12. It is a figure which shows the example of the task information 2112 of the update function group in condition AtoB02, and the task information 2114 in condition B03 of 2nd Embodiment. It is a figure which shows the example of the slot design by 2nd Embodiment. It is a figure which shows the example of the task scheduling by 2nd Embodiment.
- the control controller according to the present embodiment relates to a technique for dynamically updating the control function of the control system.
- the controller controls the availability and safety of the system by exchanging a part of the function groups according to the operating status while performing temporal and spatial partitioning that makes the function groups non-interfering. Provide the control function of the control system that can be secured.
- the embodiment of the present disclosure may be implemented by software running on a general-purpose computer, or may be implemented by dedicated hardware or a combination of software and hardware.
- each information of the present disclosure will be described in a “table” format.
- the information does not necessarily have to be represented by a data structure of a table, such as a data structure such as a list, a DB, a queue, or the like. It may be expressed as Therefore, “table”, “list”, “DB”, “queue”, etc. may be simply referred to as “information” to indicate that they do not depend on the data structure.
- each ECU is set to make a predetermined determination.
- a control device that controls each ECU is provided, and the control device is set to make the predetermined determination. May be.
- FIG. 1 is a diagram illustrating a use case (state transition in the vehicle system) of the vehicle system 10 according to the present embodiment.
- the vehicle system 10 is a system 1 that travels with a functional configuration suitable for the situation A in the situation A01. Further, the vehicle system 10 is a system 2 that prepares to travel with a functional configuration suitable for the situation B in the situation A (situation A to B02) in the vicinity of the situation B when moving from the situation A to the situation B. Furthermore, the vehicle system 10 becomes the system 3 that travels with the functional configuration suitable for the situation B in the situation B03.
- the situation A is a situation where the vehicle system 10 is in country A (a place not near the border with country B), the situation AtoB is a situation where the vehicle system 10 is near the border between country A and country B, and the situation B is The situation can be such that the vehicle system 10 is in country B (a place not near the border with country A).
- the situation A is a situation where each ECU is operating normally
- the situation AtoB is a situation where a failure is likely to occur in any ECU
- the situation B is a situation after a failure occurs in any ECU. It can be.
- FIG. 2 is a diagram illustrating a schematic configuration example of the vehicle system 10 according to the present embodiment.
- the vehicle system 10 includes, for example, an ECU-A 11, an ECU-B 12, and other ECUs, and is connected via a network bus 13.
- each ECU is connected by the network bus 13, but the present invention is not limited to such a form, and a network topology in which each ECU is connected one-to-one may be used.
- the ECU-A11 in the system 1 when the vehicle system 10 is in the situation A01 includes, for example, a travel plan unit 1101, a determination function unit 1102, a common initialization unit 1103, a surrounding recognition unit 1104 as a program,
- the situation A specific initialization unit 1105, a mode change unit 1108, a partition update unit 1109, and a time division control unit 1110 are included.
- the ECU-B 12 in the system 1 includes a screen display unit 1201, an update preparation instruction unit 1202, and an update execution instruction unit 1203 as programs.
- the system 2 when the vehicle system 10 is in the situation A to B is configured by the configuration of the system 1, the peripheral recognition 2 unit 1106, and the situation B specific initialization unit 1107 as a program in the ECU-A11.
- the system 3 when the vehicle system 10 is in the situation B has a configuration in which the peripheral recognition 1 part 1104 and the situation A specific initialization part 1105 as programs are deleted from the configuration of the system 2 in the ECU-A11. It has become.
- the deletion of the situation A specific initialization unit 1105 may be executed by the ECU-A 11 or a control device (not shown) that manages and controls each ECU.
- FIG. 3 is a diagram illustrating an example of state transition of the ECU-A 11 in the present embodiment.
- the ECU-A 11 enters the system initialization mode 001 when the key is turned on, and performs the entire initialization process (common initialization process). After the initialization is completed, the ECU-A 11 validates the partition, whereby the state transits to the travel mode 002.
- the “partition” in the present embodiment refers to a schedule in which memory is divided into a plurality of areas, data to be processed is appropriately allocated to each area (space separation), and various processes are scheduled by time separation. The process is executed (not affected when using the CPU) (time separation).
- the mode of processing differs depending on whether the CPU is a single core or a multi-core.
- processing is executed by scheduling in a time-sharing manner.
- the first core executes the common function group processing
- the second core executes the individual function group processing.
- the physical memory is common, but the memory area (address space) used is different.
- the situation A driving mode 0021 is initially set, and the common function group and the function group for the situation A are executed (execution of the function of the situation A).
- the ECU-A 11 receives an update preparation request from the outside (for example, the ECU-B 12 or a control device that controls the whole, not shown)
- the ECU-A 11 changes the state to the function update mode 0022.
- the ECU-A 11 acquires an update program and setting information (update information), and performs a partial update and a partial initialization process on the partition based on the information.
- the ECU-A 11 continues to execute the function process to be continuously executed simultaneously with the partial update and the partial initialization process. For example, when an update execution request is received from the ECU-B 12, the ECU-A 11 turns off a function that is not used and changes the state to the situation B travel mode 0023. In the situation B travel mode 0023, the ECU-A11 executes the common function group and the situation B function group.
- the update program and the setting information are already stored in the ECU in the vehicle system 10 and distributed via the network bus 13, but the present invention is not limited to this.
- the update program and the setting information may be stored in a server outside the vehicle system and distributed based on OTA, or other methods may be used.
- the update program and setting information are stored in advance in a memory (not shown) in the ECU-A11, and the ECU-A11 may acquire the update program or setting information from the memory, or dedicated to the outside of the ECU-A11. May be provided from which the ECU-A 11 obtains.
- FIG. 4 is a diagram illustrating an example of the data flow of the function group according to the present embodiment.
- the periphery recognition 1 unit 1104 receives the camera image and the point cloud information (point cloud (shape) and distance information), and outputs the driving environment information.
- the travel plan unit 1101 receives the travel environment information as input and outputs activation candidate information.
- the determination function unit 1102 receives the activation candidate information and outputs traveling track information.
- the peripheral recognition 1 part 1104 is replaced with the peripheral recognition 2 part 1106. Also, there is no change in input and output information. Since the situation A02 is the same as the situation A01, the description is omitted.
- FIG. 5 is a diagram illustrating an example of the task configuration 1111 before the update (situation A01) according to the first embodiment.
- the task configuration 1111 (table) is set and managed, for example, in a memory (not shown) of the ECU-A 11. Data may be set on the memory as data from the beginning, or may be set by transmitting data from the ECU-B12, for example.
- the task configuration 1111 includes a task name 11111, a task ID 11112, an execution period 11113, a task priority 11114, a normal execution period 11115, an initialization execution time 11116, a function group 11117, and a scheduling 11118 as configuration items. Yes.
- Task name 11111 is information indicating a function to be executed as a task name.
- the travel plan task executes the travel plan unit 1101
- the determination function task executes the determination function unit 1102
- the periphery recognition 1 task executes the periphery recognition 1 unit 1104
- the mode change task executes the mode change unit 1108.
- Task ID 11112 is identification information that can uniquely identify and identify a task.
- the execution cycle 11113 is information indicating a cycle for starting a task.
- the unit is, for example, milliseconds. In the first embodiment, all execution cycles are the same, but the present invention is not limited to this. Different periods may be used.
- the task priority 11114 is information indicating the priority of the task. This priority indicates the degree to which the task is executed with priority when the tasks are simultaneously executable. The lower the number, the higher the priority. This idea is based on priority scheduling.
- the normal execution time 11115 is information indicating the task execution time after initialization (time allocated for task execution).
- the initialization execution time 11116 is information indicating the execution time of the initialization process (the time allocated to the initialization process).
- the longest execution time is set as the normal execution time 11115 and the initialization execution time 11116, but the present invention is not limited to this.
- the longest execution time may be added with a margin, or another aspect may be used.
- the function group 11117 is information indicating the function group to which the task belongs.
- the common function group is an application program that is executed regardless of the situation.
- the function group for the situation A is a function group executed in the situation A.
- the system group is a basic software function group.
- the scheduling 11118 is information indicating a scheduling policy in which a task is executed.
- a scheduling policy in which a task is executed.
- it is assumed that a plurality of scheduling policies coexist, but the present invention is not limited to this.
- it may be unified by one scheduling.
- FIFO First-In-First-Out
- EDF Earliest Deadline First
- a process is placed in a priority queue, and when a scheduling event occurs (task termination, new task generation, etc.), the queue is searched and the process with the closest execution deadline (deadline) is selected, The process is scheduled to run next. More specifically, the time obtained by subtracting the execution time normal 11115 from the time when the next cycle starts is defined as a margin time, and the priority is set higher as there is no margin time. For example, a task for which EDF is given as a policy when execution time is consumed by a certain process, but there are a plurality of other tasks to be executed, and if all the tasks are executed, they do not fit within 50 ms. The priority is dynamically set high so that is always executed within 50 ms.
- the function group is a task unit, but the present invention is not limited to this.
- it may be a function unit (program unit).
- one task may execute a plurality of function groups.
- FIG. 6 is a diagram illustrating a configuration example of the update function group task information 1112 and the execution management setting 1113 during the update (situation AtoB02) according to the first embodiment.
- the task configuration 1112 and the execution management setting 1113 (table) are set and managed, for example, in a memory (not shown) of the ECU-A 11. Data may be set on the memory as data from the beginning, or may be set by transmitting data from the ECU-B12, for example.
- the task information 1112 includes a task name 11121, a task ID 11122, an execution period 11123, a task priority 11124, a normal execution time 11125, an initialization execution time 11126, a function group 11127, and a scheduling 11128. It is a configuration item.
- Task name 11121 is information indicating a function to be executed as a task name.
- the peripheral recognition 2 unit 1106 is executed.
- the task ID 11122 is identification information that can uniquely identify and identify a task.
- the execution cycle 11123 is information indicating a cycle for starting a task.
- the unit is milliseconds.
- the task priority 11124 is information indicating the priority of the task.
- the normal execution time 11125 is information indicating the execution time after completion of initialization.
- the initialization execution time 11126 is information indicating the execution time of the initialization process.
- the function group 11127 is information indicating the function group to which the task belongs.
- the function group for the situation B means a function group executed in the situation B.
- the scheduling 11118 is information indicating a scheduling policy in which a task is executed.
- the function group is a task unit, but the present invention is not limited to this.
- it may be a function unit (program unit).
- one task may execute a plurality of function groups.
- the execution management setting 1113 includes a task name 11131, a task ID 11132, an execution management 11133, a function group 11134, and a scheduling 11135 as configuration items.
- the task name 11131 is information indicating the task name.
- the task ID 11132 is identification information that can uniquely identify and identify a task.
- the execution management 11133 is information indicating a function group that ends the process and a function group that starts the process according to a change in the situation. For example, OFF means the end of the process, and ON means the start of the process. ON and OFF are managed for each function group. In the situation A to B, the peripheral recognition 2 task is controlled to be ON, and the peripheral recognition 1 task that was ON in the situation A is controlled to be OFF.
- the function group 11134 is information indicating the function group to which the task belongs.
- the scheduling 11135 is information indicating a scheduling policy in which a task is executed.
- FIG. 7 is a diagram illustrating an example of the task configuration 1114 after the update of the first embodiment (situation B03).
- the task configuration 1114 (table) is set and managed, for example, in a memory (not shown) of the ECU-A 11. Data may be set on the memory as data from the beginning, or may be set by transmitting data from the ECU-B12, for example.
- the task configuration 1114 includes a task name 11141, a task ID 11142, an execution period 11143, a task priority 11144, a normal execution time 11145, an initialization execution time 11146, a function group 11147, a scheduling, and the like.
- 11148 is a configuration item.
- Task name 11141 is information indicating a function to be executed as a task name.
- the travel plan task executes the travel plan unit 1101
- the determination function task executes the determination function unit 1102
- the periphery recognition 2 task executes the periphery recognition 2 unit 1106,
- the mode change task executes the mode change unit 1108.
- Task ID 11142 is identification information that can uniquely identify and identify a task.
- the execution cycle 11143 indicates a cycle for starting a task.
- the unit is milliseconds. In the first embodiment, all the execution cycles are the same, but this is not a limitation, and different cycles may be used.
- the task priority 11144 is information indicating the priority of the task. This priority is a degree that is preferentially executed when tasks are simultaneously executable, and the smaller the number, the higher the priority. This idea is based on priority scheduling.
- the normal execution time 11145 is information indicating the execution time after completion of initialization.
- the initialization execution time 11146 is information indicating the execution time of the initialization process. In the first embodiment, it is assumed that the longest execution time is set as the normal execution time and the initialization execution time, but the present invention is not limited to this. For example, the maximum execution time may be added with a margin, or another aspect may be used.
- the function group 11147 is information indicating the function group to which the task belongs.
- the common function group is an application program that is executed regardless of the situation
- the function group for the situation B is a function group that is executed in the situation B.
- the system group is a basic software function group.
- the scheduling 11148 is information indicating a scheduling policy in which a task is executed.
- a scheduling policy in which a task is executed.
- it is assumed that a plurality of scheduling policies coexist, but the present invention is not limited to this.
- it may be unified by one scheduling.
- FIFO First-In-First-Out
- a task is executed based on the priority of the task priority 11114, and is continuously executed until the end of the task.
- EDF Erarliest Deadline First
- This is a method in which the time obtained by subtracting the execution time, usually 11145, from the time when the next cycle starts is defined as a margin time, and the priority is set higher as there is no margin time.
- the function group is a task unit, but the present invention is not limited to this.
- it may be a function unit (program unit).
- one task may execute a plurality of function groups.
- FIG. 8 is a diagram illustrating an example of a slot (time slot) design according to the first embodiment.
- slot designs are shown for situation A, situation AtoB, and situation B.
- the slot design includes slot IDs 11151, 11161, and 11171, start times 11152, 11162, and 11172, end times 11153, 11163, and 11173, and execution targets 11154, 11164, and 11174 as configuration items.
- the slot ID 11151 is identification information that can uniquely identify and identify a slot.
- the start time 11152 is information indicating the start time of a time determined as a slot.
- the end time 11153 is information indicating the end time of the time determined as the slot.
- the execution target 11154 is information indicating a function group that is permitted to execute in the corresponding slot.
- the slot ID 11161 is identification information that can uniquely identify and identify a slot.
- the start time 11162 is information indicating the start time of a time determined as a slot.
- the end time 11163 is information indicating the end time of the time determined as the slot.
- the execution target 11164 is information indicating a function group that is permitted to execute in the corresponding slot.
- the slot ID 11171 is identification information that can uniquely identify and identify the slot.
- the start time 11172 is information indicating the start time of a time determined as a slot.
- the end time 11173 is information indicating the end time of the time determined as the slot.
- the execution target 11174 is information indicating a function group that is permitted to execute in the corresponding slot.
- the system cycle of time division control is set to 50 ms.
- the system period is a period that is repeatedly executed based on the above-described slot design. For example, since the start time 11152 is 0 for the slot whose slot ID 11151 is “1”, the slot ID 11151 is executed every 50 ms, such as 0 ms, 50 ms, 100 ms,.
- a free time (standby time) is provided between the slots 2 and 4.
- slot 3 is assigned in the information AtoB02.
- a free time (standby time) is provided between the slots 1 and 2.
- FIG. 9 is a diagram illustrating an example of task scheduling according to the first embodiment. The scheduling example is made based on the slot design of FIG. FIG. 8 shows task scheduling by time division (time separation) partitioning.
- the task IDs 1 and 2 are executed in the slot ID1
- the task ID3 task (task in the function group for situation A) is executed in the slot ID2
- the slot In ID the task with task ID 5 (system group task) is executed.
- the system period 11155 is 50 ms.
- the task IDs 1 and 2 are executed in the slot ID1
- the task ID3 task (task in the function group for the situation A) is executed in the slot ID2
- the slot ID3 The task ID4 (task of the task group for the situation B) is executed
- the task ID5 (task of the system group) is executed in the slot ID4.
- the system period 11165 is 50 ms.
- the deadline determination is invalid (deadline monitoring is OFF), so the task with task ID4 executes the initialization process. If it does not end within that slot time, the initialization process is interrupted at the end of the slot but resumed at the next slot start time.
- tasks ID1 and 2 are executed in the slot ID1
- task ID4 (task in the function group for situation B) is executed in the slot ID3
- the slot In ID4 the task of task ID5 (system group task) is executed.
- the system period 11175 is 50 ms as described above.
- FIG. 10 is a diagram showing an example of memory protection setting in the present embodiment.
- the memory protection settings are realized in a table format (but not limited to the table format), and function groups 411, 421, and 431 indicating the names (may be types) of target function groups and corresponding functions
- the configuration items include accessible areas 412, 422, and 432 that indicate memory areas that can be accessed by the group, and inaccessible areas 413, 423, and 433 that indicate memory areas that cannot be accessed by the corresponding function group.
- the accessible areas 412, 422, and 432 indicate areas where writing, reading, and function execution are permitted.
- the inaccessible areas 413, 423, and 433 indicate areas where data writing, data reading, and function execution are not permitted.
- the memory access is managed by two (two types) of the accessible areas 412, 422, and 432 and the inaccessible areas 413, 423, and 433.
- the present invention is not limited to this.
- an area where only data reading is permitted may be set as the limited accessible area, but the present invention is not limited to this.
- execution of each task of the individual function group, writing, Although reading is permitted tasks of the common function group may be configured to be permitted only to read.
- FIG. 11 is a diagram illustrating an example of a memory map in the present embodiment.
- the memory used by the ECU-A 11 is divided into four regions (regions A to D) (space separation).
- the function group that can access each area is not fixed. For example, it is possible to allocate a memory area that the ECU-A 11 uses for each function group in accordance with an external command (see, for example, the second embodiment).
- the common function group 511 is mapped to the area A517
- the shared memory area 512 and the empty memory area 513 are mapped to the area B518, and the function group for the situation A 514 and the empty memory area 515 are assigned to the area C519.
- the free memory area 516 is mapped to the area D510.
- the common function group 5201 is mapped to the area A5208, the shared memory area 5202 and the free memory area 5203 are mapped to the area B5209, and the function group 5204 for the situation A and the free memory area 5205 are mapped to the area C5210.
- the situation B function group 5206 and the free memory area 5207 are mapped to the area D5211.
- the common function group 531 is mapped to the area A537
- the shared memory area 532 and the free memory area 533 are mapped to the area B538, and the free memory area 534 is mapped to the area C539.
- the group 535 and the free memory area 536 are mapped to the area D530.
- FIG. 12 is a flowchart for explaining the travel plan generation process by the travel plan unit 1101.
- the travel planning unit 1101 is the operating subject, but the travel planning unit 1101 is realized by a program, so the ECU A-11 may be the operating subject.
- the travel plan unit 1101 calculates and stores travel trajectory candidates according to the surrounding situation.
- the peripheral situation is calculated by the peripheral recognition 1 unit 1104 using, for example, an image captured by the camera and point cloud information.
- the information on the surrounding situation includes, for example, the presence / absence and distance of a vehicle ahead, information on road lanes, information on surrounding features, and the like.
- FIG. 13 is a flowchart for explaining the traveling track determination processing by the determination function unit 1102.
- the determination function unit 1102 is the operation subject.
- the ECU A-11 may be the operation subject.
- Step 1301 The determination function unit 1102 determines a travel path to be adopted from travel path candidates obtained in the travel plan generation process (FIG. 12).
- Step 1302 The determination function unit 1102 transmits the traveling track determined in step 1301 to the outside of the ECU-A 11 (for example, the ECU-B 12 or a control device that controls each ECU) via the network bus 13.
- the ECU-A 11 for example, the ECU-B 12 or a control device that controls each ECU
- FIG. 14 is a flowchart for explaining common initialization processing by the common initialization unit 1103.
- the common initialization unit 1103 is the operation subject.
- the ECU A-11 may be the operation subject.
- Step 1401 The common initialization unit 1103 performs initialization of the travel plan unit 1101 and the determination function unit 1102.
- Step 1402 The common initialization unit 1103 validates the partition. That is, memory protection (spatial separation: FIG. 11) and deadline determination (temporal separation: FIG. 9) of time division scheduling are enabled.
- Time-sharing scheduling is performed when the CPU is a single core, but when the CPU is multi-core, time separation is realized by assigning, for example, a common function group program and an individual function group program to different cores. Will be.
- Step 1403 The common initialization unit 1103 issues a function execution permission event according to the current situation.
- Step 1404 The common initialization unit 1103 starts time division scheduling. Specifically, a timer is set to execute the time division control unit 1110.
- FIG. 15 is a flowchart for explaining the periphery recognition processing by the periphery recognition 1 unit 1104.
- the periphery recognition 1 part 1104 is the operation subject, but since the periphery recognition 1 part 1104 is realized by a program, the ECU A-11 may be the operation subject.
- Step 1501 The peripheral recognition 1 unit 1104 instructs the situation A specific initialization unit 1105 to execute the situation A specific initialization process. Details of step 1501 will be described later (see FIG. 16).
- Step 1502 When the situation A specific initialization process is completed, the periphery recognition 1 unit 1104 analyzes the received image and the point cloud using an algorithm suitable for the situation A, and recognizes the surrounding situation.
- Step 1503 The peripheral recognition 1 unit 1104 stores the recognition result as peripheral information in a memory (not shown).
- FIG. 16 is a flowchart for explaining the situation A specific initialization process by the situation A specific initialization unit 1105.
- the situation A specific initialization unit 1105 is the operating subject, but since the situation A specific initialization unit 1105 is realized by a program, the ECU A-11 may be the operating subject.
- Step 15011 The situation A specific initialization unit 1105 determines whether the partition is valid, that is, whether space separation (memory protection) and time separation (time division scheduling) are valid. If the partition is valid (time-sharing scheduling (running)) (Yes in step 15011), the process proceeds to step 15012. If the partition is not valid (for example, when the engine is started: No in step 15011), the process proceeds to step 15016.
- Step 15012 The situation A specific initialization unit 1105 sets the deadline monitoring of the function group executed in the situation A to OFF. That is, the deadline task is not executed during the initialization process.
- Step 15013 The situation A specific initialization unit 1105 initializes the periphery recognition 1 unit 1104.
- Step 15014 The situation A specific initialization unit 1105 waits for an execution permission event. While waiting, if time-sharing scheduling is running, dispatch occurs.
- Step 15015 The situation A specific initialization unit 1105 turns on the deadline monitoring of the function group executed in the situation A (deadline determination is enabled).
- Step 15016 The situation A specific initialization unit 1105 initializes the periphery recognition 1 unit 1104.
- FIG. 17 is a flowchart for explaining the periphery recognition processing by the periphery recognition 2 unit 1106.
- the periphery recognition 2 unit 1106 is an operation subject, but since the periphery recognition 2 portion 1106 is realized by a program, the ECU A-11 may be the operation subject.
- Step 1701 The peripheral recognition 2 unit 1106 instructs the situation B specific initialization unit 1107 to execute the situation B specific initialization process. Details of step 1701 will be described later (see FIG. 18).
- Step 1702 the periphery recognition 2 unit 1104 analyzes the received image and the point cloud using an algorithm suitable for the situation B, and recognizes the surrounding situation.
- Step 1703 The peripheral recognition 2 unit 1106 stores the recognition result as peripheral information in a memory (not shown).
- FIG. 18 is a flowchart for explaining the situation B specific initialization process by the situation B specific initialization unit 1107.
- the situation B specific initialization unit 1107 is the operation subject, but since the situation B specific initialization unit 1107 is realized by a program, the ECU A-11 may be the operation subject.
- Step 17011 The situation B specific initialization unit 1107 determines whether the partition is valid, that is, whether space separation (memory protection) and time separation (time division scheduling) are valid. If the partition is valid (time division scheduling (running)) (Yes in step 15011), the process proceeds to step 17012. If the partition is not valid (for example, when the engine is started: No in step 17011), the process proceeds to step 17016.
- Step 17012 The situation B specific initialization unit 1107 sets the deadline monitoring of the function group executed in the situation B to OFF. That is, the deadline task is not executed during the initialization process.
- Step 17013 The situation B specific initialization unit 1107 initializes the periphery recognition 2 unit 1106.
- Step 17014 The situation B specific initialization unit 1107 waits for an execution permission event. While waiting, if time-sharing scheduling is running, dispatch occurs.
- Step 17015 The situation B specific initialization unit 1107 turns on deadline monitoring of the function group executed in situation B (deadline determination is enabled).
- Step 17016 The situation B specific initialization unit 1107 initializes the periphery recognition 2 unit 1106.
- FIG. 19 is a flowchart for explaining mode change processing by the mode change unit 1108.
- the mode change unit 1108 is the operation subject, but since the mode change unit 1108 is realized by a program, the ECU A-11 may be the operation subject.
- Step 1901 The mode change unit 1108 determines whether an update preparation request has been received.
- the ECU A-11 receives an update preparation request or an update execution request from the outside (for example, a control device that totally controls the ECU B-12 and each ECU (not shown)).
- step 1902 If an update preparation request has been received (Yes in step 1901), the process proceeds to step 1902. If an update preparation request has not been received (No in step 1901: an update execution request has been received or no request has been received), the process proceeds to step 1905.
- the mode change unit 1108 receives a program and design information from the outside.
- the reception target is a program, but the present invention is not limited to this.
- the configuration may be such that only the parameters are received, and the program can follow the situation change only by changing the parameters.
- Step 1903 The mode change unit 1108 calls the partition update unit 1109 to change the partition. Details of step 1903 will be described later (see FIG. 20).
- Step 1904 The mode change unit 1108 activates the update function group.
- the function group for the situation B is activated.
- Step 1905 The mode change unit 1108 determines whether an update execution request has been received. If an update execution request is received (Yes in step 1905), the process proceeds to step 1906. If no update execution request has been received (No in step 1905: no request has been received), the mode change process ends.
- Step 1906 The mode change unit 1108 issues an execution permission event.
- FIG. 20 is a flowchart for explaining partition update processing (details of step 1903) by the partition update unit 1109.
- the partition update unit 1109 is the operation subject.
- the partition update unit 1109 is realized by a program, the ECU A-11 may be the operation subject.
- Step 19031 The partition update unit 1109 saves the received program in a free memory area and performs memory protection. Specifically, this is processing in the situation AtoB in FIG.
- Step 19032 The partition update unit 1109 determines whether memory protection has been performed. If the memory can be protected (Yes in step 19032), the process proceeds to step 19033. If the memory cannot be protected (No in step 19032), the process proceeds to step 19036.
- Step 19033 The partition update unit 1109 designs a slot within the empty slot range based on design information transmitted from the outside (which may be design information held in the ECU-A 11). For example, the execution time of the target task is subtracted from the time of the empty slot, and when the number is a positive number, the execution time of the task is set as the slot time. However, it is not limited to this method.
- Step 19034 The partition update unit 1109 determines whether slot design has been implemented. If the slot design has been performed (Yes in step 19034), the process proceeds to step 19035. If the slot design cannot be performed (No in step 19034), the process proceeds to step 19036.
- the partition update unit 1109 transmits an event indicating the dynamic function update preparation environment to the network bus 13.
- the ECU-B 12 or an external server receives the event, and transmits an update execution request for the situation B travel mode to the ECU-A 11.
- Step 19036 The partition update unit 1109 transmits an event indicating a dynamic function update error to the network bus 13. In this case, in order to alert the user, it may be displayed on the screen of the display unit that the dynamic function update has failed.
- FIG. 21 is a flowchart for explaining the time division control processing by the time division control unit 1110.
- the time division control unit 1110 is the operation subject.
- the ECU A-11 may be the operation subject.
- Step 2101 The time division control unit 1110 determines whether the processing of the slot before the current slot (slot with the previous slot ID) has been completed. If the process for the previous slot has been completed (Yes in step 2101: the first execution for the slot), the process proceeds to step 2106. If the process for the previous slot has not been completed (No in step 2101), the process proceeds to step 2102.
- Step 2102 The time division control unit 1110 determines whether deadline determination of the target task is valid (deadline monitoring is ON). If the deadline determination is valid (Yes in Step 2102), the process proceeds to Step 2103. If the deadline determination is invalid (No in step 2102), the process proceeds to step 2104.
- Step 2103 The time division control unit 1110 forcibly stops unfinished processing in the previous slot. If the process is not completed despite the end of the slot, the CPU (processor) used for the next process is used if the unfinished process continues to be executed. At this stage, since the partitioning is not performed, the unfinished process is forcibly terminated. For example, when the situation AtoB is reached, the initialization process is initially executed. However, as shown in FIG. 6, the initialization process often takes longer processing time than normal processing. For this reason, the initialization process may not end during the execution cycle (for example, 50 ms). This unfinished event does not occur because the process is abnormal, so the unfinished process is forcibly stopped.
- Step 2104 The time division control unit 1110 abnormally stops the unfinished process in the previous slot (for example, because the deadline is over, the process is determined to be abnormal).
- the time division control unit 1110 transmits an event for notifying a deadline miss to the network bus 13.
- an ECU ECU-B12
- a control device that performs overall control of each ECU can recognize the task of abnormal stop.
- Step 2106 The time division control unit 1110 activates a specific task to be executed in the next slot based on the slot design table with designated scheduling. In the case of the previous forced stop, the time division control unit 1110 resumes the task that has been forcibly terminated. However, if the previous abnormal stop, the task is not started again.
- Step 2107 The time division control unit 1110 sets a timer for starting the time division control unit 1110 at the end time of the next slot.
- FIG. 22 is a flowchart for explaining screen display processing by the screen display unit 1201 of the ECU-B12.
- the screen display unit 1201 is the operation subject, but since the screen display unit 1201 is realized by a program, the ECU-B 12 may be the operation subject.
- Step 2201 The screen display unit 1201 displays an error on the screen based on the deadline miss event received from the time division control unit 1110 of the ECU-A11.
- Step 2202 The screen display unit 1201 displays an error on the screen based on the dynamic function update error event received from the partition update unit 1109 of the ECU-A11.
- the screen is displayed when an error occurs, but this is not restrictive. You may perform fail safe which stops a system safely. Further, this may be notified to a server (not shown) and executed again, but is not limited to this.
- FIG. 23 is a flowchart for explaining update preparation instruction processing by the update preparation instruction unit 1202 of the ECU-B12.
- the update preparation instructing unit 1202 is the operating subject, but the update preparation instructing unit 1202 is realized by a program, so the ECU-B12 may be the operating subject.
- Step 2301 The update preparation instructing unit 1202 transmits an update preparation request to the network bus 13 when the situation is in the transition state (boundary) (for example, when the situation is AtoB or situation BtoA).
- Step 2302 The update preparation instruction unit 1202 transmits the update program and design information to the ECU-A 11 via the network bus 13 so that the ECU-A 11 can use them.
- FIG. 24 is a flowchart for explaining update execution instruction processing by the update execution instruction unit 1203 of the ECU-B12.
- the update execution instruction unit 1203 is the operation subject, but since the update execution instruction unit 1203 is realized by a program, the ECU-B 12 may be the operation subject.
- Step 2401 The update execution instructing unit 1203 determines whether a dynamic function update preparation completion event has been received. If a dynamic function update preparation completion event has been received (Yes in step 2401), the process proceeds to step 2402. If the dynamic function update preparation completion event has not been received (No in step 2401), the update execution instruction process ends.
- Step 2402 The update execution instructing unit 1203 sends an update execution request to the ECU ⁇ via the network bus 13 when the situation is changed (for example, when the situation A to B is changed to the situation B, or when the situation B to A is changed to the situation A). Send to A11.
- FIG. 25 is a diagram illustrating an example of the update function group task information 2112 in the situation AtoB02 and the task information 2114 in the situation B03 according to the second embodiment. Configuration items are the same as those in the first embodiment.
- the task information of the situation A is the same as that in the first embodiment, and is omitted (see FIG. 5).
- the task name 21121 of the task information 2112 indicates the name of the task of the function to be executed.
- the peripheral recognition 2 task executes the peripheral recognition 2 part 1106.
- the task ID 21122 indicates an ID that can identify the task.
- An execution cycle 21123 indicates a cycle for starting a task. The unit is milliseconds.
- Task priority 21124 indicates the priority of the task. However, when the scheduling is EDF (Earliest Deadline First), the task priority is not set (a numerical value is not entered in the table).
- the normal execution time 21125 indicates the execution time of the normal task after the initialization process is completed.
- the initialization execution time 21126 indicates the execution time of the initialization process.
- a function group 21127 indicates a function group to which the task belongs.
- the function group for the situation B means a function group executed in the situation B.
- Scheduling 21118 indicates a scheduling policy in which the task is executed.
- the initialization execution time 21126 is set shorter than that in the first embodiment.
- the task name 21141 in the task configuration 2114 after the update (situation B03) according to the second embodiment indicates the name of the task to be executed.
- the travel plan task executes the travel plan unit 1101
- the determination function task executes the determination function unit 1102
- the periphery recognition 2 task executes the periphery recognition 2 unit 1106, and the mode change task executes the mode change unit 1108.
- Task ID 21142 indicates an ID that can identify a task.
- the execution cycle 21143 indicates a cycle for starting a task.
- the unit is milliseconds.
- the task priority 21144 indicates the priority of the task.
- the normal execution time 21145 indicates the execution time of the normal task after the initialization is completed.
- the initialization execution time 21146 indicates the execution time of the initialization process.
- the longest execution time is set as the normal execution time and the initialization execution time, but the present invention is not limited to this.
- the longest execution time may be added with a margin. However, it is not limited to this.
- the function group 21147 indicates the function group to which the task belongs.
- a scheduling 21148 indicates a scheduling policy in which the task is executed.
- FIG. 26 is a diagram illustrating an example of a slot design according to the second embodiment. Configuration items are the same as those in the first embodiment. Hereinafter, the slot design corresponding to each situation will be described.
- the slot ID 21151 in the slot design table 2115 indicates an ID that can identify the slot.
- the start time 21152 indicates the start time of a time determined as a slot.
- the end time 21153 indicates the end time of the time determined as the slot.
- the execution target 21154 indicates a function group that is permitted to execute in the corresponding slot.
- the slot ID 21161 in the slot design table 2116 indicates an ID that can identify the slot.
- the start time 21162 indicates the start time of a time determined as a slot.
- the end time 21163 indicates the end time of the time determined as the slot.
- the execution target 21164 indicates a function group that is permitted to execute in the corresponding slot.
- the slot ID 21171 in the slot design table 2117 indicates an ID that can identify the slot.
- a start time 21172 indicates the start time of a time determined as a slot.
- the end time 21173 indicates the end time of the time determined as the slot.
- the execution target 21174 indicates a function group that is permitted to execute in the corresponding slot. The difference between the second embodiment and the first embodiment is that the function group for the state B is not executed in the situation AtoB02.
- FIG. 27 is a diagram illustrating an example of task scheduling according to the second embodiment. Hereinafter, task scheduling corresponding to each situation will be described.
- time division scheduling is used to realize time partitioning in a single core, but this is not restrictive.
- time partitioning may be realized by executing a function group to be updated and a function group to be updated on different cores.
- memory protection is required as in the first and second embodiments, and the mode change unit 1108 is executed by the same core as the function group to be continued, and the function groups of other cores are updated.
- the control controller (ECU-A) of the vehicle control system manages and executes a plurality of functions in units of predetermined function groups.
- the control controller (ECU-A) dynamically changes the function group unit (partition update unit), and from outside the control controller (another ECU (ECU-B) or a server (not shown))
- a function group change execution request for instructing a function group change in response to the change is received, and execution of the function group whose partition has been updated (changed) is permitted in response to the function group change execution request (mode change unit)
- mode change unit It is configured as follows.
- the function of the system can be changed in response to a command from an external ECU or server that has detected a change in situation, and the availability and safety of the system can be ensured.
- control controller receives an external (another ECU (ECU-B), an overall control device or server in the vehicle control system (not shown)) before receiving the function group change execution request.
- the function group change preparation request for requesting the preparation of the function group change is received from the outside, and in response to the function group change preparation request, the external (another ECU (ECU-B), the whole in the vehicle control system not shown)
- Change information describing matters to be changed is acquired from the control device or server), and the function group partition is changed based on the change information (resetting the function group partitioning).
- the function group configuration change is started in a state where the situation change is occurring, so immediately when the situation actually changes, It is possible to transition to the function of the system corresponding to the changed situation.
- the ECU-A performs partitioning of a plurality of functions based on space separation and time separation.
- the ECU-A is configured to separate the memory space used for each functional group as space separation and separate the execution time for each functional group as time separation.
- the function group includes at least a common function group that is a function that is commonly executed in a plurality of situations and an individual function group that has different functions that are executed according to the situation.
- the memory address space of the common function group and the memory address space of the individual function group are distinguished, and the memory area between the common function group and the individual function group is configured via the shared memory space.
- the common function group is a function for executing a process for guaranteeing the safety of the vehicle control system
- the individual function group is a function for executing a process for improving the availability of the vehicle control system.
- the processor configuration in the controller can be single core or multi core.
- time partitioning is realized by time division scheduling.
- the control controller assigns a slot (a time slot for executing a task corresponding to each function) for each function group (time division control unit).
- the common function group and the individual function group are executed by different core processors to realize time separation.
- the control controller In the case of time-sharing control, the control controller (ECU-A: mode change unit) updates the partition (partition update unit) in a slot other than the slot assigned to the function group by time-sharing control. Start the update function group. Since the updated function is executed after the slot is surely assigned, the safety of the system can be ensured.
- V In the case of space separation, memory space is allocated to individual function groups so that execution, writing, and reading can be performed, and allocation to individual function groups is performed for common function groups and system groups.
- the memory space is set so that it can be read from the designated memory space. By setting the memory space in this way, the memory can be protected and the stability of system operation can be realized.
- the controller (ECU-A) when allocation of memory space and slot allocation in units of function groups fails, the controller (ECU-A) generates an event indicating a dynamic function update error and outputs it to the network. As a result, it is possible to monitor whether or not the partitioning update accompanying the change in the situation has been completed normally.
- This embodiment can also be realized by software program code.
- a storage medium in which the program code is recorded is provided to the system or apparatus, and the computer (or CPU or MPU) of the system or apparatus reads the program code stored in the storage medium.
- the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code itself and the storage medium storing the program code constitute the present disclosure.
- a storage medium for supplying such program code for example, a flexible disk, CD-ROM, DVD-ROM, hard disk, optical disk, magneto-optical disk, CD-R, magnetic tape, nonvolatile memory card, ROM Etc. are used.
- an OS operating system
- the computer CPU or the like performs part or all of the actual processing based on the instruction of the program code.
- the program code of the software that realizes the functions of the embodiment is stored in a storage means such as a hard disk or memory of a system or apparatus or a storage medium such as a CD-RW or CD-R.
- the program code stored in the storage means or the storage medium may be read out and executed by the computer (or CPU or MPU) of the system or apparatus during storage.
- control lines and information lines are those that are considered necessary for the explanation, and not all control lines and information lines on the product are necessarily shown. All the components may be connected to each other.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Stored Programmes (AREA)
Abstract
本開示は、リソース消費を抑制しつつ、制御システムの可用性と安全性を向上させる。本開示による制御コントローラは、制御継続する機能グループと更新する機能グループをパーティショニングにより分離し、状況に応じて更新する機能グループのみを更新することで、適切な制御処理を継続しつつ、必要な制御機能を更新する(図1参照)。
Description
本開示は、制御コントローラおよび車両制御システムに関する。
組込み制御システムは、様々な状況で安全に動作することが求められる。例えば、状況Aで最適に動作するアルゴリズムと状況Bで最適に動作するアルゴリズムが異なる場合には両者のプログラムを搭載する必要がある。しかしながら、両者のプログラムを搭載するためには更に高性能なCPUやメモリが必要となるため、システムのハードウェアコストが高くなる課題がある。例えば、自動運転システムの標識認識プログラムにおいて国Aと国Bの標識を高精度で識別するためには、各国ごとに最適化された2つのプログラムを用意する必要がある。これは2国に限らず、国Cや国Dなどと更に増える可能性があり、全てのプログラムをシステムに搭載することはコスト増に繋がるため現実的に困難である。
そこで、例えばOTA(Over The Air)と呼ばれる、必要となった状況で必要なプログラムをダウンロードする技術が提唱されている。
そこで、例えばOTA(Over The Air)と呼ばれる、必要となった状況で必要なプログラムをダウンロードする技術が提唱されている。
また、前述の標識認識プログラムの例の他に、例えば、システムの状況が故障のない通常走行モード(状況A)からコントローラ故障が発生したモード(状況B)に切り替わった際に、残存コントローラの性能に応じて、制御機能を再構成し、フェールオペレーショナルを試みるユースケースも考えられる。コントローラは、電子制御ユニット(ECU)と呼ばれ、ECU間は車載ネットワークで接続される。ECU間は制御データやプログラムの転送がネットワークを介して可能である。
例えば、特許文献1は、ECUのマイコン故障が発生した際には、残存するECUの中から優先度に基づいて機能代替するECUを動的に選定し、選定対象に対して、機能代替するプログラムを転送し、システムの縮退制御を実現可能とする一連の流れを示している。
ISO26262
AVIONICS APPLICATION SOFTWARE STANDARD INTERFACE, PART 1 - REQUIRED SERVICES, ARINC SPECIFICATION 653P1-3, 2010
しかしながら、特許文献1では走行中にプログラムを入れ替えることは考慮されていない。このため、特許文献1の技術には、複数のプログラムを1つのECUのマイコン上で動作させる際に互いに干渉し、制御性能に影響を与えるという課題があり、処理切り替え後の動作を保証するものではない。
一方、無干渉とする方法として、非特許文献1に示す自動車向け機能安全規格ISO26262は、Freedom From Interferenceとして無干渉とする方法について開示している。また、一つの実現方法として、非特許文献2では時分割スケジューリングが示されている。
しかしながら、非特許文献2による時分割スケジューリングでは、静的にスロットを設計する必要がある。このため、故障後の処理に対しても予めスロットを割り当てておく必要がある。つまり、故障後にも故障前の割り当てが残存し、逆に故障前でも故障後のための割り当てが設定された状態となっている。これは状況Aや状況Bだけでなくすべての状況に対して予めスロット(リソース)を割り当てておくことを示しており、非特許文献2の技術には、リソースを有効利用できないという課題がある。
本開示はこのような状況に鑑みてなされたものであり、状況変化に応じて、動的に一部のプログラムを入れ替える際に、他のプログラムの動作に影響を与えずにシステムを更新する技術を提供する。
上記課題を解決するために、本開示による制御コントローラは、複数の機能を予め決められた機能グループの単位で管理し、実行する制御コントローラであって、動的に機能グループ単位を変更するパーティション更新部と、制御コントローラの外部から、システムの稼働環境の変化に応じて機能グループの変更を指示する機能グループ変更実施要求を受信し、当該機能グループ変更実施要求に応答して、パーティション更新部によって変更された機能グループの実行を許可するモード変更部と、を備える。
本開示に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、本開示の態様は、要素及び多様な要素の組み合わせ及び以降の詳細な記述と添付される請求の範囲の様態により達成され実現される。
本明細書の記述は典型的な例示に過ぎず、本開示の請求の範囲又は適用例を如何なる意味においても限定するものではないことを理解する必要がある。
本明細書の記述は典型的な例示に過ぎず、本開示の請求の範囲又は適用例を如何なる意味においても限定するものではないことを理解する必要がある。
本開示の制御コントローラによれば、制御に影響を与えずに状況に応じてシステムの機能を変更可能となるため、可用性と安全性を担保できる。
本実施形態に係る制御コントローラは、制御システムの制御機能を動的に更新するための技術に関するものである。例えば、当該制御コントローラは、機能グループ同士を無干渉とする、時間的および空間的パーティショニングを実行しつつ、稼働状況に応じて機能グループの一部を入れ替えることにより、システムの可用性と安全性を担保することができる制御システムの制御機能を提供する。
以下、添付図面を参照して本開示の実施形態について説明する。添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は本開示の原理に則った具体的な実施形態と実装例を示しているが、これらは本開示の理解のためのものであり、決して本開示を限定的に解釈するために用いられるものではない。
本実施形態では、当業者が本開示の技術を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本開示の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
更に、本開示の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装しても良い。
なお、以後の説明では「テーブル」形式によって本開示の各情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、DB、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「DB」、「キュー」等について単に「情報」と呼ぶことがある。
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「ID」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
本実施形態では、各ECUが所定の判断をするように設定されている場合について説明するが、各ECUを制御する制御装置が設けられ、当該制御装置が上記所定の判断をするように設定してもよい。
(1)第1の実施形態
<車両システムのユースケース>
図1は、本実施形態による車両システム10のユースケース(車両システムにおける状態遷移)を示す図である。
<車両システムのユースケース>
図1は、本実施形態による車両システム10のユースケース(車両システムにおける状態遷移)を示す図である。
図1に示されるように、車両システム10は、状況A01では、状況Aに適した機能構成で走行するシステム1となる。また、車両システム10は、状況Aから状況Bに移動する際の状況B付近の状況A(状況AtoB02)では、状況Bに適した機能構成で走行する準備を行うシステム2となる。さらに、車両システム10は、状況B03では、状況Bに適した機能構成で走行するシステム3となる。
例えば、状況Aを車両システム10がA国(B国との国境付近ではない場所)にいる状況とし、状況AtoBを車両システム10がA国とB国の国境付近にいる状況とし、状況Bを車両システム10がB国(A国との国境付近ではない場所)にいる状況とすることができる。また、例えば、状況Aを各ECUが正常に動作している状況とし、状況AtoBを何れかのECUで故障が発生しそうな状況とし、状況Bを何れかのECUで故障が発生した後の状況とすることができる。
<車両システムの構成>
図2は、本実施形態による車両システム10の概略構成例を示す図である。車両システム10は、例えば、ECU-A11とECU-B12とその他のECUで構成され、ネットワークバス13で接続される。第1の実施形態では、各ECUがネットワークバス13で接続されているが、このような形態に限られず、各ECUが1対1に接続されるようなネットワークトポロジであってもよい。
図2は、本実施形態による車両システム10の概略構成例を示す図である。車両システム10は、例えば、ECU-A11とECU-B12とその他のECUで構成され、ネットワークバス13で接続される。第1の実施形態では、各ECUがネットワークバス13で接続されているが、このような形態に限られず、各ECUが1対1に接続されるようなネットワークトポロジであってもよい。
車両システム10が状況A01にあるときのシステム1におけるECU―A11は、例えば、プログラムとしての、走行計画部1101と、判断機能部1102と、共通初期化部1103と、周辺認識1部1104と、状況A固有初期化部1105と、モード変更部1108と、パーティション更新部1109と、時分割制御部1110とによって構成される。また、当該システム1におけるECU―B12は、プログラムとしての、画面表示部1201と、更新準備指示部1202と、更新実施指示部1203とによって構成される。車両システム10が状況AtoBにあるときのシステム2は、ECU-A11において、システム1の構成と、プログラムとしての、周辺認識2部1106と、状況B固有初期化部1107とによって構成されている。
車両システム10が状況Bにあるときのシステム3は、ECU-A11において、システム2の構成から、プログラムとしての、周辺認識1部1104と、状況A固有初期化部1105とが削除されている構成となっている。なお、状況A固有初期化部1105の削除は、ECU-A11が実行してもよいし、各ECUを管理・制御する制御装置(図示せず)が実行してもよい。
<ECU-Aの状態遷移>
図3は、本実施形態におけるECU-A11の状態遷移の例を示す図である。ECU-A11は、はキーONによりシステム初期化モード001となり、全体初期化処理(共通初期化処理)を行う。初期化終了後、ECU-A11は、パーティションを有効とし、それにより、状態は走行モード002に遷移する。ここで、本実施形態における「パーティション」とは、メモリを複数の領域に区切り、処理すべきデータを各領域に適切に割り当てること(空間分離)、および時間分離で各種処理をスケジューリングし、このスケジュールに従って処理を実行(CPUを使うときに影響を受けない)すること(時間分離)を意味する。なお、時間分離の場合、CPUがシングルコアの場合とマルチコアの場合とでは処理の態様が異なる。前者の場合、時分割でスケジューリングして処理が実行され、後者の場合、例えば、1つ目のコアが共通機能グループの処理を実行し、2つ目のコアが個別機能グループの処理を実行する。また、後者の場合、物理メモリは共通となるが、使用されるメモリ領域(アドレス空間)は異なってくる。
図3は、本実施形態におけるECU-A11の状態遷移の例を示す図である。ECU-A11は、はキーONによりシステム初期化モード001となり、全体初期化処理(共通初期化処理)を行う。初期化終了後、ECU-A11は、パーティションを有効とし、それにより、状態は走行モード002に遷移する。ここで、本実施形態における「パーティション」とは、メモリを複数の領域に区切り、処理すべきデータを各領域に適切に割り当てること(空間分離)、および時間分離で各種処理をスケジューリングし、このスケジュールに従って処理を実行(CPUを使うときに影響を受けない)すること(時間分離)を意味する。なお、時間分離の場合、CPUがシングルコアの場合とマルチコアの場合とでは処理の態様が異なる。前者の場合、時分割でスケジューリングして処理が実行され、後者の場合、例えば、1つ目のコアが共通機能グループの処理を実行し、2つ目のコアが個別機能グループの処理を実行する。また、後者の場合、物理メモリは共通となるが、使用されるメモリ領域(アドレス空間)は異なってくる。
走行モード002では、最初は状況A走行モード0021となり、共通機能グループと状況A向け機能グループを実行する(状況Aの機能の実行)。ECU-A11は、外部(例えば、ECU-B12や図示しない全体を制御する制御装置など)から更新準備要求を受信すると、状態を機能更新モード0022に遷移させる。
機能更新モード0022では、ECU-A11は、更新プログラムと設定情報(更新情報)を取得し、その情報に基づいてパーティションの部分更新と部分初期化処理を実施する。ECU-A11は、部分更新と部分初期化処理と同時に、継続実行対象の機能処理を実行し続ける。例えばECU-B12から更新実施要求を受信した場合、ECU-A11は、使用しない機能をOFFにし、状態を状況B走行モード0023に遷移させる。状況B走行モード0023では、ECU-A11は、共通機能グループと状況B向け機能グループを実行する。
なお、本実施形態では、更新プログラムおよび設定情報は、すでに車両システム10内のECUに保存され、ネットワークバス13経由で配信されることを想定しているが、これに限らない。更新プログラムと設定情報は車両システム外のサーバに保存され、OTAに基づいて配信されてもよいし、これ以外の方法でも良い。また、更新プログラムや設定情報は、予め、ECU-A11内のメモリ(図示せず)に格納されており、ECU-A11がそこから取得するようにしてもよいし、ECU-A11の外部に専用のメモリ領域が設けられ、ECU-A11がそこから取得するようにしてもよい。
<機能グループのデータ処理の流れ>
図4は、本実施形態による機能グループのデータフローの例を示す図である。
図4において、状況A01では、周辺認識1部1104は、カメラ画像とポイントクラウド情報(点群(形状)と距離の情報)を入力とし、走行環境情報を出力する。走行計画部1101は、走行環境情報を入力とし、起動候補情報を出力する。また、判断機能部1102は、起動候補情報を入力とし、走行軌道情報を出力する。
図4は、本実施形態による機能グループのデータフローの例を示す図である。
図4において、状況A01では、周辺認識1部1104は、カメラ画像とポイントクラウド情報(点群(形状)と距離の情報)を入力とし、走行環境情報を出力する。走行計画部1101は、走行環境情報を入力とし、起動候補情報を出力する。また、判断機能部1102は、起動候補情報を入力とし、走行軌道情報を出力する。
状況B03では、周辺認識1部1104が周辺認識2部1106に入れ替わる。また、入力と出力情報には変更がない。なお、状況A02は、状況A01と同様であるので、説明は省略する。
<更新前のタスク構成>
図5は、第1の実施形態の更新前(状況A01)におけるタスク構成1111の例を示す図である。なお、当該タスク構成1111(テーブル)は、例えば、ECU-A11のメモリ(図示しない)に設定されて管理される。最初からデータとしてメモリ上に設定されていてもよいし、例えばECU-B12からデータが送信されてきて設定されるようにしてもよい。
図5は、第1の実施形態の更新前(状況A01)におけるタスク構成1111の例を示す図である。なお、当該タスク構成1111(テーブル)は、例えば、ECU-A11のメモリ(図示しない)に設定されて管理される。最初からデータとしてメモリ上に設定されていてもよいし、例えばECU-B12からデータが送信されてきて設定されるようにしてもよい。
タスク構成1111は、タスク名11111と、タスクID11112と、実行周期11113と、タスク優先度11114と、通常実行期間11115と、初期化実行時間11116と、機能グループ11117と、スケジューリング11118とを構成項目としている。
タスク名11111は、実行する機能をタスクの名称として示す情報である。例えば、走行計画タスクは走行計画部1101を、判断機能タスクは判断機能部1102を、周辺認識1タスクは周辺認識1部1104を、モード変更タスクはモード変更部1108を、それぞれ実行する。
タスクID11112は、タスクを一意に識別・特定することができる識別情報である。実行周期11113は、タスクを起動する周期を示す情報である。単位は例えばミリ秒である。第1の実施形態では、すべての実行周期を同じにしているがこれに限らない。異なる周期であってもよい。
タスク優先度11114は、タスクの優先度を示す情報である。この優先度は、タスクが同時に実行可能状態であるときに、優先して実行される度合いを示しており、数字が小さいほど優先度が高い。この考え方は優先度スケジューリングに基づいている。
通常実行時間11115は、初期化終了後のタスク実行時間(タスク実行に割り当てられた時間)を示す情報である。初期化実行時間11116は、初期化処理の実行時間(初期化処理に割り当てられた時間)を示す情報である。第1の実施形態では、通常実行時間11115と初期化実行時間11116を、最長の実行時間を設定することを想定しているが、これに限らない。例えば、最長の実行時間にマージンを加えたものであってもよいし、別の態様でもよい。
機能グループ11117は、タスクが所属する機能グループを示す情報である。例えば、共通機能グループは、状況に左右されずに実行されるアプリケーションプログラムである。状況A向け機能グループは、状況Aで実行される機能グループである。システムグループは、基本ソフトウェアの機能グループである。
スケジューリング11118は、タスクが実行されるスケジューリングポリシーを示す情報である。第1の実施形態では、複数のスケジューリングポリシーが共存することを想定しているが、これに限らない。例えば、1つのスケジューリングで統一されていてもよい。FIFO(First-In-First-Out)スケジューリングでは、タスク優先度11114の優先度に基づいて実行され、タスクの終了まで継続して実行される。EDF(Earliest Deadline First)は、タスクの実行周期11113をデッドラインと見なすポリシーである(動的スケジューリング)。つまり、EDFでは、プロセスは優先度付きキューに置かれ、スケジューリングイベントが発生すると(タスク終了、新規タスク生成など)、そのキューを探索して最も実行期限(デッドライン)が近いプロセスが選択され、そのプロセスが次に実行すべきものとしてスケジュールされる。より具体的に説明すると、次の周期が始まる時刻から実行時間通常11115を引いた時間を余裕時間とし、余裕時間がないほど優先度が高く設定される。例えば、ある処理によって実行時間が消費されたが、他にも実行すべきタスクが複数あり、全てのタスクを実行していると50ms内に収まらないときに、EDFがポリシーとして与えられているタスクが50ms内に必ず実行されるように優先度が動的に高く設定されることになる。なお、時分割制御の優先度はこれらのタスクの優先度よりも高く設定されるため、時分割制御の動作は保証される。第1の実施形態では、機能グループをタスク単位としているがこれに限らない。例えば、関数単位(プログラム単位)としてもよい。この場合、1つのタスクが複数の機能グループを実行することがありえる。
<更新中のタスク構成>
図6は、第1の実施形態の更新中(状況AtoB02)における更新機能グループのタスク情報1112と実行管理設定1113の構成例を示す図である。なお、当該タスク構成1112および実行管理設定1113(テーブル)は、例えば、ECU-A11のメモリ(図示しない)に設定されて管理される。最初からデータとしてメモリ上に設定されていてもよいし、例えばECU-B12からデータが送信されてきて設定されるようにしてもよい。
図6は、第1の実施形態の更新中(状況AtoB02)における更新機能グループのタスク情報1112と実行管理設定1113の構成例を示す図である。なお、当該タスク構成1112および実行管理設定1113(テーブル)は、例えば、ECU-A11のメモリ(図示しない)に設定されて管理される。最初からデータとしてメモリ上に設定されていてもよいし、例えばECU-B12からデータが送信されてきて設定されるようにしてもよい。
(i)タスク情報1112は、タスク名11121と、タスクID11122と、実行周期11123と、タスク優先度11124と、通常実行時間11125と、初期化実行時間11126と、機能グループ11127と、スケジューリング11128とを構成項目としている。
タスク名11121は、実行する機能をタスクの名称として示す情報である。例えば、周辺認識2タスクでは、周辺認識2部1106が実行される。タスクID11122は、タスクを一意に識別・特定することができる識別情報である。実行周期11123は、タスクを起動する周期を示す情報である。単位はミリ秒である。
タスク優先度11124は、タスクの優先度を示す情報である。通常実行時間11125は、初期化終了後の実行時間を示す情報である。初期化実行時間11126は、初期化処理の実行時間を示す情報である。
機能グループ11127は、タスクが所属する機能グループを示す情報である。例えば、状況B向け機能グループは、状況Bで実行される機能グループを意味する。スケジューリング11118は、タスクが実行されるスケジューリングポリシーを示す情報である。
第1の実施形態では、機能グループをタスク単位としているがこれに限らない。例えば関数単位(プログラム単位)としてもよい。この場合、1つのタスクが複数の機能グループを実行することがありえる。
(ii)実行管理設定1113は、タスク名11131と、タスクID11132と、実行管理11133と、機能グループ11134と、スケジューリング11135とを構成項目としている。
タスク名11131は、タスク名称を示す情報である。タスクID11132は、タスクを一意に識別・特定することができる識別情報である。
タスク名11131は、タスク名称を示す情報である。タスクID11132は、タスクを一意に識別・特定することができる識別情報である。
実行管理11133は、状況の変化に応じて、処理を終了する機能グループと処理を開始する機能グループを示す情報である。例えば、OFFは処理の終了、ONは処理の開始を意味する。ONとOFFは機能グループごとに管理される。状況AtoBでは、周辺認識2タスクがONとなるように制御され、状況AでONであった周辺認識1タスクはOFFとなるように制御される。
機能グループ11134は、タスクが所属する機能グループを示す情報である。スケジューリング11135は、タスクが実行されるスケジューリングポリシーを示す情報である。
<更新後のタスク構成>
図7は、第1の実施形態の更新後(状況B03)におけるタスク構成1114の例を示す図である。なお、当該タスク構成1114(テーブル)は、例えば、ECU-A11のメモリ(図示しない)に設定されて管理される。最初からデータとしてメモリ上に設定されていてもよいし、例えばECU-B12からデータが送信されてきて設定されるようにしてもよい。
図7は、第1の実施形態の更新後(状況B03)におけるタスク構成1114の例を示す図である。なお、当該タスク構成1114(テーブル)は、例えば、ECU-A11のメモリ(図示しない)に設定されて管理される。最初からデータとしてメモリ上に設定されていてもよいし、例えばECU-B12からデータが送信されてきて設定されるようにしてもよい。
タスク構成1114は、更新前と同様に、タスク名11141と、タスクID11142と、実行周期11143と、タスク優先度11144と、通常実行時間11145と、初期化実行時間11146と、機能グループ11147と、スケジューリング11148とを構成項目としている。
タスク名11141は、実行する機能をタスクの名称として示す情報である。例えば、走行計画タスクは走行計画部1101を、判断機能タスクは判断機能部1102を、周辺認識2タスクは周辺認識2部1106を、モード変更タスクはモード変更部1108を、それぞれ実行する。
タスクID11142は、タスクを一意に識別・特定することができる識別情報である。実行周期11143は、タスクを起動する周期を示す。単位はミリ秒である。第1の実施形態ではすべての実行周期を同じにしているがこれに限らず、異なる周期であってもよい。
タスク優先度11144は、タスクの優先度を示す情報である。この優先度は、タスクが同時に実行可能状態であるときに、優先して実行される度合いであり、数字が小さいほど優先度が高い。この考え方は優先度スケジューリングに基づいている。
通常実行時間11145は、初期化終了後の実行時間を示す情報である。初期化実行時間11146は、初期化処理の実行時間を示す情報である。第1の実施形態では、通常実行時間と初期化実行時間を、最長の実行時間を設定することを想定しているが、これに限らない。例えば、最長の実行時間にマージンを加えたものであってもよいし、別の態様であってもよい。
機能グループ11147は、タスクが所属する機能グループを示す情報である。例えば、共通機能グループは、状況に左右されずに実行されるアプリケーションプログラムであり、状況B向け機能グループは状況Bで実行される機能グループである。システムグループは、基本ソフトウェアの機能グループである。
スケジューリング11148は、タスクが実行されるスケジューリングポリシーを示す情報である。第1の実施形態では、複数のスケジューリングポリシーが共存することを想定しているがこれに限らない。例えば、1つのスケジューリングで統一されていてもよい。FIFO(First-In-First-Out)スケジューリングでは、タスク優先度11114の優先度に基づいてタスクが実行され、タスクの終了まで継続して実行される。EDF(Earliest Deadline First)は、タスクの実行周期11143をデッドラインと見なすポリシーである。次の周期が始まる時刻から実行時間通常11145を引いた時間を余裕時間とし、余裕時間がないほど優先度が高く設定される方式である。なお、時分割制御の優先度はこれらのタスクの優先度よりも高く設定されるため、時分割制御の動作は保証される。実施の形態1では機能グループをタスク単位としているがこれに限らない。例えば、関数単位(プログラム単位)としてもよい。この場合、1つのタスクが複数の機能グループを実行することがありえる。
<スロット設計>
図8は、第1の実施形態に係るスロット(タイムスロット)設計の例を示す図である。図8では、状況Aと、状況AtoBと、状況Bのときのスロット設計が示されている。スロット設計は、スロットID11151、11161、および11171と、開始時間11152、11162、および11172と、終了時間11153、11163、および11173と、実行対象11154、11164、および11174と、を構成項目としている。
図8は、第1の実施形態に係るスロット(タイムスロット)設計の例を示す図である。図8では、状況Aと、状況AtoBと、状況Bのときのスロット設計が示されている。スロット設計は、スロットID11151、11161、および11171と、開始時間11152、11162、および11172と、終了時間11153、11163、および11173と、実行対象11154、11164、および11174と、を構成項目としている。
(i)状況A01のスロット設計1115
スロットID11151は、スロットを一意に識別・特定できる識別情報である。開始時間11152は、スロットと定めた時間の開始時刻を示す情報である。終了時刻11153は、スロットと定めた時刻の終了時刻を示す情報である。実行対象11154は、該当するスロットで実行許可されている機能グループを示す情報である。
スロットID11151は、スロットを一意に識別・特定できる識別情報である。開始時間11152は、スロットと定めた時間の開始時刻を示す情報である。終了時刻11153は、スロットと定めた時刻の終了時刻を示す情報である。実行対象11154は、該当するスロットで実行許可されている機能グループを示す情報である。
(ii)状況AtoB02のスロット設計1116
スロットID11161は、スロットを一意に識別・特定できる識別情報である。開始時間11162は、スロットと定めた時間の開始時刻を示す情報である。終了時刻11163は、スロットと定めた時刻の終了時刻を示す情報である。実行対象11164は、該当するスロットで実行許可されている機能グループを示す情報である。
スロットID11161は、スロットを一意に識別・特定できる識別情報である。開始時間11162は、スロットと定めた時間の開始時刻を示す情報である。終了時刻11163は、スロットと定めた時刻の終了時刻を示す情報である。実行対象11164は、該当するスロットで実行許可されている機能グループを示す情報である。
(iii)状況B03のスロット設計1117
スロットID11171は、スロットを一意に識別・特定できる識別情報である。開始時間11172は、スロットと定めた時間の開始時刻を示す情報である。終了時刻11173は、スロットと定めた時刻の終了時刻を示す情報である。実行対象11174は、該当するスロットで実行許可されている機能グループを示す情報である。
スロットID11171は、スロットを一意に識別・特定できる識別情報である。開始時間11172は、スロットと定めた時間の開始時刻を示す情報である。終了時刻11173は、スロットと定めた時刻の終了時刻を示す情報である。実行対象11174は、該当するスロットで実行許可されている機能グループを示す情報である。
第1の実施形態では、一例として、時分割制御のシステム周期を50msとしている。システム周期とは前述のスロット設計に基づいて繰り返し実行される周期である。例えば、スロットID11151が「1」のスロットは、開始時刻11152が0であるため、0ms目、50ms目、100ms目、・・・、というように、50ms毎に実行される。
また、状況A01において、スロット2と4の間に、空き時間(待機時間)が設けられている。この空き時間は、情報AtoB02において、スロット3が割り当てられている。さらに、同様に、状況B03では、スロット1と2の間に、空き時間(待機時間)が設けられている。
<タスクスケジューリング>
図9は、第1の実施形態によるタスクのスケジューリング例を示す図である。当該スケジューリング例は、図8のスロット設計に基づいてなされたものである。図8は、時分割(時間分離)パーティショニングによるタスクスケジューリングについて示している。
図9は、第1の実施形態によるタスクのスケジューリング例を示す図である。当該スケジューリング例は、図8のスロット設計に基づいてなされたものである。図8は、時分割(時間分離)パーティショニングによるタスクスケジューリングについて示している。
状況A走行モード0021では、スロットID1において、タスクID1および2のタスク(共通機能グループのタスク)が実行され、スロットID2において、タスクID3のタスク(状況A向け機能グループのタスク)が実行され、スロットIDおいて、タスクID5のタスク(システムグループのタスク)が実行される。システム周期11155は50msである。
機能更新モード0022では、スロットID1において、タスクID1と2のタスク(共通機能グループのタスク)が実行され、スロットID2において、タスクID3のタスク(状況A向け機能グループのタスク)が実行され、スロットID3において、タスクID4(状況B向け機能グループのタスク)のタスクが実行され、スロットID4において、タスクID5(システムグループのタスク)が実行される。システム周期11165は50msである。スロットID3では、デッドライン判定が無効(デッドライン監視がOFF)になっているため、タスクID4のタスクが初期化処理を実行する。そのスロット時間以内に終了しない場合、初期化処理は、スロット終了時に中断されるが、次のスロット開始時刻に再開される。
状況B走行モード0023では、スロットID1において、タスクID1と2のタスク(共通機能グループのタスク)が実行され、スロットID3において、タスクID4のタスク(状況B向け機能グループのタスク)が実行され、スロットID4において、タスクID5のタスク(システムグループのタスク)が実行される。システム周期11175は、上述と同様に、50msである。
<メモリ保護設定>
図10は、本実施形態におけるメモリ保護設定の例を示す図である。メモリ保護設定は、表形式で実現され(ただし、表形式に限定されない)、対象となる機能グループの名称(種別であってもよい)を示す機能グループ411、421、および431と、対応する機能グループがアクセスできるメモリ領域を示すアクセス可能領域412、422、および432と、対応する機能グループがアクセスできないメモリ領域を示すアクセス不可領域413、423、および433と、を構成項目として有している。
図10は、本実施形態におけるメモリ保護設定の例を示す図である。メモリ保護設定は、表形式で実現され(ただし、表形式に限定されない)、対象となる機能グループの名称(種別であってもよい)を示す機能グループ411、421、および431と、対応する機能グループがアクセスできるメモリ領域を示すアクセス可能領域412、422、および432と、対応する機能グループがアクセスできないメモリ領域を示すアクセス不可領域413、423、および433と、を構成項目として有している。
状況A01、状況AtoB、および状況B03において、アクセス可能領域412、422、および432は、書き込み、読み出し、関数実行が許可されている領域を示す。アクセス不可領域413、423、および433は、データの書き込み、データの読み出し、関数実行が許可されていない領域を示す。
なお、本実施形態では、アクセス可能領域412、422および432とアクセス不可領域413、423、および433の2つ(2種類)でメモリアクセスを管理しているが、これに限らない。例えば、限定アクセス可能領域として、データの読み出しのみ許可されている領域を設定できるようにしてもよいし、これにも限らない。例えば、各状況において、個別機能グループ(例えば、状況A向け機能グループおよび状況B向け機能グループ)に割り当てられたメモリアドレス空間(領域)に対しては、個別機能グループの各タスクの実行、書き込み、読み出しが許可されているが、共通機能グループのタスクは読み出しのみ許可されるように構成してもよい。
<メモリマップ>
図11は、本実施形態におけるメモリマップの例を示す図である。図11の例では、ECU-A11が使用するメモリは、4つ領域(領域AからD)に分割されている(空間分離)。ただし、本実施形態によるメモリマップでは、非特許文献1とは異なり、各領域にアクセスできる機能グループが固定となっていない。例えば、外部からの指令に従って、ECU-A11が各機能グループについて使用するメモリ領域を割り当てることも可能である(例えば、第2の実施形態参照)。
図11は、本実施形態におけるメモリマップの例を示す図である。図11の例では、ECU-A11が使用するメモリは、4つ領域(領域AからD)に分割されている(空間分離)。ただし、本実施形態によるメモリマップでは、非特許文献1とは異なり、各領域にアクセスできる機能グループが固定となっていない。例えば、外部からの指令に従って、ECU-A11が各機能グループについて使用するメモリ領域を割り当てることも可能である(例えば、第2の実施形態参照)。
状況A01のメモリマップ51では、共通機能グループ511が領域A517にマッピングされ、共有メモリ領域512と空きメモリ領域513が領域B518にマッピングされ、状況A向け機能グループ514と空きメモリ領域515が領域C519にマッピングされ、空きメモリ領域516が領域D510にマッピングされている。
状況AtoB02のメモリマップ52では、共通機能グループ5201が領域A5208にマッピングされ、共有メモリ領域5202と空きメモリ領域5203が領域B5209にマッピングされ、状況A向け機能グループ5204と空きメモリ領域5205が領域C5210にマッピングされ、状況B向け機能グループ5206と空きメモリ領域5207が領域D5211にマッピングされている。
状況B03のメモリマップ53では、共通機能グループ531が領域A537にマッピングされ、共有メモリ領域532と空きメモリ領域533が領域B538にマッピングされ、空きメモリ領域534が領域C539にマッピングされ、状況B向け機能グループ535と空きメモリ領域536が領域D530にマッピングされている。
<走行計画生成処理>
図12は、走行計画部1101よる走行計画生成処理を説明するためのフローチャートである。ここでは、走行計画部1101を動作主体としているが、走行計画部1101はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
図12は、走行計画部1101よる走行計画生成処理を説明するためのフローチャートである。ここでは、走行計画部1101を動作主体としているが、走行計画部1101はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
ステップ1201において、走行計画部1101は、周辺状況に応じた走行軌道の候補を算出し、保存する。周辺状況は、例えば、カメラによって撮像された画像とポイントクラウド情報を用いて周辺認識1部1104によって演算される。周辺状況の情報としては、例えば、前方の車両の有無やその距離、道路の車線の情報、周辺の地物の情報などである。
<走行軌道決定処理>
図13は、判断機能部1102による走行軌道決定処理を説明するためのフローチャートである。ここでは、判断機能部1102を動作主体としているが、判断機能部1102はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
図13は、判断機能部1102による走行軌道決定処理を説明するためのフローチャートである。ここでは、判断機能部1102を動作主体としているが、判断機能部1102はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
(i)ステップ1301
判断機能部1102は、走行計画生成処理(図12)で得られた走行軌道の候補から採用する走行軌道を決定する。
判断機能部1102は、走行計画生成処理(図12)で得られた走行軌道の候補から採用する走行軌道を決定する。
(ii)ステップ1302
判断機能部1102は、ステップ1301で決定した走行軌道を、ネットワークバス13を介してECU-A11の外部(例えば、ECU-B12や各ECUを制御する制御装置)に送信する。
判断機能部1102は、ステップ1301で決定した走行軌道を、ネットワークバス13を介してECU-A11の外部(例えば、ECU-B12や各ECUを制御する制御装置)に送信する。
<共通初期化処理>
図14は、共通初期化部1103による共通初期化処理を説明するためのフローチャートである。ここでは、共通初期化部1103を動作主体としているが、共通初期化部1103はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
図14は、共通初期化部1103による共通初期化処理を説明するためのフローチャートである。ここでは、共通初期化部1103を動作主体としているが、共通初期化部1103はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
(i)ステップ1401
共通初期化部1103は、走行計画部1101と判断機能部1102の初期化を実施する。
共通初期化部1103は、走行計画部1101と判断機能部1102の初期化を実施する。
(ii)ステップ1402
共通初期化部1103は、パーティションを有効にする。つまり、メモリ保護(空間的分離:図11)と時分割スケジューリングのデッドライン判定(時間的分離:図9)を有効にする。
共通初期化部1103は、パーティションを有効にする。つまり、メモリ保護(空間的分離:図11)と時分割スケジューリングのデッドライン判定(時間的分離:図9)を有効にする。
なお、時分割スケジューリングは、CPUがシングルコアの場合に行われるが、CPUがマルチコアの場合には、例えば共通機能グループのプログラムと個別機能グループのプログラムを異なるコアに割り当てることにより時間分離が実現されることになる。
(iii)ステップ1403
共通初期化部1103は、現在の状況に応じた機能の実行許可イベントを発行する。
共通初期化部1103は、現在の状況に応じた機能の実行許可イベントを発行する。
(iv)ステップ1404
共通初期化部1103は、時分割スケジューリングを開始する。具体的には、時分割制御部1110を実行するためにタイマをセットする。
共通初期化部1103は、時分割スケジューリングを開始する。具体的には、時分割制御部1110を実行するためにタイマをセットする。
<周辺認識処理1>
図15は、周辺認識1部1104による周辺認識処理を説明するためのフローチャートである。ここでは、周辺認識1部1104を動作主体としているが、周辺認識1部1104はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
図15は、周辺認識1部1104による周辺認識処理を説明するためのフローチャートである。ここでは、周辺認識1部1104を動作主体としているが、周辺認識1部1104はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
(i)ステップ1501
周辺認識1部1104は、状況A固有初期化部1105に対して、状況A固有初期化処理を実行するように命令する。なお、ステップ1501の詳細は後述する(図16参照)。
周辺認識1部1104は、状況A固有初期化部1105に対して、状況A固有初期化処理を実行するように命令する。なお、ステップ1501の詳細は後述する(図16参照)。
(ii)ステップ1502
状況A固有初期化処理が完了すると、周辺認識1部1104は、状況Aに適したアルゴリズムを用いて、受信した画像とポイントクラウドを解析し、周囲の状況を認識する。
状況A固有初期化処理が完了すると、周辺認識1部1104は、状況Aに適したアルゴリズムを用いて、受信した画像とポイントクラウドを解析し、周囲の状況を認識する。
(iii)ステップ1503
周辺認識1部1104は、認識結果を周辺情報としてメモリ(図示せず)に保存する。
周辺認識1部1104は、認識結果を周辺情報としてメモリ(図示せず)に保存する。
<状況A固有初期化処理>
図16は、状況A固有初期化部1105による状況A固有初期化処理を説明するためのフローチャートである。ここでは、状況A固有初期化部1105を動作主体としているが、状況A固有初期化部1105はプログラムで実現されるので、ECUA-11を動作主体としてもよい。なお、本実施形態では、初期化処理には2種類ある。1つはエンジンを掛けたとき(ステップ15016)、もう1つは走行中に状況が変化したとき(状況Aから状況AtoBになったとき)である。
図16は、状況A固有初期化部1105による状況A固有初期化処理を説明するためのフローチャートである。ここでは、状況A固有初期化部1105を動作主体としているが、状況A固有初期化部1105はプログラムで実現されるので、ECUA-11を動作主体としてもよい。なお、本実施形態では、初期化処理には2種類ある。1つはエンジンを掛けたとき(ステップ15016)、もう1つは走行中に状況が変化したとき(状況Aから状況AtoBになったとき)である。
(i)ステップ15011
状況A固有初期化部1105は、パーティションが有効中であるか、即ち空間分離(メモリ保護)および時間分離(時分割スケジューリング)が有効であるか判定する。パーティションが有効中(時分割スケジューリング中(走行中))である場合(ステップ15011でYesの場合)、処理はステップ15012に移行する。パーティションが有効中でない場合(例えば、エンジンを掛けたとき:ステップ15011でNoの場合)、処理はステップ15016に移行する。
状況A固有初期化部1105は、パーティションが有効中であるか、即ち空間分離(メモリ保護)および時間分離(時分割スケジューリング)が有効であるか判定する。パーティションが有効中(時分割スケジューリング中(走行中))である場合(ステップ15011でYesの場合)、処理はステップ15012に移行する。パーティションが有効中でない場合(例えば、エンジンを掛けたとき:ステップ15011でNoの場合)、処理はステップ15016に移行する。
(ii)ステップ15012
状況A固有初期化部1105は、状況Aで実行される機能グループのデッドライン監視をOFFに設定する。つまり、初期化処理時には、デッドラインタスクは実行されない。
状況A固有初期化部1105は、状況Aで実行される機能グループのデッドライン監視をOFFに設定する。つまり、初期化処理時には、デッドラインタスクは実行されない。
(iii)ステップ15013
状況A固有初期化部1105は、周辺認識1部1104の初期化を実施する。
状況A固有初期化部1105は、周辺認識1部1104の初期化を実施する。
(iv)ステップ15014
状況A固有初期化部1105は、実行許可イベントを待つ。待っている間、時分割スケジューリングが実行されている場合は、ディスパッチが発生する。
状況A固有初期化部1105は、実行許可イベントを待つ。待っている間、時分割スケジューリングが実行されている場合は、ディスパッチが発生する。
(v)ステップ15015
状況A固有初期化部1105は、状況Aで実行される機能グループのデッドライン監視をON(デッドライン判定を有効)にする。
状況A固有初期化部1105は、状況Aで実行される機能グループのデッドライン監視をON(デッドライン判定を有効)にする。
(vi)ステップ15016
状況A固有初期化部1105は、周辺認識1部1104の初期化を実施する。
状況A固有初期化部1105は、周辺認識1部1104の初期化を実施する。
<周辺認識処理2>
図17は、周辺認識2部1106による周辺認識処理を説明するためのフローチャートである。ここでは、周辺認識2部1106を動作主体としているが、周辺認識2部1106はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
図17は、周辺認識2部1106による周辺認識処理を説明するためのフローチャートである。ここでは、周辺認識2部1106を動作主体としているが、周辺認識2部1106はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
(i)ステップ1701
周辺認識2部1106は、状況B固有初期化部1107に対して、状況B固有初期化処理を実行するように命令する。なお、ステップ1701の詳細は後述する(図18参照)。
周辺認識2部1106は、状況B固有初期化部1107に対して、状況B固有初期化処理を実行するように命令する。なお、ステップ1701の詳細は後述する(図18参照)。
(ii)ステップ1702
状況B固有初期化処理が完了すると、周辺認識2部1104は、状況Bに適したアルゴリズムを用いて、受信した画像とポイントクラウドを解析し、周囲の状況を認識する。
状況B固有初期化処理が完了すると、周辺認識2部1104は、状況Bに適したアルゴリズムを用いて、受信した画像とポイントクラウドを解析し、周囲の状況を認識する。
(iii)ステップ1703
周辺認識2部1106は、認識結果を周辺情報としてメモリ(図示せず)に保存する。
周辺認識2部1106は、認識結果を周辺情報としてメモリ(図示せず)に保存する。
<状況B固有初期化処理>
図18は、状況B固有初期化部1107による状況B固有初期化処理を説明するためのフローチャートである。ここでは、状況B固有初期化部1107を動作主体としているが、状況B固有初期化部1107はプログラムで実現されるので、ECUA-11を動作主体としてもよい。なお、本実施形態では、初期化処理には2種類ある。1つはエンジンを掛けたとき(ステップ17016)、もう1つは走行中に状況が変化したとき(状況Bから状況AtoBになったとき)である。
図18は、状況B固有初期化部1107による状況B固有初期化処理を説明するためのフローチャートである。ここでは、状況B固有初期化部1107を動作主体としているが、状況B固有初期化部1107はプログラムで実現されるので、ECUA-11を動作主体としてもよい。なお、本実施形態では、初期化処理には2種類ある。1つはエンジンを掛けたとき(ステップ17016)、もう1つは走行中に状況が変化したとき(状況Bから状況AtoBになったとき)である。
(i)ステップ17011
状況B固有初期化部1107は、パーティションが有効中であるか、即ち空間分離(メモリ保護)および時間分離(時分割スケジューリング)が有効であるか判定する。パーティションが有効中(時分割スケジューリング中(走行中))である場合(ステップ15011でYesの場合)、処理はステップ17012に移行する。パーティションが有効中でない場合(例えば、エンジンを掛けたとき:ステップ17011でNoの場合)、処理はステップ17016に移行する。
状況B固有初期化部1107は、パーティションが有効中であるか、即ち空間分離(メモリ保護)および時間分離(時分割スケジューリング)が有効であるか判定する。パーティションが有効中(時分割スケジューリング中(走行中))である場合(ステップ15011でYesの場合)、処理はステップ17012に移行する。パーティションが有効中でない場合(例えば、エンジンを掛けたとき:ステップ17011でNoの場合)、処理はステップ17016に移行する。
(ii)ステップ17012
状況B固有初期化部1107は、状況Bで実行される機能グループのデッドライン監視をOFFに設定する。つまり、初期化処理時には、デッドラインタスクは実行されない。
状況B固有初期化部1107は、状況Bで実行される機能グループのデッドライン監視をOFFに設定する。つまり、初期化処理時には、デッドラインタスクは実行されない。
(iii)ステップ17013
状況B固有初期化部1107は、周辺認識2部1106の初期化を実施する。
状況B固有初期化部1107は、周辺認識2部1106の初期化を実施する。
(iv)ステップ17014
状況B固有初期化部1107は、実行許可イベントを待つ。待っている間、時分割スケジューリングが実行されている場合は、ディスパッチが発生する。
状況B固有初期化部1107は、実行許可イベントを待つ。待っている間、時分割スケジューリングが実行されている場合は、ディスパッチが発生する。
(v)ステップ17015
状況B固有初期化部1107は、状況Bで実行される機能グループのデッドライン監視をON(デッドライン判定を有効)にする。
状況B固有初期化部1107は、状況Bで実行される機能グループのデッドライン監視をON(デッドライン判定を有効)にする。
(vi)ステップ17016
状況B固有初期化部1107は、周辺認識2部1106の初期化を実施する。
状況B固有初期化部1107は、周辺認識2部1106の初期化を実施する。
<モード変更処理>
図19は、モード変更部1108によるモード変更処理を説明するためのフローチャートである。ここでは、モード変更部1108を動作主体としているが、モード変更部1108はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
図19は、モード変更部1108によるモード変更処理を説明するためのフローチャートである。ここでは、モード変更部1108を動作主体としているが、モード変更部1108はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
(i)ステップ1901
モード変更部1108は、更新準備要求が受信しているかを判定する。ECUA-11が外部(例えば、ECUB-12や図示しない各ECUを全体制御する制御装置)から受信するのは更新準備要求あるいは更新実施要求である。
モード変更部1108は、更新準備要求が受信しているかを判定する。ECUA-11が外部(例えば、ECUB-12や図示しない各ECUを全体制御する制御装置)から受信するのは更新準備要求あるいは更新実施要求である。
更新準備要求を受信した場合(ステップ1901でYesの場合)、処理はステップ1902に移行する。更新準備要求を受信しなかった場合(ステップ1901でNoの場合:更新実施要求を受信した場合、あるいは何の要求も受信しなかった場合)、処理はステップ1905に移行する。
(ii)ステップ1902
モード変更部1108は、プログラムと設計情報を外部から受信する。本実施形態では、受信対象をプログラムとしているが、これに限らない。例えば、パラメータのみを受信し、プログラムがパラメータを変更するだけで状況変化に追従できる構成であってもよい。
モード変更部1108は、プログラムと設計情報を外部から受信する。本実施形態では、受信対象をプログラムとしているが、これに限らない。例えば、パラメータのみを受信し、プログラムがパラメータを変更するだけで状況変化に追従できる構成であってもよい。
(iii)ステップ1903
モード変更部1108は、パーティション更新部1109を呼び出してパーティションを変更する。ステップ1903の詳細については後述する(図20参照)。
モード変更部1108は、パーティション更新部1109を呼び出してパーティションを変更する。ステップ1903の詳細については後述する(図20参照)。
(iv)ステップ1904
モード変更部1108は、更新機能グループを起動する。本実施形態では状況Aから状況Bに移行する例が示されているため、状況B向け機能グループが起動されることになる。
モード変更部1108は、更新機能グループを起動する。本実施形態では状況Aから状況Bに移行する例が示されているため、状況B向け機能グループが起動されることになる。
(v)ステップ1905
モード変更部1108は、更新実施要求を受信しているかを判定する。更新実施要求を受信した場合(ステップ1905でYesの場合)、処理はステップ1906に移行する。更新実施要求を受信しなかった場合(ステップ1905でNoの場合:何の要求も受信しなかった場合)、モード変更処理は終了する。
モード変更部1108は、更新実施要求を受信しているかを判定する。更新実施要求を受信した場合(ステップ1905でYesの場合)、処理はステップ1906に移行する。更新実施要求を受信しなかった場合(ステップ1905でNoの場合:何の要求も受信しなかった場合)、モード変更処理は終了する。
(vi)ステップ1906
モード変更部1108は、実行許可イベントを発行する。
モード変更部1108は、実行許可イベントを発行する。
<パーティション更新処理>
図20は、パーティション更新部1109によるパーティション更新処理(ステップ1903の詳細)を説明するためのフローチャートである。ここでは、パーティション更新部1109を動作主体としているが、パーティション更新部1109はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
図20は、パーティション更新部1109によるパーティション更新処理(ステップ1903の詳細)を説明するためのフローチャートである。ここでは、パーティション更新部1109を動作主体としているが、パーティション更新部1109はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
(i)ステップ19031
パーティション更新部1109は、受信したプログラムを空きメモリ領域に保存し、メモリ保護を実施する。具体的には、図11における状況AtoBのときの処理である。
パーティション更新部1109は、受信したプログラムを空きメモリ領域に保存し、メモリ保護を実施する。具体的には、図11における状況AtoBのときの処理である。
(ii)ステップ19032
パーティション更新部1109はメモリ保護を実施できたかを判定する。メモリ保護ができた場合(ステップ19032でYesの場合)、処理はステップ19033に移行する。メモリ保護ができなかった場合(ステップ19032でNoの場合)、処理はステップ19036に移行する。
パーティション更新部1109はメモリ保護を実施できたかを判定する。メモリ保護ができた場合(ステップ19032でYesの場合)、処理はステップ19033に移行する。メモリ保護ができなかった場合(ステップ19032でNoの場合)、処理はステップ19036に移行する。
(iii)ステップ19033
パーティション更新部1109は、外部から送信されてきた設計情報(なお、ECU-A11内部に保持している設計情報でもよい)に基づいて、空きスロットの範囲内でスロットを設計する。例えば、空きスロットの時間から対象とするタスクの実行時間を引き、正の数である場合にはタスクの実行時間をスロットの時間とする。ただし、この方法に限定されるものではない。
パーティション更新部1109は、外部から送信されてきた設計情報(なお、ECU-A11内部に保持している設計情報でもよい)に基づいて、空きスロットの範囲内でスロットを設計する。例えば、空きスロットの時間から対象とするタスクの実行時間を引き、正の数である場合にはタスクの実行時間をスロットの時間とする。ただし、この方法に限定されるものではない。
(iv)ステップ19034
パーティション更新部1109は、スロット設計を実施できたか判定する。スロット設計が実施できた場合(ステップ19034でYesの場合)、処理はステップ19035に移行する。スロット設計が実施できなかった場合(ステップ19034でNoの場合)、処理はステップ19036に移行する。
パーティション更新部1109は、スロット設計を実施できたか判定する。スロット設計が実施できた場合(ステップ19034でYesの場合)、処理はステップ19035に移行する。スロット設計が実施できなかった場合(ステップ19034でNoの場合)、処理はステップ19036に移行する。
(v)ステップ19035
パーティション更新部1109は、動的機能更新準備環境を示すイベントをネットワークバス13に送信する。例えば、ECU-B12や外部のサーバ(図示せず)が当該イベントを受信し、状況B走行モードの更新実施要求をECU-A11に送信する。
パーティション更新部1109は、動的機能更新準備環境を示すイベントをネットワークバス13に送信する。例えば、ECU-B12や外部のサーバ(図示せず)が当該イベントを受信し、状況B走行モードの更新実施要求をECU-A11に送信する。
(vi)ステップ19036
パーティション更新部1109は、動的機能更新エラーを示すイベントをネットワークバス13に送信する。この場合、ユーザへの注意喚起のため、動的機能更新がエラーとなったことが表示部の画面上に表示されるようにしてもよい。
パーティション更新部1109は、動的機能更新エラーを示すイベントをネットワークバス13に送信する。この場合、ユーザへの注意喚起のため、動的機能更新がエラーとなったことが表示部の画面上に表示されるようにしてもよい。
<時分割制御処理>
図21は、時分割制御部1110による時分割制御処理を説明するためのフローチャートである。ここでは、時分割制御部1110を動作主体としているが、時分割制御部1110はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
図21は、時分割制御部1110による時分割制御処理を説明するためのフローチャートである。ここでは、時分割制御部1110を動作主体としているが、時分割制御部1110はプログラムで実現されるので、ECUA-11を動作主体としてもよい。
(i)ステップ2101
時分割制御部1110は、現スロットの前のスロット(スロットIDが1つ前のスロット)の処理が終了しているか判断する。前のスロットの処理が終了している場合(ステップ2101でYesの場合:当該スロットについて最初の実行の場合)、処理はステップ2106に移行する。前のスロットの処理が終了していない場合(ステップ2101でNoの場合)、処理はステップ2102に移行する。
時分割制御部1110は、現スロットの前のスロット(スロットIDが1つ前のスロット)の処理が終了しているか判断する。前のスロットの処理が終了している場合(ステップ2101でYesの場合:当該スロットについて最初の実行の場合)、処理はステップ2106に移行する。前のスロットの処理が終了していない場合(ステップ2101でNoの場合)、処理はステップ2102に移行する。
(ii)ステップ2102
時分割制御部1110は、対象タスクのデッドライン判定が有効であるか(デッドライン監視がONか)を判定する。デッドライン判定が有効である場合(ステップ2102でYesの場合)、処理はステップ2103に移行する。デッドライン判定が無効である場合(ステップ2102でNoの場合)、処理はステップ2104に移行する。
時分割制御部1110は、対象タスクのデッドライン判定が有効であるか(デッドライン監視がONか)を判定する。デッドライン判定が有効である場合(ステップ2102でYesの場合)、処理はステップ2103に移行する。デッドライン判定が無効である場合(ステップ2102でNoの場合)、処理はステップ2104に移行する。
(iii)ステップ2103
時分割制御部1110は、前スロットにおける未終了の処理を強制停止させる。スロットの終端に来たにも拘らず処理が終了していないときには、そのままその未了の処理を実行し続けると次の処理のために使うCPU(プロセッサ)を使ってしまう。また、この段階ではパーティショニングがされていないため、未終了の処理を強制終了させる。例えば、状況AtoBになったとき、最初は初期化処理が実行されるが、初期化処理は、図6に示されるように、通常の処理も処理時間が長くなることが多い。このため、初期化処理が実行周期(例えば、50ms)の間に終了しないことがある。この未終了という事象は処理が異常であったから発生したわけではないため、未終了の処理は強制停止されることになる。
時分割制御部1110は、前スロットにおける未終了の処理を強制停止させる。スロットの終端に来たにも拘らず処理が終了していないときには、そのままその未了の処理を実行し続けると次の処理のために使うCPU(プロセッサ)を使ってしまう。また、この段階ではパーティショニングがされていないため、未終了の処理を強制終了させる。例えば、状況AtoBになったとき、最初は初期化処理が実行されるが、初期化処理は、図6に示されるように、通常の処理も処理時間が長くなることが多い。このため、初期化処理が実行周期(例えば、50ms)の間に終了しないことがある。この未終了という事象は処理が異常であったから発生したわけではないため、未終了の処理は強制停止されることになる。
(iv)ステップ2104
時分割制御部1110は、前スロットにおける未終了の処理を異常停止させる(例えば、デッドラインオーバしてしまったため、異常と判断し処理を停止させる)。
時分割制御部1110は、前スロットにおける未終了の処理を異常停止させる(例えば、デッドラインオーバしてしまったため、異常と判断し処理を停止させる)。
(v)ステップ2105
時分割制御部1110は、デッドラインミスを通知するイベントをネットワークバス13に送信する。これにより、例えば、他のECU(ECU-B12)や各ECUの全体制御を実行する制御装置は、異常停止のタスクを認識することができる。
時分割制御部1110は、デッドラインミスを通知するイベントをネットワークバス13に送信する。これにより、例えば、他のECU(ECU-B12)や各ECUの全体制御を実行する制御装置は、異常停止のタスクを認識することができる。
(vi)ステップ2106
時分割制御部1110は、スロット設計表に基づいて次のスロットで実行する特定のタスクを指定スケジューリングで起動する。前回強制停止の場合には、時分割制御部1110は、強制終了したタスクを再開する。ただし、前回異常停止の場合にはタスクを再度起動しない。
時分割制御部1110は、スロット設計表に基づいて次のスロットで実行する特定のタスクを指定スケジューリングで起動する。前回強制停止の場合には、時分割制御部1110は、強制終了したタスクを再開する。ただし、前回異常停止の場合にはタスクを再度起動しない。
(vii)ステップ2107
時分割制御部1110は、次のスロットの終了時間に時分割制御部1110を起動するタイマをセットする。
時分割制御部1110は、次のスロットの終了時間に時分割制御部1110を起動するタイマをセットする。
<画面表示処理>
図22は、ECU-B12の画面表示部1201より画面表示処理を説明するためのフローチャートである。ここでは、画面表示部1201を動作主体としているが、画面表示部1201はプログラムで実現されるので、ECU-B12を動作主体としてもよい。
図22は、ECU-B12の画面表示部1201より画面表示処理を説明するためのフローチャートである。ここでは、画面表示部1201を動作主体としているが、画面表示部1201はプログラムで実現されるので、ECU-B12を動作主体としてもよい。
(i)ステップ2201
画面表示部1201は、ECU-A11の時分割制御部1110から受信したデッドラインミスイベントに基づいて画面にエラーを表示する。
画面表示部1201は、ECU-A11の時分割制御部1110から受信したデッドラインミスイベントに基づいて画面にエラーを表示する。
(ii)ステップ2202
画面表示部1201は、ECU-A11のパーティション更新部1109から受信した動的機能更新エラーイベントに基づいて画面にエラーを表示する。
画面表示部1201は、ECU-A11のパーティション更新部1109から受信した動的機能更新エラーイベントに基づいて画面にエラーを表示する。
本実施形態ではエラー時に画面表示を行っているが、これに限らない。システムを安全に停止するようなフェールセーフを行ってもよい。また、図示しないサーバにこれを通知し、再度実行してもよいが、これに限られるわけではない。
<更新準備指示処理>
図23は、ECU-B12の更新準備指示部1202による更新準備指示処理を説明するためのフローチャートである。ここでは、更新準備指示部1202を動作主体としているが、更新準備指示部1202はプログラムで実現されるので、ECU-B12を動作主体としてもよい。
図23は、ECU-B12の更新準備指示部1202による更新準備指示処理を説明するためのフローチャートである。ここでは、更新準備指示部1202を動作主体としているが、更新準備指示部1202はプログラムで実現されるので、ECU-B12を動作主体としてもよい。
(i)ステップ2301
更新準備指示部1202は、状況が遷移状態(境界)にあるとき(例えば、状況AtoBのとき、あるいは状況BtoAのとき)に、更新準備要求をネットワークバス13に送信する。
更新準備指示部1202は、状況が遷移状態(境界)にあるとき(例えば、状況AtoBのとき、あるいは状況BtoAのとき)に、更新準備要求をネットワークバス13に送信する。
(ii)ステップ2302
更新準備指示部1202は、ネットワークバス13を介して更新プログラムと設計情報をECU-A11に送信し、ECU-A11がそれらを利用できるようにする。
更新準備指示部1202は、ネットワークバス13を介して更新プログラムと設計情報をECU-A11に送信し、ECU-A11がそれらを利用できるようにする。
<更新実施指示処理>
図24は、ECU-B12の更新実施指示部1203による更新実施指示処理を説明するためのフローチャートである。ここでは、更新実施指示部1203を動作主体としているが、更新実施指示部1203はプログラムで実現されるので、ECU-B12を動作主体としてもよい。
図24は、ECU-B12の更新実施指示部1203による更新実施指示処理を説明するためのフローチャートである。ここでは、更新実施指示部1203を動作主体としているが、更新実施指示部1203はプログラムで実現されるので、ECU-B12を動作主体としてもよい。
(i)ステップ2401
更新実施指示部1203は、動的機能更新準備の完了イベントを受信したかを判定する。動的機能更新準備の完了イベントを受信している場合(ステップ2401でYesの場合)、処理はステップ2402に移行する。動的機能更新準備の完了イベントを受信していない場合(ステップ2401でNoの場合)、更新実施指示処理は終了する。
更新実施指示部1203は、動的機能更新準備の完了イベントを受信したかを判定する。動的機能更新準備の完了イベントを受信している場合(ステップ2401でYesの場合)、処理はステップ2402に移行する。動的機能更新準備の完了イベントを受信していない場合(ステップ2401でNoの場合)、更新実施指示処理は終了する。
(ii)ステップ2402
更新実施指示部1203は、状況が切り替わったとき(例えば、状況AtoBから状況Bに切り替わったとき、あるいは状況BtoAから状況Aに切り替わったとき)に、ネットワークバス13を介して更新実施要求をECU-A11に送信する。
更新実施指示部1203は、状況が切り替わったとき(例えば、状況AtoBから状況Bに切り替わったとき、あるいは状況BtoAから状況Aに切り替わったとき)に、ネットワークバス13を介して更新実施要求をECU-A11に送信する。
<第1の実施形態のまとめ>
第1の本実施形態によれば、機能グループ単位で更新が可能となるため、ハードウェアリソースを節約できる。また、状況に応じて適した機能グループを選択し、車両走行が可能となるため、安全で快適な走行が可能となる。
第1の本実施形態によれば、機能グループ単位で更新が可能となるため、ハードウェアリソースを節約できる。また、状況に応じて適した機能グループを選択し、車両走行が可能となるため、安全で快適な走行が可能となる。
(2)第2の実施形態
<更新機能グループのタスク情報とタスク構成>
図25は、第2の実施形態の、状況AtoB02における更新機能グループのタスク情報2112と状況B03におけるタスク情報2114の例を示す図である。構成項目は第1の実施形態と同様である。なお、図25では、状況Aのタスク情報は第1の実施形態と同じであるため、省略されている(図5参照)。
<更新機能グループのタスク情報とタスク構成>
図25は、第2の実施形態の、状況AtoB02における更新機能グループのタスク情報2112と状況B03におけるタスク情報2114の例を示す図である。構成項目は第1の実施形態と同様である。なお、図25では、状況Aのタスク情報は第1の実施形態と同じであるため、省略されている(図5参照)。
(i)状況AtoB02において、タスク情報2112のタスク名21121は、実行する機能のタスクの名称を示している。例えば、周辺認識2タスクは周辺認識2部1106を実行する。
タスクID21122は、タスクを識別可能なIDを示す。実行周期21123はタスクを起動する周期を示す。単位はミリ秒である。
タスクID21122は、タスクを識別可能なIDを示す。実行周期21123はタスクを起動する周期を示す。単位はミリ秒である。
タスク優先度21124は、タスクの優先度を示す。ただし、スケジューリングがEDF(Earliest Deadline First)の場合には、タスク優先度は設定されない(表には数値は入力されない)。通常の実行時間21125は、初期化処理終了後の通常タスクの実行時間を示す。初期化実行時間21126は、初期化処理の実行時間を示す。
機能グループ21127は、タスクが所属する機能グループを示す。状況B向け機能グループは状況Bで実行される機能グループを意味する。スケジューリング21118は、タスクが実行されるスケジューリングポリシーを示す。
第2の実施形態では、第1の実施形態と比べて、初期化実行時間21126が短く設定されている。
第2の実施形態では、第1の実施形態と比べて、初期化実行時間21126が短く設定されている。
(ii)状況B03において、第2の実施形態に係る更新後(状況B03)のタスク構成2114におけるタスク名21141は、実行する機能をタスクの名称を示している。例えば、走行計画タスクは走行計画部1101を、判断機能タスクは判断機能部1102を、周辺認識2タスクは周辺認識2部1106を、モード変更タスクはモード変更部1108を、それぞれ実行する。
タスクID21142は、タスクを識別可能なIDを示す。実行周期21143は、タスクを起動する周期を示す。単位はミリ秒である。タスク優先度21144は、タスクの優先度を示す。
通常の実行時間21145は、初期化終了後の通常タスクの実行時間を示す。初期化実行時間21146は、初期化処理の実行時間を示す。第2の実施形態では通常実行時間と初期化実行時間を、最長の実行時間を設定することを想定しているが、これに限らない。例えば、最長の実行時間にマージンを加えたものであってもよい。ただし、これに限られるわけではない。
機能グループ21147は、タスクが所属する機能グループを示す。スケジューリング21148は、タスクが実行されるスケジューリングポリシーを示す。
<スロット設計>
図26は、第2の実施形態によるスロット設計の例を示す図である。構成項目は第1の実施形態と同様である。以下、各状況に対応したスロット設計について説明する。
図26は、第2の実施形態によるスロット設計の例を示す図である。構成項目は第1の実施形態と同様である。以下、各状況に対応したスロット設計について説明する。
(i)状況A01において、スロット設計表2115のスロットID21151は、スロットを識別可能なIDを示す。開始時間21152は、スロットと定めた時間の開始時刻を示す。終了時刻21153は、スロットと定めた時刻の終了時刻を示す。実行対象21154は、該当のスロットで実行許可されている機能グループを示す。
(ii)状況AtoB02において、スロット設計表2116のスロットID21161は、スロットを識別可能なIDを示す。開始時間21162は、スロットと定めた時間の開始時刻を示す。終了時刻21163は、スロットと定めた時刻の終了時刻を示す。実行対象21164は、該当のスロットで実行許可されている機能グループを示す。
(iii)状況B03において、スロット設計表2117のスロットID21171は、スロットを識別可能なIDを示す。開始時間21172はスロットと定めた時間の開始時刻を示す。終了時刻21173はスロットと定めた時刻の終了時刻を示す。実行対象21174は該当のスロットで実行許可されている機能グループを示す。実施の形態2は実施の形態1の差は、状況AtoB02において状態B向け機能グループが実行されていない点である。
<タスクスケジューリング>
図27は、第2の実施形態によるタスクスケジューリングの例を示す図である。以下、各状況に対応したタスクスケジューリングについて説明する。
図27は、第2の実施形態によるタスクスケジューリングの例を示す図である。以下、各状況に対応したタスクスケジューリングについて説明する。
(i)状況A走行モード0021では、ID=1のスロットにおいて、ID=1および2のタスクが実行される。また、ID=2のスロットにおいて、ID=3のタスクが実行される。さらに、ID=3のスロットにおいて、ID=5のタスクが実行される。システム周期21150は50msに設定されている。
(ii)状況AtoB機能更新モード0022では、ID=1のスロットにおいて、ID=1および2のタスクが実行される。また、ID=2のスロットにおいて、ID=3のタスクが実行される。さらに、ID=3のスロットにおいて、ID=5のタスクが実行される。この場合も、システム周期11165は50msに設定されている。
(iii)状況B走行モード0023では、ID=1のスロットにおいて、ID=1および2のタスクが実行される。また、ID=2のスロットにおいて、ID=4のタスクが実行される。この場合も、システム周期11175は50msn設定されている。
<第2の実施形態のまとめ>
第2の実施形態によれば、異なる状況における同じスロットの時間において、異なる機能グループを動作させることが可能となる、したがって、ハードウェアリソースを節約できる。また、初期化処理の時間が短い際にはデッドラインを有効のまま、機能更新が可能になり、煩雑な設計を回避可能となる。
第2の実施形態によれば、異なる状況における同じスロットの時間において、異なる機能グループを動作させることが可能となる、したがって、ハードウェアリソースを節約できる。また、初期化処理の時間が短い際にはデッドラインを有効のまま、機能更新が可能になり、煩雑な設計を回避可能となる。
(3)変形例
第1および第2の実施形態によると、シングルコアにおいてタイムパーティションを実現するために時分割スケジューリングを使用したが、これに限らない。例えば、マルチコアシステムにおいて、継続する機能グループと更新する機能グループを異なるコアで実行させることで、タイムパーティショニングを実現してもよい。この場合、第1および第2の実施形態と同様にメモリ保護は必要となり、モード変更部1108は継続する機能グループと同様のコアで実行され、他のコアの機能グループを更新することとなる。
第1および第2の実施形態によると、シングルコアにおいてタイムパーティションを実現するために時分割スケジューリングを使用したが、これに限らない。例えば、マルチコアシステムにおいて、継続する機能グループと更新する機能グループを異なるコアで実行させることで、タイムパーティショニングを実現してもよい。この場合、第1および第2の実施形態と同様にメモリ保護は必要となり、モード変更部1108は継続する機能グループと同様のコアで実行され、他のコアの機能グループを更新することとなる。
(4)総括
(i)本実施形態によれば、車両制御システムの制御コントローラ(ECU-A)は、複数の機能を予め決められた機能グループの単位で管理し、実行する。当該制御コントローラ(ECU-A)は、動的に機能グループ単位を変更し(パーティション更新部)、制御コントローラの外部(別のECU(ECU-B)や図示しないサーバ)から、システムの稼働環境の変化に応じて機能グループの変更を指示する機能グループ変更実施要求を受信し、当該機能グループ変更実施要求に応答して、パーティション更新(変更)された機能グループの実行を許可する(モード変更部)ように構成されている。これにより、状況変化を検知した外部のECUやサーバからの指令にと応答してシステムの機能を変更することができ、システムの可用性と安全性を担保することができる。
(i)本実施形態によれば、車両制御システムの制御コントローラ(ECU-A)は、複数の機能を予め決められた機能グループの単位で管理し、実行する。当該制御コントローラ(ECU-A)は、動的に機能グループ単位を変更し(パーティション更新部)、制御コントローラの外部(別のECU(ECU-B)や図示しないサーバ)から、システムの稼働環境の変化に応じて機能グループの変更を指示する機能グループ変更実施要求を受信し、当該機能グループ変更実施要求に応答して、パーティション更新(変更)された機能グループの実行を許可する(モード変更部)ように構成されている。これにより、状況変化を検知した外部のECUやサーバからの指令にと応答してシステムの機能を変更することができ、システムの可用性と安全性を担保することができる。
また、制御コントローラ(ECU-Aのモード変更部)は、機能グループ変更実施要求を受信する前に、外部(別のECU(ECU-B)、図示しない車両制御システム内の全体制御装置やサーバ)から、機能グループの変更の準備を要求する機能グループ変更準備要求を受信し、当該機能グループ変更準備要求に応答して、外部(別のECU(ECU-B)、図示しない車両制御システム内の全体制御装置やサーバ)から変更すべき事項が記述された変更情報を取得し、当該変更情報に基づいて、機能グループのパーティションの変更を実行する(機能グループのパーティショニングの再設定)。このように、状況が変化してから機能グループの構成を変更するのではなく、状況変化が起こりつつある状態で機能グループの構成の変更を開始するので、実際に状況が変化した段階では即座に変化した状況に対応したシステムの機能に遷移することが可能となる。
(ii)本実施形態では、ECU-Aにおいて、空間分離および時間分離に基づいて、複数の機能のパーティショニングが実行される。具体的には、ECU-Aは、例えば、空間分離として機能グループ単位に使用するメモリ空間を別にし、時間分離として、機能グループ単位に実行する時間を別にするように構成されている。このように空間分離および時間分離によってパーティショニングを実行することにより、スロット設計の自由度を高くすることができ、ハードウェアリソースを有効に活用することができるようになる。
さらに、具体的には、機能グループは、少なくとも、複数の状況において共通に実行される機能である共通機能グループと状況に応じて実行される機能が異なる個別機能グループとを含む。そして、空間分離において、共通機能グループのメモリアドレス空間と個別機能グループのメモリアドレス空間が区別されており、共通機能グループと個別機能グループとの間のメモリ領域は共有メモリ空間を介して構成される。共通機能グループは、車両制御システムの安全性を保証する処理を実行する機能であり、個別機能グループは、車両制御システムの可用性を向上させる処理を実行する機能である。
時間分離の実現に関しては、制御コントローラにおけるプロセッサ構成をシングルコアやマルチコアとすることができる。前者の場合、時分割スケジューリングによってタイムパーティションジングが実現される。この場合、制御コントローラは、機能グループ毎にスロット(各機能に相当するタスクを実行するためのタイムスロット)を割り当てる(時分割制御部)。一方、後者の場合、共通機能グループと個別機能グループとを異なるコアプロセッサで実行し、時間分離を実現する。
(iii)時間分離でパーティショニングされる場合、制御コントローラ(ECU-A)は、更新対象である個別機能グループに含まれるタスクを更新している間に、更新対象以外の共通機能グループに含まれるタスクの処理を継続的に実行する。このようにすることにより、他のプログラムの動作に影響を与えず、状況変化に伴うシステム更新(変更)を実現することができるようになる。
(iv)時分割制御の場合、制御コントローラ(ECU-A:モード変更部)は、時分割制御によって機能グループに割り当てられているスロット以外のスロットで、パーティションを更新(パーティション更新部)した後に、更新機能グループを起動する。確実にスロットを割り当てた後に更新された機能を実行するので、システムの安全性を担保することができる。
(v)空間分離の場合、個別機能グループに対しては、実行、書き込み、および読み出しが可能となるようにメモリ空間が割り当てられ、共通機能グループやシステムグループに対しては、個別機能グループに割り当てられたメモリ空間からの読み出しが可能となるようにメモリ空間が設定される。このようにメモリ空間を設定することにより、メモリを保護することができ、システム稼働の安定性を実現することができる。
なお、機能グループ単位でのメモリ空間の割り当てとスロットの割り当てに失敗した場合に、制御コントローラ(ECU-A)は、動的機能更新エラーを示すイベントを生成し、ネットワークへ出力する。これにより、状況変化に伴うパーティショニング更新が正常に終了したかを監視することができるようになる。
(vi)時分割制御を実行する際に、機能グループに含まれるタスクについてデッドライン判定が有効であり、かつスロットの終了時に当該スロットに割り当てられたタスクが未終了の場合、制御コントローラ(ECU-A:時分割制御部)は、当該未終了のタスクを異常停止させ、デッドラインミスイベントを生成し、出力する。これにより、タスク処理が完了していない場合でも異常によって完了していないのか、あるいは単なる遅延で完了していないのか判断することができ、処理遅延に対して適切に対処することができる。
(vii)本実施形態は、ソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本開示を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
さらに、実施形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
最後に、ここで述べたプロセス及び技術は本質的に如何なる特定の装置に関連することはなく、コンポーネントの如何なる相応しい組み合わせによってでも実装できることを理解する必要がある。更に、汎用目的の多様なタイプのデバイスがここで記述した教授に従って使用可能である。ここで述べた方法のステップを実行するのに、専用の装置を構築するのが有益であることが判るかもしれない。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。本開示は、具体例に関連して記述したが、これらは、すべての観点に於いて限定の為ではなく説明の為である。本分野にスキルのある者には、本開示を実施するのに相応しいハードウェア、ソフトウェア、及びファームウエアの多数の組み合わせがあることが解るであろう。例えば、記述したソフトウェアは、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、上述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
加えて、本技術分野の通常の知識を有する者には、本開示のその他の実装がここに開示された本開示の明細書及び実施形態の考察から明らかになる。記述された実施形態の多様な態様及び/又はコンポーネントは、データを管理する機能を有するコンピュータ化ストレージシステムに於いて、単独又は如何なる組み合わせでも使用することが出来る。明細書と具体例は典型的なものに過ぎず、本開示の範囲と精神は後続する請求の範囲で示される。
01 状況A
02 状況AtoB
03 状況B
11 ECU-A
12 ECU-B
1101 走行計画部
1102 判断機能部
1103 共通初期化部
1104 周辺認識1部
1105 状況A固有初期化部
1106 周辺認識2部
1107 状況B固有初期化部
1108 モード変更部
1109 パーティション更新部
1110 時分割制御部
1201 画面表示部
1202 更新準備指示部
1203 更新実施指示部
02 状況AtoB
03 状況B
11 ECU-A
12 ECU-B
1101 走行計画部
1102 判断機能部
1103 共通初期化部
1104 周辺認識1部
1105 状況A固有初期化部
1106 周辺認識2部
1107 状況B固有初期化部
1108 モード変更部
1109 パーティション更新部
1110 時分割制御部
1201 画面表示部
1202 更新準備指示部
1203 更新実施指示部
Claims (20)
- 複数の機能を予め決められた機能グループの単位で管理し、実行する制御コントローラであって、
動的に機能グループ単位を変更するパーティション更新部と、
前記制御コントローラの外部から、システムの稼働環境の変化に応じて機能グループの変更を指示する機能グループ変更実施要求を受信し、当該機能グループ変更実施要求に応答して、前記パーティション更新部によって変更された前記機能グループの実行を許可するモード変更部と、
を備える、制御コントローラ。 - 請求項1において、
前記モード変更部は、前記機能グループ変更実施要求を受信する前に、前記制御コントローラの外部から、前記機能グループの変更の準備を要求する機能グループ変更準備要求を受信し、当該機能グループ変更準備要求に応答して、前記制御コントローラの外部から変更すべき事項が記述された変更情報を取得し、前記パーティション更新部に前記機能グループのパーティションの変更を指示し、
前記パーティション更新部は、前記変更情報に基づいて、前記機能グループのパーティショニングを再設定する、制御コントローラ。 - 請求項2において、
前記パーティション更新部は、空間分離および時間分離に基づいて、前記複数の機能のパーティショニングを実行する、制御コントローラ。 - 請求項3において、
前記パーティション更新部は、前記空間分離として、前記機能グループ単位に使用するメモリ空間を別にし、前記時間分離として、前記機能グループ単位に実行する時間を別にする、制御コントローラ。 - 請求項4において、
前記機能グループは、少なくとも、複数の状況において共通に実行される機能である共通機能グループと状況に応じて実行される機能が異なる個別機能グループとを含む、制御コントローラ。 - 請求項5において、
前記空間分離において、前記共通機能グループのメモリアドレス空間と前記個別機能グループのメモリアドレス空間が区別されており、前記共通機能グループと前記個別機能グループとの間のメモリ領域は共有メモリ空間を介して構成される、制御コントローラ。 - 請求項5において、
前記制御コントローラは、シングルコアプロセッサで構成され、
前記パーティション更新部は、前記時間分離として、時分割スケジューリングによってタイムパーティショニングを実現し、
前記制御コントローラは、さらに、前記機能グループ毎にスロットを割り当てる時分割制御部を備える、制御コントローラ。 - 請求項5において、
前記制御コントローラは、マルチコアプロセッサで構成され、
前記共通機能グループと前記個別機能グループとは異なるコアプロセッサで実行される、制御コントローラ。 - 請求項5において、
前記制御コントローラに含まれるプロセッサは、更新対象である前記個別機能グループに含まれるタスクを更新している間に、更新対象以外の前記共通機能グループに含まれるタスクの処理を継続的に実行する、制御コントローラ。 - 請求項7において、
前記モード変更部は、前記時分割制御部によって前記機能グループに割り当てられているスロット以外のスロットで、前記パーティション更新部にパーティション変更を指示し、前記パーティション更新部によるパーティション更新後、更新機能グループを起動する、制御コントローラ。 - 請求項5において、
前記パーティション更新部は、前記個別機能グループに対しては、実行、書き込み、および読み出しが可能となるように前記メモリ空間を割り当て、少なくとも前記共通機能グループに対しては、前記個別機能グループに割り当てられた前記メモリ空間からの読み出しが可能となるように前記メモリ空間を設定する、制御コントローラ。 - 請求項3において、
前記パーティション更新部は、前記機能グループ単位でのメモリ空間の割り当てとスロットの割り当てに失敗した場合に、動的機能更新エラーを示すイベントを生成し、出力する、制御コントローラ。 - 請求項7において、
前記機能グループに含まれるタスクについてデッドライン判定が有効であり、かつ前記スロットの終了時に当該スロットに割り当てられた前記タスクが未終了の場合、前記時分割制御部は、当該未終了のタスクを異常停止させ、デッドラインミスイベントを生成し、出力する、制御コントローラ。 - 請求項7において、
前記個別機能グループは、当該個別機能グループに含まれるタスクの初期化処理を実行する初期化処理部を含み、
前記初期化処理部は、前記初期化処理を実行する場合には、前記タスクのデッドライン判定を無効にし、当該タスクの初期化処理を完了させた後に前記デッドライン判定を有効にする、制御コントローラ。 - 請求項5において、
前記共通機能グループは、車両制御システムの安全性を保証する処理を実行する機能であり、
前記個別機能グループは、前記車両制御システムの可用性を向上させる処理を実行する機能である、制御コントローラ。 - 第1の制御コントローラと、
第2の制御コントローラと、を備え、
前記第1の制御コントローラは、請求項1に記載の制御コントローラであり、
前記第2の制御コントローラは、前記機能グループ変更実施要求を発行し、前記第1の制御コントローラに送信する、車両制御システム。 - 請求項16において、
前記第2の制御コントローラは、前記機能グループ変更実施要求を発行する前に、前記機能グループの変更の準備を要求する機能グループ変更準備要求を発行して前記第1の制御コントローラに送信し、
前記第1の制御コントローラの前記モード変更部は、前記第2の制御コントローラから、前記機能グループ変更準備要求を受信し、当該機能グループ変更準備要求に応答して、前記制御コントローラの外部から変更すべき事項が記述された変更情報を取得し、前記パーティション更新部に前記機能グループのパーティションの変更を指示し、
前記第1の制御コントローラの前記パーティション更新部は、前記変更情報に基づいて、前記機能グループのパーティショニングを再設定する、車両制御システム。 - 請求項17において、
前記パーティション更新部は、空間分離および時間分離に基づいて、前記複数の機能のパーティショニングを実行する、車両制御システム。 - 請求項18において、
前記第1の制御コントローラは、第1の機能の処理を実行しつつ、当該第1の機能とは異なる第2の機能を更新する、車両制御システム。 - 請求項19において、
前記機能グループは、少なくとも、複数の状況において共通に実行される機能である共通機能グループと状況に応じて実行される機能が異なる個別機能グループとを含み、
前記第1の制御コントローラは、第1の状況に応じた第1の機能グループの処理を実行しつつ、前記第1の状況とは異なる第2の状況に応じた第2の機能グループの処理を更新する、車両制御システム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP18922266.4A EP3809263A4 (en) | 2018-06-13 | 2018-06-13 | Control controller and vehicle control system |
US15/734,055 US11934865B2 (en) | 2018-06-13 | 2018-06-13 | Vehicle control system for dynamically updating system components |
JP2020525010A JP6975854B2 (ja) | 2018-06-13 | 2018-06-13 | 制御コントローラおよび車両制御システム |
PCT/JP2018/022599 WO2019239522A1 (ja) | 2018-06-13 | 2018-06-13 | 制御コントローラおよび車両制御システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2018/022599 WO2019239522A1 (ja) | 2018-06-13 | 2018-06-13 | 制御コントローラおよび車両制御システム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019239522A1 true WO2019239522A1 (ja) | 2019-12-19 |
Family
ID=68843080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/022599 WO2019239522A1 (ja) | 2018-06-13 | 2018-06-13 | 制御コントローラおよび車両制御システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US11934865B2 (ja) |
EP (1) | EP3809263A4 (ja) |
JP (1) | JP6975854B2 (ja) |
WO (1) | WO2019239522A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114454892A (zh) * | 2020-11-10 | 2022-05-10 | 丰田自动车株式会社 | 信息处理装置、方法、非暂时性存储介质以及车辆 |
WO2022218510A1 (en) * | 2021-04-13 | 2022-10-20 | Cariad Se | Method for scheduling software tasks on at least one heterogeneous processing system using a backend computer system, wherein each processing system is situated in a respective vehicle of a vehicle fleet, and control framework for at least one vehicle |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7123843B2 (ja) * | 2019-03-29 | 2022-08-23 | 日立Astemo株式会社 | 演算装置、判定方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4399987B2 (ja) | 2001-01-25 | 2010-01-20 | 株式会社デンソー | 車両統合制御におけるフェイルセーフシステム |
JP2010190673A (ja) * | 2009-02-17 | 2010-09-02 | Toyota Motor Corp | 車両用仕様変更装置 |
JP2013023098A (ja) * | 2011-07-22 | 2013-02-04 | Hitachi Ltd | 信号保安システム及び車上信号装置 |
JP2018019377A (ja) * | 2016-07-29 | 2018-02-01 | 日本電信電話株式会社 | 通信装置、設計方法及びコンピュータプログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11300958B2 (en) * | 2017-07-13 | 2022-04-12 | Waymo Llc | Sensor adjustment based on vehicle motion |
-
2018
- 2018-06-13 US US15/734,055 patent/US11934865B2/en active Active
- 2018-06-13 JP JP2020525010A patent/JP6975854B2/ja active Active
- 2018-06-13 WO PCT/JP2018/022599 patent/WO2019239522A1/ja unknown
- 2018-06-13 EP EP18922266.4A patent/EP3809263A4/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4399987B2 (ja) | 2001-01-25 | 2010-01-20 | 株式会社デンソー | 車両統合制御におけるフェイルセーフシステム |
JP2010190673A (ja) * | 2009-02-17 | 2010-09-02 | Toyota Motor Corp | 車両用仕様変更装置 |
JP2013023098A (ja) * | 2011-07-22 | 2013-02-04 | Hitachi Ltd | 信号保安システム及び車上信号装置 |
JP2018019377A (ja) * | 2016-07-29 | 2018-02-01 | 日本電信電話株式会社 | 通信装置、設計方法及びコンピュータプログラム |
Non-Patent Citations (2)
Title |
---|
"PART 1 - REQUIRED SERVICES, ARINC SPECIFICATION 653P1-3", AVIONICS APPLICATION SOFTWARE STANDARD INTERFACE, 2010 |
See also references of EP3809263A4 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114454892A (zh) * | 2020-11-10 | 2022-05-10 | 丰田自动车株式会社 | 信息处理装置、方法、非暂时性存储介质以及车辆 |
WO2022218510A1 (en) * | 2021-04-13 | 2022-10-20 | Cariad Se | Method for scheduling software tasks on at least one heterogeneous processing system using a backend computer system, wherein each processing system is situated in a respective vehicle of a vehicle fleet, and control framework for at least one vehicle |
Also Published As
Publication number | Publication date |
---|---|
US20210216361A1 (en) | 2021-07-15 |
EP3809263A4 (en) | 2021-12-29 |
EP3809263A1 (en) | 2021-04-21 |
US11934865B2 (en) | 2024-03-19 |
JPWO2019239522A1 (ja) | 2021-06-03 |
JP6975854B2 (ja) | 2021-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117260B (zh) | 一种任务调度方法、装置、设备和介质 | |
US9207929B2 (en) | Integrated system and firmware update method | |
CN109936604B (zh) | 一种资源调度方法、装置和系统 | |
WO2019239522A1 (ja) | 制御コントローラおよび車両制御システム | |
US11106454B2 (en) | Software update control device, software update control method, and recording medium having software update control program stored thereon | |
CN112052068A (zh) | 一种Kubernetes容器平台CPU绑核的方法与装置 | |
CN111399970B (zh) | 一种预留资源管理方法、装置和存储介质 | |
JP2007011491A (ja) | 情報端末、計算機資源管理方法、および仮想マシンの実行切り替え方法 | |
US20180260257A1 (en) | Pld management method and pld management system | |
JPWO2007072544A1 (ja) | 情報処理装置、計算機、リソース割り当て方法及びリソース割り当てプログラム | |
US12111733B2 (en) | Orchestrating a container-based application on a terminal device | |
CN113296926B (zh) | 一种资源分配方法、计算设备及存储介质 | |
JP2020173561A (ja) | 車載コンピュータ、車載通信システム、コンピュータ実行方法及びコンピュータプログラム | |
JP6010975B2 (ja) | ジョブ管理装置、ジョブ管理方法、及びプログラム | |
ES2802173T3 (es) | Método de planificación de ordenador virtual | |
CN109639460B (zh) | Nfv资源管理的方法和装置 | |
US9870234B2 (en) | Automatic identification of returned merchandise in a data center | |
KR100788328B1 (ko) | 그리드 컴퓨팅을 이용한 미들웨어 시스템 및 그 동작 방법 | |
WO2018127394A1 (en) | Scalable control system for a motor vehicle | |
JP6836536B2 (ja) | ストレージシステム及びio処理の制御方法 | |
JP6796040B2 (ja) | アクセス制御装置 | |
CN114157569A (zh) | 集群系统及其构建方法和构建装置 | |
CN106598908B (zh) | 计算设备及计算设备存储部件的管理方法及系统 | |
US20240036941A1 (en) | Vehicle-mounted computer, computer execution method, and computer program | |
CN114625424B (zh) | 基于硬隔离的资源重分配方法、系统和设备 |
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: 18922266 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020525010 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2018922266 Country of ref document: EP Effective date: 20210113 |