説明

サンプリング位相を補正するホストコントローラ及び方法

【課題】 転送データの信頼性向上ならびにエラー対処性能の向上を実現する。
【解決手段】 一実施形態は、外部機器から受信した信号をサンプリングする際のサンプリングクロックの位相シフト補正を行うホストコントローラ10であって、前記サンプリングクロックの位相シフトが必要か判定し、位相シフトが必要な場合は、シフト方向に応じてカウンタ108をアップ/ダウンカウントする位相シフト判定部107と、前記位相シフトの変動範囲制限値を格納する制限値格納部109と、前記カウンタ値が前記位相シフトの制限値を超えているか判定し、超えている場合にエラーの通知を可能とし、超えていない場合に、前記カウンタ108のカウンタ値に応じて、前記サンプリングクロックの位相をシフトするシフト制限判定部110とを具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、SDカードのような外部装置を接続し、外部装置とデータの入出力処理を行い、外部装置から受信されたデータを読取る際の温度ドリフトエラーを検知して、サンプリング位相を補正するホストコントローラ及びその補正方法に関する。
【背景技術】
【0002】
デジタルカメラ、携帯電話などの携帯機器、及びPC、テレビなどの家電機器に使用され、小型で携帯可能な不揮発性メモリとしてSDカードが広く普及している。SDカードとホスト装置(CPU)間のデータ及びコマンド転送は、ホストコントローラにより制御される。
【0003】
最近のSDカードは従来よりも転送速度がさらに高速になってきているため、今までは固定であったデータ受信時の遅延量では、適切にデータサンプリングできなくなり、サンプリング位置の位相設定が必要になっている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平2−250535号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
サンプリングクロックの位相設定には、実際のデータ転送前にチューニングを行い、最適な位相を判断するのが一般的である。チューニングとは、SDカードの初期化シーケンスにおいて、最適なサンプリング位置を決定する動作を示す。すなわちホスト装置は、サンプリングクロックのシフト量を少しずつ変えて、SDカードからチューニングパタンを繰り返し読出しサンプリングする。このチューニングパタンは、既知のデータパターンであって、同一のパターンがSDカード及びホストコントローラの両方に予め格納されている。このサンプリングにより得られるデータがホストコントローラ10が有しているチューニングパターンに一致するか判断し、最も安定して正しいデータが得られるシフト量が最適なサンプリング位置として決定する。
【0006】
しかし、転送中に位相が温度等によりずれた場合は、そのずれを検知することができなかったので、短い転送間隔で再チューニングを行なう必要があった。
【0007】
上記問題に対して、転送されたデータをサンプリングし位相ずれを検知することにより、再チューニングの判断情報を得て、位相ずれが起きた場合にのみ再チューニングを行うホストコントローラが提案された。このホストコントローラは、位相ずれ検知結果に基づいてサンプリング位置を補正する。これにより、位相ずれ対策が可能となるが、位相ずれの許容変動範囲を超えた位相ずれエラー検知ができないという問題があった。
【課題を解決するための手段】
【0008】
本発明の実施形態は、位相ずれの補正回数をカウントし、位相変動範囲と比較する手段を設けることで、エラー発生を早期検知し、転送データの信頼性の向上とエラー対処性能の向上を実現する。
【0009】
すなわち一実施形態は、外部機器から受信した信号をサンプリングする際のサンプリングクロックの位相シフト補正を行うホストコントローラであって、前記サンプリングクロックの位相シフトが必要か判定し、位相シフトが必要な場合は、シフト方向に応じてカウンタをアップ/ダウンカウントする位相シフト判定部と、前記位相シフトの変動範囲制限値を格納する制限値格納部と、前記カウンタ値が前記位相シフトの制限値を超えているか判定し、超えている場合にエラーを通知し、超えていない場合に、前記カウンタのカウンタ値に応じて、前記サンプリングクロックの位相をシフトするシフト制限判定部とを具備する。
【図面の簡単な説明】
【0010】
【図1】本発明が適用されるホストコントローラの全体構成を示すブロック図である。
【図2】サンプリング信号補正回路15の構成を示すブロック図である。
【図3】SDカードから受信したデータの有効領域の変動を示す図である。
【図4】サンプリング位相補正の動作概要を示す図である。
【図5】位相シフトカウンタの値を更新する具体例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明に係るホストローラの実施形態について、図面を参照して説明する。
【0012】
図1は本発明が適用されるホストコントローラの全体構成を示すブロック図である。
【0013】
ホストコントローラ10は例えばLSIとして構成され、ホスト装置(例えばCPU)とSDカード間のデータ転送を制御する。ホストコントローラ10はSDカードを制御するホスト側装置として機能するので、SDホストコントローラとも呼ばれる。
【0014】
ホストコントローラ10は、逓倍分周器12、送信回路13、受信回路14、本実施形態に係るサンプリング信号補正回路15、増幅器16、入出力ゲート17を含む。
【0015】
逓倍/分周器12は、ホスト装置の周波数設定で発生されたクロックCLKを逓倍或いは分周してクロック信号を生成し、各部に動作クロックとして提供する。クロック信号CG_SDCLKはサンプリング信号補正回路15に供給されると共に、増幅器16により増幅され信号SDCLKとしてSDカードに提供される。
【0016】
送信回路13は、複数ビットラインを介してホスト装置から転送された送信データDAT及び送信コマンドCMDを、F/F(フリップフロップ)13aにより信号同期させて出力する。入出力ゲート17は、データDAT及びコマンドCMD信号の入出力伝送経路を制御する。受信回路14は、複数ビットラインを介してSDカードから入力された受信データDAT及び受信コマンドCMD信号を、F/F14aにより信号同期させてホスト装置に転送する。
【0017】
図2はサンプリング信号補正回路15の構成を示すブロック図である。
【0018】
100は異なる位相のサンプリングクロックを生成するサンプリングクロック生成部、101は位相を設定する位相設定レジスタである。102はサンプリングクロックAでデータ受信を行なうデータ入力部、103はサンプリングクロックBでデータ受信を行なうデータ入力部、104はサンプリングクロックCでデータ受信を行なうデータ入力部である。105はデータ入力部102、103、104で受信したデータを比較するデータ比較部、106は比較結果から位相ずれを集計する位相集計部である。107は位相集計部106の集計結果から位相シフトをするかしないかの判定を行う位相シフト判定部である。108は位相シフトをカウントする位相シフトカウンタ、109はホストからの位相シフト制限値を設定する位相シフト制限値設定レジスタである。110は109の位相シフトの制限値と108のカウント値を比較しエラーとするかの判定を行うシフト制限判定部、111はシフト制限判定部110にてエラーと判定された場合に、割り込みとして処理を行うための割り込み回路である。
【0019】
図3はSDカードから受信したデータの有効領域の変動を示す。
【0020】
周囲温度変化によりデータ有効領域(Valid)は変動する。一般的にカードの種類や動作モードにより、温度が上がった場合と下がった場合での最大のずれ幅W1が規定されている。この幅W1は適正位相設定範囲であって、サンプリング位相はこの適正位相設定範囲内で設定する必要がある。適正位相設定範囲W1は、データ変化点からの時間として規定されている。従って、データサンプリング位相は、適正位相設定範囲W1以内のデータ有効領域を超えた時点で通知できる機能が必要である。
【0021】
図3(a)及び(b)はチューニング直後のデータ有効領域を示す。チューニング直後は、サンプリングクロックのサンプリングポイント(サンプリング位相)t1とデータ有効領域の中心が一致している。
【0022】
図3(c)はSDカードが熱を持ち、有効領域が適正位相設定範囲W1内で最も遅れ方向にずれている時を示している。W2は遅れ方向の最大ずれ幅(遅れ制限値)を示している。
【0023】
図3(d)はSDカードが冷えて、有効領域が適正位相設定範囲W1内で最も進み方向にずれている時を示している。W3は進み方向の最大ずれ幅(進み制限値)を示している。
【0024】
図4はサンプリング位相補正の動作概要を示す。
【0025】
3相のクロックCLK_A、CLK_B、CLK_Cにて位相ずれを検知し位相補正が行われる。位相補正は、データ有効領域のずれの検知に基づいて自動で行われるため、有効領域が適正位相設定範囲W1を超えてしまと正しくサンプリングを行うことができずエラーが発生する。
【0026】
図4(a)は3相のクロックCLK_A、CLK_B、CLK_Cの位相が全て有効領域内に治まっている状態を示している。実際のデータサンプリングは例えば中央のクロックCLK_Bを用いて行われる。図4(b)は有効領域が遅れ方向にずれ、クロックCLK_Aによりずれが検知される状態を示す。このようにずれが検知されると、図4(c)のように3相のクロックCLK_A、CLK_B、CLK_Cが有効領域内をサンプリングするように位相補正が行われる。
【0027】
図4(d)は有効領域が更に遅れ方向にずれ、クロックCLK_Aによりずれが検知される状態を示す。このようにずれが検知されると、図4(e)のように3相のクロックCLK_A、CLK_B、CLK_Cが再び有効領域内をサンプリングするように位相補正が行われるが、この場合は、有効領域が適正位相設定範囲W1を超えている。従って、このままデータ受信を行っていると、中央のクロックCLK_Bを用いてデータサンプリングを行っている場合は、データエラーが発生する可能性がある。
【0028】
次に本発明に係る実施形態の動作を図2を参照して説明する。
【0029】
先ずホスト装置は、位相設定レジスタ101に互いに異なる3つの位相を設定する。このとき、中央のクロックCLK_Bの位相には、前述のチューニングにて得られた最適な位相が設定される。サンプリングクロック生成部100は、位相設定レジスタ101から提供される3つの位相をそれぞれ有する3つのクロックCLK_A,CLK_B,CLK_Cを生成する。データ入力部102、103、104は、これら3つのクロックにてリードデータを図4のようにサンプリングする。データ比較部105は、サンプリング周期毎に得られる3つのデータを閾値と比較する。
【0030】
位相ずれ集計部106は、データ比較部105の比較結果を、データブロック(例えば512バイト)単位で、ブロック転送終了時まで集計する。この時集計されるデータは、例えば、111、111、110、111…のようなデータとなる。夫々3つのデータが同一であれば、サンプリングクロックCLK_A,CLK_B,CLK_Cは共に、図4の「Valid」で示されるデータ有効領域をサンプリングしていることになる。
【0031】
位相シフト判定部107において位相シフトの判定を行う。位相シフト判定部107は、サンプリング周期毎にえられる3つのデータに相違がある状態が例えば所定回数連続した場合、位相シフトが必要と判定と判定する。位相シフト判定部107は位相シフトカウンタ108のカウンタ値をシフト量(回数)にあわせて変更する。位相シフト判定部107は、例えば進み側に位相シフトが必要と判定した場合、カウンタを−1する。また、遅れ側に位相シフトが必要と判定した場合はカウンタを+1する。
【0032】
ここで、位相シフト制限値設定部109には、図4の遅れ制限値W2及び進み制限値W3が、位相シフトカウンタ108のカウント値に対応する値W2c、W3cに変換されて設定されている。シフト制限判定部110は、遅れ制限値W2c及び進み制限値W3cと位相シフトカウンタ値を比較し、制限値を外れていないかを判定する。
【0033】
制限値を外れていないと判定された場合、シフト制限判定部110は位相設定レジスタ101の値を更新し位相シフトを行う。すなわち、位相シフトカウンタ108のカウント値に対応する位相差を位相設定レジスタ101のクロックCLK_A,CLK_B,CLK_C用のレジスタに夫々加算する。
【0034】
カウント値が制限値を外れていると判定された場合、シフト制限判定部110は割り込み回路111にて、ホスト装置に割込み信号を与え、制限値が超えられたこと即ちエラーを通知する。尚、制限判定処理にてエラーとなった場合でも、エラーは通知のみで転送を続けることも可能である。
【0035】
次に本発明の具体例を説明する。
【0036】
図5は位相シフトカウンタの値を更新する具体例を示すフローチャートである。
【0037】
先ずホスト装置はブロック200で、前述のチューニングを行い、位相設定レジスタ101を用いて、最適位相をクロックCLK_Bに設定し、前後に所定位相差ずれた位相をCLK_A及びCLK_Bに設定する。ブロック201でホスト装置は、位相シフトカウンタ108のカウンタ値を0に初期化する。
【0038】
ブロック202で、SDカードとホストコントローラ間のデータ転送が行われる。ブロック203では、位相シフト判定部107は位相シフトが発生したか判定し、位相シフトが発生していればブロック204へ、発生していない場合には202へ移行する。
【0039】
位相シフトが発生した場合は、ブロック204においてシフト方向により分岐する。進み方向にシフトする場合にはブロック205にて位相シフトカウンタのカウンタ値を1減算し、遅れ方向にシフトする場合にはブロック206にてカウンタ値を1加算する。
【0040】
ブロック207では、設定されている制限値W2c及びW3cとカウンタ値の比較を行い、エラー判定された場合はブロック208にて割り込みを発生させエラーを通知し、OKの場合にはブロック209へ移行し、位相シフトレジスタ101の更新を実施する。
【0041】
以上説明したように本実施形態によれば、データ有効領域が温度ドリフトにより変化し、その変化量が位相シフト制限値を超えるエラーが発生した場合には、エラー発生直後に検知が可能となる。よって、エラーの早期検知、転送データの信頼性向上、ならびにエラー対処性能の向上が実現される。
【0042】
尚、上記実施形態では、位相シフト制限値設定部109には、規格で決められている遅れ制限値W2及び進み制限値W3を設定したが、他の値をホスト装置から設定してもよい。これにより、シフト制限判定に幅を持たせることが可能となるだけでなく、環境変化による温度ドリフトの変動範囲が変わった場合にも対応可能となる。
【0043】
例えば、エラー訂正処理を軽度に行っている、即ちエラーが厳しきく制限されるシステムでは位相シフト制限値を小さく設定し、エラー訂正処理を十分に行っているシステムでは、位相シフト制限値を大きく設定してもよい。又、1シフトあたりの位相変化量を大きく(位相設定レジスタの分解能を低く)設定した場合には、位相シフト制限値を小さく設定することで、制限値超過エラーの検出精度低下を防止できる。
【0044】
以上の説明はこの発明の実施の形態であって、この発明の装置及び方法を限定するものではなく、様々な変形例を容易に実施することができるものである。例えば、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を構成できる。
【符号の説明】
【0045】
10…ホストコントローラ、12…逓倍分周器、13…送信回路、14…受信回路、15…サンプリング信号補正回路。

【特許請求の範囲】
【請求項1】
外部機器から受信した信号をサンプリングする際のサンプリングクロックの位相シフト補正を行うホストコントローラであって、
前記サンプリングクロックの位相シフトが必要か判定し、位相シフトが必要な場合はシフト方向に応じてカウンタをアップ/ダウンカウントする位相シフト判定部と、
前記位相シフトの変動範囲制限値を格納する制限値格納部と、
前記カウンタ値が前記位相シフトの制限値を超えているか判定し、超えている場合にエラーを通知し、超えていない場合に、前記カウンタのカウンタ値に応じて、前記サンプリングクロックの位相をシフトするシフト制限判定部と、
を具備するホストコントローラ。
【請求項2】
前記位相シフトの変動範囲制限値は、遅れ方向の最大ずれ幅及び進み方向の最大ずれ幅である請求項1記載のホストコントローラ。
【請求項3】
前記位相シフト判定部は、互いに位相の異なる複数のクロック信号を用いて受信データをサンプリングし、得られるデータ値に基づいて前記サンプリングクロックの位相シフトを判定する請求項1記載のホストコントローラ。
【請求項4】
前記外部機器はSDカードであって、前記SDカードのデータ転送開始時に、前記SDカードからチューニングパターンを読出してチューニングを行い、前記サンプリングクロックの最適位相を判断し、該最適位相を前記複数のクロック信号の内、中央のクロックに与える請求項1記載のホストコントローラ。
【請求項5】
外部機器から受信した信号をサンプリングする際のサンプリングクロックの位相シフト補正を行う方法であって、
前記サンプリングクロックの位相シフトが必要か判定し、位相シフトが必要な場合は、シフト方向に応じてカウンタをアップ/ダウンカウントし、
前記カウンタ値が前記位相シフトの変動範囲制限値を超えているか判定し、超えている場合にエラーを通知可能とし、超えていない場合に、前記カウンタのカウンタ値に応じて、前記サンプリングクロックの位相をシフトすることを具備する方法。
【請求項6】
前記位相シフトの変動範囲制限値は、遅れ方向の最大ずれ幅及び進み方向の最大ずれ幅である請求項5記載の方法。
【請求項7】
前記位相シフトの判定は、互いに位相の異なる複数のクロック信号を用いて受信データをサンプリングし、得られるデータ値に基づいて前記サンプリングクロックの位相シフトを判定する請求項5記載の方法。
【請求項8】
前記外部機器はSDカードであって、前記SDカードのデータ転送開始時に、前記SDカードからチューニングパターンを読出してチューニングを行い、前記サンプリングクロックの最適位相を判断し、該最適位相を前記複数のクロック信号の内、中央のクロックに与える請求項5記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−54715(P2012−54715A)
【公開日】平成24年3月15日(2012.3.15)
【国際特許分類】
【出願番号】特願2010−194929(P2010−194929)
【出願日】平成22年8月31日(2010.8.31)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】