(57)【要約】【課題】  Ｉ２Ｃバスによるモジュール間の双方向通信が可能な通信システムを実現する。【解決手段】  一実施形態に係る通信システムは、Ｉ２Ｃバスにより相互に接続された複数のモジュールを備え、前記各モジュールは、前記Ｉ２Ｃバスに接続された、Ｉ２Ｃ通信のマスタとして機能するマスタデバイスと、前記Ｉ２Ｃバスに接続された、前記Ｉ２Ｃ通信のスレーブとして機能するスレーブデバイスと、をそれぞれ有する。【選択図】  図１
2018026088.tif 000002
【特許請求の範囲】
【請求項１】
Ｉ２Ｃバスにより相互に接続された複数のモジュールを備え、
前記各モジュールは、前記Ｉ２Ｃバスに接続された、Ｉ２Ｃ通信のマスタとして機能するマスタデバイスと、前記Ｉ２Ｃバスに接続された、前記Ｉ２Ｃ通信のスレーブとして機能するスレーブデバイスと、をそれぞれ有する
通信システム。
【請求項２】
前記マスタデバイスは、前記スレーブデバイスのアドレスを送信した後、前記マスタデバイスのアドレスを含むデータを送信する
請求項１に記載の通信システム。
【請求項３】
前記Ｉ２Ｃ通信は、マルチマスタ方式である
請求項１又は請求項２に記載の通信システム。
【請求項４】
前記Ｉ２Ｃバスは、データが送受信されるデータ線と、クロックが送受信されるクロック線と、を含む
請求項１乃至請求項３のいずれか１項に記載の通信システム。
【請求項５】
前記マスタデバイスによる前記Ｉ２Ｃ通信を禁止する第１の禁止コマンドが定義される
請求項１乃至請求項４のいずれか１項に記載の通信システム。
【請求項６】
前記マスタデバイスによる特定の外部装置へのアクセスを禁止する第２の禁止コマンドが定義される
請求項１乃至請求項５のいずれか１項に記載の通信システム。
【請求項７】
前記マスタデバイスによる前記Ｉ２Ｃ通信を所定の期間禁止する第３の禁止コマンドが定義される
請求項１乃至請求項６のいずれか１項に記載の通信システム。
【請求項８】
前記第１の禁止コマンドによる前記Ｉ２Ｃ通信の禁止を解除する第１の解除コマンドが定義される
請求項５に記載の通信システム。
【請求項９】
前記第２の禁止コマンドによる前記外部装置へのアクセスの禁止を解除する第２の解除コマンドが定義される
請求項６に記載の通信システム。
【請求項１０】
前記所定の期間の間に、前記第３の禁止コマンドによる前記Ｉ２Ｃ通信の禁止を解除する第３の解除コマンドが定義される
請求項７に記載の通信システム。
【請求項１１】
請求項１乃至請求項１０のいずれか１項に記載の通信システムを備える画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム及び画像形成装置に関する。
【背景技術】
【０００２】
ＭＦＰ（Multi-Function Peripheral）では、モジュール間の双方向通信のために、ＵＳＢ（Universal Serial Bus）やＰＣＩｅｘｐｒｅｓｓバスなどの、高速シリアルバスが利用されている。これらの高速シリアルバスは、通信開始時にリンクトレーニングやネゴシエーションなどの初期化処理が行われるため、ＭＦＰが起動してから通信可能になるまでに時間がかかる。また、高速シリアルバスは、待機電力が大きいため、ＭＦＰの省エネモードでは、高速シリアルバスによる通信を使用せず、低消費電力なバスを利用して通信する方が好ましい。
【０００３】
そこで、従来、通信開始が早く低消費電力なＩ２Ｃ（Inter Integrated Circuit）バスを、ＭＦＰの補助的なバスとして利用することが提案されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、Ｉ２Ｃバスには、Ｉ２Ｃ規格に規定されていない割り込み線を新設するなどしない限り、スレーブ側から通信を開始できないという問題があった。また、マルチマスタ方式のＩ２Ｃ通信であっても、マスタ同士が通信できないという問題や、全く同じコマンドが同時に送信された場合にコリジョンを検知できない可能性があるという問題があった。
【０００５】
本発明は、上記の課題に鑑みてなされたものであり、Ｉ２Ｃバスによるモジュール間の双方向通信が可能な通信システムを実現することを目的とする。
【課題を解決するための手段】
【０００６】
一実施形態に係る通信システムは、Ｉ２Ｃバスにより相互に接続された複数のモジュールを備え、前記各モジュールは、前記Ｉ２Ｃバスに接続された、Ｉ２Ｃ通信のマスタとして機能するマスタデバイスと、前記Ｉ２Ｃバスに接続された、前記Ｉ２Ｃ通信のスレーブとして機能するスレーブデバイスと、をそれぞれ有する。
【発明の効果】
【０００７】
本発明の各実施形態によれば、Ｉ２Ｃバスによるモジュール間の双方向通信が可能な通信システムを実現することができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態に係る通信システムのハードウェア構成の一例を示す図。
【図２】マスタデバイスのハードウェア構成の一例を示す図。
【図３】第１実施形態におけるＩ２Ｃ通信のデータフォーマットの一例を示す図。
【図４】第１実施形態におけるＩ２Ｃ通信のデータフォーマットの他の例を示す図。
【図５】第１実施形態における、モジュール間のデータの送信処理の一例を示すフローチャート。
【図６】第２実施形態に係る画像形成装置のハードウェア構成の一例を示す図。
【図７】第２実施形態に係る画像形成装置の起動時の動作の一例を示すシーケンス図。
【図８】第２実施形態に係る画像形成装置の省エネモードの移行時及び復帰時の動作の一例を示すシーケンス図。
【図９】外部装置として不揮発性ＲＡＭが接続された通信システムの一例を示す図。
【図１０】マスタデバイスが不揮発性ＲＡＭに排他的にアクセスする際の処理の概要を示すシーケンス図。
【図１１】禁止コマンド及び解除コマンドのコマンドフォーマットの一例を示す図
【図１２】禁止コマンド及び解除コマンドのコマンドフォーマットの一例を示す図
【図１３】禁止コマンド及び解除コマンドのコマンドフォーマットの一例を示す図
【図１４】各スレーブデバイスが実行する処理の一例を示すフローチャート。
【図１５】各スレーブデバイスが実行する処理の一例を示すフローチャート。
【図１６】各スレーブデバイスが実行する処理の一例を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、本発明の各実施形態について、添付の図面を参照しながら説明する。なお、各実施形態に係る明細書及び図面の記載に関して、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重畳した説明を省略する。
【００１０】
（第１実施形態）
第１実施形態に係る通信システムについて、図１〜図５を参照して説明する。図１は、本実施形態に係る通信システムのハードウェア構成の一例を示す図である。図１の通信システムは、データ線Ｌ１と、クロック線Ｌ２と、モジュールＭ１〜Ｍｎ（ｎ≧２）と、を備える。
【００１１】
データ線Ｌ１は、シリアルデータ（ＳＤＡ）が送受信されるＩ２Ｃバスである。クロック線Ｌ２は、シリアルクロック（ＳＣＬ）が送受信されるＩ２Ｃバスである。
【００１２】
モジュールＭ１〜Ｍｎは、Ｉ２Ｃバス（データ線Ｌ１及びクロック線Ｌ２）により相互に接続される。以下では、モジュールＭ１〜Ｍｎのうち、ｉ番目のモジュールをモジュールＭｉと称する。
【００１３】
図１のモジュールＭｉは、各モジュールを識別するための７ビットのアドレスを割り当てられている。図１の例では、モジュールＭ１のアドレスは１１０１０００であり、モジュールＭ２のアドレスは１１１００００である。モジュールＭｉに割り当てられたアドレスは、後述するマスタデバイスｍｉ及びスレーブデバイスｓｉにより共用される。なお、各モジュールＭｉのアドレスは１０ビットであってもよい。
【００１４】
モジュールＭｉは、マスタデバイスｍｉと、スレーブデバイスｓｉと、を備える。マスタデバイスｍｉ及びスレーブデバイスｓｉは、プルアップ抵抗（例えば、１ｋΩ）を介して電源電圧に接続される。
【００１５】
マスタデバイスｍｉは、Ｉ２Ｃ通信のマスタとして機能するＩ２Ｃデバイスであり、ＦＰＧＡ（Field Programmable Gate Array）やマイコンにより構成される。マスタデバイスｍｉは、マルチマスタモードで動作する。
【００１６】
図２は、マスタデバイスｍｉのハードウェア構成の一例を示す図である。図２のマスタデバイスｍｉは、ＣＰＵ（Central Processing Unit）１０１と、ＲＡＭ（Random Access Memory）１０２と、ＲＯＭ（Read Only Memory）１０３と、を備える。また、マスタデバイスｍｉは、入出力インタフェース（Ｉ／Ｏ）１０４と、ＳＤＡ端子１０５と、ＳＣＬ端子１０６と、内部バス１０７と、を備える。
【００１７】
ＣＰＵ１０１は、マスタデバイスｍｉをＩ２Ｃ通信のマスタとして機能させるためのプログラムを実行する。ＲＡＭ１０２は、ＣＰＵ１０２に作業領域を提供する。ＲＯＭ１０３は、ＣＰＵ１０１が実行するプログラムを格納する。入出力インタフェース１０４は、外部とのデータの送受信を仲介する。ＳＤＡ端子１０５は、入出力インタフェース１０４に設けられ、データ線Ｌ１に接続される。ＳＣＬ端子１０６は、入出力インタフェース１０４に設けられ、クロック線Ｌ２に接続される。内部バス１０７は、ＣＰＵ１０１と、ＲＡＭ１０２と、ＲＯＭ１０３と、入出力インタフェース１０４と、を相互に接続する。マスタデバイスｍｉは、ＳＤＡ端子１０５及びＳＣＬ端子１０６を介して、データ線Ｌ１及びクロック線Ｌ２に、ワイヤードアンドロジックで接続される。
【００１８】
スレーブデバイスｓｉは、Ｉ２Ｃ通信のスレーブとして機能するＩ２Ｃデバイスであり、ＦＰＧＡやマイコンにより構成される。スレーブデバイスｓｉのハードウェア構成は、マスタデバイスｍｉと同様である。ただし、スレーブデバイスｓｉのＲＯＭには、スレーブデバイスｓｉをＩ２Ｃ通信のスレーブとして機能させるためのプログラムが格納される。スレーブデバイスｓｉは、マスタデバイスｍｉとは独立したチップにより構成されてもよいし、マスタデバイスｍｉと同一のチップにより構成されてもよい。
【００１９】
本実施形態において、マスタデバイスｍｉはデータの送信だけを行い、スレーブデバイスｓｉはデータの受信だけを行う。したがって、モジュールＭｉからモジュールＭｊへのデータの送信は、マスタデバイスｍｉからスレーブデバイスｓｊにデータを送信することにより行われる。これに対して、モジュールＭｊからモジュールＭｉへのデータの送信は、マスタデバイスｍｊからスレーブデバイスｓｉにデータを送信することにより行われる。
【００２０】
ここで、図３は、本実施形態におけるＩ２Ｃ通信のデータフォーマットの一例を示す図である。図３は、マスタデバイスｍ２がスレーブデバイスｓ１にデータを送信する場合のデータフォーマットを示している。
【００２１】
本実施形態において、マスタデバイスｍｉは、スレーブデバイスｓｊにデータを送信する場合、スタートコンディションＳを送信した後、宛先となるスレーブデバイスｓｊのアドレス（slave add）と、０と、を送信する。ここで送信される０は、マスタデバイスｍｉからの送信（Ｗｒｉｔｅ要求）を示すＲｅａｄ／Ｗｒｉｔｅ要求である。また、スレーブデバイスｓｊのアドレスとは、スレーブアドレスｓｊを備えるモジュールＭｊに割り当てられたアドレスのことである。図３の例では、スレーブデバイスｓ１のアドレスとして、１１０１０００が送信されている。
【００２２】
その後、マスタデバイスｍｉは、スレーブデバイスｓｊからＡＣＫを受信すると、１バイトのデータを送信する。本実施形態では、マスタデバイスｍｉは、送信元であるマスタデバイスｍｉのアドレス（master add）を含むデータを送信する。マスタデバイスｍｉのアドレスとは、マスタアドレスｍｉを備えるモジュールＭｉに割り当てられたアドレスのことである。マスタデバイスｍｉは、１バイトのデータとして、マスタデバイスｍｉのアドレスの先頭または末尾に、任意のビット（０又は１）を付加したデータを送信すればよい。図３の例では、マスタデバイスｍ２のアドレス１１１００００の末尾に０を付加したデータが送信されている。以降のデータフォーマットは、Ｉ２Ｃ規格で定められた通りである。
【００２３】
図４は、本実施形態におけるＩ２Ｃ通信のデータフォーマットの他の例を示す図である。図４は、マスタデバイスｍ２が全てのスレーブデバイスｓ１〜ｓｎにデータを同報送信する場合のデータフォーマットを示している。
【００２４】
Ｉ２Ｃ規格では、ゼネラルコールアドレスと呼ばれる同報送信用のアドレスが用意されている。ゼネラルコールアドレスは、７ビットの場合、０００００００である。マスタデバイスｍｉは、データを同報送信する場合、宛先となるスレーブデバイスのアドレスとして、図４に示すように、このゼネラルコールアドレスを送信すればよい。
【００２５】
図５は、本実施形態における、モジュールＭｉからモジュールＭｊへのデータの送信処理の一例を示すフローチャートである。
【００２６】
まず、モジュールＭｉのマスタデバイスｍｉは、スタートコンディションＳを送信する（ステップＳ１０１）。具体的には、マスタデバイスｍｉは、ＳＣＬがＨｉｇｈの間に、ＳＤＡをＬｏｗにする。
【００２７】
次に、マスタデバイスｍｉは、モジュールＭｊのスレーブデバイスｓｊのアドレスと、Ｗｒｉｔｅ要求と、を送信する（ステップＳ１０２）。通信システムに含まれる各スレーブデバイスは、マスタデバイスｍｉが送信したアドレスを受信すると、受信したアドレスと、自装置のアドレスと、を比較する。マスタデバイスｍｉが送信したアドレスが自装置のアドレスが一致するスレーブデバイスｓｊは、ＡＣＫを送信する。
【００２８】
マスタデバイスｍｉは、スレーブデバイスｓｊのアドレスの送信後、所定時間以内にＡＣＫを受信できない場合（ステップＳ１０３のＮＯ）、エラー処理を実行する（ステップＳ１０４）。これは、マスタデバイスｍｉがＮＡＫを受信した場合も同様である。マスタデバイスｍｉは、エラー処理として、実行中の送信処理をリセットしてもよいし、送信処理をはじめからやり直してもよい。
【００２９】
なお、マスタデバイスｍｉは、エラー処理を実行する前に、一定時間ごとに所定回数だけスレーブデバイスｓｊのアドレスの送信を繰り返してもよい。繰り返しの回数や間隔は、任意に設定可能である。
【００３０】
一方、マスタデバイスｍｉは、スレーブデバイスｓｊのアドレスの送信後、所定時間以内にＡＣＫを受信した場合（ステップＳ１０３のＹＥＳ）、自装置のアドレスを含む１バイトのデータを送信する（ステップＳ１０５）。スレーブデバイスｓｊは、このデータを受信すると、ＡＣＫを送信する。
【００３１】
マスタデバイスｍｉは、自装置のアドレスを含むデータの送信後、所定時間以内にＡＣＫを受信できない場合（ステップＳ１０６のＮＯ）、エラー処理を実行する（ステップＳ１０４）。これは、マスタデバイスｍｉがＮＡＫを受信した場合も同様である。マスタデバイスｍｉは、エラー処理として、実行中の送信処理をリセットしてもよいし、送信処理をはじめからやり直してもよい。
【００３２】
なお、マスタデバイスｍｉは、エラー処理を実行する前に、一定時間ごとに所定回数だけ自装置のアドレスを含むデータの送信を繰り返してもよい。繰り返しの回数や間隔は、任意に設定可能である。
【００３３】
一方、マスタデバイスｍｉは、自装置のアドレスを含むデータの送信後、所定時間以内にＡＣＫを受信した場合（ステップＳ１０６のＹＥＳ）、１バイトの送信対象データを送信（ステップＳ１０７）。スレーブデバイスｓｊは、このデータを受信すると、ＡＣＫを送信する。
【００３４】
マスタデバイスｍｉは、送信対象データの送信後、所定時間以内にＡＣＫを受信できない場合（ステップＳ１０８のＮＯ）、エラー処理を実行する（ステップＳ１０４）。これは、マスタデバイスｍｉがＮＡＫを受信した場合も同様である。マスタデバイスｍｉは、エラー処理として、実行中の送信処理をリセットしてもよいし、送信処理をはじめからやり直してもよい。
【００３５】
なお、マスタデバイスｍｉは、エラー処理を実行する前に、一定時間ごとに所定回数だけ送信対象データの送信を繰り返してもよい。繰り返しの回数や間隔は、任意に設定可能である。
【００３６】
一方、マスタデバイスｍｉは、送信対象データの送信後、所定時間以内にＡＣＫを受信した場合（ステップＳ１０８のＹＥＳ）、全ての送信対象データの送信を完了したか判定する（ステップＳ１０９）。未送信の送信対象データがある場合（ステップＳ１０９のＮＯ）、処理はステップＳ１０７に戻る。以降、全ての送信対象データの送信が完了するまで、ステップＳ１０７〜Ｓ１０９の処理が繰り返される。
【００３７】
一方、全ての送信対象データの送信が完了した場合（ステップＳ１０９のＹＥＳ）、マスタデバイスｍｉは、ストップコンディションＰを送信する（ステップＳ１１０）。具体的には、マスタデバイスｍｉは、ＳＣＬがＨｉｇｈの間に、ＳＤＡをＨｉｇｈにする。以上の処理により、モジュールＭｉからモジュールＭｊに、送信対象データを送信することができる。
【００３８】
以上説明した通り、本実施形態によれば、Ｉ２Ｃバスによるモジュール間の双方向通信が可能な通信システムを実現することができる。
【００３９】
また、本実施形態によれば、マスタデバイスｍｉは、スレーブデバイスｓｊのアドレスを送信した後、自装置のアドレスを含むデータを送信する。これにより、各マスタデバイスｍｉが送信するデータの内容を異ならせることができる。したがって、複数のマスタデバイスが同時にデータを送信した場合であっても、送信データのコリジョンを確実に検出することができる。
【００４０】
（第２実施形態）
第２実施形態に係る通信システムについて、図６〜図８を参照して説明する。本実施形態では、第１実施形態に係る通信システムを備えた画像形成装置（ＭＦＰ）について説明する。
【００４１】
本実施形態に係る画像形成装置は、スキャナ機能、プリンタ機能、コピー機能などの各種の機能を備える複合機である。図６は、本実施形態に係る画像形成装置のハードウェア構成の一例を示す図である。図６の画像形成装置は、本体コントローラ１と、操作部２と、電源部３と、を備える。図示省略されているが、画像形成装置は、上記の機能を実現するエンジン（プリンタエンジンやスキャナエンジンなど）も備える。
【００４２】
本体コントローラ１は、画像形成装置の本体を制御するモジュール（コントローラ）である。本体コントローラ１は、ＣＰＵと、ＲＯＭと、ＲＡＭと、を備える。ＣＰＵがＲＯＭに格納されたプログラムをＲＡＭ上で実行することにより、画像形成装置の基本処理が実行される。また、本体コントローラ１は、省エネサブシステム１１を備える。省エネサブシステム１１は、画像形成装置の省エネモード時に起動する小型マイコンシステムである。省エネサブシステム１１は、マスタデバイスｍ１と、スレーブデバイスｓ１と、を備える。マスタデバイスｍ１及びスレーブデバイスｓ１は、共通のアドレスを割り当てられ、データ線Ｌ１及びクロック線Ｌ２にそれぞれ接続される。
【００４３】
操作部２は、画像形成装置の操作パネルシステムを構成するモジュールである。操作部２は、本体コントローラ１と大容量の高速な通信が必要のため、ＵＳＢで接続されている。操作部２は、操作パネルを備える。操作パネルは、ディスプレイ、操作キー、タッチパネルなどを備える入出力装置である。また、操作部２は、操作パネルを制御する操作部マイコン２１を備える。操作部マイコン２１は、マスタデバイスｍ２と、スレーブデバイスｓ２と、を備える。マスタデバイスｍ２及びスレーブデバイスｓ２は、共通のアドレスを割り当てられ、データ線Ｌ１及びクロック線Ｌ２にそれぞれ接続される。
【００４４】
電源部３は、本体コントローラ１や操作部２などの電源を管理するモジュールである。電源部３は、画像形成装置の電源ラインや電源スイッチを備える。また、電源部３は、電源ラインや電源スイッチを制御する電源マイコン３１を備える。電源マイコン３１は、マスタデバイスｍ３と、スレーブデバイスｓ３と、を備える。マスタデバイスｍ３及びスレーブデバイスｓ３は、共通のアドレスを割り当てられ、データ線Ｌ１及びクロック線Ｌ２にそれぞれ接続される。
【００４５】
本実施形態において、通信システムのＩ２Ｃバスは、画像形成装置の補助的なバスとして利用される。以下、Ｉ２Ｃバスの使用態様について説明する。
【００４６】
＜１．起動時＞
図７は、本実施形態に係る画像形成装置の起動時の動作の一例を示すシーケンス図である。図７の例では、シーケンスの開始時点で、画像形成装置は電源を切断されている。また、図７において、マスタデバイスからの通信に対するＡＣＫ又はＮＡＫの返信は省略されている。
【００４７】
ユーザにより電源部３の電源スイッチを押下されると、電源マイコン３１は、瞬時に起動し、本体コントローラ１及び操作部２の電源投入（電源ＯＮ）制御を実行する（ステップＳ２０１，Ｓ２０２）。本体コントローラ１及び操作部２に電源が投入されると、省エネサブシステム１１及び操作部マイコン２１が瞬時に起動する。これにより、本体コントローラ１、操作部２、及び電源部３は、Ｉ２Ｃバスを利用して通信可能となる。
【００４８】
その後、操作部マイコン２１のマスタデバイスｍ２は、省エネサブシステム１１のスレーブデバイスｓ１に、操作部２の状態を通知する。操作部２の状態として、起動開始、起動中、起動完了などの状態が考えられる。また、操作部マイコン２１のマスタデバイスｍ２は、操作部２の全体の状態を通知してもよいし、操作部２の起動ステージごとに状態を通知してもよい。起動ステージとして、ディスプレイ、ローダ、ＯＳ（Operating System）、及び操作部２全体の起動が考えられる。
【００４９】
図７の例では、操作部マイコン２１のマスタデバイスｍ２は、操作部２の起動完了後、操作部２の起動完了を示すＲｅａｄｙメッセージを、省エネサブシステム１１のスレーブデバイスｓ１に送信している（ステップＳ２０３）。
【００５０】
操作部２が起動完了した時点で省エネサブシステム１１が起動していない場合や、Ｉ２Ｃ通信の準備が完了していない場合が考えられる。このため、操作部マイコン２１のマスタデバイスｍ２は、省エネサブシステム１１のスレーブデバイスｓ１からＡＣＫを受信するまで、操作部２の状態を定期的に通知するのが好ましい。操作部２は、省エネサブシステム１１のスレーブデバイスｓ１からＡＣＫを受信することにより、省エネサブシステム１１の起動を確認することができる。
【００５１】
省エネサブシステム１１が起動し、操作部マイコン２１から状態を通知されると、省エネサブシステム１１のマスタデバイスｍ１は、操作部マイコン２１のスレーブデバイスｓ２に、本体コントローラ１のバージョン情報を通知する（ステップＳ２０４）。こうして得られた本体コントローラ１のバージョン情報を利用して、操作部２を初期化することができる。
【００５２】
なお、本体コントローラ１のバージョン情報は、本体コントローラ１の各起動ステージで実行されるプログラムのバージョン情報であってもよいし、本体コントローラ１を構成する各サブモジュールのハードウェアのバージョン情報であってもよい。
【００５３】
同様に、操作部マイコン２１が本体コントローラ１からＡＣＫを受信すると、操作部マイコン２１のマスタデバイスｍ２は、省エネサブシステム１１のスレーブデバイスｓ１に、操作部２のバージョン情報を通知する（ステップＳ２０５）。こうして得られた操作部２のバージョン情報を利用して、本体コントローラ１を初期化することができる。
【００５４】
なお、操作部２のバージョン情報は、操作部２の各起動ステージで実行されるプログラムのバージョン情報であってもよいし、操作部２を構成する各サブモジュールのハードウェアのバージョン情報であってもよい。
【００５５】
その後、操作部マイコン２１のマスタデバイスｍ２は、省エネサブシステム１１のスレーブデバイスｓ１に起動条件を通知する（ステップＳ２０６）。起動条件とは、画像形成装置の起動に影響を及ぼす任意の条件のことである。起動条件は、例えば、画像形成装置の起動中に実行された、操作部２の操作キーの押下により入力される。起動条件の通知は、例えば、工程検査モードやソフトウェアの更新モードなどの特殊な動作モードで画像形成装置を起動する場合に要求される。したがって、操作部マイコン２１のマスタデバイスｍ２は、画像形成装置を通常起動する場合、起動条件の通知を省略してもよい。
【００５６】
本体コントローラ１は、起動完了すると、画像形成装置全体の状態に責任を持ち、各モジュールの状態遷移を他のモジュールに通知する。本体コントローラ１は、各モジュールの状態遷移を、Ｉ２Ｃバスを利用して通知してもよいし、通知先のモジュールと通信可能な他のバス（例えば、ＵＳＢ）を利用して通知してもよい。
【００５７】
図７の例では、本体コントローラ１は、操作部２に、エンジンの停止（ＯＦＦ）や起動（ＯＮ）を通知している（ステップＳ２０７，Ｓ２０８）。操作部２は、このような通知に基づいて、ディスプレイのバックライトの消灯や点灯などの制御を実行することができる。
【００５８】
従来の画像形成装置は、起動時に、ＵＳＢなどの高速シリアルバスの初期化処理が完了するまで、各モジュールは通信することができなかった。すなわち、従来の画像形成装置は、初期化処理が完了するまで、起動に必要な各種の情報をモジュール間でやり取りすることができなかった。この結果、従来の画像形成装置は、起動に時間がかかった。
【００５９】
これに対して、本実施形態に係る画像形成装置は、上述の通り、起動時にＩ２Ｃバスにより各モジュールが通信することができる。そして、Ｉ２Ｃバスは、リンクトレーニングなどの初期化処理を行うことなく、画像形成装置の起動開始後、速やかに通信可能となる。この結果、本実施形態に係る画像形成装置は、従来の画像形成装置に比べて、起動にかかる時間が短くなる。すなわち、本実施形態によれば、画像形成装置の起動を高速化することができる。
【００６０】
また、Ｉ２Ｃバスは、信号線を２本しか利用しないため、小規模な回路で実装することができる。したがって、通信システムを小型化し、画像形成装置に追加する回路面積の増大を抑制することができる。
【００６１】
また、Ｉ２Ｃバスは、いわゆる枯れた技術であるため、既存の設計資源が豊富に存在する。これらの設計資源を利用することにより、ＩＰやドライバを容易に作成することができる。
【００６２】
＜２．省エネモード移行時及び復帰時＞
図８は、本実施形態に係る画像形成装置の省エネモードの移行時及び復帰時の動作の一例を示すシーケンス図である。図８の例では、シーケンスの開始時点で、画像形成装置は起動完了し、通常モードで動作している。また、図８において、マスタデバイスからの通信に対するＡＣＫ又はＮＡＫの返信は省略されている。なお、図８のステップＳ３０７〜Ｓ３１０は、図７のステップＳ２０３，Ｓ２０６〜Ｓ２０８と同様である。
【００６３】
通常モードにおいて、エンジンは、消費電力を抑制するため、一定時間動作しないと停止する。エンジンが停止すると、本体コントローラ１は、エンジンが停止（ＯＦＦ）したことを、操作部２に通知する（ステップＳ３０１）。
【００６４】
エンジンの停止後、一定時間が経過すると、本体コントローラ１は、通常モードから省エネモードに移行することを決定する。そして、本体コントローラ１は、省エネモードに移行することを、操作部２及び電源部３に通知する（ステップＳ３０２，Ｓ３０３）。
【００６５】
省エネモードは、画像形成装置の消費電力を抑制するための動作モードである。省エネモードでは、メモリの内容が保持された状態で、省エネサブシステム１１、操作部マイコン２１、及び電源マイコン３１に電源が投入され、それ以外のコントローラの電源が切断される。
【００６６】
電源部３は、省エネモードに移行することを通知されると、省エネモードへ移行するための電源制御（移行制御）を実行する（ステップＳ３０４）。これにより、画像形成装置の動作モードが、通常モードから省エネモードに移行する。以降、省エネモードからの復帰要因が発生するまで、画像形成装置は省エネモードを継続する。
【００６７】
なお、省エネモードに移行するまでの通信及び制御（ステップＳ３０１〜Ｓ３０４）は、Ｉ２Ｃバスを利用して行われてもよいし、ＵＳＢや他の通信バスを利用して行われてもよい。
【００６８】
省エネモードに移行中に、復帰要因が発生すると、電源マイコン３１のマスタデバイスｍ３は、省エネモードから復帰するための電源制御（復帰制御）を実行する（ステップＳ３０６）。これにより、画像形成装置の動作モードが、省エネモードから通常モードに移行する。
【００６９】
復帰要因は、例えば、電源部３の電源スイッチの押下、操作部２の操作キーの押下、圧板の開閉などであるが、これに限られない。復帰要因を検知したモジュールのマスタデバイスは、電源マイコン３１のスレーブデバイスｓ３に復帰要因が発生したことを通知する。電源マイコン３１のスレーブデバイスｓ３がこの通知を受信すると、電源マイコン３１は、上述の復帰制御を実行する。
【００７０】
図８の例では、復帰要因は操作部２の操作キーの押下であり、操作キーの押下を検知した操作部マイコン２１のマスタデバイスｍ２が、その旨を電源マイコン３１のスレーブデバイスｓ３に通知している（ステップＳ３０５）。
【００７１】
なお、復帰要因を検知したモジュールのマスタデバイスは、ゼネラルコールアドレスに対して、復帰要因が発生したことを通知してもよい。これにより、各モジュールに、復帰要因の発生を周知することができる。
【００７２】
本実施形態によれば、画像形成装置の起動の高速化と同様の理由により、画像形成装置の省エネモードからの復帰を高速化することができる。
【００７３】
また、Ｉ２Ｃバスは、高速シリアルバスに比べて消費電力が小さいため、本実施形態によれば、省エネモードにおける画像形成装置の待機電力を抑制することができる。
【００７４】
以上説明した通り、第１実施形態に係る通信システムを画像形成装置に適用することにより、画像形成装置の起動を高速化し、回路面積の増大を抑制し、ＩＰやドライバを容易に作成することができる。また、画像形成装置の省エネモードからの復帰を高速化し、省エネモード中の待機電力を抑制することができる。
【００７５】
さらに、本実施形態によれば、画像形成装置に障害が発生し、ＯＳが動作しなくなった場合であっても、個別のマイコンやコントローラにより構成された通信システムは、動作可能である。マスタデバイスを備えるマイコンが、検知した障害をゼネラルコードアドレスに通知することにより、通信システムを備える各モジュールに障害を通知することができる。これにより、例えば、操作部２のディスプレイに、障害を検知したことや、検知された障害の内容を表示させることができる。
【００７６】
なお、本実施形態において、起動時や、省エネモードの移行時及び復帰時に、モジュール間でやり取りされる情報は、上記の例に限られない。また、通信システムは、本体コントローラ１、操作部２、及び電源部３だけでなく、エンジンの他のモジュールを含んでもよい。さらに、第１実施形態に係る通信システムは、画像形成装置に限られず、高速シリアルバスで接続された複数のモジュールを備える任意の装置に適用されてもよい。
【００７７】
（第３実施形態）
第３実施形態に係る通信システムについて、図９〜図１６を参照して説明する。本実施形態では、通信システムに接続された外部装置（Ｉ２Ｃデバイス）に排他的にアクセス可能な通信システムについて説明する。本実施形態に係る通信システムの構成は、第１実施形態と同様である。
【００７８】
まず、通信システムに外部装置が接続された場合について考える。図９は、外部装置として不揮発性ＲＡＭが接続された通信システムの一例を示す図である。図９の不揮発性ＲＡＭは、ＳＤＡ端子及びＳＣＬ端子を備えたＩ２Ｃデバイスであり、ＳＤＡ端子がデータ線Ｌ１に接続され、ＳＣＬ端子がクロック線Ｌ２に接続されている。この不揮発性ＲＡＭは、Ｉ２Ｃ通信のスレーブとして機能し、各モジュールＭ１〜ＭｎとＩ２Ｃ通信が可能である。図９の例では、不揮発性ＲＡＭに割り当てられたアドレスは、００００１００である。
【００７９】
この不揮発性ＲＡＭに、モジュールＭｉが暗号化されたデータ（以下、「暗号化データ」という）を書き込む場合、一連の暗号化データは、連続して不揮発性ＲＡＭに書き込まれることが必要となる。このため、モジュールＭｉが不揮発性ＲＡＭに暗号化データを書き込んでいる間、モジュールＭｉが不揮発性ＲＡＭに排他的にアクセスすることが必要になる。モジュールＭｉが不揮発性ＲＡＭに排他的にアクセスするとは、他のモジュールＭｊが不揮発性ＲＡＭにアクセスしないように、モジュールＭｉが不揮発性ＲＡＭにアクセスすることをいう。
【００８０】
このように、通信システムに外部装置が接続された場合、外部装置に対する排他的なアクセスが必要となる場合がある。そこで、本実施形態では、通信システムに接続された外部装置に対する排他的なアクセスを可能とするためのコマンドが予め定義される。
【００８１】
図１０は、マスタデバイスｍ１が不揮発性ＲＡＭに排他的にアクセスする際の処理の概要を示すシーケンス図である。図１０に示すように、まず、マスタデバイスｍ１は、他のマスタデバイスｍｉに対して不揮発性ＲＡＭへのアクセスを禁止するためのコマンド（以下、「禁止コマンド」という）を同報送信する（ステップＳ４０１）。同報送信された禁止コマンドは、不揮発性ＲＡＭ及びスレーブデバイスｓ２〜ｓｎにより受信される。
【００８２】
この禁止コマンドは、本実施形態に係る通信システムにおいて独自に定義されたコマンドであるため、外部装置である不揮発性ＲＡＭは、禁止コマンドを受信しても、その内容を理解できない。したがって、不揮発性ＲＡＭは、受信した禁止コマンドを無視する。
【００８３】
一方、スレーブデバイスｓ２〜ｓｎは、禁止コマンドを受信すると、それぞれ対応するマスタデバイスｍ２〜ｍｎの不揮発性ＲＡＭへのアクセスを禁止する。これ以降、マスタデバイスｍ１は、不揮発性ＲＡＭに排他的にアクセス可能となる（ステップＳ４０２）。
【００８４】
マスタデバイスｍ１は、不揮発性ＲＡＭに対する所望の処理（例えば、暗号化データの書き込み）が終了すると、不揮発性ＲＡＭに対するアクセスの禁止を解除するためのコマンド（以下、「解除コマンド」という）を同報送信する（ステップＳ４０３）。同報送信された解除コマンドは、不揮発性ＲＡＭ及びスレーブデバイスｓ２〜ｓｎにより受信される。
【００８５】
この解除コマンドは、本実施形態に係る通信システムにおいて独自に定義されたコマンドであるため、外部装置である不揮発性ＲＡＭは、解除コマンドを受信しても、その内容を理解できない。したがって、不揮発性ＲＡＭは、受信した解除コマンドを無視する。
【００８６】
一方、スレーブデバイスｓ２〜ｓｎは、解除コマンドを受信すると、それぞれ対応するマスタデバイスｍ２〜ｍｎの、不揮発性ＲＡＭへのアクセスの禁止を解除する。これ以降、マスタデバイスｍ１だけでなく、マスタデバイスｍ２〜ｍｎも、不揮発性ＲＡＭに対してアクセス可能となる。
【００８７】
ここで、図１１〜図１３は、禁止コマンド及び解除コマンドのコマンドフォーマットの一例を示す図である。
【００８８】
図１１の上段は、マスタデバイスｍｊによるＩ２Ｃ通信を禁止する禁止コマンド（第１の禁止コマンド）により、マスタデバイスｍｉによる外部装置への排他的なアクセスを可能にするためのコマンドフォーマットの一例である。このコマンドフォーマットは、スタートコンディションＳ及びゼネラルコールアドレスの送信と、禁止コマンドの送信と、送信元のマスタデバイスｍｉのアドレスの送信と、ストップコンディションＰの送信と、により構成される。禁止コマンドは、ゼネラルコールアドレスに対するＡＣＫの受信後に送信される。マスタデバイスｍｉのアドレスは、禁止コマンドに対するＡＣＫの受信後に送信される。ストップコンディションＰは、マスタデバイスｍｉのアドレスに対するＡＣＫの受信後に送信される。
【００８９】
図１１の例では、ゼネラルコールアドレス及びマスタデバイスｍｉのアドレスは、末尾に０を付加されている。送信元のマスタデバイスｍｉは、外部装置に排他的にアクセスするマスタデバイスｍｉに相当する。図１１の例では、送信元のマスタデバイスｍｉは、マスタデバイスｍ１である。
【００９０】
図１１の例では、禁止コマンドは、００００１１１０（０ｘ０Ｅ）である。これは、通信システムにおいて、コマンド０ｘ０Ｅが禁止コマンドとして定義される場合を想定している。しかしながら、本実施形態において、禁止コマンドは、コマンド０ｘ０Ｅに限られない。禁止コマンドとして、Ｉ２Ｃ規格において使用されていない任意のコマンドを割り当てることができる。
【００９１】
このコマンドフォーマットに従って禁止コマンドが送受信されると、マスタデバイスｍ２〜ｍｎは、Ｉ２Ｃ通信を禁止される。結果として、マスタデバイスｍ１は、ストップコンディションＰを送信した後、外部装置に対して排他的にアクセス可能となる。
【００９２】
これに対して、図１１の下段は、上段の禁止コマンドによるＩ２Ｃ通信の禁止を解除する解除コマンド（第１の解除コマンド）により、マスタデバイスｍｉによる外部装置への排他的なアクセスを終了させるためのコマンドフォーマットの一例である。図１１の下段の解除コマンドは、図１１の上段の禁止コマンドに対応する。このコマンドフォーマットは、解除コマンドを除き、上段のコマンドフォーマットと同様である。
【００９３】
図１１の例では、解除コマンドは、１０００１１１０（０ｘ８Ｅ）である。これは、通信システムにおいて、コマンド０ｘ８Ｅが解除コマンドとして定義される場合を想定している。しかしながら、本実施形態において、解除コマンドは、コマンド０ｘ８Ｅに限られない。解除コマンドとして、Ｉ２Ｃ規格において使用されていない任意のコマンドを割り当てることができる。
【００９４】
このコマンドフォーマットに従って解除コマンドが送受信されると、マスタデバイスｍ２〜ｍｎは、Ｉ２Ｃ通信の禁止を解除され、外部装置にアクセス可能となる。結果として、マスタデバイスＭ１により外部装置への排他的なアクセスが終了する。
【００９５】
図１２の上段は、マスタデバイスｍｊによる特定の外部装置へのアクセスを禁止する禁止コマンド（第２の禁止コマンド）により、マスタデバイスｍｉによる外部装置への排他的なアクセスを可能にするためのコマンドフォーマットの一例である。禁止コマンドを送信したマスタデバイスｍｉを除く全てのマスタデバイスｍｉに対して、特定の外部装置へのアクセスを禁止させる禁止コマンド（第２の禁止コマンド）のコマンドフォーマットの一例である。このコマンドフォーマットは、スタートコンディションＳ及びゼネラルコールアドレスの送信と、禁止コマンドの送信と、外部装置のアドレスの送信と、送信元のマスタデバイスｍｉのアドレスの送信と、ストップコンディションＰの送信と、により構成される。禁止コマンドは、ゼネラルコールアドレスに対するＡＣＫの受信後に送信される。外部装置のアドレスは、禁止コマンドに対するＡＣＫの受信後に送信される。マスタデバイスｍｉのアドレスは、外部装置のアドレスに対するＡＣＫの受信後に送信される。ストップコンディションＰは、マスタデバイスｍｉのアドレスに対するＡＣＫの受信後に送信される。
【００９６】
図１２の例では、ゼネラルコールアドレス、マスタデバイスｍｉのアドレス、及び外部装置のアドレスは、末尾に０を付加されている。送信元のマスタデバイスｍｉは、外部装置に排他的にアクセスするマスタデバイスｍｉに相当する。外部装置は、送信元のマスタデバイスｍｉが排他的にアクセスする外部装置に相当する。図１２の例では、送信元のマスタデバイスｍｉは、マスタデバイスｍ１であり、外部装置は、不揮発性ＲＡＭである。
【００９７】
図１２の例では、禁止コマンドは、０００１１１１０（０ｘ１Ｅ）である。これは、通信システムにおいて、コマンド０ｘ１Ｅが禁止コマンドとして定義される場合を想定している。しかしながら、本実施形態において、禁止コマンドは、コマンド０ｘ１Ｅに限られない。禁止コマンドとして、Ｉ２Ｃ規格において使用されていない任意のコマンドを割り当てることができる。
【００９８】
このコマンドフォーマットに従って禁止コマンドが送受信されると、マスタデバイスｍ２〜ｍｎは、外部装置（不揮発性ＲＡＭ）に対するアクセスを禁止される。結果として、マスタデバイスｍ１は、ストップコンディションＰを送信した後、外部装置（不揮発性ＲＡＭ）に対して排他的にアクセス可能となる。
【００９９】
これに対して、図１２の下段は、上段の禁止コマンドによる外部装置へのアクセスの禁止を解除する解除コマンド（第２の解除コマンド）により、マスタデバイスｍｉによる外部装置への排他的なアクセスを終了させるためのコマンドフォーマットの一例である。図１２の下段の解除コマンドは、図１２の上段の禁止コマンドに対応する。このコマンドフォーマットは、解除コマンドを除き、上段のコマンドフォーマットと同様である。
【０１００】
図１２の例では、解除コマンドは、１００１１１１０（０ｘ９Ｅ）である。これは、通信システムにおいて、コマンド０ｘ９Ｅが解除コマンドとして定義される場合を想定している。しかしながら、本実施形態において、解除コマンドは、コマンド０ｘ９Ｅに限られない。解除コマンドとして、Ｉ２Ｃ規格において使用されていない任意のコマンドを割り当てることができる。
【０１０１】
このコマンドフォーマットに従って解除コマンドが送受信されると、マスタデバイスｍ２〜ｍｎは、外部装置（不揮発性ＲＡＭ）に対するアクセスの禁止を解除され、外部装置（不揮発性ＲＡＭ）にアクセス可能となる。結果として、マスタデバイスＭ１による外部装置（不揮発性ＲＡＭ）への排他的なアクセスが終了する。
【０１０２】
図１３の上段は、マスタデバイスｍｊによるＩ２Ｃ通信を所定の期間の間禁止する禁止コマンド（第３の禁止コマンド）により、マスタデバイスｍｉによる外部装置への排他的なアクセスを可能にするためのコマンドフォーマットの一例である。このコマンドフォーマットは、スタートコンディションＳ及びゼネラルコールアドレスの送信と、禁止コマンドの送信と、禁止期間の送信と、送信元のマスタデバイスｍｉのアドレスの送信と、ストップコンディションＰの送信と、により構成される。禁止コマンドは、ゼネラルコールアドレスに対するＡＣＫの受信後に送信される。禁止期間は、Ｉ２Ｃ通信が禁止される期間であり、禁止コマンドに対するＡＣＫの受信後に送信される。マスタデバイスｍｉのアドレスは、禁止期間に対するＡＣＫの受信後に送信される。ストップコンディションＰは、マスタデバイスｍｉのアドレスに対するＡＣＫの受信後に送信される。
【０１０３】
図１３の例では、ゼネラルコールアドレス及びマスタデバイスｍｉのアドレスは、末尾に０を付加されている。送信元のマスタデバイスｍｉは、外部装置に排他的にアクセスするマスタデバイスｍｉに相当する。図１３の例では、送信元のマスタデバイスｍｉは、マスタデバイスｍ１であり、禁止期間は、１０ｍｓである。この禁止期間は、任意に設定可能である。
【０１０４】
図１３の例では、禁止コマンドは、００１０１１１０（０ｘ２Ｅ）である。これは、通信システムにおいて、コマンド０ｘ２Ｅが禁止コマンドとして定義される場合を想定している。しかしながら、本実施形態において、禁止コマンドは、コマンド０ｘ２Ｅに限られない。禁止コマンドとして、Ｉ２Ｃ規格において使用されていない任意のコマンドを割り当てることができる。
【０１０５】
このコマンドフォーマットに従って禁止コマンドが送受信されると、マスタデバイスｍ２〜ｍｎは、禁止期間の間、Ｉ２Ｃ通信を禁止される。結果として、マスタデバイスｍ１は、ストップコンディションＰを送信した後、禁止期間の間、外部装置に対して排他的にアクセス可能となる。禁止期間が経過すると、マスタデバイスｍ２〜ｍｎは、Ｉ２Ｃ通信の禁止を解除され、マスタデバイスｍ１による外部装置への排他的なアクセスが終了する。
【０１０６】
これに対して、図１３の下段は、禁止期間の間に上段の禁止コマンドによるＩ２Ｃ通信の禁止を解除する解除コマンド（第３の解除コマンド）により、マスタデバイスｍｉによる外部装置への排他的なアクセスを終了させるためのコマンドフォーマットの一例である。図１３の下段の解除コマンドは、図１３の上段の禁止コマンドに対応する。このコマンドフォーマットは、解除コマンドを除き、図１１の解除コマンドのコマンドフォーマットと同様である。
【０１０７】
図１３の例では、解除コマンドは、１０１０１１１０（０ｘＡＥ）である。これは、通信システムにおいて、コマンド０ｘＡＥが解除コマンドとして定義される場合を想定している。しかしながら、本実施形態において、解除コマンドは、コマンド０ｘＡＥに限られない。解除コマンドとして、Ｉ２Ｃ規格において使用されていない任意のコマンドを割り当てることができる。
【０１０８】
禁止期間の間に、このコマンドフォーマットに従って解除コマンドが送受信されると、マスタデバイスｍ２〜ｍｎは、Ｉ２Ｃ通信の禁止を解除され、外部装置にアクセス可能となる。結果として、マスタデバイスＭ１による外部装置への排他的なアクセスが終了する。一方、禁止期間以外に、このコマンドフォーマットに従って解除コマンドが送受信されると、マスタデバイスｍ２〜ｍｎは、解除コマンドを無視する。
【０１０９】
なお、本実施形態において、通信システムには、図１１〜図１３の禁止コマンド及び解除コマンドの組がそれぞれ定義されてもよいし、いずれか１つ又は２つの禁止コマンド及び解除コマンドの組が定義されてもよい。また、図１３の禁止コマンドが定義される場合、対応する解除コマンドが定義されなくてもよい。
【０１１０】
図１４は、マスタデバイスｍｉが図１１の禁止コマンド及び解除コマンドを送信可能な場合における、各スレーブデバイスｓｊが実行する処理の一例を示すフローチャートである。図１４の処理は、スレーブデバイスｓｊがスタートコンディションＳを受信すると開始される。
【０１１１】
スレーブデバイスｓｊは、マスタデバイスｍｉからスタートコンディションＳを受信すると、スタートコンディションＳに続く１バイト目のデータを受信し（ステップＳ５０１）、ＡＣＫを返す。
【０１１２】
次に、スレーブデバイスｓｊは、１バイト目のデータが、００００００００であるか、すなわち、ゼネラルコールであるか判定する（ステップＳ５０２）。１バイト目のデータがゼネラルコールでない場合（ステップＳ５０２のＮＯ）、スレーブデバイスｓｊは、受信したデータに応じた所定の処理を実行する（ステップＳ５１０）。
【０１１３】
一方、１バイト目のデータがゼネラルコールである場合（ステップＳ５０２のＹＥＳ）、スレーブデバイスｓｊは、マスタデバイスｍｉから２バイト目のデータを受信し（ステップＳ５０３）、ＡＣＫを返す。
【０１１４】
次に、スレーブデバイスｓｊは、２バイト目のデータが、０ｘ０Ｅ（００００１１１０）であるか、すなわち、図１１の禁止コマンドであるか判定する（ステップＳ５０４）。２バイト目のデータが禁止コマンドである場合（ステップＳ５０４のＹＥＳ）、スレーブデバイスｓｊは、対応するマスタデバイスｍｊのＩ２Ｃ通信を禁止する（ステップＳ５０５）。これにより、マスタデバイスｍｊは、外部装置にアクセス不能となり、マスタデバイスｍｉは、外部装置に排他的にアクセス可能となる。
【０１１５】
その後、スレーブデバイスｓｊは、マスタデバイスｍｉから３バイト目のデータ（マスタデバイスｍｉのアドレス）を受信し（ステップＳ５０６）、ＡＣＫを返し、マスタデバイスｍｉからストップコンディションＰを受信する（ステップＳ５０７）。
【０１１６】
一方、２バイト目のデータが禁止コマンドでない場合（ステップＳ５０４のＮＯ）、スレーブデバイスｓｊは、２バイト目のデータが０ｘ８Ｅ（１０００１１１０）であるか、すなわち、図１１の解除コマンドであるか判定する（ステップＳ５０８）。２バイト目のデータが解除コマンドでない場合（ステップＳ５０８のＮＯ）、スレーブデバイスｓｊは、受信したデータに応じた所定の処理を実行する（ステップＳ５１０）。
【０１１７】
一方、２バイト目のデータが解除コマンドである場合（ステップＳ５０８のＹＥＳ）、スレーブデバイスｓｊは、対応するマスタデバイスｍｊのＩ２Ｃ通信の禁止を解除する（ステップＳ５０９）。これにより、マスタデバイスｍｊは外部装置にアクセス可能となり、マスタデバイスｍｉによる外部装置への排他的なアクセスが終了する。
【０１１８】
その後、スレーブデバイスｓｊは、マスタデバイスｍｉから３バイト目のデータ（マスタデバイスｍｉのアドレス）を受信し（ステップＳ５０６）、ＡＣＫを返し、マスタデバイスｍｉからストップコンディションＰを受信する（ステップＳ５０７）。
【０１１９】
図１５は、マスタデバイスｍｉが図１２の禁止コマンド及び解除コマンドを送信可能な場合における、各スレーブデバイスｓｊが実行する処理の一例を示すフローチャートである。図１５の処理は、スレーブデバイスｓｊがスタートコンディションＳを受信すると開始される。
【０１２０】
スレーブデバイスｓｊは、マスタデバイスｍｉからスタートコンディションＳを受信すると、スタートコンディションＳに続く１バイト目のデータを受信し（ステップＳ６０１）、ＡＣＫを返す。
【０１２１】
次に、スレーブデバイスｓｊは、１バイト目のデータが、００００００００であるか、すなわち、ゼネラルコールであるか判定する（ステップＳ６０２）。１バイト目のデータがゼネラルコールでない場合（ステップＳ６０２のＮＯ）、スレーブデバイスｓｊは、受信したデータに応じた所定の処理を実行する（ステップＳ６１２）。
【０１２２】
一方、１バイト目のデータがゼネラルコールである場合（ステップＳ６０２のＹＥＳ）、スレーブデバイスｓｊは、マスタデバイスｍｉから２バイト目のデータを受信し（ステップＳ６０３）、ＡＣＫを返す。
【０１２３】
次に、スレーブデバイスｓｊは、２バイト目のデータが、０ｘ１Ｅ（０００１１１１０）であるか、すなわち、図１２の禁止コマンドであるか判定する（ステップＳ６０４）。２バイト目のデータが禁止コマンドである場合（ステップＳ６０４のＹＥＳ）、スレーブデバイスｓｊは、マスタデバイスｍｉから３バイト目のデータを受信し（ステップＳ６０５）、ＡＣＫを返す。ここで受信する３バイト目のデータには、外部装置のアドレスが含まれる。
【０１２４】
スレーブデバイスｓｊは、３バイト目のデータを受信すると、当該データに含まれるアドレス（外部装置）に対する、対応するマスタデバイスｍｊのアクセスを禁止する（ステップＳ６０６）。これにより、マスタデバイスｍｊは、外部装置にアクセス不能となり、マスタデバイスｍｉは、外部装置に排他的にアクセス可能となる。ただし、マスタデバイスｍｊは、外部装置へのアクセスを禁止された後も、外部装置以外のスレーブデバイスに対してはアクセス可能である。
【０１２５】
その後、スレーブデバイスｓｊは、マスタデバイスｍｉから４バイト目のデータ（マスタデバイスｍｉのアドレス）を受信し（ステップＳ６０７）、ＡＣＫを返し、マスタデバイスｍｉからストップコンディションＰを受信する（ステップＳ６０８）。
【０１２６】
一方、２バイト目のデータが禁止コマンドでない場合（ステップＳ６０４のＮＯ）、スレーブデバイスｓｊは、２バイト目のデータが０ｘ９Ｅ（１００１１１１０）であるか、すなわち、図１２の解除コマンドであるか判定する（ステップＳ６０９）。２バイト目のデータが解除コマンドでない場合（ステップＳ６０９のＮＯ）、スレーブデバイスｓｊは、受信したデータに応じた所定の処理を実行する（ステップＳ６１２）。
【０１２７】
一方、２バイト目のデータが解除コマンドである場合（ステップＳ６０９のＹＥＳ）、スレーブデバイスｓｊは、マスタデバイスｍｉから３バイト目のデータを受信し（ステップＳ６１０）、ＡＣＫを返す。ここで受信する３バイト目のデータには、外部装置のアドレスが含まれる。
【０１２８】
スレーブデバイスｓｊは、３バイト目のデータを受信すると、当該データに含まれるアドレス（外部装置）に対する、対応するマスタデバイスｍｊのアクセスの禁止を解除する（ステップＳ６１１）。これにより、マスタデバイスｍｊは、外部装置にアクセス可能となり、マスタデバイスｍｉによる外部装置への排他的なアクセスが終了する。
【０１２９】
その後、スレーブデバイスｓｊは、マスタデバイスｍｉから４バイト目のデータ（マスタデバイスｍｉのアドレス）を受信し（ステップＳ６０７）、ＡＣＫを返し、マスタデバイスｍｉからストップコンディションＰを受信する（ステップＳ６０８）。
【０１３０】
図１６は、マスタデバイスｍｉが図１３の禁止コマンド及び解除コマンドを送信可能な場合における、各スレーブデバイスｓｊが実行する処理の一例を示すフローチャートである。図１６の処理は、スレーブデバイスｓｊがスタートコンディションＳを受信すると開始される。
【０１３１】
スレーブデバイスｓｊは、マスタデバイスｍｉからスタートコンディションＳを受信すると、スタートコンディションＳに続く１バイト目のデータを受信し（ステップＳ７０１）、ＡＣＫを返す。
【０１３２】
次に、スレーブデバイスｓｊは、１バイト目のデータが、００００００００であるか、すなわち、ゼネラルコールであるか判定する（ステップＳ７０２）。１バイト目のデータがゼネラルコールでない場合（ステップＳ７０２のＮＯ）、スレーブデバイスｓｊは、受信したデータに応じた所定の処理を実行する（ステップＳ７１２）。
【０１３３】
一方、１バイト目のデータがゼネラルコールである場合（ステップＳ７０２のＹＥＳ）、スレーブデバイスｓｊは、マスタデバイスｍｉから２バイト目のデータを受信し（ステップＳ７０３）、ＡＣＫを返す。
【０１３４】
次に、スレーブデバイスｓｊは、２バイト目のデータが、０ｘ２Ｅ（００１０１１１０）であるか、すなわち、図１３の禁止コマンドであるか判定する（ステップＳ７０４）。２バイト目のデータが禁止コマンドである場合（ステップＳ７０４のＹＥＳ）、スレーブデバイスｓｊは、マスタデバイスｍｉから３バイト目のデータを受信し（ステップＳ７０５）、ＡＣＫを返す。ここで受信する３バイト目のデータは、禁止期間を示すデータである。
【０１３５】
スレーブデバイスｓｊは、３バイト目のデータを受信すると、当該データが示す禁止期間の間、対応するマスタデバイスｍｊにＩ２Ｃ通信を禁止する（ステップＳ７０６）。これにより、マスタデバイスｍｊは、禁止期間の間、外部装置にアクセス不能となり、マスタデバイスｍｉは、外部装置に排他的にアクセス可能となる。ただし、マスタデバイスｍｊは、禁止期間が経過すると、自動的にＩ２Ｃ通信の禁止を解除される。
【０１３６】
その後、スレーブデバイスｓｊは、マスタデバイスｍｉから４バイト目のデータ（マスタデバイスｍｉのアドレス）を受信し（ステップＳ７０７）、ＡＣＫを返し、マスタデバイスｍｉからストップコンディションＰを受信する（ステップＳ７０８）。
【０１３７】
一方、２バイト目のデータが禁止コマンドでない場合（ステップＳ７０４のＮＯ）、スレーブデバイスｓｊは、２バイト目のデータが０ｘＡＥ（１０１０１１１０）であるか、すなわち、図１３の解除コマンドであるか判定する（ステップＳ７０９）。２バイト目のデータが解除コマンドでない場合（ステップＳ７０９のＮＯ）、スレーブデバイスｓｊは、受信したデータに応じた所定の処理を実行する（ステップＳ７１２）。
【０１３８】
一方、２バイト目のデータが解除コマンドである場合（ステップＳ７０９のＹＥＳ）、スレーブデバイスｓｊは、対応するマスタデバイスｍｊのＩ２Ｃ通信の禁止を解除する（ステップＳ７１０）。これにより、マスタデバイスｍｊは、外部装置にアクセス可能となり、マスタデバイスｍｉによる外部装置への排他的なアクセスが終了する。マスタデバイスｍｉは、禁止期間の間に解除コマンドを送信することにより、マスタデバイスｍｊがＩ２Ｃ通信できない期間を短縮することができる。なお、マスタデバイスｍｉは、禁止コマンドの送信後、禁止期間が経過した場合、解除コマンドを送信してもよいし、しなくてもよい。
【０１３９】
その後、スレーブデバイスｓｊは、マスタデバイスｍｉから３バイト目のデータ（マスタデバイスｍｉのアドレス）を受信し（ステップＳ７１１）、ＡＣＫを返し、マスタデバイスｍｉからストップコンディションＰを受信する（ステップＳ７０８）。
【０１４０】
以上説明した通り、本実施形態によれば、通信システムを構成する各マスタデバイスｍｉは、禁止コマンド及び解除コマンドを利用することにより、通信システムに接続された外部装置に排他的にアクセスすることができる。したがって、排他的なアクセスが必要な外部装置を、通信システムに接続し、Ｉ２Ｃ通信のスレーブデバイスとして使用することができる。
【０１４１】
なお、以上では、外部装置が１つだけ接続されている場合を例に説明したが、通信装置には複数の外部装置が接続されてもよい。この場合であっても、各マスタデバイスｍｉは、禁止コマンド及び解除コマンドを利用することにより、接続された任意の外部装置に対して、排他的にアクセスすることができる。また、第２実施形態に係る画像形成装置が備える通信システムとして、本実施形態に係る通信システムを利用することも可能である。
【０１４２】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせなど、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【０１４３】
１：本体コントローラ
２：操作部
３：電源部
１１：省エネサブシステム
２１：操作部マイコン
３１：電源マイコン
Ｍ：モジュール
ｍ：マスタデバイス
ｓ：スレーブデバイス
【先行技術文献】
【特許文献】
【０１４４】
【特許文献１】特開２０１３‐１９７６７７号公報
【図１】
2018026088.tif 000003
【図２】
2018026088.tif 000004
【図３】
2018026088.tif 000005
【図４】
2018026088.tif 000006
【図５】
2018026088.tif 000007
【図６】
2018026088.tif 000008
【図７】
2018026088.tif 000009
【図８】
2018026088.tif 000010
【図９】
2018026088.tif 000011
【図１０】
2018026088.tif 000012
【図１１】
2018026088.tif 000013
【図１２】
2018026088.tif 000014
【図１３】
2018026088.tif 000015
【図１４】
2018026088.tif 000016
【図１５】
2018026088.tif 000017
【図１６】
2018026088.tif 000018