(57)【要約】【目的】クロックへのノイズの混入や波形の鈍りに起因して送信側と受信側のクロックにずれが生じても、SDAラインが"L"に固定されるのを防止する「データ通信ユニット」を提供する。【構成】マスター１１は、ストップ条件をバス１３，１４に送出したとき、バス上においてストップ条件が検出できたか監視し、ストップ条件を検出できなければ、データライン１３の信号レベルがスレーブ12により"Ｌ"に固定されているとみなし、データ信号、クロック信号を共に"Ｌ"にしたのち(リセット)、再度ストップ条件をバスに送出する。【選択図】        図１
2005084792.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つのユニット間を、データ転送を行なうデータライン及びクロック転送を行なうクロックラインで接続し、送信側ユニットはクロックに同期してｎバイトのデータを転送すると共にフレームの末尾にデータライン上の信号とクロックライン上の信号が規定の位相関係となるようにしてストップ条件を転送し、受信側ユニットは１バイトのデータを受信する毎に前記データラインを介して送信側ユニットに確認応答を送信し、ストップ条件によりフレームの終わりを識別するシリアルデータ転送システムにおけるデータ通信ユニットにおいて、
ストップ条件をデータライン及びクロックラインに送出したとき、これらデータライン及びクロックライン上の信号を検出し、ストップ条件が成立したか監視するストップ条件検出手段、
ストップ条件を検出できなければ、データライン上の信号、クロックライン上の信号を共に"Ｌ"にしたのち、再度ストップ条件をデータライン及びクロックラインに送出するストップ条件送出手段、
を備えたことを特徴とするデータ通信ユニット。
【請求項２】
少なくとも２つのユニット間を、データ転送を行なうデータライン及びクロック転送を行なうクロックラインで接続し、送信側ユニットはクロックに同期してｎバイトのデータを転送すると共にフレームの末尾にデータライン上の信号とクロックライン上の信号が規定の位相関係となるようにしてストップ条件を転送し、受信側ユニットは１バイトのデータを受信する毎に前記データラインを介して送信側ユニットに確認応答を送信し、ストップ条件によりフレームの終わりを識別するシリアルデータ転送システムにおけるデータ通信ユニットにおいて、
フレームの最終バイトの送出後に、１ビット以上のダミーのクロック波形をクロックラインへ送出する手段、
ダミークロックの送出完了後にストップ条件をデータライン及びクロックラインに送出するストップ条件送出手段、
を備えたことを特徴とするデータ通信ユニット。
【請求項３】
少なくとも２つのユニット間を、データ転送を行なうデータライン及びクロック転送を行なうクロックラインで接続し、送信側ユニットはクロックに同期してｎバイトのデータを転送すると共にフレームの末尾にデータライン上の信号とクロックライン上の信号が規定の位相関係となるようにしてストップ条件を転送し、受信側ユニットは１バイトのデータを受信する毎に前記データラインを介して送信側ユニットに確認応答を送信し、ストップ条件によりフレームの終わりを識別するシリアルデータ転送システムにおけるデータ通信ユニットにおいて、
フレームの最終バイトの送出後に、連続してストップ条件をデータライン及びクロックラインに送出するストップ条件送出手段、
を備えたことを特徴とするデータ通信ユニット。
【請求項４】
前記シリアルデータ転送システムはＩ2Ｃバスを介して通信するシステムである請求項１乃至３記載のデータ通信ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシリアルデータ転送システムにおけるデータ通信ユニットに係わり、たとえばＩ2Ｃバスを介してマスター(送信側ユニット)がスレーブ(受信側ユニット)にシリアルデータを送信するシリアルデータ転送システムにおけるデータ通信ユニットに関する。
【背景技術】
【０００２】
Ｉ2Ｃバスを介してシリアルデータを送信するシリアルデータ転送システムにおいては、図８に示すように少なくとも２つのユニット１，２間を、データ転送を行なうシリアルデータライン(SDAライン)３及びクロック転送を行なうシリアルクロックライン(SCLライン)４で接続する。なお、ユニット１，２において、SDはデータ送出端子、RDはデータ受信端子、SCはクロック送出端子、RCはクロック受信端子である。
送信側ユニットであるマスター１は、図９に示すように、フレームの先頭にデータ信号SDAとクロック信号SCLが規定の第1の位相関係となるようにしてスタート条件Ｓを、データ送出端子SD，クロック送出端子SCよりバス３，４を介して転送し、また、フレームの末尾にデータ信号SDAとクロック信号SCLが規定の第2位相関係となるようにしてストップ条件Pを転送し、これらスタート条件とストップ条件の間でクロックに同期してｎバイトのデータを転送する。
受信側ユニットであるスレーブ２は、スタート条件Ｓをデータ受信端子RD、クロック受信端子SCより検出してフレームの受信を開始し、１バイトのデータを受信する毎にデータ送出端子SDより前記SDAラインを介してマスター１に確認応答（アクノリッジA）を送信すると共に、ストップ条件Ｐによりフレームの終わりを識別する。
【０００３】
すなわち、マスター１はスレーブ2へスタート条件Ｓを送出し、ついで、1ビット目から７ビット目にかけてスレーブアドレスを、8ビット目にリード/ライト制御信号Ｒ／Ｗをそれぞれ送信する。ついで、スレーブ2から9ビット目に返送されるアクノリッジAを受信すれば、以後、送信データとしてｎ個のバイトを転送し、1バイトのデータ転送毎にスレーブ２から返送されてくるアクノリッジAを受信し、データ転送の終了時にストップ条件Pを送信する。
【０００４】
図１０は、Ｉ2Ｃバスを介して通信する際にマスター１、スレーブ２がＳＤＡライン3、ＳＣＬライン4に出力する信号レベル（"L"：Low、"H"：High）の説明図である。マスター1よりスレーブ２への送信時、スレーブ２は図１０(b)に示すようにＳＤＡライン３、ＳＣＬライン４に“H"を出力し、マスター1は図１０(a)に示すようにＳＤＡライン３、ＳＣＬライン４にデータとクロック信号に応じた“H”，“L”を出力する。なお、一方のユニットがラインに“H”を出力しているとき、他方のユニットが“L”を出力するとラインは“L”になる。
すなわち、スタート条件送出時、マスター1はＳＣＬライン４を“H"にし、ＳＤＡラインを"H"から”L"に変化する。又、ストップ条件時、ＳＣＬラインを“H"にし、ＳＤＡラインを"L"から”H"に変化する。又、マスター1は、アクノリッジAを受信するために、バイト送信後の第9ビット目でＳＤＡラインに"H"を出力する。一方、スレーブ２はＳＤＡライン３、ＳＣＬライン４に“H"を出力したまま、該ＳＤＡライン３にマスターが送信したデータを受信し、1バイト受信後の第9ビットにおいてアクノリッジAを送信する為に、ＳＤＡライン３に“Ｌ”または“H”を出力する。また、これは重要なことであるが、スレーブ２は第9クロックビットが立ち下がったことを検出して“Ｌ”を“H”に戻し、以後、ストップ条件を検出して1フレームの受信を完了する。
【０００５】
ところで、ノイズ混入や波形の鈍りが原因で、送信側と受信側のクロックがずれてしまう場合がある。受信側と送信側でビットずれが発生すると、データが異常になるだけでなく、受信側装置(スレーブ)がデータラインをLowにホールドしてしまう等の不具合が発生する事があった。このような状況が発生すると、スレーブがタイムアウト等を検出しバスラインを開放するまで、システム上全てのユニットが送受信不能状態となってしまう。
【０００６】
図１１はデータラインがLowにホールドされてしまう状況説明図である。ＳＣＬクロックラインに(c)で示すノイズ成分Nが混入して第6ビット目のクロックが消失すると、スレーブ２は第9ビット(Aビット)を第8ビットみなし、その後、フレームを正常に受信していればＳＤＡライン３にＡＣＫ（＝“Ｌ”）を出力する。なお、以後、スレーブ２はクロックの立ちさがりを検出しない為、ＳＤＡライン３に“L"を出力し続ける。
一方、マスター１は正規の第9ビット(Aビット)で、ＳＤＡライン３上の"H"をNACKとして受信し、しかる後、ストップ条件を送出する。しかし、ＳＤＡライン３は"L"になっている為、点線５１で示すようにＳＤＡライン３、ＳＣＬライン4にストップ条件が出現せず、スレーブ2はストップ条件を検出できず、ＳＤＡライン３に“L"を出力し続けることになる。
【０００７】
ＳＤＡライン３が"L"になってユニット間で通信ができなくなることに起因する誤動作を防止する従来技術がある(たとえば特許文献１の図1)。この従来技術では、ＳＤＡライン３が"L"になっている時、マスター(マイクロコンピュータ)がスレーブ(不揮発性メモリ)にデータを読み／書きすると誤動作が生じる。そこで、マスターは、スレーブがバスを解放したことを確認してからアクセス動作を行なうことにより、誤動作を防止する。
また、従来技術としてマスターとスレーブ間を接続するバスの衝突を避けるデータ転送方法がある(たとえば特許文献2の図１)。この従来技術では、スレーブは、マスタの送信時、マスターから予め設定されているバイト数のデータを受信したか監視し、受信した場合、データラインを解放してスレーブよりマスターへデータを送信する。
【特許文献１】特開平９−２６５４３６号公報
【特許文献２】特開２００１-２９０７６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
以上のように、Ｉ2Ｃバスを介して通信する通信方式における従来技術は種々提案されているが、クロックへのノイズの混入や波形の鈍りが原因で、送信側と受信側のクロックにずれが生じ、このクロックのずれに起因してＳＤＡラインが"L"になりっぱなしになることを防止する従来技術はない。
本発明の目的は、クロックへのノイズの混入や波形の鈍りに起因して送信側と受信側のクロックにずれが生じても、ＳＤＡラインが"L"に固定されるのを防止することである。
【課題を解決するための手段】
【０００９】
本発明は、少なくとも２つのユニット間を、データ転送を行なうデータライン及びクロック転送を行なうクロックラインで接続し、送信側ユニットはクロックに同期してｎバイトのデータを転送すると共にフレームの末尾にデータライン上の信号とクロックライン上の信号が規定の位相関係となるようにしてストップ条件を転送し、受信側ユニットは１バイトのデータを受信する毎に前記データラインを介して送信側ユニットに確認応答を送信し、ストップ条件によりフレームの終わりを識別するシリアルデータ転送システムにおけるデータ通信ユニットに関するものである。
【００１０】
第１の発明において、データ通信ユニットは、ストップ条件をバス(データライン及びクロックライン)に送出したとき、バス上においてストップ条件が検出できたか監視し、ストップ条件を検出できなければ、データラインの信号レベルが"Ｌ"に固定されているとみなし、データライン上の信号、クロックライン上の信号を共に“Ｌ"にしたのち(リセット)、再度ストップ条件をバス（データライン及びクロックライン）に送出する。リセットにより、データラインの信号レベルは“Ｌ"から“Ｈ"になり、２度目のストップ条件送出により必ずストップ条件がバス上に現われ、スレーブはストップ条件を検出できるようになり、データラインが"Ｌ"に固定されることはない。
【００１１】
第２の発明において、データ通信ユニットは、フレームの最終バイト送出後、１以上のダミーのクロックをクロックラインへ送出し、ダミークロックの送出完了後にストップ条件をデータライン及びクロックラインに送出する。ダミークロックの送出により、データラインの信号レベルが"Ｌ"に固定されていても、データラインの信号レベルは"Ｈ"に変わり、引き続くストップ条件送出により必ずストップ条件がバス上に現われ、スレーブはストップ条件を検出できるようになり、データラインが"Ｌ"に固定されることはない。
第３の発明において、データ通信ユニットは、フレームの最終バイトの送出後に、連続してストップ条件をデータライン及びクロックラインに送出する。最初のストップ条件により、データラインの信号レベルが"Ｌ"に固定されていても、データラインの信号レベルは"Ｈ"に変わり、引き続く第2のストップ条件送出により必ずストップ条件がバス上に現われ、スレーブはストップ条件を検出できるようになり、データラインが"Ｌ"に固定されることはない。
【発明の効果】
【００１２】
以上のように、第1〜第3の発明によれば、クロックへのノイズの混入や波形の鈍りに起因して送信側と受信側のクロックにずれが生じても、ＳＤＡラインが"L"に固定されるのを防止でき、クロックへのノイズの混入や波形の鈍りがユニット間での通信を阻害することがなくなった。
【発明を実施するための最良の形態】
【００１３】
図1は本発明を実施するデータ転送システムの構成図であり、Ｉ2Ｃバスを介してユニット１１，１２間で通信が行われる。
ＳＤＡライン(データライン)１３、ＳＣＬライン(クロックライン)１４は抵抗RD，ＲＣを介して電源ライン１５に接続されている。ユニット１１，１２は同一の構成を備え、データドライバ／レシーバ５１、クロックドライバ／レシーバ５２、制御装置53を備えている。データドライバ／レシーバ５１はＳＤＡライン１３に接続し、該ＳＤＡライン１３を"H"，"Ｌ"にドライブするNチャネル型MOSトランジスタ(NMOSトランジスタ)６１、該ＳＤＡライン１３のレベル（"H"，"Ｌ"）を読み取るバッファアンプ６２を備えている。クロックドライバ／レシーバ５２はＳＣＬライン１４に接続し、該ＳＣＬライン１４を"H"，"Ｌ"にドライブするNチャネル型MOSトランジスタ(NMOSトランジスタ)７１、該ＳＤＡライン１３のレベル（"H"，"Ｌ"）を読み取るバッファアンプ７２を備えている。
【００１４】
ユニット１１が送信側ユニット(マスター)、ユニット１２が受信側ユニット(スレーブ)であるとすれば、スレーブ１２の制御装置５３は、NMOSトランジスタ６１，７１を共にオフし、ＳＤＡライン１３、ＳＣＬライン１４に“L"が出現しないように制御する。また、スレーブ１２が、1バイト受信毎にアクノリッジAをマスター１１に返送するタイミング(第9ビット目のタイミング)で、マスター１１の制御装置５３は、NMOSトランジスタ５１をオフし、ＳＤＡライン１３に“L"が出現しないように制御する。
【００１５】
マスター１１の制御装置５３は、NMOSトランジスタ６１，７１をそれぞれデータ及びクロックに基づいてオン／オフし、ＳＤＡライン１３、ＳＣＬライン１４に該データとクロックに応じた周波数で“H"，”L“を出現させる。スレーブ12の制御装置53は、これらＳＤＡライン１３、ＳＣＬライン１４に出現した“H"，”L“レベル（データとクロック）をバッファアンプ６２，７２を介してそれぞれ読み取る。また、スレーブ１２の制御装置５３は、1バイト受信毎に第9ビットのタイミングでＳＤＡライン１３に“H"，”L“（アクノリッジA）を出現させる。マスター１１の制御装置５３は、ＳＤＡライン１３に出現したこの“H"，”L“レベル（アクノリッジA）をバッファアンプ６２を介して読み取る。
【実施例１】
【００１６】
図２は本発明の第１実施例の動作を示すタイムチャートであり、クロックノイズＮの発生により第６番目のクロックが消失している。クロックが消失すると、図１１で説明したようにスレーブ１２は第９ビット(Aビット)を第８ビットとみなしてＡＣＫ（＝“Ｌ”）を出力し、ＳＤＡライン１３を“L”に固定してしまう。かかる場合には、マスター１１がストップ条件を出しても点線５１で示すようにバス(ＳＤＡライン１３及びＳＣＬライン１４)にストップ条件を検出できない。そこで、マスター１１はデータ信号、クロック信号を共に"Ｌ"にしたのち(リセット)、再度ストップ条件をバス（ＳＤＡライン及びＳＣＬライン）に送出する。リセットにより、スレーブ１２側のＳＤＡライン１３の信号レベルは"Ｈ"になり、２度目のストップ条件送出により点線５２で示すように必ずストップ条件がバス上に現われ、スレーブ１２はストップ条件を検出できるようになり、データライン１３が"Ｌ"に固定されることはなくなる。なお、スレーブ１２は第９ビットクロックの立ち下がりでＳＤＡラインを“Ｌ”→“Ｈ”にするようになっていることに留意すべきである。
【００１７】
図３は第１実施例のマスター１１における制御装置５３の処理フローである。
制御装置５３は最終バイトを送出したかチェックし(ステップ１０１)、送出しなければ別の処理を行なう。しかし、最終バイトを送出すれば、NMOSトランジスタ６１，７１を駆動してストップ条件を出力する(ステップ１０２)。ストップ条件は、シリアルクロックＳＣＬが“H”の状態において、シリアルデータＳＤＡを“Ｌ”から“H”にすることにより出力できる。
ついで、制御装置５３は、バッファアンプ６２，７２よりＳＤＡライン１３及びＳＣＬライン１４の信号レベルを読み取り、ストップ条件が検出できたかチェックし(ステップ１０３)、検出できれば、クロックの消失はないとみなして処理を終了する。
しかし、ストップ条件が検出できなければ、クロックの消失によりデータラインの信号レベルが"Ｌ"に固定されていると判定し、NMOSトランジスタ６１，７１を共にオンして、ＳＤＡライン１３、ＳＣＬライン１４の信号レベルを共に“Ｌ”の状態に戻す（リセット、ステップ１０４）。これにより、スレーブ側データラインの信号レベルは"Ｈ"になる。
この状態で再度、NMOSトランジスタ６１，７１を駆動してストップ条件を出力する(ステップ１０５)。今度は、スレーブ側データラインの信号レベルが"Ｈ"になっているため、必ずストップ条件がバス上に現われ、スレーブ１２はストップ条件を検出できるようになり、データラインが"Ｌ"に固定されることはない。
【実施例２】
【００１８】
図４は本発明の第２実施例の動作を示すタイムチャートであり、クロックノイズＮの発生により第６番目のクロックが消失している。クロックが消失すると、図１１で説明したようにスレーブ１２は第９ビット(Aビット)を第8ビットとみなしてＡＣＫ（＝“Ｌ”）を出力し、ＳＤＡライン１３を“L”に固定してしまう。かかる場合には、マスター１１がストップ条件を出してもバス(ＳＤＡライン１３及びＳＣＬライン１４)にストップ条件を検出できない。そこで、マスター１１はフレームの最終バイト送出後、１以上のダミーのクロックＤ１，Ｄ２(図では2個)をＳＣＬライン１４へ送出し、ダミークロックＤ１，Ｄ２の送出完了後にストップ条件ＰをＳＤＡライ１３ン及びＳＣＬライン１４に送出する。ＳＤＡライン１３の信号レベルが"Ｌ"に固定されていても、ダミークロックＤ１の送出によりスレーブ１２側の信号レベルは"Ｈ"に変わり、引き続くストップ条件Ｐの送出により点線５３で示すように必ずストップ条件がバス上に現われ、スレーブ１２はストップ条件を検出できるようになり、データラインが"Ｌ"に固定されることはない。
なお、クロック消失がない場合、ダミークロックD1,D2によりスレーブ１２は2ビット分のデータを読み取るがストップ条件検出により破棄する。また、クロックの消失が1個の場合にはダミークロックは1個でもよく(1個以上)、一般に、クロックの消失がｍ個の場合にはダミークロックはｍ個以上必要である。これは次の理由による。すなわち、m個のクロックが消失した場合、m個のダミークロックを追加すれば、最後のダミークロック(第9ビット目のクロックに相当する)によりスレーブ側のＳＤＡラインが“Ｈ”になり、引き続くストップ条件Ｐの送出により必ずストップ条件がバス上に現われるようになるからである。
【００１９】
図５は第２実施例のマスター１１における制御装置５３の処理フローである。
制御装置５３は最終バイトを送出したかチェックし(ステップ２０１)、送出しなければ別の処理を行なう。しかし、最終バイトを送出すれば、ダミークロックをm個(たとえば2個)連続に出力する(ステップ２０２)。ついで、ストップ条件ＰをＳＤＡライ１３ン及びＳＣＬライン１４に送出して(ステップ203)、処理を終了する。ＳＤＡライン１３の信号レベルが"Ｌ"に固定されていても、ダミークロックの送出によりスレーブ１２側の信号レベルは"Ｈ"に変わり、引き続くストップ条件Ｐの送出により必ずストップ条件がバス上に現われ、スレーブ１２はストップ条件を検出できるようになり、データラインが"Ｌ"に固定されることはない。
【実施例３】
【００２０】
図６は本発明の第３実施例の動作を示すタイムチャートであり、クロックノイズＮの発生により第６番目のクロックが消失している。クロックが消失すると、図１１で説明したようにスレーブ１２は第９ビット(Aビット)を第8ビットとみなしてＡＣＫ（＝“Ｌ”）を出力し、ＳＤＡライン１３を“L”に固定してしまう。かかる場合、マスター１１がストップ条件を出してもバス(ＳＤＡライン１３及びＳＣＬライン１４)にストップ条件を検出できない。そこで、マスター１１はフレームの最終バイト送出後、連続して第１、第２のストップ条件をデータライン及びクロックラインに送出する。最初のストップ条件発生時にデータラインの信号レベルが"Ｌ"に固定されていても、第２ストップ条件を発生する為にＳＣＬライン、ＳＤＡラインを“Ｌ”にリセットした時、データラインの信号レベルは“Ｈ"に変わり、引き続く第２のストップ条件送出により点線５４で示すように必ずストップ条件がバス上に現われ、スレーブはストップ条件を検出できるようになり、データラインが"Ｌ"に固定されることはなくなる。なお、消失クロックがない場合には、第1のストップ条件は1個のダミークロックと同じであり、スレーブ１２は１ビット分のデータを読み取るが第2のストップ条件検出により破棄する。
【００２１】
図７は第３実施例のマスター１１における制御装置５３の処理フローである。
制御装置５３は最終バイトを送出したかチェックし(ステップ３０１)、送出しなければ別の処理を行なう。しかし、最終バイトを送出すれば、第１のストップ条件を出力する(ステップ３０２)。ついで、制御装置５３はNMOSトランジスタ６１，７１を共にオンして、ＳＤＡライン１３、ＳＣＬライン１４の信号レベルを共に“Ｌ”の状態に戻し(リセット)、この状態で再度、NMOSトランジスタ６１，７１を駆動してストップ条件を出力する(ステップ３０３)。スレーブ側データラインの信号レベルが"Ｈ"になっているため、2回目のストップ条件の出力により必ずストップ条件がバス上に現われ、スレーブ１２はストップ条件を検出できるようになり、データラインが"Ｌ"に固定されることはない。
【図面の簡単な説明】
【００２２】
【図１】本発明を実施するデータ転送システムの構成図である。
【図２】本発明の第１実施例の動作を示すタイムチャートである。
【図３】第１実施例のマスターにおける制御装置の処理フローである。
【図４】本発明の第２実施例の動作を示すタイムチャートである。
【図５】第２実施例のマスターにおける制御装置の処理フローである。
【図６】本発明の第３実施例の動作を示すタイムチャートである。
【図７】第３実施例のマスターにおける制御装置の処理フローである。
【図８】Ｉ2Ｃバスを介してシリアルデータを送信するシリアルデータ転送システムの概念図である。
【図９】フレーム構成例である。
【図１０】Ｉ2Ｃバスを介して通信する際にマスター、スレーブがＳＤＡライン、ＳＣＬラインに出力する信号レベル（"L"：Low、"H"：High）の説明図である。
【図１１】データラインがLowにホールドされてしまう状況説明図である。
【符号の説明】
【００２３】
１１  ユニット(マスター)
１２  ユニット(スレーブ)
１３  ＳＤＡライン
１４  ＳＣＬライン
５１  データドライバ／レシーバ
５２  クロックドライバ／レシーバ
５３  制御装置
６１、７１  NMOSトランジスタ
６２、７２  バッファアンプ
【図１】
2005084792.tif 000003
【図２】
2005084792.tif 000004
【図３】
2005084792.tif 000005
【図４】
2005084792.tif 000006
【図５】
2005084792.tif 000007
【図６】
2005084792.tif 000008
【図７】
2005084792.tif 000009
【図８】
2005084792.tif 000010
【図９】
2005084792.tif 000011
【図１０】
2005084792.tif 000012
【図１１】
2005084792.tif 000013