(57)【要約】【課題】装置に接続されるデバイスの変更に柔軟に対応することが可能な制御装置を提供すること。【解決手段】入力された信号に基づいてコンピュータ処理を行い、制御対象を制御する制御装置であって、前記コンピュータが実行するソフトウエア、及び該ソフトウエアにより扱われるデータは、アプリケーションソフトウエアが属する第１の階層と、デバイスドライバが属する第２の階層と、前記第１の階層及び前記第２の階層の中間層となる第３の階層と、を含むように階層分けされており、前記第３の階層は、前記第２の階層から提供される割付情報を束ねて公開する割付情報公開部と、該割付情報公開部により公開された割付情報に基づいて前記第１の階層に対して入力サービス及び／又は出力サービスを提供するサービス部と、を含むことを特徴とする、制御装置。【選択図】図１
2012108707.tif 000002
【特許請求の範囲】
【請求項１】
入力された信号に基づいてコンピュータ処理を行い、制御対象を制御する制御装置であって、
前記コンピュータが実行するソフトウエア、及び該ソフトウエアにより扱われるデータは、
アプリケーションソフトウエアが属する第１の階層と、
デバイスドライバが属する第２の階層と、
前記第１の階層及び前記第２の階層の中間層となる第３の階層と、
を含むように階層分けされており、
前記第３の階層は、
前記第２の階層から提供される割付情報を束ねて公開する割付情報公開部と、
該割付情報公開部により公開された割付情報に基づいて前記第１の階層に対して入力サービス及び／又は出力サービスを提供するサービス部と、
を含むことを特徴とする、
制御装置。
【請求項２】
請求項１に記載の制御装置であって、
前記サービス部は、接続された機器に共通するサービスを提供する固定サービス部と、接続された機器の違いに応じて変化する可変サービス部と、に分離していることを特徴とする、
制御装置。
【請求項３】
請求項２に記載の制御装置であって、
前記可変サービス部は、前記固定サービス部に割り当てる信号ＩＤが列挙された信号ＩＤリストである、
制御装置。
【請求項４】
請求項１ないし３のいずれか１項に記載の制御装置であって、
前記割付情報は、信号ＩＤとチャネルの対応関係を規定している、
制御装置。
【請求項５】
請求項１ないし４のいずれか１項に記載の制御装置であって、
前記サービス部は、電圧値、ＯＮ／ＯＦＦ値、変化有無、デューティ、タイムドエッジ、ワンショットパルスの少なくとも一部の入力及び／又は出力のためのサービスを前記第１の階層に対して提供することを特徴とする、
制御装置。
【請求項６】
請求項１に記載の制御装置であって、
前記デバイスドライバは、端子操作用インターフェースを有し、
前記サービス部は、前記アプリケーションソフトウエアから信号ＩＤとサービス要求を受け取ると、前記割付情報と前記サービス要求から呼び出す端子操作用インターフェースを特定し、該特定した端子操作用インターフェースに端子操作を指示することを特徴とする、
制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサ類等から入力された信号に基づいてコンピュータ処理を行い、種々の機器制御を行う制御装置に関する。
【背景技術】
【０００２】
従来、オブジェクト指向設計されたプログラムを制御プログラムに適用することにより、ハードウエアの変更に伴うソフトウエアの開発工数を低減することを目的とした車両用制御装置についての発明が開示されている（例えば、特許文献１参照）。
【０００３】
この装置におけるマイクロコンピュータは、制御プログラムを搭載し、センサ類からの検出信号を受ける入力回路部からの信号を受け車両の状態に基づき最適な制御量を演算し、アクチュエータ類を駆動する制御信号を発生する。
【０００４】
そして、制御プログラムは、ハードウエアに依存しない制御量算出ロジックを記述した第１の階層と、ハードウエアに依存する制御量算出ロジックを記述した第２の階層とを有し、第２の階層には、ハードウエアの内のセンサ類やアクチュエータ類等の個々の物理的な構成を、個々の論理的な構成に変換しモデル化して記述したモデル化プログラムを含んでいる。
【０００５】
また、上記特許文献１の図３には、バーチャルＭＰＵ（ＶＭ）レイヤというソフトウエア階層が記載されている。特許文献１に記載の車両用制御装置は、このソフトウエア階層によってマイコン（ＣＰＵ）をバーチャル化し、マイコンの違いを吸収している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−９７１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、センサ類や制御対象機器等（デバイス）が接続された制御装置においては、マイコンの種類が変更される場合のみならず、デバイスの種類が変更される場合も想定される。
【０００８】
特に、近年の車両用制御装置の分野においては、異なる技術分野の機能を一の制御装置に統合する動きが加速しつつある。この結果、一の制御装置に入力される信号の種類が増加したり、汎用マイコンでは処理しづらい処理を拡張ＩＣにより実現したり、仕向け地に応じた異なるハードウエア構成が接続されたりするという状況が続いている。
【０００９】
この点、上記特許文献１に記載の装置では、マイコンの違いを吸収することはできるものの、センサ類、拡張ＩＣ、制御対象といったデバイスの違いを吸収することができない。
【００１０】
本発明はこのような課題を解決するためのものであり、装置に接続されるデバイスの変更に柔軟に対応することが可能な制御装置を提供することを、主たる目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するための本発明の一態様は、
入力された信号に基づいてコンピュータ処理を行い、制御対象を制御する制御装置であって、
前記コンピュータが実行するソフトウエア、及び該ソフトウエアにより扱われるデータは、
アプリケーションソフトウエアが属する第１の階層と、
デバイスドライバが属する第２の階層と、
前記第１の階層及び前記第２の階層の中間層となる第３の階層と、
を含むように階層分けされており、
前記第３の階層は、
前記第２の階層から提供される割付情報を束ねて公開する割付情報公開部と、
該割付情報公開部により公開された割付情報に基づいて前記第１の階層に対して入力サービス及び／又は出力サービスを提供するサービス部と、
を含むことを特徴とする、
制御装置である。
【００１２】
この本発明の一態様によれば、アプリケーションソフトウエアが属する第１の階層とデバイスドライバが属する第２の階層との中間層として、第２の階層から提供される割付情報を束ねて公開する割付情報公開部と、公開された割付情報に基づいて第１の階層に対して入力サービス及び／又は出力サービスを提供するサービス部とを含む第３の階層を備えるため、装置に接続されるデバイスの変更に柔軟に対応することができる。
【００１３】
本発明の一態様において、
前記サービス部は、接続された機器に共通するサービスを提供する固定サービス部と、接続された機器の違いに応じて変化する可変サービス部と、に分離していることを特徴とするものとしてもよい。
【００１４】
この場合、
前記可変サービス部は、例えば、前記固定サービス部に割り当てる信号ＩＤが列挙された信号ＩＤリストである。
【００１５】
また、本発明の一態様において、
前記割付情報は、信号ＩＤとチャネルの対応関係を規定しているものとしてもよい。
【００１６】
また、本発明の一態様において、
前記サービス部は、電圧値、ＯＮ／ＯＦＦ値、変化有無、デューティ、タイムドエッジ、ワンショットパルスの少なくとも一部の入力及び／又は出力のためのサービスを前記第１の階層に対して提供することを特徴とするものとしてもよい。
【００１７】
また、本発明の一態様において、
前記デバイスドライバは、端子操作用インターフェースを有し、
前記サービス部は、前記アプリケーションソフトウエアから信号ＩＤとサービス要求を受け取ると、前記割付情報と前記サービス要求から呼び出す端子操作用インターフェースを特定し、該特定した端子操作用インターフェースに端子操作を指示することを特徴とするものとしてもよい。
【発明の効果】
【００１８】
本発明によれば、装置に接続されるデバイスの変更に柔軟に対応することが可能な制御装置を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施例に係る制御装置１のシステム構成例である。
【図２】マイコンＡＤ入力割付情報３１Ａの一例である。
【図３】拡張ＩＣ割付情報３１Ｂの一例である。
【図４】マイコンＡＤレシーバ３４Ａにより実行される処理の流れを示すフローチャートである。
【図５】拡張ＩＣ通信部３４Ｂにより実行される処理の流れを示すフローチャートである。
【図６】ＡＤ入力サービス（固定部）４１により実行される処理の流れを示すフローチャートである。
【図７】拡張ＩＣＡＤ入力Ｉ／Ｆ３２Ｂにより実行される処理の流れを示すフローチャートである。
【図８】マイコンＡＤ入力Ｉ／Ｆ３２Ａにより実行される処理の流れを示すフローチャートである。
【図９】従来構成の制御装置７００のシステム構成例である。
【図１０】従来構成の制御装置７００が備えるＡＤ入力サービス７３６により実行される処理の流れを示すフローチャートである。
【図１１】出力系のサービスが三系統に分離した場合の制御装置１*のシステム構成例である。
【図１２】出力系のサービスが三系統に分離し、且つ拡張ＩＣ１０を備える場合の制御装置１**のシステム構成例である。
【発明を実施するための形態】
【００２０】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００２１】
以下、図面を参照し、本発明の一実施例に係る制御装置について説明する。
【００２２】
まず、本発明の制御装置における構成の概略について説明する。本発明の制御装置は、ＡＤ入力やポート入力等、マイコン（ＣＰＵ）から直接操作可能な一以上の周辺装置、拡張ＩＣ（Integrated  Circuit）とアクセスするためのハードウエアインターフェース、このインターフェースで送信及び受信の完了タイミングを通知可能な割り込み機能、ＲＯＭ（Read  Only  Memory）やＲＡＭ（Read  Only  Memory）等の記憶装置等を搭載している。
【００２３】
図１は、本発明の一実施例に係る制御装置１のシステム構成例である。本図においては、制御装置１の入力系についてのみ示したが、出力系に関しても同様に構成されてよい（入力系と出力系が一対一に対応している必要はない）。入力系と出力系が対称であると仮定すると、以下の説明において入力を出力に読み替えることができる。
【００２４】
拡張ＩＣ１０は、マイコンとアクセスするためのハードウエアインターフェースを搭載し、例えばシリアル通信によってマイコンと通信を行う。また、拡張ＩＣ１０は、ＡＤ入力やポート入力等、ハードウエアインターフェースを介してマイコンから操作可能な機能１２、１３を有している。
【００２５】
本実施例の制御装置１が実行するソフトウエア、及びソフトウエアによって扱われるデータは、主に、アプリケーションレイヤ（階層）２０、一以上のデバイスドライバを含むデバイスドライバレイヤ３０、その中間層となるＩ／Ｏサービスレイヤ４０に階層分けされている。
【００２６】
［アプリケーションレイヤ］
アプリケーションレイヤ２０は、アプリケーションソフトウエア２１を含む。アプリケーションソフトウエア２１は、Ｉ／Ｏサービスレイヤ４０を介して入力された信号に基づいて種々の機器制御を行うための処理を行う。
【００２７】
［デバイスドライバレイヤ］
デバイスドライバレイヤ３０は、マイコン内蔵の周辺装置から拡張ＩＣ１０までを含む機器に対するドライバとして機能する。本実施例では、マイコン内蔵の周辺装置としてＡＤ変換器を例示する。
【００２８】
デバイスドライバレイヤ３０は、対象デバイスの全チャネルについてＩ／Ｏ割付情報（信号名からチャネルに変換するための情報）を有している。例えば、デバイスドライバレイヤ３０は、マイコンＡＤ入力割付情報３１Ａ、拡張ＩＣ割付情報３１Ｂを有する。
【００２９】
マイコンＡＤ入力割付情報３１Ａは、マイコンのＡＤ変換器に接続される全信号についての割付情報である。図２は、マイコンＡＤ入力割付情報３１Ａの一例である。Ｉ／Ｏ割付情報３１Ａは、例えば、信号ＩＤに対応し、デバイスＩＤ、ポート番号、チャネル番号、ハード回路論理等を格納している。拡張ＩＣ割付情報３１Ｂは、拡張ＩＣ１０のＡＤ変換器に接続される全信号についての割付情報である。図３は、拡張ＩＣ割付情報３１Ｂの一例である。拡張ＩＣ割付情報３１Ｂは、例えば、信号ＩＤに対応し、デバイスＩＤ、ポート番号、チャネル番号、ハード回路論理等を格納している。
【００３０】
また、デバイスドライバレイヤ３０は、入力データバッファにＩ／Ｏサービスレイヤからアクセスするための端子操作インターフェースを有する。例えば、デバイスドライバレイヤ３０は、マイコンＡＤ入力Ｉ／Ｆ（インターフェース）３２Ａ、拡張ＩＣＡＤ入力Ｉ／Ｆ３２Ｂ、拡張ＩＣ機能ＢＩ／Ｆ３２Ｃ、拡張ＩＣ機能ＣＩ／Ｆ３２Ｄを有する。
【００３１】
マイコンＡＤ入力Ｉ／Ｆ３２Ａは、ＡＤ入力用のＩ／Ｏサービスがマイコンからデータを取得するためのインターフェースである。拡張ＩＣＡＤ入力Ｉ／Ｆ３２Ｂは、ＡＤ入力用のＩ／Ｏサービスが拡張ＩＣ１０からデータを取得するためのインターフェースである。拡張ＩＣ機能ＢＩ／Ｆ３２Ｃ、拡張ＩＣ機能ＣＩ／Ｆ３２Ｄは、拡張ＩＣ１０の機能Ｂ、及び機能Ｃ用のＩ／Ｏサービスが、拡張ＩＣ１０からデータを取得するためのインターフェースである。
【００３２】
また、デバイスドライバレイヤ３０は、上記インターフェース用の入力データバッファを有する。例えば、デバイスドライバレイヤ３０は、マイコンＡＤデータバッファ３３Ａ、拡張ＩＣＡＤデータバッファ３３Ｂ、拡張ＩＣ機能Ｂデータバッファ３３Ｃ、拡張ＩＣ機能Ｃデータバッファ３３Ｄを有する。
【００３３】
マイコンＡＤデータバッファ３３Ａは、マイコンのＡＤ変換結果（ＡＤ値）をチャネル順に格納する。拡張ＩＣＡＤデータバッファ３３Ｂは、拡張ＩＣ１０のＡＤ変換結果（ＡＤ値）をチャネル順に格納する。拡張ＩＣ機能Ｂデータバッファ３３Ｃ、及び拡張ＩＣ機能Ｃデータバッファ３３Ｄは、拡張ＩＣ１０の機能Ｂ、及び機能Ｃの入力値を格納する。
【００３４】
また、デバイスドライバレイヤ３０は、マイコンＡＤレシーバ３４Ａ、拡張ＩＣ通信部３４Ｂを有する。
【００３５】
マイコンＡＤレシーバ３４Ａは、定期的にＡＤ変換をマイコンＡＤ変換Ｏｂｊ５１に指示し、ＡＤ変換結果をマイコンＡＤデータバッファ３３Ａに格納する。
【００３６】
拡張ＩＣ通信部３４Ｂは、定期的に拡張ＩＣ１０との通信を行う。そして、受信フレームからデータ部分を抽出し、機能毎のバッファ（３３Ｃ、３３Ｄ）に格納する。また、拡張ＩＣ通信部３４Ｂは、送信バッファ３４Ｂａ、及び受信バッファ３４Ｂｂを内蔵している。
【００３７】
デバイスドライバレイヤ３０において、マイコンＡＤ入力割付情報３１Ａ、マイコンＡＤ入力Ｉ／Ｆ（インターフェース）３２Ａ、マイコンＡＤデータバッファ３３Ａ、及びマイコンＡＤレシーバ３４Ａが、マイコンのＡＤ変換器に対応するソフトウエアパッケージである。また、これら以外の構成が、拡張ＩＣ１０に対応するソフトウエアパッケージである。制御装置１が内蔵する周辺装置や接続される拡張ＩＣ１０に変更、追加、削除等が生じた場合には、上記のようなソフトウエアパッケージ単位で変更、追加、削除等が行われることになる。
【００３８】
［Ｉ／Ｏサービスレイヤ］
Ｉ／Ｏサービスレイヤ４０は、周辺装置及び拡張ＩＣ１０を含む機器に対するＩ／Ｏ機能をバーチャル化してＩ／Ｏサービスとして固定するという概念を実現するためのものであり、各種機器に共通するサービス（例えば複数の信号で使い回せるサービス）を提供するためのＡＤ入力サービス（固定部）４１、機器の違いに応じて変化するＡＤ入力サービス（可変部）４２、デバイスドライバレイヤ３０から供給される割付情報を束ねてＡＤ入力サービス（固定部）４１に公開する割付情報公開部４３を有する。
【００３９】
ＡＤ入力サービス（固定部）４１は、機器毎の変更が不要な固定ロジックである。ＡＤ入力サービス（可変部）４２は、例えばＡＤ入力サービス（固定部）４１に割り当てる信号ＩＤが列挙された信号ＩＤリストである。割付情報公開部４３は、全てのドライバパッケージの割付情報を束ねて一定形式のデータブロック（以下、Ｉ／Ｏ割付情報と称する）とした上で、ＡＤ入力サービス（固定部）４１に公開する。これによって、ＡＤ入力サービス（固定部）４１は、信号がどのデバイスに対応しているのかを意識する必要がなくなる。
【００４０】
［その他のレイヤ］
また、本実施例の制御装置１は、上記説明した各レイヤの他に、ＭＣＡＬ（Microcontroller  Abstraction  Layer）、ハードウエアとしてのマイコン、デバイス等を備える。
【００４１】
ＭＣＡＬは、マイコンＡＤ変換器ブロック５２Ａのアクセス用モジュールであるマイコンＡＤ変換器Ｏｂｊ（オブジェクト）５１Ａと、マイコンシリアル通信ブロック５２Ｂのアクセス用モジュールであるマイコンシリアル通信Ｏｂｊ５１Ｂと、を有する。
【００４２】
マイコンＡＤ変換器ブロック５２Ａには、各種信号群が入力される。ここでは、信号ＺＺＺ、及びＹＹＹが入力されているものとする。
【００４３】
マイコンシリアル通信ブロック５２Ｂは、ＡＤ変換器ブロック１１を内蔵する拡張ＩＣ１０との通信を行う。拡張ＩＣ１０のＡＤ変換器ブロック１１には、信号ＶＶＶ、ＷＷＷが入力されているものとする。
【００４４】
［信号の流れ］
以上のような構成を有する制御装置１における、アプリケーションソフトウエア２１からデバイスまでの信号の流れについて説明する。
【００４５】
アプリケーションソフトウエア２１は、信号ＩＤを指定してＩ／Ｏサービスレイヤ４０を呼び出す。
【００４６】
Ｉ／Ｏサービスレイヤ４０のＡＤ入力サービス４１では、割付情報公開部４３を参照して信号ＩＤに該当するデバイスやチャネル番号を抽出し、デバイスドライバレイヤ３０において該当する入力インターフェース（３２Ａ〜３２Ｄ）を呼び出す。
【００４７】
デバイスにデータを出力する際には、データを入力インターフェース（３２Ａ〜３２Ｄ）に出力する。デバイスドライバレイヤ３０の入力インターフェースでは、入力されたデータをデータバッファ（３３Ａ〜３３Ｄ）に書き込む。そして、周辺装置や拡張ＩＣ１０の指定チャネルにデータを出力する。
【００４８】
一方、デバイスからデータを入力する際には、マイコンＡＤレシーバ３４Ａや拡張ＩＣ通信部３４Ｂによってデータバッファ（３３Ａ〜３３Ｄ）に書き込まれたデータがＩ／Ｏサービスレイヤ４０に出力される。Ｉ／Ｏサービスレイヤ４０に出力されたデータは、アプリケーションソフトウエア２１に出力される。
【００４９】
［処理フロー］
以下、本実施例の制御装置１が有する各構成要素によって実行される処理の流れについて説明する。
【００５０】
図４は、マイコンＡＤレシーバ３４Ａにより実行される処理の流れを示すフローチャートである。本フローは繰り返し実行される。
【００５１】
まず、マイコンＡＤレシーバ３４Ａは、定期トリガが発生するまで待機する（Ｓ１１０）。
【００５２】
定期トリガが発生すると、全チャネルのＡＤ変換要求をマイコンＡＤ変換器Ｏｂｊ５１に発行する（Ｓ１２０）。
【００５３】
次に、ＡＤ変換が完了するまで待機する（Ｓ１３０）。
【００５４】
ＡＤ変換が完了すると、全チャネルのＡＤ変換結果をマイコンＡＤ変換器Ｏｂｊ５１から取得し、マイコンＡＤデータバッファ３３Ａに格納し（Ｓ１４０）、本フローの１ルーチンを終了する。これによって、マイコンＡＤデータバッファ３３Ａが最新のＡＤ変換結果で更新される。
【００５５】
図５は、拡張ＩＣ通信部３４Ｂにより実行される処理の流れを示すフローチャートである。本フローは繰り返し実行される。
【００５６】
まず、拡張ＩＣ通信部３４Ｂは、定期トリガが発生するまで待機する（Ｓ２１０）。
【００５７】
定期トリガが発生すると、全チャネルのＡＤ変換コマンドを送信バッファ３４Ｂａにライトする（書き込む）（Ｓ２２０）。
【００５８】
そして、機能Ｂのコマンドを送信バッファ３４Ｂａにライトし（Ｓ２３０）、次に機能Ｃのコマンドを送信バッファ３４Ｂｂにライトする（Ｓ２３５）。
【００５９】
これらのコマンドを送信バッファ３４Ｂｂにライトすると、送信バッファの全コマンドについての送信要求を、マイコンシリアル通信Ｏｂｊ５１Ｂに発行する（Ｓ２４０）。
【００６０】
送信要求を発行すると、通信が完了するまで待機する（Ｓ２５０）。なお、係る通信の間に、拡張ＩＣ１０からＡＤ変換結果等が受信され、受信バッファ３４Ｂｂに格納されている。
【００６１】
通信が完了すると、全チャネルのＡＤ変換結果を受信バッファ３４Ｂｂから抽出し、拡張ＩＣＡＤデータバッファ３３Ｂに格納する（Ｓ２６０）。同様に、拡張ＩＣ１０の機能Ｂからの受信データを受信バッファ３４Ｂｂから抽出して拡張ＩＣ機能Ｂデータバッファ３３Ｃに格納し（Ｓ２７０）、次に、拡張ＩＣ１０の機能Ｃからの受信データを受信バッファ３４Ｂｂから抽出して拡張ＩＣ機能Ｃデータバッファ３３Ｄに格納し（Ｓ２７５）、本フローの１ルーチンを終了する。
【００６２】
図６は、ＡＤ入力サービス（固定部）４１により実行される処理の流れを示すフローチャートである。本フローは、アプリケーションソフトウエア２１により、信号ＩＤを指定してＡＤ値の取得が指示された際に実行される。
【００６３】
まず、ＡＤ入力サービス（固定部）４１は、エラーを表す値を「ＡＤ値」に代入しておく（Ｓ３１０）。係る処理は、アプリケーションソフトウエア２１により指定された信号ＩＤが存在しない場合に備えて、予めデフォルト値としてエラー値をセットしておくものである。
【００６４】
次に、指定された信号ＩＤを信号ＩＤリストからサーチする（Ｓ３２０）。
【００６５】
そして、信号ＩＤが信号ＩＤリスト上に存在するか否かを判定する（Ｓ３３０）。信号ＩＤが信号ＩＤリスト上に存在しない場合は、「ＡＤ値」を呼び出して元のアプリケーションソフトウエア２１に返却する（Ｓ３８０）。この場合、Ｓ３１０で代入されたエラーを表す値が「ＡＤ値」としてアプリケーションソフトウエア２１に返信される。これによって、指定された信号ＩＤが存在しない場合には、不正アクセスであることをアプリケーションソフトウエア２１、ひいてはユーザに知らせることができる。
【００６６】
信号ＩＤが信号ＩＤリスト上に存在する場合は、Ｉ／Ｏ割付情報から該当する信号ＩＤの割付情報（例えばデバイスＩＤ、ポート番号、チャネル）を取得する（Ｓ３４０）。
【００６７】
次に、デバイスＩＤから呼び出すＡＤ入力Ｉ／Ｆの名前を組み立てる（Ｓ３５０）。具体的には、ＡＤ入力Ｉ／Ｆ（端子操作Ｉ／Ｆ）の名前を、例えば“[デバイスＩＤ]_
get_ad()“と取り決めておく。該当信号のデバイスＩＤが“micom”であれば、“micom_
get_ad()“というＩＦに展開され、デバイスＩＤが“extic”であれば、“extic_get_ad()“というＩＦに展開される。
【００６８】
Ｓ３４０、及びＳ３５０の処理は、プリプロセッサを用いて静的に展開してもよい。
【００６９】
次に、ポート番号とチャネル番号を入力データとして組み立てたＡＤ入力Ｉ／Ｆ（マイコンＡＤ入力Ｉ／Ｆ３２Ａ又は拡張ＩＣＡＤ入力Ｉ／Ｆ３２Ｂ）を呼び出す（Ｓ３６０）。
【００７０】
そして、呼び出したＡＤ入力Ｉ／Ｆからのリターン値を「ＡＤ値」に代入し（Ｓ３７０）、「ＡＤ値」を呼び出して元のアプリケーションソフトウエア２１に返却する（Ｓ３８０）。
【００７１】
図７は、マイコンＡＤ入力Ｉ／Ｆ３２Ａにより実行される処理の流れを示すフローチャートである。本フローは、アプリケーションソフトウエア２１からＡＤ入力サービス（固定部）４１を介してＡＤ値の取得が指示された際に実行される。
【００７２】
まず、マイコンＡＤ入力Ｉ／Ｆ３２Ａは、指示されたポート番号やチャネルに該当するＡＤ値をマイコンＡＤデータバッファ３３Ａから取り出す（Ｓ４１０）。この際に、Ｉ／Ｆ名を例えば“micom_get_ad()”とし、関数インターフェースとすることで、ＡＤ入力サービス（固定部）４１やアプリケーションソフトウエア２１に対してデータ構造を隠蔽することができる。
【００７３】
そして、取り出したＡＤ値を、Ｉ／Ｏサービスレイヤ４０を介してＡＤ入力サービス（固定部）４１にリターンする（返信する）（Ｓ４２０）。
【００７４】
図８は、拡張ＩＣＡＤ入力Ｉ／Ｆ３２Ｂにより実行される処理の流れを示すフローチャートである。本フローは、アプリケーションソフトウエア２１からＡＤ入力サービス（固定部）４１を介してＡＤ値の取得が指示された際に実行される。
【００７５】
まず、拡張ＩＣＡＤ入力Ｉ／Ｆ３２Ｂは、指示されたポート番号やチャネルに該当するＡＤ値を拡張ＩＣＡＤデータバッファ３３Ｂから取り出す（Ｓ５１０）。この際に、Ｉ／Ｆ名を例えば“Extic_get_ad()”とし、関数インターフェースとすることで、ＡＤ入力サービス（固定部）４１やアプリケーションソフトウエア２１に対してデータ構造を隠蔽することができる。
【００７６】
そして、取り出したＡＤ値を、Ｉ／Ｏサービスレイヤ４０を介してＡＤ入力サービス（固定部）４１にリターンする（返信する）（Ｓ５２０）。
【００７７】
［比較例］
ここで、本実施例の制御装置１と従来構成の制御装置との比較について説明する。図９は、従来構成の制御装置７００のシステム構成例である。この従来構成の制御装置７００は、本実施例の制御装置１が有するＩ／Ｏサービスレイヤ４０に相当する構成要素を備えていない。
【００７８】
制御装置７００には、制御装置１と同様、拡張ＩＣ７１０が接続される。
【００７９】
従来構成の制御装置７００が実行するソフトウエア、及びソフトウエアによって扱われるデータは、主に、アプリケーションレイヤ（階層）７２０、デバイスドライバレイヤ７３０に階層分けされている。
【００８０】
アプリケーションレイヤ７２０は、アプリケーションソフトウエア７２１を含む。アプリケーションソフトウエア７２１は、デバイスドライバレイヤ７３０を介して入力された信号に基づいて種々の機器制御を行うための処理を行う。
【００８１】
デバイスドライバレイヤ７３０は、マイコン内蔵の周辺装置（例えばＡＤ変換器）から拡張ＩＣ７１０までを含む機器に対するドライバとして機能する。デバイスドライバレイヤ７３０は、対象デバイスの全チャネルについてのＩ／Ｏ割付情報（信号名からチャネルに変換するための情報）７３１を有している。
【００８２】
また、デバイスドライバレイヤ７３０は、マイコンＡＤデータバッファ７３３Ａ、拡張ＩＣＡＤデータバッファ７３３Ｂ、拡張ＩＣ機能Ｂデータバッファ７３３Ｃ、拡張ＩＣ機能Ｃデータバッファ７３３Ｄ等の入力バッファを有する。
【００８３】
マイコンＡＤデータバッファ７３３Ａは、マイコンのＡＤ変換結果（ＡＤ値）をチャネル順に格納する。拡張ＩＣＡＤデータバッファ７３３Ｂは、拡張ＩＣ７１０のＡＤ変換結果（ＡＤ値）をチャネル順に格納する。拡張ＩＣ機能Ｂデータバッファ７３３Ｃ、及び拡張ＩＣ機能Ｃデータバッファ７３３Ｄは、拡張ＩＣ７１０の機能Ｂ、及び機能Ｃの入力値を格納する。
【００８４】
また、デバイスドライバレイヤ７３０は、マイコンＡＤレシーバ７３４Ａ、拡張ＩＣ通信部７３４Ｂを有する。マイコンＡＤレシーバ７３４Ａは、定期的にＡＤ変換をマイコンＡＤ変換Ｏｂｊ７５１に指示し、ＡＤ変換結果をマイコンＡＤデータバッファ７３３Ａに格納する。拡張ＩＣ通信部７３４Ｂは、定期的に拡張ＩＣ７１０との通信を行う。そして、受信フレームからデータ部分を抽出し、機能毎のバッファ（７３３Ｃ、７３３Ｄ）に格納する。また、拡張ＩＣ通信部７３４Ｂは、送信バッファ７３４Ｂａ、及び受信バッファ７３４Ｂｂを内蔵している。
【００８５】
更に、デバイスドライバレイヤ７３０は、ＡＤ入力サービス７３６を備える。ＡＤ入力サービス７３６は、［ＡＤデータ名］−［信号ＩＤ］対応テーブル７３６Ａ、［デバイスＩＤ］−［ＡＤデータバッファ名］対応テーブル７３６Ｂを有している。［ＡＤデータ名］−［信号ＩＤ］対応テーブル７３６Ａは、ＡＤデータ名と信号ＩＤの対応テーブルであり、［デバイスＩＤ］−［ＡＤデータバッファ名］対応テーブル７３６Ｂは、デバイスＩＤとＡＤデータバッファ（７３３Ａ、７３３Ｂ）のソフトウエア変数名の対応テーブルである。ＡＤ入力サービス７３６は、機種毎に変更が必要な部分を含み、複数のデバイスにまたがるＡＤ入力に関連した機能を集約している。
【００８６】
その他のレイヤについては、第１実施例と同様であるため。説明を省略する。
【００８７】
図１０は、従来構成の制御装置７００が備えるＡＤ入力サービス７３６により実行される処理の流れを示すフローチャートである。本フローは、アプリケーションソフトウエア７２１により、ＡＤデータ名を指定してＡＤ値の取得が指示された際に実行される。
【００８８】
まず、ＡＤ入力サービス７３６は、指定されたＡＤデータ名から、内部データより信号ＩＤを引き当てる（Ｓ８１０）。具体的には、例えば、ＡＤデータ名“addata_zzz”に対して信号ＩＤ“ZZZ”を引き当てる。
【００８９】
次に、Ｉ／Ｏ割付情報７３１から該当する信号ＩＤの割付情報（例えば、デバイスＩＤ、ポート番号、チャネル番号、ハード回路論理等）を取得する（Ｓ８２０）。
【００９０】
次に、内部データより、デバイスＩＤから該当するＡＤデータバッファ名を引き当てる（Ｓ８３０）。例えば、デバイスＩＤ“micom”からデータバッファ名“micom_adinp_
adbuf[]”を引き当てる。
【００９１】
次に、Ｓ６２０において取得したポート番号とチャネル番号を配列インデクスとして、該当するＡＤデータを抽出する（Ｓ８４０）。例えばポート番号なし、チャネル番号０の場合は、“micom_adinp_adbuf[０]”を参照する。
【００９２】
そして、Ｓ６４０で抽出したＡＤデータをアプリケーションソフトウエア７２１に返却する（Ｓ８５０）。
【００９３】
従来構成の制御装置７００では、デバイス毎のデータバッファ、Ｉ／Ｏ割付情報７３１、及びアプリケーションソフトウエア７２１にサービスを提供するＡＤ入力サービス７３６の三要素によってデバイスドライバレイヤ７３０を構成している。
【００９４】
ところが、このような構成では、Ｉ／Ｏ機能までをバーチャル化してＩ／Ｏサービスとして固定するという概念と、係る概念を実現するための仕組みが存在しないため、搭載するデバイスによってアプリケーションソフトウエア７２１に提供するサービスが異なるものとなってしまい、マイコンを含む複数の異なるデバイスの抜き差し（チップセットの違い）に対応するのが困難である。
【００９５】
［効果］
これに対し、本実施例の制御装置１では、Ｉ／Ｏサービスとして普遍的なＩ／Ｏ機能をＡＤ入力サービス（固定部）４１に固定しているため、ハード仕様だけでＩ／Ｏサービスを開発することができ、アプリケーションソフトウエアの開発期間を短縮することができる。
【００９６】
また、機種により変わらない部分（ＡＤ入力サービス（固定部）４１）と、機種により変わる部分（ＡＤ入力サービス（可変部）４２）を分離しているため、ソフトウエアの部品点数を低減することができ、ＲＯＭの使用量及び結合の手間を低減することができる。
【００９７】
また、同じ機能（例えばＡＤ入力）が複数のデバイスに搭載される場合、各デバイスの入力バッファにアクセスする端子操作インターフェースが標準化されているため、Ｉ／Ｏ割付情報により接続先の切り替えロジックを容易に実現することができる。なお、標準化とは、インターフェース名の中に含まれるデバイス名のみが異なり、その他の部分は同一となっていることをいう。
【００９８】
また、デバイスドライバレイヤ３０におけるソフトウエアパッケージは、デバイス毎に作成されているため、デバイスの抜き差しを容易に実現することができる。従って、様々なハードウエア構成に容易に対応することができる。
【００９９】
以上説明した本実施例の制御装置１によれば、接続されるデバイスの変更に柔軟に対応することができる。
【０１００】
［実装例］
本発明に係る制御装置は、以下のような機能を実現することができる。
【０１０１】
例えば、入力系機能として、ＡＤ入力、ＨＩ／ＬＯ入力（ＯＮ／ＯＦＦ入力）、入力ラッチ機能等を実現することができる。この場合、デバイス毎にデータバッファを定期的に更新することができる。アプリケーションソフトウエアに更新タイミングを通知するため、デバイス毎の更新タイミングをアプリケーションソフトウエアに通知してもよいし、複数デバイスのうち最も遅い更新タイミングをアプリケーションソフトウエアに通知してもよい。
【０１０２】
出力系機能としても同様に、ＡＤ出力、ＨＩ／ＬＯ出力（ＯＮ／ＯＦＦ出力）機能等を実現することができる。
【０１０３】
また、出力系機能として、パルス出力系機能を実現することができる。この場合、デューティ、周期パルス、ワンショットパルス、タイムドエッジ等の出力を行うように出力サービスが機能する。Ｉ／Ｏサービス固定部（実施例における「ＡＤ入力サービス（固定部）４１」を出力サービスに置換し、汎用化したもの）における各関数は、異なる信号であれば再入可（リエントラント）とする。信号毎のデータはＩ／Ｏサービス可変部（実施例における「ＡＤ入力サービス（可変部）４２」を出力サービスに置換し、汎用化したもの）に配置し、Ｉ／Ｏサービス固定部からアクセス可能とする。同一信号の再入可（リエントラント）は複雑となるためＩ／Ｏサービスレイヤ４０では保証せず、アプリケーションソフトウエア２１において実行しないように設定する。
【０１０４】
Ｉ／Ｏサービス可変部は、信号ＩＤリスト、サポートする信号の数に相当する常数や変数の記憶領域（信号数分の配列とする）を備える。そして、信号が変化したタイミングを、必要に応じて、マイコンの割り込み機能を用いてアプリケーションソフトウエア２１に通知する。
【０１０５】
また、入力系機能としても同様に、パルス入力系機能を実現することができる。この場合、デューティ、周期パルス、ワンショットパルス、タイムドエッジ等の入力を行うように入力サービスが機能する。この場合、信号が変化したタイミングを、必要に応じて、マイコンの割り込み機能を用いてアプリケーションソフトウエア２１に通知する。そして、通知するタイミングで、パルスに含まれるデータ（デューティ［％］、パルス周期［ｕｓ］、エッジ発生時刻［ｕｓ］等）を引数にして関数コールし、アプリケーションソフトウエア２１にタイミングとデータを同時に通知する。
【０１０６】
［変形等］
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１０７】
例えば、実施例で説明したＡＤ入力サービス（固定部）４１、及びＡＤ入力サービス（可変部）４２は、マイコンや拡張ＩＣ１０が実現する機能毎に設けられるものとしてもよい。また、これらに相当する出力系の機能についても同様である。
【０１０８】
図１１は、出力系のサービスが三系統に分離した場合の制御装置１*のシステム構成例である。図示するように、この場合の制御装置１*は、出力サービス４１*＿１〜４１*＿３を備え、それぞれに対応して出力サービス（可変部）４２*＿１〜４２*＿３に相当する信号ＩＤリストが設けられ、割付情報公開部４３から割付情報が提供されている。
【０１０９】
このような構成によって、マイコン機能Ａ〜Ｃに対応した出力処理を実現することができる。
【０１１０】
また、図１２は、出力系のサービスが三系統に分離し、且つ拡張ＩＣ１０を備える場合の制御装置１**のシステム構成例である。
【符号の説明】
【０１１１】
１          制御装置
１０        拡張ＩＣ
１１        ＡＤ変換器ブロック
１２、１３  機能
２０        アプリケーションレイヤ
２１        アプリケーションソフトウエア
３０        デバイスドライバレイヤ
３１Ａ      マイコンＡＤ入力割付情報
３１Ｂ      拡張ＩＣ割付情報
３２Ａ      マイコンＡＤ入力Ｉ／Ｆ
３２Ｂ      拡張ＩＣＡＤ入力Ｉ／Ｆ
３２Ｃ      拡張ＩＣ機能ＢＩ／Ｆ
３２Ｄ      拡張ＩＣ機能ＣＩ／Ｆ
３３Ａ      マイコンＡＤデータバッファ
３３Ｂ      拡張ＩＣＡＤデータバッファ
３３Ｃ      拡張ＩＣ機能Ｂデータバッファ
３３Ｄ      拡張ＩＣ機能Ｃデータバッファ
３４Ａ      マイコンＡＤレシーバ
３４Ｂ      拡張ＩＣ通信部
３４Ｂａ    送信バッファ
３４Ｂｂ    受信バッファ
４０        Ｉ／Ｏサービスレイヤ
４１        ＡＤ入力サービス（固定部）
４２        ＡＤ入力サービス（可変部）
４３        割付情報公開部
５１Ａ      マイコンＡＤ変換器Ｏｂｊ
５１Ｂ      マイコンシリアル通信Ｏｂｊ
５２Ａ      マイコンＡＤ変換器ブロック
５２Ｂ      マイコンシリアル通信ブロック
【図１】
2012108707.tif 000003
【図２】
2012108707.tif 000004
【図３】
2012108707.tif 000005
【図４】
2012108707.tif 000006
【図５】
2012108707.tif 000007
【図６】
2012108707.tif 000008
【図７】
2012108707.tif 000009
【図８】
2012108707.tif 000010
【図９】
2012108707.tif 000011
【図１０】
2012108707.tif 000012
【図１１】
2012108707.tif 000013
【図１２】
2012108707.tif 000014