(57)【要約】      （修正有）【課題】所望の故障注入を含む所望の制御を、テストプログラムから、所望のタイミングで、仮想デバイスモデルへ与えることが可能な演算装置及び仮想開発環境装置を提供する。【解決手段】仮想開発環境装置ＶＭ１は、ソフトウェア検証環境（システムテストプログラムＳＴＰ１，システム制御アプリケーションＳＣＡ１，デバイス制御ＩＦ（ＡＰＩ）ＤＣＩ１）と仮想モデル環境（デバイス制御ＳＷ  ＤＣＳ１，仮想デバイスモデルＶＤＭ１）とインターフェース部ＩＦＰ１とを含む。インターフェース部は、システムテストプログラムから仮想デバイスモデルを制御するための指示を中継する役割を果たし、システムテストプログラムは、仮想デバイスモデルに対し、意図的な故障注入や意図的な応答の遅延など、所望の制御を行う。【選択図】図１
2018081400.tif 000002
【特許請求の範囲】
【請求項１】
演算装置は、
テストプログラムと、
仮想デバイスモデルと、
前記テストプログラムと前記仮想デバイスモデルとを対応付けるための、インターフェース部と、を備え、
前記テストプログラムから、前記インターフェース部を介して、前記仮想デバイスモデルへ所望の制御を与える。
【請求項２】
請求項１の演算装置において、
前記インターフェース部は、デバイス制御インターフェース部とデバイス制御ソフトウェア部とを含む。
【請求項３】
請求項２の演算装置において、
前記テストプログラムは、シナリオ設定部を含み、
前記デバイス制御ソフトウェア部は、複数の汎用機能を含み、
前記シナリオ設定部の定義に基づいて、前記複数の汎用機能の所望の汎用機能を選択して、前記仮想デバイスモデルへ、前記所望の制御を与える。
【請求項４】
請求項３の演算装置において、
前記所望の制御は、前記仮想デバイスモデルに故障状態を発生させ、または、応答の遅延を発生させる。
【請求項５】
請求項４の演算装置において、
前記仮想デバイスモデルは、マイクロコンピュータを模擬動作するものであり、
前記複数の汎用機能の各々は、前記マイクロコンピュータの複数の制御レジスタないし制御ビットから選択された制御レジスタないし制御ビットの値を変化させる、または、マイクロコンピュータの割り込みタイミングなどの挙動を制御する、汎用的な単一の制御機能である。
【請求項６】
請求項５の演算装置において、
前記シナリオ設定部は、複数のシナリオを定義可能であり、
前記複数のシナリオのそれぞれは、実行されるべき汎用機能の実行順序およびその実行されるべき汎用機能の実行時間の記述を含み、
前記複数のシナリオから１つのシナリオが選択された場合、前記選択されたシナリオの前記記述に従って、イベントドリブンで、選択された汎用機能が実行される。
【請求項７】
請求項６の演算装置において、
入力装置を、さらに、含み、
前記複数のシナリオは、前記入力装置からの入力により定義可能である。
【請求項８】
請求項２の演算装置において、
さらに、デバイス制御ソフトウェア部と前記仮想デバイスモデルとの間に設けられた共通インターフェースを含み、
前記仮想デバイスモデルは、マイクロコンピュータを模擬動作するものであり、
前記仮想デバイスモデルは、前記模擬動作されるマイクロプロセッサについて、それぞれ異なる言語によって作成された複数の仮想デバイスモデルから、前記共通インターフェースにより、選択された仮想デバイスモデルである。
【請求項９】
演算装置を含む仮想開発環境装置であって、
前記演算装置は、
テストプログラムと、
システムアプリケーションと、
仮想デバイスモデルと、
前記テストプログラムと前記仮想デバイスモデルとを連結させるための、デバイス制御インターフェース部とデバイス制御ソフトウェア部とを含む第１インターフェース部と、
前記デバイス制御ソフトウェア部と前記仮想デバイスモデルとの間に設けられた第２インターフェース部と、を実行可能であり、
前記仮想デバイスモデルは、マイクロコンピュータを模擬動作するものであり、
前記仮想デバイスモデルは、前記模擬動作されるマイクロプロセッサについて、それぞれ異なる言語によって作成された複数の仮想デバイスモデルから、前記第２インターフェース部により選択された仮想デバイスモデルである。
【請求項１０】
演算装置を含む仮想開発環境装置であって、
前記仮想開発環境装置は、エンジン制御モジュールの開発に利用されるものあり、
前記演算装置は、
エンジン制御用の車載電子制御装置に搭載されるべきエンジン制御用システムアプリケーションプログラムと、
前記エンジン制御用システムアプリケーションプログラムを検証するためのエンジン制御モジュール用テストプログラムと、
前記車載電子制御装置に採用されるべきマイクロコンピュータの動作を模擬可能な仮想デバイスモデルと、
前記エンジン制御モジュール用テストプログラムと前記仮想デバイスモデルとを連結させるためのインターフェース部と、
を実行することにより、仮想開発環境を構築し、
前記エンジン制御モジュール用テストプログラムから、前記インターフェース部を介して、前記仮想デバイスモデルへ所望の制御を与えることにより、前記仮想デバイスモデルの動作を変化させ、
前記仮想デバイスモデルの動作の変化を、前記エンジン制御用システムアプリケーションプログラムに与えることで、前記エンジン制御モジュール用テストプログラムにより、前記エンジン制御用システムアプリケーションプログラムを検証する。
【請求項１１】
請求項１０の仮想開発環境装置において、
前記所望の制御は、前記仮想デバイスモデルに故障状態を発生させ、または、応答の遅延を発生させる。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、演算装置及び仮想開発環境装置に関し、特に、仮想デバイスモデルを用いた演算装置及び仮想開発環境装置に適用可能である。
【背景技術】
【０００２】
自動車業界では、電気／電子部品と、これらに搭載されるマイクロコンピュータのソフトウェア開発において、機能安全規格ＩＳＯ２６２６２の適用と規格準拠が必須となりつつある。自動車メーカ、および例えば、マイクロコンピュータ等の車載向け半導体装置のサプライヤにおいては、この要件を満たすため、モデルベース開発環境、すなわち、仮想デバイスモデルを用いた仮想開発環境の整備や構築が行われている。車載電子制御装置（ＥＣＵ）の仮想開発環境では、例えば、開発対象であるＥＣＵ（以降では、「開発対象ＥＣＵ」と呼称する）の仮想デバイスモデル（仮想ＥＣＵモデル）と、ＥＣＵのシステムテストプログラムとを用いて、ＥＣＵのシステム制御アプリケーションプログラムの開発およびその検証が行われる。開発対象ＥＣＵの仮想デバイスモデル（以降では、「仮想ＥＣＵモデル」と呼称する。）には、開発対象ＥＣＵに用いられるマイクロコンピュータの仮想デバイスモデル(仮想マイクロコンピュータモデル)が含まれる。ＥＣＵのシステム制御アプリケーションプログラムの開発およびその検証の際、例えば、仮想マイクロコンピュータモデルに対して所望の故障注入が行われ、開発対象のシステム制御アプリケーションプログラムの開発や検証およびその品質向上が図られている。なお、仮想デバイスモデルとは、対象とされるハードウェアの動作を、例えば、仮想的に代替し、模擬動作（シミュレーション）を行うことが可能なソフトウェアモデルである。
【０００３】
特開２０１４−６４２３９号公報（特許文献１）には、「移動体通信端末試験システムは、移動体通信端末を制御するための操作指示を受けて端末制御コマンドを生成するとともに、測定制御のための操作指示を受けて測定制御コマンドを生成するコマンド生成部１２と、コマンド生成部により生成されたコマンドをコマンドシーケンスとして順次記憶する記憶部１３と、コマンドシーケンスを受け、当該コマンドシーケンスに記憶されたコマンドを出力するコマンド実行部１５と、コマンド実行部からのコマンドに基づいて測定制御を行う試験制御部１６０からの制御に基づいて、移動体通信端末に対する測定を行う測定部１６３と、を備えた試験装置と、移動体通信端末に記憶され、端末制御指示を受け該移動体通信端末を制御するための試験アプリケーション２０とを含む。」ことが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−６４２３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１によれば、試験装置から、自由なタイミングで各種コマンドにより、顧客システムテストプログラム内のユーザＩＦ処理を制御する事ができる。しかし、特許文献１の技術を適用した場合でも、仮想ＥＣＵモデルの内部に存在する仮想マイコンモデルを制御する事ができないという課題があることが分かった。
【０００６】
本発明者らは仮想開発環境の整備や構築に関し検討し、以下の要求があることを見出した。
【０００７】
ＥＣＵのシステム制御アプリケーション開発は、ＥＣＵに利用される半導体デバイスの完成前、すなわち、実際のハードウェアとしてのＥＣＵが無い状態で、先行して開発を行い、開発期間を短縮したいとの要求がある。また、運転支援・自動運転への適用に際しては、増大・複雑化するシステム制御アプリケーションの検証を、より効率的に実施したいとの要求もある。また、実際にＥＣＵが作成された状態でも、システム制御アプリケーションの検証を行い、システム制御アプリケーションに対する検証の効率化およびその品質向上を図りたいとの要求もある。
【０００８】
また、運転支援・自動運転への適用により、膨大な数のテストパターンを作成し、それらのテストパターンを用いたシステム制御アプリケーションの検証を行うことが求められている。また、実際に故障を発生させることが困難なテストパターンも少なくなく、そのような場合、仮想デバイスモデルに対して故障を注入し、異常状態を疑似的に引き起こすことが可能である。そのため、仮想デバイスモデルに対する故障注入は、テストパターンを網羅することによる品質向上はもとより、容易にテストパターンに対応する異常状態を構築するという意味において、システム制御アプリケーションの開発の効率化にとっても、重要な技術であると考えられている。さらに、仮想デバイスモデルに対する故障注入を、任意のタイミングで行いたいとの要求や、膨大な数のテストパターンを網羅すべく、如何にして故障注入を効率的に行うかという要求も強く求められている。
【０００９】
本開示の課題は、所望の故障注入を含む所望の制御を、テストプログラムから、所望のタイミングで、仮想デバイスモデルへ与えることが可能な演算装置及び仮想開発環境装置を提供することにある。
【００１０】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本開示のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１２】
すなわち、演算装置及び仮想開発環境装置は、テストプログラムと仮想デバイスモデルとを連結させるための、インターフェース部を、含む。
【発明の効果】
【００１３】
本開示の演算装置及び仮想開発環境装置によれば、テストプログラムから仮想デバイスモデルへ、所望の制御を、所望のタイミングで、与えることが可能となる。
【図面の簡単な説明】
【００１４】
【図１】実施例１に係る仮想開発環境装置の図である。
【図２】図１の仮想開発環境装置ＶＭ１のハードウェア構成を示す概念図である。
【図３】図１のデバイス制御ソフトウェア部ＤＣＳ１の構成を示す。
【図４】比較例Ｂ１と実施例１に係る仮想開発環境Ｂ２とを示す説明図である。
【図５】実施例２に係る仮想開発環境装置の他の構成例を示す概念図である。
【図６】実施例１の仮想開発環境装置の応用例を示す。
【発明を実施するための形態】
【００１５】
以下、実施例、比較例および応用例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。なお、図面は説明をより明確にするため、実際の態様に比べ、模式的に表される場合があるが、あくまで一例であって、本発明の解釈を限定するものではない。
【実施例１】
【００１６】
図１は、実施例１に係る仮想開発環境装置を説明する概念図である。
【００１７】
仮想開発環境装置ＶＭ１は、ソフトウェア検証環境（システムテストプログラムＳＴＰ１，システム制御アプリケーションＳＣＡ１，デバイス制御ＩＦ（ＡＰＩ）ＤＣＩ１）と仮想モデル環境（デバイス制御ＳＷ  ＤＣＳ１，仮想デバイスモデルＶＤＭ１）とを含む仮想開発環境を構築する。仮想開発環境装置ＶＭ１は、開発および検証の対象であるシステム制御アプリケーションＳＣＡ１を、検証プログラムであるシステムテストプログラムＳＴＰ１により検証する開発支援装置またはシミュレーション装置と見做すことが出来る。
【００１８】
仮想開発環境装置ＶＭ１は、さらに、インターフェース部ＩＦＰ１と、仮想デバイスモデルＶＤＭ１とを含む。インターフェース部ＩＦＰ１は、システムテストプログラムＳＴＰ１から仮想デバイスモデルＶＤＭ１を制御するための指示を中継する役割を果たすものである。インターフェース部ＩＦＰ１は、デバイス制御インターフェース部（デバイス制御ＩＦ（ＡＰＩ））ＤＣＩ１とデバイス制御ソフトウェア部（デバイス制御ＳＷ）ＤＣＳ１とを含む。
【００１９】
デバイス制御インターフェース部ＤＣＩ１は、システムテストプログラムＳＴＰ１のシナリオ設定部ＳＳＰからの指令や信号をデバイス制御ソフトウェア部ＤＣＳ１へ出力し、また、デバイス制御ソフトウェア部ＤＣＳ１からの入力信号を、システムテストプログラムＳＴＰ１へ出力する。デバイス制御ソフトウェア部ＤＣＳ１は、デバイス制御インターフェース部ＤＣＩ１からの指令や信号に従い、仮想デバイスモデルＶＤＭ１へ指示や信号を出力し、また、仮想デバイスモデルＶＤＭ１からの出力信号を、デバイス制御インターフェース部ＤＣＩ１へ供給する。なお、デバイス制御インターフェース部ＤＣＩ１は、システムテストプログラムＳＴＰ１の一部として、システムテストプログラムＳＴＰ１内に組み込まれても良い。
【００２０】
すなわち、システムテストプログラムＳＴＰ１は、デバイス制御インターフェース部ＤＣＩ１またはデバイス制御ソフトウェア部ＤＣＳ１を経由して、仮想デバイスモデルＶＤＭ１に対し、意図的な故障注入や意図的な応答の遅延など、所望の制御を行うことが可能とされる。例えば、システム制御アプリケーションＳＣＡ１は車載電子制御装置（ＥＣＵ）のシステム制御アプリケーションであり、仮想デバイスモデルＶＤＭ１は、前記ＥＣＵに利用されるマイクロプロセッサやマイクロコンピュータの仮想デバイスモデルである。
【００２１】
システムテストプログラムＳＴＰ１は、システム制御アプリケーションＳＣＡ１に対し様々な信号を与えることが可能である。システム制御アプリケーションＳＣＡ１は与えられた信号に従って、その処理を実行し、仮想デバイスモデルＶＤＭ１に命令を与える。仮想デバイスモデルＶＤＭ１は受け取った命令を実行し、その実行結果をシステム制御アプリケーションＳＣＡ１へ出力する。これにより、システムテストプログラムＳＴＰ１によるシステム制御アプリケーションＳＣＡ１の動作検証が実施される。
【００２２】
システムテストプログラムＳＴＰ１は、前述のように、デバイス制御インターフェース部ＤＣＩ１およびデバイス制御ソフトウェア部ＤＣＳ１を経由し、仮想デバイスモデルＶＤＭ１を制御する。これにより、システムテストプログラムＳＴＰ１は、仮想デバイスモデルＶＤＭ１に対し、例えば、故障注入として、意図的に故障を発生させる制御、あるいは、意図的に応答の遅延を発生させる制御を行うことができる。任意のタイミングで、仮想デバイスモデルＶＤＭ１に、故障注入や応答の遅延などの所望の制御を行うため、システムテストプログラムＳＴＰ１には、シナリオ設定部ＳＳＰが設けられる。シナリオ設定部ＳＳＰには、複数のシナリオが設定可能である。このシナリオとは、仮想デバイスモデルＶＤＭ１に対する故障注入や応答の遅延などのテストや検証を行いたい制御に関するテストパターンのスケジューリングを意味し、テストパターン毎にシナリオが作成される。
【００２３】
したがって、システムテストプログラムＳＴＰ１は、図１において矢印Ａで示されるように、シナリオ設定部ＳＳＰに設定された複数のシナリオから選択された１つシナリオに従って、任意のタイミングで、仮想デバイスモデルＶＤＭ１に故障注入や応答の遅延などを行うことが可能である。さらに、システムテストプログラムＳＴＰ１は、その故障注入や所望の制御の注入がされた場合の仮想デバイスモデルＶＤＭ１の動作や応答に対するシステム制御アプリケーションＳＣＡ１の動作を検証することが可能である。
【００２４】
開発・検証後のシステム制御アプリケーションＳＣＡ１が、例えば、車載電子制御装置（ＥＣＵ）などの製品に搭載される際、仮想デバイスモデルＶＤＭ１は実際の半導体デバイス(例えば、半導体集積回路としてのマイクロプロセッサやマイクロコンピュータ)に置き換わる仮想デバイスモデルであり、バーチャル空間で動作するものである。システムテストプログラムＳＴＰ１のシナリオ設定部ＳＳＰ、インターフェース部ＩＦＰ１は、システム制御アプリケーションＳＣＡ１の開発・検証のための機能であり、製品に搭載される際には取り除かれる。システム制御アプリケーションＳＣＡ１と、シナリオ設定部ＳＳＰを除くシステムテストプログラムＳＴＰ１は、製品に搭載された後も残される部分であり、リアル空間で動作する。インターフェース部ＩＦＰ１は、リアル空間とバーチャル空間の橋渡しを行い、相互の連携や連結を可能にするものである。
【００２５】
図２は、図１に示す仮想開発環境装置ＶＭ１のハードウェア構成を示す概念図である。
【００２６】
仮想開発環境装置ＶＭ１は、演算装置としての複数のＣＰＵ（Central Processing Unit）２００、所要のプログラムを記憶するＲＯＭ（Read Only Memory）２０１、実行するプログラムや各種データ等を保持するＲＡＭ(Random Access Memory)２０２を備える。仮想開発環境装置ＶＭ１は、さらに、例えば、ハードディスクドライブ等の外部記憶装置２０３、インターフェース回路２０４、例えば、キーボードなどの入力装置２０５、入力および出力などを表示する表示装置２０６、これらを互いに接続するバス２０７、を備える。
【００２７】
インターフェース回路２０４は、多数の接続端子を備えており、後述するように、開発済みのＥＣＵ２１０の入出力端子とそれぞれ電気的に接続可能とされている。ＥＣＵ２１０は、例えば、車両のエンジン制御用等のＥＣＵであり、図示しないプロセッサ（ＣＰＵ）、メモリ（ＲＯＭ，ＲＡＭ）、複数の周辺回路，入出力回路等を備えている。ＥＣＵ２１０は、インターフェース回路２０４を通じて仮想開発環境装置ＶＭ１との間で、各種の入力／出力信号（Ｉ／Ｏ信号）をやり取りすることが出来るようにされる。ＣＰＵ２００は、仮想開発環境装置ＶＭ１内のソフトウェア処理を分散するために複数設けられる。
【００２８】
ＲＯＭ２０１や外部記憶装置２０３の記憶装置には、図１に示されるシステム制御アプリケーションＳＣＡ１、システムテストプログラムＳＴＰ１、デバイス制御インターフェース部ＤＣＩ１、デバイス制御ソフトウェア部ＤＣＳ１および仮想デバイスモデルＶＤＭ１等のソフトウェアが格納される。これらのソフトウェアは、必要に応じて、ＲＡＭ２０２にロードされ、複数のＣＰＵ２００により実行されて、図１に示されるような、ソフトウェア検証環境および仮想モデル環境を含む仮想開発環境が構築される。
【００２９】
入力装置２０５および表示装置２０６は、次のように利用することが出来る。例えば、シナリオ設定部ＳＳＰに設定された複数のシナリオは、入力装置２０５から入力することができ、その入力結果が表示装置２０６に表示される。また、入力装置２０５からの入力に応じて複数のシナリオから所望の１つのシナリオが選択され、選択されたシナリオに対応する故障注入や所望の制御を仮想デバイスモデルＶＤＭ１に対して与えることが出来る。その選択されたシナリオに基づく仮想デバイスモデルＶＤＭ１の動作に対するシステム制御アプリケーションＳＣＡ１の動作の結果は、システムテストプログラムＳＴＰ１を介して、表示装置２０６に表示することが出来る。
【００３０】
図３は、図１のデバイス制御ソフトウェア部ＤＣＳ１の構成例を示す。
【００３１】
デバイス制御ソフトウェア部ＤＣＳ１は、仮想デバイスモデルＶＤＭ１のシナリオ設定部ＳＳＰに設定された複数のシナリオから選択された一のシナリオに基づいて、イベントドリブンで動作させる構成とされる。そのため、デバイス制御ソフトウェア部ＤＣＳ１には、複数の汎用機能ＧＦ１−ＧＦｎが設けられる。各々の汎用機能ＧＦ１−ＧＦｎは、仮想モデルデバイスＶＤＭ１の状態を変化させる、あるいは、故障状態を発生させるなど、仮想モデルデバイスＶＤＭ１の動作を制御するための汎用的な制御機能の集合体と見做される。
【００３２】
汎用機能ＧＦ１−ＧＦｎは、選択されたシナリオに定義された時間および汎用機能の実行順番に従って、イベントドリブンに呼び出され、呼び出された汎用機能ＧＦ１−ＧＦｎのうちの一または複数のシナリオが、順次実行される。たとえば、選択されたシナリオに、「汎用機能ＧＦ１の呼び出し実行、１０ｍｓ後に汎用機能ＧＦ２の呼び出し実行、１０ｍｓ後に汎用機能ＧＦ３の呼び出し実行」というようなスケジューリングが定義された場合、それに従って、３つの汎用機能ＧＦ１、ＧＦ２，ＧＦ３が、実行時間も考慮されて、順次呼び出され実行されることになる。すなわち、シナリオとして、実行されるべき汎用機能の実行順序およびその実行されるべき汎用機能の実行時間を定義することで、多種多様な汎用機能の組み合わせとその実行順序および実行時間をスケジューリングとして定義できる。その結果、多種多様な仮想デバイスモデルＶＤＭ１の動作を示すスケジューリングが可能になる。シナリオ設定部ＳＳＰに設定する複数のシナリオ（テストパターン）毎に、仮想デバイスモデルＶＤＭ１の動作を制御するスケジュールが比較的容易に策定することが可能となる。呼び出しプログラム側とされるシステムテストプログラムＳＴＰ１のシナリオ設定部ＳＳＰで、時間軸を考慮した呼び出しを行う様にすることで、様々なシナリオを実現する事が可能にされている。
【００３３】
汎用機能ＧＦ１−ＧＦｎのそれぞれは、例えば、１）ＧＦ１：xの例外を発生させる機能、２）ＧＦ２：レジスタをyの値を固着させる機能、３）ＧＦ３：レジスタをzの値に書き換える機能、・・・・、Ｎ）ＧＦｎ：クロックを停止させる機能など、時間軸に関わらない汎用的な単一の制御機能を有する。すなわち、一般的によく知られているように、仮想デバイスモデルＶＤＭ１により模擬動作されるマイクロコンピュータは複数の制御レジスタや制御ビットを含む。汎用機能ＧＦ１−ＧＦｎの各々は、これらの複数の制御レジスタや制御ビットから選択された制御レジスタや制御ビットの値を任意に変化させるような汎用的な単一の制御機能とされる。
【００３４】
汎用機能ＧＦ１−ＧＦｎの他の例としては、以下の構成も採用することが出来る。
【００３５】
仮想デバイスモデルＶＤＭ１がマイクロコンピュータのモデルとされる場合、そのマイクロコンピュータに含まれる内蔵回路モジュールは、次の構成とすることが出来る。その内蔵回路モジュールは、例えば、ＣＰＵ，ＲＡＭ、割り込み制御回路、アナログデジタル変換回路（ＡＤＣ）、ダイナミックメモリアクセス回路（ＤＭＡＣ）、タイマ回路（ＴＭ）、ＣＡＮ（Controller Area Network）インターフェース回路、ＬＩＮ（Local Interconnect Network）インターフェース回路、シリアル通信インターフェース回路（ＳＣＩ）、クロック発生回路、電源制御回路などとすることが出来る。この場合、汎用機能ＧＦ１−ＧＦｎとして、上記される内蔵回路モジュールの各モジュール毎に作成する。そして、各モジュールに割り当てられるアドレス、例えば、制御レジスタや制御ビットのアドレス、に対して所望の制御を行う機能をその汎用機能として定義すればよい。所望の制御とは、制御レジスタや制御ビットのアドレスに対して、所望のデータを書き込む動作とされる。所望の制御は、また、マイクロコンピュータの割り込みタイミングなどの挙動や動作を制御するための、所望のデータの書き込む動作も含む。割り込みタイミングなどの挙動の制御は、内蔵回路モジュール内に設けられた割り込み制御ビットや割り込み制御回路内に設けられた割り込み制御ビットに対する値の変更タイミングの制御と見做すことが出来る。
【００３６】
図４は、比較例とされる仮想開発環境Ｂ１と図１を簡易的に示した実施例１に係る仮想開発環境Ｂ２とを示す。なお、図１の説明と重複する部分は、その説明が省略される。
【００３７】
仮想開発環境Ｂ１において、システムテストプログラムＳＴＰ２、システム制御アプリケーションＳＣＡ２および仮想デバイスモデルＶＤＭ２は、図１で説明された、システムテストプログラムＳＴＰ１、システム制御アプリケーションＳＣＡ１、システム制御アプリケーションＳＣＡ１および仮想デバイスモデルＶＤＭ１と等価なものである。一方、デバイス制御ソフトウェア部ＤＣＳ２１，ＤＣＳ２２，ＤＣＳ２３は、図１および図３で説明されたデバイス制御ソフトウェア部ＤＣＳ１とは異なる。
【００３８】
仮想開発環境Ｂ１には、例示的に示される３つデバイス制御ソフトウェア部ＤＣＳ２１，ＤＣＳ２２，ＤＣＳ２３のそれぞれは異なるシナリオとされる。ここでは、図面の複雑さを避けるため、例示的にシナリオを３つ示したが、実際には、膨大な数のシナリオが準備および作成されることとなるため、その準備や作成には膨大な時間を必要とする課題がある。シナリオの例としては、例えば、「Ｘms(ミリ秒)後にＡの値をaに変更、Ｙms(ミリ秒)後にＡの値を初期値に戻し、Ｚms(ミリ秒)後にシステムエラーをＲＲ番地で発生させ、・・・・」、「Ａ()を呼び出し、Ｌms(ミリ秒)後にＢの値を変更し、Ｍms(ミリ秒)後にＢの値を戻し、システムエラーをＮＮ番地で発生させ、・・・・・」などとされる。すなわち、各シナリオは、時間的要素とその時点での期待する動作との組み合わせがスクリプト言語により記述される。スクリプト言語により記述するため、Ｃ言語に比べ、そのエンジニアが少なく、膨大な数のシナリオ作成および準備に、長時間を必要とする課題もある。また、例えば、デバイス制御ソフトウェア部ＤＣＳ２１のシナリオが実行されるときには、デバイス制御ソフトウェア部ＤＣＳ２１のシナリオのみがＲＡＭ２０２へロードされて実行される。このシナリオの実行方式は、シナリオ駆動と見做される。そのため、システムテストプログラムＳＴＰ２とデバイス制御ソフトウェア部ＤＣＳ２１，ＤＣＳ２２，ＤＣＳ２３とが独立している構成とされるため、システムテストプログラムＳＴＰ２とデバイス制御ソフトウェア部とを連携させた検証が困難であるという課題もある。
【００３９】
一方、実施例１に係る仮想開発環境Ｂ２は、図１および図３において説明されたように、システムテストプログラムＳＴＰ１は、インターフェース部ＩＦＰ１、すなわち、デバイス制御インターフェース部ＤＣＩ１およびデバイス制御ソフトウェア部ＤＣＳ１を経由して、仮想デバイスモデルＶＤＭ１に、所望の制御（故障注入を含む）を与えることが可能とされている。そのため、システムテストプログラムＳＴＰ１とデバイス制御ソフトウェア部ＤＣＳ１とが連携して動作し、システムテストプログラムＳＴＰ１のシナリオ設定部ＳＳＰに定義された複数のシナリオを実行できるので、多種多様なシナリオにより、システム制御アプリケーションＳＣＡ１の検証が可能となる。デバイス制御ソフトウェア部ＤＣＳ１は複数の汎用機能ＧＦ１−ＧＦｎが定義されており、仮想開発環境Ｂ２のデバイス制御ソフトウェア部ＤＣＳ２１−２３のようなシナリオそれ自体が定義されたものではない。デバイス制御ソフトウェア部ＤＣＳ１の複数の汎用機能ＧＦ１−ＧＦｎは、システムテストプログラムＳＴＰ１のシナリオ設定部ＳＳＰに定義されたシナリオにより、イベントドリブンで、汎用機能の選択およびその実行がスケジューリングされる。複数のシナリオおよび複数の汎用機能ＧＦ１−ＧＦｎの作成は、例えば、Ｃ言語により作成することが出来る。Ｃ言語は、スクリプト言語に比較して、エンジニアが豊富である。そのため、仮想デバイスモデルＶＤＭ１の動作を自由に制御するための複数のシナリオおよび複数の汎用機能ＧＦ１−ＧＦｎは、比較的短時間で作成することが出来る。Ｃ言語による汎用機能ＧＦ１−ＧＦｎの定義としては、例えば、ＦｕｎｃＡ（ａ）（Ａの値をａに変更）、ＦｕｎｃＳｙｓＥｒｒｏｒ（ｂ）（b番地でシステムエラーを発生）などである。
【００４０】
実施例１によれば、ソフトウェア検証環境のプログラム(システムテストプログラムＳＴＰ１)、と仮想モデル環境の仮想デバイスモデルＶＤＭ１とを連結させるためのインターフェース部ＩＦＰ１（デバイス制御インターフェース部ＤＣＩ１、デバイス制御ソフトウェア部ＤＣＳ１）が設けられる。そのため、システムテストプログラムＳＴＰ１から、自由なタイミングで、様々な動作を仮想デバイスモデルＶＤＭ１に与えることができる。これにより、統合的な検証システムを構築する事が可能になる。したがって、検証ターゲットとされるシステム制御アプリケーションＳＣＡ１に対し、インターフェース部ＩＦＰ１（デバイス制御インターフェース部ＤＣＩ１、デバイス制御ソフトウェア部ＤＣＳ１）から、仮想デバイスモデルＶＤＭ１への多種多様な故障等の発生と連携して、システム制御アプリケーションＳＣＡ１に直接信号を与えることが可能になる。よって、システム制御アプリケーションＳＣＡ１に対する検証の自由度が向上するとともに、検証効率の向上と検証品質の向上を図ることが出来る。
【００４１】
様々なシナリオに対応した仮想デバイスモデルＶＤＭ１の制御が可能になる事で、仮想モデルデバイスＶＤＭ１上で動作するシステム制御アプリケーションＳＣＡ１についての検証網羅率を向上する事が出来る。検証網羅率の向上により、システム制御アプリケーションＳＣＡ１の品質向上が図れる。したがって、機能安全規格ＩＳＯ２６２６２の適用と規格準拠への対応が可能になる。
【実施例２】
【００４２】
図５は、実施例に係る仮想開発環境装置の他の構成例を示す概念図である。
【００４３】
実施例１の図１および図３に示される仮想開発環境装置ＶＭ１では、仮想デバイスモデルＶＤＭ１を１つのみ記載した。図５においては、複数の仮想デバイスモデルＶＤＭ５１、５２，５３から所望の１つの仮想デバイスモデルを選択可能とする仮想開発環境装置ＶＭ２の構成が示される。なお、図５において、図１に記載のシステム制御アプリケーションＳＣＡ１、システムテストプログラムＳＴＰ１、デバイス制御インターフェース部ＤＣＩ１は同一の構成が採用可能であり、図面の簡略化のため、それらの構成の図示は省略されている。
【００４４】
図５は、３つの仮想デバイスモデルＶＤＭ５１、５２，５３が例示的に示している。これらの仮想デバイスモデルＶＤＭ５１、５２，５３は、模擬動作される１つのマイクロプロセッサやマイクロコンピュータについて、それぞれ異なる言語によって作成された仮想デバイスモデルとされる。仮想デバイスモデルＶＤＭ５１は言語１により、仮想デバイスモデルＶＤＭ５２は言語２により、仮想デバイスモデルＶＤＭ５３は言語３によりそれぞれ作成される。
【００４５】
デバイス制御ソフトウェア部ＤＣＳ１により、３つの仮想デバイスモデルＶＤＭ５１、５２，５３の内の選択された１つの仮想デバイスモデルを制御するため、第２インターフェース部とされる共通インターフェース部（仮想デバイスモデル共通Ｉ／Ｆ）ＶＤＭＣＩＦが設けられる。共通インターフェース部ＶＤＭＣＩＦは、所望の仮想デバイスモデルを選択するための選択機能を有する。また、共通インターフェース部ＶＤＭＣＩＦは、異なる言語によって記述された仮想デバイスモデルＶＤＭ５１、５２，５３の差分を吸収する機能も有する。
【００４６】
これにより、利用される仮想デバイスモデルが変更されたとしても、共通インターフェース部ＶＤＭＣＩＦにより、共通の仮想開発環境および仮想開発環境装置を提供することが出来る。そのため、仮想開発環境の変更（仮想デバイスモデルの変更）が発生した場合であっても、仮想開発環境装置の他の構成部分（システム制御アプリケーションＳＣＡ１、システムテストプログラムＳＴＰ１、デバイス制御インターフェース部ＤＣＩ１、デバイス制御ソフトウェア部ＤＣＳ１）の変更は不要となる。これにより、仮想開発環境の変更のため必要とされる工数を大幅に軽減することが出来る。
＜応用例＞
図６は、実施例１の仮想開発環境装置の応用例を示す。なお、下記では、エンジン制御モジュール検証システムに関して説明されるが、それに限定されるものではなく、車載制御用モジュール検証システムに広く応用可能であることは、言うまでもない。
【００４７】
図６には、エンジン制御モジュール検証システム６０８に用いた場合の応用例である。検証ターゲットとなるエンジン制御用ＥＣＵ６０９は、エンジン制御用アプリケーションプログラム６０１及びエンジン制御用アプリケーションプログラム６０１を動作させるためのマイクロプロセッサや周辺回路ＩＰ等のデバイス郡(デバイスＷＳ)６０６で構成される。車載電子制御装置であるエンジン制御用ＥＣＵ６０９は、外界の各種センサ、アクチュエータ、他のＥＣＵなどの他デバイス６０７とＬＩＮ／ＣＡＮなどの通信バスや通信経路６１１を介して、図示されない車両のエンジンを制御するものである。各種センサ、アクチュエータ、他のＥＣＵは、例えば、車載周辺監視用のレーダーモジュール、温度センサモジュール、圧力センサモジュール、ブレーキモーターモジュール、ステアリング制御用モーターモジュール、ボディ制御用ＥＣＵ，シャーシ制御用ＥＣＵなどとすることが出来る。
【００４８】
エンジン制御モジュール検証システム６０８は、エンジン制御用ＥＣＵ６０９を検証するためのテストベンチである。エンジン制御モジュール検証システム６０８は、シナリオ設定部ＳＳＰを含むエンジン制御モジュール用テストプログラム６０２と、デバイス制御インターフェース部（デバイス制御ＩＦ（ＡＰＩ））６０３と、デバイス制御ソフトウェア部（デバイス制御ＳＷ）６０４と、仮想デバイスモデル６０５と、で構成される。デバイス制御インターフェース部６０３とデバイス制御ソフトウェア部６０４とが、図１に示されるインターフェース部ＩＦＰ１に含まれるデバイス制御インターフェース部ＤＣＩ１とデバイス制御ソフトウェア部ＤＣＳ１とに、それぞれ対応する。仮想デバイスモデル６０５は、車載電子制御装置に採用されるマイクロコンピュータなどの半導体デバイスをソフトウェア的に模擬動作可能なソフトウェアモデルとされる。
【００４９】
エンジン制御モジュール用テストプログラム６０２は、エンジン制御用アプリケーション６０１に各種信号を送信し、実行状態にする。また、エンジン制御モジュール用テストプログラム６０２は、デバイス制御インターフェース部６０３およびデバイス制御ソフトウェア部６０４を経由して、デバイス群６０６を模擬動作する仮想デバイスモデル６０５に対し、各種信号を送信および受信する事で、仮想デバイスモデル６０５に所望の故障を発生させるなど、状態を変化させる。
【００５０】
デバイス制御インターフェース部６０３には、仮想デバイスモデル６０５を制御するための、図３で説明された様に、多数の汎用的な機能（ＧＦ１−ＧＦｎ）が備わる。エンジン制御モジュール用テストプログラム６０２は、必要なタイミングで、デバイス制御インターフェース部６０３を用い、デバイス制御ソフトウェア部６０４を経由し、仮想デバイスモデル６０５を制御する事が出来る。
【００５１】
仮想デバイスモデル６０５とデバイス群６０６は等価な機能を持っており、例えば、図２に示されたインターフェース回路２０４などを用い、相互に入れ替えてエンジン制御ＥＣＵ６０９を動作させる事が可能である。これにより、デバイス群６０６が入手できない時期において、エンジン制御用ＥＣＵ６０９の検証を行う事が出来る。また、デバイス群６０６が入手された後においても、デバイス群６０６の内部を破壊しなければ発生しえない様な故障を模擬するために、仮想デバイスモデル６０５は利用される。さらに、エンジンモジュール検証システム６０８から必要なタイミングで仮想モデルデバイス６０５を制御する事で、その他デバイス６０７を含め、タイミングに依存するような、総合的な検査が実施可能となる。
【００５２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【００５３】
ＶＭ１、ＶＭ２・・・仮想開発環境装置
ＳＣＡ１、ＳＣＡ２・・・システム制御アプリケーション
ＳＴＰ１、ＳＴＰ２・・・システムテストプログラム
ＩＦＰ１・・・インターフェース部
ＶＤＭ１、ＶＤＭ２、ＶＤＭ５１、ＶＤＭ５２，ＶＤＭ５３・・・仮想デバイスモデル
ＤＣＩ１・・・デバイス制御インターフェース部
ＤＣＳ１、ＤＣＳ２１，ＤＣＳ２２，ＤＣＳ２３・・・デバイス制御ソフトウェア部
ＳＳＰ・・・シナリオ設定部
２００・・・ＣＰＵ
２０１・・・ＲＯＭ
２０２・・・ＲＡＭ 
２０３・・・外部記憶装置
２０４・・・インターフェース回路
２０５・・・入力装置
２０６・・・表示装置
２０７・・・バス
２１０・・・ＥＣＵ
ＧＦ１−ＧＦｎ・・・汎用機能
ＶＤＭＣＩＦ・・・共通インターフェース
６０１・・・エンジン制御用アプリケーションプログラム
６０２・・・エンジン制御モジュール用テストプログラム
６０３・・・デバイス制御インターフェース部
６０４・・・デバイス制御ソフトウェア部
６０５・・・仮想デバイスモデル
６０６・・・デバイス郡
６０７・・・他デバイス
６０８・・・エンジン制御モジュール検証システム
６０９・・・エンジン制御用ＥＣＵ
【図１】
2018081400.tif 000003
【図２】
2018081400.tif 000004
【図３】
2018081400.tif 000005
【図４】
2018081400.tif 000006
【図５】
2018081400.tif 000007
【図６】
2018081400.tif 000008