【手続補正書】
【提出日】令和1年8月7日(2019.8.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マスターデバイスであって、
マスターインスレーブアウト(MISO)線およびマスターアウトスレーブイン(MOSI)線を含む修正シリアル周辺インターフェース(SPI)バスと、
前記MOSI線を通じて複数のスレーブデバイスのうちのアドレス指定された1つにアドレス指定フレームを送信し、かつ前記MISO線を通じて前記スレーブデバイスの各々から非アドレス指定フレームを受信するように構成される、修正シリアル周辺インターフェースと、
前記マスターデバイスのパワーオンリセットの後、アドレス割当てモードで動作するように構成されるアドレス割当てエンジンであって、前記アドレス割当てエンジンが、前記アドレス割当てモードの間に前記修正SPIバスの中のクロック線へとクロック信号を駆動するように構成されるクロックソースと、ローカルカウントを決定するために前記割当てモードの間に前記クロック信号の周期をカウントするように構成されるローカルカウンタとを含む、アドレス割当てエンジンと
を含む、マスターデバイス。
【請求項２】
前記アドレス割当てエンジンが組み込み集積回路間(I2C)インターフェースを備えるか、または前記アドレス割当てエンジンが組み込みI3Cインターフェースを備える、請求項1に記載のマスターデバイス。
【請求項３】
マルチプレクサであって、前記アドレス割当てエンジンおよび前記修正シリアル周辺インターフェースを前記クロック線および前記MISO線へ選択的に結合するように構成される、マルチプレクサをさらに備え、前記組み込みI2Cインターフェースが、前記MISO線の放電に応答して、前記ローカルカウントの値によってスレーブデバイスのアドレスを特定するようにさらに構成される、請求項2に記載のマスターデバイス。
【請求項４】
ホストプロセッサであって、前記マスターデバイスがシステムオンチップ(SoC)を備える、ホストプロセッサをさらに備える、請求項1に記載のマスターデバイス。
【請求項５】
前記ホストプロセッサが、前記修正シリアル周辺インターフェースを実装するためのソフトウェアを用いて構成されるか、または前記修正シリアル周辺インターフェースが有限ステートマシンを備える、請求項1に記載のマスターデバイス。
【請求項６】
前記修正SPIバスの中のクロック線をさらに備え、前記修正シリアル周辺インターフェースが、前記アドレス指定フレームの前記送信の間および前記非アドレス指定フレームの前記受信の間に、前記クロック線を通じてクロック信号を駆動するようにさらに構成される、請求項1に記載のマスターデバイス。
【請求項７】
前記修正シリアル周辺インターフェースが、前記MOSI線を通じて送信されるアドレス指定されたポーリングフレームを使用して各スレーブデバイスに定期的にポーリングするようにさらに構成される、請求項1に記載のマスターデバイス。
【請求項８】
前記マスターデバイスと前記MISO線との間および前記マスターデバイスと前記MOSI線との間で物理層インターフェースを形成するように構成される入力/出力回路のペアをさらに備える、請求項1に記載のマスターデバイス。
【請求項９】
スレーブデバイスであって、
マスターインスレーブアウト(MISO)線およびマスターアウトスレーブイン(MOSI)線を含む修正シリアル周辺インターフェース(SPI)バスと、
アドレス指定フレームが前記スレーブデバイスにアドレス指定されるかどうかを判定するためにマスターデバイスから前記MOSI線を通じて受信される前記アドレス指定フレームの中のアドレスヘッダを復号するように構成される、修正シリアル周辺インターフェースと
を備え、
前記修正SPIバスがクロック線を含み、前記スレーブデバイスが、カウントを決定するために前記クロック線上で受信されるクロック信号の遷移をカウントするように構成されるカウンタを有する組み込み集積回路間(I2C)インターフェースをさらに備え、前記組み込みI2Cインターフェースが、前記スレーブデバイスの初期アドレスに等しい前記カウントの値に応答して前記MISO線を放電させるようにさらに構成される、
スレーブデバイス。
【請求項１０】
前記修正シリアル周辺インターフェースが、前記MISO線を通じた前記マスターデバイスへの非アドレス指定フレームの送信の前に、前記マスターデバイスへの割込み信号をアサートするように構成される、請求項9に記載のスレーブデバイス。
【請求項１１】
マスターデバイスから、複数のスレーブデバイスへとシリアル周辺インターフェース(SPI)クロック線を通じてクロック信号を反復するステップと、
各スレーブデバイスにおいて、ローカルカウントを維持するために前記クロック線上での前記クロック信号の前記反復に応答してカウントするステップと、
各スレーブデバイスから、前記スレーブデバイスのローカルカウントの値が前記スレーブデバイスの初期アドレスに等しいとき、シリアル周辺インターフェース(SPI)のマスターインスレーブアウト(MISO)線を放電させることによって前記マスターデバイスにシグナリングするステップと
を備える、方法。
【請求項１２】
前記マスターデバイスから、SPIマスターアウトスレーブイン(MOSI)線を通じて各スレーブデバイスのためのアドレス指定フレームを送信するステップであって、各々のアドレス指定フレームの中のヘッダが対応するスレーブデバイスの前記初期アドレスを含み、各々のアドレス指定フレームの本体が前記対応するスレーブデバイスの短縮アドレスを含み、各スレーブデバイスの短縮アドレスが前記スレーブデバイスの初期アドレスに格納されるビットよりも少数のビットを有する、ステップをさらに備える、請求項11に記載の方法。
【請求項１３】
SPIクロック線上で送信されるSPIクロック信号の反復に応答して、前記MOSI線上で前記スレーブデバイスのうちの選択された1つへ短縮アドレス指定フレームを送信するステップであって、前記短縮アドレス指定フレームが、前記選択されたスレーブデバイスの前記短縮アドレスを含むアドレスヘッダを格納する、ステップをさらに備える、請求項12に記載の方法。
【請求項１４】
前記マスターデバイスにおいて、マスターデバイスのローカルカウントを維持するために前記クロック線上での前記クロック信号の前記反復に応答してカウントするステップと、
前記マスターデバイスにおいて、各スレーブデバイスが前記MISO線を放電させるときに前記マスターデバイスのローカルカウントの値を通じて各スレーブデバイスの初期アドレスを決定するステップと
をさらに備える、請求項11に記載の方法。
【請求項１５】
前記マスターデバイスから、SPIマスターアウトスレーブイン(MOSI)線を通じて各スレーブデバイスのためのアドレス指定フレームを送信するステップであって、各々のアドレス指定フレームの中のヘッダが、前記対応するスレーブデバイスの前記初期アドレスを含み、各々のアドレス指定フレームの本体が、前記クロック線、前記MOSI線、および前記MISO線からなるグループから選択される前記対応するスレーブデバイスのための線の割当てを含み、前記マスターデバイスが、前記対応するスレーブデバイスが前記マスターデバイスへ送信すべきフレームを有することの指示として、前記対応するスレーブデバイスによる前記割当てられた線の一時的な放電を検出するようにさらに構成される、ステップをさらに備える、請求項11に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【発明の名称】改良されたシリアル周辺インターフェース
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2015年9月21日に出願された米国出願第14/860,568号の優先権を主張する。
【０００２】
本出願はシリアル周辺インターフェースに関し、より具体的には、スレーブ選択線を不要にするためのシリアル周辺インターフェースの改良に関する。
【背景技術】
【０００３】
システムオンチップ(SoC)プロセッサと様々な周辺デバイスとの間の同期シリアル通信を提供するために、シリアル周辺インターフェース(SPI)が一般にモバイルデバイスに含まれる。SoCはSPIマスターデバイスとして機能し、一方、各周辺デバイスはスレーブSPIデバイスとして機能する。SPIバスはマスターデバイスを各SPIスレーブデバイスに結合する。マスターデバイスは、SPIバスの中のクロック線にクロックを供給する。マスターデバイスとスレーブデバイスとの間のすべてのシリアルデータ交換がクロック信号に同期する。マスターデバイスは、マスターアウトスレーブイン(MOSI)線を通じてデータをスレーブデバイスに駆動する。スレーブデバイスは各々、共有されるマスターインスレーブアウト(MISO)線上でデータをマスターに駆動してもよい。MISO線はスレーブデバイスによって共有されるので、SPIバスはまた、共有されるMISO線にアクセスプロトコルを提供するために各スレーブデバイスのためのスレーブ選択線を含む。
【０００４】
各スレーブは固有のスレーブ選択線を有するので、各スレーブデバイスにおけるSPIバスは、クロックと、MOSIと、MISOと、スレーブ選択シグナリングとを収容するために、4線のバスである。しかし、マスターデバイスにおけるSPIバスは(3+N)線のバスであり、ここでNはスレーブデバイスの数を表す整数である。SPIバスの中の各線はその固有のピンに専用であるので、SPIバスに専用のマスターデバイスにおけるピンの数は、マスターデバイスがサービスするスレーブデバイスの数とともに増大する。結果として、他のシグナリングに対して専用である、SoCなどのマスターデバイスの中のピンはより少なくなることがある。その上、マスターデバイス上での各々の必要とされる追加のピンは製造コストを増やす。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、従来のSPIアーキテクチャにおけるピンの必要性を軽減する、改善されたSPIインターフェースが当技術分野において必要である。
【課題を解決するための手段】
【０００６】
改良されたシリアル周辺インターフェースが、マスターデバイスおよび複数のスレーブのために提供される。各々の改良されたシリアル周辺インターフェース(修正シリアル周辺インターフェース(SPI)と表記されることもある)は、マスターアウトスレーブイン(MOSI)線を通じたマスターデバイスからのデータ送信と、マスターインスレーブアウト(MISO)線を通じたスレーブデバイスからマスターデバイスへのデータ送信とを、スレーブ選択線を使用することなく可能にするように構成される。したがって、得られるシステムは、マスターデバイスにおいて複数のスレーブ選択ピンを必要とせずに、MOSI線およびMISO線を通じた二重データ送信から利益を得る。本明細書では、「ピン」は、回路基板上のリードまたは他の適切な送信線に結合するために集積回路が使用するパッドまたは実際のピンなどの構造を包含する、汎用的な用語である。
【０００７】
マスターデバイスの中の修正SPIは、MOSI線を通じてスレーブへ送信されるアドレス指定フレームにアドレスヘッダを挿入するように構成される。各スレーブデバイスの中の修正SPIは、受信されたアドレス指定フレームがスレーブデバイスにアドレス指定されるかどうかを判定するために、MOSI線からの受信されたアドレス指定フレームの中のアドレスヘッダを復号するように構成される。
【０００８】
スレーブ選択線が存在しない場合に、共有されるMISO線にスレーブデバイスのためのアクセスプロトコルを提供するために、マスターデバイスの中の修正SPIは、アドレスヘッダを有するアドレス指定されたポーリングフレームを用いて各スレーブデバイスに定期的にポーリングしてもよい。受信されたアドレス指定されたポーリングフレームがスレーブデバイスに向けられていたとスレーブデバイスの中の修正SPIが決定する場合、スレーブデバイスはMISO線を通じてデータフレームをマスターデバイスに送信することに進んでもよい。代替的に、各スレーブデバイスは、マスターデバイスによって受信される個々の割込み線に結合される割込みピンを含んでもよい。そのようなスレーブデバイスがマスターデバイスへ送信すべきフレームを有する場合、スレーブデバイスはまず、マスターデバイスの中のホストプロセッサに割り込んでもよい。そうすると、割り込むスレーブデバイスの識別情報が、対応する個々の割込み線を通じてマスターデバイスに知られる。スレーブデバイスにより生成されるフレームは、MISO線のためのこれらのアクセスプロトコルのもとではアドレス指定フレームである必要がない。
【図面の簡単な説明】
【０００９】
【図１】本開示のある態様による、いずれのスレーブ選択線も含まない修正SPIバスを通じて通信するように構成される、マスターデバイスと複数のスレーブデバイスとを含む例示的なシステムの図である。
【図２】アドレス割当て手順の間の図1のシステムの図である。
【図３】図1のシステムにおいてアドレスを割り当てる方法のフローチャートである。
【図４】図1のシステムを組み込む例示的なデバイスのブロック図である。
【発明を実施するための形態】
【００１０】
本開示の追加の態様およびそれらの利点は、以下の詳細な説明を参照することによって最も良く理解される。同様の参照番号が、図のうちの1つまたは複数に示される同様の要素を識別するために使用されることを理解されたい。
【００１１】
スレーブ選択線が除去された、修正シリアル周辺インターフェース(SPI)が提供される。この方式では、マスターデバイスおよび複数のスレーブデバイスは、3線の修正SPIバスを使用してそれぞれの修正シリアル周辺インターフェースを通じてネットワーク接続されてもよい。したがって、マスターデバイスは、インターフェースにネットワーク接続されるスレーブデバイスの数とは無関係に、修正シリアル周辺インターフェースをサポートするのに3つのピンしか必要としない。
【００１２】
スレーブ選択線が削除されているので、マスターデバイスの中の修正シリアル周辺インターフェースは、マスターアウトスレーブイン(MOSI)線を通じて、アドレス指定フレームをスレーブデバイスに送信するように構成され、各々のアドレス指定フレームは、選択されたスレーブデバイスのアドレスを伴うヘッダを含む。アドレスを提供するために、マスターデバイスおよびスレーブデバイスは各々、MiPi Allianceにより定義されるような組み込み集積回路間(I2C)インターフェースまたは組み込みI3C(センスワイヤ)インターフェースを含んでもよい。より一般的には、マスターデバイスおよびスレーブデバイスは各々、組み込みアドレス割当てエンジンを含んでもよい。したがって、以下の議論は、組み込みアドレス割当てエンジンがI2Cインターフェースであると、一般性を失うことなく想定する。
【００１３】
組み込みI2Cインターフェースは、パワーオンリセット(POR)シーケンスの完了後などのパワーオンシーケンスの完了後に機能する。I2CおよびI3Cの技術分野において知られているように、I2Cバスは2線のバスである。したがって、組み込みI2Cインターフェースは、修正シリアル周辺インターフェースによって使用される3線のSPIバスの中のクロック線とMISO線とを共有する。マスターデバイス(およびスレーブデバイスも)の組み込みI2Cインターフェースおよび修正シリアル周辺インターフェースは、対応するマルチプレクサを通じてクロック線とMISO線とを選定してもよい。
【００１４】
パワーオンリセットシーケンスが完了すると、マスターデバイスの中の組み込みI2Cインターフェースは、共有されたクロック線のクロッキングを開始する。マスターデバイスはまた、MISO線を電源電圧VDDに弱く荷電するように構成される。スレーブデバイスの中の各々の組み込みI2Cインターフェースは、ローカルカウントを維持するためにクロック線の状態移行に応答してカウントするように構成される。たとえば、スレーブデバイスの中の各々の組み込みI2Cインターフェースは、ローカルカウントを維持するために、クロック信号の各立ち上がりエッジまたは立ち下がりエッジをカウントするように構成されてもよい。代替的に、スレーブデバイスの中の各々の組み込みI2Cインターフェースは、ローカルカウントを維持するために、クロック信号の各立ち上がりエッジと各立ち下がりエッジとをカウントするように構成されてもよい。各スレーブデバイスの組み込みI2Cインターフェースは、Nビットの疑似ランダムまたはランダムなアドレスなどの初期アドレスを用いて構成される。ローカルカウントの各インクリメントの後で、各スレーブデバイスの組み込みI2Cインターフェースは、現在のローカルカウントを初期アドレスと比較する。
【００１５】
現在のローカルカウントがスレーブデバイスの初期アドレスに等しいことを比較が示すとき、スレーブデバイスの組み込みI2Cインターフェースは、スレーブデバイスが対応する現在のローカルカウントに等しい初期アドレスを有することをマスターデバイスにシグナリングするために、共有されるMISO線をグランドへとローに放電させる。マスターデバイスの中の組み込みI2Cインターフェースはまた、スレーブデバイスにおいてカウンタが動作するのと同じ方式で、クロック信号の遷移に応答してカウントするカウンタを含む。所与のシステムへのマスターデバイスおよびスレーブデバイスの統合の前に、マスターデバイスは、スレーブデバイスの総数を用いて構成される。たとえば、スレーブデバイスの数が、マスターデバイスの中のフラッシュメモリなどの読取り専用メモリに書き込まれてもよい。したがって、マスターデバイスの中の組み込みI2Cインターフェースは、スレーブデバイスの総数がスレーブデバイスの初期アドレスを特定するまでクロック信号を反復し続ける。そして、マスターデバイスがスレーブデバイスの各々の初期アドレスを保持する。
【００１６】
マスターデバイスの中の修正SPIインターフェースは次いで、MOSI線を通じて短縮アドレスをスレーブデバイスに割り当てることに進んでもよい。たとえば、8個以下のスレーブデバイスがある場合、すべてのスレーブデバイスを一意に特定するには3つのアドレスビットで十分である。他の実装形態では、予想される数のスレーブデバイスに対応するのに十分大きい、固定された短縮アドレスサイズが使用されてもよい。マスターデバイスの中の修正シリアル周辺インターフェースは、MOSI線を通じてスレーブデバイスのうちの第1のデバイスへアドレス指定された構成フレームを送信しながら、クロック線を状態移行することを開始してもよい。アドレス指定された構成フレームは、第1のスレーブデバイスの初期アドレスを伴うヘッダを含み、第1のスレーブデバイスの短縮アドレスを特定するフレーム本体を格納する。第1のスレーブデバイスの組み込みI2Cインターフェースは次いで、マスターデバイスの中の修正シリアル周辺インターフェースによるクロック線の状態移行に応答して、MISO線を通じて肯定応答フレームを送信してもよい。この方式では、マスターデバイスは、第1のスレーブデバイスに関して論じられたように、残りの短縮アドレスを残りのスレーブに割り当てることに進んでもよい。本明細書では、簡潔にするために、さらなる限定を伴わない「アドレス」という用語は短縮アドレスを指す。
【００１７】
アドレスの割当ての後で、マスターデバイスおよびスレーブデバイスの中の修正シリアル周辺インターフェースは、動作のノーマルモードまたはミッションモードにおいてデータを交換することを開始してもよい。データのアドレス指定フレームをスレーブデバイスのうちの特定の1つに送信するために、マスターデバイスの中の修正シリアル周辺インターフェースは、所望のスレーブデバイスのアドレスをアドレス指定フレームのヘッダへと挿入するように構成される。本明細書において論じられる他のフレームタイプのように、アドレス指定フレームのビット長は所与のシステム要件に応じて変化してもよい。フレーム長とは無関係に、ビット長は、スレーブデバイスおよびマスターデバイスが適切な不揮発性メモリを使用して構成され得るパラメータである。マスターデバイスの中の修正シリアル周辺インターフェースは次いで、クロック信号の遷移に応答して、アドレス指定フレームをMOSI線へとビットごとにシフトアウトすることに進んでもよい。各スレーブデバイスは、クロック線を通じて送信されるようなクロック信号の遷移に応答してMOSI線を通じてアドレス指定フレームを受信する。各スレーブデバイスの修正された周辺インターフェースは、受信されたアドレス指定フレームが対応するスレーブデバイスにアドレス指定されるかどうかを判定するために、受信されたアドレス指定フレームのヘッダを検査するように構成される。アドレス指定されたスレーブデバイスの中の修正シリアル周辺インターフェースのみがヘッダの中のアドレスに等しいアドレスを有し、そうすると、アドレス指定されたスレーブデバイスは、受信されたアドレス指定フレームの中のデータペイロードを処理することに進む。
【００１８】
スレーブデバイスからマスターデバイスへの送信は類似している。しかしながら、スレーブデバイスの中の修正シリアル周辺インターフェースは、従来のSPIシステムにおけるスレーブデバイスからのフレーム送信と同様に、アドレスヘッダを伴わないフレームを、MISO線を通じてマスターデバイスに送信してもよい。従来のSPIスレーブデバイスとは対照的に、本明細書において開示されるスレーブデバイスは、MISO線に関するアクセスプロトコルとしてスレーブ選択線を使用しない。スレーブデバイスにより実践されるアクセスプロトコルは以下でさらに論じられる。スレーブデバイスがMISO線へのアクセスを有すると、スレーブデバイスの修正シリアル周辺インターフェースは、クロック線で受信されるクロック信号の遷移に応答して、得られたフレームをMISO線へとシフトアウトすることに進んでもよい。
【００１９】
マスターデバイスおよびスレーブデバイスの各々の中の修正シリアル周辺インターフェースおよび組み込みI2Cインターフェースの得られる組合せは、全二重通信をサポートする各デバイスがMISO線とMOSI線とを提供しながら、マスターデバイスが複数のスレーブデバイスと通信するために3つのピンしか使う必要がないという点で、極めて有利である。この方式では、製造コストは低減されるが、それでもマスターデバイスおよびスレーブデバイスは全二重シリアル通信に関与することがある。これらの有利な特徴は、以下の例示的な実装形態の検討を通じてより理解されることがある。
【００２０】
ここで図面を見ると、例示的なネットワーク化されたシステム100が図1に示される。システムオンチップ(SoC)などのマスターデバイス105は、スレーブデバイス110、スレーブデバイス115、およびスレーブデバイス120などの複数のスレーブデバイスと3線の修正SPIバス125を通じて通信するための、修正シリアル周辺インターフェース130を含む。シリアル周辺インターフェース130は、マルチプレクサ150を通じて、MISO線135などのバス125の中のデータ線のうちの1つ、またクロック線140を、組み込みI2Cインターフェース145と共有する。マスターデバイス105の中のI/O回路(エンドポイント)155は、MISO線135を通じて受信された信号のための物理層の処理を実行する。
【００２１】
パワーオンリセット(POR)信号(図示せず)に応答することなどの、PORシーケンスの完了の後、修正シリアル周辺インターフェース130などのマスターデバイス105の中のコントローラは、対応するエンドポイント180を通じてクロック線140を駆動して、スレーブの初期アドレスが特定されるアドレス割当てモードを開始するために、I2Cクロックソース160からI2Cクロック信号170を選択するようにマルチプレクサ150に命令する。POR信号シーケンスの完了に応答して、I2Cクロックソース160はI2Cクロック信号170を反復する。エンドポイント155は、MISO線135が荷電されたままでありながらI2Cクロックソース160がクロック線140を通じてI2Cクロック信号170を反復し続けるように、MISO線135を電源電圧VDDに弱く荷電するように構成される。このアドレス割当てモードの間、マルチプレクサ150は、エンドポイント155からの受信されたMISO信号をマスターデバイス105の中のI2Cデータ線175に結合する。
【００２２】
各スレーブデバイスは、類似する組み込みI2Cインターフェース145、マルチプレクサ150、および修正シリアル周辺インターフェース130を含む。しかしながら、I2Cクロック170がマスターデバイス105によって駆動されるので、スレーブデバイスの中の組み込みI2Cインターフェース145はI2Cクロックソース160を含まない。加えて、スレーブデバイスのエンドポイントは、説明をわかりやすくするために図1に示されていない。パワーオンリセットシーケンスおよびクロック線140の反復の完了の後で、各スレーブデバイスは周期(または、両方のクロックエッジがカウントされるかどうかに応じて、半周期)のカウントを開始する。図2に示されるように、各スレーブデバイスの組み込みI2Cインターフェース145は、乱数(または疑似ランダム)アドレス190を記憶し、これは初期アドレス190としても指定されてもよい。各スレーブデバイスの組み込みI2Cインターフェース145の中のローカルカウンタ165は、マスターデバイス105においてI2Cクロックソース160からのクロック線140の反復に応答してカウントする。ローカルカウンタ165からのカウントが初期アドレス190に等しいことをスレーブデバイスの組み込みI2Cインターフェース145が決定するとき、組み込みI2Cインターフェース145はMISO線135をグランドへと放電させる。再び図1を参照すると、マスターデバイス105の中のエンドポイント155は、MISO線135を電源電圧VDDに弱く荷電するように構成される。したがって、スレーブデバイスは、それらのローカルカウントがそれらの初期アドレス190に等しいことをマスターデバイス105にシグナリングするために、MISO線135上でのこの弱プルアップを打ち消すことができる。マスターデバイスのI2Cインターフェース145はまた、I2Cクロックソース160からのクロック信号170の反復に応答して、スレーブデバイスの中のローカルカウンタ165によって決定されるローカルカウントを反映するマスターローカルカウントを維持する、ローカルカウンタ165を含む。マスターデバイスのI2Cインターフェース145は、初期アドレス190が現在のマスターカウントに等しいことをMISO線135の放電によってスレーブデバイスが示すように変更される。マスターデバイスのI2Cインターフェース145はまた、システム100の中のスレーブデバイスの総数を用いて構成されるので、マスターデバイスは、すべてのスレーブデバイスがそれらの初期アドレス190を特定するまでクロック信号170を発振し続けてもよい。修正SPIインターフェース130は次いで、前に論じられたようにスレーブデバイスにその短縮アドレスを知らせるために、初期アドレス190を使用して特定のスレーブデバイスにアドレス指定される、アドレス指定された構成フレームをMOSI線185を通じて送信することに進んでもよい。代替的な実装形態では、各スレーブデバイスは、MISO線135を放電させる代わりにMOSI線185を放電させることによって、各スレーブデバイスのローカルカウントがそれらの初期アドレスと一致することを、マスターデバイス105に知らせてもよい。したがって、マスターデバイス105の中のMOSI線185を駆動するための対応するエンドポイント195は、MOSI線185を電源電圧VDDに弱く荷電するように構成されてもよい。スレーブデバイスが、ローカルカウントと初期アドレス190との一致を、MISO線135を使用してマスターデバイス105に知らせるか、またはMOSI線185を使用してマスターデバイス105に知らせるかとは無関係に、結果として生じるMISO線135またはMOSI線185の放電は1ビットだけの期間の持続時間を有してもよいが、代替的な実装形態ではより長い持続時間が使用されてもよい。
【００２３】
したがって、マスターデバイス105の中の組み込みI2Cインターフェース145は、アドレス割当てエンジン145としても指定されてもよい。そのようなエンジンは、ソフトウェアまたはファームウェアを使用して実装されることがあり、I2CまたはI3C機能を有する必要がない。代替的に、アドレス割当てエンジン145は、有限ステートマシンを使用して実装されてもよい。同様に、各々の修正シリアル周辺インターフェース130は、ソフトウェア、ファームウェア、または有限ステートマシンを使用して実装されてもよい。アドレス割当てエンジン145によって実践される方法は、図3に示されるフローチャートに関して要約されてもよい。本方法はまた、シリアル周辺インターフェース(SPI)クロック線上でクロック信号を反復するマスターデバイスの行動300を含む。上で論じられたようなクロック線140上でのクロック信号170の反復は、行動300の例である。加えて本方法は、ローカルカウントを維持するために、クロック信号の反復に応答して各スレーブデバイスがカウントする行動305を含む。図2に関して論じられたようなスレーブデバイスによるローカルカウンタ165内でのカウントは、行動305の例である。最後に本方法は、スレーブデバイスのローカルカウントの値がスレーブデバイスの初期アドレスに等しいときにSPI MISO線を放電させることによって、各スレーブがマスターデバイスにシグナリングする行動310を含む。図2に関して論じられたようなスレーブデバイスの組み込みI2Cインターフェース145によるMISO線135の放電は、行動310の例である。マスターデバイスの中の修正シリアル周辺インターフェース130は次いで、前に論じられたように短縮アドレスをスレーブデバイスに割り当てることに進んでもよい。
【００２４】
アドレスがすべて割り当てられると、図1のシステム100は通常の動作に遷移してもよく、これはミッションモードの動作と表記されることがある。スレーブ選択線がないので、共有されるMISO線135のためのアクセスプロトコルは、いくつかの方法で達成されてもよい。一実装形態では、マスターデバイス105は定期的に、個々にスレーブデバイスにポーリングしてもよい。そのようなポーリングは、MOSI線185を通じて送信される、マスターデバイスの中の修正SPI130からのアドレスヘッダを有するアドレス指定されるポーリングフレームを通じて行われる。各スレーブデバイスの修正SPI130は、スレーブデバイスがポーリングされているかどうかを判定するために、受信されたアドレス指定されたポーリングフレームの中のアドレスヘッダを復号するように構成される。スレーブデバイスがポーリングフレームによってアドレス指定され、マスターデバイス105へ送信すべきフレームを有する場合、スレーブデバイスは、MISO線135を一時的に放電させることによって、受信されるポーリングフレームに応答してもよい。ポーリングされたスレーブデバイスの中の修正シリアル周辺インターフェース130は、ポーリングされたスレーブデバイスの識別情報が知られているので、MISO線135を通じてマスターデバイス105に送信されるスレーブデバイスのフレームにおいてアドレスヘッダを付加する必要がない。
【００２５】
ある代替的なアクセスプロトコルの実装形態では、各スレーブデバイスは、マスターデバイス105に結合される割込み線を駆動するための割込みピンを含んでもよい。例示的な割込み線196は、スレーブデバイス110とマスターデバイス105との間に結合される。スレーブデバイス115および120などの各々の残りのスレーブデバイスは、マスターデバイス105にも割り込めるように自体の割込み線(図示せず)を有する。各スレーブデバイスの識別情報は対応する割込み線を通じて知られているので、スレーブデバイス110などのスレーブデバイスは、割込み線196を使用してマスターデバイス105において割込みをトリガすることによって、MOSI線185を通じて送信するというスレーブデバイスの意図をシグナリングしてもよい。アクセスプロトコルのためのポーリングに関して論じられるように、スレーブデバイスの中の各々の修正シリアル周辺インターフェース130は、送信側のスレーブデバイスが対応する割込み線196を通じて特定されるので、割込み線アクセス制御の実施形態においては、MISO線135を通じて送信されるフレームにアドレスヘッダを挿入する必要がない。
【００２６】
スレーブデバイスのための代替的なアクセスプロトコルは、マスターデバイス105が図1のシステム100に示されるものなどの3つだけのスレーブデバイスとネットワーク接続する実装形態において実践されてもよい。マスターデバイス105が初期アドレス190の各スレーブデバイスによる特定の後、短縮アドレスを割り当てる代わりに、マスターデバイス105は代わりに、3線のSPIバス125の中の線140、135、および185のうちの対応する線を各スレーブデバイスに割り当ててもよい。割り当てられる線は、対応するスレーブデバイスに対する割込み線または通知線として機能する。線を割り当てるために、マスターデバイス105の中の修正SPIインターフェース130は、スレーブデバイスの初期アドレス190を使用してアドレス指定される各スレーブデバイスに構成フレームを送信してもよい。構成フレームの本体は、割り当てられる線を特定する。線の割当てに続いて、各スレーブデバイスは、対応するスレーブデバイスがフレームの送信を意図していることをマスターデバイス105に知らせるために、その割り当てられる線を通知線または割込み線として使用してもよい。
【００２７】
たとえば、図1のスレーブデバイス110はクロック線140に割り当てられてもよい。同様に、スレーブデバイス115はMISO線135に割り当てられてもよい。最後に、スレーブデバイス120はMOSI線185に割り当てられてもよい。各線のデフォルト状態はハイであってもよい(電源電圧VDDに荷電されてもよい)。マスターデバイス105がクロック線140を反復していない中断期間の間、スレーブデバイスのうちの1つが、割り当てられる線をグランドへと放電させることによって、フレームの送信を意図していることをシグナリングしてもよい。この放電は、デフォルトのフレーム長の中の単一のビットの持続時間の間だけなどの、比較的短いものであってもよい。マスターデバイスの中の修正SPIインターフェース130は次いで、3線のSPIバス125の中の対応する線が放電されたことを検出すると、対応するスレーブデバイスが送信すべきフレームを有することを知らされる。たとえば、スレーブデバイス120が送信すべきフレームを有することと、スレーブデバイスがMOSI線185に割り当てられたこととを仮定する。マスターデバイス105がクロック線140を状態移行していない中断期間の間、スレーブデバイス120は次いで、1ビットの期間の持続時間の間(または代替的な実装形態ではより長く)MOSI線185を放電させてもよい。マスターデバイス105の中の修正SPIインターフェース130は、クロック線140を状態移行することによって、そのような実装形態におけるMOSI線185の一時的な放電に応答するように構成される。スレーブデバイス120の中の修正SPIインターフェース130は次いで、クロック線140の反復に応答して、MISO線135を通じてフレームをマスターデバイス105にシフトアウトすることに進んでもよい。マスターデバイス105は、割り当てられる線の以前のローへの状態移行を通じて発信側のスレーブデバイスの識別情報を知らされるので、そのようなスレーブにより生成されるフレームにおいてアドレス指定は不要である。
【００２８】
図1のシステム100の中のマスターデバイス105は、図4に示されるように、システムオンチップ(SoC)105としてデバイス400に組み込まれてもよい。デバイス400は、携帯電話、スマートフォン、携帯情報端末、タブレットコンピュータ、ラップトップコンピュータ、デジタルカメラ、携帯ゲームデバイス、または他の適切なデバイスを備えてもよい。SoC105は、DRAMなどのメモリ420およびディスプレイコントローラ425にも結合するシステムバス415を通じて、センサなどのスレーブデバイス110、115、および120と通信する。そして、ディスプレイコントローラ425はディスプレイ435を駆動するビデオプロセッサ430に結合する。したがって、システムバス415の中の3つの線(図示せず)は、SoC105が図1のシステム100に関して論じられたようにスレーブデバイス110、115、および120と通信し得るように、修正SPIバス125に専用である。
【００２９】
当業者が今では諒解するであろうように、また当面の具体的な適用例に応じて、本開示の要旨および範囲から逸脱することなく、本開示のデバイスの材料、装置、構成、および使用方法において、かつそれらに対して、多くの修正、置換、および変形を行うことができる。このことに照らして、本明細書に図示および説明された特定の実施形態は、それらのいくつかの例によるものにすぎないため、本開示の範囲はそのような特定の実施形態の範囲に限定されるべきではなく、むしろ、下記に添付される特許請求の範囲およびそれらの機能的な均等物の範囲と完全に同じであるべきである。
【符号の説明】
【００３０】
100  システム
105  マスターデバイス
110  スレーブデバイス
115  スレーブデバイス
120  スレーブデバイス
125  修正SPIバス
130  修正シリアル周辺インターフェース
135  MISO線
140  クロック線
145  I2Cインターフェース
150  マルチプレクサ
155  エンドポイント
160  I2Cクロックソース
165  ローカルカウンタ
170  I2Cクロック信号
175  I2Cデータ線
180  対応するエンドポイント
185  MOSI線
190  初期アドレス
195  エンドポイント
196  割込み線
400  デバイス
415  システムバス
420  メモリ
425  ディスプレイコントローラ
430  ビデオプロセッサ
435  ディスプレイ
440  ホスト