(57)【要約】【課題】デイジーチェーン接続される通信端末では、その位置によって受信データを格納する領域と送信データを格納する領域のサイズが異なる。このため、どこに配置されても良いようにデータバッファを大きくしなければならなかった。本発明はそのサイズを小さくできるデータバッファおよびこれを用いた通信端末を提供することを目的にする。【解決手段】データバッファを複数のメモリブロックで構成し、通信端末が配置される位置を表すＩＤに基づいて、受信データを格納する領域のメモリブロック数と送信データを格納する領域のメモリブロックの数を変えるようにした。データバッファのサイズを小さくできる。【選択図】図３
2011180937.tif 000002
【特許請求の範囲】
【請求項１】
データを受信し、この受信データに基づいて送信データを作成して送信する通信端末に用いるデータバッファにおいて、
前記受信データまたは送信データが格納される複数のメモリブロックと、
前記受信したデータを書き込む位置を表す書込ポインタ、および読み出す位置を表す読出ポインタを出力する受信ポインタ出力部と、
前記送信データを書き込む位置を表す書込ポインタ、および読み出す位置を表す読出ポインタを出力する送信ポインタ出力部と、
前記複数のメモリブロックの各々に対応し、前記送信ポインタ出力部と前記受信ポインタ出力部の出力が入力され、入力された選択信号に基づいてこれらの出力を選択し、この選択した出力に関連した前記メモリブロックをアクセスする信号を出力するメモリブロック選択部と、
前記通信端末を識別するＩＤが入力され、前記メモリブロック選択部および前記受信ポインタ選択部および前記送信ポインタ選択部に選択信号を出力するバッファ切替制御部と、
を備えたことを特徴とするデータバッファ。
【請求項２】
前記メモリブロックは、書き込みと読み出しを独立して行うことができるデュアルポートメモリブロックであることを特徴とする請求項１記載のデータバッファ。
【請求項３】
前記メモリブロック選択部は、選択した書込ポインタおよび読出ポインタをアドレスに変換して前記メモリブロックに出力するようにしたことを特徴とする請求項１若しくは請求項２記載のデータバッファ。
【請求項４】
前記メモリブロックの出力データを選択するデータ選択部を具備したことを特徴とする請求項１乃至請求項３いずれかに記載のデータバッファ。
【請求項５】
データを受信し、この受信データに基づいて送信データを作成して送信する通信端末であって、
データを受信するデータ受信制御部と、
前記データ受信部が受信した受信データが格納される、請求項１乃至請求項４いずれかに記載のデータバッファと、
前記データバッファに格納された受信データを読み出し、この読み出した受信データに基づいて送信データを生成して、この生成した送信データを前記データバッファに格納するメイン機能部と、
前記データバッファに格納された送信データを送信する送信制御部と、
を備えたことを特徴とする通信端末。
【請求項６】
前記受信制御部は、受信したデータから該当するデータを抜き出して前記データバッファに格納すると共に、受信した全データを送信し、
前記送信制御部は、他の通信端末が送信したデータを受信し、この受信したデータと前記メイン機能部が生成したデータを集約して送信し、
するようにしたことを特徴とする請求項５記載の通信端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信端末に用いるデータバッファおよびそれを用いた通信端末に関し、特にデイジーチェーン接続される通信端末に用いて好適な通信端末およびこの通信端末に用いるデータバッファに関するものである。
【背景技術】
【０００２】
図７に、１台のマスタに４台のスレーブがデイジーチェーン接続されたデータ通信システムの構成を示す。なお、マスタ、スレーブ共に１つのＩＣチップで構成されている。
【０００３】
図７において、１０はマスタ、１１〜１４はスレーブである。スレーブ１１〜１４はそれぞれ通信部１５とメイン機能部１６で構成されている。メイン機能部１６はスレーブ１１〜１４の主な機能を実現するものであり、各スレーブ１１〜１４で構成が異なる場合もある。
【０００４】
スレーブ１１〜１４内の通信部１５とマスタ１０は、下りデータリンク１７で直列に接続される。同様に、スレーブ１１〜１４内の通信部１５とマスタ１０は、上りデータリンク１８で直列に接続される。さらに、スレーブ１１〜１４内のメイン機能部１６には、マスタ１０から同期信号ライン１９を経由して同期信号が供給される。
【０００５】
このような構成において、マスタ１０は下りデータリンク１７を用いてスレーブ１１〜１４にデータを送信する。このデータはスレーブ１１〜１４の順で伝送される。スレーブ１１〜１４内の通信部１５は、自身が属するスレーブ宛のデータをデータバッファに格納する。
【０００６】
スレーブ１１〜１４内のメイン機能部１６は同時に動作する。メイン機能部１６は同期信号１９に基づいて通信部１５内のデータバッファに格納されたデータを読み込んで処理し、マスタ１０に送信するデータを生成して通信部１５に出力する。通信部１５は、上りデータリンク１８を用いてこのデータをマスタ１０に送信する。同期信号１９は、スレーブ１１〜１４が同時に動作を行って処理結果を出すための基準タイミングを与える。
【０００７】
スレーブ１１〜１４は上りデータリンク１８によって直列接続されている。このため、スレーブ１２〜１４には上流側スレーブが送信したデータが入力される。スレーブ１２〜１４内の通信部１５は、上流側スレーブから送られてきたデータと自身が送信するデータを集約し、下流側スレーブあるいはマスタ１０に送信する。
【０００８】
スレーブ１１〜１４には異なったＩＤが設定される。スレーブ１１〜１４はこのＩＤによって、自身の位置（マスタ１０から何番目に接続されているか等）およびアドレスを認識する。
【０００９】
このように構成することにより、下りデータリンク１７と上りデータリンク１８の２本の通信路を用いて、複数のスレーブをマスタ１０に接続することができる。また、簡単にスレーブを増設することもできる。
【００１０】
図８に通信部１５の構成を示す。なお、図７と同じ要素には同一符号を付し、説明を省略する。通信部１５は全スレーブ１１〜１４で同じ構成を有している。
【００１１】
図８において、２０は通信部であり、通信部１５と同じものである。通信部２０は下り側受信部２１、下り側送信部２２、上り側受信部２３、上り側送信部２４、下り側通信制御部２５、上り側通信制御部２６、下り側データバッファ２７、および上り側データバッファ２８で構成される。下り側受信部２１、下り側送信部２２、上り側受信部２３、上り側送信部２４はいずれも物理層のブロックであり、下りデータリンク１７、上りデータリンク１８の信号と下り側通信制御部２５、上り側通信制御部２６の信号を変換する。
【００１２】
下り側受信部２１と下り側送信部２２は下りデータリンク１７に接続される。下り側受信部２１は下りデータリンク１７を介して送られてきたデータを受信し、下り側通信制御部２５に出力する。下り側通信制御部２５は自身が属するスレーブ宛のデータを下り側データバッファ２７に格納し、入力されたデータをそのまま下り側送信部２２に出力する。下り側送信部２２は、このデータを下りデータリンク１７に出力する。
【００１３】
メイン機能部１６は、マスタ１０から送信される同期信号の制御を受け、下り側データバッファ２７に格納されたデータを読み込んで処理し、マスタ１０に送信するデータを生成して上り側データバッファ２８に書き込む。
【００１４】
上り側受信部２３と上り側送信部２４は上りデータリンク１８に接続される。上り側受信部２３は、上りデータリンク１８を介して送られてきた上流側スレーブのデータを受信し、上り側通信制御部２６に出力する。上り側通信制御部２６は上り側受信部２３が受信したデータと上り側データバッファ２８に格納されたデータを集約し、上り側送信部２４に出力する。上り側送信部２４は、上り側通信制御部２６が集約したデータを上りデータリンク１８に出力する。
【００１５】
図９に、下り側データバッファ２７と上り側データバッファ２８の構成を示す。図９において、（Ａ）は下り側データバッファ２７の構成、（Ｂ）は上り側データバッファ２８の構成である。これらのデータバッファはＦＩＦＯ（First In First Out）型の構成を有している。
【００１６】
図９（Ａ）において、下り側データバッファ２７は書込ポインタ出力部３０、デュアルポートメモリブロック３１、読出ポインタ出力部３２で構成される。デュアルポートメモリブロック３１は書込ポートと読出ポートを有し、データの書き込みと読み出しを独立して同時に行うことができるメモリである。
【００１７】
下り側通信制御部２５はデュアルポートメモリブロック３１に書込データを出力し、書込ポインタ出力部３０とデュアルポートメモリブロック３１に書込イネーブル信号を出力する。書込ポインタ出力部３０はデュアルポートメモリブロック３１にデータを書き込む位置を示す書込ポインタを内蔵し、書込イネーブル信号が入力されるとこの書込ポインタを出力する。デュアルポートメモリブロック３１は、書込イネーブル信号のタイミングで書込データを書込ポインタが示す位置に格納する。
【００１８】
読出ポインタ出力部３２はデュアルポートメモリブロック３１のデータを読み出す位置を示す読出ポインタを内蔵し、メイン機能部１６から読出イネーブル信号が入力されるとこの読出ポインタを出力する。デュアルポートメモリブロック３１は読出ポインタの位置に格納されているデータを出力する。このデータはメイン機能部１６によって読み込まれる。書込ポインタ、読出ポインタは、書き込み、読み出しが終了すると、インクリメントされる。
【００１９】
図９（Ｂ）に上り側データバッファ２８の構成を示す。メイン機能部１６は書込データおよび書込イネーブル信号を出力してデータを書き込む。また、上り側通信制御部２６は読出イネーブル信号を出力してデータを読み出す。
【００２０】
データの書き込み相手および読み出し相手が異なることを除くと、上り側データバッファ２８の構成は下り側データバッファ２７と同じであるので、詳細な説明を省略する。なお、下り側データバッファ２７、上り側データバッファ２８として一般的なＦＩＦＯメモリを使用することができる。
【００２１】
次に、図１０および図１１に基づいて、図７構成のデータ通信システムの動作を説明する。図１０はマスタ１０からスレーブ１１〜１４にデータを送信する下り側の動作を示した図である。
【００２２】
図１０において、（Ａ）はマスタ１０の送信データ、（Ｂ）は同期信号、（Ｃ）、（Ｅ）、（Ｇ）、（Ｉ）はそれぞれスレーブ１１〜１４が受信するデータ、（Ｄ）、（Ｆ）、（Ｈ）、（Ｊ）はそれぞれスレーブ１１〜１４内のメイン機能部１６がデータを読み込むタイミングを表している。なお、１〜８はデータである。
【００２３】
（Ａ）に示すように、マスタ１０は時刻ｔ１から８個のデータを順番に送信し、最初のデータ“１”がスレーブ１４に到達したより後の時刻ｔ６から同期信号を出力する。マスタ１０が送信したデータはスレーブ間を受け渡しながら伝送されるので、各スレーブ内の通信部１５の処理時間遅延、および下りデータリンク１７の伝送遅延によって、スレーブ１１〜１４がデータ受信を開始するタイミングは、マスタ１０がデータを送信するタイミングとずれる。（Ｃ）、（Ｅ）、（Ｇ）、（Ｉ）に示すように、スレーブ１１〜１４は、それぞれ時刻ｔ２〜ｔ５からデータの受信を開始する。
【００２４】
図１０（Ｄ）、（Ｆ）、（Ｈ）、（Ｊ）に示すように、スレーブ１１〜１４は同期信号に同期して、同じ時刻ｔ６から下り側データバッファ２７に格納されているデータの取り出しを開始する。この操作により、スレーブ１１〜１４はデータの到着時間にずれがあっても、同じデータに対して同時に動作することができる。
【００２５】
図１１はスレーブ１１〜１４からマスタ１０にデータを送信する上り側の動作を示した図である。図１１において、（Ａ）はマスタ１０が出力する同期信号、（Ｂ）、（Ｄ）、（Ｆ）、（Ｈ）はそれぞれスレーブ１１〜１４内のメイン機能部１６がデータを生成するタイミングを、（Ｃ）、（Ｅ）、（Ｇ）、（Ｉ）はそれぞれスレーブ１１〜１４内の通信部１５がデータを送信するタイミングを表している。
【００２６】
なお、１／１等はデータを表し、スラッシュ（／）の左側はデータの番号を、右側の１〜４はそれぞれスレーブ１１〜１４が生成したデータであることを表している。また、１―２、１−３、１−４はそれぞれスレーブ１１と１２、１１〜１３、１１〜１４が生成したデータを集約したデータを表している。
【００２７】
スレーブ１１〜１４内のメイン機能部１６は時刻ｔ７からデータを生成し、このデータを上り側データバッファ２８に書き込む。スレーブ１１内の通信部１５は、時刻ｔ８からこのデータを送信する。すなわち、スレーブ１１内のメイン機能部１６が生成したデータを書き込むとほぼ同時に送信する。
【００２８】
スレーブ１２は、スレーブ１１が送信したデータと自身のメイン機能部１６が生成したデータを集約し、時刻ｔ９からこの集約したデータを送信する。また、スレーブ１３は、スレーブ１２が送信した集約データと自身のメイン機能部１６が生成したデータを集約し、時刻ｔ１０からこの集約したデータを送信する。さらに、スレーブ１４は、スレーブ１３が送信した集約データと自身のメイン機能部１６が生成したデータを集約し、時刻ｔ１１からこの集約したデータを送信する。
【００２９】
（Ｂ）、（Ｄ）、（Ｆ）、（Ｈ）に示すように、スレーブ１１〜１４内のメイン機能部１６は同時にデータを生成して上り側データバッファ２８に格納するが、スレーブ１２〜１４は上流側スレーブが送信したデータと自身が生成したデータを集約してから送信するので、ｔ９〜ｔ１１に示すように、データを送信するタイミングはずれる。このため、スレーブ１１〜１４の間で伝搬遅延が生じるが、同時刻に生成したデータを１つのデータに集約して送信することができる。
【先行技術文献】
【特許文献】
【００３０】
【特許文献１】特許公開第２００９−２３９６５６号
【発明の概要】
【発明が解決しようとする課題】
【００３１】
しかしながら、このようなデータ通信システムに用いるスレーブ１１〜１４は、スレーブに内蔵しなければならないデータバッファの大きさがスレーブの位置によって変わるので、データバッファとして必要以上の容量を確保しなければならないという課題があった。
【００３２】
図１０で説明すると、スレーブ１１は時刻ｔ２でデータの受信を開始し、時刻ｔ６でメイン機能部１６はデータ入力を開始する。このため、この間のΔｔ１間に受信する８個のデータを格納するだけの領域を、下り側データバッファ２７に確保しなければならない。
【００３３】
これに対してスレーブ１４は時刻ｔ５でデータの受信を開始し、時刻ｔ６でメイン機能部１６はデータの入力を開始する。このため、この間のΔｔ２間に受信する２個のデータを格納する領域を、下り側データバッファ２７に確保すれば十分である。
【００３４】
同様に、上り側データバッファ２８は、送信が開始されるまでに生成したデータを格納する領域を確保しなければならない。図１１で説明すると、スレーブ１１は時刻ｔ７でデータの生成を開始し、時刻ｔ８でデータの送信を開始する。このため、上り側データバッファ２８には、この間のΔｔ３間に生成した１個のデータを格納する領域を確保すれば十分である。
【００３５】
これに対してスレーブ１４は時刻ｔ７でデータの生成を開始し、時刻ｔ１１で送信を開始するので、この間のΔｔ４間に生成された７個のデータを格納する領域を確保しなければならない。
【００３６】
図１２に、スレーブ１１〜１４が格納しなければならないデータ数をまとめたグラフを示す。図１２において、４０は下り側データバッファ２７に格納しなければならないデー数の最大値、４１は上り側データバッファ２８に格納しなければならないデータ数の最大値である。
【００３７】
上流側に位置するスレーブ１１は下り側データバッファ２７に格納しなければならないデータ数が多く、上り側データバッファ２８に格納しなければならないデータ数は少ない。これに対して下流側に位置するスレーブ１４では、下り側データバッファ２７に格納しなければならないデータ数は少ないが、上り側データバッファ２８に格納しなければならないデータ数は大きくなる。
【００３８】
どのスレーブがどの位置に配置されるかはシステムを設置するまでわからないので、全てのスレーブの下り側データバッファ２７と上り側データバッファ２８として、格納すべき最大のデータ数が格納できる領域を確保しなければならず、データバッファの大きさが必要以上に大きくなってしまうという課題があった。
【００３９】
図１０、図１１の例では、格納しなければならないデータ数が最大でも８個程度なので、データバッファとしてそれほど大きなサイズを必要としない。しかし、上りデータリンク１８および下りデータリンク１７の伝送速度、通信部１５の処理遅延時間、スレーブの個数によって格納しなければならないデータ数は大きく変動する。従って、上り側／下り側データバッファのサイズとしてかなりの余裕を持たせなければならない。
【００４０】
データバッファのサイズが異なるスレーブを複数種類用意して適宜使い分けることも考えられるが、スレーブの設計工数や量産性の観点から、実際には困難であるという課題もあった。
【００４１】
特に、スレーブとしてチップＩＣ化されたものを用いる場合は、データバッファのサイズを大きくするとチップ面積、消費電力および製造コストが増大してしまうという課題もあった。
【００４２】
本発明の目的は、そのサイズを削減することができるデータバッファ、およびこのデータバッファを用いた通信端末を実現することにある。
【課題を解決するための手段】
【００４３】
このような課題を達成するために、本発明のうち請求項１記載の発明は、
データを受信し、この受信データに基づいて送信データを作成して送信する通信端末に用いるデータバッファにおいて、
前記受信データまたは送信データが格納される複数のメモリブロックと、
前記受信したデータを書き込む位置を表す書込ポインタ、および読み出す位置を表す読出ポインタを出力する受信ポインタ出力部と、
前記送信データを書き込む位置を表す書込ポインタ、および読み出す位置を表す読出ポインタを出力する送信ポインタ出力部と、
前記複数のメモリブロックの各々に対応し、前記送信ポインタ出力部と前記受信ポインタ出力部の出力が入力され、入力された選択信号に基づいてこれらの出力を選択し、この選択した出力に関連した前記メモリブロックをアクセスする信号を出力するメモリブロック選択部と、
前記通信端末を識別するＩＤが入力され、前記メモリブロック選択部および前記受信ポインタ選択部および前記送信ポインタ選択部に選択信号を出力するバッファ切替制御部と、
を備えたものである。データバッファのサイズを小さくできる。
【００４４】
請求項２記載の発明は、請求項１に記載の発明において、
前記メモリブロックとして、書き込みと読み出しを独立して行うことができるデュアルポートメモリブロックを用いたものである。アクセス時間を短縮できる。
【００４５】
請求項３記載の発明は、請求項１若しくは請求項２に記載の発明において、
前記メモリブロック選択部は、選択した書込ポインタおよび読出ポインタをアドレスに変換して前記メモリブロックに出力するようにしたものである。ポインタ値を設定する自由度が増すので、構成を簡単にできる。
【００４６】
請求項４記載の発明は、請求項１乃至請求項３いずれかに記載の発明において、
前記メモリブロックの出力データを選択するデータ選択部を具備したものである。メモリブロックの制御が簡単になる。
【００４７】
請求項５記載の発明は、
データを受信し、この受信データに基づいて送信データを作成して送信する通信端末であって、
データを受信するデータ受信制御部と、
前記データ受信部が受信した受信データが格納される、請求項１乃至請求項４いずれかに記載のデータバッファと、
前記データバッファに格納された受信データを読み出し、この読み出した受信データに基づいて送信データを生成して、この生成した送信データを前記データバッファに格納するメイン機能部と、
前記データバッファに格納された送信データを送信する送信制御部と、
を備えたものである。データバッファのサイズを小さくできる。
【００４８】
請求項６記載の発明は、請求項５に記載の発明において、
前記受信制御部は、受信したデータから該当するデータを抜き出して前記データバッファに格納すると共に、受信した全データを送信し、
前記送信制御部は、他の通信端末が送信したデータを受信し、この受信したデータと前記メイン機能部が生成したデータを集約して送信し、
するようにしたものである。デイジーチェーン接続の通信端末に用いて好適である。
【発明の効果】
【００４９】
本発明によれば以下のような効果がある。
本発明では、データバッファとして複数のメモリブロックを用い、通信端末を識別するＩＤに基づいて、受信データを格納するメモリブロックの数と、送信データを格納するメモリブロックの数を決定するようにした。
【００５０】
受信データと送信データの格納領域として常に最適なサイズを自動的に選択することができるので、必要以上の格納領域を持つ必要がなくなる。このため、データバッファのサイズを削減することができるという効果がある。また、サイズが異なるデータバッファを用意する必要がなくなるので、通信端末の種類を削減できるという効果もある。
【００５１】
特に、通信端末として１チップ構成のＩＣを用いる場合は、ＩＣチップの面積を小さくすることができ、消費電力および製造コストを削減することができるという効果もある。
【図面の簡単な説明】
【００５２】
【図１】通信システムの構成図である。
【図２】通信部の構成図である。
【図３】データバッファの構成図である。
【図４】デュアルポートメモリの割り付けを示す図である。
【図５】ポインタの範囲を示す図である。
【図６】デュアルポートメモリブロックの出力の選択を示す図である。
【図７】通信システムの構成図である。
【図８】従来の通信部の構成図である。
【図９】従来のデータバッファの構成図である。
【図１０】スレーブがデータを受信するタイミングを示した特性図である。
【図１１】スレーブがデータを送信するタイミングを示した特性図である。
【図１２】最大格納データ数を示した図である。
【発明を実施するための形態】
【００５３】
以下本発明を、図面を用いて詳細に説明する。図１は本発明に係る通信端末を用いたデータ通信システムの構成図であり、図７と同じ要素には同一符号を付し、説明を省略する。また、通信部の具体的な構成が、図７と異なる点である。
【００５４】
図１において、５０〜５３はスレーブであり、マスタ１０とディジーチェーン方式で接続される。スレーブ５０〜５３はそれぞれ通信部５４およびメイン機能部１６で構成され、それぞれ異なるＩＤが設定される。スレーブ５０〜５３は通信端末に相当する。
【００５５】
マスタ１０とスレーブ５０内の通信部５４は下りデータリンク１７で接続される。同様に、スレーブ５０とスレーブ５１内の通信部５４、スレーブ５１とスレーブ５２内の通信部５４、スレーブ５２とスレーブ５３内の通信部５４は下りデータリンク１７で接続される。このように、スレーブ５０〜５３内の通信部５４は、下りデータリンク１７でマスタ１０と直列接続される。マスタ１０から送信されるデータは、下りデータリンク１７を介してスレーブ５０〜５３に順に伝達される。マスタ１０に近い側を上流側、遠い方を下流側とする。
【００５６】
スレーブ５０と５１内の通信部５４は、上りデータリンク１８で接続される。同様に、スレーブ５１と５２内の通信部５４、スレーブ５２と５３内の通信部５４、スレーブ５３内の通信部５４とマスタ１０は、それぞれ上りデータリンク１８で接続される。このようにして、スレーブ５０〜５３内の通信部５４は、上りデータリンク１８でマスタ１０と直列接続される。スレーブ５０〜５３の送信データは、上りデータリンク１８を介してマスタ１０に伝達される。
【００５７】
スレーブ５０〜５３内のメイン機能部１６には、マスタ１０から同期信号ライン１９を経由して同期信号が入力される。スレーブ５０〜５３内のメイン機能部１６は、この同期信号に同期してデータを読み込み、この読み込んだデータに基づいて送信するデータを生成する。このデータ通信システムは、図７従来例のデータ通信システムでスレーブ１１〜１４をスレーブ５０〜５３で置き換えた構成を有している。
【００５８】
図２に、スレーブ５０〜５３の構成を示す。なお、図８と同じ要素には同一符号を付し、説明を省略する。図２において、６０は通信部であり、通信部５４に対応する。スレーブ５０〜５３は同じ構成の通信部６０を具備している。
【００５９】
通信部６０は、下り側受信部２１、下り側送信部２２、上り側受信部２３、上り側送信部２４、下り側通信制御部２５、上り側通信制御部２６、データバッファ６１で構成される。データバッファ６１にはスレーブ５０〜５３に設定されるＩＤが入力される。通信部６０は、図８の通信部２０の下り側データバッファ２７と上り側データバッファ２８をデータバッファ６１で置き換えた構成を有している。
【００６０】
下り側受信部２１、下り側送信部２２、および下り側通信制御部２５でデータ受信制御部を構成しており、上り側受信部２３、上り側送信部２４、および上り側通信制御部２６で送信制御部を構成している。
【００６１】
下り側受信部２１と下り側送信部２２は下りデータリンク１７に接続される。下り側受信部２１は上流側スレーブあるいはマスタ１０が送信したデータを受信し、下り側通信制御部２５に出力する。下り側送信部２２は下り側通信制御部２５が出力したデータを下りデータリンク１７を介して下流側スレーブに送信する。
【００６２】
下り側通信制御部２５は書込データおよび書込ライトイネーブル信号をデータバッファ６１に出力し、自身が属するスレーブ宛のデータをデータバッファ６１に格納する。メイン機能部１６は読出イネーブル信号をデータバッファ６１に出力し、データバッファ６１に格納されたデータを読み込む。そして、この読み込んだデータに基づいて送信データを生成し、この送信データおよび書込イネーブル信号をデータバッファ６１に出力して書き込む。
【００６３】
上り側受信部２３と上り側送信部２４は上りデータリンク１８に接続される。上り側受信部２３は上流側スレーブが送信したデータを受信し上り側通信制御部２６に出力する。上り側通信制御部２６は、読出イネーブル信号をデータバッファ６１に出力してメイン機能部１６が書き込んだ送信データを読み出し、この読み出した送信データと上り側受信部２３から送られたデータを集約して、上り側送信部２４に出力する。上り側送信部２４はこのデータを上りデータリンク１８を介して下流側スレーブあるいはマスタ１０に送信する。送受信の手順は図１０、図１１と同じである。なお、最上流側に位置するスレーブは、自身が生成した送信データのみを送信する。
【００６４】
図３に、データバッファ６１の構成を示す。データバッファ６１は、図８の下り側データバッファ２７、上り側データバッファ２８と同様のＦＩＦＯ型のメモリであり、入力されたＩＤによって、下り側通信制御部２５が出力するデータを格納する受信データバッファ領域と、メイン機能部１６が出力する送信データを格納する送信データバッファ領域のサイズを可変できるようになっている。なお、ＩＤはスレーブの位置（上流側から何番目に配置されているか）を表すように付与する。
【００６５】
図３において、７０は受信ポインタ出力部であり、書込ポインタ出力部７０ａ、および読出ポインタ出力部７０ｂで構成される。書込ポインタ出力部７０ａ、読出ポインタ出力部７０ｂは、それぞれマスタ１０が送信したデータを書き込む位置を示す書込ポインタ、および該データを読み出す位置を示す読出ポインタを保持し、このポインタを出力する。
【００６６】
書込ポインタ出力部７０ａには、下り側通信制御部２５が出力する書込イネーブル信号が入力される。書込ポインタ出力部７０ａは、書込イネーブル信号が入力されると書込イネーブル信号、および保持している書込ポインタを出力する。
【００６７】
読出ポインタ出力部７０ｂには、メイン機能部１６が出力する読出イネーブル信号が入力される。読出ポインタ出力部７０ｂは、読出イネーブル信号が入力されると読出イネーブル信号、および保持している読出ポインタを出力する。
【００６８】
７１は送信ポインタ出力部であり、書込ポインタ出力部７１ａ、および読出ポインタ出力部７１ｂで構成される。書込ポインタ出力部７１ａ、読出ポインタ出力部７１ｂは、それぞれマスタ１０に送信するデータを書き込む位置を示す書込ポインタ、および該データを読み出す位置を示す読出ポインタを保持し、このポインタを出力する。
【００６９】
書込ポインタ出力部７１ａには、メイン機能部１６が出力する書込イネーブル信号が入力される。書込ポインタ出力部７１ａは、書込イネーブル信号が入力されると書込イネーブル信号、および保持している書込ポインタを出力する。
【００７０】
読出ポインタ出力部７１ｂには、上り側通信制御部２６が出力する読出イネーブル信号が入力される。読出ポインタ出力部７１ｂは、読出イネーブル信号が入力されると読出イネーブル信号、および保持している読出ポインタを出力する。
【００７１】
なお、書込ポインタ出力部７０ａおよび７１ａ、読み出しポインタ出力部７０ｂ、７１ｂが保持している書込ポインタ、読出ポインタは、書き込み、読み出しが終了するとインクリメントされる。また、これらのポインタはサイクリックに変化する。すなわち、最大値を越えると、最小値になる。
【００７２】
７２はバッファ切替制御部であり、このデータバッファが内蔵されるスレーブのＩＤが入力される。バッファ切替制御部７２は、このＩＤに基づいて選択信号を生成して出力する。
【００７３】
７３ａ〜７３ｅはメモリブロック選択部である。メモリブロック選択部７３ａは書込ブロック選択部７４ａおよび読出ブロック選択部７５ａで構成され、メモリブロック選択部７３ｂは書込ブロック選択部７４ｂおよび読出ブロック選択部７５ｂで構成される。メモリブロック選択部７３ｃは書込ブロック選択部７４ｃおよび読出ブロック選択部７５ｃで構成され、メモリブロック選択部７３ｄは書込ブロック選択部７４ｄおよび読出ブロック選択部７５ｄで構成される。メモリブロック選択部７３ｅは書込ブロック選択部７４ｅおよび読出ブロック選択部７５ｅで構成される。これらメモリブロック選択部７３ａ〜７３ｅには、バッファ切替制御部７２の出力である選択信号が入力される。
【００７４】
書込ブロック選択部７４ａ〜７４ｅには、書込ポインタ出力部７０ａが出力する書込ポインタと書込イネーブル信号、下り側通信制御部２５が受信した受信データで構成されるデータ組Ａ、および書込ポインタ出力部７１ａが出力する書込ポインタと書込イネーブル信号、メイン機能部１６が出力する送信データで構成されるデータ組Ｂが入力される。
【００７５】
７６ａ〜７６ｅはデュアルポートメモリブロックである。メモリブロック選択部７３ａ〜７３ｅの出力は、それぞれデュアルポートメモリ７６ａ〜７６ｅに入力される。デュアルポートメモリブロック７６ａ〜７６ｅは、メモリブロックに相当する。
【００７６】
デュアルポートメモリブロック７６ａ〜７６ｅは書き込み用と読み出し用の２つのポートを有し、書き込みと読み出しを独立して行うことができるメモリであればよく、その実体はＲＡＭ（Random Access Memory）やフリップフロップ等任意の記憶素子を用いることができる。
【００７７】
書込ブロック選択部７４ａ〜７４ｅはバッファ切替制御部７２が出力する選択信号に基づいてデータ組Ａまたはデータ組Ｂのいずれかを選択し、入力された書込ポインタをアドレスに変換して、それぞれデュアルポートメモリブロック７６ａ〜７６ｅに出力する。
【００７８】
読出ブロック選択部７５ａ〜７５ｅには、読出ポインタ出力部７０ｂが出力する読出ポインタと読出イネーブル信号、および読出ポインタ出力部７１ｂが出力する読出ポインタと読出イネーブル信号が入力される。読み出しブロック選択部７５ａ〜７５ｅは、バッファ切替制御部７２が出力する選択信号に基づいて読出ポインタ出力部７０ｂの出力または７１ｂの出力のいずれかを選択し、読出ポインタをアドレスに変換して、それぞれデュアルポートメモリブロック７６ａ〜７６ｅに出力する。
【００７９】
７７は受信データ選択部であり、デュアルポートメモリブロック７６ａ〜７６ｅから読み出したデータが入力される。受信データ選択部７７は読出ポインタ出力部７０ｂの出力に基づいて入力されたデータのいずれかを選択し、受信データとしてメイン機能部１６に出力する。
【００８０】
７８は送信データ選択部であり、デュアルポートメモリブロック７６ａ〜７６ｅから読み出したデータが入力される。送信データ選択部７８は読出ポインタ出力部７１ｂの出力に基づいて入力されたデータのいずれかを選択し、送信データとして上り側通信制御部２６に出力する。
【００８１】
次に、この実施例の動作を説明する。この実施例では、スレーブ５０〜５３に付与されたＩＤに基づいて、デュアルポートメモリブロック７６ａ〜７６ｅの割り付けを変更する。図４は、デュアルポートメモリブロック７６ａ〜７６ｅの割り付けの例を表した表である。なお、スレーブ５０〜５３には、それぞれ＃１〜＃４のＩＤが付与されているとする。
【００８２】
図１２のグラフからわかるように、上流側に位置するスレーブはデータバッファに格納しなければならないデータ数は下り側で多く、上り側では少ない。これに対して下流側に位置するスレーブでは、下り側で少なく、上り側で多くなる。なお、下り側データとはマスタ１０から送信されるデータ、上り側データはマスタ１０に送信するデータである。
【００８３】
このため、最上流側に位置するスレーブ５０は下り側データバッファとしてデュアルポートメモリブロック７６ａ〜７６ｄの４つのブロックを用い、上り側データバッファとしてデュアルポートメモリブロック７６ｅのみを割り当てる。
【００８４】
以下、下流側になるに従って、下り側データバッファとして用いるデュアルポートメモリブロックの数を減らし、上り側データバッファとして用いるデュアルポートメモリブロックの数を増加させる。最下流に位置するスレーブ５３では、下り側データバッファとしてデュアルポートメモリブロック７６ａのみを使用し、残りのデュアルポートメモリブロック７６ｂ〜７６ｅは上り側データブロックとして使用する。
【００８５】
バッファ切替制御部７２は、入力されたＩＤに基づいて選択信号を書込ポインタ出力部７０ａおよび７１ａ、読出ポインタ出力部７１ａおよび７１ｂ、メモリブロック選択部７３ａ〜７３ｅに出力する。
【００８６】
書込ポインタ出力部７０ａ、７１ａ、読出ポインタ出力部７１ａ、７１ｂは、バッファ切替制御部７２から入力された選択信号に基づいて、出力するポインタの可変範囲を決定する。この可変範囲を図５に示す。なお、デュアルポートメモリブロック７６ａ〜７６ｅの割り付けは図４と同じとし、デュアルポートメモリブロック７３ａ〜７３ｅの容量を各１６ワードとする。また、「０ｘ」は続く数字が１６進数であることを表している。
【００８７】
図５において、スレーブ５０は下り側データバッファとして７６ａ〜７６ｄの４つ、上り側データバッファとして７６ｅの１つのデュアルポートメモリブロックを割り付けているので、書込ポインタ出力部７０ａおよび読出ポインタ出力部７０ｂが保持するポインタは０ｘ０〜０ｘ３ｆの範囲を移動し、書込ポインタ出力部７１ａ、読出ポインタ出力部７１ｂが保持するポインタは０ｘ４０〜０ｘ４ｆの範囲を移動する。下り側データバッファの容量は６４ワード、上り側データバッファの容量は１６ワードになる。
【００８８】
同様にして、スレーブ５１〜５３内の書込ポインタ出力部７０ａ、読出ポインタ出力部７０ｂが保持するポインタの範囲はそれぞれ０ｘ０〜０ｘ２ｆ、０ｘ０〜０ｘ１ｆ、０ｘ０〜０ｘｆとなり、書込ポインタ出力部７１ａ、読出ポインタ出力部７１ｂが保持するポインタの範囲はそれぞれ０ｘ３０〜０ｘ４ｆ、０ｘ２０〜０ｘ４ｆ、０ｘ１０〜０ｘ４ｆになる。スレーブ５１〜５３の下り側データバッファの容量はそれぞれ４８、３２、１６になり、上り側データバッファの容量はそれぞれ３２、４８、６４バイトになる。
【００８９】
メモリブロック選択部７３ａ〜７３ｅは、バッファ切替制御部７２から入力された選択信号に基づいて、デュアルポートメモリブロック７６ａ〜７６ｅに出力する信号を選択する。
【００９０】
例えば、ＩＤとして＃１が入力されると、バッファ切替制御部７２は、デュアルポートメモリブロック７６ａ〜７６ｄを下り側、７６ｅを上り側とするような選択信号を出力する。
【００９１】
この選択信号によって、書込ブロック選択部７４ａ〜７４ｄは書き込みポインタ出力部７０ａの出力と受信データ（前述のデータ組Ａ）を選択し、書込ブロック選択部７４ｅは書込ポインタ出力部７１ａの出力と送信データ（前述のデータ組Ｂ）を選択して、この選択した信号をそれぞれデュアルポートメモリブロック７６ａ〜７６ｅに出力する。また、読出ブロック７５ａ〜７５ｄは読出ポインタ出力部７０ｂの出力を選択し、読出ブロック７５ｅは読出ポインタ出力部７１ｂの出力を選択して、この選択した信号をそれぞれデュアルポートメモリブロック７６ａ〜７６ｅに出力する。
【００９２】
ＩＤとして＃４が入力されると、バッファ切替制御部７２は、デュアルポートメモリブロック７６ａを下り側、７６ｂ〜７６ｅを上り側とするような選択信号を出力する。
【００９３】
この選択信号によって、書込ブロック選択部７４ａは書き込みポインタ出力部７０ａの出力と受信データ（前述のデータ組Ａ）を選択し、書込ブロック７４ｂ〜７４ｅは書込ポインタ出力部７１ａの出力と送信データ（前述のデータ組Ｂ）を選択して、この選択した信号をそれぞれデュアルポートメモリブロック７６ａ〜７６ｅに出力する。また、読出ブロック７５ａは読出ポインタ出力部７０ｂの出力を選択し、読出ブロック７５ｂ〜７５ｅは読出ポインタ出力部７１ｂの出力を選択して、この選択した信号をそれぞれデュアルポートメモリブロック７６ａ〜７６ｅに出力する。
【００９４】
なお、ＩＤが＃２、＃３の場合も同様である。バッファ切替制御部７２は図４の割り付けを実現する選択信号をメモリブロック選択部７３ａ〜７３ｅに出力し、メモリブロック選択部７３ａ〜７３ｅは入力された選択信号に基づいて入力された信号を選択して、デュアルポートメモリブロック７６ａ〜７６ｅに出力する。
【００９５】
次に、書込ブロック選択部７４ａ〜７４ｅ、および読出ブロック選択部７５ａ〜７５ｅのアドレス変換について説明する。これらのブロック選択部は、入力されたポインタをデュアルポートメモリブロック７６ａ〜７６ｅのアドレスに変換して出力する。なお、デュアルポートメモリブロック７６ａ〜７６ｅの割り付けを図４とし、書込ポインタ出力部７０ａ、７１ａ、読出ポインタ出力部７０ｂ、７１ｂが出力するポインタの範囲を図５とする。
【００９６】
書込ブロック選択部７４ａは、入力されたポインタが０ｘ０〜０ｘｆの範囲であるときのみ、入力されたポインタをアドレスとして、書込イネーブル信号および受信データと共にデュアルポートメモリブロック７６ａに出力する。読出ブロック選択部７５ａは、入力されたポインタが０ｘ０〜０ｘｆの範囲であるときのみ、入力されたポインタをアドレスとして、読出イネーブル信号と共にデュアルポートメモリブロック７６ａに出力する。
【００９７】
書込ブロック選択部７４ｂは、入力されたポインタが０ｘ１０〜０ｘ１ｆの範囲であるときのみ、入力されたポインタを０ｘ０〜０ｘｆのアドレスに変換して、書込イネーブル信号および受信データと共にデュアルポートメモリブロック７６ｂに出力する。読出ブロック選択部７５ｂは、入力されたポインタが０ｘ１０〜０ｘ１ｆの範囲であるときのみ、入力されたポインタを０ｘ０〜０ｘｆのアドレスに変換して、読出イネーブル信号と共にデュアルポートメモリブロック７６ｂに出力する。
【００９８】
書込ブロック選択部７４ｃは、入力されたポインタが０ｘ２０〜０ｘ２ｆの範囲であるときのみ、入力されたポインタを０ｘ０〜０ｘｆのアドレスに変換して、書込イネーブル信号および受信データと共にデュアルポートメモリブロック７６ｃに出力する。読出ブロック選択部７５ｃは、入力されたポインタが０ｘ２０〜０ｘ２ｆの範囲であるときのみ、入力されたポインタを０ｘ０〜０ｘｆのアドレスに変換して、読出イネーブル信号と共にデュアルポートメモリブロック７６ｃに出力する。
【００９９】
書込ブロック選択部７４ｄは、入力されたポインタが０ｘ３０〜０ｘ３ｆの範囲であるときのみ、入力されたポインタを０ｘ０〜０ｘｆのアドレスに変換して、書込イネーブル信号および受信データと共にデュアルポートメモリブロック７６ｄに出力する。読出ブロック選択部７５ｄは、入力されたポインタが０ｘ３０〜０ｘ３ｆの範囲であるときのみ、入力されたポインタを０ｘ０〜０ｘｆのアドレスに変換して、読出イネーブル信号と共にデュアルポートメモリブロック７６ｄに出力する。
【０１００】
書込ブロック選択部７４ｅは、入力されたポインタが０ｘ４０〜０ｘ４ｆの範囲であるときのみ、入力されたポインタを０ｘ０〜０ｘｆのアドレスに変換して、書込イネーブル信号および受信データと共にデュアルポートメモリブロック７６ｅに出力する。読出ブロック選択部７５ｂは、入力されたポインタが０ｘ４０〜０ｘ４ｆの範囲であるときのみ、入力されたポインタを０ｘ０〜０ｘｆのアドレスに変換して、読出イネーブル信号と共にデュアルポートメモリブロック７６ｅに出力する。
【０１０１】
７７は受信データ選択部であり、デュアルポートメモリ７６ａ〜７６ｅから読み出したデータが入力される。受信データ選択部７７は、読出ポインタ出力部７０ｂが出力する選択信号に基づいて入力されたデータを選択し、受信データとしてメイン機能部１６に出力する。
【０１０２】
７８は送信データ選択部であり、デュアルポートメモリ７６ａ〜７６ｅから読み出したデータが入力される。送信データ選択部７８は、読出ポインタ出力部７１ｂが出力する選択信号に基づいて入力されたデータを選択し、送信データとして上り側通信制御部２６に出力する。
【０１０３】
次に、図６に基づいて受信データ選択部７７、送信データ選択部７８の動作を説明する。なお、ここで説明する範囲では、受信データ選択部７７と送信データ選択部７８の動作は同じである。
【０１０４】
図６は、読出ポインタ出力部７０ｂ、７１ｂが出力するポインタと選択するデュアルポートメモリブロック７６ａ〜７６ｅの関係を表した表である。図６において、出力するポインタの範囲が０ｘ０〜０ｘｆのときは、デュアルポートメモリブロック７６ａの出力を選択して出力する。同様に、出力するポインタの範囲が０ｘ１０〜０ｘ１ｆ、０ｘ２０〜０ｘ２ｆ、０ｘ３０〜０ｘ３ｆ、０ｘ４０〜０ｘ４ｆのときは、それぞれデュアルポートメモリブロック７６ｂ、７６ｃ、７６ｄ、７６ｅの出力データを選択して出力する。
【０１０５】
読出ポインタ出力部７０ｂ、７１ｂは出力するポインタの範囲を調べ、図６に示すデュアルポートメモリブロックの出力が選択されるように選択信号を受信データ選択部７７、送信データ選択部７８に出力する。受信データ選択部７７、送信データ選択部７８は、入力された選択信号に基づいてデータを選択し、出力する。
【０１０６】
この実施例によると、スレーブの位置を表すＩＤによって上り側データバッファと下り側データバッファの容量を可変できるようにしたので、上り側データバッファと下り側データバッファのそれぞれで必要と思われる最大の容量を持つ必要がなくなる。このため、データバッファの容量を大幅に削減することができる。特に、スレーブを１つのＩＣで構成する場合は、チップ面積、消費電力およびコストを削減することができる。
【０１０７】
また、ＩＤを変更するだけで上り側データバッファ、下り側データバッファ共に最適なバッファサイズを設定することができるので、異なる容量を有するスレーブを用意する必要がなくなる。このため、スレーブの設計工数および種類を削減することができる。
【０１０８】
なお、これらの実施例ではメモリブロックとしてデュアルポートメモリブロック７６ａ〜７６ｅを使用したが、書き込みと読み出しを１つのポートで行うシングルポートのメモリブロックを使用してもよい。この場合、メモリブロック選択部７３ａ〜７３ｅで書き込みと読み出しの調停を行えばよい。但し、デュアルポートメモリブロックを用いると書き込みと読み出しを並行して行うことができるので、アクセス時間を短縮でき、かつ制御が容易になる。
【０１０９】
また、読出イネーブル信号が入力されたときのみデータを出力し、読出イネーブル信号が入力されないとハイインピーダンスになるようなメモリをデュアルポートメモリブロック７６ａ〜７６ｅに用いると、受信データ選択部７７、送信データ選択部７８を省略することもできる。この場合、デュアルポートメモリブロック７６ａ〜７６ｅの出力端子を直結すればよい。但し、受信データ選択部７７、送信データ選択部７８を用いると、デュアルポートメモリブロック７６ａ〜７６ｅはデータを出しっぱなしにすればよいので、メモリブロックの制御が簡単になる。
【０１１０】
また、図１ではマスタ１０に４台のスレーブを接続する構成としたが、スレーブの台数は２台以上であればいくらでもよい。また、下りデータリンク１７、上りデータリンク１８によって送信されるデータは、シリアル形式で送信してもよく、またパラレル形式で送信してもよい。また、３本以上のデータリンクを用いて、マスタ１０とスレーブ間のデータ伝送を行う構成であってもよい。
【０１１１】
また、図３ではデュアルポートメモリブロックの数を５としたが、３個以上であれば何個用いてもよい。また、各デュアルポートメモリの容量は１６バイトに限られることはなく、その他の容量であってもよい。また、デュアルポートメモリブロック７６ａ〜７６ｅでその容量を異ならせるようにしてもよい。
【０１１２】
また、図３実施例ではメモリブロック選択部７３ａ〜７３ｅでポインタからアドレスへの変換を行っているが、受信ポインタ出力部７０、送信ポインタ出力部７１の出力であるポインタがそのままアドレスになるようなポインタを出力するようにしてもよい。但し、このようにするとポインタがアドレスで制約を受けるので、構成が複雑になる。また、必ずしもＦＩＦＯ構成にしなくてもよい。
【０１１３】
また、下りデータリンク１７、上りデータリンク１８で送信されるデータはＴＣＰ・ＩＰ（Transmission Control Protocol/Internet Protocol）通信におけるパケット類似のデータであり、全てのスレーブを宛先とするデータと、固有のフィールドで区切られ、各スレーブを宛先とするデータが含まれているが、その形式は任意に設定できる。
【０１１４】
また、スレーブ５０〜５３が保持するＩＤは、スレーブが有する端子を用い、またチップトリミングによってハードウエア的に設定するものであってもよく、初期化シーケンスでソフトウエア的に設定するものであってもよい。
【０１１５】
さらに、本実施例ではスレーブである通信端末をデイジーチェーン接続して用いるようにしたが、これに限られることはない。１本の通信路に並列に接続される通信端末に用いることもできる。
【符号の説明】
【０１１６】
１０  マスタ
１６  メイン機能部
１７  下りデータリンク
１８  上りデータリンク
２１  下り側受信部
２２  下り側送信部
２３  上り側受信部
２４  上り側送信部
２５  下り側通信制御部
２６  上り側通信制御部
５０〜５３  スレーブ
５４、６０  通信部
６１  データバッファ
７０受信ポインタ出力部
７０ａ、７１ａ  書込ポインタ出力部
７０ｂ、７１ｂ  読出ポインタ出力部
７１  送信ポインタ出力部
７２  バッファ切替制御部
７３ａ〜７３ｅ  メモリブロック選択部
７４ａ〜７４ｅ  書込ブロック選択部
７５ａ〜７５ｅ  読出ブロック選択部
７６ａ〜７６ｅ  デュアルポートメモリブロック
【図１】
2011180937.tif 000003
【図２】
2011180937.tif 000004
【図３】
2011180937.tif 000005
【図４】
2011180937.tif 000006
【図５】
2011180937.tif 000007
【図６】
2011180937.tif 000008
【図７】
2011180937.tif 000009
【図８】
2011180937.tif 000010
【図９】
2011180937.tif 000011
【図１０】
2011180937.tif 000012
【図１１】
2011180937.tif 000013
【図１２】
2011180937.tif 000014