×この技術を簡単クリック査定この機能をご利用いただくには、会員登録(無料)が必要です。出願した特許の牽制数、引用された数などを知る事ができます。気になる技術や特許をブックマークしておけば、いつでも後から読むことができます。後で印刷するために、公報をPDFでダウンロードできます。会員登録してastamuseを使えば、もっと簡単に便利にお使いいただけます。会員登録(無料)「astamuse」は世界中の挑戦したい社会課題に挑戦し、未来を創る人のプラットフォームです。※この項目の情報は公開日時点(2016年12月15日)のものです。1装置10と、第2装置30と、を有し、データ通信は、連続したデータサイクルごとにデータを通信し、連続するN(N:2以上の整数)個のデータサイクルの合計時間長は一定で、各データサイクルの時間長が可変であり、第1装置は、時間長を変更したトレーニングパターンデータを発生して第2装置に送信し、第2装置から受信した返信データとトレーニングパターンデータを比較した結果に基づいて、変更した時間長の良否を判定するトレーニングを、時間長を変更しながら繰り返し行い、良判定範囲内で、各データサイクルの時間長を設定するトレーニング回路21-25を有するデータ通信装置。電子装置では、データ通信が、チップ内のブロック間、チップ間、装置間で広く行われる。メモリコントローラとSDRAM間では、メモリコントローラからSDRAMへの書込みデータの送信が行われ、SDRAMからメモリコントローラへの読み出しデータの送信が行われる。以下、メモリコントローラおよびSDRAM、またはメモリコントローラを含む主装置およびSDRAMを有し、それらの間でデータ通信を行う場合を例として説明を行うが、開示の実施形態は、これに限定されるものではない。上記のようなメモリコントローラおよびSDRAMを有する装置を開発する場合、仕様に応じて、メモリコントローラおよびSDRAMの内部構成を設計する。その上で、メモリコントローラとSDRAM間のデータ通信速度などを決定する。これにより、メモリコントローラとSDRAM間のデータ通信経路の長さが決定される。メモリコントローラとSDRAM間のデータ通信経路をバス形式で形成し、複数のSDRAMを接続する場合がある。この場合、SDRAMによりメモリコントローラまでのデータ通信経路長が異なることになる。送信側から出力されたデータ信号は、データ通信経路長に応じた伝搬遅延時間後に受信側に到着する。この際、受信側での信号の反射が生じないようにインピーダンスマッチングが図られているが、反射をゼロにすることはできず、反射した信号は、伝搬遅延時間の2倍の時間後に送信側に到着し、送信するデータ信号を劣化させる。この劣化が特に問題になるのが、伝搬遅延時量の2倍がデータ信号のサイクル時間(以下、データサイクル時間と称する)と一致する場合である。このようなデータ信号の伝搬遅延量とデータサイクル時間との関係で、データ信号が劣化する状態をビタースポットと称する。SI)が劣化し、正常なデータ通信が行えなくなる場合がある。そこで、メモリコントローラとSDRAMを配置する場合、ビタースポットの状態にならないように、データ通信経路の長さを設計する。装置の小型化が求められており、実装密度を高める必要がある場合、ビタースポットの状態を回避できない場合が生じる。上記のように、バス形式のデータ通信経路に複数のSDRAMを接続する場合、すべてのSDRAMをビタースポットでない状態にするのが難しく、一部のSDRAMがビタースポットに近い状態になる場合がある。SDRAMを使用する電子装置では、複数の動作モード(複数の異なる処理内容を実行するモード、通常モードと省電力モード)で動作し、モードによりメモリコントローラとSDRAMの間のデータ通信速度が異なる場合がある。この場合、すべての種類のデータ通信速度について、ビタースポットになるのを回避するのが難しい場合が起こり得る。SDRAMを使用する電子装置を設計する場合、ベースとなるハードウェアを設計し、顧客の仕様に合わせて動作周波数やデータ通信速度を決定する場合がある。このような場合には、後で決定したデータ通信速度で、ビタースポットになる場合も起こり得る。概要データ信号の伝搬時間とデータ信号のデータサイクル長がビタースポットに近似した場合でも、信号品質の劣化を低減するデータ通信装置の実現。請求項1第1装置と、第2装置と、を有し、前記第1装置と前記第2装置との間でデータ通信を行うデータ通信装置であって、前記データ通信は、連続したデータサイクルごとにデータを通信し、連続するN(N:2以上の整数)個のデータサイクルの各データサイクルの時間長を合計した時間長は一定で、前記各データサイクルの時間長は可変であり、前記第1装置は、前記時間長を変更したトレーニングパターンデータを発生して前記第2装置に送信し、前記第2装置から受信した前記トレーニングパターンデータに対応する返信データと前記トレーニングパターンデータを比較した結果に基づいて、変更した前記時間長の良否を判定するトレーニングを、前記時間長を変更しながら繰り返し行い、良否判定した結果のうち良判定された前記時間長の範囲内で、前記N個のデータサイクルの各データサイクルの時間長を設定するトレーニング回路を有し、前記トレーニング回路が設定した前記N個のデータサイクルの各データサイクルの時間長のデータサイクルで、データ通信を行うことを特徴とするデータ通信装置。請求項2前記第1装置は、ストローブ信号を前記第2装置に送信し、前記第2装置は、前記ストローブ信号に基づいて、前記N個のデータサイクルの各データサイクルの時間長で送信されたデータを受信する請求項1に記載のデータ通信装置。請求項3前記第1装置は、サイクル長が変更されたクロックを生成し、生成した前記クロックを前記第2装置に送信するとともに、前記クロックに基づいて、設定した前記N個のデータサイクルの各データサイクルの時間長でデータ信号を生成し、前記第2装置は、受信した前記クロックに基づいて、前記返信データを生成する請求項1または2に記載のデータ通信装置。請求項4前記第1装置は、データ信号の受信におけるデータ値判定のための基準電位を生成する基準電位生成回路を有し、前記第1装置は、前記基準電位を前記第2装置に供給し、前記第1装置は、前記トレーニング回路における動作を、前記基準電位を変更しながら繰り返し行い、前記基準電位について、良判定された前記基準電位の範囲を求め、前記基準電位を前記良判定された基準電位の範囲内に設定し、前記第2装置は、供給された前記良判定された基準電位の範囲内の基準電位で受信を行う請求項1から3のいずれか1項に記載のデータ通信装置。請求項5第1装置と第2装置との間でデータ通信を行うデータ通信方法であって、前記データ通信は、連続したデータサイクルごとにデータを通信し、連続するN(N:2以上の整数)個のデータサイクルの各データサイクルの時間長を合計した時間長は一定で、前記各データサイクルの時間長は可変であり、前記第1装置から、前記時間長を変更したトレーニングパターンデータを前記第2装置に送信し、前記第2装置から受信した前記トレーニングパターンデータに対応する返信データを前記第1装置に送信し、前記第1装置で、受信した前記返信データと前記トレーニングパターンデータを比較した結果に基づいて、変更した前記時間長の良否を判定するトレーニングを、前記時間長を変更しながら繰り返し行い、良否判定した結果のうち良判定された前記時間長の範囲内で、前記N個のデータサイクルの各データサイクルの時間長を設定し、設定した前記N個のデータサイクルの各データサイクルの時間長のデータサイクルで、データ通信を行うことを特徴とするデータ通信方法。請求項6第1装置と、第2装置と、を有し、前記第1装置と前記第2装置との間でデータ通信を行うデータ通信装置であって、前記データ通信は、連続したデータサイクルごとにデータを通信し、連続するN(N:2以上の整数)個のデータサイクルの各データサイクルの時間長を合計した合計時間長は一定で、前記各データサイクルの時間長は可変であり、前記N個のデータサイクルのそれぞれの時間長は、すべて前記合計時間長の1/Nであるか、すべて前記合計時間長の1/N以外であるかのいずれかであることを特徴とするデータ通信装置。0001本発明は、データ通信装置およびデータ通信方法に関する。背景技術0002電子装置では、データ通信が、チップ内のブロック間、チップ間、装置間で広く行われる。メモリコントローラとSDRAM間では、メモリコントローラからSDRAMへの書込みデータの送信が行われ、SDRAMからメモリコントローラへの読み出しデータの送信が行われる。以下、メモリコントローラおよびSDRAM、またはメモリコントローラを含む主装置およびSDRAMを有し、それらの間でデータ通信を行う場合を例として説明を行うが、開示の実施形態は、これに限定されるものではない。0003上記のようなメモリコントローラおよびSDRAMを有する装置を開発する場合、仕様に応じて、メモリコントローラおよびSDRAMの内部構成を設計する。その上で、メモリコントローラとSDRAM間のデータ通信速度などを決定する。これにより、メモリコントローラとSDRAM間のデータ通信経路の長さが決定される。0004メモリコントローラとSDRAM間のデータ通信経路をバス形式で形成し、複数のSDRAMを接続する場合がある。この場合、SDRAMによりメモリコントローラまでのデータ通信経路長が異なることになる。0005送信側から出力されたデータ信号は、データ通信経路長に応じた伝搬遅延時間後に受信側に到着する。この際、受信側での信号の反射が生じないようにインピーダンスマッチングが図られているが、反射をゼロにすることはできず、反射した信号は、伝搬遅延時間の2倍の時間後に送信側に到着し、送信するデータ信号を劣化させる。この劣化が特に問題になるのが、伝搬遅延時量の2倍がデータ信号のサイクル時間(以下、データサイクル時間と称する)と一致する場合である。このようなデータ信号の伝搬遅延量とデータサイクル時間との関係で、データ信号が劣化する状態をビタースポットと称する。SI)が劣化し、正常なデータ通信が行えなくなる場合がある。0006そこで、メモリコントローラとSDRAMを配置する場合、ビタースポットの状態にならないように、データ通信経路の長さを設計する。装置の小型化が求められており、実装密度を高める必要がある場合、ビタースポットの状態を回避できない場合が生じる。0007また、上記のように、バス形式のデータ通信経路に複数のSDRAMを接続する場合、すべてのSDRAMをビタースポットでない状態にするのが難しく、一部のSDRAMがビタースポットに近い状態になる場合がある。0008さらに、SDRAMを使用する電子装置では、複数の動作モード(複数の異なる処理内容を実行するモード、通常モードと省電力モード)で動作し、モードによりメモリコントローラとSDRAMの間のデータ通信速度が異なる場合がある。この場合、すべての種類のデータ通信速度について、ビタースポットになるのを回避するのが難しい場合が起こり得る。0009さらに、SDRAMを使用する電子装置を設計する場合、ベースとなるハードウェアを設計し、顧客の仕様に合わせて動作周波数やデータ通信速度を決定する場合がある。このような場合には、後で決定したデータ通信速度で、ビタースポットになる場合も起こり得る。発明が解決しようとする課題0011データ信号の伝搬時間とデータ信号のデータサイクル長がビタースポットに近似した場合でも、信号品質の劣化を低減するデータ通信装置およびデータ通信方法が望まれていた。課題を解決するための手段0012本発明の第1の態様のデータ通信装置は、第1装置と、第2装置と、を有し、第1装置と第2装置との間でデータ通信を行うデータ通信装置である。データ通信は、連続したデータサイクルごとにデータを通信し、連続するN(N:2以上の整数)個のデータサイクルの各データサイクルの時間長を合計した時間長は一定で、各データサイクルの時間長は可変である。第1装置は、トレーニング回路を有す。トレーニング回路は、時間長を変更したトレーニングパターンデータを発生して第2装置に送信し、第2装置から受信したトレーニングパターンデータに対応する返信データとトレーニングパターンデータを比較する。トレーニング回路は、比較結果に基づいて、変更した時間長の良否を判定するトレーニングを、時間長を変更しながら繰り返し行い、良否判定した結果のうち良判定された時間長の範囲内で、N個のデータサイクルの各データサイクルの時間長を設定する。第1装置は、トレーニング回路が設定したN個のデータサイクルの各データサイクルの時間長のデータサイクルで、データ通信を行う。0013本発明の第2の態様のデータ通信装置は、第1装置と、第2装置と、を有し、第1装置と第2装置との間でデータ通信を行う。データ通信は、連続したデータサイクルごとにデータを通信し、連続するN(N:2以上の整数)個のデータサイクルの各データサイクルの時間長を合計した合計時間長は一定で、各データサイクルの時間長は可変である。N個のデータサイクルのそれぞれの時間長は、すべて合計時間長の1/Nであるか、すべて合計時間長の1/N以外であるかのいずれかである。発明の効果0014実施形態によれば、常に良好なデータ通信が行える。図面の簡単な説明0015図1は、データ通信装置の基本構成およびビタースポットについて説明する図であり、(A)が基本構成を、(B)が送信側および受信側の信号波形例を、(C)がビタースポット発生を説明するグラフである。図2は、実施形態においてビタースポットであることによる信号品質SIの低下を回避する原理を説明する図であり、(A)が原理を説明し、(B)が各通信周期における通信回数のヒストグラムを示す。図3は、第1実施形態のデータ通信装置の構成を示す図である。図4は、第1実施形態のデータ通信装置における動作を説明するタイムチャートであり、参考として一般例のタイムチャートを合わせて示す。Line)の回路構成を示す図である。図6は、Duty調整回路の動作を示すタイムチャートである。図7は、トレーニング用データパターン生成回路の入出力信号および動作タイムチャートを示す図であり、(A)が入出力信号を、(B)が動作タイムチャートを示す。図8は、期待値比較回路の入出力信号および動作タイムチャートを示す図であり、(A)が入出力信号を、(B)が動作タイムチャートを示す。図9は、トレーニング結果判定回路の入出力信号および動作タイムチャートを示す図であり、(A)が入出力信号を、(B)が動作タイムチャートを示す。図10は、第1実施形態の第1装置(メモリコントローラ)におけるトレーニング動作を示すフローチャートである。図11は、良好な通信が行えるDuty調整信号の値の範囲例を示す図である。図12は、第1実施形態のデータ通信装置で、ビタースポットになる通信速度で通信する場合で、デューティ調整を行わない場合とデューティ調整を行った場合の第1装置の出力(対向デバイスの入力)信号波形を示す図である。図13は、第1実施形態において図12のようなデータ信号波形を受信することによる効果を説明する図である。図14は、第2実施形態のデータ通信装置の構成を示す図である。図16は、第2実施形態のデータ通信装置におけるトレーニング時の動作を示すフローチャートである。図17は、良好な通信が行えるDuty調整信号および基準電位調整信号の値の範囲例を示す図であり、(A)が基準電(VREF)を固定してDuty調整信号を変化した例を、(B)が、Duty調整信号および基準電位調整信号の両方を変化した例を示す。図1図10図11図12図13図14図15図16図17図2実施例0016実施形態の受信回路について説明する前に、一般的なデータ通信装置およびデータ通信方法について説明する。0017図1は、データ通信装置の基本構成およびビタースポットについて説明する図であり、(A)が基本構成を、(B)が送信側および受信側の信号波形例を、(C)がビタースポット発生を説明するグラフである。図10018図1の(A)に示すように、データ通信装置では、送信側のドライバ(DRIVER)1の出力するデータ信号が、伝送線路3を伝搬し、受信側のレシーバ(RECEIVER)2に取り込まれる。レシーバ2では、信号の反射が生じないようにインピーダンスマッチングが図られている。反射をゼロにすることはできず、反射した信号は、伝送線路3を伝搬してドライバ1の出力端に伝搬し、ドライバ1の出力信号に重畳され、送信するデータ信号を劣化させる。この劣化が特に問題になるのが、伝搬遅延量の2倍がデータ信号のサイクル時間(以下、データサイクル時間と称する)と一致する場合である。このようなデータ信号の伝搬遅延量とデータサイクル時間との関係で、データ信号が劣化する状態をビタースポットと称する。SI)が劣化し、正常なデータ通信が行えなくなる場合がある。図10019通常、ドライバ1は、クロックCKに同期して動作し、ドライバ1の出力するデータ信号は、クロックCKの1動作周期tCKで変化する。ここでは、データ信号の通信周期がクロックCKの1動作周期tCKに等しいとして説明する。伝送線路3の配線長をLength[mm]とし、伝搬遅延時間をtpd[psec/mm]とすると、tCK=2×tpd×Lengthの時がビタースポットである。tCK-2×tpd×Lengthで表す。Marginの絶対値が小さいとビタースポットに近く、大きいとビタースポットから遠いことになる。0020データ通信で信号の劣化が顕著なのは、データ信号がクロックCKの1動作周期tCKごとに「高(H)」レベルと「低(L)」レベルに変化する場合である。図1の(B)は、ビタースポットで、ドライバ1が、クロックCKの1動作周期tCKごとにHとLに変化するデータ信号を出力した時の、ドライバ1の出力端およびレシーバ2の入力端の信号を示す。図示のように、Lレベルのドライバ1の出力が、反射してtCK後にドライバ1の出力端に到着し、ドライバ1のHレベルの出力に重畳され、信号品質SIを劣化させる。図10021上記のように、ビタースポットとなるデータ信号の通信周期と伝送線路の線路長は、線形関係を有する。図1の(C)は、この関係を示すグラフで、横軸が通信周期で、縦軸が線路長である。ここでは、線路長を、ドライバ1およびレシーバ2のパッケージ(PKG)内の線長とプリント回路基板(PCB)の線長の和(PKG+PCB線長)で表している。図10022図1の(C)に示すように、ビタースポットとなる通信周期とPKG+PCB線長は線形関係にある。したがって、あるPKG+PCB線長の場合、Aで示す通信周期T1の場合には、ビタースポットとならないが、Bで示す通信周期T0の場合には、ビタースポットとなる。したがって、電子装置で、あるPKG+PCB線長に設計した後、通信周期をT0に設定する場合にはビタースポットとなり、データ信号SIが劣化することが起こり得る。図10023これまで、設計段階でビタースポットとなることが判明した時には、何らかの対策を施してビタースポットとなるのを回避していたが、その場合標準設計のものが使用できないことになり、設計工数の増加や製造コストの増加という問題が発生していた。ベース設計が終了した後、個別に通信周期を設定する場合などには、設計段階でビタースポットとなることが判明せず、試作の段階や量産の段階でビタースポットによる通信不良が発生することになる。この場合には、それまでの設計や製造費用が無駄になり、納期の遅れが生じるという問題が発生していた。0024以下に説明する実施形態では、所望の通信周期ではビタースポットとなる場合でも、ビタースポットであることによる信号品質SIの低下を抑制しながら実質的に所望の通信周期でのデータ通信が行える。0025図2は、実施形態においてビタースポットであることによる信号品質SIの低下を回避する原理を説明する図であり、(A)が原理を説明し、(B)が各通信周期における通信回数のヒストグラムを示す。図20026図2の(A)に示すように、あるPKG+PCB線長の場合、Aで示す通信周期T1の場合にはビタースポットにならないが、Bで示す通信周期T0の場合にはビタースポットになるとする。ここで、何らかの理由(例えば動作モードの変更に伴う通信周期の変更など)で、通信周期をT1からT0に変更する場合が生じたとする。このPKG+PCB線長の場合、通信周期T0ではビタースポットになるから、通信周期T0でのデータ通信は、信号品質が劣化する場合がある。図20027そこで、実施形態では、データ信号の隣接する2サイクルを1つの組とし、各組の時間(2サイクルの合計サイクル時間)は一定で、各組内の2つのデータサイクルの時間長が変更可能(可変)とする。図2の(A)に示すように、各組の合計サイクル時間を2T0とすると、2サイクルの一方のサイクル時間はT0−a、2サイクルの他方のサイクル時間はT0+aとなり、時間長aは0から上限値まで変化可能である。時間長aの上限値は、T0−aおよびT0+a(特に、T0−a)でのデータ通信が正常に行える範囲で設定される。ここでは、各組内の2つのデータサイクルの時間長を変更することを、デューティ(Duty)調整と称する。言い換えれば、実施形態では、T0でビタースポットになる場合に、隣接する2サイクルの時間長をT0−aおよびT0+aとすることにより、ビタースポットになるのを回避する。図20028なお、本発明は、2サイクルを1つの組とする場合に限定されず、3サイクル以上を1組としてもよい。3サイクルが1組の場合、各組に含まれる3サイクルのサイクル時間は、T0−a/2、T0−a/2およびT0+aとする。これであれば、3サイクルの合計サイクル時間は、3T0である。0029実際には、通信周期T0でビタースポットになるか分からず、時間長aの最適値も不明であるため、時間長aを変更したトレーニングパターンデータの通信を行い、正常なデータ通信が可能な時間長aの範囲を求め、それに応じて時間長aを設定する。00302サイクルを1つの組とする場合、図2の(B)に示すように、時間長a=0でのデータ通信、すなわち各組の2サイクルとも通信周期T0でデータ通信を行う場合の頻度は、T0−aとT0+aの2サイクルでデータ通信を行う場合の頻度の2倍である。図20031図3は、第1実施形態のデータ通信装置の構成を示す図である。第1実施形態のデータ通信装置は、第1装置10と、第2装置30と、を有する。第1装置10は、データ通信装置を主導する主装置である。第2装置30は、主装置にしたがって動作する従装置であり、ここでは対向デバイスと称する。具体的な例としては、例えば、第1装置10は、メモリコントローラであり、第2装置30は、メモリコントローラにより制御されるSDRAM(シンクロナス・ダイナミック・ランダム・アクセス・メモリ)である。第2装置30であるSDRAMは、メモリコントローラから出力される送信クロックおよび送信ストローブ信号に基づいて、メモリコントローラからのライトデータを受信し、メモリコントローラへのリードデータを送信し、さらに内部動作を行う。第1装置10は、一般的なメモリコントローラの回路構成に加えて、データサイクルのデューティ(Duty)を変更する回路、およびDutyを設定するためのトレーニングを行う回路を有する。図30032第1装置10は、入力セレクタ11と、フリップフロック(F/F)12と、F/F13−15と、ドライバ(IO)16−18と、を有する。第1装置10は、さらに、Duty調整回路21と、トレーニング結果判定回路22と、トレーニング用データパターン生成回路23と、期待値比較回路24と、出力セレクタ25と、レシーバ(IO)26と、を有する。0033入力セレクタ11は、トレーニングEnable信号に応じて、通常時動作時に、対向デバイス30に出力する通常出力output_normalを選択し、トレーニング時に、対向デバイス30に出力するトレーニングパターンTxを選択して出力する。F/F12は、入力セレクタ11の出力を、第1装置10の出力動作用クロックclockの1周期分遅延して出力する。0034F/F13は、F/F12の出力する送信データを、Duty調整回路21が生成するclock_dutyに同期してラッチし、IO16に出力する。IO16は、入力した信号を、送信データDQ(OUT)として出力する。0035F/F14は、clock_dutyを2分周し、IO17に出力する。IO17は、入力した信号を、出力クロックCKとして出力する。F/F15は、Duty調整回路21が生成するclock_strobeを2分周し、IO18に出力する。IO18は、入力した信号を、ストローブ信号DQSとして出力する。0036Duty調整回路21は、出力動作用クロックclockの隣接する2サイクルの時間長を調整(デューティ調整)し、データ出力に使用するデューティ調整クロックclock_dutyと、対向デバイス30がデータ受信に使用するclock_strobeを生成する。Duty調整回路21は、トレーニング時に、トレーニング結果判定回路22からのDuty調整信号に応じて上記の動作を行い、通常動作時には、トレーニング結果判定回路22により設定されたデューティ調整値のclock_dutyおよびclock_strobeを生成する。0037トレーニング用データパターン生成回路23は、トレーニング結果判定回路22からのトレーニングパターン生成信号に応じて、トレーニング用データパターンを生成する。0038期待値比較回路24は、トレーニング用データパターン生成回路23からのトレーニング用データパターンと、出力セレクタ25からの受信データを比較し、対応するデータが一致するか判定し、比較結果をトレーニング判定信号として出力する。0039レシーバ(IO)26は、対向デバイス30からの送信データを受信する。出力セレクタ25は、レシーバ(IO)26からの受信データを受け、トレーニングEnable信号に応じて、通常時は通常入力input_normalとして第1装置10の内部に出力し、トレーニング時は期待値比較回路24に出力する。0040トレーニング結果判定回路22は、トレーニングEnable信号に応じて起動し、トレーニング動作のシーケンス制御を行い、Duty調整回路21にDuty調整信号を出力し、トレーニング用データパターン生成回路23にトレーニングパターン生成信号を出力する。トレーニング結果判定回路22は、期待値比較回路24からのトレーニング判定信号に基づいて正常な通信が行えるデューティの調整範囲を求め、その範囲内の適当な値を通常動作時のデューティに設定し、その後トレーニングDisable信号を出力する。トレーニングEnable信号は、第1装置10の主制御部(図示せず)から供給され、トレーニングDisable信号は主制御部に供給される。0041以上の各回路要素のうち、入力セレクタ11、F/F12−15、IO16−18およびIO26は、一般的な回路(メモリコントローラ)に設けられている回路要素である。F/F13および14にはclockが供給され、F/F15にはインバータで反転したlockが供給される。Duty調整回路21、トレーニング結果判定回路22、トレーニング用データパターン生成回路23、期待値比較回路24および出力セレクタ25は、第1実施形態で新たに設けられる回路要素である。0042対向デバイス30は、通常動作時およびトレーニング時で同様の動作を行い、ストローブ信号DQSに応じて送信データDQ(OUT)を受信し、出力クロックCKの立ち上りおよび立ち下りエッジに応じて第1装置(メモリコントローラ)10へのデータを出力する。対向デバイス30についてのこれ以上の説明は省略する。0043図4は、第1実施形態のデータ通信装置における動作を説明するタイムチャートであり、参考として一般例のタイムチャートを合わせて示す。図40044出力動作用クロックclockは、一般例も第1実施形態も同じである。一般例では、送信データDQ(OUT)は、clockの立ち上りエッジに同期して変化する。clock_strobeは、clockの反転信号である。ストローブ信号DQSは、clock_strobeを2分周した信号である。一般例では、出力クロックCKは、ストローブ信号DQSと同じ信号であり、送信する必要はない。0045第1実施形態では、隣接する2サイクルのclock_dutyは、一方のサイクルの時間長(P)が長く、他方のサイクルの時間長(Q)が短く、P+Qはclockの2サイクル分の時間長である。したがって、clockの2サイクルの時間長を2T0とすると、P=T0+a、Q=T0−aである。図4では、clock_dutyの立ち上りから次の立ち上りまでの時間長をPおよびQとしているが、clock_dutyの立ち下りから次の立ち下りまでの時間長も同様にPおよびQである。図40046送信データDQ(OUT)は、clock_dutyの立ち上りに同期して変化する。したがって、DQ(OUT)の隣接する2つのサイクルの時間長は、P(T0+a)およびQ(T0−a)であり、2サイクル分の時間長は2T0で一定である。clock_strobeは、PおよびQの時間長のサイクルの中間のタイミングで立ち上る信号であり、clockをa/2シフトした信号である。CKは、clock_dutyを立ち下りで2分周した信号である。DQSは、clock_strobeを立ち上りで2分周した信号である。したがって、CKは、隣接する2サイクルでデューティが異なるが、DQSは、デューティ一定の信号である。Line)の回路構成を示す図である。Line)41と、クロック選択信号発生回路42と、セレクタ44と、を有する。Line41は、clockを受け、Duty調整信号に応じて遅延量を調整した2つの信号clock_dおよびclock_strobeを出力する。前述のように、clock_strobeはF/F15に出力される。Line41の出力するclock_dを2分周し、clock_selを出力するF/F43を有する。セレクタ44は、clock_selがHレベルの時にはclock_dを、clock_selがLレベルの時にはclockを、選択してclock_dutyとして出力する。Unit)51A−51Fと、マルチプレクサ(Mux)52と、マルチプレクサ(Mux)53と、インバータ54と、を有する。Unit51Aにclockが入力される。Unit51Fの出力が、Mux52に入力される。Mux52は、Duty調整信号に応じて、4入力のいずれかを選択してclock_dとして出力する。Unit51Cの出力が、Mux53に入力される。Mux53は、Duty調整信号に応じて、4入力のいずれかを選択して出力し、その出力はインバータ54で反転されてclock_strobeとして出力される。したがって、clock_dおよびclock_strobeは、clockを選択した時は、共にclockと同じ信号であり、それ以外の時は、clock_strobeは、clock_dの1/2の遅延量の信号である。図50050図6は、Duty調整回路21の動作を示すタイムチャートである。Duty調整信号に応じてた遅延量のclock_dが生成される。clock_selは、clock_dを立ち下りで2分周した信号であり、セレクタ44は、clock_sel=低レベルの時にはclockを、clock_sel=高レベルの時にはclock_dを、選択する。これにより、clock_dutyは、clockとclock_dの高レベルのパルス部分を交互に選択した信号となり、立ち上りから次に立ち上り(または立ち下りから次の立ち下り)までの時間長が、交互に長短を繰り返す。clock_strobeは、clock_dの遅延量の1/2の遅延量の信号である。clock_dutyを立ち下りで2分周すると図4のCKとなり、clock_strobeを立ち上りで2分周すると図4のDQSとなる。図4図60051図7は、トレーニング用データパターン生成回路23の入出力信号および動作タイムチャートを示す図であり、(A)が入出力信号を、(B)が動作タイムチャートを示す。トレーニング用データパターン生成回路23は、トレーニング結果判定回路22からのトレーニングパターン生成信号が高レベルの時に動作し、低レベルの時に動作を停止する。図7の(A)および(B)に示すように、トレーニング用データパターン生成回路23は、動作中、トレーニング結果判定回路22から送信コマンドTX_CMDを受け、トレーニングパターンTxを生成して出力する。同様に、トレーニング用データパターン生成回路23は、トレーニング結果判定回路22から受信コマンドRX_CMDを受け、トレーニングパターンTxと同じトレーニングパターンRxを生成して出力する。トレーニングパターンTxおよびRxは、擬似ランダムパターンであり、既存の公知のアルゴリズムにしたがって生成される。図70052図8は、期待値比較回路24の入出力信号および動作タイムチャートを示す図であり、(A)が入出力信号を、(B)が動作タイムチャートを示す。図80053図8の(A)に示すように、期待値比較回路24は、出力セレクタ25からの信号input_testと、トレーニング用データパターン生成回路23が生成したトレーニングパターンRxと、を比較し、比較結果をトレーニング判定信号として出力する。図8の(B)に示すように、期待値比較回路24は、1つでも不一致のビットがあるとトレーニング判定信号をHレベルにし、すべてのビットが一致すればトレーニング判定信号をLレベルに保持する。トレーニング判定信号は、Duty調整信号の切り替え時にLレベルにリセットされる。期待値比較回路24の入力input_testおよびトレーニングパターンRxは、通常動作時には変化しないため、期待値比較回路24は通常動作には実質的に動作しないが、トレーニングEnable信号に応じて動作するようにしてもよい。図80054図9は、トレーニング結果判定回路22の入出力信号および動作タイムチャートを示す図であり、(A)が入出力信号を、(B)が動作タイムチャートを示す。図90055図9の(A)および(B)に示すように、トレーニング結果判定回路22は、トレーニングEnable信号に応じてトレーニング動作を開始し、トレーニング動作を終了するとトレーニングDisable信号を出力する。トレーニング結果判定回路22は、MビットのDuty調整信号を出力し、例えば初期値として4ビットのDuty調整信号0("0000")を出力する。トレーニング結果判定回路22は、トレーニング中の一定期間、トレーニングパターン生成回路23に出力するトレーニングパターン生成信号をHレベルにする。図7に示したように、これに応じて、トレーニングパターン生成回路23が動作する。トレーニングパターン生成回路23は、Duty調整信号の値を1ずつ増加させながら、トレーニング判定信号を受け、良好なデータ通信の行えるDuty調整信号の値の範囲を求め、その範囲内で通常動作時のDuty調整信号の値を設定する。図7図90056まず、Duty調整信号を初期値0("0000")に設定し、トレーニングパターン生成信号を所定期間Hレベルにする。これに応じて、初期値に対応する通信周期(隣接する2つの通信サイクルの組の両方のサイクルがT0)で、一連のトレーニングパターンTxに対応する通信データが対向デバイス30に送信される。対向デバイス30は、受信した一連のトレーニングパターンTxに対応する通信データを受信し、一旦レジスタ(メモリ)(図示せず)に記憶する。次に、対向デバイス30は、記憶した受信データを読み出して、第1装置(メモリコントローラ)10に通信する。第1装置10のIO26は、対向デバイス30からの送信データDQ(IN)を受信し、出力セレクタ25を介して、期待値比較回路24に送る。この時、トレーニング用データパターン生成回路23は、RX_CMDに応答してトレーニングパターンTxと同じトレーニングパターンRxを出力しており、期待値比較回路24が2つのトレーニングパターンが一致するか判定する。第1装置10と対向デバイス30間のデータ通信が良好に行われる場合、すなわち、ビタースポットでない時には、第1装置10から対向デバイス30に送信され、送り返されたデータ信号は一致する。期待値比較回路24が2つのトレーニングパターンが不一致であるとの判定結果、すなわちトレーニング判定信号がHレベルになった時には、第1装置10と対向デバイス30間のデータ通信は不良であると判断される。トレーニング結果判定回路22は、Duty調整信号の値とトレーニング判定信号の値(L(Pass)/H(Fail))を対応づけて記憶する。0057以下、トレーニング結果判定回路22は、Duty調整信号の値を"0000"から"1110"まで15段階で変化させて、その時のトレーニング判定信号の値を記憶する。トレーニング結果判定回路22は、"1110"の値でのトレーニングが終了すると、トレーニングDisableがHレベルを変化させる。これと同時に、トレーニング結果判定回路22は、トレーニング判定信号の値がPassとなるDuty調整信号の値の範囲を求め、Duty調整信号の値をその範囲内の最適値に設定し、Duty調整回路21に出力する。範囲の中央値を最適値とする。Duty調整回路21は、Duty調整信号の最適値を保持し、通常動作時にこのDuty調整信号の最適値でclock_dutyを生成する。第1装置10の主制御部(図示せず)は、トレーニングDisableがHレベルを変化するのに応じて、トレーニングEnableをLレベルにする。0058図10は、第1実施形態の第1装置(メモリコントローラ)10におけるトレーニング動作を示すフローチャートである。図100059ステップS11で、トレーニングを開始し、トレーニングEnableが、LレベルからHレベルに変化する。ステップS12で、Duty調整信号の値を初期値=0("0000")に設定する。0060ステップS13で、トレーニング用データパターンを、設定されているDuty調整信号の値で通信するトレーニングを実施する。ステップS14で、トレーニング結果判定回路22は、トレーニング判定信号を受信する。0061ステップS15で、Duty調整信号の値が上限値=14("1110")に達したか判定し、達していなければ、Duty調整信号の値を1増加(+1)して、S13に戻り、Duty調整信号の値が上限値になるまでS13からS15を繰り返す。Duty調整信号の値が上限値になると、ステップS16に進み、トレーニングDisableがHレベルになる。0062ステップS16で、Duty調整信号の16個の値に対するトレーニング判定信号のPass/Failの値から、良好な通信が行えるDuty調整信号の値の範囲を求め、その範囲内の最適値にDuty調整信号を設定する。ステップS17で、トレーニングEnableおよびDisableがLレベルに戻り、トレーニングを終了する。0063図11は、良好な通信が行えるDuty調整信号の値の範囲例を示す図である。最下段に示すように、Duty調整信号の値は、0("0000")からF("1110")まで16段階で変化し、Duty調整回路21は、隣接する2つのサイクルの時間長がT0+aとT0−aに変更する。ここで、aはDuty調整信号の値に対応する時間長である。図110064(R)に示すように、ビタースポット無しの状態では、Duty調整信号の値が0("0000")から8("1000")の範囲は良好(Pass)になり、Duty調整信号の値が9("1001")以上の範囲は不良(Fail)になる。これは、Duty調整信号の値が9以上の範囲では、aが大きくなり、T0−aのサイクルは、時間長が小さくなり、通信周期が短くなるためと考えられる。0065(S)に示すように、ビタースポット無しの状態では、Duty調整信号の値が3("0011")から8("1000")の範囲は良好(Pass)になり、Duty調整信号の値が1("0000")から2("0010")および9("1001")以上の範囲は不良(Fail)になる。0066(R)のように、良好な範囲が0のDuty調整信号の値を含む場合には、最適なDuty調整信号の値を0に設定する。(S)のように、良好な範囲が0のDuty調整信号の値を含まない場合には、最適なDuty調整信号の値を、良好な範囲の中間値に設定する。図11の例であれば、Duty調整信号の値を5または6に設定する。図110067図11の例で、(R)のビタースポット無しの状態では、Duty調整信号の値は0に設定されるので、通信サイクルの時間長を調整しない場合と同様である。(S)のビタースポット有りの状態では、これまでは不良となっていたが、第1実施形態では、Duty調整信号の値を5または6に設定することにより、不良発生を回避できる。図110068図12は、第1実施形態のデータ通信装置で、ビタースポットになる通信速度で通信する場合で、デューティ調整を行わない場合とデューティ調整を行った場合の第1装置10の出力(対向デバイスの入力)信号波形を示す図である。図120069破線で示すデューティ調整を行わない場合の波形は、1サイクル内で変動し、サイクルの中心付近にレベルの低い部分が生じる。レベルの低い部分で信号を受信すると、誤った値を受信する可能性が高くなる。これに対して、実線で示すデューティ調整を行った場合の波形は、1サイクル内で比較的平坦であり、サイクル期間の全域で高いレベルになっており、誤った値を受信する可能性は低い。0070図13は、第1実施形態において図12のようなデータ信号波形を受信することによる効果を説明する図である。図13の(A)はデューティ調整無しでビタースポットに当たらない場合を、図13の(B)はデューティ調整無しでビタースポットに当たる場合を、図13の(C)は第1実施形態のデューティ調整有りでビタースポットに当たる場合を、示す。図12図130071図13の(A)から(C)において、DQ(OUT)は、第1装置10のドライバから出力されるデータ信号を示し、clock_strobeは、これを受信した対向デバイス30が、データ信号を取り込む(ラッチする)タイミングを示す。具体的には、clock_strobeの立ち上りに同期してデータ信号をラッチする。したがって、clock_strobeの立ち上り時に、データ信号が安定していることが求められる。図130072図13の(A)および(B)に示すように、デューティ調整無しの場合には、データ信号DQ(OUT)のサイクル長は一定である。これに対して、図13の(C)に示すように、デューティ調整有りでビタースポットに当たる場合には、隣接する2つのデータ信号サイクルの一方は時間長が長くなり、他方は時間長が短くなる。Window)は、データ信号サイクル中の広い範囲を有しており、良好なデータ通信が可能である。第1実施形態でも、ビタースポットに当たらない場合は、図13の(A)に示すようなアイウィンドウとなる。図130074図13の(B)に示すように、データ通信周期がビタースポットに当たる場合には、ノイズが大きくなる。データ信号サイクル中の中心から少し前でノイズが大きくなっており、アイウィンドウは、サイクル後半の狭い範囲となっており、clock_strobeの立ち上り時に、データ信号は不安定になる。そのため、データ通信におけるエラーが発生しやすくなる。図130075図13の(C)に示すように、データ通信周期がビタースポットに当たる場合でも、第1実施形態のように、隣接する2つのデータ信号サイクルの一方を長く、他方を短くするデューティ調整を行うため、各サイクルがビタースポットに当たるのを回避できる。そのため、ノイズは小さいままであり、アイウィンドウは、各サイクル中の広い範囲を有している。データ通信周期が少し短くなるサイクルがあり、アイウィンドウは、図13の(A)に比べて若干狭くなるが、図13の(B)に比べてアイウィンドウは広く、データ通信におけるエラーが発生しにくい。データ通信周期を変更する場合のデータ通信の信頼性は、変更するすべてのデータ通信周期中の最大のエラー率で評価されるため、デューティ調整しない場合に比べて、第1実施形態では、データ通信の信頼性が大幅に向上する。図130076第1装置10と対向デバイス30間でデータ通信を行う場合、反射信号などによりノイズが重畳され、レシーバの受信するデータ信号波形が劣化する。前述のように、データ信号の通信周期を変更すると、ビタースポットになる場合があり、信号波形の劣化具合が変化する。信号波形の劣化具合に応じて、レシーバにおける基準電位も最適なレベルが変化する。そこで、次に説明する第2実施形態では、トレーニングにおいて、第1実施形態と同様に隣接する2つのデータ通信サイクルの時間長をプラスマイナスで変化させて最適にすると共に、基準電位についても最適なレベルを探して設定する。0077図14は、第2実施形態のデータ通信装置の構成を示す図である。第2実施形態のデータ通信装置は、第1装置10が基準電位生成回路27をさらに有することが第1実施形態のデータ通信装置と異なる。図3の第1実施形態のデータ通信装置の対向デバイス30は、図示しなかっただけで、同様にレシーバを有する。27から供給される基準電位(VREF)と入力するデータ信号を比較することが異なる。27から供給される基準電位(VREF)と入力するデータ信号を比較することが異なる。第1装置10から対向デバイス30への基準電位(VREF)の供給はアナログ信号で行われる。27は、トレーニング終了時に、トレーニング結果判定回路22により設定された基準電位調整信号の最適値を保持する機能を有する。したがって抵抗列61の出力する複数の電位レベルから1つの電位レベルを選択し、基準電位(VREF)として出力するマルチプレクサ62と、を有する。抵抗列61は、高電位電源VDDと、低電位電源VSS間に直列に接続された複数の抵抗を有し、抵抗分割により複数の異なる電位を抵抗の接続ノードから出力する。図150079以上説明したように、第2実施形態のデータ通信装置では、トレーニング結果判定回路22が基準電位調整信号を変化させることにより、レシーバにおける基準電位(VREF)を段階的に変更することができる。0080図16は、第2実施形態のデータ通信装置におけるトレーニング時の動作を示すフローチャートである。図160081ステップS21で、トレーニングを開始し、トレーニングEnableが、LレベルからHレベルに変化する。初期値(最小値(min)("000"))に設定する。0082ステップS23で、トレーニング用データパターンを、設定されているDuty調整信号の値で通信し、設定された基準電位調整信号に対応する基準電位で受信するトレーニングを実施する。ステップS24で、トレーニング結果判定回路22は、トレーニング判定信号を受信する。0083ステップS25で、Duty調整信号の値が上限値=14("1110")に達したか判定し、達していなければ、Duty調整信号の値を1増加(+1)して、S23に戻り、Duty調整信号の値が上限値になるまでS23からS25を繰り返す。Duty調整信号の値が上限値になると、ステップS26に進む。値が上限値になると、ステップS27に進む。0085ステップS27で、Duty調整信号の16個の値および基準電位調整信号の5個の値に対するトレーニング判定信号のPass/Failの値から、良好な通信が行えるDuty調整信号および基準電位調整信号の値の範囲を求める。その範囲内の最適値にDuty調整信号および基準電位調整信号を設定する。ステップS28で、トレーニングEnableおよびDisableがLレベルに戻り、トレーニングを終了する。0086図17は、良好な通信が行えるDuty調整信号および基準電位調整信号の値の範囲例を示す図であり、(A)が基準電(VREF)を固定してDuty調整信号を変化した例を、(B)が、Duty調整信号および基準電位調整信号の両方を変化した例を示す。図170087図17の(A)は、基準電位(VREF)を50%("011")、すなわち(VDD+VSS)/2に設定して、Duty調整信号を変化した例であり、図11の(S)のビタースポット有りの場合と同じである。図17の(B)は、基準電位(VREF)を、40%("000")から60%("100")まで5%ずつ5段階に変化させ、基準電位(VREF)の各段階で、Duty調整信号を変化した例である。この例は、ビタースポット有りの場合の例で、Duty調整信号=0では不良(Fail)となっている。良好(Pass)となる範囲は、基準電位(VREF)=50%の場合が最大で、基準電位(VREF)が50%から離れるにしたがって狭くなる。図17の(B)の良好(Pass)となる範囲から、ノイズマージンも考慮して、Duty調整信号および基準電位調整信号を最適値に設定する。図17の(B)の例では、基準電位(VREF)=50%、Duty調整信号=5(1001)に設定される。図11図170088以上、第1および第2実施形態のデータ通信装置を説明したが、各種の変形例が可能であるのはいうまでもない。第1および第2実施形態では、隣接する2つのデータ通信サイクルの一方を長く他方を同じだけ短くする例を示した。この場合、ビタースポットに当たらなければ、2つのサイクルの長さは同じで、ビタースポットに当たる場合、2つのサイクルの一方を長く他方を同じ量だけ短く、言い換えれば、両方ともデータ通信周期と異なる長さを有することになる。前述のように、隣接する3つのデータ通信サイクルを1組とし、ビタースポットに当たらなければ、3つのサイクルの長さは同じで、ビタースポットに当たる場合、3つのうち2つを同じ量だけ短く、1つを2倍の量だけ長くする変形もあり得る。0089さらに、第1装置10としてメモリコントローラを、第2装置(対向デバイス)30としてSDRAMを使用する例を説明したが、これに限定されず、双方向で通信を行うデータ通信装置であれば、実施形態の構成が適用可能である。0090以上の実施形態に関し、更に以下の付記を開示する。前記トレーニング回路が設定した前記N個のデータサイクルの各データサイクルの時間長のデータサイクルで、データ通信を行うことを特徴とするデータ通信装置。前記第2装置は、前記ストローブ信号に基づいて、前記N個のデータサイクルの各データサイクルの時間長で送信されたデータを受信する付記1に記載のデータ通信装置。前記第2装置は、受信した前記クロックに基づいて、前記返信データを生成する付記1または2に記載のデータ通信装置。前記第2装置は、供給された前記良判定された基準電位の範囲内の基準電位で受信を行う付記1から3のいずれかに記載のデータ通信装置。良否判定した結果のうち良判定された前記時間長の範囲内で、前記N個のデータサイクルの各データサイクルの時間長を設定し、設定した前記N個のデータサイクルの各データサイクルの時間長のデータサイクルで、データ通信を行うことを特徴とするデータ通信方法。(付記6)前記N個のデータサイクルの各データサイクルの時間長で送信されたデータを受信するためのストローブ信号が、送信側から受信側に送信される付記5に記載のデータ通信方法。前記第2装置は、受信した前記クロックに基づいて、前記返信データを生成する付記5または6に記載のデータ通信方法。前記基準電位を変更しながら前記トレーニングを繰り返し行い、前記基準電位についても、良判定された前記基準電位の範囲を求め、前記基準電位を前記基準電位の範囲内に設定する付記5から7のいずれかに記載のデータ通信方法。前記N個のデータサイクルのそれぞれの時間長は、すべて前記合計時間長の1/Nであるか、すべて前記合計時間長の1/N以外であるかのいずれかであることを特徴とするデータ通信装置。(付記10)前記第1装置は、前記第2装置が前記N個のデータサイクルの各データサイクルの時間長で送信されたデータを受信するためのストローブ信号を、前記第2装置に送信する付記9に記載のデータ通信装置。前記第2装置は、受信した前記クロックに基づいて、前記返信データを生成する付記9または10に記載のデータ通信装置。(付記12)前記データ信号の受信におけるデータ値判定のための基準電位が可変である付記9から11のいずれかに記載のデータ通信装置。前記N個のデータサイクルのそれぞれの時間長は、すべて前記合計時間長の1/Nであるか、すべて前記合計時間長の1/N以外であるかのいずれかであることを特徴とするデータ通信方法。(付記14)前記N個のデータサイクルの各データサイクルの時間長で送信されたデータを受信するためのストローブ信号が、送信側から受信側に送信される付記13に記載のデータ通信方法。(付記15)設定した前記N個のデータサイクルの各データサイクルの時間長でデータ信号を生成するために、サイクル長が変更されたクロックが生成され、生成された前記クロックが前記第1装置と前記第2装置の間で送信される付記13または14に記載のデータ通信方法。(付記16)前記データ信号の受信におけるデータ値判定のための基準電位が可変である付記13から15のいずれかに記載のデータ通信方法。0091以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。第2装置(対向デバイス)(SDRAM)ページトップへこの技術を出願した法人この情報を共有FacebookTwitterGoogle+LinkedInこの技術を発明した人物この情報を共有FacebookTwitterGoogle+LinkedInページトップへ関連する挑戦したい社会課題この情報を共有FacebookTwitterGoogle+LinkedInサイバー攻撃のない社会を実現する5G通信技術、IoTサービスの普及に伴い「サイバー攻撃のない社会」はこれまで以上に重要になります。ネット上の個人データが狙われるだけでなく、今後はサイバー攻撃によって医療デバイスや都市インフラなど...最終更新日:2018/06/11犯罪者のいない都市を実現する犯罪者のいない都市を実現するためには、年々変化する犯罪への予防対策・解決への取り組みが重要です。イノベーションを導く多くの企業が膨大な労力と費用をかけて新たな市場や事業を生み出そうとしている中「イノベーション」にかかわるデータのニーズはかつてないほどの高まりを見せいます。