(57)【要約】【課題】新たな信号の追加無く、ホスト装置がディジーチェーン接続されたデバイスに対するデータ転送タイミングを変化させる必要が無い通信装置及びそれを有する通信システム並びに通信方法を提供する。【解決手段】ディジーチェーンに接続されたデバイス１００、２００、３００において、デバイスＩＤ機能部１０２にデバイス識別番号を設定し、そのデバイス識別番号に応じてレイテンシコントロール１０３がデバイスからリードする際の遅延値を決定しているので、例えば、デバイス３００がホストから一番遠いとすると、ホスト装置１０がデバイス３００からリードした際の遅延値に合わせてデバイス１００とデバイス２００のレイテンシコントロール１０２で遅延値を設定することで各デバイスからのリードする際のレイテンシを同一とすることができる。【選択図】図２
2010057164.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置からシリアルデータが入力される第１のデータ入力端子と前記ホスト装置へシリアルデータを出力する第１のデータ出力端子と他の通信装置からシリアルデータが入力される第２のデータ入力端子と前記他の通信装置へシリアルデータを出力する第２のデータ出力端子とが設けられた通信手段と、前記通信手段からデータの書き込みまたは読み出しが行われる記憶手段と、を有する通信装置において、
前記第１のデータ入力端子から入力されたデータによって前記他の通信装置と識別するための固有の第１の識別番号が設定される識別番号設定手段と、
前記通信手段が前記記憶手段から読み出す際の遅延値を前記第１の識別番号に基づいて設定する遅延設定手段と、
を有していることを特徴とする通信装置。
【請求項２】
ホスト装置からシリアルデータが入力される第１のデータ入力端子と前記ホスト装置へシリアルデータを出力する第１のデータ出力端子と他の通信装置からシリアルデータが入力される第２のデータ入力端子と前記他の通信装置へシリアルデータを出力する第２のデータ出力端子とが設けられた通信手段と、前記通信手段からデータの書き込みまたは読み出しが行われる記憶手段と、を有する通信装置において、
前記第１のデータ入力端子から入力されたデータによって前記他の通信装置と識別するための固有の第１の識別番号が設定される識別番号設定手段と、
前記通信手段が前記記憶手段へ書き込む際の遅延値を前記第１の識別番号に基づいて設定する遅延設定手段と、
を有していることを特徴とする通信装置。
【請求項３】
識別番号設定手段が、前記第１のデータ入力端子から入力される識別番号設定を示すデータをデコードして前記第１の識別手段が設定されることを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記記憶手段が複数設けられるとともに、前記通信手段が、複数の前記記憶手段それぞれに固有の第２の識別番号を付与して前記複数の記憶手段と個別に通信を行うことを特徴とする請求項１乃至３のうちいずれか一項に記載の通信装置。
【請求項５】
ホスト装置および複数の請求項１乃至４のうちいずれか一項に記載の通信装置をディジーチェーン接続し、各通信装置の前記遅延設定手段が、前記ホスト装置から見て同じ遅延時間でデータが読み出されるように遅延値をそれぞれ設定することを特徴とする通信システム。
【請求項６】
ホスト装置および複数の請求項１乃至４のうちいずれか一項に記載の通信装置をディジーチェーン接続し、各通信装置の前記遅延設定手段が、前記ホスト装置から見て同じ遅延時間でデータが書き込まれるように遅延値をそれぞれ設定することを特徴とする通信システム。
【請求項７】
ホスト装置から入力される第１のシリアルデータを内部に設けられた記憶手段に書き込みまたは他の通信装置へ第１のシリアルデータ出力として出力するとともに、前記記憶手段から読み出したデータまたは前記他の通信装置から入力される第２のシリアルデータを前記ホスト装置へ第２のシリアルデータ出力として出力する通信方法において、
前記第１のシリアルデータによって前記他の通信装置と識別するための固有の第１の識別番号を設定し、前記記憶手段から読み出す際の遅延値を前記第１の識別番号に基づいて設定することを特徴とする通信方法。
【請求項８】
ホスト装置から入力される第１のシリアルデータを内部に設けられた記憶手段に書き込みまたは他の通信装置へ第１のシリアルデータ出力として出力するとともに、前記記憶手段から読み出したデータまたは前記他の通信装置から入力される第２のシリアルデータを前記ホスト装置へ第２のシリアルデータ出力として出力する通信方法において、
前記第１のシリアルデータによって前記他の通信装置と識別するための固有の第１の識別番号を設定し、前記記憶手段へ書き込む際の遅延値を前記第１の識別番号に基づいて設定することを特徴とする通信方法。
【請求項９】
前記第１のデータ入力信号から入力される識別番号設定を示すデータをデコードして、前記第１の識別手段が設定されることを特徴とする請求項７または８に記載の通信方法。
【請求項１０】
前記記憶手段が複数設けられるとともに、複数の前記記憶手段それぞれに固有の第２の識別番号を付与して前記複数の記憶手段と個別に通信を行うことを特徴とする請求項７乃至９のうちいずれか一項に記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ホスト装置とバスで接続される通信装置及びそれを有する通信システム並びに通信方法に関する。
【背景技術】
【０００２】
バスを介してホスト装置と複数の通信装置（デバイス）間を接続する方法として、パラレルバスを使用する方法とシリアルバスを使用する方法が考えられる。コストがかからず簡単な通信を行う際には、パラレルバスを使用した場合はデバイスの入出力端子が増加しパッケージコストが増加することや、高速に接続する広域化要求に対応することが困難などといったデメリットが挙げられる。そのため、近年ではシリアルバスが使用されることが多くなってきている。
【０００３】
このような複数のデバイスに対してシリアルバスを介して通信を行う方法で、複数のデバイスを接続する方法においては、ディジーチェーン方式とノード分岐方式と両方式の混在とがある。ディジーチェーン接続については、例えば特許文献１に記載されている。
【０００４】
従来のディジーチェーン方式では、各デバイスがデータを取り込むためのストローブ信号が１つであり、ディジーチェーン上に接続されるデバイス個数Ｎに対して１：Ｎの関係でストローブ送信元にストローブ信号のドライブ能力が要求されるため、デバイスの個数が増加するにつれて通信速度が遅くなるというデメリットがあった。また、ディジーチェーンの配線がデバイスの個数に依存し、ディジーチェーン上のデバイスの個数が多くなった場合には、配線長が長くなりホスト装置と通信相手のデバイスとの通信に通信時間がかかるというデメリットがあった。
【０００５】
これらに対して、特許文献２に記載のシリアル通信システムのようにディジーチェーン接続上のデータを一度クロック信号でバッファリングして同期補正を行い、通信速度を向上する手段が提案されている。また、近年は、シリアル通信チャネルを２チャネル以上持つ安価な高付加価値製品が市場に流通するようになっており、ホスト側からデバイスに対してデータ信号を供給する通信チャネルと、一方でデバイスからホスト側へデータ信号を供給する通信チャネルとの２つ以上を持つことで通信速度の向上を行っている。また、違った方法としては、ＩＥＥＥ（Institute of Electrical and Electronic Engineers）１３９４のＤＳ−Ｌｉｎｋ方式やＰＣＩ  Ｅｘｐｒｅｓｓの８Ｂ−１０Ｂのようにクロック自体をデータ信号から生成し、デバイス間のデータ転送におけるストローブ信号とデータ信号のスキューをなくすことにより通信速度の向上を行っているものがある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、従来のディジーチェーン方式の問題点を図９を参照して説明する。図９はホスト装置５００にデバイス５１０、５２０、５３０がディジーチェーン接続されている。つまり、ホスト装置５００とデバイス５１０とはクロック信号ＣＬＫ０と通信チャネルＴＤＩ０およびＲＤＯ０とで接続され、デバイス５１０とデバイス５２０とはクロック信号ＣＬＫ１と通信チャネルＴＤＩ１およびＲＤＯ１とで接続され、デバイス５２０とデバイス５３０とはクロック信号ＣＬＫ３と通信チャネルＴＤＩ３およびＲＤＯ３とで接続されている。そして、ホスト装置５００から通信チャネルＴＤＩ１を介してデバイス５１０に入力されたデータはクロック信号ＣＬＫ１で１サイクル以上遅延させて下流に出力し、デバイス５１０からデバイス５２０に通信チャネルＴＤＩ２を介して入力されたデータはクロック信号ＣＬＫ２で１サイクル以上遅延させて下流に出力している。この場合、ホスト装置５００からデバイス５３０に対してデータ転送を行ったときに発生する通信レイテンシは次のようになる。
【０００７】
まず、ホスト装置５００から通信チャネルＴＤＩ０に出力されたデータは、デバイス５１０でホスト装置５００から入力されたクロック信号ＣＬＫ０で１サイクル以上遅延させて通信チャネルＴＤＩ１へ下流のデバイス５２０に出力するデータとなる。次に、通信チャネルＴＤＩ１に出力されたデータはデバイス５１０内でクロック信号ＣＬＫ０をバッファリングしてデバイス５２０へ出力したＣＬＫ１でデバイス５２０内において１サイクル以上遅延させて通信チャネルＴＤＩ２へ下流のデバイス５３０に出力するデータとなる。
【０００８】
つまり、ホスト装置５００はデバイス５３０に対してデータ転送を行った際に、デバイス５３０に到達するまでに３サイクル以上の遅延が発生することとなる。同様にデバイス５２０は２サイクル以上、デバイス５１０は１サイクル以上となる。そのため、ホスト装置５００からデータ転送されたデータがデバイスに到達するまでのレイテンシは、ホスト装置５００側とデータ転送されたデバイス間にあるデバイスの個数に応じて比例して増加する。
【０００９】
従って、ホスト装置５００から複数デバイスに対して同時に通信が行われた場合、前記のレイテンシによりホスト装置５００から離れれば離れるほど通信が完了する時間が遅くなるため、複数のデバイスに対して同時に転送データを供給しなければいけないようなシステムにおいて問題となっていた。
【００１０】
また、図９においてデバイス側からホスト装置５００側へのデータ転送を行う通信チャネルＲＤＯ０、ＲＤＯ１、ＲＤＯ２においても、ホスト装置５００にたどり着くまでに経由したデバイスの個数に応じて遅延が付与されるため、ホスト装置５００と転送元のデバイスまでのデバイス数が増えればデータ転送のレイテンシが増加することとなる。
【００１１】
ホスト装置５００は、デバイス５１０からデータ転送が行われた場合は１サイクル以上遅延した後にデータを受信する。同様にデバイス５２０に対しては２サイクル以上遅延した後にデータを受信し、デバイス５３０に対しては３サイクル以上遅延した後にデータを受信する。
【００１２】
このように、通信相手のデバイスが変わるたびにデータ転送を行った際に発生するデータが下流方向及び上流方向ともに変わるため、ホスト装置５００は通信相手のデバイスが変わるたびにデータ転送のタイミングを変えなえければならないという問題があった。
【００１３】
この問題は、上述したストローブ方式にすれば、ホスト装置５００側では、ストローブ信号によってタイミングを測定することが可能だが、そのためにはストローブ信号のための端子を追加しなければならないため好ましくない。
【００１４】
本発明はかかる問題を解決することを目的としている。
【００１５】
すなわち、本発明は、新たな信号の追加無く、ホスト装置がディジーチェーン接続されたデバイスに対するデータ転送タイミングを変化させる必要が無い通信装置及びそれを有する通信システム並びに通信方法を提供することを目的としている。
【課題を解決するための手段】
【００１６】
請求項１に記載された発明は、ホスト装置からシリアルデータが入力される第１のデータ入力端子と前記ホスト装置へシリアルデータを出力する第１のデータ出力端子と他の通信装置からシリアルデータが入力される第２のデータ入力端子と前記他の通信装置へシリアルデータを出力する第２のデータ出力端子とが設けられた通信手段と、前記通信手段からデータの書き込みまたは読み出しが行われる記憶手段と、を有する通信装置において、前記第１のデータ入力端子から入力されたデータによって前記他の通信装置と識別するための固有の第１の識別番号が設定される識別番号設定手段と、前記通信手段が前記記憶手段から読み出す際の遅延値を前記第１の識別番号に基づいて設定する遅延設定手段と、を有していることを特徴とする通信装置である。
【００１７】
請求項２に記載された発明は、ホスト装置からシリアルデータが入力される第１のデータ入力端子と前記ホスト装置へシリアルデータを出力する第１のデータ出力端子と他の通信装置からシリアルデータが入力される第２のデータ入力端子と前記他の通信装置へシリアルデータを出力する第２のデータ出力端子とが設けられた通信手段と、前記通信手段からデータの書き込みまたは読み出しが行われる記憶手段と、を有する通信装置において、前記第１のデータ入力端子から入力されたデータによって前記他の通信装置と識別するための固有の第１の識別番号が設定される識別番号設定手段と、前記通信手段が前記記憶手段へ書き込む際の遅延値を前記第１の識別番号に基づいて設定する遅延設定手段と、を有していることを特徴とする通信装置である。
【００１８】
請求項３に記載された発明は、請求項１または２に記載された発明において、識別番号設定手段が、前記第１のデータ入力端子から入力される識別番号設定を示すデータをデコードして前記第１の識別手段が設定されることを特徴とするものである。
【００１９】
請求項４に記載された発明は、請求項１乃至３のうちいずれか一項に記載された発明において、前記記憶手段が複数設けられるとともに、前記通信手段が、複数の前記記憶手段それぞれに固有の第２の識別番号を付与して前記複数の記憶手段と個別に通信を行うことを特徴とするものである。
【００２０】
請求項５に記載された発明は、ホスト装置および複数の請求項１乃至４のうちいずれか一項に記載の通信装置をディジーチェーン接続し、各通信装置の前記遅延設定手段が、前記ホスト装置から見て同じ遅延時間でデータが読み出されるように遅延値をそれぞれ設定することを特徴とする通信システムである。
【００２１】
請求項６に記載された発明は、ホスト装置および複数の請求項１乃至４のうちいずれか一項に記載の通信装置をディジーチェーン接続し、各通信装置の前記遅延設定手段が、前記ホスト装置から見て同じ遅延時間でデータが書き込まれるように遅延値をそれぞれ設定することを特徴とする通信システムである。
【００２２】
請求項７に記載された発明は、ホスト装置から入力される第１のシリアルデータを内部に設けられた記憶手段に書き込みまたは他の通信装置へ第１のシリアルデータ出力として出力するとともに、前記記憶手段から読み出したデータまたは前記他の通信装置から入力される第２のシリアルデータを前記ホスト装置へ第２のシリアルデータ出力として出力する通信方法において、前記第１のシリアルデータによって前記他の通信装置と識別するための固有の第１の識別番号を設定し、前記記憶手段から読み出す際の遅延値を前記第１の識別番号に基づいて設定することを特徴とする通信方法である。
【００２３】
請求項８に記載された発明は、ホスト装置から入力される第１のシリアルデータを内部に設けられた記憶手段に書き込みまたは他の通信装置へ第１のシリアルデータ出力として出力するとともに、前記記憶手段から読み出したデータまたは前記他の通信装置から入力される第２のシリアルデータを前記ホスト装置へ第２のシリアルデータ出力として出力する通信方法において、前記第１のシリアルデータによって前記他の通信装置と識別するための固有の第１の識別番号を設定し、前記記憶手段へ書き込む際の遅延値を前記第１の識別番号に基づいて設定することを特徴とする通信方法である。
【００２４】
請求項９に記載された発明は、請求項７または８に記載された発明において、前記第１のデータ入力信号から入力される識別番号設定を示すデータをデコードして、前記第１の識別手段が設定されることを特徴とするものである。
【００２５】
請求項１０に記載された発明は、請求項７乃至９のうちいずれか一項に記載された発明において、前記記憶手段が複数設けられるとともに、複数の前記記憶手段それぞれに固有の第２の識別番号を付与して前記複数の記憶手段と個別に通信を行うことを特徴とするものである。
【発明の効果】
【００２６】
請求項１に記載の発明によれば、識別番号設定手段において、第１のデータ入力端子から入力されたデータによって他の通信装置と識別するための固有の第１の識別番号が設定され、遅延設定手段において、通信手段が記憶手段から読み出す際の遅延値を第１の識別番号に基づいて設定しているので、第１の識別番号をホスト装置との距離に応じて設定すれば、その距離に応じた読み出し遅延値を設定することができる。そして、通信装置が複数接続されている場合はホスト装置からの距離に応じてそれぞれ異なる読み出し遅延値を設定してホスト装置が読み出す際のレイテンシを同一とすることができる。
【００２７】
請求項２に記載の発明によれば、識別番号設定手段において、第１のデータ入力端子から入力されたデータによって他の通信装置と識別するための固有の第１の識別番号が設定され、遅延設定手段において、通信手段が記憶手段へ書き込む際の遅延値を第１の識別番号に基づいて設定しているので、第１の識別番号をホスト装置との距離に応じて設定すれば、その距離に応じた読み出し遅延値を設定することができる。そして、通信装置が複数接続されている場合はホスト装置からの距離に応じてそれぞれ異なる書き込み遅延値を設定してホスト装置から書き込む際のレイテンシを同一とすることができる。
【００２８】
請求項３に記載の発明によれば、第１のデータ入力信号から入力される識別番号設定を示すデータをデコードして識別番号設定手段に第１の識別手段が設定されるので、シリアルバスにデータを出力することで識別番号を設定することができ、専用の信号線などが必要無くなる。
【００２９】
請求項４に記載の発明によれば、記憶手段が複数設けられて、通信手段が、複数の記憶手段それぞれに固有の第２の識別番号を付与して個別に通信しているので、任意の記憶手段と通信を行うことができる。
【００３０】
請求項５に記載の発明によれば、ホスト装置と複数の上述した通信装置をディジーチェーン接続し、各通信装置の遅延設定手段が、ホスト装置から見て同じ遅延時間でデータが読み出されるように遅延値をそれぞれ設定しているので、ホスト装置が読み出す際のレイテンシを同一とすることができ、ホスト装置は、通信装置に対してデータ転送を要求した後決まったサイクルでデータの受け取りを完了することができる。
【００３１】
請求項６に記載の発明によれば、ホスト装置と複数の上述した通信装置をディジーチェーン接続し、各通信装置の遅延設定手段が、ホスト装置から見て同じ遅延時間でデータが書き込まれるように遅延値をそれぞれ設定しているので、ホスト装置が書き込む際のレイテンシを同一とすることができ、ホスト装置は、通信装置に対してデータ転送を要求した後決まったサイクルでデータの受け取りを完了することができる。
【００３２】
請求項７に記載の発明によれば、ホスト装置が他の通信装置と識別するための固有の第１の識別番号を設定し、記憶手段から読み出す際の遅延値を第１の識別番号に基づいて設定しているので、第１の識別番号をホスト装置との距離に応じて設定すれば、その距離に応じた読み出し遅延値を設定することができる。そして、通信装置が複数接続されている場合はホスト装置からの距離に応じてそれぞれ異なる読み出し遅延値を設定してホスト装置が読み出す際のレイテンシを同一とすることができる。
【００３３】
請求項８に記載の発明によれば、ホスト装置が他の通信装置と識別するための固有の第１の識別番号を設定し、記憶手段から書き込む際の遅延値を第１の識別番号に基づいて設定しているので、第１の識別番号をホスト装置との距離に応じて設定すれば、その距離に応じた読み出し遅延値を設定することができる。そして、通信装置が複数接続されている場合はホスト装置からの距離に応じてそれぞれ異なる書き込み遅延値を設定してホスト装置が書き込む際のレイテンシを同一とすることができる。
【００３４】
請求項９に記載の発明によれば、第１のシリアルデータから入力される識別番号設定を示すデータをデコードして第１の識別手段が設定されるので、シリアルバスにデータを出力することで識別番号を設定することができ、専用の信号線などが必要なくなる。
【００３５】
請求項１０に記載の発明によれば、記憶手段が複数設けられて、複数の記憶手段それぞれに固有の第２の識別番号を付与して個別に通信しているので、任意の記憶手段と通信を行うことができる。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施形態にかかる通信システムのブロック図である。
【図２】図１に示した通信システムの通信装置を示したブロック図である。
【図３】図２に示した通信装置の動作を示したフローチャートである。
【図４】図１に示した通信システムの各通信装置のデバイス識別番号設定を示す説明図である。
【図５】ライト時のレイテンシコントロールが付与する遅延量についての説明図である。
【図６】ライト時のタイミングチャートである。
【図７】リード時のレイテンシコントロールが付与する遅延量についての説明図である。
【図８】リード時のタイミングチャートである。
【図９】従来のディジーチェーン接続の問題点を示した説明図である。
【発明を実施するための形態】
【００３７】
以下、本発明の一実施形態を、図１ないし図８を参照して説明する。図１は、本発明の一実施形態にかかる通信システムのブロック図である。図２は、図１に示した通信システムの通信装置を示したブロック図である。図３は、図２に示した通信装置の動作を示したフローチャートである。図４は、図１に示した通信システムの各通信装置のデバイス識別番号設定を示す説明図である。図５は、ライト時のレイテンシコントロールが付与する遅延量についての説明図である。図６は、ライト時のタイミングチャートである。図７は、リード時のレイテンシコントロールが付与する遅延量についての説明図である。図８は、リード時のタイミングチャートである。
【００３８】
図１に示した通信システム１は、ホスト装置１０と、デバイス１００と、デバイス２００と、デバイス３００と、終端２０と、を備え、ホスト装置１０と、デバイス１００と、デバイス２００と、デバイス３００と、終端２０と、はこの順序でディジーチェーン接続されている。つまり、ホスト装置１０とデバイス１００とはクロック信号ＣＬＫ０１とデータ信号（通信チャネル）ＴＤＩ０１およびデータ信号ＲＤＯ０１とで接続され、デバイス１００とデバイス２００とはクロック信号ＣＬＫ１１とデータ信号ＴＤＩ１１およびデータ信号ＲＤＯ１１とで接続され、デバイス２００とデバイス３００とはクロック信号ＣＬＫ２１とデータ信号ＴＤＩ２１およびデータ信号ＲＤＯ２１とで接続されている。なお、上述のデータ信号（ＴＤＩ＊＊、ＲＤＯ＊＊：＊は数字）は全てシリアルデータ信号である。また、本実施形態において、ホスト装置１０側を上流、終端２０側を下流と呼ぶ。例えば、デバイス２００の場合デバイス１００側を上流、デバイス３００側を下流と呼ぶ。
【００３９】
ホスト装置１０は、デバイス１００、デバイス２００、デバイス３００に対して、データの書き込み（ライト）や読み出し（リード）を行う。
【００４０】
通信装置としてのデバイス１００は、通信制御部１２０と、図２に示すようにＣＰＵコア１１５、１１６、１１７、１１８と、を備えている。また、デバイス１００において、前記したデータ信号ＴＤＩ０１が入力されるノードはホスト装置１０からシリアルデータが入力される第１のデータ入力端子となる。また、前記したデータ信号ＲＤＯ０１が出力されるノードはホスト装置１０へシリアルデータを出力する第１のデータ出力端子となる。また、前記したデータ信号ＲＤＯ１１が出力されるノードは他の通信装置からシリアルデータが入力される第２のデータ入力端子となる。また、前記したデータ信号ＴＤＩ１１が出力されるノードは他の通信装置へシリアルデータを出力する第２のデータ出力端子となる。
【００４１】
通信手段としての通信制御部１２０は、上流側に接続されたホスト装置１０や下流側に接続されたデバイス２００との通信の制御や、デバイス内のＣＰＵコア１１５、１１６、１１７、１１８との通信の制御を行う。通信制御部１２０は、図２に示すようにデバイス選択レジスタ１０１と、デバイスＩＤ機能部１０２と、レイテンシコントロール１０３と、デバイス内レジスタ１０４と、通信選択レジスタ１０５と、ＭＵＸ１０６、１０７と、フリップフロップ１０８、１０９、１１０と、を備えている。
【００４２】
デバイス選択レジスタ１０１は、データ信号ＴＤＩ０１から常時書き込み可能なレジスタであり、ホスト装置１０がライトまたはリードを行うデバイス識別番号をライトする。
【００４３】
識別番号設定手段としてのデバイスＩＤ機能部１０２は、ホスト装置１０から入力されたクロック信号ＣＬＫ０１の立ち上がりでフリップフロップ１０８に取り込んだデータ信号ＴＤＩ０１を解析し、データ信号ＴＤＩ０１がデバイス識別番号設定命令を示すシリアルデータであった場合、続いて入力されるデータを第１の識別番号としてのデバイス識別番号として取り込みながら、取り込んだデバイス識別番号を下流のデバイス２００のデバイス識別番号に加工してデータ信号ＴＤＩ１１に出力する。
【００４４】
また、デバイスＩＤ機能部１０２は、設定されたデバイス識別番号を信号ＤＩＤ０１としてレイテンシコントロール１０３へ出力している。また、デバイス選択レジスタ１０１にライトされたデバイス識別番号と設定されたデバイス識別番号とが一致した場合は、後述するデバイス内レジスタ１０４やＣＰＵコア１１５、１１６、１１７、１１８に対してリードライト許可信号ＷＥＮ１をＯＮにする。
【００４５】
遅延設定手段としてのレイテンシコントロール１０３は、データ信号ＴＤＩ０１からフリップフロップ１０８でサンプリングされた後に分岐したデータ信号ＴＤＩ０２を、ＷＥＮ１がＯＮのときだけ、ＣＬＫ０１で規定の回数サンプリングし、ＣＬＫ０１の１サイクル以上の遅延を付与させたデータ信号ＴＤＩ０３を出力、または、ＭＵＸ１０６から出力されたＣＰＵコア１１５、１１６、１１７、１１８のリードデータおよびデバイス内レジスタ１０４のリードデータを、ＷＥＮ１がＯＮのときだけ、ＣＬＫ０１で規定の回数サンプリングし、ＣＬＫ０１の１サイクル以上の遅延を付与させてＭＵＸ１０７に出力する。付与する遅延量は、デバイスＩＤ機能部１０２が出力するデバイス識別番号を示す信号ＤＩＤ０１から計算される。
【００４６】
記憶手段としてのデバイス内レジスタ１０４は、デバイス１００内部の種々のレジスタ或いはメモリ等の記憶手段を示しホスト装置１０から通信制御部１２０を介してライトまたはリードを行うことができる。
【００４７】
通信選択レジスタ１０５は、後述するＣＰＵコア１１５、１１６、１１７、１１８のうちどのＣＰＵコアにアクセスするかを選択するレジスタであり、デバイス選択レジスタ１０１と同様にホスト装置１０がデータ信号ＴＤＩ０１から常時ライト可能となっている。
【００４８】
ＭＵＸ１０６は、後述するＣＰＵコア１１５、１１６、１１７、１１８から出力されたデータを通信選択レジスタ１０５によって選択制御されるマルチプレクサである。ＭＵＸ１０６で選択されたデータ（リードデータ）は、レイテンシコントロール１０３に出力される。
【００４９】
ＭＵＸ１０７は、レイテンシコントロール１０３から出力されたデータと、下流側に接続されたデバイス２００からのデータ信号ＲＤＯ１１と、を選択して出力するマルチプレクサである。
【００５０】
フリップフロップ１０８、１０９、１１０はディジーチェーン接続時のパイプラインレジスタとなるとともにフリップフロップ１０９、１１０はタイミング調整用のレジスタも兼ねている。
【００５１】
記憶手段としてのＣＰＵコア１１５、１１６、１１７、１１８は、デバイス１００内に設けられたＣＰＵであり、プログラムメモリやデータメモリ、シーケンサ、演算器および各種レジスタなどを備え、プログラムメモリやデータメモリや各種レジスタなどはホスト装置１０から通信制御部１２０を介してライトまたはリードが可能となっている。なお、本実施形態ではＣＰＵコアとしているが、それに限らず、メモリやレジスタ単体またはそれらを備えた機能ブロック（回路）などでもよい。
【００５２】
デバイス２００は、デバイス１００と同様の構成である。デバイス２００は上流側にデバイス１００が接続され下流側にデバイス３００が接続されている。デバイス３００もデバイス１００や２００と同様の構成である。デバイス３００は上流側にデバイス２００が接続され下流側に終端２０が接続されている。
【００５３】
終端２０は、ディジーチェーンを終端するために接続されている。
【００５４】
次に、上述した構成の通信システム１の動作を図２および図３を参照して説明する。本実施形態では、データ信号ＴＤＩ０１（ＴＤＩ１１）には、５ビットのアドレスデータ、１ビットのライト・リード、１６ビットのデータの順で構成されるシリアルプロトコルをもつシリアルデータが入力されるとする。勿論、アドレスのビット幅やデータのビット幅についてはこれ以外であってもよい。
【００５５】
ホスト装置１０からクロック信号ＣＬＫ０１に乗せてシリアルプロトコルを表すシリアルデータがデータ信号ＴＤＩ０１に出力されデバイス１００に入力される。そして、通信制御部１２０でクロック信号ＣＬＫ０１に一度サンプリングされた後に（フリップフロップ１０８に取り込まれた後に）、デバイスＩＤ機能部１０２に転送される（ステップＳ１）。
【００５６】
デバイスＩＤ機能部１０２では、ホスト装置１０から出力されたアドレス５ビットを受け取った際に、５ビットのアドレスデータを取り込みながらデバイス２００に対してその取り込んだデータをデータ信号ＴＤＩ１１として出力する。そして、取り込んだ５ビットのアドレスデータをシリアルプロトコル内の５ビットのアドレスとして認識し、５ビットのアドレスが識別番号設定命令を示す特定の値となったときに（ステップＳ２がＹ）、それ以降入力されるシリアルプロトコルのデータを表す１６ビットのシリアルデータを取り込みながら自身に設定するとともに所定の加工を施し（ステップＳ３）デバイス２００に出力する（ステップＳ４）。ビットのアドレスが識別番号設定命令を示す特定の値でないときは（ステップＳ２がＮ）、加工せず、そのままデータ信号ＴＤＩ１１としてデバイス２００に出力する（ステップＳ４）。すなわち、データ信号によってシリアルバスに接続された他の通信装置と識別するための固有の第１の識別番号が設定される。
【００５７】
デバイスＩＤ機能部１０２内の１６ビットシリアルデータの加工は、１６ビットデータを受け取った値を２倍したものを次のデバイスに出力している。デバイス２００も同様にデバイス１００と同じアドレスを受け取り、デバイス１００から入力されたシリアルプロトコル上のデータを表す１６ビットの信号を取り込みながら加工を施し、次のデバイスに出力する。このようにしてディジーチェーン上に１６個まで繋がったデバイスに対して、データを送ると、それぞれ１６ビットのデータとして取り込む値は図４に示すようになり、各デバイス内のデバイスＩＤ機能部が取り込む１６ビットのデータはそれぞれデバイス毎に固有となる。この固有となったデータを各デバイスＩＤ機能部が持つデコーダで加工し、デバイス識別番号とする。例えば、１６ビットデータが１６進数で“０００１”の場合デバイス識別番号が１０進数で“１”となるようにデコードし、１６ビットデータが１６進数で“０００２”の場合デバイス識別番号が１０進数で“２”となるようにデコードし、１６ビットデータが１６進数で“０００４”の場合デバイス識別番号が１０進数で“３”となるようにデコードする。このように本実施形態では１６ビットデータが１ビットずつ左シフトしていくに従ってデバイス識別番号を１ずつインクリメントするようにしている。
【００５８】
続いて、次のシリアルプロトコルが発行される。このシリアルプロトコルのアドレスによって、ディジーチェーン上のすべてのデバイス選択レジスタ１０１が選択され、シリアルプロトコル上の１６ビットのデータによってすべてのデバイス選択レジスタ１０１の値が書き換えられる（ステップＳ５）。
【００５９】
デバイス選択レジスタ１０１は、デバイスＩＤ機能部１０２に設定されているデバイス識別番号と比較され、デバイス識別番号と一致した場合は（ステップＳ６のＹ）、デバイス内レジスタ１０４とＣＰＵコア１１５、１１６、１１７、１１８に対してホスト装置からのライトリード許可信号ＷＥＮ１をデバイスＩＤ機能部１０２から出力する（ステップＳ７）。
【００６０】
ここで、デバイス内レジスタ１０４ではなく、ＣＰＵコア１１５、１１６、１１７、１１８に対してデータ転送を行う場合は、ホスト装置１０からのシリアルプロトコルで通信選択レジスタ１０５の値を書き換えてＣＰＵコアを選択する（ステップＳ８、Ｓ９）。詳細は後述する。
【００６１】
続いて、次のシリアルプロトコルが発行される（ステップＳ１０）、フリップフロップ１０８から出力されたデータ信号ＴＤＩ０２は、リードライト許可信号ＷＥＮ１がＯＮしたデバイスのみレイテンシコントロール１０３に入力信号として入力される（ステップＳ１１）。
【００６２】
レイテンシコントロール１０３に入力されたデータ信号ＴＤＩ０２は、デバイス識別番号ＤＩＤ０１によって自動で決められたレイテンシ分だけ遅延させられ（ステップＳ１２）データ信号ＴＤＩ０３から入力されるシリアルプロトコル上のアドレスによって、デバイス内レジスタ１０４が複数存在する場合はそのうちのいずれかが選択され、その後に入力されるライトまたはリードを表す１ビットから、これらに対して書き込みを行うか読み出しを行うかを決定する（ステップＳ１３）。ここでレイテンシを付与して遅延させることで各デバイスにおける命令受信タイミングを合わせることができる。
【００６３】
ライトを行う場合は、その後にステップＳ１２と同様にレイテンシ分だけ遅延されて入力されるシリアルプロトコル上の１６ビットのデータによって選択されたレジスタの値が書き換えられる（ステップＳ１４）。リードを行う際は、データは入力されずデバイス内選択レジスタ１０４からシリアルデータがレイテンシコントロール１０３に対して出力される（ステップＳ１５）。レイテンシコントロール１０３は、入力されたシリアルデータをデバイス識別番号ＤＩＤ０１によって自動で決められた遅延を付与した後にデータ信号ＲＤＯ０１に出力する（ステップＳ１６）。
【００６４】
デバイス内レジスタ１０４ではなく、ＣＰＵコア１１５、１１６、１１７、１１８に対してデータ転送を行う場合は、ホスト装置１０からのシリアルプロトコルで通信選択レジスタ１０５の値を書き換える。
【００６５】
ＣＰＵコア１１５、１１６、１１７、１１８にデータ転送する際には、通信選択レジスタ１０５によって、どのＣＰＵコアにデータ転送を行うかどうかを選択することができる。ＣＰＵコア１１５、１１６、１１７、１１８は、通信選択レジスタ１０５の値と各ＣＰＵコアが予めもつ第２の識別番号としてのコア識別番号が一致した場合か、通信選択レジスタ１０５が複数のＣＰＵコアを選択することを示す値をとったときに通信制御部１２０のからのデータＴＤＩ０３を受信する。例えば、ＣＰＵコア１１５に対してデータ転送を行う場合は通信選択レジスタの値が２に設定され、ＣＰＵコア１１６に対してデータ転送を行う場合は通信選択レジスタの値が３に設定され、ＣＰＵコア１１７に対してデータ転送を行う場合は通信選択レジスタの値が４に設定され、ＣＰＵコア１１８に対してデータ転送を行う場合は通信選択レジスタの値が５に設定されるとする。また、全てのＣＰＵコアに対してデータ転送を行いたい場合は０に設定する。それら以外の値の場合は、デバイス内レジスタ１０４に対してデータ転送を行うと設定する。すなわち、複数の記憶手段それぞれに固有の第２の識別番号を付与して複数の記憶手段と個別に通信を行っている。
【００６６】
ＣＰＵコア１１５、１１６、１１７、１１８のうち通信選択レジスタ１０５によって選択されたＣＰＵコアに転送されるデータ信号ＴＤＩ０３から入力される５ビットのアドレスと１ビットのライト／リード信号をもつシリアルデータは、当該ＣＰＵコアで解析され、５ビットのアドレス部分の解析から内部の所定のレジスタやメモリ等が選択され、ライト／リードを表す１ビットの信号からライトかリードのコマンドが決定される。ライトが選択された場合は、データ信号ＴＤＩ０３からライト／リードを表すシリアルデータが入力された後の１６ビットのデータを表すシリアルデータをＣＰＵコア内の選択されたレジスタ等にライトする。
【００６７】
また、リードが選択された場合には、通信選択レジスタ１０５によって選択されていたＣＰＵコアに対して、データ信号ＴＤＩ０３から入力されるシリアルデータのアドレス部によって当該ＣＰＵコア内のレジスタ等が選択され、リードを表すシリアルデータを受け取ったＣＰＵコアからシリアルデータがデータ信号ＲＤＯＣ０１〜０４のうちいずれかに対して出力され、レイテンシコントロール１０３へシリアルデータをデータ転送する。その後、レイテンシコントロール１０３に入力されたシリアルデータは、デバイス識別番号ＤＩＤ０１によって決められたレイテンシ分だけ遅延させた後、データ信号ＲＤＯ０１となってホスト装置１０へ転送される。
【００６８】
ここで、レイテンシコントロール１０３が付与する遅延量について図５ないし図８を参照して説明する。まず、ホスト装置からデバイス内レジスタ１０４およびＣＰＵコア１１５、１１６、１１７、１１８に対してライトプロトコルが発行された場合は、図５に示したように、Ｎ個繋がっていると仮定すると、デバイス１００に対しては１サイクル、デバイス２００に対しては２サイクル、デバイス３００に対しては３サイクル、デバイスＮに対してはＮサイクルでそれぞれライトできる場合、各デバイスにおいて付与する遅延量は、ディジーチェーン上に繋がっているデバイス識別番号から決定され、遅延させるサイクル数はデバイス１００のレイテンシコントロール１０３がＮ−１、デバイス２００のレイテンシコントロール２０３がＮ−２、デバイス３００のレイテンシコントロール３０３がＮ−３、デバイスＮのレイテンシコントロールＮ０３が０となる。つまり、遅延量は接続される総数−デバイス識別番号で計算する。すなわち、記憶手段へ書き込む際の遅延値を第１の識別番号に基づいて設定している。
【００６９】
このようにレイテンシコントロール１０３などでデバイス識別番号からレイテンシを決定することで、図６のタイムチャートに示すように各デバイス内レジスタおよびＣＰＵコアに対して同じタイミングでライトすることができる。
【００７０】
次に、ホスト装置からデバイス内レジスタ１０４およびＣＰＵコア１１５、１１６、１１７、１１８に対してリードプロトコルが発行された場合は、図７に示したように、Ｎ個繋がっていると仮定すると、デバイス１００からは２サイクル、デバイス２００からは４サイクル、デバイス３００からは６サイクル、デバイスＮからは２Ｎサイクルでそれぞれリードできる場合、各デバイスにおいて付与する遅延量は、ディジーチェーン上に繋がっているデバイス識別番号から決定され、遅延させるサイクル数はデバイス１００のレイテンシコントロール１０３が２×（Ｎ−１）、デバイス２００のレイテンシコントロール２０３が２×（Ｎ−２）、デバイス３００のレイテンシコントロール３０３が２×（Ｎ−３）、デバイスＮのレイテンシコントロールＮ０３が０となる。すなわち、記憶手段から読み出す際の遅延値を第１の識別番号に基づいて設定している。なお、ライトの場合はリードとサイクル数が異なっているが、本実施形態の場合、ライト時はデバイス間の転送はクロック信号とのタイミングを合わせるために２サイクル転送としているので２を掛けている。
【００７１】
このようにレイテンシコントロール１０３などでデバイス識別番号からレイテンシを決定することで、図８のタイムチャートに示すように各デバイス内レジスタおよびＣＰＵコアに対して同じタイミングでリードすることができる。
【００７２】
なお、レイテンシコントロールが付加する遅延のサイクル量については、一例を述べたのみで、デバイス識別信号から計算されれば、これ以外のサイクル数をとることもありうる。要するに、ディジーチェーン接続されたデバイスの転送サイクル数が、ホスト装置１０から見て同一となるようにデバイス識別番号を用いて計算できればよい。
【００７３】
以上の説明は主にデバイス１００について説明したが、同様の構成となるデバイス２００や３００も同様の動作となる。
【００７４】
本実施例によれば、ディジーチェーンに接続されたデバイス１００、２００、３００において、デバイスＩＤ機能部１０２にデバイス識別番号を設定し、そのデバイス識別番号に応じてレイテンシコントロール１０３がデバイスからリードする際の遅延値を決定しているので、例えば、デバイス識別番号をデバイス１００が１、デバイス２００が２、デバイス３００が３とした場合、デバイス３００がホストから一番遠いとすると、ホスト装置１０がデバイス３００からリードした際の遅延値に合わせてデバイス１００とデバイス２００のレイテンシコントロール１０２で遅延値を設定することで各デバイスからのリードする際のレイテンシを同一とすることができる。
【００７５】
また、デバイスＩＤ機能部１０２にデバイス識別番号を設定し、そのデバイス識別番号に応じてレイテンシコントロール１０３がデバイスにライトする際の遅延値を決定しているので、例えば、デバイス識別番号をデバイス１００が１、デバイス２００が２、デバイス３００が３とした場合、デバイス３００がホストから一番遠いとすると、ホスト装置１０がデバイス３００にライトする際の遅延値に合わせてデバイス１００とデバイス２００のレイテンシコントロール１０２で遅延値を設定することで各デバイスからのライトする際のレイテンシを同一とすることができる。
【００７６】
また、シリアルバス内に出力されるシリアルプロトコルによって識別番号を設定しているので、識別番号設定用の専用の端子などが不要となる。
【００７７】
また、通信選択レジスタ１０５によってＣＰＵコア１１５、１１６、１１７、１１８のうちいずれかを選択することができるので、ＣＰＵコアを複数内蔵したマルチプロセッサなどに対しても適用することができる。
【００７８】
また、上述したデバイス１００、２００、３００をディジーチェーン接続した通信システム１を用いることで、ホスト装置１０から見て各デバイスからのリード時のレイテンシを同一にすることができるとともにライト時のレイテンシも同一にすることができるので、一定のサイクル（タイミング）でリード及びライトを行うことができる。
【００７９】
なお、レイテンシコントロール１０３で付与する遅延のサイクル数は、ホスト装置１０からのクロック信号ＣＬＫ０１によるサイクル数ではなく、デバイス内部に搭載された位相ロックドループ（ＰＬＬ）回路やＤＬＬ（Delay Locked Loop）回路によって作られるクロック信号によるサイクル数としても良い。
【００８０】
また、本発明はディジーチェーン接続されたシステムの通信に用いることができるのは上述したとおりあるが、例えば複数のマルチプロセッサ（あるいはシングルプロセッサ）をデバッグ用のコンピュータやデバッガなどにディジーチェーン接続することで、複数のプロセッサのデバッグを行うシステムに適用することも可能である。
【００８１】
なお、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。
【符号の説明】
【００８２】
１          通信システム
１０        ホスト装置
１００      デバイス（通信装置）
１０２      デバイスＩＤ機能部（識別番号設定手段）
１０３      レイテンシコントロール（遅延設定手段）
１０４      デバイス内レジスタ（記憶手段）
１１５      ＣＰＵコア（記憶手段）
１１６      ＣＰＵコア（記憶手段）
１１７      ＣＰＵコア（記憶手段）
１１８      ＣＰＵコア（記憶手段）
１２０      通信制御部（通信手段）
２００      デバイス（通信装置）
３００      デバイス（通信装置）
【先行技術文献】
【特許文献】
【００８３】
【特許文献１】特開２００７−２２６７３７号公報
【特許文献２】特開２００８−３９１３号公報
【図１】
2010057164.tif 000003
【図２】
2010057164.tif 000004
【図３】
2010057164.tif 000005
【図４】
2010057164.tif 000006
【図５】
2010057164.tif 000007
【図６】
2010057164.tif 000008
【図７】
2010057164.tif 000009
【図８】
2010057164.tif 000010
【図９】
2010057164.tif 000011