US20040133879A1 - Embedded controllers and development tool for embedded controllers - Google Patents

Embedded controllers and development tool for embedded controllers Download PDF

Info

Publication number
US20040133879A1
US20040133879A1 US10/739,222 US73922203A US2004133879A1 US 20040133879 A1 US20040133879 A1 US 20040133879A1 US 73922203 A US73922203 A US 73922203A US 2004133879 A1 US2004133879 A1 US 2004133879A1
Authority
US
United States
Prior art keywords
control
control operation
operation means
data
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/739,222
Inventor
Kentaro Yoshimura
Taizo Miyazaki
Takanori Yokoyama
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Assigned to HITACHI, LTD. reassignment HITACHI, LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MIYAZAKI, TAIZO, YOKOYAMA, TAKANORI, YOSHIMURA, KENTARY
Publication of US20040133879A1 publication Critical patent/US20040133879A1/en
Priority to US12/194,948 priority Critical patent/US8347282B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Definitions

  • the present invention relates to an embedded controller and a development tool for embedded controllers.
  • the embedded controller development tool and the development process to improve the development efficiency of the software for the embedded controller has been researched. They are required to generate automatically the source code of the software for the embedded controller and to increase the reuse of the software.
  • the interface means sets up a part of the basic management means. (or instance, Japanese Patent Application Laid-Open No. 2002-229791). Therefore, even when a part of two or more control operation means is changed, it is necessary to change the entire interface means. That is, there is a problem that the part of the interface means that should not be originally changed must be re-created.
  • An object of the present invention is to solve the above-mentioned problem, and to increase the reuse of the embedded controller.
  • An object of the present invention is to solve the above-mentioned problem and to improve the productivity of the embedded controller.
  • control operation means is described as a function in the source code of the program, the reference data used for calculation by said control operation is an argument of the function, said control data calculated by said control operation means is the argument of the function which points the return value or the address of said function, further comprising; an analyzing means which extracts the specified information from the source code of said control operation means; an interface generating means which generates said corresponding interface means every control operation means based on an analytical result of said analyzing means.
  • FIG. 1 is an explanatory drawing of the present invention.
  • FIG. 2 is a system diagram of an electronic controller for a vehicle according to one embodiment of the present invention.
  • FIG. 3 is a system diagram of the decentralized embedded controller according to one embodiment of the present invention.
  • FIG. 4 is a schematic diagram of software for the embedded controller.
  • FIG. 5 is a schematic diagram of the application software.
  • FIG. 6 is a flow chart of the task processing software.
  • FIG. 7 is a block diagram of the torque base control application.
  • FIG. 8 is an illustration of C source codes of the control software components.
  • FIG. 9 is an illustration of C source code of the interface software.
  • FIG. 10 is a view showing the definition information on the torque base control framework.
  • FIG. 11 is a flow chart of the torque base control framework.
  • FIG. 12 is a system diagram in the I/O operation part in the decentralized control system.
  • FIG. 13 is a software development process diagram for the embedded controller.
  • FIG. 14 is a view showing embedded software development means 1 .
  • FIG. 15 is a view showing embedded software development means 2 .
  • FIG. 16 is a view showing embedded software development means 3 .
  • FIG. 17 is a flow chart of the interface software automatic generation.
  • FIG. 18 is a flow chart of the control software component information extraction.
  • FIG. 19 is an interface software generation flow chart.
  • FIG. 20 is an illustration of an embedded software network notice assignment.
  • FIG. 21 is an illustration of an embedded software network notice assignment service.
  • the vehicle control controller is treated as an example of the embedded controller in this embodiment.
  • FIG. 1 shows the basic configuration of the application software to which the present invention is applied.
  • Reference numerals 1 A, . . . 1 B and 1 C designate control software components where the update logic of control variable are described. This corresponds to the control operation means in the present invention.
  • 2 A, . . . 2 B and 2 C designate the interface software which corresponds to the control software components.
  • Reference numeral 3 designates the basic logic executed in the application software, for instance, the control basic software where the order of updating the variable, that is, the execution sequence of the control software components is described. This corresponds to the control basis processing means in the present invention.
  • Reference numeral 4 is external input data.
  • the external information is obtained by measuring, for instance, by the sensor included in the hardware, or by communicating with other application softwares and controllers.
  • Reference numeral 5 designates an information output to the outside.
  • the output to the outside is executed by driving an actuator included in the hardware, or by communicating with other applications and controllers.
  • Reference numeral 6 designates the operation system which carries out the task control and the interruption management of the embedded software.
  • the software components and the interface software are associated with 1 A and 2 A, and 1 B and 2 B, respectively. Therefore, when software component 1 C is changed for instance, only the interface software 2 C is changed. Namely, the interface software 2 A and 2 B can be used without changing.
  • FIG. 2 shows the vehicle where the present invention was applied.
  • vehicle 7 has engine 8 , control unit (ECU) 10 to control engine 8 , for instance, automatic transmission (AT) 9 , control unit (ECU) 20 to control automatic transmission 9 , acceleration pedal A operated by a driver.
  • control unit (ECU) 20 can be a control unit for the throttle control, not for the automatic transmission. That is, this means the control unit other than one for an engine.
  • FIG. 3 shows the basic configuration of the decentralized control system for a vehicle.
  • the decentralized control system for a vehicle comprises: control unit (ECU) 10 including processor 13 , memory 12 , embedded software 11 , data sink 14 , data source 15 , analog input 41 for the A/D conversion output of input to e.g. an airflow sensor, digital input 42 for pulses from e.g. a crank angle sensor, analog output 51 for the voltage to drive peripheral equipment, and digital output 52 for pulses to drive the peripheral equipment; and control unit (ECU) 20 which has the same configuration as ECU 10 .
  • control unit (ECU) 10 including processor 13 , memory 12 , embedded software 11 , data sink 14 , data source 15 , analog input 41 for the A/D conversion output of input to e.g. an airflow sensor, digital input 42 for pulses from e.g. a crank angle sensor, analog output 51 for the voltage to drive peripheral equipment, and digital output 52 for pulses to drive the peripheral equipment; and control unit (ECU) 20 which has the same configuration as ECU 10 .
  • FIG. 4 shows an example of the configuration of embedded software 11 .
  • Embedded software 11 comprises application software 111 and basic software 112 .
  • Basic software 112 comprises real time operation system (RTOS) 1121 and basic input/output system (BIOS) 1122 .
  • RTOS 1121 starts the task of the time cycle and the task which synchronizes with the external input, and provides interrupt disabled processing and the call service for other tasks to application software 111 .
  • BIOS 1122 receives the demand from the application software 111 , and reads external input data 4 and outputs external output data 5 .
  • the part (BIOS) which depends on hardware in the embedded software the real-time control functions such as the interruption signal processing and the timer processing, etc.
  • the application part which depends on the controlled system such as the ignition control etc. of the engine and the gear-shift control of the transmission.
  • BIOS the part which depends on hardware in the embedded software
  • the real-time control functions such as the interruption signal processing and the timer processing, etc.
  • the application part which depends on the controlled system such as the ignition control etc. of the engine and the gear-shift control of the transmission.
  • FIG. 5 shows an example of the configuration of the application software.
  • Application software 111 comprises a task which is started at a fixed cycle like 10 ms cycle task, a task which is started in synchronization with the external signal like engine revolution synchronized task 1112 , etc. of start like cycle of ten ms task 1111 at constant cycle synchronizing with external signal, and a task executed when processor is not used like background task 1113 .
  • Each of these tasks comprises the task processing basic software and the control application.
  • the 10 ms cycle task comprises a 10 ms task processing basic software, diagnosis control 11112 , fuel correction control 11113 , torque-based control 11114 , and other controls.
  • the symbol “ . . . ” in the figure means that the control logic is not limited to the above-mentioned three kinds of logics.
  • FIG. 6 shows the operation of 10 ms task processing basic software 11111 .
  • RTOS 1121 executes the start processing of 10 ms task processing basic software 11111 .
  • step S 1 the processing of 10 ms task processing basic software 11111 is executed.
  • step S 2 an external input processing is requested to BIOS 1122 , and the latest value of the sensor which updates the input value to the airflow sensor, etc.
  • step S 2 diagnosis control 11112 is executed. Then, some controls are executed.
  • step S 3 fuel correction control 11113 is executed.
  • step S 4 torque base control 11114 is executed.
  • step 5 the external output processing is requested to BIOS 1122 , and processing is ended.
  • FIG. 7 shows a basic configuration of the torque base control application software to which the present invention is applied.
  • 1 D, 1 E, and 1 F are the control software components which the target torque, variable A, and the update logic of control variable of the throttle opening are described, respectively.
  • 2 D, . . . , 2 E and 2 F are interface software which correspond to the control software components 2 D, 2 E and 2 F, respectively.
  • 3 A is a torque base control basic software where the order of updating the variable of the control software components in the torque base control, that is, the execution sequence is described.
  • 4 is external input data obtained from BIOS 1122 . For instance, said external information is obtained by measuring by using the sensor, and communicating with other applications and controllers.
  • Reference numeral 5 designates the information output to the outside by BIOS 1122 . Said external output is executed by driving actuator or communicating with other applications and controllers.
  • Said external output is executed by driving actuator or communicating with other applications and controllers.
  • FIG. 8 shows an example of the control software component 1 F shown in FIG. 7.
  • C 11 is a header file (TVO_Calculate.h) when software component 1 to update the throttle opening (henceforth TVO) is updated is described with C language.
  • C 12 is a source file (TVO_Calculate.c) when software component 1 to update TVO is described with C language.
  • the prototype of the function to renew TVO is declared. That is, the external declaration (extern) of the function, the type (void) of the return value of the function, the function name (TVO_Calculate), the type of the input value of the function, variable name (unsigned short TargetTorque, . . .
  • unsigned short Variable_A the variable which the function updates, in a word
  • the type of the output value of the software component and the pointer of variable name (unsigned short TVO) are declared.
  • Whether the argument of the function is an input variable or an output variable is judged by whether identifier (*) to show the pointer argument is attached at the head of variable name.
  • Said output variable corresponds to the control data calculated by the control operation means in the embedded controller in the present invention.
  • Target Torque and Variable_A are variables, and Kt and Ka are constants.
  • FIG. 9 shows C source codes C 21 , C 22 , and C 23 as one example of interface software 2 F shown in FIG. 7. They correspond to the control software components explained in C 11 and C 12 of FIG. 8.
  • C 21 is variable declaration C source file (TVO.c).
  • C 22 is C header file (TVO.h) to define the variable reference instruction, and
  • C 23 is C header file (TVO_Update.h) to define the variable update instruction.
  • C 21 the variable declaration (unsigned short TVO) of TVO which is the output variable of corresponding software components C 11 and C 12 is performed.
  • C 22 the definition (#define TVO_-Get( ) TVO) of the instruction to which the variable refers and the type and the name (extern unsigned short TVO) of the variable which is the external variable declaration of TVO are performed to refer to variable TVO declared in C 21 by other interface software.
  • C 23 the instruction executed when control basic software 3 requests the update of the variable TVO is defined. That is, the described C header file is read by the instruction to refer to the input variable (#include “TVO.h”-#include “variable_A”), the instruction name to update the variable is defined (#define TVO-Update( ) ⁇ ), the function name of control software component C 12 actually called is described (TVO_Calculate . . . ), the instruction to refer to control variable which becomes an input of the function to renew TVO is called (TargetTorque Get( ) . . . variableA_Get( )), and the address of variable TVO is designated as an output of the function to which TVO is renewed (& TVO).
  • the instruction called to update the variable by software components C 11 and C 12 corresponding to interface software C 21 -C 23 is only TVO_Update( ).
  • the interface software collects input values necessary for calling the function to update the variable (TargetTorque_Get( ) . . . variableA_Get( )) and designates the variable as an output (& TVO). Then, the function to update the variable is updated and afterwards is called (TVO_Calculate( )).
  • variable when the update of the variable is required from the control basic software, the variable can be updated in the common instruction format completely considering neither the number, the type of the input value of the function described in the control software components nor variable name. Moreover, the operation of the update and the declaration of the I/O variable can be separated from the control software components, and the independence of the control software components is improved.
  • FIG. 10 shows the control basic software of the torque-based control by which engine power is controlled (hereinafter, called torque-based control framework) C 31 .
  • torque-based control framework the control software components executed in the torque-based control basic control part 3 A of FIG. 7 are defined, and the information defined by the corresponding interface software is read.
  • the variable that the simultaneity is demanded inside of the control basic software 3 is defined in C 312 .
  • the input processing, the output processing, OS service and the execution sequences of software components executed by the control basic software are defined in C 313 .
  • FIG. 11 shows the executing processing in the torque-based control basic control part 3 .
  • the execution sequence of control basic software 3 is defined in C 313 of FIG. 10.
  • step S 31 interrupt disabled processing (OS service) is called, and the task execution which synchronizes with the external signal is prohibited. As a result, the simultaneity of the input value comes to be kept.
  • step S 32 engine speed is read from external input data 4 .
  • step S 33 the opening of the accelerator is read from external input data 4 .
  • the interrupt disabled release processing (OS service) is called.
  • step S 35 the update of the variable to designate the target torque is demanded (software component execution).
  • step S 36 the update of the variable to designate the target throttle opening is demanded (software component execution).
  • step S 37 the target throttle opening is instructed to the external electronically controlled throttle (external output processing) and processing are ended.
  • control software components 1 D, . . . , 1 E and 1 F shown in FIG. 7 is frequently changed to adjust the control characteristic like the debugging of the control logic and the time constant, etc.
  • FIG. 12 shows one example of the configuration of the BIOS interface software.
  • Numeral 11321 designates BIOS interface software corresponding to the airflow sensor input, 11322 BIOS interface software corresponding to the crank angle input value, 11323 BIOS interface software corresponding to injection quantity, and 11324 BIOS interface software corresponding to the target throttle opening.
  • the configuration of BIOS interface software is similar to that of the interface software shown in FIG. 9.
  • the external input value can be updated in the common instruction format completely considering neither the number, the type of the input value of the function described in the control software components nor variable name.
  • the operation of the update and the declaration of the I/O variable can be separated from the control software components, and the independence of the control software components is improved. It is similar also for an external output. Moreover, the operation of the update and the declaration of the I/O variable can be separated from BIOS, and the independence of BIOS is improved.
  • FIG. 13 The development process of the embedded software is shown in FIG. 13.
  • the tool shown in FIG. 13 includes the program, the software, and the device.
  • Control model 62 is constructed by control logic design tool 61 .
  • Embedded software source code 64 is made by embedded software development tool 63 based on control model 62 . Further, binary file 66 of the embedded software is made by using source code compilation tool 65 . Moreover, the embedded software is written in control unit (ECU) 10 by using software write tool 67 .
  • FIG. 14 shows the embedded software development tool 63 A as one example of embedded software development tool 63 .
  • Software components 1 are generated from control model 62 by the software component generation tool 631 A.
  • the interface software generation tool 632 A generates corresponding interface software 2 referring to generated software components 1 .
  • FIG- 15 shows embedded software development tool 63 B as one example of embedded software development tool 63 .
  • Software components 1 are generated from control model 62 by software component generation tool 631 B.
  • Interface software generation tool 632 B receives information necessary for generating the interface software from software component generation tool 631 B, and generates interface software 2 corresponding to software components 1 .
  • FIG. 16 shows the embedded software development tool 63 C as one example of embedded software development tool 63 .
  • Software components 1 are generated from control model 62 by with the software component generation tool 631 A.
  • the interface software generation tool 632 A generates corresponding interface software 2 referring to control model 62 .
  • the software components for the embedded software and the interface software becomes possible to generate automatically by adopting the configuration of the embedded software development tool shown in FIG. 14, FIG. 15, and FIG. 16. Therefore, the necessity manually coded disappears. Further, because the coding mistake decreases, the debugging work can be reduced. As a result, the development efficiency of software improves.
  • FIG. 17, FIG. 18, and FIG. 19 show the concrete procedure of automatic generation of the interface software.
  • FIG. 17 shows the processing of interface software generation means 632 .
  • step S 41 information on the control software components is extracted, and the interface software is generated in step S 42 .
  • the detailed content of step S 41 is shown in FIG. 18.
  • the detailed content of S 42 is shown in FIG- 19 .
  • FIG. 18 shows details of control software component information extraction processing S 41 as example of the control software components shown in FIG. 8.
  • step S 411 file name “TVO_Calculate.c” of C 11 and C 12 shown in FIG. 8 and “TVO_Calculate.h” are extracted.
  • function name is extracted in step S 412 . That is, function name “TVO_Calculate” described to C 11 shown in FIG. 8 is extracted.
  • step S 413 the number of I/O variables is extracted. That is, the I/O variable of function “TVO_Calculate” of C 12 shown in FIG. 8 is counted.
  • step S 414 110 variable name is extracted based on the number of variables counted in S 413 .
  • step S 415 the I/O variable form is extracted. That is, variable type “unsigned short” of “Target Torque”, etc. in C 12 shown in FIG. 8 are extracted.
  • Said input variable corresponds to the reference data in the embedded controller development tool in the present invention.
  • Said output variable corresponds to the control data in the embedded controller development tool in the present invention.
  • FIG. 15 shows the details of interface software generation processing S 42 .
  • step S 421 the file of the interface software is generated from file names of the software components extracted in step S 411 . That is, the software component name of “TVO” is obtained by deleting the character after “_” defined as separator in the embedded controller from “TVO_Calculate.c” and “TVO_Calculate.h”.
  • step S 422 the name of output variable of the software component extracted in step S 414 and the declaration part of the variable which becomes an output of the software component with type information on output variable of the software component extracted in S 415 is generated in the file “Name of the extracted interface software”+ “.c”. That is, the instruction to allocate the variable of variable name of the extracted output variable by the type of the extracted output variable in the memory is output to the source file.
  • This is “unsigned short TVO;” in C 21 shown in FIG. 9.
  • the part of “unsigned Short” is the type of the output variable
  • the part of “TVO” is the variable name of the output variable.
  • Reference instruction of output variable of the software component is generated in step S 423 based on name of output variable of the software component extracted in step S 414 . That is, this is “#define TVO_Get( ) TVO” in C 22 shown in FIG. 9. This is defined as a macro of the name “Variable name of the output variable”+ “_Get( )”, and the substance becomes an output variable name. Therefore, when the macro is described in the source code, and the source code is converted with a pre-processor, the macro for the reference is replaced with the variable of the reference ahead in the source code.
  • step S 424 An output variable update instruction is generated based on name of the I/O variable of the software component extracted in step S 414 and the type information on input variable of the software component extracted in step S 415 . That is, this is C 23 shown in FIG. 9.
  • the macro “Output variable name”+“_Update( )” is defined as an output variable update instruction.
  • the substance of the macro is allocated in operation function “TVO_Calculate” the output variable extracted in step S 412 .
  • Pointer “&TVO” which designate the address of the output variable “TVO”, input variable “Target Torque”, reference instruction “Target Torque_Get( )” and “variable A_Get( )” of “variable_A” extracted in step S 414 is allocated in the argument of the function.
  • Interface software 2 can be generated automatically from control software components 1 and control model 62 by adopting the configuration shown in FIG. 17, FIG. 18, and PIG 19 . Therefore, the necessity manually coded disappears. Further, because the coding mistake decreases, the debugging work can be reduced. As a result, the development efficiency of software improves.
  • FIG. 20 shows the schematic diagram of network notice assignment of the embedded software.
  • FIG. 20 especially shows an example of software component notice assignment.
  • Software component server 73 is connected with network 71 .
  • Client PC 72 is connected with software component server 73 through network 71 , and software component 1 are transmitted according to the demand from client PC 72 .
  • Client PC 72 can write the received software component 1 in the electronically controlled unit (ECU) 10 B.
  • ECU 10 A it becomes possible for ECU 10 A to connect with software component server 73 via network 71 by itself by providing the network connection function for ECU 10 A oneself, and update the software component.
  • the following advantages can be obtained by distributing the embedded software shown in this embodiment in the network.
  • FIG. 21 shows the outline of one example of the embedded software notice assignment service.
  • Client PC 72 is connected with control software component sales homepage 74 through network 71 .
  • Client PC 72 is connected with charge settlement system 75 after control software component 1 downloaded is selected in control software component sales homepage 74 , and the settlement in the purchase charge is performed. Then, control software component 1 are downloaded from software component server 73 , and is written in control unit (ECU) 10 .
  • ECU control unit
  • processing to allocate the operation result in the specific address of the memory of the embedded controller processing to refer variable which is output result of other control operation means when operating, reference processing of variable which generates the operation result and generation of the execution interface for control basis means to execute.
  • the function changes other than the operation logic and the verifications are required at the change in the operation logic. That is, the problem that the man-hour according to the software development for the embedded controller increases is caused.
  • the output variable reference function that other interface means refer to said output variable which said interface means possesses is provided to said interface means in the embedded controller in the present invention.
  • the input variable collection function to collect input variables used when said control operation means corresponding to said interface means calculates by using the output variable reference function in other interface means or in itself is provided to said interface means in the embedded controller in the present invention.
  • the interface means specifies the control data to be calculated by the control operation means, and orders the execution of the operation processing by the control operation means, with the data collected by the interface means and used for the operation by the control operation means referred, when the control operation means calculates. That is, the output variable updating function is provided to the interface means.
  • Software for the embedded controller can be classified into the part frequently changed or the operation logic of the variable and the part reused when almost permanent or the order of updating the variable.
  • said control basis processing means defines the kind of the control operation means by which execution is ordered, and the execution sequence of said control operation means, said external input processing means, said external output processing means and said basic management means.
  • Said control basis processing means orders the execution of said external input processing means, said control operation means, said external output processing means, and said basic management means.
  • variable for other control operation means and the external output means to refer is assumed to be one per one control operation means in the embedded controller in the present invention.
  • control operation means server means which keeps and transmits said control operation means
  • control operation means sales means which sells the control operation means are connected in the network in the present invention to solve the above-mentioned problem.
  • said embedded controller is installed in the vehicle to control the engine and transmission gear, etc. in the present invention.

Abstract

An embedded controller development tool which generates an interface means for preserving and outputting a control data calculated by the control operation means based on a specific computational procedure, and providing said control data to a plurality of control operation means including said control operation means; wherein the control operation means is described as a function in the source code of the program, the reference data used for calculation by said control operation is an argument of the function, said control data calculated by said control operation means is the argument of the function which points the return value or the address of said function.

Description

    BACKGROUND OF THE INVENTION
  • The present invention relates to an embedded controller and a development tool for embedded controllers. [0001]
  • As an embedded or built-in software, an embedded controller, and an embedded software development tool so far, there is a method of generating automatically the interface program of a basic program according to the input information from a programming person (For instance, Japanese Patent Application Laid-Open No. 2002-229791, [0002] page 4 and FIG. 1(b)).
  • Moreover, there is a method of generating automatically the source code by using the control system design support software (MATLAB and Simulink) to make the embedded software so far (For instance, CyberNet System Co., Ltd. publication, “MATLAB Expo 2002 model-based control system design conference material”, pp 103-126). [0003]
  • SUMMARY OF THE INVENTION
  • For instance, in the electronic controller for a vehicle, the embedded controller development tool and the development process to improve the development efficiency of the software for the embedded controller has been researched. They are required to generate automatically the source code of the software for the embedded controller and to increase the reuse of the software. In the conventional embedded controller, the interface means sets up a part of the basic management means. (or instance, Japanese Patent Application Laid-Open No. 2002-229791). Therefore, even when a part of two or more control operation means is changed, it is necessary to change the entire interface means. That is, there is a problem that the part of the interface means that should not be originally changed must be re-created. [0004]
  • An object of the present invention is to solve the above-mentioned problem, and to increase the reuse of the embedded controller. [0005]
  • Now, there is a method of generating the source code of the control operation means automatically by using the MATLAB and the Simulink so far (For instance, CyberNet System Co., Ltd. publication, “MATLAB Expo 2002 model-based control system design conference material”, pp 103-126). [0006]
  • Manual operation was necessary to integrate the handing over of the data between the control operation means generated automatically and the control operation means, and the management of the variables used in the entire embedded controller even if the control operation means is generated by the above-mentioned method. [0007]
  • There is a problem of taking time to describe the source code when the source code of the interface means is described by a person. [0008]
  • An object of the present invention is to solve the above-mentioned problem and to improve the productivity of the embedded controller. [0009]
  • The above-mentioned object is achieved by providing the corresponding interface means to each control operation means in the embedded controller of the present invention. [0010]
  • In an embedded controller development tool in the present invention, the control operation means is described as a function in the source code of the program, the reference data used for calculation by said control operation is an argument of the function, said control data calculated by said control operation means is the argument of the function which points the return value or the address of said function, further comprising; an analyzing means which extracts the specified information from the source code of said control operation means; an interface generating means which generates said corresponding interface means every control operation means based on an analytical result of said analyzing means.[0011]
  • BRIEF DESCRIPTION OF DRAWINGS
  • FIG. 1 is an explanatory drawing of the present invention. [0012]
  • FIG. 2 is a system diagram of an electronic controller for a vehicle according to one embodiment of the present invention. [0013]
  • FIG. 3 is a system diagram of the decentralized embedded controller according to one embodiment of the present invention. [0014]
  • FIG. 4 is a schematic diagram of software for the embedded controller. [0015]
  • FIG. 5 is a schematic diagram of the application software. [0016]
  • FIG. 6 is a flow chart of the task processing software. [0017]
  • FIG. 7 is a block diagram of the torque base control application. [0018]
  • FIG. 8 is an illustration of C source codes of the control software components. [0019]
  • FIG. 9 is an illustration of C source code of the interface software. [0020]
  • FIG. 10 is a view showing the definition information on the torque base control framework. [0021]
  • FIG. 11 is a flow chart of the torque base control framework. [0022]
  • FIG. 12 is a system diagram in the I/O operation part in the decentralized control system. [0023]
  • FIG. 13 is a software development process diagram for the embedded controller. [0024]
  • FIG. 14 is a view showing embedded software development means [0025] 1.
  • FIG. 15 is a view showing embedded software development means [0026] 2.
  • FIG. 16 is a view showing embedded software development means [0027] 3.
  • FIG. 17 is a flow chart of the interface software automatic generation. [0028]
  • FIG. 18 is a flow chart of the control software component information extraction. [0029]
  • FIG. 19 is an interface software generation flow chart. [0030]
  • FIG. 20 is an illustration of an embedded software network notice assignment. [0031]
  • FIG. 21 is an illustration of an embedded software network notice assignment service.[0032]
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • An embodiment of the present invention will be explained referring to the drawings. [0033]
  • The vehicle control controller is treated as an example of the embedded controller in this embodiment. [0034]
  • FIG. 1 shows the basic configuration of the application software to which the present invention is applied. [0035] Reference numerals 1A, . . . 1B and 1C designate control software components where the update logic of control variable are described. This corresponds to the control operation means in the present invention. 2A, . . . 2B and 2C designate the interface software which corresponds to the control software components.
  • This corresponds to the interface means in the present invention. [0036] Reference numeral 3 designates the basic logic executed in the application software, for instance, the control basic software where the order of updating the variable, that is, the execution sequence of the control software components is described. This corresponds to the control basis processing means in the present invention.
  • [0037] Reference numeral 4 is external input data. The external information is obtained by measuring, for instance, by the sensor included in the hardware, or by communicating with other application softwares and controllers.
  • This corresponds to the external input processing means in the present invention. [0038] Reference numeral 5 designates an information output to the outside. The output to the outside is executed by driving an actuator included in the hardware, or by communicating with other applications and controllers.
  • This corresponds to the external output processing means in the present invention. [0039] Reference numeral 6 designates the operation system which carries out the task control and the interruption management of the embedded software. This corresponds to the basic management means in the present invention. The software components and the interface software are associated with 1A and 2A, and 1B and 2B, respectively. Therefore, when software component 1C is changed for instance, only the interface software 2C is changed. Namely, the interface software 2A and 2B can be used without changing.
  • That is, there is an effect that the reuse of the embedded software which has the interface software is improved by adopting the configuration shown in FIG. 1. Although only one hierarchy of the application is expressed in FIG. 1, the present invention is not limited to one hierarchy, but applied to all hierarchies. For instance, [0040] software components 1A itself can have the configuration shown in FIG. 1. This configuration is effective in the so-called hierarchized embedded software configuration.
  • FIG. 2 shows the vehicle where the present invention was applied. [0041]
  • In this example, [0042] vehicle 7 has engine 8, control unit (ECU) 10 to control engine 8, for instance, automatic transmission (AT) 9, control unit (ECU) 20 to control automatic transmission 9, acceleration pedal A operated by a driver. Moreover, control unit (ECU) 20 can be a control unit for the throttle control, not for the automatic transmission. That is, this means the control unit other than one for an engine.
  • FIG. 3 shows the basic configuration of the decentralized control system for a vehicle. [0043]
  • The decentralized control system for a vehicle comprises: control unit (ECU) [0044] 10 including processor 13, memory 12, embedded software 11, data sink 14, data source 15, analog input 41 for the A/D conversion output of input to e.g. an airflow sensor, digital input 42 for pulses from e.g. a crank angle sensor, analog output 51 for the voltage to drive peripheral equipment, and digital output 52 for pulses to drive the peripheral equipment; and control unit (ECU) 20 which has the same configuration as ECU 10.
  • FIG. 4 shows an example of the configuration of embedded [0045] software 11. As shown in PIG 4, Embedded software 11 comprises application software 111 and basic software 112. Basic software 112 comprises real time operation system (RTOS) 1121 and basic input/output system (BIOS) 1122. RTOS 1121 starts the task of the time cycle and the task which synchronizes with the external input, and provides interrupt disabled processing and the call service for other tasks to application software 111.
  • [0046] BIOS 1122 receives the demand from the application software 111, and reads external input data 4 and outputs external output data 5. By adopting the configuration of FIG. 4, it is possible to separate the part (BIOS) which depends on hardware in the embedded software, the real-time control functions such as the interruption signal processing and the timer processing, etc., the application part which depends on the controlled system such as the ignition control etc. of the engine and the gear-shift control of the transmission. For instance, there is an advantage that only BIOS is changed when CPU changes, and the application software can be used as it is.
  • FIG. 5 shows an example of the configuration of the application software. [0047]
  • [0048] Application software 111, for instance, comprises a task which is started at a fixed cycle like 10 ms cycle task, a task which is started in synchronization with the external signal like engine revolution synchronized task 1112, etc. of start like cycle of ten ms task 1111 at constant cycle synchronizing with external signal, and a task executed when processor is not used like background task 1113. Each of these tasks comprises the task processing basic software and the control application.
  • For instance, the 10 ms cycle task comprises a 10 ms task processing basic software, [0049] diagnosis control 11112, fuel correction control 11113, torque-based control 11114, and other controls. The symbol “ . . . ” in the figure means that the control logic is not limited to the above-mentioned three kinds of logics.
  • FIG. 6 shows the operation of 10 ms task processing [0050] basic software 11111. RTOS 1121 executes the start processing of 10 ms task processing basic software 11111.
  • As a result, the processing of 10 ms task processing [0051] basic software 11111 is executed. In step S1, an external input processing is requested to BIOS 1122, and the latest value of the sensor which updates the input value to the airflow sensor, etc. In step S2, diagnosis control 11112 is executed. Then, some controls are executed. In step S3, fuel correction control 11113 is executed. In step S4, torque base control 11114 is executed. In step 5, the external output processing is requested to BIOS 1122, and processing is ended.
  • By adopting the configuration shown in FIG. 5 and FIG. 6 as the application software, it becomes possible to process input processing S[0052] 1 from the outside, control processing S2, S3, S4 of which the objects are different, and output processing S5 to the outside in the same task.
  • FIG. 7 shows a basic configuration of the torque base control application software to which the present invention is applied. [0053] 1D, 1E, and 1F are the control software components which the target torque, variable A, and the update logic of control variable of the throttle opening are described, respectively. 2D, . . . , 2E and 2F are interface software which correspond to the control software components 2D, 2E and 2F, respectively. 3A is a torque base control basic software where the order of updating the variable of the control software components in the torque base control, that is, the execution sequence is described. 4 is external input data obtained from BIOS 1122. For instance, said external information is obtained by measuring by using the sensor, and communicating with other applications and controllers.
  • [0054] Reference numeral 5 designates the information output to the outside by BIOS 1122. Said external output is executed by driving actuator or communicating with other applications and controllers. By adopting the configuration shown in FIG. 7, only interface software 2D is changed, for instance, when software component 1D which operate the target torque is changed, and interface software 2E and 2F can be used without being changed. That is, there is an effect that the reuse of the embedded software which has the interface software is improved by adopting the configuration shown in FIG. 7.
  • FIG. 8 shows an example of the [0055] control software component 1F shown in FIG. 7.
  • Here, C[0056] 11 is a header file (TVO_Calculate.h) when software component 1 to update the throttle opening (henceforth TVO) is updated is described with C language. C12 is a source file (TVO_Calculate.c) when software component 1 to update TVO is described with C language. In C11, The prototype of the function to renew TVO is declared. That is, the external declaration (extern) of the function, the type (void) of the return value of the function, the function name (TVO_Calculate), the type of the input value of the function, variable name (unsigned short TargetTorque, . . . , unsigned short Variable_A), and the variable which the function updates, in a word, the type of the output value of the software component and the pointer of variable name (unsigned short TVO) are declared. Whether the argument of the function is an input variable or an output variable is judged by whether identifier (*) to show the pointer argument is attached at the head of variable name. Said output variable corresponds to the control data calculated by the control operation means in the embedded controller in the present invention.
  • C[0057] 12 describes the function to renew TVO. That is, the type (void) of the return value of the function, the function name (TVO_CAlculate), the type and variable name (unsigned short TargetTorque, . . . , unsigned short Variable_A) of the input value which is the argument of the function, the variable which unction updates, in a word, the type of output value of software component and the pointer of variable name (unsigned short TVO) are defined, and the method (*TVO=TargetTorque*Kt+Variable_A*Ka) of renewing TVO is described. Target Torque and Variable_A are variables, and Kt and Ka are constants.
  • FIG. 9 shows C source codes C[0058] 21, C22, and C23 as one example of interface software 2F shown in FIG. 7. They correspond to the control software components explained in C11 and C12 of FIG. 8. C21 is variable declaration C source file (TVO.c). C22 is C header file (TVO.h) to define the variable reference instruction, and C23 is C header file (TVO_Update.h) to define the variable update instruction.
  • In C[0059] 21, the variable declaration (unsigned short TVO) of TVO which is the output variable of corresponding software components C11 and C12 is performed. In C22, the definition (#define TVO_-Get( ) TVO) of the instruction to which the variable refers and the type and the name (extern unsigned short TVO) of the variable which is the external variable declaration of TVO are performed to refer to variable TVO declared in C21 by other interface software.
  • In C[0060] 23, the instruction executed when control basic software 3 requests the update of the variable TVO is defined. That is, the described C header file is read by the instruction to refer to the input variable (#include “TVO.h”-#include “variable_A”), the instruction name to update the variable is defined (#define TVO-Update( )¥), the function name of control software component C12 actually called is described (TVO_Calculate . . . ), the instruction to refer to control variable which becomes an input of the function to renew TVO is called (TargetTorque Get( ) . . . variableA_Get( )), and the address of variable TVO is designated as an output of the function to which TVO is renewed (& TVO).
  • In FIG. 9, the instruction called to update the variable by software components C [0061] 11 and C12 corresponding to interface software C21-C23 is only TVO_Update( ). When the update of the variable is demanded (TVO_Update( )), the interface software collects input values necessary for calling the function to update the variable (TargetTorque_Get( ) . . . variableA_Get( )) and designates the variable as an output (& TVO). Then, the function to update the variable is updated and afterwards is called (TVO_Calculate( )).
  • By adopting the configuration shown in FIG. 9, for instance, when the update of the variable is required from the control basic software, the variable can be updated in the common instruction format completely considering neither the number, the type of the input value of the function described in the control software components nor variable name. Moreover, the operation of the update and the declaration of the I/O variable can be separated from the control software components, and the independence of the control software components is improved. [0062]
  • As one example of the control basic software, FIG. 10 shows the control basic software of the torque-based control by which engine power is controlled (hereinafter, called torque-based control framework) C[0063] 31. In C311, the control software components executed in the torque-based control basic control part 3A of FIG. 7 are defined, and the information defined by the corresponding interface software is read. Moreover, the variable that the simultaneity is demanded inside of the control basic software 3 is defined in C312. Further, the input processing, the output processing, OS service and the execution sequences of software components executed by the control basic software are defined in C313.
  • FIG. 11 shows the executing processing in the torque-based control [0064] basic control part 3. The execution sequence of control basic software 3 is defined in C313 of FIG. 10. In step S31, interrupt disabled processing (OS service) is called, and the task execution which synchronizes with the external signal is prohibited. As a result, the simultaneity of the input value comes to be kept. In step S32, engine speed is read from external input data 4. In step S33, the opening of the accelerator is read from external input data 4. In step S34, the interrupt disabled release processing (OS service) is called. In step S35, the update of the variable to designate the target torque is demanded (software component execution). In step S36, the update of the variable to designate the target throttle opening is demanded (software component execution). In step S37, the target throttle opening is instructed to the external electronically controlled throttle (external output processing) and processing are ended.
  • There are the following advantages by composing the control basic software as shown in FIG. 10 and FIG. 11. The part where the variable is calculated in the embedded software, that is, [0065] control software components 1D, . . . , 1E and 1F shown in FIG. 7 is frequently changed to adjust the control characteristic like the debugging of the control logic and the time constant, etc.
  • While, there is the part where the change is comparatively few like a part where the order of updating the variable etc. are provided, that is, a part of the control basic software shown in FIG. 10 and FIG; [0066] 11. It is possible to separate the part where a lot of changes exist and the part where the change is few by composing the control basic software as shown in FIG. 10 and FIG. 11. Therefore, there is an advantage that the reuse of the control basic software component is improved.
  • FIG. 12 shows one example of the configuration of the BIOS interface software. [0067] Numeral 11321 designates BIOS interface software corresponding to the airflow sensor input, 11322 BIOS interface software corresponding to the crank angle input value, 11323 BIOS interface software corresponding to injection quantity, and 11324 BIOS interface software corresponding to the target throttle opening. The configuration of BIOS interface software is similar to that of the interface software shown in FIG. 9. By adopting the configuration shown in FIG. 12, for instance, when the update of the external input value is required from the control basic software, the external input value can be updated in the common instruction format completely considering neither the number, the type of the input value of the function described in the control software components nor variable name. Moreover, the operation of the update and the declaration of the I/O variable can be separated from the control software components, and the independence of the control software components is improved. It is similar also for an external output. Moreover, the operation of the update and the declaration of the I/O variable can be separated from BIOS, and the independence of BIOS is improved.
  • The development process of the embedded software is shown in FIG. 13. The tool shown in FIG. 13 includes the program, the software, and the device. [0068]
  • [0069] Control model 62 is constructed by control logic design tool 61. Embedded software source code 64 is made by embedded software development tool 63 based on control model 62. Further, binary file 66 of the embedded software is made by using source code compilation tool 65. Moreover, the embedded software is written in control unit (ECU) 10 by using software write tool 67.
  • The example of [0070] software development tool 63 is shown in FIG. 14 to FIG. 16.
  • FIG. 14 shows the embedded [0071] software development tool 63A as one example of embedded software development tool 63. Software components 1 are generated from control model 62 by the software component generation tool 631A. The interface software generation tool 632A generates corresponding interface software 2 referring to generated software components 1.
  • FIG-[0072] 15 shows embedded software development tool 63B as one example of embedded software development tool 63. Software components 1 are generated from control model 62 by software component generation tool 631B.
  • Interface [0073] software generation tool 632B receives information necessary for generating the interface software from software component generation tool 631B, and generates interface software 2 corresponding to software components 1.
  • FIG. 16 shows the embedded [0074] software development tool 63C as one example of embedded software development tool 63,
  • [0075] Software components 1 are generated from control model 62 by with the software component generation tool 631A. The interface software generation tool 632A generates corresponding interface software 2 referring to control model 62. The software components for the embedded software and the interface software becomes possible to generate automatically by adopting the configuration of the embedded software development tool shown in FIG. 14, FIG. 15, and FIG. 16. Therefore, the necessity manually coded disappears. Further, because the coding mistake decreases, the debugging work can be reduced. As a result, the development efficiency of software improves.
  • FIG. 17, FIG. 18, and FIG. 19 show the concrete procedure of automatic generation of the interface software. [0076]
  • FIG. 17 shows the processing of interface software generation means [0077] 632. In step S41, information on the control software components is extracted, and the interface software is generated in step S42. The detailed content of step S41 is shown in FIG. 18. Moreover, the detailed content of S42 is shown in FIG-19.
  • FIG. 18 shows details of control software component information extraction processing S[0078] 41 as example of the control software components shown in FIG. 8.
  • First of all, the file name is extracted in step S[0079] 411. That is, file name “TVO_Calculate.c” of C11 and C12 shown in FIG. 8 and “TVO_Calculate.h” are extracted. Next, function name is extracted in step S412. That is, function name “TVO_Calculate” described to C11 shown in FIG. 8 is extracted. In step S413, the number of I/O variables is extracted. That is, the I/O variable of function “TVO_Calculate” of C12 shown in FIG. 8 is counted. In step S414, 110 variable name is extracted based on the number of variables counted in S413. That is, “Target Torque” and “variable_A” in C12 shown in FIG. 8 are extracted as an input variable, and “TVO” is extracted as an output variable. The output variable is identified by “&” put on at the head of the variable name, which designates the pointer argument. In step S415, the I/O variable form is extracted. That is, variable type “unsigned short” of “Target Torque”, etc. in C12 shown in FIG. 8 are extracted. Said input variable corresponds to the reference data in the embedded controller development tool in the present invention. Said output variable corresponds to the control data in the embedded controller development tool in the present invention.
  • FIG. 15 shows the details of interface software generation processing S[0080] 42.
  • The example of generating the interface software is explained referring to FIG. 9. In step S[0081] 421, the file of the interface software is generated from file names of the software components extracted in step S411. That is, the software component name of “TVO” is obtained by deleting the character after “_” defined as separator in the embedded controller from “TVO_Calculate.c” and “TVO_Calculate.h”.
  • The following files are generated as interface software corresponding to the software components. “Name of extracted interface software” File of + “.c”, “Name of extracted interface software” File of + “.h”, “Name of extracted interface software” File of + “Update.h”. That is, these are “TVO.c” “TVO.h” “TVO_Update.h” shown in FIG. [0082] 9.
  • Next, in step S[0083] 422, the name of output variable of the software component extracted in step S414 and the declaration part of the variable which becomes an output of the software component with type information on output variable of the software component extracted in S415 is generated in the file “Name of the extracted interface software”+ “.c”. That is, the instruction to allocate the variable of variable name of the extracted output variable by the type of the extracted output variable in the memory is output to the source file. This is “unsigned short TVO;” in C21 shown in FIG. 9. In this case, the part of “unsigned Short” is the type of the output variable, and the part of “TVO” is the variable name of the output variable. Reference instruction of output variable of the software component is generated in step S423 based on name of output variable of the software component extracted in step S414. That is, this is “#define TVO_Get( ) TVO” in C22 shown in FIG. 9. This is defined as a macro of the name “Variable name of the output variable”+ “_Get( )”, and the substance becomes an output variable name. Therefore, when the macro is described in the source code, and the source code is converted with a pre-processor, the macro for the reference is replaced with the variable of the reference ahead in the source code. In step S424, An output variable update instruction is generated based on name of the I/O variable of the software component extracted in step S414 and the type information on input variable of the software component extracted in step S415. That is, this is C23 shown in FIG. 9. The macro “Output variable name”+“_Update( )” is defined as an output variable update instruction. The substance of the macro is allocated in operation function “TVO_Calculate” the output variable extracted in step S412. Pointer “&TVO” which designate the address of the output variable “TVO”, input variable “Target Torque”, reference instruction “Target Torque_Get( )” and “variable A_Get( )” of “variable_A” extracted in step S414 is allocated in the argument of the function. Interface software 2 can be generated automatically from control software components 1 and control model 62 by adopting the configuration shown in FIG. 17, FIG. 18, and PIG 19. Therefore, the necessity manually coded disappears. Further, because the coding mistake decreases, the debugging work can be reduced. As a result, the development efficiency of software improves.
  • FIG. 20 shows the schematic diagram of network notice assignment of the embedded software. [0084]
  • FIG. 20 especially shows an example of software component notice assignment. [0085] Software component server 73 is connected with network 71. Client PC72 is connected with software component server 73 through network 71, and software component 1 are transmitted according to the demand from client PC72. Client PC72 can write the received software component 1 in the electronically controlled unit (ECU) 10B. Moreover, it becomes possible for ECU 10A to connect with software component server 73 via network 71 by itself by providing the network connection function for ECU 10A oneself, and update the software component. The following advantages can be obtained by distributing the embedded software shown in this embodiment in the network. In the embedded software of the present invention, only the corresponding interface software 2 is changed when control software component 1 is changed, and basic parts of the control basic software and the task processing basic software, etc. are not changed. Therefore, there is an advantage that the change in software at the service factory becomes easy. Moreover, there is an advantage that the data amount transmitted can be decrease when only the software component is transmitted compared with the case to transmit the whole.
  • FIG. 21 shows the outline of one example of the embedded software notice assignment service. [0086]
  • [0087] Client PC 72 is connected with control software component sales homepage 74 through network 71. Client PC 72 is connected with charge settlement system 75 after control software component 1 downloaded is selected in control software component sales homepage 74, and the settlement in the purchase charge is performed. Then, control software component 1 are downloaded from software component server 73, and is written in control unit (ECU) 10.
  • The following advantages are obtained by adopting the configuration shown in FIG. 21. [0088]
  • Writing the embedded software becomes possible by attesting by the account system and the homepage for not only the service factory but also the general user. That is, it becomes possible to make the embedded controller of my favor by buying the embedded software of the embedded controller of home electric appliances product, the speed-shift pattern of the automatic transmission and the running mode of a vehicle in the network. The following functions except the operation logic exist together in the control operation means when the control operation means performs the declaration of the variable used in the embedded controller, the input process, and the update, etc. [0089]
  • For instance, processing to allocate the operation result in the specific address of the memory of the embedded controller, processing to refer variable which is output result of other control operation means when operating, reference processing of variable which generates the operation result and generation of the execution interface for control basis means to execute. This means that the function changes other than the operation logic and the verifications are required at the change in the operation logic. That is, the problem that the man-hour according to the software development for the embedded controller increases is caused. [0090]
  • To solve the above-mentioned problem, the output variable reference function that other interface means refer to said output variable which said interface means possesses is provided to said interface means in the embedded controller in the present invention. [0091]
  • To solve the above-mentioned problem, the input variable collection function to collect input variables used when said control operation means corresponding to said interface means calculates by using the output variable reference function in other interface means or in itself is provided to said interface means in the embedded controller in the present invention. [0092]
  • To solve the above-mentioned problem, the interface means specifies the control data to be calculated by the control operation means, and orders the execution of the operation processing by the control operation means, with the data collected by the interface means and used for the operation by the control operation means referred, when the control operation means calculates. That is, the output variable updating function is provided to the interface means. [0093]
  • Software for the embedded controller can be classified into the part frequently changed or the operation logic of the variable and the part reused when almost permanent or the order of updating the variable. [0094]
  • There is a problem that it is necessary to change to the part of the order of updating the variable which should not be changed though it is the change in the operation logic of the variable in software for the embedded controller when this is one program. [0095]
  • In the embedded controller in the present invention to solve the above-mentioned problem, said control basis processing means defines the kind of the control operation means by which execution is ordered, and the execution sequence of said control operation means, said external input processing means, said external output processing means and said basic management means. Said control basis processing means orders the execution of said external input processing means, said control operation means, said external output processing means, and said basic management means. [0096]
  • It is necessary to change the corresponding control operation means to change the method of operating a certain variable when one control operation means operates two or more variables. Therefore, There is a problem that the control operation means by which the operation is done is changed also for the variable to which the operation means is not changed. [0097]
  • To solve the above-mentioned problem, the variable for other control operation means and the external output means to refer is assumed to be one per one control operation means in the embedded controller in the present invention. [0098]
  • It was necessary to distribute the entire software by the recording medium such as CD-ROM though it is the version-up of a part of software when the software of the embedded controller is changed. Therefore, there is the problem of taking time to distribute software. [0099]
  • When the embedded controller notice assignment is served, the control operation means server means which keeps and transmits said control operation means, and the control operation means sales means which sells the control operation means are connected in the network in the present invention to solve the above-mentioned problem. [0100]
  • Making to a high function and the enlargement of control software for the embedded controller are advanced in the background of malting of the control system electronics, typically X-by-Wire and the hybrid system, and legal restrictions of the emission requirement and the OBD restriction, etc. for the vehicle control. [0101]
  • Moreover, there is a problem of designing and making the control software which makes to a high function and enlarges efficiently. [0102]
  • To solve the above-mentioned problem, said embedded controller is installed in the vehicle to control the engine and transmission gear, etc. in the present invention. [0103]

Claims (17)

What is claimed is:
1. An Embedded controller comprising:
an external input processing means which makes data from either of the input signal measured with the sensor or the input signal received from another embedded controller;
a control operation means which obtains control data based on the control data obtained by at least one of the concerned or another control operation means;
an external output processing means having a plurality of control operation means, which generates the control signal to drive an actuator based on the control data obtained by the concerned control operation means,
a control basis processing means which manages the execution sequence of said external input processing means, said external output processing means, and said control operation means; and
an interface means which manages the handing over of the control data between the concerned control operation means and another control operation means, and an operation executive order to said control operation means according to the request from said control basis processing means;
wherein said interface means is provided every said control operation means.
2. An embedded controller according to claim 1, wherein said interface means preserves said control data calculated by said control operation means corresponding to said interface means.
3. An embedded controller according to claim 2, wherein other interface means refers to said control data of said control operation means preserved by said interface means.
4. An embedded controller according to claim 3, wherein said interface means collects said data used when said control operation means corresponding to said interface means calculates referring to said control data preserved by other interface means or preserve or said control data preserved by the concerned interface means.
5. An embedded controller according to claim 4, wherein said interface means specifies said control data to be calculated by said control operation means, and orders the execution of the operation processing by said control operation means, with said data collected by said interface means and used for the operation by said control operation means referred, when said control operation means calculates.
6. An embedded controller according to any one of claims 1 to 5, wherein said interface means preserve the control data which is the calculation result by said control operation means, and wherein only one control data is preserved every control operation means.
7. An embedded controller according to any one of claims 1 to 6, wherein said control operation means are one that the source code of the programming language is generated automatically based on the control model where data referred in the operation and said control data where the specific operation procedure and result are output are described.
8. An embedded controller development tool which generates an interface means fir preserving and outputting a control data calculated by the control operation means based on a specific computational procedure, and providing said control data to a plurality of control operation means including said control operation means;
wherein the control operation means is described as a function in the source code of the program, the reference data used for calculation by said control operation is an argument of the function, said control data calculated by said control operation means is the argument of the function which points the return value or the address of said function,
further comprising;
an analyzing means which extracts the specified information from the source code of said control operation means;
an interface generating means which generates said corresponding interface means every control operation means based on an analytical result of said analyzing means.
9. An embedded controller development tool according to claim 8, wherein the source code of said interface means generation means provides the control data declaration for the interface means generation means to allocate the preservation area for said control data onto the embedded controller based on control data name of said control data which is the calculation result of the control operation means extract ed by the analyzing means and type information on said control data which is the calculation result.
10. An embedded controller development tool according to claim 8, wherein interface generating means includes the function to read the data which the interface means generation means uses for the source code of the interface means to calculate from the external input processing means and other interface means is provided based on the reference data name of said reference data used to be numerical of said reference data used to calculate of the extraction with the control operation means analysis tool and to calculate.
11. An embedded controller development tool according to claim 8, wherein the interface means generation means provides the function to demand the update of said control, data where said control basis processing means etc. are calculation results of the control operation means or the macroinstruction to the source code of the interface means based on said control data name of a said control data which is the calculation result of the control operation means extracted by the control operation means analysis tool.
12. An embedded controller development tool according to claim 8, wherein the interface means generation means provides the function to refer said control data where said control basis processing means etc. are calculation results of the control operation means or the macroinstruction to the source code of the interface means based on said control data name of a said control data which is the calculation result of the control operation means extracted by the control operation means analysis tool.
13. An embedded controller development tool any one of according to claims 8 to 12, wherein said control operation means is the one that the source code of the programming language is generated automatically based on the vehicle control model where the data which outputs the specific operation procedure and operation result and the data referred for the operation are described.
14. An embedded controller developed by using a development tool according to any one of claims 8 to 13.
15. A controller for the vehicle control which output a control signal to control the internal combustion engine or transmission gear based on the instruction of a driver and the state of the engine measured by a sensor or an input signal from the outside received from other vehicle control controllers, comprising:
an external input processing means which makes data the input signal from the outside which is measured with sensor or received from other embedded controllers;
a plurality of control operation means which calculates data from data of input signal and the calculation result of other control operation means based on specific computational procedure;
an external output processing means which outputs a control signal to control an internal combustion engine or an transmission gear based on data calculated by control operation means;
a control basis processing means which manages the execution sequence of said external input processing means, said external output processing means, and said control operation means; and
an interlace means which manages the handing over to said control operation means and the execution order from said control basis means to said control operation means in each said control operation means.
16. A controller for a vehicle control according to claim 15, wherein said control operation means is the one that the source code of the programming language is generated automatically based on the vehicle control model where the data which outputs the specific operation procedure and operation result and the data referred for the operation are described.
17. A controller development tool, wherein the controller for vehicle control is developed by the controller development tool according to any one of claims 8 to 13.
US10/739,222 2002-12-20 2003-12-19 Embedded controllers and development tool for embedded controllers Abandoned US20040133879A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/194,948 US8347282B2 (en) 2002-12-20 2008-08-20 Embedded controllers and development tool for embedded controllers

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002369167A JP3912278B2 (en) 2002-12-20 2002-12-20 Embedded controller and embedded controller development tool
JP2002-369167 2002-12-20

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/194,948 Division US8347282B2 (en) 2002-12-20 2008-08-20 Embedded controllers and development tool for embedded controllers

Publications (1)

Publication Number Publication Date
US20040133879A1 true US20040133879A1 (en) 2004-07-08

Family

ID=32588380

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/739,222 Abandoned US20040133879A1 (en) 2002-12-20 2003-12-19 Embedded controllers and development tool for embedded controllers
US12/194,948 Expired - Lifetime US8347282B2 (en) 2002-12-20 2008-08-20 Embedded controllers and development tool for embedded controllers

Family Applications After (1)

Application Number Title Priority Date Filing Date
US12/194,948 Expired - Lifetime US8347282B2 (en) 2002-12-20 2008-08-20 Embedded controllers and development tool for embedded controllers

Country Status (3)

Country Link
US (2) US20040133879A1 (en)
JP (1) JP3912278B2 (en)
DE (1) DE10360035B4 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040083234A1 (en) * 2002-03-25 2004-04-29 Takashi Higuchi System, program and method for producing computer application
US20060101442A1 (en) * 2004-11-04 2006-05-11 Jens Baumgart Reusable software components
US20080133105A1 (en) * 2006-11-30 2008-06-05 Harris James W Engine state-based control of software functions
EP1983433A1 (en) 2007-04-20 2008-10-22 Hitachi, Ltd. Method of configuring a control algorithm being executable by a controller
US20080313614A1 (en) * 2002-12-20 2008-12-18 Hitachi, Ltd. Embedded controllers and development tool for embedded controllers
US20090192635A1 (en) * 2004-07-28 2009-07-30 Mitsubishi Electric Corporation Program creating device for programmable contoller, program creating method for programmable controller, and recording medium having program recorded thereon
US7681201B2 (en) 2006-08-04 2010-03-16 Lectronix Method and system for integrating and controlling components and subsystems
US20100114939A1 (en) * 2008-10-24 2010-05-06 Schulman Elad Software test management system and method with facilitated reuse of test components
US20100269099A1 (en) * 2009-04-20 2010-10-21 Hitachi, Ltd. Software Reuse Support Method and Apparatus
CN102455668A (en) * 2010-10-29 2012-05-16 洛克威尔自动控制技术股份有限公司 Industrial controller interface for plug-in i/o modules
US20130167115A1 (en) * 2011-12-22 2013-06-27 Tata Consultancy Services Limited Computing Reusability Index of Software Assets
EP2775363A3 (en) * 2013-03-04 2016-12-07 STILL GmbH Method for integrating applications into a control system of an industrial truck
CN109643093A (en) * 2016-08-30 2019-04-16 三菱电机株式会社 Program editing device, program editing method and program generator

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5111262B2 (en) * 2008-06-27 2013-01-09 株式会社日立製作所 Embedded control device
JP2010092215A (en) * 2008-10-07 2010-04-22 Hitachi Automotive Systems Ltd Method of integrating software component, and segmentation tool and integration tool for software component
JP5085719B2 (en) * 2010-11-15 2012-11-28 日立オートモティブシステムズ株式会社 Vehicle control software and vehicle control apparatus
US8683457B1 (en) * 2011-06-17 2014-03-25 Western Digital Technologies, Inc. Updating firmware of an electronic device by storing a version identifier in a separate header
JP5530417B2 (en) * 2011-11-22 2014-06-25 株式会社日立製作所 Controller development tool

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192331B1 (en) * 1997-07-29 2001-02-20 Robert Bosch Gmbh Method for simulating control functions of a control device
US6429885B1 (en) * 1998-10-30 2002-08-06 Sony Corporation GUI resource editor for an embedded system
US6768941B2 (en) * 2002-11-07 2004-07-27 Cummins, Inc. Engine calibration development process
US7117504B2 (en) * 2001-07-10 2006-10-03 Microsoft Corporation Application program interface that enables communication for a network software platform

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04272568A (en) * 1991-02-25 1992-09-29 Hitachi Ltd Controller for driving force
US5612866A (en) * 1994-06-24 1997-03-18 Integrated Systems, Inc. Code generation system to construct an asynchronous real-time controller for a real-time system
US6185484B1 (en) * 1998-08-05 2001-02-06 Eaton Corporation Method of operating a motor vehicle management computer system
JP2000073800A (en) * 1998-08-28 2000-03-07 Hitachi Ltd Controller for engine with electromagnet drive suction and exhaust valve
US6161071A (en) * 1999-03-12 2000-12-12 Navigation Technologies Corporation Method and system for an in-vehicle computing architecture
US6272402B1 (en) * 1999-07-15 2001-08-07 Navistar International Transportation Corp. Remote interface modules with programmable functions
FR2801118B1 (en) * 1999-11-17 2001-12-21 Bull Cp8 METHOD FOR LOADING APPLICATIONS IN A MULTI-APPLICATION ON-BOARD SYSTEM, CORRESPONDING ON-BOARD SYSTEM, AND METHOD FOR EXECUTING AN APPLICATION OF THE ON-BOARD SYSTEM
JP4427860B2 (en) * 2000-03-24 2010-03-10 株式会社デンソー VEHICLE CONTROL DEVICE AND RECORDING MEDIUM
JP2001331324A (en) * 2000-05-19 2001-11-30 Sony Corp Method and device for processing information and recording medium
DE10052570A1 (en) * 2000-10-23 2002-04-25 Bosch Gmbh Robert System for controlling and monitoring vehicle-operating processes inserts variable program conditions with variable program modules and/or the same program modules with different content.
JP2002229791A (en) * 2001-01-31 2002-08-16 Denso Corp Interface generating device, program, and storage medium
JP2002271333A (en) 2001-03-09 2002-09-20 Denso Corp Program and electronic controller
US20040015960A1 (en) * 2001-03-16 2004-01-22 Sanjay Wanchoo Method for loading and executing an application in an embedded environment
US7012610B2 (en) * 2002-01-04 2006-03-14 Ati Technologies, Inc. Portable device for providing dual display and method thereof
US20030135842A1 (en) * 2002-01-16 2003-07-17 Jan-Erik Frey Software development tool for embedded computer systems
US7143395B2 (en) * 2002-02-14 2006-11-28 Hewlett-Packard Development Company, L.P. Verifying a program version
JP3912278B2 (en) * 2002-12-20 2007-05-09 株式会社日立製作所 Embedded controller and embedded controller development tool
US7694277B2 (en) * 2003-05-14 2010-04-06 Microsoft Corporation Cross version customization of design environment
US20050010915A1 (en) * 2003-07-11 2005-01-13 Chih-Wei Chen Network-based server code auto upgrade method and system
US7752617B2 (en) * 2003-11-20 2010-07-06 International Business Machines Corporation Apparatus, system, and method for updating an embedded code image

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192331B1 (en) * 1997-07-29 2001-02-20 Robert Bosch Gmbh Method for simulating control functions of a control device
US6429885B1 (en) * 1998-10-30 2002-08-06 Sony Corporation GUI resource editor for an embedded system
US7117504B2 (en) * 2001-07-10 2006-10-03 Microsoft Corporation Application program interface that enables communication for a network software platform
US6768941B2 (en) * 2002-11-07 2004-07-27 Cummins, Inc. Engine calibration development process

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040083234A1 (en) * 2002-03-25 2004-04-29 Takashi Higuchi System, program and method for producing computer application
US8347282B2 (en) * 2002-12-20 2013-01-01 Hitachi, Ltd. Embedded controllers and development tool for embedded controllers
US20080313614A1 (en) * 2002-12-20 2008-12-18 Hitachi, Ltd. Embedded controllers and development tool for embedded controllers
US7937172B2 (en) * 2004-07-28 2011-05-03 Mitsubishi Electric Corporation Program creating device for programmable controller, program creating method for programmable controller, and recording medium having program recorded thereon
US20090192635A1 (en) * 2004-07-28 2009-07-30 Mitsubishi Electric Corporation Program creating device for programmable contoller, program creating method for programmable controller, and recording medium having program recorded thereon
US20060101442A1 (en) * 2004-11-04 2006-05-11 Jens Baumgart Reusable software components
US7562347B2 (en) * 2004-11-04 2009-07-14 Sap Ag Reusable software components
US7681201B2 (en) 2006-08-04 2010-03-16 Lectronix Method and system for integrating and controlling components and subsystems
US8392882B2 (en) * 2006-11-30 2013-03-05 Caterpillar Inc. Engine state-based control of software functions
US20080133105A1 (en) * 2006-11-30 2008-06-05 Harris James W Engine state-based control of software functions
US20080262640A1 (en) * 2007-04-20 2008-10-23 Hitachi, Ltd. Method of Configuring a Control Algorithm Being Executable by a Controller
US8255068B2 (en) * 2007-04-20 2012-08-28 Hitachi, Ltd. Method of configuring a control algorithm being executable by a controller
EP1983433A1 (en) 2007-04-20 2008-10-22 Hitachi, Ltd. Method of configuring a control algorithm being executable by a controller
US20100114939A1 (en) * 2008-10-24 2010-05-06 Schulman Elad Software test management system and method with facilitated reuse of test components
US20100269099A1 (en) * 2009-04-20 2010-10-21 Hitachi, Ltd. Software Reuse Support Method and Apparatus
US8584086B2 (en) * 2009-04-20 2013-11-12 Hitachi, Ltd. Software reuse support method and apparatus
CN102455668A (en) * 2010-10-29 2012-05-16 洛克威尔自动控制技术股份有限公司 Industrial controller interface for plug-in i/o modules
US20130167115A1 (en) * 2011-12-22 2013-06-27 Tata Consultancy Services Limited Computing Reusability Index of Software Assets
US9063745B2 (en) * 2011-12-22 2015-06-23 Tata Consultancy Services Limited Computing reusability index of software assets
EP2775363A3 (en) * 2013-03-04 2016-12-07 STILL GmbH Method for integrating applications into a control system of an industrial truck
CN109643093A (en) * 2016-08-30 2019-04-16 三菱电机株式会社 Program editing device, program editing method and program generator

Also Published As

Publication number Publication date
US20080313614A1 (en) 2008-12-18
DE10360035A1 (en) 2004-07-22
US8347282B2 (en) 2013-01-01
JP2004199533A (en) 2004-07-15
JP3912278B2 (en) 2007-05-09
DE10360035B4 (en) 2018-01-04

Similar Documents

Publication Publication Date Title
US8347282B2 (en) Embedded controllers and development tool for embedded controllers
Mubeen et al. Supporting timing analysis of vehicular embedded systems through the refinement of timing constraints
Hanselmann Hardware-in-the loop simulation as a standard approach for development, customization, and production test of ECU's
Reif Automotive Mechatronics
US10423571B2 (en) Method for configuring a real or virtual electronic control unit
EP1703391A2 (en) Vehicle control software and vehicle control apparatus
JP6861844B2 (en) How to generate source code
US7197743B2 (en) Method for generating computer software for embedded systems
JP4515701B2 (en) VEHICLE CONTROL PROGRAM AND VEHICLE CONTROL DEVICE
US7237223B2 (en) Apparatus and method for real-time caution and warning and system health management
US7269820B2 (en) Program code generator and program
Albinet et al. Model-based methodology for requirements traceability in embedded systems
Boulanger Requirements engineering in a model-based methodology for embedded automotive software
Yoshimura et al. Defining a strategy to introduce a software product line using existing embedded systems
Lee et al. Target-identical rapid control prototyping platform for model-based engine control
JP2004118842A (en) Method of providing enhanced dynamic system simulation ability outside original modelling environment
JP3690721B2 (en) System performance estimation system and system performance estimation method
CN111052010B (en) Control system, development assistance device, and storage medium
JP4919782B2 (en) Embedded controller and embedded controller development tool
JP5178878B2 (en) Vehicle control device
Boulanger Experiences from a model-based methodology for embedded electronic software in automobile
Conrad et al. Towards a methodology for the design of hybrid systems in automotive electronics
Toeppe et al. Automatic code generation requirements for production automotive powertrain applications
US20040205756A1 (en) Method for automatically obtaining an operational sequence of processes and a corresponding tool therefor
Kaiser et al. Electronic control unit

Legal Events

Date Code Title Description
AS Assignment

Owner name: HITACHI, LTD., JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YOSHIMURA, KENTARY;MIYAZAKI, TAIZO;YOKOYAMA, TAKANORI;REEL/FRAME:014821/0394

Effective date: 20031121

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION