(57)【要約】  スレーブデバイスのための効率のよいスリープおよびウェイクアップメカニズムを容易にしながら、フリーランニングクロックを用いずにデータがスレーブデバイスのレジスタに書き込まれることを可能にするメカニズムを提供する方法、装置、およびコンピュータプログラム製品が記載される。レシーバデバイスは、複数のシンボルを共有バスを介して受信し、複数のシンボルのシンボル間遷移の中に埋め込まれた受信クロック信号を抽出し、複数のシンボルを遷移番号に変換し、遷移番号をデータビットに変換し、データビットの少なくとも一部分を1つまたは複数のレジスタに、受信クロック信号のみを使用して、記憶してもよい。レシーバデバイスは、クロック信号の最初のサイクルを検出するとダウンカウンタを開始し、ダウンカウンタが事前定義された値に到達したときにマーカをトリガし、データビットの少なくとも一部分をレジスタに記憶するためにマーカを使用してもよい。
2017501493.tif 000002
【特許請求の範囲】
【請求項１】
レシーバデバイスによって実行される方法であって、
複数のシンボルを共有バスを介して受信するステップと、
前記複数のシンボルのシンボル間遷移の中に埋め込まれたクロック信号を抽出するステップと、
前記複数のシンボルを遷移番号に変換するステップと、
前記遷移番号をデータビットに変換するステップと、
前記データビットの少なくとも一部分を1つまたは複数のレジスタに、前記クロック信号のみを使用して、記憶するステップと
を備える方法。
【請求項２】
前記シンボルは、2つの連続シンボルが同じ値を有しないようにクロックサイクルごとに遷移する、請求項1に記載の方法。
【請求項３】
前記レシーバデバイスは、前記共有バスに接続された他のいかなるデバイスにも通知することなく、独立にスリープモードに入る、請求項1に記載の方法。
【請求項４】
前記レシーバデバイスは、前記データビットの少なくとも一部分を受信し、それを前記1つまたは複数のレジスタに、局所的なフリーランニングクロックを使用することなく書き込む、請求項1に記載の方法。
【請求項５】
前記レシーバデバイスは、前記データビットの少なくとも一部分を受信し、それを前記1つまたは複数のレジスタに、前記レシーバがスリープモードにある間に書き込む、請求項1に記載の方法。
【請求項６】
前記遷移番号は3進数として表現される、請求項1に記載の方法。
【請求項７】
前記遷移番号は12桁の3進数である、請求項1に記載の方法。
【請求項８】
前記共有バスは、カメラ制御インターフェース拡張(CCIe)バスである、請求項1に記載の方法。
【請求項９】
前記データビットの少なくとも一部分は、前記1つまたは複数のレジスタに、
前記クロック信号の最初のサイクルを検出するとダウンカウンタを開始するステップと、
前記ダウンカウンタが事前定義された値に到達するとマーカをトリガするステップと、
前記データビットの少なくとも一部分をレジスタに記憶するために前記マーカを使用するステップと
によって書き込まれる、請求項1に記載の方法。
【請求項１０】
前記事前定義された値は、前記クロック信号の最終のクロックサイクルに到達すると生じる、請求項9に記載の方法。
【請求項１１】
前記遷移番号は、前記クロック信号の最後から2番目のクロックサイクルと最後のクロックサイクルとの間で前記データビットに変換され、
前記データビットの前記少なくとも一部分は、前記クロック信号の最後のクロックサイクルにおいてレジスタに記憶される、
請求項1に記載の方法。
【請求項１２】
レシーバデバイスであって、
複数のシンボルを受信するために前記レシーバデバイスを共有バスに接続するように適合されたバスインターフェースと、
1つまたは複数のレジスタと、
前記バスインターフェースに接続され、
前記複数のシンボルのシンボル間遷移の中に埋め込まれたクロック信号を抽出し、
前記複数のシンボルを遷移番号に変換し、
前記遷移番号をデータビットに変換し、
前記データビットの少なくとも一部分を前記1つまたは複数のレジスタに、前記クロック信号のみを使用して、記憶する
ように構成されたレシーバ回路と
を備えるレシーバデバイス。
【請求項１３】
前記シンボルは、2つの連続シンボルが同じ値を有しないようにクロックサイクルごとに遷移する、請求項12に記載のレシーバデバイス。
【請求項１４】
前記レシーバデバイスは、前記共有バスに接続された他のいかなるデバイスにも通知することなく、独立にスリープモードに入るように適合される、請求項12に記載のレシーバデバイス。
【請求項１５】
前記レシーバデバイスは、前記データビットの少なくとも一部分を受信し、それを前記1つまたは複数のレジスタに、局所的なフリーランニングクロックを使用することなく書き込むように適合される、請求項12に記載のレシーバデバイス。
【請求項１６】
前記レシーバデバイスは、前記データビットの少なくとも一部分を受信し、それを前記1つまたは複数のレジスタに、前記レシーバがスリープモードにある間に書き込むように適合される、請求項12に記載のレシーバデバイス。
【請求項１７】
前記遷移番号は3進数として表現される、請求項12に記載のレシーバデバイス。
【請求項１８】
前記遷移番号は12桁の3進数である、請求項12に記載のレシーバデバイス。
【請求項１９】
前記共有バスは、カメラ制御インターフェース拡張(CCIe)バスである、請求項12に記載のレシーバデバイス。
【請求項２０】
ダウンカウンタをさらに備えるレシーバデバイスであって、前記レシーバデバイスは、前記データビットの少なくとも一部分を受信し、それを前記1つまたは複数のレジスタに、
前記クロック信号の最初のサイクルを検出すると前記ダウンカウンタを開始することと、
前記ダウンカウンタが事前定義された値に到達するとマーカをトリガすることと、
前記データビットの少なくとも一部分をレジスタに記憶するために前記マーカを使用することと
によって書き込むように適合される、
請求項12に記載のレシーバデバイス。
【請求項２１】
前記事前定義された値は、前記クロック信号の最終のクロックサイクルに到達すると生じる、請求項20に記載のレシーバデバイス。
【請求項２２】
複数のシンボルを共有バスを介して受信するための手段と、
前記複数のシンボルのシンボル間遷移の中に埋め込まれたクロック信号を抽出するための手段と、
前記複数のシンボルを遷移番号に変換するための手段と、
前記遷移番号をデータビットに変換するための手段と、
前記データビットの少なくとも一部分をレジスタに、前記クロック信号のみを使用して、記憶するための手段と
を備えるレシーバデバイス。
【請求項２３】
前記シンボルは、2つの連続シンボルが同じ値を有しないようにクロックサイクルごとに遷移する、請求項22に記載のレシーバデバイス。
【請求項２４】
前記レシーバデバイスは、前記共有バスに接続された他のいかなるデバイスにも通知することなく、独立にスリープモードに入るように構成される、請求項22に記載のレシーバデバイス。
【請求項２５】
前記データビットの少なくとも一部分を前記レジスタに記憶するための前記手段は、
前記データビットの少なくとも一部分を前記1つまたは複数のレジスタに、局所的なフリーランニングクロックを使用することなく書き込むように構成される、
請求項22に記載のレシーバデバイス。
【請求項２６】
前記データビットの少なくとも一部分を前記レジスタに記憶するための前記手段は、
前記データビットの少なくとも一部分を前記1つまたは複数のレジスタに、前記レシーバがスリープモードにある間に書き込むように構成される、
請求項22に記載のレシーバデバイス。
【請求項２７】
前記遷移番号は12桁の3進数である、請求項22に記載のレシーバデバイス。
【請求項２８】
前記データビットの少なくとも一部分を前記レジスタに記憶するための前記手段は、
前記クロック信号の最初のサイクルを検出するとダウンカウンタを開始し、
前記ダウンカウンタが事前定義された値に到達するとマーカをトリガし、
前記データビットの少なくとも一部分をレジスタに記憶するために前記マーカを使用するように構成され、
前記事前定義された値は、前記クロック信号の最終のクロックサイクルに到達すると生じる、
請求項22に記載のレシーバデバイス。
【請求項２９】
前記データビットの少なくとも一部分を前記レジスタに記憶するための前記手段は、
前記遷移番号を、前記クロック信号の最後から2番目のクロックサイクルと最後のクロックサイクルとの間で前記データビットに変換し、
前記データビットの少なくとも一部分を、前記クロック信号の最後のクロックサイクルにおいてレジスタに記憶するように構成される、
請求項22に記載のレシーバデバイス。
【請求項３０】
その上に記憶された命令を有する非一時的機械可読記憶媒体であって、前記命令は少なくとも1つのプロセッサによって実行されたとき、前記少なくとも1つのプロセッサに、
複数のシンボルを共有バスを介して受信させ、
前記複数のシンボルのシンボル間遷移の中に埋め込まれたクロック信号を抽出させ、
前記複数のシンボルを遷移番号に変換させ、
前記遷移番号をデータビットに変換させ、
前記データビットの少なくとも一部分をレジスタに、前記クロック信号のみを使用して、記憶させる、
非一時的機械可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2014年12月16日に米国特許商標庁に出願された、米国非仮特許出願第14/572,680号の優先権および利益を主張し、その出願は、2013年12月18日に米国特許商標庁に出願された、米国仮特許出願第61/917,895号の優先権および利益を主張し、上記の仮出願の内容全体が、参照によって本明細書に組み込まれる。
【０００２】
本開示は、共有バスを介した効率的な動作を可能にすることに関し、より詳細には、コード変換された伝送内にクロックを埋め込むことによって、共有バスを介した送信および/または受信を簡略化することに関する。
【背景技術】
【０００３】
I2C(I2Cとも呼ばれる)は、マザーボード、組込みシステム、セルフォンまたは他の電子デバイスに低速周辺装置を取り付けるために使用されるマルチマスタシリアルシングルエンドバスである。I2Cバスは、クロック(SCL)線と、7ビットアドレス指定を用いるデータ(SDA)線とを含む。バスは、デバイスに関する2つの役割、すなわち、マスタおよびスレーブを有する。マスタデバイスは、クロックを生成し、スレーブデバイスとの通信を開始するノードである。スレーブデバイスは、クロックを受信し、マスタデバイスによってアドレス指定されたときに応答するノードである。I2Cバスは、任意の数のマスタデバイスが存在できることを意味するマルチマスタバスである。加えて、マスタおよびスレーブの役割は、メッセージの間で(STOPが送られた後に)変更されてもよい。I2Cは、メッセージの基本タイプを定義し、それらの各々はSTARTで開始し、STOPで終了する。
【０００４】
カメラ実装のこの文脈では、センサから画像を取り込み、そのような画像データをベースバンドプロセッサの中のメモリに送信するために単方向送信が使用されてもよく、一方、ベースバンドプロセッサと、センサならびに他の周辺デバイスとの間で制御データが交換されてもよい。一例では、ベースバンドプロセッサと画像センサ(および/または1つもしくは複数のスレーブデバイス)との間のそのような制御データのために、カメラ制御インターフェース(CCI)プロトコルが使用されてもよい。一例では、CCIプロトコルは、画像センサとベースバンドプロセッサとの間のI2Cシリアルバス上で実施されてもよい。
【０００５】
共有バスを介した伝送のために情報をエンコードする、CCIe(カメラ制御インターフェース拡張)と称するCCIの拡張が開発されてきた。CCIeは、別個のクロック線を共有バス上に実装しない。代わりに、CCIeは、送信されるコード変換済み情報内にクロックを埋め込む。しかしながら、そのような埋め込みクロックは、データの受信および/または同期目的のために働く場合があり、そのようなデータをレジスタに保存することを可能にするには不十分な場合がある。
【０００６】
さらに、スレーブデバイスが電力節約モードまたはスリープモードに入ることを可能にし、マスタデバイスがデータをスレーブデバイスに書き込むことも可能にするためのメカニズムが必要である。このことは、マスタデバイスに、スリープモードにあるスレーブデバイスをトラッキングさせることによってなされる場合があるが、そのようなメカニズムは、不要なオーバーヘッドを加える。
【０００７】
したがって、スレーブデバイスのための効率のよいスリープおよびウェイクアップメカニズムを容易にしながら、フリーランニングクロックを用いずにデータをスレーブデバイスのレジスタに書き込むことを可能にするために、伝送内に埋め込まれているリカバリされたクロックを効率よく使用する解決策が必要である。
【発明の概要】
【課題を解決するための手段】
【０００８】
本開示の一態様では、スレーブデバイスのための効率のよいスリープおよびウェイクアップメカニズムを容易にしながら、フリーランニングクロックを用いずにデータがスレーブデバイスのレジスタに書き込まれることを可能にするメカニズムを提供する方法、コンピュータプログラム製品、および装置が提供される。
【０００９】
いくつかの態様では、レシーバデバイスによって実行される方法は、複数のシンボルを共有バスを介して受信することと、複数のシンボルのシンボル間遷移の中に埋め込まれたクロック信号を抽出することと、複数のシンボルを遷移番号に変換することと、遷移番号をデータビットに変換することと、データビットの少なくとも一部分を1つまたは複数のレジスタに、クロック信号のみを使用して、記憶することとを含む。
【００１０】
一態様では、シンボルは、2つの連続シンボルが同じ値を有しないようにクロックサイクルごとに遷移する。
【００１１】
一態様では、レシーバデバイスは、共有バスに接続されているいかなる他のデバイスにも通知することなく、独立にスリープモードに入る。
【００１２】
一態様では、レシーバデバイスは、データビットの少なくとも一部分を受信し、それを1つまたは複数のレジスタに、局所的なフリーランニングクロックを使用することなく書き込む。レシーバデバイスは、データビットの少なくとも一部分を受信してもよく、それを1つまたは複数のレジスタに、レシーバがスリープモードにある間に書き込んでもよい。
【００１３】
一態様では、遷移番号は、3進数として表現されてもよい。一例では、遷移番号は、12桁の3進数であってもよい。
【００１４】
一態様では、共有バスは、カメラ制御インターフェース拡張(CCIe)バスである。
【００１５】
一態様では、データビットの少なくとも一部分は、1つまたは複数のレジスタに、クロック信号の最初のサイクルを検出するとダウンカウンタを開始することと、ダウンカウンタが事前定義された値に到達したときにマーカをトリガすることと、データビットの少なくとも一部分をレジスタに記憶するためにマーカを使用することとによって書き込まれる。クロック信号の最終のクロックサイクルに到達したとき、事前定義された値が生じてもよい。
【００１６】
一態様では、遷移番号は、クロック信号の最後から2番目のクロックサイクルと最後のクロックサイクルとの間でデータビットに変換され、データビットの少なくとも一部分は、クロック信号の最後のクロックサイクルにおいてレジスタに記憶される。
【００１７】
いくつかの態様では、レシーバデバイスは、複数のシンボルを受信するためにレシーバデバイスを共有バスに接続するように適合されたバスインターフェースと、1つまたは複数のレジスタと、バスインターフェースに接続されたレシーバ回路とを含む。レシーバ回路は、複数のシンボルのシンボル間遷移の中に埋め込まれたクロック信号を抽出し、複数のシンボルを遷移番号に変換し、遷移番号をデータビットに変換し、データビットの少なくとも一部分を1つまたは複数のレジスタに、クロック信号のみを使用して、記憶するように構成されてもよい。
【００１８】
いくつかの態様では、レシーバデバイスは、複数のシンボルを共有バスを介して受信するための手段と、複数のシンボルのシンボル間遷移の中に埋め込まれたクロック信号を抽出するための手段と、複数のシンボルを遷移番号に変換するための手段と、遷移番号をデータビットに変換するための手段と、データビットの少なくとも一部分をレジスタに、クロック信号のみを使用して、記憶するための手段とを含む。
【００１９】
いくつかの態様では、機械可読記憶媒体は、その上に記憶された命令を有する。記憶媒体は、一時的および/または非一時的な記憶媒体を含んでもよい。命令は、少なくとも1つのプロセッサによって実行されてもよく、命令は、少なくとも1つのプロセッサに、複数のシンボルを共有バスを介して受信させ、複数のシンボルのシンボル間遷移の中に埋め込まれたクロック信号を抽出させ、複数のシンボルを遷移番号に変換させ、遷移番号をデータビットに変換させ、データビットの少なくとも一部分をレジスタに、クロック信号のみを使用して、記憶させてもよい。
【００２０】
様々な特徴、性質、および利点は、同様の参照符号が全体にわたって対応して識別する図面と併せて読まれたとき、以下に記載する詳細な説明から明らかになる場合がある。
【図面の簡単な説明】
【００２１】
【図１】ベースバンドプロセッサおよび画像センサを有し、画像データバスおよびマルチモード制御データバスを実装するデバイスを示すブロック図である。
【図２】データシンボル内にクロック情報を埋め込み、それによって、データ送信のために両方のI2Cワイヤ(SDA線およびSCL線)の使用を可能にすることを示す図である。
【図３】埋め込みクロック情報とともにコード変換済みシンボルを作り出す、トランスミッタにおけるデータトランスコーディングの一例を示すブロック図である。
【図４】トランスミッタにおいてビットが遷移番号に変換され、レシーバにおいて遷移番号がビットに変換される一例を示す図である。
【図５】遷移番号とシンボルのシーケンスとの間で変換することの一例を示す図である。
【図６】連続シンボルと遷移番号との間で変換するために使用されてもよい変換関数の一例を示す図である。
【図７】共有バス上で伝送されるシンボルからデコードされたデータをレジスタに書き込むように構成されるレシーバを示す図である。
【図８】図7に対応し、データのシンボルからのデコードと、クロックのシンボル遷移からのリカバリを示すタイミング図である。
【図９】クロックのシンボル遷移からのリカバリに作用するいくつかの状態を示す図である。
【図１０】共有バスの伝送からデコードされたデータを、シンボル遷移からリカバリされたクロックのみを使用しフリーランニングクロックを用いずにレジスタに書き込むように構成されるレシーバを示す図である。
【図１１】12桁の3進数をビットに変換し、シンボル遷移からリカバリされたクロックのみを使用しフリーランニングクロックを用いずにレジスタ書込み動作を実行するように構成されてもよいレシーバの回路を示す図である。
【図１２】図10および図11に示すレシーバおよび回路の動作を示すタイミング図である。
【図１３】受信された伝送から抽出されたクロックを使用し、スレーブデバイスがアウェイクである必要なく伝送からのデータを書き込むことによって、共有バスから伝送を受信するように構成されるCCIeスレーブデバイスの一例を示す図である。
【図１４】本明細書で開示する1つまたは複数の態様によるクロックリカバリ回路の一例を示す図である。
【図１５】図14の例示的なクロックリカバリ回路によって生成されるいくつかの信号のタイミングの一例を示す図である。
【図１６】{T11,T10,...T2,T1,T0}における各遷移がシンボル遷移番号であるものとして、3進数(基底3の数)を2進数に変換することの一般的な例を示す図である。
【図１７】2進数を12桁の3進数に変換するための方法の一例を示す図である。
【図１８】図17の除算およびモジュール演算の合成可能な実装形態の一例を示す図である。
【図１９】本明細書で開示するいくつかの態様に従って適合されてもよい処理回路を採用する装置の一例を示すブロック図である。
【図２０】共有バスを介して伝送を受信し、そのような伝送内のそのようなデータを伝送からリカバリされたクロックのみを使用して、レジスタに記憶するために、スレーブデバイス上で動作可能な方法を示す図である。
【図２１】本明細書で開示するいくつかの態様に従って適合された処理回路を採用する処理を採用する装置のためのハードウェア実装形態の一例を示す図である。
【発明を実施するための形態】
【００２２】
以下の説明では、実施形態の完全な理解をもたらすために、具体的な詳細が与えられる。しかしながら、実施形態がこれらの具体的な詳細なしに実施されてもよいことが、当業者によって理解されよう。たとえば、回路は、不必要な詳細で実施形態を不明瞭にしないために、ブロック図で示される場合がある。他の事例では、よく知られている回路、構造、および技法は、実施形態を不明瞭にしないために、詳細に示されない場合がある。
【００２３】
概要
第1の特徴は、データビットを3進数に変換する方法を提供する。3進数は、次いで、3進数の最上位桁を最初にトランスコーダに送信することによって、複数のシンボルに変換される。複数のシンボルは、次いで、バスを介して送信される。たとえば、複数のシンボルは、カメラ制御インターフェース拡張(CCIe)バスを介して送信されてもよい。
【００２４】
第2の特徴は、埋め込みクロックを受信された伝送から抽出し、単に埋め込みクロックを使用して(フリーランニングクロックを用いず、または余分のクロックサイクルを生成するためのパディングされたフィラー送信を使用せず)、その中のデータをレジスタに記憶するように構成されているレシーバデバイスを提供する。そのために、レシーバデバイスがスリープモードにあるとき(フリーランニングクロックが利用できないとき)でも、レシーバデバイスは情報を受信および記憶することができる。
【００２５】
シンボルコーディングとCCIeバスを介した伝送とを簡略化するための例示的な方法
図1は、ベースバンドプロセッサ104および画像センサ106を有し、画像データバス116およびマルチモード制御データバス108を実装するデバイス102を示すブロック図である。図1はカメラデバイス内のマルチモード制御データバス108を示すが、この制御データバス108が様々な異なるデバイスおよび/またはシステムの中に実装されてもよいことは明らかであろう。画像データは、画像センサ106からベースバンドプロセッサ104に画像データバス116(たとえば、高速差動DPHYリンク)上で送信されてもよい。一例では、制御データバス108は、2つのワイヤ、クロック線(SCL)およびシリアルデータ線(SDA)を備えるI2Cバスであってもよい。クロック線SCLは、すべてのデータ転送をI2Cバス(制御データバス108)上で同期させるために使用されてもよい。データ線SDAおよびクロック線SCLは、すべてのデバイス112、114、および118にI2Cバス(制御データバス108)上で接続される。この例では、制御データは、制御データバス108を介して、ベースバンドプロセッサ104と、画像センサ106ならびに他の周辺デバイス118との間で交換されてもよい。I2C用の標準クロック(SCL)速度は、最高100KHzである。I2C高速モードでは標準クロックSCL速度は、最高400KHzであり、I2C高速モードプラス(Fm+)では、最高1MHzである。I2Cバス上でのこれらの動作モードは、カメラ用途のために使用されるとき、カメラ制御インターフェース(CCI)モードと称する場合がある。
【００２６】
一態様によれば、カメラ動作をサポートするために、改善された動作モード(すなわち、1MHzを上回る)が、マルチモード制御データバス108上で実施されてもよい。I2Cバス上のこの改善された動作モードは、カメラ用途のために使用されるとき、カメラ制御インターフェース拡張(CCIe)モードと称する場合がある。この例では、ベースバンドプロセッサ104はマスタデバイス/ノード112を含み、画像センサ106はスレーブデバイス/ノード114を含み、マスタデバイス/ノード112とスレーブデバイス/ノード114の両方が、制御データバス108に接続された他のレガシーI2Cデバイスの適切な動作に影響を及ぼすことなく、制御データバス108を介したカメラ制御インターフェース拡張(CCIe)モードに従って動作してもよい。一態様によれば、制御データバス108を介したこの改善されたモードは、CCIeデバイスとレガシーI2Cスレーブデバイスとの間にいかなるブリッジデバイスを用いることもなく実施されてもよい。
【００２７】
図2は、データシンボル内にクロックをどのように埋め込み、それによって、データ送信のために両方のI2Cワイヤ(すなわち、SDA線およびSCL線)を使用することを可能にしてもよいかを示す。一例では、クロックは、遷移クロックトランスコーディングの使用を通じて埋め込まれてもよい。遷移クロックトランスコーディングは、引き続くシンボル間に通信リンク206のシグナリング状態の遷移(すなわち、すべてのシンボルサイクルにおけるシンボル値遷移)が存在するように、元のデータをシンボルデータへコード変換することを伴う場合がある。すなわち、物理リンク(ワイヤ)206上で送信されるべきデータ204は、物理リンク206のシグナリング状態が送信シンボル206のすべてのシンボルサイクルにおいて変化するようにコード変換されてもよい。したがって、元のクロック202は、各シンボルサイクルにおけるシンボル状態の変化の中に埋め込まれる。
【００２８】
レシーバは、各シンボル(送信シンボル206の中の)における状態遷移からクロック情報208をリカバリし、次いで、送信シンボル206のトランスコーディングを反転させて、元のデータ210を取得する。このことは、I2Cバスの両方のワイヤ(図1の制御データバス108、SDA線およびSCL線)がデータ情報を送信するために使用されることを可能にする。加えて、もはやクロック信号とデータ信号との間にセットアップタイムおよびホールドタイムを有する必要がないので、シンボルレートを2倍にすることができる。
【００２９】
図3は、コード変換済みシンボル(transcoded symbols)内にクロック信号を埋め込むために、トランスミッタにおいてデータビットをコード変換済みシンボルにコード変換するための方法の一例を示すブロック図である。トランスミッタ300において、入力データビット304は複数桁の3進(基底3)の数に変換され、ここで、各桁は「遷移番号」と称する場合がある。3進数は、次いで、物理リンク302のクロック線SCL312およびデータ線SDA314上で送信される(連続)シンボルのセットに変換される。一例において、バイナリデータの元の20ビットは、12桁の3進数に変換されるためにビット−遷移番号変換器ブロック308に入力される。12桁の3進数の各桁は、「遷移番号」を表す。2つの引き続く遷移番号は、同じ値を有してもよい。各遷移番号は、遷移−シンボルブロック310において、2つの引き続く連続シンボルが同じ値を有しないような連続シンボルに変換される。シンボル値(および、ワイヤ312、314のシグナリング状態)の遷移が連続シンボルのすべてのペアにおけるシンボル間で保証されるので、連続シンボル遷移は、クロック信号を埋め込むように働いてもよい。各連続シンボル316は、次いで、SCL線312およびSDA線314を有するI2Cバスを含んでもよい2ワイヤ物理リンク302を介して送られる。
【００３０】
図4は、トランスミッタ400におけるビットから遷移番号への、次いで、レシーバ420における遷移番号からビットへの変換の一例を示す。この例は、12個の遷移シンボルを使用する2ワイヤシステムに関する送信を示す。トランスミッタ400は、2進情報、ビットを「ビット−12×T」変換器406に供給し、12個のシンボル遷移番号T11〜T0を生成する。レシーバ420は、12個のシンボル遷移番号T11〜T0を受信し、シンボル遷移番号は「12×T−ビット」変換器408に供給され、2進情報(ビット)を取り出す。各遷移(T0〜T11)に対してr個の取り得るシンボル遷移状態があるとき、12個の遷移がr12個の異なる状態を送信することができる。2ワイヤバスの場合、r=22-1である。したがって、遷移T0...T11は、(22-1)12個の異なる状態を有することができるデータを含む。したがって、r=4-1=3、また状態数=(4-1)^12=531441である。
【００３１】
この例において、12個のシンボル遷移番号を使用する2ワイヤシステムの場合、各遷移に対して取り得るシンボル遷移、rは3(=22-1)であることが想定されてもよい。グループの中のシンボル数が12である場合、各Tiを0、1、2として、12桁の3進数(基底3の数)、T11、T10、...、T2、T1、T0が使用されてもよい。たとえば、{T11,T10,...T2,T1,T0}={2,1,0,0,1,1,0,1,0,1,2,1}の場合、3進数は、
2100_1101_01213(3進数)
=2×311+1×310+0×39+0×38
+1×37+1×36+0×35+1×34
+0×33+1×32+2×31+1×30
=416356(0x65A64)である。
【００３２】
このようにして、12個の遷移番号が数に変換されてもよい。3進数2100_1101_01213が、たとえば図3における遷移番号として使用されてもよく、それにより、各整数が連続シンボルにマッピングされてもよく、その逆も同様であることに留意されたい。2100_1101_01213を逆の順序で送信するとき、遷移番号は指数の降順で送信され、すなわち、T11が311によって乗算されるべき桁であり、そのため、それは11乗に関するものであり、以下同様である。
【００３３】
2ワイヤシステムおよび12個のシンボル遷移番号に関して図4に示される例は、nワイヤシステムおよびm個のシンボル遷移番号に一般化されてもよい。1つのT、T0〜Tm-1あたりにr個の取り得るシンボル遷移状態がある場合、m個の遷移がrm個の異なる状態、すなわち、r=2n-1個の状態を送信することができる。したがって、遷移T0...Tm-1は、(2n-1)m個の異なる状態を有することができるデータを含む。
【００３４】
図5は、3進数(遷移番号)502と(連続)シンボル504との間の変換のための方式の一例を示す図500である。3進数、基底3の数は、遷移番号とも呼ばれ、3つの取り得る数字または状態、0、1、または2のうちの1つを有することができる。2つの引き続く3進数において同じ値が現れる場合もあるが、2つの引き続くシンボルは同じ値を有しない。
【００３５】
この変換関数は、図6に例示的に記載される。送信側(TX:TからSへ)において、論理はTtmp=T=0 ? 3:T、およびCs=Ps+Ttmpである。言い換えれば、遷移番号Tは0と比較され、T=0のときにTtmp(Tテンポラリー)は3に等しくなり、それ以外では(Tが0に等しくないとき)TtmpはTに等しくなる。また、現在のシンボル(Cs)は、前のシンボル(Ps)の値+Ttmpになる。たとえば、第1のサイクル506ではTは2であり、そのためTtmpも2であり、Psを1として新しいCsは現在3である。
【００３６】
第2のサイクル508では、次のサイクルにおいて遷移番号1が入力され、遷移番号は3でなく、そのため1としてのTの値が3としての前のシンボルの値に加算される。加算の結果、すなわち、4は3よりも大きいので、ロールオーバされた数0が現在のシンボルになる。
【００３７】
第3のサイクル510では、同じ遷移番号1が入力される。Tが1であるので、Ttmpも1である。変換論理が前のシンボル0に1を加算して、現在のシンボル1を生成する。
【００３８】
第4のサイクル512では、遷移番号0が入力される。変換論理は、Tが0のとき、Ttmpを3に等しくする。そのため、3が前のシンボル1に加算されて現在のシンボル0を生成する(加算の結果、すなわち、4は3より大きいので、ロールオーバされた数0が現在のシンボルになる)。
【００３９】
したがって、2つの引き続く3進数字502が同じ数を有する場合であっても、この変換は、2つの引き続くシンボル数字が異なる状態値を有することを保証する。このため、シンボルのシーケンス504の中の保証されたシンボル遷移が、クロック信号を埋め込むように働いてよく、それにより、I2Cバスの中のクロック線SCLをデータ送信のために解放する。受信側(RX:SからTへ)において、論理は以下のように反転され、すなわち、Ttmp=Cs+4-Ps、およびT=Ttmp=3 ? 0:Ttmpである。
【００４０】
再び図3を参照すると、レシーバ320において、プロセスが反転されて、コード変換済みシンボルをビットに戻す形で変換し、そのプロセスにおいて、シンボル遷移からクロック信号が抽出される。レシーバ320は、SCL線入力324およびSDA線入力326に接続されたI2Cバスであってもよい2ワイヤ物理リンク302を介して、連続シンボルのシーケンス322を受信する。受信された連続シンボル322は、クロック-データリカバリ(CDR)ブロック328に入力されて、クロックタイミングをリカバリするとともにコード変換済みシンボル(S)をサンプリングする。CDR328は、受信シンボルの中のシンボル間遷移からクロック信号336をリカバリしてもよい。このリカバリされたクロック336は、レシーバ構成要素の動作と、抽出されたビットを別個のクロックの必要なしに書き込むこととを可能にするように働いてもよい。シンボル−遷移番号変換器ブロック330は、次いで、各シンボルを、現在のシンボルと直前にくるシンボルとの差を表す一桁の3進数として表現されてもよい遷移番号に変換する。次いで、遷移番号−ビット変換器332は、12個の遷移番号を変換して、12桁の3進数から元のデータの20ビット304'をリカバリする。
【００４１】
本明細書で説明する本技法は、I2C標準バスが提供するとともに本明細書でCCIeモードと称するものを越えて、制御バス108(図1)のリンクレートを高めるために使用されてもよい。一例では、制御データバス108に接続されるマスタノードおよび/またはスレーブノードが、標準I2Cバスを使用して、可能であるものよりも高いビットレートを同じ制御データバス上で達成するために、シンボル送信内にクロック信号を埋め込むトランスミッタおよび/またはレシーバ(図2および図3に示されるような)を実装してもよい。他の実装形態では、異なる数のデータビットが3進数(基底3の記数法)、または異なる数値基底を有する数にエンコードされてもよいことに留意されたい。
【００４２】
図6は、連続シンボルと遷移番号との間の変換を示す図である。この変換は、前の連続シンボル番号(Ps)から現在の連続シンボル(Cs)への各遷移を、遷移番号(T)にマップする。トランスミッタデバイスにおいて、遷移番号は連続シンボルに変換されている。相対的な変換方式が使用されるので、遷移番号は、2つの引き続く連続シンボル604が同じでないことを保証する。
【００４３】
2ワイヤシステムに関する一例では、4つの連続シンボルS0、S1、S2、およびS3に割り当てられた4つの生シンボルがある。4つの連続シンボルに関して、表602は、どのように前の連続シンボル(Ps)に基づいて現在の連続シンボル(Cs)を割り当て、現在の遷移番号(T)に基づいて一時的遷移番号Ttmpを割り当てればよいかを示す。
【００４４】
この例では、遷移番号Csは、次式に従って割り当てられてもよい。
Cs=Ps+Ttmp、
ただしTtmp=T==0 ? 3 : Tである。
言い換えれば、Tが0に等しい場合、Ttmpは3になり、それ以外ではTtmpはTになる。また、Ttmpが計算されると、CsはPs+Ttmpに設定される。さらに、レシーバ端部では、Tをリカバリするために論理が反転され、
Ttmp=Cs+4-PsおよびT=Ttmp==3 ? 0 : Ttmpである。
【００４５】
図16は、{T11,T10,...,T2,T1,T0}内の各Tがシンボル遷移番号であるものとして、3進数(基底3の数)を2進数に変換する一般的な例を示す式1600である。
【００４６】
図17は、2進数(ビット)を12桁の3進数(基底3の数)に変換するための例示的方法を示す式1700である。各桁は、より上位の桁の計算からの剰余(モジュロ演算の結果)を、3の桁数の累乗で除算し、小数点数を廃棄することによって計算されてもよい。
【００４７】
図18は、図17の除算およびモジュール演算の1つの可能な実装形態の一例を示す数学的表現1800であり、それは、任意の市販合成ツールによって合成可能であってもよい。
【００４８】
埋め込まれた受信クロックを使用するデータの抽出
図7は、図3のレシーバ320と同等であってもよいレシーバ700の一例を示すブロック図である。レシーバ700は、図3における線324および326に相当する場合がある信号ワイヤ704、706を含む、共有バスから受信されたシンボルのシーケンス702からデータ724を抽出するように構成されてもよい。CDR回路708は、サンプリングされたシンボル720と、シンボルのシーケンス702を表すマルチビット信号718の中に提供されているタイミング情報から導出される受信クロック716とを提供してもよい。受信クロック716はまた、シンボルのシーケンス702からデータを抽出するデコード論理710、712にタイミング情報を提供するために使用されてもよい。
【００４９】
いくつかの事例では、受信クロック716が、抽出されたデータ724をレジスタ714に、シンボルのシーケンス702の中のシンボル間の遷移から導出されるクロックサイクルのみを使用して、書き込むために使用されるとき、問題が存在する場合がある。受信された伝送702内でのシンボル間遷移から抽出される受信クロック716は、データ724をデコードしデータ724をレジスタ714に記憶するのに十分なクロックサイクルを供給しない場合がある。最終のシンボル間遷移の後、抽出されたビットをレジスタ714に記憶用として書き込むために、余分なクロックサイクルが必要となる場合がある。いくつかの事例では、十分なクロックサイクルを供給するために、フリーランニングクロックが使用されてもよい。そのようなフリーランニングクロックが存在することは、スレーブデバイスが伝送の前にアウェイクであることをマスタデバイスが保証する必要があることを求める場合があるので、フリーランニングクロックの使用は望ましくない場合がある。図8に関して説明した条件を含むいくつかの条件のもとでは、抽出されたクロックは、データをシンボルのシーケンス702から抽出しデータをレジスタ714に書き込むには不十分な場合がある。
【００５０】
図8は、シンボル内にエンコードされたデータを抽出することと、クロックのシンボル遷移からのリカバリとに関連したタイミングを示すタイミング図800である。開始指標(S)802によって先行されると、シンボルのシーケンス806は、2線バス704および706を通じて送信される。シンボルのシーケンス702を表してもよいSI信号718とシンボル間の対応する遷移722との間の関係が、図800に示される。レシーバクロック(RXCLK)716が、シンボル間遷移722から抽出される。初期クロックパルス806は、「開始状態」と称する場合もある開始指標(S)802に対応する。RXCLK716上の複数のパルスC1、C2、...、C12は、2つの同じ連続シンボルが反復しないので、引き続くシンボルS11、S10、S9、...、S0 718の間の遷移(T11,T10,T9...T0)722から抽出されてもよい。複数のパルスは、エンコードされたシンボル間の第1の遷移に対応する第1のパルス(C1)808で開始するものと見なされてもよい。
【００５１】
最後から2番目のクロックサイクル(C11)810の後、かつエンコードされたシンボル間の遷移に対応する最後のクロックサイクル(C12)812の前に、最終または最後のシンボル(S0)804は受信され、最後のクロックサイクル(C12)812が発生した後に20個の生データビット816が作り出されてもよいように、残りのシンボルS11...S1と組み合わされる。元のビットがデコードされて生データビット816を取得できるのが、最後のシンボル(たとえば、第12のシンボルS0)の受信の後のみであることに留意されたい。最後のクロックサイクル814は、生データビット816、またはそれの一部分をレジスタ714に記憶するためのものである。
【００５２】
一例では、受信されるシンボルの数は12個である。12個のシンボルは、情報としての20ビット(たとえば、16個のデータビットおよび4個の制御ビットを含む)をエンコードしてもよい。他の例では、異なる数のシンボルが、異なる数のビットをエンコードするために使用されてもよい。
【００５３】
図9は、シリアルバスの2つの線704および706の異なるシグナリング状態に対応する異なるリカバリされたクロック状態を示す図面900である。4つの異なるケース912、914、916、918が提示される。4つのケース912、914、916、918の各々では、最終のシンボル(S0)が、最後のクロック(第12)のクロックパルス902上で受信される。4つのケース912、914、916、918は、最終のシンボルの4つの取り得る値を包含する。第4のケース918では、最終のシンボルに対応する2本の線704および706のシグナリング状態は、セットアップ状態を終結させる間の2本の線704および706のシグナリング状態と同一である。したがって、最終のシンボルがその間に送信されるシンボル期間の後、2本の線704および706のシグナリング状態の上に遷移が観測されない。第13のクロックパルス904は、最初の3つのケース912、914、916において生成され、受信されたデータをレジスタに書き込むために使用されてもよい。13番目のクロックパルスは第4のケース918において存在せず、レシーバが第13のクロックパルス904の利用可能性に依拠する場合、レシーバは、受信されたデータをレジスタに確実に書き込むことを妨げられる場合がある。
【００５４】
保証されたレジスタ書込み信号の生成
本明細書で開示するいくつかの態様によれば、また図10〜図12に示すように、シンボルのシーケンスからデコードされたデータがCCIeレシーバの中のレジスタに確実に書き込まれることを可能にするために、ワードマーカが生成されてもよい。図10は、データをSI信号1020からデコードするために図11の回路1100、1110、および/または1130を使用して適合されてもよいレシーバ1000の一例を示すブロック図である。図12に提供されるタイミング図1200は、レシーバ1000および回路1100、1110、1130の動作を示す。SI信号1020は、RXCLK1016のサンプリングエッジが発生する前に、S−Tデコーダ1010、T−ビットデコーダ1012および、いくつかの事例では、レジスタデータデコーダ1114の組合せによって処理されてもよい。したがって、アドレス指定されたレジスタ1113は、シリアルバスから受信された信号に関するサンプリングを実行し、サンプリングは、デコードされたデータ上で実行される。
【００５５】
レシーバ1000は、図3における線324および326に相当してもよい信号ワイヤ1004、1006を含む共有バスから受信されたシンボルのシーケンス1002から、データを抽出するように構成されてもよい。データは、レジスタ1014に、CDR回路1008によって受信されたデータからリカバリされる受信クロック1016を使用して、書き込まれてもよい。フリーランニングクロックは必要でない。受信クロック(RXCLK)1016はまた、シンボルのシーケンス1002からデータを抽出するデコード論理1010、1012にタイミング情報を供給するために使用されてもよい。この回路では、シンボル−遷移番号変換器1010が、SI信号1020を受信および処理する。
【００５６】
レシーバ1000は、図9に示す第4のケース918に含めて、遷移番号位置へのインデックス(DNCNT)1123を維持し、受信されたデータ1024をレジスタ1014に書き込むことを一貫して可能にするワードマーカを作り出すために、1つまたは複数のカウンタを採用してもよい。レジスタ書込み動作は、フリーランニングクロックまたは他のさらなるクロックをスレーブデバイス上に必要とせずに、また単に余分なクロックサイクルを利用可能にする目的で未使用ビット/パディングビットを挿入することを必要とせずに、最後のリカバリされたクロックRXCLK1016のサイクル上で実行されてもよい。
【００５７】
続けて図10を参照すると、図11に示すいくつかの回路1100、1110、1130は、12桁の3進数をビットに変換し、抽出されたビットのレジスタ書込み動作を、3進数に対応する伝送からリカバリされたクロック1016のみを使用して、実行するように適合されてもよく、または構成されてもよい。再び図3を参照すると、20ビットとしての元のデータ304は3進遷移番号に変換され、次いで、この遷移番号は、12個の連続シンボル316に変換される(すなわち、コード変換される)。コード変換済みシンボル316は、バス302上で送信される。受信デバイス320(たとえば、スレーブデバイス)は、伝送316を受信し、クロックリカバリおよびシンボルサンプリングを実行して、コード変換済みシンボルを3進数へ戻す形で変換し、3進数は、次いで、回路332などの1つまたは複数の回路に供給され、1つまたは複数の回路は、3進数を元の20ビットの2進データに戻す形で変換する。
【００５８】
第1の回路1100は、20個の生ビット1108を12個の遷移番号から抽出するように適合されてもよい。3進法の重み1102が、マルチプレクサ1104を制御するためのDNCNT1123を使用して選択され、ここで、DNCNT1123は遷移番号位置を表す。12個の遷移番号は、遷移番号のシーケンスにおける(たとえば、到達時間に関するシーケンスにおける)それらの対応する位置に基づいて決定された順序で処理されてもよく、そうした位置はDNCNT1123の値によって示されてもよく、そうした値はカウンタ、レジスタ、または他のインデックス回路によって提供されてもよい。3進法の重み1102は、20個の生ビット1108が抽出できるように3進法の重み1102をシリアル化するために使用される単一出力マルチプレクサ1104への入力として提供される。20個の生ビット1108は、16個のデータビットおよび4個の制御ビットを含んでもよい。第2のマルチプレクサ1106は、Ti×3i演算用の乗算器として機能し、図10のシンボル−3進ブロック1010からの2ビット出力を表す信号1022によってトリガおよび/または制御される。RXCLK1016によってトリガされる第1のフリップフロップ1125は、3進数が3進法の重み1102から生ビット1108にデコードまたは変換されるとき、一時的ビットを累積するために使用される。最後から2番目のクロックパルス(C11)1217の後に受信される最後のシンボル(S0)1221(図12を参照)の発生が、第2のマルチプレクサ1106によって出力される最後の3進法の重み1103からのビットに加算されるために集められた一時的ビットを出力するように、第1のフリップフロップ1125をトリガすることに留意されたい。したがって、生ビット1108(たとえば、図10におけるデータ1024)は有効な値を保持し、最後から2番目のクロックサイクル(C11)1217の後、ただし最後のクロックサイクル(C12)1219の前に、最後のシンボルS0 1221が入力された後に利用可能である。
【００５９】
第2の回路1110は、すべてのシンボルが受信されたとき、ワードマーカ1122を取得するように働いてもよい。レシーバクロック1120の開始指標1118を検出すると、ダウンカウンタの値(DNCNT)1123は、最後から2番目のクロック(C11)1217において0xB hexから0(0x0 hex)に、次いで、最後のクロック(C12)1219において0xF hexに、RXCLK1016上の各パルスとともに減少する。ワードマーカ1122上のパルス1215は、ダウンカウンタが0x0 hexに到達するとトリガされる。ワードマーカ1122は、データビットをレジスタに書き込むことを可能にするための、第3の回路1130への入力として働く。DNCNT1123はまた、入力「B」(最初の3進法の重み1105)から始めて入力「0」(最後の3進法の重み1103)までカウントダウンして、マルチプレクサ1104からの入力信号を選択するように働くことに留意されたい。
【００６０】
第3の回路1130は、デコードされたビットを第2のフリップフロップまたはレジスタ1113に書き込むように構成される回路の一例を示す。アドレスデコーダ1112は、アドレス情報としての17ビットを受信し、それをデコードする。同様に、データデコーダ1114は、20個の生ビット1108を受信するとともにそれらをデコードして、たとえば、4個の制御ビットが除去された後、16個のデータビットを取得する。ワードマーカ1122のパルス1215がトリガされアドレスがデコードされると、データデコーダ1114によって提供されるデコードされたデータは、フリップフロップまたはレジスタ1113に記憶されてもよい。この第3の回路1130は、第2のフリップフロップまたはレジスタ1113への書込みを最後のクロックサイクル(C12)1219上でトリガするために、ワードマーカ1122を効果的に使用する。
【００６１】
最後から2番目のクロックサイクル(C11)1217上で、DNCNT1123は0xB hexから0x0 hexへデクリメントされており、ワードマーカ1122は論理ローから論理ハイへ遷移する(すなわち、パルス1215の開始)。最後のクロックサイクル(C12)1219において、第2のフリップフロップまたはレジスタ1113は有効化され、デコードされたデータビットを現在搬送している16ビットバスを記憶する。
【００６２】
この手法は、受信されたデータビットをフリップフロップまたはレジスタ1113に、スレーブデバイス上で動作しているクロックを用いずに記憶することを可能にする。したがって、スレーブデバイスは、マスタデバイスに通知することなく、スリープモードに入ることができる。すなわち、スレーブデバイスがスリープモードに入るとき、マスタデバイスに知らせるための別個のメカニズムは必要でない(たとえば、「スレーブスリープリクエスト」はスレーブデバイスから必要でない)。埋め込みクロックが、スレーブデバイスが送信されたビットを受信することを可能にし、第3の回路1130が、スレーブデバイスがアウェイクであることを必要とせずにさらなるクロックを生成するので、スレーブデバイスが休止状態であり、またはスリープモードにあるときでも、マスタデバイスは、データをスレーブデバイスレジスタに書き込むことができる(たとえば、フリーランニングクロックの必要なしに)。いくつかの実装形態では、スレーブデバイスは、一部またはすべてのそれの機能を条件付きでウェイクアップさせるために、書き込まれたレジスタデータを使用してもよい。したがって、マスタデバイスは、データをスレーブデバイスに送信し、または書き込む前に、スレーブデバイスがアウェイクまたはスリーピングであるかどうかを知っている必要がない。さらに、スレーブデバイスは、マスタデバイスに通知することなく、独立にスリープモードに入ってもよい。
【００６３】
図12のタイミング図1200は、受信されたデータのレジスタへの、リカバリされたクロックのみを使用する書込み動作を完了するために使用される、シンボル内でエンコードされたデータの受信、クロックのシンボル遷移からのリカバリ、ならびに生成された信号のタイミングを示す。開始指標(S)1206によって先行されると、シンボルのシーケンス1020は、2線バス1004、1006を通じて送信される。シンボルのシーケンス1020およびシンボル間の対応する遷移1022が示される。レシーバクロック1016は、シンボル間遷移1022から抽出される。初期クロックパルス1211は、I2C規格に記載される開始状態などの開始指標または開始状態に対応する。複数のクロックパルスC1、C2、...、C12は、2つの同じ連続シンボルが反復しないので、引き続くシンボルS11、S10、S9、...、S0の間の遷移(T11,T10,T9...T0)から抽出されてもよい。
【００６４】
この例では、DNCNT1123は、各々がレシーバクロックRXCLK1016のローからハイへの遷移から、ローからハイへの遷移までのサイクルに対応する、12個のサイクルをカウントダウンするために使用される。最初のクロックサイクル1213が検出された後、最後のサイクル1219が検出されるまで、DNCNT1123はデクリメントされる。DNCNT1123が0x0 hexに到達すると、パルス1215がWORD信号1122上でトリガされる。
【００６５】
最後から2番目のクロックサイクル(C11)1217の後、かつ最後のクロックサイクル(C12)1219の前に、最終または最後のシンボル(S0)1221が受信され、最後のクロックサイクルC12 1219が発生したときに生データビット1108が利用可能となるように、残りのシンボルS11...S1と組み合わされる。元のビットがデコードされて生データビット1108を取得することができるのが、最後のシンボル(たとえば、第12のシンボルS0)の受信の後であることに留意されたい。最後のクロックサイクル1219は、次いで、生データビット1108、またはそれの一部分をレジスタ1113に記憶するために使用される。このことは、単に埋め込みクロック(たとえば、シンボル間遷移からリカバリされたクロック)を使用しレシーバ(スレーブ)デバイスにおいて外部クロックまたはフリーランニングクロックを使用することなく、データ1222を受信し、デコードし、かつ記憶することを可能にする。このことは、パディングすることまたは余分なシンボルもしくはビットを挿入することの必要なく達成されることに留意されたい。一例では、受信されるシンボルの数は12個である。12個のシンボルは、情報としての20ビット(たとえば、16個のデータビットおよび4個の制御ビットを含む)をエンコードしてもよい。他の例では、異なる数のシンボルが、異なる数のビットをエンコードするために使用されてもよい。
【００６６】
図13は、受信された伝送から抽出されたクロックを使用し、スレーブデバイスがアウェイクである必要なく伝送からのデータを書き込むことによって、共有バスから伝送を受信するように構成されてもよいCCIeスレーブデバイス1302の一例を示すブロック図1300である。スレーブデバイス1302は、共有バス1304および1306に接続されたレシーバ回路1308およびトランスミッタ回路1310を含む。制御論理1314は、スレーブデバイスが共有バス1304および1306を介して受信または送信するように、レシーバ回路1308および/またはトランスミッタ回路1310を選択的に活動化/非活動化させるように働いてもよい。スレーブデバイス1302はまた、スレーブデバイスからの伝送用の情報を取り込み、または集めるセンサデバイスを含んでもよい。
【００６７】
レシーバ回路1308は、本明細書で開示するいくつかの態様に従って、レシーバクロック(RXCLK)をシンボル間遷移から抽出してもよいクロックデータリカバリ回路1312を含んでもよい。レシーバ回路1308はまた、共有バスを介して受信されたデータをデコードおよび抽出し、そのようなデータをレジスタ1318に、受信されたデータ伝送から抽出されたクロックのみを使用して、抽出されたクロックの遅延を挿入することなく記憶するために、第1の回路1100、第2の回路1110、および/または第3の回路1130(図11)のうちの1つまたは複数を含んでもよい。第1の回路1100、第2の回路1110、および/または第3の回路1130(図11)は、1つの回路に統合されてもよく、または異なるモジュールもしくはサブシステムの間で分散されてもよいことに留意されたい。
【００６８】
クロック生成器1320は、スレーブデバイス1302内に存在してもよいが、そのスレーブデバイスおよび/または他のスレーブデバイスの動作からのデータ、たとえば、センサデバイスによる動き検出または温度測定の送信のみのために使用される。
【００６９】
図14は、本明細書で開示する1つまたは複数の態様によるCDR回路1400の一例を示し、図15は、CDR回路1400によって生成されるいくつかの信号のタイミングの一例を示す。CDR回路1400は、送信されるシンボルのシーケンスの中にクロック情報が埋め込まれているCCIe送信方式において使用されてもよい。CDR回路1400は、CDR328(図3)またはCDR1312(図13)として使用されてもよい。CDR回路1400は、CCIe2線バス324および326から受信されるシンボル1510、1512のためのセットアップタイムを最大にするように構成されたアナログ遅延要素1408a、1412および1426を含む。CDR回路1400は、比較器1404、セットリセットラッチ1406、第1の遅延素子1408aを含むワンショット素子1408、第2のアナログ遅延素子1412、第3のアナログ遅延素子1426、およびレベルラッチ1410を含む。比較器1404は、シンボル1510および1512のストリームを含む入力信号(SI)1420を、SI信号1420のレベルラッチされたインスタンスである信号(S)1422と比較してもよい。比較器は、比較信号(NE)1414を出力する。セットリセットラッチ1406は、比較器1404からNE比較信号1414を受信し、比較信号のフィルタ処理されたバージョン(NEFLT)1416を出力する。第1のアナログ遅延デバイス1408aは、NEFLT信号1416としてのフィルタ処理されたバージョンを受信してもよく、NEFLT信号1416の遅延されたインスタンスである信号(NEDEL信号)1428を出力する。動作において、ワンショット論理1408は、NEFLT信号1416および遅延されたNEDEL信号1428を受信し、NEFLT信号1416によってトリガされたパルス1506を含む信号(NE1SHOT)1424を出力する。
【００７０】
第2のアナログ遅延素子1412は、NE1SHOT信号1424を受信するとともにIRXCLK信号1418を出力し、ここで、IRXCLK信号1418は、第3のアナログ遅延素子1426を使用して出力クロック信号1430を生成するために使用されてもよい。出力クロック信号1430は、S信号1422においてラッチされたシンボルをデコードするために使用されてもよい。セットリセットラッチ1406は、IRXCLK信号1418の状態に基づいてリセットされてもよい。レベルラッチ1410は、SI信号1420を受信するとともにレベルラッチされたS信号1422を出力し、ここで、レベルラッチ1410は、IRXCLK信号1418によって有効化される。
【００７１】
第1のシンボル値S1 1510が受信されると、それはSI信号1420にその状態を変化させることを開始させる。ワイヤ間スキュー、信号オーバーシュート、信号アンダーシュート、クロストークなどによって、前のシンボルS0 1502から第1のシンボルS1 1510への信号遷移において中間状態または不定状態が起こる場合がある可能性に起因して、SI信号1420の状態はS1信号1510の状態と異なってもよい。NE信号1414は、比較器1404がSI信号1420とS信号1422との間で異なる値を検出するとハイに遷移し、セットリセットラッチ1406が非同期的にセットされることを引き起こす。したがって、NEFLT信号1416はハイに遷移し、このハイ状態は、IRXCLK1418がハイになるときにセットリセットラッチ1406がリセットされるまで維持される。IRXCLK1418は、NEFLT信号1416の立上りに遅れて応答してハイ状態に遷移し、ここで、遅延は、アナログ遅延要素1412に部分的に起因する。
【００７２】
SI信号1420上の中間状態は、無効データとして見なされてもよく、シンボルS0 1502のシンボル値としてとしての短い期間を含んでもよく、短い時間期間にわたって比較器1404の出力がロー状態に向かって戻るとき、これらの中間状態は、NE信号1414においてスパイクすなわち遷移1538を引き起こす場合がある。NEFLT信号1416を出力する前に、セットリセットラッチ1406がNE信号1414上のスパイク1538を効果的にブロックおよび/または遮断するので、スパイク1538は、セットリセットラッチ1406によって出力されるNEFLT信号1416に影響を及ぼさない。
【００７３】
ワンショット回路1408は、NEFLT信号1416の立上りエッジの後、NE1SHOT信号1424においてハイ状態を出力する。ワンショット回路1408は、NE1SHOT信号1424がロー状態に戻る前に、遅延P期間1516にわたって、NE1SHOT信号1424をハイ状態に維持する。NE1SHOT信号1424上で得られたパルス1506は、アナログ遅延S素子1412によって引き起こされた遅延S期間1518の後、IRXCLK信号1418に伝搬する。IRXCLK信号1418のハイ状態は、セットリセットラッチ1406をリセットし、NEFLT信号1416はローに遷移する。IRXCLK信号1418のハイ状態はまた、レベルラッチ1410を有効化し、SI信号1420の値がS信号1422として出力される。
【００７４】
比較器1404は、S1シンボル1510に対応するS信号1422がSI信号1420のシンボルS1シンボル1510と一致するときを検出し、比較器1404の出力がNE信号1414をローに駆動する。NE1SHOT信号1424上のパルス1540の立下りエッジは、アナログ遅延S素子1412によって引き起こされた遅延S期間1518の後、IRXCLK信号1418に伝搬する。新しいシンボルS2 1512が受信されると、IRXCLK信号1418の立下りエッジの後、SI信号1420は、シンボルS2 1512に対応する値へのそれの遷移を始める。
【００７５】
一例では、出力クロック信号RXCLK1430は、第3のアナログ遅延素子1426によって遅延R期間1520だけ遅延される。出力クロック信号1430およびS信号1422(データ)は、デコード回路1100、1110、および/または1130(図11)に供給されてもよい。デコード回路1100、1110、および/または1130(図11)は、出力クロック信号1430またはそれの派生信号を使用して、S信号1422上のシンボルをサンプリングしてもよい。
【００７６】
示されている例では、様々な遅延1522a〜1522dは、様々な回路の切替え時間および/またはコネクタを原因とする立上り時間に起因する場合がある。デコード回路によるシンボル取り込みのための適切なセットアップタイムを与えるために、シンボルサイクル期間tSYMに関するタイミング制約が次のように定義される場合があり、
tdNE+tdNEFLT+td1S+遅延S+遅延P+max(tHD,tREC-tdNE)<tSYM
また、セットアップタイムtSUに関するタイミング制約は、次のようになる場合がある。
最大スキュー仕様+tSU<tdNE+td1S+遅延S、
ただし、
tsym:1シンボルサイクル期間、
tSU:IRXCLK1418の立上り(リーディング)エッジを基準とするレベルラッチ1410のためのSI1420のセットアップタイム、
tHD:IRXCLK1418の立下り(トレーリング)エッジを基準とするレベルラッチ1410のためのSI1420のホールドタイム、
tdNE:比較器1404の伝搬遅延、
tdRST:IRXCLK1418の立上り(リーディング)エッジからのセットリセットラッチ1406のリセット時間。
【００７７】
レシーバデバイス(たとえば、スレーブデバイス1302)がCCIeエンコードされたシンボルをデコードでき、得られたビットを自走システムクロックを使用することなくレジスタに記憶できることを確実にするために、CDR回路1400はアナログ遅延回路1408a、1412および1426を採用する。したがって、CCIeスレーブデバイス1302(図13を参照)は、CCIe READコマンドに応答するとき、送信クロック1320をシステムクロックとして使用するように適合されてもよく、CDR生成クロック1430は、データを受信しているとき、またはスレーブデバイスが休止状態にあるとき、使用されてもよい。
【００７８】
図19は、本明細書で開示する1つまたは複数の機能を実行するように構成されてもよい処理回路1902を採用する装置のためのハードウェア実施態様の簡略化された例を示す概念図1900である。本開示の様々な態様によれば、本明細書で開示するような要素、または要素の任意の部分、または要素の任意の組合せは、処理回路1902を使用して実装されてもよい。処理回路1902は、ハードウェアモジュールとソフトウェアモジュールの何らかの組合せによって制御される1つまたは複数のプロセッサ1904を含んでもよい。プロセッサ1904の例は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、ステートマシン、シーケンサ、ゲート論理、個別ハードウェア回路、および本開示全体にわたって記載された様々な機能を実施するように構成された他の適切なハードウェアを含む。1つまたは複数のプロセッサ1904は、特定の機能を実施し、ソフトウェアモジュール1916のうちの1つによって構成され、増強され、または制御されてもよい専用プロセッサを含んでもよい。1つまたは複数のプロセッサ1904は、初期化中にロードされたソフトウェアモジュール1916の組合せを通じて構成されてもよく、動作中に1つまたは複数のソフトウェアモジュール1916のローディングまたはアンローディングによってさらに構成されてもよい。
【００７９】
図示の例では、処理回路1902は、バス1910によって概略的に表されるバスアーキテクチャを用いて実装されてもよい。バス1910は、処理回路1902の特定の適用例および全体的な設計制約に応じて、任意の数の相互接続するバスおよびブリッジを含んでもよい。バス1910は、1つまたは複数のプロセッサ1904およびストレージ1906を含む様々な回路を互いにリンクさせる。ストレージ1906は、メモリデバイスおよび大容量記憶デバイスを含んでもよく、本明細書ではコンピュータ可読媒体および/またはプロセッサ可読媒体と称する場合がある。バス1910はまた、タイミングソース、タイマ、周辺装置、電圧調整器、および電力管理回路などの様々な他の回路をリンクさせてもよい。バスインターフェース1908は、バス1910と1つまたは複数のトランシーバ1912との間のインターフェースを提供してもよい。トランシーバ1912は、処理回路によってサポートされるネットワーキング技術ごとに提供されてもよい。場合によっては、複数のネットワーキング技術が、トランシーバ1912の中に見出される回路または処理モジュールの一部または全部を共有してもよい。各トランシーバ1912は、伝送媒体を介して様々な他の装置と通信するための手段を提供する。装置の性質に応じて、ユーザインターフェース1918(たとえば、キーパッド、ディスプレイ、スピーカ、マイクロフォン、ジョイスティック)が設けられてもよく、直接またはバスインターフェース1908を通じてバス1910に通信可能に接続されてもよい。
【００８０】
プロセッサ1904は、バス1910を管理すること、およびストレージ1906を含む場合があるコンピュータ可読媒体に記憶されたソフトウェアの実行を含む場合がある一般的な処理を担当してもよい。この点で、プロセッサ1904を含む処理回路1902は、本明細書で開示する方法、機能および技法のうちのいずれかを実装するために使用されてもよい。ストレージ1906は、ソフトウェアを実行するとき、プロセッサ1904によって操作されるデータを記憶するために使用されてもよく、ソフトウェアは、本明細書で開示する方法のうちの任意の1つを実施するように構成されてもよい。
【００８１】
処理回路1902の中の1つまたは複数のプロセッサ1904は、ソフトウェアを実行してもよい。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、または他の名称で呼ばれるかどうかにかかわらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行スレッド、プロシージャ、関数、アルゴリズムなどを意味するように広く解釈されるものとする。ソフトウェアは、コンピュータ可読の形でストレージ1906の中または外部コンピュータ可読媒体の中に常駐してもよい。外部コンピュータ可読媒体および/またはストレージ1906は、非一時的コンピュータ可読媒体を含んでもよい。非一時的コンピュータ可読媒体は、例として、磁気記憶デバイス(たとえば、ハードディスク、フロッピーディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、「フラッシュドライブ」、カード、スティック、またはキードライブ)、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、リムーバブルディスク、およびコンピュータがアクセスし読み取ってもよいソフトウェアおよび/または命令を記憶するための任意の他の適切な媒体を含む。コンピュータ可読媒体および/またはストレージ1906はまた、例として、搬送波、伝送線路、および、コンピュータがアクセスし読み取ってもよいソフトウェアおよび/または命令を送信するための任意の他の適切な媒体を含んでもよい。コンピュータ可読媒体および/またはストレージ1906は、処理回路1902の中に存在するか、プロセッサ1904の中に存在するか、処理回路1902の外部に存在するか、または処理回路1902を含む複数のエンティティにわたって分散されてもよい。コンピュータ可読媒体および/またはストレージ1906は、コンピュータプログラム製品で実施されてもよい。例として、コンピュータプログラム製品は、パッケージング材料の中のコンピュータ可読媒体を含んでもよい。当業者は、特定の適用例および全体的なシステムに課された全体的な設計制約に応じて、本開示全体にわたって提示された記載の機能を最もよく実装する方法を認識されよう。
【００８２】
ストレージ1906は、本明細書でソフトウェアモジュール1916と称する場合がある、ロード可能なコードセグメント、モジュール、アプリケーション、プログラムなどにおいて維持および/または編成されるソフトウェアを維持してもよい。ソフトウェアモジュール1916の各々は、処理回路1902にインストールまたはロードされ、1つまたは複数のプロセッサ1904によって実行されるとき、1つまたは複数のプロセッサ1904の動作を制御するランタイムイメージ1914に寄与する命令およびデータを含んでもよい。実行されるとき、いくつかの命令は、処理回路1902に、本明細書で説明するいくつかの方法、アルゴリズム、およびプロセスに従って機能を実行させてもよい。
【００８３】
ソフトウェアモジュール1916の一部は、処理回路1902の初期化中にロードされてもよく、これらのソフトウェアモジュール1916は、本明細書に開示する様々な機能の実行を可能にするように処理回路1902を構成してもよい。たとえば、いくつかのソフトウェアモジュール1916は、プロセッサ1904の内部デバイスおよび/または論理回路1922を構成してもよく、トランシーバ1912、バスインターフェース1908、ユーザインターフェース1918、タイマ、数学的コプロセッサなどの外部デバイスへのアクセスを管理してもよい。ソフトウェアモジュール1916は、割込みハンドラおよびデバイスドライバと対話し、処理回路1902によって提供される様々なリソースへのアクセスを制御する制御プログラムおよび/またはオペレーティングシステムを含んでもよい。リソースは、メモリ、処理時間、トランシーバ1912へのアクセス、ユーザインターフェース1918などを含んでもよい。
【００８４】
処理回路1902の1つまたは複数のプロセッサ1904は、多機能であってもよく、それによって、ソフトウェアモジュール1916の一部は、異なる機能または同じ機能の異なるインスタンスを実行するようにロードおよび構成される。1つまたは複数のプロセッサ1904は、さらに、たとえば、ユーザインターフェース1918、トランシーバ1912、およびデバイスドライバからの入力に応答して開始されるバックグラウンドタスクを管理するように適合されてもよい。複数の機能の実行をサポートするために、1つまたは複数のプロセッサ1904は、マルチタスク環境を提供するように構成されてもよく、それにより、複数の機能の各々が、必要または要望に応じて、1つまたは複数のプロセッサ1904によってサービスされるタスクのセットとして実装される。一例では、マルチタスク環境は、異なるタスク間でプロセッサ1904の制御を渡す時分割プログラム1920を使用して実装されてもよく、それにより、各タスクは、任意の未処理動作が完了すると、および/または割込みなどの入力に応答して、時分割プログラム1920に1つまたは複数のプロセッサ1904の制御を戻す。タスクが1つまたは複数のプロセッサ1904の制御を有するとき、処理回路は、事実上、制御しているタスクに関連した機能によって対処される目的に事実上特化される。時分割プログラム1920は、オペレーティングシステム、ラウンドロビンベースで制御を移すメインループ、機能の優先順位付けに従って1つもしくは複数のプロセッサ1904の制御を割り振る機能、および/または、1つもしくは複数のプロセッサ1904の制御を処理機能に提供することによって外部イベントに応答する割込み駆動のメインループを含んでもよい。
【００８５】
図20は、共有バスを介して伝送を受信し、そのような伝送内のそのようなデータを伝送からリカバリされたクロックのみを使用してレジスタに記憶するために、スレーブデバイス上で動作可能な方法のフローチャート2000である。たとえば、方法は、図13におけるレシーバデバイスによって実施されてもよい。
【００８６】
ブロック2002において、複数のシンボルが共有バスを介して受信されてもよい。共有バスは、CCIeバスであってもよい。シンボルは、2つの連続シンボルが同じ値を有しないようにクロックサイクルごとに遷移してもよい。
【００８７】
ブロック2004において、複数のシンボルのシンボル間遷移の中に埋め込まれているクロック信号が抽出される。
【００８８】
ブロック2006において、複数のシンボルは、遷移番号に変換されてもよい。遷移番号は、12桁の3進数であってもよい。
【００８９】
ブロック2008において、遷移番号は、データビットに変換されてもよい。遷移番号は、クロック信号の最後から2番目のクロックサイクルと最後のクロックサイクルとの間でデータビットに変換されてもよい。
【００９０】
ブロック2010において、データビットの少なくとも一部分は、1つまたは複数のレジスタにクロック信号のみを使用して、記憶されてもよい。レシーバデバイスは、データビットの少なくとも一部分を受信してもよく、それを1つまたは複数のレジスタに、局所的なフリーランニングクロックを使用することなく書き込んでもよい。レシーバデバイスは、データビットの少なくとも一部分を受信してもよく、それを1つまたは複数のレジスタに、レシーバがスリープモードにある間に書き込んでもよい。データビットの少なくとも一部分は、1つまたは複数のレジスタに、クロック信号の最初のサイクルを検出するとダウンカウンタを開始することと、ダウンカウンタが事前定義された値に到達したときにマーカをトリガすることと、データビットの少なくとも一部分をレジスタに記憶するためにマーカを使用することとによって書き込まれる。クロック信号の最終のクロックサイクルに到達したとき、事前定義された値が生じてもよい。データビットの少なくとも一部分は、クロック信号の最後のクロックサイクルにおいてレジスタに記憶されてもよい。
【００９１】
一例では、レシーバデバイスは、共有バスに接続されているいかなる他のデバイスにも通知することなく、独立にスリープモードに入ってもよい。
【００９２】
図21は、処理回路2102を採用する装置のためのハードウェア実装の簡略化された例を示す図2100である。処理回路は、一般に、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、シーケンサ、およびステートマシンのうちの1つまたは複数を含んでもよいプロセッサ2116を有する。処理回路2102は、バス2120によって概略的に表されるバスアーキテクチャを用いて実現されてもよい。バス2120は、処理回路2102の特定の適用例および全体的な設計制約に応じて、任意の数の相互接続するバスおよびブリッジを含んでもよい。バス2120は、プロセッサ2116、モジュールまたは回路2104、2106、2108、および2110、シリアルバス2114のコネクタまたはワイヤを介して通信するように構成可能なラインインターフェース回路2112、シンボル/3進変換回路と協働する1つまたは複数のレジスタ2122、ならびにコンピュータ可読記憶媒体2118によって表される、1つもしくは複数のプロセッサおよび/またはハードウェアモジュールを含む様々な回路を互いにリンクする。バス2120はまた、タイミングソース、周辺装置、電圧調整器、および電力管理回路などの様々な他の回路をリンクさせてもよく、これらの回路は当技術分野でよく知られており、したがって、これ以上説明しない。
【００９３】
プロセッサ2116は、コンピュータ可読記憶媒体2116に記憶されたソフトウェアの実行を含む全体的な処理を担当する。ソフトウェアは、プロセッサ2116によって実行されるとき、処理回路2102に、任意の特定の装置に対して上記で説明した様々な機能を実行させる。コンピュータ可読記憶媒体2118はまた、ソフトウェアを実行するとき、データレーンおよびクロックレーンとして構成されてもよいコネクタ2114を介して送信されたシンボルからデコードされるデータを含む、プロセッサ2116によって操作されるデータを記憶するために使用されてもよい。処理回路2102は、モジュール2104、2106、2108、および2110のうちの少なくとも1つをさらに含む。モジュール2104、2106、2108、および2110は、プロセッサ2116の中で動作しコンピュータ可読記憶媒体2118に常駐する/記憶されるソフトウェアモジュール、プロセッサ2116に接続された1つもしくは複数のハードウェアモジュール、またはそれらの何らかの組合せであってもよい。モジュール2104、2106、2108、および/または2110は、マイクロコントローラ命令、ステートマシン構成パラメータ、またはそれらの何らかの組合せを含んでもよい。
【００９４】
一構成では、ワイヤレス通信のための装置2100は、複数のシンボルをシリアルバス2114を介して受信するように構成されているモジュールおよび/または回路2104、複数のシンボルのシンボル間遷移の中に埋め込まれたクロック信号を抽出するように構成されているモジュールおよび/または回路2106、複数のシンボルを遷移番号に変換するように構成されているモジュールおよび/または回路2108、遷移番号をデータビットに変換するように構成されているモジュールおよび/または回路2108、およびデータビットの少なくとも一部をレジスタにクロック信号のみを使用して、記憶するように構成されているモジュールおよび/または回路2122を含む。
【００９５】
図面に示された構成要素、ステップ、特徴、および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴、もしくは機能に再配置されてもよく、かつ/または組み合わされてもよく、あるいは複数のコンポーネント、ステップ、または機能で実施されてもよい。本明細書で開示する新規の特徴から逸脱することなく、さらなる要素、構成要素、ステップ、および/または機能も追加される場合がある。図面に示された装置、デバイス、および/または構成要素は、図示された方法、特徴、またはステップのうちの1つまたは複数を実行するように構成されてもよい。本明細書で説明する新規のアルゴリズムはまた、ソフトウェアで効率的に実装されてもよく、かつ/またはハードウェアに組み込まれてもよい。
【００９６】
加えて、実施形態が、フローチャート、フロー図、構造図、またはブロック図として示されるプロセスとして説明される場合があることに留意されたい。フローチャートは、動作を順次プロセスとして説明する場合があるが、動作の多くは並列または同時に実施することができる。加えて、動作の順序は入れ替えられてもよい。プロセスは、その動作が完了したとき、終了する。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに相当する場合がある。プロセスが関数に相当するとき、その終了は、呼出し関数またはメイン関数への関数へ戻ることに相当する。
【００９７】
その上、記憶媒体は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および/または情報を記憶するための他の機械可読媒体を含む、データを記憶するための1つまたは複数のデバイスを表す場合がある。「機械可読媒体」という用語は、限定はしないが、ポータブルまたは固定記憶デバイス、光記憶デバイス、ワイヤレスチャネル、ならびに命令および/またはデータを記憶するか、包含するか、または搬送することができる様々な他の媒体を含む。
【００９８】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せによって実装されてもよい。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体または他のストレージなどの機械可読媒体に記憶されてもよい。プロセッサは、必要なタスクを実行してもよい。コードセグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造もしくはプログラムステートメントの任意の組合せを表す場合がある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡すことおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に接続されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を介して渡されてもよく、転送されてもよく、または送信されてもよい。
【００９９】
本明細書で開示する例に関して説明する様々な例示的な論理ブロック、モジュール、回路、要素、および/または構成要素は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実施するように設計されたそれらの任意の組合せで実装または実施される場合がある。汎用プロセッサはマイクロプロセッサであってもよいが、代替形態では、プロセッサは、任意の従来型プロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティング構成要素の組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連係した1つもしくは複数のマイクロプロセッサ、または他の任意のそのような構成として実装されてもよい。
【０１００】
本明細書で開示する例に関して説明する方法またはアルゴリズムは、直接ハードウェアにおいて、プロセッサによって実行可能なソフトウェアモジュールにおいて、または両方の組合せにおいて、処理ユニット、プログラミング命令、または他の指示の形態で実施されてもよく、かつ、単一のデバイスに含まれてもよく、または複数のデバイスにわたって分散されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態の記憶媒体に常駐してもよい。プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、記憶媒体はプロセッサに接続されてもよい。代替として、記憶媒体はプロセッサに一体化されてもよい。
【０１０１】
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装されてもよいことを当業者はさらに諒解されよう。ハードウェアとソフトウェアとのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、これまで概してそれらの機能の観点から説明されてきた。そのような機能が、ハードウェアとして実装されるのか、それともソフトウェアとして実装されるのかは、具体的な適用例およびシステム全体に課せられる設計制約によって決まる。
【０１０２】
本明細書で説明する本発明の様々な特徴は、本発明から逸脱することなく、異なるシステムで実施することができる。上記の実施形態は例にすぎず、本発明を限定するものと解釈すべきではないことに留意されたい。実施形態の説明は例示的なものであり、特許請求の範囲を限定するものではない。したがって、本教示は、他のタイプの装置に容易に適用することができ、多数の代替、修正、および変形が当業者には明らかであろう。
【符号の説明】
【０１０３】
102  デバイス
104  ベースバンドプロセッサ
106  画像センサ
108  マルチモード制御データバス
112  マスタデバイス/ノード
114  スレーブデバイス/ノード
116  画像データバス
300  トランスミッタ
302  2ワイヤ物理リンク
304  入力データビット
308  ビット−遷移番号変換器ブロック
310  遷移−シンボルブロック
312  クロック線
314  データ線
316  順次シンボル
320  レシーバ
324  SCL線入力
326  SDA線入力
328  クロック/データリカバリブロック
330  シンボル−遷移番号変換器ブロック
332  遷移番号−ビット変換器
400  トランスミッタ
406  ビット−12×T変換器
408  12×T−ビット変換器
420  レシーバ
700  レシーバ
708  CDR回路
714  レジスタ
1000  レシーバ
1008  CDR回路
1010  S−Tデコーダ
1012  T−ビットデコーダ
1014  レジスタ
1102  3進法の重み
1104  マルチプレクサ
1106  マルチプレクサ
1112  アドレスデコーダ
1113  フリップフロップまたはレジスタ
1114  データデコーダ
1125  フリップフロップ
1302  CCIeスレーブデバイス
1308  レシーバ回路
1310  トランスミッタ回路
1312  クロックデータリカバリ回路
1314  制御論理
1318  レジスタ
1320  クロック生成器
1400  CDR回路
1404  比較器
1406  セットリセットラッチ
1408  ワンショット素子
1408a  アナログ遅延素子
1410  レベルラッチ
1412  アナログ遅延素子
1426  アナログ遅延素子
1902  処理回路
1904  プロセッサ
1906  ストレージ
1908  バスインターフェース
1910  バス
1912  トランシーバ
1916  ソフトウェアモジュール
1918  ユーザインターフェース
【図１】
2017501493.tif 000003
【図２】
2017501493.tif 000004
【図３】
2017501493.tif 000005
【図４】
2017501493.tif 000006
【図５】
2017501493.tif 000007
【図６】
2017501493.tif 000008
【図７】
2017501493.tif 000009
【図８】
2017501493.tif 000010
【図９】
2017501493.tif 000011
【図１０】
2017501493.tif 000012
【図１１】
2017501493.tif 000013
【図１２】
2017501493.tif 000014
【図１３】
2017501493.tif 000015
【図１４】
2017501493.tif 000016
【図１５】
2017501493.tif 000017
【図１６】
2017501493.tif 000018
【図１７】
2017501493.tif 000019
【図１８】
2017501493.tif 000020
【図１９】
2017501493.tif 000021
【図２０】
2017501493.tif 000022
【図２１】
2017501493.tif 000023
【手続補正書】
【提出日】平成28年6月21日(2016.6.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
レシーバデバイスによって実行される方法であって、
複数のシンボルを共有バスを介して受信するステップと、
前記複数のシンボルのシンボル間遷移の中に埋め込まれたクロック信号を抽出するステップと、
前記複数のシンボルを遷移番号に変換するステップと、
前記遷移番号をデータビットに変換するステップと、
前記データビットの少なくとも一部分を1つまたは複数のレジスタに、前記クロック信号のみを使用して、記憶するステップと
を備える方法。
【請求項２】
前記シンボルは、2つの連続シンボルが同じ値を有しないようにクロックサイクルごとに遷移する、請求項1に記載の方法。
【請求項３】
前記レシーバデバイスは、前記共有バスに接続された他のいかなるデバイスにも通知することなく、独立にスリープモードに入る、請求項1に記載の方法。
【請求項４】
前記レシーバデバイスは、前記データビットの少なくとも一部分を受信し、それを前記1つまたは複数のレジスタに、局所的なフリーランニングクロックを使用することなく、また前記抽出されるクロックを生成するためのビットをパディングすることなく書き込む、請求項1に記載の方法。
【請求項５】
前記レシーバデバイスは、前記データビットの少なくとも一部分を受信し、それを前記1つまたは複数のレジスタに、前記レシーバがスリープモードにある間に書き込む、請求項1に記載の方法。
【請求項６】
前記遷移番号は3進数として表現される、請求項1に記載の方法。
【請求項７】
前記遷移番号は12桁の3進数である、請求項1に記載の方法。
【請求項８】
前記共有バスは、カメラ制御インターフェース拡張(CCIe)バスである、請求項1に記載の方法。
【請求項９】
前記データビットの少なくとも一部分は、前記1つまたは複数のレジスタに、
前記クロック信号の最初のサイクルを検出するとダウンカウンタを開始するステップと、
前記ダウンカウンタが事前定義された値に到達するとマーカをトリガするステップと、
前記データビットの少なくとも一部分をレジスタに記憶するために前記マーカを使用するステップと
によって書き込まれる、請求項1に記載の方法。
【請求項１０】
前記事前定義された値は、前記クロック信号の最終のクロックサイクルに到達すると生じる、請求項9に記載の方法。
【請求項１１】
前記遷移番号は、前記クロック信号の最後から2番目のクロックサイクルと最後のクロックサイクルとの間で前記データビットに変換され、
前記データビットの前記少なくとも一部分は、前記クロック信号の最後のクロックサイクルにおいてレジスタに記憶される、
請求項1に記載の方法。
【請求項１２】
レシーバデバイスであって、
複数のシンボルを受信するために前記レシーバデバイスを共有バスに接続するように適合されたバスインターフェースと、
1つまたは複数のレジスタと、
前記バスインターフェースに接続され、
前記複数のシンボルのシンボル間遷移の中に埋め込まれたクロック信号を抽出し、
前記複数のシンボルを遷移番号に変換し、
前記遷移番号をデータビットに変換し、
前記データビットの少なくとも一部分を前記1つまたは複数のレジスタに、前記クロック信号のみを使用して、記憶する
ように構成されたレシーバ回路と
を備えるレシーバデバイス。
【請求項１３】
前記シンボルは、2つの連続シンボルが同じ値を有しないようにクロックサイクルごとに遷移する、請求項12に記載のレシーバデバイス。
【請求項１４】
前記レシーバデバイスは、前記共有バスに接続された他のいかなるデバイスにも通知することなく、独立にスリープモードに入るように適合される、請求項12に記載のレシーバデバイス。
【請求項１５】
前記レシーバデバイスは、前記データビットの少なくとも一部分を受信し、それを前記1つまたは複数のレジスタに、局所的なフリーランニングクロックを使用することなく、また前記抽出されるクロックを生成するためのビットをパディングすることなく書き込むように適合される、請求項12に記載のレシーバデバイス。
【請求項１６】
前記レシーバデバイスは、前記データビットの少なくとも一部分を受信し、それを前記1つまたは複数のレジスタに、前記レシーバがスリープモードにある間に書き込むように適合される、請求項12に記載のレシーバデバイス。
【請求項１７】
前記遷移番号は3進数として表現される、請求項12に記載のレシーバデバイス。
【請求項１８】
前記遷移番号は12桁の3進数である、請求項12に記載のレシーバデバイス。
【請求項１９】
前記共有バスは、カメラ制御インターフェース拡張(CCIe)バスである、請求項12に記載のレシーバデバイス。
【請求項２０】
ダウンカウンタをさらに備えるレシーバデバイスであって、前記レシーバデバイスは、前記データビットの少なくとも一部分を受信し、それを前記1つまたは複数のレジスタに、
前記クロック信号の最初のサイクルを検出すると前記ダウンカウンタを開始することと、
前記ダウンカウンタが事前定義された値に到達するとマーカをトリガすることと、
前記データビットの少なくとも一部分をレジスタに記憶するために前記マーカを使用することと
によって書き込むように適合される、
請求項12に記載のレシーバデバイス。
【請求項２１】
前記事前定義された値は、前記クロック信号の最終のクロックサイクルに到達すると生じる、請求項20に記載のレシーバデバイス。
【請求項２２】
複数のシンボルを共有バスを介して受信するための手段と、
前記複数のシンボルのシンボル間遷移の中に埋め込まれたクロック信号を抽出するための手段と、
前記複数のシンボルを遷移番号に変換するための手段と、
前記遷移番号をデータビットに変換するための手段と、
前記データビットの少なくとも一部分をレジスタに、前記クロック信号のみを使用して、記憶するための手段と
を備えるレシーバデバイス。
【請求項２３】
前記シンボルは、2つの連続シンボルが同じ値を有しないようにクロックサイクルごとに遷移する、請求項22に記載のレシーバデバイス。
【請求項２４】
前記レシーバデバイスは、前記共有バスに接続された他のいかなるデバイスにも通知することなく、独立にスリープモードに入るように構成される、請求項22に記載のレシーバデバイス。
【請求項２５】
前記データビットの少なくとも一部分を前記レジスタに記憶するための前記手段は、
前記データビットの少なくとも一部分を前記1つまたは複数のレジスタに、局所的なフリーランニングクロックを使用することなく書き込むように構成される、
請求項22に記載のレシーバデバイス。
【請求項２６】
前記データビットの少なくとも一部分を前記レジスタに記憶するための前記手段は、
前記データビットの少なくとも一部分を前記1つまたは複数のレジスタに、前記レシーバがスリープモードにある間に書き込むように構成される、
請求項22に記載のレシーバデバイス。
【請求項２７】
前記遷移番号は12桁の3進数である、請求項22に記載のレシーバデバイス。
【請求項２８】
前記データビットの少なくとも一部分を前記レジスタに記憶するための前記手段は、
前記クロック信号の最初のサイクルを検出するとダウンカウンタを開始し、
前記ダウンカウンタが事前定義された値に到達するとマーカをトリガし、
前記データビットの少なくとも一部分をレジスタに記憶するために前記マーカを使用するように構成され、
前記事前定義された値は、前記クロック信号の最終のクロックサイクルに到達すると生じる、
請求項22に記載のレシーバデバイス。
【請求項２９】
前記データビットの少なくとも一部分を前記レジスタに記憶するための前記手段は、
前記遷移番号を、前記クロック信号の最後から2番目のクロックサイクルと最後のクロックサイクルとの間で前記データビットに変換し、
前記データビットの少なくとも一部分を、前記クロック信号の最後のクロックサイクルにおいてレジスタに記憶するように構成される、
請求項22に記載のレシーバデバイス。
【請求項３０】
その上に記憶された命令を有する非一時的機械可読記憶媒体であって、前記命令は少なくとも1つのプロセッサによって実行されたとき、前記少なくとも1つのプロセッサに、
複数のシンボルを共有バスを介して受信させ、
前記複数のシンボルのシンボル間遷移の中に埋め込まれたクロック信号を抽出させ、
前記複数のシンボルを遷移番号に変換させ、
前記遷移番号をデータビットに変換させ、
前記データビットの少なくとも一部分をレジスタに、前記クロック信号のみを使用して、記憶させる、
非一時的機械可読記憶媒体。
【国際調査報告】
2017501493.tif 000024
2017501493.tif 000025