(57)【要約】【課題】スレーブデバイスに記憶された情報を読み出す動作を行うことなく、通信不能状態を防止することができるデータ通信誤動作防止装置を提供する。【解決手段】マスタデバイスである装置１に、スタートコンディション検出部１０７とストップコンディション検出部１０８を有し、スレーブデバイスである装置２のＩ２Ｃ部２０１に対し、Ｉ２Ｃイネーブル信号を送出するＩ２Ｃスレーブデバイス制御部１０４を備える。そしてＩ２Ｃスレーブデバイス制御部１０４は、スタートコンディション検出部１０７にてスタートコンディションを検出すると、Ｉ２Ｃイネーブル信号をイネーブルにし、ストップコンディション検出部１０８にてストップコンディションを検出すると、Ｉ２Ｃイネーブル信号をディゼーブルにする。【選択図】図１
2008197752.tif 000002
【特許請求の範囲】
【請求項１】
信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置であって、
上記第１の装置は、上記信号線の信号状態を制御することによって、それぞれデータ通信を開始及び停止する通信開始手段及び通信停止手段を備え、
上記第２の装置は、上記信号線の信号状態に基づいて上記データ通信を開始及び停止するデータ通信手段を備え、
上記通信開始手段がデータ通信を開始した場合、上記データ通信手段を動作状態とし、上記通信停止手段がデータ通信を停止した場合、上記データ通信手段を非動作状態とする切替手段を備えることを特徴とするデータ通信誤動作防止装置。
【請求項２】
上記切替手段は、
上記第１の装置に備えられ、
上記通信開始手段が出力するデータ通信を開始する開始コマンド及び上記通信停止手段が出力するデータ通信を停止する停止コマンドが入力され、
開始コマンドが入力された場合、上記データ通信手段を動作状態とし、
停止コマンドが入力された場合、上記データ通信手段を非動作状態とすることを特徴とする請求項１に記載のデータ通信誤動作防止装置。
【請求項３】
上記第２の装置は、上記データ通信手段によるデータ通信によって受信したデータを記憶する記憶手段を備え、
上記切替手段は、上記データ通信手段による上記記憶手段への受信データの書き込みを禁止することによって、上記データ通信手段を非動作状態とすることを特徴とする請求項１に記載のデータ通信誤動作防止装置。
【請求項４】
信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置であって、
上記データ通信は、データ信号とクロック信号とによって行われ、
上記第２の装置は、上記データ信号及びクロック信号の一方または両方にエラーが発生している場合、当該第２の装置におけるデータ通信誤動作を防止する信号を送出すると共に、エラーが発生したことを第１の装置に通知するエラー割り込み信号を送出するエラー検出通知手段を備えることを特徴とするデータ通信誤動作防止装置。
【請求項５】
上記データ信号及び上記クロック信号は、Ｈｉｇｈ及びＬｏｗの２値の状態を有する信号であり、
上記エラー検出通知手段は、
上記クロック信号及びデータ信号において想定されていない状態遷移を検出することにより、当該データ信号にエラーが発生していることを検出することを特徴とする請求項４に記載のデータ通信誤動作防止装置。
【請求項６】
上記第１の装置は、上記信号線の信号状態を制御することによって、それぞれデータ通信を開始及び停止する通信開始手段及び通信停止手段を備え、
上記クロック信号は、Ｈｉｇｈ及びＬｏｗの２値の状態を有するパルス信号であり、
上記エラー検出通知手段は、
上記クロック信号のパルス数を計数するカウンタを有し、
上記通信開始手段がデータ通信を開始してから、上記通信開始手段がデータ通信を停止するまでの間の、上記カウンタが計数したパルス数が所定の値以外の数値であった場合、当該クロック信号にエラーが発生していることを検出することを特徴とする請求項４に記載のデータ通信誤動作防止装置。
【請求項７】
上記第２の装置におけるデータ通信誤動作を防止する信号は、上記データ通信手段を初期化させる信号であることを特徴とする請求項４〜６のいずれか１項に記載のデータ通信誤動作防止装置。
【請求項８】
上記第２の装置は、さらに、上記データ通信手段が受信したデータ信号に含まれるデータが書き込まれることで当該データを保持する設定記憶手段を備え、
上記第２の装置におけるデータ通信誤動作を防止する信号は、上記データ通信手段が受信したデータを、上記設定記憶手段に書き込むことを禁止する信号であることを特徴とする請求項４〜６のいずれか１項に記載のデータ通信誤動作防止装置。
【請求項９】
上記エラー検出通知手段は、
上記データ通信が所定の時間以上停止しない場合、上記データ通信手段を初期化させると共に、エラーが発生したことを第１の装置に通知するエラー割り込み信号を送出するデータ通信手段リセットカウンタを備えることを特徴とする請求項４に記載のデータ通信誤動作防止装置。
【請求項１０】
信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置であって、
上記第１の装置は、上記第２の装置に転送したデータを記憶する第１の記憶手段と、上記第１の記憶手段に記憶したデータの、不可逆な一方向性関数により生成される当該データよりもデータ容量が小さい要約値を計算する第１の要約値計算手段とを備え、
上記第２の装置は、受信したデータが書き込まれることで、当該データを記憶する第２の記憶手段と、上記第２の記憶手段に記憶されたデータの要約値を計算する第２の要約値計算手段とを備え、
上記第１の装置は、さらに、第２の要約値計算手段により計算され、上記第１の装置に転送された要約値と、上記第１の要約値計算手段により計算された要約値とを比較する比較手段を備えることを特徴とするデータ通信誤動作防止装置。
【請求項１１】
上記第１及び第２の要約値計算手段は、それぞれ上記第１及び第２の記憶手段に記憶されるデータに対し、当該データに要約計算関数を付加し、当該データを固定長のビット列に変換することによって要約値を計算することを特徴とする請求項１０に記載のデータ通信誤動作防止装置。
【請求項１２】
上記要約計算関数は、ハッシュ関数であることを特徴とする請求項１１に記載のデータ通信誤動作防止装置。
【請求項１３】
上記要約計算関数は、チェックサム関数であることを特徴とする請求項１１に記載のデータ通信誤動作防止装置。
【請求項１４】
上記第２の要約値計算手段は、
上記第２の記憶手段に記憶されたデータの要約値の計算を開始する以後の、上記第１の装置による上記第２の記憶手段へのアクセス履歴を記憶する要約値記憶手段を備えることを特徴とする請求項１０〜１３のいずれか１項に記載のデータ通信誤動作防止装置。
【請求項１５】
上記データ通信は、データ信号とクロック信号とによって行われ、
上記第２の装置は、さらに、上記データ信号及びクロック信号の一方または両方にエラーが発生している場合、当該第２の装置におけるデータ通信誤動作を防止する信号を送出すると共に、エラーが発生したことを第１の装置に通知するエラー割り込み信号を送出するエラー検出通知手段を備えることを特徴とするデータ通信誤動作防止装置。
【請求項１６】
信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置を備える電子機器であって、
上記データ通信誤動作防止装置は請求項１〜１５のいずれか１項に記載のデータ通信誤動作防止装置であることを特徴とする電子機器。
【請求項１７】
上記信号線がＩ２Ｃバスであることを特徴とする請求項１６に記載のデータ送受信装置。
【請求項１８】
信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置の制御方法であって、
上記第１の装置が上記信号線の信号状態を制御することによって、それぞれデータ通信を開始及び停止する通信開始ステップ及び通信停止ステップと、
上記信号線の信号状態に基づいて上記第２の装置が上記データ通信を行うデータ通信ステップと、
上記通信開始ステップにてデータ通信が開始された場合、上記データ通信ステップを実行可能とし、上記通信停止ステップにてデータ通信が停止された場合、上記データ通信ステップを実行不能とする切替ステップとを含むことを特徴とするデータ通信誤動作防止装置の制御方法。
【請求項１９】
信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置の制御方法であって、
上記データ通信は、データ信号とクロック信号とによって行われ、
上記データ信号及びクロック信号の一方または両方にエラーが発生していることを上記第２の装置において検出することにより、当該第２の装置におけるデータ通信誤動作を防止する信号を送出すると共に、エラーが発生したことを第１の装置に通知するエラー割り込み信号を送出するエラー検出通知ステップを含むことを特徴とするデータ通信誤動作防止装置の制御方法。
【請求項２０】
信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置の制御方法であって、
上記第２の装置に転送したデータを上記第１の装置において記憶する第１の記憶ステップと、上記第１の記憶ステップにて記憶したデータの、不可逆な一方向性関数により生成される当該データよりもデータ容量が小さい要約値を上記第１の装置において計算する第１の要約値計算ステップとを含み、
受信したデータが書き込まれることで、当該データを上記第２の装置において記憶する第２の記憶ステップと、上記第２の記憶ステップにて記憶されたデータの要約値を上記第２の装置において計算する第２の要約値計算ステップと、
第２の要約値計算ステップにて計算され、上記第１の装置に転送された要約値と、上記第１の要約値計算ステップにて計算された要約値とを上記第１の装置において比較する比較ステップを含むことを特徴とするデータ通信誤動作防止装置の制御方法。
【請求項２１】
上記第２の要約値計算ステップは、
上記第２の記憶ステップにて記憶されたデータの要約値の計算を開始する以後の、上記第１の装置による上記第２の記憶ステップの実行履歴を記憶する要約値記憶ステップを含むことを特徴とする請求項２０に記載のデータ通信誤動作防止装置の制御方法。
【請求項２２】
請求項１〜１５に記載のデータ通信誤動作防止装置を動作させるための制御プログラムであって、コンピュータを上記各手段として機能させるためのデータ通信誤動作防止装置の制御プログラム。
【請求項２３】
請求項２２に記載のデータ通信誤動作防止装置の制御プログラムが記録されたコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送時のデータ転送エラーを検出する機能、或いはデータ転送時に発生する誤動作を防止する機能を有するデータ通信誤動作防止装置、及び当該データ通信誤動作防止装置を備える電子機器に関するものである。
【背景技術】
【０００２】
現在、液晶表示回路、ＣＣＤ（Charge Coupled Device）回路を有する撮像回路、Ｄ／Ａ変換回路、ＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）を始めとする電子回路内の、半導体回路の間で、データの転送を行うための伝送方式（インターフェース仕様）が数多く開発されている。
【０００３】
中でも、例えば半導体集積回路のような、データ転送速度が比較的低速であることを要求されても差し支えのない電子回路において多用されるインターフェース仕様として、Ｉ２Ｃバスがある。
【０００４】
Ｉ２Ｃバスとはフィリップス社により提案され公開されたシリアルインターフェース仕様である。このＩ２Ｃバスは、クロック信号線ＳＣＬ、データ信号線ＳＤＡの２本の信号線で構成される。そして、複数の電子回路を上記２本の信号線によって接続することで、当該複数の電子回路間でデータの送受信を行うことができるシリアルインターフェースである。
【０００５】
以下、複数の電子回路として、上記２本の信号線を介してデータを転送するマスタデバイスと当該マスタデバイスからデータを受信するスレーブデバイスとをＩ２Ｃバスで接続する構成を備える電子機器の動作原理について簡単に説明する。
【０００６】
図１２に、マスタデバイスとスレーブデバイスとをＩ２Ｃバスで接続した電子機器の概略構成を示す。
【０００７】
図１２に示す電子機器５１では、ＣＰＵ５２（マスタデバイス）と、受信部５３０及びレジスタ群５３１を有するＥＥＰＲＯＭ５３（スレーブデバイス）とが、ＳＣＬ５４及びＳＤＡ５５によって接続されている。また、ＳＣＬ５４はクロック信号を送信するためのクロック信号線であり、ＳＤＡ５５は、データやアドレス等を送信するためのデータ信号線である。
【０００８】
ここでＩ２Ｃバスを用いてＥＥＰＲＯＭ５３にデータを書き込む際には、図１３に示すように、まず、ＳＣＬ５４がＨｉｇｈの状態で、ＳＤＡ５５がＨｉｇｈからＬｏｗに変化することによって、ＥＥＰＲＯＭ５３がスタートコマンドを認識する。
【０００９】
そして、ＣＰＵ５２は、ＳＣＬ５４のクロック信号に同期して、ＳＤＡ５５にてスレーブアドレスやアドレスデータ、ライトデータ等をＥＥＰＲＯＭ５３の受信部５３０に転送する。このとき受信部５３０は、エンドコマンドを認識するまで書き込みデータを蓄積しておく。
【００１０】
各データの転送が終了すると、ＳＣＬ５４がＨｉｇｈの状態で、ＳＤＡ５５がＬｏｗからＨｉｇｈへと変化する。受信部５３０は、この変化をエンドコマンドとして認識し、蓄積した書き込みデータをレジスタ群５３１に記録するようになっている。
【００１１】
ところで、マスタデバイスとスレーブデバイスとをＩ２Ｃバスで接続し、マスタデバイスとスレーブデバイスとの間でデータ転送を行う場合、データ通信時において、ＳＣＬ或いはＳＤＡにノイズが重畳し、それによってスレーブデバイスに入力される信号の電圧レベルが変動することがしばしば起こる。そして、信号の電圧レベルが変動すると、データ通信が適正に行われず、ひどいときには、半導体集積回路間のインターフェースがフリーズしてしまったり、システムが機能しなくなったりしてしまうということがしばしば起こる。
【００１２】
特に、Ｉ２Ｃバスによってマスタデバイスとスレーブデバイスとを接続する場合、伝送路の出力インピーダンスは比較的高くなる。そのため、上述したようなノイズの影響を受けやすいという問題がある。このような問題の具体例としては、例えば、マスタデバイスからスレーブデバイスに対してデータを書き込む際にノイズが発生して当該データにビット化けが発生したり、ノイズの混入に起因する信号の電圧変動によってＩ２Ｃバスのインターフェース仕様に合致しない信号波形を生じ、通信不能の状態に陥ったりすることが挙げられる。
【００１３】
ここで、スレーブデバイスがエラー検出手段を持たない場合、通常であればデータ書き込みの度に正しくデータが書き込まれたか否かを毎回確認する必要がある。もしくは、スレーブデバイスに設けられる全てのレジスタに記憶される情報の全てを任意のタイミングで読み出し、それらが正しい情報としてスレーブデバイスに記憶されているか否かを確認する必要がある。しかしながら、上述したような確認方法はいずれも、スレーブデバイスに記憶された情報を読み出す動作が必要になるため、実質的なデータ転送レートが悪化する。
【００１４】
そこで、上記の問題を解決する手段として、従来、Ｉ２Ｃバスによってマスタデバイスとスレーブデバイスとを接続し、データ転送を行う際に発生するエラーを検出する装置及びエラー検出方法が提案されている。そして、このような手段としては、特許文献１及び特許文献２に開示されるようなものがある。
【００１５】
特許文献１に開示の技術では、ＳＣＬのクロック信号及びＳＤＡのデータ信号に基づいて、当該データ信号のパリティチェックを行うパリティチェック回路と、当該クロック信号及び当該データ信号のパルス数を計数する計数回路と、を備える。そして、データ転送時において、パリティチェック回路は当該データ信号に対してパリティチェックを行う。さらに、転送されるデータ信号は、計数回路にてパルス数を計数され、当該データ信号のパルス数が所定値以外の値であった場合、当該データ信号にノイズが重畳したものと認識される。特許文献１に開示の技術では、このようにして、ハードウェアによりデータ転送時におけるエラーを検出している。
【００１６】
また、特許文献２に開示の技術では、比較部とエラー発生部と制御部とを備える。そして比較部は、送信部から送信されたデータとＳＤＡ上におけるデータとを比較する。そして、これらのデータが一致しない場合、エラー発生部は、上記送信部から送信されたデータを無効なデータとする。また制御部は、エラー発生部が上記送信部から送信されたデータを無効なデータとするタイミングを制御する。この場合、データ信号に誤り検出用のデータ（パリティ・ビット）を付加する必要がないため、実質的なデータ転送レートが悪化せずに済む。
【００１７】
さらに、上述のようなＩ２Ｃバスに関する問題に対しては、スレーブデバイスが通信不能の状態にならないよう、エラーが発生した場合においても、当該エラーを検出し、かつ通信不能状態から復帰するように動作する装置及び制御方法が提案されている。そして、このような手段としては、特許文献３に開示されるようなものがある。
【００１８】
特許文献３に開示の技術では、バスエラー検出手段と、エラーデータ処理手段と、エラー処理手段と、エラーデータ記憶手段と、を備える構成である。この中でも特に、バスエラー検出手段と、エラーデータ処理手段と、エラー処理手段とが、ＳＣＬ及びＳＤＡに発生するエラーを検出する。
【００１９】
即ち、図１３からも分かるように、データ転送が正常に完了する場合、ＳＣＬ及びＳＤＡはＨｉｇｈの状態に保持されるはずである。そのため、バスエラー検出手段、エラーデータ処理手段、及びエラー処理手段は、データ転送が完了したにも関わらずＳＣＬまたはＳＤＡがＬｏｗの状態になっている場合、ＳＣＬ及びＳＤＡにエラーが発生していると認識する。
【００２０】
上記エラーの検出を所定の時間繰り返し、所定の時間が経過しても当該エラーが復帰しない場合には制御デバイス（スレーブデバイス）に対しリセット処理を行うことで、制御デバイスを初期化する。
【００２１】
このような構成により、エラーを検出した場合、通信不能状態から復帰している。
【特許文献１】特開２００５−３５４１５８号公報（２００５年１２月２２日公開）
【特許文献２】特開平４−３１３９３０号公報（１９９２年１１月５日公開）
【特許文献３】特開２００１−７５８７８号公報（２００１年３月２３日公開）
【発明の開示】
【発明が解決しようとする課題】
【００２２】
しかしながら、特許文献１及び特許文献２に開示の技術は、Ｉ２Ｃバスによってマスタデバイスとスレーブデバイスとを接続し、データ転送を行う際に発生するエラーを検出することはできるが、当該エラーに陥る危険性を低減することや当該エラーから復帰することはできないという問題がある。
【００２３】
即ち、特許文献１や特許文献２に開示された技術のように、スレーブデバイスがエラー検出手段を有する場合であっても、エラーに陥る危険性を低減するための動作、或いはエラーから復帰する動作ができなければ意味がない。例えば、スレーブデバイスのレジスタの予期しないアドレスにデータが書き込まれる場合、エラーに陥る危険性を低減するための動作、或いはエラーから復帰する動作ができなければ、スレーブデバイスにエラーが発生し、予期しない動作を起こす可能性がある。
【００２４】
さらに通信エラーによってマスタデバイスとスレーブデバイスとの間でデータ転送ができなくなってしまった場合には、当然ながら、エラーに関する詳細な情報を、スレーブデバイスのエラー状態の内容を記憶するレジスタ（ステータスレジスタ）から読み出すことができない。このとき、通信を復帰させるためには、スレーブデバイスに対してリセットをかけ、デバイス自体を初期化する必要があるが、この場合、通信エラーに関する情報も同時に消去されてしまう。そのため、結果的に、エラー状態を確認することができない。
【００２５】
特許文献１や特許文献２に開示された技術をエラー検出装置として採用した場合、通常であればエラー状態からの復帰はマスタデバイスに委ねられる。即ち、マスタデバイスがスレーブデバイスに対してリセットをかける、或いはデータ信号を再送することでしか、エラー状態からの復帰することができない。
【００２６】
そのため、上述のように、スレーブデバイスに対してリセットをかけると、エラー状態を確認することができなくなるし、データ信号を再送すると、スレーブデバイスに記憶された情報を読み出す動作が必要になるため、実質的なデータ転送レートが悪化する。
【００２７】
また、特許文献３は、Ｉ２Ｃバスによってマスタデバイスとスレーブデバイスとを接続し、データ転送を行う際に発生するエラーを検出し、さらにスレーブデバイスをエラーから復帰させることはできるが、データ転送時のデータ転送レートが悪いという問題がある。
【００２８】
即ち、特許文献３では、バスエラー検出手段と、エラーデータ処理手段と、エラー処理手段によってエラーの検出及びエラーからの復帰を行う構成であるが、これらの手段を備える制御部はＣＰＵに接続されている。そして、ＣＰＵによるソフトウエア的な処理によってエラーの検出処理及びエラーからの復帰処理を実施している。言い換えれば、制御部はマスタデバイスに接続され、エラーの検出処理及びエラーからの復帰処理を全てマスタデバイスにて実施する構成であり、スレーブデバイスである制御デバイスにはエラー検出機能、復帰機能は存在しない。
【００２９】
そのためＣＰＵから制御デバイスにデータを書き込む度に、ＣＰＵは必ず当該データを再度読み込み、さらに当該データに対しＣＰＵがエラー検出処理を行うことでようやくエラーを検出する。結果として、スレーブデバイスに記憶された情報を読み出す動作が余分に必要になり、かつエラーを検出するための処理がＣＰＵに偏ってしまうため、実質的なデータ転送レートが大幅に悪化する。
【００３０】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、スレーブデバイスに記憶された情報を読み出す動作を行うことなく、通信不能状態に陥る危険性を低減することができるデータ通信誤動作防止装置を提供することにある。
【００３１】
また本発明の別の目的は、エラーを検出するための処理がマスタデバイスに偏ることなく、かつ、データ転送レートの低下を抑制することができるデータ通信誤動作防止装置を提供することにある。
【００３２】
また本発明の別の目的は、マスタデバイスがスレーブデバイスに発生したエラーの状態を確認することができ、かつスレーブデバイスに記憶された情報を読み出す動作を行うことなく、自律的に通信不能状態から復帰することができるデータ通信誤動作防止装置を提供することにある。
【課題を解決するための手段】
【００３３】
本発明に係るデータ通信誤動作防止装置は、上記課題を解決するために、信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置であって、上記第１の装置は、上記信号線の信号状態を制御することによって、それぞれデータ通信を開始及び停止する通信開始手段及び通信停止手段を備え、上記第２の装置は、上記信号線の信号状態に基づいて上記データ通信を開始及び停止するデータ通信手段を備え、上記通信開始手段がデータ通信を開始した場合、上記データ通信手段を動作状態とし、上記通信停止手段がデータ通信を停止した場合、上記データ通信手段を非動作状態とする切替手段を備えることを特徴としている。
【００３４】
上記の構成によれば、第１の装置は、信号線の信号状態を制御することによって、それぞれデータ通信を開始及び停止する通信開始手段及び通信停止手段を備える。また、第２の装置は、信号線の信号状態に基づいてデータ通信を開始及び停止するデータ通信手段を備える。
【００３５】
信号線の信号状態に基づいてデータ通信を開始及び停止する構成では、信号線に混入する外来ノイズにより、偶発的にデータ通信を開始させる信号状態を生じさせ、データ通信の予期せぬ開始による誤動作を招来するおそれがある。
【００３６】
そこで、上記構成では、さらに、第２の装置に設けられるデータ通信手段が信号線の信号状態に基づいてデータ通信を行うことが可能である動作状態と、当該データ通信を行うことが不可能である非動作状態と、を切り替える切替手段を備える。
【００３７】
これにより、第１の装置と第２の装置との通信が確立している間、即ちデータ転送期間中は、データ通信手段は動作状態となり、第１の装置と第２の装置との通信が停止している間、即ちデータ転送停止期間中は、データ通信手段は非動作状態となるため、データ転送停止期間中に外来ノイズが混入した場合においても、第２の装置は誤動作を起こすことがない。
【００３８】
従って、第２の装置に記憶された情報を読み出す動作を行うことなく、通信不能状態に陥る危険性を低減することができるという効果を奏する。
【００３９】
また、本発明に係るデータ通信誤動作防止装置は、上記切替手段は、上記第１の装置に備えられ、上記通信開始手段が出力するデータ通信を開始する開始コマンド及び上記通信停止手段が出力するデータ通信を停止する停止コマンドが入力され、開始コマンドが入力された場合、上記データ通信手段を動作状態とし、停止コマンドが入力された場合、上記データ通信手段を非動作状態とする構成であってもよい。なお、データ通信手段の動作状態と非動作状態とを切り替えるための切替手段からデータ通信手段への指示は、データ通信手段の行うデータ通信とは別系統の信号によって行うようにすればよい。
【００４０】
本発明に係るデータ通信誤動作防止装置は、上記第２の装置は、上記データ通信手段によるデータ通信によって受信したデータを記憶する記憶手段を備え、上記切替手段は、上記データ通信手段による上記記憶手段への受信データの書き込みを禁止することによって、上記データ通信手段を非動作状態とすることを特徴としている。
【００４１】
上記の構成によれば、第２の装置は、データ通信手段によるデータ通信によって受信したデータを記憶する記憶手段を備える。そして、切替手段は、データ通信手段によって記憶手段へ受信データが書き込まれることを禁止する。切替手段が受信データの記憶手段への書き込みを禁止すると、第２の装置は、当該受信データを保持することができないし、第１の装置から、当該受信データを読み出すこともできない。即ち、第２の装置のデータ通信手段は非動作状態となる。
【００４２】
本発明に係るデータ通信誤動作防止装置は、上記課題を解決するために、信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置であって、上記データ通信は、データ信号とクロック信号とによって行われ、上記第２の装置は、上記データ信号及びクロック信号の一方または両方にエラーが発生している場合、当該第２の装置におけるデータ通信誤動作を防止する信号を送出すると共に、エラーが発生したことを第１の装置に通知するエラー割り込み信号を送出するエラー検出通知手段を備えることを特徴としている。
【００４３】
上記の構成によれば、第２の装置は、エラー検出通知手段を備える。このエラー検出通知手段は、データ信号とクロック信号とによって行われるデータ通信時において、これらの信号の一方または両方にエラーが発生している場合、第２の装置におけるデータ通信誤動作を防止する信号を送出すると共に、エラーが発生したことを第１の装置に通知するエラー割り込み信号を送出する。
【００４４】
なお、このときエラー割り込み信号は、データ通信手段の行うデータ通信とは別系統の信号によって、第２の装置から第１の装置に通知することにより、データ通信を行う信号線を使用することなく、エラーが発生したことを第１の装置に通知することができる。
【００４５】
従って、第１の装置が、データ転送期間中に発生するデータ転送時におけるエラーの状態を確認することができる。また、第２の装置に記憶された情報を読み出す動作を行うことなく、自律的に通信不能状態から復帰することができるという効果を奏する。さらに、データ通信を行う信号線を使用することなく、エラーが発生したことを第１の装置に通知することができるため、データ通信におけるデータ転送レートの低下を抑制することができるという効果を奏する。
【００４６】
また、本発明に係るデータ通信誤動作防止装置は、上記データ信号及び上記クロック信号は、Ｈｉｇｈ及びＬｏｗの２値の状態を有する信号であり、上記エラー検出通知手段は、上記クロック信号及びデータ信号において想定されていない状態遷移を検出することにより、当該データ信号にエラーが発生していることを検出することを特徴としている。
【００４７】
例えば、Ｉ２Ｃバスのインターフェース仕様においては、クロック信号がＨｉｇｈの状態に保持されている場合において、データ信号がＨｉｇｈからＬｏｗへ状態遷移ことはない。従って、クロック信号がＨｉｇｈの状態でデータ信号がＨｉｇｈからＬｏｗへ状態遷移した場合はエラーであると考えられ、上記の構成によれば、エラー検出通知手段はこのようなデータ信号の状態遷移をエラーとして検出することができる。
【００４８】
また、本発明に係るデータ通信誤動作防止装置は、上記第１の装置は、上記信号線の信号状態を制御することによって、それぞれデータ通信を開始及び停止する通信開始手段及び通信停止手段を備え、上記クロック信号は、Ｈｉｇｈ及びＬｏｗの２値の状態を有するパルス信号であり、上記エラー検出通知手段は、上記クロック信号のパルス数を計数するカウンタを有し、上記通信開始手段がデータ通信を開始してから、上記通信開始手段がデータ通信を停止するまでの間の、上記カウンタが計数したパルス数が所定の値以外の数値であった場合、当該クロック信号にエラーが発生していることを検出することを特徴としている。
【００４９】
上記の構成によれば、クロック信号は、Ｈｉｇｈ及びＬｏｗの２値の状態を有するパルス信号である。そして、エラー検出通知手段は、クロック信号のパルス数を計数するカウンタを有している。このカウンタは、通信開始手段がデータ通信を開始してから、通信開始手段がデータ通信を停止するまでの間において、自身が計数したパルス数が、所定の値以外の数値であった場合、上記クロック信号にエラーが発生していることを検出する。そして、それによって、データ転送期間中に発生するデータ転送時におけるエラーを検出することができる。
【００５０】
例えば、Ｉ２Ｃバスのインターフェース仕様においては、通信開始手段がデータ通信を開始してから、通信停止手段がデータ通信を停止する信号を出力するまでの間のカウンタ値は一定の値（例えばｎ個のライトデータを送信する場合、カウンタ値は（２＋ｎ）×９−１）となる。しかしながら、例えばクロック信号にノイズが混入した場合、クロック信号は一時的に状態遷移するため、パルスの数が増加（または減少）する。従って、カウンタ値が所定の値以外の数値をとる場合はエラーであると考えられ、エラー検出通知手段はこのような場合をエラーとして検出することができる。
【００５１】
また、本発明に係るデータ通信誤動作防止装置は、上記第２の装置におけるデータ通信誤動作を防止する信号は、上記データ通信手段を初期化させる信号であることを特徴としている。
【００５２】
上記の構成によれば、エラー検出通知手段は、データ通信手段を初期化することによって、データ通信手段の誤動作を防止することができる。
【００５３】
また、本発明に係るデータ通信誤動作防止装置は、上記第２の装置は、さらに、上記データ通信手段が受信したデータ信号に含まれるデータが書き込まれることで当該データを保持する設定記憶手段を備え、上記第２の装置におけるデータ通信誤動作を防止する信号は、上記データ通信手段が受信したデータを、上記設定記憶手段に書き込むことを禁止する信号であることを特徴としている。
【００５４】
上記の構成によれば、エラー検出通知手段は、第２の装置に備えられた設定記憶手段に対する書き込みを禁止することによって、データ通信手段の誤動作を防止する。
【００５５】
また、本発明に係るデータ通信誤動作防止装置は、上記エラー検出通知手段は、上記データ通信が所定の時間以上停止しない場合、上記データ通信手段を初期化させると共に、エラーが発生したことを第１の装置に通知するエラー割り込み信号を送出するデータ通信手段リセットカウンタを備えることを特徴としている。
【００５６】
上記の構成によれば、エラー検出通知手段は、データ通信手段リセットカウンタを備える。このデータ通信手段リセットカウンタは、データ通信が所定の時間以上停止しない場合、データ通信手段を初期化させると共に、エラーが発生したことを第１の装置に通知するエラー割り込み信号を送出する。
【００５７】
なお、このときエラー割り込み信号は、データ通信手段の行うデータ通信とは別系統の信号によって、第２の装置から第１の装置に通知される。そのため、データ通信を行う信号線を使用することなく、エラーが発生したことを第１の装置に通知することができる。
【００５８】
本発明に係るデータ通信誤動作防止装置は、上記課題を解決するために、信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置であって、上記第１の装置は、上記第２の装置に転送したデータを記憶する第１の記憶手段と、上記第１の記憶手段に記憶したデータの、不可逆な一方向性関数により生成される当該データよりもデータ容量が小さい要約値を計算する第１の要約値計算手段とを備え、上記第２の装置は、受信したデータが書き込まれることで、当該データを記憶する第２の記憶手段と、上記第２の記憶手段に記憶されたデータの要約値を計算する第２の要約値計算手段とを備え、上記第１の装置は、さらに、第２の要約値計算手段により計算され、上記第１の装置に転送された要約値と、上記第１の要約値計算手段により計算された要約値とを比較する比較手段を備えることを特徴としている。
【００５９】
上記の構成によれば、第１の装置には第１の記憶手段と第１の要約値計算手段とを備える。また、第２の装置には第２の要約値計算手段と第２の記憶手段とを備える。さらに、第１の装置は比較手段を備える。第２の要約値計算手段は、第２の記憶手段に記憶されるデータの要約値を計算し、計算結果を第１の装置に送信する。そして第１の装置は、第１の記憶手段に記憶した第２の装置に転送したデータから、当該データの要約値を計算する。そして、第１の要約値計算手段が計算した第１の記憶手段に記憶されるデータの要約値と第２の要約値計算手段が計算したデータ通信手段が受信したデータの要約値とを比較手段で比較する。
【００６０】
なお、「要約値」とは、第１及び第２の要約値計算手段にて要約値の計算が行われるデータの不可逆な一方向性関数により生成される、当該データよりも容量が小さい値であり、このような要約値としては例えば、チェックサムまたはハッシュ値等が挙げられる。また要約値は、上記定義に示される値に加え、その他様々なデータ（例えば、受信データの履歴）が含まれた値であってもよい。さらに、上記第１及び第２の要約値計算手段は、具体的には、チェックサム計算、ハッシュ値の計算、第１の装置による第２の記憶手段へのアクセス履歴の記憶、等の処理を行っている。要約値、及び第１及び第２の要約値計算手段の詳細な説明については後述する。
【００６１】
これにより、これらの値が異なっていた場合、第２の記憶手段に記憶されるデータ、即ち第２の装置に転送したデータにエラーが発生していると認識することができる。
【００６２】
従って、第２の装置に転送したデータに発生するエラーを検出することができるという効果を奏する。また、第２の装置にエラーが発生した場合において、エラーを検出するための処理が第１の装置に偏ることがないので、第１の装置に多大な負荷をかけずに済むという効果を奏する。さらに、第２の装置から第１の装置に対して送信するデータは、第２の装置が受信したデータそのものではなく、受信したデータの要約値であるので、データ通信におけるデータ転送レートの低下を抑制することができるという効果を奏する。
【００６３】
また、本発明に係るデータ通信誤動作防止装置は、上記第１及び第２の要約値計算手段は、それぞれ上記第１及び第２の記憶手段に記憶されるデータに対し、当該データに要約計算関数を付加し、当該データを固定長のビット列に変換することによって要約値を計算することを特徴としている。
【００６４】
上記の構成によれば、第１及び第２の要約値計算手段は、自身が要約値計算を行うデータに対し、当該データに要約計算関数を付加し、当該データを固定長のビット列に変換することによって要約値を計算する。このような要約計算関数としては例えば、ハッシュ関数やチェックサム関数等が考えられる。第１及び第２の要約値計算手段は、このような要約計算関数を用いて要約値の計算を行うことができる。
【００６５】
また、本発明に係るデータ通信誤動作防止装置は、上記第２の要約値計算手段は、上記第２の記憶手段に記憶されたデータの要約値の計算を開始する以後の、上記第１の装置による上記第２の記憶手段へのアクセス履歴を記憶する要約値記憶手段を備えることを特徴としている。
【００６６】
上記の構成によれば、第２の要約値計算手段は、要約値記憶手段を備える。この要約値記憶手段は、第２の記憶手段に記憶されるデータの履歴、即ち、第２の装置に転送されたデータや当該データが保存される第２の記憶手段の領域等が記憶される。つまり、要約値記憶部は、第１の装置による、第２の記憶手段へのアクセス履歴を記憶する。
【００６７】
従って、第１の装置が第２の記憶手段にアクセスした以降に第１の装置から第２の装置に書き込まれたデータを逐次的に比較することが可能となるという効果を奏する。
【００６８】
また、本発明に係るデータ通信誤動作防止装置は、上記データ通信は、データ信号とクロック信号とによって行われ、上記第２の装置は、さらに、上記データ信号及びクロック信号の一方または両方にエラーが発生している場合、当該第２の装置におけるデータ通信誤動作を防止する信号を送出すると共に、エラーが発生したことを第１の装置に通知するエラー割り込み信号を送出するエラー検出通知手段を備えることを特徴としている。
【００６９】
上記の構成によれば、第２の装置にはさらに、エラー検出通知手段を備える。データ転送期間中にエラー検出手段がエラーを検出すると、エラー検出通知手段は、データ信号とクロック信号とによって行われるデータ通信において、これらの信号の一方または両方にエラーが発生している場合、第２の装置におけるデータ通信誤動作を防止する信号を送出すると共に、エラーが発生したことを第１の装置に通知するエラー割り込み信号を送出することができる。
【００７０】
また、本発明に係るデータ送受信装置は、信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置を備える電子機器であって、上記データ通信誤動作防止装置は上記のいずれかのデータ通信誤動作防止装置であることを特徴としている。
【００７１】
上記の構成によれば、上記のいずれかのデータ通信誤動作防止装置を電子機器に備えることで、高品質な電子機器を提供することができる。
【００７２】
また、上記信号線はＩ２Ｃバスであることが望ましい。
【００７３】
また、本発明に係るデータ通信誤動作防止装置の制御方法は、上記課題を解決するために、信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置の制御方法であって、上記第１の装置が上記信号線の信号状態を制御することによって、それぞれデータ通信を開始及び停止する通信開始ステップ及び通信停止ステップと、上記信号線の信号状態に基づいて上記第２の装置が上記データ通信を行うデータ通信ステップと、上記通信開始ステップにてデータ通信が開始された場合、上記データ通信ステップを実行可能とし、上記通信停止ステップにてデータ通信が停止された場合、上記データ通信ステップを実行不能とする切替ステップとを含むことを特徴としている。
【００７４】
上記の方法によれば、第１の装置が信号線の信号状態を制御することによって、それぞれデータ通信を開始及び停止する通信開始ステップ及び通信停止ステップを含む。また、第２の装置が信号線の信号状態に基づいてデータ通信を行うデータ通信ステップを含む。
【００７５】
信号線の信号状態に基づいてデータ通信を行う方法では、信号線に混入する外来ノイズにより、偶発的にデータ通信を開始させる信号状態が生じ、データ通信の予期せぬ開始による誤動作を招来するおそれがある。
【００７６】
そこで、上記方法では、さらに、第２の装置にて実行されるデータ通信にて信号線の信号状態に基づくデータ通信の実行可能及び実行不能を切り替える切替ステップを含む。
【００７７】
これにより、第１の装置と第２の装置との通信が確立している間、即ちデータ転送期間中は、データ通信が実行可能となり、第１の装置と第２の装置との通信が停止している間、即ちデータ転送停止期間中は、データ通信は実行不能となるため、データ転送停止期間中に外来ノイズが混入した場合においても、第２の装置は誤動作を起こすことがない。
【００７８】
従って、第２の装置に記憶された情報を読み出す動作を行うことなく、通信不能状態に陥る危険性を低減することができるという効果を奏する。
【００７９】
また、本発明に係るデータ通信誤動作防止装置の制御方法は、上記課題を解決するために、信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置の制御方法であって、上記データ通信は、データ信号とクロック信号とによって行われ、上記データ信号及びクロック信号の一方または両方にエラーが発生していることを上記第２の装置において検出することにより、当該第２の装置におけるデータ通信誤動作を防止する信号を送出すると共に、エラーが発生したことを第１の装置に通知するエラー割り込み信号を送出するエラー検出通知ステップを含むことを特徴としている。
【００８０】
上記の方法によれば、データ信号とクロック信号とによって行われるデータ通信時において、これらの信号の一方または両方にエラーが発生していることを第２の装置において検出する。そして、上記エラーを検出した場合、第２の装置におけるデータ通信誤動作を防止する信号を送出すると共に、エラーが発生したことを第１の装置に通知するエラー割り込み信号を送出する。
【００８１】
なお、このときエラー割り込み信号は、データ通信手段の行うデータ通信とは別系統の信号によって、第２の装置から第１の装置に通知するため、データ通信を行う信号線を使用することなく、エラーが発生したことを第１の装置に通知することができる。
【００８２】
従って、第１の装置が、データ転送期間中に発生するデータ転送時におけるエラーの状態を確認することができる。さらに、第２の装置に記憶された情報を読み出す動作を行うことなく、自律的に通信不能状態から復帰することができるという効果を奏する。データ通信を行う信号線を使用することなく、エラーが発生したことを第１の装置に通知することができるため、データ通信におけるデータ転送レートの低下を抑制することができるという効果を奏する。
【００８３】
また、本発明に係るデータ通信誤動作防止装置の制御方法は、上記課題を解決するために、信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置の制御方法であって、上記第２の装置に転送したデータを上記第１の装置において記憶する第１の記憶ステップと、上記第１の記憶ステップにて記憶したデータの、不可逆な一方向性関数により生成される当該データよりもデータ容量が小さい要約値を上記第１の装置において計算する第１の要約値計算ステップとを含み、受信したデータが書き込まれることで、当該データを上記第２の装置において記憶する第２の記憶ステップと、上記第２の記憶ステップにて記憶されたデータの要約値を上記第２の装置において計算する第２の要約値計算ステップと、第２の要約値計算ステップにて計算され、上記第１の装置に転送された要約値と、上記第１の要約値計算ステップにて計算された要約値とを上記第１の装置において比較する比較ステップを含むことを特徴としている。
【００８４】
上記の構成によれば、第２の装置に転送したデータを第１の記憶ステップにて第１の装置において記憶し、第１の要約値計算ステップにて当該データの要約値を第１の装置において計算する。また、第２の記憶ステップでは、受信したデータが書き込まれることで、当該データを第２の装置において記憶し、第２の要約値計算ステップにて、第２の記憶ステップにて記憶されたデータの要約値を、第２の装置において計算する。そして、第２の要約値計算ステップにて計算され、第１の装置に転送された要約値と、第１の要約値計算ステップにて計算された要約値とを、比較ステップにて、第１の装置において比較する。
【００８５】
これにより、これらの値が異なっていた場合、第２の記憶ステップに記憶するデータ、即ち第２の装置に転送されたデータにエラーが発生していると認識することができる。
【００８６】
従って、第２の装置に転送したデータに発生するエラーを検出することができるという効果を奏する。また、第２の装置にエラーが発生した場合において、エラーを検出するための処理が第１の装置に偏ることがないので、第１の装置に多大な負荷をかけずに済むという効果を奏する。さらに、第２の装置から第１の装置に対して送信されるデータは、第２の装置が受信したデータそのものではなく、受信したデータの要約値であるので、データ通信におけるデータ転送レートの低下を抑制することができるという効果を奏する。
【００８７】
また、上記第２の要約値計算ステップは、上記第２の記憶ステップにて記憶されたデータの要約値の計算を開始する以後の、上記第１の装置による上記第２の記憶ステップの実行履歴を記憶する要約値記憶ステップを含むことを特徴としている。
【００８８】
上記の構成によれば、第２の要約値計算ステップは、要約値記憶ステップを含む。この要約値記憶ステップは、第２の記憶ステップにて記憶されるデータの履歴、即ち、第２の装置に転送されたデータ等が記憶される。つまり、要約値記憶ステップは、第２の記憶ステップの実行履歴を記憶する。
【００８９】
なお、上記データ通信誤動作防止装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記各手段として動作させることにより上記データ通信誤動作防止装置をコンピュータにて実現させるデータ通信誤動作防止装置の制御プログラム、及びそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【００９０】
以上のように、本発明に係るデータ通信誤動作防止装置は、信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置であって、上記第１の装置は、上記信号線の信号状態を制御することによって、それぞれデータ通信を開始及び停止する通信開始手段及び通信停止手段を備え、上記第２の装置は、上記信号線の信号状態に基づいて上記データ通信を開始及び停止するデータ通信手段を備え、上記通信開始手段がデータ通信を開始した場合、上記データ通信手段を動作状態とし、上記通信停止手段がデータ通信を停止した場合、上記データ通信手段を非動作状態とする切替手段を備える構成である。
【００９１】
従って、第２の装置に記憶された情報を読み出す動作を行うことなく、通信不能状態に陥る危険性を低減することができるという効果を奏する。
【００９２】
また、本発明に係るデータ通信誤動作防止装置は、信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置であって、上記データ通信は、データ信号とクロック信号とによって行われ、上記第２の装置は、上記データ信号及びクロック信号の一方または両方にエラーが発生している場合、当該第２の装置におけるデータ通信誤動作を防止する信号を送出すると共に、エラーが発生したことを第１の装置に通知するエラー割り込み信号を送出するエラー検出通知手段を備える構成である。
【００９３】
従って、第１の装置が、データ転送期間中に発生するデータ転送時におけるエラーの状態を確認することができる。また、第２の装置に記憶された情報を読み出す動作を行うことなく、自律的に通信不能状態から復帰することができるという効果を奏する。さらに、データ通信を行う信号線を使用することなく、エラーが発生したことを第１の装置に通知することができるため、データ通信におけるデータ転送レートの低下を抑制することができるという効果を奏する。
【００９４】
また、本発明に係るデータ通信誤動作防止装置は、信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置であって、上記第１の装置は、上記第２の装置に転送したデータを記憶する第１の記憶手段と、上記第１の記憶手段に記憶したデータの、不可逆な一方向性関数により生成される当該データよりもデータ容量が小さい要約値を計算する第１の要約値計算手段とを備え、上記第２の装置は、受信したデータが書き込まれることで、当該データを記憶する第２の記憶手段と、上記第２の記憶手段に記憶されたデータの要約値を計算する第２の要約値計算手段とを備え、上記第１の装置は、さらに、第２の要約値計算手段により計算され、上記第１の装置に転送された要約値と、上記第１の要約値計算手段により計算された要約値とを比較する比較手段を備える構成である。
【００９５】
従って、第２の装置に転送したデータに発生するエラーを検出することができるという効果を奏する。また、第２の装置にエラーが発生した場合において、エラーを検出するための処理が第１の装置に偏ることがないので、第１の装置に多大な負荷をかけずに済むという効果を奏する。さらに、第２の装置から第１の装置に対して送信するデータは、第２の装置が受信したデータそのものではなく、受信したデータの要約値であるので、データ通信におけるデータ転送レートの低下を抑制することができるという効果を奏する。
【００９６】
また、本発明に係るデータ通信誤動作防止装置の制御方法は、信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置の制御方法であって、上記第１の装置が上記信号線の信号状態を制御することによって、それぞれデータ通信を開始及び停止する通信開始ステップ及び通信停止ステップと、上記信号線の信号状態に基づいて上記第２の装置が上記データ通信を行うデータ通信ステップと、上記通信開始ステップにてデータ通信が開始された場合、上記データ通信ステップを実行可能とし、上記通信停止ステップにてデータ通信が停止された場合、上記データ通信ステップを実行不能とする切替ステップとを含む方法である。
【００９７】
従って、第２の装置に記憶された情報を読み出す動作を行うことなく、通信不能状態に陥る危険性を低減することができるという効果を奏する。
【００９８】
また、本発明に係るデータ通信誤動作防止装置の制御方法は、信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置の制御方法であって、上記データ通信は、データ信号とクロック信号とによって行われ、上記データ信号及びクロック信号の一方または両方にエラーが発生していることを上記第２の装置において検出することにより、当該第２の装置におけるデータ通信誤動作を防止する信号を送出すると共に、エラーが発生したことを第１の装置に通知するエラー割り込み信号を送出するエラー検出通知ステップを含む方法である。
【００９９】
従って、第１の装置が、データ転送期間中に発生するデータ転送時におけるエラーの状態を確認することができる。さらに、第２の装置に記憶された情報を読み出す動作を行うことなく、自律的に通信不能状態から復帰することができるという効果を奏する。データ通信を行う信号線を使用することなく、エラーが発生したことを第１の装置に通知することができるため、データ通信におけるデータ転送レートの低下を抑制することができるという効果を奏する。
【０１００】
また、本発明に係るデータ通信誤動作防止装置の制御方法は、信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有するデータ通信誤動作防止装置の制御方法であって、上記第２の装置に転送したデータを上記第１の装置において記憶する第１の記憶ステップと、上記第１の記憶ステップにて記憶したデータの、不可逆な一方向性関数により生成される当該データよりもデータ容量が小さい要約値を上記第１の装置において計算する第１の要約値計算ステップとを含み、受信したデータが書き込まれることで、当該データを上記第２の装置において記憶する第２の記憶ステップと、上記第２の記憶ステップにて記憶されたデータの要約値を上記第２の装置において計算する第２の要約値計算ステップと、第２の要約値計算ステップにて計算され、上記第１の装置に転送された要約値と、上記第１の要約値計算ステップにて計算された要約値とを上記第１の装置において比較する比較ステップを含む方法である。
【０１０１】
従って、第２の装置に転送したデータに発生するエラーを検出することができるという効果を奏する。また、第２の装置にエラーが発生した場合において、エラーを検出するための処理が第１の装置に偏ることがないので、第１の装置に多大な負荷をかけずに済むという効果を奏する。さらに、第２の装置から第１の装置に対して送信されるデータは、第２の装置が受信したデータそのものではなく、受信したデータの要約値であるので、データ通信におけるデータ転送レートの低下を抑制することができるという効果を奏する。
【発明を実施するための最良の形態】
【０１０２】
本発明の実施の形態について図１から図１１に基づいて説明すると以下の通りである。なお、説明の便宜上、すでに図面を用いて説明した部材と同一の機能を有する部材には、同一の符号を付記してその説明を省略する。
〔実施の形態１〕
図１は、本発明に係るデータ通信誤動作防止装置を、Ｉ２Ｃバスに搭載する電子機器の構成を示すブロック図である。
【０１０３】
図１に示す電子機器３ａは、装置（第１の装置）１と装置（第２の装置）２とが、ＳＣＬ（信号線）４及びＳＤＡ（信号線）５からなるＩ２Ｃバス伝送路３０１によって接続されている。また、ＳＣＬ４はクロック信号を送信するためのクロック信号線であり、ＳＤＡ５は、データやアドレス等を送信するためのデータ信号線である。
【０１０４】
装置１は、装置２に対して所定のデータを書き込んだり、装置２に格納されるデータを読み出したりするものであり、いわゆるマスタデバイスである。ここで図１に示した装置１は、ＣＰＵ(中央処理装置)１０１、Ｉ２Ｃバスのインターフェース仕様に準拠した動作を行うＩ２Ｃ部１０２、メモリ１０３、及びＩ２Ｃスレーブデバイス制御部（切替手段）１０４を備えている。
【０１０５】
ＣＰＵ１０１は、装置１と装置２との間の書き込み及び読み出し動作を制御するものである。なお、ＣＰＵ１０１は、この制御の他に装置１の諸動作を制御するものであってもよい。また、ＣＰＵ１０１は、スタートコンディション発行部（通信開始手段）１０５とストップコンディション発行部（通信停止手段）１０６を備える。
【０１０６】
Ｉ２Ｃ部１０２はＳＣＬ４及びＳＤＡ５に接続されており、Ｉ２Ｃバスのインターフェース仕様に準拠した動作を行うものである。Ｉ２Ｃバスのインターフェース仕様に準拠した動作については後述する。
【０１０７】
メモリ１０３は、ＣＰＵ１０１が実行するプログラムを保存している。なお、メモリ１０３はその他にも、装置２に対して書き込むデータや後述する装置２のレジスタ群２０２に入力されるデータの期待値（期待値についての詳細な説明は後述する）、装置１の装置２に対するアクセス履歴等が保存されてもよい。
【０１０８】
Ｉ２Ｃスレーブデバイス制御部１０４は、スタートコンディション検出部１０７とストップコンディション検出部１０８を備え、後述する装置２のＩ２Ｃ部２０１に対して制御信号を送信するものである。Ｉ２Ｃスレーブデバイス制御部１０４の具体的な動作については後述する。なお、Ｉ２Ｃスレーブデバイス制御部１０４は、ＳＣＬ４及びＳＤＡ５とは異なる信号線である伝送経路３０２によって、装置２のＩ２Ｃ部２０１に接続されている。
【０１０９】
装置２は、Ｉ２Ｃ部（データ通信手段）２０１、レジスタ群（記憶手段）２０２、及び機能ブロック２０３を備える。装置２は、装置１より書き込まれたデータをレジスタ群２０２に記憶し、当該データに基づいて機能ブロック２０３に実装された機能を実行するものであり、いわゆるスレーブデバイスである。
【０１１０】
Ｉ２Ｃ部２０１は、Ｉ２Ｃバスのインターフェース仕様に準拠した動作を行うものである。Ｉ２Ｃ部２０１は、双方向バッファ２１１、ノイズ除去／同期化部２１２、Ｉ２Ｃ送信部２１３、Ｉ２Ｃ制御部２１４、Ｉ２Ｃ受信部２１５、レジスタ読み出し部２１６、及びレジスタ書き込み部２１７を備える。
【０１１１】
双方向バッファ２１１は、装置１からデータやクロックの入力があった場合、論理値Ｌｏｗ出力もしくはＨｉｇｈ出力（いわゆる、ハイインピーダンス状態）となることで、入力された信号を内部回路に伝送するように動作する。また、装置１にデータを出力する場合は、ハイインピーダンス状態となり、データ信号を装置１に転送するように動作する。
【０１１２】
なお、この双方向バッファ２１１にはＳＣＬ４及びＳＤＡ５が接続されており、データ信号を転送する信号線であるＳＤＡ５に対しては、データ信号の入出力に応じて、上記装置１からの入力時の動作と装置１への出力時の動作とを切り替える。一方、クロック信号を転送する信号線であるＳＣＬ４に対しては、装置１のデータの入出力に関らず、上記装置１からの入力時における動作を行う。
【０１１３】
ノイズ除去／同期化部２１２は、Ｉ２Ｃバス伝送路３０１に混入した電気的なノイズを除去するように動作すると共に、装置２の動作クロックであるシステムクロックに同期させた信号を生成する。以下、システムクロックはＩ２Ｃバス伝送路３０１のＳＣＬ４のクロック周波数に対して十分に高い周波数を持つものとする。
【０１１４】
ノイズ除去／同期化部２１２は、システムクロックをクロック入力に持つ内部フリップフロップ（図示しない）を有する。Ｉ２Ｃバス伝送路３０１より入力された、ＳＣＬ４からのクロック信号及びＳＤＡ５からのデータ信号は、この内部フリップフロップに入力される。そして、内部フリップフロップはシステムクロックに同期させたクロック信号及びデータ信号を出力し、装置２内部の各部材に伝播させる。もしもこのとき、システムクロックよりも高い周波数の電気的ノイズがＩ２Ｃバス伝送路３０１に発生したとしても、ＳＣＬ４からのクロック信号及びＳＤＡ５からのデータ信号はこの同期化処理によってシステムクロックに同期させられるため、ノイズが除去される。
【０１１５】
Ｉ２Ｃ送信部２１３は、装置１が装置２に蓄積されるデータを読み出す場合、レジスタ群２０２に蓄積されたデータを、レジスタ読み出し部２１６を介して受け取る。そして、ノイズ除去／同期化部２１２及び双方向バッファ２１１を介して、ＳＤＡ５から上記データを送信する。
【０１１６】
Ｉ２Ｃ制御部２１４は、双方向バッファ２１１を制御しており、所定のタイミングで入出力を切り替える。また、それに伴い、Ｉ２Ｃ送信部２１３が装置１にデータを送信するタイミング及びＩ２Ｃ受信部２１５が後述するレジスタ書き込み部２１７にデータを送信するタイミングも併せて制御している。
【０１１７】
Ｉ２Ｃ受信部２１５は、装置１から受信したデータに含まれるスレーブアドレスが装置２のスレーブアドレスと一致するかどうか判定する。そして、受信したスレーブアドレスが装置２のスレーブアドレスと一致しない場合、または装置２がビジー状態でデータの受信が不可能である場合、Ｉ２Ｃ制御部２１４に対して、双方向バッファ２１１をハイインピーダンス状態とし、装置１に対して「ＮＡＣＫ」を通知する旨の指令を送信する。
【０１１８】
またＩ２Ｃ受信部２１５は、装置１から受信したデータを装置２に蓄積する場合、レジスタ書き込み部２１７を介して、レジスタ群２０２のレジスタに当該データを書き込む。
【０１１９】
レジスタ群２０２は、多数のレジスタによって構成され、装置１から転送されたデータが書き込まれる。そして当該データをリード部（レジスタ２０２と機能ブロック２０３の間に備えられる、図示しない）で読み出すことにより、機能ブロック２０３は、自身に実装された機能を実現する。なお、レジスタ群２０２の設けられるレジスタについては、従来周知のレジスタを用いることが可能である。そして、機能ブロック２０３の機能としては例えば、液晶表示回路、ＣＣＤ回路を含んだ撮像回路、Ｄ／Ａ変換回路、ＥＥＰＲＯＭ等の記憶回路の駆動などが挙げられる。
【０１２０】
なお、装置２には外部機器（図示しない）からシステムクロック信号及びシステムリセット信号が入力される。システムクロック信号は上述のように、装置２の動作クロックとして機能する信号であり、システムリセット信号は、外部機器からの指令により装置２を初期化するための信号である。
【０１２１】
上記のような構成を有する電子機器３ａにおいて、本発明に係るデータ通信誤動作防止装置は、Ｉ２Ｃスレーブデバイス制御部１０４、ＣＰＵ１０１のスタートコンディション発行部１０５及びストップコンディション発行部１０６、及びＩ２Ｃ部２０１により構成されている。
【０１２２】
ここで、Ｉ２Ｃバスのインターフェース仕様に準拠した動作について、即ち、本発明に係るデータ通信誤動作防止装置をＩ２Ｃバスに採用した場合において装置１から装置２へデータを転送する方法について説明する。
【０１２３】
まず、マスタデバイスである装置１がスレーブデバイスである装置２との通信を開始する際、最初にＩ２Ｃバスの使用権を獲得する必要がある。このために、装置１はスタートコンディションを発行する。これはＳＣＬ４がＨｉｇｈの状態において、ＳＤＡ５をＨｉｇｈからＬｏｗにすることで実現する。スタートコンディションは、ＣＰＵ１０１のスタートコンディション発行部１０５から発行され、送出される。
【０１２４】
そして、スタートコンディションに続いて、スレーブデバイスとして装置２を指定するため、装置１は、７ビットのスレーブアドレスと転送方向を示す１ビットとの合計８ビットのデータを送信する。ここで、装置２がビジー状態でない場合かつ受信したスレーブアドレスが装置２固有のスレーブアドレスと一致した場合においてＩ２Ｃ制御部２１４は、ＳＣＬ４からのクロック信号の９ビット目で双方向バッファ２１１をＬｏｗの状態にする。それによって、装置１に対して「ＡＣＫ」を通知する。
【０１２５】
装置２との通信が確立したら、データの転送に移る。装置１は装置２のスレーブアドレスからの「ＡＣＫ」を受信した後、続けてレジスタ群２０２のレジスタのアドレスデータ（レジスタアドレス）８ビット及びライトデータ８ビットを送信する。このとき、装置２はＳＣＬ４をＬｏｗにし、スレーブアドレスの８ビット目で指定された転送方向での通信準備を行い、準備が完了したらＳＣＬ４をＨｉｇｈとする。これにより、ＳＣＬ４は装置１を制御できるようになり、装置１からのＳＣＬ４からのクロック信号により、データ転送を行えるようになる。
【０１２６】
図２には、本発明に係るデータ通信誤動作防止装置をＩ２Ｃバスに採用した場合に見られる、伝送プロトコルを示す図であり、７ビットのスレーブアドレス、８ビットのアドレスデータ、８ビットのライトデータを装置１から装置２に書き込む場合のタイミングチャートを示している。
【０１２７】
図２に示すように、装置１から装置２に書き込む際には、まず装置１よりスタートコンディションと共に７ビットのスレーブアドレス、１ビットのライト信号（Ｌｏｗ信号）が送信される。装置２は、装置１より転送されたデータを双方向バッファ２１１、ノイズ除去／同期化部２１２を経由させ、Ｉ２Ｃ受信部２１５で受信する。装置２は、自身が受信可能な状態であれば図２のようなタイミングで「ＡＣＫ」を装置１に通知しながら、８ビットのアドレスデータ、８ビットのライトデータを受信し、レジスタ群２０２の該当するアドレスに書き込む。
【０１２８】
一方、データを受け取れなかったときには装置２は、「ＮＡＣＫ」を装置１に送信することで、データ転送の不良をマスタデバイスに知らせる。なお、装置２はＳＣＬの９ビット目で双方向バッファ２１１をハイインピーダンス状態にすることで、装置１に対して「ＮＡＣＫ」を通知する。装置１は装置２から「ＮＡＣＫ」を受信した場合には、スレーブアドレスを再送するなどの処置を取る。装置２は、Ｉ２Ｃ受信部２１５が正常にデータを受信したか否かをＩ２Ｃ制御部２１４にて判断し、判断結果に応じて「ＡＣＫ」または「ＮＡＣＫ」を発行し、ノイズ除去／同期化部２１２、双方向バッファ２１１を経由させ、装置１のＩ２Ｃ部１０２に送信する。
【０１２９】
データ転送が終了すると、装置２は、装置１に対する「ＡＣＫ」或いは「ＮＡＣＫ」の送信を停止する。これを装置１が認識することによってデータ転送の終了を認識する。そして、Ｉ２Ｃバスを開放するため、装置１はストップコンディションを発行する。これはＳＣＬ４がＨｉｇｈの状態において、ＳＤＡ５をＬｏｗからＨｉｇｈにすることで実現する。ストップコンディションは、ＣＰＵ１０１のストップコンディション発行部１０６から発行され、送出される。なお、Ｉ２Ｃ受信部２１５の、レジスタ群２０２への書き込み動作は、装置２がストップコンディションを検出してから行う。
【０１３０】
このような電子機器３ａ、及び後述する電子機器３ｂ及び３ｃにおいて、外来ノイズの混入によって装置１と装置２との間のデータの送受信に問題が生じるパターンとしては、データ転送停止期間に外来ノイズが混入する場合と、データ転送期間に外来ノイズが混入する場合と、の２つが考えられる。
【０１３１】
図３にＩ２Ｃバス動作時のＳＣＬ４及びＳＤＡ５のデータ転送の様子を表す。
【０１３２】
Ｉ２Ｃバスのインターフェース仕様では任意のタイミングでのデータ転送が可能であるため、図２のように、データ転送停止期間とデータ転送期間とを有するのが一般的である。
【０１３３】
ここで、データ転送停止期間に外来ノイズｎ１が混入した場合、ＳＤＡ５が予期せぬ形でＨｉｇｈからＬｏｗに変化する。それによって、装置２はスタートコンディションを認識してしまう。また、Ｉ２Ｃ部２０１は外来ノイズｎ１を、装置１から転送されたデータであると認識してしまい、実際は装置１からデータが送られていないのにも関らず、装置２が書き込み動作を実施する。結果として、装置２に受信エラーが生じたり、レジスタ群２０２のレジスタに予期せぬデータが書き込まれたりする。
【０１３４】
また、データ転送期間に外来ノイズｎ２が混入した場合、装置１から装置２に入力されたデータに外来ノイズｎ２が混入し、ビット化け等が発生する。それによって、装置１が出力したデータと異なるデータが装置２に入力されてしまう。即ち、外来ノイズｎ２が転送中のデータを壊し、誤ったデータとしてＩ２Ｃ部２０１に認識されてしまう。またこのとき、ＳＤＡ５が予期せぬ形でＬｏｗからＨｉｇｈに変化する。それによって、装置２はエンドコマンドを認識してしまう。結果として、装置２のレジスタ群２０２に、誤ったデータが書き込まれる。
【０１３５】
本実施の形態１で説明する発明は、データ転送停止期間に外来ノイズが混入する場合において、データ転送停止期間に混入した外来ノイズｎ１による誤動作を防止するものである。
【０１３６】
本実施の形態１に係るデータ通信誤動作防止装置では、図３で示したデータ転送停止期間の外来ノイズｎ１による誤動作を防止するため、図１に示すように、Ｉ２Ｃスレーブデバイス制御部１０４が伝送経路３０２によって、Ｉ２Ｃ部２０１に接続されている。Ｉ２Ｃスレーブデバイス制御部１０４は、Ｉ２Ｃ部２０１のイネーブル状態とディゼーブル状態とを切り替えるＩ２Ｃイネーブル信号を出力する。
【０１３７】
また、Ｉ２Ｃ部２０１は、ディゼーブル状態の場合においては、Ｉ２Ｃバス伝送路３０１のＳＣＬ４やＳＤＡ５の状態に関らず、動作を停止する。即ち、Ｉ２Ｃ部２０１は、イネーブル状態において動作状態になり、ディゼーブル状態において非動作状態になるため、レジスタ群２０２に誤ったデータを書き込まれることがない。
【０１３８】
上記のような構成にし、ＣＰＵ１０１により、Ｉ２Ｃイネーブル信号を、図４に示したように制御する。即ち、データ転送停止期間においてはＩ２Ｃイネーブル信号をディゼーブルにし、データ転送期間においてはＩ２Ｃイネーブル信号をイネーブルにする。
【０１３９】
なお、ＣＰＵ１０１により、Ｉ２Ｃイネーブル信号を制御する方法としては例えば、下記のような方法が考えられる。
【０１４０】
即ち、装置１が装置２へデータ転送を開始する際、ＣＰＵ１０１はスタートコンディション発行部１０５から、スタートコンディションを発行する。具体的には上述のように、ＳＣＬ４がＨｉｇｈの状態においてＳＤＡ５をＨｉｇｈの状態からＬｏｗの状態にすることで実現する。そして、スタートコンディションを発行する際に、ＣＰＵ１０１のスタートコンディション発行部１０５が送出した信号を、Ｉ２Ｃ部１０２に送信すると共に、Ｉ２Ｃスレーブデバイス制御部１０４に送信する。そして、Ｉ２Ｃスレーブデバイス制御部１０４がスタートコンディション発行部１０５からの上記信号を、スタートコンディション検出部１０７にて検出すると、Ｉ２Ｃスレーブデバイス制御部１０４は、Ｉ２Ｃ部２０１をイネーブルにする旨のＩ２Ｃイネーブル信号を、伝送経路３０２を介してＩ２Ｃ部２０１に送出する。
【０１４１】
また、装置１が装置２へのデータ転送を終了する際も同様である。即ち、ＣＰＵ１０１は、装置１が装置２へのデータ転送を終了する際に、ストップコンディション発行部１０６から、ストップコンディションを発行する。具体的には、ＳＣＬ４がＨｉｇｈの状態においてＳＤＡ５をＬｏｗの状態からＨｉｇｈの状態にすることで実現する。そして、ストップコンディションを発行する際に、ＣＰＵ１０１のストップコンディション発行部１０６が送出した信号を、Ｉ２Ｃ部１０２に送信すると共に、Ｉ２Ｃスレーブデバイス制御部１０４に送信する。そして、Ｉ２Ｃスレーブデバイス制御部１０４がストップコンディション発行部１０６からの上記信号を、ストップコンディション検出部１０８にて検出すると、Ｉ２Ｃスレーブデバイス制御部１０４は、Ｉ２Ｃ部２０１をディゼーブルにする旨のＩ２Ｃイネーブル信号を、伝送経路３０２を介してＩ２Ｃ部２０１に送出する。
【０１４２】
これによって、Ｉ２Ｃ部２０１がディゼーブル状態ではＩ２Ｃ部２０１は動作しない。従って、図４に示す、データ転送停止期間中に外来ノイズｎ１が混入した場合においても、装置２は誤動作を起こすことがない。
【０１４３】
以上のように、スレーブデバイスである装置２を制御することによって、スレーブデバイスに記憶された情報を読み出す動作を行うことなく、通信不能状態を回避することができる。
【０１４４】
なお本実施の形態１では、伝送経路３０２によってＩ２Ｃスレーブデバイス制御部１０４とＩ２Ｃ部２０１とを接続し、Ｉ２Ｃスレーブデバイス制御部１０４がＩ２Ｃイネーブル信号を送出することで、Ｉ２Ｃ部２０１のイネーブル状態とディゼーブル状態とを制御している。しかしながら、Ｉ２Ｃ部２０１のイネーブル状態とディゼーブル状態とを制御する方法はこれに限らず、例えば下記のような方法であっても構わない。
【０１４５】
即ち、レジスタ群２０２の特定のレジスタに、Ｉ２Ｃ部２０１のイネーブル状態とディゼーブル状態とを切り替えるイネーブル／ディゼーブル制御レジスタ（図示しない）を設ける構成にする（なお、このイネーブル／ディゼーブル制御レジスタは、入力信号に応じたＯＮ／ＯＦＦの１ビット制御が可能であるもので充分である）。イネーブル／ディゼーブル制御レジスタは、Ｉ２Ｃスレーブデバイス制御部１０４からのノイズが混入しない状態でスタートコンディション及びストップコンディションを判別する。
【０１４６】
そして、Ｉ２Ｃ部２０１がイネーブル状態である場合には、レジスタ群２０２へのデータの書き込みを許可し、Ｉ２Ｃ部２０１がディゼーブル状態である場合には、このイネーブル／ディゼーブル制御レジスタへのアクセスを除く、全てのレジスタへのデータの書き込みをすべて禁止するようにイネーブル／ディゼーブル制御レジスタを制御する。
【０１４７】
なお、イネーブル／ディゼーブル制御レジスタによりＩ２Ｃ部のイネーブル／ディゼーブルを制御する具体的な方法については、例えば、レジスタ比較によりＩ２Ｃ部のイネーブル／ディゼーブルを制御する方法が考えられる。しかしながら、上記具体的な方法はこれに限らず、かつこのような制御方法は、当業者であれば容易に実施することが可能であるので、ここでは、詳細な説明を省略する。
【０１４８】
このような方法でも、上記の発明と略同様の効果が得られる。
【０１４９】
つまり、本発明は、信号線を介してデータを転送する第１の電子機器と、当該第１の電子機器が転送したデータを受信するデータ通信手段を有する第２の電子機器と、を備え、少なくとも上記第１の電子機器と上記第２の電子機器とを含む複数の電子機器が、上記信号線により接続されるデータ送受信装置に備えられるデータ通信誤動作防止装置であって、上記データ送受信装置の第１の電子機器には、上記第１の電子機器と上記第２の電子機器との通信を開始する信号を出力する通信開始手段と、上記第１の電子機器と上記第２の電子機器との通信を停止する信号を出力する通信停止手段と、を備え、上記データ送受信装置の第２の電子機器には、上記データ通信手段が受信したデータが書き込まれることで、当該データを保持する設定記憶手段を備え、上記設定記憶手段の所定の領域に備えられ、上記通信開始手段が上記第１の電子機器と上記第２の電子機器との通信を開始する信号を出力した場合、上記データ通信手段が受信したデータを、上記設定記憶手段の所定の領域以外の領域に書き込むことを許可し、上記通信停止手段が、上記第１の電子機器と上記第２の電子機器との通信を停止する信号を出力した場合、上記データ通信手段が受信したデータを、上記設定記憶手段の所定の領域以外の領域に書き込むことを禁止する切替手段を備えることを特徴としてもよい。
【０１５０】
上記の構成によれば、第２の電子機器はデータ通信手段が受信したデータが書き込まれることで、当該データを保持する設定記憶手段を備える。また、切替手段は設定記憶手段の所定の領域に備えられる。そして、通信開始手段が上記第１の電子機器と上記第２の電子機器との通信を開始する信号を出力した場合、データ通信手段が受信したデータを、設定記憶手段の所定の領域以外の領域に書き込むことを許可する。また、通信停止手段が、第１の電子機器と上記第２の電子機器との通信を停止する信号を出力した場合、データ通信手段が受信したデータを、設定記憶手段の所定の領域以外の領域に書き込むことを禁止する。データ転送停止期間には、設定記憶手段の切替手段が設けられた領域以外の領域とアクセスすることが不可能な構成となるため、データ転送停止期間中に外来ノイズが混入した場合においても、第２の電子機器は誤動作を起こすことがない。
【０１５１】
従って、第２の電子機器に記憶された情報を読み出す動作を行うことなく、通信不能状態を低減することができるという効果を奏する。
〔実施の形態２〕
図５は、本発明に係る別のデータ通信誤動作防止装置を、Ｉ２Ｃバスに搭載する電子機器３ｂの構成を示すブロック図である。
【０１５２】
図５に示す電子機器３ｂは、図１に示す電子機器３ａにおいて、装置１には、Ｉ２Ｃスレーブデバイス制御部１０４の代わりに割り込み制御部（エラー検出通知手段）１０９が備えられる構成である。さらに、装置２には、図１に示す電子機器３ａに加えて、エラー検出部（エラー検出通知手段）２２０と、割り込み制御部（エラー検出通知手段）２２１と、を備える構成である。
【０１５３】
本実施の形態２で説明する発明は、図３において、データ転送期間に外来ノイズｎ２が混入する場合において、当該外来ノイズｎ２による誤動作を防止するものである。
【０１５４】
エラー検出部２２０は、ノイズ除去／同期化部２１２とＩ２Ｃ受信部２１５との間に、Ｉ２Ｃ部２０１とは異なる領域に設けられる。このエラー検出部２２０は、装置２に発生する、データ転送時におけるエラーを検出するものである。エラー検出部２２０には、ノイズ除去／同期化部２１２から出力された信号が入力される。そしてエラー検出部２２０は、上記信号を基に、当該データのデータ転送時におけるエラーを検出する。そして、もしもデータ転送時においてエラーが発生している場合、エラー検出部２２０は、Ｉ２Ｃ部２０１、Ｉ２Ｃ受信部２１５、及び割り込み制御部２２１に対して制御信号を送出する。
【０１５５】
割り込み制御部１０９・２２１は、割り込み制御部１０９が装置１に、割り込み制御部２２１が装置２に設けられ、割り込み制御部１０９と割り込み制御部２２１とが、ＳＣＬ４及びＳＤＡ５とは異なる信号線で接続されている。割り込み制御部１０９・２２１は、データ転送時におけるエラーを、装置１に通知するためのものである。
【０１５６】
データ転送時におけるエラーが発生した場合、エラー検出部２２０は割り込み制御部２２１に対して制御信号としてエラー割り込み信号を送出し、当該エラー割り込み信号は、割り込み制御部２２１を介して、割り込み制御部１０９に入力される。これによって、データ転送時においてエラーが発生したことを、装置１が認識することができる。
【０１５７】
上記のような構成を有する電子機器３ｂにおいて、本発明に係るデータ通信誤動作防止装置は、エラー検出部２２０、割り込み制御部１０９・２２１、及びＩ２Ｃ部２０１により構成されている。
【０１５８】
装置１及び装置２は、上述した実施の形態１と同様の方法にて、相互間の通信を確立する。即ち、装置１はスタートコンディション、７ビットのスレーブアドレス、及び転送方向を示す１ビットとの合計８ビットのデータを送信する。そして、装置２は、装置１に対して「ＡＣＫ」を通知する。装置２との通信が確立したら、データの転送に移る。
【０１５９】
装置１は装置２のスレーブアドレスからの「ＡＣＫ」を受信した後、続けてレジスタ群２０２のレジスタのアドレスデータ（レジスタアドレス）８ビット及びライトデータ８ビットを送信する。装置２は、装置１より転送されたデータを双方向バッファ２１１、ノイズ除去／同期化部２１２を経由させ、Ｉ２Ｃ受信部２１５で受信する。
【０１６０】
このとき装置２は、自身が受信可能な状態であれば図２のようなタイミングで「ＡＣＫ」を装置１に通知しながら、８ビットのアドレスデータ、８ビットのライトデータを受信する。そして、これらのデータを一時的にＩ２Ｃ受信部２１５にて保持する。
【０１６１】
さらにこのとき、ノイズ除去／同期化部２１２は、Ｉ２Ｃ受信部２１５に上記データを送出する際において、自身が出力した信号をエラー検出部２２０に送出する。エラー検出部２２０は上記信号を受信すると、当該信号を基に、データ転送時においてエラーが発生していないかを調べる。
【０１６２】
このときエラー検出部２２０でエラーが検出されなかった場合、装置２は、装置１から受信したデータを正しいものとして認識する。そして、Ｉ２Ｃ受信部２１５は、自身が一時的に保持していた装置１から転送されたデータを、レジスタ群２０２の該当するアドレスに書き込む。
【０１６３】
また、エラー検出部２２０でエラーが検出された場合、装置２は、装置１から受信したデータを誤ったものとして認識する。そして、エラー検出部２２０は制御信号として、レジスタ書き込み禁止信号をＩ２Ｃ受信部２１５に、エラー割り込み信号を割り込み制御部２２１に、Ｉ２Ｃ部リセット信号をＩ２Ｃ部２０１に送出する。
【０１６４】
Ｉ２Ｃ受信部２１５はレジスタ書き込み禁止信号を受信すると、自身が一時的に保持していた、装置１から転送されたデータを破棄することで、当該データのレジスタ群２０２への書き込みを防止する。
【０１６５】
割り込み制御部２２１はエラー割り込み信号を受信すると、当該エラー割り込み信号を割り込み制御部１０９に送出する。これによって、装置１に対して、装置２にてエラーが発生したことを通知する。
【０１６６】
割り込み制御部１０９はエラー割り込み信号を受信すると、ＣＰＵ１０１に当該エラー割り込み信号を送出する。ＣＰＵ１０１はエラー割り込み信号を受信すると、装置２に対し転送データを再送する等、データ転送の復帰処理を行う。
【０１６７】
Ｉ２Ｃ部２０１はＩ２Ｃ部リセット信号を受信すると、自身を初期化する処理を実行する。なお、この「自身を初期化する処理」としては例えば、下記のような処理が挙げられる。
【０１６８】
即ち、Ｉ２Ｃ部２０１はＩ２Ｃ部リセット信号を受信すると、外部機器（図示しない）に対して、システムリセット信号を発行する旨の指令を与える。そして、指令を受けた外部機器はシステムリセット信号を発行し、装置２を初期化する。これによって、Ｉ２Ｃ部２０１も同時に初期化される。
【０１６９】
このようにして、Ｉ２Ｃ部２０１がエラーを検出し、レジスタ群２０２への誤った書き込みを防止し、さらにＩ２Ｃバスを自律的に復帰させることができる。
【０１７０】
なお、エラー検出部２２０が送出するエラー割り込み信号には、エラーに関する詳細な情報（装置１から装置２へのデータ転送時に発生したエラーの種別、エラーの程度など）を含んでいてもよい。また、エラーに関する詳細な情報を含むエラー割り込み信号を割り込み制御部１０９が受信した場合、割り込み制御部１０９は、当該信号をＣＰＵ１０１に送出すると共に、当該信号に含まれた情報をメモリ１０３に書き込む構成としてもよい。エラーに関する詳細な情報をメモリ１０３に書き込み、エラー履歴として保存しておけば、エラー状態をより確実に確認することができる。
【０１７１】
ここで、エラー検出部２２０について図６及び図８に基づいて詳細に説明する。
【０１７２】
図６は装置２の内部を伝達する信号のタイミングチャートであり、図５で表された装置２に入力される信号が、装置２の内部に伝播する様子を表している。
【０１７３】
ここで、外部ＳＣＬ信号及び外部ＳＤＡ信号は、Ｉ２Ｃバス伝送路３０１から装置２に入力される信号を示す。即ち、外部ＳＣＬ信号はＳＣＬ４から装置２に入力されるデータ信号を、外部ＳＤＡ信号はＳＤＡ５から装置２に入力されるクロック信号を指している。また、装置２システムクロックは、装置２に入力される、装置２の動作クロック信号を指しており、外部ＳＣＬ信号の周波数に対して十分高い周波数を持つものとする。
【０１７４】
ＳＣＬｉｎ信号及びＳＤＡｉｎ信号はそれぞれ、外部ＳＣＬ信号及び外部ＳＤＡ信号をシステムクロックに同期させた信号である。ＳＣＬｉｎ信号及びＳＤＡｉｎ信号は、外部ＳＣＬ信号及び外部ＳＤＡ信号がノイズ除去／同期化部２１２に入力されることによって生成される。具体的な生成方法としては例えば、ノイズ除去／同期化部２１２にＤ−フリップフロップ（図示しない）を設ける。そして、ノイズ除去／同期化部２１２に入力される外部ＳＣＬ信号及び外部ＳＤＡ信号を当該Ｄ−フリップフロップで受信すれば、システムクロックに同期したＳＣＬｉｎ信号及びＳＤＡｉｎ信号を簡単に生成することができる。なおこのとき、ノイズ除去／同期化部２１２はこのような構成だけであってもノイズ除去装置として充分に機能する。
【０１７５】
スタートコンディション検出信号及びストップコンディション検出信号はそれぞれ、Ｉ２Ｃ受信部２１５が、Ｉ２Ｃバスのスタートコンディション及びストップコンディションを検出したタイミングを、装置２の各部材に通知するために出力される信号である。
【０１７６】
図６の「ＳＣＬｉｎカウンタ」は、ＳＣＬｉｎ信号のパルス数を計数するカウンタ（Ｉ２Ｃ受信部２１５に設けられる、図示しない）のカウンタ出力である。このカウンタは、スタートコンディション検出信号によって数値がクリアされる。即ち、上記カウンタはスタートコンディションが装置２に通知されてから出力される、ＳＣＬｉｎ信号のパルスの数をカウントしている。なお、図６の「ＳＣＬｉｎカウンタ」に付されている数値は、上記カウンタがカウントする、ＳＣＬｉｎ信号のカウント値を示している。
【０１７７】
なお、ＳＤＡｏｕｔ信号は、ＡＣＫ／ＮＡＣＫ（スレーブ出力）に該当する。また、ＳＤＡ入出力切り替え信号は、Ｉ２Ｃに準拠してＳＤＡの入力と出力とを切り替えるものであり、図２に示す、ＷＲ（マスタ出力）のことを指す。ＷＲにて“Ｒ”が出力されると、ＳＤＡ５は、マスタ出力からスレーブ出力へと切り替わる。しかしながら、このＳＤＡｏｕｔ信号及びＳＤＡ入出力切り替え信号は、本発明に係るエラー検出部２２０の動作に関与するものではないので、ここではこれ以上の詳細な説明は省略する。
【０１７８】
図７には、本発明にて使用されるエラー検出部２２０の構成を示している。エラー検出部２２０は、ＳＤＡｉｎ状態遷移判定部２３０、ＳＣＬｉｎカウンタ確認部２３１、Ｉ２Ｃリセットカウンタ２３２、及び信号送出部２３３を有する。
【０１７９】
ＳＤＡｉｎ状態遷移判定部２３０は、ノイズ除去／同期化部２１２が出力した信号が入力される。そしてこの信号のうち、ＳＣＬｉｎ信号及びＳＤＡｉｎ信号がＨｉｇｈの状態であるかＬｏｗの状態であるかを随時判定することで、エラーを検出する。そして、エラーを検出した場合、後述する信号送出部２３３に対し、エラーを検出した旨を通知する。ＳＤＡｉｎ状態遷移判定部２３０におけるエラーの検出方法については後述する。
【０１８０】
ＳＣＬｉｎカウンタ確認部２３１は、ノイズ除去／同期化部２１２が出力した信号が入力される。そしてこの信号のうち、ＳＣＬｉｎカウンタから、ストップコンディション検出信号が装置２に通知されたときのＳＣＬｉｎカウンタの数値を調べることで、エラーを検出する。そして、エラーを検出した場合、後述する信号送出部２３３に対し、エラーを検出した旨を通知する。ＳＣＬｉｎカウンタ確認部２３１におけるエラーの検出方法については後述する。
【０１８１】
Ｉ２Ｃリセットカウンタ（データ通信手段リセットカウンタ）２３２は、外部ＳＣＬ信号とは独立したクロック源をソースとして有し、スタートコンディションが入力されることによってクリアされ、ストップコンディションが入力されることによってカウント動作を停止するカウンタである。Ｉ２Ｃリセットカウンタ２３２は、自身のカウンタ値が所定の値に達したとき、Ｉ２Ｃ部リセット信号をＩ２Ｃ部２０１に送出することで、Ｉ２Ｃ部２０１を初期化すると共に、割り込み制御部２２１にエラー割り込み信号を送出する。
【０１８２】
なお、このＩ２Ｃリセットカウンタ２３２は、外部ＳＣＬ信号とは独立したクロック源をソースとして有し、かつＳＣＬｉｎカウンタとは異なるカウンタであれば、どのようなクロック信号であっても構わない。このようなクロック信号としては例えば、装置２システムクロックであっても構わないし、当該装置２システムクロックに同期した、装置２システムクロック以外のクロックであっても構わない。
【０１８３】
信号送出部２３３は、ＳＤＡｉｎ状態遷移判定部２３０またはＳＣＬｉｎカウンタ確認部２３１からのエラー通知を受信することで動作し、制御信号として、レジスタ書き込み禁止信号をＩ２Ｃ受信部２１５に、Ｉ２Ｃ部リセット信号をＩ２Ｃ部２０１に、エラー割り込み信号を割り込み制御部２２１に送出する。
【０１８４】
このとき、Ｉ２Ｃ受信部２１５にレジスタ書き込み禁止信号が入力されると、Ｉ２Ｃ受信部２１５は、装置１から受信したデータを破棄することで、当該データのレジスタ群２０２への書き込みを防止する。また、Ｉ２Ｃ部２０１にＩ２Ｃ部リセット信号が入力されると、Ｉ２Ｃ部２０１は初期化される。それによって、装置１のＩ２Ｃバスによるデータ転送は自律的に復帰される。さらに、割り込み制御部２２１にエラー割り込み信号が入力されると、割り込み制御部１０９を介して、装置２にて発生したエラーを装置１に通知することができる。
【０１８５】
ここで、エラー検出部２２０の各ブロックにおける、エラー検出方法について述べる。
【０１８６】
装置２の内部に、図６に示すような信号が伝達される場合において、例えば、外部ＳＤＡ信号にノイズ４０１のようなパルス状のノイズが入ったとする。このときノイズ４０１は、ノイズ４０２のようなパルス状のノイズをＳＤＡｉｎ信号に発生させる。即ち、ＳＤＡｉｎ信号はノイズ４０２の混入によって、一時的にＨｉｇｈの状態からＬｏｗの状態へと状態遷移する。
【０１８７】
通常のＩ２Ｃバスのインターフェース仕様によれば、スタートコンディション、ストップコンディションのタイミング以外で、ＳＣＬ信号がＨｉｇｈの状態でＳＤＡ信号がＨｉｇｈからＬｏｗへと（または逆にＬｏｗからＨｉｇｈへと）状態遷移することはない。しかしながら、ノイズ４０２がＳＤＡｉｎ信号に発生した場合、ＳＣＬ信号がＨｉｇｈの状態であるにも関らず、ＳＤＡｉｎ信号はＨｉｇｈの状態からＬｏｗの状態へと状態遷移する。
【０１８８】
そこで、ＳＤＡｉｎ状態遷移判定部２３０は、ＳＣＬｉｎ信号及びＳＤＡｉｎ信号がＨｉｇｈの状態であるかＬｏｗの状態であるかを随時判定する。そして、ＳＣＬｉｎ信号がＨｉｇｈの状態で、ＳＤＡｉｎ信号がＨｉｇｈの状態からＬｏｗの状態へと状態遷移した場合、データ転送時におけるエラーが発生していることを検出する。
【０１８９】
なお、データ転送時におけるエラーによる状態遷移と、スタートコンディション、ストップコンディションのタイミングによる状態遷移とを区別する方法としては、例えば、ステートマシンを用いる方法が挙げられる。
【０１９０】
即ち、ステートマシンは、装置１と装置２との間の通信が停止している場合における最初の上記状態遷移を、スタートコンディションのタイミングと認識する。スタートコンディションの発行以前においては、当然ながら、装置１と装置２との間のデータ通信は開始されておらず、上記状態遷移が発生することはない。そのため、装置１と装置２との間の通信が停止しており、上記状態遷移が発生すれば、それは、スタートコンディションのタイミングである、と判別することができる。スタートコンディションのタイミングを認識すると、ステートマシンは、自身の動作モードを、初期状態であるステート１からステート２へと変化させる。
【０１９１】
そして、このステートマシンがステート２である状態においては、データ転送時におけるエラー以外で、上記状態遷移が発生することがない。従って、ステートマシンがステート２であるときに上記状態遷移が発生すると、それをデータ転送時におけるエラーと認識する。
【０１９２】
また、例えば、外部ＳＣＬ信号にノイズ４０３のようなパルス状のノイズが入ったとする。このときノイズ４０３は、ノイズ４０４のようなパルス状のノイズをＳＣＬｉｎ信号に発生させる。即ち、ＳＣＬｉｎ信号はノイズ４０４の混入によって、一時的にＨｉｇｈの状態からＬｏｗの状態へと状態遷移する。
【０１９３】
通常のＩ２Ｃバスのインターフェース仕様によれば、図２に示すようなスレーブアドレス、アドレスデータ、及びライトデータの、一連の書き込み動作の場合、スタートコンディションからストップコンディションまでの、ＳＣＬｉｎ信号のパルス数は、
スレーブアドレス９パルス＋アドレスデータ９パルス＋ライトデータ９パルス＝２７パルス
となる。そしてこの場合、ストップコンディションが装置２に通知された時点でのＳＣＬｉｎカウンタの数値は、２６となる。
【０１９４】
しかしながら、ＳＣＬｉｎ信号にノイズ４０４が混入した場合、一時的にＨｉｇｈの状態からＬｏｗの状態へと状態遷移し、その後再びＨｉｇｈの状態となるため、スタートコンディション検出信号とストップコンディション検出信号との間のＳＣＬｉｎ信号パルスの数が１つ増加する。そのため、ストップコンディション検出信号が装置２に通知された時点でのＳＣＬｉｎカウンタの数値は、２７となる。
【０１９５】
そこで、ＳＣＬｉｎカウンタ確認部２３１は、ストップコンディション検出信号が装置２に通知されたときのＳＣＬｉｎカウンタの数値を調べる。そして、ＳＣＬｉｎカウンタの数値が２６以外の数値であった場合、データ転送時におけるエラーが発生していることを検出する。
【０１９６】
なお、ここでは、ストップコンディション検出信号が装置２に通知された時点でのＳＣＬｉｎカウンタの数値が２６である場合、即ち、図２に示すようなスレーブアドレス、アドレスデータ、及びライトデータの、一連の書き込み動作の場合について説明している。しかしながら、上記のエラー検出方法における考え方を拡張すれば、ＳＣＬｉｎカウンタの２６以外の数値を用いて同様な方法でエラーを検出することができる。
【０１９７】
ＳＣＬｉｎカウンタの２６以外の数値を用いたエラー検出方法について、図８に基づいて説明する。
【０１９８】
図８は７ビットのスレーブアドレス、８ビットのアドレスデータの後に、８ビットのライトデータｎ個を連続して装置１から装置２に書き込む場合のタイミングチャートを示している。通常のＩ２Ｃバスのインターフェース仕様によれば、図８に示すようなタイミングで送出されるライトデータは、Ｉ２Ｃバス伝送路３０１にデータ転送エラーが発生しない場合、ストップコンディション検出信号が装置２に通知された時点でのＳＣＬｉｎカウンタの値が、（２＋ｎ）×９−１となる。
【０１９９】
そのため、ストップコンディション検出信号が装置２に通知された時点でのＳＣＬｉｎカウンタが（２＋ｎ）×９−１以外の数値であった場合に、装置１から転送されたデータにエラーが発生していると考えられる。よって、ＳＣＬｉｎカウンタ確認部２３１は、ストップコンディション検出信号が装置２に通知された時点でのＳＣＬｉｎカウンタが（２＋ｎ）×９−１以外の数値であった場合に、上記エラーを検出すればよい。
【０２００】
ＳＤＡｉｎ状態遷移判定部２３０及びＳＣＬｉｎカウンタ確認部２３１は、エラーを検出すると、信号送出部２３３に対し、当該エラーを検出した旨を通知する。通知を受けた信号送出部２３３は、レジスタ書き込み禁止信号をＩ２Ｃ受信部２１５に、Ｉ２Ｃ部リセット信号をＩ２Ｃ部２０１に、エラー割り込み信号を割り込み制御部２２１に送出する。そして、Ｉ２Ｃ受信部２１５にレジスタ書き込み禁止信号が入力されると、Ｉ２Ｃ受信部２１５は、装置１から受信したデータを破棄することで、当該データのレジスタ群２０２への書き込みを防止する。また、Ｉ２Ｃ部２０１にＩ２Ｃ部リセット信号が入力されると、Ｉ２Ｃ部２０１は初期化される。これによって、装置１のＩ２Ｃバスによるデータ転送は自律的に復帰される。さらに、割り込み制御部２２１にエラー割り込み信号が入力されると、割り込み制御部１０９を介して、装置２にて発生したエラーを装置１に通知することができる。
【０２０１】
また外部ＳＤＡ信号にノイズ４０５のようなノイズが入ったとすると、装置２はストップコンディションを正しく認識することができなくなる可能性がある。即ち、ストップコンディションの発行は、外部ＳＣＬ信号がＨｉｇｈの状態であり、外部ＳＤＡ信号をＬｏｗからＨｉｇｈにすることで実現するが、外部ＳＤＡ信号にノイズ４０５が混入すると、外部ＳＤＡ信号がＬｏｗからＨｉｇｈに状態遷移したことを正しく認識することができなくなる。装置２がストップコンディションを正しく認識することができなくなると、ストップコンディション受信待ち状態のままになる可能性がある（いわゆる、リスタートコンディション）。
【０２０２】
このようなエラーを回避するため、エラー検出部２２０は、Ｉ２Ｃリセットカウンタ２３２を有している。
【０２０３】
Ｉ２Ｃリセットカウンタ２３２の動作を図６に示す。Ｉ２Ｃリセットカウンタ２３２は、自身のクロック信号の周期（図６では装置２システムクロックの４周期）毎に、１，２，３、・・・、とカウント動作を行う。そして、カウンタ値がｍに等しくなった場合、Ｉ２Ｃ部２０１に対してＩ２Ｃ部リセット信号を送出すると共に、エラー割り込み信号を割り込み制御部２２１に通知する。割り込み制御部２２１にエラー割り込み信号が入力されると、割り込み制御部１０９を介して、装置２にて発生したエラーを装置１に通知することができる。
【０２０４】
なお、Ｉ２Ｃリセットカウンタ２３２は上述のように、自身のカウンタ値が所定の値に達したとき自動的に、Ｉ２Ｃ部２０１をリセットし、かつ装置１に対し、データ転送時におけるエラーが発生したことを通知するものである。従って、信号送出部２３３に対し、エラーを検出した旨を通知する構成にする必要は無い。図７においても、Ｉ２Ｃリセットカウンタ２３２から出力される上記Ｉ２Ｃ部リセット信号及びエラー割り込み信号は、信号送出部２３３を介さず、直接Ｉ２Ｃ部２０１及び割り込み制御部２２１に入力されている。
【０２０５】
また、カウンタ値ｍは任意の値を設定しても構わないが、通常のＩ２Ｃバスによるデータ転送に係るスタートコンディションからストップコンディションまでの時間よりも長い時間で満了するような値を設定する必要がある。つまり、図６のようにストップコンディション検出信号が、Ｉ２Ｃリセットカウンタのカウンタ値（ｋ＋７）にて検出される場合、カウンタ値ｍは、（ｋ＋７）よりも大きい値であればどのような値であっても構わない。
【０２０６】
このようにして、ノイズ４０５のようなノイズによりストップコンディションが正しく検出できない場合であっても、Ｉ２Ｃ部２０１は、カウンタ値ｍによって指定された所定の時間が経過すると自動的にリセットにより初期化される。従って、ストップコンディション受信待ち状態のまま保持されるという事態が発生することはない。
【０２０７】
以上のような構成にすれば、エラーを検出する手段（ＳＤＡｉｎ状態遷移判定部２３０、ＳＣＬｉｎカウンタ確認部２３１、及びＩ２Ｃリセットカウンタ２３２）、レジスタ群２０２への誤った書き込みを防止する手段及びＩ２Ｃバスを自律的に復帰させる手段（信号送出部２３３）を、スレーブデバイスである装置２自身が有することになる。そのため、図３のデータ転送期間中に外来ノイズｎ２が混入したとしても、装置２が自律的に誤動作を防止することができる。
【０２０８】
これによって、装置１から装置２へのデータ転送中にエラーが発生した場合においても、スレーブデバイスに記憶された情報を読み出す動作が不要となるので、実質的なデータ転送レートが悪化することなく、データ転送動作を継続することができる。そして、スレーブデバイスにエラーが発生した場合において、自律的に当該スレーブデバイスを通信不能状態から復帰させることで、マスタデバイスに多大な負荷をかけずに済む。
【０２０９】
なお、本実施の形態２は、上述した実施の形態１と組み合わせても構わない。
【０２１０】
即ち、図５に示す電子機器３ｂに加え、Ｉ２Ｃスレーブデバイス制御部１０４及び伝送経路３０２を設け、Ｉ２Ｃスレーブデバイス制御部１０４を伝送経路３０２によって、Ｉ２Ｃ部２０１に接続する。そして、Ｉ２Ｃスレーブデバイス制御部１０４は、図４に示したように、Ｉ２Ｃイネーブル信号を、伝送経路３０２を介し、Ｉ２Ｃ部２０１に出力してもよい。
〔実施の形態３〕
上述した実施の形態１では、データ転送停止期間に発生するエラーの対処法について、実施の形態２では、データ転送期間に発生するエラーの対処法について述べてきた。
【０２１１】
しかしながら、これらの実施形態においては、例えば転送データにビット化けが生じた場合等、マスタデバイス（装置１）からスレーブデバイス（装置２）に転送されたデータそのものにエラーが発生した場合において、当該エラーを検出することができない可能性がある。そして、転送されたデータに発生するエラーが検出できないと、誤ったデータがメモリブロック（レジスタ群２０２）に書き込まれる可能性がある。
【０２１２】
このような問題に対処するため、本実施の形態３では、マスタデバイスからスレーブデバイスへ転送されたデータに発生するエラーを検出する構成について述べる。
【０２１３】
図９は、本発明に係る別のデータ通信誤動作防止装置を、Ｉ２Ｃバスに搭載する電子機器３ｃの構成を示すブロック図である。
【０２１４】
図９に示す電子機器３ｃは、図５に示す電子機器３ｂの構成に加え、装置２に要約計算／記憶部２２２（第２の要約値計算手段）を備える構成である。
【０２１５】
ここで、図１０に基づいて、本実施の形態３に係る要約計算／記憶部２２２についての詳細な説明を行う。
【０２１６】
図１０は、本実施の形態３に係る、要約計算／記憶部２２２の構成を示す図である。レジスタ読み出し部２２２ａ、要約計算部２２２ｂ、要約値記憶部２２２ｃ、要約計算制御レジスタ２２２ｄ、要約計算／記憶制御部２２２ｅで構成されている。
【０２１７】
レジスタ読み出し部２２２ａは、レジスタ群２０２に記憶されているデータを読み出す。レジスタ読み出し部２２２ａは、要約計算／記憶制御部２２２ｅからのトリガで動作を開始し、レジスタ群２０２からデータを読み出し、要約計算部２２２ｂに送っている。
【０２１８】
要約計算部２２２ｂは、レジスタ群２０２からレジスタ読み出し部２２２ａを介して受信した、装置１から転送されたデータの要約値を計算する。そして、要約値の計算結果を要約値記憶部２２２ｃ及び要約計算／記憶制御部２２２ｅに送る。要約計算部２２２ｂは、要約計算／記憶制御部２２２ｅからのトリガで動作を開始し、レジスタ読み出し部２２２ａからデータを読み出し、要約値を計算する。要約計算部２２２ｂの要約値の計算方法については後述する。
【０２１９】
要約値記憶部２２２ｃは、レジスタ群２０２のアドレス（Ｋ＋１）ｈ〜（Ｋ＋ｍ）ｈに設けられており、要約計算部２２２ｂの計算結果、即ち、装置１から装置２に転送され、レジスタ群２０２に保存されたデータの要約値を保存する。なお、要約値記憶部２２２ｃに記憶された、上記データの要約値は、Ｉ２Ｃ部２０１のレジスタ読み出し部２１６を介してＩ２Ｃ送信部２１３に送ることが可能な構成である。つまり、装置１が当該要約値を読み出すことが可能な構成となっている。
【０２２０】
要約計算制御レジスタ２２２ｄは、レジスタ群２０２のアドレスＫｈに設けられており、装置１からの制御信号が入力されると、要約計算／記憶制御部２２２ｅに要約計算指示信号を出力する。レジスタ読み出し部２２２ａ及び要約計算部２２２ｂは、要約計算／記憶制御部２２２ｅからのトリガで動作を開始すると上述したが、要約計算制御レジスタ２２２ｄは要約計算／記憶制御部２２２ｅの動作を開始させるためのトリガとなっている。
【０２２１】
要約計算／記憶制御部２２２ｅは、要約計算制御レジスタ２２２ｄからの要約計算指示信号を受信すると、レジスタ読み出し部２２２ａ及び要約計算部２２２ｂを起動させる。これによって、レジスタ群２０２に記憶されている、装置１から転送されたデータの要約値を計算することができる。なお、要約計算／記憶制御部２２２ｅは、要約計算終了割り込み信号を、割り込み制御部２２１に送出する。
【０２２２】
なお、図１０では、要約値記憶部２２２ｃと要約計算制御レジスタ２２２ｄとがレジスタ群２０２のそれぞれアドレス（Ｋ＋１）ｈ〜アドレス（Ｋ＋ｍ）ｈ、アドレスＫｈに設けられている。しかしながら、要約値記憶部２２２ｃ及び要約計算制御レジスタ２２２ｄは、レジスタ群２０２とは別のレジスタとして設けられる構成であってもよい。
【０２２３】
また、装置１のメモリ（第１の記憶手段）１０３には、装置２に転送したデータの期待値が記憶される。
【０２２４】
ここで、期待値の定義について説明する。
【０２２５】
期待値とは、電子機器毎に予め決定された、画面解像度・表示設定等の設定値の目安となる値のことを指す。
【０２２６】
即ち、一般的に、Ｉ２Ｃバスに接続される装置２においては、装置１から入力されたデータを、高い確度でレジスタ群２０２に書き込むことができ、その書き込まれたデータを基に、装置２は、所定の動作を繰り返し行うことができる。
【０２２７】
例えば、液晶表示回路である液晶モジュールには、上記液晶表示回路の表示部の画面解像度・表示設定などを設定するレジスタが設けられており、それらの設定をＩ２Ｃバスにて行っている。この液晶モジュールは、汎用性を高めるため、様々な解像度に対応することが可能であるような設計が施されているが、製品毎で設定される画面解像度・表示設定などは常に固定である。
【０２２８】
ここで、上記液晶表示回路の表示部を非動作状態とすると、画面解像度・表示設定の設定値は消去されてしまう。そのため、表示回路の表示部を動作状態とする毎に、上記設定値に関する情報を液晶モジュールに転送する必要がある。
【０２２９】
そこで、上記設定値の目安となる期待値を予め決定し、例えばメモリに格納しておく。そして、上記設定値に関する情報を液晶モジュールに転送する際、当該設定値と上記期待値とを比較し、それらの値が類似していれば、液晶モジュールに転送したデータに誤りがないと判断する。また、当該設定値と上記期待値とが大きく異なる値となれば、液晶モジュールに転送したデータにエラーが発生していると判断する。
【０２３０】
さらに、装置１のＣＰＵ１０１は、要約計算部（第１の要約値計算手段）１１０と、比較部（比較手段）１１１とを備える。要約計算部１１０は、装置２に転送したデータをメモリ１０３から読み出し、当該データの期待値から要約値を計算する。要約計算部１１０の要約値の計算方法については、要約計算部２２２ｂの要約値の計算方法と共に後述する。比較部１１１は、要約計算部２２２ｂの計算結果と要約計算部１１０の計算結果とを比較する。
【０２３１】
要約計算制御レジスタ２２２ｄは要約計算開始制御ビットを有しており、装置１の制御により要約計算／記憶部２２２を起動させることができる。具体的には、ＣＰＵ１０１からＳＤＡ５を介して装置２に送出される要約計算開始制御ビットイネーブル信号をＩ２Ｃ受信部２１５が受信すると、レジスタ書き込み部２１７を介して、要約計算制御レジスタ２２２ｄ、即ち、レジスタ群２０２のアドレスＫｈに当該信号に含まれるデータを書き込む。これによって、要約計算制御レジスタ２２２ｄの要約計算開始制御ビットをイネーブルにする。このようにして、要約計算／記憶制御部２２２ｅに、要約計算指示信号を送出し、要約計算／記憶部２２２を起動させることができる。
【０２３２】
このとき、要約計算／記憶制御部２２２ｅは、レジスタ読み出し部２２２ａを制御し、レジスタ群２０２のレジスタのうち、アドレス０ｈからアドレス（Ｋ−１）ｈまでのレジスタ値を読み出す。このとき読み出したレジスタ値のビット列をＸとする。
【０２３３】
要約計算部２２２ｂでは要約計算関数Ｈを用いて、レジスタ読み出し部２２２ａから入力されたビット列Ｘを固定長のビット列Ｙに変換する。
【０２３４】
ここで、装置１のＣＰＵ１０１の要約計算部１１０及び要約計算部２２２ｂにおける要約値の計算方法について述べる。
【０２３５】
要約計算部２２２ｂでは要約計算関数Ｈを用いて、記憶媒体から読み出したデータのレジスタ値のビット列Ｘを固定長のビット列Ｙに変換することで要約値の計算を行っている。このとき、要約計算関数Ｈは、異なるＸの値に対し同じＹを生成しない、もしくは同じＹを生成する確率が極めて低い関数であることが望ましい。
【０２３６】
さらにＹは後に、要約計算部１１０にて計算した、装置１が装置２に転送したデータの期待値の要約値と照合されるが、このとき、装置１がＹを読み出す時間を短縮するため、さらには装置２の規模を可能な限り縮小するため、Ｙの値はできるだけ短いことが望ましい。
【０２３７】
そこで、本実施の形態３及び後述する実施の形態４に係るデータ通信誤動作防止装置をスレーブデバイスに採用する場合、当該スレーブデバイスが、ＥＥＰＲＯＭ等、メモリブロック（即ち、レジスタ群２０２）の規模が比較的大きな機器である場合には、要約計算関数ＨとしてＭＤ５（Message digest algorithm 5）等のハッシュ関数を用いる。そして逆に、本実施の形態３及び後述する実施の形態４に係るデータ通信誤動作防止装置を採用するスレーブデバイスが、Ｄ／Ａ変換回路等、メモリブロックが比較的小規模にて実現できる機器である場合には、要約計算関数Ｈとしてチェックサム関数などを用いるとよい。このようにして、要約計算関数Ｈとしては、レジスタ群２０２の規模に応じて、当該規模に見合った要約計算関数Ｈを用いることができる。
【０２３８】
そして、上記要約計算関数Ｈを、装置１から連続的に送信される、装置１から転送されるデータの最後に付加し、当該データの要約値を計算している。
【０２３９】
また、要約計算部１１０における要約値の計算方法についても同様の要約計算関数Ｈを用いて要約値の計算を行えばよい。
【０２４０】
要約計算部２２２ｂにて計算された要約値Ｙは、レジスタ群２０２のアドレス（Ｋ＋１）ｈからアドレス（Ｋ＋ｍ）ｈにマッピングされている要約値記憶部２２２ｃに保存される。また、要約計算／記憶制御部２２２ｅは、要約計算の終了と同時に、要約計算終了割り込み信号を割り込み制御部２２１に送出する。割り込み制御部２２１に送出された要約計算終了割り込み信号は、割り込み制御部１０９を介し、ＣＰＵ１０１に送出されることで、装置１に対し、要約計算が終了したことを通知する。
【０２４１】
要約計算終了割り込み信号を受信したＣＰＵ１０１は、メモリ１０３に予め保存しておいた、装置２に転送したデータの期待値を読み出し、当該期待値から要約値を計算する。
【０２４２】
ここでＣＰＵ１０１は、これまで装置２に転送したデータ即ち、レジスタ群２０２の期待値及び、装置２のレジスタ群２０２の初期値をメモリ１０３に保存する。このようすれば、要約計算関数Ｈをソフトウエアで実現し、レジスタ群２０２の要約値を容易に導出することが可能である。
【０２４３】
なお、要約計算関数Ｈのソフトウエアでの実現、即ち、要約値計算のアルゴリズムは、要約計算部１１０と要約計算部２２２ｂとで同一のものが使用されているのが望ましい。
【０２４４】
さらには、ＣＰＵ１０１が要約計算制御レジスタ２２２ｄに対し要約計算開始制御ビットイネーブル信号を送出する際に、要約値計算のアルゴリズムをレジスタ群２０２に送信する。そして、レジスタ群２０２に保持された当該アルゴリズムを、レジスタ読み出し部２２２ａを介し、要約計算部２２２ｂに送ることで、要約値の計算が行われる構成であるのが望ましい。データ送信側である装置１と、データ受信側である装置２とで、要約値計算のアルゴリズムを共有することによって、装置１から装置２に転送されたデータに発生するエラーを、より確実に、かつ高精度に検出することができる。
【０２４５】
次にＣＰＵ１０１は、要約計算部２２２ｂで計算されたレジスタ群２０２の要約値を、要約値記憶部２２２ｃから、レジスタ読み出し部２１６、Ｉ２Ｃ送信部２１３、ノイズ除去／同期化部２１２、双方向バッファ２１１を介し、Ｉ２Ｃバス伝送路３０１から読み出す。そして、比較部１１１にて、メモリ１０３に保存される期待値から計算した要約値と照合する。
【０２４６】
仮にこのときＩ２Ｃ部２０１に誤動作が発生していたとしても、図９に示すようにエラー検出部２２０や、上述した実施の形態１のＩ２Ｃスレーブデバイス制御部１０４及び伝送経路３０２を組み合わせて設けることによって、Ｉ２Ｃ部２０１は初期化される。従って、ＣＰＵ１０１はエラーが発生したＩ２Ｃバス伝送路３０１から問題なくレジスタ群２０２の要約値を読み出すことができる。
【０２４７】
比較部１１１にて照合を行った結果、要約計算部２２２ｂで計算されたレジスタ群２０２の要約値とメモリ１０３に保存される期待値から計算した要約値とが一致する場合、レジスタ群２０２は、装置１から転送されたデータを正しく保持していると言える。従って、エラー検出部２２０にてエラーが検出された場合においても、以後の動作に支障をきたすことはない。
【０２４８】
比較部１１１にて照合を行った結果、もしも、要約計算部２２２ｂで計算されたレジスタ群２０２の要約値とメモリ１０３に保存される期待値から計算した要約値とが異なる場合、レジスタ群２０２は、装置１から転送されたデータを正しく保持できていないと言える。したがってＣＰＵ１０１は装置２に対して、装置２全体のシステムリセットを発行し、装置２を初期化する等の異常処理を行い、装置２を復帰させる。
【０２４９】
以上の方法により、実施の形態１や実施の形態２では検出できない、転送データのビット化けが生じたときに誤ってレジスタ群２０２に書き込みが発生した場合であっても、要約計算／記憶部２２２を設けることで、誤った書き込みが発生したことを検出することができる。
【０２５０】
これによって、装置１から装置２へのデータ転送中に、当該データに発生したエラーを検出するための処理のうち、マスタデバイスである装置１における処理は、装置２に送信したデータの期待値から当該データの要約値を求める処理、及び装置２から受信したデータの要約値と、自身が保持していたデータの要約値とを照合する処理のみとなる。従って、スレーブデバイスにエラーが発生した場合において、自律的に当該スレーブデバイスを通信不能状態から復帰させることで、マスタデバイスに多大な負荷をかけずに済む。そして、実質的なデータ転送レートが悪化することなく、データ転送動作を継続することができる。
【０２５１】
なお、本実施の形態３では、比較部１１１を装置１のＣＰＵ１０１に設ける構成である。しかしながら、比較部１１１が設けられる場所はこれに限らず、例えば、装置２に設けられてもよいし、装置１及び装置２とは異なる外部機器をＩ２Ｃバスに接続し、当該外部機器にて比較を行う構成であってもよい。
【０２５２】
なお、本実施の形態３は、上述した実施の形態１や実施の形態２と組み合わせても構わない。
【０２５３】
即ち、図９に示す電子機器３ｃに加え、Ｉ２Ｃスレーブデバイス制御部１０４及び伝送経路３０２を設け、Ｉ２Ｃスレーブデバイス制御部１０４を伝送経路３０２によって、Ｉ２Ｃ部２０１に接続する。そして、Ｉ２Ｃスレーブデバイス制御部１０４は、図４に示したように、Ｉ２Ｃイネーブル信号を、伝送経路３０２を介し、Ｉ２Ｃ部２０１に出力してもよい。
【０２５４】
また、図９に示す電子機器３ｂのように、エラー検出部２２０を設け、データ転送時におけるエラーを検出してもよい。
【０２５５】
逆に本実施の形態３を説明する図９において、データ転送時におけるエラーを検出する必要がない場合、当然ながら、エラー検出部２２０を設ける必要はない。
〔実施の形態４〕
ここでは、図９に示す構成のデータ通信誤動作防止装置における、要約計算／記憶部の別の実施例について述べる。
【０２５６】
図１１は、本実施の形態４に係る、要約計算／記憶部２２２の構成を示す図である。本実施の形態４に係る要約計算／記憶部２２２は、上述した実施の形態３と同様に、レジスタ読み出し部２２２ａ、要約計算部２２２ｂ、要約値記憶部（要約値記憶手段）２２２ｃ、要約計算制御レジスタ２２２ｄ、要約計算／記憶制御部２２２ｅで構成されている。
【０２５７】
ここで、レジスタ読み出し部２２２ａは、レジスタ書き込み部２１７から転送された、装置１から転送されたデータ及び当該データが書き込まれるレジスタ群２０２のレジスタアドレスを読み出す。
【０２５８】
また、要約計算部２２２ｂは、装置１から転送されたデータ及び当該データが書き込まれたレジスタ群２０２のレジスタアドレスの情報を含むビット列をＸとすると、要約計算関数Ｈに、Ｘ＝Ｈ（Ｘ）となるような関数が選択される。これによって、要約計算部２２２ｂはビット列Ｘの要約値として、ビット列Ｘを要約値記憶部２２２ｃに転送する。
【０２５９】
また、要約値記憶部２２２ｃは要約計算部２２２ｂから受信したビット列Ｘを記憶する。このとき要約値記憶部２２２ｃには、ビット列Ｘに含まれる、装置１から転送されたデータと当該データが書き込まれるレジスタ群２０２のレジスタアドレスとが、それぞれ別のアドレスに書き込まれる。さらに、要約値記憶部２２２ｃに保存されたデータは、割り込み制御部２２１、割り込み制御部１０９を介して、任意のタイミングで装置１から読み出すことができる。
【０２６０】
また、要約計算／記憶部２２２が起動している間、要約計算部２２２ｂが送出するビット列Ｘは、要約値記憶部２２２ｃに入力されると共に、要約計算／記憶制御部２２２ｅに入力される。要約計算／記憶制御部２２２ｅは要約計算部２２２ｂに転送されたデータの数を調べる。そして、当該転送データ数が要約値記憶部２２２ｃの容量（図１１の場合は（ｍ−２））を超えた場合には、割り込み制御部２２１に対してオーバーフロー割り込み信号を送出し、装置１に対してオーバーフローを通知する。
【０２６１】
図１１に示す本実施の形態４に係る要約計算／記憶部２２２は、要約値の計算方法が下記のように異なる。
【０２６２】
まず、ＣＰＵ１０１から送出される要約計算開始制御ビットイネーブル信号によって、要約計算制御レジスタ２２２ｄの要約計算開始制御ビットをイネーブルにする。これによって、要約計算／記憶制御部２２２ｅに、要約計算指示信号を送出し、レジスタ読み出し部２２２ａを起動させる。動作を開始したレジスタ読み出し部２２２ａは、装置１から転送されたデータがレジスタ群２０２に書き込まれる度に、当該データ及び当該データが書き込まれるレジスタ群２０２のレジスタアドレス（ビット列Ｘ）を読み出し、要約計算部２２２ｂに転送する。
【０２６３】
要約計算部２２２ｂは、レジスタ読み出し部２２２ａから受信したビット列Ｘの要約値を計算する。ここで上述のように、要約計算部２２２ｂの要約計算関数Ｈは、Ｘ＝Ｈ（Ｘ）であるので、要約計算部２２２ｂは要約値としてビット列Ｘを要約値記憶部２２２ｃに送出する。
【０２６４】
要約計算部２２２ｂは例えば、レジスタ群２０２のアドレス（Ｋ＋１）ｈにレジスタアドレスを、アドレス（Ｋ＋２）ｈにライトデータを、というように、要約値記憶部２２２ｃのレジスタアドレスをインクリメントしながら、ビット列Ｘに含まれるレジスタアドレスとライトデータとをそれぞれ、要約値記憶部２２２ｃの異なるアドレスに書き込む。
【０２６５】
これによって、要約値記憶部２２２ｃには、ビット列Ｘが書き込まれる。即ち、装置１から転送されたデータ及び当該データが書き込まれたレジスタ群２０２のレジスタアドレスの情報がそれぞれ要約値記憶部２２２ｃの異なるアドレスに書き込まれる。つまり、要約計算制御レジスタ２２２ｄの要約計算開始制御ビットがイネーブルにされた以後に、装置１がレジスタ群２０２にアクセスした履歴を保持する。
【０２６６】
その後、要約計算制御レジスタ２２２ｄの要約計算開始制御ビットがイネーブルにされた以後に、装置１がレジスタ群２０２にアクセスした履歴を、メモリ１０３に保存する。そして、上述した実施の形態３と同様に、装置１が要約値記憶部２２２ｃに保存されたデータを読み出し、メモリ１０３に保存に保存された、装置１がレジスタ群２０２にアクセスした履歴に含まれる、装置１から転送されたデータの要約値と比較する。これによって、要約計算開始制御ビットをイネーブルしてから後に、装置１から装置２に転送されたデータが、装置２に正しく書き込まれたか否かを確認することが可能となる。
【０２６７】
これによって、装置１から装置２へのデータ転送中に、当該データに発生したエラーを検出するための処理のうち、マスタデバイスである装置１における処理は、装置２に送信したデータの期待値から当該データの要約値を求める処理、及び装置２から受信したデータの要約値と、自身が保持していたデータの要約値とを照合する処理のみとなる。従って、スレーブデバイスにエラーが発生した場合において、自律的に当該スレーブデバイスを通信不能状態から復帰させることで、マスタデバイスに多大な負荷をかけずに済む。そして、実質的なデータ転送レートが悪化することなく、データ転送動作を継続することができる。
【０２６８】
さらに、所定の時間以降に装置１から装置２に書き込まれたデータを逐次的に比較することが可能となる。
【０２６９】
なお、本実施の形態４は、上述した実施の形態１や実施の形態２と組み合わせても構わない。
【０２７０】
即ち、図９に示す電子機器３ｃに加え、Ｉ２Ｃスレーブデバイス制御部１０４及び伝送経路３０２を設け、Ｉ２Ｃスレーブデバイス制御部１０４を伝送経路３０２によって、Ｉ２Ｃ部２０１に接続する。そして、Ｉ２Ｃスレーブデバイス制御部１０４は、図４に示したように、Ｉ２Ｃイネーブル信号を、伝送経路３０２を介し、Ｉ２Ｃ部２０１に出力してもよい。
【０２７１】
また、図９に示す電子機器３ｂのように、エラー検出部２２０を設け、データ転送時におけるエラーを検出してもよい。
【０２７２】
逆に本実施の形態４を説明する図９において、データ転送時におけるエラーを検出する必要がない場合、当然ながら、エラー検出部２２０を設ける必要はない。
【０２７３】
また、本実施の形態４に係るデータ通信誤動作防止装置は、装置２がレジスタ群２０２の初期設定以降において、装置１のアクセスをほとんど必要としない装置の場合に好適である。
【０２７４】
この「装置２がレジスタ群２０２の初期設定以降において、装置１のアクセスをほとんど必要としない装置」としては例えば、液晶モジュールが挙げられる。装置２が液晶モジュールの場合、初期設定以降において、装置１からは、液晶モジュールに使用される液晶のサイズやデータフォーマット等、使用するユーザが指定する条件で確実に動作することができるように、当該液晶モジュールを設定するための制御データを送出するだけでよい。そのため、表示中においては上記制御データは、所定の容量の少ないデータ転送の固定データのみを装置２に送信する。そして、初期のデータ送信以降は、常に同一のデータを送出する。結果、上記初期のデータ送信におけるデータを格納したデータがあれば、次回以降のデータ転送における転送データ数は大幅に減少する。
【０２７５】
また、その他にも、カメラモジュール等の機器であり、カメラのサイズ設定などのパラメータを一度設定した後において、ＯＮ／ＯＦＦビットを送出することでデータ送信開始／停止の制御を行うことができる機器が挙げられる。装置２がカメラモジュールの場合、初期設定時においては、カメラサイズの設定を始めとした複数のパラメータの設定に必要なデータを装置２に送出する必要がある。但し、初期設定以降においては、データ送信開始／停止の制御を行うためのＯＮ／ＯＦＦビットを送出するだけで構わない。
【０２７６】
このような機器の場合、装置２の要約値記憶部２２２ｃの容量を小さくできるのに加えて、装置１から書き込まれたデータを１対１で比較できる。そのため、回路規模の削減に加え、高精度かつ逐次的に、装置１から転送されたデータに発生したエラーを検出することができる。
【０２７７】
従って、装置１から装置２へのデータ転送中に、当該データにエラーが発生した場合においても、スレーブデバイスに記憶された情報を読み出す動作が不要となるので、実質的なデータ転送レートが悪化することなく、データ転送動作を継続することができる。
【０２７８】
また、本発明に係るデータ通信誤動作防止装置は、信号線を介して互いの間でデータ通信を行う第１及び第２の装置を有し、上記第１の装置は、上記第２の装置に転送したデータを記憶する第１の記憶手段と、上記第１の記憶手段に保持したデータの要約値を計算する第１の要約値計算手段とを備え、上記第２の装置は、受信したデータが書き込まれることで、当該データを記憶する第２の記憶手段と、上記記憶手段に記憶されたデータの要約値を計算する第２の要約値計算手段とを備え、上記第１の装置は、さらに、第２の要約値計算手段により計算され、上記第１の装置に転送された要約値と、上記第２の要約値計算手段により計算された要約値とを比較する比較手段を備えるデータ通信誤動作防止装置であって、第１の要約値計算手段による第１の記憶手段に保持したデータの要約値の計算及び第２の要約値計算手段による第２の記憶手段に記憶されるデータの要約値の計算を、ソフトウエアにより実施してもよい。
【０２７９】
上記の構成によれば、要約計算関数はソフトウエアで実現される。そして、第２の記憶手段の初期値及び当該第２の記憶手段固有の値を第１の記憶装置に保存しておけば、第２の記憶手段に記憶されるデータの要約値や第１の記憶手段に保持したデータの要約値の導出を、容易に行うことができる。
【０２８０】
従って、第１の要約値計算手段及び第２の要約値計算手段における要約値の導出を簡単化することができるという効果を奏する。
【０２８１】
また、本発明に係るデータ通信誤動作防止装置は、第１の記憶手段は、上記ソフトウエアのアルゴリズムを保持し、第１の要約値計算手段が第１の記憶手段に保持したデータの要約値の計算を開始する際、第１の装置は、上記第１の記憶手段に保持したアルゴリズムを上記第１の要約計算手段に送信してもよい。
【０２８２】
上記の構成によれば、第１の記憶手段は、要約値計算のためのソフトウエアのアルゴリズムを保持している。そして、第２の要約値計算手段が第２の記憶手段に保持したデータの要約値の計算を開始する際、装置機器は第１の記憶手段に保持したアルゴリズムを、第２の要約計算手段に送信する。第１の要約値計算手段及び第２の要約値計算手段は、それぞれ同一のソフトウエアにより、要約値の計算を行う。そのため、同一の計算方法で導出した要約値同士を比較することができる。
【０２８３】
なお、上述した本実施の形態１〜４で説明した装置１及び装置２の各ブロックや各処理ステップは、ハードウエアロジックによって構成してもよいし、次のようにＣＰＵを用いてソフトウエアによって実現してもよい。
【０２８４】
即ち、装置１及び装置２は、各機能を実現する制御プログラムの命令を実行するＣＰＵ、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラム及び各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである装置１及び装置２の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記装置１及び上記装置２に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０２８５】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【０２８６】
また、装置１及び装置２を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【０２８７】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０２８８】
本発明のデータ通信誤動作防止装置は、Ｉ２Ｃバスにより接続された電子機器に発生するエラーを低減するデータ通信誤動作防止装置として好適に使用することができるため、液晶表示回路、ＣＣＤ回路を有する撮像回路、Ｄ／Ａ変換回路、ＥＥＰＲＯＭなどに広く利用できるものである。
【図面の簡単な説明】
【０２８９】
【図１】本発明の実施の形態を示すものであり、本発明に係るデータ通信誤動作防止装置を、Ｉ２Ｃバスに搭載する電子機器の構成を示すブロック図である。
【図２】本発明に係るデータ通信誤動作防止装置をＩ２Ｃバスに採用した場合に見られる、伝送プロトコルを示す図である。
【図３】Ｉ２Ｃバス動作時のＳＣＬ及びＳＤＡのデータ転送の様子を表す図である。
【図４】マスタデバイスに設けられるＣＰＵによるＩ２Ｃイネーブル信号の制御方法を示した図である。
【図５】本発明の実施の形態を示すものであり、本発明に係るデータ通信誤動作防止装置を、Ｉ２Ｃバスに搭載する電子機器の構成を示すブロック図である。
【図６】スレーブデバイス内部を伝達する信号のタイミングチャートであり、図５で表されたスレーブデバイスに入力される信号が、スレーブデバイス内部に伝播する様子を表す図である。
【図７】本発明の実施の形態に係る、エラー検出部の構成を示すブロック図である。
【図８】７ビットのスレーブアドレス、８ビットのアドレスデータの後に、８ビットのライトデータｎ個を連続してマスタデバイスからスレーブデバイスに書き込む場合のタイミングチャートである。
【図９】本発明の実施の形態を示すものであり、本発明に係るデータ通信誤動作防止装置を、Ｉ２Ｃバスに搭載する電子機器の構成を示すブロック図である。
【図１０】本発明の実施の形態に係る、要約計算／記憶部の構成を示すブロック図である。
【図１１】本発明の実施の形態に係る、要約計算／記憶部の別の構成を示すブロック図である。
【図１２】マスタデバイスとスレーブデバイスとをＩ２Ｃバスで接続した一般的な電子機器の概略構成を示す図である。
【図１３】Ｉ２Ｃバスを用いてマスタデバイスからスレーブデバイスにデータを書き込む際のタイミングチャートである。
【符号の説明】
【０２９０】
１  装置（第１の装置）
２  装置（第２の装置）
３ａ、３ｂ、３ｃ
電子機器
４  ＳＣＬ（信号線）
５  ＳＤＡ（信号線）
１０１  ＣＰＵ
１０３  メモリ（第１の記憶手段）
１０４  Ｉ２Ｃスレーブデバイス制御部（切替手段）
１０５  スタートコンディション発行部（通信開始手段）
１０６  ストップコンディション発行部（通信停止手段）
１０７  スタートコンディション検出部
１０８  ストップコンディション検出部
１０９、２２１
割り込み制御部（エラー検出通知手段）
１１０  要約計算部（第１の要約値計算手段）
１１１  比較部（比較手段）
２０１  Ｉ２Ｃ部（データ通信手段）
２０２  レジスタ群（記憶手段・第１の記憶手段）
２２０  エラー検出部（エラー検出通知手段）
２２２  要約計算／記憶部（第２の要約値計算手段）
２２２ａ  レジスタ読み出し部
２２２ｂ  要約計算部
２２２ｃ  要約値記憶部（要約値記憶手段）
２２２ｄ  要約計算制御レジスタ
２２２ｅ  要約計算／記憶制御部
２３０  ＳＤＡｉｎ状態遷移判定部
２３１  ＳＣＬｉｎカウンタ確認部
２３２  Ｉ２Ｃリセットカウンタ（データ通信手段リセットカウンタ）
２３３  信号送出部
【図１】
2008197752.tif 000003
【図２】
2008197752.tif 000004
【図３】
2008197752.tif 000005
【図４】
2008197752.tif 000006
【図５】
2008197752.tif 000007
【図６】
2008197752.tif 000008
【図７】
2008197752.tif 000009
【図８】
2008197752.tif 000010
【図９】
2008197752.tif 000011
【図１０】
2008197752.tif 000012
【図１１】
2008197752.tif 000013
【図１２】
2008197752.tif 000014
【図１３】
2008197752.tif 000015