(57)【要約】【課題】従来の手法を維持したまま二つのデバイスの同期を従来以上の精度で行なうことができる機器制御方法を提供すること目的とする。【解決手段】マルチタスク機能を備えたオペレーティングシステムと、その上で動作するデバイスドライバとを有する計算機システムからなる機器を制御する機器制御方法において、二つのデバイスの同期を取る操作の際に、主たるデバイス１のデバイスドライバ内に、もう一つのデバイス２の動作を属性として隠蔽し、デバイス１内で直列に処理するによって、ＯＳのタスクスイッチを回避し、もってリアルタイム性を拡張するようにしたものである。【選択図】        図２
2006221398.tif 000002
【特許請求の範囲】
【請求項１】
マルチタスク機能を備えたオペレーティングシステムと、その上で動作するデバイスドライバとを有する計算機システムからなる機器を制御する機器制御方法において、
二つのデバイスの同期を取る操作の際に、主たるデバイス１のデバイスドライバ内に、もう一つのデバイス２の動作を属性として隠蔽し、デバイス１内で直列に処理するによって、ＯＳのタスクスイッチを回避し、もってリアルタイム性を拡張する機器制御方法。
【請求項２】
デバイス１内での直列の処理方法が、属性として渡されたデバイス２の動作値をもとにデバイス２のデバイスドライバ内の関数を直接コールすることを特徴とする請求項１記載の機器制御方法。
【請求項３】
前記計算機システムがデジタルカメラであり、デバイス１がＣＣＤ、デバイス２がストロボであることを特徴とする請求項１または請求項２記載の機器制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチタスク機能を備えたオペレーティングシステムと、その上で動作するデバイスドライバとを有する計算機システムからなる機器を制御する機器制御方法に関する。
【背景技術】
【０００２】
従来、組込機器にはフットプリントが小さく、オーバーヘッドの小さい組込専用ＯＳが用いられてきた。近年、家電製品の機能は複雑化が進み、それに伴い、ソフトウェアにより制御される部分が増加してきている。ソフトウェア部の規模が大きくなるにつれ、従来型の組込専用ＯＳを用いた開発工数の問題がクローズアップされてきた。
【０００３】
一方、ＯＳとアプリケーションが一体化した組込専用ＯＳでは、アプリケーションプログラミングに際しても、ハードウェアに密着した下位レイヤの知識や、場合によっては、ハードウェアそのものの知識が要求される事が多い。このため、規模が増大するにつれ、実装やデバッグの工数が無視できないほど大きくなってきており、また、人員の各保も難しくなってきている。
【０００４】
これらの問題に対処するため、近年、汎用ＯＳを組込機器に採用する動きが盛んになってきている。
【０００５】
しかしながら、これらの汎用ＯＳは一般的に組込機器をターゲットとしたものではなく、リアルタイム性に対する要求などは、これまであまり大きくなく、平均的に効率よく操作を実行できるように設計されている。このように設計されたＯＳを電子機器の制御に用いた場合、数ミリ秒以下のタイミングで制御しなければならない場合や、負荷のかかった状況下での動作の保証が困難となる。
【０００６】
これらの課題に対して、いくつかの解決案が提案され、いくつかはすでに実現され使用されている。例えば、では小さなモニタの上の一タスクとして従来型のＯＳを動作させ、これと並列にリアルタイム動作が必要なドライバ部分を別タスクとして動作させるハイブリッド型のＯＳを提案している（特許文献１参照）。
【０００７】
また、ではデバイスドライバを動的にモジュールとして組込可能なＯＳにおいて、リアルタイム制御機構をモジュールとして実装する仕組も提案されている（特許文献２参照）。
【特許文献１】特開２０００−０７６０８７号公報
【特許文献２】特開平１０−０２１０９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記のリアルタイム拡張は精度の点で有利な面はあるものの、ＯＳ自身への変更が必要であったり、従来の汎用ＯＳとは違う手法でデバイスドライバを実装しなければならないという問題がある。
【０００９】
本発明は、かかる実情に鑑みてなされたものであり、従来の手法を維持したまま二つのデバイスの同期を従来以上の精度で行なうことができる機器制御方法を提供すること目的とする。
【課題を解決するための手段】
【００１０】
本発明は、マルチタスク機能を備えたオペレーティングシステムと、その上で動作するデバイスドライバとを有する計算機システムからなる機器を制御する機器制御方法において、二つのデバイスの同期を取る操作の際に、主たるデバイス１のデバイスドライバ内に、もう一つのデバイス２の動作を属性として隠蔽し、デバイス１内で直列に処理するによって、ＯＳのタスクスイッチを回避し、もってリアルタイム性を拡張するようにしたものである。
【００１１】
また、デバイス１内での直列の処理方法が、属性として渡されたデバイス２の動作値をもとにデバイス２のデバイスドライバ内の関数を直接コールするようにしたものである。
【００１２】
また、前記計算機システムがデジタルカメラであり、デバイス１がＣＣＤ、デバイス２がストロボである。
【発明の効果】
【００１３】
したがって、本発明によれば、既存の汎用ＯＳを変更することなく、二つ以上のデバイスの同期を、従来以上の精度で行なうことが可能となるという効果を得る。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照しながら、本発明の実施の形態を詳細に説明する。
【００１５】
図１は、本発明の一実施例にかかる機器の基本システム構成を示し、図２は、本発明の一実施例にかかる動作例を示す。
【００１６】
図１において、機器は、ハードウェア部とソフトウェア部から構成されており、ハードウェア部には、デバイス１ＤＶ１とデバイス２ＤＶ２が含まれる。また、ソフトウェア部は、デバイス１ＤＶ１を制御するためのデバイス１のドライバＤＤ１と、デバイス２ＤＶ２を制御するためのデバイス２のドライバＤＤ２、汎用ＯＳの主要部分を構成するＯＳコア部ＤＰ、および、当該機器の動作を制御するためのアプリケーションＡＰから公正さｓれている。
【００１７】
図２において、デバイス１ＤＶ１がユーザの操作などにより、割込を発生すると、ＯＳを介してデバイス１のドライバ１ＤＤ１の割込ハンドラが起動され、初期化が行なわれる。デバイス１のドライバＤＤ１は、デバイス１ＤＶ１の駆動の前にデバイス２ＤＶ２の動作値のチェックを行なう。
【００１８】
これは、通常変数の形でデバイスドライバ１に渡されており、この値に応じて、デバイスドライバ２に処理を依頼する。例えば、Ｃ言語で記述されたＯＳの場合ならば、デバイスドライバ２内の関数を直接呼び出す形で実現される。
【００１９】
また、図２においては、デバイス１ＤＶ１の駆動の前にデバイス２ＤＶ２の駆動を行なっているが、これは一例であり、順番が前後しても構わないし、デバイス１ＤＶ１の駆動の途中の必要な箇所でデバイス２ＤＶ２の駆動を行なってもよい。
【００２０】
例えば、この基本システムがデジタルカメラ装置のものである場合、デバイス１ＤＶ１がＣＣＤ（撮像素子）となり、デバイス２ＤＶ２がストロボとなる。
【００２１】
この場合、ユーザがシャッターボタンを押す動作を起点として、ＣＣＤ（デバイス１ＤＶ１）のドライバに画像を取得せよとの命令が下る。この時に、ストロボ（デバイス２ＤＶ２）の動作、例えば、ストロボの要不要、光量などのパラメータなどがデバイス１のドライバＤＤ１に渡され、デバイスド１のライバＤＤ１１はＣＣＤから画像を取得するのに最適なタイミングで、デバイスド２のライバＤＤ２内のストロボをフラッシュする関数をコールする。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施例にかかる機器の基本システム構成を示したブロック図。
【図２】本発明の一実施例にかかる動作例を示す動作フローチャート。
【符号の説明】
【００２３】
ＤＶ１  デバイス１
ＤＶ２  デバイス２
ＤＤ１  デバイス１のドライバ
ＤＤ２  デバイス２のドライバ
【図１】
2006221398.tif 000003
【図２】
2006221398.tif 000004