(57)【特許請求の範囲】
【請求項１】
組み込みＯＳおよび特定のハードウェアに対応する特定ドライバが書き換え不能な状態で格納される機器に前記特定のハードウェアと異なる追加のハードウェアを接続してアプリケーションを実行するに際し、
前記アプリケーションは前記追加のハードウェアに対応する追加ドライバを保持し、前記機器はアクセスを許可する追加のハードウェアの固有情報を記憶しており、
前記機器が記憶する固有情報と前記追加のハードウェアの固有情報とを比較する比較工程と、
前記比較工程で前記機器が記憶する固有情報と前記追加のハードウェアの固有情報とが一致する場合には前記追加ドライバを用いて前記追加のハードウェアを動作させる動作工程と
を有することを特徴とするドライバの実行方法。
【請求項２】
前記比較工程を、前記アプリケーションが前記追加のハードウェアにアクセスする毎に行うことを特徴とする請求項１記載のドライバの実行方法。
【請求項３】
組み込みＯＳおよび特定のハードウェアに対応する特定ドライバが書き換え不能な状態で格納される機器に前記特定のハードウェアと異なる追加のハードウェアを接続してアプリケーションを実行するに際し、
前記アプリケーションは前記追加のハードウェアに対応する追加ドライバを保持し、前記機器はアクセスを許可する追加のハードウェアの固有情報を記憶しており、
前記機器が記憶する固有情報と前記追加のハードウェアの固有情報とを比較する比較工程と、
前記比較工程で前記アプリケーションが記憶する固有情報と前記追加のハードウェアの固有情報とが一致する場合にはアクセス許可リストに一致した固有情報を記憶させる固有情報記憶工程と、
前記アプリケーションがアクセスする追加のハードウェアの固有情報が前記アクセス許可リストに記憶されている場合および前記比較工程で前記機器が記憶する固有情報と前記追加のハードウェアの固有情報とが一致する場合には前記追加ドライバを用いて前記追加のハードウェアを動作させる動作工程と
を有することを特徴とするドライバの実行方法。
【請求項４】
前記機器が記憶する固有情報は、前記アプリケーションに格納されることを特徴とする請求項１〜請求項３のいずれか１項に記載のドライバの実行方法。
【請求項５】
前記アプリケーションが記憶する固有情報は、１または複数の前記アプリケーションが記憶する固有情報をドライバリストとして保持されることを特徴とする請求項１〜請求項４のいずれか１項に記載のドライバの実行方法。
【請求項６】
前記機器に接続された前記追加のハードウェアの固有情報を接続リストに記憶する工程をさらに有し、前記比較工程において、前記追加のハードウェアの固有情報として前記接続リストに記憶された固有情報を用いて比較することを特徴とする請求項１〜請求項５のいずれか１項に記載のドライバの実行方法。
【請求項７】
あらかじめ前記追加のハードウェアがアクセスすることを許可するリソースを設定しておき、前記動作工程において、前記追加のハードウェアを動作させる際に、許可された前記リソース以外のリソースに前記追加のハードウェアがアクセスすることを禁止することを特徴とする請求項１〜請求項６のいずれか１項に記載のドライバの実行方法。
【請求項８】
あらかじめ前記アプリケーションおよび前記追加のハードウェアに同一の暗号キーを格納しておき、前記比較工程において前記アプリケーションが保持する暗号キーと前記追加のハードウェアが保持する暗号キーとを比較し、一致する場合のみ、前記動作工程において前記アプリケーションに保持されているドライバを用いて前記追加のハードウェアを動作させることを特徴とする請求項１〜請求項７のいずれか１項に記載のドライバの実行方法。
【請求項９】
ハードウェアが外付けされてアプリケーションを実行する機器であって、
演算装置と、
組み込みＯＳおよびドライバがインストールされる書き換え不能な記憶装置と、
追加のハードウェアの固有情報および前記アプリケーションを記憶する書き換え可能な記憶装置と
を有し、前記ドライバはあらかじめ定められた特定のハードウェアに対応する特定ドライバと前記特定のハードウェア以外の前記追加のハードウェアの使用を許可する仮ドライバとからなり、前記演算装置は、前記機器に外付けされるハードウェアが前記特定のハードウェアの場合は前記特定ドライバで前記特定のハードウェアを動作させ、前記追加のハードウェアの場合は前記仮ドライバを介して前記固有情報の一致を確認して前記アプリケーションに保持されているドライバを用いて前記追加のハードウェアを動作させることを特徴とする機器。
【請求項１０】
前記アプリケーションが前記追加のハードウェアの固有情報を保持することを特徴とする請求項９記載の機器。
【請求項１１】
あらかじめ前記追加のハードウェアがアクセスすることを許可するリソースを設定しておき、前記追加のハードウェアを動作させる際に、許可された前記リソース以外のリソースに前記追加のハードウェアがアクセスすることを禁止することを特徴とする請求項９または請求項１０に記載の機器。
【請求項１２】
あらかじめ前記アプリケーションおよび前記追加のハードウェアに同一の暗号キーを格納しておき、前記アプリケーションが保持する暗号キーと前記追加のハードウェアが保持する暗号キーとを比較し、一致する場合のみ、前記アプリケーションに保持されているドライバを用いて前記追加のハードウェアを動作させることを特徴とする請求項９〜請求項１１のいずれか１項に記載の機器。
【発明の詳細な説明】
【技術分野】
【０００１】
組み込みＯＳがインストールされた機器およびその機器に接続されるハードウェアに対応するドライバの実行方法に関する。
【背景技術】
【０００２】
コンピュータ制御された産業用機器等の機器においては、ＣＰＵや周辺機器を動作させるためのＯＳやドライバがインストールされる。パーソナルコンピュータ（以下ＰＣと称す）や汎用の産業用機器等では、ＯＳやドライバをハードディスク等の書き換え可能な記憶装置に記憶させておき、必要に応じて再インストールやアップデートをすることができる構成の機器もある。これに対して、使用目的に応じて機能が特化された産業用機器等においては、装置構成を最適化して低コスト化，ダウンサイジング化することが要求される。そのため、このような機器においては、あらかじめ、ＯＳやドライバをＲＯＭ等の書き換え不能な記憶装置に記憶させておくものもある。このような組み込みＯＳがインストールされた機器では、機器に接続される周辺機器はあらかじめ特定されており、接続される周辺機器に対応するドライバは、ＯＳのカーネル領域に格納されることが一般的である。そして、このような機器は、特定の周辺機器が接続された状態で、周辺機器に対応する、あらかじめインストールされたドライバを読み込んで、機器および周辺機器を動作させている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−５９４９３号公報
【特許文献２】特開２０１０−２０６０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、このような組み込みＯＳがインストールされた機器は、機器の製造工程においてＯＳおよびドライバがＲＯＭ等にインストールされ、ＯＳおよびドライバがインストールされた状態で出荷される。そのため、出荷後、機器を使用している段階では、ＯＳやドライバの再インストールやアップデートはできない。
【０００５】
ここで、あらかじめ特定された周辺機器以外の周辺機器を接続したい場合や、周辺機器自体がバージョンアップした場合、これらの周辺機器に対応するドライバがインストールされておらず、また、ドライバを再インストールしたりアップデートしたりすることができないため、特定された周辺機器以外の周辺機器等の新たなハードウェアを使用することができないという問題点があった。
【０００６】
本発明は、上記問題点を解決するために、組み込みＯＳがインストールされた機器においても、新たなハードウェアを接続して使用することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明のドライバの実行方法は、組み込みＯＳおよび特定のハードウェアに対応する特定ドライバが書き換え不能な状態で格納される機器に前記特定のハードウェアと異なる追加のハードウェアを接続してアプリケーションを実行するに際し、前記アプリケーションは前記追加のハードウェアに対応する追加ドライバを保持し、前記機器はアクセスを許可する追加のハードウェアの固有情報を記憶しており、前記機器が記憶する固有情報と前記追加のハードウェアの固有情報とを比較する比較工程と、前記比較工程で前記機器が記憶する固有情報と前記追加のハードウェアの固有情報とが一致する場合には前記追加ドライバを用いて前記追加のハードウェアを動作させる動作工程とを有することを特徴とする。
【０００８】
また、組み込みＯＳおよび特定のハードウェアに対応する特定ドライバが書き換え不能な状態で格納される機器に前記特定のハードウェアと異なる追加のハードウェアを接続してアプリケーションを実行するに際し、前記アプリケーションは前記追加のハードウェアに対応する追加ドライバを保持し、前記機器はアクセスを許可する追加のハードウェアの固有情報を記憶しており、前記機器が記憶する固有情報と前記追加のハードウェアの固有情報とを比較する比較工程と、前記比較工程で前記アプリケーションが記憶する固有情報と前記追加のハードウェアの固有情報とが一致する場合にはアクセス許可リストに一致した固有情報を記憶させる固有情報記憶工程と、前記アプリケーションがアクセスする追加のハードウェアの固有情報が前記アクセス許可リストに記憶されている場合および前記比較工程で前記機器が記憶する固有情報と前記追加のハードウェアの固有情報とが一致する場合には前記追加ドライバを用いて前記追加のハードウェアを動作させる動作工程とを有することを特徴とする。
【０００９】
さらに、本発明の機器は、ハードウェアが外付けされてアプリケーションを実行する機器であって、演算装置と、組み込みＯＳおよびドライバがインストールされる書き換え不能な記憶装置と、追加のハードウェアの固有情報および前記アプリケーションを記憶する書き換え可能な記憶装置とを有し、前記ドライバはあらかじめ定められた特定のハードウェアに対応する特定ドライバと前記特定のハードウェア以外の前記追加のハードウェアの使用を許可する仮ドライバとからなり、前記演算装置は、前記機器に外付けされるハードウェアが前記特定のハードウェアの場合は前記特定ドライバで前記特定のハードウェアを動作させ、前記追加のハードウェアの場合は前記仮ドライバを介して前記固有情報の一致を確認して前記アプリケーションに保持されているドライバを用いて前記追加のハードウェアを動作させることを特徴とする。
【発明の効果】
【００１０】
以上のように、あらかじめ、アプリケーションが使用をすることを可能とする追加のハードウェアの固有情報を保持しておき、同時に、アプリケーションに追加のハードウェアの動作に用いる追加ドライバを保持させ、アプリケーションの動作の際に、固有情報を用いて追加のハードウェアであることを確認し、追加ドライバを用いて追加のハードウェアを動作させながらアプリケーションを実行することができ、組み込みＯＳがインストールされた機器においても、新たなハードウェアを接続して使用することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１における組み込みＯＳがインストールされた機器の構成を示す概略図
【図２】実施の形態１におけるドライバの実行方法の概略フローを示す図
【図３】実施の形態２における暗号化キーを用いた処理を行う構成を示す概略図
【図４】センサ解析装置の構成例（初期設計時）
【図５】センサ解析装置の構成例（センサ変更時）
【図６】検査装置の構成例（初期設計時）
【図７】検査装置の構成例（センサ変更時）
【図８】空冷用ファンの制御装置の構成例（初期設計時）
【図９】空冷用ファンの制御装置の構成例（ファン変更時）
【図１０】本発明のドライバリストの機能を例示する図
【図１１】本発明の仮ドライバの機能を例示する図
【図１２】実施の形態３における組み込みＯＳがインストールされた機器の構成を示す概略図
【図１３】実施の形態３におけるドライバの実行方法の概略フローを示す図
【発明を実施するための形態】
【００１２】
産業用機器やＰＣ等の様々な機器は、一般的にコンピュータにより制御されて各種の動作を行う。コンピュータはＣＰＵ等の演算装置やメモリ等の記憶装置，入出力装置等から構成される。また、コンピュータ制御された産業用機器等の機器においては、ＣＰＵや周辺機器を動作させるためのＯＳやドライバがインストールされる。これらの機器には、あらかじめ、ＯＳやドライバをＲＯＭ等の書き換え不能な記憶装置に記憶させておくものもある。このような組み込みＯＳがインストールされた機器では、ＯＳによりコンピュータを動作させ、ドライバにより外部接続される周辺機器を動作させて、アプリケーションを実行する。
【００１３】
ここでの説明において、記憶装置には、揮発性の主記憶装置や不揮発性の補助記憶装置が含まれる。
また、主記憶装置は例えば、メインメモリやキャッシュメモリ等であり、補助記憶装置はハードディスク、ＵＳＢメモリ、その他メモリーカード等である。
【００１４】
ここで、書き換え不能な記憶装置とは、一度しか書き込めないＲＯＭ等のＷｒｉｔｅ  Ｏｎｃｅ  Ｒｅａｄ  Ｍａｎｙ（ライトワンスリードメニー）や、機器の製造者でなければ内容を変更できないデバイス、つまり特定の手順を行わないと書き換えできないデバイスであるＰＲＯＭ、ＥＰＲＯＭ  （Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）およびＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ＰＲＯＭ）等が挙げられる。
【００１５】
書き換え可能な記憶装置とは、機器を使用するにあたり通常変更可能なものであり、機器の製造者以外でも内容を変更することができるデバイスで、例えばメインメモリ、ハードディスク、ＵＳＢメモリ、その他メモリーカード等が挙げられる。
【００１６】
なお書き換え可能な記憶装置であっても、製造者のみが知りえる方法であり、使用者が知りえない方法でソフトウェア的にプロテクトをかけているデバイスやそのエリアについては、書き換え不能な記憶装置と解釈できる。
【００１７】
周辺機器は、あらかじめＲＯＭ等の書き換え不能な記憶装置に記憶されるドライバを用いて動作する。この周辺機器を特定のハードウェアと称し、このドライバを特定ドライバと称す。アプリケーションは、この特定ドライバを用いて特定のハードウェアにアクセスしながら動作することができる。
【００１８】
本発明では、このような特定のハードウェア以外のハードウェアについても動作を可能とする。そのために、まず、アプリケーションがアクセスすることを許可するハードウェアの動作に用いるドライバを、アプリケーションがあらかじめ保持する。特定のハードウェア以外のハードウェアの内、アプリケーションがアクセスすることを許可するハードウェアを追加のハードウェアと称し、アプリケーションが保持する追加のハードウェアのドライバを追加ドライバと称す。そして、機器は、追加のハードウェアの固有情報をあらかじめ保持し、接続されたハードウェアの固有情報と保持された固有情報とを比較し、一致する場合は、接続されたハードウェアが追加のハードウェアであると判断して、アプリケーションが保持する追加ドライバを用いて追加のハードウェアを動作させる。
【００１９】
ここで、あらかじめ保持される追加のハードウェアの固有情報は、アプリケーションに保持されても良いし、別途設けるドライバリストに記録しても良い。ドライバリストは、アプリケーションが内蔵しても良いし、ＲＡＭ等の機器内の記憶装置に格納しても良い。また、ドライバリストには、１つの追加のハードウェアの固有情報を記録しても良いし、アクセスが許可される複数の追加のハードウェアの固有情報をリストアップしても良い。
【００２０】
また、固有情報の確認は、アプリケーションが追加のハードウェアにアクセスする毎に行っても良いが、１度固有情報を確認した後は、アプリケーションが同じ追加のハードウェアにアクセスする限り、固有情報の一致の確認をすることなく追加のハードウェアを動作させても良い。例えば、１度固有情報の一致を確認した後、一致した固有情報をアクセス許可リストに記載する。アプリケーションが追加のハードウェアにアクセスする際は、まず、アクセス許可リストに記録されている固有情報がアプリケーションがアクセスしようとする追加のハードウェアの固有情報と一致するかを確認し、一致していればアプリケーションが保持する追加ドライバで追加のハードウェアを動作させる。一致していなければ、つまり、アクセス許可リストに、アプリケーションがアクセスしようとする追加のハードウェアの固有情報が記憶されていなければ、最初のアクセスであるので、アプリケーションが保持する固有情報と追加のハードウェアの固有情報を比較し、一致する場合のみアプリケーションが保持する追加ドライバで追加のハードウェアを動作させる。ここで、アクセス許可リストはＲＡＭ等の機器に内蔵される記憶装置に格納される。
【００２１】
また、接続された追加のハードウェアの固有情報を記載する、接続リストがさらに保持されても良い。追加のハードウェアが接続された状態で機器に電源が投入された際や、電源が投入されている機器に追加のハードウェアを接続してプラグ＆プレイされた時等の、機器が最初に追加のハードウェアを認識した時に、追加のハードウェアの固有情報を、演算装置が接続リストに書き込む。そして、固有情報を比較する際に、アプリケーションが保持する固有情報と、接続リストに記載された固有情報とを比較する。接続リストはＲＡＭ等の機器に内蔵される記憶装置に格納される。
【００２２】
以下、図面を用いて本発明のドライバの実行方法および機器の構成例として、実施の形態について説明する。
（実施の形態１）
まず、図１，図２を用いて、実施の形態１における組み込みＯＳがインストールされた機器について説明する。
【００２３】
図１は実施の形態１における組み込みＯＳがインストールされた機器の構成を示す概略図、図２は実施の形態１におけるドライバの実行方法の概略フローを示す図である。
図１に示すように、実施の形態１における組み込みＯＳがインストールされた産業用機器等の機器１は、ＣＰＵ２等の演算装置と、ＲＯＭ３等の書き換え不能な記憶装置と、ＲＡＭ４等の書き換え可能な記憶装置と、周辺機器等の外付けのハードウェア５を接続するためのインターフェース６と、機器１の機能に応じた様々な装置（図示せず）等から構成される。以下の説明では、演算装置の例としてＣＰＵ２，書き換え不能な記憶装置としてＲＯＭ３，書き換え可能な記憶装置としてＲＡＭ４を備える機器１を例に説明する。
【００２４】
ＲＯＭ３には、ＯＳ７およびドライバ８が格納される。ＣＰＵ２はＯＳ７を読み出して機器１が行うべき動作を実行させる。ＯＳ７およびドライバ８は、機器１の製造段階でＲＯＭ３に格納され、機器１の出荷の際には、すでに格納され、ユーザー等は格納後に追加や修正を行うことはできない。また、ドライバ８は、ＯＳ７のカーネル領域等に格納されていても良いし、ＯＳ７の格納領域以外のＲＯＭ３の記憶領域に格納されていても良い。
【００２５】
ドライバ８は、１つ以上の特定ドライバ９と１つの仮ドライバ１０とから構成される。特定ドライバ９は、機器１に接続されるハードウェア５を動作させるために実行されるドライバに相当する処理手順であり、あらかじめ接続されることが想定されるハードウェア５毎に特定ドライバ９として格納される。ハードウェア５としてあらかじめ接続されることが想定される特定のハードウェアが接続されると、その特定のハードウェアに対応する特定ドライバ９が実行され、その特定のハードウェアを駆動することができる。
【００２６】
仮ドライバ１０は、上述の特定のハードウェア以外のハードウェア（以下、追加のハードウェアと称す）が機器１に接続された時に読み込まれるものである。例えば、機器１に電源が供給され動作可能状態であるときにＵＳＢデバイスのようなプラグインプレイ対応のデバイスが接続された場合や、機器１にデバイスが接続されている状態で電源が供給された場合に、仮ドライバ１０は読み込まれる。仮ドライバ１０が読み込まれると、ＣＵＰ２は、接続された追加のハードウェアからベンダＩＤやデバイスＩＤ等のハードウェアに固有な固有情報を読み出す。さらに、読み出した固有情報と、後述のドライバリスト１１に記述された固有情報を比較する。
【００２７】
ＲＡＭ４には、アプリケーションとドライバリスト１１が格納される。アプリケーションとしては、ハードウェア５のドライバを備えないアプリケーション１２と、そのアプリケーションが使用する追加のハードウェアに対応する追加ドライバ１３を備えるアプリケーション１４とを格納することができる。
【００２８】
ドライバリスト１１には、機器１に接続されることが予定される追加のハードウェアのベンダＩＤやデバイスＩＤ等のハードウェアに固有な固有情報が記載される。アプリケーション１２，アプリケーション１４およびドライバリスト１１は、機器１の出荷の段階で格納されていても良いし、必要に応じて、出荷後に格納しても良く、修正，消去することも可能である。特に、接続されるハードウェアがバージョンアップした時や、新たに開発されたハードウェアを使用したい場合に、アプリケーション１４およびドライバリスト１１を追加，修正することができる。ドライバリスト１１は、アプリケーション１４に内蔵されていても、外部に格納されても良い。その場合、アプリケーション１４が格納されるＲＡＭ４やその他の機器１に内蔵される書き換え可能な記憶装置に格納される。さらに、ドライバリスト１１の形態でなく、アプリケーション１４が、アクセスを許可する追加のハードウェアの固有情報を保持しても良い。
【００２９】
このように、実施の形態１における組み込みＯＳがインストールされた機器１では、あらかじめ、ドライバリスト１１は、機器１に接続されることが予定される追加のハードウェアのベンダＩＤやデバイスＩＤ等のハードウェアに固有な固有情報が記載され、使用する追加のハードウェアの追加ドライバ１３をアプリケーション１４が保持している。そして、この追加のハードウェアを動作させてアプリケーション１４が実行される際には、インターフェース６を介して機器１に接続された追加のハードウェアの固有情報が、ドライバリスト１１に記載された固有情報に含まれているかどうかを、ＣＰＵ２が仮ドライバ１０を介して確認し、含まれている場合には、アプリケーション１４が保持するドライバを用いてＣＰＵ２が追加のハードウェアを駆動してアプリケーション１４を実行する。これにより、ドライバ８の書き換えや追加をすることができない組み込みＯＳがインストールされた機器であっても、新たに使用する追加のハードウェアの固有情報をドライバリスト１１に記載し、アプリケーション１４に追加ドライバ１３を保持することにより、あらかじめ対応するドライバが格納されていない追加のハードウェアであっても、機器１に接続して動作させることができる。
【００３０】
次に、図１０，図１１を用いて、ドライバリスト１１および仮ドライバ１０の機能を説明する。
図１０は本発明のドライバリストの機能を例示する図、図１１は本発明の仮ドライバの機能を例示する図である。
【００３１】
図１０に例示するように、ドライバリスト１１には、アクセスを許可する追加のハードウェアの名称に対応する例えばベンダＩＤやデバイスＩＤ等の固有情報がリストアップされる。
【００３２】
追加ドライバ１３は、追加のハードウェアにアクセスするために、図１１に示すような仮ドライバ１０のＦｕｎｃｔｉｏｎを組み合わして作成されたプログラムである。アプリケーション１４は、追加ドライバ１３を用いることで、追加のハードウェアを使用可能状態としたり、追加のハードウェアにアクセスすることができる。追加のハードウェアにアクセスできるのは、追加ドライバ１３が、追加のハードウェアのアドレスへの書込み、または読出しを、仮ドライバ１０を介して実行できるためである。
【００３３】
次に、図１，図２を用いて、実施の形態１における組み込みＯＳがインストールされた機器におけるドライバの実行方法について詳細に説明する。
上述のように、実施の形態１における組み込みＯＳがインストールされた機器１では、ＲＯＭ３に、特定ドライバ９と仮ドライバ１０とを有するドライバ８、およびＯＳ７が格納されている。また、ＲＡＭ４には、追加ドライバ１３を保持するアプリケーション１４とドライバリスト１１が記録されている。ドライバリスト１１には、ＲＯＭ３に格納された特定ドライバ９に対応する特定のハードウェア以外のハードウェアの内、使用を予定する追加のハードウェアの固有情報があらかじめ記載されている。なお、アプリケーション１４は複数種類格納されていても良く、他にアプリケーション１２を格納していても良い。また、ドライバリスト１１にも、複数の追加のハードウェアの固有情報を記述していても良い。また、ドライバリスト１１は、アプリケーション１４に内蔵されていても、外部に格納されても良い。その場合、アプリケーション１４が格納されるＲＡＭ４やその他の機器１に内蔵される書き換え可能な記憶装置に格納される。さらに、ドライバリスト１１の形態でなく、アプリケーション１４が、アクセスを許可する追加のハードウェアの固有情報を保持しても良い。
【００３４】
このような機器１において、機器１のインターフェース６にハードウェアが接続され、機器１がハードウェアの接続を検出すると（ステップ１）、ＣＰＵ２は、ドライバ８を読み出して、接続されたハードウェアに対応する特定ドライバ９が含まれるかどうかを確認する（ステップ２）。接続されたハードウェアに対応する特定ドライバ９が含まれる場合、接続されたハードウェアを特定のハードウェアと判断し、ＣＰＵ２は、従来と同様に、対応するドライバ９を実行して接続された特定のハードウェアを駆動する（ステップ３）。また、接続されたハードウェアに対応する特定ドライバ９が含まれない場合、仮ドライバ１０は、ドライバリスト１１を読み出すと共に接続されたハードウェアの固有情報を読み出す（ステップ４）。そして、仮ドライバ１０は、接続されたハードウェアの固有情報がドライバリスト１１に記載されているかどうかを比較する（ステップ５）。比較した結果、固有情報が一致しない場合は、機器１が接続されたハードウェアに対応するドライバを備えていないので、接続されたハードウェアは駆動されない（ステップ６）。比較した結果、固有情報が一致する場合は、接続されたハードウェアは追加のハードウェアであると判断し、ＣＰＵ２は接続された追加のハードウェアの駆動を許可し、仮ドライバ１０はアプリケーション１４から追加ドライバ１３を読み出す（ステップ７）。ＣＰＵ２は、読み出した追加ドライバ１３を用いて接続された追加のハードウェアを駆動して、アプリケーション１４を実行する（ステップ８）。
【００３５】
従来の、書き換え不能な記憶装置にＯＳおよびドライバが固定されている、組み込みＯＳがインストールされた機器では、ドライバの追加，修正ができないので、あらかじめ使用することを想定してドライバを格納した特定のハードウェア以外のハードウェアを、機器に接続して駆動することができなかった。これに対して、上述の実施の形態１における組み込みＯＳがインストールされた機器およびこの機器におけるドライバの実行方法では、特定のハードウェア以外の追加のハードウェアの追加ドライバ１３はアプリケーション１４に保持され、追加のハードウェアの固有情報はドライバリスト１１に記述される。そのため、接続された追加のハードウェアの固有情報がドライバリスト１１に記述されている場合には、追加のハードウェアは駆動を許可され、アプリケーション１４が保持する追加ドライバ１１を用いて追加のハードウェアは駆動される。その結果、追加ドライバ１３を保持するアプリケーション１４およびドライバリスト１１を書き換え可能な記憶装置に格納することにより、ドライバが格納された特定のハードウェア以外の追加のハードウェアであっても、機器１に接続して使用することができる。このように、実施の形態１に係る機器１およびドライバの実行方法は、ＯＳ７およびドライバ８の組み込み時に接続を予定していなかった追加のハードウェアを接続して使用できるようになり、出荷時のドライバの有無に関わらず、接続するハードウェアの選択を自由に行うことができるようになる。また、特定ドライバ９を格納していた特定のハードウェアであっても、対応するドライバが更新される時がある。この場合でも、実施の形態１に係る機器１およびドライバの実行方法は、更新されたドライバをアプリケーション１４に追加ドライバ１３として格納することにより、ドライバの更新された特定のハードウェアを継続して使用することができる。
【００３６】
なお、機器１がアプリケーション１４を実行する際に接続が許可された追加のハードウェアがアクセスするメモリの領域やＩ／Ｏ等のリソースをあらかじめ特定しておき、仮ドライバ１０によって、追加のハードウェアがアクセスできるリソースを制限するようにすることもできる。これにより、アクセスできるリソース以外のリソースに対して追加のハードウェアがアクセスすることを防止でき、アプリケーション１４の不正な動作や、追加のハードウェアの不具合等により、不適切な動作やデータの書き換えが行われ、リソース等に障害が生じることを防止することができる。
例えば、アプリケーションが、汎用ドライバにＳｙｓｔｅｍ  ＲＯＭ消去命令を実行する不正なＩ／Ｏアクセスを要求した場合で、Ｉ／Ｏアクセスの制限が行われていない場合、ＯＳが格納されたＳｙｓｔｅｍ  ＲＯＭが消去され、その後、機器１は動作しない状況に陥る。
【００３７】
これに対して、致命的な不具合を発生させる可能性のあるリソースへのＩ／Ｏアクセスの制限を行っている場合、不正な処理はドライバ内で阻止され、機器やハードウェアの保護が可能となる。
（実施の形態２）
次に、図１〜図３を用いて、実施の形態２における組み込みＯＳがインストールされた機器およびこの機器におけるドライバの実行方法について説明する。
【００３８】
図３は実施の形態２における暗号化キーを用いた処理を行う構成を示す概略図である。
図１〜図３に示すように、実施の形態２における組み込みＯＳがインストールされた機器１９は、実施の形態１における組み込みＯＳがインストールされた機器１において、アプリケーション１８としてアプリケーション１４に暗号化キー１５をさらに加えて、追加のハードウェア１６にも暗号化キー１５と同一の暗号化キー１７をさらに保持させる。ここで、図３において、アプリケーション１８，仮ドライバ１０，追加のハードウェア１６以外の構成は、図１における機器１の構成と同様で有り、図示を省略している。このような構成の機器１９において、図２のステップ５における固有情報の比較の際に、アプリケーション１８が保持する暗号化キー１５と追加のハードウェア１６が保持する暗号化キー１７とを比較する。そして、暗号化キー１５，１７が一致した場合のみ、追加のハードウェア１６を使用する許可を出すようにする。つまり、固有情報が一致したとしても、暗号化キー１５，１７が一致しない場合は、追加のハードウェア１６を使用する許可を出さない。これにより、追加のハードウェア１６が保持する暗号化キー１７と同一の暗号化キー１５を保持するアプリケーション１８のみを実行させることができ、意図しないアプリケーションからの追加のハードウェア１６の使用を回避することができる。
【００３９】
以下、図１〜図９を用いて、実施の形態１の機器１および実施の形態２の機器１９の具体的な構成を例示する。
機器１や機器１９は、例えば、工場のラインにおいて、センサの解析装置や各種検査装置、空冷用ファンの制御装置等に用いられる。また、機器１，１９に接続されるハードウェアとしては、デジタルＩ／ＯやＡＤ／ＤＡコンバータ、シリアル通信デバイス，センサ，アクチュエータ等が用いられる。
【００４０】
工場のセンサの解析装置は、機器１，１９にハードウェアとしてセンサが接続された構成であり、センサによって工場のラインで生産される製品の数量や品質データ等を取得し、機器１，１９でデータ解析、その他の処理を行う。
【００４１】
図４はセンサ解析装置の初期設計時の構成例で、仮ドライバ１０はセンサ解析装置に組み込まれているが、使用されていない状態である。図４の構成例に対して、例えば新製品の生産のために、工場のラインに変更を加え、センサが変更された構成例を図５に示す。
この構成例では、アプリケーション１４の追加、及び、図４における温度センサ２４を赤外線センサ２５へ変更することで、従来では生産できなかった新製品の生産への対応が行えるようになる。
【００４２】
工場の検査装置は、機器１，１９にハードウェアとして検査用ツールが接続された構成であり、検査用ツールで取得したデータを読み込み、機器１，１９でデータ解析して検査の判定を行う。
【００４３】
図６は検査装置の初期設計時の構成例で、ここでの検査対象２６はコンピュータを想定しており、各種デバイス（ＬＡＮ，ＵＳＢ，Ａｕｄｉｏ，ＣＯＭ）を搭載している。検査装置は、これらの各種デバイスに対して検査を行う。図６の構成例に対して、ＧＰＩＢデバイスを搭載したコンピュータである新検査対象２７を追加する場合の構成例を図７に示す。
【００４４】
この構成例では、アプリケーション１４の追加、及び、検査用ツール３３を新検査用ツール２８へ変更することで、従来では検査できなかった新製品の検査ができるようになる。なお、新検査ツール２８への変更は、検査対象２７に対してＧＰＩＢデバイスを追加で搭載することで可能となる。
【００４５】
空冷用ファンの制御装置は、機器１，１９にハードウェアとして温度センサとファンが接続された構成であり、冷却対象に温度センサを設置し、測定した温度を解析して、冷却対象を冷却するファンの風量の増減，稼動／停止を制御する。
【００４６】
図８は空冷用ファンの制御装置の初期設計時の構成例で、仮ドライバ１０はセンサ解析装置に組み込まれているが、使用されていない状態である。図８の構成例に対して、より性能の良い冷却対象に変更し、温度センサ２９、ファン３０を温度センサ３１、ファン３２変更した構成例を図９に示す。
【００４７】
この構成例では、アプリケーション１４の追加、温度センサ２９とファン３０を新温度センサ３１、新ファン３２へ変更することで、工場内の冷却対象の性能向上に伴い消費電力が増加し、発熱量が増加する場合に、ファンの排熱能力を向上させ、冷却対象を正常に動作させることができる。
【００４８】
このような機器１，１９において、接続するハードウェアを変更する事情が生じた場合で、機器１，１９にそのハードウェアに対応するドライバが格納されていない場合でも、アプリケーション１４，１８に追加ドライバ１３を保持させ、接続する追加のハードウェア１６の固有情報をドライバリスト１１に記載することにより、適切な追加のハードウェア１６が接続されたことを確認して追加のハードウェア１６の使用を許可し、アプリケーション１４，１８が保持する追加ドライバ１３により追加のハードウェア１６を駆動させることができるため、組み込みＯＳがインストールされた機器においても、新たに接続される追加のハードウェア１６を接続して使用することができる。
（実施の形態３）
次に、図２，図１２〜図１３を用いて、実施の形態３における組み込みＯＳがインストールされた機器およびこの機器におけるドライバの実行方法について説明する。
【００４９】
図１２は実施の形態３における組み込みＯＳがインストールされた機器の構成を示す概略図、図１３は実施の形態３におけるドライバの実行方法の概略フローを示す図である。
実施の形態３における組み込みＯＳがインストールされた機器およびこの機器におけるドライバの実行方法は、実施の形態１，２において、アプリケーションが追加のハードウェアにアクセスする度に固有情報の比較を行っていたのに対し、あらかじめ記録されたアクセス許可されたハードウェアの固有情報と、接続されたハードウェアの固有情報との比較を１度だけ行うことを特徴とする。そのため、実施の形態１，２のドライバの実行方法および機器に対し、アクセス許可リストをさらに備える点が異なる。アクセス許可リストは、あらかじめ記録されたアクセス許可されたハードウェアの固有情報と、接続されたハードウェアの固有情報との比較を行った結果、一致した場合にその固有情報を記録する。
【００５０】
以下、実施の形態１，２と異なる部分を中心に説明し、その他の説明は省略する。
図１２における本実施の形態の機器２０は、図１に示す実施の形態１，２の機器１に対して、アクセス許可リスト２１をさらに設ける点がことなる。なお、図１２においては、ドライバリストを設けず、アプリケーション２２が追加を許可する追加のハードウェアの固有情報２３を保持する構成を示し、以下この構成について説明する。
【００５１】
アクセス許可リスト２１は、ＲＡＭ２４等の書き換え可能な記憶装置に格納される。アクセス許可リスト２１には、機器２０に接続された追加のハードウェアから取得した固有情報と、アプリケーション２２に保持された固有情報２３とを比較し、一致した場合にその固有情報が書き込まれる。つまり、最初にアプリケーションが追加のハードウェアにアクセスしようとした時に、機器２０に接続されているハードウェアが、アクセス許可された追加のハードウェアか否かを確認するために、機器２０に接続された追加のハードウェアから取得した固有情報と、アプリケーション２２に保持された固有情報２３とを比較したときに、一致した固有情報がアクセス許可リスト２１に書き込まれる。
【００５２】
ＣＰＵ２は、アプリケーション２２が追加のハードウェアにアクセスされた場合、アクセス許可リスト２１を読み込み、アクセス許可リスト２１にアプリケーション２２に保持された固有情報２３が書き込まれているかどうかを確認し、書き込まれている場合は、追加のハードウェアの動作を許可する。書き込まれていない場合は、機器２０に接続された追加のハードウェアから取得した固有情報と、アプリケーション２２に保持された固有情報２３とを比較し、一致した場合にのみ、追加のハードウェアの動作を許可する。
【００５３】
これ以外の構成は、実施の形態１，２と同様であり、説明を省略する。
次に、実施の形態３における図１２に示す機器を用いたドライバの実行方法について、図２，図１２，図１３を用いて説明する。
【００５４】
まず、図２に示す実施の形態１，２のドライバの実行方法と同様に、特定ドライバが接続されている場合には、ドライバ９を実行して接続された特定のハードウェアを駆動する（図２のステップ１〜３）。
【００５５】
次に、実施の形態１，２のドライバの実行方法と同様に接続された追加のハードウェアが、アプリケーションがアクセスすることを許可するものかどうかを確認する。実施の形態１，２のドライバの実行方法では、アプリケーションが追加のハードウェアにアクセスする毎に、あらかじめ記憶した固有情報と追加のアプリケーションの固有情報とを比較したが（図２のステップ４以降）、本実施の形態では、アクセス許可リスト２１を用いる。
【００５６】
以下、図２のステップ５以降に代わる工程について、図１３を用いて説明する。
まず、アプリケーション２２は、追加のハードウェアにアクセスする場合、あらかじめ記憶したアクセスしようとする追加のハードウェアの固有情報がアクセス許可リスト２１に書き込まれているかどうかを確認する（ステップ１１）。固有情報が、許可リスト２１に書き込まれている固有情報と一致する場合は、図２のステップ７，８と同様に追加のハードウェアを動作させる（ステップ１２）。アクセス許可リスト２１に対応する固有情報が書き込まれていない場合、あらかじめ記憶した固有情報と、接続された追加のハードウェアの固有情報とを比較する（ステップ１３）。一致しない場合は、追加のハードウェアを動作させない（ステップ１３）。一致する場合は、その固有情報をアクセス許可リスト２１に書き込むと共に（ステップ１５）、ステップ１２と同様に追加のハードウェアを動作させる（ステップ１６）。
【００５７】
このように本実施の形態のドライバの実行方法では、まず、アプリケーション２２が最初に追加のハードウェアにアクセスする時は、あらかじめアクセスを許可された追加のハードウェアの固有情報と、接続された追加のハードウェアの固有情報を比較する。そして、一致する場合は、追加のハードウェアを駆動してアプリケーション２２を動作させると共に、アクセス許可リスト２１に一致した固有情報を書き込む。その後、アプリケーションが追加のハードウェアにアクセスする時は、接続された追加のハードウェアの固有情報を確認することなく、アプリケーション２２がアクセスしようとする追加のハードウェアの固有情報と、アクセス許可リスト２１に記録された固有情報とを比較し、アプリケーション２２が継続して同じ追加のハードウェアにアクセスしていることを確認し、追加のハードウェアを駆動してアプリケーション２２を動作させる。これにより、アプリケーション２２が追加のハードウェアにアクセスする度に、追加のハードウェアから固有情報を取得する必要がなくなり、処理が簡便になり、処理速度も向上する。
【００５８】
なお、上記説明では、ドライバリストを用いない場合を例に説明したが、実施の形態１，２のように、あらかじめアプリケーションがアクセスすることを許可する追加のハードウェアの固有情報が記録されたドライバリストを用いることもできる。
【００５９】
さらに、上記各実施の形態において、接続された追加のハードウェアの固有情報を記憶する、接続リストを設けても良い。固有情報の比較の際に、接続リストに記憶された固有情報を用いることにより、比較の度に追加のハードウェアから固有情報を取得する必要がなくなり、処理が簡便になり、処理速度も向上する。なお、接続された追加のハードウェアの固有情報の取得は、追加のハードウェアが接続された状態で機器に電源が投入された際や、電源が投入されている機器に追加のハードウェアを接続してプラグ＆プレイされた時等の、機器が最初に追加のハードウェアを認識した時に行うことができる。この取得した固有情報が接続リストに記憶される。
【符号の説明】
【００６０】
１    機器
２    ＣＰＵ
３    ＲＯＭ
４    ＲＡＭ
５    ハードウェア
６    インターフェース
７    ＯＳ
８    ドライバ
９    特定ドライバ
１０    仮ドライバ
１１    ドライバリスト
１２    アプリケーション
１３    追加ドライバ
１４    アプリケーション
１５    暗号化キー
１６    追加のハードウェア
１７    暗号化キー
１８    アプリケーション
１９    機器
２０    機器
２１    アクセス許可リスト
２２    アプリケーション
２３    固有情報
２４    温度センサ
２５    赤外線センサ
２６    検査対象
２７    検査対象
２８    新検査用ツール
２９    温度センサ
３０    ファン
３１    温度センサ
３２    ファン
３３    検査用ツール
【図１】
0005943984.tif 000002
【図２】
0005943984.tif 000003
【図３】
0005943984.tif 000004
【図４】
0005943984.tif 000005
【図５】
0005943984.tif 000006
【図６】
0005943984.tif 000007
【図７】
0005943984.tif 000008
【図８】
0005943984.tif 000009
【図９】
0005943984.tif 000010
【図１０】
0005943984.tif 000011
【図１１】
0005943984.tif 000012
【図１２】
0005943984.tif 000013
【図１３】
0005943984.tif 000014