JP5605109B2 - Program generating apparatus, method and program, and remote management system - Google Patents
Program generating apparatus, method and program, and remote management system Download PDFInfo
- Publication number
- JP5605109B2 JP5605109B2 JP2010205344A JP2010205344A JP5605109B2 JP 5605109 B2 JP5605109 B2 JP 5605109B2 JP 2010205344 A JP2010205344 A JP 2010205344A JP 2010205344 A JP2010205344 A JP 2010205344A JP 5605109 B2 JP5605109 B2 JP 5605109B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- information
- program
- processors
- configuration information
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
本発明は、プログラム生成装置、方法及びプログラム並びに遠隔管理システムに関し、特に、複数のプロセッサを備え、所定の機能を実現する組み込み機器で実行可能なプログラムを生成するためのプログラム生成装置、方法及びプログラム並びに遠隔管理システムに関する。 The present invention relates to a program generation apparatus, method, and program, and a remote management system, and more particularly to a program generation apparatus, method, and program for generating a program that includes a plurality of processors and that can be executed by an embedded device that realizes a predetermined function. And a remote management system.
近年、自動車には、複数の制御系ECU(Electronic Control Unit)ばかりでなく、情報系ECUが搭載されている。ここで、制御系ECUとは、エンジン制御系、ボディー系などの自動車本体を制御するための電子制御装置を指す。自動車には、通常、数十〜百個の制御系ECUが搭載されている。また、情報系ECUとは、カーナビやAV(Audio Visual)システムなどのマルチメディア機能等の機能を制御するための電子制御装置を指す。そして、情報系ECUは、内部のプロセッサによりプログラムを実行することにより制御系ECUに比べて柔軟な制御が可能である。そのため、情報系ECUが複数の制御系ECUをプログラムにより制御する場合もある。 In recent years, not only a plurality of control system ECUs (Electronic Control Units) but also information system ECUs are mounted on automobiles. Here, the control system ECU refers to an electronic control device for controlling an automobile body such as an engine control system or a body system. In general, several tens to hundreds of control system ECUs are mounted on an automobile. The information system ECU refers to an electronic control device for controlling functions such as multimedia functions such as a car navigation system and an AV (Audio Visual) system. The information system ECU can be controlled more flexibly than the control system ECU by executing a program by an internal processor. Therefore, the information system ECU may control a plurality of control system ECUs by a program.
このようなことから、自動車の開発は、複数の開発チームやサプライヤにより行われることが一般的である。そして、今後、自動車には制御系ECUだけでなく、情報系ECUについても複数の構成となることが予想される。また、大手メーカでは、開発部門と保守部門が分かれており、開発と保守はそれぞれ別のエンジニアが行う場合が多い。 For these reasons, the development of automobiles is generally performed by a plurality of development teams and suppliers. In the future, not only the control system ECU but also the information system ECU is expected to have a plurality of configurations. Also, in major manufacturers, the development department and the maintenance department are separated, and development and maintenance are often performed by different engineers.
ここで、自動車等の各種機能をデバイスという単位で管理するためのデバイスの構成を定義するための技術としてDMT(Device Management Tree)がある。DMTは、デバイス管理を行うために使用される木構造データである。各ノードの名前は、URI(Uniform Resource Identifier)として表すことができる。そのため、ネットワーク上デバイス管理サーバや組み込み機器内のデバイス管理アプリは、URIを指定することでDMT内の任意のノードに対して読み書きや実行命令の発行を行うことができる。また、DMTにノードを動的に追加することも可能である。 Here, there is DMT (Device Management Tree) as a technique for defining a device configuration for managing various functions of an automobile or the like in units of devices. The DMT is tree structure data used for device management. The name of each node can be expressed as a URI (Uniform Resource Identifier). Therefore, the device management server on the network and the device management application in the embedded device can read / write and issue an execution command to any node in the DMT by specifying the URI. It is also possible to dynamically add nodes to the DMT.
また、DMTベースのデバイス管理技術としてOMA−DM(Open Mobile Alliance−Device Management)がある。OMA−DMは、3G携帯電話やWIMAX(Worldwide Interoperability for Microwave Access)で運用されている遠隔デバイス管理プロトコルの規格である。規格化団体は、OMA(Open Mobile Alliance)である。OMA−DMは、DMTに相当するMO(Management Object)という単位でデバイスの管理を行う。OMA−DMが提供する標準MOは、FUMO(遠隔ファームウエア更新)、SCOMO(遠隔SW更新)、DiagMon(遠隔診断)、LAWMO(遠隔セキュリティーロック)などがある。例えば、特許文献1には、モバイル・デバイスを管理するための技術が開示されている。
Moreover, there is OMA-DM (Open Mobile Alliance-Device Management) as a DMT-based device management technology. OMA-DM is a standard for a remote device management protocol used in 3G mobile phones and WIMAX (Worldwide Interoperability for Microwave Access). The standardization organization is OMA (Open Mobile Alliance). OMA-DM manages devices in units of MO (Management Object) corresponding to DMT. Standard MOs provided by OMA-DM include FUMO (remote firmware update), SCOMO (remote SW update), Diamon (remote diagnosis), and LAWMO (remote security lock). For example,
また、現状の車載機の診断における状況としては、次のとおりである。まず、制御系ECUに関しては、サービスエンジニアがOBD2とよばれるコネクタに診断テスタを接続して診断や制御を行っている。また、情報系ECUに関しては、サービスセンタに持ち込み後、情報系ECUに接続されるストレージからログ情報を取得するやり方が現在主流である。 In addition, the current status of in-vehicle device diagnosis is as follows. First, regarding the control system ECU, a service engineer performs diagnosis and control by connecting a diagnostic tester to a connector called OBD2. As for the information system ECU, a method of acquiring log information from a storage connected to the information system ECU after being brought into a service center is currently mainstream.
そして、最近では、自動車の各種機能を管理するために、OMA−DMなどのDMTをサポートした遠隔デバイス管理プロトコルなどを使用した遠隔診断プログラムを情報系ECUに予め埋め込むか、製品出荷後に、新たに診断プログラムを情報系ECUに送り込むなどの手法が考えられている。後者は、出荷後に不具合に可能性があることがわかった特定の自動車に対して、特殊な診断プログラムを送り込む際に使用する。 Recently, in order to manage various functions of automobiles, a remote diagnosis program using a remote device management protocol that supports DMT such as OMA-DM is embedded in the information ECU in advance, or after the product is shipped, Methods such as sending a diagnostic program to the information system ECU are considered. The latter is used when sending a special diagnostic program to a specific vehicle that has been found to have a potential defect after shipment.
尚、特許文献2には、車両診断プログラムの作成や修正を行うための車両診断プログラム作成装置及び車両診断装置に関する技術が開示されている。特許文献3には、通信を行うためのプログラムの作成を行い、間違いがあった場合に、その原因の特定を行うためのツール装置に関する技術が開示されている。
このように、複数の情報系ECUに対応する遠隔診断プログラムを作成するためには、広範な専門知識が必要となり、保守作業を行うサービスエンジニアが単独で行うには難易度が高いという問題点があった。その理由は、上述した診断プログラムは、現状、各々のECUに詳しい開発部門のエンジニアがプログラミングにより作成しなければならないからである。そのため、保守部門又はサービスセンタのサービスエンジニアが作成するには敷居が高い。 Thus, in order to create a remote diagnosis program corresponding to a plurality of information system ECUs, a wide range of specialized knowledge is required, and it is difficult for a service engineer who performs maintenance work to perform alone. there were. This is because the above-described diagnostic program must be created by programming by engineers in the development department familiar with each ECU. Therefore, the threshold is high for the service engineer of the maintenance department or service center to create.
ここで、複数の情報系ECUに対応する遠隔診断プログラムを作成するには、次のような知識が必要となる。まず、各情報系ECUで使われているプログラム言語やOS(Operating System)のシステムコール及びシステム固有の設計思想に関する知識が必要となる。例えば、第1の情報系ECUには、Linux(登録商標)及びC++言語の知識が必要となり、第2の情報系ECUには、T−kernel及びC言語の知識が必要となるといった具合である。さらに、OMA−DMプロトコル及び各情報系ECU間のDMT共有方法や制御系ECU向けの車載診断プロトコルや他ECUからのイベント取得方法などの知識も必要となる。 Here, in order to create a remote diagnosis program corresponding to a plurality of information system ECUs, the following knowledge is required. First, knowledge about the programming language used in each information system ECU, the OS (Operating System) system call, and the design concept unique to the system is required. For example, the first information system ECU requires knowledge of Linux (registered trademark) and C ++, and the second information system ECU requires knowledge of T-kernel and C language. . Furthermore, knowledge of the OMA-DM protocol and the DMT sharing method between each information system ECU, an in-vehicle diagnostic protocol for the control system ECU, and an event acquisition method from another ECU is also required.
尚、特許文献1乃至3にかかる技術では、複数の制御系ECUと複数の情報系ECUを備えた組み込み機器において、情報系ECU間の通信処理等を個別に実装しなければならず、上述した問題を解決することはできない。
In the techniques according to
本発明は、このような問題点を解決するためになされたものであり、複数のプロセッサを備え、所定の機能を実現する組み込み機器における広範な専門知識が必要とせずに、当該組み込み機器で実行されるプログラムを容易に生成するためのプログラム生成装置、方法及びプログラム並びに遠隔管理システムを提供することを目的とする。 The present invention has been made in order to solve such problems, and can be executed on an embedded device without a need for extensive expertise in an embedded device having a plurality of processors and realizing a predetermined function. An object of the present invention is to provide a program generation apparatus, method and program for easily generating a program to be executed, and a remote management system.
本発明の第1の態様にかかるプログラム生成装置は、複数のプロセッサが搭載され、所定の機能を実現する組み込み機器における当該複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を予め記憶する記憶手段と、前記組み込み機器における前記所定の機能の構成を複数のノードにより定義した構成情報を生成する構成情報生成手段と、前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成するノード状態情報生成手段と、前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する変換手段と、前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記記憶手段に記憶された前記通信処理情報と、前記変換したプログラムコードとを含めて生成するプログラム生成手段と、を備える。 The program generation apparatus according to the first aspect of the present invention includes communication processing information that is a program module in which a plurality of processors are mounted and communication processing between the plurality of processors in an embedded device that realizes a predetermined function. Storage means for storing in advance; configuration information generating means for generating configuration information in which the configuration of the predetermined function in the embedded device is defined by a plurality of nodes; and for each of the plurality of nodes defined in the configuration information, Node state information generating means for generating node state information that defines the state and action information that is the behavior of the node in the state, and the action information defined in the node state information, to the behavior of the node in the state of the node Conversion means for converting into program code for realizing corresponding processing, and the configuration Based on the distribution, a plurality of programs corresponding to each of the plurality of processors, comprising the communication processing information stored in the storage means, and a program generation means for generating including program code the converted.
本発明の第2の態様にかかるプログラム生成方法は、複数のプロセッサが搭載され、所定の機能を実現する組み込み機器における当該所定の機能の構成を複数のノードにより定義した構成情報を生成し、前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成し、前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換し、前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報と、前記変換したプログラムコードとを含めて生成する。 According to a second aspect of the present invention, there is provided a program generation method for generating configuration information in which a plurality of processors are mounted and a configuration of a predetermined function in an embedded device that realizes a predetermined function is defined by a plurality of nodes. For each of the plurality of nodes defined in the configuration information, node state information that defines the node state and action information that is the behavior of the node in the state is generated, and from the action information defined in the node state information, Converts into program code that realizes processing corresponding to the behavior of the node in the node state, and implements a plurality of programs corresponding to each of the plurality of processors based on the configuration information in communication processing between the plurality of processors Communication processing information, which is a converted program module, and the converted program code. To generate Te.
本発明の第3の態様にかかるプログラム生成プログラムは、複数のプロセッサが搭載され、所定の機能を実現する組み込み機器における当該所定の機能の構成の複数のノードによる定義を受け付け、当該受け付けた定義に基づき構成情報を生成し、前記構成情報に含まれる複数のノードのいずれかの指定を受け付け、当該指定されたノードにおけるノードの状態と当該状態におけるノードの振る舞いであるアクション情報との定義を受け付け、当該受け付けた前記ノードの状態と前記アクション情報途に基づきノード状態情報を生成し、前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換し、予め記憶部に格納された前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を取得し、前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記取得した通信処理情報と、前記変換したプログラムコードとを含めて生成する処理をコンピュータに実行させるプログラムである。 The program generation program according to the third aspect of the present invention is provided with a plurality of processors and accepts definitions by a plurality of nodes of a configuration of the predetermined function in an embedded device that realizes the predetermined function, and the received definition Generating configuration information based on the above, accepting designation of any of a plurality of nodes included in the configuration information, accepting definitions of the state of the node in the designated node and the action information that is the behavior of the node in the state, Program code that generates node state information based on the received state of the node and the action information path, and realizes processing corresponding to the behavior of the node in the state of the node from the action information defined in the node state information Between the plurality of processors previously stored in the storage unit Communication processing information, which is a program module in which communication processing is implemented, is acquired, and a plurality of programs corresponding to each of the plurality of processors is acquired based on the configuration information, and the acquired communication processing information and the converted program code Is a program that causes a computer to execute processing to be generated.
本発明の第4の態様にかかる組み込み機器の遠隔管理システムは、外部と無線通信可能なプロセッサを含む複数のプロセッサを備え、所定の機能を実現する組み込み機器と、前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を予め記憶する記憶手段と、前記組み込み機器における前記所定の機能の構成を複数のノードにより定義した構成情報を生成する構成情報生成手段と、前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成するノード状態情報生成手段と、前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する変換手段と、前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記記憶手段に記憶された前記通信処理情報と、前記変換したプログラムコードとを含めて生成するプログラム生成手段と、無線通信により前記組み込み機器に対して制御を行う遠隔制御手段と、を備える遠隔管理装置と、を備え、前記遠隔制御手段は、前記生成した複数のプログラムを前記組み込み機器へ送信し、前記組み込み機器は、前記遠隔管理装置から受信した複数のプログラムのそれぞれを、前記複数のプロセッサのうち対応するプロセッサにおいて実行させ、前記複数のプロセッサは、各プロセッサが実行するプログラムに含まれる前記変換したプログラムコードに基づく処理を行い、当該プログラムに含まれる通信処理に基づいて、プロセッサ間の通信を行う。 An embedded device remote management system according to a fourth aspect of the present invention includes a plurality of processors including a processor capable of wireless communication with the outside, and a communication process between the embedded device that realizes a predetermined function and the plurality of processors. Storage means for storing in advance communication processing information, which is a program module in which is installed, configuration information generating means for generating configuration information in which the configuration of the predetermined function in the embedded device is defined by a plurality of nodes, and the configuration information Node state information generating means for generating node state information that defines a node state and action information that is a behavior of the node in the state for each of a plurality of nodes defined in the above, and an action defined in the node state information A program that realizes processing corresponding to the behavior of the node in the state of the node from the information Conversion means for converting into a program code, a plurality of programs corresponding to each of the plurality of processors based on the configuration information, including the communication processing information stored in the storage means and the converted program code A remote management device comprising: a program generating unit for generating; and a remote control unit for controlling the embedded device by wireless communication, wherein the remote control unit stores the generated plurality of programs in the embedded device. The embedded device causes each of the plurality of programs received from the remote management device to be executed by a corresponding processor among the plurality of processors, and the plurality of processors are included in a program executed by each processor. Processing based on the converted program code to be included in the program. Based on the communication processing, communication between processors.
本発明により、複数のプロセッサを備え、所定の機能を実現する組み込み機器における広範な専門知識が必要とせずに、当該組み込み機器で実行されるプログラムを容易に生成するためのプログラム生成装置、方法及びプログラム並びに遠隔管理システムを提供することができる。 According to the present invention, a program generation apparatus, method, and method for easily generating a program to be executed on an embedded device without requiring extensive expertise in the embedded device that includes a plurality of processors and realizes a predetermined function A program and a remote management system can be provided.
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。 Hereinafter, specific embodiments to which the present invention is applied will be described in detail with reference to the drawings. In the drawings, the same elements are denoted by the same reference numerals, and redundant description will be omitted as necessary for the sake of clarity.
<発明の実施の形態1>
図1は、本発明の実施の形態1にかかるプログラム生成装置1の構成を示すブロック図である。プログラム生成装置1は、複数のプロセッサが搭載され、所定の機能を実現する組み込み機器(不図示)において実行可能なプログラムを生成するコンピュータシステムである。特に、プログラム生成装置1は、複数のプロセッサのそれぞれに対応した複数のプログラムを生成する。ここで、生成される複数のプログラムは、それぞれ、対応するプロセッサにおいて実行可能な機械語プログラム又は当該機械語プログラムにコンパイル可能なソースプログラムである。また、生成される複数のプログラムは、組み込み機器の所定の機能を実現するためのプログラムであるか、当該機能を検査又は診断等するための補助的な機能を実現するためのプログラムである。そして、生成される複数のプログラムは、既存の有線通信又は無線通信の手段を用いてプログラム生成装置1から組み込み機器へ転送されることにより、対応する各プロセッサ上で実行される。また、生成される複数のプログラムは、各プロセッサで実行される際に、プロセッサ間の通信を行うことができるものである。
<
FIG. 1 is a block diagram showing a configuration of a
プログラム生成装置1は、記憶部11と、構成情報生成部12と、ノード状態情報生成部13と、変換部14と、プログラム生成部15とを備える。記憶部11は、複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報111を予め記憶する記憶装置である。構成情報生成部12は、組み込み機器における所定の機能の構成を複数のノードにより定義した構成情報を生成する。構成情報には、組み込み機器を物理的な構成要素に限らず、機能レベルの抽象的な構成要素も含まれる。例えば、機能名、部品名、属性、パラメータ値、計量値等をノードとして表現し、ノード間の関係を定義した情報である。ノード状態情報生成部13は、構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成する。変換部14は、ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する。プログラム生成部15は、構成情報に基づいて、複数のプロセッサごとに対応した複数のプログラムを、記憶部11に記憶された通信処理情報111と、変換したプログラムコードとを含めて生成する。尚、構成情報生成部12と、ノード状態情報生成部13と、変換部14と、プログラム生成部15とは、これらの機能を実装したプログラム生成プログラムをCPU(Central Processing Unit)等の制御部により実行することにより実現することが可能である。尚、本発明の実施の形態1では、定義されたノードとプロセッサとの関連付けは、予め定義されているものとする。
The
図2は、本発明の実施の形態1にかかるプログラム生成方法の処理の流れを示すフローチャートである。まず、構成情報生成部12は、構成情報を生成する(S11)。このとき、構成情報生成部12は、機能の構成に関する情報や複数のノードの指定を外部から受け付けるようにしてもよい。次に、ノード状態情報生成部13は、構成情報を参照し、複数のノードのそれぞれに対応した複数のノード状態情報を生成する(S12)。このとき、ノード状態情報生成部13は、ノードの状態とアクション情報とを外部から受け付けるようにしてもよい。
FIG. 2 is a flowchart showing a flow of processing of the program generation method according to the first exemplary embodiment of the present invention. First, the configuration
そして、変換部14は、ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する(S13)。変換されるプログラムコードは、機械語のコードでなくとも、少なくともソースコードであればよい。但し、変換部14は、アクション情報をノードに予め関連付けられたプロセッサに対応するプログラムコードに変換するものとする。また、変換部14は、複数のノード状態情報のそれぞれに定義されたアクション情報ごとに異なるプログラムコードへ変換する。
Then, the
その後、プログラム生成部15は、構成情報に基づいて、複数のプロセッサごとに対応した複数のプログラムを生成する(S14)。つまり、プログラム生成装置1は、組み込み機器に対する一つの構成情報から複数のプログラムを生成する。その際、プログラム生成部15は、記憶部11から通信処理情報111を読み出して、各プログラムに含める。つまり、生成されたプログラムは、他のプロセッサとの通信処理が実装されたこととなる。また、プログラム生成部15は、ステップS13により変換したプログラムコードを、ノードに対応するプログラムに含める。つまり、アクション情報として定義することにより、プロセッサに応じたプログラムコードが実装されたこととなる。
Thereafter, the
このように、本発明の実施の形態1により、構成情報やノード状態情報といった組み込み機器の所定の機能を表現する情報を用いて、複数のプロセッサのそれぞれで実行可能な複数のプログラムを生成することができる。一方、サービスエンジニア等は、所定の機能についての専門知識があるが、複数のプロセッサで実行可能なプログラミングについての広範な専門知識を備えていないことが一般的である。そのため、本発明の実施の形態1により、サービスエンジニア等であっても、複数のプロセッサを備え、所定の機能を実現する組み込み機器で実行されるプログラムを容易に生成することができる。 As described above, according to the first embodiment of the present invention, a plurality of programs that can be executed by each of a plurality of processors are generated using information representing a predetermined function of an embedded device such as configuration information and node state information. Can do. On the other hand, a service engineer or the like generally has expertise on a predetermined function, but generally does not have extensive expertise on programming that can be executed by a plurality of processors. Therefore, according to the first embodiment of the present invention, even a service engineer or the like can easily generate a program that includes a plurality of processors and is executed by an embedded device that realizes a predetermined function.
<発明の実施の形態2>
図3は、本発明の実施の形態2にかかる遠隔管理システム10の構成を示すブロック図である。尚、本発明の実施の形態2は、上述した発明の実施の形態1にかかるプログラム生成装置1を用いて実現した例について説明する。尚、発明の実施の形態1と同一の構成要素について、同一の符号を付し、詳細な説明を省略する。
<
FIG. 3 is a block diagram showing a configuration of the
遠隔管理システム10は、遠隔管理装置1aと組み込み機器2とを備える。遠隔管理システム10は、遠隔管理装置1aを用いて、組み込み機器2の各種機能を遠隔管理するための仕組である。遠隔管理装置1aは、プログラム生成装置1の構成要素に加え、遠隔制御部16をさらに備える。遠隔制御部16は、無線通信により組み込み機器に対して制御を行う。具体的には、遠隔制御部16は、プログラム生成部15により生成された複数のプログラムを無線通信により組み込み機器2へ転送する。また、遠隔制御部16は、組み込み機器2内の各プログラムに対して各種制御の指示を行う。これにより、遠隔管理装置1aは、組み込み機器2を遠隔管理する。
The
組み込み機器2は、プロセッサ21a、21b、・・・及び21nを備える。また、組み込み機器2は、プロセッサ21a、21b、・・・及び21nの少なくとも一部を用いて所定の機能を実現する。また、プロセッサ21aは、外部との無線通信機能を有する。プロセッサ21aは、少なくとも遠隔制御部16との無線通信が可能である。
The embedded
図4は、本発明の実施の形態2にかかる遠隔管理方法の処理の流れを示すシーケンス図である。まず、遠隔管理装置1aは、図2のステップS11〜S14と同等の処理により、プロセッサごとの複数のプログラムを生成する。すなわち、遠隔管理装置1aは、プロセッサ21a、21b、・・・及び21nのそれぞれに対応する機械語プログラムを生成する。
FIG. 4 is a sequence diagram showing a processing flow of the remote management method according to the second exemplary embodiment of the present invention. First, the
次に、遠隔制御部16は、組み込み機器2のプロセッサ21aに対して、複数のプログラムを送信する(S15)。そして、プロセッサ21aは、遠隔管理装置1aから受信した複数のプログラムのそれぞれを、対応するプロセッサに送信する(S16)。つまり、プロセッサ21aは、プロセッサ21bにはプロセッサ21b上で実行可能なプログラムを、プロセッサ21nにはプロセッサ21n上で実行可能なプログラムを、それぞれ送信する。
Next, the
そして、プロセッサ21a、21b、・・・及び21nは、受信した各プログラムを実行する(S17)。プロセッサ21a、21b、・・・及び21nは、各プロセッサが実行するプログラムに含まれるプログラムコードに基づく処理を行う。ここで、プログラムコードは、ステップS13によりアクション情報に基づいてプロセッサごとに変換されたものである。そのため、各プロセッサは、ノードの状態におけるノードの振る舞いに相当する処理を実行することができる。
Then, the
また、プロセッサ21a、21b、・・・及び21nは、各プロセッサが実行するプログラムに含まれる通信処理に基づいて、プロセッサ間の通信を行う(S18)。例えば、プロセッサ21aと21bとは、プロセッサ間で相互のノードに対してイベントを発生させ、また、イベントに対する応答を行う。
Further, the
このように、本発明の実施の形態2により、発明の実施の形態1と同様の効果を奏することができる。 Thus, according to the second embodiment of the present invention, the same effects as those of the first embodiment of the present invention can be achieved.
<発明の実施の形態3>
複数の情報系ECUに対応する遠隔診断プログラムを作成するために、MDA(登録商標)(Model Driven Architecture)を用いて、遠隔診断の仕様から診断プログラムを自動生成する手法が考えられる。なぜなら、MDAを導入することにより、プログラム設計やコーディング技術などの専門知識の敷居を下げることが可能であるからである。
<Third Embodiment of the Invention>
In order to create a remote diagnosis program corresponding to a plurality of information system ECUs, a method of automatically generating a diagnosis program from a remote diagnosis specification using MDA (registered trademark) (Model Drive Architecture) can be considered. This is because by introducing MDA, it is possible to lower the threshold of specialized knowledge such as program design and coding technology.
ここで、MDAとは、モデルとして表現される構造的仕様のガイドラインを提供するソフトウェア開発手法である。MDAを用いると、GUI開発ツールを用いて記述されたモデルから、機械語プログラムを自動生成することが可能となる。MDAを用いた開発ツールとしては、例えば、BridgePointやRhapsodyなどがあり、組み込み系ソフトウェア開発に用いられている。また、MDAには、SQLの構文を一部取り入れたアクション記述言語をサポートしたExecutable UML(Unified Modeling Language)という手法がある。 Here, MDA is a software development technique that provides guidelines for structural specifications expressed as models. When MDA is used, a machine language program can be automatically generated from a model described using a GUI development tool. Development tools using MDA include, for example, BridgePoint and Rhapsody, and are used for embedded software development. In addition, MDA has a method called Executable UML (Unified Modeling Language) that supports an action description language that partially incorporates the syntax of SQL.
図18は、MDAを用いた場合のプログラム作成手順の概念を示す図である。まず、オブジェクト指向分析(Object−Oriented Analysis)(以下、OOAと呼ぶ)に相当する作業として、診断仕様に基づくUMLのモデリングを行う(S91)。次に、オブジェクト指向設計(Object−Oriented Design)(以下、OODと呼ぶ)に相当する作業として、情報系ECUごとに必要な機能についてのUMLのモデリングを行う(S92及びS93)。その後、各情報系ECUに対応したモデルコンパイラにより、各モデルからソースコードSC1及びSC2を生成する(S94及びS95)。 FIG. 18 is a diagram showing a concept of a program creation procedure when MDA is used. First, as an operation corresponding to object-oriented analysis (hereinafter referred to as OOA), UML modeling based on diagnostic specifications is performed (S91). Next, as an operation corresponding to object-oriented design (hereinafter referred to as OOD), UML modeling is performed for functions required for each information system ECU (S92 and S93). Thereafter, source codes SC1 and SC2 are generated from each model by a model compiler corresponding to each information system ECU (S94 and S95).
しかしながら、複数の情報系ECUに対応する遠隔診断プログラムを作成するために、単純に、MDAを用いるだけでは、下記に示すような問題があり、サービスエンジニアが単独で行うには難易度が高いという問題は、解消しない。 However, simply using MDA to create a remote diagnosis program corresponding to a plurality of information system ECUs has the following problems, and it is difficult for a service engineer to do it alone. The problem does not go away.
(1)関連する情報系ECUの数だけ、UML等で記述されたモデルを生成し、各々のモデルコンパイラでコンパイルする必要がある。つまり、ステップS91(OOA相当)後、OOD相当のフェーズで、クラスライブラリと各情報系ECUに割り当てられた機能を考慮したモデルに、作り直さなければならない。また、情報系ECU毎に分割されたモデル間の連携方法や管理センタ(例えば、図3の遠隔管理装置1a)との通信方法も、別途考える必要がある。
(1) It is necessary to generate as many models described in UML as the number of related information system ECUs and compile them with each model compiler. In other words, after step S91 (equivalent to OOA), it is necessary to recreate the model in consideration of the functions assigned to the class library and each information system ECU in a phase equivalent to OOD. In addition, it is necessary to consider separately the cooperation method between models divided for each information system ECU and the communication method with the management center (for example, the
(2)オブジェクトのライフサイクルの管理(オブジェクトやイベント生成、削除など)は、モデル作成者が記述しなければならない。これは、MDAのようなオブジェクト指向設計手法を、強引にデバイス管理に持ち込んだ場合に発生する矛盾である。 (2) Object life cycle management (object and event creation, deletion, etc.) must be described by the model creator. This is a contradiction that occurs when an object-oriented design method such as MDA is forcibly brought into device management.
(3)情報系ECU間の通信処理に関しては自動生成できず、従来の手書きによる処理を実装しなければならない。 (3) Communication processing between information system ECUs cannot be automatically generated, and conventional handwritten processing must be implemented.
(4)さらに、情報系ECU間の連携を考えた場合、モデル作成時のアクション記述が複雑になってしまい、結局、MDAを導入する利点がなくなってしまう。つまり、管理センタと無線通信するECUの割り当てを定義しなければならない。また、管理センタから受信したイベントを基に他の情報系ECUに割り振るしくみや、他の情報系ECUからのアクションを管理センタにフィードバックするしくみを考えなければならない。 (4) Furthermore, when considering cooperation between information system ECUs, the action description at the time of model creation becomes complicated, and eventually the advantage of introducing MDA is lost. In other words, it is necessary to define the allocation of ECUs that communicate wirelessly with the management center. Further, it is necessary to consider a mechanism for allocating to other information system ECUs based on events received from the management center and a mechanism for feeding back actions from other information system ECUs to the management center.
そこで、本発明の実施の形態3では、図19に示すようなプログラム生成方法の概念について説明する。図19では、まず、OOAと呼ぶに相当する作業として、設計対象の組み込み機器に関するDMTに基づくモデリングを行う(S41)。そのため、サービスエンジニアは、DMT構成と、制御系ECUや各センサーと情報系ECUの割り当てを把握していれば、プログラムを生成することができる。 Therefore, in the third embodiment of the present invention, the concept of a program generation method as shown in FIG. 19 will be described. In FIG. 19, first, modeling based on DMT related to an embedded device to be designed is performed as work equivalent to calling OOA (S41). Therefore, the service engineer can generate a program if the DMT configuration and the allocation of the control system ECU, each sensor, and the information system ECU are known.
次に、DMTのノード構成及び各ノードの振る舞いを基に、組み込み装置内に搭載される複数のECUごとのソースコードSC1及びSC2を生成する(S42)。このとき、ノードと情報系ECUとの割り当てを基に、自動的にモデルが分割される。その後、各々の情報系ECUに対応したモデルコンパイラで別々にビルドされる。 Next, based on the node configuration of the DMT and the behavior of each node, source codes SC1 and SC2 are generated for each of a plurality of ECUs mounted in the embedded device (S42). At this time, the model is automatically divided based on the assignment between the node and the information system ECU. Thereafter, it is built separately by a model compiler corresponding to each information system ECU.
これにより、ソースコードSC1及びSC2をコンパイルすることにより、組み込み装置内の各ECUで実行される機械語プログラムを生成する。ここで、生成される機械語プログラムには、管理センタのサーバと組み込み装置間の通信処理及び組み込み装置内に搭載される複数のECUの連携処理が含まれる。また、本発明の実施の形態3には、自動生成された機械語プログラムの構成方法、並びに、これらに対応したGUI開発ツール及びモデルコンパイラも含まれる。このように、本発明の実施の形態3により、サービスエンジニアが情報系ECU間の連携や管理センタとの通信に関するロジックを記述する必要がなくなる。 Thus, by compiling the source codes SC1 and SC2, a machine language program to be executed by each ECU in the embedded device is generated. Here, the generated machine language program includes communication processing between the server of the management center and the embedded device, and cooperation processing of a plurality of ECUs mounted in the embedded device. Further, the third embodiment of the present invention includes a method for configuring an automatically generated machine language program, and a GUI development tool and a model compiler corresponding to them. As described above, according to the third embodiment of the present invention, it is not necessary for the service engineer to describe the logic related to the communication between the information ECUs and the communication with the management center.
本発明の実施の形態3は、上述した発明の実施の形態1にかかるプログラム生成装置1に改良を加えることでも実現することができる。その場合、以下のような構成を有することとなる。構成情報生成部12は、各ノードに複数のプロセッサのいずれかを割り当てた割当情報を含めて構成情報を生成し、プログラム生成部15は、構成情報に含まれる割当情報に基づいて、各ノードを割り当てられた複数のプロセッサのいずれかに分類して複数の分類後構成情報を生成し、生成された複数の分類後構成情報から複数のプログラムを生成する。
The third embodiment of the present invention can also be realized by improving the
また、複数のプロセッサのそれぞれに対応したプログラムを生成する複数のモデルコンパイラをさらに備え、プログラム生成部15は、分類後構成情報から対応するプロセッサを特定し、特定したプロセッサに対応するモデルコンパイラを選択して、選択したモデルコンパイラを用いて分類後構成情報から当該特定したプロセッサで実行可能なプログラムを生成することが望ましい。
In addition, a plurality of model compilers for generating a program corresponding to each of the plurality of processors is further provided, and the
さらに、プログラム生成部15は、複数のプログラムを生成する際に、ノードアクセスに対応する非同期イベントをさらに含めることが望ましい。また、構成情報生成部12は、構成情報としてDMTを用いることが望ましい。さらに、ノード状態情報生成部13は、ノード状態情報に、複数のプロセッサ上で動作するアプリケーションの処理結果を加工するルールを関連付けるとよい。また、ノード状態情報生成部13は、ノード状態情報に、組み込み機器に搭載され、かつ、複数のプロセッサにより制御される制御装置との通信を行うためのルールを関連付けるとよい。
Furthermore, it is desirable that the
図5は、本発明の実施の形態3にかかる遠隔車載診断システム100の構成を示すブロック図である。遠隔車載診断システム100は、開発用PC101と、管理センタの管理サーバ102と、車載組み込み機器103とを備える。遠隔車載診断システム100は、車載組み込み機器103における各種機能を遠隔に診断するための仕組みである。尚、遠隔車載診断システム100は、主に、車載組み込み機器をターゲットとした遠隔デバイス管理システムの一部であるが、本発明の実施の形態3はこれに限定されない。
FIG. 5 is a block diagram showing a configuration of the remote in-
開発用PC101は、GUI開発ツールを用いて、車載診断プログラムを作成する(S51)。車載診断プログラムは、車載組み込み機器103に搭載された複数のプロセッサに対応する複数の機械語プログラムである。具体的には、開発用PC101は、ユーザからDMTのノードの構成、状態及びアクション情報等を受け付けて、車載組み込み機器103における一つのDMTのモデル情報を生成する。そして、開発用PC101は、DMTベースのモデル情報に加え、ログフィルタリングルール言語や制御系ECU向け車載診断言語などの複数の抽象度の高いスクリプト言語を生成する。
The
開発用PC101は、生成したDMTのモデル情報及びスクリプト言語に基づき、各ECUに対応したモデルコンパイラを使用して、ECU毎に対応したソースプログラムを生成する。つまり、開発用PC101は、一つのDMTから車載組み込み機器103に搭載された複数のプロセッサに対応する複数のソースプログラムを生成する。その後、開発用PC101は、生成した複数のソースプログラムをバイナリ形式の複数の機械語プログラムに変換する。このようにして、開発用PC101は、複数の車載診断プログラムを作成する。
The
そして、開発用PC101は、複数の車載診断プログラムを管理サーバ102へアップロードする(S52)。管理サーバ102は、アップロードされた複数の車載診断プログラムを、OMA−DMなどの無線を使用した遠隔デバイス管理プロトコルを使用して、無線通信網(不図示)を介して車載組み込み機器103へ送信する(S53)。
Then, the
車載組み込み機器103は、受信した複数の車載診断プログラムを、対応するプロセッサ上で実行する。各プロセッサは、車載診断プログラムの実行により取得される診断情報を基に、管理サーバ102や車載組み込み機器103自身に対してアクションを行う(S54)。また、管理サーバ102は、車載診断プログラムから取得される情報を基に、車載診断プログラムへの指示を行うことで、車載組み込み機器103の遠隔診断を行う。
The in-vehicle embedded
図6は、本発明の実施の形態3にかかるプログラム生成装置の一例である開発用PC101のハードウェア構成を示すブロック図である。開発用PC101は、CPU(Central Processing Unit)110と、RAM(Random Access Memory)120と、ROM(Read Only Memory)130と、IF部140と、ハードディスク150とを備える。
FIG. 6 is a block diagram showing a hardware configuration of the
また、ハードディスク150は、不揮発性記憶装置である。ハードディスク150は、OS151、GUI開発ツール152、DMT管理部153、ライブラリ154、フィルタリングルール155、変換ルール156、モデルコンパイラ157a〜157c、ソースプログラム158a〜158c及び機械語プログラム159a〜159cを格納する。
The
GUI開発ツール152は、発明の実施の形態1にかかるプログラム生成プログラムを含み、GUIによりDMTによる構成情報、ノード状態情報の設計を支援するためのソフトウェアである。DMT管理部153は、通信処理情報111を含むプログラムモジュールであり、例えば、オブジェクト指向言語におけるクラス等である。ライブラリ154は、車載診断プログラムに用いられる各種ライブラリ関数、クラスライブラリ、API(Application Programing Interface)等である。フィルタリングルール155は、ログをフィルタリングするためのルールを定義した情報である。変換ルール156は、制御系ECUとの通信に用いられる車載診断プロトコルとの変換に関するルールを定義した情報である。モデルコンパイラ157a〜157cは、それぞれ、DMTのモデル情報又は分割されたモデル情報から所定のプロセッサに対応するソースコードを生成するためのコンパイラである。尚、モデルコンパイラ157a〜157cは、後述する車載組み込み機器103が備える3つの情報系ECUのそれぞれに対応するものである。ソースプログラム158a〜158cは、それぞれ、モデルコンパイラ157a〜157cにより生成されたソースプログラムである。機械語プログラム159a〜159cは、それぞれ、ソースプログラム158a〜158cからコンパイルされたバイナリ形式のプログラムである。
The
CPU110は、開発用PC101における各種処理、RAM120、ROM130、IF部140及びハードディスク150へのアクセス等を制御する。IF部140は、管理サーバ102との通信を行う。
The
開発用PC101は、CPU110が、RAM120、ROM130又はハードディスク150に格納されたOS151、GUI開発ツール152等を読み込み、実行する。これにより、開発用PC101は、構成情報生成部12、ノード状態情報生成部13、変換部14及びプログラム生成部15として機能し、車載診断プログラムを生成することができる。
In the
尚、管理サーバ102のハードウェア構成は、車載組み込み機器103との無線通信機能を有するものであればよく、公知技術により実現可能であるため、図示及び説明を省略する。
Note that the hardware configuration of the
図7は、本発明の実施の形態3にかかる車載組み込み機器103の構成を示すブロック図である。まず、車載組み込み機器103の概要について説明する。車載組み込み機器103は、無線通信モジュール34を搭載している。そのため、管理サーバ102は、無線通信ネットワーク(不図示)を経由して、車載組み込み機器103の遠隔診断や遠隔操作が可能である。管理サーバ102は、車載組み込み機器103を単一のデバイスとして認識する。よって、車載組み込み機器103のデバイス管理には、単一のDMTを用いることができる。
FIG. 7 is a block diagram showing a configuration of the in-vehicle embedded
車載組み込み機器103は、複数の情報系ECU31〜33及び複数の制御系ECU37及び38を備える。そのため、車載診断プログラムは、単一のDMTで表現可能であるが、複数のECUにまたがる処理を行う必要がある。
The in-vehicle embedded
制御系ECU37及び38は、管理サーバ102からの制御及び管理対象である。制御系ECU37及び38は、管理サーバ102と直接通信できない情報系ECU33に接続されている。
The
情報系ECU31は、無線通信機能があり、車載診断プログラムには、車載LANn1を介した情報系ECU間通信の実装が必要となる。
The
情報系ECU33と制御系ECU37及び38は、CAN(Controller Area Network)などの非IP(Internet Protocol)系の車載LANBに接続されており、管理サーバ102からのDMTアクセスは、制御系ECU専用の通信プロトコルに変換する必要がある。
The
管理サーバ102から制御及び管理する車載センサー35及び36(GPS(Global Positioning System)、ジャイロセンサなど)やアプリケーションは、複数の情報系ECU上に分散している。
In-
続いて、車載組み込み機器103の詳細な構成について説明する。車載組み込み機器103は、情報系ECU31〜33、無線通信モジュール34、センサー35及び36、制御系ECU37及び38、車載LANn1及びn2を備える。情報系ECU31〜33は、車載LANn1を介して相互に接続されている。ここで、車載LANn1は、MOST(Media Oriented Systems Transport)などのマルチメディア系の情報系ECU向けLANである。また、MOSTには、MAMAC(MOST Asynchronous Medium Access Control)というTCP/IP通信をサポートした仕様もある。ここでは、車載LANn1は、MAMACによるTCP/IP通信を可能とする。
Next, a detailed configuration of the in-vehicle embedded
情報系ECU31は、無線通信モジュール34及びセンサー35を制御する。情報系ECU31は、無線通信モジュール34経由で管理サーバ102と通信を行うことが可能である。無線通信モジュール34は、例えば、通信方式としてW−CDMA 3G携帯電話、デバイス管理用の通信プロトコルとしてOMA DMを使用することができる。
The
また、情報系ECU31には、デバイス管理プロトコルアダプタ411、DMTアクセスIF412、アプリケーション413、DMT管理アプリ416、アプリケーション417及び418が予めインストールされている。そして、情報系ECU31は、管理サーバ102から無線通信モジュール34を介してDMTアクセスIF414及び車載診断プログラム415を受信して実行する。尚、DMTアクセスIF414は、開発用PC101又は管理サーバ102により付加されるものとする。
In addition, a device
情報系ECU32は、アプリケーション421、DMTアクセスIF422及びアプリケーション423が予めインストールされている。そして、情報系ECU32は、情報系ECU31からDMTアクセスIF424及び車載診断プログラム425を受信して実行する。
In the
情報系ECU33は、センサー36を制御する。また、情報系ECU33は、車載LANn2を介して制御系ECU37及び38を制御する。車載LANn2は、CANなどの制御系ECU向けのLANである。情報系ECU33は、CANなどの制御系ECU向けLANやKWP2000などの診断プロトコルを使用して制御系ECU37及び38にアクセスすることが可能である。そして、情報系ECU32は、情報系ECU31からDMTアクセスIF431及び車載診断プログラム432を受信して実行する。
The
車載診断プログラム415、425及び432は、開発用PC101により生成され、管理サーバ102から配信されたアプリケーションである。
The in-
情報系ECU31内のDMT管理アプリ416は、車載のDMTを管理するアプリケーションであり、管理サーバ102又は他の情報系ECU(32又は33)からのDMTへのアクセスを可能にする。
The
DMTアクセスIF412、414、422、424及び431は、情報系ECU上で動作するアプリケーションから、DMT管理アプリ416内のDMTにアクセスするためのAPIである。
The
情報系ECU32及び33内のDMTアクセスIF422、424又は431とリンクされたアプリケーション423、車載診断プログラム425又は432は、TCP/IPのソケット通信などを用いて、情報系ECU31内のDMT管理アプリ416と通信を行う。
The
一方、DMTアクセスIF412、414、422、424又は431とリンクされないアプリケーション417、418及び421は、ログ出力という形で車載診断プログラム415、425及び432にイベントを通知することができる。
On the other hand, the
情報系ECU31上のデバイス管理プロトコルアダプタ411は、OMA DMなどのデバイス管理プロトコルが実装され、管理サーバ102とDMT管理アプリ416間のインタフェースをとる。
A device
ここで、本発明の実施の形態3の特徴を以下の(1)〜(3)の3つに分けて説明する。 Here, the features of Embodiment 3 of the present invention will be described by dividing them into the following three (1) to (3).
(1)本発明の実施の形態3は、DMTのノード構成及び各ノードの振る舞いを基に、組み込み装置内の複数のプロセッサ上で実行される機械語プログラムを、自動生成する仕組みということができる。 (1) Embodiment 3 of the present invention can be said to be a mechanism for automatically generating a machine language program to be executed on a plurality of processors in an embedded device based on the node configuration of the DMT and the behavior of each node. .
(1−1)DMTの任意のノードに独自の状態を持たせることが可能であり、ノード自体の状態及び当該状態におけるノードの振る舞いを状態モデル図として記述可能となる。尚、状態モデル図については、図11を用いて後述する。状態モデル図上に記載されたノードの状態は、ノードの振る舞いを記述するための特別な状態である。そのため、OMA−DMなどのデバイス管理プロトコルで定義されるノードの状態とは異なる。すなわち、各ノードに対して同時に複数の状態を持たせることができる。 (1-1) An arbitrary node of the DMT can have a unique state, and the state of the node itself and the behavior of the node in the state can be described as a state model diagram. The state model diagram will be described later with reference to FIG. The state of the node described on the state model diagram is a special state for describing the behavior of the node. Therefore, it is different from a node state defined by a device management protocol such as OMA-DM. That is, each node can have a plurality of states at the same time.
また、MDAでは、UML図を基にコード生成をしていた。しかし、本発明の実施の形態3では、DMTのモデル(DMTの構成図および、ノード単位の状態モデル図)を基にコード生成を行う。MDAとの差異は、GUI開発ツールやDMT管理部で吸収する。それは、本発明の実施の形態3がDMTを使用した遠隔デバイス管理に対象を絞り、それらに特化した構造であるためである。 In MDA, code is generated based on the UML diagram. However, in the third embodiment of the present invention, code generation is performed based on the DMT model (DMT configuration diagram and node-based state model diagram). Differences from MDA are absorbed by the GUI development tool and DMT manager. This is because the third embodiment of the present invention focuses on remote device management using DMT and has a structure specialized for them.
MDAでは、クラス図毎にアクション記述可能な状態モデル図が作成される。しかし、本発明の実施の形態3では、DMTのノード単位に状態モデル図が作成される。仮に、UMLに強引に対応させた場合、各ノードは、ノードクラスのサブクラスにも相当し(図15)、また、インスタンスにも相当する。すなわち、モデル設計時のノードの定義と同時に、クラス及びインスタンス相当のものが同時に生成されることになる。また、各ノードは、状態モデル図の振る舞いとなるアクション記述言語上では、自らクラスとしてもインスタンスとしても扱うことが可能となり、一般的なUMLやMDAの考え方と大きく異なる。 In MDA, a state model diagram capable of describing actions is created for each class diagram. However, in Embodiment 3 of the present invention, a state model diagram is created for each DMT node. If the UML is forced to correspond, each node corresponds to a subclass of the node class (FIG. 15) and also corresponds to an instance. That is, the class and instance equivalents are generated at the same time as the node definition at the time of model design. In addition, each node can be handled as either a class or an instance on the action description language, which is the behavior of the state model diagram, and is greatly different from general UML and MDA concepts.
DMTベースのモデル導入により、MDAとの決定的な違いが生じる。それは、インスタンス生成、削除などオブジェクト指向のライフサイクル管理に相当するロジックをモデル上で各ノードに対して表記する必要がなくなることである。 The introduction of a DMT-based model makes a crucial difference from MDA. That is, it is not necessary to describe logic corresponding to object-oriented life cycle management such as instance creation and deletion for each node on the model.
本発明の実施の形態3では、モデル設計時のノード定義と同時に、開発ツールがノードアクセス(OMA−DMのGet、Replace、Execなど)に対応する非同期イベントを、定義されたノードに対して、自動的に割り当てることを可能とする。 In the third embodiment of the present invention, at the same time as the node definition at the time of model design, an asynchronous event corresponding to node access (such as OMA-DM Get, Replace, Exec, etc.) is defined for the defined node. It is possible to assign automatically.
さらに、本発明の実施の形態3により、管理サーバからのノード追加コマンド(OMA−DMのAddなど)受信により、ノードの実体(インスタンス)を実機上で、自動的に生成/活性状態にすることを可能とする。 Furthermore, according to the third embodiment of the present invention, a node entity (instance) is automatically generated / activated on a real machine by receiving a node addition command (such as OMA-DM Add) from the management server. Is possible.
(1−2)複数のプロセッサを備える車載組み込み機器103の場合、DMT内の任意のノードを特定の情報系ECUに割り当てることが可能である。この情報を基に、異なるプロセッサ向け診断プログラムのアクション記述部のソースコードを同時に生成する。これにより、単一のDMTから複数の情報系ECUのコードを自動生成することが可能となる。
(1-2) In the case of the in-vehicle embedded
モデルコンパイラのモデル分割機能が、ノードとプロセッサの割り当て情報を考慮し、モデルを複数に分割する。分割されたモデルは、それぞれのプロセッサに対応したモデルコンパイラのソースコード変換機能によって、モデルからソースコードに変換される。これにより、プロセッサ間の通信を意識することなく、診断プログラムを作成することが可能となる。 The model dividing function of the model compiler divides the model into a plurality of parts in consideration of the node and processor allocation information. The divided model is converted from the model to the source code by the source code conversion function of the model compiler corresponding to each processor. This makes it possible to create a diagnostic program without being conscious of communication between processors.
また、プロセッサ間通信に関する処理は、後述する図8の「DMT管理部」および「DMTアクセスI/F」内で隠蔽される。よって、情報系ECU31のアクション記述部は、情報系ECU32に割り当てられたノードにアクセス(=読み書き)するだけで、ECU間の通信を行うことが可能となる。
Further, the processing related to the inter-processor communication is concealed in “DMT management unit” and “DMT access I / F” in FIG. Therefore, the action description part of the
(1−3)DMTベースの状態モデル図上で、アクション記述言語によるノードの振る舞いを記述することが可能となる。さらに、車載診断記述言語(ASAM−MCD2 ODXなど)で記載されたスクリプト内で定義されたパラメータと対応するイベント及びDMTへのアクセスイベント(同期または非同期)を生成可能となる。 (1-3) It is possible to describe the behavior of a node in an action description language on a DMT-based state model diagram. Furthermore, it is possible to generate an event corresponding to a parameter defined in a script written in an in-vehicle diagnosis description language (such as ASAM-MCD2 ODX) and an access event (synchronous or asynchronous) to the DMT.
(2)本発明の実施の形態3は、自動生成された機械語プログラムの構成方法ということができる。 (2) Embodiment 3 of the present invention can be said to be a method for configuring an automatically generated machine language program.
(2−1)生成される機械語プログラムは、「DMT管理部」「アクション記述部」から構成され、車載組み込み機器103上で実行されるバイナリプログラムである。このバイナリプログラムには、追加機能として「制御系ECU車載診断プロトコル変換部」「ログフィルタリング処理部」を含めることができる。
(2-1) The generated machine language program is a binary program that is composed of a “DMT management unit” and an “action description unit” and is executed on the in-vehicle embedded
図8は、本発明の実施の形態3にかかる生成される車載診断プログラムの概念を示す図である。DMTd5は、開発用PC101において生成された診断対象の車載組み込み機器103をデバイス管理するための木構データである。そして、開発用PC101は、DMTd5内の各ノード処理を異なる情報系ECUに割り当てることができる。ここでは、DMTd5内の各ノードのうち、情報系ECU33に割り当てられたノード群を分割DMTd51、情報系ECU32に割り当てられたノード群を分割DMTd52とする。開発用PC101は、GUI開発ツールにより、DMTd5から分割DMTd51と分割DMTd52とに分割する。
FIG. 8 is a diagram showing the concept of the in-vehicle diagnostic program generated according to the third embodiment of the present invention. The DMTd5 is tree structure data for device management of the diagnosis target in-vehicle embedded
DMTアクセスIF521及びアプリケーション522は、分割DMTd52に対応する情報系ECU32のアプリケーションである。情報系ECU32のアプリケーションは、管理サーバ102又は他の情報系ECUからの通知を、DMTイベントとしてDMTアクセスI/F経由で受信することが可能である。尚、DMTアクセスIF521は、プラグインI/Fであってもよい。
The DMT access IF 521 and the
車載診断プログラム51は、分割DMTd51に対応する情報系ECU33用の車載診断プログラムである。車載診断プログラム51は、DMTアクセスIF511、DMT管理部512、アクション記述部513、ログフィルタリング処理部514、フィルタリングルール515、変換ルール516及び制御系ECU車載診断プロトコル変換部517を備える。
The in-
アクション記述部513は、状態モデル図に定義されたアクション情報に基づいて生成されるプログラムコードに相当する部分である。アクション記述部513は、DMTのモデル情報から自動生成された機械語で構成される機能部である。ここでは、DMT管理部512やログフィルタリング処理部514などで発生したイベントに対するアクションが記述される。アクション記述部513から、同一プロセッサ内で動作する動的リンク可能なライブラリ関数53を関数呼び出しすることができる。
The
アクション記述部513からDMTのノードにアクセスすることにより、無線ネットワーク上の管理センタや情報系ECU上で動作する他のアプリケーションに対するフィードバックを行うことが可能となる。フィードバック処理対象のアプリケーションは、例えば、DMTアクセスIF511がリンクされたものである。
By accessing the DMT node from the
DMT管理部512、制御系ECU車載診断プロトコル変換部517及びログフィルタリング処理部514は、ライブラリとして提供されたものである。これにより、車載組み込み機器103特有のロジックが隠蔽される。そのため、サービスエンジニアが記述するのは、アクション記述部513を生成する元となるアクション情報のみとなる。そして、各機能部は、互いにリンクされ一つのバイナリとなる。
The
DMT管理部512は、分割DMTd51とアクション記述部513とのインタフェースをとる機能部である。そして、DMT管理部512は、アクション記述部513に対し、イベントを発生させることが可能である。また、DMT管理部512において、DMTへのアクセス方法の違いを吸収することも可能である。
The
ここで、DMTへのアクセス方法には、下記の2つの方法があり、本発明の実施の形態3により、1つのスクリプトで複数のDMTアクセス手段を表現することが可能となった。 Here, there are the following two methods for accessing the DMT. According to the third embodiment of the present invention, a plurality of DMT access means can be expressed by one script.
(方法1)管理サーバ102又は情報系ECU内のローカルのプログラムによるDMTアクセス後、直ぐにDMT自体にアクセス内容が反映される。これにより、高いリアルタイム性が必要な車載診断などで使用することができる。
(Method 1) After the DMT access by the local program in the
(方法2)管理サーバ102又は情報系ECU内ローカルのプログラムによるDMTアクセス後、直ぐにはDMTにアクセス内容が反映されず、アクセス内容は、コミット命令で反映される。また、ロールバック命令にも対応する。例えば、1つの診断機能が、関連する複数のノードから構成される場合、ノード間の同期をとる場合に使用することができる。
(Method 2) Immediately after the DMT access by the local program in the
これは、OMA−DMなどのプロトコルをサポートしたデバイス管理システムからのDMTのノードに対するアクセス(GETやREPLACE命令あるいは、COMMITやROLLBACK命令)を基に、DMT管理部512がノードアクセスとは異なるタイミングでアクション記述部513に対する非同期イベントを生成するからである。
This is because the
図9は、本発明の実施の形態3にかかる方法2におけるDMTアクセス管理の例を示す図である。ここでは、DMT管理アプリ416から車載診断プログラム51へのDMTアクセスを例として挙げる。車載診断プログラム51には、少なくともDMT管理部512、ノードデータ管理部512a及びアクション記述部513が含まれるものとする。
FIG. 9 is a diagram showing an example of DMT access management in the
まず、DMT管理アプリ416は、DMT管理部512へノードAに対するREPLACE命令を送信する(S301)。そして、DMT管理部512は、ノードデータ管理部512aへその旨を通知する(S302)。次に、DMT管理アプリ416は、DMT管理部512へノードBに対するREPLACE命令を送信する(S303)。そして、DMT管理部512は、ノードデータ管理部512aへその旨を通知する(S304)。但し、この時点で、DMT管理部512は、アクション記述部513へイベント通知を行っていない。
First, the
そして、DMT管理アプリ416は、DMT管理部512へCOMMIT命令を送信する(S305)。これに伴い、ノードデータ管理部512aは、アクション記述部513へノードAに対するREPLACE命令を送信する(S306)。続いて、ノードデータ管理部512aは、アクション記述部513へノードBに対するREPLACE命令を送信する(S307)。つまり、アクション記述部513は、COMMIT命令をトリガにノードA及びBを新しいデータに更新する。尚、更新前のデータは、DMT管理部512内でバックアップされる。
Then, the
その後、DMT管理アプリ416は、DMT管理部512へROLLBACK命令を送信する(S308)。これに伴い、ノードデータ管理部512aは、アクション記述部513へノードAに対するREPLACE命令を送信する(S309)。続いて、ノードデータ管理部512aは、アクション記述部513へノードBに対するREPLACE命令を送信する(S310)。つまり、アクション記述部513は、ROLLBACK命令をトリガにノードA及びBを更新前のデータに戻す。
Thereafter, the
図8に戻って説明する。DMT管理部512を用いることにより、サービスエンジニアが、管理センタや他の情報系ECUとの通信処理を一切記述する必要がなくなった。
Returning to FIG. By using the
制御系ECU車載診断プロトコル変換部517は、生成されたイベントを、車載診断記述言語で記載された変換ルール516を基に、KWP2000などの制御系ECU向けの車載診断プロトコルを用いたシーケンス処理に変換する機能部である。制御系ECU車載診断プロトコル変換部517は、D−PDU API541を介してMVCI Protocol Stack & 車載LANドライバ542と接続されている。そして、D−PDU API541は、CAN等の車載LANにより制御系ECU551〜553と接続されている。
The control system ECU in-vehicle diagnosis
ログ収集機能56は、複数の情報系ECU上で動作するアプリケーションのログを収集する。ログフィルタリング処理部514は、複数のプロセッサからログ収集機能56により収集されたログを、フィルタリングルール515を用いて解析し、アクション記述部513に対するイベントを発生させる機能部である。尚、ログをフィルタリングする技術については、公知なものであるため、詳細な説明を省略する。
The
(3)本発明の実施の形態3は、上記手段に対応したGUI開発ツール及びモデルコンパイラということができる。 (3) Embodiment 3 of the present invention can be referred to as a GUI development tool and a model compiler corresponding to the above means.
(3−1)GUI開発ツール上の開発ツール上での簡単な作業(ドラッグ&ドロップなど)から、DMTベースのモデルを作成することができる。さらに、ログフィルタリングのルールや制御系ECU向けの車載診断プロトコルの変換ルールとDMTベースのモデルとを連携させることができる。 (3-1) A DMT-based model can be created from simple work (drag and drop, etc.) on the development tool on the GUI development tool. Furthermore, log filtering rules, in-vehicle diagnostic protocol conversion rules for control ECUs, and DMT-based models can be linked.
(3−2)単一のDMTベースのモデルから、C言語やC++言語などのソースコードに変換するモデルコンパイラをGUI開発ツールで用いることができる。ここで定義するモデルコンパイラは、下記の3つの機能を含むものである。
(3−2−1)単一のDMTモデルから、自動生成可能な複数の(UMLなどの)モデルに、プロセッサ単位で分割できる機能。
(3−2−2)分割された(UMLなどの)モデルから、各プロセッサのシステム構成(システムコールやメモリマップなど)に特化したソースコードを自動生成できる機能。
(3−2−3)DMTモデル上でのノードへのアクセスを、DMT管理部512内のクラスライブラリへのアクセスに自動変換する機能。
(3-2) A model compiler that converts a single DMT-based model into source code such as C language or C ++ language can be used in the GUI development tool. The model compiler defined here includes the following three functions.
(3-2-1) A function capable of dividing a single DMT model into a plurality of models (such as UML) that can be automatically generated in units of processors.
(3-2-2) A function that can automatically generate source code specialized for the system configuration (system call, memory map, etc.) of each processor from a divided model (such as UML).
(3-2-3) A function of automatically converting access to a node on the DMT model into access to a class library in the
続いて、図10を用いて、本発明の実施の形態3にかかるGUI開発ツールの概念を説明する。まず、開発用PC101は、ユーザから診断対象の車載組み込み機器103における機能の構成をノードにより表現した場合の位置及びノード間の階層の関係をドラッグ&ドロップ等で受け付ける。そして、開発用PC101は、受け付けたノードに関する位置及び階層の関係から階層構造で表したDMTのモデル情報を生成する(S31)。尚、開発用PC101は、既存のDMTのモデル情報をインポートにより受け付けても構わない。
Next, the concept of the GUI development tool according to the third embodiment of the present invention will be described with reference to FIG. First, the
次に、開発用PC101は、ユーザから任意のノードに対して、情報系ECUの割り当てを受け付ける。そして、開発用PC101は、受け付けた情報系ECUを当該ノードにおける割り当て情報すなわちプロパティ値として設定する(S32)。尚、このとき、開発用PC101は、別ウィンドウによりプロパティ値を受け付けてもよい。
Next, the
続いて、開発用PC101は、ユーザから任意のノードの選択をマウスクリック等により受け付ける。このとき、開発用PC101は、状態モデル図の作成画面を別ウィンドウにより表示する(S33)。ここで、開発用PC101は、選択したノードの状態と当該状態におけるノードの振る舞いであるアクション情報とをユーザから受け付ける。そして、開発用PC101は、受け付けた状態とアクション情報とから状態モデル図を表示し、ノード状態情報とする。
Subsequently, the
さらに、開発用PC101は、当該ノードにおいて、ログからアクション記述部513で理解可能なイベントを作成することができる(S34)。ログは、複数のプロセッサ上で動作するアプリケーションの処理結果の一例である。そして、ログを加工するルールを当該ノードに関連付けることができる。
Further, the
また、開発用PC101は、当該ノードにおいて、アクション記述部513が発行するイベントと車載診断プロトコルの対応付けを記述することができる(S35)。車載診断プロトコルは、組み込み機器に搭載され、かつ、複数のプロセッサにより制御される制御装置との通信を行うためのルールの一例である。そして、車載診断プロトコルの変換ルールを当該ノードに関連付けることができる。また、開発用PC101は、ODXなどの車載診断言語のインポート及びエクスポートに対応することができる。
Further, the
さらに、開発用PC101は、提供ライブラリ(車載診断のライブラリを含む)やイベント一覧から、マウスでの選択などで状態モデル図内に取り込むことができる(S36)。また、開発用PC101は、当該ノードで用いる一部のユーザ定義ライブラリを作成することができる(S37)。これにより、MDAで作成されたノードのモデルと連携可能となる。
Further, the
図11は、本発明の実施の形態3にかかる状態モデル図及びアクション記述言語の例を示す図である。尚、図11内で使用されているアクション記述言語は、Executable UML向けのものに改良を加えたものである。但し、本発明の実施の形態3にかかるアクション記述言語は、Executable UMLを基礎としなくても構わない。 FIG. 11 is a diagram illustrating an example of a state model diagram and an action description language according to the third exemplary embodiment of the present invention. Note that the action description language used in FIG. 11 is an improvement to the one for Executable UML. However, the action description language according to the third exemplary embodiment of the present invention may not be based on Executable UML.
また、図11内DMTセッションとは、情報系ECU上のアプリケーションと車載組み込み機器103内のDMT管理アプリ416との間で1対1に張られる、仮想的な接続の単位を指す。例えば、開発用PC101により生成された車載診断プログラムとDMT管理アプリ416との間で、ルートノードが"./Device"であるDMTセッションが確立されると、配下のノード("./Device/NodeA"など)へのDMTイベントの発生が許可される。
Further, the DMT session in FIG. 11 refers to a unit of virtual connection established on a one-to-one basis between the application on the information system ECU and the
図11は、DMTのノード"./OMADM/DiagMon/Battery/Level"に対する振る舞いを記述した例であり、処理の流れは下記のようになる。
(1)"./OMADM/DiagMon/Battery"をルートノードとするDMTセッションがオープンされたら、"./OMADM/DiagMon/Battery/Cycle"に記述された値の定周期タイマを起動する。
(2)定周期タイマの割り込み処理で、バッテリ残量の読み出しを行う。
(3)DMTセッションオープン中に、管理センタから、"./OMADM/DiagMon/Battery/Level"に対するGET命令が発行されたら、バッテリ残量の値を管理センタに返す。
FIG. 11 shows an example in which the behavior of the DMT node “./OMADM/DiagMon/Battery/Level” is described. The processing flow is as follows.
(1) When a DMT session having “./OMADM/DiagMon/Battery” as a root node is opened, a fixed-cycle timer having a value described in “./OMADM/DiagMon/Battery/Cycle” is started.
(2) The remaining battery level is read by interrupt processing of the fixed-cycle timer.
(3) When a GET command for “./OMADM/DiagMon/Battery/Level” is issued from the management center while the DMT session is open, the value of the remaining battery level is returned to the management center.
次に、図11中に記載されているアクション記述言語、すなわち、アクション情報について簡単に説明する。まず、「Select Cycle from Node where selected.URL="./OMADM/DiagMon/Baterry/Cycle"」とは、ノードクラスから、URLが"./OMADM/DiagMon/Baterry/Cycle"であるノード"Cycle"を選択することを示す。また、「TIM:TimerStart(Cycle.NodeValue,タイマ割り込み処理中);」とは、定周期タイマを起動することを示す。そして、「generate "DMTセッションオープン状態移行通知"」とは、非同期イベント"DMTセッションオープン状態移行通知"を発行することを示す。 Next, the action description language described in FIG. 11, that is, action information will be briefly described. First, "Select Cycle from Node where selected.URL =" ./ OMADM / DiagMon / Baterry / Cycle "" means the node "Cycle" whose URL is "./OMADM/DiagMon/Baterry/Cycle" from the node class. Indicates that is to be selected. “TIM: TimerStart (Cycle. NodeValue, timer interrupt processing in progress);” indicates that the fixed-cycle timer is started. “Generate“ DMT session open state transition notification ”” indicates that an asynchronous event “DMT session open state transition notification” is issued.
続いて、情報系ECU32内の車載診断プログラム425上で動作するノードBが、情報系ECU33内の車載診断プログラム432上で動作するノードAに対してReplaceイベント(=ノードの値を書き換える)を発行する例について、図12及び図13のシーケンス図を用いて説明する。
Subsequently, the node B operating on the in-
図12は、本発明の実施の形態3にかかる情報系ECU33用の車載診断プログラムの処理の流れを示すシーケンス図である。ここでは、情報系ECU31内のDMT管理アプリ416と情報系ECU33内の車載診断プログラム432との間のプロセッサ間通信を含む処理を示す。自動追加部分61は、クラス定義やインスタンス生成、DMT管理部へのノードの登録に関する処理である。UMLベースのMDAでは、自動追加部分61についてもユーザが記述する必要があった。しかし、本発明の実施の形態3では、実装部分62の処理のみをアクション情報にて記述するだけでよい。
FIG. 12 is a sequence diagram showing a flow of processing of the in-vehicle diagnosis program for the
図13は、本発明の実施の形態3にかかる情報系ECU32用の車載診断プログラムの処理の流れを示すシーケンス図である。ここでは、情報系ECU31内のDMT管理アプリ416と情報系ECU32内の車載診断プログラム425との間のプロセッサ間通信を含む処理を示す。自動追加部分63は、クラス定義やインスタンス生成、DMT管理部へのノードの登録に関する処理である。UMLベースのMDAでは、自動追加部分63についてもユーザが記述する必要があった。しかし、本発明の実施の形態3では、実装部分64の処理のみをアクション情報にて記述するだけでよい。
FIG. 13 is a sequence diagram showing a flow of processing of the in-vehicle diagnosis program for the
また、通常のMDAでは、情報系ECU33内の車載診断プログラム432と情報系ECU32内上の車載診断プログラム425のそれぞれに対して、UMLのモデルを作成しなければならない。しかし、本発明の実施の形態3では、複数の情報系ECU上での動作を1個のDMT上で表現することが可能となる。
In normal MDA, a UML model must be created for each of the in-
尚、本発明の実施の形態3では、下記の2つのソフトウェア開発手法を用いて、ほぼ同じ構成のソースコードおよびバイナリが生成されるものと仮定する。
(1)MDAを用いたコード自動生成(実施の形態3では、UMLのモデルから、オブジェクト指向言語であるC++言語のソースコードに変換されるものとする。)
(2)本発明を用いたコード自動生成(実施の形態3では、DMTベースのモデルから、オブジェクト指向言語であるC++言語のソースコードに変換されるものとする。)
In the third embodiment of the present invention, it is assumed that source codes and binaries having substantially the same configuration are generated using the following two software development techniques.
(1) Automatic code generation using MDA (In the third embodiment, it is assumed that a UML model is converted into a source code of an object-oriented language C ++ language.)
(2) Automatic code generation using the present invention (In the third embodiment, it is assumed that a DMT-based model is converted into C ++ language source code, which is an object-oriented language.)
図14は、本発明の実施の形態3にかかる状態モデル図の例を示す図である。ここでは、あるノードの状態として、「初期状態」及び「Replaceイベント処理中」の2つを定義し、それぞれに「ノードAに値Xを設定する」とのアクション情報を定義していることを示す。尚、Replaceイベントを受信した場合に、「Replaceイベント処理中」に遷移する。つまり、本発明の実施の形態3により図14に示すようなわずかな量の記述のみで、複雑なシーケンスを伴ったソフトウェアを記述できることを示す。 FIG. 14 is a diagram illustrating an example of a state model diagram according to the third embodiment of the present invention. Here, two states of “initial state” and “Replace event processing” are defined as states of a certain node, and action information “set value X to node A” is defined for each. Show. When a Replace event is received, the process transits to “Replace event processing in progress”. That is, the third embodiment of the present invention indicates that software with a complicated sequence can be described with only a small amount of description as shown in FIG.
図15は、関連技術により設計した場合のクラス図の例を示す図である。図15のクラス図は、ノードクラス及びノードA及びノードBとの関係を表したクラス図である。しかし、このクラス図は、MDAにDMTベースの自動生成を強引に持ち込んだ場合のもので、UMLのモデリングとしてはあまり望ましくない形となってしまう。 FIG. 15 is a diagram illustrating an example of a class diagram in the case of designing with related technology. The class diagram in FIG. 15 is a class diagram showing a node class and a relationship with the node A and the node B. However, this class diagram is a case where DMT-based automatic generation is forcibly brought into MDA, and it becomes a less desirable form for UML modeling.
尚、UMLのモデリング例としては、本来、図16のように記述するのが望ましいと考えられる。図16は、関連技術により設計した場合のUMLモデリングの例を示す図である。この場合、そもそもノードA及びノードBはクラスとして抽出されない。しかし、図16から自動コード生成可能な振る舞いを記述するには、オブジェクト指向のかなり高度な技術が必要となり、本発明が対象とする課題を解決することができない。 It should be noted that, as an example of UML modeling, it is originally desirable to describe as shown in FIG. FIG. 16 is a diagram illustrating an example of UML modeling in the case of designing with related technology. In this case, node A and node B are not extracted as classes in the first place. However, describing the behavior that can generate automatic code from FIG. 16 requires a fairly advanced object-oriented technique, and cannot solve the problem targeted by the present invention.
図17は、本発明の実施の形態3にかかるDMTを用いたデバイス管理の概念を示す図である。まず、プロトコルアダプタアプリケーション571及びDMT制御アプリケーション572により、管理サーバ102から無線通信モジュール34を介して車載組み込み機器103内のDMTの各ノードへのアクセスが可能である。また、指定したノードにアクセスがあった場合、イベント通知を受け取ることが可能である。
FIG. 17 is a diagram showing a concept of device management using the DMT according to the third embodiment of the present invention. First, the
また、プラグインアプリケーション573は、ノード"./Device/Battery"に割り当てられているバッテリ残量検出アプリケーションである。プラグインアプリケーション573は、ノードへのアクセスがあると、イベントが通知される。そのため、管理サーバ102や車載組み込み機器103内のローカルのアプリケーションは、各ノードに対してAdd/Get/Replace/Execを行うことが可能となる。
The plug-in
以上のことから、本発明の実施の形態3の効果は、以下のとおりである。まず、開発者ではないサービスエンジニアでも、複数の情報系ECUや制御系ECUを扱った診断プログラムを簡単に作成することが可能となる。本発明により車載組み込み機器向けにアレンジされた自動コード生成手法を取り入れることにより、各ECUのシステム依存部分(プログラミング言語、OSなど)の習得が不要となる。また、コーディング工程が省略できる。また、OMA DMや車載診断などの車載固有技術に関する制御I/Fが、「アクション記述部」と連携可能なライブラリとして提供されるため、プログラミングのために、各技術や関連するミドルウエアの仕様を習得する時間を短縮することができる。 From the above, the effects of the third embodiment of the present invention are as follows. First, even a service engineer who is not a developer can easily create a diagnostic program that handles a plurality of information system ECUs and control system ECUs. By adopting an automatic code generation method arranged for in-vehicle embedded devices according to the present invention, it becomes unnecessary to learn system dependent parts (programming language, OS, etc.) of each ECU. Also, the coding process can be omitted. In addition, the control I / F related to in-vehicle technologies such as OMA DM and in-vehicle diagnosis is provided as a library that can be linked with the “action description part”, so the specifications of each technology and related middleware can be specified for programming. Time to learn can be shortened.
さらに、DMTのノードの構成及びノードへのアクセスに対する動作のみ知っていればよく、OMA DMの通信シーケンスなどの詳細を知る必要がなくなる。1つのDMTツリーから複数の情報系ECUのコードを自動生成できるため、情報系ECU間の通信を設計及びコーディングする必要がなくなる。また、ノードと情報系ECUの対応付け、つまり割り当てのみ指定すればよい。 Furthermore, it is only necessary to know the configuration of the DMT node and the operation for accessing the node, and it is not necessary to know details such as the communication sequence of the OMA DM. Since codes of a plurality of information system ECUs can be automatically generated from one DMT tree, it is not necessary to design and code communication between information system ECUs. Further, it is only necessary to specify the association between the node and the information system ECU, that is, the assignment.
そして、複数のアプリケーションから異なるアクセス方法で、DMTの各ノードへのアクセスが行われるような場合においても、1つの手順のみで対応可能となる。DMTのアクセス方法の違いは、「DMT管理部」で吸収できるためである。また、アクション記述部で、ロールバック処理を全く意識する必要がなくなるという利点もある。 Even when access to each node of the DMT is performed from a plurality of applications by different access methods, it is possible to cope with only one procedure. The difference in DMT access methods is because it can be absorbed by the “DMT management unit”. There is also an advantage that the action description part does not need to be aware of rollback processing at all.
このように、本発明の実施の形態3により、複数のプロセッサを備え、所定の機能を実現する組み込み機器における広範な専門知識が必要とせずに、当該組み込み機器で実行されるプログラムを容易に生成することができる。 As described above, according to the third embodiment of the present invention, a program to be executed on an embedded device can be easily generated without requiring a wide range of expertise in the embedded device having a plurality of processors and realizing a predetermined function. can do.
<その他の発明の実施の形態>
DMT Adminは、OSGi R4 mobileやJSR232で定義された、OSGiに対応したJava(登録商標)アプリケーションから、DMTにアクセスするためのパッケージの仕様である。DMT Adminにより、複数のJavaアプリケーションから同一のノードを共有することが可能である。但し、DMT Adminは、高機能ではあるが、かなり複雑なAPIである。
<Other embodiments of the invention>
DMT Admin is a specification of a package for accessing DMT from a Java (registered trademark) application corresponding to OSGi defined by OSGi R4 mobile and JSR232. With DMT Admin, it is possible to share the same node from multiple Java applications. However, DMT Admin is a highly complex API although it is highly functional.
ISO(International Organization for Standardization)化された制御系ECU向けのXML(Extensible Markup Language)ベースの車載診断言語として、ASAM−MCD2 ODXがある。ASAM−MCD2 ODXは、あるコマンドからKWP2000などの車載診断プロトコルに変換するルールなどが記載されている。 There is ASAM-MCD2 ODX as an XML (Extensible Markup Language) -based in-vehicle diagnostic language for control system ECUs that have been converted to ISO (International Organization for Standardization). ASAM-MCD2 ODX describes rules for converting a certain command into an in-vehicle diagnostic protocol such as KWP2000.
本発明により生成されたプログラムを無線経由で組み込み機器内の情報系ECUへ転送する技術及びログや診断情報を管理センタに送信する技術については、任意の無線通信技術を用いることが可能である。尚、車載向け無線通信サービスとしてG−BOOK(登録商標)等がある。但し、G−BOOK等では、本発明により生成されたプログラムを無線経由で組み込み機器内の情報系ECUへ転送することはできない。 Any wireless communication technology can be used for the technology for transferring the program generated by the present invention to the information system ECU in the embedded device via wireless and the technology for transmitting the log and diagnostic information to the management center. Note that there is G-BOOK (registered trademark) as an in-vehicle wireless communication service. However, in G-BOOK or the like, the program generated according to the present invention cannot be transferred to the information system ECU in the embedded device via wireless communication.
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。 Furthermore, the present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the gist of the present invention described above. For example, in the above-described embodiment, the present invention has been described as a hardware configuration, but the present invention is not limited to this. The present invention can also realize arbitrary processing by causing a CPU (Central Processing Unit) to execute a computer program. In this case, the computer program can be stored using various types of non-transitory computer readable media and supplied to the computer.
非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、DVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disc)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、コンピュータプログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。 Non-transitory computer readable media include various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic recording media (for example, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (for example, magneto-optical disks), CD-ROMs (Read Only Memory), CD-Rs, CD-R / W, DVD (Digital Versatile Disc), BD (Blu-ray (registered trademark) Disc), semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM ( Random Access Memory)). The computer program may also be supplied to the computer by various types of transitory computer readable media. Examples of transitory computer readable media include electrical signals, optical signals, and electromagnetic waves. The temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。 A part or all of the above embodiments can be described as in the following supplementary notes, but is not limited thereto.
(付記1)複数のプロセッサが搭載され、所定の機能を実現する組み込み機器における当該複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を予め記憶する記憶手段と、
前記組み込み機器における前記所定の機能の構成を複数のノードにより定義した構成情報を生成する構成情報生成手段と、
前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成するノード状態情報生成手段と、
前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する変換手段と、
前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記記憶手段に記憶された前記通信処理情報と、前記変換したプログラムコードとを含めて生成するプログラム生成手段と、
を備えるプログラム生成装置。
(Additional remark 1) The memory | storage means which memorize | stores beforehand the communication processing information which is a program module by which the communication processing between the said some processor was mounted in the built-in apparatus which implement | achieves a predetermined function in which a some processor is mounted,
Configuration information generating means for generating configuration information in which the configuration of the predetermined function in the embedded device is defined by a plurality of nodes;
Node state information generating means for generating, for each of a plurality of nodes defined in the configuration information, node state information that defines a node state and action information that is a behavior of the node in the state;
Conversion means for converting from action information defined in the node state information into a program code that realizes processing corresponding to the behavior of the node in the state of the node;
Based on the configuration information, a program generation unit that generates a plurality of programs corresponding to each of the plurality of processors, including the communication processing information stored in the storage unit and the converted program code;
A program generation apparatus comprising:
(付記2)前記構成情報生成手段は、各ノードに前記複数のプロセッサのいずれかを割り当てた割当情報を含めて前記構成情報を生成し、
前記プログラム生成手段は、前記構成情報に含まれる割当情報に基づいて、各ノードを割り当てられた前記複数のプロセッサのいずれかに分類して複数の分類後構成情報を生成し、前記生成された複数の分類後構成情報から前記複数のプログラムを生成する
ことを特徴とする付記1に記載のプログラム生成装置。
(Supplementary Note 2) The configuration information generation means generates the configuration information including allocation information in which any of the plurality of processors is allocated to each node.
The program generating means generates a plurality of post-classification configuration information by classifying each node into one of the plurality of allocated processors based on the allocation information included in the configuration information, and The program generation apparatus according to
(付記3)前記複数のプロセッサのそれぞれに対応したプログラムを生成する複数のモデルコンパイラをさらに備え、
前記プログラム生成手段は、前記分類後構成情報から対応するプロセッサを特定し、特定したプロセッサに対応するモデルコンパイラを選択して、選択したモデルコンパイラを用いて前記分類後構成情報から当該特定したプロセッサで実行可能なプログラムを生成する
ことを特徴とする付記2に記載のプログラム生成装置。
(Additional remark 3) It further has a plurality of model compilers which generate a program corresponding to each of the plurality of processors,
The program generation means identifies a corresponding processor from the classified configuration information, selects a model compiler corresponding to the identified processor, and uses the selected model compiler to identify the processor from the classified configuration information. The program generation device according to
(付記4)前記プログラム生成手段は、前記複数のプログラムを生成する際に、ノードアクセスに対応する非同期イベントをさらに含めることを特徴とする付記1乃至3のいずれか1項に記載のプログラム生成装置。
(Supplementary note 4) The program generation device according to any one of
(付記5)前記構成情報生成手段は、前記構成情報としてDMT(Device Management Tree)を用いることを特徴とする付記1乃至4のいずれか1項に記載のプログラム生成装置。
(Additional remark 5) The said structure information production | generation means uses DMT (Device Management Tree) as said structure information, The program generation apparatus of any one of
(付記6)前記ノード状態情報生成手段は、前記ノード状態情報に、前記複数のプロセッサ上で動作するアプリケーションの処理結果を加工するルールを関連付けることを特徴とする付記1乃至5のいずれか1項に記載のプログラム生成装置。
(Additional remark 6) The said node state information production | generation means associates the rule which processes the process result of the application which operate | moves on the said several processor with the said node state information, Any one of
(付記7)前記ノード状態情報生成手段は、前記ノード状態情報に、前記組み込み機器に搭載され、かつ、前記複数のプロセッサにより制御される制御装置との通信を行うためのルールを関連付けることを特徴とする付記1乃至6のいずれか1項に記載のプログラム生成装置。
(Supplementary note 7) The node state information generation means associates the node state information with a rule for communicating with a control device mounted on the embedded device and controlled by the plurality of processors. The program generation device according to any one of
(付記8)複数のプロセッサが搭載され、所定の機能を実現する組み込み機器における当該所定の機能の構成を複数のノードにより定義した構成情報を生成し、
前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成し、
前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換し、
前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報と、前記変換したプログラムコードとを含めて生成する、
プログラム生成方法。
(Supplementary Note 8) Generate configuration information in which a plurality of processors are mounted and a configuration of the predetermined function in an embedded device that realizes a predetermined function is defined by a plurality of nodes,
For each of a plurality of nodes defined in the configuration information, generate node state information that defines a node state and action information that is a behavior of the node in the state,
The action information defined in the node state information is converted into a program code that realizes processing corresponding to the behavior of the node in the state of the node,
Based on the configuration information, a plurality of programs corresponding to each of the plurality of processors includes communication processing information that is a program module in which communication processing between the plurality of processors is implemented, and the converted program code. Generate,
Program generation method.
(付記9)各ノードに前記複数のプロセッサのいずれかを割り当てた割当情報を含めて前記構成情報を生成し、
前記構成情報に含まれる割当情報に基づいて、各ノードを割り当てられた前記複数のプロセッサのいずれかに分類して複数の分類後構成情報を生成し、前記生成された複数の分類後構成情報から前記複数のプログラムを生成する
ことを特徴とする付記8に記載のプログラム生成方法。
(Supplementary Note 9) Generate the configuration information including allocation information in which any of the plurality of processors is allocated to each node,
Based on the allocation information included in the configuration information, each node is classified into one of the plurality of allocated processors to generate a plurality of post-classification configuration information, and from the generated plurality of post-classification configuration information The program generation method according to appendix 8, wherein the plurality of programs are generated.
(付記10)前記分類後構成情報から対応するプロセッサを特定し、
前記複数のプロセッサのそれぞれに対応したプログラムを生成する複数のモデルコンパイラの中から、前記特定したプロセッサに対応するモデルコンパイラを選択し、
前記選択したモデルコンパイラを用いて前記分類後構成情報から前記特定したプロセッサで実行可能なプログラムを生成する
ことを特徴とする付記9に記載のプログラム生成方法。
(Supplementary Note 10) Identify the corresponding processor from the post-classification configuration information,
Selecting a model compiler corresponding to the identified processor from a plurality of model compilers that generate a program corresponding to each of the plurality of processors;
The program generation method according to appendix 9, wherein a program executable by the specified processor is generated from the post-classification configuration information using the selected model compiler.
(付記11)前記複数のプログラムを生成する際に、ノードアクセスに対応する非同期イベントをさらに含めることを特徴とする付記8乃至10のいずれか1項に記載のプログラム生成方法。 (Supplementary note 11) The program generation method according to any one of supplementary notes 8 to 10, further comprising an asynchronous event corresponding to node access when generating the plurality of programs.
(付記12)前記構成情報としてDMT(Device Management Tree)を用いることを特徴とする付記8乃至11のいずれか1項に記載のプログラム生成方法。 (Supplementary note 12) The program generation method according to any one of supplementary notes 8 to 11, wherein a DMT (Device Management Tree) is used as the configuration information.
(付記13)前記ノード状態情報に、前記複数のプロセッサ上で動作するアプリケーションの処理結果を加工するルールを関連付けることを特徴とする付記8乃至12のいずれか1項に記載のプログラム生成方法。 (Supplementary note 13) The program generation method according to any one of Supplementary notes 8 to 12, wherein a rule for processing a processing result of an application operating on the plurality of processors is associated with the node state information.
(付記14)前記ノード状態情報に、前記組み込み機器に搭載され、かつ、前記複数のプロセッサにより制御される制御装置との通信を行うためのルールを関連付けることを特徴とする付記8乃至13のいずれか1項に記載のプログラム生成方法。
(Supplementary note 14) Any one of Supplementary notes 8 to 13, wherein the node state information is associated with a rule for communicating with a control device mounted on the embedded device and controlled by the plurality of processors. The program generation method according to
(付記15)複数のプロセッサが搭載され、所定の機能を実現する組み込み機器における当該所定の機能の構成の複数のノードによる定義を受け付け、
当該受け付けた定義に基づき構成情報を生成し、
前記構成情報に含まれる複数のノードのいずれかの指定を受け付け、
当該指定されたノードにおけるノードの状態と当該状態におけるノードの振る舞いであるアクション情報との定義を受け付け、
当該受け付けた前記ノードの状態と前記アクション情報途に基づきノード状態情報を生成し、
前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換し、
予め記憶部に格納された前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を取得し、
前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記取得した通信処理情報と、前記変換したプログラムコードとを含めて生成する、
処理をコンピュータに実行させるプログラム生成プログラム。
(Supplementary Note 15) Accepts definitions by a plurality of nodes of a configuration of a predetermined function in an embedded device that is mounted with a plurality of processors and implements a predetermined function
Generate configuration information based on the accepted definition,
Accepting any one of a plurality of nodes included in the configuration information;
Accept the definition of the state of the node in the specified node and the action information that is the behavior of the node in the state,
Generate node state information based on the received state of the node and the action information path,
The action information defined in the node state information is converted into a program code that realizes processing corresponding to the behavior of the node in the state of the node,
Obtaining communication processing information which is a program module in which communication processing between the plurality of processors stored in advance in the storage unit is implemented;
Based on the configuration information, a plurality of programs corresponding to the plurality of processors are generated including the acquired communication processing information and the converted program code.
A program generation program that causes a computer to execute processing.
(付記16)各ノードに前記複数のプロセッサのいずれかを割り当てた割当情報を含めて前記構成情報を生成し、
前記構成情報に含まれる割当情報に基づいて、各ノードを割り当てられた前記複数のプロセッサのいずれかに分類して複数の分類後構成情報を生成し、前記生成された複数の分類後構成情報から前記複数のプログラムを生成する
ことを特徴とする付記15に記載のプログラム生成プログラム。
(Supplementary Note 16) Generate the configuration information including allocation information in which any of the plurality of processors is allocated to each node,
Based on the allocation information included in the configuration information, each node is classified into one of the plurality of allocated processors to generate a plurality of post-classification configuration information, and from the generated plurality of post-classification configuration information The program generation program according to
(付記17)前記分類後構成情報から対応するプロセッサを特定し、
前記複数のプロセッサのそれぞれに対応したプログラムを生成する複数のモデルコンパイラの中から、前記特定したプロセッサに対応するモデルコンパイラを選択し、
前記選択したモデルコンパイラを用いて前記分類後構成情報から前記特定したプロセッサで実行可能なプログラムを生成する
ことを特徴とする付記16に記載のプログラム生成プログラム。
(Supplementary note 17) Identify the corresponding processor from the classified configuration information,
Selecting a model compiler corresponding to the identified processor from a plurality of model compilers that generate a program corresponding to each of the plurality of processors;
17. The program generation program according to
(付記18)前記複数のプログラムを生成する際に、ノードアクセスに対応する非同期イベントをさらに含めることを特徴とする付記15乃至17のいずれか1項に記載のプログラム生成プログラム。
(Supplementary note 18) The program generation program according to any one of
(付記19)前記構成情報としてDMT(Device Management Tree)を用いることを特徴とする付記15乃至18のいずれか1項に記載のプログラム生成プログラム。
(Supplementary note 19) The program generation program according to any one of
(付記20)前記ノード状態情報に、前記複数のプロセッサ上で動作するアプリケーションの処理結果を加工するルールを関連付けることを特徴とする付記15乃至19のいずれか1項に記載のプログラム生成プログラム。
(Supplementary note 20) The program generation program according to any one of
(付記21)前記ノード状態情報に、前記組み込み機器に搭載され、かつ、前記複数のプロセッサにより制御される制御装置との通信を行うためのルールを関連付けることを特徴とする付記15乃至20のいずれか1項に記載のプログラム生成プログラム。
(Supplementary note 21) Any one of
(付記22)外部と無線通信可能なプロセッサを含む複数のプロセッサを備え、所定の機能を実現する組み込み機器と、
前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を予め記憶する記憶手段と、
前記組み込み機器における前記所定の機能の構成を複数のノードにより定義した構成情報を生成する構成情報生成手段と、
前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成するノード状態情報生成手段と、
前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する変換手段と、
前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記記憶手段に記憶された前記通信処理情報と、前記変換したプログラムコードとを含めて生成するプログラム生成手段と、
無線通信により前記組み込み機器に対して制御を行う遠隔制御手段と、
を備える遠隔管理装置と、を備え、
前記遠隔制御手段は、前記生成した複数のプログラムを前記組み込み機器へ送信し、
前記組み込み機器は、前記遠隔管理装置から受信した複数のプログラムのそれぞれを、前記複数のプロセッサのうち対応するプロセッサにおいて実行させ、
前記複数のプロセッサは、各プロセッサが実行するプログラムに含まれる前記変換したプログラムコードに基づく処理を行い、当該プログラムに含まれる通信処理に基づいて、プロセッサ間の通信を行う
ことを特徴とする組み込み機器の遠隔管理システム。
(Supplementary Note 22) An embedded device that includes a plurality of processors including a processor capable of wireless communication with the outside and implements a predetermined function;
Storage means for preliminarily storing communication processing information which is a program module in which communication processing among the plurality of processors is implemented;
Configuration information generating means for generating configuration information in which the configuration of the predetermined function in the embedded device is defined by a plurality of nodes;
Node state information generating means for generating, for each of a plurality of nodes defined in the configuration information, node state information that defines a node state and action information that is a behavior of the node in the state;
Conversion means for converting from action information defined in the node state information into a program code that realizes processing corresponding to the behavior of the node in the state of the node;
Based on the configuration information, a program generation unit that generates a plurality of programs corresponding to each of the plurality of processors, including the communication processing information stored in the storage unit and the converted program code;
Remote control means for controlling the embedded device by wireless communication;
A remote management device comprising:
The remote control means transmits the generated plurality of programs to the embedded device,
The embedded device causes each of the plurality of programs received from the remote management device to be executed by a corresponding processor among the plurality of processors,
The plurality of processors performs processing based on the converted program code included in a program executed by each processor, and performs communication between the processors based on communication processing included in the program. Remote management system.
1 プログラム生成装置
11 記憶部
111 通信処理情報
12 構成情報生成部
13 ノード状態情報生成部
14 変換部
15 プログラム生成部
10 遠隔管理システム
1a 遠隔管理装置
16 遠隔制御部
2 組み込み機器
21a プロセッサ
21b プロセッサ
21n プロセッサ
100 遠隔車載診断システム
101 開発用PC
110 CPU
120 RAM
130 ROM
140 IF部
150 ハードディスク
151 OS
152 GUI開発ツール
153 DMT管理部
154 ライブラリ
155 フィルタリングルール
156 変換ルール
157a モデルコンパイラ
157b モデルコンパイラ
157c モデルコンパイラ
158a ソースプログラム
158b ソースプログラム
158c ソースプログラム
159a 機械語プログラム
159b 機械語プログラム
159c 機械語プログラム
102 管理サーバ
103 車載組み込み機器
31 情報系ECU
32 情報系ECU
33 情報系ECU
34 無線通信モジュール
35 センサー
36 センサー
37 制御系ECU
38 制御系ECU
n1 車載LAN
n2 車載LAN
411 デバイス管理プロトコルアダプタ
412 DMTアクセスIF
413 アプリケーション
414 DMTアクセスIF
415 車載診断プログラム
416 DMT管理アプリ
417 アプリケーション
418 アプリケーション
421 アプリケーション
422 DMTアクセスIF
423 アプリケーション
424 DMTアクセスIF
425 車載診断プログラム
431 DMTアクセスIF
432 車載診断プログラム
d5 DMT
d51 分割DMT
d52 分割DMT
51 車載診断プログラム
511 DMTアクセスIF
512 DMT管理部
512a ノードデータ管理部
513 アクション記述部
514 ログフィルタリング処理部
515 フィルタリングルール
516 変換ルール
517 制御系ECU車載診断プロトコル変換部
521 DMTアクセスIF
522 アプリケーション
53 ライブラリ関数
541 D−PDU API
542 MVCI Protocol Stack & 車載LANドライバ
551 制御系ECU
552 制御系ECU
553 制御系ECU
56 ログ収集機能
571 プロトコルアダプタアプリケーション
572 DMT制御アプリケーション
573 プラグインアプリケーション
61 自動追加部分
62 実装部分
63 自動追加部分
64 実装部分
SC1 ソースコード
SC2 ソースコード
DESCRIPTION OF
110 CPU
120 RAM
130 ROM
140 IF
152
32 Information ECU
33 Information system ECU
34
38 Control system ECU
n1 In-vehicle LAN
n2 Car LAN
411 Device
413
415 In-vehicle
423
425 On-board
432 On-board diagnostic program d5 DMT
d51 Split DMT
d52 Split DMT
51 In-vehicle
512
522
542 MVCI Protocol Stack &
552 Control system ECU
553 Control system ECU
56
Claims (10)
前記組み込み機器における前記所定の機能の構成を複数のノードにより定義した構成情報を生成する構成情報生成手段と、
前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成するノード状態情報生成手段と、
前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する変換手段と、
前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記記憶手段に記憶された前記通信処理情報と、前記変換したプログラムコードとを含めて生成するプログラム生成手段と、
を備えるプログラム生成装置。 A storage unit that stores in advance communication processing information that is a program module in which communication processing between the plurality of processors is implemented in an embedded device that is provided with a plurality of processors and implements a predetermined function;
Configuration information generating means for generating configuration information in which the configuration of the predetermined function in the embedded device is defined by a plurality of nodes;
Node state information generating means for generating, for each of a plurality of nodes defined in the configuration information, node state information that defines a node state and action information that is a behavior of the node in the state;
Conversion means for converting from action information defined in the node state information into a program code that realizes processing corresponding to the behavior of the node in the state of the node;
Based on the configuration information, a program generation unit that generates a plurality of programs corresponding to each of the plurality of processors, including the communication processing information stored in the storage unit and the converted program code;
A program generation apparatus comprising:
前記プログラム生成手段は、前記構成情報に含まれる割当情報に基づいて、各ノードを割り当てられた前記複数のプロセッサのいずれかに分類して複数の分類後構成情報を生成し、前記生成された複数の分類後構成情報から前記複数のプログラムを生成する
ことを特徴とする請求項1に記載のプログラム生成装置。 The configuration information generation means generates the configuration information including allocation information in which any of the plurality of processors is allocated to each node,
The program generating means generates a plurality of post-classification configuration information by classifying each node into one of the plurality of allocated processors based on the allocation information included in the configuration information, and The program generation apparatus according to claim 1, wherein the plurality of programs are generated from the post-classification configuration information.
前記プログラム生成手段は、前記分類後構成情報から対応するプロセッサを特定し、特定したプロセッサに対応するモデルコンパイラを選択して、選択したモデルコンパイラを用いて前記分類後構成情報から当該特定したプロセッサで実行可能なプログラムを生成する
ことを特徴とする請求項2に記載のプログラム生成装置。 A plurality of model compilers for generating a program corresponding to each of the plurality of processors;
The program generation means identifies a corresponding processor from the classified configuration information, selects a model compiler corresponding to the identified processor, and uses the selected model compiler to identify the processor from the classified configuration information. The program generating apparatus according to claim 2, wherein an executable program is generated.
前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成し、
前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換し、
前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報と、前記変換したプログラムコードとを含めて生成する、
プログラム生成方法。 A configuration information in which a plurality of processors are installed and a configuration of the predetermined function in an embedded device realizing a predetermined function is defined by a plurality of nodes,
For each of a plurality of nodes defined in the configuration information, generate node state information that defines a node state and action information that is a behavior of the node in the state,
The action information defined in the node state information is converted into a program code that realizes processing corresponding to the behavior of the node in the state of the node,
Based on the configuration information, a plurality of programs corresponding to each of the plurality of processors includes communication processing information that is a program module in which communication processing between the plurality of processors is implemented, and the converted program code. Generate,
Program generation method.
当該受け付けた定義に基づき構成情報を生成し、
前記構成情報に含まれる複数のノードのいずれかの指定を受け付け、
当該指定されたノードにおけるノードの状態と当該状態におけるノードの振る舞いであるアクション情報との定義を受け付け、
当該受け付けた前記ノードの状態と前記アクション情報との定義に基づきノード状態情報を生成し、
前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換し、
予め記憶部に格納された前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を取得し、
前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記取得した通信処理情報と、前記変換したプログラムコードとを含めて生成する、
処理をコンピュータに実行させるプログラム生成プログラム。
Accepts definitions by multiple nodes of the configuration of the predetermined function in an embedded device that has multiple processors and implements the predetermined function,
Generate configuration information based on the accepted definition,
Accepting any one of a plurality of nodes included in the configuration information;
Accept the definition of the state of the node in the specified node and the action information that is the behavior of the node in the state,
Generate node state information based on the definition of the received node state and the action information,
The action information defined in the node state information is converted into a program code that realizes processing corresponding to the behavior of the node in the state of the node,
Obtaining communication processing information which is a program module in which communication processing between the plurality of processors stored in advance in the storage unit is implemented;
Based on the configuration information, a plurality of programs corresponding to the plurality of processors are generated including the acquired communication processing information and the converted program code.
A program generation program that causes a computer to execute processing.
前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を予め記憶する記憶手段と、
前記組み込み機器における前記所定の機能の構成を複数のノードにより定義した構成情報を生成する構成情報生成手段と、
前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成するノード状態情報生成手段と、
前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する変換手段と、
前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記記憶手段に記憶された前記通信処理情報と、前記変換したプログラムコードとを含めて生成するプログラム生成手段と、
無線通信により前記組み込み機器に対して制御を行う遠隔制御手段と、
を備える遠隔管理装置と、を備え、
前記遠隔制御手段は、前記生成した複数のプログラムを前記組み込み機器へ送信し、
前記組み込み機器は、前記遠隔管理装置から受信した複数のプログラムのそれぞれを、前記複数のプロセッサのうち対応するプロセッサにおいて実行させ、
前記複数のプロセッサは、各プロセッサが実行するプログラムに含まれる前記変換したプログラムコードに基づく処理を行い、当該プログラムに含まれる通信処理に基づいて、プロセッサ間の通信を行う
ことを特徴とする組み込み機器の遠隔管理システム。 An embedded device having a plurality of processors including a processor capable of wireless communication with the outside and realizing a predetermined function;
Storage means for preliminarily storing communication processing information which is a program module in which communication processing among the plurality of processors is implemented;
Configuration information generating means for generating configuration information in which the configuration of the predetermined function in the embedded device is defined by a plurality of nodes;
Node state information generating means for generating, for each of a plurality of nodes defined in the configuration information, node state information that defines a node state and action information that is a behavior of the node in the state;
Conversion means for converting from action information defined in the node state information into a program code that realizes processing corresponding to the behavior of the node in the state of the node;
Based on the configuration information, a program generation unit that generates a plurality of programs corresponding to each of the plurality of processors, including the communication processing information stored in the storage unit and the converted program code;
Remote control means for controlling the embedded device by wireless communication;
A remote management device comprising:
The remote control means transmits the generated plurality of programs to the embedded device,
The embedded device causes each of the plurality of programs received from the remote management device to be executed by a corresponding processor among the plurality of processors,
The plurality of processors performs processing based on the converted program code included in a program executed by each processor, and performs communication between the processors based on communication processing included in the program. Remote management system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010205344A JP5605109B2 (en) | 2010-09-14 | 2010-09-14 | Program generating apparatus, method and program, and remote management system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010205344A JP5605109B2 (en) | 2010-09-14 | 2010-09-14 | Program generating apparatus, method and program, and remote management system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012063826A JP2012063826A (en) | 2012-03-29 |
JP5605109B2 true JP5605109B2 (en) | 2014-10-15 |
Family
ID=46059511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010205344A Expired - Fee Related JP5605109B2 (en) | 2010-09-14 | 2010-09-14 | Program generating apparatus, method and program, and remote management system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5605109B2 (en) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6311265B2 (en) * | 2013-10-17 | 2018-04-18 | 日本電気株式会社 | Communication relay device, communication relay system, relay definition information update method, and update program |
JP6237102B2 (en) * | 2013-10-17 | 2017-11-29 | 日本電気株式会社 | Management device, control method and program for management device |
US11573965B2 (en) | 2016-09-15 | 2023-02-07 | Oracle International Corporation | Data partitioning and parallelism in a distributed event processing system |
WO2018053343A1 (en) | 2016-09-15 | 2018-03-22 | Oracle International Corporation | Managing snapshots and state with micro-batching |
WO2018169430A1 (en) | 2017-03-17 | 2018-09-20 | Oracle International Corporation | Integrating logic in micro batch based event processing systems |
WO2018169429A1 (en) | 2017-03-17 | 2018-09-20 | Oracle International Corporation | Framework for the deployment of event-based applications |
CN109804324A (en) * | 2017-04-07 | 2019-05-24 | 深圳市元征科技股份有限公司 | Automobile remote diagnostic method and device |
US11487514B2 (en) * | 2017-09-28 | 2022-11-01 | Oracle International Corporation | State management persistence |
CN112445491B (en) * | 2020-11-19 | 2024-09-10 | 深圳市元征科技股份有限公司 | File sequence processing method, device, terminal equipment and storage medium |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3658061B2 (en) * | 1995-12-20 | 2005-06-08 | 株式会社日立製作所 | FA system control device and method, control program generation method |
JP2000131194A (en) * | 1998-10-28 | 2000-05-12 | Honda Motor Co Ltd | Vehicle diagnostic program generating apparatus and vehicle diagnostic apparatus |
JP2008198143A (en) * | 2007-02-15 | 2008-08-28 | Fuji Electric Fa Components & Systems Co Ltd | Program creation support apparatus and program creation support method for programmable controller |
US8086436B2 (en) * | 2007-10-30 | 2011-12-27 | International Business Machines Corporation | Preliminary data representations of a deployment activity model |
-
2010
- 2010-09-14 JP JP2010205344A patent/JP5605109B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012063826A (en) | 2012-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5605109B2 (en) | Program generating apparatus, method and program, and remote management system | |
US10509718B2 (en) | System and method for automatically generating software testing scripts from test cases | |
US8732658B2 (en) | Layered interface in an industrial environment | |
US8745577B2 (en) | End to end automation of application deployment | |
KR101087439B1 (en) | Software componentization | |
US9632771B2 (en) | Association of metadata with source code and applications and services premised thereon | |
US8250521B2 (en) | Method and apparatus for the design and development of service-oriented architecture (SOA) solutions | |
US8527985B2 (en) | Techniques for rapid deployment of service artifacts | |
Hallerbach et al. | Context-based configuration of process variants | |
US20100280863A1 (en) | Automated Model Generation For Computer Based Business Process | |
US20160004516A1 (en) | Code Generation Framework for Application Program Interface for Model | |
CN103744647B (en) | A kind of Java workflow development system and method based on workflow visualization toolkit | |
US20090144703A1 (en) | Method and system for versioning a software system | |
WO2008113718A1 (en) | Method, system and computer program for distributing customized software products | |
Prehofer et al. | From internet of things mashups to model-based development | |
US8271934B2 (en) | Developing software applications with increased modularity | |
CN103905231A (en) | Method and device for unified management of device types | |
CN114115838A (en) | Data interaction method and system based on distributed components and cloud platform | |
US20240265275A1 (en) | Device Deployment Method for AI Model, System, and Storage Medium | |
CN103026337A (en) | Distillation and reconstruction of provisioning components | |
CN112947896B (en) | Directed graph-based component dependency analysis method | |
US20210271458A1 (en) | Managing an app method and system | |
CN118484187A (en) | Automatic component configuration method and system for Flutter modules | |
Balogh et al. | Workflow-driven tool integration using model transformations | |
US10958514B2 (en) | Generating application-server provisioning configurations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130805 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140520 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140710 |
|
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: 20140729 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140811 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5605109 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |