(57)【要約】【課題】ＣＰＵの介在なしに複数のＩ／Ｏ拡張デバイスの状態を同期させることのできるＩ／Ｏ拡張デバイス群およびＩ／Ｏ拡張デバイスを提供する。【解決手段】入力機能を担う第１のＩ／Ｏ拡張デバイス３０は、入力制御レジスタ３２への入力信号の値が変化したとき、該変化に基づいて装置の電源状態をスリープ状態から通常状態へ遷移させるか否かを復帰条件判定部３４にて判定し、遷移させると判定した場合は、遷移先の状態を示す状態通知信号を第２のＩ／Ｏ拡張デバイス５０に出力する。出力機能を担う第２のＩ／Ｏ拡張デバイス５０は、状態通知信号で遷移先の状態が通知されたとき、出力制御レジスタ５３の値をその遷移先の状態に応じた値に自動的に書き換えて出力信号の値を変更する。たとえば、電源制御用の出力信号を変化させることで、周辺デバイスを電源オンし、その後、ＣＰＵの電源をオンにして通常状態に移行させる。【選択図】図４
2015035177.tif 000002
【特許請求の範囲】
【請求項１】
所定の装置の動作を制御するＣＰＵに接続され、前記装置の所定の部品から入力される入力信号の値を前記ＣＰＵが読み取り可能な入力レジスタに設定する入力機能を有する第１のＩ／Ｏ拡張デバイスと、前記ＣＰＵに接続され、前記ＣＰＵによって出力レジスタに設定された値に応じた出力信号を前記装置の所定の部品へ出力する出力機能を有する第２のＩ／Ｏ拡張デバイスとを含むＩ／Ｏ拡張デバイス群であって、
前記第１のＩ／Ｏ拡張デバイスは、入力信号の値が変化したとき、該変化に基づいて前記装置の状態を遷移させるか否かを判定し、遷移させると判定した場合は、遷移先の状態を示す状態通知信号を前記第２のＩ／Ｏ拡張デバイスに出力し、
前記状態通知信号を受けた前記第２のＩ／Ｏ拡張デバイスは、前記状態通知信号で通知された前記遷移先の状態に応じて前記出力信号の値を変更する
ことを特徴とするＩ／Ｏ拡張デバイス群。
【請求項２】
前記状態通知信号は、前記装置の電源状態を通知し、
前記第１のＩ／Ｏ拡張デバイスと前記第２のＩ／Ｏ拡張デバイスとの間で前記状態通知信号の伝送に使用される信号線の数は、前記ＣＰＵが動作を停止させているときに前記装置が取り得る省電力状態の種類の数に応じた最小数にされる
ことを特徴とする請求項１に記載のＩ／Ｏ拡張デバイス群。
【請求項３】
前記第２のＩ／Ｏ拡張デバイスは、前記遷移先の状態が、前記ＣＰＵが停止状態から復旧して動作する通常状態である場合には、前記第２のＩ／Ｏ拡張デバイスから受けた前記状態通知信号に従って出力信号の値を変更する際に、前記ＣＰＵ以外の所定の部品に対する出力信号を通常状態時の値に変更した後に、前記ＣＰＵを前記通常状態に復旧させるための出力信号の値を変更する
ことを特徴とする請求項１または２に記載のＩ／Ｏ拡張デバイス群。
【請求項４】
前記第２のＩ／Ｏ拡張デバイスは、前記第１のＩ／Ｏ拡張デバイスから受けた前記状態通知信号に含まれるノイズを除去するノイズフィルタ回路を有する
ことを特徴とする請求項１乃至３のいずれか１つに記載のＩ／Ｏ拡張デバイス群。
【請求項５】
前記第１のＩ／Ｏ拡張デバイスは、前記状態通知信号を出力してから前記ノイズフィルタ回路で生じる遅延時間と等しい遅延時間が経過したときに、自デバイスの内部状態を前記状態通知信号で通知した前記遷移先の状態に遷移させる
ことを特徴とする請求項４に記載のＩ／Ｏ拡張デバイス群。
【請求項６】
前記第１のＩ／Ｏ拡張デバイスと前記第２のＩ／Ｏ拡張デバイスは、出力レジスタおよび入力レジスタの構成は同一であり、それぞれの役割に合わせて、出力レジスタと出力端子を接続する接続回路および入力端子と入力レジスタを接続する接続回路が構成されている
ことを特徴とする請求項１乃至５のいずれか１つに記載のＩ／Ｏ拡張デバイス群。
【請求項７】
所定の装置の動作を制御するＣＰＵによって出力レジスタに設定された値に応じた出力信号を前記装置の所定の部品へ出力する出力機能を有する他のＩ／Ｏ拡張デバイスと共に前記ＣＰＵに接続されるＩ／Ｏ拡張デバイスであって、
前記装置の所定の部品から入力される入力信号の値を前記ＣＰＵが読み取り可能な入力レジスタに設定する入力機能を有し、
入力信号の値が変化したとき、該変化に基づいて前記装置の状態を遷移させるか否かを判定し、遷移させると判定した場合は、遷移先の状態を示す状態通知信号を前記他のＩ／Ｏ拡張デバイスに出力し、
前記状態通知信号を受けた前記他のＩ／Ｏ拡張デバイスでは、前記状態通知信号で通知された状態に応じて前記出力信号の値が変更される
ことを特徴とするＩ／Ｏ拡張デバイス。
【請求項８】
所定の装置の動作を制御するＣＰＵに、前記装置の所定の部品から入力される入力信号の値を前記ＣＰＵが読み取り可能な入力レジスタに設定する入力機能を有する他のＩ／Ｏ拡張デバイスと共に接続されるＩ／Ｏ拡張デバイスであって、
前記ＣＰＵによって出力レジスタに設定された値に応じた出力信号を前記装置の所定の部品へ出力する出力機能を有し、
入力信号の値が変化したときに、該変化に基づいて前記装置の状態を遷移させるか否かを判定し、遷移させると判定した場合に、遷移先の状態を示す状態通知信号を出力する前記他のＩ／Ｏ拡張デバイスから前記状態通知信号を受けた場合に、前記状態通知信号で通知された状態に応じて前記出力信号の値を変更する
ことを特徴とするＩ／Ｏ拡張デバイス。
【請求項９】
前記状態通知信号は、前記装置の電源状態を通知し、
前記Ｉ／Ｏ拡張デバイスと前記他のＩ／Ｏ拡張デバイスとの間で前記状態通知信号の伝送に使用される信号線の数は、前記ＣＰＵが動作を停止させているときに前記装置が取り得る省電力状態の種類の数に応じた最小数にされる
ことを特徴とする請求項７または８に記載のＩ／Ｏ拡張デバイス。
【請求項１０】
前記Ｉ／Ｏ拡張デバイスは、前記遷移先の状態が、前記ＣＰＵが停止状態から復旧して動作する通常状態の場合には、前記他のＩ／Ｏ拡張デバイスから受けた前記状態通知信号に従って出力信号の値を変更する際に、前記ＣＰＵ以外の所定の部品に対する出力信号を通常状態時の値に変更した後に、前記ＣＰＵを前記通常状態に復旧させるための出力信号の値を変更する
ことを特徴とする請求項８に記載のＩ／Ｏ拡張デバイス。
【請求項１１】
前記Ｉ／Ｏ拡張デバイスは、前記他のＩ／Ｏ拡張デバイスから受けた前記状態通知信号に含まれるノイズを除去するノイズフィルタ回路を有する
ことを特徴とする請求項８に記載のＩ／Ｏ拡張デバイス。
【請求項１２】
前記Ｉ／Ｏ拡張デバイスは、前記状態通知信号を出力してから、前記状態通知信号に含まれるノイズを除去するために前記他のＩ／Ｏ拡張デバイスが有するノイズフィルタ回路で生じる遅延時間と等しい遅延時間が経過したときに、自デバイスの内部状態を前記状態通知信号で通知した前記遷移先の状態に変更する
ことを特徴とする請求項７に記載のＩ／Ｏ拡張デバイス。
【請求項１３】
前記Ｉ／Ｏ拡張デバイスと前記他のＩ／Ｏ拡張デバイスは、出力レジスタおよび入力レジスタの構成は同一であり、それぞれの役割に合わせて、出力レジスタと出力端子を接続する接続回路および入力端子と入力レジスタを接続する接続回路が構成されている
ことを特徴とする請求項７乃至１２のいずれか１つに記載のＩ／Ｏ拡張デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵに接続されて、ＣＰＵの外部インターフェイスを拡張するＩ／Ｏ拡張デバイスに関する。
【背景技術】
【０００２】
ＣＰＵで直接制御できるＩ／Ｏ（input/output）信号の数は限られており、入出力可能な信号数を増やすために、Ｉ／Ｏ拡張デバイスが使用される。
【０００３】
たとえば、特許文献１には、レジスタのbit毎に入力機能と出力機能のいずれで使用するかを設定することのできるＩ／Ｏ拡張デバイスが開示されている。また、特許文献２には、ＣＰＵの持つシリアル信号の出力ポートに複数のシフトレジスタをカスケード接続してシリアル／パラレル変換を行うことで、１つのシリアル信号の出力ポートを用いて複数の出力信号をパラレルに出力可能にする技術が開示されている。
【０００４】
ところで、制御すべきＩ／Ｏの数が増えた場合、１つのＩ／Ｏ拡張デバイスで対応することが難しくなる。この場合に、より入出力ピンの多いＩ／Ｏ拡張デバイスに変更することも考えられるが、コストが増加する。
【０００５】
このような問題に対処する技術として、特許文献３には、ＣＰＵに接続したマスターモードのＩ／Ｏ拡張デバイスの配下にスレーブモードのＩ／Ｏ拡張デバイスを複数接続することで、出力可能な信号数を増加させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−３１９５９２号公報
【特許文献２】特開２０１１−１９７９８１号公報
【特許文献３】特開２００９−１２３１４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
近年の省エネルギー規格への対応のために、装置の電源は入っているがＣＰＵの電源をオフにする状態（省電力状態）が存在する。そのため、ＣＰＵの電源がオフの間に、Ｉ／Ｏ拡張デバイスが、ＣＰＵの介在なしにＩ／Ｏ制御を行ったり、入力信号の変化を検出してＣＰＵの電源をオンにして通常状態へ遷移させる等の制御を行ったりする必要がある。
【０００８】
たとえば、ＣＰＵの電源がオフしている省電力状態において、Ｉ／Ｏ拡張デバイスに外部デバイスから所定のトリガ信号が入力されたとき、Ｉ／Ｏ拡張デバイスは、現在の状態と入力されたトリガ信号の種類とから通常状態へ遷移させるか否かを判定し、通常状態へ遷移させると判定した場合に、Ｉ／Ｏ拡張デバイスから他の外部デバイスに対して起動信号を出力したり、電源制御部へ制御信号を出力してＣＰＵの電源をオンにしたりするといった制御を行う。
【０００９】
入出信号数の増加に対処するために、複数のＩ／Ｏ拡張デバイスを使用すると、各Ｉ／Ｏ拡張デバイスはそれぞれ別の外部デバイスのＩ／Ｏ制御を行うため、一のＩ／Ｏ拡張デバイスが外部デバイスからのトリガ信号を受けて通常状態に遷移すると判定して状態を遷移させても、他のＩ／Ｏ拡張デバイスは元の状態のままの動作を継続してしまい、複数のＩ／Ｏ拡張デバイスで同じ状態に対応する整合した動作（同期した動作）を行うことができないという問題がある。
【００１０】
たとえば、ＣＰＵの電源がオフの状態で所定のトリガ信号が変化した場合に、Ｉ／Ｏ拡張デバイスからＣＰＵ以外の所定の外部デバイスに対して起動信号を出力し、その外部デバイスが起動した後、ＣＰＵの電源をオンするといったシーケンス制御を行う必要があるものとする。そして、たとえば、入力信号の変化に基づいて状態遷移を判定する処理とＣＰＵの電源をオンにする処理を一のＩ／Ｏ拡張デバイスで行い、他のＩ／Ｏ拡張デバイスでＣＰＵ以外の所定の外部デバイスに対して起動信号を出力するように機能を分担させているとする。
【００１１】
この構成では、一のＩ／Ｏ拡張デバイスが、トリガ信号の変化に基づいて通常状態へ状態遷移させると判定し、ＣＰＵを起動しても、他のＩ／Ｏ拡張デバイスは上記の状態遷移を認識していないので外部デバイスを起動しない。このため、電源がオンにされて起動したＣＰＵが、起動していない外部デバイスの出力値を誤って読み込んでしまうといった事態が生じてしまう。
【００１２】
本発明は、上記の問題を解決しようとするものであり、ＣＰＵの介在なしに複数のＩ／Ｏ拡張デバイスの状態を同期させることのできるＩ／Ｏ拡張デバイス群およびＩ／Ｏ拡張デバイスを提供することを目的としている。
【課題を解決するための手段】
【００１３】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
【００１４】
［１］所定の装置の動作を制御するＣＰＵに接続され、前記装置の所定の部品から入力される入力信号の値を前記ＣＰＵが読み取り可能な入力レジスタに設定する入力機能を有する第１のＩ／Ｏ拡張デバイスと、前記ＣＰＵに接続され、前記ＣＰＵによって出力レジスタに設定された値に応じた出力信号を前記装置の所定の部品へ出力する出力機能を有する第２のＩ／Ｏ拡張デバイスとを含むＩ／Ｏ拡張デバイス群であって、
前記第１のＩ／Ｏ拡張デバイスは、入力信号の値が変化したとき、該変化に基づいて前記装置の状態を遷移させるか否かを判定し、遷移させると判定した場合は、遷移先の状態を示す状態通知信号を前記第２のＩ／Ｏ拡張デバイスに出力し、
前記状態通知信号を受けた前記第２のＩ／Ｏ拡張デバイスは、前記状態通知信号で通知された前記遷移先の状態に応じて前記出力信号の値を変更する
ことを特徴とするＩ／Ｏ拡張デバイス群。
【００１５】
上記発明では、入力機能を担う第１のＩ／Ｏ拡張デバイスは、入力信号の変化を検出した場合に、この変化によって状態遷移が生じるか否かを判定し、状態遷移が生じる場合には、出力機能を担う第２のＩ／Ｏ拡張デバイスに、遷移後の状態を通知する。これにより、第１のＩ／Ｏ拡張デバイスと第２のＩ／Ｏ拡張デバイスの状態を一致させてこれらの動作を整合（同期）させることができる。
【００１６】
［２］前記状態通知信号は、前記装置の電源状態を通知し、
前記第１のＩ／Ｏ拡張デバイスと前記第２のＩ／Ｏ拡張デバイスとの間で前記状態通知信号の伝送に使用される信号線の数は、前記ＣＰＵが動作を停止させているときに前記装置が取り得る省電力状態の種類の数に応じた最小数にされる
ことを特徴とする［１］に記載のＩ／Ｏ拡張デバイス群。
【００１７】
上記発明および下記［９］に記載の発明では、状態通知信号のために使用される信号線の本数は、必要最小本数にされる。
【００１８】
［３］前記第２のＩ／Ｏ拡張デバイスは、前記遷移先の状態が、前記ＣＰＵが停止状態から復旧して動作する通常状態である場合には、前記第２のＩ／Ｏ拡張デバイスから受けた前記状態通知信号に従って出力信号の値を変更する際に、前記ＣＰＵ以外の所定の部品に対する出力信号を通常状態時の値に変更した後に、前記ＣＰＵを前記通常状態に復旧させるための出力信号の値を変更する
ことを特徴とする［１］または［２］に記載のＩ／Ｏ拡張デバイス群。
【００１９】
上記発明および下記［１０］に記載の発明では、ＣＰＵを停止状態から通常状態へ復旧させる場合には、ＣＰＵ以外の他の部品を通常状態に復旧させてから、ＣＰＵが通常状態に復旧するように出力信号の変更シーケンスが制御される。
【００２０】
［４］前記第２のＩ／Ｏ拡張デバイスは、前記第１のＩ／Ｏ拡張デバイスから受けた前記状態通知信号に含まれるノイズを除去するノイズフィルタ回路を有する
ことを特徴とする［１］乃至［３］のいずれか１つに記載のＩ／Ｏ拡張デバイス群。
【００２１】
上記発明および下記［１１］に記載の発明では、状態通知信号は基板上の配線を通じて伝播されるので、受け側のＩ／Ｏ拡張デバイスでノイズを除去して、誤動作を防止する。
【００２２】
［５］前記第１のＩ／Ｏ拡張デバイスは、前記状態通知信号を出力してから前記ノイズフィルタ回路で生じる遅延時間と等しい遅延時間が経過したときに、自デバイスの内部状態を前記状態通知信号で通知した前記遷移先の状態に遷移させる
ことを特徴とする［４］に記載のＩ／Ｏ拡張デバイス群。
【００２３】
上記発明および下記［１２］に記載の発明では、状態通知信号を出力する側のＩ／Ｏ拡張デバイスは、状態通知信号を受ける側のＩ／Ｏ拡張デバイスのノイズフィルタ回路で生じる遅延時間に等しい遅延時間が経過したときに、内部状態を状態通知信号が示す状態に遷移させる。これにより、状態通知信号に基づいて状態遷移するタイミングを双方のＩ／Ｏ拡張デバイスで一致させることができる。
【００２４】
［６］前記第１のＩ／Ｏ拡張デバイスと前記第２のＩ／Ｏ拡張デバイスは、出力レジスタおよび入力レジスタの構成は同一であり、それぞれの役割に合わせて、出力レジスタと出力端子を接続する接続回路および入力端子と入力レジスタを接続する接続回路が構成されている
ことを特徴とする［１］乃至［５］のいずれか１つに記載のＩ／Ｏ拡張デバイス群。
【００２５】
上記発明および下記［１３］に記載の発明では、各Ｉ／Ｏ拡張デバイスのレジスタ構成は同一であり、レジスタと入出力端子を接続する接続回路の構成の違いにより、各Ｉ／Ｏ拡張デバイスの役割の違いが実現される。
【００２６】
［７］所定の装置の動作を制御するＣＰＵによって出力レジスタに設定された値に応じた出力信号を前記装置の所定の部品へ出力する出力機能を有する他のＩ／Ｏ拡張デバイスと共に前記ＣＰＵに接続されるＩ／Ｏ拡張デバイスであって、
前記装置の所定の部品から入力される入力信号の値を前記ＣＰＵが読み取り可能な入力レジスタに設定する入力機能を有し、
入力信号の値が変化したとき、該変化に基づいて前記装置の状態を遷移させるか否かを判定し、遷移させると判定した場合は、遷移先の状態を示す状態通知信号を前記他のＩ／Ｏ拡張デバイスに出力し、
前記状態通知信号を受けた前記他のＩ／Ｏ拡張デバイスでは、前記状態通知信号で通知された状態に応じて前記出力信号の値が変更される
ことを特徴とするＩ／Ｏ拡張デバイス。
【００２７】
上記発明は、［１］に記載のＩ／Ｏ拡張デバイス群における第１のＩ／Ｏ拡張デバイスに相当する。
【００２８】
［８］所定の装置の動作を制御するＣＰＵに、前記装置の所定の部品から入力される入力信号の値を前記ＣＰＵが読み取り可能な入力レジスタに設定する入力機能を有する他のＩ／Ｏ拡張デバイスと共に接続されるＩ／Ｏ拡張デバイスであって、
前記ＣＰＵによって出力レジスタに設定された値に応じた出力信号を前記装置の所定の部品へ出力する出力機能を有し、
入力信号の値が変化したときに、該変化に基づいて前記装置の状態を遷移させるか否かを判定し、遷移させると判定した場合に、遷移先の状態を示す状態通知信号を出力する前記他のＩ／Ｏ拡張デバイスから前記状態通知信号を受けた場合に、前記状態通知信号で通知された状態に応じて前記出力信号の値を変更する
ことを特徴とするＩ／Ｏ拡張デバイス。
【００２９】
上記発明は、［１］に記載のＩ／Ｏ拡張デバイス群における第２のＩ／Ｏ拡張デバイスに相当する。
【００３０】
［９］前記状態通知信号は、前記装置の電源状態を通知し、
前記Ｉ／Ｏ拡張デバイスと前記他のＩ／Ｏ拡張デバイスとの間で前記状態通知信号の伝送に使用される信号線の数は、前記ＣＰＵが動作を停止させているときに前記装置が取り得る省電力状態の種類の数に応じた最小数にされる
ことを特徴とする［７］または［８］に記載のＩ／Ｏ拡張デバイス。
【００３１】
［１０］前記Ｉ／Ｏ拡張デバイスは、前記遷移先の状態が、前記ＣＰＵが停止状態から復旧して動作する通常状態の場合には、前記他のＩ／Ｏ拡張デバイスから受けた前記状態通知信号に従って出力信号の値を変更する際に、前記ＣＰＵ以外の所定の部品に対する出力信号を通常状態時の値に変更した後に、前記ＣＰＵを前記通常状態に復旧させるための出力信号の値を変更する
ことを特徴とする［８］に記載のＩ／Ｏ拡張デバイス。
【００３２】
［１１］前記Ｉ／Ｏ拡張デバイスは、前記他のＩ／Ｏ拡張デバイスから受けた前記状態通知信号に含まれるノイズを除去するノイズフィルタ回路を有する
ことを特徴とする［８］に記載のＩ／Ｏ拡張デバイス。
【００３３】
［１２］前記Ｉ／Ｏ拡張デバイスは、前記状態通知信号を出力してから、前記状態通知信号に含まれるノイズを除去するために前記他のＩ／Ｏ拡張デバイスが有するノイズフィルタ回路で生じる遅延時間と等しい遅延時間が経過したときに、自デバイスの内部状態を前記状態通知信号で通知した前記遷移先の状態に変更する
ことを特徴とする［７］に記載のＩ／Ｏ拡張デバイス。
【００３４】
［１３］前記Ｉ／Ｏ拡張デバイスと前記他のＩ／Ｏ拡張デバイスは、出力レジスタおよび入力レジスタの構成は同一であり、それぞれの役割に合わせて、出力レジスタと出力端子を接続する接続回路および入力端子と入力レジスタを接続する接続回路が構成されている
ことを特徴とする［７］乃至［１２］のいずれか１つに記載のＩ／Ｏ拡張デバイス。
【発明の効果】
【００３５】
本発明に係るＩ／Ｏ拡張デバイス群およびＩ／Ｏ拡張デバイスによれば、ＣＰＵの介在なしに複数のＩ／Ｏ拡張デバイスの状態を一致させて複数のＩ／Ｏ拡張デバイスの動作を整合させることができる。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施の形態に係るＩ／Ｏ拡張デバイス群を使用した画像形成装置の構成例を示すブロック図である。
【図２】ＣＰＵがＩ／Ｏ拡張デバイスにライトアクセスする場合の信号線等を示す図である。
【図３】ＣＰＵがＩ／Ｏ拡張デバイスにリードアクセスする場合の信号線等を示す図である。
【図４】第１のＩ／Ｏ拡張デバイスと第２のＩ／Ｏ拡張デバイスの概略の内部構成を示すブロック図である。
【図５】第１のＩ／Ｏ拡張デバイスと第２のＩ／Ｏ拡張デバイスの入出力信号を示す図である。
【図６】Ｉ／Ｏ拡張デバイスのレジスタ構成を示す図である。
【図７】省電力状態から通常状態へ復帰する際の動作を示す流れ図である。
【図８】省電力状態から通常状態へ復帰する際の動作を示すシーケンス図である。
【発明を実施するための形態】
【００３７】
以下、図面に基づき本発明の実施の形態を説明する。
【００３８】
図１は、本発明の実施の形態に係るＩ／Ｏ拡張デバイスを適用した装置としての画像形成装置１０の概略構成を示している。画像形成装置１０は、原稿を光学的に読み取ってその複製画像を記録紙に印刷するコピー機能、読み取った原稿の画像データをファイルにして保存したり外部端末へネットワークを通じて送信したりするスキャン機能、ＰＣなどからネットワークを通じて受信した印刷データに係る画像を記録紙上に形成して印刷出力するプリンタ機能、ファクシミリ手順に従って画像データを送受信するファクシミリ機能などを備えた、複合機（ＭＦＰ；Multi Function Peripheral）である。
【００３９】
画像形成装置１０は、当該画像形成装置１０の動作を統括的に制御する制御部としてのＣＰＵ(Central Processing Unit)１１を有している。ＣＰＵ１１にはバスを通じて第１の不揮発メモリ１２、第２の不揮発メモリ１３、ＲＡＭ（Random Access Memory）１４、ハードディスク装置１５、自動原稿搬送部（ＡＤＦ：Auto Document Feeder）１６、画像読取部１７、操作パネル１８、画像処理部１９、プリンタ部２１、ネットワーク通信部２２、ファクシミリ通信部２３、第１のＩ／Ｏ拡張デバイス３０、第２のＩ／Ｏ拡張デバイス５０などが接続されている。また、画像形成装置１０は、各部への電源供給を個別にオンオフ可能な電源制御部２４を備えている。なお、図１では、ＣＰＵバスを１本のように記載してあるが、実際には、ブリッジを介した複数のバスで構成される。
【００４０】
ＣＰＵ１１は、ＯＳ（Operating System）プログラムをベースとし、その上で、ミドルウェアやアプリケーションプログラムなどを実行する。
【００４１】
第１の不揮発メモリ１２および第２の不揮発メモリ１３は、電源をオフにしても記憶内容が破壊されないメモリ（フラッシュメモリ）である。第１の不揮発メモリ１２にはブート用データが記憶されており、第２の不揮発メモリ１３には、ブート用データ以外の各種のファームウェア（プログラム）が記憶されている。
【００４２】
ＣＰＵ１１は第１の不揮発メモリ１２に格納されているブート用データにしたがって立ち上がり、その後は第２の不揮発メモリ１３に格納されているファームウェアにしたがって各種処理を実行する。また、ハードディスク装置１５には各種のアプリケーションプログラムが記憶されており、ＣＰＵ１１は、これをＲＡＭ１４にロードして実行する。ＣＰＵ１１が各種のプログラムを実行することで、画像形成装置１０としての各種の機能が実現される。
【００４３】
ＲＡＭ１４は、ＣＰＵ１１が処理を実行する際に各種のデータを一時的に格納するワークメモリや画像データを格納する画像メモリなどとして使用される。
【００４４】
ハードディスク装置１５は大容量不揮発の記憶装置であり、印刷データや画像ファイルなど各種のデータやアプリケーションプログラムが記憶される。
【００４５】
画像読取部１７は、原稿を光学的に読み取って画像データを取得する機能を果たす。画像読取部１７は、例えば、原稿に光を照射する光源と、その反射光を受けて原稿を幅方向に１ライン分読み取るラインイメージセンサと、ライン単位の読取位置を原稿の長さ方向に順次移動させる移動ユニットと、原稿からの反射光をラインイメージセンサに導いて結像させるレンズやミラーなどからなる光学経路と、ラインイメージセンサの出力するアナログ画像信号をデジタルの画像データに変換する変換部などを備えて構成される。
【００４６】
自動原稿搬送部１６は、原稿台にセットされた原稿をその最上のものから１枚ずつ順に繰り出して搬送し、画像読取部１７の読み取り位置を通過させて所定の排紙位置へ排紙する機能を果たす。画像読取部１７は、プラテンガラス上に載置された原稿を読み取る機能と、自動原稿搬送部１６によって搬送される原稿を順次読み取る機能を備えている。
【００４７】
操作パネル１８は、各種の操作画面、設定画面等を表示する機能およびユーザからジョブの投入など各種の操作を受け付ける機能を果たす。操作パネル１８は、液晶ディスプレイ（ＬＣＤ…Liquid Crystal Display）などの表示部、スタート釦やテンキーなどの各種ハードキーと表示部の表示面上に設けられたタッチパネルなどを備えている。
【００４８】
画像処理部１９は、画像の拡大縮小、回転などの処理のほか、印刷データをイメージデータに変換するラスタライズ処理、画像データの圧縮、伸張処理などを行う。
【００４９】
プリンタ部２１は、画像データに応じた画像を記録紙上に画像形成する機能を果たす。ここでは、プリンタ部２１は、記録紙の搬送装置と、感光体ドラムと、帯電装置と、レーザーユニットと、現像装置と、転写分離装置と、クリーニング装置と、定着装置とを有し、電子写真プロセスによって画像形成を行う、所謂、レーザープリンタとして構成されている。画像形成は他の方式でもかまわない。
【００５０】
ネットワーク通信部２２は、外部の装置（たとえば、ＰＣ、サーバ）と通信する機能を果たす。ネットワーク通信部２２は、有線通信と無線通信の双方可能に構成されてもよいし、いずれか一方のみ可能に構成されてもよい。
【００５１】
ファクシミリ通信部２３は、ファクシミリ機能を備えた外部装置と電話回線を通じて画像データを送受信する機能を果たす。
【００５２】
第１のＩ／Ｏ拡張デバイス３０および第２のＩ／Ｏ拡張デバイス５０は、ＣＰＵ１１に接続可能なＩ／Ｏを拡張する機能を果たす。ここでは、第１のＩ／Ｏ拡張デバイス３０は、画像形成装置１０の各部（たとえば、センサなど）からの入力信号を入力してその値をＣＰＵが読み取り可能なレジスタに設定する入力機能を担う。第２のＩ／Ｏ拡張デバイス５０は、ＣＰＵ１１によってレジスタに設定された値に対応する出力信号を画像形成装置１０の各部（たとえば、電源制御部２４）へ出力する出力機能を担う。第１のＩ／Ｏ拡張デバイス３０および第２のＩ／Ｏ拡張デバイス５０の詳細は後述する。
【００５３】
電源制御部２４は、画像形成装置１０の各部への電源供給を制御する。ここでは、ＣＰＵ１１への電源、画像処理部１９などのＡＳＩＣ(application specific integrated circuit)への電源、操作パネル１８への電源、ネットワーク通信部２２への電源、ファクシミリ通信部２３への電源、図示省略したタイマーＩＣへの電源などを制御する。なお、第２のＩ／Ｏ拡張デバイス５０は、上記の各電源のオンオフを指示する制御信号を電源制御部２４に対して出力する。
【００５４】
図２、図３は、ＣＰＵ１１が有する外部インターフェイス用のチャンネルに接続されたデバイスを示している。図２は、ライト時を、図３はリード時を示している。
【００５５】
ＣＰＵ１１は、外部インターフェイス機能を有する、ＳｏＣ（System-on-a-Chip）方式の半導体チップである。ＣＰＵ１１は、外部インターフェイス用のチャンネルとしてｃｈ１、ｃｈ２、ｃｈ３を備えている。ｃｈ１には、第１の不揮発メモリ１２が接続され、ｃｈ２には、第２の不揮発メモリ１３が接続されている。
【００５６】
ｃｈ３には、第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０が接続される。１つのチェンネルに複数のＩ／Ｏ拡張デバイス３０、５０を接続しているが、リードアクセスにて、複数のＩ／Ｏ拡張デバイスからデータが出力されないように構成してあるので、データが衝突する問題は生じない。ここでは、第１のＩ／Ｏ拡張デバイス３０を入力機能専用、第２のＩ／Ｏ拡張デバイス５０を出力機能専用として機能分担してある。そのため、ＣＰＵ１１は第１のＩ／Ｏ拡張デバイス３０のレジスタをリードできれば足り、リード信号は第１のＩ／Ｏ拡張デバイス３０にのみ接続してある。
【００５７】
詳細には、第１のＩ／Ｏ拡張デバイス３０には、ＣＰＵ１１のデバイスバスに接続するために、ｃｈ３のセレクト信号、ライト信号、リード信号、８bitのデータバス信号、３bitのアドレス信号が接続される。第２のＩ／Ｏ拡張デバイス５０には、ｃｈ３のセレクト信号、ライト信号、８bitのデータバス信号、３bitのアドレス信号が接続される。第２のＩ／Ｏ拡張デバイス５０は、出力機能専用なのでリード信号は接続されず、そのための端子もない。
【００５８】
アドレス信号が３bitの場合、Ｉ／Ｏ拡張デバイス３０、５０は各アドレスに対応させて最大で８個のレジスタを持つことができる。ｃｈ３のライトアクセスにおいては、図２に示すように、第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０の同じアドレスのレジスタに同じ値が書き込まれる。ｃｈ３のリードアクセスにおいては、リード信号が第１のＩ／Ｏ拡張デバイス３０にのみ入力され、第２のＩ／Ｏ拡張デバイス５０にはリード信号が入力されていないので、図３に示すように、各アドレスにおいて第１のＩ／Ｏ拡張デバイス３０のみがＣＰＵバスにデータを出力する。
【００５９】
なお、リード信号を第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０の双方に入力し、第１のＩ／Ｏ拡張デバイス３０側と第２のＩ／Ｏ拡張デバイス５０側のいずれがＣＰＵバスにデータを出力するかをアドレスにより排他的に割り振るようにしてもよい。たとえば、リードアクセス時の３bitのアドレスが（０００）、（００１）の場合は第１のＩ／Ｏ拡張デバイス３０がデータを出力し、リードアクセス時の３bitのアドレスが（０１０）、（０１１）の場合は第２のＩ／Ｏ拡張デバイス５０がデータを出力するというように構成してもよい。
【００６０】
なお、本実施の形態では８bitのデータバス信号としているが、８bitに限定されるものではない。また３bitのアドレス信号としているが、３bitに限定されるものではない。
【００６１】
図４は、第１のＩ／Ｏ拡張デバイス３０および第２のＩ／Ｏ拡張デバイス５０の概略の内部構成を示している。第１のＩ／Ｏ拡張デバイス３０は、ＣＰＵ１１のバスに接続されてデータを入出力するためのバスインターフェイス部３１と、入力制御レジスタ３２と、出力制御レジスタ３３と、復帰条件判定部３４と、遅延回路３５と、シーケンス制御部３６とを備えている。
【００６２】
第２のＩ／Ｏ拡張デバイス５０は、バスインターフェイス部５１と、入力制御レジスタ５２と、出力制御レジスタ５３と、復帰条件判定部５４と、ノイズフィルタ回路５５と、シーケンス制御部５６とを備えている。
【００６３】
入力制御レジスタ３２、５２は、ＣＰＵ１１が読み取り可能なレジスタであり、各bitに外部からの入力信号がそれぞれ割り当てられており、各bitに入力信号の値が反映される。出力制御レジスタ３３、５３は、ＣＰＵ１１が各bitの値を設定可能なレジスタであり、設定された値に応じた出力信号が外部へ出力される。
【００６４】
復帰条件判定部３４、５４は、入力信号の値が変化した際に、その変化後の入力信号の値と、現在の状態（ここでは、画像形成装置１０の省電力に関する状態）とから、状態遷移が必要か否かを判定し、状態遷移すると判定した場合に、遷移先の状態を示す状態通知信号を出力する機能を果たす。
【００６５】
シーケンス制御部３６、５６は、出力制御レジスタ３３、５３に設定された値を出力信号として出力する際の出力シーケンス（出力順序や遅延時間など）を制御する。
【００６６】
ノイズフィルタ回路５５は、第１のＩ／Ｏ拡張デバイス３０から入力される状態通知信号のノイズを除去する回路である。状態通知信号は、基板上のパターンを経由して第１のＩ／Ｏ拡張デバイス３０から第２のＩ／Ｏ拡張デバイス５０へ伝搬されるので、受け取る側の第２のＩ／Ｏ拡張デバイス５０はノイズ除去のために内部のノイズフィルタ回路５５を経由させて状態通知信号を受け取る。
【００６７】
ノイズフィルタ回路５５は公知の任意の回路でよいが、ここでは、多段のシフトレジスタ構成とし、全bitが”１”となった時、次段の回路へ状態通知信号を渡すように動作する。このため、第２のＩ／Ｏ拡張デバイス５０では、状態通知信号で通知された遷移先の状態が内部に反映されるタイミングが、ノイズフィルタ回路５５を構成するシフトレジスタの段数分だけ遅延する。
【００６８】
第１のＩ／Ｏ拡張デバイス３０の遅延回路３５は、復帰条件判定部３４の出力した状態通知信号を、第２のＩ／Ｏ拡張デバイス５０が有するノイズフィルタ回路５５の遅延時間と等しい時間だけ遅延させる回路である。復帰条件判定部３４の出力した状態通知信号は、遅延回路３５で遅延されて第１のＩ／Ｏ拡張デバイス３０の各部（出力制御レジスタ３３やシーケンス制御部３６など）に入力される。これにより、状態通知信号の示す遷移先の状態へ移行するタイミングが第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０で一致する。
【００６９】
このほか、第１のＩ／Ｏ拡張デバイス３０、第２のＩ／Ｏ拡張デバイス５０は、内部の動作を制御する図示省略の制御部を備えている。制御部は、出力制御レジスタ３３、５３の設定値を、状態通知信号が示す遷移先の状態に対応した値に書き換える機能などを果たす。
【００７０】
ここでは、第１のＩ／Ｏ拡張デバイス３０および第２のＩ／Ｏ拡張デバイス５０は、ＣＰＬＤ(Complex Programmable Logic Device)で構成される。第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０は、基本的に共通の回路(ＲＴＬ(Register transfer level)で記述された回路)で構成されている。詳細には、第１のＩ／Ｏ拡張デバイス３０のバスインターフェイス部３１、入力制御レジスタ３２、出力制御レジスタ３３、復帰条件判定部３４、シーケンス制御部３６はそれぞれ、第２のＩ／Ｏ拡張デバイス５０のバスインターフェイス部５１、入力制御レジスタ５２、出力制御レジスタ５３、復帰条件判定部５４、シーケンス制御部５６と同一の回路で構成される。
【００７１】
ただし、第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０のそれぞれが担う機能に応じて、回路間の接続や、レジスタ３２、３３、５２、５３とチップの端子との接続回路を相違させてある。たとえば、出力機能を担う第２のＩ／Ｏ拡張デバイス５０では、内部でリード信号を非アクティブな論理・レベルに固定してある。これにより第２のＩ／Ｏ拡張デバイス５０は、リードアクセスに応答しない。また、第２のＩ／Ｏ拡張デバイス５０では入力機能は不要なので、入力制御レジスタ５２への入力値を、非アクティブな論理・レベルに固定してある。一方、入力機能を担う第１のＩ／Ｏ拡張デバイス３０においては、出力制御レジスタ３３の出力をチップの端子に接続していない。
【００７２】
入力機能を果たす第１のＩ／Ｏ拡張デバイス３０の入力制御レジスタ３２は、ＣＰＵ１１によって読み取られる。一般的なデバイスバスではホストであるＣＰＵが一定周期でＩ／Ｏ拡張デバイスの入力制御レジスタに対してリードアクセスを行うことでそのＩ／Ｏ拡張デバイスに入力されている各入力信号（センサからの信号など）の状態を認識している。
【００７３】
この方式はポーリングと呼ばれる。ポーリング方式の場合、ＣＰＵが一定周期でリードアクセスを行う必要があるため、ＣＰＵの負荷が増大してしまう。
【００７４】
ポーリング方式とは別の方式として割り込み方式がある。割り込み方式では、Ｉ／Ｏ拡張デバイスが各入力信号の変化を検出して割り込み信号をＣＰＵに出力する。ＣＰＵは割り込み信号が入力された場合にＩ／Ｏ拡張デバイスの入力制御レジスタに対してリードアクセスを行う。
【００７５】
このように、割り込み方式ではＣＰＵの負荷が軽減されるので、本実施の形態にかかわる第１のＩ／Ｏ拡張デバイス３０では、割り込み方式を採用している。第１のＩ／Ｏ拡張デバイス３０は、複数の入力信号に係る割り込みの通知を１本の割り込み信号で行っている。このような割り込みは、集合割り込みと呼ばれる。第１のＩ／Ｏ拡張デバイス３０は、どの入力信号が変化したかを示すための割り込み要因レジスタと、割り込み要因レジスタをクリアするための割り込み要因クリアレジスタを備えている。
【００７６】
ＣＰＵ１１は、集合割り込みを受け取ると、第１のＩ／Ｏ拡張デバイス３０の割り込み要因レジスタをリードして、どの入力信号に変化があったかを認識する。ＣＰＵ１１が、割り込み要因クリアレジスタの該当bitに”１”をライトすると、割り込み要因レジスタの対応するビットが”０”にクリアされる。
【００７７】
次に、第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０の端子の割り当てについて説明する。
【００７８】
第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０は同一のパッケージのＣＰＤＬである。第１のＩ／Ｏ拡張デバイス３０、第２のＩ／Ｏ拡張デバイス５０は共に、電源、ＧＮＤ、クロックなどの入力が必須であり、ユーザが任意に割り当て可能な端子数は、いずれも２７本であるものとする。
【００７９】
図５は、第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０での上記２７本の端子に割り当てた信号を示している。
【００８０】
第１のＩ／Ｏ拡張デバイス３０においては、ｃｈ３のセレクト信号、ライト信号、リード信号、８bitのデータバス信号、３bitのアドレス信号、集合割り込み信号で合計１５本となり、２本を第２のＩ／Ｏ拡張デバイス５０への状態通知信号用として使用する。そして、残り１０本を、入力機能に係る入力信号の入力端子として使用する。
【００８１】
第２のＩ／Ｏ拡張デバイス５０においては、ｃｈ３のセレクト信号、ライト信号、８bitのデータバス信号、３bitのアドレス信号で合計１３本となり、２本を第１のＩ／Ｏ拡張デバイス３０からの状態通知信号の受け取り用として使用する。そして、残り１２本を出力機能に係る出力信号の出力端子として使用する。
【００８２】
２本の状態通知信号は、画像形成装置１０においてＣＰＵ１１が動作を停止しているときに取り得る省電力状態を示す。具体的には、スリープ状態を示すスリープ通知信号と、ＥｒＰ状態を表すＥｒＰ通知信号である。状態通知信号に使われる信号線の本数は、ＣＰＵ１１が動作を停止する際に取り得る省電力状態の数に対応した最小数にされている。ここでは、スリープ状態とＥｒＰ状態が省電力状態であり、これに通常状態を加えた、３状態を通知する必要があるため、２本の信号線を使用している。
【００８３】
スリープ状態とは、ＣＰＵ１１やＡＳＩＣなどの電源を落とし、センサ等の電源のみがオンにされている状態である。ＥｒＰ状態とは、スリープ状態よりもさらに電力消費の少ない状態であり、スリープ状態で電源がオンされていたセンサのうちの一部のセンサのみの電源しかオンされない状態である。たとえば、どちらの状態もＣＰＵ１１や画像処理用のＡＳＩＣや画像形成装置１０の機械部分（画像読取部１７やプリンタ部２１）の制御部の電源はオフになっているが、スリープ状態は操作パネル１８、ファクシミリ通信部２３、フロントカバーセンサ、スキャナカバーセンサ、原稿検知センサ、無線LANデバイス、タイマーＩＣの全ての電源が入ったままであり、ＥｒＰ状態は操作パネル１８、タイマーのみ電源が入っている。
【００８４】
通常時は２本の状態通知信号が共に“０”となる。画像形成装置１０がスリープ状態になったときは、スリープ通知信号が“１”かつＥｒＰ通知信号が“０”となる。ＥｒＰ状態になったときはスリープ通知信号が“０”かつＥｒＰ通知信号が“１”となる。通常状態とは、ＣＰＵ１１やその他の各部に電源が供給された状態であり、画像形成装置１０がジョブを実行可能な状態である。
【００８５】
図６は、第１のＩ／Ｏ拡張デバイス３０、第２のＩ／Ｏ拡張デバイス５０が有するレジスタの一覧を示している。第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０のレジスタ構成は同一であり、いずれも８つのレジスタを備えている。図６の一覧では、アドレスと、レジスタ名と、可能なアクセスの種類とを対応付けて示してある。
【００８６】
第１のＩ／Ｏ拡張デバイス３０および第２のＩ／Ｏ拡張デバイス５０は、それぞれ、出力制御レジスタ３３として、第１出力制御レジスタと第２出力制御レジスタを備え、入力制御レジスタ３２として、第１入力制御レジスタと第２入力制御レジスタを備えている。また第１入力制御レジスタ、第２入力制御レジスタに対応して、第１割り込み要因レジスタ、第２割り込み要因レジスタ、および、第１割り込み要因クリアレジスタ、第２割り込み要因クリアレジスタを備えている。
【００８７】
第１出力制御レジスタは、アドレス（０００）に割り当てられた８bitのリードライト可能なレジスタである。各bitは、第２のＩ／Ｏ拡張デバイス５０の出力０〜出力７の出力信号と対応しており、ＣＰＵ１１は各bitを書き換えることで対応する出力信号を制御できる。
【００８８】
第２出力制御レジスタは、アドレス（００１）に割り当てられた８bitのリードライト可能なレジスタである。各bitは、第２のＩ／Ｏ拡張デバイス５０の出力８から出力１１の出力信号と対応しており、ＣＰＵ１１は各bitを書き換えることで対応する出力信号を制御できる。第２出力制御レジスタは８bitであるが、出力端子の数の制限から、実際に使用するのは下位４bitのみである。
【００８９】
第１出力制御レジスタおよび第２出力制御レジスタで制御する対象は、ＣＰＵ１１の電源、画像処理部１９などのＡＳＩＣの電源、操作パネル１８の電源、ネットワーク通信部２２の電源、ファクシミリ通信部２３の電源、図示省略したタイマーＩＣの電源、リセット信号などである。
【００９０】
第１入力制御レジスタは、アドレス（０１０）に割り当てられた８bitのリードのみ可能なレジスタである。各bitは第１のＩ／Ｏ拡張デバイス３０の入力０〜入力７に対応しており、ＣＰＵ１１は各bitを読みだすことで第１のＩ／Ｏ拡張デバイス３０の入力０〜入力７に入力されている入力信号の値を知ることができる。
【００９１】
第２入力制御レジスタは、アドレス（０１１）に割り当てられた８bitのリードのみ可能なレジスタである。下位の２bitは第１のＩ／Ｏ拡張デバイス３０の入力８、入力９に対応しており、ＣＰＵ１１はそれぞれのbitを読みだすことで第１のＩ／Ｏ拡張デバイス３０の入力８、入力９に入力されている入力信号の値を知ることができる。第２出力制御レジスタは８bitであるが、入力端子の数の制限から、実際に使用するのは下位２bitのみである。
【００９２】
第１入力制御レジスタ、第２入力制御レジスタに取り込む信号は、操作パネルスイッチ信号、ＦＡＸ着呼信号、カバーセンサ信号、原稿センサ信号、無線ＬＡＮ受信信号、タイマー信号などである。
【００９３】
第１割り込み要因レジスタは、アドレス（１００）に割り当てられた８bitのリードのみ可能なレジスタである。第１入力制御レジスタに反映される第１のＩ／Ｏ拡張デバイス３０の入力０〜入力７のうちのいずれかの入力信号の状態が変化した際に対応するbitが”１”にセットされる。第１割り込み要因レジスタと後述の第２割り込み要因レジスタのいずれかのbitが”１”である場合に、第１のＩ／Ｏ拡張デバイス３０はＣＰＵ１１に対して集合割り込み信号を出力する。第１のＩ／Ｏ拡張デバイス３０はＣＰＵ１１からアドレス（１００）に対するリード要求を受けると第１割り込み要因レジスタの値を返す。
【００９４】
第２割り込み要因レジスタは、アドレス（１０１）に割り当てられた８bitのリードのみ可能なレジスタである。第２入力制御レジスタに反映される第１のＩ／Ｏ拡張デバイス３０の入力８、入力９のいずれかの入力信号の状態が変化した際に対応するbitが”１”にセットされる。前述した第１割り込み要因レジスタと第２割り込み要因レジスタのいずれかのbitが”１”である場合に、第１のＩ／Ｏ拡張デバイス３０はＣＰＵ１１に対して集合割り込み信号を出力する。第１のＩ／Ｏ拡張デバイス３０はＣＰＵ１１からアドレス（１０１）に対するリード要求を受けると第２割り込み要因レジスタの値を返す。
【００９５】
第１割り込み要因クリアレジスタは、アドレス（１１０）に割り当てられた８bitのライトのみ可能なレジスタである。第１割り込み要因クリアレジスタは上記第１割り込み要因レジスタと対応しており、第１割り込み要因クリアレジスタの各bitに”１”がライトされたとき、対応する第１割り込み要因レジスタのbitが”０”にクリアされる。
【００９６】
第２割り込み要因クリアレジスタは、アドレス（１１１）に割り当てられた８bitのライトのみ可能なレジスタである。第２割り込み要因クリアレジスタは上記第２割り込み要因レジスタと対応しており、第２割り込み要因クリアレジスタの各bitに”１”がライトされたとき、対応する第２割り込み要因レジスタのbitが”０”にクリアされる。
【００９７】
次に、第１のＩ／Ｏ拡張デバイス３０および第２のＩ／Ｏ拡張デバイス５０の動作について説明する。
【００９８】
まず、画像形成装置１０が通常状態からスリープ状態またはＥｒＰ状態へ移行する場合について述べる。通常状態ではＣＰＵ１１が第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０にライトアクセスできるため、スリープ状態・ＥｒＰ状態の電源状態に合わせてＣＰＵ１１が出力制御レジスタ３３、５３の各bitを書き換える。ＣＰＵ１１の電源制御用のbitを“０”にするとＣＰＵ１１の電源がオフになるため、ＣＰＵ１１はこのbitを最後に“０”にして状態移行を完了させる。なお、第１のＩ／Ｏ拡張デバイス３０、第２のＩ／Ｏ拡張デバイス５０は、出力制御レジスタ３３、５３にＣＰＵ１１がセットした値に基づいて装置の状態を認識する。
【００９９】
次に、スリープ状態・ＥｒＰ状態時の動作および通常状態へ復帰する際の動作について説明する。
【０１００】
図７は、スリープ状態・ＥｒＰ状態から通常状態へ状態遷移する場合の動作を示す流れ図であり、図８はそのときの動作シーケンスを示している。
【０１０１】
ＣＰＵが動作を停止させているスリープ状態またはＥｒＰ状態において、第１のＩ／Ｏ拡張デバイス３０に入力されているいずれかの入力信号の値が変化すると（図７；ステップＳ１０１、図８：Ｐ００１）、第１のＩ／Ｏ拡張デバイス３０の復帰条件判定部３４は、この入力信号の変化によって画像形成装置１０を通常状態に遷移させるか否かを判定する（図７；ステップＳ１０２、図８：Ｐ００２）。
【０１０２】
復帰条件判定部３４は、現在の状態と変化した入力信号との組み合わせが、予め設定された組み合わせに該当するか否かを調べ、該当する場合は通常状態へ遷移すると判定する。
【０１０３】
たとえば、画像形成装置１０で用いている割り込み信号の中で、操作パネルスイッチ信号、FAX着呼信号、フロントカバーセンサ、スキャナカバーセンサ、原稿検知センサ、無線LAN受信信号、タイマー割り込み信号等が第１のＩ／Ｏ拡張デバイス３０へ入力信号として入力されているものとする。各入力信号の値は第１のＩ／Ｏ拡張デバイス３０の入力制御レジスタ３２に反映される。
【０１０４】
復帰条件判定部３４は、どの状態のときにどの入力信号が状態遷移の起因として有効になるかを示す判定テーブルを持っている。復帰条件判定部３４は、この判定テーブルから現在の状態で有効にされる入力信号を認識し、有効にされている入力信号の値が所定値に変化したとき、通常状態への状態遷移が必要と判定する。判定テーブルは、電源を落とされる前にＣＰＵ１１が第１のＩ／Ｏ拡張デバイス３０へ設定してもよいし、第１のＩ／Ｏ拡張デバイス３０が予め固定値として保持してもよい。
【０１０５】
センサの電源がオフになると、センサからの信号は”０”(Low)となり、Lowアクティブな信号であった場合には、アクティブとなってしまう。そのため、復帰条件判定部３４は、判定テーブルを参照して、有効なものを選別する。判定テーブルはスリープ状態とＥｒＰ状態で異なる。たとえば、スリープ状態では、操作パネルスイッチ信号、FAX着呼信号、フロントカバーセンサ、スキャナカバーセンサ、原稿検知センサ、無線LAN受信信号、タイマー割り込み信号が有効にされ、ＥｒＰ状態では、操作パネル１８、タイマー割り込み信号のみが有効にされる。
【０１０６】
復帰条件判定部３４は、判定結果が、状態遷移ありの場合は（図７；ステップＳ１０２；Ｙｅｓ）、割り込み要因レジスタの中の、該判定結果の起因になった入力信号に対応するbitを”１”(アクティブな値)にセットする。これにより、第１のＩ／Ｏ拡張デバイス３０からＣＰＵ１１に対して集合割り込み信号が出力される（図７；ステップＳ１０３、図８；Ｐ００３）。
【０１０７】
これと同時に、第１のＩ／Ｏ拡張デバイス３０の復帰条件判定部３４は、通常状態への状態遷移を示す状態通知信号を出力する（図７；ステップＳ１０４、図８；Ｐ００４）。第２のＩ／Ｏ拡張デバイス５０は、第１のＩ／Ｏ拡張デバイス３０から到来する状態通知信号をノイズフィルタ回路５５によってノイズを除去して受領する（図８；Ｐ１０１）。第１のＩ／Ｏ拡張デバイス３０は、復帰条件判定部３４から出力された状態通知信号を遅延回路３５で遅延させた後、内部の各所（出力制御レジスタ３３やシーケンス制御部３６）に到達させる（図８；Ｐ００５）。
【０１０８】
これにより、第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０は同じタイミングで、遷移後の状態（ここでは、通常状態）に対応する動作を開始する。具体的には、第１のＩ／Ｏ拡張デバイス３０、第２のＩ／Ｏ拡張デバイス５０のそれぞれにおいて、出力制御レジスタ３３、５３の値を通常状態時の値に自律的に書き換える（図７；ステップＳ１０５、図８；Ｐ００６、Ｐ１０２）。
【０１０９】
第１のＩ／Ｏ拡張デバイス３０は出力機能を持たないので、出力制御レジスタ３３の値が書き換えられるのみである。一方、第２のＩ／Ｏ拡張デバイス５０は、出力制御レジスタ５３の値が通常状態の値に書き換えられると、それに伴って出力信号の値を変更する。この際、第２のＩ／Ｏ拡張デバイス５０のシーケンス制御部５６は、出力信号を変化させるタイミングや順序を制御する（図７；ステップＳ１０６）。
【０１１０】
具体的には、まず、ＣＰＵ１１以外のデバイスの電源をオンにするように該当の出力信号の値を変化させ（図８；Ｐ１０３）、その後、所定時間が経過し、それらのデバイスが立ち上がった後に、ＣＰＵ１１がオンするように、ＣＰＵ１１の電源制御用の出力信号の値を変化させる（図８；Ｐ１０４）。なお、ＣＰＵ１１の電源も他のデバイスと同時に立ち上げておき、他のデバイスの立ち上げが完了してから、ＣＰＵ１１のリセット信号を解除するように制御してもよい。すなわち、周辺デバイスが通常状態に立ち上がってからＣＰＵ１１が動作するようになればよい。
【０１１１】
動作を開始したＣＰＵ１１は、集合割り込み信号を検知する（図７；ステップＳ１０７、図８；Ｐ２０１）。そして、ＣＰＵ１１は、第１のＩ／Ｏ拡張デバイス３０の割り込み要因レジスタをリードする（図７；ステップＳ１０８、図８；Ｐ２０２、Ｐ００７）。
【０１１２】
ＣＰＵ１１は、割り込み要因レジスタのいずれかのビットが”１”（アクティブ）か否かを判断し（図７；ステップＳ１０９）、いずれかのビットが”１”ならば（ステップＳ１０９；Ｙｅｓ）、該”１”になっているビットから割り込み要因を特定する。
【０１１３】
次に、ＣＰＵ１１は第１のＩ／Ｏ拡張デバイス３０の入力制御レジスタ３２の値をリードする（図７；ステップＳ１１０、図８；Ｐ２０３、Ｐ００８）。そして、リードした入力制御レジスタ３２の値に対応した処理を実行した後、対応する割り込み要因クリアレジスタに”１”を書き込んで、割り込み要因レジスタを”０”にクリアする（図７；ステップＳ１１１、図８；Ｐ２０４、Ｐ２０５、Ｐ００９）。
【０１１４】
前述したようにＣＰＵ１１以外の周辺デバイスはＣＰＵ１１より先に立ち上がっているので、ＣＰＵ１１が入力制御レジスタ３２の値をリードするときには、周辺デバイスは立ち上がっており、周辺デバイスが有するセンサ等の値を正しく入力することができる。たとえば、センサが立ち上がる前にＣＰＵ１１が入力制御レジスタ３２の値をリードした場合、その入力値は誤った値になってしまう。しかし、前述したシーケンスで立ち上げることにより、そのような誤入力は回避される。
【０１１５】
なお、図６に示すレジスタ構成では、第１割り込み要因レジスタと第２割り込み要因レジスタの２つがあるので、それぞれの割り込み要因レジスタについて、図７のステップＳ１０９からＳ１１１の処理（図８のＰ２０２からＰ２０５、Ｐ００７からＰ００９）を実行する。
【０１１６】
具体例を示す。図５に示した、図７のステップＳ１０１において、第１のＩ／Ｏ拡張デバイス３０の入力４の入力信号の状態が変化したとする。ここで入力４の入力信号は画像形成装置１０のフロントカバーの開閉を検知するセンサからの検出信号とする。
【０１１７】
入力４の入力信号の状態が変化すると、割り込み要因レジスタ１のbit４が”１”になり、ＣＰＵ１１に対して集合割り込みが出力される（ステップＳ１０３）。また、第２のＩ／Ｏ拡張デバイス５０への状態通知信号が通常状態を表す値（スリープ通知信号”０”、ＥｒＰ通知信号”０”）に変更される。
【０１１８】
第２のＩ／Ｏ拡張デバイス５０は、状態通知信号が通常状態を示したことを受け、出力制御レジスタ５３の値を通常状態時の値に書き換え、シーケンス制御部５６によってタイミングを制御しながら、出力制御レジスタ５３の値に対応する出力信号を出力して、各デバイスの電源をオンにする。値を書き換えるシーケンスは、各デバイスに規定された順番や待ち合わせ時間を満たすように行う。どのデバイスの電源をオンにするか（通常状態時に対応する出力制御レジスタ３３の値）は、予め第２のＩ／Ｏ拡張デバイス５０の内部に初期値として保存されていても良いし、ＣＰＵ１１が電源オフされる直前の各デバイスの電源状態を表すレジスタ値を保持しておいても良い。
【０１１９】
電源がオンにされたＣＰＵ１１は、集合割り込みを検出すると、第１割り込み要因レジスタおよび第２割り込み要因レジスタのリードを行い、どの入力信号が変化したかを特定する。ここでは、入力４の入力信号を特定する。特定後、該入力４に対応する第１入力制御レジスタをリードして、現時点で、入力４の入力信号が”０”と”１”のどちらの状態にあるかを確認する。確認後、対応した処理を行い、最後に第１割り込み要因クリアレジスタのbit４に”１”をライトすることによって割り込み要因をクリアする。この例の場合、フロントカバー開閉センサが割り込み要因であったので、ＣＰＵ１１は、操作パネル１８に「フロントカバーが開いています」といった表示を行う。
【０１２０】
このように、ＣＰＵ１１が停止中に生じた状態の変化を状態通知信号によって一のＩ／Ｏ拡張デバイス３０から他のＩ／Ｏ拡張デバイス５０に通知するので、各Ｉ／Ｏ拡張デバイス３０、５０で管理している状態を、ＣＰＵ１１の介在なしに一致させ、これら複数のＩ／Ｏ拡張デバイス３０、５０の動作をＣＰＵ１１の介在なしに整合させることができる。
【０１２１】
また、状態通知信号として使用する信号線の本数を必要最小本数としているので、実際のＩ／Ｏ拡張のために使用可能な端子数の減少を最小限にすることができる。
【０１２２】
ＣＰＵ１１を通常状態へ復帰させる際に、ＣＰＵ以外の周辺デバイスを通常状態に復帰させてから、ＣＰＵ１１が動作するようにしたので、立ち上がった直後のＣＰＵ１１が未通電のセンサの値を誤入力するといった事態が回避される。
【０１２３】
また、第２のＩ／Ｏ拡張デバイス５０は、ノイズフィルタ回路５５を通じて状態通知信号のノイズを除去するので、基板上のノイズで誤動作することがない。さらに、第１のＩ／Ｏ拡張デバイス３０は、第２のＩ／Ｏ拡張デバイス５０のノイズフィルタ回路５５で生じる遅延時間と同じ遅延時間の遅延回路３５を通じて状態通知信号を自デバイス内の各部へ通知するので、遷移後の状態に対応した動作の実行を開始するタイミングを、第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０で一致させることができる。
【０１２４】
また、第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０のレジスタ構成を共通とし、第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０の機能に応じて、レジスタと入出力端子とを接続する接続回路を相違させたので、第１のＩ／Ｏ拡張デバイス３０および第２のＩ／Ｏ拡張デバイス５０の設計工数が削減される。
【０１２５】
また、ＣＰＵ１１からのリードアクセスに対しては入力機能を割り当てられた第１のＩ／Ｏ拡張デバイス３０のみが応答を返すようにしたので、ＣＰＵ１１からは見掛け上１つのデバイスのみが接続されている状態と等価になり、バスアクセスの整合性を保つことができる。
【０１２６】
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【０１２７】
実施の形態では、Ｉ／Ｏ拡張デバイス群が、第１のＩ／Ｏ拡張デバイス３０と第２のＩ／Ｏ拡張デバイス５０で構成される例を示したが、３以上のＩ／Ｏ拡張デバイスで構成されてもかまわない。
【０１２８】
また、複数のＩ／Ｏ拡張デバイスが入力機能を担う、あるいは、複数のＩ／Ｏ拡張デバイスが出力機能を担うように構成されてもよい。さらには、Ｉ／Ｏ拡張デバイス群を構成する中の一のＩ／Ｏ拡張デバイスが入力機能と出力機能の双方を備えてもよい。入力機能が複数のＩ／Ｏ拡張デバイスに分散される場合、いずれのデバイスがＣＰＵバスにデータを出力するかをアドレス毎に排他的に割り振るようにすればよい。
【０１２９】
さらには、ＣＰＵ１１の１つのチャンネルに複数のＩ／Ｏ拡張デバイスを接続する例を示したが、複数のＩ／Ｏ拡張デバイスの接続に複数のチャンネルを使用する構成についても本発明は適用される。すなわち、複数のチャンネルを使用する場合でも、状態通知信号によってＣＰＵの介在なしに状態を一致させることは、複数のＩ／Ｏ拡張デバイスを使用する場合に有効である。
【０１３０】
実施の形態では、Ｉ／Ｏ拡張デバイスをＣＰＤＬで作成した例を示したが、これに限定されるものではない。また、Ｉ／Ｏ拡張デバイスの使用される装置は画像形成装置１０に限定されない。また、状態は、装置の電源状態に限定されるものではない。
【０１３１】
実施の形態では、スリープ状態、ＥｒＰ状態から通常状態へ状態遷移する場合を例示したが、復帰条件判定部３４が判定する状態遷移の遷移先は、通常状態に限定されるものではない。
【符号の説明】
【０１３２】
１０…画像形成装置
１１…ＣＰＵ
１２…第１の不揮発メモリ
１３…第２の不揮発メモリ
１４…ＲＡＭ
１５…ハードディスク装置
１６…自動原稿搬送部
１７…画像読取部
１８…操作パネル
１９…画像処理部
２１…プリンタ部
２２…ネットワーク通信部
２３…ファクシミリ通信部
２４…電源制御部
３０…第１のＩ／Ｏ拡張デバイス
３１…バスインターフェイス部
３２…入力制御レジスタ
３３…出力制御レジスタ
３４…復帰条件判定部
３５…遅延回路
３６…シーケンス制御部
５０…第２のＩ／Ｏ拡張デバイス
５１…バスインターフェイス部
５２…入力制御レジスタ
５３…出力制御レジスタ
５４…復帰条件判定部
５５…ノイズフィルタ回路
５６…シーケンス制御部
【図１】
2015035177.tif 000003
【図４】
2015035177.tif 000004
【図５】
2015035177.tif 000005
【図６】
2015035177.tif 000006
【図７】
2015035177.tif 000007
【図８】
2015035177.tif 000008
【図２】
2015035177.tif 000009
【図３】
2015035177.tif 000010