以下に添付図面を参照して、通信装置、通信方法および画像形成装置の実施形態を詳細に説明する。
(実施形態に適用可能な構成)
図1は、実施形態に適用可能な画像形成装置1の一例の外観を概略的に示す。図1(a)は、画像形成装置1を側面から見た図、図1(b)は、画像形成装置1を上面から見た図である。画像形成装置1は、画像形成動作を制御する本体部2と、本体部2に供給する用紙を大量収容する大容量給紙部3と、印刷された用紙に対してソート、穴あけ、綴じ込みなどを施すフィニッシャ4と、印刷やソートなどがなされた用紙を排紙する排紙部5とを主に備える。
また、本体部2は、上部に自動原稿供給装置6を有し、自動原稿供給装置6にセットされた原稿はスキャナ部(図示しない)によりスキャンされる。また、本体部2の上部には、ユーザに対して種々の情報を提示し、また、ユーザからの操作入力を受け付けるためのインターフェースが配置される操作部9が設けられている。また、本体部2の前面中央には、本体部2の内部に格納されたトナーなどをカバーするドア7が備えられている。なお、ドア7が開扉された場合、ユーザによる操作時の安全性確保のため、駆動系などが停止される。
画像形成装置1は、例えばY(Yellow)、M(Magenta)、C(cyan)、K(Black)、S(Special)各色のトナーを供給するトナーカートリッジが着脱可能に設けられる。なお、S色とは、例えばY、M、C、K各色を用いた表現が困難な色である。各トナーカートリッジは、例えばドア7を開扉することで、本体部2からの取り外しや、本体部2に対する装着を行うことができる。
なお、図1の例では、画像形成装置1は、突起物を除く全長が約3000mm、高さが約1200mm、幅(奥行き)が約900mmと、比較的大型に構成される。また、本体部2は、全長が約1500mm、高さおよび幅がそれぞれ約1200mmおよび900mmとされている。
画像形成装置1は、例えば大容量給紙部3から供給される用紙に対して、外部のコンピュータなどから供給された画像データに従いY、M、C、K、S各色のトナーによる画像を形成する。一例として、帯電器により一様に帯電された感光体ドラムに対し、レーザビームを照射して露光を行い画像データに従った静電潜像を形成し、この静電潜像に対してトナーカートリッジから供給されたトナーを付着させる。感光体ドラムから用紙に対してトナーを転写し、定着器によりトナーを用紙に定着させることで、用紙に画像データに従った画像が形成される。画像が形成された用紙は、必要に応じてフィニッシャ4で所定の処理を施され、排紙部5に排紙される。なお、画像形成装置1は、本体部2の下部に設けられる給紙部8に収容された媒体に対して画像形成を行うこともできる。
各トナーカートリッジが備えるモジュールは、メモリおよびメモリに対するデータの読み書きを行うためのドライバをそれぞれ有する。各モジュールは、メモリにトナーの識別情報や、トナー残量などの情報が書き込まれる。例えば、本体部2に設けられる制御ユニット(図示しない)は、各モジュールが有するドライバと通信を行い、メモリから情報を読み出して各モジュールの管理を行う。また、制御ユニットは、各モジュールのメモリから読み出した情報を操作部9の画面に表示させることもできる。
図2は、実施形態に係る画像形成装置1における、制御ユニットから各トナーカートリッジが備える各モジュールが有するメモリにアクセスするための一例の構成を示す。図2において、制御ユニット10は、本体部2内に設けられ、CPU(Central Processing Unit)11を有し、Y、M、C、K、S各色のトナーカートリッジ20Y、20M、20C、20Kおよび20Sと、通信線30Y、30M、30C、30Kおよび30Sを介してそれぞれ接続される。制御ユニット10において、CPU11は、例えば上位の制御部からの命令40に従い、トナーカートリッジ20Y〜20Sそれぞれと、各通信線30Y〜30Sを介して通信を行う。
通信線30Y、30M、30C、30Kおよび30Sは、例えば1つのハーネスに束ねられて本体部2内を引き回される。図1の例では、本体部2のサイズが略1500mm×900mm×1200mmとされており、制御ユニット10と各トナーカートリッジ20Y〜20Sとの間の配線長は、本体部2内での他の部品の配置などを考慮した引き回しにより、2000mm程度にもなることがある。
各トナーカートリッジ20Y〜20Sは、メモリおよびメモリ制御を行うドライバが搭載されるトナーID基板を備える。図3は、トナーカートリッジ20Yが備えるトナーID基板200Yの一例の構成を概略的に示す。なお、他のトナーカートリッジ20M、20C、20Kおよび20Sが備えるトナーID基板は、このトナーID基板200Yと同一の構成で実現可能であるので、ここでは、トナーID基板200Yを例にとって説明を行う。
図3において、トナーID基板200Yは、ドライバ201Yとメモリ202Yとを含む。メモリ202Yは、例えばEEPROM(Electrically Erasable Programmable Read-Only Memory)であって、書き込まれたデータを不揮発に記憶することができる。ドライバ201Yは、制御ユニット10から送信される信号に応じて、メモリ202Yに対するデータの読み書きを制御する。
ここで、制御ユニット10とドライバ201Y(トナーID基板200Y)との間の通信をI2Cを用いて行う場合、制御ユニット10およびドライバ201Yは、データを伝送するSDA(Serial Data Line)と、クロックを伝送するSCL(Serial Clock Line)の2本の通信線31Yおよび32Yにより接続される。すなわち、図2に示した通信線30Yは、これら2本の通信線31Yおよび32Yを含む。
トナーカートリッジ20M、20C、20Kおよび20Sについても同様に、各通信線30M、30C、30Kおよび30Sは、それぞれSDAおよびSCLの2本の通信線を含む。
ここで、I2Cバスによる通信方法について、概略的に説明する。I2Cバスは、データをシリアル伝送するSDAと、クロックをシリアル伝送するSCLとの2本のバスラインを用いて通信を行う。バスに接続される各デバイスは、それぞれ少なくともバス内で固有のアドレスを持ち、このアドレスを用いて各デバイスを指定することができる。また、I2Cバスで接続される各デバイス間には、マスタおよびスレーブという単純な関係が常に成立する。
さらに、I2Cバスは、バスの静電容量が400pF以下であれば、1つのバス上に複数のデバイスを接続可能である。これは、I2Cバスの静電容量の上限値が400pFであって、静電容量が400pFを超える場合は、正常な通信が保証されないことを意味する。
図4は、I2Cバス上でのビット転送の方法を示す。SCLのクロック信号がハイ(High)状態の間には、SDAの状態は一定でなければならない。SDAがハイ状態とロー(Low)状態との間で状態を変更できるのは、SCLのクロック信号がロー状態の場合に限られる。
図5は、スタート条件(スタートコンディション)およびストップ条件(ストップコンディション)を示す。SCLがハイ状態のときにSDAがハイ状態からロー状態に変化することを、スタートコンディションと呼び、バスがビジー状態となる。一方、SCLがハイ状態のときにSDAがロー状態からハイ状態に変化することを、ストップコンディションと呼ぶ。ストップコンディション後暫くは、バスがフリー状態となる。ストップコンディションの代わりにスタートコンディションが反復して生成された場合、バスのビジー状態が保持される。スタートコンディションおよびストップコンディションは、常にマスタにより生成される。
図6は、I2Cバス上でのデータ転送を示す。I2Cバスでは、SDAに対して、1バイト(8ビット)単位でデータが出力される。8ビットのデータの後には1ビットのアクノリッジビットが出力される。各ビットは、SCLのクロック毎に出力される。1回の転送で伝送可能なバイト数には制限がない。また、1バイトのデータは、最上位ビット(MSB)から順に伝送される。
図7は、I2Cバスによるデータ転送のフォーマットを示す。スタートコンディションの直後に転送される8ビットのデータは、7ビットのアドレス情報と、1ビットのデータ方向ビットとを含む。アドレス情報は、転送先のスレーブのアドレスを示す。アドレス情報は、ストップコンディションが出力されるまで、または、反復スタートコンディションの出力後次のアドレス情報が転送されるまでの間、有効となる。
I2Cバスにスレーブとして接続されるデバイスは、例えば不揮発性メモリなどに予めアドレス情報が記憶される。スレーブデバイスは、例えば、I2Cを介して送信された信号から検出されたアドレス情報が、自身に記憶されるアドレス情報と一致する場合に、当該信号に含まれるデータを受信する。
データ方向ビットは、値が「0」であれば送信(データ書き込み)を示し、値が「1」であればデータ要求(読み出し)を示す。
これらアドレス情報およびデータ方向ビットが転送された後に、転送データが8ビット単位で転送される。
なお、上述の例では、CPU11がマスタ、各トナーID基板200Y、200M、200C、200Kおよび200S(ドライバ201Y、201M、201C、201Kおよび201S)がスレーブとなる。
(既存の通信方法)
次に、実施形態に係る通信方法について説明する。先ず、図8を用いて、既存の通信方法について説明する。なお、図8において、上述した図2および図3と共通する部分には同一の符号を付して、詳細な説明を省略する。
図8において、CPU11からSDAおよびSCLによる通信線が導出される。図8の例では、CPU11とトナーID基板200Y、200M、200C、200Kおよび200Sとは、CPU11側を共通としたスター配線により接続されている。すなわち、各通信線32Y、32M、32C、32Kおよび32Sは、一端を共有し、この共有された一端がCPU11から導出されるSDAによる通信線に接続される。同様に、各通信線31Y、31M、31C、31Kおよび31Sは、一端を共有し、この共有された一端がCPU11から導出されるSCLによる通信線に接続される。
このように、各トナーID基板200Y、200M、200C、200Kおよび200SをCPU11に対して並列に接続することで、ハーネスの挟み込みなどにより各トナーID基板200Y、200M、200C、200Kおよび200Sの何れかで通信不良が発生したような場合でも、通信不良箇所の特定が容易となり、メンテナンス性が向上する。
なお、各トナーID基板200Y、200M、200C、200Kおよび200Sは、制御ユニット10から離れた位置に設けられるものとする。例えば、各トナーID基板200Y、200M、200C、200Kおよび200Sと、制御ユニット10との間の距離は、約2000mmであるとする。
なお、各トナーID基板200Y、200M、200C、200Kおよび200Sは、各メモリ202Y、202M、202C、202Kおよび202Sに、各トナーID基板200Y、200M、200C、200Kおよび200SのI2Cバス上のアドレスを示すアドレス情報がそれぞれ記憶されている。例えばトナーID基板200Yにおいて、ドライバ201Yは、SDAによる通信線32Yから送信されたアドレス情報を受信した場合に、受信したアドレス情報とメモリ202Yに記憶されるアドレス情報とを比較して、自分に対するアクセスであるか否かを判定する。
また、I2Cバスの通信では、一般的に、オープン出力とする必要がある。そのため、図8の例では、CPU11から導出されたSDAおよびSCLによる通信線は、CPU11と、トナーID基板200Y、200M、200C、200Kおよび200Sへの分岐点との間で、それぞれプルアップ抵抗50および51を介して+5Vの電源電圧と接続されている。
CPU11は、例えばトナーID基板200Yと通信を行いたい場合、スタートコンディションの後に、トナーID基板200Yのアドレス情報をシリアルデータとして設定してSDAによる通信線に対して送信し、上述した図7のフォーマットに従い、アドレス情報に続けてデータを送信する。送信されたアドレス情報およびデータは、通信線32Y、32M、32C、32Kおよび32Sを介してトナーID基板200Y、200M、200C、200Kおよび200Sそれぞれに転送される。
各トナーID基板200Y、200M、200C、200Kおよび200Sのうちアドレス情報により指定されるトナーID基板200Yは、アドレス情報に続けて送信されるデータを受信する。一方、各トナーID基板200Y、200M、200C、200Kおよび200Sのうちアドレス情報により指定されていないトナーID200M、200C、200Kおよび200Sは、アドレス情報に続けて送信されるデータを、例えば無視する。
ここで、図8の例では、例えばSDAによる通信線は、通信線32Y、32M、32C、32Kおよび32Sの5本の通信線が並列接続される構成となっている。したがって、CPU11から見た、SDAによる通信線に係る静電容量は、この5本の通信線の静電容量を合計した容量となる。一方、上述したように、I2Cバスに接続可能な静電容量には上限があるので、各通信線32Y、32M、32C、32Kおよび32Sや、各トナーID基板200Y、200M、200C、200Kおよび200Sの静電容量の仕様によっては、I2Cバスに規定される静電容量の上限を超えてしまう可能性がある。
なお、実際には、SDAによる通信線に係る静電容量は、各トナーID基板200Y、200M、200C、200Kおよび200Sによる静電容量をさらに含むものとなる。
図9は、図8の例の場合の各通信線31Y、31M、31C、31Kおよび31S、ならびに、32Y、32M、32C、32Kおよび32Sにおける波形の例を示す。なお、図9において、信号SDA(Y)、SDA(M)、SDA(C)、SDA(K)およびSDA(S)は、それぞれ通信線32Y、32M、32C、32Kおよび32Sにおける信号に対応し、信号SCL(Y)、SCL(M)、SCL(C)、SCL(K)およびSCL(S)は、それぞれ通信線31Y、31M、31C、31Kおよび31Sにおける信号に対応する。
CPU11から導出される例えばSDAによる通信線は、各通信線32Y、32M、32C、32Kおよび32Sに並列に接続されている。したがって、CPU11から、SDAによる通信線に対して送信された信号は、各通信線32Y、32M、32C、32Kおよび32Sにそれぞれ転送される。これは、SCLによる通信線についても同様である。
ここで、上述したように、制御ユニット10と各トナーID基板200Y、200M、200C、200Kおよび200Sとを接続するハーネスが長く、SDAおよびSCLによる通信線の静電容量が、それぞれI2Cバスに規定される静電容量の上限を超えてしまっている場合について考える。
この場合、通信線の時定数により、信号の立ち上がりおよび立ち下がりの時間(図中に時間t0として示す)が、I2Cバスに規定される時間に対して長くなってしまうことになる。すなわち、SDAおよびSCLによる通信線により送信される信号の波形が、規定の波形に対して鈍ってしまう。これにより、通信確定している時間、すなわち、信号がフラットな時間が規定より短くなるため、通信特性が劣化し、正常な通信が行えなくなるおそれがある。これは、より高速な通信を行おうとする場合に顕著となる。
この通信特性の劣化への対策として、プルアップ抵抗定数を小さくしてプルアップ抵抗に流れる電流を多くすることで、立ち上がり時間を高速化する方法が考えられる。しかしながら、プルアップ抵抗を小さくするほど、信号のロー状態のレベルがオフセットしてしまう。また、I2Cバスでは、信号のロー状態のレベルも規定されており、プルアップ抵抗をある程度以下の値にすることは、困難である。
(実施形態に係る通信方法)
次に、実施形態に係る通信方法について説明する。制御ユニット10から各トナーID基板200Y、200M、200C、200Kおよび200Sへのアクセスは、各トナーID基板200Y、200M、200C、200Kおよび200Sについて排他的に行われる。そこで、実施形態では、各トナーID基板200Y、200M、200C、200Kおよび200Sのうち、制御ユニット10がアクセスするトナーID基板に接続される通信線を接続状態とし、他のトナーID基板に接続される通信線を遮断状態とする。実施形態では、これにより、制御ユニット10と各トナーID基板200Y、200M、200C、200Kおよび200Sとを接続するハーネスが長い場合の、信号の鈍りをより小さく抑えることを可能とする。
図10は、実施形態に係る制御ユニット10の一例の構成を示す。なお、図10において、上述した図8と共通する部分には同一の符号を付して、詳細な説明を省略する。
図10において、通信線31Yおよび32Y、31Mおよび32M、31Cおよび32C、31Kおよび32K、ならびに、31Sおよび32Sそれぞれの経路上に、スイッチ部70Y、70M、70C、70Kおよび70Sがそれぞれ設けられる。各スイッチ部70Y、70M、70C、70Kおよび70Sは、それぞれ2のスイッチ回路71Yおよび72Y、71Mおよび72M、71Cおよび72C、71Kおよび72K、ならびに、71Sおよび72Sを含む。
より詳細には、スイッチ部70Yにおいて、スイッチ回路71Yは、通信線31Yの経路上に設けられ、スイッチ回路72Yは、通信線32Yの経路上に設けられる。以下同様に、スイッチ部70Mにおいて、スイッチ回路71Mおよび72Mは、それぞれ通信線31Mおよび32Mの経路上に設けられ、スイッチ部70Cにおいて、スイッチ回路71Cおよび72Cは、それぞれ通信線31Cおよび32Cの経路上に設けられる。また、スイッチ部70Kにおいて、スイッチ回路71Kおよび72Kは、それぞれ通信線31Kおよび32Kの経路上に設けられ、スイッチ部70Sにおいて、スイッチ回路71Sおよび72Sは、それぞれ通信線31Sおよび32Sの経路上に設けられる。
スイッチ部70Yにおいて、スイッチ回路71Yおよび72Yは、制御端子73Yの状態により、共通に制御される。制御端子73Yは、値「1」および「0」の何れかの状態を取り、図10の例では、スイッチ回路71Yおよび72Yは、制御端子73Yが値「1」の状態でそれぞれオン状態(閉状態)となり、制御端子73Yが値「0」の状態でそれぞれオフ状態(開状態)となる。
これは、他のスイッチ部70M、70C、70Kおよび70Sにおいても同様である。すなわち、スイッチ部70Mにおいて、スイッチ回路71Mおよび72Mは、制御端子73Mの状態により、共通に制御される。スイッチ部70Cにおいて、スイッチ回路71Cおよび72Cは、制御端子73Cの状態により、共通に制御される。スイッチ部70Kにおいて、スイッチ回路71Kおよび72Kは、制御端子73Kの状態により、共通に制御される。また、スイッチ部70Sにおいて、スイッチ回路71Sおよび72Sは、制御端子73Sの状態により、共通に制御される。
なお、以下では、特に記載のない限り、例えば「スイッチ回路71Yおよび72Yがオン状態またはオフ状態になる」ことを、「スイッチ部70がオン状態またはオフ状態になる」のように記述する。これは、他のスイッチ回路71Mおよび72M、71Cおよび72C、71Kおよび72K、ならびに、71Sおよび72Sについても同様とする。
実施形態では、各スイッチ回路71Yおよび72Y、71Mおよび72M、71Cおよび72C、71Kおよび72K、ならびに、71Sおよび72Sとしてアナログスイッチを用いる。アナログスイッチは、オン状態において双方向の導通が可能であって、一端の状態を他端に伝達する。換言すれば、アナログスイッチは、オン状態において、両端の電位が等しくなる。
図11は、実施形態に適用可能なアナログスイッチによるスイッチ回路71Yの一例の回路を示す。図11の例では、スイッチ回路71Yは、PチャンネルのMOSFET(Metal-Oxide-Semiconductor Field-Effect Transistor)による素子710と、NチャンネルのMOSFETによる素子711とが並列に接続されて構成される。制御端子73Yは、素子711のゲートに接続されると共に、インバータ712を介して素子710のゲートに接続される。制御端子73Yが値「1」の状態になると、素子710および711のソースおよびドレイン間が双方向に導通状態となる。また、制御端子73Yが値「0」の状態になると、素子710および711のソースおよびドレイン間が遮断状態となる。
なお、他のスイッチ回路72Y、71Mおよび72M、71Cおよび72C、71Kおよび72K、ならびに、71Sおよび72Sは、スイッチ回路71Yと同一の構成で実現可能であるので、ここでの説明を省略する。
なお、スイッチ回路71Yは、図11に示す素子710および711を並列接続する構成によるものに限定されない。すなわち、スイッチ回路71Yは、オン状態において双方向の導通が可能であって、一端の状態を他端に伝達することが可能であれば、他の回路構成でもよい。また、スイッチ回路71Yは、リレーなど機械的に接点を開閉するものでもよい。
図10の説明に戻り、制御ユニット10の外部から供給されるユニット電源OFF信号がスイッチ素子62のゲートに入力される。スイッチ素子62は、ゲートが値「0」(例えば+5V)でソースおよびドレイン間がオン状態となり、ゲートが値「1」(例えば0V)でソースおよびドレイン間がオフ状態となる。スイッチ素子62は、ソースに+5Vの電源電圧が接続され、ドレインに、プルアップ抵抗群52に含まれる各プルアップ抵抗の一端が共通して接続される。各プルアップ抵抗の他端は、それぞれ通信線31Y、32Y、31M、32M、31C、32C、31K、32K、31Sおよび32Sに接続される。
なお、ユニット電源OFF信号は、例えばドア7が開扉された場合などに、ユーザによる操作時の安全性確保のため、駆動系などを停止させるための信号である。例えば、ユニット電源OFF信号は、画像形成装置1の通常の稼働時には値「0」とされ、ドア7の開扉時など所定の条件下で値「1」とされる。
CPU11は、それぞれ値「1」(例えば+5V)および「0」(例えば0V)の何れかに値を取るイネーブル信号Enable(Y)、Enable(M)、Enable(C)、Enable(K)およびEnable(S)を出力する。イネーブル信号Enable(Y)、Enable(M)、Enable(C)、Enable(K)およびEnable(S)は、各通信線31Yおよび32Y、31Mおよび32M、31Cおよび32C、31Kおよび32K、ならびに、31Sおよび32Sによる通信の有効および無効を設定するための信号である。各イネーブル信号Enable(Y)、Enable(M)、Enable(C)、Enable(K)およびEnable(S)は、スイッチ制御回路60に入力される。
スイッチ制御回路60は、2つの入力端のそれぞれが反転入力とされたAND回路61Y、61M、61C、61Kおよび61Sを含む。各イネーブル信号Enable(Y)、Enable(M)、Enable(C)、Enable(K)およびEnable(S)は、AND回路61Y、61M、61C、61Kおよび61Sの一方の反転入力端に入力される。AND回路61Y、61M、61C、61Kおよび61Sの他方の反転入力端には、ユニット電源OFF信号が共通に入力される。
例えばAND回路61Yは、イネーブル信号Enable(Y)が値「0」、且つ、ユニット電源OFF信号が値「0」で、値「1」を出力し、イネーブル信号Enable(Y)の値とユニット電源OFF信号の値との他の組み合わせでは、値「0」を出力する。AND回路61M、61C、61Kおよび61Sについても、同様である。
したがって、各AND回路61Y、61M、61C、61Kおよび61Sは、ユニット電源OFF信号が値「0」の場合に、それぞれ各イネーブル信号Enable(Y)、Enable(M)、Enable(C)、Enable(K)およびEnable(S)が値「0」で値「1」を出力し、値「1」で値「0」を出力する。また、各AND回路61Y、61M、61C、61Kおよび61Sは、ユニット電源OFF信号が値「1」の場合に、各イネーブル信号Enable(Y)、Enable(M)、Enable(C)、Enable(K)およびEnable(S)の値に関わらず、値「0」を出力する。
各AND回路61Y、61M、61C、61Kおよび61Sの出力端は、スイッチ部70Y、70M、70C、70Kおよび70Sの制御端子73Y、73M、73C、73Kおよび73Sにそれぞれ接続される。ユニット電源OFF信号が値「0」である場合、各AND回路61Y、61M、61C、61Kおよび61Sのうち、入力されるイネーブル信号Enableの値が「0」であるAND回路の出力が値「1」とされる。これにより、スイッチ部70Y、70M、70C、70Kおよび70Sのうち、当該AND回路の出力が接続されるスイッチ部がオン状態となり、その他のスイッチ部がオフ状態となる。
ここで、CPU11に、外部からの命令40により、トナーID基板200Y、200M、200C、200Kおよび200Sのうち何れかを選択してアクセスするよう指示されたものとする。この場合、CPU11は、指示されるアクセス先を示すアドレス情報を、I2Cバスの仕様に従いSDAによる通信線に対して送信する。また、CPU11は、このアドレス情報の送信に応じて、当該アドレス情報が示すアクセス先に対応するイネーブル信号Enableの値を「0」とする。
一例として、外部からの命令40がトナーID基板200Yに対するアクセス要求であるものとする。CPU11は、この命令40に従い、トナーID基板200Y、200M、200C、200Kおよび200SのうちトナーID基板200Yを選択する。CPU11は、選択したトナーID基板200Yのアドレス情報を示す信号を、I2Cバスの仕様に従い生成し、生成したアドレス情報を示す信号をSDAによる通信線から送信する。
また、CPU11は、イネーブル信号Enable(Y)、Enable(M)、Enable(C)、Enable(K)およびEnable(S)のうち、選択したトナーID基板200Yに対応するイネーブル信号Enable(Y)を値「0」とし、それ以外のイネーブル信号Enable(M)、Enable(C)、Enable(K)およびEnable(S)を値「1」とする。上述したように、ユニット電源OFF信号は値「0」とされているので、イネーブル信号Enable(Y)が入力されるAND回路61Yの出力は、値「1」となる。また、それ以外のイネーブル信号Enable(M)、Enable(C)、Enable(K)およびEnable(S)が入力されるAND回路61M、61C、61Kおよび61Sの出力は、値「0」となる。
これらAND回路61Y、61M、61C、61Kおよび61Sの各出力に応じて、各スイッチ部70Y、70M、70C、70Kおよび70Sのオンオフ状態が制御される。トナーID基板200Yが選択されたこの例では、制御端子73Yが値「1」とされ、スイッチ部70Yがオン状態とされる。一方、制御端子73M、73C、73Kおよび73Sは、それぞれ値「0」とされ、スイッチ部70M、70C、70Kおよび70Sは、それぞれオフ状態とされる。
したがって、CPU11から導出されるSCLおよびSDAによる各通信線には、通信線31Yおよび32Y、31Mおよび32M、31Cおよび32C、31Kおよび32K、ならびに、31Sおよび32Sのうち、通信線31Yおよび32Yのみが接続されることになる。そのため、CPU11から見た例えばSDAによる通信線に係る静電容量は、通信線32Yの1本分の静電容量となる。
上述した既存の通信方法による図8の例では、CPU11から見たSDAによる通信線の静電容量は、通信線32Y、32M、32C、32Kおよび32Sの5本分の静電容量となっている。このように、実施形態に係る通信方法では、CPU11から見たSDAによる通信線の静電容量を既存の通信方法に対して大幅に削減することができる。
図12は、各イネーブル信号Enable(Y)、Enable(M)、Enable(C)、Enable(K)およびEnable(S)のうち、イネーブル信号Enable(Y)のみを値「0」とした場合の、SDAおよびSCLによる通信線で伝送される信号の波形の例を示す。なお、図12において、信号SDA(Y)、SDA(M)、SDA(C)、SDA(K)およびSDA(S)は、それぞれ通信線32Y、32M、32C、32Kおよび32Sにおける信号に対応し、信号SCL(Y)、SCL(M)、SCL(C)、SCL(K)およびSCL(S)は、それぞれ通信線31Y、31M、31C、31Kおよび31Sにおける信号に対応する。
イネーブル信号Enable(Y)が値「0」となることで、スイッチ部70Yがオン状態とされる。これにより、信号SDA(Y)およびSCL(Y)に実線で示されるように、通信線31Yおよび32Yに、CPU11から導出されるSDAおよびSCLによる通信線の信号波形が現れる。
ここで、図12の信号SDA(Y)およびSCL(Y)の波形に対し、図9で示される、上述の既存の通信方法による信号SDA(Y)およびSCL(Y)の波形を破線により重ねて示す。例えば図12中の部分Aに注目すると、実線で示す実施形態に係る波形は、破線で示す既存の通信方法による波形と比べて、立ち上がりおよび立ち下がりがより急峻となっていることが分かる。
このように、アドレス情報に応じて選択される通信線のみをオン状態とし、他の通信線をオフ状態とすることで、通信線の静電容量を削減することができる。これにより、通信線を並列接続する場合であっても、通信線の静電容量をI2Cバスに規定される値以内に収めることが可能となり、良好な通信特性を得ることができる。
なお、図12において、他の信号SDA(M)およびSCL(M)、信号SDA(C)およびSCL(C)、信号SDA(K)およびSCL(K)、ならびに、信号SDA(S)およびSCL(S)は、それぞれ対応するイネーブル信号Enable(M)、Enable(C)、Enable(K)およびEnable(S)が値「1」とされ各スイッチ部70M、70C、70Kおよび70Sがオフ状態とされていても、ハイ状態となっている。これは、ユニット電源OFF信号が値「0」とされスイッチ素子62がオン状態となっていることで、+5Vの電源電圧により、各通信線31Mおよび32M、31Cおよび32C、31Kおよび32K、ならびに、31Sおよび32Sがプルアップされているためである。
また、上述では、各スイッチ部70M、70C、70Kおよび70Sは、CPU11から出力される各イネーブル信号Enable(M)、Enable(C)、Enable(K)およびEnable(S)により、それぞれ閉状態および開状態が制御されている。そして、これにより、各通信線31Yおよび32Y、31Mおよび32M、31Cおよび32C、31Kおよび32K、ならびに、31Sおよび32Sの接続および遮断状態を制御しているように説明したが、これはこの例に限定されない。例えば、CPU11は、各イネーブル信号Enable(M)、Enable(C)、Enable(K)およびEnable(S)として各スイッチ部70M、70C、70Kおよび70Sを開状態および閉状態のうち一方の状態に制御する信号のみを出力し、各スイッチ部70M、70C、70Kおよび70Sの他方の状態は、各通信線31Yおよび32Y、31Mおよび32M、31Cおよび32C、31Kおよび32K、ならびに、31Sおよび32Sに対する各プルアップ電圧の電圧レベルにより自動動作させる構成が考えられる。
さらに、上述では、アドレス情報に応じて選択される通信線のみをオン状態とし、他の通信線をオフ状態としているが、これはこの例に限定されない。すなわち、CPU11から見た通信線の静電容量がI2Cバスに規定の容量以下になっていればよい。一例として、SDAによる通信線32Y、32M、32C、32Kおよび32Sを例に取ると、アドレス情報に応じて例えば通信線32Yが選択された場合に、それ以外の各通信線32M、32C、32Kおよび32Sのうち、CPU11から見た静電容量が当該規定の容量以下になる1以上の通信線をオフ状態とする制御が考えられる。
(実施形態の変形例)
次に、実施形態の変形例について説明する。実施形態の変形例は、ユニット電源OFF信号に応じた動作に関するものである。上述したように、ユニット電源OFF信号は、各AND回路61Y、61M、61C、61Kおよび61Sの反転入力端に共通して入力される。そのため、ユニット電源OFF信号が値「0」から値「1」に変化すると、各スイッチ部70Y、70M、70C、70Kおよび70Sがオフ状態となる。
また、ユニット電源OFF信号は、スイッチ素子62にも入力され、各通信線31Yおよび32Y、31Mおよび32M、31Cおよび32C、31Kおよび32K、ならびに、31Sおよび32Sに対するプルアップ電圧の供給も制御する。すなわち、ユニット電源OFF信号が値「0」から値「1」に変化すると、これら各通信線31Yおよび32Y、31Mおよび32M、31Cおよび32C、31Kおよび32K、ならびに、31Sおよび32Sに対するプルアップ電圧の供給が停止される。
図13を用いて、ユニット電源OFF信号が値「0」から値「1」に変化した場合の各通信線31Yおよび32Y、31Mおよび32M、31Cおよび32C、31Kおよび32K、ならびに、31Sおよび32Sの信号の変化の例を示す。
なお、図13および後述する図15において、信号SDA(Y),b11、SCL(Y),b21、SDA(M),b12、SCL(M),b22、SDA(C),b13、SCL(C),b23、SDA(K),b14、SCL(K),b24、SDA(S),b15、および、SCL(S),b25は、それぞれ図10における位置b11、b21、b12、b22、b13、b23、b14、b24、b15およびb25における信号の例を示す。
また、図13および後述する図15において、信号SDA(Y),a11、SCL(Y),a21、SDA(M),a12、SCL(M),a22、SDA(C),a13、SCL(C),a23、SDA(K),a14、SCL(K),a24、SDA(S),a15、および、SCL(S),a25は、それぞれ図10における位置a11、a21、a12、a22、a13、a23、a14、a24、a15およびa25における信号を、CPU11側から見た例を示す。さらに、図13および後述する図15において、信号(+5VDly)は、スイッチ素子62のドレインすなわちプルアップ抵抗群52の、スイッチ素子62側に向けた直前の電圧を示す。
ユニット電源OFF信号が値「0」から値「1」に変化すると、各スイッチ部70Y、70M、70C、70Kおよび70Sがそれぞれオフ状態となり、また、プルアップ抵抗群52からのプルアップ電圧の供給も停止される。そのため、位置b11〜b25の信号は立ち下がり、ロー状態となる。一方、CPU11から導出されるSCLおよびSDAによる各通信線は、それぞれプルアップ抵抗50および51により+5Vのプルアップ電圧が与えられているため、ハイ状態を維持する。
このとき、制御ユニット10などにおける遅延の影響により、各スイッチ部70Y、70M、70C、70Kおよび70Sがオフ状態になる前に、プルアップ抵抗群52からのプルアップ電圧の供給が停止してしまうことが起こり得る。
制御ユニット10における遅延は、例えばアナログスイッチによる各スイッチ部70Y、70M、70C、70Kおよび70S内での遅延や、制御ユニット10の基板上における伝送経路の遅延が考えられる。さらには、各通信線31Yおよび32Y、31Mおよび32M、31Cおよび32C、31Kおよび32K、ならびに、31Sおよび32Sの接続先のトナーID基板200Y、200M、200C、200Kおよび200Sにおける遅延などの影響も考えられる。
各スイッチ部70Y、70M、70C、70Kおよび70Sがオフ状態になる前に、プルアップ抵抗群52からのプルアップ電圧の供給が停止してしまった場合、各通信線31Yおよび32Y、31Mおよび32M、31Cおよび32C、31Kおよび32K、ならびに、31Sおよび32Sがロー状態になる(図13の部分B参照)。このロー状態が各トナーID基板200Y、200M、200C、200Kおよび200Sに検知され、各トナーID基板200Y、200M、200C、200Kおよび200SからCPU11に伝達されてしまう。
また、この伝達の後に各スイッチ部70Y、70M、70C、70Kおよび70Sがオフ状態になる。そのため、例えば数msecといった短時間のロー状態の後、プルアップ抵抗50および51により、+5Vのプルアップ電圧がCPU11から導出されるSDAおよびSCLによる各通信線に供給され、これら各通信線がハイ状態となる。したがって、図13の部分Cに示されるように、短時間ではあるが、ロー状態の「ひげ波形」が発生することになる。
ところで、I2Cの規格によれば、通信構成として、I2Cバスに複数のマスタを接続することが許可されている。また、I2Cバスにおける通信開始は、マスタ側からのみ、行われるように定められているため、同一のI2Cバスに複数のマスタが接続されている場合は、通信の開始が競合してしまう場合がある。通信開始の競合が発生した場合、先に通信を開始した方が通信の優先権を持つことを許可される。逆に、例えば同一のI2Cバスに接続される第1のマスタおよび第2のマスタのうち、第1のマスタが第2のマスタよりも通信の開始が早い場合には、第2のマスタは、第1のマスタが通信を行っていると認識し、通信動作を実施しなくなる。この通信開始は、上述したスタートコンディション動作により示される。
ここで、CPU11が、図13の部分Cに示すような「ひげ波形」をスタートコンディション動作と認識してしまう可能性がある。この場合、CPU11は、他のマスタが通信を開始しようとしていると認識してしまい、通信を控えてしまうというアービトレーション状態が発生してしまう。
そこで、実施形態の変形例では、ユニット電源OFF信号の値「0」から値「1」への変化に対して遅延を持たせて、プルアップ抵抗群52へのプルアップ電圧の供給を停止させる。
図14は、実施形態の変形例に係る制御ユニット10の一例の構成を示す。なお、図14において、上述の図10と共通する部分には同一の符号を付して、詳細な説明を省略する。
図14に示される制御ユニット10は、図10の制御ユニット10の構成に対して、ユニット電源OFF信号のスイッチ制御回路60への分岐点と、スイッチ素子62のドレインとの間に遅延回路81(図14では「D」と記載)が挿入されている。遅延回路81は、ユニット電源OFF信号を遅延させてスイッチ素子62のゲートに入力させるもので、例えばキャパシタを利用して構成することができる。これに限らず、遅延回路81を、スイッチ機能付きバッファを用いて構成してもよい。
この遅延回路81により、ユニット電源OFF信号が「0」から「1」に変化した場合に、各スイッチ部70Y、70M、70C、70Kおよび70Sがオフ状態となったタイミングから所定時間遅延させて、プルアップ抵抗群52からのプルアップ電圧の供給を停止させることができる。
図15は、実施形態の変形例による、ユニット電源OFF信号が値「0」から値「1」に変化した場合の各通信線31Yおよび32Y、31Mおよび32M、31Cおよび32C、31Kおよび32K、ならびに、31Sおよび32Sの信号の変化の例を示す。なお、図15において、信号(+5VDly)は、図13の信号(+5VDly)と対応し、図14の例では、信号(+5VDly)は、位置c10における波形となる。
ユニット電源OFF信号が値「0」から値「1」に変化したタイミングから、遅延回路81により時間Dtだけ遅延されて、信号(+5VDly)がロー状態となる。この信号(+5VDly)がロー状態になったタイミングでプルアップ抵抗群52によるプルアップ電圧の供給が停止され、位置b11〜b25の信号が立ち下がり(図15の部分E参照)、ロー状態となる。
一方、各スイッチ部70Y、70M、70C、70Kおよび70Sは、ユニット電源OFF信号が「0」から「1」に変化したタイミングでオフ状態とされている。すなわち、プルアップ抵抗群52によるプルアップ電圧の供給は、各スイッチ部70Y、70M、70C、70Kおよび70Sがオフ状態となってから時間Dt後に、停止されることになる。この時間Dtを、上述した「ひげ波形」の発生時間より所定以上長く設定することで、各通信線31Yおよび32Y、31Mおよび32M、31Cおよび32C、31Kおよび32K、ならびに、31Sおよび32Sのロー状態が各トナーID基板200Y、200M、200C、200Kおよび200SからCPU11に伝達されることが無く、「ひげ波形」が発生しない(図15の部分F参照)。
したがって、実施形態の変形例によれば、CPU11が他のマスタのスタートコンディションと誤認識することも無く、CPU11がアービトレーション状態となる不具合の発生も抑えられる。
なお、上述の実施形態および変形例は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。