(57)【要約】      （修正有）【課題】デバイスドライバ等のハードウエアに依存する部分についてもソースコード自動生成を可能とする。【解決手段】コントローラモデル５３と、このコントローラモデル５３との間において信号の送受を行うパワーウインドウモデル５１及びスイッチモデル５２とを含むモデルベースの各モデルを独立させる。シミュレーション時の入出力信号・情報を規定した情報を備えるシミュレーション時規定情報保持部と、前記コントローラモデル５３に搭載されるＣＰＵ対応のデバイスドライバを備えるライブラリに対してアクセスし、前記ライブラリ内の所要ＣＰＵに対応するデバイスドライバへのインタフェースとなるドライバインタフェース部とを具備する。【選択図】図２
2008077415.tif 000002
【特許請求の範囲】
【請求項１】
ターゲットＥＣＵモデルと、このＥＣＵモデルとの間において信号の送受を行う非ターゲットＥＣＵモデルと、を含んで構成されるモデルベースに用いられ、各モデルを独立させるモデルベース開発補助ブロックであって、
シミュレーション時の入出力信号・情報を規定した情報を備えるシミュレーション時規定情報保持部と、
前記ターゲットＥＣＵに搭載されるＣＰＵ対応のデバイスドライバを備えるライブラリに対してアクセスし、前記ライブラリ内の所要ＣＰＵに対応するデバイスドライバへのインタフェースとなるドライバインタフェース部とを具備し、
対向して信号・情報を送受するモデルの一方に備えられる入力部と、対向する他方のモデルに備えられ前記入力部とペアとなる出力部とに、それぞれ配置されることを特徴とするモデルベース開発補助ブロック。
【請求項２】
ターゲットＥＣＵまたはＨＩＬＳに組み込むコード化の際には、ドライバインタフェース部について自動コード生成が行われることを特徴とする請求項１に記載のモデルベース開発補助ブロック。
【請求項３】
ログ入出力部を、更に備えることを特徴とする請求項１または２に記載のモデルベース開発補助ブロック。
【請求項４】
請求項１乃至請求項３に記載のモデルベース開発補助ブロックを備え、このモデルベース開発補助ブロックを介して実機をコントロールする処理を模擬するターゲットＥＣＵモデルと、
請求項１乃至請求項３に記載のモデルベース開発補助ブロックを備え、実機の処理を模擬すると共に前記モデルベース開発補助ブロックを介して前記ターゲットＥＣＵモデルと信号送受を行う非ターゲットＥＣＵモデルと
を具備することを特徴とするシミュレーションシステム。
【請求項５】
請求項１乃至３のいずれか１項に記載のモデルベース開発補助ブロックをターゲットＥＣＵモデルに配置すると共に、このＥＣＵモデルとの間において信号の送受を行う非ターゲットＥＣＵモデルにモデルベース開発補助ブロックを配置して、自動コード生成を行うことを特徴とする自動コード生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ターゲットＥＣＵ（Electric Control Unit）モデルと、このＥＣＵモデルとの間において信号の送受を行う非ターゲットＥＣＵモデルと、を含んで構成されるモデルベース開発に用いられるモデルベース開発補助ブロック及びこのモデルベース開発補助ブロックを用いたシミュレーションシステム及び自動コード生成方法に関するものである。
【背景技術】
【０００２】
従来、自動車や航空機その他各種の装置に用いられている組込みマイコンコントローラのモデル、更に、この組込みマイコンコントローラに接続される実機の部分に相当するモデル、を含んだモデルベース開発を行う場合には、ＭＡＴＬＡＢ（登録商標）／ｓｈｉｍｕｌｉｎｋ（登録商標）が用いられている。
【０００３】
上記のソフトウエアを用いて開発したモデルについては、ソースコード自動生成プログラムを用いてソースコードの自動生成が行われることが特許文献１に記載されている。
【特許文献１】特開２００６−２４００６号公報（特に、００４０欄、００４１欄）
【０００４】
しかしながら、上記のソースコード自動生成プログラムを用いてソースコードの自動生成を行う場合に、デバイスドライバ等のハードウエアに依存する部分に関しては、レガシーコードと称される従来型のマニュアルコーディングされたコードが必須となり、全てのソースコードを自動生成するということはできなかった。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の課題は、開発したモデルについて、ソースコード自動生成プログラムを用いてソースコードの自動生成を行う場合に、デバイスドライバ等のハードウエアに依存する部分に関して従来型のマニュアルコーディングされたコードが必須となることであり、本発明は係る問題点を解決し、デバイスドライバ等のハードウエアに依存する部分についてもソースコード自動生成を可能とするモデルベース開発補助ブロックを提供することを目的とし、また、このモデルベース開発補助ブロックを用いたシミュレーションシステム及び自動コード生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るモデルベース開発補助ブロックは、ターゲットＥＣＵモデルと、このＥＣＵモデルとの間において信号の送受を行う非ターゲットＥＣＵモデルと、を含んで構成されるモデルベースに用いられ、各モデルを独立させるモデルベース開発補助ブロックであって、シミュレーション時の入出力信号・情報を規定した情報を備えるシミュレーション時規定情報保持部と、前記ターゲットＥＣＵに搭載されるＣＰＵ対応のデバイスドライバを備えるライブラリに対してアクセスし、前記ライブラリ内の所要ＣＰＵに対応するデバイスドライバへのインタフェースとなるドライバインタフェース部とを具備し、対向して信号・情報を送受するモデルの一方に備えられる入力部と、対向する他方のモデルに備えられ前記入力部とペアとなる出力部とに、それぞれ配置されることを特徴とする。
【０００７】
本発明に係るモデルベース開発補助ブロックは、ターゲットＥＣＵまたはＨＩＬＳに組み込むコード化の際には、ドライバインタフェース部について自動コード生成が行われることを特徴とする。
【０００８】
本発明に係るモデルベース開発補助ブロックは、ログ入出力部を、更に備えることを特徴とする。
【０００９】
本発明に係るシミュレーションシステムは、請求項１乃至請求項３に記載のモデルベース開発補助ブロックを備え、このモデルベース開発補助ブロックを介して実機をコントロールする処理を模擬するターゲットＥＣＵモデルと、請求項１乃至請求項３に記載のモデルベース開発補助ブロックを備え、実機の処理を模擬すると共に前記モデルベース開発補助ブロックを介して前記ターゲットＥＣＵモデルと信号送受を行う非ターゲットＥＣＵモデルとを具備することを特徴とする。
【００１０】
本発明に係る自動コード生成方法は、請求項１乃至３のいずれか１項に記載のモデルベース開発補助ブロックをターゲットＥＣＵモデルに配置すると共に、このＥＣＵモデルとの間において信号の送受を行う非ターゲットＥＣＵモデルにモデルベース開発補助ブロックを配置して、自動コード生成を行うことを特徴とする。
【発明の効果】
【００１１】
本発明に係るモデルベース開発補助ブロックは、シミュレーション時の入出力信号・情報を規定した情報を備えるので、シミュレーション時に規定情報を用いた適切なシミュレーション動作に寄与し、また、ターゲットＥＣＵに搭載されるＣＰＵ対応のデバイスドライバを備えるライブラリに対してアクセスし、前記ライブラリ内のデバイスドライバへのインタフェースとなるドライバインタフェース部とを具備しているので、このインタフェース部についてソースコードが自動生成されることになり、マニュアルコーディングを不要とする。
【００１２】
本発明に係るモデルベース開発補助ブロックでは、ターゲットＥＣＵまたはＨＩＬＳに組み込むコード化の際には、ドライバインタフェース部について自動コード生成が行われるので、ターゲットＥＣＵまたはＨＩＬＳに組み込むコードについてマニュアルコーディングを不要とする。
【００１３】
本発明に係るモデルベース開発補助ブロックでは、ログ入出力部を、更に備えるので、ログ収集機能を組み込んだターゲットＥＣＵまたはＨＩＬＳを生成可能である。
【００１４】
本発明に係るシミュレーションシステムでは、ターゲットＥＣＵモデルと非ターゲットＥＣＵモデルとが、請求項１乃至請求項３に記載のモデルベース開発補助ブロックを備え、実機をコントロールする処理の模擬と、実機についての模擬処理がなされるので、ターゲット部分のＥＣＵへの実装コードの自動生成および、非ターゲット部分のＨＩＬＳへの実装コードの自動生成がシミュレーション可能な状態のまま、モデルに手を加えることなく容易に行うことができる。
【００１５】
本発明に係る自動コード生成方法では、マニュアルコーディングを不要とする。
【発明を実施するための最良の形態】
【００１６】
以下添付図面を用いて本発明に係るモデルベース開発補助ブロックとシミュレーションシステム及び自動コード生成方法の実施例を説明する。各図において、同一の構成要素には、同一の符号を付して重複する説明を省略する。
【００１７】
本実施例に係るモデルベース開発においては、例えば、図１に示されるパワーウインドウに関し、ウインドウを開閉するモータ部３１と開閉指示を送るスイッチ部３２とを実機とし、スイッチ部３２の窓操作スイッチＳＷからの指示信号を受けてモータ部３１を駆動制御する信号へ変換してモータ部３１へ送出すると共に状態情報等をモータ部３１から受けてこれに基づく状態表示をスイッチ部３２にて行うターゲットボード１００の開発を行う場合を例とする。
【００１８】
モデルベース開発では、図１に示したシステムについてMATLAB（登録商標）/Simulink （登録商標）を用いてシミュレーションモデル５０を作成する。即ち、モータ部３１の動作から図２に示すパワーウインドウモデル（MATLAB/Simulink によるモデル）５１を生成し、スイッチ部３２の動作から図２に示すスイッチモデル（MATLAB/Simulink によるモデル）５２を生成し、ターゲットボード１００の動作からターゲットＥＣＵモデルである図２に示すコントローラモデル（MATLAB/Simulink によるモデル）５３を生成する。
【００１９】
生成された非ターゲットＥＣＵモデルであるパワーウインドウモデル５１は、モータ部３１と全く同じ制御信号を受けて対応する回転数で対応する時間の回転シミュレートを行い、回転数などに対応する信号を返送するモータブロック５１Ａを有する。非ターゲットＥＣＵモデルであるスイッチモデル５２は、スイッチ部３２と全く同じく運転者等によるスイッチの操作シミュレートに応じて信号を送出するスイッチブロック５２Ａを有する。
【００２０】
更に、コントローラモデル５３は、ターゲットボード１００と全く同様にモータ部３１とスイッチ部３２との間において制御動作を模擬するモータ回転制御ブロック５３Ａを含むものである。パワーウインドウモデル５１、スイッチモデル５２及びコントローラモデル５３の動作は、様々な条件毎に幾つかのテストシナリオにまとめられてプログラム化される。
【００２１】
本来、パワーウインドウモデル５１のモータブロック５１Ａに入力されるＰＷＭ信号や、モータブロック５１Ａから返送される回転数の信号は、モータ回転制御ブロック５３Ａとの間において送受されるものであるが、本実施例では、パワーウインドウモデル５１におけるモータブロック５１Ａと接続されるＩ／Ｏ部分に、ＰＣ（パルスキャプチャ）ブロック５１ＢとＩ／Ｏブロック５１Ｃとを設ける。また、スイッチモデル５２のスイッチブロック５２Ａはモータ回転制御ブロック５３Ａとの間において、信号を送出し、更に必要な場合に送られてくる信号を受け取るのであるが、本実施例では、スイッチモデル５２のスイッチブロック５２Ａと接続されるＩ／Ｏ部分に、ＣＡＮ（Controller area network）ブロック５２Ｂ、５２Ｃを設ける。
【００２２】
更に、コントローラモデル５３には、スイッチモデル５２のＣＡＮブロック５２Ｂと対向する部分にＣＡＮブロック５３Ｂが設けられ、ＣＡＮブロック５２Ｃと対向する部分にＣＡＮブロック５３Ｃが設けられ、また、パワーウインドウモデル５１のＰＣブロック５１Ｂに対向する部分にＩ／Ｏブロック５３Ｄが設けられ、Ｉ／Ｏブロック５１Ｃに対向する部分にＩ／Ｏブロック５３Ｅが設けられる。
【００２３】
上記のＰＣブロック５１ＢとＩ／Ｏブロック５１Ｃ、ＣＡＮブロック５２Ｂ、５２Ｃ、ＣＡＮブロック５３Ｂ、５３Ｃ、Ｉ／Ｏブロック５３Ｄ、５３Ｅは、各モデルを独立させるモデルベース開発補助ブロックである。モデルベース開発補助ブロック１０は、図３に示すようにシミュレーション時規定情報保持部１１とドライバインタフェース部１２とを備える。シミュレーション時規定情報保持部１１は、シミュレーション時の入出力信号・情報を規定した情報を備えるものである。
【００２４】
上記において、シミュレーション時の入出力信号・情報を規定した情報とは、Ｉ／Ｏにおいて入出力される信号や情報の種類、そのレベルや振幅更には送受信のプロトコルに関する情報及び後に述べるシミュレーションを行うためのプログラムである。ＰＣブロック５１ＢとＩ／Ｏブロック５３Ｄとはペアを構成し、Ｉ／Ｏブロック５１ＣとＩ／Ｏブロック５３Ｅとはペアを構成し、ＣＡＮブロック５２ＢとＣＡＮブロック５３Ｂとはペアを構成し、ＣＡＮブロック５２ＣとＣＡＮブロック５３Ｃとはペアを構成し、各ペアを構成する２つのモデルベース開発補助ブロック１０におけるシミュレーション時規定情報保持部１１の情報は同一のものである。
【００２５】
従って、スイッチブロック５２Ａにおいて窓操作スイッチＳＷが操作された場合に対応するシミュレーションが行われると、スイッチブロック５２ＡからＣＡＮブロック５２Ｂへ向けて窓操作スイッチＳＷの操作に対応する信号が送られるシミュレーションが行われ、ＣＡＮブロック５２Ｂでは、シミュレーション時規定情報保持部１１の情報に基づき該当する信号送出のシミュレーションが行われる。このようなスイッチモデル５２におけるシミュレーション動作に対して、コントローラモデル５３では、ＣＡＮブロック５３Ｂがシミュレーション時規定情報保持部１１の情報に基づき該当する信号の受信及びモータ回転制御ブロック５３Ａへ送出するシミュレートを行い、対応してモータ回転制御ブロック５３Ａが該当信号の受け取り及び対応する制御のシミュレーションを行う。モータ回転制御ブロック５３Ａにおける該シミュレーションでは、モータブロック５１Ａ制御のためのＰＷＭ信号がＩ／Ｏブロック５３Ｄへ向けて送られるシミュレーションが行われ、Ｉ／Ｏブロック５３Ｄではシミュレーション時規定情報保持部１１の情報に基づき該当するＰＷＭ信号送出のシミュレーションが行われる。
【００２６】
上記のようなコントローラモデル５３におけるシミュレーション動作に対して、パワーウインドウモデル５１では、ＰＣブロック５１Ｂが、シミュレーション時規定情報保持部１１の情報に基づき該当するＰＷＭ信号の受信及びモータブロック５１Ａへ送出するシミュレートを行い、モータブロック５１Ａでは上記ＰＷＭ信号を受けたときのモータ回転等に対応するシミュレーションが行われた結果、モータブロック５１Ａからモータ回転に応じた回転数信号がＩ／Ｏブロック５３Ｃへ検出出力されるシミュレーションが行われる。これに応じてＩ／Ｏブロック５１Ｃは、シミュレーション時規定情報保持部１１の情報に基づきモータブロック５１Ａから検出出力された回転数信号の送出をシミュレーションする。
【００２７】
上記のようなパワーウインドウモデル５１におけるシミュレーション動作に対して、コントローラモデル５３では、Ｉ／Ｏブロック５３Ｅが、シミュレーション時規定情報保持部１１の情報に基づき該当する回転数信号の受信及びモータ回転制御ブロック５３Ａへ送出するシミュレートを行い、モータ回転制御ブロック５３Ａではこの回転数信号の受信及びこの回転数信号を受けてスイッチモデル５２へ状態情報等を返送するシミュレートを行い、ＣＡＮブロック５３Ｃがシミュレーション時規定情報保持部１１の情報に基づき該当する状態情報等を送出するシミュレーションを行う。
【００２８】
上記のようなコントローラモデル５３におけるシミュレーション動作に対して、スイッチモデル５２では、ＣＡＮブロック５２Ｃがシミュレーション時規定情報保持部１１の情報に基づき該当する状態情報等の受信及びスイッチブロック５２Ａへ送出するシミュレートを行い、スイッチブロック５２Ａでは状態情報等の受信及びこの状態情報等を受けて状態に関しＬＥＤ等への表示を行うシミュレーション動作がなされる。
【００２９】
上記の説明の通り、スイッチモデル５２における窓操作スイッチＳＷの操作からのシミュレーション、コントローラモデル５３における制御シミュレーション、パワーウインドウモデル５１におけるモータ回転のシミュレーション及び返送信号送出シミュレーション、コントローラモデル５３における制御シミュレーション、スイッチモデル５２における表示シミュレーションと各モデルが連携する。但し、各モデル間に設けられたモデルベース開発補助ブロックにより各モデルは独立しており、独立して自動コード生成に供されるものである。
【００３０】
モデルベース開発補助ブロック１０に備えられているドライバインタフェース部１２は、ターゲットＥＣＵであるコントローラモデル５３に搭載される各種ＣＰＵ対応のデバイスドライバを備えるライブラリ２０（図３に示す）に対してアクセスし、このライブラリ２０内の所要ＣＰＵに対応するデバイスドライバへのインタフェースとなるものである。即ち、デバイスドライバは、ターゲットＥＣＵであるコントローラモデル５３に搭載されるＣＰＵの種類に応じて異なるため、コントローラモデル５３に搭載されるＣＰＵの種類に応じたデバイスドライバをライブラリ２０に用意し、モデルベース開発補助ブロック１０が入出力の処理を行う際に用いるデバイスドライバをライブラリ２０から取り出すようにし、この取り出しを行うインタフェース部分をドライバインタフェース部１２としてあり、この部分のみが自動コード生成の対象となる。
【００３１】
以上の通りに構成されたモデルベース開発補助ブロック１０を用いて作成されているシミュレーションモデル５０において、コントローラモデル５３の部分を取り出し、コード生成プログラムを用いて自動コード生成を行うことにより、従来はレガシーコードが必要であった部分がライブラリ２０へのインタフェース部としてコード化されているため、このコードとライブラリとを組み合わせて実行プログラムを作成することができる。
【００３２】
そして、自動コード生成されたドライバインタフェース部１２のコードにおいては、ライブラリ２０へのインタフェース部として機能となっており、コントローラモデル５３に搭載されるＣＰＵの種類に関係なく使用可能である。コントローラモデル５３に搭載されるＣＰＵの種類が異なるコントローラモデル５３に適用する場合には、ライブラリを差し替えることで対応でき極めて汎用的に使用できるものである。
【００３３】
上記のスイッチモデル５２、コントローラモデル５３及びパワーウインドウモデル５１は、サブシステムと呼ばれて、ターゲットＥＣＵモデルと、非ターゲットＥＣＵモデルに分離してコード化することになるが、本実施例では入出力部分が全てモデルベース開発補助ブロック１０のみを用いて接続された構成となり、境界が明確となっており、サブシステムへの分離の際にモデルを編集する必要がない利点を有している。
【００３４】
更に、本実施例では入出力部分が全てモデルベース開発補助ブロック１０のみを用いて接続された構成となっているため、各モデルベース開発補助ブロック１０にログ入出力部を更に備えさせる。この構成により、モデル、プログラムの変更を行うことなく、シミュレーションの際及びターゲット実装後に実行ログ収集を行うことができ、メンテナンス等を容易に行うことが可能である。
【００３５】
また、図２におけるターゲットＥＣＵモデル以外の非ターゲットＥＣＵモデルであるスイッチモデル５２及びパワーウインドウモデル５１についてコード生成プログラムを用いて自動コード生成を行い、この自動コード生成されたプログラムによりＨＩＬＳ（Hardware In The Loop）を構築することが可能である。即ち、シミュレーションモデル５０は、ターゲットと非ターゲットをつなぐＩ／Ｏのブロック（５１Ｂ５１Ｃ５２Ｂ５２Ｃ５３Ｂ〜５３Ｅ）をペアにすることで、ターゲット部分のＥＣＵへの実装コードの自動生成および、非ターゲット部分のＨＩＬＳへの実装コードの自動生成がシミュレーション可能な状態のまま、モデルに手を加えることなく容易に行うことができる仕組みとなっており、ＥＣＵやＨＩＬＳの開発・設計に好適なものである。
【図面の簡単な説明】
【００３６】
【図１】モデルベース開発に係る一対象であるパワーウインドウシステムの構成例を示す図。
【図２】図１に示したシステムについて本発明の実施例に係るモデルベース開発補助ブロックを用いて構成したシミュレートモデルを示すブロック図。
【図３】図１に示したシステムについて本発明の実施例に係るモデルベース開発補助ブロックの構成を示すブロック図。
【符号の説明】
【００３７】
１０  モデルベース開発補助ブロック
１１  シミュレーション時規定情報保持部
１２  ドライバインタフェース部
２０  ライブラリ
５０  シミュレーションモデル
５１  パワーウインドウモデル
５１Ａ  モータブロック
５１Ｂ  ＰＣブロック
５１Ｃ、５３Ｄ、５３Ｅ  Ｉ／Ｏブロック
５２  スイッチモデル
５２Ａ  スイッチブロック
５２Ｂ、５２Ｃ、５３Ｂ、５３Ｃ  ＣＡＮブロック
５３  コントローラモデル
５３Ａ  モータ回転制御ブロック
【図１】
2008077415.tif 000003
【図２】
2008077415.tif 000004
【図３】
2008077415.tif 000005