(57)【要約】【課題】開発するプログラムが実際に稼働する組込み機器上でエミュレータプログラムを導入し外部接続するオプション機器なしにプログラムの開発を行うことが出来る組込み機器の提供。【解決手段】ＯＳと、開発対象となるＪａｖａプログラムと、自機器である組込み機器に接続されるオプション機器の動作をエミュレートするＪａｖａエミュレーションプログラムと、前記Ｊａｖａプログラムおよび前記Ｊａｖａエミュレーションプログラムが動作するＪａｖａ仮想マシンと、前記Ｊａｖａプログラムからのリクエストを受け付け、前記Ｊａｖａエミュレーションプログラムにイベントにより通知し、前記オプション機器からの割り込みをエミュレートするリクエストを前記Ｊａｖａエミュレーションプログラムから受け付け、イベントにより前記Ｊａｖａプログラムに通知する仮想デバイスドライバとを備える。【選択図】図２
2018073079.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムと、
開発対象となるＪａｖａプログラムと、
自機器である組込み機器に接続されるオプション機器の動作をエミュレートするＪａｖａエミュレーションプログラムと、
前記Ｊａｖａプログラムおよび前記Ｊａｖａエミュレーションプログラムが動作するＪａｖａ仮想マシンと、
前記Ｊａｖａプログラムからのリクエストを受け付け、前記Ｊａｖａエミュレーションプログラムにイベントにより通知し、前記オプション機器からの割り込みをエミュレートするリクエストを前記Ｊａｖａエミュレーションプログラムから受け付け、イベントにより前記Ｊａｖａプログラムに通知する仮想デバイスドライバと
を備えた
組込み機器。
【請求項２】
請求項１に記載の組込み機器であって、
前記オプション機器が自機器である組込み機器に接続されたとき、前記Ｊａｖａプログラムからのリクエストを受け付け、前記オプション機器と通信して前記オプション機器を制御し、前記オプション機器からの割り込みを受け付け、イベントにより前記Ｊａｖａプログラムに通知する実機用デバイスドライバと、
前記Ｊａｖａエミュレーションプログラムが稼働しているとき、前記仮想デバイスドライバを前記オペレーティングシステムにロードし、前記Ｊａｖａエミュレーションプログラムが稼働していないとき、前記実機用デバイスドライバを前記オペレーティングシステムにロードするデバイスドライバ切替部と
を更に備えた
組込み機器。
【請求項３】
仮想デバイスドライバが、開発対象であり、Ｊａｖａ仮想マシン上で動作するＪａｖａプログラムからのリクエストを受け付け、
前記仮想デバイスドライバが、受け付けた前記リクエストを、自機器である組込み機器に接続されるオプション機器の動作をエミュレートし、前記Ｊａｖａ仮想マシン上で動作するＪａｖａエミュレーションプログラムにイベントにより通知し、
前記仮想デバイスドライバが、前記オプション機器からの割り込みをエミュレートするリクエストを前記Ｊａｖａエミュレーションプログラムから受け付け、
前記仮想デバイスドライバが、受け付けた前記リクエストをイベントにより前記Ｊａｖａプログラムに通知する
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部接続されるオプション機器をエミュレーションしてソフトウェア開発を行う組込み機器および情報処理方法に関する。
【背景技術】
【０００２】
従来、機器を制御するソフトウェアの開発、検証、デバッグを行う際に、機器の実機が用意できない場合、機器をエミュレーションすることが行われてきた。
【０００３】
例えば、特許文献１において開示されている技術では、プログラマブルコントローラーの動作およびプログラマブルコントローラーのシーケンスプログラムをパーソナルコンピューター（ＰＣ）上でエミュレーションすることにより、プログラマブルコントローラーが無い環境でもプログラマブルコントローラーの動作およびプログラマブルコントローラーのシーケンスプログラムの動作確認および修正を行うことが出来る。
【０００４】
また、特許文献２の技術では、組込プログラムを開発する手段として、実機のデバイスドライバにかえて、組込プログラムとのコマンドの送受信を行う擬似デバイスドライバおよび実機の機能にかえて、擬似デバイスドライバとのコマンドの送受信を行うエミュレータとしてコンピュータを機能させている
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２７２３１０号公報
【特許文献２】特開２００８−２１７５７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１の技術は、プログラマブルコントローラーのシーケンスプログラムを実機であるプログラマブルコントローラーの上で開発するものではなく、特許文献２の技術も組込みプログラムを開発する環境は、実機の上ではなかった。
【０００７】
以上のような事情に鑑み、本発明の目的は、開発するプログラムが実際に稼働する組込み機器上でエミュレータプログラムを導入し外部接続するオプション機器なしにプログラムの開発を行うことが出来る組込み機器および情報処理方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の一形態に係る組込み機器は、オペレーティングシステムと、開発対象となるＪａｖａ（登録商標）プログラムと、自機器である組込み機器に接続されるオプション機器の動作をエミュレートするＪａｖａエミュレーションプログラムと、前記Ｊａｖａプログラムおよび前記Ｊａｖａエミュレーションプログラムが動作するＪａｖａ仮想マシンと、前記Ｊａｖａプログラムからのリクエストを受け付け、前記Ｊａｖａエミュレーションプログラムにイベントにより通知し、前記オプション機器からの割り込みをエミュレートするリクエストを前記Ｊａｖａエミュレーションプログラムから受け付け、イベントにより前記Ｊａｖａプログラムに通知する仮想デバイスドライバとを備える。
【０００９】
そのため、開発するプログラムが実際に稼働する組込み機器上でエミュレータプログラムを導入し外部接続するオプション機器なしにプログラムの開発を行うことが出来る。
【００１０】
上記目的を達成するため、本発明の一形態に係る組込み機器は、前記オプション機器が自機器である組込み機器に接続されたとき、前記Ｊａｖａプログラムからのリクエストを受け付け、前記オプション機器と通信して前記オプション機器を制御し、前記オプション機器からの割り込みを受け付け、イベントにより前記Ｊａｖａプログラムに通知する実機用デバイスドライバと、前記Ｊａｖａエミュレーションプログラムが稼働しているとき、前記仮想デバイスドライバを前記オペレーティングシステムにロードし、前記Ｊａｖａエミュレーションプログラムが稼働していないとき、前記実機用デバイスドライバを前記オペレーティングシステムにロードするデバイスドライバ切替部とを更に備えてもよい。
【００１１】
上記目的を達成するため、本発明の一形態に係る情報処理方法では、仮想デバイスドライバが、開発対象であり、Ｊａｖａ仮想マシン上で動作するＪａｖａプログラムからのリクエストを受け付け、前記仮想デバイスドライバが、受け付けた前記リクエストを、自機器である組込み機器に接続されるオプション機器の動作をエミュレートし、前記Ｊａｖａ仮想マシン上で動作するＪａｖａエミュレーションプログラムにイベントにより通知し、前記仮想デバイスドライバが、前記オプション機器からの割り込みをエミュレートするリクエストを前記Ｊａｖａエミュレーションプログラムから受け付け、前記仮想デバイスドライバが、受け付けた前記リクエストをイベントにより前記Ｊａｖａプログラムに通知する。
【発明の効果】
【００１２】
以上のように、本発明によれば、開発するプログラムが実際に稼働する組込み機器上でエミュレータプログラムを導入し外部接続するオプション機器なしにプログラムの開発を行うことが出来る。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係る組込み機器１で、オプション機器９の実機を用いて組込み機器１上でプログラムを開発する場合の構成図である。
【図２】本発明の一実施形態に係る組込み機器１で、オプション機器９の実機を用いずに組込み機器１上でプログラムを開発する場合の構成図である。
【図３】デバイスドライバ切替部３が適切なデバイスドライバを切り替えてロードする処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照しながら、本発明の実施形態を説明する。
【００１５】
［構成（その１）］
最初に、本発明の一実施形態に係る組込み機器１で、オプション機器の実機を用いて組込み機器１上でプログラムを開発する場合の構成について説明する。図１は、本発明の一実施形態に係る組込み機器１で、オプション機器９の実機を用いて組込み機器１上でプログラムを開発する場合の構成図である。
【００１６】
図に示すように、組込み機器１は、ＯＳ（Operating System）２とＪＶＭ（Java Virtual Machine、Ｊａｖａ仮想マシン）６を備えている。ＯＳ２は、例えば、Ｌｉｎｕｘ（登録商標）やＷｉｎｄｏｗｓ（登録商標）を使用することが出来る。
【００１７】
ＯＳ２は、デバイスドライバ切替部３（詳細は後述）を含んでおり、オプション機器９の実機が組込み機器１に接続されている状態では、実機のオプション機器９用のデバイスドライバ４がロードされている。
【００１８】
ＪＶＭ６上には、開発対象であるＪａｖａプログラム７がインストールされているとする。Ｊａｖａプログラム７は、オプション機器９と連携して動作する。
【００１９】
すなわち、Ｊａｖａプログラム７からのリクエストをデバイスドライバ４が受け付け、デバイスドライバ４がオプション機器９と通信してオプション機器９を制御する。
【００２０】
また、オプション機器９からの割り込みをデバイスドライバ４が受け付け、イベント等（フラグやソフトウェア割り込みでもよい）でＪａｖａプログラム７に通知する。
【００２１】
以上、本発明の一実施形態に係る組込み機器１で、オプション機器９の実機を用いて組込み機器１上でプログラムを開発する場合の構成について説明した。
【００２２】
［構成（その２）］
次に、本発明の一実施形態に係る組込み機器１で、オプション機器の実機を用いずに組込み機器１上でプログラムを開発する場合の構成について説明する。図２は、本発明の一実施形態に係る組込み機器１で、オプション機器９の実機を用いずに組込み機器１上でプログラムを開発する場合の構成図である。
【００２３】
図に示すように、組込み機器１は、ＯＳ２とＪＶＭ６とＪａｖａエミュレーションプログラム８とを備えている。
【００２４】
Ｊａｖａエミュレーションプログラム８は、ＪＶＭ６上で稼働し、オプション機器９の動作をエミュレーションするプログラムである。Ｊａｖａエミュレーションプログラム８は、必要に応じてＪＶＭ６上に追加したり、ＪＶＭ６上から削除したり、更新したりする事が可能なプログラムである。
【００２５】
ＯＳ２は、デバイスドライバ切替部３（詳細は後述）を含んでおり、Ｊａｖａエミュレーションプログラム８が稼働している状態では、仮想デバイスドライバ５がロードされている。
【００２６】
ＪＶＭ６上には、開発対象であるＪａｖａプログラム７がインストールされているとする。Ｊａｖａプログラム７は、Ｊａｖａエミュレーションプログラム８と連携して動作する。
【００２７】
すなわち、Ｊａｖａプログラム７からのリクエストを仮想デバイスドライバ５が受け付け、仮想デバイスドライバ５がＪａｖａエミュレーションプログラム８へイベント等で通知する。
【００２８】
また、オプション機器９からの割り込みをエミュレーションするリクエストをＪａｖａエミュレーションプログラム８から仮想デバイスドライバ５が受け付け、イベント等でＪａｖａプログラム７に通知する。
【００２９】
以上、本発明の一実施形態に係る組込み機器１で、オプション機器９の実機を用いずに組込み機器１上でプログラムを開発する場合の構成について説明した。
【００３０】
［デバイスドライバの切り替え］
次に、ＯＳ２内のデバイスドライバ切替部３における、ロードするドライバを切り替える動作について説明する。
【００３１】
なお、組込み機器１には、オプション機器９の実機用のデバイスドライバ４と、Ｊａｖａエミュレーションプログラム８用の仮想デバイスドライバ５の両方が格納されており、状況に応じて適切なドライバがデバイスドライバ切替部３によりＯＳ２にロードされる。
【００３２】
図３は、デバイスドライバ切替部３が適切なデバイスドライバを切り替えてロードする処理の流れを示すフローチャートである。
【００３３】
まず、デバイスドライバ切替部３がＪＶＭ６上においてＪａｖａエミュレーションプログラム８が稼働しているか否かを判断する（ステップＳ１）。
【００３４】
稼働している場合（ステップＳ１のＹ）、デバイスドライバ切替部３は、仮想デバイスドライバ５をロードする（ステップＳ２）。
【００３５】
稼働していない場合（ステップＳ１のＮ）、デバイスドライバ切替部３は、オプション機器９の実機用のデバイスドライバ４をロードする（ステップＳ３）。
【００３６】
以上のように、Ｊａｖａエミュレーションプログラム８が稼働している場合、仮想デバイスドライバ５をロードして、Ｊａｖａプログラム７の開発を行うことが出来る。
【００３７】
なお、Ｊａｖａエミュレーションプログラム８が稼働するのは、製品の開発現場であることを想定しており、製品が出荷された後にはＪａｖａエミュレーションプログラム８が稼働することは無いので、必ず実機用のデバイスドライバ４がロードされることになる。
【００３８】
以上、ＯＳ２内のデバイスドライバ切替部３における、ロードするドライバを切り替える動作について説明した。
【００３９】
［補足事項］
以上のように、本発明に係る組込み機器１では、オプション機器９のエミュレーションをＪＶＭ６上で動作するＪａｖａエミュレーションプログラム８として実現しているので、当該プログラムの追加、削除、更新を容易に行うことが出来る。
【００４０】
また、Ｊａｖａエミュレーションプログラム８は、組込み機器１のＯＳ２などファームウェアから独立したモジュールとして組込み機器１にインストールされるので、組込み機器１のファームウェアを変更することなくＪａｖａプログラム７の開発を行うことが出来る。
【００４１】
また、組込み機器１のファームウェアを変更することなく、オプション機器９のエミュレーションをオンオフすることが出来る。
【００４２】
また、組込み機器１のファームウェアを変更することなく、オプション機器９のエミュレーション動作（例えば、内部処理の変更、表示部や操作部の変更、オプション機器９の実機を接続した場合には手動操作で再現することが難しいタイミングでの割り込みなど）を変更することが出来る。
【００４３】
以上のように、本発明に係る組込み機器１は、オペレーティングシステム２と、開発対象となるＪａｖａプログラム７と、自機器１である組込み機器１に接続されるオプション機器９の動作をエミュレートするＪａｖａエミュレーションプログラム８と、前記Ｊａｖａプログラム７および前記Ｊａｖａエミュレーションプログラム８が動作するＪａｖａ仮想マシン６と、前記Ｊａｖａプログラム７からのリクエストを受け付け、前記Ｊａｖａエミュレーションプログラム８にイベントにより通知し、前記オプション機器９からの割り込みをエミュレートするリクエストを前記Ｊａｖａエミュレーションプログラム８から受け付け、イベントにより前記Ｊａｖａプログラム７に通知する仮想デバイスドライバ５とを備える。
【００４４】
そのため、開発するプログラムが実際に稼働する組込み機器上でエミュレータプログラムを導入し外部接続するオプション機器なしにプログラムの開発を行うことが出来る。
【００４５】
その他、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【００４６】
１  …  組込み機器
２  …  ＯＳ
３  …  デバイスドライバ切替部
４  …  実機用デバイスドライバ
５  …  仮想デバイスドライバ
６  …  ＪＶＭ
７  …  Ｊａｖａプログラム
８  …  Ｊａｖａエミュレーションプログラム
９  …  オプション機器
【図１】
2018073079.tif 000003
【図２】
2018073079.tif 000004
【図３】
2018073079.tif 000005