本明細書において説明される1つ以上の典型的実施形態は、デジタル無線データ通信システムを対象にしたものである。デジタル無線データ通信システムの環境において使用するのが有利である一方で、本発明の異なる実施形態を異なる環境又は構成において組み入れることも可能である。一般的には、本明細書において説明される様々なシステムは、ソフトウェアによって制御されるプロセッサ、集積回路、又はディスクリートロジックを用いて形成させることができる。本出願全体を通じて参照されることがあるデータ、命令、コマンド、情報、信号、シンボル、及びチップは、有利なことに、電圧、電流、電磁波、磁場、磁気粒子、光学場、光学粒子、又はその組合せによって表される。さらに、各ブロック図において示されるブロックは、ハードウェア又は方法に関するステップを表す。
図1は、1つ以上のCDMA基準及び/又は設計(W−CDMA基準、IS−95基準、cdma2000基準、HDR仕様、1xEV−DVシステム、等)をサポートするように設計することができる無線通信システム100の概略図である。代替実施形態においては、システム100は、CDMAシステム以外の無線基準又は設計をさらにサポートすることも可能である。
説明を単純化するため、システム100は、2つの移動局106と通信中である3つの基地局104を含む形が示されている。該基地局及びそのカバレッジエリアは、総称して「セル」としばしば呼ばれる。例えば、IS−95、cdma2000、又は1xEV−DVシステムにおいては、セルは、1つ以上のセクターを含むことができる。W−CDMA仕様においては、基地局の各セクター及び該セクターのカバレッジエリアがセルと呼ばれる。本明細書において用いられる基地局という表現は、アクセスポイント又はノードBと互換可能な形で使用することができる。移動局という表現は、ユーザー装置(UE)、加入者装置、加入者局、アクセス端末、遠隔端末、又は当業において知られる対応表現と互換可能な形で使用することができる。移動局という表現は、固定された無線アプリケーションを含む。
本明細書における「典型的」という表現は、「1つの例、事例、又は実例」であることを意味する。本明細書において「典型的実施形態」として記述されているいずれの実施形態も、その他の実施形態よりも優先されるか又は有利であると必ずしも解釈されるべきではない。
実装されているCDMAシステムに依存して、各移動局106は、いずれかの所定の時点において順方向リンクで1つの(又はおそらく2つ以上の)基地局 104と通信することができ、さらに該移動局がソフトハンドオフ状態にあるかどうかに依存して逆方向リンクで1つ以上の基地局と通信することができる。順方向リンク(すなわちダウンリンク)は、基地局から移動局への送信を意味し、逆方向リンク(すなわちアップリンク)は、移動局から基地局への送信を意味する。
図2は、先行技術による移動局106の一部分を示した図である。全体において詳述されている図例は、基地局104等のその他の無線通信デバイス、及びマスター/スレーブ通信が望まれるその他のデバイスにおいても使用可能である。本例においては、ベースバンドプロセッサ220は、1つ以上の補助集積回路(IC)、及び図示されていないその他のコンポーネントと接続された形で配置されている。ベースバンドプロセッサ220は、上記において例が挙げられている1つ以上の通信システム又は基準に従い、送信及び受信される信号に関する通信処理を提供する。典型的ベースバンドプロセッサ220は、入信号又は出信号のデジタル処理を行い、様々なアプリケーションの実行を含むその他の型の処理を行うことができる。ベースバンドプロセッサは、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ、メモリ、及びその他の様々な型の汎用回路又は専用回路を含む様々なコンポーネントを具備することができる。ベースバンドプロセッサは、1つ以上の仕様又は基準に従って信号を受信及び送信するための様々なコンポーネント、例えば、符号器、インターリーバー、変調器、復号器、デインターリーバー、復調器、探索器、及び当業においてよく知られる例が存在するその他の様々なコンポーネントを具備することができる。ベースバンドプロセッサは、デジタル回路、アナログ回路、又は両回路の組合せを組み入れることが可能である。
ベースバンドプロセッサ220に接続された補助ICは、RFIC230A乃至230Nのラベルが付されている。補助IC例は、増幅器、フィルタ、ミキサー、発振器、デジタル−アナログ(D/A)変換器、アナログ−デジタル変換器(A/D)、等の様々な機能を組み入れることができる無線周波(RF)ICを含む。いずれかの基準に準じた通信を行うために必要なコンポーネントは、複数のRFIC230内に組み入れることが可能である。いずれのRFIC230も、複数の通信システムと共用可能なコンポーネントを含むことができる。RFICは、例示することのみを目的として示されている。あらゆる型の補助ICをベースバンドプロセッサ220と接続することが可能である。
本例においては、RFIC230は、1つ以上の基地局104とのリンクを確立させることができるアンテナ210を通じて受信及び/又は送信を行う。アンテナ210は、当業においてよく知られるように、複数のアンテナを組み込むことができる。
SBIプロトコル
様々なパラメータ及びコマンドの通信を目的とする3線インタフェースが設計されている。この3線インタフェースは、シリアルバスインタフェース(SBI)と呼ばれる。該3線インタフェースは、クロックライン(SBCK)、開始/停止ライン(SBST)、及びデータライン(SBDT)を含む。SBIインタフェースは、以下においてさらに詳細に説明されている。SBIインタフェースは、マスターデバイス及び1つ以上のスレーブデバイスを指定する。本例においては、ベースバンドプロセッサ220は、マスターとして機能し、1つ以上のRFIC230は、スレーブデバイスとして機能する。SBIインタフェースはこれらの機能に限定されておらず、マスターデバイス及びスレーブデバイスは、あらゆる型であることができる。以下の詳細な実施形態例においては、ベースバンドプロセッサ220は、マスターデバイス220と互換可能であり、RFIC230は、スレーブデバイス230と互換可能である。さらに、ベースバンドプロセッサ220は、SBIバスに加えて、アナログ又はデジタルに関わらず図示されていない様々な専用線で様々なRFIC230と通信することもできる。
図2に示されるように、複数のスレーブデバイスが同じ3つのマスターデバイス接続(SBCK、SBST、及びSBDT)を共有することができる。図2には示されていないが、RFIC230とベースバンドプロセッサとの間におけるその他の様々な接続を使用することができる。移動局106は、通信を行う際又はアプリケーションを実行する際に使用するその他の様々なコンポーネントを組み入れることも可能である。説明を明確化するため、これらの詳細は示されていない。
SBIインタフェースは、3つの型の転送モードを定義し、これらの転送モードのフォーマットが図3に示されている。高速転送モード(FTM)は、読み取り及び書き込みの両方を含むあらゆるスレーブへの複数のシーケンスのアクセスを提供する。該シーケンスにおける各アクセスは、アクセス先及びアクセス元のアドレスを識別する。
バルク転送モード(BTM)は、単一のスレーブへの複数の逐次アクセス機能を提供する。BTM転送におけるアクセスは、読み取り又は書き込みであることができるが、両方であることはできない。バルク転送に関するアドレスは、1回送信するだけでよい。この最初のアドレスから複数の読み取り又は書き込みを逐次行うことが可能である。
インタラプト転送モード(ITM)は、単一のバイトの符号化情報を転送するために使用される。スレーブID(SID)は、2つのスレーブのうちでメッセージを受信するスレーブを示す。5ビットのメッセージフィールドは、32のメッセージに対応可能である。メッセージの後にはポーズビットが送信される。
図4乃至6は、FTM、BTM、及びITMに関するタイミング波形をそれぞれ描いた図である。各SBIアクセスは次のように行われる。すなわち、SBSTをローにすることによってトランザクションが開始される。トランザクションは、SBSTをハイにすることによって終了/完了される。トランザクション間には少なくとも1つのクロックが存在する(SBST及びSBDTがハイ)。SBDTの状態の変化はすべて、SBCKの立ち下がりエッジの前に生じる(一般的には、SBCKの立ち下がりエッジに関して指定されたセットアップパラメータ及びホールドパラメータが存在することになる)。SBSTがローになった後に第1のデータビットが第2の立ち下がりエッジにおいてラッチされる。データは、最上位ビット(MSB)が最初に送信され、最下位ビット(LSB)が最後に送信される。(ITMの場合は、単一ビットが2つのスレーブのうちの1つを識別してメッセージが後続することを思い出すこと。)アドレス指定されていないスレーブは、次のトランザクションの開始ビットを待つ。単一のFTMトランザクション中にデータを読み取ること及び書き込むことの両方が可能である。送信される各バイトに関して1つ以上のポーズビットが割り当てられる。マスター及びスレーブの両方とも、バスコンテンションを回避するためにポーズビット(P)中にデータバスを解放する。
最初の2つのビットは、アクセス型を示し、FTMが01、BTMが10、ITMが00である。スレーブIDは6ビットで、アドレスフィールド及びデータフィールドはそれぞれ8ビットである。スレーブがバスコンテンションを引き起こさずにデータを戻す機会を提供するために、各8ビットの後にポーズビット(P)が挿入される。アドレスフィールドの第1のビットは、アクセスが読み取り(1)又は書き込み(0)のいずれであるかを表す。FTM及びBTMに関しては、各レジスタアクセスに関してスレーブIDを指定するように要求せずに同じスレーブに対して複数のアクセスを行うことが可能である。FTMは、レジスタアクセスを行うための通常の方法である。BTMは、より大きな連続アドレスグループの構成を可能にする。バーストの第1のレジスタアドレスのみが指定される。ITMの場合は、いずれのスレーブにアクセスするかを指定するための1ビットSIDフィールドがスレーブIDの代わりに用いられる。レジスタフィールド及びデータフィールドの代わりに、5ビットのメッセージフィールドが指定される。
実際上は、無線周波(RF)IC230は共通バスにおける干渉の影響を受けやすい場合があることが判明している。この干渉を回避することを目的として、1つのバスにおけるトラフィックを1つ以上の影響を受けやすいデバイス230から隔離するための追加バスが導入されている。一構成例が図7に示されている。図7においては、ベースバンドプロセッサ220は、各デバイス専用の個々の3線SBIバスにおいてRFIC230A乃至230Jと通信する。この例においては、追加のRFIC230K及び230Nが共有SBIバスと接続されている。バスの追加は干渉を解決することができるが、ベースバンドプロセッサ220に関して必要なピン数、及びマスターコントローラ数を増加させる。例えば、ベースバンドプロセッサ220は、9ピン又は12ピンがそれぞれ要求される3つ又は4つのSBIポート付きベースバンドプロセッサを使用することが可能である。利用可能なポートを様々な外部チップ230間において共有するために要求されるオーバーヘッドによって設計が複雑化する可能性がある。
SSBIプロトコル
影響を受けやすい補助チップ230に関して望まれる干渉低減を、ピン数を減らしつつ達成させるために、以下においては、単線シリアルバスインタフェース(SSBI)と呼ばれる新しい単線バスインタフェースが詳細に説明される。図8は、各RFIC230A乃至230Jをベースバンドプロセッサ230と接続させる独立した単線(SSBI)バスを用いた移動局例106を描いた図である。3線SBIバスは、希望される場合は、SSBIバスと組み合わせて使用することも可能である。この使用は、共有3線バスがRFIC230N乃至230K及びベースバンドプロセッサ220を接続した状態が示されている。単線インタフェースの採用は、ピン数の減少、ポートの増加、又はその両方を可能にする。ポート数の増加は、上述されるように、2つ以上のデバイスが1つのバスインタフェースを共有する必要があるときに発生する可能性がある設計の複雑化を軽減することが可能である。以下において詳述される実施形態においては、説明を明確化するため、SSBIインタフェースはピン及び/又はパッドに関して説明することができる点に注目すること。SSBIプロトコルは、ダイ間接続(すなわち、ピンのないパッドとパッドの接続)、及びチップ間接続(すなわち、パッド及びピンのないブロックとブロックの接続)に対しても適用可能である。当業者は、これらの及びその他の様々な実施形態に適用させるために、本明細書において開示される原理を容易に適合化させるであろう。
代替実施形態は、あらゆる数の単線バス、及びあらゆる数の3線バスを含めることができる。詳細な例が後述されている様々な実施形態においては、ピンは、1線又は3線のバスインタフェースとともに使用するように構成可能である。
本明細書において詳述されているSSBIプロトコル例は、次の特性を有する。すなわち、要求されるピン数がSBIインタフェースに関するピン数よりも少ない。帯域幅がSBIインタフェースに匹敵するかまたはSBIインタフェースよりも優れている。追加レジスタをサポートするためにアドレスが増加され、従ってますます複雑化しているスレーブデバイスがサポートされる。この例においては、アドレス指定可能なレジスタ数は256である。
SSBIは、ピン数を減らすため、クロックライン(SBCK)及び開始/停止ライン(SBST)を含まない。SSBIプロトコルにおける単一のラインは、本明細書においてはSSBI_DATAと呼ばれる。インタフェースにおいてクロックラインが取り除かれているため、マスターデバイス及びスレーブデバイスの両方においてローカルクロックが代わりに使用される。マスターデバイス及びスレーブデバイスにおけるローカルクロックは、同一である必要がない。SSBIプロトコルは、以下において詳述されるように、位相及び周波数のオフセットについて説明する。一定量の周波数誤差は許容され、該誤差量は特定の実施形態に依存する。SSBIプロトコルは、マスターデバイス及びスレーブデバイスのクロックに関して位相的に独立している。ローカルクロックは、ローカル発振器を用いて生成すること、その他のクロック源から導き出すこと、又は当業において知られるその他の様々なクロック生成技術を用いて生成することが可能である。SSBIインタフェースは、[0058]
開始/停止ラインの代わりに開始ビットがデータストリーム内に挿入され、アイドル状態(IDLE)が定義されている。受信側デバイス(すなわちスレーブ)は、データライン(SSBI_DATA)をモニタリングし、予め決められたIDLE値をサンプリングし、開始シンボルが検出された時点でトランザクションを開始する。トランザクションが完了された時点で、データラインをIDLE状態に戻して転送を終了させることができる。
SSBIプロトコルは、1線インタフェースと3線インタフェースとの間におけるインタフェースを容易にするために選択されたタイミングと波形を用いて設計することができる。明確になるように、この設計は、3線SBIプロトコルから1線SSBIプロトコルへの移行を考慮したものである。例えば、マスターデバイスは、それ以前の世代のスレーブデバイスとの通信及び新たに生産されるスレーブデバイスとの通信を容易にするために、SBIフォーマット及びSSBIフォーマットの両フォーマットを生成する論理回路を装備することができる。同様の方法で、既存のスレーブデバイスは、SBI及びSSBIのいずれのフォーマットも受信することができて以前の世代のマスターデバイス及び新マスターデバイスの両デバイスとの相互運用性を可能にするような変換論理を備えることができる。スレーブは、3線モードに関する3ピンを装備することができ、これらの3ピンのうちの単一のピンは、SSBIモード時におけるSSBI_DATA専用である。モードは、SSBIモードが希望されるときに未使用ピンに関する予め定義された値を設定することによって選択することができる。さらに、単一ピンスレーブデバイスは、変換論理を既存のコアに追加することによって迅速に開発することが可能であり、このため、単線SSBI_DATAは、既存のコアとインタフェースするためにレガシーの3線SBI信号に変換することができる。後述される該変換論理は、既存の機能に対して最小限の影響を及ぼすだけでスレーブデバイスに追加することができ、新デバイスを高い信頼性を持って素早く開発することを可能にする。従って、制御ラインが別であることに起因して干渉が低減される利益及びマスター及び/又はスレーブデバイスにおけるピン数が減少する利益は、市場において3線デバイスから単線デバイスに移行中に実現させることが可能になる。以下では様々な実施形態例が詳細に説明される。
表1は、SSBIインタフェース信号を示した図である。SSBIインタフェースは、1つのデバイスごとに単一のピンによって構成され、該ピンはSSBI_DATAと呼ばれる。転送の開始及び終了はデータストリーム自体において表されるため、SBSTは取り除かれる。マスターデバイス及びスレーブデバイスの両方に共通のクロックが存在するため、SBCKは取り除かれる。マスターデバイス及びスレーブデバイスの両方においてSSBI_CLKと呼ばれるクロックを利用可能であると仮定されている。あらゆる共通のクロックを使用可能である。マスタークロックとスレーブクロックの間で要求される位相関係はない。一実施形態においては、ルーティングを単純化するため、これらの2つのクロックを同じソースから導き出すことができる。これらの2つのクロックは、一般的には、同じ周波数であるべきであるが、ある程度の周波数誤差は補正可能である。当業者は、本明細書における教義に鑑みて、いずれかの所定の実施形態に関して許容される周波数誤差量を容易に適合化するであろう。該クロックは、SSBI通信が要求されるごとに起動する必要がある。
一実施形態例においては、マスターデバイス220は、次の特性を有するSSBI_DATAに関するパッドを具備する。すなわち、該パッドは双方向性である。該パッドは、ロードライブモードにおいて2mAのドライブ強度をサポートし、ハイドライブモードにおいて5mAのドライブ強度をサポートする(このサポートは、SBIパッド例に関して用いられる設定と一致する)。該パッド例は、選択可能なプルダウンデバイス、及び選択可能なキーパーデバイスを内蔵する。その他の様々なパッドを本発明の適用範囲内において導入することができる。例えば単一ダイにおけるブロック間接続等の代替実施形態においては、当業者によってよく知られている3状態ドライブ、マルチプレクサ、等の代替コンポーネントをパッドの代わりに使用することが可能である。
SSBIプロトコル例においては、1つのモードのみがサポートされ、さらに1回の転送につき1つのレジスタアクセスのみがサポートされる。この場合は、モード及びスレーブIDを指定する必要がなく、FTMが単純化されたものであると考えることができる。バス上において予想されるスレーブは1つだけであるため(ただし、後述されるように、2つ以上のデバイスが希望される場合はアドレッシング方式を使用することができる)、スレーブIDビットはもはや不要である。その結果、SBIコマンドと比較して各アクセスに関するオーバーヘッドがほとんどまったくない。複数の3線SBIモードは、帯域幅を向上させさらにレーテンシーを低下させるために不要なオーバーヘッドを取り除く機構を提供する。単一のSSBIフォーマットは、同じ利益を提供する。
図9は、SSBI転送フォーマットを示した図である。フレームは、読み取りフレーム920又は書き込みフレーム910であることができる。第1のビットは、読み取り又は書き込みが行われるかどうかを示す。読み取りアクセスは“1”、書き込みアクセスは“0”によって示される。この割当ては任意ではないが、実際には、アクセスの途中でSSBIマスターブロックが誤ってリセットされた場合にスレーブが偶然に読み取り動作を観測することを防止する。アドレスフィールドは全8ビットであり、さらに読み取り/書き込み指示は別々に行われるため、読み取りレジスタ及び書き込みレジスタの両方が256のすべてのアドレスを利用可能である。該実施形態例においては、SBIよりもSSBIのほうがアドレス空間が大きい。代替実施形態においては、あらゆるアドレス空間の大きさを使用することができる。
データフィールドは、後述される様々な実施形態においてはパラメータで表示され、例えば1乃至16の範囲であることが可能である。このパラメータは、以下においてはSSBI_DATA_WDとして識別される。アドレスフィールド及びデータフィールドの両方に関して、値は、最初にMSBが出力される。書き込みの場合は、マスターが継続的にバスを駆動するため、ポーズビット(P)は要求されない。読み取りの場合は、ポーズビットが使用される。追加の読み取り又は書き込みを行う場合は、新しいコマンドがバスにおいて開始される。以上の結果、スレーブは、書き込みに関しては17のシンボル、読み取りに関しては19のシンボルを常に予想することができる(SSBI_DATA_WD=8のとき)。
1つのSSBIポートごとに1つのスレーブがサポートされることが予想される一方で、2つのスレーブの各々が異なる一組のSSBIレジスタアドレスに応答するようにすることでこれらの2つのスレーブをサポートすることが可能である。例えば、1方のスレーブはアドレス0乃至127に応答することが可能であり、第2のスレーブは128乃至255に応答することが可能である。しかしながら、このようなアプローチ法を用いることによって、ボード上におけるローディングに関する課題及びSBIプロトコルに関して上述される通常の干渉問題が発生する可能性がある。
図10は、SSBIシグナリング方式の一実施形態例を示したタイミング図である。この例においては、データライン(SSBI_DATA)は、アイドル状態を示すときにはローである。データ送信時は、開始ビット、この例においては高電圧(すなわち“1”)が送信される。開始ビットは、受信機が入りデータストリームをサンプリングするためのサンプルポイントをセンタリングするために使用される。開始ビットの後にデータストリームが続く。コマンドフォーマットは適切に定義済みであるため、受信機は、どけだけの数のビットが送信されるかをデータストリームから正確に決定することができる。従って、受信機は、転送が完了する時点を知っており、次の開始ビットを待つためのアイドル状態に再度入ることができる。開始ビット及びデータビットは、この例においては各々が2クロックサイクルの長さを有しており、このため、シンボル時間は長さが2サイクルである。データビットは、1又は0が送信されるかに依存してハイ又はローの状態で送信される。代替実施形態においては、各ビットは、長さが1クロックサイクルであることが可能である。しかしながら、このような場合においては、1/2クロックサイクルの精度しか存在しないことになるため、受信機がシンボルの中心を見つけ出すことは難しい。従って、受信機は、シンボルが遷移中にサンプリングされないように保証することができない。シンボルが2クロックサイクル(又はそれ以上)の長さを有する場合は、受信機は、0.5乃至1.5サイクルだけシンボル内に入った時点で、すなわちあらゆる遷移から少なくとも0.5クロックサイクル離れた時点でシンボルをサンプリングするのを保証することができる。代替実施形態においては、1つのシンボル当たりのクロックサイクル数は変わることができる。
受信機におけるクロックは、データと整合させる必要がない。従って、本質的に、図10において描かれているSLAVE CLOCKは、SSBI_DATAに関して左又は右にシフトすることができる。この例においては、受信機は、SSBI_DATAがハイになった後の第1の立ち下がりクロックエッジにおいてサンプリングを開始する。サンプリングポイントは、縦の点線によって表される。各後続シンボルは、アクセスが完了するまで該ポイントから2クロック時間ごとにサンプリングされる。IDLEビットに続いて他の開始シンボルを送信することができる。
このSSBIプロトコルは、周波数誤差を許容可能である。該周波数誤差の許容量は、特定の実施形態を使用する際の設計の選択に基づいて変わることができる。外部クロックが使用されて1つ以上の接続されたコンポーネントにルーティングされる場合は、インタフェースは、これらの様々なコンポーネント間において可変のクロックスキューが存在する状態で適切に動作する。代替として、1つ以上の接続されたコンポーネント(すなわち、マスター及び/又はスレーブ)は、設計された周波数誤差要求内において自己のクロックを生成することができる。
アクセスの転送時間は、データに依存しない。転送時間は、3線SBIバスインタフェース例の場合と同じである。当業者にとって明確になるように、様々なビット型に関してあらゆる電圧レベルを選択することが可能である。この例においては、上述されるように、開始シンボルは、サンプルストローブをセンタリングするために“1”(又は高電圧)が選択される。アイドルは“0”(又はアース)に設定される。この設定は、電力が供給されていないチップとのインタフェースを単純化する。例えば、電力を保存するためにRFチップ(又はその他のスレーブデバイス)に電力を供給すること又は供給を停止することができる。アイドルをアースに設定することは、この状態を単純化する。
一般的には、マスターは、SSBI_DATAを駆動する。マスターがバスを3状態にする時点は、読み取りデータがスレーブによって駆動中のみである。その他のすべての時点においては、マスターはバスを駆動する。マスターデバイス及びスレーブデバイスは両方とも、データラインでのコンテンションを回避するために異なる時点においてデータバスを駆動するため、バスの現在のドライバは、次のデバイスがバスを駆動するのを許容される前の1つのシンボル時間(この例において2サイクル)だけバスを解放する。この継続時間は、ポーズビットと呼ばれる。ポーズビットは、図9においては“P”によって識別されている。ポーズビットに関しては、データライン上の値は、パッドキーパー(使用されている場合)を用いて保持することができる。スレーブは、マスターが使用中のタイミングを受信機が概算して得たタイミングを用いて読み取りデータで応答することが予想される。従って、読み取られたシンボルは、マスターが予想する場所とほぼ同じ場所に現れるはずである。
ドライバ間の遷移について理解するため、次の点を検討する。すなわち、マスターが読み取りアクセスに関してアドレスフィールドのLSBを送信後、マスターがバスを解放するための時間を考慮したポーズビットが送信される。スレーブは、D7乃至D0を駆動することによって応答し、他のポーズビットのためにデータラインを解放する。これで、マスターは、次のシンボルを送信するためにバスの制御を再取得することができる。この場合、スレーブは開始ビットに基づいて1/2のクロックサイクルの精度でマスターのタイミングを知っているためコンテンションが回避される。ポーズビットは2クロックサイクルであるため、マスタークロックとスレーブクロックの相対的位相に依存して1.5サイクルという短い時間又は2.5サイクルという長い時間に思える。バス遅延が1.5サイクル未満であるかぎりは、コンテンションは発生しない。
3線SBIインタフェースは、転送継続時間中はアサートしてマスターの動作が完了時にデアサートするSBST信号を有する。このことは、あらゆる時点において強制的にスレーブをアイドル状態にするのを容易にする。マスターは、SBSTがデアサートされるのを確認することができ、このため、スレーブが既にアイドル状態になっているか又は転送途中であるかにかかわらず、転送が存在していないことを認識してアイドル状態に入るはずである。1線SBIインタフェースの場合は、このことを明確に指定する信号が存在していない。次に2の事例について検討する。すなわち、第1の事例は、電源投入中におけるリセット事例であり、第2の事例は、通常の動作中に関する事例である。電源投入中は、マスターは、様々なデバイスのリセットに要する時間量を考慮に入れ、リセットが完了するまでSSBIの活動を無視することができる。通常の動作中に関しては、マスターとスレーブが同期状態でありそのためスレーブがマスターのみに応答しさらにマスターSSBIブロックがSSBI転送中に強制的にリセットされることがまったくかぎり、何の問題も生じない。
どのような理由であるかにかかわらずいずれかの任意の時点においてSSBIマスターをリセットする必要がある場合は、SSBIバスが読み取り中であってこのためスレーブデバイスがSSBIデータバスを駆動することになっている可能性がある。マスターは、強制的にアイドル状態にされた場合もデータバスを駆動し、従ってコンテンションが発生する可能性がある。スレーブがバスを駆動中でないときには、読み取りアクセスに応答して、アイドル状態に入るマスターはコンテンションを引き起こさず、スレーブはアイドル状態にとどまるか又は現在の書き込みアクセスを完了させ、その後にアイドル状態に入る。(この例においては、1線フォーマットの場合は、書き込み及び読み取りの長さは17シンボル時間及び19シンボル時間であるため、8ビットのデータ幅に関しては、長くても19シンボル時間後にスレーブがアイドル状態になることが保証される。)スレーブがバスを駆動中にこの課題を解決するため、マスターは、発生する可能性があるコンテンション時間が終了したと決定されるまでSSBI_DATAラインを積極的に駆動するのを控えることができる。該実施形態例においては、マスターは、SSBI_DATAを3状態にし、パッド内のプルダウンデバイスをイネーブルにする。該プルダウンをディスエーブルにできることを示すために制御レジスタリセットコマンドを使用することができる。代替実施形態においては、希望する場合は、マスターによるバスの能動的制御を再度イネーブルにしてプルダウンをディスエーブルにするための書き込みアクセスコマンドを使用することが可能である。
SBIとSSBIとの間における変換
(おそらく幾つかの変換機能が要求される)3線インタフェース又は1線インタフェースを用いてサポート可能な2つのプロトコルSBI及びSSBIが上述されている。今日において稼働中の多くのデバイスは、3線インタフェースにおいてSBIプロトコルをサポートする。本明細書において様々な例が説明されている実施形態例は、単線インタフェースにおいてSBIを用いて通信するマスターデバイス220及び1つ以上のスレーブデバイスを含むことができる。SSBIをサポートするためのマスターデバイス例220が図11に示され、対応するスレーブデバイス230が図13に示されている。マスターデバイス220は、1線インタフェース又は3線インタフェースのいずれか又はその両方の組合せにおいてSBIとSSBIの両方をサポートすることが望ましい。該マスターの一例が図12に示されている。同様に、スレーブデバイスは、1線インタフェース又は3線インタフェースのいずれかにおいていずれかのプロトコルを受信するように構成することができる。該スレーブデバイスの一例が図14に示されている。
図11は、単線でのSSBI通信のために構成されたマスターデバイス例220を示した図である。マイクロプロセッサ、又はその他のデバイスは、読み取りアクセス及び書き込みアクセスを行うためにSSBIマスター1110と通信する(詳述されていない)。SSBIマスター1110は、以下において幾つかの例が詳細に説明されているその他のコマンド又は信号を受信又は生成することも可能である。マスターデバイス220は、パッド1120に接続されたSSBI_DATAにおいてデータを送信又は受信する。一パッド例が上述されている。パッド入力(PI)は、SSBIマスター1110でSSBI_DATA_INに引き渡される。パッド1120に関する出力は、SSBIマスター1110のSSBI_DATA_OUTから受け取られる。パッドは、SSBIマスター1110からのSSBI_DATA_OEに応答してイネーブルにされる(すなわち駆動される)。キーパー及びプルデバイス等のその他の機能も導入可能である(詳細は示されていない)。SSBIマスター1110は、SSBIプロトコルに従って送信及び受信する。
図13は、単線でのSSBI通信用に構成されたスレーブデバイス230を描いた図である。様々なブロック、レジスタ、機能、等がSSBIスレーブ1310とインタフェース可能である(詳細は示されていない)。SSBIスレーブ1310は、図11に示されるデバイス220等のマスターデバイスの指示に従い、書き込みアクセスからのデータ、及び読み取りアクセスのためのソースデータを提供することができる。SSBIスレーブ1310は、その他のコマンド又は信号を受信又は生成することも可能であり、幾つかの例が以下において詳細に説明されている。スレーブデバイス230は、パッド1320に接続されたSSBI_DATAにおいてデータを送信又は受信する。一パッド例が上述されている。パッド入力(PI)は、SSBIスレーブ1310のSSBI_DATA_INに引き渡される。パッド1320に関する出力は、SSBIスレーブ1310のSSBI_DATA_OUTから受け取られる。パッドは、SSBIスレーブ1310からのSSBI_DATA_OEに応答してイネーブルにされる(すなわち駆動される)。キーパー及びプルデバイス等のその他の機能も導入可能である(詳細は示されていない)。SSBIスレーブ1310は、SSBIプロトコルに従って送信及び受信する。
マスターデバイス220等のベースバンドプロセッサにおいて、単線インタフェースと3線インタフェースの組合せを提供するように一組のピンを構成可能である。例えば、12本のピンを割り当てて、様々なバスの組合せを提供するように構成することができる。例えば、12の単線インタフェース又は4つの3線インタフェースを使用することができる。又は、1つの3線インタフェースを9つの単線インタフェースとともに使用することができる。又は、2つの3線インタフェースを6つの単線インタフェースとともに使用することができる。又は、3つの3線インタフェースを3つの単線インタフェースとともに使用することができる。これらのピンの制限された部分組は、多数のバスインタフェース型において使用して構成させることも可能である。ピンは、代替として、SSBI以外の目的又はSBI以外の目的のために構成させることも可能である。当業者は、ピンと構成可能なバス型の非常に数多くの組合せを本発明の適用範囲内において使用可能であることを認識するであろう。
単線バスに切り換えることによって、より少ないピン数で追加のバスを導入することが可能であり、さらに1つのバスを共有するコンポーネント数を減らすことができる。例えば、ポイントツーポイント単線バスの導入は、共有バスと比較して干渉を低下させることを可能にし、さらに、ポイントツーポイント接続は共有バスにおいて要求される帯域幅スケジューリングを不要にするため、トラフィックのスケジューリングがより単純になり、レーテンシー問題を回避することができる。
図12は、SSBI又はSBIをサポートするように構成されたマスターデバイス例220を描いた図である。同図においては3本のピンが示されており、これらのピンは、3線インタフェースに関して又は代替として3つの1線インタフェースに関して使用することができる。3つのSSBIマスター1110A乃至C、及び1つのSBIマスター1220が存在する。3つのパッド1250A乃至Cは、マルチプレクサ1230A乃至C及び1240A乃至Cをそれぞれ介して信号を受信する。これらのマルチプレクサは、SBIモード又はSSBIモードのいずれのモードが選択されるかを示す信号SSBI_MODEを介して制御される。
SBIマスター1220は、当業においては既知であり、本明細書においては詳述されない。SBIマスター1220の一実施形態例は、あらゆる型であることができる。当業者は、上述されているSBIシステムの要求を満たすために、先行の開発済みSBIデバイス又は回路を容易に適合させることになるか又は新しいデバイスを考案することができる。以下においてSSBIマスター例1110が詳細に説明される。一SSBIマスター例は、(後述される)その他のデバイスとの互換性を容易にするために、上述されているSSBIプロトコルを実行することができ、又はSBIプロトコルに従って動作することもできる。
パッド1250Aは、SBIモードにおいてはSBCKを提供するために用いられ、SSBIモードにおいてはSSBI_DATA0である。パッド入力(PI)は、SSBI_DATA_INとしてSSBIマスター1110Aに引き渡される。パッド出力は、マルチプレクサ1230SAを通じて提供され、SSBIモードにおいてはSSBIマスター1110AからのSSBI_DATA_OUT、SBIモードにおいてはSBIマスター1220からのSBCKである。出力イネーブル(OE)はマルチプレクサ1240Aを通じて提供され、SSBIモードにおいてはSSBIマスター1110AからのSSBI_DATA_OEであり、SBIモード中はハイに設定される(SBCKは3状態信号ではないため常に出力である)。
パッド1250Bは、SBIモードにおいてはSBSTを提供するために用いられ、SSBIモードにおいてはSSBI_DATA1である。パッド入力(PI)は、SSBI_DATA_INとしてSSBIマスター1110Bに引き渡される。パッド出力は、マルチプレクサ1230Bを通じて提供され、SSBIモードにおいてはSSBIマスター1110BからのSSBI_DATA_OUT、SBIモードにおいてはSBIマスター1220からのSBSTである。出力イネーブル(OE)はマルチプレクサ1240Bを通じて提供され、SSBIモードにおいてはSSBIマスター1110BからのSSBI_DATA_OEであり、SBIモード中はハイに設定される(SBSTは3状態信号ではないため常に出力である)。
パッド1250Cは、SBIモードにおいてはSBDTを提供するために用いられ、SSBIモードにおいてはSSBI_DATA2である。パッド入力(PI)は、SSBI_DATA_INとしてSSBIマスター1110Cに引き渡され、さらにSBDT_INとしてSBIマスター1220に引き渡される。パッド出力は、マルチプレクサ1230Cを通じて提供され、SSBIモードにおいてはSSBIマスター1110CらのSSBI_DATA_OUT、SBIモードにおいてはSBIマスター1220からのSBDT_OUTである。出力イネーブル(OE)は、マルチプレクサ1240Cを通じて提供され、SSBIモードにおいてはSSBIマスター1110CからのSSBI_DATA_OEであり、SBIモード中はSBIマスター1220からのSBDT_OEである。
マイクロプロセッサ、又はアクセス要求を出すその他のデバイスへのインタフェースは示されていない。各SSBIマスター1110及びSBIは、各々のSSBIインタフェース又はSBIインタフェースを通じて読み取りアクセス及び書き込みアクセスを行うためのインタフェースを備えることができる。代替実施形態においては、複数のデバイスがSBIマスター又はSSBIマスターとインタフェースを共有することができ、従って、これらの複数のデバイス(図示されていない)間においてアクセスを仲裁するためのアービターを使用することができる。
代替実施形態においては、SSBIマスターは、希望に応じて、1線サポート又は3線サポートを用いてSBI及びSSBIの両プロトコルをサポートするようにすることが可能である。該実施形態は詳述されていないが、当業者は、希望する場合は、本明細書において説明されている実施形態がこのサポートを行うように容易に適合させることができる。
図12に示されているマスターデバイス220は、3線技術から単線技術に移行するのに適したデバイスの一例である。マスターデバイス220は、SBIプロトコルを用いてレガシー3線スレーブデバイスと通信することができる。さらに、最高3つの異なる単線スレーブデバイス、例えば図13に示されるスレーブデバイス230、とのSSBI通信を行うことも可能である。希望される場合は、SSBIマスター1110は、その他のデバイスとの適合性を確保するためにSBIプロトコルの一部又は全部をサポートするように希望に応じて修正することができる。
スレーブデバイス230に関して3線SBIインタフェースから単線インタフェースに移行するための1つの技術が図14に示されている。この実施形態においては、SBIスレーブ1410(新しい設計であること、又は設計済みのSBIと適合可能なデバイスであることができる)がSSBIスレーブコンバータ1420と結合される。アクセスは、SBIスレーブ1410とのインタフェース(図示されていない)を介してのアクセス(スレーブデバイス230への書き込み又はスレーブデバイス230からの読み取り)が行われる。SBIスレーブデバイス230は、3線、及びSBIプロトコルを用いて通信する。これらの3線は、SSBIスレーブコンバータ1420によってインターセプトされ、SSBIスレーブコンバータ1420は、単線通信を許容するために要求される変換を行う。この例においては、3線通信もサポートされ、このため、このスレーブ230は、SBIマスター又はSSBIマスターのいずれとも通信することができる。SSBIスレーブコンバータ実施形態例が以下において詳細に説明されるが、当業者にとっては、本明細書において示される教義に鑑みてその他の実施形態も明確に理解できるであろう。スレーブデバイス230の代替実施形態においては、SSBIスレーブは、両方のプロトコルをサポートするように設計することができる。図14に示されるコンバータ1420を設計する1つの利点は、既存のスレーブデバイス230を3線インタフェースに関して既に設計可能であることと、新しい単線インタフェースを用いたマーケティングを迅速化するために、既存のコアを再設計する必要なしにコンバータをデバイス内に単純に挿入できることである。
図14のスレーブデバイス230においては、SBCK入力は、パッド1430を介して受信されてSSBIスレーブコンバータ1420のSBST_INに引き渡される。
SBST入力は、パッド1440を介して受信されてSSBIスレーブコンバータ1420のSSBI_INに引き渡される。これらの入力は、SBI通信のために使用され、さらに(後述されるように)SSBIモードをイネーブルにするために使用することができる。パッド1450は、SBIモードでSBDTを受信及び送信するか又はSSBIモードでSSBI_DATAを受信及び送信する。パッド1450へのパッド入力(PI)の接続は、SSBIスレーブコンバータ1420のSSBI_DATA及びSBIスレーブ1410のSBDT_INの両方に接続される。パッド1450へのパッド出力(PO)及び出力イネーブル(OE)の接続は、SSBIスレーブコンバータ1420のSBDT_PO_OUT及びSBDT_OE_OUTからのそれぞれの出力である。さらに、SSBIスレーブコンバータ1420は、SSBI_CLKにおけるクロック入力CLK、及びリセット信号RESETも受信する。これらの信号は、スレーブデバイス230の内部において生成することができ、又は外部において生成することも可能である。
SSBIスレーブコンバータ1420は、SBIスレーブ1410とインタフェースするためのSBI信号を生成及び受信する。SBCK_OUT及びSBST_OUTが生成され、SBIスレーブ1410のSBCK及びSBSTにそれぞれ接続される。SBDT_PO及びSBDT_OEは、SSBIスレーブコンバータ1420においてインターセプトされてSBST_PO_IN及びSBDT_OE_INとしてそれぞれ受信される。
この実施形態例におけるSSBIスレーブコンバータ1420は、その他の信号も生成する。SSBI_MODEは、アサートされた時に、スレーブデバイス230がSSBIモードで動作中であることを示す。その他の場合は、該スレーブデバイスはSBIモードで動作中である。この信号は、後述される変換のために使用され、外部ブロックが任意で使用する出力として引き渡される。クロックのディスエーブル化を管理するための信号も生成され、これらの信号は、節電又はその他の目的のために1つ以上のクロックをディスエーブル又はイネーブルにするために使用することができる。信号TCXO_DISは、クロックをディスエーブルにするためにアサートされる。信号RESET_TCXO_DISは、クロックを再度イネーブルにするためにアサートされる。図14に示される信号の各々の使用を例示した実施形態例が以下においてさらに詳細に説明される。
SSBIスレーブコンバータブロック1420は、1線モードと3線モードの間において多重化するために、スレーブがこれらのいずれのモードにあるかを決定することができる。モード決定は、パッド(すなわち、パッド1430及び1440)からのSBCK及びSBSTを検査することによって行われる。3線モードにおいては、SBST=1及びSBCK=0の状態は絶対に存在せず、従ってSBI/SSBI多重化を制御するSSBI_MODEをアサートするために該状態を使用することができる。上述されるように、この例においては、SSBI_MODEは、その他の様々な目的のために必要な場合はSSBIスレーブコンバータ1420からも出力される。この機能を例示する実施形態例が以下において詳細に説明される。
図14に示されるスレーブデバイス230は、上述されるように、1線通信又は3線通信のいずれに関しても使用可能である。一実施形態例においては、このスレーブデバイス230は、単線SSBI通信のみをサポートするように構成することができる。図13は、SSBI通信専用のSSBIスレーブ1310から成るスレーブデバイスを示した図である。図15は、図14に示されるSBIスレーブ1220とSSBIスレーブコンバータ1420を具備するスレーブデバイス230をSSBIモード専用に使用可能な構成を示した図である。この例においては、SBCK入力は、アースに連結することができる。SBSTは、ハイの状態で連結することができる。このことは、SSBIスレーブコンバータ1420がSSBIモードにとどまるように指示することになる。モードピン及びその他の選択デバイスは必要ないことに注目すること。従って、SSBI_DATAをSBDT/SSBI_DATA共同パッドに直接接続することができ、それによってSSBI通信を行うことができる。
図16は、基本的には図15に示されていることと同じことを行う他の実施形態を示した図である。しかしながら、この例においては、SBCK_IN及びSBST_INに関するピンを取り除くことが可能である(すなわち、パッド1430及び1440が取り除かれるか又はその他の目的のために使用される)。スレーブデバイス230の内部においては、SSBIスレーブコンバータ1420へのSBCK入力はローの状態で連結され、SBSTはハイの状態で連結される。従って、1線/3線結合スレーブを設計することができ、これらの単純な修正によってSBIモードに関する余分のピンが不要になる。残りの接続は、図14に関する説明と同一である。
1線から3線への変換を行うために様々な技術を使用することができる。SSBIスレーブコンバータブロック1420は、SBDTデータストリームを検査してSBCK及びSBSTを生成する。以下において詳述される様々な実施形態例は、この変換を行うための技術を示したものである。特に、変換に伴って3つの課題が生じる可能性がある。第1に、1線方式のデータ速度を3線方式と一致させるべきである。第2に、1回の転送における可変数のレジスタ読み取りと書き込みをサポートすることができる必要がある。第3に、スレーブSBIブロックは、複数のアクセス転送中に有効にリセットする必要がある。
第1の課題に関して、1線方式及び3線方式が同じデータ速度を採用している場合は、この課題は明らかに解決済みである。これらの方式が同じデータ速度を採用していない場合は、これらの2つの方式間でのデータ速度の違いに対応するためのバッファを用いることができる。当業者は、様々な実施形態において正確なバッファリングを行う方法を理解することになり、このため該バッファリングは本明細書においては詳述されない。以下の実施形態例においては、SBIインタフェースとSSBIインタフェースとの間において共通の速度が共有されているが、その他の代替実施形態も構想されている。
第2の課題に関しては、3線SBIプロトコルは転送の開始と終了を表すためにSBSTを使用し、従って、所定の転送は、1つ以上のレジスタ読み取り及び書き込みを含むことができる。1線バスを用いた場合は、マルチアクセス転送の最後のレジスタアクセスが完了されたときにスレーブに知らせる必要がある。一実施形態においては、予想すべきレジスタアクセス数を指定したヘッダを各転送に加えることができる。この追加は、オーバーヘッドを導入する可能性がある。代替実施形態においては、最後のレジスタアクセスが完了後に終了シンボルを送信することができる。この送信もオーバーヘッドを追加させるが、該オーバーヘッドは、ヘッダを用いた場合よりも低くなる。以下において詳細に説明される実施形態においては、第2の課題を解決するために終了シンボルが使用される。前記終了シンボルが受信機によって観測された時点で、該受信機は、転送が終了していることを知り、アイドル状態に入って次の開始ビットを待つことができる。前記終了シンボルは、この動作モードに関して使用時、具体的には3線プロトコル及び1線プロトコルの両プロトコルをサポートする必要があるスレーブとインタフェース時には任意で挿入される。前記終了シンボルは、代替実施形態においては導入する必要がない。
終了シンボルは、正規のデータストリームに関して一意にする必要がある。この実施形態例においては、終了シンボルは、4サイクルに関する各クロックサイクルごとに交互する一つのシーケンスの高値と低値であると定義される。本明細書において詳述される実施形態例においては、該シーケンスは1010であるが、当業者にとっては代替シーケンスも明確に理解できるであろう。信号は、通常の通信において2つのクロックサイクルごとに交互する代わりに、終了シーケンスにおいて各クロックサイクルごとに交互するため、データストリーム内において一意で区別される。従って、終了シーケンス(“T”)は何時でも送信することが可能である。以下では、終了シンボルを検出するための受信機回路例が図34に関して詳細に説明され、該図は、終了シンボルを含むデータラインに関する波形を示している。
第3の課題に関しては、スレーブSSBIブロックは、終了シンボルが転送完了時点を決定するのを待つ。従って、スレーブが転送中にマスターがアイドル状態に入ったときにこれらのマスターとスレーブが非同期状態になる可能性がある。このように状況においては、スレーブは、マスターが開始させる次の転送が終了するまで無期限にこの状態にとどまる。このため、スレーブがより素早くアイドル状態になるように強制するために、終了シンボルを独断的に送信するためのオプションが提供される。以下の詳細な実施形態において該技術が説明される。
SSBIマスター
SSBIマスターを含むいずれの実施形態においても、1つ以上のSSBIマスターブロック1110を使用することができる。SSBIマスター1110は同一であることができ、又は1つ以上のSSBIマスター1110を何らかの方法でカスタム化することが可能である。本節においては、SSBIマスターブロック例1110が説明される。この例に関するポートの詳細が表2に示されている。書き込み手順及び読み取り手順に関するタイミング図の詳細が図17及び18にそれぞれ示されている。マスターデバイス及びスレーブデバイスにおけるクロック間の相関関係が図19に示されている。図20乃至22は、SSBIマスター例1110において使用するのに適した論理例の各部分の詳細を示した図である。これら実施形態例は例示することのみを目的とするものであって本明細書における教義に鑑みて様々な代替実施形態も可能であることが当業者に明確になるであろう。
一SSBIマスター例は次のような特性を有することができる。すなわち、信号が浮動しないようにするためのキーパー及びイネーブルにすることができるプルダウンデバイス(詳細は示されていない)を備えた状態でSSBI_DATA用のパッド(すなわち1120)とともに動作することができる。代替のパッド構成に関する修正は、当業者にとって明確に理解できるであろう。現在のSSBIトランザクションが完了しているかどうかをソフトウェアが決定するのを可能にする状態ビットを提供することができる。読み取りに関しては、これらのトランザクションは、要求中の論理又はソフトウェアアプリケーションが戻されたデータを読み取るまで完了されたとみなすことができない。ハードウェアイネーブル信号がアサートするまでSSBIコマンドを無効な状態に保持することができるか又は該イネーブル信号が既にアサートされている場合はただちに有効になるようなモードを提供することができる。例えば、スレーブデバイスが一貫した状態にあるときに該スレーブデバイスの測定を行うことができる。書き込みが発生している時点を示す出力信号を提供することができる。従って、要求中の論理又はアプリケーションは、完了された書き込みに関する知識を利用して後続の行動をすることが可能である。この機能は、例えば校正を必要とするRFIC等のスレーブデバイスを構成時に役立つ。
SSBIマスター1110は、読み取り要求または書き込み要求を1線SSBIバスでのシグナリングに変換することを担当する。このブロックは、SSBIバスからの読み取りレジスタデータを非シリアル化することも担当している。複数の制御当事者(ホストと呼ばれる)からの要求を仲裁するための任意のSSBIアービターブロック(図示されていない)を導入することができる。アービターは、SSBIマスター1110によって予想されるシグナリングと同じシグナリングを用いるホストからの要求を受け取る。アービターは仲裁を行い、最終的に認められたホストの要求が通過することを許容し、その他のホストからの要求を抑止する。ホストの型に依存して、異なる論理を使用することができる。SSBIマスター1110は、ホスト、すなわちマイクロプロセッサがソフトウェアを通じてSSBIによるアクセスをプログラミングできるようなインタフェースを提供するために使用することができる。例えば3つのホストとともに展開されるシステムは、アービター及び1つ以上のSSBIマスターを含む基本ブロックを用いて展開させることができ、他方、1つのホストのみを要求するシステムは、アービターなしで展開させることができ、該ホストは、SSBIマスターバスインタフェースと直接インタフェースすることが可能である。
実施形態を採用する際の柔軟性を示す一例として、様々なSSBIブロックをパラメータで表すためのハードウェアパラメータSSBI_DATA_WDが定義されている。図17乃至19、24と25、28、33と34、及び関連図において描かれている読み取り/書き込みタイミング波形は、SSBI_DATA_WD=8に対応する。
図17乃至22は、SSBIマスター1110の一実施形態例を示した図である。この実施形態は、ネイティブSSBIフォーマットのみをサポートする必要があるときに採用するのに適している。様々な代替実施形態に関して様々な修正を行うことが可能である。以下では、SSBIバスを通じてのFTM転送(レガシーSBIフォーマットの一例)をサポートするための本実施形態の修正が代替実施形態において説明され、図28乃至31に関して詳述される。
上述されるように、1つ以上の様々な型のホストが、通信のための1つ以上のアービター及びその他のインタフェース論理を用いて、SSBIマスター1110とインタフェースすることができる。一実施形態例においては、これらのホストの1つ以上は、マイクロプロセッサ、DSP、その他の汎用又は専用のプロセッサ、又は該インタフェースに関して使用されるその他の論理であることができる。表2に示されるように、例示を明確化するために入力信号と出力信号及び/又はコマンドが定義されている。これらの入力信号、出力信号及びコマンドは、以下において、これらの信号及びコマンドを生成するための実施形態例又はこれらの信号及びコマンドに応答するための実施形態例とともにさらに詳細に説明される。当業者は、使用可能な様々な代替インタフェース設計を理解するであろう。マイクロプロセッサ等の様々なホストは、書き込み、読み取り、及び状態結果と信号を戻す等のアクセスを行うための様々なインタフェースを有することが可能であるため、当業者は、例示されているインタフェースを容易に修正すること、又は様々な型の1つ以上のホストとインタフェースするための適切な論理を決定することができる。次の説明では、説明を明確化するためにこれらの詳細は省略される。一般例として、ホストは、読み取り、書き込み、データ、アドレス、及びその他の信号のあらゆる組合せを用いてSSBIマスターとインタフェースしてコマンドを生成すること及びパラメータを設定することができる。パラメータを設定するため又はコマンドを出すために、予め定義されたレジスタ又はその内部のビット記憶場所への書き込み又は該レジスタ又はビット記憶場所からの読み取りを使用することができ、この技術は、当業においてはよく知られている技術である。
SSBIマスター1110は、SSBIバスとインタフェースする。SSBIマスター1110は、実行すべきSSBIコマンドを記述する信号を受信し、シリアルSSBIデータストリームを生成又はモニタリングする。このSSBI例は、どれだけの数のエンティティ(すなわちホスト)がSSBIコマンドを開始することができるかに関して両面的価値を有しており、このブロックの外部においてあらゆる希望される仲裁又は多重化が対処される。この例においては、SSBIマスターは、アクセス要求またはその他のコマンドを受け取るまでアイドル状態である。SSBIマスターは、アクセス要求またはその他のコマンドを受け取った時点で、確認応答ラインをアサートし、トランザクションを実行し、アクセスが完了した時点で完了ラインに関するパルスを生成し、次のアクセスを開始させる準備が完了していることを示す。読み取り及び書き込みの両方に関して、トランザクションがサンプリング済みであって開始中であるときに確認応答信号がパルスする。どのような論理(すなわちホスト)が要求を行った場合も、次の要求の準備を行うためにレジスタ情報(アドレス、データ、等)を変更することができ、希望する場合は要求ラインを再度アサートすることができる。第1のアクセスが完了された時点で、完了信号がアサートする。書き込みコマンドは完了信号のモニタリングを要求できない一方で、該情報が要求中のアプリケーションのいずれかの一部分に関して有用であることを除き、完了信号は、戻されたデータを読み取りのためにサンプリングするのに有用である。
書き込み及び読み取りに関するタイミング図が図17及び18にそれぞれ示されている。これらの図に対応する説明は、図20乃至22に関して詳述されている以下の実施形態例に対しても当てはまる。両方のアクセス型に関して、別々のSSBI_DATA_IN及びSSBI_DATA_OUTの代わりに結合されたSSBI_DATAバスが示されている。パッド回路の一構成例においては、SSBI_DATA_OUT上のすべてのものがSSBI_DATA_IN上に現れる。書き込みの場合は、SSBI_DATA_INは無視される。読み取りの場合は、SSBI_DATA_OUTは、SSBI_DATA_OEが要求されたときのみにSSBI_DATAパッド上に駆動される。SSBI_DATAに関する波形は、表記法RWを使用して読み取り/書き込みビットを表し(この例においては、1が読み取り、0が書き込み)、アドレスビットの場合がA7乃至A0,データビットの場合がD7乃至D0(SSBI_DATA_WD=8)、ポーズビットの場合がPである。代替実施形態は、上記よりも小さいか又は大きいアドレス空間、及び異なるデータ幅(すなわち、SSBI_DATA_WD=8でない)を含むことが可能である点に注目すること。
SSBIマスターは、リセットされてアイドル状態になり(STATEライン上で示される)、REQがアサートするのを観測するまでアイドル状態にとどまる。REQがアサートした時点で、SSBIマスターは、その他の入力信号をサンプリングし、ACKをアサートし、SSBI_DATA上に出力されるシリアルデータストリームを生成する。該アクセスの終了時に、変換が完了していることを示すDONEがパルスされる。ACKがアサートした時点で、次のクロックサイクル以降において、次のアクセスに関するREQをアサートすることができる。該アクセスは、現在のアクセスが完了するまで保留される。この例においては、REQ、ADDR、WR_DATA(書き込みの場合)及びREADは、ACKが次のアクセスに関してアサートするまでは該アクセスに関するパラメータを反映させることになり(これらのパラメータは該アサート後に後続するアクセスに関して変化することができる)。図17及び18においては、第2のアクセス(REQ及びACK)は点線で示されている。第1の要求が完了する前に第2の要求が行われた場合は、SSBIマスターは、介在するアイドルシンボルなしで次の転送を開始することができる。スレーブは、開始シンボルを検出るためにローからハイへの遷移を観測する必要がないようにすべきである。スレーブは、先行するアイドルシンボルなしで開始シンボルをサンプリングできるようにすべきであり、SSBIマスターは、このオプションをサポートするように設計することが可能である。しかしながら、この実施形態においては、各転送間において希望に応じて1乃至3のアイドルシンボルをアサートするために、ソフトウェアによってプログラミング可能なパラメータIDLE_SYMSが定義されている。
図17において、REQがアサート時に、ADDR、WR_DATA及びREADが開始ビットとともにサンプリングされてシフトレジスタ(すなわち、シフトレジスタ2130と2140、及びフリップフロップ2110)内に入れられる。STATEは、SAMPLE(1)になり、STBがトグルを開始する。STBは、送信されたシンボルをBITCNTにカウントさせるカウンタイネーブルとして機能する。転送の18の全ビット(開始ビット+READ+ADDR+DATA)が、1クロックサイクルおきにシフトレジスタによってシフトされる。最後のシンボル(D0)の後半中にDONEがパルスされる。以下において紹介される他の信号DONE_DELX(図17には示されていない)もこの時点でパルスすることができ、又はIDEL_SYMSシンボル時間後にパルスすることができる。未処理要求が存在していない場合は、DONE_DELXはSTATEをアイドル(0)にリセットし、SSBIマスターは、REQの次のアサーションを待つ。未処理要求が存在する場合は、DONE_DELXがアサートするサイクルと同じサイクル中にREQ信号が有効に観測され、後続サイクルにおいてACKをアサートさせ、STATEをSAMPLE(1)に維持する。該転送は、第1の転送に関する説明どおりに続行する。
図18は、読み取り動作を示した図である。該ブロックは、書き込みに関するステップと同じステップを実行するが、A0が送信された時点でSSBI_DATA_OEがデアサートする。これで、接続されたスレーブデバイスは、スレーブレジスタデータを戻すためのバスの制御を有する。該スレーブが該データを戻した時点で、別のポーズビットが存在しており、該ポーズビット後にマスターがバスを再駆動することができる。読み取りビットはシフトレジスタ(すなわち、シフトレジスタ2130及び2140)に入り、該シフトレジスタは、DONEアサーションに先行するサイクルにおいて再ラッチされる。この動作は、本例においては、RD_DATAは大量の多重化又はその他の論理を提供中の可能性があるためRD_DATAが不必要にトグルするのを防止することを目的として行われる。RD_DATAを受け取った論理は、DONEをイネーブルとして用いてサンプリングすることができる。後続する要求は、上述される書き込みと同じように処理することができる。
一考慮事項は、SSBIマスターが読み取りビットに関するSSBI_DATAバスをサンプリングすべき時点である。理想的な事例においては、SSBI_DATAバスは、マスターにとっては図18に示されるようにみえるべきである。しかしながら、このような理想的な状況を妨げる様々な要因が存在する可能性がある。例えば、受信機におけるブラインド位相の検出に起因するサンプリング上の不確実性、及びパッド、ボード、及び内部チップに関する遅延を含む様々な遅延を挙げることができる。
図19は、これらの現象を示した図である。最上部の波形は、SSBIマスターにおけるSSBI_CLKを示している。第2の対の波形は、遅延がないと仮定した場合にSSBI_DATAがマスターデバイス及びスレーブデバイスにおいてどのように見えるかを示した図である。第3の組の波形は、各方向においてSSBI_CLKサイクルの遅延の1/2の遅延が存在するときにどのような状況になるかを示した図である。この場合の影響としては、読み取りデータは、遅延が存在しない場合よりも1つの全クロック時間だけ遅れてマスターデバイスにおけるSSBI_DATA上に現れる可能性がある。さらに、このスレーブデバイス例は、クロック時間内の25乃至75%の時点においてシンボルをサンプリングする。その結果、マスター側において正確な時間にデータのサンプリングが行われるかどうかが不確実である。
該実施形態例においては、これらの影響を軽減するためのある程度の柔軟性がSSBIマスター内に追加される。例えば、最高3つのクロック時間の遅延を処理できる強固なシステムを考慮した、ソフトウェアによってプログラミングされた2つの機能が存在する。
第1の機能は、SSBI_DATA_INを遅延させることである。上述されるように、真のブラインド位相が検出されたと仮定した場合には、スレーブデバイスにおけるサンプリング上の不確実性は、マスターデバイスにおいて調整することができない。しかしながら、1つの所定のSSBIポートに関する遅延は、1つの所定のシステム展開においては相対的に固定されることになる。その結果、遅延がほとんどまったく存在しない場合は、サンプリングポイントをより早期にプルインすることができる。遅延が相対的に大きい場合は、サンプリングポイントをプッシュアウトすることができる。SSBIマスター例においてこの動作を容易に達成させるために、入ってきたSSBI_DATA_IN信号を0、0.5、1又は1.5クロック時間だけ遅延させる柔軟性が追加されている。従って、すべての場合に関して、SSBI_DATA_INの遅延されたSSBI_DATA_INがシンボル時間終了時に図18においてサンプリングされる。いずれの所定の展開においても、その他の遅延(より少ない選択肢又はより多い選択肢を含む)を使用することができる(すなわち、0.5サイクル及び1.5サイクルのみ)。
第2の機能は、スレーブデバイスによって戻されたRD_DATAが取得されるBITCNTサイクルの制御を可能にする。図18においては、RD_DATAはサイクル19において入手可能であることが示されている。しかしながら、データは、19よりも後のサイクルにおいても取得可能である。RD_DATAが準備完了状態になる時間を与えるために、SSBIマスターがSSBI_DATAラインの制御を取り戻す時点も調整可能である。この機能は、パラメータSEL_RD_DATAに基づいて制御される。例えば、SEL_RD_DATA=00であるときには、以下において詳述される図20及び22の太字数字が図示されるように使用される。SEL_RD_DATA=01であるときには、これらの数字は1だけ増加される。
上記の設定は、様々な技術を用いて選択することができる。一技術は、設計者がタイミングを慎重に検討して様々な遅延を理解することである。代替として、試行錯誤手法が適切な場合がある。例えば、特定の値を予想するスレーブレジスタを単純に読み取り、戻された値が正しくない場合は設定を調整する手順を用いることができる。
図20乃至22は、SSBIマスター例1110に導入するのに適した回路例を示した図である。当業者は、本明細書における教義に鑑みて様々な修正及び代替を明確に理解するであろう。図20の最上部は、SSBI_DATA_DELに基づいてSSBI_DATA_INを遅延させる論理を示した図である。SSBI_DATA_IN_DELは次のようにして生成される。すなわち、SSBI_DATAがフリップフロップ2010及び2030内に提供される。図20乃至22のすべてのクロックされるデバイスは、SSBI_CLK又はその反転(クロック入力前部のバブルの従来の表記法で示される)によってクロックされる。フリップフロップ2010はSSBI_CLKの反転によってクロックされ、フリップフロップ2030はSSBI_CLKによって直接クロックされることに注目すること。フリップフロップ2010の出力は、フリップフロップ2020の入力に指向される。SSBI_DATA_INは、フリップフロップ2010乃至2030の出力と同じように、マルチプレクサ2040の1つの入力に引き渡される。SSBI_DATA_DELは、マルチプレクサ2040の1つの入力を出力、すなわちSSBI_DATA_IN_DELとして選択するために使用される。
図20において、IDEL_SYMSに基づいてDONE_DELXを生成する論理が示されている。この例においては、DONE_DELXは、論理2050において、STBのANDとして及び(NOT SREAD AND BITCNT=17+IDLE_SYMS)及び(SREAD and BITCNT=19 + IDLE_SYMS)のORとして形成される。太字の数字はSEL_RD_DATA=0に対応すること、及びこれらの数字は上述されるようにその他の値に変更可能であることを思い出すこと。
図21は、図17及び18に関して上述されるシフトレジスタチェーン全体を示した図である。このチェーンは、最下位ビットから始まり、SSBI_DATA_WDビットシフトレジスタ2140、9ビットシフトレジスタ2130、及びSSBI_DATA_OUTを駆動するシングルレジスタ(又はフリップフロップ)2110によって構成される。この例においては、1ビットレジスタ2110は、最初に開始シンボルがプリローディングされる。信号REQPは、要求情報をシフトレジスタチェーン内にラッチするために使用される。9ビットシフトレジスタ2130は、読み取り/書き込みビット及びアドレスビットがプリローディングされる(&は連結を表す)。SSBI_DATA_WDビットシフトレジスタ2140は、書き込み動作に関しては書き込みデータ、読み取り動作に関してはすべて0がプリローディングされる。0は、読み取り動作終了時に、この例においてはアイドル状態に関して使用されるSSBI_DATA_OUTを提供する1ビットレジタス2110内に0が入るようにする。信号STBは、シフトレジスタチェーンがシフトするのを可能にするために使用される。転送中は、STBは、1クロックサイクルおきにアサートする(以下において詳細に説明される)。
シフトレジスタ2140へのシフト入力は、マルチプレクサ2150の出力として決定され、SSBI_DATA_OEがアサートされたときに0を選択し、その他の場合はSSBI_DATA_IN_DELを選択する。シフトレジスタ2140の並列出力は、RD_DATA_PREとして利用可能にすることができる。シフトレジスタ2140のシフト出力は、シフトレジスタ2130のシフト入力に接続される。シフトレジスタ2140のシフト出力は、この例においては他のオプション機能を示すための追加の論理を検出する。OVR_MODEがアサートされたときに、パラメータOVR_VALUEによって示された値がシフトレジスタ2130のシフト出力のOR2120を(通常のSSBIの動作において用いられる)REQPでオーバーライドするのを許容するオーバーライドモードが定義されており、この例においてはマルチプレクサ2160において選択される。マルチプレクサ2160の出力は、フリップフロップ2110(RESETによってリセット可能なフリップフロップとして示される)の入力に引き渡される。フリップフロップ2110の出力は、SSBI_DATA_OUTを生成する。
図22は、SSBIマスター1110に関する追加の制御論理を示した図である。STATEが1(セット/リセット(SR)フリップフロップ2220の出力)になった時点で、BITCNTを生成するためのカウンタ2228がイネーブルにされる。書き込みに関しては、シフトレジスタチェーン(2110、2130、及び2140)は、すべてのデータが出て行くまで1クロックサイクルおきにイネーブルにされ、該チェーン内に0がシフトされる。読み取りに関しては、開始シンボル及びアドレスビットがシフトアウトされ、0がシフトインされる。しかしながら、入り読み取りデータをサンプリング時には、書き込みデータに関して用いられるSSBI_DATA_WDビットシフトレジスタ2140によってSSBI_DATA_IN_DELがサンプリングされる。読み取りデータのすべてのビットがシフトインされた時点で、RD_DATA_PREにおいて利用可能になり、DONEのアサーション前のサイクル内においてRD_DATAを生成するためにレジスタ2208において再ラッチされる。このイネーブルは、SREAD、NOT STB、NOT RESET、及びBITCNT=19のANDとして形成される。
STATEは、SRフリップフロップ2220の出力として生成される。SRフリップフロップ2220へのセット入力は、REQ及びNOT RESETのAND2216として形成される。SRフリップフロップ2220へのリセット入力は、DONE_DELX及びRESETのOR2218として形成される。
STB(CNT_ENとも呼ばれる)は、リセット可能フリップフロップ2224の出力として形成される。このフリップフロップへの入力は、その出力の反転2226であり、従って、フリップフロップがリセットされていないときに1クロックサイクルごとに交互するSTBが生成される。リセット入力は、REQP及びNOT STATEのOR2222として形成される。
BITCNT(この例においては5ビット信号であり、代替実施形態は、図20乃至22を通じて代替値を要求する異なるパラメータを提供することができる)は、カウンタ2228の出力として形成される。カウンタ2228のリセットは、フリップフロップ2224のリセットと同一である。カウンタ2228のイネーブルはCNT_EN(又はSTB)であり、上述されるように、送信中または受信中におけるカウントを可能にする。
SREADは、フリップフロップ2210の出力として形成され、信号RESETを通じてリセットされる。フリップフロップ2210は、REQPによってイネーブルにされる。フリップフロップ2210へのD入力は、READである。
この例においては、その他の論理によって使用するために信号READ_REQ_SERVEDがSREAD及びSTATEのAND2230として生成される。
REQPは、REQのAND2204及びNOT STATE(STATE_INV)とDONE_DELXのOR2202として形成される。REQPは、ACKを生成するためにフリップフロップ2206において1クロックサイクルだけ遅延される。
この例においては、リセット時に、STATE及びSSBI_DATA_OUTが同期的にクリアされる。SSBI_DATA_PDENは、非同期的にセットしてSSBI_DATA_OEをローにする。この例においては、ソフトウェアアプリケーションは、何らかのSSBI活動を開始時に、制御レジスタに書き込むか、又は何らかの代替のシグナリング技術を用いてSSBI_DATA_PDENビットをリセットする。このリセットは、SSBI_DATA_OEを“1”に変更し、SSBIマスター1110は、(上述されるように)SSBI_DATAにおいて“0”の駆動を開始する。以上のように、SSBI_DATA_OEは、NOT SSBI_DATA_PDEN及びフリップフロップ2212の出力のAND2214として形成される。フリップフロップ2212は、RESETでリセットされる。フリップフロップ2212は、STBによってイネーブルにされる。フリップフロップ2212へのD入力は、BITCNT<9、BITCNT≧19、及びNOT SREADのORとして形成される。
繰り返しになるが、太字の数字はSEL_RD_DATA=0に対応し、これらの数字は上述されるようにその他の値に関して修正可能であることを思い出すこと。図22内のすべてのレジスタは、SSBI_CLKによってクロックされる。
SSBIスレーブ
図23は、SSBIスレーブ1310の一実施形態例を示した図である。SSBIスレーブバスインタフェース例のポートに関する説明が表3において詳述されている。この例においては、SSBIスレーブバスインタフェース2310は、スレーブレジスタブロック2320と接続される。単線SSBIデータバスは、パッド(図示されていない)と接続され、入データは、SSBI_DATA_IN上のSSBIスレーブバスインタフェース2310に引き渡される。出データは、SSBI_DATA_OUTにおいて引き渡され、該パッドの方向性はSSBI_DATA_OEを介して制御される。SSBI_CLK信号は、クロックとしてSSBIスレーブバスインタフェース2310に引き渡される。スレーブレジスタブロック2320は、SSBI_CLKを受信することもできるが、任意である(SSBI_CLKが動作可能であるかを決定するための任意の機構が以下において詳述される)。スレーブレジスタアクセスは、ADDR信号、WR_STB信号、WR_DATA信号、及びRD_DATA信号を介してSSBIスレーブバスインタフェース2310とスレーブレジスタ2320との間で行われる。スレーブレジスタの出力は、スレーブデバイス230によって使用するために引き渡される。スレーブデバイス230からの読み取り値は、SSBIバスを介してアクセスするためにスレーブレジスタ2320に引き渡される。
SSBIスレーブバスインタフェース2310は、1線バス信号に関するシリアル−パラレル変換を行って該信号を読み取り要求または書き込み要求に変換することを担当する。この要求は、書き込みレジスタを内蔵していて読み取りレジスタの多重化を担当するスレーブレジスタブロック2320に送られる。この構成例は、SSBIスレーブバスインタフェース2310は様々なスレーブ設計に関して同一になるように設計することができ、その一方でスレーブに特有の論理をスレーブレジスタブロック2320において使用可能であるという利点を有する一実施形態である。様々な代替実施形態も採用可能である。
SSBIスレーブバスインタフェース2310は、SSBI_DATAラインを検討して、転送開始を表す開始シンボルの有無を確認する。次に、SSBIスレーブバスインタフェース2310は第1のシンボルを検討して読み取り又は書き込みのいずれであるかを決定し、次にアドレスビット内を走査する。すべてのアドレスビットが走査された時点で、これらのアドレスビットがADDRとしてスレーブレジスタブロック2320に送り出される。書き込みに関しては、これらのデータビットがシフトインされ、WR_DATAとしてストローブWR_STBとともにスレーブレジスタブロック2320に提供される。WR_STBは、アドレス(ADDR)フィールド及びデータ(WR_DATA)フィールドをサンプリングするためにスレーブレジスタブロック2320によって使用される。読み取りに関しては、ADDRがスレーブレジスタブロック2320に渡された後のポーズビット中に、SSBI読み取りレジスタデータ(RD_DATA)がSSBIスレーブバスインタフェース2310によってサンプリングされ、1ビットずつSSBIバス上にシフトアウトされる。単一のトランザクションが完了した時点で、SSBIスレーブバスインタフェース2310は、次の開始ビットを待つ。
この例においては、終了シンボル(上記のBTM,等)によって終了された複数のトランザクションは許容されない。この構成は単純化された設計(より少ないハードウェア、より少ない試験対象事例)を提供し、複数の転送を許容しても利益がほとんどないとき、すなわち個々の転送に関するオーバーヘッドが相対的に小さいときに採用するのに適している。代替実施形態は、終了シンボルによって終了された複数のトランザクションを許容する。
代替実施形態においては、SSBIスレーブバスインタフェース2310のその他のバージョンを採用することができる。1つの相違点は、出力ポート数である。一構成は、一組のADDR、WR_STB、WR_DATA、及びRD_DATA、又はこれらの信号の追加の組を有することができる。追加の組を含めることによって、複数の組の読み取り及び/又は書き込みレジスタに独立してアクセス可能である。もう1つの選択肢は、読み取りデータ及び書き込みデータに関して双方向データバス又は別個のバスを有することである。その他の様々な代替方法も当業者によって明確に理解されるであろう。説明を明確化するため、以下において詳述される実施形態例は、読み取りデータ及び書き込みデータに関して別個のバスを有する単一の組のADDR、WR_STB、WR_DATA、及びRD_DATAを具備することになる。
書き込み及び読み取りは、図24及び25においてそれぞれ別々に示されている。これらの図に対応する説明は、図26及び27に関して詳述されている以下の実施形態例にも当てはめることができる。読み取り/書き込みタイミングは、SSBI_DATA_WDが8の場合が対象になっている。SSBI_DATA_WDに関する代替実施形態が図26乃至27に関して説明されている。両方のアクセス型に関して、別々のSSBI_DATA_IN及びSSBI_DATA_OUTの代わりに結合されたSSBI_DATAバスが示されている。一パッド回路構成例においては、SSBI_DATA_OUT上のすべてのものがSSBI_DATA_IN上に現れる。書き込みに関して、SSBI_DATA_INは無視される。読み取りに関して、SSBI_DATA_OUTは、SSBI_DATA_OEがアサートされたときのみにSSBI_DATAパッド上に駆動される。SSBI_DATAに関する波形は、読み取り/書き込みビットを表すために表記法RWを使用し(この例では、1が読み取りで0が書き込み)、アドレスビットはA7乃至A0、データビットはD7乃至D0、ポーズビットはPである。代替実施形態は、上記よりも小さい又は大きいアドレス空間、及び異なるデータ幅(すなわち、SSBI_DATA_WD=8でない)を含むことが可能である点に注目すること。
図24において、開始ビットが見つかった時点で、FOUND_STがハイになる。FOUND_STは、STATEがアイドル(0)のときにはハイが見つかるまで単純に1クロックサイクルごとにSSBI_DATAをサンプリングする論理を通じて生成される。FOUND_STは、メタスタビリティの解決を可能性にするために半クロックサイクル遅れて生成される。FOUND_STは、STATEがサンプル(1)になるようにし、それによってSTBがトグルするのを許容する。STBは、BITCNTに値を増加させる。STBは、シンボルをサンプリングしてシフトレジスタ(すなわち、2628)内に入れるためのイネーブルとして使用される。シフトレジスタは、INPUT_DATA_SIZEによって示される幾つかのビットを有する。この定数は、8又はSSBI_DATA_WDのうちの大きいほうの値を有する。BITCNT(すなわち、2646)は、いくつのビットがサンプリングされているかを追跡する。すべてのアドレスビットがラッチインされた時点で(BITCNT=8によって表される)、シフトレジスタの内容が再ラッチされ(すなわち、2634)、ADDR上に出力される。この再ラッチは任意であり、ADDRは合理的に大量の多重化論理を提供可能であるためスレーブレジスタブロック内において電力を節約することを目的として行われる。同様に、すべてのデービットがラッチインされた時点で(BITCNT=16によって表される)、シフトレジスタの内容が再ラッチされ(すなわち、2636)、WR_DTAT上に出力される。スレーブレジスタブロック2320が書き込みの実行を知るようにするためにWR_STBがパルスされる。BITCNT=17のときにDONEがアサートしてSTATEをアイドル(0)にリセットし、このため必要な場合はプロセスを繰り返すことができる。
図25は、読み取り動作を示した図である。該ブロックは、ADDRにおけるアドレス出力までに関して書き込みに関するステップと同じステップを実行する。前図には示されていないが、ADDRに基づいてRD_DATAを多重化することが可能であり、このため、書き込みに関しても、RD_DATAは、無視されるにもかからわらず、ADDRが変化時に変化する可能性がある。BITCNT=9サイクル中に、RD_DATAがサンプリングされてシフトレジスタ(すなわち、2660)内に入れられ、1ビットずつSSBI_DATAライン上にシフトされる。SSBI_DATA_OEは、どの時点でSSBI_DATAパッド上にデータを駆動するかを示すためにアサートし、すべてのデータがバス上にシフトされるまでハイの状態を維持する。BITCNT=19のときにDONEがアサートしてSTATEをアイドルにリセットし、このため必要な場合にプロセスを繰り返すことができる。
読み取りデータは1つの全クロックサイクル(1シンボル時間の1/2)だけ早期に出力されることに注目すること。この早期の出力は、アドレスデータと読み取りデータの間におけるポーズビットの有効性を低下させる。この場合は、1クロックサイクルのオーバーラップしない時間が存在する。この手法の1つの利点は、SSBI書き込みデータが観測されることになるときにSSBI読み取りデータがシフトアウトされた場合は、マスターの観点からは、ラウンドトリップ遅延に起因して該読み取りデータが遅れて現れることになる。該読み取りデータを早期に出力することによって、ラウンドトリップ遅延によってオフセットされ、マスターが該読み取りデータを見ることになると実際に予想する時点により近い時点で現れるようにする。
ブラインド位相検出に起因して、SSBI_CLKが図に示されるようにSSBI_DATAと整列されることになる保証はない。これらの図は、1つの極端な事例、おそらく「最良の事例」におけるSSBI_CLKを示した図である。「最悪の事例」は、開始ビットが1つの全クロックサイクル後に見つけられ、その結果すべての信号(SSBI_DATAを除く)が1クロックサイクルだけ右にシフトされる事例である。この事例では問題は発生しない。シンボルは、シンボル時間に25%入った時点までサンプリングされる代わりに、シンボル時間に75%入った時点までサンプリングされる。読み取りに関しては、SBI読み取りデータを1/2シンボル時間だけ早期に駆動する代わりに、1/2シンボル時間だけ遅くなる。この1サイクルの可変性は、LATE信号を用いることによって1/2サイクルに低下される。該信号は、FOUND_STに関する回路と同様の回路によって生成される(以下において両回路が詳述される)。ただし、反対側のクロックエッジにおいて機能する。LATEが0のときは、SSBI_DATA_OUT及びSSBI_DATA_OEは、使用前に1/2クロックサイクルだけ遅延される。LATEが1のときには、SSBI_DATA_OUT及びSSBI_DATA_OEはそのままの状態で使用される。LATE信号と関連づけられた回路は、上述されておりさらに図32乃至35に関してさらに詳細に説明されているSSBIスレーブコンバータ1420に関する回路でもある。
マスターデバイス220が本明細書においてはTCXO_DISと呼ばれる何らかのスレーブレジスタビットをセットすることによってスレーブクロックをディスエーブルにする別の任意の機能を含めることができる。このビットがセットされたときには、スレーブSSBI_CLKがオフになる。クロックを再度イネーブルにする場合は、マスターデバイスはシーケンス0−1−0をスレーブに送信する。このシーケンスがスレーブによって取得され、スレーブはRESET_TCXO_DIS信号を生成する。この信号は、TCXO_DISをリセットし、それによってスレーブに関するSSBI_CLKを再度イネーブルにする。この機能は、マスターがSBIスレーブデバイスをスリープモードにすることを可能にし、従って電力を節約する(以下において詳細に説明される)。
図26は、SSBIスレーブバスインタフェース例2310において採用するのに適した回路例を示した図である。論理、ステートマシン、マイクロコード、ソフトウェア、等のあらゆる組合せを用いて、示されている制御機構に関する様々な代替制御機構を採用することが可能である。この例においては、BITCNTは、要求される様々な状態を表す。制御信号はSSBI_DATA_WDに依存すること、及び実施された変更に従って変化可能であることに注目すること。
パラメータINPUT_DATA_SIZEは、8及びSSBI_DATA_WDの最大値2614として計算される。この実施形態例においては、両方のパラメータが事前に知られており、選択されたSSBI_DATA_WDパラメータに関する特定の論理構成を生成するために使用される。SSBI_DATA_WDに関するプログラミング可能な値に対応するための代替実施形態を採用することが可能である。従って、例えば、レジスタ2632乃至2636への入力に関するビット選択は、プログラミング上の変更に対応するために事前及び事後に論理を含めることができる。他の選択肢は、プログラミング可能なADDRの大きさを有して、ADDRの異なる値に対応するための同様の変更を行うことである。これらの詳細は示されていない。当業者は、本明細書において示されている教義に照らしてこれらの選択肢及びその他の選択肢を容易に適合させるであろう。説明を明確化するため、以下ではある1つの展開に関する一組のSSBI_DATA_WD及びINPUT_DATA_SIXEを仮定している。
図26のすべてのクロックされるデバイスは、SSBI_CLK又はその反転(クロック入力前部のバブルの従来の表記法で示されている)によってクロックされることに注目すること。特別の注記がないかぎり、以下において詳述されるレジスタは、SSBI_CLKによってクロックされる。
この例においては、開始ビットの突き止めは次のように行われる。すなわち、SSBI_DATA_INが、反転されたSSBI_CLKを用いてフリップフロップ2602によってラッチされ、SSBI_CLKを用いてフリップフロップ2610によってラッチされる。フリップフロップ2602の出力が、SSBI_CLKを用いてフリップフロップ2064によってラッチされてFOUND_ST_Nが生成される。フリップフロップ2610の出力が、反転されたSBI_CLKを用いてフリップフロップ2612によってラッチされてFOUND_STが生成される。すべての4つのフリップフロップが、STATE及びRESET_EFFのOR(2606、2608)によってリセットされる。FOUND_ST_Nが、フリップフロップ2618によってラッチされてLATEが生成され、FOUND_ST及びNOT STATEのAND2616によってイネーブルにされる。FOUND_STがフリップフロップ2622によってラッチされてSTATEが生成され、SSBI_CLKの反転によってクロックされる。フリップフロップ2622がRESET_EFFによって非同期でリセットされる。フリップフロップ2622に関するイネーブルは、マルチプレクサ2620の出力によって決定され、STATEがアサートされたときにはDONEが選択されてその他の場合はFOUND_STが選択される。
DONEは、STBのADN2626及び2つの入力のOR2624として決定される。OR2624への第1の入力は、NOT READ及びBITCNT=9+SSBI_DATA_WDのANDである。OR2624への第2の入力は、READ及びBITCNT=11+SSBI_DATA_WDのANDである。
SSBI_DATA_INは、SSBI_CLKの反転によってシフトレジスタ2628内にシフトされ、NOT STB及びSTATEのAND2630によってイネーブルにされる。シフトレジスタ2628のパラレル出力は、INPUT_DATA_SIZEの大きさである。最下位出力ビットは、レジスタ2632においてラッチされ、STB及びBITCNT=1のANDによってイネーブルされてREADが生成される。8つの最下位出力ビットがレジスタ2634においてラッチされてADDRが生成され、STB及びBITCNT=9のANDによってイネーブルにされる。出力ビットSSBI_DATA_WD−1乃至0がレジスタ2636においてラッチされてWR_DATAが生成され、NOT READ、STB、及びBITCNT=9+SSBI_DATA_WDのANDによってイネーブルにされる。このイネーブル信号は、WR_STBを生成するためにレジスタ2638においてもラッチされ、RESET_EFFによって非同期でリセットされる。
STBは、フリップフロップ2640の出力として形成され、NOT STBをその入力とし、NOT STATEによってリセットされる。NOT STBは、STBを反転させるインバータ2644によって形成される。NOT STBは、NOT STB_Dを生成するためにフリップフロップ2642においてラッチされる。カウンタ2646の出力は、BITCNTを形成し、BITCNTは、NOT STATE及びDONEのORによってリセットされ、STBによってイネーブルにされる。
上述される任意のクロックディスエーブル回路は、この例においては次のように実装される。すなわち、SSBI_DATA_INによってクロックされるフリップフロップ2648においてTCXO_DISがラッチされる。フリップフロップ2648の出力がフリップフロップ2650によってラッチされてRESET_DATA_INが生成され、NOT SSBI_DATA_INによってクロックされる。両方のフリップフロップがRESETによって非同期でリセットされる。
RESET_EFFは、フリップフロップ2672の出力として形成され、フリップフロップ2672の入力は、フリップフロップ2670の出力である。フリップフロップ2670への入力は、フリップフロップ2668の出力であり、‘0’を入力とする。3つのすべてのフリップフロップは、TCXO_DIS及びRESETのOR2666によって非同期でセットされる。
SSBI_DATA_OUTは、ATEがアサートされたときにはマルチプレクサ2664を介してシフトレジスタ2660のシフト出力として選択される。SSBI_DATA_OUTは、LATEがアサートされないときにはマルチプレクサ2664を介してフリップフロップ2662の出力として選択される。フリップフロップ2662は、SSBI_CLKの反転によってクロックされたシフトレジスタ2660のシフト出力を入力とする。シフトレジスタ2660へのパラレル入力は、幅がSSBI_DATA_WDのRD_DATA入力である。シフトレジスタ2660へのシフト入力は‘0’である。シフトレジスタ2660は、READ、NOT STB、及びBITCNT=9のANDによってローディングされる。シフトレジスタ2660のシフトは、NOT STB_D、READ、及びSSBI_DATA_OE_REGのAND2658によってイネーブルにされる。
SSBI_DATA_OEは、LATEがアサートされたときにはマルチプレクサ2656を介してSSBI_DATA_OE_REGとして選択される。SSBI_DATA_OEは、LATEがアサートされないときにはマルチプレクサ2656を介してフリップフロップ2654の出力として選択される。フリップフロップ2654は、SSBI_DATA_OE_REGを入力として受け取り、SSBI_CLKの反転によってクロックされる。SSBI_DATA_OE_RQEは、フリップフロップ2652の出力として形成される。フリップフロップ2652への入力は、READ、BITCNT≧10、及びBITCNT≦(9+SSBI_DATA_WD)のANDである。フリップフロップ2652は、STBによってイネーブルにされ、RESET_EFFによって非同期でリセットされる。
図27は、スレーブレジスタブロック2320として使用するのに適した論理例を示した図である。この例においては、SSBI_DATA_WDは例示することを目的として8に設定される。レジスタ2710は、出力されたWR_REGxxx_DATAを格納するためのレジスタ例である。該レジスタは、WR_DATAを入力として受け取り、WR_STBによってクロックすることができる。数多くの書き込みレジスタを採用可能であり、さらにxxxの代わりに適当な識別子を用いることができる。特定のアドレスに関してすべてのWR_DATAビットをラッチする必要はなく、従って対応する記憶素子を取り除くことができる点に注目すること。各レジスタ2710に関するイネーブル信号は対応アドレスに従ってイネーブルにすることができ、ADDRによって制御される(詳細は示されていない)。代替実施形態においては、SSBI_CLKは、WR_STBがイネーブル信号内に組み込まれたクロックとして使用することができる。希望に応じて様々なWR_REGxxxDATA出力をスレーブデバイス230に配送することが可能である。
RD_DATAは、この例においては、ADDRに従って選択されたマルチプレクサ論理2720の出力によって形成される。従来のマルチプレクサ、組合せ論理、3状態バス技術、等の様々なマルチプレクサ実装を採用することができる。マルチプレクサ2720への入力は、RDREG0_DATA乃至RDREGn_DATAで表されるn個の入力信号であり、対応するアドレス指定に従って割り当てられる。これらの入力は、希望に応じてスレーブデバイス230内のあらゆる場所からの入力であることができる。
本節では、上述されるSBI FTMモードをサポートするように適合されたSSBIマスター1110の一実施形態例を示した図である。図28乃至31、及びその対応する説明は、単線バスを通じてのFTMコマンドをサポートするために上図20乃至22に関して説明されるSSBIマスター例において要求される変更を詳述したものである。このSSBIマスター1110は、SSBIコマンド及びFTMコマンドの両方をサポートすることができる(FTM_MODEと呼ばれる構成ビットに基づいて選択されたモード)。表4は、この実施形態例に関する追加ポートを示した表であり、表2のポートと組み合わせることができる。
信号FTM_MODEは、セットされると、アクセスがFTMモードになることを示す。FTMモード以外のアクセスに関しては、波形及び回路は、図17乃至22に関して上述される、修正されていない回路と同様であることができる。ハイレベルにおいては、FTMモードをサポートするために次の変更を行う必要がある。第1に、コマンドフォーマットが3線モードに関するFTMモードと一致する。第2に、回路が終了シンボルを送信できるように1つの転送バーストの完了時点を識別する必要がある。第3に、IDLE_SYMSが、個々のアクセス間ではなく2つのバースト間におけるアイドルシンボル数を指定する。
以下の説明を簡略化するため、アクセスという表現は、個々の読み取り又は書き込みを意味するために用いられる。バーストという表現は、スレーブIDが送信され、1つ以上のアクセスが後続し、その後に終了シンボルを送信することによって終了される1つのシーケンスを意味するために用いられる。代替実施形態は、該終了シンボルの代替を実装することができ、幾つかの例が上述されている。従って、1つのバーストは、1つ又は複数のアクセスを有することが可能である。FTMモード以外のモードにおいてはバーストが存在しないことに注目すること。すべてのアクセスは、単一のアクセスとして処理される。
バーストに関して、第1のアクセス前に、開始ビット、モードビット及びスレーブIDが送信される。後続するアクセスは、これらの送信なしで行うことができる。図31において(フリップフロップ3110の出力として)一例が示されている信号CONTが定義されており、アクセスが第1のアクセス(0)又は後続アクセス(1)のいずれであるかを表すために使用される。CONTは、REQPが第2のアクセスに関してアサートするのと同じサイクルでアサートし、終了シンボルが送信されるまでアサートされた状態を維持する。このため、CONTを使用することで、開始ビット、モードビット及びスレーブIDを迂回するようにシフトチェーンを正確に構成させることができる(以下において詳細に説明される)。
第1のアクセスが完了した時点で、CONTがアサートしてDONEがパルスする。DONEがハイの状態である間にREQを検査し、後続するアクセスがこのバースト内に存在するかどうかを決定することができる。存在する場合はACKがパルスし、新しいパラメータが通常パラメータとしてスキャンチェーン内にラッチされる。ただし、該スキャンチェーンは、モードビット及びスレーブIDを迂回するように構成される。さらに、開始ビット、モードビット、スレーブID及び第1のポーズビットはスキップされるため、BITCNTは0の代わりに10がプリローディングされる。DONEは、各アクセスが完了した時点で各アクセスに関してアサートする。
(1つの転送又は複数の転送を含むかどうかにかかわらず)1つのバーストが終了時には、終了シンボルを出力する必要がある。TERMは、終了シンボルが送信中の時間アサートする。この時間中に、BITCNTは、1つのサイクルおきにの代わりに1つのサイクルごとに値を増加させる必要があり、パターン出力は1010である。代替実施形態は、代替の終了シンボルパターンを利用することができる。終了シンボルが送信された時点で、次のバーストが入手可能時に開始できるようにするため、内部の「完了」信号DONE_DELXを生成してIDLE_SYMSに従って遅延させる必要がある。図28は、一バースト例の終了を示す波形を描いた図である。この実施形態例においては、STBは、回路によって無視することができるが、終了シンボル中に2回パルスする点に注目すること(以下においてさらに詳細に説明される)。
図29乃至31は、FTMモードをサポートするように修正され、SSBIマスター例1110において採用するのに適した回路例を示した図である。当業者は、本明細書における教義に照らしてその他の様々な修正及び代替を明確に理解するであろう。
図29は、構成パラメータに依存する修正論理を示した図である。SSBI_DATA_IN_DELの生成は、原回路と同じである。DONE_DELX生成は、FTM_MODEに基づいて異なる。FTM_MODEにおいては、この信号は、バースト終了時にパルスする。該時点においてはBITCNTが1クロックサイクルごとに値を増加させるため、STBは無視することができる。
図20と同じように、図29の最上部は、SSBI_DATA_DELに基づいてSSBI_DATA_INを遅延させる論理を示している。SSBI_DATA_IN_DELは、図20における場合とまったく同じように生成される。SSBI_DATAは、フリップフロップ2010及び2030内に提供される。図20乃至22内のすべてのクロックされるデバイスは、SSBI_CLK又はその反転によってクロックされる(クロック入力前部のバブルの従来の表記法を用いて示される)。フリップフロップ2010はSSBI_CLKの反転によってクロックされ、フリップフロップ2030はSSBI_CLKによって直接クロックされることに注目すること。フリップフロップ2010の出力は、フリップフロップ2020の入力に指向される。SSBI_DATA_INは、フリップフロップ2010乃至2030の出力と同じように、マルチプレクサ2040の1つの入力に引き渡される。SSBI_DATA_DELは、マルチプレクサ2040の1つの入力を出力、すなわちSSBI_DATA_IN_DELとして選択するために使用される。
繰り返しになるが、DONE_DELXは、IDLE_SYMSに基づく。図20に示されるように、論理2050は、STBのAND及び(NOT SREAD ANDBITCNT=17+IDLE_SYMS)及び(SREAD and BITCNT=19+IDLE_SYMS)のORを生成する。マルチプレクサ2910は、DONE_DELXを生成するために追加される。DONE_DELXは、FTM_MODEがアサートされないときは論理2050の出力として、FTM_MODEがアサートされたときはBITCNT=31+IDLE_SYMSとして選択される。上述されるように、太字の数字はSEL_RD_DATA=0に対応し、さらにこれらの数字はその他の値に関して修正可能であることを思い出すこと。前回と同じように、説明を単純化するため、すべての数字は、SSBI_DATA_WD=8の事例に対応する。
論理の設計の修正のほとんどは、シフトレジスタチェーンに関するものであり、図30に示されている。このチェーンは、モードビット(01)及びSLAVE_IDを、すべての8ビットの組の後に存在するポーズビットともに格納できるように拡大されている。これらの追加のポーズビットは、(先行技術のSBIブロックが行っているように)バスを3状態にするのとは反対に送信として取り扱われる(データ値自体は無関係である)。このため、8シンボル時間ごとにバスを3状態化する必要がない。
この修正されたシフトレジスタチェーン例は、次のように分解される。すなわち、SSBI_DATA_OUTは、依然としてレジスタ2110の出力として生成され、バーストの第1のアクセスに関しては開始ビットをホールドしバーストの後続するアクセスに関してはREADをホールドするために用いられる。レジスタ2110は、依然としてRESETによってリセットされる。イネーブルは図21から修正され、REQP、STB、OVR_MODE、TERM及びEN_TERM_CNTのORとして形成される。この修正は、TERM信号及びEN_TERM_CNT信号をOR論理内に追加することである。入力は、(図21のマルチプレクサ2160とは対照的に)マルチプレクサ3004から得られ、以下において詳細に説明されるように、モードに基づいてシフト値を選択するために使用される。
8ビット及び2ビットの幅をそれぞれ有する2つのシフトレジスタ3014及び3016が使用される。8ビットシフトレジスタ3014は、モードビット(01)及びSLAVE_IDを格納する。2ビットシフトレジスタ3016は、FTM_MODEにおける第1のアクセスに関してはポーズビットとREADビットを格納し、FTM_MODEでないときにはREADビットとアドレスビット7を格納する。この入力は、SHIFT2LDVALのラベルが付され、後述されるように、マルチプレクサ3028の出力として形成される。7ビットシフトレジスタ3018は、アドレスの下位の7ビットを格納する(SBIプロトコルでは7ビットのアドレスのみが使用されることを思い出すこと)。FTMモードでないときにはシフトレジスタ3016及び3018が(図21に示されている)シフトレジスタ2130の代わりをする点に注目すること。シフトレジスタ3018のシフト出力はシフトレジスタ3016のシフト入力に接続されており、シフトレジスタ3016のシフト出力はシフトレジスタ3014のシフト入力に接続されているという点で、これらの3つのシフトレジスタは単一のチェーンを形成する。これらの3つのすべてのシフトレジスタ3014乃至3108は、STBによってイネーブルにされ、REQPがローディングされる。
シフトレジスタ2140は、図21と同一である。SSBI_DATA_WDビットシフトレジスタ2140は、書き込み動作に関しては書き込みデータ、読み取り動作に関してはすべて0がプリローディングされる。シフトレジスタ2140へのシフト入力は、マルチプレクサ2150の出力として決定され、SSBI_DATA_OEがアサートされたときには0を選択し、その他の場合はSSBI_DATA_IN_DELを選択する。シフトレジスタ2140のパラレル出力は、RD_DATA_PREとして利用可能である。その他のシフトレジスタと同じように、シフトレジスタ2140は、REQPがローディングされ、STBによってイネーブルにされる。
レジスタ3022は、FTM_MODEにおいてボーズビットを格納するために追加される。レジスタ3022は、REQPによってリセットされる。FTMモードに関する最後のポーズビットは、直接格納されず、シフトレジスタ2140のシフト出力からレジスタ3022にシフトインされる。
このSSBIマスターはFTMモードに加えて通常のSSBIモードアクセスもサポートするため、FTMモードに関して要求される追加ビットを選択または迂回するために様々なマルチプレクサが使用される。さらに、FTM_MODEにおいては、信号CONTに従い、バーストの第2のアクセス及び追加のアクセス中にモードビット、スレーブID、及びポーズビットを迂回するための追加論理が使用される。
マルチプレクサ3020は、FTMモード時にレジスタ3022の出力をシフトレジスタ3018へのシフト入力として選択するために使用される。FTMモードでないときには、レジスタ3022は迂回され、シフトレジスタ2140の出力が選択される。
マルチプレクサ3028の出力としてSHIFT2LDVALが生成される。FTMモードにおいては、READが連結されて2ビット値が形成される。FTMモードでないときには、READがADDR(7)と連結されて(図21)2ビット値が形成される。
マルチプレクサ3010は、シフトレジスタ3014を迂回するか又はシフトチェーンに含めるためにFTM_MODEを用いて選択可能である。FTMモードにおいては、シフトレジスタ3014のシフトアウトが選択される。FTMモード以外のモードにおいては、シフトレジスタ3016の出力が選択される。図21に関して説明されるように、マルチプレクサ3010の出力は、REQPとともに、ORゲート2120に引き渡される。ORゲート2120の出力は、通常のSSBI動作に関するビットストリームであり、FTMモードにおいては第1のアクセスに関するビットストリームである(該当時においては、アクセスの終了部分を含まない)。
マルチプレクサ3006は、現在のモードに依存して様々なビットストリームを選択する。選択ラインは、TERMとCONTの連結として形成される(TERM & CONTとして示される)。SSBIモードにおいては、TERM及びCONTは常にデアサートされ、このためORゲート2120の出力が選択される。ORゲート2120の出力は、FTMモードにおいても第1のアクセスに関して選択され、この場合は、終了シンボルはまだ送信されず(TERMがアサートされない)、継続中のアクセスは進行中ではない(CONTがアサートされない)。
終了前において、及び第2のアクセスと後続するアクセス中に、CONTがアサートされ、このため、マルチプレクサ3006は、マルチプレクサ3012の出力を選択する。マルチプレクサ3012は、FTMモードに関して使用され、さらに、バーストの第2のアクセス中および追加のアクセス中にモードビット、スレーブID、及びポーズビットを迂回するために使用することができる。REQPがアサートされたときには、READがマルチプレクサ3012の出力として選択され、その他の場合はシフトレジスタ3018のシフト出力が選択される。
この例においては、終了シンボルはクロックサイクルごとにトグルするため、終了シンボルは、SSBI_DATA_OUTを提供する最後のレジスタ2110内に終了シンボルビットを各サイクルごとに挿入することによって形成される。TERMは、終了シンボルの送信時点を識別するために使用される。この機能は、NOT CNT_ENが各サイクルごとにトグルしたときにレジスタ2110内に提供することによって実装される(この場合、該入力はレジスタ2110の出力がCNT_ENと同相になるのを許容するためCNT_ENの反転が用いられる)。上述されるように、レジスタ2110は、イネーブルを提供するOR論理内のTERM信号に起因して各クロックサイクルごとにイネーブルにされる。
この例においては、終了シンボルに関して2つの特殊事例が存在する。第1に、スレーブへの終了シンボル送信を抑止するためにDISABLE_TERM_SYMをアサートすることができる。この機能を使用する一例は、上述されるように、スレーブレジスタビットTCXO_DISに書き込むことによってスレーブSSBI_CLKを停止させることである。該書き込みが完了後は、スレーブクロックが再度イネーブルにされるまでSSBI_DATAにおいてはなんの活動も行われないはずである。この特殊アクセス後は、SSBI_DATA_OUTを提供する最終レジスタ2110にNOT CNT_ENが送られないようにブロックするためにDISABLE_TERM_SYMを使用することができる。これで、TERMがイネーブルにされたときに、マルチプレクサ3006は、NOT CNT_EN及びNOT DISABLE_TERM_SYMのANDを選択する。
第2の特殊事例においては、事前アクセスを行わずに終了シンボルを送信するオプションが提供される。このオプションは、SEND_TERM_SYMをアサートすることによって達成される。このオプションは、例えば転送途中でSSBIマスター1110がリセットされたときに有用である。このような状況においては、SBIスレーブが無限のFTMループ内に閉じ込められないようにするために、前記マスターは、スレーブを再度アイドルモードに戻すための終了シンボルを送信することができる。この第2の機能を可能にするため、レジスタ2110に関する入力を選択するためのマルチプレクサ3004が使用される。図21に示されるように、シフトチェーンの直接制御を可能にするOVR_VALUEを選択するためのOVR_MODEが使用される。OVR_MODEがアサートされないときには、EN_TERM_CNTのアサーションは、NOT TERM_CNT(0)をマルチプレクサ3004の出力として選択する。TERM_CNTの生成が以下において詳細に説明される。OVR_MODE及びEN_TERM_CNTのいずれもアサートされないときには、マルチプレクサ3006の出力がレジスタ2110への入力用に選択される。
図31は、FTMモードをサポートするために修正された、SSBIマスター1110に関する追加の制御論理を示した図である。この例を図22に関する例と比較すること。この論理は、以下の修正以外は、前実施形態とすべて同じ機能を果たす。
上述されるように、REQPは、AND2204の出力として形成され、REQが入力の1つとなる。REQP生成に関して、1つのバースト内において複数のアクセスに確認応答できるようにDONEが追加される。REQPは、ACKを生成するためにフリップフロップ2206においてラッチされる。ADN2204の他方の出力は、NOT STATEのOR3102、DONEとFTM_MODEのAND、及びDONE_DELXとNOT FTM_MODEのANDとして生成される。この論理を図22のOR2202の論理と比較すること。
上述されるように、RD_DATAがレジスタ2208の出力として生成され、レジスタ2208は、RD_DATA_PREを入力として受け取る。イネーブル項(enable term)は、FTMモードに関する追加項を含めるために修正される。イネーブルは、SREAD、NOT STB、NOT RESET、及びBITCNT=19/26のANDとして形成される。表記法BITCNT=19/26は、FTM_MODE=0のときにはBITCNT=19を探し、FTM_MODE=1のときにはBITCNT=26を探すことを意味する。
FTMモードにおいては、FTMモードでの読み取り及び書き込みは同じ量の時間がかかるため、DONE生成は、SREADに依存しないのちのBITCNTを用いて行われる。この例においては、マルチプレクサ3114を用いて実装される。マルチプレクサ3114に関する選択ラインは、FTM_MODE&SREADである。FTM_MODEがアサートされたときにおいて、マルチプレクサ3114の出力は、SREADがアサートされないときはBITCNT=27、SREADがアサートされたときはBITCNT=27である。FTM_MODEがアサートされないときにおいて、SREADがアサートされないときには、マルチプレクサ3114の出力は、NOT SREAD及びBITCNT=(17+IDLE_SYMS)のANDとして形成される。FTM_MODEがアサートされないときにおいて、SREADがアサートされたときには、マルチプレクサ3114の出力は、SREAD及びBITCNT=(19+IDLE_SYMS)のANDとして与えられる。DONEは、レジスタ3118の出力として形成され、レジスタ3118は、NOT STB及びマルチプレクサ3114の出力のAND3116を入力として受け取り、RESETによってリセットされる。
CONT及びTERMを生成するための論理が追加され、これらのCONT及びTERMは、FTM_MODEが0のときはすべて0である。CONTは、DONEがアサートするサイクルと同じサイクル中は1にセットされ、DONE_DELX_FMTがパルスしたときにクリアになる。CONTは、レジスタ3110の出力として形成される。このレジスタは、BITCNT=27のときにセットされ、DONE_DELX_FTM、RESET、又はNOT FTM_MODEのORによってリセットされる。(DONE_DELX_FTMは、書き込み又は読み取りのいずれを実行中であるかに依存してDONE_DELX_FTM_WR又はDONE_DELX_FTM_RDのいずれかになる。DONE_DELX_FTM_WRは、BITCNT=31+IDLE_SYMSによって与えられ、DONE_DELX_FTM_RDは、23+IDLE_SYMSによって与えられる。)
TERMは、BITCNTが終了シンボル中の各クロックサイクルごとに値を増加させるように強制するために使用される。TERMは、マルチプレクサ3150の出力として形成され、マルチプレクサ3150は、SREADを選択ラインとして使用する。SREADがアサートされたときにはTERM_READが選択され、SREADがアサートされない時にはTERM_WRITEが選択される。TERM_READは、FTM_MODE、BITCNT≧28、及びBITCNT≦31のANDとして形成される。TERM_WRITEは、FTM_MODE、BITCNT≧27、及びBITCNT≦31のANDとして形成される。
SREAD、STATE、CNT_EN、及びSTBは、図22における場合と同じように生成される。SREADは、レジスタ2210の出力として形成され、READが入力、REQPがイネーブルである。STATEは、SRフリップフロップ2220の出力として生成される。SRフリップフロップ2220へのセット入力は、REQP及びNOT RESETのAND2216として形成される。SRフリップフロップ2220へのリセット入力は、DONE_DELX及びRESETのOR2218として形成される。
STB(CNT_ENとも呼ばれる)は、リセット可能フリップフロップ2224の出力として形成される。このフリップフロップへの入力は、出力の反転であり、従って、該フリップフロップがリセットされていないときに各クロックサイクルごとに交互するSTBが生成される。リセット入力CNT_RESは、REQP及びNOT STATEのOR2222として形成される。
BITCNT(この例においては6ビット信号であり、代替実施形態は、図29乃至31を通じて代替値を要求する異なるパラメータを提供することができる)は、カウンタ3140の出力として形成される(図22のカウンタ2228と比較すること)。カウンタ3140のイネーブルは、CNT_EN(又はSTB)及びTERMのOR3138である。図22の例とは対照的に、この例においては、IDLE_SYMS>0又はSSBI_DATA_WD>8の場合はBITCNTは31以降もカウントすることができるため、BITCNTの幅は1ビットだけ拡大される。BITCNTに関するロード値は、アクセスがバーストの第1のアクセスであるかどうかに依存する。従って、CONTは、マルチプレクサ3112に関する選択ラインとして使用され、アサートされたときには001010をBITCNT_LDVALの値として選択し、アサートされないときは000000を選択する。
TERM_CNTは、上記のようにSEND_TERM_SYMがアサートされたときに終了シンボルを形成するために使用され、次のように形成される。すなわち、EN_TERM_CNTがSRフリップフロップ3144の出力として形成される。セット入力は、SEND_TERM_SYMがアサートされたときにEN_TERM_CNTをアサートする。EN_TERM_CNTは、TERM_COによる指示に従い、終了シンボルが完了されたときにデアサートされる。従って、フリップフロップ3144に関するリセットは、RESET及びTERM_COのOR3142である。TERM_CNTは、この例においては2ビット信号であるが、その他の様々な大きさ及び波形のその他の終了シンボルを本発明の適用範囲内において使用することができる。TERM_CNTは、カウンタ3148の出力として形成され、該カウンタのキャリーアウトがTERM_COに割り当てられる。カウンタ3148は、RESET及びNOT EN_TERM_CNTのOR3146によってリセットされるとき以外は常にイネーブル状態である。従って、EN_TERM_CNTがアサート時には、カウンタ3148へのリセットがデアサートされ、キャリーアウトTERM_COMがアサートしてEN_TERM_CNTをデアサートするまでカウンタにカウントさせる。
SBIモードに関してはスレーブIDが要求されるが、SSBIモードに関してはSSBIマスター1110はスレーブIDを使用しないことを思い出すこと。スレーブデバイスはスレーブIDを復号するため、マイクロプロセッサ又はその他のホストデバイスによって、制御レジスタ又は当業においてよく知られるその他の技術を通じて指定する必要がある。このスレーブIDフィールドは、各トランザクションに関してSSBIマスター1110に出力することができる。このフィールドは、SBIの場合とは異なり、単一のスレーブがSSBIポートに接続されているときには1回だけプログラミングすることができ変更する必要がまったくない。さらに、後述されるように、FTM_MODEは、同じSSBIマスター1110を真の1線スレーブとともに及びブロック1420等のSSBI−SBIコンバータブロックを用いる1線スレーブとともに使用することを許容するFTMモードで転送を行うべきかどうかを指定する。
FTMをサポートするSSBIスレーブ
3線バス及び1線バスをサポートする必要があるスレーブデバイスに関する1つの手法は、図14に示されるように3線SBIサポートブロック1220を保持するようにスレーブを設計すること、及び1線バスへのインタフェースを可能にするSSBIスレーブコンバータ1420を追加することである。SSBIスレーブコンバータブロック1420は、1線シグナリングを変換し、SBST信号とSBCK信号を生成してこれらの信号を既存の3線SBIスレーブ回路1220に提供するために使用することができる。従って、この例に関して、1線モードにおいては、SSBIコマンドは3線スレーブ回路1220によって適切に解釈されないためFTMコマンドを使用しなければならない。表5は、SSBIスレーブコンバータ例1420に関するポート説明を含む。
SSBIスレーブコンバータ例1420は、1線モードのときはSSBIシグナリングをSBIシグナリングに変換し、3線モードのときは該変換を迂回するために使用することができる。具体的には、SSBIスレーブコンバータは、特にSSBI_DATAラインを取り入れ、標準3線SBIスレーブブロックに関するSBCK信号及びSBST信号を生成する。この例においては、図14に関して上述されるように、SBDTは、パッドと3線スレーブブロックとの間に直接接続することが可能であるため、SSBIスレーブコンバータ1420において生成する必要がない。
SBST入力及びSBCK入力は、1線動作又は3線動作が希望されるかどうかを決定するために使用することができる。通常の3線転送中にSBST=1とSBCK=0の組合せが生じることは絶対にないため、該組合せのときに1線モードが選択される。該モードを選択するこのオプションは、専用のモード選択ピン又はレジスタを不要にする。3線モードが選択されたときには、以下において詳細に説明されるように、SBST信号及びSBCK信号が多重化されてこのブロックの出力に提供される。
1線モードにおいては、SSBIスレーブコンバータブロック1420は、SSBI_DATAラインを検査して開始シンボルの有無を確認し、該開始シンボルは、SBSTをアサートするため及びSBCKのトグルを開始させるために使用される。SSBIスレーブコンバータブロック1420は、SBSTをデアサートするため及びSBCKのトグルを停止させるために使用される終了シンボルも探す。書き込みデータは直接SBIスレーブブロックに向かい、同様に、読み取りデータは直接SBDT上に戻される。以下では、これらの機能を例示する一実施形態例が図32乃至35に関して詳細に説明される。
図32は、SSBIスレーブコンバータ1420の一部を示した図である。示されている回路は、モードが1線又は3線のいずれであるかの決定を担当する。SSBI_MODEは、SBST_IN及びNOT_SBCK_INのAND3250によって示されるように、SBST=1である間にSBCK=0であるときに1線モードに関してハイになる。SSBI_MODEは、この例においてはその他の機能又はブロックが選択されたモードに従って動作する場合に出力として引き渡される。SSBI_MODEは、マルチプレクサ3260及び3270を制御するためにも使用される。3線モードにおいては、すなわちSSBI_MODEがアサートされないときには、SBCK及びSBSTパッド入力(それぞれSBST_IN及びSBCK_IN)がSBST_OUT及びSBCK_OUTへの出力のためにそれぞれ選択される。1線モードにおいては、すなわちSSBI_MODEがアサートされたときには、マルチプレクサ3260及び3270は、SBST_OUT及びSBCK_OUTにおいてそれぞれ出力するためのSBST_GEN及びSBCK_GENをそれぞれ選択する。
RESET_EFFは、ストレッチされたリセット信号であり、最低2つのクロックサイクルであるように生成される。この生成は、クロックがオフの場合でも最終的にはRESET_EFFが回路によって観測されることを保証する。非同期的にセット可能なフリップフロップ3220、3230、及び3240は、TCXO_DIS及びRESETのOR 3210によってセットされる。RESET_EFFは、フリップフロップ3240の出力として形成される。フリップフロップ3240の入力は、フリップフロップ3230の出力であり、フリップフロップ3230の入力は、フリップフロップ3220の出力である。フリップフロップ3220への入力は、ゼロにセットされる。
この例においては、SSBIからSBIへの変換が行われるかどうかにかかわらず書き込みタイミングと読み取りタイミングが相対的に同じであるようにするため、SSBI_DATAはSBDTと非常に類似するようにすべきである。次に、1クロックサイクルの遅延がある場合においてもSSBI_DATAがサンプリングされてSBDTが生成される例について検討する。この例では、スレーブSBIブロック(すなわち1220)が1サイクル後にすべてのアクセスを観測することになる。この点は、書き込みに関しては問題にならない可能性が高い。しかしながら、読み取りに関しては、戻されたデータが現れるときには、該データは、マスターデバイスが該データを予想している時点よりも1サイクル後に現れることになる。その結果、レジスタ遅延なしでSSBI_DATAをSBDT上に提供する必要がある。従って、次の問題は、SBIスレーブタイミングに間に合う形で開始シンボルを検出してSBST信号とSBCK信号を生成することである。この問題は、次の理由で多少厄介になる可能性がある。すなわち、SSBIスレーブコンバータ1420は、2つのシンボル(開始シンボル及び第1のデータシンボル)の継続時間中に次のことを行う必要がある。1.開始シンボルを認識する、2.SBSTに強制的にアサートさせる(ローになる)、3.SBCKを強制的にローにし、立ち下がりエッジが2クロックサイクルごとに発生するようにトグルするのを許容する、4.第2のSBCK立ち下がりエッジを用いてSBIスレーブ内のSBDTをサンプリングする。
SSBI_DATAラインがアイドル状態にあり、さらにSSBIスレーブコンバータ1420が開始シンボルを観測するまでSSBI_CLKの立ち上がり時にSSBI_DATAラインをサンプリングする例について検討する。図33は、転送開始波形を示した図である。開始シンボルが「見つけ出され」、信号が1/2のクロックサイクルにおいてデグリッチされてFOUND_STにアサートさせる。この動作は非同期で強制的にSBSTをローにし、該SBSTは、開始シンボルを探している回路をディスエーブルにする。FOUND_STは、1/2のクロックサイクルだけ遅延され、自分自身で論理積され、SBCKの第1の立ち下がりエッジ及び立ち上がりエッジを発生させるために使用される。SBST及びFOUND_STは、SBCKがトグルするのを可能にするためにいっしょに用いられる。SBIスレーブは、SBCKの立ち下がり時にシンボルをサンプリングするため、これらのシンボルは、シンボル時間内に25%入った時点まで有効にサンプリングされている。
SSBI_CLKは図示されているように整列させることができない点に注目すること。図33に描かれている事例は、実際上は「最良の」事例である。開始シンボルがただちに検出されず、1つの全クロックサイクル後に検出される「最悪の」事例が発生する。この場合には、全ての信号、FOUND_ST、SBST、SBCKが1クロックサイクルだけ右にシフトする。従って、データシンボルは、シンボル時間内に75%入った時点までサンプリングされている。明確に理解されることになるように、両事例とも、SBST及びSBCKはSSBI_DATAに関して正確に生成することが可能である。LATEは、図25に関して上述されている同一名の信号と類似しており、(SBDT_PO及びSBDT_OEの)この1サイクルの可変性を1/2クロックサイクルにまで引き下げるのに役立つ。
転送終了に関する波形が図34に示されている。終了シンボルは4つの連続するクロックサイクルに関して1クロックサイクルごとにトグルするため、該終了シンボルを取得するのは多少複雑になる可能性がある。この終了シンボル例が選択された理由は、あらゆるシンボルデータと区別可能な最短波形であるためである。この波形をサンプリングするために用いられる回路例は、基本的には、パターンを探している4クロックサイクルにわたってSSBI_DATAをサンプリングする。別個の回路が並行して動作するが、立ち下がりクロックエッジにおいてサンプリングする。このことが必要な理由は、SSBI_CLK立ち上がりエッジが終了シンボルの遷移と整合されている場合は該シンボルが第1の回路によって取得される保証がないためである。従って、両回路が共同で、終了シンボルが見つけ出されることを保証する。
図35は、SSBIスレーブコンバータ例1420に関する追加回路の一部を示した図である。ストレッチされたリセットRESET_EFTは、SBST_GEN及びSBCK_GENを非同期的にハイにする。このストレッチされたリセットは、SSBI_CLKがオンになるまでアサートされた状態を維持するようにするために使用される。このリセットは、後述されるFOUND_Tを生成する回路部分もリセットする。
SSBI_DATAは、レジスタ3508においてSSBI_CLKによってラッチされ、NOT SBST_GENによってリセットされる。レジスタ3508の出力は、SSBI_CLKの反転によってクロックされるレジスタ3510への入力として引き渡され、同じくNOT SBST_GENによってリセットされる。レジスタ3510の出力は、開始が見つけ出されたことを示すFOUND_STのラベルが付される。
SSBI_DATAは、SSBI_CLKの反転によってクロックされるレジスタ3502にも入力される。レジスタ3502の出力は、レジスタ3504に入力され、レジスタ3504の出力は、FOUND_ST_Nのラベルが付される。レジスタ3502及び3504の両レジスタは、RESET_EFFによってリセットされる。FOUND_ST_Nは、SSBI_CLKによってクロックされるレジスタ3506においてラッチされ、LATEが生成される。レジスタ3506は、FOUND_STによってイネーブルにされる。
FOUND_STは、フリップフロップ3518を非同期的にセットするために使用され、フリップフロップ3518の出力が反転3520されてSBST_GENが生成される。見つけられた開始ビットは、SBST_GENをアサートする(ローに駆動する)。NOT SBST_GENはFOUND_STを生成するレジスタ3508及び3510をリセットし、従って現在の1つのアクセス又は複数のアクセスが完了するか又は新たな開始ビットが見つけられまでFOUND_STがデアサートされるのを思い出すこと。フリップフロップ3518は、SSBI_CLKの反転によってクロックされ、RESET_EFFによってリセットされる。以下においてさらに詳細に説明されるように、終了シンボルが見つかっていることを示すFOUND_Tによってイネーブルにされたときにゼロがクロックインされる。
RESET_EFFによってリセットされたレジスタ3522は、FOUND_STを入力として受け取り、1サイクルだけ遅延させる。レジスタ3522の出力SBCK_ENは、AND3526を通じてSBCK_GENを強制的にローにするために用いられるFOUND_STとともにNAND3524に引き渡される。AND3526への他方の入力は、NAND3524がSBCK_GENを強制的にローにしておらずレジスタ3514の出力から来るときにSBCK_GENを生成するために使用される。レジスタ3514は、SSBI_CLKの反転によってクロックされ、RESET_EFFによって非同期的にセットされる。レジスタ3514の出力は、AND3526に引き渡されることに加えて、インバータ3516において反転される。レジスタ3514の入力は、SBST_GEN、FOUND_ST、FOUND_T、及びインバータ3516の出力のOR3512として生成される。SBCK_EN及びFOUND_Tは、SBSTがデアサートする前にSBCKによるトグルを停止させるために使用される。
上述されるように、終了シンボルを識別するために2つの回路が採用される。各回路において、SSBI_DATAが2つの直列の5つのレジスタ3528乃至3536及び3542乃至3550内にシフトされる。終了シンボルパターンは、2つのANDゲート3538及び3552によって検出される。第1の回路は、SSBI_CLKの反転によってクロックされるレジスタ3528と、SSBI_CLKによってクロックされるレジスタ3530乃至3536とを有する。レジスタ3528、3530、及び3532は、RESET_EFFによって非同期的にリセットされる。終了パターンは、レジスタ3530の反転、レジスタ3532、レジスタ3534の反転、及びレジスタ3536のAND3538によって突き止められる。第2の回路は、SSBI_CLKによってクロックされるレジスタ3542と、SSBI_CLKの反転によってクロックされるレジスタ3542乃至3550とを有する。レジスタ3542、3544、及び3546は、RESET_EFFによって非同期的にリセットされる。終了パターンは、レジスタ3544の反転、レジスタ3546、レジスタ3548の反転、及びレジスタ3550のAND3552によって突き止められる。(AND3538及び3552の出力を出力とする)2つの回路のOR3540は、終了シンボルが見つけられていることを示すFOUND_Tを生成する。
FOUND_Tは、一方の回路又は両方の回路のいずれが終了シンボルを検出するかに依存して長さが1サイクル又は1.5サイクルになる点に注目すること。この機能は、後続する転送をバス上において行うことができる速度を制限することが可能である。実施形態例においては、この制限はどのような問題も引き起こさない。代替実施形態においては、マスターは、必要な場合は、SSBI_DATAが少なくとも1シンボル時間に関するアイドルシンボルを転送するように強制することができる。
この回路は、終了シンボルが存在しないかぎりFOUND_Tをアサートしない点にさらに注目すること。データシンボルは2サイクルシンボルごとに変化することを考慮した場合において、クロックがシンボル遷移と整合されていない場合は、2つの連続するクロックサイクルにおけるシンボルのサンプリングは、終了シンボルに関する交互値ではなく同じ値をサンプリングすることになる。サンプリングクロックがシンボルエッジと整合されている場合は、サンプリングクロックは、前シンボル値及び新シンボル値のいずれのシンボル値もサンプリングすることができる。一例として、第1のサンプルエッジがシンボル遷移と整合されており、従って第3のエッジも整合されているが、第2及び第4のエッジはシンボルの途中で発生するためこれらのエッジは整合されていない事例について検討する。希望されるパターンは1010であることに留意し、第2のサンプル及び第4のサンプルが0を観測するためには、これらの2つのデータシンボルは0でなければならない。この要件が真である場合は、データは変化しなかったため第3のサンプルは0でなければならない。その結果、FOUND_Tはアサートしない。第2及び第4のサンプルがシンボル境界と整合されていて第1と第3のサンプルが整合されていない事例に関しても同様の説明を行うことができる。
繰り返しになるが、SSBI_CLKは、図33及び34に示されるようには整列させることができない点ことに注目すること。描かれている図は、実際上は「最良の」事例である。開始シンボルが1/2クロックサイクル後に検出される「最悪の」事例が発生する。この場合には、FOUND_Tが1/2クロックサイクルだけ右にシフトし、このシフトは、SBDT及びSBCKには影響を与えない。明確に理解されることになるように、「最良」及び「最悪」の両事例とも、追加のSBCKパルスがSBIスレーブブロックに渡される。SBIスレーブは、SBSTがデアサートされた時点でこれらの追加のデータビットを無視することが予想される。
LATEは、SSBI_MODEにあるときにSBDT出力のタイミングを変更するために使用される。SBDT_OE_OUTは、マルチプレクサ3560の出力として形成され、マルチプレクサ3560は、レジスタ3558においてラッチされている状態のSBDT_OE_IN及び遅延されているSBDT_OE_INを入力とする。レジスタ3558は、SBDT_OE_INを入力として受け取り、該入力を1サイクルだけ遅延させる。SBDT_PO_OUTは、マルチプレクサ3566の出力として形成され、マルチプレクサ356は、レジスタ3564においてラッチされている状態のSBDT_PO_IN及び遅延されているSBDT_PO_INを入力として受け取る。レジスタ3564は、SBDT_PO_INを受け取り、該入力を1サイクルだけ遅延させる。マルチプレクサ3560及び3566の両方に関する選択は、LATE及びNOT SSBI_MODEのOR3652として形成される。従って、SSBI_MODEにないときには、SBDT_OE_OUTはSBDT_OE_INとして選択され、SBDT_PO_OUTはSBDT_PO_INとして選択される。SSBI_MODEにおいてLATEがアサートされないときには、両方に関して同じ選択が行われる。LATEがSSBI_MODEにおいてアサートされたときには、SBDT_OE_IN及びSBDT_PO_INの遅延されたバージョンが各々の出力に関して選択される。
RESET_TCXO_DISは、レジスタ3556の出力として形成され、レジスタ3556は、レジスタ3554の出力を入力として受け取る。レジスタ3554は、TXCO_DISを入力として受け取る。レジスタ3554は、SSBI_DATAによってクロックされる。レジスタ3556は、SSBI_DATAの反転によってクロックされる。両レジスタは、RESETによって非同期的にリセットされる。従って、TXCO_DISがアサートされたときには、SSBI_DATAの立ち上がりエッジがレジスタ3554をセットし、SSBI_DATAの後続する立ち下がりエッジがレジスタ3556をセットしてRESET_TCXO_DISをアサートする。従って、SSBI_DATAは、クロック(すなわちSSBI_CLK、及びその他のクロック)がディスエーブルにされた状態のときにRESET_TCXO_DISをアサートするために使用することができる。一実施形態例においては、RESET_TCXO_DISは、1つ以上のディスエーブルにされたクロックを再度イネーブルにするために使用することができる。
追加の代替実施形態
追加の実施形態が構想されている。例えば、より新しいSSBIデバイスをレガシーSBIマスターとインタフェースさせることが望ましい場合がある。このため、SBST、SBCK、及びSBDTの各信号を受信して単一のSSBI_DATA信号を生成する3線−1線コンバータを使用可能である。該コンバータは、上述されるように、SBIスレーブを使用せずにいずれの型のインタフェースもサポートできるようにするために、SSBIスレーブデバイス内に組み入れることが可能である。代替として、該コンバータは、3線プロトコルをインターセプトして単線インタフェースを生成するためにレガシーマスターデバイスに追加することが可能である。その他の代替実施形態においては、本明細書において説明されるコンバータは、いずれかの型(SBI又はSSBI)のマスター又はスレーブのいずれかの外部の独立型コンポーネントとして採用することが可能である。
スレーブの他の実施形態は、SSB及びSSBIの両方のスレーブインタフェースを含むことができる。(SSBI_DATA及びSBDTの両方に関して共用可能な)入りデータラインをモニタリングし、いずれの型のプロトコルを該入りデータラインにおいて使用中であるかを決定するためのセンサーを取り付けることができる。該代替実施形態においては、スレーブは、1方のスレーブインタフェース又は他方のスレーブインタフェース(SBI又はSSBI)を選択するようにプログラミングすることができる。当業者は、本明細書における教義に鑑みて、本発明の適用範囲内において採用可能な3線及び1線のマスター、スレーブ、及びコンバータの数多くの組合せを認識するであろう。
当業者は、情報及び信号は様々な異なる技術のうちのいずれかを用いて表すことができることを理解するであろう。例えば、上記の説明全体を通じて参照されることがあるデータ、命令、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁場、磁気粒子、光学場、光学粒子、又はそのあらゆる組合せによって表すことができる。
本明細書において開示される例に関して説明されている様々な例示的論理ブロック、モジュール、回路、及びアルゴリズム上のステップは、電子ハードウェアとして、コンピュータソフトウェアとして、又は両方の組合せとして実装できることを当業者はさらに理解するであろう。ハードウェアとソフトウェアのこの互換性を明確に例示するため、様々な例示的コンポーネント、ブロック、モジュール、回路、及びステップは、各々の機能の観点で一般的に説明されている。これらの機能がハードウェアとして又はソフトウェアとして実装されるかは、全体的システムに対する特定の用途上の及び設計上の制約事項に依存する。当業者は、説明されている機能を各特定用途に合わせて様々な方法で実装できるが、これらの実装決定は、本発明の適用範囲からの逸脱を生じさせるものであるとは解釈すべきでない。
本明細書において開示される実施形態に関して説明されている様々な例示的論理ブロック、モジュール、及び回路は、本明細書において説明されている機能を果たすように設計された汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、その他のプログラミング可能な論理デバイス、ディスクリートゲートロジック、ディスクリートトランジスタロジック、ディスクリートハードウェアコンポーネント、又はそのあらゆる組合せ、とともに実装又は実行することができる。汎用プロセッサはマイクロプロセッサであることができるが、代替として、従来のどのようなプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンであってもよい。さらに、プロセッサは、計算装置の組合せ、例えば、DSPと、1つのマイクロプロセッサとの組合せ、複数のマイクロプロセッサとの組合せ、DSPコアと関連する1つ以上のマイクロプロセッサとの組合せ、又はその他のあらゆる該コンフィギュレーションとの組合せ、として実装することもできる。
本明細書において開示される実施形態に関して説明されている方法又はアルゴリズムのステップは、ハードウェア内において直接具体化させること、プロセッサによって実行されるソフトウェアモジュール内において具体化させること、又はその両方の組合せにおいて具体化させることができる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取り外し可能なディスク、CD−ROM、又は当業において既知であるその他のあらゆる形態の記憶媒体に常駐させることができる。1つの典型的な記憶媒体をプロセッサに結合させ、該プロセッサが該記憶媒体から情報を読み出すようにすること及び該記憶媒体に情報を書き込むようにすることができる。代替として、該記憶媒体は、プロセッサと一体化させることができる。さらに、該プロセッサ及び該記憶媒体は、ASIC内に常駐させることができる。該ASICは、ユーザー端末内に常駐することができる。代替として、該プロセッサ及び記憶媒体は、ユーザー端末内において個別構成要素として常駐することができる。
開示された実施形態に関する上記の説明は、当業者が本発明を製造又は使用できるようにすることを目的とするものである。又、これらの実施形態に対する様々な修正が加えられた場合には、当業者は、該修正を容易に理解することが可能である。さらに、本明細書において定められている一般原理は、本発明の精神及び適用範囲を逸脱しない形でその他の実施形態に対しても適用することができる。以上のように、本発明は、本明細書において示されている実施形態に限定することを意図するものではなく、本明細書において開示されている原理及び斬新な特長に一致する限りにおいて最も広範な適用範囲が認められることになることを意図するものである。