JP4919782B2 - Embedded controller and embedded controller development tool - Google Patents

Embedded controller and embedded controller development tool Download PDF

Info

Publication number
JP4919782B2
JP4919782B2 JP2006326425A JP2006326425A JP4919782B2 JP 4919782 B2 JP4919782 B2 JP 4919782B2 JP 2006326425 A JP2006326425 A JP 2006326425A JP 2006326425 A JP2006326425 A JP 2006326425A JP 4919782 B2 JP4919782 B2 JP 4919782B2
Authority
JP
Japan
Prior art keywords
software
control
data
software component
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.)
Expired - Fee Related
Application number
JP2006326425A
Other languages
Japanese (ja)
Other versions
JP2007109252A (en
Inventor
健太郎 吉村
泰三 宮崎
孝典 横山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems 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 Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2006326425A priority Critical patent/JP4919782B2/en
Publication of JP2007109252A publication Critical patent/JP2007109252A/en
Application granted granted Critical
Publication of JP4919782B2 publication Critical patent/JP4919782B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、組込みコントローラ及び組込みコントローラ開発ツールに関する。   The present invention relates to an embedded controller and an embedded controller development tool.

従来より組込みソフトウェア,組込みコントローラおよび組込みソフトウェア開発ツールとして、プログラム作成者からの入力情報に従って、基本プログラムのインタフェースプログラムを自動的に生成する方法がある(例えば、特許文献1参照)。   Conventionally, as an embedded software, an embedded controller, and an embedded software development tool, there is a method of automatically generating an interface program of a basic program in accordance with input information from a program creator (for example, see Patent Document 1).

また従来、組込みソフトウェアを作成するために制御系システム設計支援ソフトウェア、引用例によればMATLABおよびSimulinkを用いて、ソースコードを自動生成する方法がある(例えば、非特許文献1参照)。   Conventionally, there is a method of automatically generating source code using control system design support software for creating embedded software, and according to a cited example, MATLAB and Simulink (for example, see Non-Patent Document 1).

特開2002−229791号公報(第4頁,図1(b))JP 2002-229791 A (page 4, FIG. 1 (b)) サイバネットシステム株式会社刊、「MATLAB Expo2002モデルベース制御系設計カンファレンス資料」、103頁〜126頁Cybernet System Co., Ltd., “MATLAB Expo2002 Model Base Control System Design Conference Material”, pages 103-126

例えば車両用電子制御装置においては、組込みコントローラ用ソフトウェアの開発効率を向上させるための組込みコントローラ開発ツールおよび開発プロセスが研究されている。開発効率向上のためには、組込みコントローラ用ソフトウェアのソースコード自動生成化および再利用性向上が要求されている。   For example, in an electronic control device for a vehicle, an embedded controller development tool and a development process for improving the development efficiency of embedded controller software have been studied. In order to improve development efficiency, automatic generation of source code for embedded controller software and improvement of reusability are required.

従来の組込みコントローラでは、インタフェース手段が基本管理手段の一部である(例えば、特許文献1参照)。そのため、複数ある制御演算手段の一部が変更された場合でも、インタフェース手段全体を変更する必要があり、本来変更する必要のないインタフェース手段の部分を作り直すことになってしまうという課題がある。本発明は、上記課題を解決し、組込みコントローラの再利用性を向上させることを目的とする。   In the conventional embedded controller, the interface means is a part of the basic management means (for example, see Patent Document 1). Therefore, even when a part of a plurality of control arithmetic means is changed, it is necessary to change the whole interface means, and there is a problem that a part of the interface means that does not need to be changed is recreated. An object of the present invention is to solve the above problems and improve the reusability of an embedded controller.

従来、MATLABおよびSimulinkを用いて制御演算手段のソースコードを自動生成する方法がある(例えば、非特許文献1参照)。上記の方法で制御演算手段を生成したとしても、自動生成された制御演算手段と制御演算手段とのデータの受け渡しや組込みコントローラ全体で用いる変数の管理といった統合化作業の際に、手作業が必要であった。人間によりインタフェース手段のソースコードを記述する場合、ソースコードの記述に時間がかかるという課題がある。本発明は、上記課題を解決し組込みコントローラの生産性を向上させることを目的とする。   Conventionally, there is a method of automatically generating a source code of a control calculation means using MATLAB and Simulink (for example, see Non-Patent Document 1). Even if the control calculation means is generated by the above method, manual work is required for integration work such as data transfer between automatically generated control calculation means and control calculation means, and management of variables used in the entire embedded controller. Met. When the source code of the interface means is described by a human, there is a problem that it takes time to describe the source code. An object of the present invention is to solve the above problems and improve the productivity of an embedded controller.

本発明では、組込みコントローラにおいて、制御演算手段毎に対応するインタフェース手段を設けることにより、上記目的を達成する。   In the present invention, the above-described object is achieved by providing an interface unit corresponding to each control arithmetic unit in the embedded controller.

上記課題を解決すべく本発明は、特定の計算手順に基づく関数により演算を行う一つ以上の制御ソフト部品によって計算された出力データの出力および保存と前記制御ソフト部品への前記出力データの計算に用いる入力データの提供とを行うインタフェースソフトのソースコードを生成する組込みコントローラ開発装置であって、前記制御ソフト部品が計算に用いる入力データは前記関数の引数であると共に、前記制御ソフト部品によって計算される出力データは、関数の戻り値またはアドレスを指定した関数の引数であり、前記組込みコントローラ開発装置は、前記制御ソフト部品のソースコードから前記入力データと前記出力データのデータ名と型情報とを抽出する制御ソフト部品解析手段と、前記制御ソフト部品解析手段が抽出したデータ名と型情報とに基づいて前記制御ソフト部品ごとに対応する前記インタフェースソフトのソースコードを生成するインタフェースソフト生成手段と、を有し、前記インタフェースソフト生成手段は、プリプロセッサによるソースコード変換の際に参照先のデータに置きかえられることで、他のインタフェースソフトに前記出力データを参照させるための前記出力データのデータ名を用いた参照用マクロの記述と、前記入力データおよび前記出力データのデータ名を用いたマクロがプリプロセッサによるソースコード変換の際に対応する前記ソフト部品の入力データおよび出力データに置きかえられることで、前記制御ソフト部品へ前記入力データを提供し、前記ソフト部品を呼び出して前記出力データを更新させるための更新命令の記述と、前記出力データの保存領域を組込みコントローラ上に割り当てるための、前記出力データのデータ名と型情報を用いた制御データ宣言と、を前記インタフェースソフトのソースコードに設けることを特徴とする組込みコントローラ開発装置を提供する。

In order to solve the above-described problems, the present invention provides output and storage of output data calculated by one or more control software components that perform operations using a function based on a specific calculation procedure, and calculation of the output data to the control software components. An embedded controller development device that generates source code of interface software that provides input data for use in the control, wherein the input data used by the control software component for calculation is an argument of the function and is calculated by the control software component Output data is a function argument specifying a return value or an address of the function, and the embedded controller development device reads the input data, the data name and type information of the output data from the source code of the control software component Control software component analyzing means for extracting the data and the data extracted by the control software component analyzing means. Interface software generation means for generating a source code of the interface software corresponding to each of the control software components based on the data name and type information, and the interface software generation means is adapted to perform source code conversion by a preprocessor. in that the replaced the referenced data, the data name of the description of the reference macro, the input data and the output data using the data name of the output data for referring to the output data to the other interface software Is replaced with the input data and output data of the software component corresponding to the source code conversion by the preprocessor, so that the input data is provided to the control software component, the software component is called, and the output Description of update instruction to update data Development of an embedded controller characterized in that a control data declaration using a data name and type information of the output data for allocating a storage area for the output data on the embedded controller is provided in the source code of the interface software Providing equipment.

本発明によれば、組込みコントローラにおいて、制御演算手段毎に対応するインタフェース手段を設けることにより、組込みコントローラの再利用性が向上する。   According to the present invention, the reusability of the embedded controller is improved by providing the interface means corresponding to each control arithmetic means in the embedded controller.

本発明によれば、組込みコントローラ開発ツールであって、前記制御演算手段がプログラミング言語のソースコードで関数として記述されて、センサ計測値や他の制御演算手段の計算結果などの計算に用いる変数は関数の引数で、計算結果である変数は関数の戻り値またはメモリ上のアドレスを指定した関数の引数であることと、前記インタフェース手段がプログラミング言語のソースコードで記述するとともに、前記制御演算手段のソースコードから特定の情報を抽出する制御演算手段解析手段と、制御演算手段解析手段の解析結果に基づいて制御演算手段に対応する前記インタフェース手段のソースコードを生成するインタフェース手段生成手段を設けることにより、組込みコントローラの生産性が向上する。   According to the present invention, there is an embedded controller development tool, wherein the control calculation means is described as a function in a programming language source code, and variables used for calculation such as sensor measurement values and calculation results of other control calculation means are: The variable that is the result of the calculation as the function argument is a function argument that specifies a return value of the function or an address on the memory, and that the interface means is described in the source code of the programming language, and the control arithmetic means By providing control operation means analysis means for extracting specific information from the source code, and interface means generation means for generating source code of the interface means corresponding to the control operation means based on the analysis result of the control operation means analysis means Improves the productivity of embedded controllers.

以下に本発明の実施の一形態を図面と共に説明する。なお、本実施例では組込みコントローラの一例として車両制御コントローラを実施例として扱う。   Hereinafter, an embodiment of the present invention will be described with reference to the drawings. In the present embodiment, a vehicle control controller is treated as an example of an embedded controller.

まず、図1に本発明が実施されたアプリケーションソフトウェアの基本構造を示す。
1A,…,1B,1Cは制御変数の更新ロジックを記述した制御ソフト部品である。これは、本発明における制御演算手段に対応する。2A,…,2B,2Cは制御ソフト部品に対応したインタフェースソフトである。これは、本発明におけるインタフェース手段に対応する。3は本アプリケーションで実行される基本ロジック、例えば変数の更新順序すなわち制御ソフト部品の実行順序を記述した制御基本ソフトウェアである。これは、本発明における制御基本処理手段に対応する。4は外部入力データであって、例えばハードウェアの持つセンサで計測したり他のアプリケーションおよびコントローラと通信することによって、前記外部情報を得る。これは、本発明における外部入力処理手段に対応する。5は外部への情報の出力であって、ハードウェアの持つアクチュエータを駆動したり他のアプリケーションおよびコントローラと通信することによって、前記外部出力を実行する。本発明における外部出力処理手段に対応する。6が組込みソフトウェアのタスク制御や割込み管理を行うオペレーションシステムをあらわしている。本発明における基本管理手段に対応する。
First, FIG. 1 shows a basic structure of application software in which the present invention is implemented.
1A,..., 1B, 1C are control software components describing control variable update logic. This corresponds to the control calculation means in the present invention. 2A,..., 2B, 2C are interface software corresponding to control software components. This corresponds to the interface means in the present invention. Reference numeral 3 denotes control basic software describing basic logic executed by the application, for example, the update order of variables, that is, the execution order of control software components. This corresponds to the basic control processing means in the present invention. Reference numeral 4 denotes external input data. For example, the external information is obtained by measuring with a sensor of hardware or communicating with other applications and controllers. This corresponds to the external input processing means in the present invention. Reference numeral 5 denotes information output to the outside, which executes the external output by driving an actuator possessed by hardware or communicating with another application and controller. This corresponds to the external output processing means in the present invention. 6 represents an operation system that performs task control and interrupt management of embedded software. This corresponds to the basic management means in the present invention.

ソフト部品とインタフェースソフトはそれぞれ1Aと2A,1Bと2Bといったように対応付けられている。そのため、例えばソフト部品1Cが変更された場合にはインタフェースソフト2Cのみを変更すればよく、インタフェースソフト2A,2Bは変更せずに用いる事ができる。すなわち図1の構成とすることによって、インタフェースソフトを有する組込みソフトウェアの再利用性が向上するという効果がある。   Software components and interface software are associated with each other as 1A and 2A, 1B and 2B, respectively. Therefore, for example, when the software component 1C is changed, only the interface software 2C needs to be changed, and the interface software 2A and 2B can be used without being changed. In other words, the configuration shown in FIG. 1 has the effect of improving the reusability of the embedded software having the interface software.

なお、図1ではアプリケーションの一つの階層においてのみ表現しているが、本発明は組込みソフトウェアのある一つの階層に限定したものでは無く、あらゆる階層において実施する事ができる。たとえばソフト部品1A自身が図1に示した構成を持つこともできる。この構成は、いわゆる階層化された組込みソフトウェア構造において有効である。   Although FIG. 1 shows only one layer of the application, the present invention is not limited to one layer of embedded software, and can be implemented in any layer. For example, the software component 1A itself can have the configuration shown in FIG. This configuration is effective in a so-called layered embedded software structure.

図2に、本発明を適用した車両を示す。この例では、車両7は、エンジン8と、エンジン8を制御する制御ユニット(ECU)10と、例えば、自動変速機(AT)9と、自動変速機9を制御する制御ユニット(ECU)20と、ドライバにより操作されるアクセルペダルAを有する。またここで、制御ユニット(ECU)20は、自動変速機に関するものの他、スロットル制御のための制御ユニット等であっても良く、エンジンを制御するユニット以外の制御ユニットを示したものである。   FIG. 2 shows a vehicle to which the present invention is applied. In this example, the vehicle 7 includes an engine 8, a control unit (ECU) 10 that controls the engine 8, for example, an automatic transmission (AT) 9, and a control unit (ECU) 20 that controls the automatic transmission 9. The accelerator pedal A is operated by a driver. Here, the control unit (ECU) 20 may be a control unit for throttle control, etc. in addition to the one related to the automatic transmission, and shows a control unit other than the unit for controlling the engine.

図3に、車両用分散制御システムの基本構成を示す。   FIG. 3 shows a basic configuration of the vehicle distributed control system.

本車両用分散制御システムは、
プロセッサ13と、メモリ12と、組込みソフトウェア11と、データ受信装置14と、データ送信装置15と、エアフローセンサ等の入力をA/D変換して入力するアナログ入力41と、クランク角度センサ等からのパルスを入力するデジタル入力42と、周辺装置を駆動する為に電圧を出力するアナログ出力51と、周辺装置を駆動するためにパルスを出力するデジタル出力52とによって構成される制御ユニット(ECU)10と、
前記制御ユニット(ECU)10と同様の構成を有する制御ユニット(ECU)20とで構成されている。
This vehicle distributed control system
Processor 13, memory 12, embedded software 11, data receiving device 14, data transmitting device 15, analog input 41 that inputs an A / D converted input from an airflow sensor, and the like from a crank angle sensor A control unit (ECU) 10 comprising a digital input 42 for inputting a pulse, an analog output 51 for outputting a voltage for driving the peripheral device, and a digital output 52 for outputting a pulse for driving the peripheral device. When,
The control unit (ECU) 20 has the same configuration as the control unit (ECU) 10.

図4に、組込みソフトウェア11の構成の一例を示す。図4に示すように、組込みソフトウェア11はアプリケーションソフトウェア111と基本ソフトウェア112で構成されている。   FIG. 4 shows an example of the configuration of the embedded software 11. As shown in FIG. 4, the embedded software 11 includes application software 111 and basic software 112.

基本ソフトウェア112は、リアルタイムオペレーションシステム(RTOS)1121と基本入出力システム(BIOS)1122とで構成されている。RTOS1121は、時間周期タスクの起動や外部入力に同期したタスクの起動を行い、割込み禁止処理や他のタスクの呼び出しなどのサービスをアプリケーションソフトウェア111に提供する。
BIOS1122は、アプリケーションソフトウェア111からの要求を受けて、外部入力データ4の読み出しや、外部出力データ5の出力を実行する。
The basic software 112 includes a real-time operation system (RTOS) 1121 and a basic input / output system (BIOS) 1122. The RTOS 1121 activates a time-period task or a task synchronized with an external input, and provides services such as interrupt prohibition processing and calling of other tasks to the application software 111.
In response to a request from the application software 111, the BIOS 1122 reads the external input data 4 and outputs the external output data 5.

図4の構成にすることによって、組込みソフトウェアの中でハードウェアに依存する部分(BIOS)と、割込み信号処理やタイマー処理などのリアルタイム制御機能と、変速機の変速制御やエンジンの点火制御など制御対象に依存するアプリケーション部分とを分離する事ができる。例えばCPUが変わった場合にはBIOSのみを変更すればよく、アプリケーションは流用する事ができるという利点がある。   With the configuration shown in FIG. 4, the hardware dependent part (BIOS) in the embedded software, real-time control functions such as interrupt signal processing and timer processing, and control such as transmission shift control and engine ignition control The application part depending on the target can be separated. For example, when the CPU changes, only the BIOS needs to be changed, and there is an advantage that the application can be diverted.

図5に、アプリケーションソフトウェアの構成の一例を示す。アプリケーションソフトウェア111は例えば10[ms]周期タスク1111のように一定周期で起動するタスクと、エンジン回転同期タスク1112のように外部信号に同期して起動するタスクと、バックグラウンドタスク1113のようにプロセッサが空き状態のときに実行されるタスクとで構成されている。   FIG. 5 shows an example of the configuration of application software. The application software 111 is, for example, a task that is activated at a constant cycle such as a 10 [ms] periodic task 1111, a task that is activated in synchronization with an external signal such as an engine rotation synchronization task 1112, and a processor such as a background task 1113. And tasks that are executed when is in an idle state.

それぞれのタスクはタスク処理基本ソフトウェアと制御アプリケーションとで構成されている。例えば10[ms]周期タスクは、10[ms]タスク処理基本ソフトウェアと診断制御11112と燃料補正制御11113とトルクベース制御11114とその他の制御で構成されている。図中の「…」は、制御ロジックが上記の3種のみには限らないことを示している。   Each task is composed of basic task processing software and a control application. For example, the 10 [ms] periodic task includes 10 [ms] task processing basic software, diagnostic control 11112, fuel correction control 11113, torque base control 11114, and other controls. "..." in the figure indicates that the control logic is not limited to the above three types.

図6に10[ms]タスク処理基本ソフトウェアの11111の動作を示す。   FIG. 6 shows the operation of 11111 of the 10 [ms] task processing basic software.

RTOS1121がS0において10[ms]周期タスク1111の起動処理を行う。その結果、10[ms]タスクフレームワーク11111の処理が実行される。S1においてBIOS1122に外部入力処理を要求し、エアフローセンサ等の入力値を更新するセンサの最新値を取得する。S2において診断制御11112を実行する。その後いくつかの制御を実行し、S3において燃料補正制御11113を実行する。S4においてトルクベース制御11114を実行する。S5においてBIOS1122に外部への信号の出力処理を要求し、処理を終了する。アプリケーションソフトウェアを図5,図6に示すような構成にすることによって、外部からの入力処理S1と、異なる目的の制御処理S2,S3,S4、外部への出力処理S5を同じタスクの中で処理する事が可能になる。   The RTOS 1121 performs activation processing of the 10 [ms] periodic task 1111 in S0. As a result, the process of the 10 [ms] task framework 11111 is executed. In S1, the BIOS 1122 is requested to perform external input processing, and the latest value of the sensor that updates the input value of the airflow sensor or the like is acquired. In S2, the diagnosis control 11112 is executed. Thereafter, several controls are executed, and fuel correction control 11113 is executed in S3. In S4, torque base control 11114 is executed. In S5, the BIOS 1122 is requested to output a signal to the outside, and the process ends. By configuring the application software as shown in FIGS. 5 and 6, the external input process S1, the control processes S2, S3, S4 for different purposes, and the external output process S5 are processed in the same task. It becomes possible to do.

図7に、本発明が実施されたトルクベース制御アプリケーションソフトウェアの基本構造を示す。1Dは目標トルクの、1Eは変数Aの、1Fはスロットル開度の制御変数の更新ロジックを記述した制御ソフト部品である。2D,…,2E,2Fはそれぞれ2D,…,2E,2Fの制御ソフト部品に対応したインタフェースソフトである。3Aはトルクベース制御における変数の更新順序すなわち制御ソフト部品の実行順序を記述したトルクベース制御基本ソフトウェアである。4はBIOS1122から得られる外部入力データであって、例えばハードウェアの持つセンサで計測したり他のアプリケーションおよびコントローラと通信することによって、前記外部情報を得る。5はBIOS1122によって出力される外部への情報の出力であって、ハードウェアの持つアクチュエータを駆動したり他のアプリケーションおよびコントローラと通信することによって、前記外部出力を実行する。   FIG. 7 shows the basic structure of the torque-based control application software in which the present invention is implemented. 1D is a control software component describing the update logic of the target torque, 1E of the variable A, and 1F of the control variable of the throttle opening. 2D,..., 2E, 2F are interface software corresponding to control software components of 2D,. Reference numeral 3A denotes torque-based control basic software describing the update order of variables in torque-based control, that is, the execution order of control software components. Reference numeral 4 denotes external input data obtained from the BIOS 1122, and the external information is obtained by, for example, measuring with hardware sensors or communicating with other applications and controllers. Reference numeral 5 denotes information output to the outside output by the BIOS 1122, which executes the external output by driving an actuator of hardware or communicating with another application and controller.

図7に示す構成にすることによって、例えば目標トルクを演算するソフト部品1Dが変更された場合にはインタフェースソフト2Dのみを変更すればよく、インタフェースソフト2E,2Fは変更せずに用いる事ができる。すなわち図7の構成とすることによって、インタフェースソフトを有する組込みソフトウェアの再利用性が向上するという効果がある。   With the configuration shown in FIG. 7, for example, when the software component 1D for calculating the target torque is changed, only the interface software 2D needs to be changed, and the interface software 2E and 2F can be used without being changed. . That is, the configuration shown in FIG. 7 has an effect of improving the reusability of the embedded software having the interface software.

図8に、図7に示した制御ソフト部品1Fの一例を示す。ここで、C11はスロットル開度(以下TVO)を更新するソフト部品1をC言語で記述した場合のヘッダファイル
(TVO_Calculate.h)である。C12は同様にTVOを更新するソフト部品1をC言語で記述した場合のソースファイル(TVO_Calculate.c)である。
FIG. 8 shows an example of the control software component 1F shown in FIG. Here, C11 is a header file when the software component 1 for updating the throttle opening (hereinafter referred to as TVO) is described in C language.
(TVO_Calculate.h). Similarly, C12 is a source file (TVO_Calculate.c) when the software component 1 for updating TVO is described in C language.

C11は、TVOを更新する関数のプロトタイプ宣言を行っている。すなわち、関数の外部宣言であること(extern)と、関数の戻り値の型 (void)と、関数名(TVO_Calculate)と、関数の入力値の型と変数名(unsigned short TargetTorque,…,unsigned short
Variable_A)と、関数が更新する変数つまりソフト部品の出力値の型と変数名のポインタ(unsigned short TVO)を宣言している。なお、関数の引数が入力変数か出力変数なのかということは、変数名の先頭にポインタ引数であることを示す識別子(* )がついているか否かで判断している。
C11 makes a prototype declaration of a function that updates TVO. That is, it is an external declaration of the function (extern), the return type of the function (void), the function name (TVO_Calculate), the input value type of the function and the variable name (unsigned short TargetTorque, ..., unsigned short
Variable_A) and the variable that the function updates, that is, the type of the output value of the software component and the variable name pointer (unsigned short TVO) are declared. Whether the function argument is an input variable or an output variable is determined by whether or not an identifier ( * ) indicating that it is a pointer argument is attached to the beginning of the variable name.

なお前記出力変数は本発明における組込みコントローラにおいて、制御演算手段によって計算される制御データに対応する。   The output variable corresponds to the control data calculated by the control calculation means in the embedded controller of the present invention.

C12は、TVOを更新する関数を記述している。すなわち、関数の戻り値の型(void)と、関数名(TVO_CAlculate)と、関数の引数である入力値の型と変数名(unsigned short TargetTorque,…,unsigned short Variable_A )と、関数が更新する変数つまりソフト部品の出力値の型と変数名のポインタ(unsigned short TVO)とを定義して、TVOの更新方法(*TVO=TargetTorque*Kt+Variable_A*Ka)を記述している。なお、TargetTorqueおよびVariable_Aは変数であり、KtおよびKaは定数である。 C12 describes a function for updating TVO. That is, the function return type (void), function name (TVO_CAlculate), input value type and variable name (unsigned short TargetTorque, ..., unsigned short Variable_A), and the variable that the function updates That is, the type of output value of the software component and the pointer (unsigned short TVO) of the variable name are defined, and the TVO update method ( * TVO = TargetTorque * Kt + Variable_A * Ka) is described. Note that TargetTorque and Variable_A are variables, and Kt and Ka are constants.

図9に、図7に示すインタフェースソフト2Fの一例としてCソースコードC21,
C22,C23を示す。これは、図8のC11およびC12で説明した制御ソフト部品に対応する。C21は変数宣言を行うCソースファイル(TVO.c)で、C22は変数参照命令を定義するCヘッダファイル(TVO.h)であり、C23は変数更新命令を定義するCヘッダファイル(TVO_Update.h)である。
FIG. 9 shows C source code C21 as an example of the interface software 2F shown in FIG.
C22 and C23 are shown. This corresponds to the control software component described in C11 and C12 of FIG. C21 is a C source file (TVO.c) that declares variables, C22 is a C header file (TVO.h) that defines variable reference instructions, and C23 is a C header file (TVO_Update.h) that defines variable update instructions. ).

C21では、対応するソフト部品C11,C12の出力変数であるTVOの変数宣言
(unsigned short TVO)を行っている。
In C21, a variable declaration (unsigned short TVO) of TVO which is an output variable of the corresponding software components C11 and C12 is performed.

C22では、他のインタフェースソフトがC21で宣言した変数TVOを参照するために、変数の参照する命令の定義(#define TVO_Get() TVO) と、TVOの外部変数宣言として変数の型と名前の宣言(extern unsigned short TVO) を行っている。C23では、制御基本ソフトウェア3が変数TVOの更新を要求する際に実行する命令の定義を行っている。すなわち、入力となる変数を参照するための命令が記述されたCヘッダファイルを読み込み(#include“TVO.h”〜#include“variable_A”) 、変数を更新するための命令名を定義し(#define TVO_Update()\) 、実際に呼び出す制御ソフト部品C12の関数名を記述し
(TVO_Calculate …)、TVOを更新する関数の入力となる制御変数を参照するための命令を呼び出し(TargetTorque_Get()…variableA_Get())、TVOを更新する関数の出力と
して変数TVOのアドレスを指定し(&TVO)している。
In C22, in order to refer to the variable TVO declared in C21 by other interface software, the definition of the instruction referred to by the variable (#define TVO_Get () TVO) and the declaration of the variable type and name as the TVO external variable declaration (extern unsigned short TVO). In C23, an instruction to be executed when the control basic software 3 requests an update of the variable TVO is defined. That is, a C header file in which an instruction for referring to an input variable is described is read (#include “TVO.h” to #include “variable_A”), and an instruction name for updating the variable is defined (# define TVO_Update () \) Describes the function name of the control software component C12 to be actually called (TVO_Calculate…) and calls an instruction to refer to the control variable that becomes the input of the TVO update function (TargetTorque_Get ()… variableA_Get ()) The address of the variable TVO is designated (& TVO) as the output of the function for updating TVO.

図9において、インタフェースソフトC21〜C23に対応するソフト部品C11,
C12によって変数を更新するために呼び出される命令はTVO_Update()のみであるところに特徴がある。すなわち変数の更新を要求(TVO_Update())すると、インタフェースソフトが変数を更新する関数の呼び出しに必要な入力値を収集し(TargetTorque_Get()…
variableA_Get())、出力となる変数を指定し(&TVO)、その後に変数を更新する関数を呼び出す(TVO_Calculate())。
In FIG. 9, software components C11 corresponding to the interface software C21 to C23,
It is characterized in that the only command that is called to update the variable by C12 is TVO_Update (). That is, when a variable update is requested (TVO_Update ()), the interface software collects input values necessary for calling the function that updates the variable (TargetTorque_Get () ...
variableA_Get ()), specify the output variable (& TVO), and then call the function that updates the variable (TVO_Calculate ()).

図9の構成とすることで、たとえば制御基本ソフトウェアから変数の更新を要求する場合、制御ソフト部品に記述された関数の入力値の数や型および変数名を全く意識する必要無く、共通の命令形式で変数の更新が行えるようになる。また、制御ソフト部品から入出力変数の宣言や更新等の操作を分離することが可能になり、制御ソフト部品の独立性が向上する。   With the configuration of FIG. 9, for example, when a variable update is requested from the control basic software, there is no need to be aware of the number and type of function input values and variable names described in the control software component, and a common instruction Variables can be updated in the format. In addition, operations such as declaration and update of input / output variables can be separated from the control software component, and the independence of the control software component is improved.

図10に制御基本ソフトウェアの一例として、エンジン出力を制御するトルクベース制御の制御基本ソフトウェア(以下トルクベース制御フレームワーク)C31を示す。   FIG. 10 shows control basic software (hereinafter referred to as torque base control framework) C31 for torque base control for controlling engine output as an example of control basic software.

C31では、図7のトルクベース制御基本制御部3A内で実行する制御ソフト部品を
C311で定義し、対応するインタフェースソフトが定義する情報を読み込んでいる。また、制御基本ソフトウェア3内部で同時性が要求される変数の定義をC312において実行する。さらに、制御基本ソフトウェアで実行する入力処理・出力処理・OSサービス・ソフト部品の実行順序をC313において定義する。
In C31, a control software component executed in the torque-based control basic control unit 3A in FIG. 7 is defined in C311 and information defined by the corresponding interface software is read. In addition, the definition of a variable requiring simultaneity in the control basic software 3 is executed in C312. Furthermore, the execution order of input processing, output processing, OS service, and software components executed by the control basic software is defined in C313.

図11に、トルクベース制御基本制御部3Aの実行処理を示す。制御基本ソフトウェア3の実行順序は、図10のC313において定義されている。まずS31において割込み禁止処理(OSサービス)を呼び出し、外部信号に同期したタスク実行を禁止して入力値の同時性が保てるようにする。S32において外部入力データ4からエンジン回転数を読み込む。S33において外部入力データ4からアクセル開度を読み込む。S34において割込み禁止解除処理(OSサービス)を呼び出す。S35において、目標トルクを示す変数の更新要求を行う(ソフト部品実行)。S36において、目標スロットル開度を示す変数の更新要求を行う(ソフト部品実行)。S37において、目標スロットル開度を外部の電子制御スロットルへ指示し(外部出力処理)、処理を終了する。   FIG. 11 shows an execution process of the torque base control basic control unit 3A. The execution order of the control basic software 3 is defined in C313 of FIG. First, in S31, an interrupt prohibition process (OS service) is called to prohibit task execution in synchronization with an external signal so that input values can be kept in simultaneity. In S32, the engine speed is read from the external input data 4. In S33, the accelerator opening is read from the external input data 4. In S34, an interrupt prohibition release process (OS service) is called. In S35, an update request for a variable indicating the target torque is made (software component execution). In S36, a request for updating a variable indicating the target throttle opening is made (software component execution). In S37, the target throttle opening is instructed to an external electronic control throttle (external output process), and the process is terminated.

制御基本ソフトウェアを図10,図11に示すような構成にすることによって、以下の利点がある。組込みソフトウェア中で変数の計算を行う部分すなわち図7の制御ソフト部品1D,…,1E,1Fは、制御ロジックのデバッグや時定数など制御特性の調整に対応するために、変更が頻繁に行われる部分である。その一方で、変数の更新順序などを定めた部分すなわち図10,図11に示す制御基本ソフトウェアの部分のように、比較的変更が少ない部分も存在する。制御基本ソフトウェアを図10,図11に示すような構成にすることによって、変更が多い部分と変更が少ない部分とを分離する事ができる。そのため、制御基本ソフトウェア部分の再利用性が向上するという利点がある。   By configuring the control basic software as shown in FIGS. 10 and 11, there are the following advantages. In the embedded software, the variable calculation part, that is, the control software components 1D,..., 1E, 1F in FIG. 7 are frequently changed in order to cope with control logic debugging and adjustment of control characteristics such as time constants. Part. On the other hand, there is a part with relatively few changes, such as a part that determines the update order of variables, that is, a part of the control basic software shown in FIGS. By configuring the control basic software as shown in FIGS. 10 and 11, it is possible to separate a portion with a large change from a portion with a small change. Therefore, there is an advantage that the reusability of the control basic software part is improved.

図12はBIOSインタフェースソフトの構成の一例を示す。11321はエアフローセンサ入力に対応するBIOSインタフェースソフト、11322はクランク角度入力値に対応するBIOSインタフェースソフト、11323は燃料噴射量に対応するBIOSインタフェースソフト、11324は目標スロットル開度に対応するBIOSインタフェースソフトである。なお、BIOSインタフェースソフトの構成は、図9に示したインタフェースソフトの構成と同様である。BIOSインタフェースソフトを図12に示した構成にすることによって、たとえば制御基本ソフトウェアから外部入力値の更新を要求する場合、BIOSに記述された関数の入力値の数や型および変数名を全く意識する必要無く、共通の命令形式で外部入力値の更新が行えるようになる。外部出力に関しても同様である。また、BIOSから入出力変数の宣言や更新等の操作を分離することが可能になり、BIOSの独立性が向上する。   FIG. 12 shows an example of the configuration of the BIOS interface software. Reference numeral 11321 denotes a BIOS interface software corresponding to the air flow sensor input, reference numeral 11322 denotes a BIOS interface software corresponding to the crank angle input value, reference numeral 11323 denotes a BIOS interface software corresponding to the fuel injection amount, and reference numeral 11324 denotes a BIOS interface software corresponding to the target throttle opening. is there. The configuration of the BIOS interface software is the same as the configuration of the interface software shown in FIG. By configuring the BIOS interface software as shown in FIG. 12, for example, when an update of an external input value is requested from the control basic software, the number and types of input values of functions described in the BIOS and variable names are completely conscious. There is no need to update external input values in a common command format. The same applies to the external output. In addition, operations such as declaration and update of input / output variables can be separated from the BIOS, and the independence of the BIOS is improved.

図13に、組み込みソフトウェアの開発プロセスを示す。図13中におけるツールとは、プログラム,ソフトウェアおよび装置を含むものに対応するものである。制御ロジック設計ツール61によって制御モデル62を構築する。制御モデル62をもとに組込みソフトウェア開発ツール63によって組込みソフトウェアソースコード64を作成する。さらにソースコードコンパイルツール65を用いて組込みソフトウェアのバイナリファイル
66を作成し、ソフトウェア書込みツール67を用いて制御ユニット(ECU)10に組込みソフトウェアを書込む。
FIG. 13 shows an embedded software development process. The tools in FIG. 13 correspond to those including programs, software, and devices. A control model 62 is constructed by the control logic design tool 61. An embedded software source code 64 is created by an embedded software development tool 63 based on the control model 62. Further, a binary file 66 of embedded software is created using the source code compilation tool 65, and the embedded software is written into the control unit (ECU) 10 using the software writing tool 67.

以下、図14,図15,図16にソフトウェア開発ツール63の例を示す。   Hereinafter, examples of the software development tool 63 are shown in FIGS.

図14に組込みソフトウェア開発ツール63の一例として組込みソフトウェア開発ツール63Aを示す。制御モデル62からソフト部品生成ツール631Aによってソフト部品1を生成する。インタフェースソフト生成ツール632Aは生成されたソフト部品1を参照して対応するインタフェースソフト2を生成する。   FIG. 14 shows an embedded software development tool 63A as an example of the embedded software development tool 63. The software component 1 is generated from the control model 62 by the software component generation tool 631A. The interface software generation tool 632A generates the corresponding interface software 2 with reference to the generated software component 1.

図15に組込みソフトウェア開発ツール63の一例として組込みソフトウェア開発ツール63Bを示す。制御モデル62からソフト部品生成ツール631Bによってソフト部品1を生成する。インタフェースソフト生成ツール632Bはソフト部品生成ツール631Bからインタフェースソフト生成に必要な情報を受け取り、ソフト部品1に対応するインタフェースソフト2を生成する。   FIG. 15 shows an embedded software development tool 63B as an example of the embedded software development tool 63. The software component 1 is generated from the control model 62 by the software component generation tool 631B. The interface software generation tool 632B receives information necessary for interface software generation from the software component generation tool 631B, and generates interface software 2 corresponding to the software component 1.

図16に組込みソフトウェア開発ツール63の一例として組込みソフトウェア開発ツール63Cを示す。制御モデル62からソフト部品生成ツール631Aによってソフト部品1を生成する。インタフェースソフト生成ツール632Aは制御モデル62を参照して対応するインタフェースソフト2を生成する。   FIG. 16 shows an embedded software development tool 63C as an example of the embedded software development tool 63. The software component 1 is generated from the control model 62 by the software component generation tool 631A. The interface software generation tool 632A refers to the control model 62 and generates the corresponding interface software 2.

図14,図15,図16に示す組込みソフトウェア開発ツールの構成をとることによって、制御モデルから組込みソフトウェアのためのソフト部品およびインタフェースソフトウェアを自動で生成することが可能になるため、人手でコーディングする必要が無くなり、さらにコーディングミスが減少するためデバッグ作業を軽減することが可能になり、ソフトウェアの開発効率が向上する。   By taking the configuration of the embedded software development tool shown in FIGS. 14, 15, and 16, it is possible to automatically generate software components and interface software for the embedded software from the control model. This eliminates the need for coding and further reduces coding errors, thereby reducing debugging work and improving software development efficiency.

続いて、図17,図18,図19においてインタフェースソフトの自動生成の具体的な手順を示す。   Next, specific procedures for automatic generation of interface software are shown in FIGS.

図17に、インタフェースソフト生成手段632の処理を示す。S41において制御ソフト部品の情報を抽出し、S42においてインタフェースソフトを生成する。S41の詳細な内容は図18に、S42の詳細な内容は図19に示す。   FIG. 17 shows the processing of the interface software generation means 632. In step S41, control software component information is extracted, and in step S42, interface software is generated. The detailed contents of S41 are shown in FIG. 18, and the detailed contents of S42 are shown in FIG.

図18に、図8に示した制御ソフト部品を例に制御ソフト部品情報抽出処理S41の詳細を示す。まずS411においてファイル名を抽出する。すなわち、図8に示したC11およびC12のファイル名「TVO_Calculate.c」,「TVO_Calculate.h」を抽出する。次に、S412において関数名を抽出する。すなわち図8に示したC11に記載された関数名「TVO_Calculate 」を抽出する。S413において入出力変数の数を抽出する。すなわち図8に示したC12の関数「TVO_Calculate 」の入出力変数をカウントする。S414において、S413においてカウントした変数の数に基づいて入出力変数名を抽出する。すなわち、図8に示したC12における「TargetTorque」や「variable_A」を入力変数として抽出し、「TVO」を出力変数として抽出する。なお、出力変数は変数名先頭にポインタ引数であることを示す「&」がついていることにより識別する。S415において入出力変数の型を抽出する。すなわち、図8に示したC12における「TargetTorque」の変数型「unsigned short」などである。   FIG. 18 shows details of the control software component information extraction processing S41 by taking the control software component shown in FIG. 8 as an example. First, in S411, a file name is extracted. That is, the file names “TVO_Calculate.c” and “TVO_Calculate.h” of C11 and C12 shown in FIG. 8 are extracted. Next, a function name is extracted in S412. That is, the function name “TVO_Calculate” described in C11 shown in FIG. 8 is extracted. In S413, the number of input / output variables is extracted. That is, the input / output variables of the function “TVO_Calculate” of C12 shown in FIG. 8 are counted. In S414, input / output variable names are extracted based on the number of variables counted in S413. That is, “TargetTorque” and “variable_A” in C12 shown in FIG. 8 are extracted as input variables, and “TVO” is extracted as an output variable. The output variable is identified by “&” indicating that it is a pointer argument at the beginning of the variable name. In S415, the input / output variable type is extracted. That is, the variable type “unsigned short” of “TargetTorque” in C12 shown in FIG.

前記入力変数は本発明における組込みコントローラ開発ツールにおいて、参照データに対応する。前記出力変数は本発明における組込みコントローラ開発ツールにおいて、制御データに対応する。   The input variable corresponds to reference data in the embedded controller development tool of the present invention. The output variable corresponds to control data in the embedded controller development tool of the present invention.

図15に、インタフェースソフト生成処理S42の詳細を示す。図9に示したインタフェースソフトの生成を例に説明する。S421において、S411で抽出したソフト部品のファイル名から、インタフェースソフトのファイルを生成する。すなわち、「TVO_
Calculate.c」,「TVO_Calculate.h」から、区切り文字として組込みコントローラ内で意義する「_」以降の文字を消すことにより「TVO」というソフト部品名を得る。その上でソフト部品に対応するインタフェースソフトとして、「抽出したインタフェースソフトの名前」+「.c」というファイルと、「抽出したインタフェースソフトの名前」+「.h」というファイルと、「抽出したインタフェースソフトの名前」+「_Update.h 」というファイルを生成する。すなわち、図9に示した「TVO.c」「TVO.h」「TVO_Update.h」である。次にS422において、S414で抽出したソフト部品の出力変数の名前とS415で抽出したソフト部品の出力変数の型情報を持つソフト部品の出力となる変数の宣言部を
「抽出したインタフェースソフトの名前」+「.c」というファイル内に生成する。すなわち、抽出した出力変数の型で、抽出した出力変数の変数名の変数をメモリ上に割り当てるための命令をソースファイルに出力する。図9に示したC21における「unsigned shortTVO;」である。この場合、「unsigned Short 」の部分が出力変数の型で、「TVO」の部分が出力変数の変数名である。S414で抽出したソフト部品の出力変数の名前をもとに、S423においてソフト部品の出力変数の参照命令を生成する。すなわち、図9に示したC22における「#define TVO_Get() TVO 」である。これは、「出力変数の変数名」+「_Get()」という名前のマクロとして定義され、その実体は出力変数名になる。そのため、ソースコードにマクロを記述することによりプリプロセッサを用いてソースコードを変換すると、ソースコード内で参照用マクロは参照先の変数に置きかえられる。S424において、S414で抽出したソフト部品の入出力変数の名前とS415で抽出したソフト部品の入力変数の型情報をもとに、出力変数の更新命令を生成する。すなわち、図9に示したC23である。「出力変数名」+「_Update() 」というマクロを出力変数の更新命令として定義する。そのマクロの実体はS412で抽出した出力変数の演算関数「TVO_
Calculate 」に割り当てられ、関数の引数にはS414で抽出した入力変数「Target
Torque」や「variable_A」の参照命令「TargetTorque_Get()」や「variableA_Get() 」と出力変数「TVO」のアドレスを示すポインタ「&TVO」を割り当てる。
FIG. 15 shows details of the interface software generation process S42. The generation of the interface software shown in FIG. 9 will be described as an example. In step S421, an interface software file is generated from the software component file name extracted in step S411. That is, “TVO_
The software component name “TVO” is obtained from “Calculate.c” and “TVO_Calculate.h” by deleting the characters after “_” which are significant in the embedded controller as delimiters. Then, as the interface software corresponding to the software component, “extracted interface software name” + “. C” file, “extracted interface software name” + “. H” file, and “extracted interface software name” Generate a file named "Software name" + "_Update.h". That is, “TVO.c”, “TVO.h”, and “TVO_Update.h” shown in FIG. Next, in S422, the name of the output variable of the software component extracted in S414 and the declaration part of the variable that becomes the output of the software component having the type information of the output variable of the software component extracted in S415 are “name of the extracted interface software”. + Created in a file called “.c”. In other words, an instruction for allocating a variable with the extracted output variable type and the variable name of the extracted output variable is output to the source file. This is “unsigned shortTVO;” in C21 shown in FIG. In this case, the “unsigned Short” part is the output variable type, and the “TVO” part is the variable name of the output variable. Based on the name of the output variable of the software component extracted in S414, a reference instruction for the output variable of the software component is generated in S423. That is, “#define TVO_Get () TVO” in C22 shown in FIG. This is defined as a macro named “variable name of output variable” + “_ Get ()”, and its substance becomes an output variable name. For this reason, when the source code is converted using the preprocessor by describing the macro in the source code, the reference macro is replaced with a reference destination variable in the source code. In S424, an output variable update command is generated based on the names of the input / output variables of the software component extracted in S414 and the type information of the input variables of the software component extracted in S415. That is, it is C23 shown in FIG. A macro “output variable name” + “_ Update ()” is defined as an output variable update instruction. The macro entity is the operation function “TVO_ of the output variable extracted in S412.
Assigned to “Calculate”, and the function parameter is the input variable “Target
A reference command “TargetTorque_Get ()” or “variableA_Get ()” of “Torque” or “variable_A” and a pointer “& TVO” indicating the address of the output variable “TVO” are allocated.

図17,図18,図19に示した構成を取ることによって、インタフェースソフト2を、制御ソフト部品1や制御モデル62から自動で生成することが可能になるため、人手でコーディングする必要が無くなり、さらにコーディングミスが減少するためデバッグ作業を軽減することが可能になり、ソフトウェアの開発効率が向上する。   The interface software 2 can be automatically generated from the control software component 1 and the control model 62 by adopting the configuration shown in FIGS. 17, 18 and 19, so that it is not necessary to code manually. Furthermore, since coding errors are reduced, debugging work can be reduced and software development efficiency is improved.

図20に、組込みソフトウェアのネットワーク配信の概要図を示す。図20ではソフト部品配信の例を示す。ネットワーク71に、ソフト部品サーバ73が接続されている。ソフト部品サーバ73はクライアントPC72をネットワーク71を介して接続され、クライアントPC72からの要求に応じてソフト部品1を送信する。クライアントPC72は受信したソフト部品1を電子制御ユニット(ECU)10Bに書込む事ができる。また、ECU10A自身にネットワーク接続機能を持たせることにより、自分自身でネットワーク71を経由してソフト部品サーバ73に接続し、ソフト部品を更新することができる。   FIG. 20 shows a schematic diagram of network distribution of embedded software. FIG. 20 shows an example of software component distribution. A software component server 73 is connected to the network 71. The software component server 73 is connected to the client PC 72 via the network 71 and transmits the software component 1 in response to a request from the client PC 72. The client PC 72 can write the received software component 1 in the electronic control unit (ECU) 10B. In addition, by providing the ECU 10A itself with a network connection function, it is possible to connect to the software component server 73 via the network 71 and update the software component.

本実施例で示した組込みソフトウェアをネットワーク配信することによって、以下の利点がある。本発明の組込みソフトウェアでは、制御ソフト部品1が変更された場合は対応するインタフェースソフト2のみを変更すれば良く、制御基本ソフトウェアやタスク処理基本ソフトウェアなどの基本部分は変更する必要がない。そのため、サービス工場においてソフトウェアの変更をすることが容易になるという利点がある。また送信するデータ量も、全体を送信する場合に比べてソフト部品のみを送信する場合には少なくて済むという利点がある。   By distributing the embedded software shown in this embodiment over the network, there are the following advantages. In the embedded software of the present invention, when the control software component 1 is changed, only the corresponding interface software 2 needs to be changed, and basic parts such as the control basic software and the task processing basic software need not be changed. Therefore, there is an advantage that it becomes easy to change the software in the service factory. In addition, there is an advantage that the amount of data to be transmitted is smaller when only the software component is transmitted than when the entire data is transmitted.

図21に、組込みソフトウェア配信サービスの一例の概要を示す。クライアントPC
72はネットワーク71を介して制御ソフト部品販売ホームページ74に接続する。制御ソフト部品販売ホームページ74にてダウンロードする制御ソフト部品1を選択したのち、料金決済システム75に接続し購入料金の決済を行う。その後、制御ソフト部品サーバ73から制御ソフト部品1をダウンロードし、制御ユニット(ECU)10に書込む。
FIG. 21 shows an outline of an example of the embedded software distribution service. Client PC
72 is connected to the control software parts sales homepage 74 via the network 71. After selecting the control software component 1 to be downloaded on the control software component sales homepage 74, it connects to the fee settlement system 75 and settles the purchase fee. Thereafter, the control software component 1 is downloaded from the control software component server 73 and written into the control unit (ECU) 10.

図21で示した構成にすることによって、以下の利点がある。課金システムとホームページによる認証を行うことによって、サービス工場だけでなく一般のユーザーにとっても組込みソフトウェアの書込みが可能になる。すなわち、車両の走行モードや、自動変速機の変速パターン、さらには家電製品の組込みコントローラの組込みソフトウェアをネットワークで購入することによって、自分の好みの組込みコントローラを作る事ができるという利点がある。   The configuration shown in FIG. 21 has the following advantages. By performing authentication with the billing system and the homepage, not only the service factory but also general users can write embedded software. That is, there is an advantage that a built-in controller of his / her preference can be created by purchasing a vehicle running mode, a shift pattern of an automatic transmission, and a built-in software of a built-in controller of home appliances via a network.

制御演算手段に組込みコントローラ内で用いる変数の宣言や入力処理および更新等の操作をさせてしまうと、制御演算手段に演算ロジック以外の機能が混在する。たとえば、演算結果を出力・保存する変数を組込みコントローラが持つメモリの特定のアドレスに割り当てる処理や、演算を行う際に他の制御演算手段の出力結果である変数を参照する処理や、制御基本手段が実行するための実行インタフェースの生成や、演算結果を出力する変数の参照処理などである。これは、演算ロジックの変更に伴い演算ロジック以外の機能変更及び検証が必要となることを意味し、組込みコントローラ用ソフトウェア開発に伴う工数が増大するという課題が生じる。本発明では、組込みコントローラにおいて、前記インタフェース手段が有する前記出力変数を他のインタフェース手段が参照する出力変数参照機能を、前記インタフェース手段に設けることにより、上記課題を解決する。本発明では、組込みコントローラにおいて、前記インタフェース手段に対応する前記制御演算手段が計算を行う際に用いる入力変数を、他のインタフェース手段もしくは自分自身の有する出力変数参照機能を用いるなどして収集する入力変数収集機能を前記インタフェース手段に設けることにより、上記課題を解決する。本発明では、組込みコントローラにおいて、前記制御基本処理手段などの命令で前記制御演算手段が計算を行う際に、前記インタフェース手段が前記入力変数収集機能により収集した前記入力変数を前記制御演算手段が参照できる状態にして、前記制御演算手段の計算結果が保存される出力変数を指定して、前記制御演算手段の演算処理実行を命令する出力変数更新機能を前記インタフェース手段に設けることにより、上記課題を解決する。   If the control arithmetic means is allowed to perform operations such as declaration of variables used in the embedded controller, input processing, and update, functions other than arithmetic logic are mixed in the control arithmetic means. For example, a process for assigning a variable for outputting / storing the operation result to a specific address in the memory of the embedded controller, a process for referring to a variable that is an output result of another control operation means when performing an operation, or a control basic means For example, the generation of an execution interface for executing the process, the reference process of the variable that outputs the operation result, and the like. This means that functional changes other than the arithmetic logic and verification are required along with the change of the arithmetic logic, and there is a problem that man-hours associated with software development for the embedded controller increase. In the present invention, in the embedded controller, the above-mentioned problem is solved by providing the interface means with an output variable reference function for referring to the output variable of the interface means by other interface means. In the present invention, in the embedded controller, the input variable used when the control arithmetic unit corresponding to the interface unit performs calculation is collected by using another interface unit or an output variable reference function of its own. By providing a variable collection function in the interface means, the above problem is solved. In the present invention, in the built-in controller, when the control calculation means performs calculation according to an instruction from the control basic processing means or the like, the control calculation means refers to the input variable collected by the input variable collection function by the interface means. The interface means is provided with an output variable update function that designates an output variable in which the calculation result of the control arithmetic means is stored and commands the execution of arithmetic processing of the control arithmetic means. Resolve.

組込みコントローラ用ソフトウェアは、頻繁に変更される部分と半永久的に再利用される部分とに分類することが出来る。例えば、変数の演算ロジックのように変更されることが多い部分と、変数の更新順序のように変更されることが少ない部分とである。これが一体のプログラムとなっていると、組込みコントローラ用ソフトウェア内の変数の演算ロジックの変更であるにもかかわらず、変更する必要のない変数の更新順序の部分まで変更する必要があるという課題がある。本発明では、組込みコントローラにおいて、前記制御基本処理手段が、実行を命令する制御演算手段の種類と、前記制御演算手段と前記外部入力処理手段と前記外部出力処理手段と前記基本管理手段の実行順序とを定義し、前記制御基本処理手段が、前記外部入力処理手段と前記制御演算手段と前記外部出力処理手段と前記基本管理手段の実行を命令することにより、上記課題を解決する。   Embedded controller software can be classified into parts that change frequently and parts that are reused semipermanently. For example, there are a part that is often changed like the operation logic of a variable and a part that is rarely changed like the update order of variables. If this is an integrated program, there is a problem that even though it is a change in the arithmetic logic of variables in the embedded controller software, it is necessary to change to the part of the variable update order that does not need to be changed . In the present invention, in the built-in controller, the control basic processing means includes the type of the control arithmetic means for instructing execution, the execution order of the control arithmetic means, the external input processing means, the external output processing means, and the basic management means. And the control basic processing means commands the execution of the external input processing means, the control calculation means, the external output processing means, and the basic management means to solve the above-mentioned problem.

一つの制御演算手段が複数の変数の演算を行う場合、ある変数の演算方法を変更するためには該当する制御演算手段を変更する必要がある。そのため、演算手段が変更されない変数に関しても、その演算を行う制御演算手段が変更されてしまうという課題がある。本発明では、組込みコントローラにおいて、前記制御演算手段の計算結果である、他の制御演算手段や外部出力手段が参照するための変数は、制御演算手段1つにつき1つとすることにより、上記課題を解決する。   When one control calculation means calculates a plurality of variables, in order to change the calculation method of a certain variable, it is necessary to change the corresponding control calculation means. For this reason, there is a problem that the control calculation means for performing the calculation is changed even for a variable whose calculation means is not changed. In the present invention, in the built-in controller, the above-mentioned problem can be solved by setting one variable for each control calculation means to be referred to by other control calculation means or external output means, which is a calculation result of the control calculation means. Resolve.

組込みコントローラのソフトウェアを変更する場合、ソフトウェアの一部のバージョンアップであるにもかかわらず、ソフトウェア全体をCD−ROMなどの記録媒体で配布する必要があった。そのため、ソフトウェアの配布に時間がかかるという課題や、CD等の媒体が必要になるために廃棄物が増大するという課題がある。本発明では、組込みコントローラ配信サービスにおいて、前記制御演算手段を保管および送信する制御演算手段サーバ手段と制御演算手段の販売を行う制御演算手段販売手段とをネットワークで接続することにより、上記課題を解決する。   When the software of the embedded controller is changed, it is necessary to distribute the entire software on a recording medium such as a CD-ROM, even though the software is partially upgraded. For this reason, there is a problem that it takes time to distribute software and a problem that a waste increases because a medium such as a CD is required. In the present invention, in the embedded controller distribution service, the control calculation means server means for storing and transmitting the control calculation means and the control calculation means sales means for selling the control calculation means are connected by a network to solve the above problem. To do.

車両制御に関しては、排気規制およびOBD規制などの法的規制,X−by−Wireおよびハイブリッドシステムに代表される制御システムのエレクトロニクス化を背景に、組込みコントローラ用制御ソフトウェアの高機能化・大型化が進んでいる。また、高機能化・大型化する制御ソフトウェアを効率良く設計・作成しなければならないという課題がある。本発明では、前記組込みコントローラが車両に搭載されてエンジンや変速機などの制御を行うことにより、上記課題を解決する。   With regard to vehicle control, the control software for embedded controllers has become highly functional and large in size against the backdrop of legal regulations such as exhaust regulations and OBD regulations, and electronic control systems represented by X-by-Wire and hybrid systems. Progressing. In addition, there is a problem that it is necessary to efficiently design and create control software that is highly functional and large. In the present invention, the above-described problem is solved by mounting the built-in controller in a vehicle and controlling the engine, the transmission, and the like.

本発明の図。FIG. 実施例の車両用電子制御装置のシステム図。The system diagram of the electronic control device for vehicles of an example. 実施例の分散組込みコントローラのシステム図。The system figure of the distributed embedded controller of an Example. 組込みコントローラ用ソフトウェアの概要図。Overview of embedded controller software. アプリケーションソフトウェアの概要図。Overview of application software. タスク処理ソフトウェアのフローチャート。The flowchart of task processing software. トルクベース制御アプリケーションの構成図。The block diagram of a torque base control application. 制御ソフト部品のCソースコード。C source code for control software components. インタフェースソフトのCソースコード。C source code for interface software. トルクベース制御フレームワークの定義情報。Definition information for torque-based control framework. トルクベース制御フレームワークのフローチャート。The flowchart of a torque base control framework. 分散制御システムにおける入出力処理部のシステム図。The system diagram of the input-output processing part in a distributed control system. 組込みコントローラ用ソフトウェア開発プロセス図。Software development process diagram for embedded controller. 組込みソフトウェア開発手段1。Embedded software development means 1. 組込みソフトウェア開発手段2。Embedded software development means 2. 組込みソフトウェア開発手段3。Embedded software development means 3. インタフェースソフト自動生成フローチャート。Interface software automatic generation flowchart. 制御ソフト部品情報抽出フローチャート。7 is a control software component information extraction flowchart. インタフェースソフト生成フローチャート。Interface software generation flowchart. 組込みソフトウェアネットワーク配信図。Embedded software network distribution diagram. 組込みソフトウェアネットワーク配信サービス図。Embedded software network distribution service diagram.

符号の説明Explanation of symbols

1…制御ソフト部品、1A…ソフト部品A、1B…ソフト部品B、1C…ソフト部品C、1D…目標トルクを示す変数を演算するソフト部品D、1E…変数Aを演算するソフト部品E、1F…スロットル開度を示す変数を演算するソフト部品F、2…インタフェースソフト、2A…ソフト部品Aに対応するインタフェースソフト、2B…ソフト部品Bに対応するインタフェースソフト、2C…ソフト部品Cに対応するインタフェースソフト、
2D…ソフト部品Dに対応するインタフェースソフト、2E…ソフト部品Eに対応するインタフェースソフト、2F…ソフト部品Fに対応するインタフェースソフト、3…制御基本ソフトウェア、3A…トルクベース制御の基本制御部、4…外部入力データ、5…外部出力データ、6…組込みコントローラオペレーションシステム、7…車両、8…エンジン、9…自動変速機、A…アクセルペダル、10,20…制御ユニット(ECU)。
DESCRIPTION OF SYMBOLS 1 ... Control software component, 1A ... Software component A, 1B ... Software component B, 1C ... Software component C, 1D ... Software component D which calculates the variable which shows target torque, 1E ... Software component E, 1F which calculates the variable A ... software component F for calculating a variable indicating throttle opening, 2 ... interface software, 2A ... interface software corresponding to software component A, 2B ... interface software corresponding to software component B, 2C ... interface corresponding to software component C soft,
2D: Interface software corresponding to software component D, 2E: Interface software corresponding to software component E, 2F ... Interface software corresponding to software component F, 3 ... Control basic software, 3A ... Basic control unit for torque base control, 4 ... external input data, 5 ... external output data, 6 ... embedded controller operation system, 7 ... vehicle, 8 ... engine, 9 ... automatic transmission, A ... accelerator pedal, 10,20 ... control unit (ECU).

Claims (1)

特定の計算手順に基づく関数により演算を行う一つ以上の制御ソフト部品によって計算された出力データの出力および保存と前記制御ソフト部品への前記出力データの計算に用いる入力データの提供とを行うインタフェースソフトのソースコードを生成する組込みコントローラ開発装置であって、
前記制御ソフト部品が計算に用いる入力データは前記関数の引数であると共に、
前記制御ソフト部品によって計算される出力データは、関数の戻り値またはアドレスを指定した関数の引数であり、
前記組込みコントローラ開発装置は、
前記制御ソフト部品のソースコードから前記入力データと前記出力データのデータ名と型情報とを抽出する制御ソフト部品解析手段と、
前記制御ソフト部品解析手段が抽出したデータ名と型情報とに基づいて前記制御ソフト部品ごとに対応する前記インタフェースソフトのソースコードを生成するインタフェースソフト生成手段と、を有し、
前記インタフェースソフト生成手段は、プリプロセッサによるソースコード変換の際に参照先のデータに置きかえられることで、他のインタフェースソフトに前記出力データを参照させるための前記出力データのデータ名を用いた参照用マクロの記述と、
前記入力データおよび前記出力データのデータ名を用いたマクロがプリプロセッサによるソースコード変換の際に対応する前記ソフト部品の入力データおよび出力データに置きかえられることで、前記制御ソフト部品へ前記入力データを提供し、前記ソフト部品を呼び出して前記出力データを更新させるための更新命令の記述と、
前記出力データの保存領域を組込みコントローラ上に割り当てるための、前記出力データのデータ名と型情報を用いた制御データ宣言と、を前記インタフェースソフトのソースコードに設けることを特徴とする組込みコントローラ開発装置。
An interface for outputting and storing output data calculated by one or more control software components that perform a calculation based on a function based on a specific calculation procedure, and providing input data used to calculate the output data to the control software components An embedded controller development device that generates software source code,
The input data used for calculation by the control software component is an argument of the function,
The output data calculated by the control software component is a function argument specifying a return value or address of the function,
The embedded controller development device is:
Control software component analysis means for extracting the input data and the data name and type information of the output data from the source code of the control software component;
Interface software generation means for generating a source code of the interface software corresponding to each control software component based on the data name and type information extracted by the control software component analysis means,
The interface software generation means is a reference macro using the data name of the output data for allowing other interface software to refer to the output data by replacing the reference data when the source code is converted by the preprocessor. And a description of
By replaced in the input data and output data of the software component which the input data and macros with data name of the output data corresponds to the time source code conversion by the preprocessor, provided the input data to the control software component A description of an update instruction for calling the software component and updating the output data;
An embedded controller development device characterized in that a control data declaration using a data name and type information of the output data for allocating a storage area for the output data on the embedded controller is provided in a source code of the interface software .
JP2006326425A 2006-12-04 2006-12-04 Embedded controller and embedded controller development tool Expired - Fee Related JP4919782B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006326425A JP4919782B2 (en) 2006-12-04 2006-12-04 Embedded controller and embedded controller development tool

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006326425A JP4919782B2 (en) 2006-12-04 2006-12-04 Embedded controller and embedded controller development tool

Related Parent Applications (1)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011107783A Division JP5178878B2 (en) 2011-05-13 2011-05-13 Vehicle control device

Publications (2)

Publication Number Publication Date
JP2007109252A JP2007109252A (en) 2007-04-26
JP4919782B2 true JP4919782B2 (en) 2012-04-18

Family

ID=38035022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006326425A Expired - Fee Related JP4919782B2 (en) 2006-12-04 2006-12-04 Embedded controller and embedded controller development tool

Country Status (1)

Country Link
JP (1) JP4919782B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4973867B2 (en) * 2007-10-19 2012-07-11 オムロン株式会社 PLC control program development device and program

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05158673A (en) * 1991-12-09 1993-06-25 Matsushita Electric Ind Co Ltd Different-kind program generation device
JPH0667871A (en) * 1992-08-19 1994-03-11 Hitachi Software Eng Co Ltd Automatic program updating system
JP2000148460A (en) * 1998-11-17 2000-05-30 Digital Vision Laboratories:Kk Program converting method
JP2002229791A (en) * 2001-01-31 2002-08-16 Denso Corp Interface generating device, program, and storage medium

Also Published As

Publication number Publication date
JP2007109252A (en) 2007-04-26

Similar Documents

Publication Publication Date Title
JP3912278B2 (en) Embedded controller and embedded controller development tool
EP1703391B1 (en) Vehicle control software and vehicle control apparatus
Reif Automotive Mechatronics
US10423571B2 (en) Method for configuring a real or virtual electronic control unit
Hanselmann Hardware-in-the loop simulation as a standard approach for development, customization, and production test of ECU's
JP4515701B2 (en) VEHICLE CONTROL PROGRAM AND VEHICLE CONTROL DEVICE
JP2007253792A (en) Software system of vehicular electronic control device, and its design method
US7197743B2 (en) Method for generating computer software for embedded systems
JP4919782B2 (en) Embedded controller and embedded controller development tool
JP5178878B2 (en) Vehicle control device
JP2006518436A (en) Control device and computer program for controlling drive aggregate of vehicle
Köster et al. Connecting Simulink to OSEK: Automatic code generation for real-time operating systems with Targetlink
US11392353B2 (en) Method for generating source code using service-based communication
JP2013161219A (en) Code generation device and code generation program
Geng et al. Embedded C code generation platform for electric vehicle controller
JP4921175B2 (en) Software creation method for automobile control device
JP2020144509A (en) Automatic code generation method and automatic code generating program
US20230342115A1 (en) Method for generating source code
Panday et al. AIL: description of a global electronic architecture at the vehicle scale
JP6528697B2 (en) Electronic control device and code generation program
Hermsen et al. Application of the object-oriented modeling concept OMOS for signal conditioning of vehicle control units
CN117931642A (en) Log processing method based on AUTOSAR and electronic equipment
Schaffnit et al. Efficient and sustainable management of vehicle models
Mjeda et al. The autosar standard-the experience of applying simulink according to its requirements
JP2004252841A (en) Source code generator, source code generation program, and source code generation method

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120131

R150 Certificate of patent or registration of utility model

Ref document number: 4919782

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150210

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees