(57)【要約】【課題】ＭＤライン及びＳＤラインの両方を同時にデータ送信に使用することができるシリアル通信システムを提供する。【解決手段】本発明のシリアル通信システム１は、第１のデバイス２と第２のデバイス３とを有し、第１のデバイス２と第２のデバイス３とは、第２のデバイス３が生成したシリアルクロックに基づいて、相互通信を開始するシリアル通信システムである。第１のデバイス２から第２のデバイス３への出力が、前フェーズにおいて受信したデータの最終ビット値と反転していると、第２のデバイス３は第１のデバイス２の通信準備状態が完了状態であると判断し、相互通信を開始する。【選択図】図１
2010288184.tif 000002
【特許請求の範囲】
【請求項１】
第１のデバイスと第２のデバイスとを有し、前記第１のデバイスと前記第２のデバイスとは、前記第２のデバイスが生成したシリアルクロックに基づいて、相互通信を開始するシリアル通信システムであって、
前記第１のデバイスから前記第２のデバイスへの出力が、前フェーズにおいて受信したデータの最終ビット値と反転していると、前記第２のデバイスは前記第１のデバイスの通信準備状態が完了状態であると判断し、相互通信を開始するシリアル通信システム。
【請求項２】
前記第２のデバイスは、前記第１のデバイスの通信準備状態が完了状態であると判断すると、シリアルクロックを生成し、
前記第１のデバイスと前記第２のデバイスとは、前記シリアルクロックに基づいて、相互通信を開始することを特徴とする請求項１に記載のシリアル通信システム。
【請求項３】
前記第２のデバイスから前記第１のデバイスへの出力が、前フェーズにおいて受信したデータの最終ビット値と反転していると、前記第１のデバイスは、前記第２のデバイスの通信準備状態が完了状態であると判断し、前記第１のデバイスの通信準備が完了すると、前記第１のデバイスから前記第２のデバイスへの出力を、前フェーズにおいて送信したデータの最終ビット値と反転させることを特徴とする請求項１又は２に記載のシリアル通信システム。
【請求項４】
前記シリアル通信システムは、第１のデバイスと、第２のデバイスと、前記第１のデバイスと前記第２のデバイスとの間でデータを通信する第１のバスライン、第２のバスラインと、を有し、
前記第１のデバイスは、前記第２のデバイスから前記第１のバスラインを介してデータを受信する受信インターフェースと、前記第２のデバイスに前記第２のバスラインを介してデータを送信する送信インターフェースと、前記第１のデバイスのデータの通信準備が完了すると、前記第１のデバイスからの出力を前フェーズにおいて送信したデータの最終ビット値と反転させる出力制御部と、を有し、
前記第２のデバイスは、前記第１のデバイスから前記第２のバスラインを介してデータを受信する受信インターフェースと、前記第１のデバイスに前記第１のバスラインを介してデータを送信する送信インターフェースと、前記第１のデバイスからの出力が前フェーズにおいて受信したデータの最終ビット値と反転していると、前記第１のデバイスの通信準備状態が完了状態であると判断するレベル検出部と、を有することを特徴とする請求項１又は２に記載のシリアル通信システム。
【請求項５】
前記シリアル通信システムは、第１のデバイスと、第２のデバイスと、前記第１のデバイスと前記第２のデバイスとの間でデータを通信する第１のバスライン、第２のバスラインと、を有し、
前記第１のデバイスは、前記第２のデバイスから前記第１のバスラインを介してデータを受信する受信インターフェースと、前記第２のデバイスに前記第２のバスラインを介してデータを送信する送信インターフェースと、前記第２のデバイスからの出力が前フェーズにおいて受信したデータの最終ビット値と反転していると、前記第２のデバイスの通信準備状態が完了状態であると判断し、出力制御部に前記第１のデバイスからの出力を前フェーズにおいて送信したデータの最終ビット値と反転させるように指示するレベル検出部と、前記レベル検出部から指示を受け、且つ第１のデバイスのデータの通信準備が完了すると、前記第１のデバイスからの出力を前フェーズにおいて送信したデータの最終ビット値と反転させる出力制御部と、を有し、
前記第２のデバイスは、前記第１のデバイスから前記第２のバスラインを介してデータを受信する受信インターフェースと、前記第１のデバイスに前記第１のバスラインを介してデータを送信する送信インターフェースと、前記第２のデバイスのデータの通信準備が完了すると、前記第２のデバイスからの出力を前フェーズにおいて送信したデータの最終ビット値と反転させる出力制御部と、前記第１のデバイスからの出力が前フェーズにおいて受信したデータの最終ビット値と反転していると、前記第１のデバイスの通信準備状態が完了状態であると判断するレベル検出部と、を有することを特徴とする請求項１乃至３のいずれか１項に記載のシリアル通信システム。
【請求項６】
前記第２のデバイスは、シリアルクロックを生成するクロックジェネレータを有し、
前記第２のデバイスのレベル検出部は、前記第１のデバイスの通信準備状態が完了状態であると判断すると、前記クロックジェネレータにシリアルクロックを生成させ、
前記第１のデバイスと前記第２のデバイスとは、前記シリアルクロックに基づいて、相互通信を開始することを特徴とする請求項４又は５に記載のシリアル通信システム。
【請求項７】
第１のデバイスと第２のデバイスとを有し、前記第１のデバイスと前記第２のデバイスとは、前記第２のデバイスが生成したシリアルクロックに基づいて、相互通信を開始するシリアル通信方法であって、
前記第１のデバイスから前記第２のデバイスへの出力が、前フェーズにおいて受信したデータの最終ビット値と反転していると、前記第２のデバイスは前記第１のデバイスからの通信準備状態が完了状態であると判断し、相互通信を開始するシリアル通信方法。
【請求項８】
前記第１のデバイスは、次フェーズのデータの通信準備が完了すると、前記第１のデバイスから前記第２のデバイスへの出力を、前フェーズにおいて送信したデータの最終ビット値と反転させ、
前記第２のデバイスは、前記第１のデバイスからの出力が前フェーズにおいて受信したデータの最終ビット値と反転していると、前記第１のデバイスの通信準備状態が完了状態であると判断して、シリアルクロックを生成し、
前記第１のデバイスと前記第２のデバイスとは、前記シリアルクロックに基づいて、相互通信を開始することを特徴とする請求項７に記載のシリアル通信方法。
【請求項９】
前記第２のデバイスは、次フェーズのデータの通信準備が完了すると、前記第２のデバイスから前記第１のデバイスへの出力を前フェーズにおいて送信した最終ビット値と反転させ、
前記第１のデバイスは、前記第２のデバイスからの出力が前フェーズにおいて受信したデータの最終ビット値と反転していると、前記第２のデバイスの通信準備状態が完了状態であると判断し、さらに前記第１のデバイスの次フェーズのデータの通信準備が完了すると、前記第１のデバイスから前記第２のデバイスへの出力を前フェーズにおいて送信したデータの最終ビット値と反転させ、
前記第２のデバイスは、前記第１のデバイスからの出力が前フェーズにおいて受信したデータの最終ビット値と反転していると、前記第１のデバイスの通信準備状態が完了状態であると判断して、シリアルクロックを生成し、
前記第１のデバイスと前記第２のデバイスとは、前記シリアルクロックに基づいて、相互通信を開始することを特徴とする請求項７に記載のシリアル通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシリアル通信システム及びシリアル通信方法に関する。
【背景技術】
【０００２】
シリアル通信システムは、特許文献１、２に開示されているように、スレーブＩＣ（Integrated Circuit）２と、マスタＩＣ３と、スレーブＩＣとマスタＩＣとを接続するマスタデータライン（以下、ＭＤラインと示す。）４、スレーブデータライン（以下、ＳＤラインと示す。）５、クロックライン（以下、ＣＬＫラインと示す）６と、を有する（図１１を参照）。ここでは、ＣＬＫライン６にシリアルクロックを出力する側のデバイスをマスタＩＣ３とし、ＣＬＫライン６からシリアルクロックが入力される側のデバイスをスレーブＩＣ２とする。ちなみに、ＭＤライン４は、マスタＩＣ３からスレーブＩＣ２へのデータ信号又は制御信号の一方を送信する専用ラインである。ＳＤライン５は、スレーブＩＣ２からマスタＩＣ３にデータ信号又は制御信号の他方を送信する専用ラインである。ＣＬＫライン６は、クロック信号専用のラインである。
【０００３】
このようなシリアル通信システムは、以下のように動作する。
図１２は、スレーブＩＣからマスタＩＣにデータを送信する場合のタイミング図を示す。先ず、スレーブＩＣは、ＳＤラインからの出力をアイドル状態（ここではＨｉｇｈ、以下Ｈ（１）と示す。）から活性化状態（ここではＬｏｗ、以下Ｌ（０）と示す。）に変化させる。マスタＩＣは、ＳＤラインからの出力のエッジを検出しスレーブＩＣからのデータの受信準備を行い、準備完了後ＭＤラインからの出力をアイドル状態から活性化状態に変化させ、スレーブＩＣからのデータの受信が可能となったことをスレーブＩＣに通知する。その後、スレーブＩＣからＳＤラインを介してマスタＩＣに第１のフェーズのデータＨ７〜Ｈ０を送信する。次に、マスタＩＣは、ＭＤラインからの出力を活性化状態からアイドル状態に変化させ、スレーブＩＣからの第２のフェーズにおけるデータの受信が可能となったことをスレーブＩＣに通知する。その後、スレーブＩＣからＳＤラインを介してマスタＩＣに第２のフェーズのデータＡ７〜Ａ０を送信する。
【０００４】
図１３は、マスタＩＣからスレーブＩＣにデータを送信する場合のタイミング図を示す。先ず、マスタＩＣは、ＭＤラインからの出力をアイドル状態から活性化状態に変化させる。スレーブＩＣは、ＭＤラインからの出力のエッジを検出しマスタＩＣからのデータの受信準備を行い、準備完了後ＳＤラインからの出力をアイドル状態から活性化状態に変化させ、マスタＩＣからのデータの受信が可能となったことをマスタＩＣに通知する。その後、マスタＩＣからＭＤラインを介してスレーブＩＣに第１のフェーズのデータＨ７〜Ｈ０を送信する。次に、スレーブＩＣは、ＳＤラインからの出力を活性化状態からアイドル状態に変化させ、マスタＩＣからの第２のフェーズにおけるデータの受信が可能となったことをマスタＩＣに通知する。その後、マスタＩＣはＭＤラインを介してスレーブＩＣに第２のフェーズのデータＡ７〜Ａ０を送信する。
このように、MDライン、ＳＤライン、ＣＬＫラインの他に新たなバスラインを設けることなく、マスタＩＣからスレーブＩＣにマスタＩＣの受信準備状態を通知、又はスレーブＩＣからマスタＩＣにスレーブＩＣの受信準備状態を通知するハンドシェイク機能を実現することができ、その結果、高速なデータ転送レートが達成可能となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２７４８６２号公報
【特許文献２】特開２００７−３６４２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１、２に開示されているシリアル通信システムは、ＭＤライン及びＳＤラインの両方を同時にデータ送信に使用するシリアル送受信が実現できない。つまり、特許文献１、２に開示されているシリアル通信システムは、ＭＤライン又はＳＤラインのどちらか一方のバスラインをデータ送信に用いるが、残ったもう一方のバスラインは受信準備状態を通知する制御のために用い、データ送信を想定していないためである。
【課題を解決するための手段】
【０００７】
本発明に係るシリアル通信システムは、第１のデバイスと第２のデバイスとを有し、前記第１のデバイスと前記第２のデバイスとは、前記第２のデバイスが生成したシリアルクロックに基づいて、相互通信を開始するシリアル通信システムであって、前記第１のデバイスから前記第２のデバイスへの出力が、前フェーズにおいて受信したデータの最終ビット値と反転していると、前記第２のデバイスは前記第１のデバイスの通信準備状態が完了状態であると判断し、相互通信を開始する。シリアルクロックを生成する側の第２のデバイスが第１のデバイスから受信したデータの出力値に基づいて、第１のデバイスにおける次フェーズのデータの通信準備状態を取得することができる。そのため、新たに制御信号用のバスラインを設けなくても、第１のバスライン及び第２のバスラインを同時にデータ通信用のバスラインとして使用しつつ、良好にハンドシェイク機能を実現することができる。
【０００８】
本発明に係るシリアル通信方法は、第１のデバイスと第２のデバイスとを有し、前記第１のデバイスと前記第２のデバイスとは、前記第２のデバイスが生成したシリアルクロックに基づいて、相互通信を開始する同期シリアル通信方法であって、前記第１のデバイスから前記第２のデバイスへの出力が、前フェーズにおいて受信したデータの最終ビット値と反転していると、前記第２のデバイスは前記第１のデバイスからの通信準備状態が完了状態であると判断し、相互通信を開始する。シリアルクロックを生成する側の第２のデバイスが第１のデバイスから受信したデータの出力値に基づいて、第１のデバイスにおける次フェーズのデータの通信準備状態を取得することができる。そのため、新たに制御信号用のバスラインを設けなくても、第１のバスライン及び第２のバスラインを同時にデータ通信用のバスラインとして使用しつつ、良好にハンドシェイク機能を実現することができる。
【発明の効果】
【０００９】
本発明によれば、ＭＤライン及びＳＤラインの両方を同時にデータ送信に使用することができるシリアル通信システム及びシリアル通信方法を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明に係るシリアル通信システムの実施の形態１のブロック図である。
【図２】本発明に係るシリアル通信システムの実施の形態１における、第１のデバイスの動作を示すフローチャート図である。
【図３】本発明に係るシリアル通信システムの実施の形態１における、第２のデバイスの動作を示すフローチャート図である。
【図４】本発明に係るシリアル通信システムの実施の形態１の動作を示すタイミング図である。
【図５】本発明に係るシリアル通信システムの実施の形態１の異なる動作を示すタイミング図である。
【図６】本発明に係るシリアル通信システムの実施の形態２のブロック図である。
【図７】本発明に係るシリアル通信システムの実施の形態２における、第１のデバイスの動作を示すフローチャート図である。
【図８】本発明に係るシリアル通信システムの実施の形態２における、第２のデバイスの動作を示すフローチャート図である。
【図９】本発明に係るシリアル通信システムの実施の形態２の動作を示すタイミング図である。
【図１０】本発明に係るシリアル通信システムの実施の形態２の異なる動作を示すタイミング図である。
【図１１】関連するシリアル通信システムのブロック図である。
【図１２】関連するシリアル通信システムの動作を示すタイミング図である。
【図１３】関連するシリアル通信システムの異なる動作を示すタイミング図である。
【図１４】関連するシリアル通信システムにおける、ＭＤライン及びＳＤラインの両方をデータ通信用のバスラインとして用いた場合の動作を説明する図である。
【図１５】関連するシリアル通信システムにおける、ＭＤライン及びＳＤラインの両方をデータ通信用のバスラインとして用いた場合の動作を説明する図である。
【発明を実施するための形態】
【００１１】
本発明に係るシリアル通信システム及びシリアル通信方法の実施の形態について説明する。但し、本発明が以下の実施形態に限定される訳ではない。また、説明を明確にするため、以下の記載及び図面は、適宜、簡略化されている。
【００１２】
先ず、本発明に係るシリアル通信システム及びシリアル通信方法の技術的思想に想到した経緯について説明する。
特許文献１、２に開示されているシリアル通信システムにおいて、シリアル送受信を実現するために、通信準備状態を通知する、すなわち相手側のデバイスに通信準備状態を通知する制御信号用のバスラインもデータ送信に用いた場合を想定する。つまり、特許文献１、２に開示されているシリアル通信システムにおいて、ＭＤライン及びＳＤラインの両方を同時にデータ送信に使用した。
【００１３】
一般的にシリアル通信システムは、データ通信用のバスラインからの出力がＨの場合に、デバイスの通信準備状態を準備完了状態として固定している。一方、データ通信用のバスラインからの出力がＬの場合に、デバイスの通信準備状態をビジー状態として固定している。そのため、当該シリアル通信システムは、以下のように動作する。但し、出力が逆に固定されている場合もある。
【００１４】
図１４は、制御信号用のバスラインを用いてデータ通信を行い、その最終ビットが０である場合のタイミング図を示す。また図１５は、制御信号用のバスラインを用いてデータ通信を行い、その最終ビットが１である場合のタイミング図を示す。
第１のフェーズの最終ビットＨ０が０（Ｌ出力）である場合は、図１４に示すとおり、デバイスの通信準備が完了すると、当該デバイスからの出力をアイドル状態Ｈに変化させる。その結果、相手側のデバイスに通信準備完了を通知することができるため、問題は発生しない。
【００１５】
しかし図１５に示すとおり、第１のフェーズの最終ビットＨ０が１（Ｈ出力）である場合は、送信終了時点で既にアイドル状態Ｈとなっている。そのため、デバイスの通信準備状態がビジー状態であったとしても、相手側のデバイスに通信準備状態を通知することができない。
すなわち、マスタＩＣとスレーブＩＣとの間を３線シリアルでデータの通信を行う場合、マスタＩＣがシリアルクロックを出力しシリアル送受信のタイミングを決定する。スレーブＩＣは、マスタＩＣからシリアルクロックが供給される。つまり、通信タイミングはマスタＩＣに委ねることとなるが、もしスレーブＩＣ自身がシリアル送受信の準備を行っている状態（ビジー状態）で、マスタＩＣがシリアル送受信を開始してしまうと、通信が成り立たなくなってしまう。そのため、マスタＩＣがシリアル送受信を開始しないように、スレーブＩＣの通信準備状態がビジー状態であることを、マスタＩＣに通知するハンドシェイクの仕組みが必要となる。
【００１６】
本発明は、ハンドシェイク機能実現のための新規バスラインを設けることなく、データ通信用のバスラインだけを用いてマスタＩＣにスレーブＩＣの通信準備状態を通知するハンドシェイク機能を実現する。具体的には、スレーブＩＣの通信準備状態がビジー状態の場合における当該スレーブＩＣからの出力を、送信データの最終ビット値に関連させることを特徴とする。つまり、スレーブＩＣの通信準備状態がビジー状態の場合には、当該スレーブＩＣからの出力は最後に送信したデータの最終ビット値と等しくし、スレーブＩＣの通信準備状態が完了状態の場合には、当該スレーブＩＣからの出力は最後に送信したデータの最終ビット値と反転するように、データ通信毎に変化させることを特徴とする。
これにより、データの最終ビット値によってハンドシェイク機能が実現できなくなる前述の問題を回避することが可能である。
以下、本発明に係るシリアル通信システム及びシリアル通信方法を更に詳細に説明する。
【００１７】
＜実施の形態１＞
本発明に係るシリアル通信システム及びシリアル通信方法の実施の形態１を、図面に基づいて説明する。
シリアル通信システム１は、図１に示すように、第１のデバイス２と、第２のデバイス３と、第１〜第３のバスライン４〜６と、を有する。
【００１８】
第１のデバイス２は、第２のデバイス３からシリアルクロックが入力される側のデバイスであり、スレーブＩＣである。第１のデバイス２は、受信インターフェース２０と、送信インターフェース２１と、出力制御部２２と、データ処理部２３と、記憶部２４と、を有する。
【００１９】
受信インターフェース２０は、第２のデバイス３から入力されたシリアルクロックに基づいて、当該第２のデバイス３から第１のバスライン４を介して送信されたデータを受信する。送信インターフェース２１は、第２のデバイス３から入力されたシリアルクロックに基づいて、当該第２のデバイス３に第２のバスライン５を介してデータを送信する。
【００２０】
出力制御部２２は、第１のデバイス２における次フェーズのデータの通信準備が完了すると、送信インターフェース２１からの出力を前フェーズにおいて送信したデータの最終ビット値と反転させる。データ処理部２３は、受信インターフェース２０が受信したデータを記憶部２４に格納したり、記憶部２４から第２のデバイス３に送信するデータを取得し、当該第２のデバイス３への次フェーズのデータの通信準備が完了したことを出力制御部２２に指示したりする。記憶部２４は、第２のデバイス３から受信したデータや第２のデバイス３に送信するデータなどを格納する。
【００２１】
このような第１のデバイス２は、例えば以下のように動作する。図２は、第１のデバイス２の動作を示すフローチャートである。
先ず、第１のデバイス２は、第２のデバイス３からシリアルクロックが受信インターフェース２０及び送信インターフェース２１に入力されることによって、データの通信（送受信）を行う（ステップＳ１）。このとき、受信インターフェース２０は、第２のデバイス３から送信される１フェーズ分のデータを１ビットづつ受信し、データ処理部２３に出力する。一方、送信インターフェース２１は、データ処理部２３が記憶部２４から呼び出した１フェーズ分のデータを１ビットづつ、第２のデバイス３に送信する。
【００２２】
次に、データ処理部２３は、受信インターフェース２０から入力されるデータのビット量、及び送信インターフェース２１から送信されるデータのビット量等から、１フェーズ分のデータの通信が完了したか否かを判断する（ステップＳ２）。
【００２３】
データ処理部２３は、１フェーズ分のデータの通信が完了したと判断すると、受信インターフェース２０から入力されたデータの全ビットを記憶部２４に格納する（ステップＳ３）。さらにデータ処理部２３は、第２のデバイス３に送信する次フェーズのデータを記憶部２４から呼び出し、通信準備を行う（ステップＳ４）。ちなみに、本実施形態では、データ処理部２３は、先に受信インターフェース２０から入力されたデータの全ビットを記憶部２４に格納し終えてから、第２のデバイス３に送信する次フェーズのデータを記憶部２４から呼び出す。そのため、本実施形態の通信準備は、第２のデバイス３からの次フェーズのデータの受信準備は完了しているものとみなすことができ、実質的には第２のデバイス３への次フェーズのデータの送信準備となる。
一方、データ処理部２３は、１フェーズ分のデータの通信が完了していないと判断すると、もう一度ステップＳ２に戻る。
【００２４】
次に、データ処理部２３は、記憶部２４から第２のデバイス３に送信する次フェーズのデータを取得し、次フェーズのデータの通信準備が完了したか否かを判断する（ステップＳ５）。
【００２５】
データ処理部２３は、次フェーズのデータの通信準備が完了したと判断すると、出力制御部２２に第２のデバイス３への出力を前フェーズにおいて送信したデータの最終ビット値と反転させるように指示する。
出力制御部２２は、前フェーズにおいて送信したデータの最終ビット値を判断する（ステップＳ６）。出力制御部２２は、前フェーズにおいて送信したデータの最終ビット値がＬの場合、Ｈに反転させて第２のデバイス３に出力する（ステップＳ７）。一方、出力制御部２２は、前フェーズにおいて送信したデータの最終ビット値がＨの場合、Ｌに反転させて第２のデバイス３に出力する（ステップＳ８）。
【００２６】
一方、データ処理部２３は、次フェーズのデータの通信準備が完了していないと判断すると、もう一度ステップＳ５に戻る。このとき、データ処理部２３は、出力制御部２２への指示を行わない。そのため、第２のデバイス３への出力は、前フェーズにおいて送信したデータの最終ビット値と等しい状態が維持される。
【００２７】
上述の各ステップＳ１〜Ｓ８を繰り返すことで、第１のデバイス２における次フェーズのデータの通信準備状態を第２のデバイス３に通知することができる。つまり、第１のデバイス２は、次フェーズのデータの通信準備状態がビジー状態の場合、第２のデバイス３への出力を前フェーズにおいて送信したデータの最終ビット値と等しくし、第２のデバイス３に通知する。一方、第１のデバイス２は、次フェーズのデータの通信準備状態が完了状態の場合、第２のデバイス３への出力を前フェーズにおいて送信したデータの最終ビット値と反転させて、第２のデバイス３に通知する。
【００２８】
第２のデバイス３は、第１のデバイス２と第２のデバイス３とのデータ通信を司るシリアルクロックを生成する側のデバイスであり、マスタＩＣである。第２のデバイス３は、受信インターフェース３０と、送信インターフェース３１と、レベル検出部３２と、データ処理部３３と、記憶部３４と、クロックジェネレータ３５と、を有する。
【００２９】
受信インターフェース３０は、クロックジェネレータ３５が生成したシリアルクロックに基づいて、第１のデバイス２から第２のバスライン５を介して送信されたデータを受信する。送信インターフェース３１は、クロックジェネレータ３５が生成したシリアルクロックに基づいて、第１のデバイス２に第１のバスライン４を介してデータを送信する。
【００３０】
レベル検出部３２は、第１のデバイス２からの出力が前フェーズにおいて受信したデータの最終ビット値と反転しているか否かを判断する。
すなわち、レベル検出部３２は、第１のデバイス２からの出力が前フェーズにおいて受信したデータの最終ビット値と反転していると、第１のデバイス２における次フェーズのデータの通信準備状態が完了状態であると判断する。そして、レベル検出部３２は、第１のデバイス２における次フェーズのデータの通信準備状態が完了状態であると判断すると、クロックジェネレータ３５にシリアルクロックを生成するように指示する。
【００３１】
一方、レベル検出部３２は、第１のデバイス２からの出力が前フェーズにおいて受信したデータの最終ビット値と等しいと、第１のデバイス２における次フェーズのデータの通信準備状態がビジー状態であると判断する。そのため、レベル検出部３２はクロックジェネレータ３５への指示を行わない。
【００３２】
データ処理部３３は、受信インターフェース３０が受信したデータを記憶部３４に格納したり、記憶部３４から第１のデバイス２に送信するデータを取得し、当該第１のデバイス２への次フェーズのデータの通信準備が完了すると、クロックジェネレータ３５にシリアルクロックの生成を指示したりする。
【００３３】
すなわち、データ処理部３３は、記憶部３４に第１のデバイス２から受信したデータが全て格納され、且つ記憶部３４から第１のデバイス２に送信する次フェーズのデータを取得して、第２のデバイス３における次フェーズのデータの通信準備が完了したか否かを判断する。
【００３４】
データ処理部３３は、次フェーズのデータの通信準備が完了したと判断すると、クロックジェネレータ３５にシリアルクロックを生成するように指示する。一方、データ処理部３３は、次フェーズのデータの通信準備が完了していないと判断すると、クロックジェネレータ３５への指示を行わない。
【００３５】
記憶部３４は、第１のデバイス２から受信したデータや第１のデバイス２に送信するデータなどを格納する。
クロックジェネレータ３５は、レベル検出部３２及びデータ処理部３３の双方から指示を受けると、シリアルクロックを生成する。このシリアルクロックは、第１のデバイス２の受信インターフェース２０、送信インターフェース２１、及び受信インターフェース３０、送信インターフェース３１に入力される。すなわち、第１のデバイス２と第２のデバイス３とは、当該シリアルクロックに基づいて、相互通信を開始する構成とされている。
【００３６】
このような第２のデバイス３は、例えば以下のように動作する。図３は、第２のデバイス３の動作を示すフローチャートである。
先ず、第２のデバイス３は、シリアルクロックが受信インターフェース３０及び送信インターフェース３１に入力されることによって、データの通信を行う（ステップＳ１１）。このとき、受信インターフェース３０は、第１のデバイス２から送信される１フェーズ分のデータを１ビットづつ受信し、データ処理部３３に出力する。一方、送信インターフェース３１は、データ処理部３３が記憶部３４から呼び出した１フェーズ分のデータを１ビットづつ、第１のデバイス２に送信する。
【００３７】
次に、データ処理部３３は、受信インターフェース３０から入力されるデータのビット量、及び送信インターフェース３１から送信されるデータのビット量等から、１フェーズ分のデータの通信が完了したか否かを判断する（ステップＳ１２）。
【００３８】
データ処理部３３は、１フェーズ分のデータの通信が完了したと判断すると、受信インターフェース３０から入力されたデータの全ビットを記憶部３４に格納する（ステップＳ１３）。さらにデータ処理部３３は、第１のデバイス２に送信する次フェーズのデータを記憶部３４から呼び出し、通信準備を行う（ステップＳ１４）。ちなみに、本実施形態では、データ処理部３３は、先に受信インターフェース３０から入力されたデータの全ビットを記憶部３４に格納し終えてから、第１のデバイス２に送信する次フェーズのデータを記憶部３４から呼び出す。そのため、本実施形態の通信準備は、第１のデバイス２からの次フェーズのデータの受信準備は完了しているものとみなすことができ、実質的には第１のデバイス２への次フェーズのデータの送信準備となる。
一方、データ処理部３３は、１フェーズ分のデータの通信が完了していないと判断すると、もう一度ステップＳ１２に戻る。
【００３９】
次に、データ処理部３３は、記憶部３４から第１のデバイス２に送信する次フェーズのデータを取得し、次フェーズのデータの通信準備が完了したか否かを判断する（ステップＳ１５）。
データ処理部３３は、次フェーズのデータの通信準備が完了したと判断すると、クロックジェネレータ３５にシリアルクロックを生成するように指示する。
【００４０】
次に、レベル検出部３２は、前フェーズにおいて受信したデータの最終ビット値を判断する（ステップＳ１６）。そして、レベル検出部３２は、第１のデバイス２からの出力が前フェーズにおいて受信したデータの最終ビット値と反転しているか否かを判断する。
すなわち、レベル検出部３２は、前フェーズにおいて受信したデータの最終ビット値がＬの場合、第１のデバイス２からの出力がＨか否かを判断する（ステップＳ１７）。
【００４１】
レベル検出部３２は、第１のデバイス２からの出力がＨの場合、第１のデバイス２における次フェーズのデータの通信準備状態が完了状態であると判断し、クロックジェネレータ３５にシリアルクロックを生成するように指示する。一方、レベル検出部３２は、第１のデバイス２からの出力がＬの場合、第１のデバイス２における次フェーズのデータの通信準備状態がビジー状態であると判断し、クロックジェネレータ３５への指示を行わない。
【００４２】
また、レベル検出部３２は、前フェーズにおいて受信したデータの最終ビット値がＨの場合、第１のデバイス２からの出力がＬか否かを判断する（ステップＳ１８）。
レベル検出部３２は、第１のデバイス２からの出力がＬの場合、第１のデバイス２における次フェーズのデータの通信準備状態が完了状態であると判断し、クロックジェネレータ３５にシリアルクロックを生成するように指示する。一方、レベル検出部３２は、第１のデバイス２からの出力がＨの場合、第１のデバイス２における次フェーズのデータの通信準備状態がビジー状態であると判断し、クロックジェネレータ３５への指示を行わない。
【００４３】
上述の各ステップＳ１１〜Ｓ１８を繰り返すことで、第２のデバイス３は、第１のデバイス２における次フェーズのデータの通信準備状態を取得することができる。但し、上述のステップでは、第２のデバイス３における次フェーズのデータの通信準備が完了した後に、第１のデバイス２からの出力値を検出しているが、当該通信準備が完了する前から断続的に、第１のデバイス２からの出力値を検出しても良い。この場合、第１のデバイス２における次フェーズのデータの通信準備が完了すると、クロックジェネレータ３５にシリアルクロックを生成するように指示するが、クロックジェネレータ３５は第２のデバイス３における次フェーズのデータの通信準備が完了するまで、シリアルクロックの生成を待つことになる。
【００４４】
第１のバスライン４は、第２のデバイス３から第１のデバイス２にデータを送信するデータ通信用のＭＤラインである。第２のバスライン５は、第１のデバイス２から第２のデバイス３にデータを送信するデータ通信用のＳＤラインである。第３のバスライン６は、第２のデバイス３から第１のデバイス２にシリアルクロックを送信するクロック通信用のＣＬＫラインである。
【００４５】
このようなシリアル通信システム１は、シリアルクロックを生成する側の第２のデバイス３が第１のデバイス２から受信したデータの出力値に基づいて、第１のデバイス２における次フェーズのデータの通信準備状態を取得することができる。そのため、新たに制御信号用のバスラインを設けなくても、第１のバスライン及び第２のバスラインを同時にデータ通信用のバスラインとして使用しつつ、良好にハンドシェイク機能を実現することができる。
【００４６】
このようなシリアル通信システム１を用いて、以下のようにシリアル通信方法を実現することができる。先ず、第１のデバイス２が送信したデータの最終ビット値がＬの場合を説明する。図４は、第１のデバイス２が送信したデータの最終ビット値がＬの場合におけるシリアル通信システムの動作を示すタイミング図である。ここでは、シリアル通信の転送ビット長を８ビットとする。第１のバスライン４から送信されるデータの各ビットをＭ０〜Ｍ７、次フェーズにおいて送信されるデータの各ビットをＭ０'〜Ｍ７'とする。第２のバスライン５から送信されるデータの各ビットをＳ０〜Ｓ７、次フェーズにおいて送信されるデータの各ビットをＳ０'〜Ｓ７'とする。これらデータの並びはＭＳＢ（Most Significant Bit）ファーストとするため、先頭ビットをそれぞれＭ７、Ｓ７、Ｍ７'、Ｓ７'、最終ビットをＭ０、Ｓ０、Ｍ０'、Ｓ０'としている。
【００４７】
先ず、第２のデバイス３は、シリアルクロックを生成する。当該シリアルクロックに基づいて、第１のデバイス２からデータＳ７〜Ｓ０が第２のデバイス３に送信される。同時に当該シリアルクロックに基づいて、第２のデバイス３からデータＭ７〜Ｍ０が第１のデバイス２に送信される。このとき、初期状態の相互の出力値を決定しておき、当該決定した出力値と等しい場合は通信準備状態がビジー状態、当該決定した出力値と反転している場合は通信準備状態が完了状態とすることにより、初期通信が実現可能である。
【００４８】
次に、第１のデバイス２は、１フェーズ分のデータＳ７〜Ｓ０の送信が完了すると共に、第２のデバイス３からのデータＭ７〜Ｍ０の受信が完了すると、次フェーズのデータの通信準備を行う。一方、第２のデバイス３は、１フェーズ分のデータＭ７〜Ｍ０の送信が完了すると共に、第１のデバイス２からのデータＳ７〜Ｓ０の受信が完了すると、次フェーズのデータの通信準備を行う。
【００４９】
第１のデバイス２は、次フェーズのデータの通信準備が完了すると、第１のデバイス２からの出力を反転させてＬからＨとする。第２のデバイス３は、第１のデバイス２からの出力値を検出しておき、当該第１のデバイス２からの出力がＬからＨに反転したことを検出すると、自身の次フェーズのデータの通信準備状態に加え、第１のデバイス２も次フェーズのデータの通信準備状態が完了状態であると判断し、シリアルクロックを生成する。
【００５０】
その後は、当該生成したシリアルクロックに基づいて、第１のデバイス２からデータＳ７'〜Ｓ０'が第２のデバイス３に送信される。同時に当該シリアルクロックに基づいて、第２のデバイス３からデータＭ７'〜Ｍ０'が第１のデバイス２に送信される。
【００５１】
次に、第１のデバイス２が送信したデータの最終ビット値がＨの場合を説明する。図５は、第１のデバイス２が送信したデータの最終ビット値がＨの場合におけるシリアル通信システムの動作を示すタイミング図である。図５に示すように、第１のデバイス２が送信したデータの最終ビット値が逆の場合であっても略同様に、第２のデバイス３は第１のデバイス２における次フェーズのデータの通信準備状態を取得することができる。
【００５２】
このようなシリアル通信方法は、シリアルクロックを生成する側の第２のデバイス３が第１のデバイス２から受信したデータの出力値に基づいて、第１のデバイス２における次フェーズのデータの通信準備状態を取得することができる。そのため、新たに制御信号用のバスラインを設けなくても、第１のバスライン及び第２のバスラインを同時にデータ通信用のバスラインとして使用しつつ、良好にハンドシェイク機能を実現することができる。
【００５３】
＜実施の形態２＞
本発明に係るシリアル通信システム及びシリアル通信方法の実施の形態２を、図面に基づいて説明する。
【００５４】
シリアル通信システム１００は、図６に示すように、第１のデバイス２００と、第２のデバイス３００と、第１〜第３のバスライン４〜６と、を有する。すなわち、シリアル通信システム１００は、上記実施の形態１のシリアル通信システム１と略同様であるため、重複する説明は省略する。
【００５５】
第１のデバイス２００は、上記実施の形態１の第１のデバイス２の構成に加えて、さらにレベル検出部２５を有する。レベル検出部２５は、後述するように第２のデバイス３００からの出力が前フェーズにおいて受信したデータの最終ビット値と反転しているか否かを判断する。
【００５６】
すなわち、レベル検出部２５は、第２のデバイス３００からの出力が前フェーズにおいて受信したデータの最終ビット値と反転していると、第２のデバイス３００における次フェーズのデータの通信準備状態が完了状態であると判断する。そして、レベル検出部２５は、第２のデバイス３００における次フェーズのデータの通信準備状態が完了状態であると判断すると、出力制御部２２に第１のデバイス２００からの出力を前フェーズにおいて送信したデータの最終ビット値と反転させるように指示する。
【００５７】
データ処理部２３は、第１のデバイス２００における次フェーズのデータの通信準備が完了すると、出力制御部２２に第１のデバイス２００からの出力を前フェーズにおいて送信したデータの最終ビット値と反転させるように指示する。
出力制御部２２は、当該データ処理部２３及び当該レベル検出部２５の双方からの指示を受けると、第１のデバイス２００からの出力を前フェーズにおいて送信したデータの最終ビット値と反転させる。
【００５８】
一方、レベル検出部２５は、第２のデバイス３００からの出力が前フェーズにおいて受信したデータの最終ビット値と等しいと、第２のデバイス３００における次フェーズのデータの通信準備状態がビジー状態であると判断する。そのため、レベル検出部２５は、出力制御部２２への指示を行わない。
【００５９】
このような第１のデバイス２００は、例えば以下のように動作する。図７は、第１のデバイス２００の動作を示すフローチャートである。
先ず、第１のデバイス２００は、第２のデバイス３００からシリアルクロックが受信インターフェース２０及び送信インターフェース２１に入力されることによって、データの通信を行う（ステップＳ１０１）。このとき、受信インターフェース２０は、第２のデバイス３００から送信される１フェーズ分のデータを１ビットづつ受信し、データ処理部２３に出力する。一方、送信インターフェース２１は、データ処理部２３が記憶部２４から呼び出した１フェーズ分のデータを１ビットづつ、第２のデバイス３００に送信する。
【００６０】
次に、データ処理部２３は、受信インターフェース２０から入力されるデータのビット量、及び送信インターフェース２１から送信されるデータのビット量等から、１フェーズ分のデータの通信が完了したか否かを判断する（ステップＳ１０２）。
【００６１】
次に、データ処理部２３は、１フェーズ分のデータの通信が完了したと判断すると、受信インターフェース２０から入力されたデータの全ビットを記憶部２４に格納する（ステップＳ１０３）。一方、データ処理部２３は、１フェーズ分のデータの通信が完了していないと判断すると、もう一度ステップＳ１０２に戻る。
【００６２】
次に、レベル検出部２５は、前フェーズにおいて受信したデータの最終ビット値を判断する（ステップＳ１０４）。そして、レベル検出部２５は、第２のデバイス３００からの出力が前フェーズにおいて受信したデータの最終ビット値と反転しているか否かを判断する。
【００６３】
すなわち、レベル検出部２５は、前フェーズにおいて受信したデータの最終ビット値がＬの場合、第２のデバイス３００からの出力がＨか否かを判断する（ステップＳ１０５）。レベル検出部２５は、第２のデバイス３００からの出力がＨの場合、第２のデバイス３００における次フェーズのデータの通信準備状態が完了状態であると判断し、出力制御部２２に第１のデバイス２００からの出力を前フェーズにおいて送信したデータの最終ビット値と反転させるように指示する。一方、レベル検出部２５は、第２のデバイス３００からの出力がＬの場合、第２のデバイス３００における次フェーズのデータの通信準備状態がビジー状態であると判断し、出力制御部２２への指示を行わない。
【００６４】
また、レベル検出部２５は、前フェーズにおいて受信したデータの最終ビット値がＨの場合、第２のデバイス３００からの出力がＬか否かを判断する（ステップＳ１０６）。レベル検出部２５は、第２のデバイス３００からの出力がＬの場合、第２のデバイス３００における次フェーズのデータの通信準備状態が完了状態であると判断し、出力制御部２２に第１のデバイス２００からの出力を前フェーズにおいて送信したデータの最終ビット値と反転させるように指示する。一方、レベル検出部２５は、第２のデバイス３００からの出力がＨの場合、第２のデバイス３００における次フェーズのデータの通信準備状態がビジー状態であると判断し、出力制御部２２への指示を行わない。
【００６５】
次に、データ処理部２３は、第２のデバイス３００に送信する次フェーズのデータを記憶部２４から呼び出し、通信準備を行う（ステップＳ１０７）。ちなみに、本実施形態でも、データ処理部２３は、先に受信インターフェース２０から入力されたデータの全ビットを記憶部２４に格納し終えてから、第２のデバイス３００に送信する次フェーズのデータを記憶部２４から呼び出す。そのため、本実施形態の通信準備は、第２のデバイス３００からの次フェーズのデータの受信準備を完了しているものとみなすことができ、実質的には第２のデバイス３００への次フェーズのデータの送信準備となる。
【００６６】
次に、データ処理部２３は、記憶部２４から第２のデバイス３００に送信する次フェーズのデータを取得し、次フェーズのデータの通信準備が完了したか否かを判断する（ステップＳ１０８）。データ処理部２３は、第１のデバイス２００における次フェーズのデータの通信準備が完了したと判断すると、出力制御部２２に第１のデバイス２００からの出力を前フェーズにおいて送信したデータの最終ビット値と反転させるように指示する。
【００６７】
次に、出力制御部２２は、第１のデバイス２００からの出力を前フェーズにおいて送信したデータの最終ビット値と反転させるように、データ処理部２３及びレベル検出部２５の双方から指示を受けると、当該前フェーズにおいて送信したデータの最終ビット値を判断する（ステップＳ１０９）。出力制御部２２は、前フェーズにおいて送信したデータの最終ビット値がＬの場合、当該出力をＨに反転させて第２のデバイス３００に出力する（ステップＳ１１０）。一方、出力制御部２２は、前フェーズにおいて送信したデータの最終ビット値がＨの場合、当該出力をＬに反転させて第２のデバイス３００に出力する（ステップＳ１１１）。
【００６８】
一方、データ処理部２３は、次フェーズのデータの通信準備が完了していないと判断すると、もう一度ステップＳ１０８に戻る。このとき、データ処理部２３は、出力制御部２２への指示を行わない。そのため、第２のデバイス３００への出力は、前フェーズにおいて送信したデータの最終ビット値と等しい状態が維持される。
【００６９】
上述の各ステップＳ１０１〜Ｓ１１１を繰り返すことで、第１のデバイス２００は、第２のデバイス３００における次フェーズのデータの通信準備状態を取得することができ、さらに第１のデバイス２００における次フェーズのデータの通信準備状態を第２のデバイス３００に通知することができる。
【００７０】
第２のデバイス３００は、上記実施の形態１の第２のデバイス３の構成に加えて、さらに出力制御部３６を有する。出力制御部３６は、第２のデバイス３００における次フェーズのデータの通信準備が完了すると、第２のデバイス３００からの出力を前フェーズにおいて送信したデータの最終ビット値と反転させる。この場合、出力制御部３６は、第１のデバイス２００への次フェーズのデータの通信準備が完了し、第２のデバイス３００からの出力を前フェーズにおいて送信したデータの最終ビット値と反転させる旨のデータ処理部３３からの指示に基づいて動作する。
【００７１】
このような第２のデバイス３００は、例えば以下のように動作する。図８は、第２のデバイス３００の動作を示すフローチャート図である。
先ず、第２のデバイス３００は、シリアルクロックが受信インターフェース３０及び送信インターフェース３１に入力されることによって、データの通信を行う（ステップＳ１００１）。このとき、受信インターフェース３０は、第１のデバイス２００から送信される１フェーズ分のデータを１ビットづつ受信し、データ処理部３３に出力する。一方、送信インターフェース３１は、データ処理部３３が記憶部３４から呼び出した１フェーズ分のデータを１ビットづつ、第１のデバイス２００に送信する。
【００７２】
次に、データ処理部３３は、受信インターフェース３０から入力されるデータのビット量、及び送信インターフェース３１から送信されるデータのビット量等から、１フェーズ分のデータの通信が完了したか否かを判断する（ステップＳ１００２）。
【００７３】
データ処理部３３は、１フェーズ分のデータの通信が完了したと判断すると、受信インターフェース３０から入力されたデータの全ビットを記憶部３４に格納する（ステップＳ１００３）。さらにデータ処理部３３は、第１のデバイス２００に送信する次フェーズのデータを記憶部３４から呼び出し、通信準備を行う（ステップＳ１００４）。ちなみに、本実施形態では、データ処理部３３は、先に受信インターフェース３０から入力されたデータの全ビットを記憶部３４に格納し終えてから、第１のデバイス２００に送信する次フェーズのデータを記憶部３４から呼び出す。そのため、本実施形態の通信準備は、第１のデバイス２００からの次フェーズのデータの受信準備を完了しているものとみなすことができ、実質的には第１のデバイス２００への次フェーズのデータの送信準備となる。
一方、データ処理部３３は、１フェーズ分のデータの通信が完了していないと判断すると、もう一度ステップＳ１００２に戻る。
【００７４】
次に、データ処理部３３は、記憶部３４から第１のデバイス２００に送信する次フェーズのデータを取得し、次フェーズのデータの通信準備が完了したか否かを判断する（ステップＳ１００５）。
【００７５】
データ処理部３３は、次フェーズのデータの通信準備が完了したと判断すると、クロックジェネレータ３５にシリアルクロックを生成するように指示すると共に、出力制御部３６に第２のデバイス３００からの出力を前フェーズにおいて送信したデータの最終ビット値と反転させるように指示する。
【００７６】
次に、出力制御部３６は、第２のデバイス３００からの出力を前フェーズにおいて送信したデータの最終ビット値と反転させるように、データ処理部３３から指示を受けると、当該前フェーズにおいて送信したデータの最終ビット値を判断する（ステップＳ１００６）。出力制御部３６は、前フェーズにおいて送信したデータの最終ビット値がＬの場合、当該出力をＨに反転させて第１のデバイス２００に出力する（ステップＳ１００７）。一方、出力制御部３６は、前フェーズにおいて送信したデータの最終ビット値がＨの場合、当該出力をＬに反転させて第１のデバイス２００に出力する（ステップＳ１００８）。
【００７７】
一方、データ処理部３３は、次フェーズのデータの通信準備が完了していないと判断すると、もう一度ステップＳ１００５に戻る。このとき、データ処理部３３は、出力制御部３６への指示を行わない。そのため、第１のデバイス２００への出力は、前フェーズにおいて送信したデータの最終ビット値と等しい状態が維持される。
【００７８】
次に、レベル検出部３２は、前フェーズにおいて受信したデータの最終ビット値を判断する（ステップＳ１００９）。そして、レベル検出部３２は、第１のデバイス２００からの出力が前フェーズにおいて受信したデータの最終ビット値と反転しているか否かを判断する。
【００７９】
すなわち、レベル検出部３２は、前フェーズにおいて受信したデータの最終ビット値がＬの場合、第１のデバイス２００からの出力がＨか否かを判断する（ステップＳ１０１０）。レベル検出部３２は、第１のデバイス２００からの出力がＨの場合、第１のデバイス２００における次フェーズのデータの通信準備状態が完了状態であると判断し、クロックジェネレータ３５にシリアルクロックを生成するように指示する。一方、レベル検出部３２は、第１のデバイス２００からの出力がＬの場合、第１のデバイス２００における次フェーズのデータの通信準備状態がビジー状態であると判断し、クロックジェネレータ３５への指示を行わない。
【００８０】
また、レベル検出部３２は、前フェーズにおいて受信したデータの最終ビット値がＨの場合、第１のデバイス２００からの出力がＬか否かを判断する（ステップＳ１０１１）。レベル検出部３２は、第１のデバイス２００からの出力がＬの場合、第１のデバイス２００における次フェーズのデータの通信準備状態が完了状態であると判断し、クロックジェネレータ３５にシリアルクロックを生成するように指示する。一方、レベル検出部３２は、第１のデバイス２００からの出力がＨの場合、第１のデバイス２００における次フェーズのデータの通信準備状態がビジー状態であると判断し、クロックジェネレータ３５への指示を行わない。
【００８１】
上述の各ステップＳ１００１〜Ｓ１０１１を繰り返すことで、第２のデバイス３００は、第１のデバイス２００における次フェーズのデータの通信準備状態を取得することができる。但し、上述のステップでは、第２のデバイス３００における次フェーズのデータの通信準備が完了した後に、第１のデバイス２００からの出力値を検出しているが、当該通信準備が完了する前から断続的に、第１のデバイス２００からの出力値を検出しても良い。この場合、第１のデバイス２００における次フェーズのデータの通信準備が完了すると、クロックジェネレータ３５にシリアルクロックを生成するように指示するが、クロックジェネレータ３５は第２のデバイス３００における次フェーズのデータの通信準備が完了するまで、シリアルクロックの生成を待つことになる。
【００８２】
このようなシリアル通信システム１００は、シリアルクロックを生成する側の第２のデバイス３００が第１のデバイス２００から受信したデータの出力値に基づいて、第１のデバイス２００における次フェーズのデータの通信準備状態を取得することができる。そのため、新たに制御信号用のバスラインを設けなくても、第１のバスライン及び第２のバスラインを同時にデータ通信用のバスラインとして使用しつつ、良好にハンドシェイク機能を実現することができる。
【００８３】
特に、このようなシリアル通信システム１００は、第１のデバイス２００における次フェーズのデータの通信準備が第２のデバイス３００から受信したデータの出力に基づいて行われる。このような構成により、例えば第１のデバイス２００における次フェーズのデータの通信準備を行うタイミングを、第２のデバイス３００から制御したい場合や、第２のデバイス３００がシリアル通信を開始する直前のタイミングで第１のデバイス２００における次フェーズのデータの通信準備を行う必要がある場合などに好適である。
【００８４】
このようなシリアル通信システム１００を用いて、以下のようにシリアル通信方法を実現することができる。先ず、第２のデバイス３００が送信したデータの最終ビット値がＬの場合を説明する。図９は、第２のデバイス３００が送信したデータの最終ビット値がＬの場合におけるシリアル通信システムの動作を示すタイミング図である。ここでは、シリアル通信の転送ビット長を８ビットとする。第１のバスライン４から送信されるデータの各ビットをＭ０〜Ｍ７、次フェーズにおいて送信されるデータの各ビットをＭ０'〜Ｍ７'とする。第２のバスライン５から送信されるデータの各ビットをＳ０〜Ｓ７、次フェーズにおいて送信されるデータの各ビットをＳ０'〜Ｓ７'とする。これらデータの並びはＭＳＢファーストとするため、先頭ビットをそれぞれＭ７、Ｓ７、Ｍ７'、Ｓ７'、最終ビットをＭ０、Ｓ０、Ｍ０'、Ｓ０'としている。
【００８５】
先ず、第２のデバイス３００は、シリアルクロックを生成する。当該シリアルクロックに基づいて、第１のデバイス２００からデータＳ７〜Ｓ０が第２のデバイス３００に送信される。同時に当該シリアルクロックに基づいて、第２のデバイス３００からデータＭ７〜Ｍ０が第１のデバイス２００に送信される。このとき、初期状態の相互の出力値を決定しておき、当該決定した出力値と等しい場合は通信準備状態がビジー状態、当該決定した出力値と反転している場合は通信準備状態が完了状態とすることにより、初期通信が実現可能である。
【００８６】
次に、第２のデバイス３００は、１フェーズ分のデータＭ７〜Ｍ０の送信が完了すると共に、第１のデバイス２００からデータＳ７〜Ｓ０の受信が完了すると、次フェーズのデータの通信準備を行う。
【００８７】
第２のデバイス３００は、次フェーズのデータの通信準備が完了すると、第２のデバイス３００からの出力を反転させてＬからＨとする。第１のデバイス２００は、第２のデバイス３００からの出力値を検出しておき、当該第２のデバイス３００からの出力がＬからＨに反転したことを検出すると、次フェーズのデータの通信準備を行う。そして、第１のデバイス２００は、第２のデバイス３００における次フェーズのデータの通信準備状態に加え、自身の次フェーズのデータの通信準備状態が完了すると、第１のデバイス２００からの出力を反転させる。第２のデバイス３００は、第１のデバイス２００からの出力値を検出しておき、当該第１のデバイス２００からの出力が反転したことを検出すると、自身の次フェーズのデータの通信準備状態に加え、第１のデバイス２００における次フェーズのデータの通信準備状態が完了状態であると判断し、シリアルクロックを生成する。但し、図９では、第１のデバイス２００からの出力をＨからＬに反転させているが、当該出力をＬからＨに反転させる場合もある。
【００８８】
その後は、当該生成したシリアルクロックに基づいて、第１のデバイス２００からデータＳ７'〜Ｓ０'が第２のデバイス３００に送信される。同時に当該シリアルクロックに基づいて、第２のデバイス３００からデータＭ７'〜Ｍ０'が第１のデバイス２００に送信される。
【００８９】
次に、第２のデバイス３００が送信したデータの最終ビット値がＨの場合を説明する。図１０は、第２のデバイス３００が送信したデータの最終ビット値がＨの場合におけるシリアル通信システムの動作を示すタイミング図である。図１０に示すように、第２のデバイス３００が送信したデータの最終ビット値が逆の場合であっても同様に、相互のデバイスは相手側のデバイスにおける次フェーズのデータの通信準備状態を取得することができる。但し、図１０では、第１のデバイス２００からの出力をＨからＬに反転させているが、当該出力をＬからＨに反転させる場合もある。
【００９０】
このようなシリアル通信方法も、シリアルクロックを受信する側の第１のデバイス２００が第２のデバイス３００から受信したデータの出力値に基づいて、第２のデバイス３００における次フェーズのデータの通信準備状態を取得することができる。そのため、新たに制御信号用のバスラインを設けなくても、第１のバスライン及び第２のバスラインを同時にデータ通信用のバスラインとして使用しつつ、良好にハンドシェイク機能を実現することができる。
【００９１】
特に、このようなシリアル通信方法は、第１のデバイス２００における次フェーズのデータの通信準備が第２のデバイス３００から受信したデータの出力に基づいて行われる。これにより、例えば第１のデバイス２００における次フェーズのデータの通信準備を行うタイミングを、第２のデバイス３００から制御したい場合や、第２のデバイス３００がシリアル通信を開始する直前のタイミングで第１のデバイス２００における次フェーズのデータの通信準備を行う必要がある場合などに好適である。
【００９２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、相手側のデバイスにおける次フェーズのデータの通信準備状態を判断するタイミングや、次フェーズのデータの通信準備を行うタイミングなどは適宜、変更される。要するに、第１のデバイスにおける次フェーズのデータの通信準備が完了すると、当該第１のデバイスは出力を前フェーズにおいて送信したデータの最終ビット値と反転させて第２のデバイスに送信する。当該第２のデバイスは、第１のデバイスからの出力が前フェーズにおいて受信したデータの最終ビット値と反転していると、第１のデバイスにおける次フェーズのデータの通信準備状態が完了状態であると判断し、相互のシリアル通信を行えば良い。
【符号の説明】
【００９３】
１  シリアル通信システム
２  第１のデバイス、２０  受信インターフェース、２１  送信インターフェース、２２  出力制御部、２３  データ処理部、２４  記憶部、２５  レベル検出部
３  第２のデバイス、３０  受信インターフェース、３１  送信インターフェース、３２  レベル検出部、３３  データ処理部、３４  記憶部、３５  クロックジェネレータ、３６  出力制御部
４  第１のバスライン
５  第２のライン
６  第３のライン
１００  シリアル通信システム
２００  第１のデバイス
３００  第２のデバイス
【図１】
2010288184.tif 000003
【図２】
2010288184.tif 000004
【図３】
2010288184.tif 000005
【図４】
2010288184.tif 000006
【図５】
2010288184.tif 000007
【図６】
2010288184.tif 000008
【図７】
2010288184.tif 000009
【図８】
2010288184.tif 000010
【図９】
2010288184.tif 000011
【図１０】
2010288184.tif 000012
【図１１】
2010288184.tif 000013
【図１２】
2010288184.tif 000014
【図１３】
2010288184.tif 000015
【図１４】
2010288184.tif 000016
【図１５】
2010288184.tif 000017