(57)【要約】【課題】直列に複数接続された電子デバイス間の通信速度を動的に切り替えることができる電子システムを提供する。【解決手段】ホストコントローラ１０１には、前段の通信デバイス１２１及び後段の通信デバイス１４１が直列に接続される。ホストコントローラ１０１は、後段の通信デバイス１４１の通信速度を予め定められた通信速度に制御した後に、前段の通信デバイス１２１の通信速度を後段の通信デバイス１４１の通信速度と同じ通信速度に制御する。【選択図】図１
2014041548.tif 000002
【特許請求の範囲】
【請求項１】
第１デバイス、第２デバイスおよび第３デバイスが通信ラインを介して直列接続されているシステムであり、
前記第１デバイスと前記第２デバイスとを接続する第１通信ラインと、
前記第２デバイスと前記第３デバイスとを接続する第２通信ラインとを有し、
前記第１デバイスは、通信速度を第１速度に変更するためのコマンドを、前記第２デバイスを介して前記第３デバイスに送信し、
前記第３デバイスの速度変更終了後に、前記第１デバイスは、通信速度を前記第１速度へ変更するためのコマンドを前記第２デバイスに送信し、
前記第２デバイスの速度変更終了後に、前記第１デバイスは通信速度を前記第１速度へ変更することを特徴とする、
電子システム。
【請求項２】
前記第３デバイスは、
通信速度を前記第１速度に変更するためのコマンドを受信したことに基づく応答を、前記第２デバイスを介して前記第１デバイスに送信し、
前記応答を前記第１デバイスに送信した後に、通信速度を前記第１速度に切り替え、
前記第１デバイスは、
前記応答を受信した後に、通信速度を前記第１速度へ変更するためのコマンドを前記第２デバイスに送信することを特徴とする、
請求項１記載の電子システム。
【請求項３】
前記第１デバイス、前記第２デバイスおよび前記第３デバイスは、起動時に、前記第１の通信速度より遅い第２の通信速度に設定し、
前記第２の通信速度で確立した通信において、前記第１デバイスは、通信速度を前記第１速度に変更するためのコマンドを、前記第３デバイスに送信することを特徴とする、
請求項１または２記載の電子システム。
【請求項４】
前記第１デバイス、前記第２デバイスおよび前記第３デバイスのそれぞれは、通信速度に応じたクロック信号を生成するクロック信号生成手段を有し、
前記クロック信号生成手段は、所定周波数の信号を逓倍及び分周することにより通信速度に応じたクロック信号を生成することを特徴とする、
請求項１乃至３のいずれかに記載の電子システム。
【請求項５】
複数の装置が直列接続されて構成された通信路の端部に接続される電子デバイスにより、
自デバイスと通信対象となる対象装置の通信速度を、自デバイスと前記対象装置との間に接続された中継装置を経由して、予め定められた通信速度に制御し、
前記対象装置の通信速度の制御終了後に、前記中継装置の通信速度を、前記対象装置側から順に、前記通信路を介して、前記対象装置と同じ通信速度になるように制御することを特徴とする、
通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のマイクロプロセッサやＩＣ（Integrated Circuit）、あるいはこれらを実装した電子装置等の電子デバイスにより構成される電子システムに関する。特に直列に接続された他の電子デバイスとの間で、シリアル通信によりデータの送受信を行う電子システムに関する。
【背景技術】
【０００２】
ホストコントローラとなる電子デバイスに対して、シリアル通信によってデータの送受信が可能な複数の電子デバイスを直列に接続することで電子システムを構成することがある。このような電子システムでは、例えば、１つの通信チャネルのシリアル通信信号線に複数の通信対象となる電子デバイスが接続され、通信対象となる電子デバイスを切り替えながら通信が行われる。通信対象を明確にするために、シリアル通信信号線とは別にチップ選択信号線（ＣＳ信号線）を設けてもよい。しかし、この場合、信号線の数が増大して電子システムの構成が複雑になる。
【０００３】
そのために、データに通信対象を識別するための識別情報を付加して通信対象を明示したパケットを用いる、パケット通信が有効である。パケット通信では、例えばホストコントローラに２つの電子デバイスが直列接続された電子システムにおいて、後段に位置する電子デバイスにパケットを送信する場合には、その前段に位置する電子デバイスがパケットを中継する。そのために、信号線数と信号配線長を最低限に抑えた電子システムを構築することが可能である。
【０００４】
特許文献１では、ホストコントローラに対して、シリアル通信信号を受信する中継子局と、中継子局からさらに直列接続された他の中継子局とによって構成される電子システム（通信システム）が開示される。この電子システムでは、各中継子局に対して、ホストコントローラから透過的に通信可能である。
特許文献２では、ホストコントローラに対して複数個の電子デバイスが直列接続された制御システムが開示される。各電子デバイスは、自装置宛でないパケットを受信した場合に、入力信号を切り替えて後段に接続された他の電子デバイスへ該パケットを中継する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１９０６９７号公報
【特許文献２】特開２００２−４４０８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このようにホストコントローラに複数の電子デバイスを直列接続する電子システムは、少ない信号線数や短い信号線長により構成できる。
【０００７】
ホストコントローラに複数の電子デバイスを直列接続する電子システムでは、ホストコントローラに近い電子デバイスから順に通信対象となる電子デバイスまで、１以上のパケットを含むフレームを中継する。通信対象となる電子デバイスからホストコントローラへのフレームについても、その途中に位置する電子デバイスが中継を行う。
【０００８】
各電子デバイス間で通信を確立するためには、同一の通信速度で通信を行う必要がある。したがって、フレームを中継する電子デバイスが通信速度を変更してしまうと、電子デバイス間の通信速度が異なるために、通信ができなくなる。従来の構成では通信速度を動的に切り替えることができない。
【０００９】
本発明は、以上のような従来の問題に鑑み、直列に複数接続された電子デバイス間の通信速度を動的に切り替えることができる電子システムを提供することを主たる課題とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決する本発明の電子システムは、第１デバイス、第２デバイスおよび第３デバイスが通信ラインを介して直列接続されているシステムである。この電子システムは、前記第１デバイスと前記第２デバイスとを接続する第１通信ラインと、前記第２デバイスと前記第３デバイスとを接続する第２通信ラインとを有する。
前記第１デバイスは、通信速度を第１速度に変更するためのコマンドを、前記第２デバイスを介して前記第３デバイスに送信する。前記第３デバイスの速度変更終了後に、前記第１デバイスは、通信速度を前記第１速度へ変更するためのコマンドを前記第２デバイスに送信する。前記第２デバイスの速度変更終了後に、前記第１デバイスは通信速度を前記第１速度へ変更する。
【００１１】
本発明の通信制御方法は、複数の装置が直列接続されて構成された通信路の端部に接続される電子デバイスにより実行される方法である。電子デバイスは、まず、自デバイスと通信対象となる対象装置の通信速度を、自デバイスと前記対象装置との間に接続された中継装置を経由して、予め定められた通信速度に制御する。その後、電子デバイスは、前記中継装置の通信速度を、前記対象装置側から順に、前記通信路を介して、前記対象装置と同じ通信速度になるように制御する。
【発明の効果】
【００１２】
本発明は、対象装置（第３デバイス）及び中継装置（第２デバイス）の通信速度を、対象装置から順に、通信路を介して、予め定められた通信速度になるように制御するために、動的に通信速度を切り替えることができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態の電子システムの構成図。
【図２】パケットのデータ構造の例示図。
【図３】送信先ＩＤの例示図。
【図４】コマンドＩＤの例示図。
【図５】ホストコントローラによる通信速度の切り替え処理のフローチャート。
【図６】前段の通信デバイスによる通信速度の切り替え処理のフローチャート。
【図７】後段の通信デバイスによる通信速度の切り替え処理のフローチャート。
【図８】ホストコントローラ、前段の通信デバイス、及び後段の通信デバイスの処理及びパケットの送受信のタイミングの説明図。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態を図面を参照しつつ詳細に説明する。
【００１５】
＜全体構成＞
図１は、電子デバイスの一例であるホストコントローラを用いて構成された、シリアル通信路によりデータを送受信する電子システムの構成図である。
この電子システムは、ホストコントローラ１０１に対して、シリアル通信によってデータの送受信が可能な通信デバイス１２１、１４１が直列に接続されて構成される。ホストコントローラ１０１は、各通信デバイス１２１、１４１に対して各種指示を与える動作の主体である。通信デバイス１２１、１４１もまた、電子デバイスの一例である。ホストコントローラ１０１と通信デバイス１２１、１４１との間で送受信されるデータには、パケットが用いられる。なお、ホストコントローラ１０１に対して直列に接続される通信デバイスは、２段以上であってもよい。
【００１６】
ホストコントローラ１０１は、ＣＰＵ（Central Processing Unit）１０２により全体の動作が制御される。ＣＰＵ１０２は、ＲＯＭ（Read Only Memory）１０３から命令を読みだして逐次実行し、その実行結果をＲＡＭ（Random Access Memory）１０４に保存する。また、ホストコントローラ１０１は、ホストシリアルＩ／Ｆ（インタフェース）１０５により、通信デバイス１２１とのシリアル通信が可能である。
【００１７】
ホストシリアルＩ／Ｆ１０５は、全二重式の調歩同期シリアルインタフェースである。ホストシリアルＩ／Ｆ１０５は、ＣＰＵ１０２から書き込まれた送信データを内蔵のシフトレジスタによって１ビット（bit）ずつ送信ポート１０６から送信する。送信ビット列の前後には、スタートビット、パリティビット、ストップビットが付加される。
通信デバイス１２１からデータを受信する場合には、受信データを受信ポート１０７により１ビットずつサンプリングする。また、内蔵のシフトレジスタによって１バイトの受信データを受信完了したことをＣＰＵ１０２に通知する。ＣＰＵ１０２は、ホストシリアルＩ／Ｆ１０５で受信したデータを読み取ることで、通信デバイス１２１からのデータを取得することができる。ＣＰＵ１０２は、読み取ったデータをＲＡＭ１０４に保存する。
【００１８】
ＣＰＵ１０２及びホストシリアルＩ／Ｆ１０５は、ＰＬＬ（Phase Locked Loop）回路１０８から供給されるクロック信号に従って動作する。特に、ホストシリアルＩ／Ｆ１０５は、クロック信号の周波数に応じた通信周波数で、通信デバイス１２１との通信を行う。ＰＬＬ回路１０８は、外付けされた水晶発振器１０９から出力される、例えば１０［ＭＨｚ］の出力信号から、予め定められた逓倍率と分周比に従ってクロック信号を生成する。ホストシリアルＩ／Ｆ１０５は、このクロック信号の周波数に応じた通信速度で前段の通信デバイス１２１との通信を行う。
【００１９】
前段の通信デバイス１２１は、制御部１２２、タイマ１２３、上流シリアルＩ／Ｆ１２５、下流シリアルＩ／Ｆ１２８、バッファ１２４、ポート１３１、及びＰＬＬ回路１３２を有する。
【００２０】
ＰＬＬ回路１３２は、外付けされた水晶発振器１３３から出力される、例えば１０［ＭＨｚ］の出力信号から、予め定められた逓倍率と分周比に従ってクロック信号を生成する。このクロック信号は、上流シリアルＩ／Ｆ１２５及び下流シリアルＩ／Ｆ２８に供給される。また、ＰＬＬ回路１３２は、通信デバイス１２１内の内部クロック信号を生成して、制御部１２２及びタイマ１２３に供給する。
【００２１】
上流シリアルＩ／Ｆ１２５は、上流送信ポート１２６と上流受信ポート１２７とを備え、ホストコントローラ１０１との間でデータを送受信する。上流シリアルＩ／Ｆ１２５は、ホストコントローラ１０１のホストシリアルＩ／Ｆ１０５と同じく全二重式の調歩同期シリアルインタフェースである。上流シリアルＩ／Ｆ１２５は、ＰＬＬ回路１３２から供給されるクロック信号の周波数に応じた通信速度で、ホストコントローラ１０１との通信を行う。
【００２２】
下流シリアルＩ／Ｆ１２８は、後段の通信デバイス１４１に二線式シリアル信号線によって接続されており、通信デバイス１４１との間で全二重のシリアル通信を行う。下流シリアルＩ／Ｆ１２８は、下流送信ポート１２９と下流受信ポート１３０とを備える。下流シリアルＩ／Ｆ１２８は、下流送信ポート１２９から、データを通信デバイス１４１に送信する。また、下流受信ポート１３０により、通信デバイス１４１からのデータを受信する。下流シリアルＩ／Ｆ１２８は、ＰＬＬ回路１３２から供給されるクロック信号の周波数に応じた通信速度で、通信デバイス１４１との通信を行う。
【００２３】
ポート１３１は、送信ポート１２６、１２９への論理の出力や、電圧状態を二値で取得することができるＩ／Ｏポートである。タイマ１２３は、所定の時間間隔、例えば２ミリ秒毎に、制御部１２２に対して送信要求を発する。タイマ１２３は、内部クロック信号に基づいて計時する。
制御部１２２は、上流シリアルＩ／Ｆ１２５及び下流シリアルＩ／Ｆ１２８の通信状況を監視する。制御部１２２は、ホストコントローラ１０１に送信すべきデータを生成する。生成されるデータは、送信先としてホストコントローラ１０１を指示する情報を含む。制御部１２２は、タイマ１２３からの送信要求を受けて、生成したデータを、上流シリアルＩ／Ｆ１２５を介してホストコントローラ１０１へ送信する。制御部１２２は、下流シリアルＩ／Ｆ１２８で受信したデータをデコードして、ポート１３１からのデータに対する返信や、ポート１３１への所望の論理の出力等の処理を行う。
【００２４】
バッファ１２４は、下流シリアルＩ／Ｆ１２８で受信したデータが一時蓄積されるラインバッファである。下流シリアルＩ／Ｆ１２８が通信デバイス１４１からホストコントローラ１０１宛のデータを受信した際、上流シリアルＩ／Ｆ１２５からホストコントローラ１０１にデータを送信中であった場合は、受信したデータはバッファ１２４に蓄積される。一方、下流シリアルＩ／Ｆ１２８が通信デバイス１４１からホストコントローラ１０１宛のデータを受信した際、上流シリアルＩ／Ｆ１２５が送信中でなかった場合は、受信したデータは、バッファ１２４に蓄積されず、下流シリアルＩ／Ｆ１２８から上流シリアルＩ／Ｆ１２５にそのまま送られる。また、バッファ１２４は、上流シリアルＩ／Ｆ１２５で受信したデータの蓄積には用いられない。
【００２５】
後段の通信デバイス１４１は、二線式のシリアル信号線によって前段の通信デバイス１２１に接続される。通信デバイス１４１は、制御部１４２、タイマ１４３、ポート１５１、後段シリアルＩ／Ｆ１４５、及びＰＬＬ回路１４８を有する。
【００２６】
ＰＬＬ回路１４８は、外付けされた水晶発振器１４９から出力される、例えば１０［ＭＨｚ］の出力信号から、予め定められた逓倍率と分周比に従ってクロック信号を生成する。このクロック信号は、後段シリアルＩ／Ｆ１４５に供給される。また、ＰＬＬ回路１４８は、通信デバイス１４１内の内部クロック信号を生成して、制御部１４２及びタイマ１４３に供給する。
【００２７】
ポート１５１は、後段シリアルＩ／Ｆ１４５の送信ポート１４６への論理の出力や、電圧状態を二値で取得することができるＩ／Ｏポートである。タイマ１４３は、所定の時間間隔、例えば２ミリ秒毎に、制御部１４２に対して送信要求を発する。タイマ１４３は、内部クロック信号に基づいて計時する。
制御部１４２は、ホストコントローラ１０１から送信されたデータに応じて動作する。また、制御部１４２は、ホストコントローラ１０１に送信すべきデータを生成する。そのために生成されるデータは、送信先としてホストコントローラ１０１を指示する情報を含む。制御部１４２は、タイマ１４３からの送信要求を受けて、生成したデータを、後段シリアルＩ／Ｆ１４５を介して、例えばホストコントローラ１０１宛に送信する。また、制御部１４２は、後段シリアルＩ／Ｆ１４５で受信したデータをデコードして、ポート１５１からのデータに対する返信や、ポート１５１への所望の論理の出力等の処理を行う。
【００２８】
後段シリアルＩ／Ｆ１４５は、送信ポート１４６と受信ポート１４７とを備え、通信デバイス１２１とデータを送受信することができる。後段シリアルＩ／Ｆ１４５は、ホストコントローラ１０１のホストシリアルＩ／Ｆ１０５と同じく全二重式の調歩同期シリアルインタフェースである。後段シリアルＩ／Ｆ１４５は、ＰＬＬ回路１４８から供給されるクロック信号の周波数に応じた通信速度で、前段の通信デバイス１２１との通信を行う。
【００２９】
図２は、ホストコントローラ１０１、通信デバイス１２１、及び通信デバイス１４１間のシリアル通信路で送受信されるデータであるパケットのデータ構造の例示図である。
【００３０】
パケットは、先頭にパケットの宛先を示す値である送信先ＩＤ２０１を有する。図３は、送信先ＩＤの例示図である。この例では、ホストコントローラ１０１宛の場合は「００ｈ」、通信デバイス１２１宛の場合は「０１ｈ」、通信デバイス１４１宛の場合は「０２ｈ」が送信先ＩＤ２０１に設定される。送信先ＩＤ２０１の後段には、送信元ＩＤ２０２が付される。送信元ＩＤ２０２は、パケットの送信元を示す値である。値には、送信先ＩＤ２０１と同じものが用いられる。
【００３１】
パケットは、送信元ＩＤ２０２の後段に、パケットＩＤ２０３を有する。パケットＩＤ２０３は、ホストコントローラ１０１及び通信デバイス１２１，１４１のそれぞれが送信したパケット１つ１つに付けられている順序番号である。ホストコントローラ１０１及び通信デバイス１２１，１４１の各々が１つパケットを送信するたびに、順序番号は１増加される。受信側は、パケットＩＤ２０３により、パケットの欠落を検出することができる。
【００３２】
パケットは、パケットＩＤ２０３の後段に、コマンドＩＤ２０４を有する。コマンドＩＤ２０４は、指示内容を表す。コマンドＩＤ２０４の内容を、図４に例示する。例えば、ホストコントローラ１０１から通信デバイス１２１又は通信デバイス１４１に対してＰＬＬ回路１３２、１４８の設定を指示する場合は、コマンドＩＤ２０４がＰＬＬ設定要求を示す「１０ｈ」になる。「ＰＬＬ設定要求」は、ＰＬＬ回路１３２、１４８で生成されるクロック信号の周波数を所定の周波数に設定するためのコマンドである。ホストコントローラ１０１から通信デバイス１２１又は通信デバイス１４１に対してＰＬＬ回路１３２、１４８の設定切り替えを指示する場合は、コマンドＩＤ２０４がＰＬＬ切り替え要求を示す「２０ｈ」になる。「ＰＬＬ切り替え要求」により、ＰＬＬ回路１３２、１４８は動作を開始して、クロック信号を出力する。通信デバイス１２１又は通信デバイス１４１から、ホストコントローラ１０１に対して応答を送信する場合は、コマンドＩＤ２０４が要求成功応答を示す「Ｅ０ｈ」になる。要求成功応答は、ホストコントローラ１０１から送信されたパケットが、通信デバイス１２１又は通信デバイス１４１によって正しく受信されたことを通知する応答コマンドである。
【００３３】
パケットは、コマンドＩＤ２０４の後段に、データ部２０５を有する。データ部２０５は、例えば、コマンドＩＤ２０４が「１０ｈ」でＰＬＬ設定要求を送信する場合に、ＰＬＬ回路１３２、１４８の逓倍率及び分周値を含むＰＬＬ設定情報を含む。ＰＬＬ設定情報は、ホストコントローラ１０１と通信デバイス１２１及び通信デバイス１４１との間の通信周波数を決めるために、それらの間の配線長や送受信内容に応じて設計時に予め決定される固定値である。
パケットは、データ部２０５の後段にチェックサム２０６を有する。チェックサム２０６は、パケットの誤り検出に用いられる値である。
【００３４】
＜通信速度の切り替え処理＞
以上のような電子システムでは、起動時に、ホストコントローラ１０１及び通信デバイス１２１、１４１が、例えば９６００［ｂｐｓ］の通信速度で通信を行う。これは、水晶発振器１０９、１３３、１４９による１０［ＭＨｚ］の出力信号を、分周比の既定値である１／１０２４で分周して得られる値である。この通信速度は、電子システムで通信可能な最低通信速度である。このような低速で通信を確立した後に、例えば逓倍率を８倍、分周比を１／３２０に設定することで、通信速度を２５０［Ｋｂｐｓ］に切り替えて、より速い速度で通信を行う。切り替えた通信速度は、上述の通り、ホストコントローラ１０１と通信対象になる通信デバイス１２１又は通信デバイス１４１の間の、配線長や送受信内容に応じて設計時に予め決定される固定値である。この固有値は、ホストコントローラ１０１のＲＯＭ１０３やＲＡＭ１０４に記憶されており、必要に応じて読み出される。以下は、低速で通信を確立した後に行う処理である。
【００３５】
［ホストコントローラの処理］
図５は、ホストコントローラ１０１により、通信デバイス１２１及び通信デバイス１４１の各ＰＬＬ回路１３２、１４８の設定及び動作を切り替えることで通信速度を切り替える処理のフローチャートである。以下の説明において、「Ｓ」は処理ステップを表す。
【００３６】
通信速度の切り替え制御において、ホストコントローラ１０１は、まず、後段の通信デバイス１４１のＰＬＬの切り替え処理を行う。そのためにホストコントローラ１０１のＣＰＵ１０２は、後段の通信デバイス１４１宛に、ＰＬＬ設定要求を表すパケットを送信する（Ｓ３０１）。このＰＬＬ設定要求を表すパケットは、送信先ＩＤ２０１に「０２ｈ」が設定されており、コマンドＩＤ２０４に「１０ｈ」が設定されている。このＰＬＬ設定要求を表すパケットが、ホストシリアルＩ／Ｆ１０５から前段の通信デバイス１２１に送信される。通信デバイス１２１は、受信したＰＬＬ設定要求を表すパケットを、後段の通信デバイス１４１に転送する。通信デバイス１４１は、ＰＬＬ設定要求に対して、要求成功を表すパケットを返信する。この要求成功を表すパケットは、送信先ＩＤ２０１に「００ｈ」が設定されており、コマンドＩＤ２０４に「Ｅ０ｈ」が設定されている。また、データ部２０５にＰＬＬ設定情報が含まれている。
【００３７】
ホストコントローラ１０１は、通信デバイス１４１から要求成功を表すパケットを受信するまで待機する（Ｓ３０２）。要求成功を表すパケットを受信すると（Ｓ３０２:Y）、ホストコントローラ１０１のＣＰＵ１０２は、後段の通信デバイス１４１宛に、ＰＬＬ切り替えを表すパケットを送信する（Ｓ３０３）。この切り替えを表すパケットは、送信先ＩＤ２０１に「０２ｈ」が設定されており、コマンドＩＤ２０４に「２０ｈ」が設定されている。この切り替えを表すパケットも、通信デバイス１２１を中継して、通信デバイス１４１に送信される。
この切り替えを表すパケットの送信後、ホストコントローラ１０１は、ＰＬＬ切り替え要求に対する要求成功を表すパケットを通信デバイス１４１から受信するまで待機する（Ｓ３０４）。ホストコントローラ１０１が要求成功を表すパケットを受信することで（Ｓ３０４：Y）、後段の通信デバイス１４１に対するＰＬＬの切り替え処理が終了する。
【００３８】
後段の通信デバイス１４１に対するＰＬＬの切り替え処理の終了後に、ホストコントローラ１０１は、前段の通信デバイス１２１に対するＰＬＬの切り替え処理を行う。ホストコントローラ１０１のＣＰＵ１０２は、前段の通信デバイス１２１宛に、ＰＬＬ設定要求を表すパケットを送信する（Ｓ３０５）。このＰＬＬ設定要求を表すパケットは、送信先ＩＤ２０１に「０１ｈ」が設定されており、コマンドＩＤ２０４に「１０ｈ」が設定されている。このＰＬＬ設定要求を表すパケットが、ホストコントローラ１０１から前段の通信デバイス１２１に送信される。通信デバイス１２１は、ＰＬＬ設定要求に対して、要求成功を表すパケットを返信する。この要求成功を表すパケットは、送信先ＩＤ２０１に「００ｈ」が設定されており、コマンドＩＤ２０４に「Ｅ０ｈ」が設定されている。また、データ部２０５にＰＬＬ設定情報が含まれている。ＰＬＬ設定情報は、後段の通信デバイス１４１に送られたものと同じ内容である。
【００３９】
ホストコントローラ１０１は、通信デバイス１２１からの要求成功を表すパケットを受信するまで待機する（Ｓ３０６）。要求成功を表すパケットを受信すると（Ｓ３０６:Y）、ホストコントローラ１０１のＣＰＵ１０２は、前段の通信デバイス１２１宛に、ＰＬＬ切り替えを表すパケットを送信する（Ｓ３０７）。このＰＬＬ切り替えを表すパケットは、送信先ＩＤ２０１に「０１ｈ」が設定されており、コマンドＩＤ２０４に「２０ｈ」が設定されている。このパケットも、ホストシリアルＩ／Ｆ１０５から前段の通信デバイス１２１に送信される。
ＰＬＬ切り替えを表すパケットの送信後、ホストコントローラ１０１は、ＰＬＬ切り替え要求に対する要求成功を表すパケットを通信デバイス１２１から受信するまで待機する（Ｓ３０８）。ホストコントローラ１０１が要求成功を表すパケットを受信することで（Ｓ３０８：Y）、前段の通信デバイス１２１に対するＰＬＬの切り替え処理が終了する。ＰＬＬ設定情報の内容が同じであるために、前段の通信デバイス１２１と後段の通信デバイス１４１の通信速度は同じである。そのために、この時点で、前段の通信デバイス１２１と後段の通信デバイス１４１との間で、切り替え後の通信速度による通信が可能である。
【００４０】
前段の通信デバイス１２１に対するＰＬＬの切り替え処理の終了後に、ホストコントローラ１０１は、ＣＰＵ１０２のＰＬＬ設定を行う（Ｓ３０９）。続けて、ホストコントローラ１０１は、ＣＰＵ１０２のＰＬＬ切り替えを行う（Ｓ３１０）。ホストコントローラ１０１の通信速度も、前段の通信デバイス１２１及び後段の通信デバイス１４１と同じにする。
ＰＬＬ１０８、１３２、１４８は、ＰＬＬ設定情報に応じた逓倍率、分周比で各クロック信号が生成する。これにより、電子システム全体の通信速度を変更することができる。
【００４１】
［前段の通信デバイスの処理］
図６は、上記のホストコントローラ１０１による処理に対する、前段の通信デバイス１２１が行う処理のフローチャートである。
【００４２】
前段の通信デバイス１２１の制御部１２２は、ホストコントローラ１０１からパケットを受信するまで、待機状態にある（Ｓ４０１）。ホストコントローラ１０１からパケットを受信すると、制御部１２２は、まず、パケットの送信先ＩＤ２０１により、当該パケットが自装置宛であるかを確認する（Ｓ４０２）。自装置宛でない場合に制御部１２２は、後段の通信デバイス１４１に、当該パケットを送信して処理を終了する（Ｓ４０２：N、Ｓ４０３）。図５のＳ３０１、Ｓ３０３でホストコントローラ１０１から送信されるパケットについては、この処理が行われる。
【００４３】
パケットが自装置宛の場合、制御部１２２は当該パケットのコマンドＩＤ２０４により、当該パケットがＰＬＬ設定要求であるかを確認する（Ｓ４０４）。パケットがＰＬＬ設定要求である場合、制御部１２２はＰＬＬ回路１３２の逓倍率及び分周比を、パケットのデータ部２０５に含まれるＰＬＬ設定情報に基づいて設定する（Ｓ４０４：Y、Ｓ４０５、Ｓ４０６）。ＰＬＬ回路１３２の逓倍率及び分周比の設定が終了すると、制御部１２２は、ＰＬＬ設定要求が成功したことを表すパケットを生成してホストコントローラ１０１に送信して処理を終了する（Ｓ４０７）。図５のＳ３０５でホストコントローラ１０１から送信されるパケットについては、この処理が行われる。
【００４４】
パケットがＰＬＬ設定要求でない場合、制御部１２２は当該パケットのコマンドＩＤ２０４がＰＬＬ切り替え要求であるかを確認する（Ｓ４０４：N、Ｓ４０８）。パケットがＰＬＬ切り替え要求である場合、制御部１２２はＰＬＬ切り替え要求が成功したことを表すパケットを生成して、ホストコントローラ１０１に送信する（Ｓ４０８：Y、Ｓ４０９）。ＰＬＬ切り替え要求が成功したことを表すパケットをホストコントローラ１０１に送信した後に、制御部１２２は、Ｓ４０５、Ｓ４０６で設定した逓倍率及び分周比によりＰＬＬ回路１３２を動作させて処理を終了する（Ｓ４１０）。図５のＳ３０７でホストコントローラ１０１から送信されるパケットについては、この処理が行われる。
以上の処理により、通信デバイス１２１は、ホストコントローラ１０１から指示された周波数のクロック信号に応じた通信速度で通信可能になる。
【００４５】
パケットがＰＬＬ切り替え要求でない場合、制御部１２２は当該パケットのコマンドＩＤ２０４がポート情報の取得要求であるかを確認する（Ｓ４０８：N、Ｓ４１１）。パケットがポート情報取得要求である場合、制御部１２２はポート１３１のレジスタ値を取得する（Ｓ４１１：Y、Ｓ４１２）。制御部１２２は、取得したレジスタ値を含むポート情報の取得成功応答を表すパケットを生成して、ホストコントローラ１０１に送信して処理を終了する（Ｓ４１３）。
パケットがポート情報取得要求でない場合、制御部１２２は処理を終了する（Ｓ４１１：N）。
【００４６】
［後段の通信デバイスの処理］
図７は、上記のホストコントローラ１０１による処理に対する、後段の通信デバイス１４１が行う処理のフローチャートである。
【００４７】
後段の通信デバイス１４１の制御部１４２は、ホストコントローラ１０１から送信されたパケットを、前段の通信デバイス１２１を介して受信するまで、待機状態にある（Ｓ６０１）。ホストコントローラ１０１から送信されたパケットを受信すると、制御部１４２は、まず、パケットの送信先ＩＤ２０１により、当該パケットが自装置宛であるかを確認にする（Ｓ６０２）。自装置宛でない場合に制御部１４２は、処理を終了する（Ｓ６０２：N）。
【００４８】
パケットが自装置宛である場合、制御部１４２は当該パケットのコマンドＩＤ２０４がＰＬＬ設定要求であるかを確認する（Ｓ６０３）。パケットがＰＬＬ設定要求である場合、制御部１２２はＰＬＬ回路１４８の逓倍率及び分周比を、パケットのデータ部２０５に含まれるＰＬＬ設定情報に基づいて設定する（Ｓ６０３：Y、Ｓ６０４、Ｓ６０５）。ＰＬＬ回路１４８の逓倍率及び分周比の設定が終了すると、制御部１４２は、ＰＬＬ設定要求が成功したことを表すパケットを生成してホストコントローラ１０１に送信して処理を終了する（Ｓ６０６）。図５のＳ３０１で送信されるパケットについては、この処理が行われる。
ＰＬＬ設定要求が成功したことを表すパケットは、ＰＬＬ回路１４８の逓倍率及び分周比の設定が終了後に、ホストコントローラ１０１に送信する。このようにすることにより、逓倍率及び分周比の設定を確実なものとすることができる。
【００４９】
パケットがＰＬＬ設定要求でない場合、制御部１４２は当該パケットのコマンドＩＤ２０４がＰＬＬ切り替え要求であるかを確認する（Ｓ６０３：N、Ｓ６０７）。パケットがＰＬＬ切り替え要求である場合、制御部１２２はＰＬＬ切り替え要求が成功したことを表すパケットを生成して、ホストコントローラ１０１に送信する（Ｓ６０７：Y、Ｓ６０８）。ＰＬＬ切り替え要求が成功したことを表すパケットをホストコントローラ１０１に送信した後に、制御部１４２は、Ｓ６０４、Ｓ６０５で設定した逓倍率及び分周比によりＰＬＬ回路１４８を動作させて処理を終了する（Ｓ６０９）。図５のＳ３０３で送信されるパケットについては、この処理が行われる。
ＰＬＬ切り替え要求が成功したことを表すパケットをホストコントローラ１０１に送信するためには、通信デバイス１２１と通信デバイス１４１が同一の通信速度で動作していることが必要である。そこで、本実施形態では、このように、ＰＬＬ切り替え要求に対しては、制御部１４２が設定した逓倍率及び分周比によりＰＬＬ回路１４８を動作させる前に、ＰＬＬ切り替え要求が成功したことを表すパケットをホストコントローラ１０１に送信する。
以上の処理により、通信デバイス１４１は、ホストコントローラ１０１から指示された周波数のクロック信号に応じた通信速度で通信可能になる。
【００５０】
パケットがＰＬＬ切り替え要求でない場合、制御部１４２は当該パケットのコマンドＩＤ２０４がポート情報の取得要求であるかを確認する（Ｓ６０７：N、Ｓ６１０）。パケットがポート情報取得要求である場合、制御部１４２はポート１５１のレジスタ値を取得する（Ｓ６１０：Y、Ｓ６１１）。制御部１４２は、取得したレジスタ値を含むポート情報の取得成功応答を表すパケットを生成して、ホストコントローラ１０１に送信して処理を終了する（Ｓ６１２）。
パケットがポート情報取得要求でない場合、制御部１４２は処理を終了する（Ｓ６１０：N）。
【００５１】
［ホストコントローラ及び前段、後段の通信デバイス間のパケットの送受信タイミング］
図８は、ホストコントローラ１０１、前段の通信デバイス１２１、及び後段の通信デバイス１４１のそれぞれの処理及びパケットの送受信のタイミングを説明する図である。ホストコントローラ１０１は、まず、後段の通信デバイス１４１の通信速度を切り替える。その後、ホストコントローラ１０１は、前段の通信デバイス１４１の通信速度を、後段の通信デバイス１４１と同じ通信速度に切り替える。
【００５２】
ホストコントローラ１０１は、後段の通信デバイス１４１宛のＰＬＬ設定要求を表すパケットを前段の通信デバイス１２１に送信する（Ｓ７０１）。前段の通信デバイス１２１は、このパケットを受信する。前段の通信デバイス１２１は、受信したパケットが自装置宛ではないので、これを後段の通信デバイス１４１に中継送信する（Ｓ７０２）。後段の通信デバイス１４１は、パケットを受信して、パケットの内容に応じてＰＬＬ回路１４８の逓倍率及び分周比を設定する（Ｓ７０３）。設定後に、後段の通信デバイス１４１は、ＰＬＬ設定要求に応じた設定が成功したことを表すパケットを前段の通信デバイス１２１に送信する（Ｓ７０４）。前段の通信デバイス１２１は、このパケットを受信する。前段の通信デバイス１２１は、受信したパケットが自装置宛ではないので、これをホストコントローラ１０１に中継送信する（Ｓ７０５）。
【００５３】
ＰＬＬ設定要求に応じた設定が成功したことを表すパケットを受信したホストコントローラ１０１は、後段の通信デバイス１４１宛のＰＬＬ切り替え要求を表すパケットを前段の通信デバイス１２１に送信する（Ｓ７０６）。前段の通信デバイス１２１は、このパケットを受信する。前段の通信デバイス１２１は、受信したパケットが自装置宛ではないので、これを後段の通信デバイス１４１に中継送信する（Ｓ７０７）。後段の通信デバイス１４１は、パケットを受信して、Ｓ７０３で設定した逓倍率及び分周比によりＰＬＬ回路１４８を動作する（Ｓ７０８）。動作後に、後段の通信デバイス１４１は、ＰＬＬ切り替え要求が成功したことを表すパケットを前段の通信デバイス１２１に送信する（Ｓ７０９）。前段の通信デバイス１２１は、このパケットを受信する。前段の通信デバイス１２１は、受信したパケットが自装置宛ではないので、これをホストコントローラ１０１に中継送信する（Ｓ７１０）。
以上により、後段の通信デバイス１４１のＰＬＬ回路１４８で生成されるクロック信号の周波数が変更され、後段の通信デバイス１４１の通信速度が切り替わる。
【００５４】
後段の通信デバイス１４１からのＰＬＬ切り替え要求が成功したことを表すパケットを受信したホストコントローラ１０１は、次に、前段の通信デバイス１２１の通信速度を切り替える。
【００５５】
ホストコントローラ１０１は、前段の通信デバイス１２１宛のＰＬＬ設定要求を表すパケットを前段の通信デバイス１２１に送信する（Ｓ７１１）。前段の通信デバイス１２１は、このパケットを受信する。前段の通信デバイス１２１は、受信したパケットが自装置宛であるため、このパケットの内容に応じてＰＬＬ回路１３２の逓倍率及び分周比を設定する（Ｓ７１２）。設定後に、前段の通信デバイス１２１は、ＰＬＬ設定要求に応じた設定が成功したことを表すパケットをホストコントローラ１０１に送信する（Ｓ７１３）。
【００５６】
ＰＬＬ設定要求に応じた設定が成功したことを表すパケットを受信したホストコントローラ１０１は、前段の通信デバイス１２１宛のＰＬＬ切り替え要求を表すパケットを前段の通信デバイス１２１に送信する（Ｓ７１４）。前段の通信デバイス１２１は、このパケットを受信する。前段の通信デバイス１２１は、受信したパケットが自装置宛であるため、Ｓ７１２で設定した逓倍率及び分周比によりＰＬＬ回路１３２を動作する（Ｓ７１５）。動作後に、前段の通信デバイス１２１は、ＰＬＬ切り替え要求が成功したことを表すパケットをホストコントローラ１０１に送信する（Ｓ７１６）。
以上により、前段の通信デバイス１２１のＰＬＬ回路１３２で生成されるクロック信号の周波数が変更され、前段の通信デバイス１２１の通信速度が切り替わる。
【００５７】
前段の通信デバイス１２１からのＰＬＬ切り替え要求が成功したことを表すパケットを受信したホストコントローラ１０１は、次に、ホストコントローラ１０１自身の通信速度を切り替える。ホストコントローラ１０１のＣＰＵ１０２は、ＰＬＬ回路１０８の逓倍率及び分周比を設定して動作させる（Ｓ７１７、Ｓ７１８）。これにより、ホストコントローラ１０１のＰＬＬ回路１０８で生成されるクロック信号の周波数が変更され、ホストコントローラ１０１の通信速度が切り替わる。
このようにしてホストコントローラ１０１、前段の通信デバイス１２１、及び後段の通信デバイス１４１の通信速度の動的な切り替えが完了する。
【００５８】
以上のように、後段の通信デバイス１４１から順に通信速度を切り替えることで、動作開始後であっても、通信速度を動的に切り替えることができる。これにより、確実な通信確立と、通信確立後の応答性を両立した通信が可能になる。
なお、上記の実施形態では、通信速度を切り替えるために、ＰＬＬ設定要求とＰＬＬＰＬＬ切り替え要求という２つのコマンドを用いた通信を行ったが、ＰＬＬ設定要求のみを使用するようにしてもかまわない。つまり、ＰＬＬ設定要求に応じて、設定及び切り替えの両方を実行するようにしてもかまわない。
【符号の説明】
【００５９】
１０１…ホストコントローラ、１０２…ＣＰＵ、１０３…ＲＯＭ、１０４…ＲＡＭ、１０５…ホストシリアルＩ／Ｆ、１０６，１４６…送信ポート、１０７，１４７…受信ポート。１２１，１４１…通信デバイス、１２２，１４２…制御部、１２３，１４３…タイマ、１３１，１５１…ポート、１２４…バッファ。１２５…上流シリアルＩ／Ｆ、１２６…上流送信ポート、１２７…上流受信ポート、１２８…下流シリアルＩ／Ｆ、１２９…下流送信ポート、１３０…下流受信ポート、１４５…後段シリアルＩ／Ｆ。１０８，１３２，１４８…ＰＬＬ回路、１０９，１３３，１４９…水晶発振器。
【図１】
2014041548.tif 000003
【図２】
2014041548.tif 000004
【図３】
2014041548.tif 000005
【図４】
2014041548.tif 000006
【図５】
2014041548.tif 000007
【図６】
2014041548.tif 000008
【図７】
2014041548.tif 000009
【図８】
2014041548.tif 000010