(57)【要約】【課題】  動作中にマスタデバイスがリセットされた場合であっても、Ｉ２Ｃバスに接続されたスレーブデバイスの誤動作を防止した電子機器を提供する。【解決手段】  本発明の電子機器１は、ＣＰＵ２と、ＥＥＰＲＯＭ３と、該ＣＰＵ２およびＥＥＰＲＯＭ３を接続するＩ２Ｃバスと、ＣＰＵ２にリセット信号を供給するリセットＩＣ４とを備えていると共に、ＣＰＵ２にアクティブなリセット信号が入力された場合に、Ｉ２Ｃバスのクロック信号線７をローレベルにする第１ダイオード５を備えている。【選択図】  図１
2005338963.tif 000002
【特許請求の範囲】
【請求項１】
マスタデバイスと、スレーブデバイスと、該マスタデバイスおよびスレーブデバイスを接続する２線式シリアルバスと、マスタデバイスにリセット信号を供給するリセットデバイスとを備えた電子機器において、
上記マスタデバイスにアクティブなリセット信号が供給された場合に、２線式シリアルバスのクロック信号線をローレベルにする回路を備えていることを特徴とする電子機器。
【請求項２】
上記回路は、クロック信号線とリセットデバイスとを接続するダイオードであることを特徴とする請求項１に記載の電子機器。
【請求項３】
上記スレーブデバイスがＥＥＰＲＯＭであることを特徴とする請求項１または２に記載の電子機器。
【請求項４】
上記スレーブデバイスを複数備えていることを特徴とする請求項１または２に記載の電子機器。
【請求項５】
上記複数のスレーブデバイスのうち少なくとも１つがＥＥＰＲＯＭであることを特徴とする請求項４に記載の電子機器。
【請求項６】
上記マスタデバイスがリセットされた場合に、クロック信号線をローレベルにするようになっていることを特徴とする請求項１ないし５のいずれか１項に記載の電子機器。
【請求項７】
上記リセットデバイスは、マスタデバイスに対して２つの異なるリセット信号を供給し、
マスタデバイスは、一方のリセット信号を入力するとクロック信号線をローレベルにし、他方のリセット信号を入力するとマスタデバイスをリセットするようになっていることを特徴とする請求項１ないし５のいずれか１項に記載の電子機器。
【請求項８】
上記クロック信号線をローレベルにする開始電圧が、マスタデバイスをリセットする電圧よりも高いことを特徴とする請求項７に記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２線式シリアルバスで接続されたマスタデバイスとスレーブデバイスとを備えた電子機器に関するものである。
【背景技術】
【０００２】
従来から、マスタデバイスとスレーブデバイスとが２線式シリアルバス（以下、Ｉ２Ｃバスと称する）で接続された電子機器が用いられている。マスタデバイスとスレーブデバイスとをＩ２Ｃバスで接続した一般的な電子機器の構成を図３に示す。
【０００３】
図３に示す電子機器５１では、マスタデバイスとして用いられているＣＰＵ５２と、スレーブデバイスとして用いられているＥＥＰＲＯＭ５３とが、ＳＣＬ５４およびＳＤＡ５５にて接続されている。ＳＣＬ５４はクロック信号を送る信号線であり、ＳＤＡ５５は、データやアドレス等を送る信号線である。ＳＣＬ５４は、ＣＰＵ５２の双方向ポートに接続されており、ＳＤＡ５５は、ＣＰＵ５２の双方向ポートに接続されている。
【０００４】
Ｉ２Ｃバスを用いてＥＥＰＲＯＭ５３にデータを書き込む際には、図４に示すように、まず、ＳＣＬ５４がハイの状態で、ＳＤＡ５５がハイからローに変化することによって、ＥＥＰＲＯＭ５３がスタートコマンドを認識する。そして、ＣＰＵ５２は、ＳＣＬ５４のクロック信号に同期して、ＳＤＡ５５にてデバイスコードやアドレス、書き込みデータをＥＥＰＲＯＭ５３に転送する。ＥＥＰＲＯＭ５３は、エンドコマンドを認識するまで書き込みデータを蓄積しておく。
【０００５】
各データの転送が終了すると、ＳＣＬ５４がハイの状態で、ＳＤＡ５５がローからハイへと変化する。ＥＥＰＲＯＭ５５は、この変化をエンドコマンドとして認識し、蓄積した書き込みデータをメモリセルへと記録するようになっている。
【０００６】
また、ＣＰＵ５２にはリセットＩＣ５６が接続されている。リセットＩＣ５６は、電源ＯＮ時や電源ＯＦＦ時といった、電源電圧がある一定の電圧よりも低い場合に、ＣＰＵ５２をローの状態にするものである。リセットＩＣ５６は、電源ＯＮ時には電圧が安定するまでＣＰＵ５２の動作を停止させるようになっており、電源ＯＦＦ時には、ＣＰＵ５２が正常に動作する電圧の範囲を超える前にＣＰＵ５２の動作を停止させるようになっている。これにより、ＣＰＵ５２が誤動作することを防止することとしている。
【０００７】
なお、マスタとしてマイクロコントローラを用い、スレーブとしてＥＥＰＲＯＭを用いて、これらマイクロコントローラとＥＥＰＲＯＭとがＩ２Ｃバスによって接続されたマスタ・スレーブ装置を有するシリアルバスデータシステムが、例えば特許文献１に開示されている。
【特許文献１】特表平１１−５０２６４３号公報（平成１１年(1999)３月２日公表）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記図３に示す構成では、何らかの異常によって電源がＯＦＦされた際に、記録が正常に行われない場合がある。具体的には、ＣＰＵ５２がＥＥＰＲＯＭ５３に対してデータを転送している途中で電源が切れてしまった場合には、電源電圧が徐々に低下するとともに、リセットＩＣ５６はＣＰＵ５２の動作を停止するためにリセット信号を出力する。
【０００９】
電源がＯＦＦされると、エンドコマンドが入力されていないため、書き込み動作そのものがなかったこととなり、通常はそのまま終了することとなる。しかしながら、ＣＰＵ５２はリセット信号を入力することにより各ポートが初期状態に戻る。一般に、各ポートは初期状態では入力状態になるように設定されている。従って、各ポートは、リセットによって入力状態となり、ハイインピーダンスとなる。このため、図５に示すように、ＳＣＬ５４およびＳＤＡ５５は、リセット後にプルアップ抵抗による電圧（リップル電圧）が発生する。
【００１０】
この場合、ＳＣＬ５４およびＳＤＡ５５は、ほぼ同時にハイとなるものの、ＥＥＰＲＯＭ５３の特性によっては（特にＥＥＰＲＯＭ５３が高精度の場合には）、この状態をエンドコマンドと認識してしまうことがある。これにより、ＥＥＰＲＯＭ５３は、転送途中のデータ、すなわち書き込みが全て終了していない状態のデータをメモリセルへ記録することを開始してしまう。
【００１１】
記録を開始してしまうと、上述のように電源電圧は徐々に低下しているため、記録が途中で終了してしまったり、誤ったデータを記録してしまったりする恐れがある。その結果、ＥＥＰＲＯＭのデータを破壊してしまうという問題を生じる。
【００１２】
ここで、複写機等の画像形成装置を例に挙げて具体的に説明する。画像形成装置は、コピー枚数や装置の情報など基本的な情報を記憶しておく第１ＥＥＰＲＯＭと、感光体ドラムの回転数や直前の画像調整値を記憶しておく第２ＥＥＰＲＯＭとを備えている。また、これら第１ＥＥＰＲＯＭおよび第２ＥＥＰＲＯＭは、Ｉ２Ｃバスの同一ライン上に設けられており、マスタデバイスであるＣＰＵによって制御されている。
【００１３】
上記の画像形成装置では、例えば、第２ＥＥＰＲＯＭに情報を書き込んでいる途中に電源がＯＦＦされた場合、ＣＰＵは優先度の低い第２ＥＥＰＲＯＭの書き込み動作を中断し、電源が落ちきる前に優先度の高い第１ＥＥＰＲＯＭへの情報の書き込みを開始する。
【００１４】
この場合、第２ＥＥＰＲＯＭは、エンドコマンドの待ち状態のまま待機していることになる。第１ＥＥＰＲＯＭへの情報の記録が終了した後は、通常はエンドコマンドなしで、第２ＥＥＰＲＯＭへの書き込みそのものをなかったことにして画像形成装置は停止することとなる。しかしながら、第２ＥＥＰＲＯＭがリセット後のリップル電圧をエンドコマンドとして誤って認識してしまうと、誤動作により書き込み途中の情報を記録してしまう恐れがある。その結果、第２ＥＥＰＲＯＭのデータを破壊してしまうこととなる。
【００１５】
また、Ｉ２Ｃバスの同一ライン上に複数のＥＥＰＲＯＭが設けられている場合で、ＳＣＬのみ共用してＳＤＡを独立させた場合に、上記と同様の割り込み処理が入ると、第１ＥＥＰＲＯＭへの書き込み用のクロック信号が第２ＥＥＰＲＯＭにも入ってしまう。この場合、第２ＥＥＰＲＯＭは、第１ＥＥＰＲＯＭのクロック信号に同期して、動いていない第２ＥＥＰＲＯＭのデータを書き込んでしまう。第２ＥＥＰＲＯＭが、その後のリセット動作によりエンドコマンドを認識してしまった場合には、誤動作により誤ったデータを記録してしまう。その結果、第２ＥＥＰＲＯＭのデータを破壊してしまうこととなる。
【００１６】
また、上記特許文献１には、エラーの認識および除去のための方法について記載されている。しかしながら、特許文献１では、リセットされた後にスタート条件を認識しないことによるエラーを除去するためのものである。すなわち、リセットの後にＳＤＡの電位を検査してエラーを認識し除去する方法であり、電源電圧降下に伴うリセット等、データ転送中（特にマスタデバイスからスレーブデバイスへのデータ転送中）のリセットによる影響については考慮されていない。
【００１７】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、動作中（特にマスタデバイスからスレーブデバイスへのデータ転送中）にマスタデバイスがリセットされた場合であっても、Ｉ２Ｃバスに接続されたスレーブデバイスの誤動作を防止した電子機器を提供することにある。
【課題を解決するための手段】
【００１８】
本発明に係る電子機器は、上記課題を解決するために、マスタデバイスと、スレーブデバイスと、該マスタデバイスおよびスレーブデバイスを接続する２線式シリアルバスと、マスタデバイスにリセット信号を供給するリセットデバイスとを備えた電子機器において、上記マスタデバイスにアクティブなリセット信号が供給された場合に、２線式シリアルバスのクロック信号線をローレベルにする回路を備えていることを特徴としている。
【００１９】
上記の構成によれば、マスタデバイスおよびスレーブデバイスが２線式シリアルバス（Ｉ２Ｃバス）で接続されている。Ｉ２Ｃバスは、クロック信号を転送するクロック信号線と、データやアドレスを転送するデータ・アドレス信号線とからなっている。また、マスタデバイスはリセットデバイスと接続されており、リセットデバイスはマスタデバイスにリセット信号を供給するようになっている。
【００２０】
また、マスタデバイスにアクティブなリセット信号が供給された場合に、クロック信号線をローレベルにする回路を備えている。このため、例えデータ転送中に電源がＯＦＦとなりマスタデバイスがリセットされたとしても、クロック信号線がハイになることがない。すなわち、マスタデバイスはアクティブなリセット信号を入力すると、クロック信号線をローレベルにするため、スレーブデバイスがエンドコマンドを誤って認識することを回避できる。その結果、スレーブデバイスの不完全な処理や誤動作を防止することができる。
【００２１】
本発明に係る電子機器では、上記回路は、クロック信号線とリセットデバイスとを接続するダイオードであることが好ましい。回路は、クロック信号線の電荷を引き込むことによりクロック信号線をローレベルにすることができる。従って、上記の構成によれば、ダイオードを用いることにより、電荷がクロック信号線からリセットデバイスに向かう方向にのみ移動するように制御することができる。これにより、アクティブなリセット信号が出力された場合のみクロック信号線をローレベルにすることが可能となる。また、クロック信号線とリセットデバイスとを接続しているため、リセットデバイスを２個設ける必要がなく１個で構成することができる。さらに、リセットデバイスは汎用で広く使用されているものである。このため、簡易な構成で確実にクロック信号線をローレベルにすることができる。
【００２２】
本発明に係る電子機器では、上記スレーブデバイスがＥＥＰＲＯＭであってもよい。スレーブデバイスがＥＥＰＲＯＭである場合には、マスタデバイスから転送されたデータをＥＥＰＲＯＭに記録することとなる。上記の構成とすることにより、マスタデバイスからＥＥＰＲＯＭへのデータ転送中にリセットされた場合であっても、ＥＥＰＲＯＭが不完全なデータを記録してしまうことを防止することができる。
【００２３】
本発明に係る電子機器では、上記スレーブデバイスを複数備えていてもよい。スレーブデバイスを複数備えていても、マスタデバイスがリセットされた場合に、各スレーブデバイスとマスタデバイスとを接続するＩ２Ｃバスのクロック信号線をローレベルにするようになっているため、各スレーブデバイスの不完全な処理や誤動作を防止することができる。
【００２４】
また、上記複数のスレーブデバイスのうち少なくとも１つがＥＥＰＲＯＭであってもよい。この場合、マスタデバイスからＥＥＰＲＯＭへのデータ転送中にリセットされた場合であっても、ＥＥＰＲＯＭが不完全なデータを記録してしまうことを防止することができる。
【００２５】
本発明に係る電子機器では、上記マスタデバイスがリセットされた場合に、クロック信号線をローレベルにするようになっていることが好ましい。上記の構成によれば、マスタデバイスがリセットされると同時にクロック信号線をローレベルにするため、スレーブデバイスがエンドコマンドを誤って認識することを回避できる。その結果、スレーブデバイスの不完全な処理や誤動作を防止することができる。
【００２６】
本発明に係る電子機器では、上記リセットデバイスは、マスタデバイスに対して２つの異なるリセット信号を供給し、マスタデバイスは、一方のリセット信号を入力するとクロック信号線をローレベルにし、他方のリセット信号を入力するとマスタデバイスをリセットするようになっていることが好ましい。
【００２７】
上記の構成によれば、リセットデバイスが２つの異なるリセット信号を供給するようになっており、マスタデバイスは、入力したリセット信号に応じてクロック信号線をローレベルにする、またはマスタデバイス自身をリセットするようになっている。このため、クロック信号線をローレベルにするタイミングやマスタデバイスをリセットするタイミング等の条件を各々設定することが可能となり、確実にクロック信号線をローレベルにすることができる。その結果、スレーブデバイスの不完全な処理や誤動作を確実に防止することができる。
【００２８】
本発明に係る電子機器では、上記クロック信号線をローレベルにする開始電圧が、マスタデバイスをリセットする電圧よりも高いことが好ましい。回路は、ある電圧となった場合に、クロック信号線をローレベルにすることを開始する。すなわち、回路は、ある電圧となった場合に、クロック信号線の電荷を引き込むようになっている。また、リセットデバイスは、電源電圧を検知しており、ある検知電圧となった場合にアクティブなリセット信号を出力するようになっている。
【００２９】
従って、上記の構成とすることにより、電源電圧が低下した際に、マスタデバイスがリセットされる前にクロック信号線をローレベルにすることが可能となる。このため、より確実にクロック信号線をローレベルにすることができる。その結果、スレーブデバイスの不完全な処理や誤動作をより確実に防止することができる。
【発明の効果】
【００３０】
本発明に係る電子機器は、以上のように、マスタデバイスにアクティブなリセット信号が供給された場合に、２線式シリアルバスのクロック信号線をローレベルにする回路を備えている。これにより、マスタデバイスはアクティブなリセット信号を入力すると、クロック信号線をローレベルにするため、スレーブデバイスがエンドコマンドを誤って認識することを回避できる。その結果、スレーブデバイスの不完全な処理や誤動作を防止することができるという効果を奏する。
【発明を実施するための最良の形態】
【００３１】
本発明の実施の一形態について図１および図２に基づいて説明すると以下の通りである。図１は、本実施の形態における電子機器の概略構成を示すブロック図である。図１に示すように、電子機器１は、ＣＰＵ（マスタデバイス）２、ＥＥＰＲＯＭ（スレーブデバイス）３、リセットＩＣ（リセットデバイス）４、第１ダイオード（回路、ダイオード）５、第２ダイオード６を備えている。
【００３２】
ＣＰＵ２は、所定のデータをＥＥＰＲＯＭ３に記録する際の制御を行うものであり、いわゆるマスタデバイスである。ＣＰＵ２は、この制御の他に電子機器１の各動作を制御するものであってもよい。本発明では、マスタデバイスとしてＣＰＵ２を用いているが、これに限定されるものではなく、例えば、ＣＰＵ２に制御された入出力（Ｉ／Ｏ）制御用のＩＣを用いることもできる。
【００３３】
ＥＥＰＲＯＭ３は、所定のデータを記録するためのメモリであり、いわゆるスレーブデバイスである。本発明では、スレーブデバイスとしてＥＥＰＲＯＭ３を用いているが、これに限定されるものではなく、Ｄ／Ａ変換回路等の他のＩＣを用いることもできる。
【００３４】
リセットＩＣ４は、電源電圧を検知し、電源電圧がある規定電圧以下になるとローレベルのリセット信号を出力する汎用のＩＣである。すなわち、リセットＩＣ４は、規定電圧以下になると端子をローにするようになっており、電子機器１の起動時や停止時に、ＣＰＵ２が確実に動作するように、あるいは不確定な動作をしないようにするためのものである。
【００３５】
ＣＰＵ２およびＥＥＰＲＯＭ３は、２線式シリアルバス（以下、Ｉ２Ｃバスと称する）によって電気的に接続されている。すなわち、ＣＰＵ２およびＥＥＰＲＯＭ３は、２本の信号線７・８によって電気的に接続されている。ＣＰＵ２は、２つの入出力可能な双方向ポートとを有しており、２本の信号線７・８は、各双方向ポートに接続されている。一方の双方向ポートに接続されている信号線は、クロック信号を転送するためのクロック信号線（ＳＣＬ）７である。すなわち、ＣＰＵ２は、ＳＣＬ７を介してＥＥＰＲＯＭ３に対してクロック信号を転送するようになっている。
【００３６】
ＳＣＬ７を接続するポートとして双方向ポートを用いる場合には、電源ＯＦＦ字に双方向ポートがハイインピーダンスになる。このため、ＳＣＬ７にはプルアップ抵抗９が接続されている。なお、ＳＣＬ７を接続するポートとしては、双方向ポートに限定されるものではなく、出力専用ポートであってもよい。
【００３７】
また、他方の双方向ポートに接続されている信号線は、デバイスコード、アドレスおよび書き込みデータを転送するためのデータ・アドレス信号線（ＳＤＡ）８である。すなわち、ＣＰＵ２は、ＳＤＡ８を介してＥＥＰＲＯＭ３に対してデバイスコード、アドレスおよび書き込みデータを転送するようになっている。一方、ＥＥＰＲＯＭ３は、デバイスコード、アドレスおよび書き込みデータを各々受信する毎に、ステータスビットである肯定応答信号（ＡＣＫ）や否定応答信号（ＮＡＣＫ）をＣＰＵに対して転送するようになっている。このように、ＳＤＡは双方向でのやり取りに利用されるため、プルアップ抵抗１０が接続されている。
【００３８】
デバイスコードとは、８ビットのデータであり、例えば、同一ライン上に複数のＥＥＰＲＯＭを接続した場合に、どのＥＥＰＲＯＭを指定するのかについてのデータや、書き込みまたは読み出しを指定するデータ等が含まれている。また、アドレスとは、８ビットのデータであり、書き込みを開始するアドレスを指定するためのものである。また、書き込みデータとは、ＥＥＰＲＯＭ３に記録する８ビットのデータである。ＡＣＫは、上記各データを受信した際に、正常動作が可能な場合に出力される１ビットのステータスデータであり、ＮＡＣＫは何らかのエラーが発生して、正常動作が不可能な場合に出力される１ビットのステータスデータである。
【００３９】
このように、Ｉ２Ｃバスでは、データの転送単位は８ビットとなっており、ＣＰＵ２から８ビットのデータを送った後に、ＥＥＰＲＯＭ３から１ビットのステータス（ＡＣＬ／ＮＡＣＫ）が送られるため、合計９クロックサイクルで１伝送単位となっている。
【００４０】
また、ＳＣＬ７は第１ダイオード５を介してリセットＩＣ４に電気的に接続されており、ＣＰＵ２は第２ダイオード６を介してリセットＩＣ４に電気的に接続されている。リセットＩＣ４は、電源電圧が規定電圧以下であると判断した場合に、リセット端子をローにするようになっている。このため、ＳＣＬ７やＣＰＵ２は、リセットＩＣ４に電気的に接続されていることで、リセット時には電圧がローレベルに下がる。また、ＳＣＬ７やＣＰＵ２とリセットＩＣ４との間にダイオードを設けることで、電荷をリセットＩＣ４に引き込むことが可能となり、容易に電圧をローにすることができる。この具体的な説明については後述する。
【００４１】
上記構成を有する電子機器１が、ＥＥＰＲＯＭ３にデータを書き込む工程、および動作中にリセットが発生した場合であってもＥＥＰＲＯＭ３の誤動作を防止する工程について、以下に説明する。図２は、ＥＥＰＲＯＭ３にデータを書き込む際のタイミングチャートである。
【００４２】
図２に示すように、ＳＣＬ７がハイの状態でＳＤＡ８がハイからローに変化することによって、ＥＥＰＲＯＭ３がスタートコマンドを認識する。そして、ＣＰＵ２は、クロック信号のハイのタイミングに同期してデバイスコードを出力する。そして、ＥＥＰＲＯＭ３は、デバイスコードを入力すると、ＣＰＵ２に対してＡＣＫまたはＮＡＣＫを出力する。
【００４３】
ＣＰＵ２は、ＥＥＰＲＯＭ３からＡＣＫまたはＮＡＣＫを入力すると、次に、クロック信号のハイのタイミングに同期してアドレスを出力する。ＥＥＰＲＯＭ３は、アドレスを入力すると、ＣＰＵ２に対してＡＣＫまたはＮＡＣＫを出力する。
【００４４】
そして、ＣＰＵ２は、ＥＥＰＲＯＭ３からＡＣＫまたはＮＡＣＫを入力すると、次に、クロック信号のハイのタイミングに同期して書き込みデータを出力する。なお、書き込みデータは、８ビット単位を１バイトとして、最大１６バイトを連続して出力することもできる。ＥＥＰＲＯＭ３は、書き込みデータを入力すると、１バイト毎にＣＰＵ２に対してＡＣＫまたはＮＡＣＫを出力する。そして、ＥＥＰＲＯＭ３は、入力した書き込みデータを一時的に蓄積する。
【００４５】
その後、通常の動作では、ＳＣＬ７がハイの状態で、ＳＤＡ８がローからハイに変化することによって、ＥＥＰＲＯＭ３はエンドコマンドを認識する。ＥＥＰＲＯＭ３は、エンドコマンドを認識すると、蓄積しておいた書き込みデータを所定のアドレスに記録するようになっている。しかしながら、動作中に何らかの原因によって電子機器１の電源がＯＦＦとなった場合には、これとは異なる動作を行う。
【００４６】
ここで、動作中に何らかの原因によって電子機器１の電源がＯＦＦとなった場合について説明する。
【００４７】
上述のようにしてデバイスコードおよびアドレスを転送した後の書き込みデータを転送する間に電源がＯＦＦになると、図２に示すように電源電圧は徐々に低下する。そして、電源電圧が低下し、ある電圧以下になった場合にリセットＩＣ４はＣＰＵ２に対してアクティブローのリセット信号を出力する。
【００４８】
ＣＰＵ２がローレベルのリセット信号を入力すると、ＣＰＵ２の各ポートは初期状態となる。この場合、ＳＣＬ７およびＳＤＡ８は、ハイインピーダンスとなる。これに対して、リセットＩＣ４は、リセット時にはローインピーダンスとなっている。また、本実施の形態では、ＳＣＬ７は第１ダイオード５を介してリセットＩＣ４に接続されている。このため、リセット時に各ポートがハイインピーダンスとなった場合であっても、ＳＣＬ７に残存する電源ＯＦＦ時の電荷は、リセットＩＣ４に引き込まれてしまい、ＳＣＬ７の電圧はローに下がる。
【００４９】
すなわち、ＳＣＬ７の電圧をリセットＩＣ４に引き込むことによってＳＣＬ７を強制的にローにしている。このため、図２に示すように、プルアップ抵抗による電圧（リップル電圧）が発生せず、ＳＣＬ７はローのままとなる。その結果、ＥＥＰＲＯＭ３は、エンドコマンドを誤認識することはなく、何も書き込まれないまま終了することとなる。従って、ＥＥＰＲＯＭ３が不完全なデータを記録したり、誤ったデータを記録したりすることを回避できる。
【００５０】
また、ＳＣＬ７は、第１ダイオード５を介してリセットＩＣ４に接続されているため、電荷はＳＣＬ７からリセットＩＣ４に向かって移動するのみである。従って、リセットＩＣ４からＳＣＬ７に電荷が移動することはなく、ＳＣＬ７はリセット時以外にリセットＩＣ４によってローになったり、ハイになったりすることはない。また、電源ＯＮ時には、リセットＩＣ４はハイレベルのリセット信号を出力している。このため、ＳＣＬ７やＣＰＵ２の電荷を引き込み、ローにしてしまうことはない。
【００５１】
なお、ＳＣＬ７が出力専用ポートに接続されている場合であっても同様にしてＥＥＰＲＯＭ３がエンドコマンドを誤認識してしまうことを回避することができる。具体的には、一般に出力専用ポートは、電源ＯＦＦ時にローまたはハイとなるように設定されている。出力専用ポートが電源ＯＦＦ時にハイになるように設定されている場合には、電源ＯＦＦによって出力専用ポートがハイになると共に、双方向ポートはプルアップ抵抗１０による電圧が発生する。このため、ＥＥＰＲＯＭ３がエンドコマンドを誤認識する場合がある。
【００５２】
しかしながら、本実施の形態では、ＳＣＬ７が第１ダイオード５を介してリセットＩＣ４に接続されているため、電源ＯＦＦ時であってもＳＣＬ７の電圧をローにすることができる。従って、ＥＥＰＲＯＭ３がエンドコマンドを誤認識することはなく、不完全なデータを記録したり、誤ったデータを記録したりすることを回避できるようになっている。
【００５３】
なお、リセットＩＣ４が出力するリセット信号は、１種類であってもよく２種類であってもよい。リセット信号が１種類の場合には、ＣＰＵ２をリセットするためのリセット信号とＳＣＬ７をローにするためのリセット信号とは同じになる。この場合、ＣＰＵ２がリセット信号を入力すると、ＣＰＵ２がリセットされると同時にＳＣＬ７がローになる。
【００５４】
これに対し、リセット信号が２種類の場合には、ＣＰＵ２をリセットするためのリセット信号（以下、第１リセット信号と称する）と、ＳＣＬ７をローにするためのリセット信号（以下、第２リセット信号と称する）とを異ならせることができる。この場合、ＣＰＵ２は、第１リセット信号を入力するとＳＣＬ７をローにし、第２リセット信号を入力するとＣＰＵ２をリセットする。このため、ＣＰＵ２をリセットするタイミングとＳＣＬ７をローにするタイミングとを異ならせることが可能となり、所望のタイミングでＳＣＬ７をローにすることができる。
【００５５】
特に、ＳＣＬ７をローにする電圧が、ＣＰＵ２をリセットする電圧よりも高いことが好ましい。すなわち、電源電圧が低下した際に、ＣＰＵ２がリセットされる前にＳＣＬ７をローにすることが好ましい。この場合、ＣＰＵ２がリセットされた時点で、ＳＣＬ７を確実にローにすることができる。
【００５６】
これは、例えば、リセットＩＣ４が第１リセット信号を出力する電圧を、第２リセット信号を出力する電圧よりも高くすることにより実現できる。すなわち、電源電圧が低下する際に、リセットＩＣ４は、ある電圧で第１リセット信号を出力し、その後さらに電源電圧が低下した後に第２リセット信号を出力することで実現できる。
【００５７】
また、本発明は、ＳＬＣ７が第１ダイオード５を介してリセットＩＣに接続されていればよいが、ＣＰＵ２も第２ダイオード６を介してリセットＩＣ４に接続されていることが好ましい。この場合、リセット時には、ＣＰＵ２から電荷を引き込むことができると共に、ＳＣＬ７からリセットＩＣ４に引きこまれるはずの電荷がＣＰＵ２に入ってしまうことを防止することができる。
【００５８】
上記第１ダイオード５および第２ダイオード６は、同一のダイオードであってもよく、異なるダイオードであってもよい。例えば、第１ダイオード５と第２ダイオード６とを異ならせることにより、リセットＩＣ４が電荷引き込みを開始する電圧をＳＣＬ７とＣＰＵ２とで異ならせることが可能となる。ＣＰＵ２から引き込みを開始する電圧とＳＣＬ７から引き込みを開始する電圧と異ならせることによって、電荷引き込みのタイミングをずらすことが可能となり、より確実にＳＣＬ７をローにすることができる。
【００５９】
なお、本実施の形態では、ＳＣＬ７をローレベルにするための回路として、ＳＣＬ７とリセットＩＣ４とを接続する第１ダイオード５を例に挙げて説明したが、本発明はこれに限定されるものではなく、ＣＰＵ２のリセット時にＳＣＬ７をローレベルにすることができる回路であれば同様にして用いることができる。例えば、接地されたスイッチ式の回路を用いることができる。この場合、スイッチ式回路をＳＣＬ７に接続し、リセット信号を検知した場合に、スイッチをＯＮすることによってＳＣＬ７をローレベルに下げることが可能となる。
【００６０】
また、本実施の形態では、動作中における電源ＯＦＦのタイミングとして、ＡＣＫまたはＮＡＣＫが転送された後の場合について説明しているが、本発明はこれに限定されるものではない。例えば、書き込みデータの転送中、ＡＣＫまたはＮＡＣＫの転送前または転送中等に電源がＯＦＦされた場合であっても同様に適用できる。すなわち、本発明は、書き込みデータの転送を開始してから、エンドコマンドとなるまでの間のどのタイミングで電源がＯＦＦされた場合であっても適用できるものである。
【００６１】
また、本発明は、マスタデバイスと、１つ以上のスレーブデバイスと、マスタデバイスとスレーブデバイスとを接続する２線式シリアルバス（Ｉ２Ｃバス）と、アクティブローのリセット信号を少なくともマスタデバイスに供給するリセットデバイスとを含み、２線式シリアルバスのクロック信号用のマスタデバイスのポートがリセット時にローレベルに固定されない電子機器において、リセット信号がローレベルの場合に２線式シリアルバスのクロック信号線を強制的にローレベルに固定する回路を備える電子機器と表現することもできる。
【００６２】
この場合、２線式シリアルバスのクロック信号線を強制的にローレベルに固定する回路は、２線式シリアルバスのクロック信号線とリセット信号線とを接続するダイオードであることが好ましい。これにより、簡単な構成でリセット中にＳＣＬをローレベルにできる。また、上記の場合であっても、スレーブデバイスの少なくとも１つがＥＥＰＲＯＭであることが好ましい。これにより、マスタからスレーブへデータ転送中にリセットがかかっても、スレーブ側で不完全なデータが書き込まれることを防止できる。
【００６３】
また、本発明は、２線式のシリアル通信（Ｉ２Ｃバス）において、マスタのリセットと共にクロック線（ＳＣＬ）の電圧を引き込むデータ転送方法とも表現できる。また、クロック線を双方向端子で構成している場合に、マスタのリセットと共にＳＣＬの電圧を引き込むデータ転送方法や、クロック線を双方向端子で構成している場合に、マスタのリセットと共に、クロック線、アドレス・データ線の電圧を引き込むデータ転送方法とも表現できる。
【００６４】
この場合、引き込み手段としては、リセットＩＣを使うことが好ましく、クロック線をダイオードを介してマスタ用のリセットＩＣに接続することが好ましい。また、ＳＣＬの引き込み開始時の電圧を、マスタのリセットＩＣより検知電圧を上げていることが好ましい。
【００６５】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【００６６】
以上のように、本発明の電子機器は、動作中にマスタデバイスがリセットされた場合であっても、Ｉ２Ｃバスのクロック信号線をローレベルにすることが可能となり、スレーブデバイスの誤動作を防止することができるものである。このため、Ｉ２Ｃバスを用いた各種のマスタ／スレーブ装置や、それを備えた各種電子機器等を製造・使用する産業分野に好適に用いることができる。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の一形態を示すものであり、電子機器の概略構成を示すブロック図である。
【図２】本発明の実施の一形態を示すものであり、ＥＥＰＲＯＭにデータを書き込む際のタイミングチャートである。
【図３】従来の電子機器の概略構成を示すブロック図である。
【図４】正常に動作する電子機器における、ＥＥＰＲＯＭにデータを書き込み際のタイミングチャートである。
【図５】従来の電子機器における、ＥＥＰＲＯＭにデータを書き込む際のタイミングチャートである。
【符号の説明】
【００６８】
１    電子機器
２    ＣＰＵ（マスタデバイス）
３    ＥＥＰＲＯＭ（スレーブデバイス）
４    リセットＩＣ（リセットデバイス）
５    第１ダイオード（回路、ダイオード）
７    クロック信号線、ＳＣＬ
【図１】
2005338963.tif 000003
【図２】
2005338963.tif 000004
【図３】
2005338963.tif 000005
【図４】
2005338963.tif 000006
【図５】
2005338963.tif 000007