(57)【要約】【課題】各々のＩＯ拡張デバイスを適切に制御し、また、ＩＯ拡張デバイスで拡張できるＩＯを最大限に利用可能にする。【解決手段】ＣＰＵの特定バスの同一チャンネル上に、複数のＩＯ拡張デバイスが接続された入出力制御回路であって、前記複数のＩＯ拡張デバイスは、入力制御用のＩＯ拡張デバイスと出力制御用のＩＯ拡張デバイスとで構成され、各々の前記ＩＯ拡張デバイスは、同一回路で構成されたレジスタ制御部を有し、前記出力制御用のＩＯ拡張デバイスには、リード用の制御信号が入力されておらず、前記ＣＰＵからのライトアクセスでは、前記入力制御用のＩＯ拡張デバイス及び前記出力制御用のＩＯ拡張デバイスに、前記ＣＰＵから出力されるデータが書き込まれ、前記ＣＰＵからのリードアクセスでは、前記入力制御用のＩＯ拡張デバイスのみが、前記レジスタ制御部が管理するレジスタの値を応答出力する。【選択図】図４
2015018408.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵの特定バスの同一チャンネル上に、複数のＩＯ拡張デバイスが接続された入出力制御回路であって、
前記複数のＩＯ拡張デバイスは、入力制御用のＩＯ拡張デバイスと出力制御用のＩＯ拡張デバイスとで構成され、
各々の前記ＩＯ拡張デバイスは、同一回路で構成されたレジスタ制御部を有し、
前記出力制御用のＩＯ拡張デバイスには、リード用の制御信号が入力されておらず、
前記ＣＰＵからのライトアクセスでは、前記入力制御用のＩＯ拡張デバイス及び前記出力制御用のＩＯ拡張デバイスに、前記ＣＰＵから出力されるデータが書き込まれ、
前記ＣＰＵからのリードアクセスでは、前記入力制御用のＩＯ拡張デバイスのみが、前記レジスタ制御部が管理するレジスタの値を応答出力する、
ことを特徴とする入出力制御回路。
【請求項２】
前記ライトアクセスでは、前記入力制御用のＩＯ拡張デバイスの前記レジスタ制御部が管理するレジスタ、及び、前記出力制御用のＩＯ拡張デバイスの前記レジスタ制御部が管理するレジスタに、前記データが書き込まれ、
前記リードアクセスでは、前記ＣＰＵは、前記入力制御用のＩＯ拡張デバイスの前記レジスタの値を読み込むことにより、前記出力制御用のＩＯ拡張デバイスの前記レジスタに書き込まれた前記データを確認できる、
ことを特徴とする請求項１に記載の入出力制御回路。
【請求項３】
各々の前記ＩＯ拡張デバイスは、外部から入力される入力信号の変化を検出し、前記入力信号が変化したら、割り込み信号を前記ＣＰＵに通知する割り込みコントローラ機能を有する、
ことを特徴とする請求項１又は２に記載の入出力制御回路。
【請求項４】
前記入力制御用のＩＯ拡張デバイスに複数の入力信号が入力されており、
前記入力制御用のＩＯ拡張デバイスの前記割り込みコントローラ機能は、各々の入力信号の状態に応じた値を特定レジスタの各ビットに書き込み、いずれかのビットの値が変化したら、集合割り込み信号を前記ＣＰＵに通知し、
前記ＣＰＵは、前記集合割り込み信号を受信した後、前記特定レジスタの各ビットの値を読み込むことにより、状態が変化した入力信号を特定できる、
ことを特徴とする請求項３に記載の入出力制御回路。
【請求項５】
前記ＣＰＵは、前記特定レジスタとは異なる他のレジスタの所定のビットに所定の値を書き込むことにより、前記他のレジスタの前記所定のビットに対応する前記特定レジスタのビットの値を初期化できる、
ことを特徴とする請求項４に記載の入出力制御回路。
【請求項６】
ＣＰＵの特定バスの同一チャンネル上に、複数のＩＯ拡張デバイスが接続された入出力制御回路であって、
前記複数のＩＯ拡張デバイスは、入力制御用のＩＯ拡張デバイスと出力制御用のＩＯ拡張デバイスとで構成され、
各々の前記ＩＯ拡張デバイスは、同一回路で構成されたレジスタ制御部を有し、
前記入力制御用のＩＯ拡張デバイスには、ライト用の制御信号が入力されておらず、前記出力制御用のＩＯ拡張デバイスに入力されるリード用の制御信号は、当該出力制御用のＩＯ拡張デバイス内で非アクティブな論理レベルに固定されており、
前記ＣＰＵからのライトアクセスでは、前記出力制御用のＩＯ拡張デバイスのみに、前記ＣＰＵから出力されるデータが書き込まれ、
前記ＣＰＵからのリードアクセスでは、アクティブなリード用の制御信号が入力される前記入力制御用のＩＯ拡張デバイスのみが、前記レジスタ制御部が管理するレジスタの値を応答出力する、
ことを特徴とする入出力制御回路。
【請求項７】
各々の前記ＩＯ拡張デバイスは、外部から入力される入力信号の変化を検出し、前記入力信号が変化したら、割り込み信号を前記ＣＰＵに通知する割り込みコントローラ機能を有する、
ことを特徴とする請求項６に記載の入出力制御回路。
【請求項８】
ＣＰＵの特定バスの同一チャンネル上に、入力制御用のＩＯ拡張デバイスと出力制御用のＩＯ拡張デバイスとで構成される、複数のＩＯ拡張デバイスが接続された入出力制御回路における前記複数のＩＯ拡張デバイスの同期制御方法であって、
各々のＩＯ拡張デバイスに、同一回路で構成されたレジスタ制御部を設け、
前記出力制御用のＩＯ拡張デバイスには、リード用の制御信号を入力せず、
前記ＣＰＵからのライトアクセスでは、前記入力制御用のＩＯ拡張デバイス及び前記出力制御用のＩＯ拡張デバイスに、前記ＣＰＵから出力されるデータを書き込み、
前記ＣＰＵからのリードアクセスでは、前記入力制御用のＩＯ拡張デバイスのみが、前記レジスタ制御部が管理するレジスタの値を応答出力する、
ことを特徴とする同期制御方法。
【請求項９】
前記ライトアクセスでは、前記入力制御用のＩＯ拡張デバイスの前記レジスタ制御部が管理するレジスタ、及び、前記出力制御用のＩＯ拡張デバイスの前記レジスタ制御部が管理するレジスタに、前記データを書き込み、
前記リードアクセスでは、前記ＣＰＵは、前記入力制御用のＩＯ拡張デバイスの前記レジスタの値を読み込むことにより、前記出力制御用のＩＯ拡張デバイスの前記レジスタに書き込まれた前記データを確認する、
ことを特徴とする請求項８に記載の同期制御方法。
【請求項１０】
各々の前記ＩＯ拡張デバイスに割り込みコントローラ機能を設け、
前記入力制御用のＩＯ拡張デバイスの前記割り込みコントローラ機能は、外部から入力される入力信号の変化を検出し、前記入力信号が変化したら、割り込み信号を前記ＣＰＵに通知する、
ことを特徴とする請求項８又は９に記載の同期制御方法。
【請求項１１】
前記入力制御用のＩＯ拡張デバイスに複数の入力信号が入力される場合、
前記入力制御用のＩＯ拡張デバイスの前記割り込みコントローラ機能は、特定レジスタの各ビットに、各々の入力信号の状態に応じた値を書き込み、いずれかのビットの値が変化したら、集合割り込み信号を前記ＣＰＵに通知し、
前記ＣＰＵは、前記集合割り込み信号を受信した後、前記特定レジスタの値を読み込むことにより、状態が変化した入力信号を特定する、
ことを特徴とする請求項１０に記載の同期制御方法。
【請求項１２】
前記ＣＰＵは、前記特定レジスタとは異なる他のレジスタの所定のビットに所定の値を書き込むことにより、前記他のレジスタの前記所定のビットに対応する前記特定レジスタのビットの値を初期化する、
ことを特徴とする請求項１１に記載の同期制御方法。
【請求項１３】
ＣＰＵの特定バスの同一チャンネル上に、入力制御用のＩＯ拡張デバイスと出力制御用のＩＯ拡張デバイスとで構成される、複数のＩＯ拡張デバイスが接続された入出力制御回路における前記複数のＩＯ拡張デバイスの同期制御方法であって、
各々の前記ＩＯ拡張デバイスに、同一回路で構成されたレジスタ制御部を設け、
前記入力制御用のＩＯ拡張デバイスには、ライト用の制御信号を入力せず、かつ、前記出力制御用のＩＯ拡張デバイスに入力するリード用の制御信号を、当該出力制御用のＩＯ拡張デバイス内で非アクティブな論理レベルに固定し、
前記ＣＰＵからのライトアクセスでは、前記出力制御用のＩＯ拡張デバイスのみに、前記ＣＰＵから出力されるデータを書き込み、
前記ＣＰＵからのリードアクセスでは、アクティブなリード用の制御信号が入力される前記入力制御用のＩＯ拡張デバイスのみが、前記レジスタ制御部が管理するレジスタの値を応答出力する、
ことを特徴とする同期制御方法。
【請求項１４】
各々の前記ＩＯ拡張デバイスに割り込みコントローラ機能を設け、
前記入力制御用のＩＯ拡張デバイスの前記割り込みコントローラ機能は、外部から入力される入力信号の変化を検出し、前記入力信号が変化したら、割り込み信号を前記ＣＰＵに通知する、
ことを特徴とする請求項１３に記載の同期制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入出力制御回路及び入出力制御回路における同期制御方法に関し、特に、バスの同一チャンネル上に複数のＩＯ拡張デバイスが接続された入出力制御回路及び当該入出力制御回路における複数のＩＯ拡張デバイスの同期制御方法に関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）で制御できるＩＯ信号（ＧＰＩＯ：General Purpose Input/Output）数は限られており、必要な信号の全てをＣＰＵのＧＰＩＯで制御することが困難な場合がある。そのような場合に用いられるものとしてＩＯ拡張デバイスがある。ＩＯ拡張デバイスは、ＣＰＵのある特定のインタフェースに接続され、インタフェースを経由したＩＯ拡張デバイスへのアクセス（レジスタ制御）によって、その入出力が制御される。
【０００３】
このようなＩＯ拡張デバイスはインタフェースの１つのチャンネルに対して１個接続されるのが一般的である。しかしながら、仮にＩＯ拡張デバイスで制御すべき信号が増えた場合、ＩＯ拡張デバイスを回路容量又はＩＯ数の多いデバイスに変更しなければならず、大きなコストアップを招く。そこで、ＩＯ拡張デバイスを変更せずに、制御できる信号を増やすための様々な方法が提案されている。
【０００４】
例えば、下記特許文献１には、入出力方向の制御可能な入出力共有手段と、前記入出力共有手段を入力点とするか出力点とするかを設定する設定手段と、前記入出力共有手段が入力点として機能する場合に入力データを内部処理手段に転送し、前記入出力共有手段が出力点として機能する場合に内部処理手段からの出力データを前記入出力共有手段に転送する転送手段と、を有するデータ入出力制御方式が開示されている。この公報では、各ＩＯポートをＳＷで択一的に割り付け可能とし、任意の同期入出力装置の任意の信号を入力または出力として自由に組み合わせできるようにしている。
【０００５】
また、下記特許文献２には、入出力と割込み制御を行う制御部を備えたＩ／Ｏデバイスに関し、前記Ｉ／Ｏデバイスは第１のバスを備え、前記制御部は、前記第１のバスのコマンド線を用いてコマンドを受け付けて応答を返すコマンド制御部と、前記第１のバスのデータ線を用いてデータの送受信を行うデータ制御部と、前記第１のバスのデータ線を用いて割り込みをホストコントローラへ伝送する割り込み制御部を備え、前記Ｉ／Ｏデバイスは１以上の第２のバスと、前記Ｉ／Ｏデバイスと前記ホストコントローラとの通信のためのデバイス番号を設定するデバイス番号設定手段と、前記Ｉ／Ｏデバイスの動作モードを設定するモード設定手段を備える構成が開示されている。この公報では、動作モードがマスタモードに設定されたＩ／Ｏデバイスをハブとして追加し、このハブがコマンド応答や割り込みの調定を行うことにより、複数Ｉ／Ｏデバイスの接続を可能としている。
【０００６】
また、下記特許文献３には、シリアルインタフェースを備えるワンチップマイコンと、前記ワンチップマイコンから出力されるシリアルデータを複数ビットのパラレルデータに変換する汎用シフトレジスタＩＣとを備え、前記汎用シフトレジスタＩＣは、複数ビットのパラレルデータを出力する複数の汎用ロジックＩＣがカスケード接続されており、前記カスケード接続された一番目の汎用ロジックＩＣに前記シリアルデータが入力され、前記各汎用ロジックＩＣは、前記シリアルデータをラッチして複数ビットのパラレルデータとして出力すると共に、ラッチのタイミング前に入力されたシリアルデータを後段の汎用ロジックＩＣに出力するＩ／Ｏ拡張回路が開示されている。この公報では、複数のシフトレジスタをカスケード接続することにより、出力信号を拡張している。
【０００７】
また、下記特許文献４には、コンピュータから出力された印刷データを複数の印刷装置に分配出力するデータ分配器であって、前記コンピュータに設けられた周辺機器接続用のポートと接続するためのコンピュータ側ポートと、前記印刷装置と接続するための複数の印刷装置側ポートと、前記それぞれの印刷装置側ポートに対応付けられたポートバッファと、前記コンピュータ側ポートに入力された印刷データを複数のポートバッファに複製出力する分配部とを備える構成が開示されている。この公報では、ＰＣからのデータ出力をリピータハブのようなデバイスで受信し、各プリンタにリピート出力している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平０７−３１９５９２号公報
【特許文献２】特開２００９−１２３１４１号公報
【特許文献３】特開２０１１−１９７９８１号公報
【特許文献４】特開２００３−０７６５２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、１つのチャンネルに複数のＩＯ拡張デバイスを接続した場合、個々のＩＯ拡張デバイスを適切に制御することができないという問題が生じる。例えば、ＣＰＵからのリードアクセスでは、複数のＩＯ拡張デバイスの各々がＣＰＵに対してデータを出力するため、ＣＰＵは、どのデータが所定のＩＯ拡張デバイスに接続される特定の外部機器から取得したデータであるのかを判断することができない。また、ＣＰＵからのライトアクセスでは、複数のＩＯ拡張デバイスの各々にデータが書き込まれるため、所定のＩＯ拡張デバイスに接続される特定の外部機器のみを制御することができない。また、特許文献の技術を利用し、ＳＷやハブを用いて複数のＩＯ拡張デバイスを切り換えることも可能であるが、この方法では切り換え制御が必要になり、回路構成が複雑になる。
【００１０】
また、複数のＩＯ拡張デバイスに同じ信号が入力されるようにすると、追加したＩＯ拡張デバイスで拡張できるＩＯを最大限に利用することができないという問題も生じる。すなわち、入力機能を割り当てたＩＯ拡張デバイスと出力機能を割り当てたＩＯ拡張デバイスとに同じ信号が入力されるようにした場合、出力機能を割り当てたＩＯ拡張デバイスに対するリード信号や、入力機能を割り当てたＩＯ拡張デバイスに対するライト信号など、必須ではない信号を入力するためにＩＯが使用され、その分、拡張できるＩＯ数が減ってしまう。
【００１１】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、バスの同一チャンネル上に複数のＩＯ拡張デバイスが接続される構成において、各々のＩＯ拡張デバイスを適切に制御することができ、また、ＩＯ拡張デバイスで拡張できるＩＯを最大限に利用することができる入出力制御回路及び入出力制御回路における同期制御方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の一側面は、ＣＰＵの特定バスの同一チャンネル上に、複数のＩＯ拡張デバイスが接続された入出力制御回路であって、前記複数のＩＯ拡張デバイスは、入力制御用のＩＯ拡張デバイスと出力制御用のＩＯ拡張デバイスとで構成され、各々の前記ＩＯ拡張デバイスは、同一回路で構成されたレジスタ制御部を有し、前記出力制御用のＩＯ拡張デバイスには、リード用の制御信号が入力されておらず、前記ＣＰＵからのライトアクセスでは、前記入力制御用のＩＯ拡張デバイス及び前記出力制御用のＩＯ拡張デバイスに、前記ＣＰＵから出力されるデータが書き込まれ、前記ＣＰＵからのリードアクセスでは、前記入力制御用のＩＯ拡張デバイスのみが、前記レジスタ制御部が管理するレジスタの値を応答出力することを特徴とする。
【００１３】
本発明の一側面は、ＣＰＵの特定バスの同一チャンネル上に、入力制御用のＩＯ拡張デバイスと出力制御用のＩＯ拡張デバイスとで構成される、複数のＩＯ拡張デバイスが接続された入出力制御回路における前記複数のＩＯ拡張デバイスの同期制御方法であって、各々のＩＯ拡張デバイスに、同一回路で構成されたレジスタ制御部を設け、前記出力制御用のＩＯ拡張デバイスには、リード用の制御信号を入力せず、前記ＣＰＵからのライトアクセスでは、前記入力制御用のＩＯ拡張デバイス及び前記出力制御用のＩＯ拡張デバイスに、前記ＣＰＵから出力されるデータを書き込み、前記ＣＰＵからのリードアクセスでは、前記入力制御用のＩＯ拡張デバイスのみが、前記レジスタ制御部が管理するレジスタの値を応答出力することを特徴とする。
【発明の効果】
【００１４】
本発明の入出力制御回路及び入出力制御回路における同期制御方法によれば、バスの同一チャンネル上に複数のＩＯ拡張デバイスが接続される構成において、各々のＩＯ拡張デバイスを適切に制御することができ、また、ＩＯ拡張デバイスで拡張できるＩＯを最大限に利用することができる。
【００１５】
その理由は、ＣＰＵの特定バスの同一チャンネル上に、入力制御用のＩＯ拡張デバイスと出力制御用のＩＯ拡張デバイスとで構成される複数のＩＯ拡張デバイスが接続される場合に、出力制御用のＩＯ拡張デバイスにはリード用の制御信号を入力せず、ＣＰＵからのライトアクセスでは、複数のＩＯ拡張デバイスにＣＰＵから出力されるデータを書き込み、ＣＰＵからリードアクセスでは、入力制御用のＩＯ拡張デバイスのみがＣＰＵにレジスタ値を応答出力するようにし、出力制御用のＩＯ拡張デバイスに書き込んだデータを確認する場合には、入力制御用のＩＯ拡張デバイスが出力制御用のＩＯ拡張デバイスに代わってレジスタ値を応答出力するからである。
【００１６】
また、入力制御用のＩＯ拡張デバイスにはライト用の制御信号を入力せず、出力制御用のＩＯ拡張デバイスに入力されるリード用の制御信号は、当該ＩＯ拡張デバイス内で非アクティブな論理レベルに固定し、ＣＰＵからのライトアクセスでは、出力制御用のＩＯ拡張デバイスのみにＣＰＵから出力されるデータを書き込み、ＣＰＵからリードアクセスでは、アクティブなリード用の制御信号が入力される入力制御用のＩＯ拡張デバイスのみがレジスタ値を応答出力するからである。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態に係る入出力制御回路におけるＩＯ拡張デバイスへのライトアクセス及びリードアクセスを説明する図である。
【図２】本発明の一実施形態に係る他の入出力制御回路におけるＩＯ拡張デバイスへのライトアクセス及びリードアクセスを説明する図である。
【図３】本発明の一実施例に係る入出力制御回路の構成を示す図である。
【図４】本発明の一実施例に係るＩＯ拡張デバイス間の同期制御方法を説明する図である。
【図５】本発明の一実施例に係るＩＯ拡張デバイスで拡張できるＩＯ数（ポーリング方式の場合）を説明する図である。
【図６】本発明の一実施例に係るＩＯ拡張デバイスで拡張できるＩＯ数（集合割り込み方式の場合）を示す図である。
【図７】本発明の一実施例に係る入出力制御回路で使用されるレジスタを示す図である。
【図８】本発明の一実施例に係る入出力制御回路における入力拡張ＩＯ制御方法を示すフローチャート図である。
【図９】本発明の一実施例に係る入出力制御回路における出力拡張ＩＯ制御方法（書き込み時）を示すフローチャート図である。
【図１０】本発明の一実施例に係る入出力制御回路における出力拡張ＩＯ制御方法（確認時）を示すフローチャート図である。
【図１１】従来の回路におけるＩＯ拡張デバイスへのライトアクセス及びリードアクセスを説明する図である。
【図１２】従来の他の回路におけるＩＯ拡張デバイスへのライトアクセス及びリードアクセスを説明する図である。
【発明を実施するための形態】
【００１８】
背景技術で示したように、入出力制御回路ではＩＯ拡張デバイスが利用されているが、ＩＯ拡張デバイスで制御すべき信号が増えた場合に、ＩＯ拡張デバイスを回路容量やＩＯ数の多いデバイスに変更するとコストアップを招いてしまう。また、ＩＯ拡張デバイスを変更せずに、複数のＩＯ拡張デバイスを使用した場合、各々のＩＯ拡張デバイスを適切に制御することができず、また、拡張できるＩＯを最大限に利用することができないという問題があった。この問題について、図面を参照して説明する。
【００１９】
例えば、図１１に示すように、ＣＰＵが３チャンネルのパラレルバスを有しており、チャンネル１にデバイスＡが接続され、チャンネル２にデバイスＢが接続され、チャンネル３にデバイスＣ（ＩＯ拡張デバイス）が接続されているとする。この構成において、図１１（ａ）に示すＣＰＵからのライトアクセスでは、ＣＰＵからのセレクト信号Ｃとライト信号がデバイスＣに入力され、デバイスＣにＣＰＵから出力されるデータが書き込まれる。また、図１１（ｂ）に示すＣＰＵからのリードアクセスでは、ＣＰＵからのセレクト信号Ｃとリード信号がデバイスＣに入力され、デバイスＣはＣＰＵにデータを出力する。従って、この構成では、ＣＰＵはＩＯ拡張デバイスを適切に制御することができる。
【００２０】
この図１１の構成において、デバイスＣ（ＩＯ拡張デバイス）で制御すべき信号が増えた場合、図１２に示すように、チャンネル３にデバイスＣ１とデバイスＣ２の２つのＩＯ拡張デバイスを接続することは可能である。
【００２１】
しかしながら、図１２（ａ）に示すＣＰＵからのライトアクセスでは、デバイスＣ１とデバイスＣ２とが同一チャンネルに接続されており、ＣＰＵからのセレクト信号Ｃとライト信号がデバイスＣ１とデバイスＣ２に入力されるため、デバイスＣ１とデバイスＣ２には共にＣＰＵから出力されるデータが書き込まれてしまう。また、図１２（ｂ）に示すＣＰＵからのリードアクセスでは、デバイスＣ１とデバイスＣ２とが同一チャンネルに接続されており、ＣＰＵからのセレクト信号Ｃとリード信号がデバイスＣ１とデバイスＣ２に入力されるため、デバイスＣ１とデバイスＣ２は共にＣＰＵにデータを出力してしまう。そのため、ＣＰＵは所望のＩＯ拡張デバイスのみを適切に制御することができない。
【００２２】
また、図１２に示すように、ＩＯ拡張デバイスが入力制御用であるか出力制御用であるかに関わらず、デバイスＣ１とデバイスＣ２に同じ信号を入力すると、デバイスＣ１やデバイスＣ２が拡張できるＩＯを最大限に利用することができない。すなわち、出力制御用のＩＯ拡張デバイスは必ずしもＣＰＵにデータを出力する必要はないが、出力制御用のＩＯ拡張デバイスにもリード信号を入力すると、その分、拡張できるＩＯ数が減ってしまう。同様に、入力制御用のＩＯ拡張デバイスには必ずしもＣＰＵから出力されるデータを書き込む必要はないが、入力制御用のＩＯ拡張デバイスにもライト信号を入力すると、その分、拡張できるＩＯ数が減ってしまう。
【００２３】
そこで、本発明の一実施の形態では、バスの同一チャンネル上に複数のＩＯ拡張デバイスが接続され、各々のＩＯ拡張デバイスに入力／出力機能が割り当てられる入出力制御回路において、出力機能が割り当てられた出力制御用のＩＯ拡張デバイスにはリード信号が入力しないようにするか、または、入力機能が割り当てられた入力制御用のＩＯ拡張デバイスにはライト信号が入力しないようにする。
【００２４】
すなわち、前者の場合は、ホスト（ＣＰＵ）からのライトアクセスは、入力／出力機能が割り当てられた双方のＩＯ拡張デバイスにデータが書き込まれるようにし、かつ、ＣＰＵからのリードアクセスでは、入力機能が割り当てられた入力制御用のＩＯ拡張デバイスのみがデータを応答出力するようにする。具体的には、図１に示すように、ＣＰＵが３チャンネルのパラレルバスを有しており、チャンネル１にデバイスＡが接続され、チャンネル２にデバイスＢが接続され、チャンネル３に入力制御用のデバイスＣ１と出力制御用のデバイスＣ２の２つのＩＯ拡張デバイスが接続されている構成において、入力制御用のデバイスＣ１にはセレクト信号Ｃとライト信号とリード信号が入力されるようにし、出力制御用のデバイスＣ２にはセレクト信号Ｃとライト信号のみが入力されるようにする。
【００２５】
この場合、図１（ａ）に示すＣＰＵからのライトアクセスでは、デバイスＣ１とデバイスＣ２とが同一チャンネルに接続されており、ＣＰＵからのセレクト信号Ｃとライト信号が双方に入力されるため、デバイスＣ１とデバイスＣ２には共にＣＰＵから出力されるデータが書き込まれる。また、図１（ｂ）に示すＣＰＵからのリードアクセスでは、ＣＰＵからのセレクト信号ＣはデバイスＣ１とデバイスＣ２に入力されるが、リード信号はデバイスＣ１のみに入力されるため、デバイスＣ１のみがＣＰＵにデータを出力する。この構成では、ＣＰＵからのライトアクセスでは、デバイスＣ１とデバイスＣ２の双方にデータが書き込まれるが、デバイスＣ１は入力制御用であり、書き込まれたデータを外部機器に出力しないため問題は生じない。また、デバイスＣ１とデバイスＣ２の双方に同じデータが書き込まれるため、デバイスＣ１に対するリードアクセスを利用する（すなわち、デバイスＣ１にデバイスＣ２の代理応答をさせる）ことにより、デバイスＣ２に書き込まれたデータを確認することができる。従って、ＣＰＵは所望のＩＯ拡張デバイスのみを適切に制御することができる。
【００２６】
また、後者の場合は、ＣＰＵからのリードアクセスは、入力／出力機能が割り当てられた双方のＩＯ拡張デバイスがデータを応答出力するようにし、かつ、ＣＰＵからのライトアクセスでは、出力機能が割り当てられた特定のＩＯ拡張デバイスのみにデータが書き込まれるようにする。具体的には、図２に示すように、デバイスＣ１にはセレクト信号とリード信号のみが入力されるようにし、デバイスＣ２にはセレクト信号とライト信号とリード信号が入力されるようにする。
【００２７】
この場合、図２（ａ）に示すＣＰＵからのライトアクセスでは、デバイスＣ１とデバイスＣ２が同一チャンネルに接続されており、ＣＰＵからのセレクト信号ＣはデバイスＣ１とデバイスＣ２に入力されるが、ライト信号はデバイスＣ２のみに入力されるため、デバイスＣ２のみにデータが書き込まれる。また、図２（ｂ）に示すＣＰＵからのリードアクセスでは、ＣＰＵからのセレクト信号Ｃとリード信号はデバイスＣ１とデバイスＣ２に入力されるが、後述するようにデバイスＣ２に入力されるリード信号をデバイスＣ２内で非アクティブな論理レベルに固定することによって、アクティブなリード信号が入力されるデバイスＣ１のみがＣＰＵにデータを出力する。従って、ＣＰＵは所望のＩＯ拡張デバイスのみを適切に制御することができる。
【００２８】
このように、バスの同一チャンネル上に入力機能が割り当てられたＩＯ拡張デバイスと出力機能が割り当てられたＩＯ拡張デバイスとが接続されている場合であっても、ＣＰＵからは１つのＩＯ拡張デバイスが接続されているように見えるため、所望のＩＯ拡張デバイスのみを適切に制御することができる。また、出力機能が割り当てられたＩＯ拡張デバイスにはリード信号を入力しない、または、入力機能が割り当てられたＩＯ拡張デバイスにはライト信号を入力しないため、追加したＩＯ拡張デバイスのＩＯを最大限に利用することができる。更に、複数のＩＯ拡張デバイス内の回路（レジスタを制御するレジスタ制御部）は共通化することができるため、設計効率を向上させることができ、コストアップを抑制することができる。
【実施例】
【００２９】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係る入出力制御回路及び入出力制御回路における同期制御方法について、図３乃至図１０を参照して説明する。図３は、本実施例の入出力制御回路の構成を示す図であり、図４は、本実施例のＩＯ拡張デバイス間の同期制御方法を説明する図である。また、図５及び図６は、ＩＯ拡張デバイスで拡張できるＩＯ数を説明する図であり、図７は、ＩＯ拡張デバイスのレジスタを示す図である。また、図８は、本実施例の入出力制御回路における入力拡張ＩＯ制御を示すフローチャート図であり、図９及び図１０は、出力拡張ＩＯ制御を示すフローチャート図である。
【００３０】
本実施例の入出力制御回路は、ＣＰＵ（正確には外部インタフェース機能を持ったＣＰＵであり、ＳｏＣ（System-on-a-chip）と呼ばれる。）と、入力制御用及び出力制御用の２つのＩＯ拡張デバイスとを含む。ここでは、実施形態と同様の構成とし、図３に示すように、ＣＰＵ１０と、ＣＰＵ１０によって制御される４つのデバイス（デバイスＡ、デバイスＢ、デバイスＣ１、デバイスＣ２）とで構成されるものとする。
【００３１】
ＣＰＵ１０は、本実施例では、３チャンネルのパラレルバスを有しており、チャンネル１にデバイスＡ、チャンネル２にデバイスＢ、チャンネル３にデバイスＣ１、Ｃ２が接続されている。デバイスＡ、Ｂは、例えばNor-Flashメモリであり、チャンネル１に接続されるNor-Flashメモリ２０にはブート用データが格納され、チャンネル２に接続されるNor-Flashメモリ３０にはブート以外のＦＷ（firmware）が格納されている。デバイスＣ１、Ｃ２は、ロジックデバイス（以下、ＣＰＬＤ：Complex Programmable Logic Device）であり、ＣＰＬＤ１（デバイスＣ１）は、入力制御用のＩＯ拡張デバイス４０として予め割り当てられ、ＣＰＬＤ２（デバイスＣ２）は、出力制御用のＩＯ拡張デバイス５０として予め割り当てられている。
【００３２】
また、ＣＰＵ１０は、各チャンネルに接続されたデバイスを選択するためのセレクト信号（セレクト信号Ａ〜Ｃ）と、デバイスにデータを書き込むためのライト信号と、デバイスからデータを読み込むためのリード信号と、を出力する。デバイスＡには、セレクト信号Ａとライト信号とリード信号とが入力され、デバイスＢには、セレクト信号Ｂとライト信号とリード信号とが入力される。また、本実施例では、実施形態の図１で示した構成を前提とし、ＣＰＬＤ１（デバイスＣ１）には、セレクト信号Ｃとライト信号とリード信号とが入力され、ＣＰＬＤ２（デバイスＣ２）には、セレクト信号Ｃとライト信号とが入力される。
【００３３】
図４は、ＣＰＬＤ１（デバイスＣ１）とＣＰＬＤ２（デバイスＣ２）の構成を示している。ＣＰＬＤ１は、レジスタ制御部４１を有し、ＣＰＬＤ２は、レジスタ制御部５１を有している。このレジスタ制御部４１、５１は、ＲＴＬ（Register Transfer Level）やＨＤＬ（Hardware Description Language）などで記述された共通のＨＷ回路である。また、レジスタ制御部４１には、入力制御レジスタ４２と出力制御レジスタ４３とが設けられ、レジスタ制御部５１には、入力制御レジスタ５２と出力制御レジスタ５３とが設けられている。そして、ＣＰＬＤ１の出力制御レジスタ４３とＣＰＬＤ２と出力制御レジスタ５３とは同期が取られている。
【００３４】
ＣＰＬＤ１には、主に外部からのセンサ信号（入力信号１〜３）などが入力される。一方、ＣＰＬＤ２には、電源制御用の信号（出力信号１〜３）などが出力される。ここで、ＣＰＬＤ２は、出力制御用のＩＯ拡張デバイス５０であり、入力を制御する必要はないため、実施形態の図２の構成を採用する場合には、ＣＰＬＤ２の入力制御レジスタ５２に対して入力されるリード信号を非アクティブな論理レベルに固定しておくことでライト信号のみを使用できるようにする。
【００３５】
このような構成の入出力制御回路において、ＣＰＵ１０からのライトアクセスでは、ＣＰＬＤ１とＣＰＬＤ２とが同一のチャンネル３に接続されており、ＣＰＵ１０からのセレクト信号Ｃとライト信号がＣＰＬＤ１とＣＰＬＤ２の双方に入力されるため、ＣＰＬＤ１とＣＰＬＤ２は共に自分へのライトアクセスであると判断してデータを出力制御レジスタ４３、５３に取り込む。その際、ＣＰＬＤ１の出力制御レジスタ４３は外部に接続されておらず、取り込んだデータを外部に出力することはない。従って、ＣＰＵ１０は、出力制御用として予め割り当てられたＣＰＬＤ２のみを適切に制御することができる。例えば、入出力制御回路がＭＦＰ（Multi Function Peripheral）などの画像形成装置に組み込まれる場合は、ＣＰＵの電源制御やパネルの電源制御、ＦＡＸの電源制御などを行うことができる。
【００３６】
また、ＣＰＵ１０からのリードアクセスでは、ＣＰＬＤ１とＣＰＬＤ２が同一のチャンネル３に接続されており、ＣＰＵ１０からのセレクト信号Ｃは、ＣＰＬＤ１とＣＰＬＤ２に入力されるが、リード信号はＣＰＬＤ１のみに入力されるため、ＣＰＬＤ１のみが自分へのリードアクセスであると判断して入力制御レジスタ４２に保持したデータをＣＰＵ１０に出力する。従って、ＣＰＵ１０は、入力制御用として予め割り当てられたＣＰＬＤ１のみを適切に制御することができる。例えば、入出力制御回路がＭＦＰなどの画像形成装置に組み込まれる場合は、紙詰まりなどを検知するセンサ、扉の開閉を検知するセンサ、用紙トレイに設けられたセンサなどからの信号を取得することができ、ＭＦＰの状態を判断することができる。
【００３７】
なお、実施形態の図２の構成（ライト信号がＣＰＬＤ２のみに入力される構成）の場合、ＣＰＵ１０からのライトアクセスでは、ＣＰＬＤ１とＣＰＬＤ２が同一のチャンネル３に接続されており、ＣＰＵ１０からのセレクト信号Ｃは、ＣＰＬＤ１とＣＰＬＤ２に入力されるが、ライト信号はＣＰＬＤ２のみに入力されるため、ＣＰＬＤ２のみが自分へのライトアクセスであると判断してデータを出力制御レジスタ５３に取り込む。従って、出力制御用として予め割り当てられたＣＰＬＤ２のみを適切に制御することができる。
【００３８】
また、ＣＰＵ１０からのリードアクセスでは、ＣＰＬＤ１とＣＰＬＤ２が同一のチャンネル３に接続されており、ＣＰＵ１０からのセレクト信号Ｃとリード信号がＣＰＬＤ１とＣＰＬＤ２の双方に入力されるため、ＣＰＬＤ１とＣＰＬＤ２は共に自分へのリードアクセスであると判断するが、ＣＰＬＤ２ではリード信号は非アクティブな論理レベルに固定されており、ＣＰＵ１０にデータを出力しない。従って、ＣＰＵ１０は、入力制御用として予め割り当てられたＣＰＬＤ１のみを適切に制御することができる。
【００３９】
次に、ＩＯ拡張デバイスのＩＯ数について説明する。図５は、ＩＯ拡張デバイスが使用できるＩＯ数を説明する図であり、図５（ａ）は、入力／出力制御用のＩＯ拡張デバイスを２つ接続した場合のＩＯ数、（ｂ）、（ｃ）は、入力制御用のＩＯ拡張デバイスと出力制御用のＩＯ拡張デバイスとを接続した場合のＩＯ数を示している。なお、図５は、ＣＰＵ１０が一定周期で入力制御用のＩＯ拡張デバイスに対してリードを行うことで、ＣＰＬＤ１に入力されている各センサ信号の状態を取得するポーリング方式を採用した場合の例である。
【００４０】
各々のＩＯ拡張デバイスには、デバイスバスに接続するために、セレクト信号、ライト信号、リード信号、データ信号が入力される。図５（ａ）の入力／出力制御用のＩＯ拡張デバイスの場合、拡張ＩＯとして使用できるＩＯがＮ本であるとすると、同じ構成の入力／出力制御用のＩＯ拡張デバイスを追加すると、追加したＩＯ拡張デバイスにもセレクト信号、ライト信号、リード信号、データ信号が入力されるため、拡張ＩＯとして使用できるＩＯは同様にＮ本となる。
【００４１】
一方、図５（ｂ）の場合、入力制御用ＩＯ拡張デバイスには、セレクト信号、ライト信号、リード信号、データ信号が入力され、入力制御用ＩＯ拡張デバイスが拡張ＩＯとして使用できるＩＯはＮ本となるが、出力制御用ＩＯ拡張デバイスにはリード信号を入力しないため、出力制御用ＩＯ拡張デバイスが拡張ＩＯとして使用できるＩＯはＮ＋１本となる。同様に図５（ｃ）の場合、出力制御用ＩＯ拡張デバイスにはセレクト信号、ライト信号、データ信号が入力され、出力制御用ＩＯ拡張デバイスが拡張ＩＯとして使用できるＩＯはＮ本となるが、入力制御用ＩＯ拡張デバイスにはライト信号を入力しないため、入力制御用ＩＯ拡張デバイスが拡張ＩＯとして使用できるＩＯはＮ＋１本となる。従って、本実施例の構成では、ＩＯ拡張デバイスのＩＯを最大限に利用することができる。
【００４２】
図５では、ポーリング方式を採用した場合のＩＯ拡張デバイスのＩＯ数について示したが、ポーリングではＣＰＵ１０が一定周期でリードを行う必要があるため、ＣＰＵ１０の負荷が増大してしまう。一方、このポーリング方式とは別に割り込み方式と呼ばれる方式が存在する。割り込み方式は、ＣＰＬＤ１内で入力されている各センサ信号の変化を検出し、変化を検出した場合に割り込み信号によってＣＰＵ１０に通知する方式であり、この方式ではＣＰＵ１０の負荷を軽減することができる。
【００４３】
図６は、割り込み方式を採用した場合のＩＯ拡張デバイスが使用できるＩＯ数を具体的に説明する図であり、複数のセンサ信号の検出を１本の割り込みによってＣＰＵ１０に通知する集合割り込みの場合を示している。この場合、ＣＰＬＤ１及びＣＰＬＤ２は割り込みを制御する割り込みコントローラ機能を有し、ＣＰＬＤ１の割り込みコントローラ機能は、センサ信号を検出するとＣＰＵ１０に集合割り込み信号を出力し、ＣＰＵ１０はこの集合割り込み信号を受け取ると、ＣＰＬＤ１をリードして、どのセンサ信号に変化があったかを判断する。
【００４４】
ＣＰＬＤ１及びＣＰＬＤ２は汎用ロジックデバイスであり、電源・ＧＮＤ、クロック入力が必須である。残りのＩＯはユーザＩＯと呼ばれ、ユーザが自由に使用可能であり、ＣＰＬＤ１及びＣＰＬＤ２のユーザＩＯが共に２５本であるとする。ＣＰＬＤ１では、セレクト信号、ライト信号、リード信号、８本のデータ信号、３本のアドレス信号、集合割り込み信号で合計１５本となるため、残りの１０本を拡張ＩＯ（入力０〜９）として使用することができる。一方、ＣＰＬＤ２では、セレクト信号、ライト信号、８本のデータ信号、３本のアドレス信号で合計１３本となるため、残りの１２本を拡張ＩＯ（出力０〜１１）として使用することができる。従って、割り込み方式では、追加したＩＯ拡張デバイスが使用できるＩＯ数を更に増やすことができる。なお、本実施例ではデータ信号を８本としているが、データ信号は８本に限定されるものではない。また、本実施例ではアドレス信号を３本としているが、アドレス信号も３本に限定されるものではない。
【００４５】
図７は、上記集合割り込み方式を採用する場合に、ＣＰＬＤ１及びＣＰＬＤ２に設けられるレジスタの一例である。ＣＰＬＤ１及びＣＰＬＤ２には、３本のアドレス信号で規定される３ビット分（８個）のレジスタ、例えば、出力制御レジスタ１、出力制御レジスタ２、入力制御レジスタ１、入力制御レジスタ２、割り込み要因レジスタ１、割り込み要因レジスタ２、割り込み要因クリアレジスタ１、割り込み要因クリアレジスタ２が用意される。
【００４６】
出力制御レジスタ１（０００）は、８ビットレジスタであり、各ビットが出力制御用ＩＯ拡張デバイスの拡張ＩＯの８本と対応しており、各ビットを書き換えることでＣＰＬＤ２から出力される拡張ＩＯ信号（出力０〜７）を制御することができる。
【００４７】
出力制御レジスタ２（００１）は、８ビットレジスタであり、各ビットが出力制御用ＩＯ拡張デバイスの拡張ＩＯの４本と対応している。レジスタとしては８ビットであるが、実際に使用するのは下位４ビットのみであり、各ビットを書き換えることでＣＰＬＤ２から出力される拡張ＩＯ信号（出力８〜１１）を制御することができる。
【００４８】
入力制御レジスタ１（０１０）は、８ビットレジスタであり、各ビットが入力制御用ＩＯ拡張デバイスの拡張ＩＯの８本と対応しており、各ビットを読み出すことでＣＰＬＤ１に入力されている拡張ＩＯ信号（入力０〜７）の状態を知ることができる。
【００４９】
入力制御レジスタ２（０１１）は、８ビットレジスタであり、各ビットが入力制御用ＩＯ拡張デバイスの拡張ＩＯの２本と対応している。レジスタとしては８ビットであるが、実際に使用するのは下位２ビットのみであり、各ビットを読み出すことでＣＰＬＤ１に入力されている拡張ＩＯ信号（入力８、９）の状態を知ることができる。
【００５０】
割り込み要因レジスタ１（１００）は、入力制御レジスタ１の８ビットのうち、いずれかのセンサ信号の状態が変化した際に、対応するビットの値が”１”になる。後述の割り込み要因レジスタ２を含む、いずれかのビットの値が”１”である場合に、ＣＰＬＤ１はＣＰＵ１０に対して集合割り込み信号を出力する。また、ＣＰＵ１０からのリードアクセスに対してＣＰＬＤ１は割り込み要因レジスタ１の値を返す。
【００５１】
割り込み要因レジスタ２（１０１）は、入力制御レジスタ２の２ビットのうち、いずれかのセンサ信号の状態が変化した際に、対応するビットの値が”１”になる。前述の割り込み要因レジスタ１を含む、いずれかのビットの値が”１”である場合に、ＣＰＬＤ１はＣＰＵ１０に対して集合割り込み信号を出力する。
【００５２】
割り込み要因クリアレジスタ１（１１０）は、上記割り込み要因レジスタ１と対応しており、本レジスタの各ビットに”１”が書き込まれたときに、対応する割り込み要因レジスタ１のビットの値が”０”にクリアされる。
【００５３】
割り込み要因クリアレジスタ２（１１１）は、上記割り込み要因レジスタ２と対応しており、本レジスタの各ビットに”１”が書き込まれたときに、対応する割り込み要因レジスタ２のビットの値が”０”にクリアされる。
【００５４】
次に、図７の構成のレジスタを用いて、図６の構成のＣＰＬＤ１及びＣＰＬＤ２を制御する方法について説明する。まず、入力拡張ＩＯ制御（入力制御用のＩＯ拡張デバイス４０の制御）について、図８のフローチャート図を参照して説明する。
【００５５】
まず、ＣＰＬＤ１のレジスタ制御部４１は、ＣＰＬＤ１に入力されている拡張ＩＯ信号（入力０〜９）のいずれかの状態が変化したら（Ｓ１０１）、ＣＰＵ１０に集合割り込み信号を出力する（Ｓ１０２）。
【００５６】
ＣＰＵ１０は、集合割り込み信号を検出したら（Ｓ１０３）、割り込み要因レジスタ１をリードし（Ｓ１０４）、割り込み要因レジスタ１のいずれかのビットの値が”１”であるかを判断する（Ｓ１０５）。割り込み要因レジスタ１のいずれかのビットの値が”１”の場合は、ＣＰＵ１０は、入力制御レジスタ１をリードして入力信号の状態を確認し（Ｓ１０６）、各ビットに対応した処理を実行した後、割り込み要因レジスタ１をクリアし（Ｓ１０７）、Ｓ１０４に戻る。
【００５７】
一方、割り込み要因レジスタ１の全てのビットの値が”０”の場合は、ＣＰＵ１０は、割り込み要因レジスタ２をリードし（Ｓ１０８）、割り込み要因レジスタ２のいずれかのビットの値が”１”であるかを判断する（Ｓ１０９）。割り込み要因レジスタ２のいずれかのビットの値が”１”の場合は、ＣＰＵ１０は、入力制御レジスタ２をリードして入力信号の状態を確認し（Ｓ１１０）、各ビットに対応した処理を実行した後、割り込み要因レジスタ２をクリアし（Ｓ１１１）、Ｓ１０８に戻る。
【００５８】
上記フローについて、本実施例の入出力制御回路がＭＦＰに組み込まれた場合を例にして説明する。図６に示した入力１〜１０の内の入力４の状態が変化したとする。ここで、入力４はＭＦＰのフロントカバー開閉センサからの信号とする。入力４の状態が変化すると、割り込み要因レジスタ１のビット４の値が”１”になり、ＣＰＵ１０に対して集合割り込み信号が出力される。ＣＰＵ１０は、この集合割り込み信号を検出すると、割り込み要因レジスタ１及び２をリードし、どの入力信号が変化したかを特定する。入力信号を特定した後、入力制御レジスタ１をリードして、現在入力４が”０”又は”１”のどちらの状態にあるかを確認する。状態を確認した後、対応した処理（ここでは「フロントカバーが開いています」といった表示処理）を行い、最後に割り込み要因クリアレジスタ１のビット４に”１”を書き込むことによって割り込み要因レジスタ１をクリアする。
【００５９】
次に、出力拡張制御（出力制御用のＩＯ拡張デバイス５０の制御）について、図９及び図１０のフローチャート図を参照して説明する。出力拡張ＩＯ制御は、データの書き込みと出力値の確認（読み出し）とで構成される。
【００６０】
データの書き込みでは、ＣＰＵ１０によるライトアクセスにより、ＣＰＬＤ１及びＣＰＬＤ２の双方の出力制御レジスタにデータが書き込まれる（Ｓ２０１）。この時、ＣＰＬＤ２からは信号が出力されないため、ＣＰＬＤ２から出力される出力信号のみが変化する（Ｓ２０２）。また、出力値の確認では、ＣＰＵ１０は出力制御レジスタをリードする（Ｓ３０１）。この時、ＣＰＬＤ２にはリード信号が入力されないため、ＣＰＬＤ１がＣＰＬＤ２に代わって出力制御レジスタの値を返す（Ｓ３０２）。
【００６１】
上記フローについて、具体例を挙げて説明する。図６に示した出力０の状態を”１”から”０”に変化させたいとする。ここで、出力０の信号は、あるデバイスの電源をＯＦＦするための制御信号とする。ＣＰＵ１０は、出力制御レジスタ１のビット０に”０”を書き込む。このとき、ＣＰＬＤ１内の出力制御レジスタの値も同時に書き換えられる。ＣＰＬＤ２は出力制御レジスタ１のビット０が”０”に変化したのを受けて、ＣＰＬＤ２から出力される出力０の信号が”０”に変化する。
【００６２】
ＣＰＵ１０が出力０の信号が正しく変化したかを確認する場合、出力制御レジスタに対してリードする。本実施例の構成ではＣＰＬＤ２にはリード信号が接続されていないため、ＣＰＬＤ２がリード要求に対して出力制御レジスタのレジスタ値を応答することができない。しかしながら、ＣＰＬＤ１の出力制御レジスタにはＣＰＬＤ２の出力制御レジスタと同じ値が保持されているため、ＣＰＬＤ１がレジスタ値を返すことができる。これにより、ＣＰＵ１０は、実際はＣＰＬＤ２から出力されている出力制御レジスタのレジスタ値をＣＰＬＤ１から読み出して確認することができる。
【００６３】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、入出力制御回路の構成や制御は適宜変更可能である。
【００６４】
例えば、上記実施例では、ＣＰＵ１０は３チャンネルのパラレルバスを有し、チャンネル１にデバイスＡ、チャンネル２にデバイスＢ、チャンネル３にデバイスＣ１、Ｃ２が接続される構成としたが、バスの同一チャンネル上に、入力制御用のＩＯ拡張デバイス４０と出力制御用のＩＯ拡張デバイス５０とが接続される限りにおいて、ＣＰＵ１０が有するバスの数や各チャンネルに接続されるデバイスは任意である。
【産業上の利用可能性】
【００６５】
本発明は、バスの同一チャンネル上に複数のＩＯ拡張デバイスが接続された入出力制御回路及び当該入出力制御回路における複数のＩＯ拡張デバイスの同期制御方法に利用可能である。
【符号の説明】
【００６６】
１０  ＣＰＵ
２０  Nor-Flashメモリ
３０  Nor-Flashメモリ
４０  入力制御用のＩＯ拡張デバイス
４１  レジスタ制御部
４２  入力制御レジスタ
４３  出力制御レジスタ
５０  出力制御用のＩＯ拡張デバイス
５１  レジスタ制御部
５２  入力制御レジスタ
５３  出力制御レジスタ
【図１】
2015018408.tif 000003
【図２】
2015018408.tif 000004
【図３】
2015018408.tif 000005
【図４】
2015018408.tif 000006
【図５】
2015018408.tif 000007
【図６】
2015018408.tif 000008
【図７】
2015018408.tif 000009
【図８】
2015018408.tif 000010
【図９】
2015018408.tif 000011
【図１０】
2015018408.tif 000012
【図１１】
2015018408.tif 000013
【図１２】
2015018408.tif 000014