(57)【要約】【課題】  データ信号と制御信号とを個別の信号線で伝送し、ハードウエアによる伝送エラー検出機能を備えていないシリアル通信方式において、ハードウエアによる伝送エラー検出を実現することによって通信の信頼性を向上させる。【解決手段】  データ信号と制御信号とを個別の信号線で伝送するシリアル通信方式におけるエラー検出回路であって、データ信号と制御信号とに基づいてデータ信号のパリティチェックを行うパリティチェック回路と、データ信号及び制御信号のパルス数を計数する計数回路とを具備する。【選択図】      図１
2005354158.tif 000002
【特許請求の範囲】
【請求項１】
データ信号と制御信号とを個別の信号線で伝送するシリアル通信方式におけるエラー検出回路であって、
前記データ信号と制御信号とに基づいてデータ信号のパリティチェックを行うパリティチェック回路と、
前記データ信号及び制御信号のパルス数を計数する計数回路と
を具備することを特徴とするエラー検出装置。
【請求項２】
計数回路は、
データ信号と制御信号との排他的論理和を取るＥＸ−ＯＲゲートと、
データ信号の開始を検出する開始検出回路と、
データ信号の終了を検出する終了検出回路と、
前記ＥＸ−ＯＲゲート、開始検出回路及び終了検出回路の各出力信号を入力とし、データ信号の開始から終了までの期間におけるＥＸ−ＯＲゲートの出力信号のパルス数を計数するカウンタと
から成ることを特徴とする請求項１記載のエラー検出装置。
【請求項３】
シリアル伝送方式はＩ２Ｃバスであることを特徴とする請求項１または２記載のエラー検出回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エラー検出回路に関する。
【背景技術】
【０００２】
シリアル信号の通信方式として、フィリップス社が提唱したＩ２Ｃ（Inter Integrated Circuit、正確にはＩ２Ｃ：アイ・スクウェア・シー）バスがある。このＩ２Ｃバスは、２本の信号線、つまりシリアルデータ信号ＳＤＡ（Serial Data）を伝送する信号線と制御信号としてのシリアルクロック信号ＳＣＬ（Serial Lock）を伝送する信号線とによって情報伝送を行うものである。データ信号ＳＤＡは、スタートパルスとストップパルスとの間に各種データ値を示すパルス信号が挿入されたフレームとして構成されており、シリアルクロック信号ＳＣＬは、上記スタートパルスに同期して当該スタートパルスとストップパルスとの間に挿入された所定周期のクロックパルスである。
なお、このＩ２Ｃバスの詳細については、フィリップス社の下記アドレスのホームページで閲覧することができるI2C_BUS_SPECIFICATION_3.pdfに開示されている。
【非特許文献１】http://semicon.philips.co.jp/buses/i2c/index.html
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上記Ｉ２Ｃバスは、ハードウエアによる伝送エラー検出機能を備えていない。このため、例えば信号線にノイズ等が飛び込むことによって発生し得る伝送エラーをハードウエア的に検出することができず、よって通信の信頼性が十分とは言えない。
【０００４】
本発明は、上述した事情に鑑みてなされたものであり、例えばＩ２Ｃバスのようにデータ信号と制御信号とを個別の信号線で伝送し、かつ、ハードウエアによる伝送エラー検出機能を備えていないシリアル通信方式において、ハードウエアによる伝送エラー検出を実現することによって通信の信頼性を向上させることを目的とする
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明では、データ信号と制御信号とを個別の信号線で伝送するシリアル通信方式におけるエラー検出回路において、データ信号と制御信号とに基づいてデータ信号のパリティチェックを行うパリティチェック回路と、データ信号及び制御信号のパルス数を計数する計数回路とを具備する、という解決手段を採用する。
【発明の効果】
【０００６】
このような本発明によれば、データ信号と制御信号とを個別の信号線で伝送するシリアル伝送方式における伝送エラーをハードウエア的に実現することができる。
【発明を実施するための最良の形態】
【０００７】
以下、図面を参照して、本発明の一実施形態について説明する。
図１は、本実施形態に係るＩ２Ｃバス用エラー検出回路の回路図である。本Ｉ２Ｃバス用エラー検出回路は、図示するようにＥＸ−ＯＲゲート１，４，６、Ｊ−Ｋフリップフロップ２，３，５、カウンタ７，８から構成されており、Ｉ２Ｃバスを制御するマスター側の制御装置（例えばＣＰＵ）によって制御されると供に当該制御装置にエラー検出結果を出力する。
【０００８】
本Ｉ２Ｃバス用エラー検出回路を構成する上記各構成要素のうち、ＥＸ−ＯＲゲート１及びＪ−Ｋフリップフロップ２は本実施形態におけるパリティチェック回路を構成し、ＥＸ−ＯＲゲート４，６、Ｊ−Ｋフリップフロップ３，５及びカウンタ７，８は、本実施形態における計数回路を構成し、Ｊ−Ｋフリップフロップ３は本実施形態における開始検出回路を構成し、ＥＸ−ＯＲゲート４及びＪ−Ｋフリップフロップ５は本実施形態における終了検出回路を構成している。なお、Ｊ−Ｋフリップフロップ２，３，５は、例えばＴＴＬロジックＩＣである７４ＬＳ１１２であり、カウンタ７，８は同じくＴＴＬロジックＩＣである７４ＬＳ１６１である。
【０００９】
ＥＸ−ＯＲゲート１は、両入力端にシリアルクロック信号ＳＣＬが入力される一方、出力端がＪ−Ｋフリップフロップ２のクロック入力端に接続されている。Ｊ−Ｋフリップフロップ２は、Ｊ入力端及びＫ入力端にシリアルデータ信号ＳＤＡが入力される一方、クリア入力端に上記制御装置からリセット信号が入力され、プリセット入力端は電源に接続されている。また、このＪ−Ｋフリップフロップ２において、Ｑ出力端はパリティ信号ODD parityを制御装置に出力する。
【００１０】
Ｊ−Ｋフリップフロップ３は、Ｊ入力端にシリアルクロック信号ＳＣＬが、Ｋ入力端に自らの反転出力端の出力信号が、クロック入力端にはシリアルデータ信号ＳＤＡがそれぞれ入力される一方、クリア入力端に上記リセット信号が入力され、プリセット入力端は電源に接続されている。また、このＪ−Ｋフリップフロップ３において、Ｑ出力端の信号ＦＳＴＡＲＴをカウンタ７のイネーブルＰ入力端に出力する。ＥＸ−ＯＲゲート４は、両入力端にシリアルデータ信号ＳＤＡが入力される一方、出力信号をＪ−Ｋフリップフロップ５のクロック入力端に出力する。
【００１１】
Ｊ−Ｋフリップフロップ５は、Ｊ入力端にシリアルクロック信号ＳＣＬが、Ｋ入力端に自らの反転出力端の出力信号がそれぞれ入力される一方、クリア入力端に上記リセット信号が入力され、プリセット入力端は電源に接続されている。また、このＪ−Ｋフリップフロップ５は、反転出力端の信号ＦＳＴＯＰを２つのカウンタ７，８の各イネーブルＴ入力端に出力する。ＥＸ−ＯＲゲート６は、一方の入力端にシリアルクロック信号ＳＣＬが入力され、他方の入力端にはシリアルデータ信号ＳＤＡが入力される。このＥＸ−ＯＲゲート６は、シリアルクロック信号ＳＣＬとシリアルデータ信号ＳＤＡとの排他的論理和を取り、その論理結果である信号SDA exor SCLを２つのカウンタ７，８の各クロック入力端に出力する。
【００１２】
カウンタ７は、同期式４ビット・バイナリカウンタであり、クリア入力端に上記リセット信号が入力され、ロード入力端が電源に接続される一方、４つの出力端ＱＡ〜ＱＤが上記制御装置にカウント値を出力する。また、このカウンタ７のキャリー出力端は、カウンタ８のイネーブルＰ入力端に接続されている。カウンタ８は、上記カウンタ７と同じく同期式４ビット・バイナリカウンタであり、クリア入力端に上記リセット信号が入力され、ロード入力端が電源に接続される一方、４つの出力端ＱＡ〜ＱＤが上記制御装置にカウント値を出力する。
【００１３】
すなわち、これら２つのカウンタ７、８は全体として８ビット・バイナリカウンタを構成しており、このうちカウンタ７はカウント値の下位４ビットをカウントして出力し、一方、カウンタ８はカウント値の上位４ビットをカウントして出力する。
【００１４】
次に、このように構成されたＩ２Ｃバス用エラー検出回路の動作について、図２に示すタイミングチャートをも参照して詳しく説明する。
【００１５】
最初に、シリアルデータ信号ＳＤＡとシリアルクロック信号ＳＣＬとについて説明する。シリアルデータ信号ＳＤＡは、ＳＴＡＲＴコード、Ａｄｒｅｓｓコード、ＲＥＡＤコード、ＡＣＫコード、Ｄａｔａコード、ＡＣＫコード及びＳＴＯＰコードから成るフレームとして構成されている。
【００１６】
シリアルクロック信号ＳＣＬは、上記ＳＴＡＲＴコードに同期して当該ＳＴＡＲＴコードとＳＴＯＰコードとの間に介挿される所定周期のクロックパルスである。このクロックパルスのうち、ＳＴＡＲＴコード直後の７ビットは上記Ａｄｒｅｓｓコードに、次の１ビットはＲＥＡＤコードに、さらに次の１ビットはＡＣＫコードに、さらに次の８ビットはＤａｔａコードに、さらに次の１ビットはＡＣＫコードに、そして最後の１ビットはＳＴＯＰコードにそれぞれ対応するものであり、各々の立上エッジは上記各コードの状態（レベル）を判定するタイミングを与える。
【００１７】
さて、本Ｉ２Ｃバス用エラー検出回路は、このような制御信号とデータ信号及び制御装置から供給されるリセット信号を入力信号として動作する。Ｊ−Ｋフリップフロップ２は、Ｊ入力端及びＫ入力端にシリアルデータ信号ＳＤＡが入力され、かつ、シリアルクロック信号ＳＣＬ同士の排他的論理和の結果がクロックとしてＥＸ−ＯＲゲート１から入力されることによって、図２に示すパリティ信号ODD parityを出力する。
【００１８】
すなわち、このパリティ信号ODD parityは、シリアルデータ信号ＳＤＡ（フレーム）のＯＤＤパリティのチェックつまりシリアルデータ信号ＳＤＡのパルス数が正規の偶数になっているか否かをシリアルクロック信号ＳＣＬに同期して検出した信号である。図２では、ＳＴＯＰコードの伝送が終了した状態におけるパリティ信号ODD parityの状態はＬレベルであり、シリアルデータ信号ＳＤＡが正規フレームであることを示している。
【００１９】
一方、ＥＸ−ＯＲゲート６は、シリアルクロック信号ＳＣＬとシリアルデータ信号ＳＤＡとの排他的論理和の結果として信号SDA exor SCLを出力する。この信号SDA exor SCLは、図示するようにシリアルクロック信号ＳＣＬとシリアルデータ信号ＳＤＡとを乗算したパルス信号となる。
【００２０】
また、Ｊ−Ｋフリップフロップ３は、Ｊ入力端にシリアルクロック信号ＳＣＬが入力され、かつ、ＥＸ−ＯＲゲート１の出力信号をクロックとして動作するものであり、シリアルデータ信号ＳＤＡに含まれるＳＴＡＲＴコードを検出する。すなわち、このＪ−Ｋフリップフロップ３のＱ出力端から出力される信号ＦＳＴＡＲＴは、図示するようにＳＴＡＲＴコードに同期してＬレベルからＨレベルに遷移する信号となる。
【００２１】
これに対して、Ｊ−Ｋフリップフロップ５は、Ｊ入力端にシリアルクロック信号ＳＣＬが入力され、かつ、ＥＸ−ＯＲゲート４の出力信号をクロックとして動作するものであり、シリアルデータ信号ＳＤＡに含まれるＳＴＯＰコードを検出する。すなわち、このＪ−Ｋフリップフロップ５の反転出力端から出力される信号ＦＳＴＯＰは、図示するようにＳＴＯＰコードに同期してＨレベルからＬレベルに遷移する信号となる。
【００２２】
カウンタ７は、上記信号ＦＳＴＡＲＴ、信号ＦＳＴＯＰ及び信号SDA exor SCLに基づいてカウント動作するものであり、信号ＦＳＴＡＲＴと信号ＦＳＴＯＰとが何れもＨレベルにある期間における信号SDA exor SCLのパルス数をカウントし、カウント値の下位４ビットを制御装置に出力する一方、カウント値がオーバーフローするとキャリー信号をカウンタ８に出力する。このキャリー信号は、カウント値がオーバーフローすると、ＬレベルからＨレベルに遷移する信号である。
【００２３】
カウンタ８は、上記キャリー信号、信号ＦＳＴＯＰ及び信号SDA exor SCLに基づいてカウント動作するものであり、キャリー信号と信号ＦＳＴＯＰとが何れもＨレベルにある期間、つまりカウンタ７のカウント値がオーバーフローしてから信号ＦＳＴＯＰがＬレベルに遷移するまでの期間における信号SDA exor SCLのパルス数をカウントし、カウント値の上位４ビットを制御装置に出力する。
【００２４】
ここで、上記カウンタ７，８から出力される８ビットカウント値は、信号SDA exor SCLのパルス数を示すものなので、シリアルクロック信号ＳＣＬ及びシリアルデータ信号ＳＤＡにノイズ等が飛び込んでいない場合つまり正常な場合には所定値となる。しかし、シリアルクロック信号ＳＣＬあるいはシリアルデータ信号ＳＤＡにノイズが飛び込んだ場合には、当該ノイズに起因してシリアルクロック信号ＳＣＬあるいはシリアルデータ信号ＳＤＡのパルス数が正常場合とは異なるものとなるので、よって信号SDA exor SCLのパルス数も上記所定値とは異なる値となる。
【００２５】
本実施形態によれば、シリアルデータ信号ＳＤＡ（フレーム）のＯＤＤパリティ及び信号SDA exor SCLのパルス数をハードウエア的に検出する、つまりシリアルクロック信号ＳＣＬ及びシリアルデータ信号ＳＤＡの異常をハードウエア的に検出することができる。
【００２６】
なお、上記実施形態ではＩ２Ｃバス用エラー検出回路について説明したが、本発明はＩ２Ｃバスに限定されることなく、データ信号と制御信号とを個別の信号線で伝送する他のシリアル通信方式にも適用可能である。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施形態に係わるＩ２Ｃバス用エラー検出回路の回路図である。
【図２】本発明の一実施形態に係わるＩ２Ｃバス用エラー検出回路の動作を示すタイミングチャートである。
【符号の説明】
【００２８】
１，４，６…ＥＸ−ＯＲゲート、２，３，５…Ｊ−Ｋフリップフロップ、７，８…カウンタ
【図１】
2005354158.tif 000003
【図２】
2005354158.tif 000004