(57)【要約】  メッセージ信号およびGPIO信号を、送信ピンを介して送信されるフレームにシリアル化する2線式インターフェースが開示される。2線式インターフェースは、送信ピンの電圧を監視することによってフロー制御を実行するように構成される。
2018512775.tif 000002
【特許請求の範囲】
【請求項１】
第1のプロセッサと、
送信ピンと、
前記プロセッサからGPIO信号の送信セットを受信し、複数のGPIOピンを介して前記送信セットの第1の部分をリモートの第2のプロセッサに送信するように構成されたGPIOインターフェースと、
前記GPIOインターフェースからのGPIO信号の前記送信セットの残りの第2の部分を第1の仮想GPIO(VGI)フレームおよび第2のVGIフレームにシリアル化するように構成された有限状態機械であって、前記第1のVGIフレームおよび前記第2のVGIフレームがそれぞれストップビットで終了する、有限状態機械と、
オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して、低出力インピーダンスを通じて前記送信ピンを介して前記第1のVGIフレームのストップビットの最初の部分を送信し、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、高出力インピーダンスを通じて第1のVGIフレームのストップビットの残りの部分を送信するように構成された送信バッファと、
前記第1のVGIフレームのストップビットの前記残りの部分の前記送信中に、前記送信ピンの電圧がしきい値電圧を上回ったという決定に応答して、前記第2のVGIフレームの最初の部分を送信するよう前記送信バッファに命令するように構成された送信制御回路と
を備える、集積回路。
【請求項２】
前記第1のVGIフレームのストップビットの前記残りの部分の前記送信中に、前記送信ピンの前記電圧が前記しきい値電圧を下回っているかどうかを決定するように構成された送信可(CTS)制御回路をさらに備える、請求項1に記載の集積回路。
【請求項３】
前記オーバーサンプリングクロック信号を提供するためのオーバーサンプリングクロック源をさらに備える、請求項1に記載の集積回路。
【請求項４】
前記オーバーサンプリングクロック信号を提供するためのオーバーサンプリングクロック源をさらに備える、請求項1に記載の集積回路。
【請求項５】
前記有限状態機械が複数のメッセージングレジスタを含み、前記第1のプロセッサが、複数のユニバーサル非同期受信機送信機(UART)信号を前記メッセージングレジスタに書き込むように構成され、前記有限状態機械が、前記メッセージングレジスタからの前記UART信号を、ストップビットを含む第1のUARTフレームと、ストップビットを含む第2のUARTフレームとにシリアル化するようにさらに構成され、前記送信バッファが、前記オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して前記低出力インピーダンスを通じて前記送信ピンを介して前記第1のUARTフレームのストップビットの最初の部分を送信し、前記オーバーサンプリングクロック信号の複数のサイクルに応答して前記高出力インピーダンスを通じて第1のUARTフレームのストップビットの残りの部分を送信するようにさらに構成される、請求項1に記載の集積回路。
【請求項６】
前記有限状態機械が、前記第1のVGIフレームおよび前記第2のVGIフレームを、それぞれがVGI信号のデータペイロードを含むものとして識別するために、前記第1のVGIフレームおよび前記第2のVGIフレームにヘッダを付加するようにさらに構成される、請求項1に記載の集積回路。
【請求項７】
前記有限状態機械が、前記第1のUARTフレームおよび前記第2のUARTフレームを、それぞれがUART信号のデータペイロードを含むものとして識別するために、前記第1のUARTフレームおよび前記第2のUARTフレームにヘッダを付加するようにさらに構成される、請求項5に記載の集積回路。
【請求項８】
前記有限状態機械が、VGIデータペイロードの長さを識別するVGIプログラミングフレームを形成するようにさらに構成され、前記送信バッファが、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを介して前記VGIプログラミングフレームを送信するようにさらに構成される、請求項6に記載の集積回路。
【請求項９】
受信ピンと、
受信バッファとをさらに備え、前記受信バッファが、前記VGIプログラミングフレームによって識別される前記長さを確認する確認フレームを受信するようにさらに構成される、請求項8に記載の集積回路。
【請求項１０】
前記集積回路が、セルラーフォン、スマートフォン、携帯情報端末、タブレットコンピュータ、ラップトップコンピュータ、デジタルカメラ、およびハンドヘルドゲーミングデバイスからなるグループから選択されたデバイス内に含まれる、請求項9に記載の集積回路。
【請求項１１】
送信デバイスにおいて、複数の汎用入力/出力(GPIO)信号を第1のVGIフレームと第2のVGIフレームとにシリアル化するステップであって、前記第1のVGIフレームおよび前記第2のVGIフレームがそれぞれ、最初の部分と残りの部分とを有するストップビットで終了する、ステップと、
オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信デバイス上の送信ピンを介して前記第1のVGIフレームの最初の部分を受信デバイス用の受信ピンに送信するステップであって、前記第1のVGIフレームの前記最初の部分がスタートビットで始まり、前記第1のVGIフレームのストップビットの前に終了する、ステップと、
前記オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して、前記送信ピンを低出力インピーダンスを通じて電源電圧に充電することによって、前記送信ピンを介して前記第1のVGIフレームのストップビットの前記最初の部分を送信するステップと、
前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを高出力インピーダンスを通じて前記電源電圧に充電することによって、前記送信ピンを介して前記第1のVGIフレームのストップビットの前記残りの部分を送信するステップと、
第1のVGIフレームのストップビットの前記残りの部分の前記送信中に前記送信ピンの電圧がしきい値電圧を下回らなかったことの検出に応答して、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを介して前記受信デバイス用の前記受信ピンに前記第2のVGIフレームの最初の部分を送信するステップと
を備える、方法。
【請求項１２】
第1のVGIフレームのストップビットの前記残りの部分の前記送信中に、前記送信ピンの前記電圧が前記しきい値電圧を下回ったことの検出に応答して、前記第2のVGIフレームが送信されないデフォルトモードに入るステップをさらに備える、請求項11に記載の方法。
【請求項１３】
前記送信デバイスにおいて、複数のユニバーサル非同期受信機送信機(UART)信号を、ストップビットを含む第1のUARTフレームと、ストップビットを含む第2のUARTフレームとにシリアル化するステップであって、各ストップビットが最初の部分と残りの部分とを含む、ステップと、
前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを介して前記低出力インピーダンスを通じて前記第1のUARTフレームの最初の部分を前記受信デバイス用の前記受信ピンに送信するステップであって、前記第1のUARTフレームの前記最初の部分がスタートビットで始まり、前記第1のUARTフレームのストップビットの前に終了する、ステップと、
前記オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して、前記低出力インピーダンスを通じて前記送信ピンを前記電源電圧に充電することによって、前記送信ピンを介して前記第1のUARTフレームのストップビットの前記最初の部分を送信するステップと、
前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記高出力インピーダンスを介して前記送信ピンを前記電源電圧に充電することによって、前記送信ピンを介して前記第1のUARTフレームのストップビットの前記残りの部分を送信するステップと、
第1のUARTフレームのストップビットの前記残りの部分の前記送信中に前記送信ピンの前記電圧が前記しきい値電圧を下回らなかったことの検出に応答して、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを介して前記受信デバイス用の前記受信ピンに前記第2のUARTフレームの最初の部分を送信するステップと
をさらに備える、請求項11に記載の方法。
【請求項１４】
前記複数の汎用入力/出力(GPIO)信号を前記第1のVGIフレームと前記第2のVGIフレームとにシリアル化するステップが、前記第1のVGIフレームのデータペイロードをVGIペイロードとして識別するために、ヘッダを前記第1のVGIフレームに付加するステップと、前記第2のVGIフレームのデータペイロードをVGIペイロードとして識別するために、ヘッダを前記第2のVGIフレームに付加するステップとをさらに含む、請求項11に記載の方法。
【請求項１５】
前記複数のUART信号を前記第1のUARTフレームと前記第2のUARTフレームとにシリアル化するステップが、前記第1のUARTフレームのデータペイロードをUARTペイロードとして識別するために、ヘッダを前記第1のUARTフレームに付加するステップと、前記第2のUARTフレームへのデータペイロードをUARTペイロードとして識別するために、前記第2のUARTフレームにヘッダを添付するステップとをさらに含む、請求項13に記載の方法。
【請求項１６】
第1のプロセッサと、
複数の汎用入力/出力(GPIO)ピンと、
送信ピンと、
前記第1のプロセッサからGPIO信号の送信セットを受信し、前記GPIOピンを介して前記送信セットの第1の部分をリモートの第2のプロセッサに送信するように構成されたGPIOインターフェースと、
前記GPIOインターフェースからのGPIO信号の前記送信セットの残りの第2の部分を、ストップビットを含む少なくとも第1の仮想GPIO(VGI)フレームにシリアル化するように構成された有限状態機械と、
オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して、低出力インピーダンスを通じて前記送信ピンを介して前記第1のVGIフレームのストップビットの最初の部分を送信し、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、高出力インピーダンスを通じて第1のVGIフレームのストップビットの残りの部分を送信するように構成された送信バッファと、
前記送信バッファによる第2のVGIフレームの次の送信に関するフロー制御決定を行うために、前記送信ピンの電圧をしきい値電圧と比較するための手段と
を備える、集積回路。
【請求項１７】
前記集積回路が、セルラーフォン、スマートフォン、携帯情報端末、タブレットコンピュータ、ラップトップコンピュータ、デジタルカメラ、およびハンドヘルドゲーミングデバイスからなるグループから選択されたデバイスに含まれる、請求項16に記載の集積回路。
【請求項１８】
前記有限状態機械が複数のメッセージングレジスタを含み、前記第1のプロセッサが、複数のメッセージング信号を前記メッセージングレジスタに書き込むように構成され、前記有限状態機械が、前記メッセージングレジスタからの前記メッセージング信号を、ストップビットを含む第1のメッセージングフレームにシリアル化するようにさらに構成される、請求項16に記載の集積回路。
【請求項１９】
前記有限状態機械が、前記第1のVGIフレームのデータペイロードをVGIペイロードとして識別するために、ヘッダを前記第1のVGIフレームに挿入するようにさらに構成される、請求項16に記載の集積回路。
【請求項２０】
前記有限状態機械が、前記第1のメッセージングフレームのデータペイロードをメッセージング信号ペイロードとして識別するために、ヘッダを前記第1のメッセージングフレームに挿入するようにさらに構成される、請求項18に記載の集積回路。
【請求項２１】
第1のプロセッサと、
送信ピンと、
前記プロセッサからGPIO信号の送信セットを受信し、複数のGPIOピンを介して前記送信セットの第1の部分をリモートの第2のプロセッサに送信するように構成されたGPIOインターフェースと、
前記GPIOインターフェースからのGPIO信号の前記送信セットの残りの第2の部分を、第1の仮想GPIO(VGI)フレーム内および第2のVGIフレーム内の複数の仮想GPIOビットにシリアル化するように構成された有限状態機械であって、前記第1のVGIフレームおよび前記第2のVGIフレームがそれぞれストップビットで終了し、前記ストップビットは、前記仮想GPIOビットの各々の幅よりも広い幅を有する、有限状態機械と、
オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して、低出力インピーダンスを通じて前記送信ピンを介して前記第1のVGIフレームのストップビットの最初の部分を送信し、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、高出力インピーダンスを通じて第1のVGIフレームのストップビットの残りの部分を送信するように構成された送信バッファと、
前記第1のVGIフレームのストップビットの前記残りの部分の前記送信中に、前記送信ピンの電圧がしきい値電圧を上回ったという決定に応答して、前記第2のVGIフレームの最初の部分を送信するよう前記送信バッファに命令するように構成された送信制御回路と
を備える、集積回路。
【請求項２２】
前記ストップビットの前記幅が、前記仮想GPIOビットの各々の前記幅の2倍から3倍の間であり、前記集積回路が、
前記第1のVGIフレームのストップビットの前記残りの部分の前記送信中に、前記送信ピンの前記電圧が前記しきい値電圧を下回っているかどうかを決定するように構成された送信可(CTS)制御回路をさらに備える、請求項21に記載の集積回路。
【請求項２３】
前記オーバーサンプリングクロック信号を提供するためのオーバーサンプリングクロック源をさらに備える、請求項21に記載の集積回路。
【請求項２４】
前記オーバーサンプリングクロック信号を提供するためのオーバーサンプリングクロック源をさらに備える、請求項21に記載の集積回路。
【請求項２５】
前記有限状態機械が複数のメッセージングレジスタを含み、前記第1のプロセッサが、複数のユニバーサル非同期受信機送信機(UART)信号を前記メッセージングレジスタに書き込むように構成され、前記有限状態機械が、前記メッセージングレジスタからの前記UART信号を、ストップビットを含む第1のUARTフレームと、ストップビットを含む第2のUARTフレームとにシリアル化するようにさらに構成され、前記送信バッファが、前記オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して前記低出力インピーダンスを通じて前記送信ピンを介して前記第1のUARTフレームのストップビットの最初の部分を送信し、前記オーバーサンプリングクロック信号の複数のサイクルに応答して前記高出力インピーダンスを通じて第1のUARTフレームのストップビットの残りの部分を送信するようにさらに構成される、請求項21に記載の集積回路。
【請求項２６】
前記有限状態機械が、前記第1のVGIフレームおよび前記第2のVGIフレームを、それぞれがVGI信号のデータペイロードを含むものとして識別するために、前記第1のVGIフレームおよび前記第2のVGIフレームにヘッダを付加するようにさらに構成される、請求項21に記載の集積回路。
【請求項２７】
前記有限状態機械が、前記第1のUARTフレームおよび前記第2のUARTフレームを、それぞれがUART信号のデータペイロードを含むものとして識別するために、前記第1のUARTフレームおよび前記第2のUARTフレームにヘッダを付加するようにさらに構成される、請求項25に記載の集積回路。
【請求項２８】
前記有限状態機械が、前記ストップビットの前記幅をプログラムするVGAプログラミングフレームを形成するようにさらに構成される、請求項26に記載の集積回路。
【請求項２９】
受信ピンと、
受信バッファと
をさらに備え、前記受信バッファが、前記VGIプログラミングフレームによって識別される前記ストップビットの前記幅を確認する確認フレームを受信するようにさらに構成される、請求項28に記載の集積回路。
【請求項３０】
前記集積回路が、セルラーフォン、スマートフォン、携帯情報端末、タブレットコンピュータ、ラップトップコンピュータ、デジタルカメラ、およびハンドヘルドゲーミングデバイスからなるグループから選択されたデバイス内に含まれる、請求項29に記載の集積回路。
【請求項３１】
送信デバイスにおいて、複数の汎用入力/出力(GPIO)信号を、第1のVGIフレーム内および第2のVGIフレーム内に含まれる複数の仮想GPIO(VGI)ビットにシリアル化するステップであって、前記第1のVGIフレームおよび前記第2のVGIフレームが、最初の部分と残りの部分とを有するストップビットでそれぞれ終了し、各VGIビットが第1の幅を有し、各ストップビットが第2の幅を有し、前記第2の幅が前記第1の幅よりも大きい、ステップと、
オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信デバイス上の送信ピンを介して前記第1のVGIフレームの最初の部分を受信デバイス用の受信ピンに送信するステップであって、前記第1のVGIフレームの前記最初の部分がスタートビットで始まり、前記第1のVGIフレームのストップビットの前に終了する、ステップと、
前記オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して、前記送信ピンを低出力インピーダンスを通じて電源電圧に充電することによって、前記送信ピンを介して前記第1のVGIフレームのストップビットの前記最初の部分を送信するステップと、
前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを高出力インピーダンスを通じて前記電源電圧に充電することによって、前記送信ピンを介して前記第1のVGIフレームのストップビットの前記残りの部分を送信するステップと、
第1のVGIフレームのストップビットの前記残りの部分の前記送信中に前記送信ピンの電圧がしきい値電圧を下回らなかったことの検出に応答して、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを介して前記受信デバイス用の前記受信ピンに前記第2のVGIフレームの最初の部分を送信するステップと
を備える、方法。
【請求項３２】
第1のVGIフレームのストップビットの前記残りの部分の前記送信中に、前記送信ピンの前記電圧が前記しきい値電圧を下回ったことの検出に応答して、前記第2のVGIフレームが送信されないデフォルトモードに入るステップをさらに備える、請求項31に記載の方法。
【請求項３３】
前記送信デバイスにおいて、複数のユニバーサル非同期受信機送信機(UART)信号を、UARTストップビットを含む第1のUARTフレームに含まれる複数のUARTビットと、UARTストップビットを含む第2のUARTフレームとにシリアル化するステップであって、各UARTストップビットが、最初の部分と残りの部分とを含み、各UARTビットが、UARTストップビットごとの幅よりも小さい幅を有する、ステップと、
前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを介して前記低出力インピーダンスを通じて前記第1のUARTフレームの最初の部分を前記受信デバイス用の前記受信ピンに送信するステップであって、前記第1のUARTフレームの前記最初の部分がスタートビットで始まり、前記第1のUARTフレームのUARTストップビットの前に終了する、ステップと、
前記オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して、前記低出力インピーダンスを通じて前記送信ピンを前記電源電圧に充電することによって、前記送信ピンを介して前記第1のUARTフレームのUARTストップビットの前記最初の部分を送信するステップと、
前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記高出力インピーダンスを通じて前記送信ピンを前記電源電圧に充電することによって、前記送信ピンを介して前記第1のUARTフレームのUARTストップビットの前記残りの部分を送信するステップと、
第1のUARTフレームのUARTストップビットの前記残りの部分の前記送信中に前記送信ピンの前記電圧が前記しきい値電圧を下回らなかったことの検出に応答して、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを介して前記受信デバイス用の前記受信ピンに前記第2のUARTフレームの最初の部分を送信するステップと
をさらに備える、請求項31に記載の方法。
【請求項３４】
前記複数の汎用入力/出力(GPIO)信号を前記第1のVGIフレーム内および前記第2のVGIフレーム内に含まれる前記複数のVGIビットにシリアル化するステップが、前記第1のVGIフレームのデータペイロードをVGIペイロードとして識別するために、ヘッダを前記第1のVGIフレームに付加するステップと、第2のVGIフレームにヘッダを付加し、前記第2のVGIフレームのデータペイロードをVGIペイロードとして識別するために、ヘッダを前記第2のVGIフレームに付加するステップとをさらに含む、請求項31に記載の方法。
【請求項３５】
前記複数のUART信号を前記第1のUARTフレーム内および前記第2のUARTフレーム内に含まれる前記複数のUARTビットにシリアル化するステップが、前記第1のUARTフレームのデータペイロードをUARTペイロードとして識別するために、ヘッダを前記第1のUARTフレームに付加するステップと、前記第2のUARTフレームのデータペイロードをUARTペイロードとして識別するために、前記第2のUARTフレームにヘッダを添付するステップとをさらに含む、請求項33に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2016年3月3日に出願された米国出願第15/060,503号、および2015年3月6日に出願された米国仮出願第62/129,697号の利益を主張する。
【０００２】
本出願は、集積回路インターフェースに関し、より詳細には、インピーダンスに基づくフロー制御を有する2線式集積回路インターフェースに関する。
【背景技術】
【０００３】
汎用入力/出力(GPIO)により、集積回路の設計者が特定のアプリケーション向けにカスタマイズされ得る汎用ピンを実現することが可能になる。たとえば、GPIOピンは、ユーザのニーズに応じて出力ピンまたは入力ピンのいずれかであるようにプログラム可能である。GPIOのモジュールまたは周辺機器は、一般に、インターフェース要件に基づいて変化し得るピンのグループを制御する。GPIOピンは、プログラム可能なので、マイクロプロセッサおよびマイクロコントローラのアプリケーションに一般に含まれる。たとえば、モバイルデバイス内のアプリケーションプロセッサは、いくつかのGPIOピンを使用して、モデムプロセッサとのプロセッサ間通信(IPC)などの、ハンドシェイクシグナリングを行うことができる。
【０００４】
そのようなハンドシェイクシグナリングに関して、側波帯信号は、プロセッサによって送信と受信との両方が行わなければならない場合、「対称的」であるとみなされる。交換される必要があるn個の対称側波帯信号が存在する場合、各プロセッサは、n*2個のGPIO(所与の信号を送信する1つのGPIOおよびその信号を受信する1つのGPIO)を必要とする。たとえば、モデムプロセッサとアプリケーションプロセッサとの間の対称IPCインターフェースは、5つの信号を備える場合があり、それらは、結果として生じるIPCシグナリングに10個のGPIOピンが必要であることになる。IPC通信にはそれほど多くのGPIOピンが必要なので、製造コストが増大する。その上、IPCに充てるGPIOが多すぎると、他のシステムレベルの周辺インターフェースへのGPIOの利用度が制限される。この問題は、あるコーナー状態が侵害されるという点で、プロセッサ間のメインデータバス上にIPC通信を移動させることによって解決することができない。
【０００５】
従来のGPIOシステムが抱えていたピン需要を軽減するために、複数のGPIO信号が有限状態機械(FSM)を通じるなどして単一の送信ピンにシリアル化される「仮想」GPIOアーキテクチャが開発された。FSMはGPIOインターフェースから複数のGPIO信号を受信し、次にGPIOインターフェースがプロセッサから複数のGPIO信号を受信する。GPIOインターフェースはまた、従来のGPIO信号を送信する従来のGPIOピンとインターフェースする。従来のGPIO信号と送信ピン上で搬送される仮想GPIO信号との区別は、プロセッサにとって透過的である。これは、プロセッサがGPIOインターフェースを通じて通信するためにソフトウェア変更を必要としないという点で、非常に有利である。したがって、送信に関して、プロセッサはGPIOインターフェースにGPIO信号のセットを提示する。利用可能な従来のGPIOピンの数に応じて、GPIOインターフェースは、対応する従来のGPIOピンを介してGPIO信号の第1のサブセットを送信する。対照的に、GPIOインターフェースは、GPIO信号の残りのサブセットをFSMに提示し、FSMがそれらをシリアル化し、専用送信ピンを介してそれらを送信する。
【０００６】
GPIO信号送信中、専用送信ピンは、回路基板トレースなどの適切な送電線を通じて受信集積回路の専用受信ピンに結合する。したがって、送信集積回路はまた、リモート集積回路から送信された仮想GPIO信号を受信するための専用受信ピンを含む。FSMは、受信された仮想GPIO信号を、GPIOインターフェースに提示される受信されたGPIO信号の第1のセットに非シリアル化する。同様に、GPIOインターフェースは、従来のGPIOピンを通じて、受信されたGPIO信号の第2のセットを受信する。次いで、受信されたGPIO信号の第1のセットおよび第2のセットは、GPIOインターフェースを通じて従来の方法でプロセッサに提示され得る。したがって、所与の受信されたGPIO信号が、仮想GPIO信号として、または従来のGPIOピンを介して、専用受信ピンで受信されたかどうかがプロセッサには透過的である。したがって、プロセッサは、送信または受信に関してソフトウェア変更を必要としない。
【０００７】
この有利な仮想GPIO能力に関して、受信回路は、仮想GPIO信号のフレームを受信する準備ができていない(従来のGPIO信号を受信する準備もできていない)点に留意されたい。フロー制御により、そのような受信集積回路が、受信集積回路が現在データを受信できるか否かを送信集積回路に示すことが可能になる。しかしながら、一般的に、フロー制御は追加のピンを使用する必要がある。たとえば、ユニバーサル非同期受信機送信機(UART)インターフェースは、送信要求(RTS)ピン、ならびに送信可(CTS)ピンを含む。これらの2つのフロー制御ピンは、専用受信ピン、ならびに専用送信ピンに加えてある。したがって、UARTインターフェース用の2つの追加フロー制御ピン(RTSおよびCTS)は、ピン数を増加させ、製造コストをより高める。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
したがって、当技術分野では、フロー制御が2ピンインターフェースを介して多重化される2ピンインターフェースのみを使用して複数のGPIO信号を送信および受信することができるGPIOアーキテクチャが必要とされている。より一般的には、当技術分野では、2ピンインターフェース用の多重化フロー制御が必要とされている。
【課題を解決するための手段】
【０００９】
それぞれがプロセッサを有する2つの集積回路間の通信用の仮想GPIOアーキテクチャが提供される。各集積回路は、信号のセットを使用するリモートプロセッサとの通信用のGPIOインターフェースも含む。この信号のセットは、GPIO信号のセットと仮想GPIO信号のセットとを備える。したがって、各集積回路は、GPIO信号のセットに対応するGPIOピンのセットを含む。これらのGPIOピンは、GPIO技術において知られているような従来の方法でGPIO信号のセットを送信するために使用される。これに関して、GPIO信号のセット内の第1のGPIO信号は第1のGPIOピンを介して送信され、GPIO信号のセット内の第2のGPIO信号は第2のGPIOピンを介して送信され、以下同様に、GPIO信号のセット内の最後のGPIO信号は最後のGPIOピンを介して送信される。
【００１０】
GPIO信号のセットとは対照的に、仮想GPIO(VGI)信号のセットは、フロー制御インターフェースを使用してUART送信ピンを介して送信され、次にフロー制御インターフェースは仮想GPIO有限状態機械(VGI FSM)によって駆動される。集積回路ごとのVGI信号は、送信セットと受信セットとを備える。送信セットは専用送信ピンを介してリモート集積回路に送信されるが、受信セットはリモート集積回路から専用受信ピンを介して受信される。本明細書では、「デバイス」と「集積回路」は同等の用語であるとみなされる点に留意されたい。各デバイス内のVGI FSMは、専用送信ピンを介してUARTインターフェースを通じて、送信セットをリモートプロセッサにシリアル送信するように構成される。UARTインターフェースは、専用受信ピンを介してリモートプロセッサからVGI信号の受信セットをシリアルに受信し、VGI信号の受信セットをVGI FSMに提示するようにさらに構成される。
【００１１】
以下の説明では、フロー制御がUARTインターフェースを通じて実装されていると仮定する。しかし、本明細書で論じられるフロー制御技法は、UART機能なしに実施され得ることは明らかであろう。UARTインターフェースはよく知られている。従来のフォーマットでは、送信ピン(TX)、受信ピン(RX)、送信要求(RTS)ピン、および送信可(CTS)ピンが必要である。UARTインターフェースは、典型的にはビットレートの16倍のオーバーサンプリングクロック信号を使用する。したがって、それぞれ16個のサンプルによってビットを受信した。UART送信は簡単であり、バイナリ1を送信するために、UARTインターフェースは、そのオーバーサンプリングクロック信号の16個のサイクルによって決定されるビット周期の間、そのTXピンを電源電圧VDDに駆動する。受信UARTインターフェースは、それ自体のオーバーサンプリングクロックを使用して、RXピン上で結果として得られる受信信号をサンプリングする。論理0の送信は補数にすぎず、送信UARTインターフェースは、そのオーバーサンプリングクロック信号を16回循環させることによって決定されるビット周期の間、そのTXピンを接地させる。いくつかの実施形態では、オーバーサンプリングクロックの両方のエッジは、ビット周期がオーバーサンプリングクロックの8個のサイクルに対応するように使用され得る。
【００１２】
従来のUARTインターフェースは、制御プロトコルとして、ピンの別のペアを使用する。特に、従来のUARTインターフェースは、送信要求(RTS)ピンを電源電圧に充電することによってデータを受信する準備ができていることを示す。次いで、このアサートされた電圧は、受信UARTインターフェースにおいて、その送信可(CTS)ピン上で受信される。したがって、従来のUARTインターフェースは、そのCTSピンの電圧がアサートされていることを確認したときにのみ送信する。結果として生じる送信は、8ビットのフレーム内にある。
【００１３】
この従来のUART制御プロトコルは、仮想GPIOデータの可変サイズのフレームがUARTインターフェースのTXピンを介して送信されることを可能にするために、本明細書でさらに説明されるようにVGI FSMを通じて変更される。本明細書で開示されるUARTインターフェースは、アイドル期間(データ送信なし)の間、そのTXピンをVDDに弱くプルするように構成される。次いで、フレーム送信の開始は、送信UARTインターフェースがそのTXピンをビット周期にわたってローにプルすることによって画定され得る。各集積回路のプロセッサは、GPIOインターフェースに信号の第1のセットを提供する。GPIOインターフェースから、信号の第1のセットの一部分が、対応するGPIOピンの第1のセットを介して、GPIO信号の第1のセットとしてリモートプロセッサに送信される。プロセッサからの信号の第1のセットの残りの部分は、VGI FSMと並列にGPIOインターフェースによって提供される。次いで、VGI FSMは、残りの部分を、VGI信号の送信セットとしてUARTインターフェースを通じて、また専用送信ピンを介してシリアルに送信し得る。GPIOインターフェースはまた、対応するGPIOピンの第2のセットを介して、リモートプロセッサからGPIO信号の第2のセットを受信する。動作モードに応じて、VGI FSMは、VGI信号の受信セット、またはリモートプロセッサからのメッセージ信号の受信セットをシリアルに受信し、受信セットをGPIOインターフェースに並列に提供する。
【００１４】
UARTインターフェースはまた、VGI信号に加えてUART信号を送信する(その名前によって暗示されるように)。UART信号は、VGI信号と区別するために、本明細書で「メッセージング」信号として示されるものを表す。本明細書で使用される場合、メッセージング信号は、プロセッサにとって、対応するアドレスに関連付けられる信号である。これに関して、従来のGPIO信号は、対応するGPIOピン上で受信または送信される。したがって、GPIO信号はアドレスを必要とせず、受信プロセッサは対応するGPIOピンの識別情報を通じて、受信したGPIO信号の識別情報を認識する。したがって、VGI信号を識別するために、VGI FSMは、各VGI信号をフレーム内の対応するビット位置に割り当てる。たとえば、フレームは、第1のVGI信号から第8のVGI信号まで配置された8個のVGI信号を備え得る。したがって、受信VGI FSMは、フレーム内のそのビット位置から所与の受信されたVGI信号を識別する。しかし、メッセージング信号は、従来のGPIO信号のように個々のピンに割り当てられない。したがって、プロセッサは、メッセージ信号を特定のレジスタアドレスに書き込むか、または特定のレジスタアドレスからメッセージ信号を受信することによって、メッセージング信号を識別する。以下の説明は、メッセージング信号がUART信号であると仮定するが、I2C信号などの他のタイプのメッセージング信号が使用され得ることが理解されよう。フレーム内では、メッセージング信号は、ちょうどVGI信号のようにそれらのビット位置によって識別される。しかし、VGI FSMは受信したメッセージング信号を、GPIOインターフェースに提示するのではなく、それらの適切なレジスタに書き込む。次いで、プロセッサは、従来の方法でメッセージングレジスタを検索または書き込みすることができる。
【００１５】
仮想GPIO信号およびメッセージング信号に関して、開示された仮想GPIOアーキテクチャには2つの主要な実施形態がある。第1の実施形態では、専用送信ピンを介して送信される各フレームは、フレームが、VGI信号の送信セット、またはメッセージング信号の送信セットを備えるかどうかを識別するヘッダを含む。ヘッダはまた、受信機側で設定されるべきフレーム長を示してもよく、または所望のフレーム長の確認を示してもよい。第2の実施形態では、拡張ヘッダがVGI信号およびメッセージング信号のビット位置を識別するように、VGI信号とメッセージング信号の両方を含むフレームに対してヘッダが拡張される。
【００１６】
フロー制御を実装するために、各UARTインターフェースは、受信ピンに結合するRTS制御回路を含む。RTS制御回路は、高入力インピーダンスと低入力インピーダンスとの2つの選択可能な入力インピーダンスを通じて受信ピンをグランドに結合し、高入力インピーダンスは低入力インピーダンスより大きい。RTS制御回路は、各送信されるフレームを終了するストップビット中にフロー制御を適用する。受信集積回路が任意の追加フレームの準備ができていない場合、そのRTS制御回路は、その低入力インピーダンスを選択する。送信集積回路は、この時点で、比較的大きな出力インピーダンスを通じてその送信ピンを駆動しているので、送信集積回路の送信ピン上の電圧は、グランドに向かって降下する。送信集積回路のUARTインターフェースは、この電圧降下を検出するために、その送信ピンに結合されたCTS制御回路を含む。CTS制御回路がストップビットの送信中に電圧降下を検出すると、送信集積回路は、その送信ピン上の電圧が回復するまで、さらなるフレームを送信しないようにする。この電圧回復は、受信集積回路のRTS制御回路がその高入力インピーダンスを選択した場合にのみ発生する。このようにして、RTS機能とCTS機能のための別個のピンを必要とせずに、送信ピンを介してフロー制御が達成される。
【図面の簡単な説明】
【００１７】
【図１】本開示のある態様による、例示的なVGIアーキテクチャのブロック図である。
【図２Ａ】プロセッサが単一のリモートプロセッサと通信するVGIアーキテクチャについてのハイレベルブロック図である。
【図２Ｂ】プロセッサが2つのリモートプロセッサと通信する仮想GPIOアーキテクチャについてのハイレベルブロック図である。
【図３】本開示のある態様による、例示的なフレームフォーマットを示す図である。
【図４】VGIおよびメッセージングフレーム長をプログラムするために使用される長さプログラミングフレームを示す図である。
【図５】図4のフレームに応答してプログラムされたフレーム長を確認するために送信される確認フレームを示す図である。
【図６】例示的なVGIフレームおよび例示的なメッセージング信号フレームを示す図である。
【図７】VGA信号とメッセージング信号の両方を含むハイブリッドフレームを示す図である。
【図８Ａ】図1のシステムのインピーダンスに基づくフロー制御回路を示す図である。
【図８Ｂ】図8AのシステムにおけるTXバッファおよびRTS制御回路のさらなる詳細を示す図である。
【図９】図8Aのシステムによって送信されるフレーム内のストップビットの変化する出力インピーダンスを示す図である。
【図１０】本開示のある態様による、データフレームの低インピーダンス期間と高インピーダンス期間を示す図である。
【図１１】本開示のある態様による、中間ストップビットと中間スタートビットとを含むフレームの図である。
【図１２】本開示のある態様による、VGIデバイスの動作の例示的な方法のフローチャートである。
【図１３】図1のシステムに示される集積回路のうちの1つを組み込んだ例示的な電子システムのブロック図である。
【図１４】本開示のある態様による、プログラム可能な幅を有するストップビットを含むフレームの図である。
【発明を実施するための形態】
【００１８】
本発明の実施形態およびそれらの利点は、以下の詳細な説明を参照することによって最もよく理解される。同様の参照番号は、図のうちの1つまたは複数に示された同様の要素を識別するために使用されることを諒解されたい。
【００１９】
可変フレーム長機能と、送信ピンと受信ピンの2つのピンのみを介するインピーダンスに基づくフロー制御を実装するシリアルインターフェースが提供される。以下の説明は、インピーダンスに基づくフロー制御のために構成されたUARTインターフェースを使用する実施形態を対象とする。しかしながら、任意の2ピンシリアルインターフェースは、本明細書で説明される可変フレーム長およびインピーダンスに基づくフロー制御機能を有利に含むように修正され得ることが理解されよう。したがって、以下の説明は、一般性を失うことなくVGI/UARTの実施形態を対象とする。
【００２０】
例示的な仮想汎用入力/出力(VGI)アーキテクチャ100が図1に示される。ホスト集積回路101および周辺集積回路105は、両方とも、送信(TX)ピン111および受信(RX)ピン112を備える2ピンインターフェースを含む。各TXピン111は、ホスト集積回路101(ホストデバイス101とも示され得る)と周辺デバイス105(周辺デバイス105とも示され得る)との間を結合する回路基板トレースなどの適切な送電線を通じて、対応するRXピン112に結合する。
【００２１】
ホストデバイス101および周辺デバイス105は、それぞれプロセッサ(CPU)102を含む。ホストデバイス101内のプロセッサ102は、対応するGPIOインターフェース103に結合しているので、従来の方法で従来のGPIOピン125のセットとインターフェースすることができる。同様に、周辺デバイス105内のプロセッサ102は、対応するGPIOインターフェース103に結合しているので、従来のGPIOピン125のセットとインターフェースすることができる。ホストデバイス101および周辺デバイス105において、対応するプロセッサ102からの信号のある部分は、従来のGPIO信号130が従来のGPIOピン125上で送信および受信され得るので、対応するGPIOインターフェース103を通じて処理される。例示を明確にするために、GPIO信号#1から開始してGPIO信号#nまで、従来のGPIO信号130の一部のみが個別にラベル付けされている。しかし、GPIOインターフェース103を通じて対応するプロセッサ102から処理された信号の残りの部分は、従来のGPIOピン125を通じて送信または受信されない。代わりに、この残りの部分は、専用送信ピン111および専用受信ピン112を使用して、対応するVGI有限状態機械(FSM)115を通じて送信および受信される複数のVGPIO(VGI)信号135を備える。各VGI FSM 115はまた、UART信号136などのメッセージング信号を受信および送信することに関して、対応するプロセッサと直接的にインターフェースする。UART信号136はGPIO信号ではないので、GPIOインターフェース103を通じて結合しない。各FSM 115は、その専用送信ピン112および受信ピン111を通じてUART信号136を送信および受信する。したがって、これらのピンは、VGI信号135およびUART信号136の両方に使用されるという点で「ハイブリッド」ピンである。VGIアーキテクチャ100において、ホストデバイス101および周辺デバイス105に対するVGI信号135の送信および受信セットは、VGI信号#1からVGI信号#mまでの範囲にある複数のm個のVGI信号135を備え、mは正の整数である。
【００２２】
VGI信号135は、それぞれ、従来のGPIO信号130の場合のように、それらの独自の専用ピンを有さない。これは、VGIアーキテクチャ100が、各仮想GPIO信号135がそれぞれ独自のピンを必要とする従来のGPIOの実施形態と比較して、ピンの大幅な削減を達成する点で非常に有利である。UART信号136は、従来、別の専用送信ピンと別の専用受信ピンも必要とする。しかし、これらの追加のピンはまた、メッセージング信号も送信ピン111を介して送信され、受信ピン112を介して受信されるので、本発明の有利なVGIアーキテクチャにおいて除去される。
【００２３】
集積回路は、ただ1つのVGI FSM 115を含んでもよく、複数の外部システムとインターフェースするための複数のこれらの要素を含んでもよい。図2Aは、集積回路200が、それ自体のFSM 115を含む集積回路205内のリモートプロセッサ(図示せず)と通信するための単一のFSM 115を含むVGIアーキテクチャを示す。対照的に、図2Bに示される集積回路220は、それぞれ集積回路225および230内のリモートプロセッサ(図示せず)と通信するための第1のVGI FSM 115Aおよび第2のVGI FSM 115Bを含む。したがって、各集積回路225および230は、それ自体のVGI FSM 115を含む。これに関して、システムオンチップ(SOC)は、複数の他のデバイスでVGIシグナリングを収容するために必要な数のVGI FSM 115で構成され得る。デバイスが有することができるVGI FSM 115の数にかかわらず、各VGI FSM 115は、図1に関して説明したように、それ自体の専用送信ピン111および受信ピン112を使用して通信する。
【００２４】
再び図1を参照すると、VGI信号135は、VGI FSM 115などの有限状態機械を使用して収容されるので、プロセッサ102は、眠っているか、または他のタイプの休眠状態にあってよいが、VGI信号135およびメッセージング信号136を受信することができる。このようにして、VGIアーキテクチャ100は、GPIOインターフェース103ごとのピンの数を有利に節約するだけでなく、低電力でもある。
【００２５】
本明細書で使用される場合、「ピン」は、集積回路が、回路基板上のリード線、または他の適切な物理的相互接続(たとえば、パッケージ相互接続、または相互接続を介するスルーホール)に結合するために使用するパッドまたは実際のピンのような構造をカバーする総称である。たとえば、集積回路が図1に示されるような16個のGPIOピンまたはパッド125を有する場合、これらのピンは8個の対称GPIO信号130または16個の非対称GPIO信号130を収容するように構成され得る。対称GPIO信号130は、ホストデバイス101と周辺デバイス105の両方によって送信される。非対称GPIO信号130は、ホストデバイス101および周辺デバイス105のうちの一方のみによって送信されるものである。さらに、各集積回路は、複数のm個のVGI信号135の入力/出力インターフェースを収容することができる。同様に、各集積回路は、複数のm個のUART信号136の入力/出力インターフェースを収容することができる。各プロセッサ102に関して、GPIO信号130とVGI信号135との間に相違はなく、両方ともGPIOインターフェース103を通じて必要に応じて送受信される通常のGPIO信号として扱われる。しかしながら、VGI信号135およびメッセージング信号136は、従来のGPIO信号130とは対照的に専用ピンを有していないので、VGI信号135およびメッセージング信号136は、対応するTX111上の送信のためにVGI FSM 115内でシリアル化される。受信ピン112を介して受信すると、各VGI FSM 115は、受信されたシリアル化されたVGI信号135および受信されたシリアル化されたメッセージング信号136を非シリアル化する(上記のように、以下の説明では「メッセージング信号」と「UART信号」は、代替の実施形態においてI2CまたはI3C信号など、他のタイプのメッセージング信号136もあり得るという条件で、同義語であるとみなされる)。したがって、各VGI FSM 115は、VGI信号135およびUART信号136に関してシリアライザ/デシリアライザとして機能する。
【００２６】
プロセッサ102は、VGI信号135またはメッセージング信号136のうちの選択された信号の変化に応答して割込み信号を受信する必要があり得る。VGI信号135に関して、モデム電力マネージャ(MPM)140は、割込み構成レジスタ(図示せず)を通じてプログラムされたものなど、VGI信号135のうちの選択された信号を監視する。各VGI信号135は、対応する割込み構成レジスタを有する。その信号変化状態に応答して割込みを生成するためにVGI信号135が必要とされる場合、対応する構成レジスタはそれに応じてプログラムされる。同様に、VGI信号135が、信号の状態が変化したかどうかにかかわらず割込みを生成しない信号である場合、対応する割込み構成レジスタもそれに応じてプログラムされる。MPM140は、有限状態機械を備えることもできる。したがって、ちょうどVGI FSM 115と同様に、MPM140は低電力であり、そのプロセッサがスリープモードにあるか他の休眠状態にあるかにかかわらずアクティブである。
【００２７】
VGI信号135は、送信セットと受信セットとに細分され得る。対称システムでは、各送信セットは、同じ数を有することになる。同様に、各受信セットは、同じ数の信号を有することになる。しかしながら、VGIアーキテクチャ100は、仮想GPIO信号135およびUART信号136の送信セットが、周辺デバイス105と比較してホストデバイス101において異なるサイズを有する非対称シグナリング実施形態に容易に対応できる点で有利であることが理解されよう。同様に、VGI信号135およびUART信号136の受信セットは、周辺デバイス105と比較してホストデバイス101において異なるサイズを有することもできる。VGIアーキテクチャ100が対称であるか非対称であるかにかかわらず、これらの送信セット内の各信号がGPIOインターフェース103とVGI FSM 115との間のそれ自体のリード線上で搬送されるという意味では、各VGI FSM 115はGPIOインターフェース103からVGI信号135の送信セットをパラレルに受信する。UART信号136は、GPIOインターフェース103を通じて結合しない。これに関して、各VGI FSM 115は、対応するプロセッサ102によって、いくつかの周辺アドレスを与えられ得る。各VGI FSM 115は、所与のUART信号136が対応するメッセージングレジスタ138内に記憶され得るように、対応するプロセッサ102から受信したUART信号136内のアドレスフィールド137を復号するように構成される。これらのメッセージングレジスタ138は、対応するプロセッサ102のためのアドレス空間内のVGI FSM 115の汎用アドレスのいくつかのオフセットにそれぞれマッピングされ得る。次いで、プロセッサ102は、適切なUART信号136を取得するために、メッセージングレジスタ138にアクセスし得る。ちょうどVGI信号135のように、UART信号136は送信セットと受信セットに細分され得る。アーキテクチャが対称であるか非対称であるかにかかわらず、VGI FSM 115によるUART信号136のためのこれらの送信セットの結果として得られる送信は、専用の送信ピン111を介して行われる。送信プロセッサ102からのVGI信号135の送信セットは、受信プロセッサ102のためのVGI信号135の受信セットとなる。同様に、送信デバイスからのUART信号136の送信セットは、受信デバイスのためのUART信号136の受信セットとなる。次いで、受信デバイスのVGI FSM 115は、GPIOインターフェース103に並列に提示され得るように、VGI信号135の受信セットを非シリアル化する。
【００２８】
VGI信号135の送信セットをシリアル化した後、VGI FSM 115は、結果として得られるシリアル化された送信セットを対応するUARTインターフェース116に提示する。各UARTインターフェース116は、オーバーサンプリングクロックソース117からのオーバーサンプリングクロック信号118のサイクルに応答して、対応する送信ピンを介してシリアルフレームを送信するように構成される。上述したように、UARTインターフェース116がオーバーサンプリングクロック信号118の16個のサンプルに対してその送信ピン111をハイ(たとえば、電源電圧)に充電することによってバイナリ1ビットを送信するように、オーバーサンプリングクロック信号118に16倍のオーバーサンプリング周波数を使用することは従来的である。同様に、各UARTインターフェース116は、オーバーサンプリングクロック信号118の16個のサイクルの間、その送信ピン111をローに(たとえば、グランドに)放電することによってバイナリ0ビットを送信する。各UARTインターフェース116はまた、オーバーサンプリングクロック信号118の16個のサイクルにわたってその受信ピン112上の受信ビットをサンプリングするように構成される。各UARTインターフェース116はまた、サンプルのバイナリ値を決定するために、結果として得られたサンプルを、いくつかのしきい値(たとえば、バイナリ1ビット送信用に使用される電源電圧の1/2)と比較するように構成される。サンプルの大部分がバイナリ1である場合、各UARTインターフェース116は、そのビットをバイナリ1として受信する。バイナリゼロビットを受信するという逆の状況は、サンプルの大部分がゼロであることに対応する。このようなUARTの送受信はよく知られている。しかし、従来的ではないのは、本明細書でさらに説明されるように、各UARTインターフェース116によるその送信ピン111を介するフロー制御の実装形態である。同様に、VGI信号135を送受信するためにUARTインターフェース116を使用することは従来的ではない。
【００２９】
VGI信号135は、対応するUARTインターフェース116を通じて送信されるので、VGI信号135の送信されるフレームは、トンネルされた仮想GPIO信号135であるとみなされ得る。前述したように、UART信号136とVGI信号135の両方は、受信VGI FSM 115がそれらを識別できるように、送信されるフレーム内の対応するビット位置に割り当てられる必要がある。したがって、送信デバイスおよび受信デバイスは両方とも、受信されるフレーム内のビット位置が分かりやすいように、共通のフレームサイズを使用しなければならない。たとえば、受信デバイスが、8ビットフレームを受信するように構成されているが、10ビットフレームを受信する場合、受信デバイスは10ビットフレーム内の余分な2ビットの識別情報を知らない。電源投入時に、フレームサイズは、ホストデバイス101および周辺デバイス105の両方のためにあらかじめ定められたサイズを有するべきである。しかし、デバイスのうちの1つが、電源投入時に使用されるデフォルトのサイズよりも長いまたは短いフレーム長を使用したい場合がある。したがって、一実施形態では、フレームサイズは、受信デバイスによって予期されるフレームサイズを変更するために、送信デバイスによってプログラムされ得る。たとえば、送信デバイスは、受信デバイスによって使用される現在のフレームサイズをプログラムまたは変更するために、送信デバイスの意図を識別するヘッダを含むプログラミングフレームを送信することができる。
【００３０】
送信VGI FSM 115および対応するUARTインターフェース116(図1)によって構成された例示的なフレーム300が図3に示されている。フレーム300は、以下でさらに説明されるスタートビット306で始まる。スタートビット306に続くヘッダ305は、2つの機能ビット、fn_0およびfn_1を備え得る。しかしながら、代替実施形態は、より多数の機能ビットを使用し得ることが理解されよう。一実施形態では、両方の機能ビットがゼロである場合、フレーム300内の次のビットはVGI信号135である。fn_0がゼロでfn_1が1に等しい場合、次のビットはUART信号136などのメッセージング信号である。fn_0が1でfn_1が0に等しい場合、次のビットは、受信VGI FSM 115によって予期されるフレーム長を表す。同様に、両方の機能ビットが1である場合、次のビットは、新しいフレーム長の受信VGI FSM 115による確認を表す。仮想GPIO信号の送信セット(または、メッセージング信号の送信セット)がこの固定フレームサイズよりも小さい場合、各フレーム内の未使用ビットは、ドントケア値であり得る。代替として、各FSM115は、所与のアプリケーションに必要なビットの数に応じて、送信されるフレームのサイズを変更するように構成される場合がある。
【００３１】
完全なフレーム300の受信を検出するために、受信UARTインターフェース116は、スタートビット306の受信後にオーバーサンプリングクロック信号118のサイクル数をカウントする論理回路(図示せず)を含むことができる。一実施形態では、各ビット周期は、オーバーサンプリングクロック信号118の16個のサイクルに対応する。たとえば、受信フレームが、オーバーサンプリングクロック信号118の160個のサイクルに応答して受信される10個のVGI信号135の本体を有すると仮定する。ヘッダ305のサンプリングは、それが2ビットであるので、32個のサンプルを必要とする。スタートビット306が検出され、オーバーサンプリングクロックの別の160+32個のサイクルを待機した後、受信UARTインターフェース116はストップビット310の受信を予期する。ストップビット310がそれに応じて検出される場合、UARTインターフェース116は、対応するVGI FSM 115をフレーム300でストローブすることができる。VGI FSM 115内でフレーム300をラッチした後、VGI信号135の対応する受信セットがGPIOインターフェース103に提示され得る。あるいは、フレーム300がUART信号136の本体を有する場合、VGI FSM 115は、それらを適切なメッセージングレジスタ138に書き込む。
【００３２】
したがって、VGI信号135の送信セットがフレーム300において送信され得る。送信デバイスの送信セットが受信デバイスの受信セットになるので、受信セットもそれに応じてフレーム化される。このフレーム化は、各プロセッサが追加の専用ピンを必要とせずにリモートプロセッサの健全性を監視できるという点で有利である。たとえば、各UARTインターフェース116は、デフォルト状態(フレームの送信なし)の間、その送信ピン112を電源電圧に弱くプルする(したがって、受信UARTインターフェース116の対応する受信ピン112を弱くプルする)ように構成され得る。スタートビット306は、UARTインターフェース116が、スタートビット306を送信するためにオーバーサンプリングクロック信号118の適切な数のサイクル(オーバーサンプリングレートに対応する適切な数)にわたってその送信ピン111を接地するように、そのような実施形態では論理0である。このようにして、各UARTインターフェース116は、受信ピン112がオーバーサンプリングクロック信号118の適切な数のサイクルの間、グランドに向かってプルされたことを検出することによって、スタートビットの受信を容易に検出することができる。一実施形態では、スタートビット306およびストップビット310は、互いに論理的に相補的である。
【００３３】
受信デバイスが、その送信ピン111を誤ってグランドにプルするように誤作動した可能性がある。したがって、受信UARTインターフェース116は、これをスタートビット306として検出し、それに応じてフレームの終わりに向かってカウントを開始する。しかし、ストップビット310は、この実施形態では論理的なものであり、各UARTインターフェース116は、フレーム送信の終了をシグナリングするために、ビット持続時間の間そのTXピンを電源電圧に充電する。受信デバイスが誤動作して(たとえば、そのプロセッサがクラッシュして)、受信UARTインターフェース116がスタートビット306とみなされるものを検出した場合、次のストップビット310は検出されず、受信VGI FSM 115は、それに応じて送信プロセッサ102の障害をそのプロセッサ102に通知し得る。
【００３４】
スタートビット306とストップビット310の2つの機能ビットのオーバヘッド305のみを有するフレーム300の利点を考慮すると、UART信号136およびVGI信号135のフレームは、ただ1つの専用送信ピン111を介して送信され得る。UARTフレーム長を設定するための例示的なUARTプログラミングフレーム405とともに、VGIフレーム長を設定するための例示的なVGIプログラミングフレーム400が図4に示されている。フレーム長は、電源投入時にあらかじめ定義されている。したがって、VGI FSM 115が、プログラミング長が設定されている(たとえば、前述のように、fn_0は1と等しく、fn_1は0と等しい、など)ことを示すヘッダ305を有するフレームを受信すると、いくつのプログラミングビットが続くかが分かる。たとえば、(VGIデータペイロードの)あらかじめ定められたフレーム長が8ビットである場合、8つのプログラミングビットが存在する。これに関して、受信VGI FSM 115は、VGIフレームまたはUARTフレームの長さがプログラムされているかどうかを知る必要がある。したがって、フレーム400および405内の各ヘッダ305の後にアイデンティティビット410が続く。たとえば、VGIプログラミングフレーム400に示されるものと等しいアイデンティティビット410は、VGIフレーム長がプログラムされていることを示すことができるが、UARTプログラミングフレーム405に示されるようにゼロに等しいアイデンティティビット410は、UARTフレーム長がプログラムされていることを示すことができる。アイデンティティビット410に続くプログラミングペイロード内の各プログラミングビットは、2のバイナリ累乗を表す。プログラミングビットは、ビット0(2のゼロ乗を表す)から、2の4乗を表すビット4の範囲である。VGIプログラミングフレーム400では、プログラミングビット1およびビット3のみがバイナリ1であるので、フレーム長は2と8の和に等しく、すなわち10に等しい。次いで、受信VGI FSM 115によって予期されるVGIフレーム長は、VGIプログラミングフレーム400の受信後に、8ビットなどのデフォルト値から10ビットに再構成される。同様に、プログラミングビット1および3は、UARTプログラミングフレーム405内の唯一のバイナリビットである。したがって、UARTフレーム長は、UARTプログラミングフレーム405の受信後に、デフォルト値から10ビットに変更される。VGIプログラミングフレーム400とUARTプログラミングフレーム405の両方は、図3に関して説明したように、スタートビットで始まり、ストップビットで終了する。
【００３５】
フレーム長がプログラムされると、受信VGI FSM 115は、その送信ピン111を介して確認フレームを送信することによって新しいフレーム長を使用することを確認することができる。例示的なVGI確認フレーム500と例示的なUART確認フレーム505が図5に示されている。機能ビット305は、確認フレームが送信されていることを識別するために、図3に関して説明したように1および1である。VGI確認フレーム500内のヘッダ305に続くアイデンティティビット510は、VGI確認フレーム500が新しいVGIフレーム長の設定を確認することを識別するためにバイナリ1の値を有する。アイデンティティビット305に続くペイロード内のビットは、VGIプログラミングフレーム400(図4)によってプログラムされることが意図されたビットと一致する。これらのビットは、図4に関して説明したものと同じバイナリ重み付けを有する。UART確認フレーム505は、それをUART確認フレームとして識別するためにゼロに設定されたそのアイデンティティビット510を有する。そのペイロードは、VGI確認フレーム500に使用されるものと同じバイナリ重み付けを有する。VGI確認フレーム500およびUART確認フレーム505の両方は、図3に関して説明したように、スタートビット306で開始し、ストップビット310で終了する。
【００３６】
そのようにしてフレーム長がプログラムされると、図6に示されるように、VGIフレーム600またはUARTフレーム605が送信され得る。VGIフレーム600は、ペイロード長(n+1)のVGIビットに対してプログラムされ、VGIビット(機能ヘッダ305に続く)はVGIビット0からn番目のVGIビットn(nは正の整数)までの範囲である。送信ピン111を介した対応するシリアル化がなければ、これらの(n+1)個のVGI信号135は、(n+1)個の従来のGPIOピン125を必要とする。
【００３７】
前述のように、送信VGI FSM 115からのフレームがVGI信号135とUART信号136の両方を含む代替実施形態がある。これらのフレームは、UART信号136をVGI信号135と混合するので、本明細書では「ハイブリッド」フレームと示され得る。たとえば、図7は、スタートビット306、その後に機能ヘッダ305、ならびに拡張ヘッダ705を含む例示的なハイブリッドフレーム700を示す。拡張ヘッダ705は、メッセージング信号(たとえば、UART)ビット701のセットのビット位置と、拡張ヘッダ705に続き、ストップビット310の前の、VGIビット715のセットを示す。レイテンシ要件に応じて、UARTビット710またはVGIビット715がフレーム本体の最初に存在し得る。いくつかの実施形態では、拡張ヘッダ705は、巡回冗長検査(CRC)ビットなどの誤り訂正ビットを含み得る。したがって、残りのビットはデフォルトで残りのビット位置に属することが分かっているため、拡張ヘッダ705は、VGIビット715のみ、またはUARTビット710のみの位置および長さを単に識別するだけでよい点に留意されたい。VGIビット715に含まれるビット数、またはUARTビット710に含まれるビット数を識別するために、0番目の拡張ヘッダビットEXT_Hdr[0]からn番目の拡張ヘッダビットEXT_Hdr[n]の範囲の拡張ヘッダビットは、それぞれ図5のプログラミングペイロードに関して説明したように、2の対応する累乗を識別し得る。
【００３８】
次に、各UARTインターフェース116を通じて実装されるようなインピーダンスに基づくフロー制御が扱われる。図8Aは、ホスト集積回路(IC)801および周辺IC 802を含むシステム800のフロー制御回路の態様を示す。例示を明確にするために、ホストIC 801内のUARTインターフェース116には、送信回路のみが示されている。同様に、周辺IC 802内のUARTインターフェース116には、受信回路のみが示されている。簡略化のために、送信(TX)ピン111のみがホストIC 801に示されている。同様に、受信(RX)ピン112のみが周辺IC 802に示されている。しかしながら、図1に関して説明したように、これらのインターフェースは、両方のタイプのピンを含むことが理解されよう。ホストIC 801内のVGI FSM 115は、送信シフトレジスタ805によって、および周辺IC 802内の受信シフトレジスタ836によって表される。
【００３９】
ホストIC 801内のプロセッサまたは他のデータソース(図示せず)は、GPIO信号またはUART信号などのソースデータを提供する。システム800において、送信ピン111を介して送信されるフレーム(図示せず)は、前述したように、VGIフレーム600、UARTフレーム605、またはハイブリッドフレーム700のいずれかであり得る。ホストIC 801内のVGI FSM 115(シフトレジスタ805によって表される)はまた、システムバスからデータを受信する先入れ先出し(FIFO)メモリ803を含むか、または関連付ける。例示を明確にするために、対応するGPIOインターフェース103(VGIフレーム600の送信用)はシステム800内に示されていないことが理解されよう。周辺IC 802は、そのシステムバスに結合された対応するFIFOメモリ840を含む。従来のように、各FIFOメモリ803および840は、追加のデータを受信する能力を監視するためにFIFOウォーターマークロジックを含み得る。その先入れ先出しロジックによれば、次いで、ホストFIFOメモリ803は、その最も早くロードされたデータを送信シフトレジスタ805にロードする。UARTインターフェース116内の送信制御回路810は、16倍オーバーサンプリングクロック信号(図示せず)の16個のサイクルごとに1回循環するシフトクロックを使用して、その内容をシフトインするために送信シフトレジスタ805をストローブする。代替実施形態では、他のオーバーサンプリングクロックレートが使用され得る。送信制御回路810は、送信シフトレジスタ805からシフトインビットを受信し、シフトインビットのバイナリ値に従って送信ピン111の電圧を駆動するために送信(Tx)バッファ815を制御する。たとえば、Txバッファ815は、バイナリ1を送信するために、16倍オーバーサンプリングクロック信号の16個のサイクルにわたりその送信ピン111を電源電圧で駆動するためにシフトインバイナリ1に応答することができる。逆に、Txバッファ815は、バイナリゼロを送信するために、16倍オーバーサンプリングクロック信号の16個のサイクルにわたってその送信ピン111を接地するためにシフトインゼロビットに応答するように構成される。前述したように、VGI FSM 115(図1)は、所望のスタートビット、ヘッダ、拡張ヘッダ、アイデンティティビット、およびストップビットを、送信シフトレジスタ805から結果としてシフトアウトされたデータのフレームに挿入することが理解されよう。
【００４０】
以下でさらに説明されるように、送信バッファ815は、高出力インピーダンスと低出力インピーダンスの2つの出力インピーダンスの中から選択するように構成される。スタートビットからフレームのデータペイロード送信まで、送信制御回路810は、送信バッファ815に、その低出力インピーダンスを使用するように命令する。さらに、送信制御回路810は、送信バッファ815に、その低出力インピーダンスを、16倍オーバーサンプリングクロック信号の1または2サイクルを介するなど、フレームのストップビットのある最初の部分を介して使用するように命令する。次いで、送信制御回路810は、送信バッファ815に、ストップビット送信の残りのために、およびフレーム送信の間の任意の待機期間中に、その高出力インピーダンスを使用するように命令する。高出力インピーダンスは、低出力インピーダンスよりも実質的に大きい。
【００４１】
ストップビット送信の高出力インピーダンス部分の間、ホストのUARTインターフェース116内の送信可(CTS)制御回路820は、次いで、送信ピン電圧がバイナリ1であるかバイナリゼロであるかを、電源電圧の半分(または、より一般的には、バイナリ1の値を送信するために送信バッファ815によって使用される送信電圧であって、電源電圧に等しくてもよく、電力を節約するために低減されてもよい)などの何らかのしきい値レベルを使用して検出する。送信ピン電圧のバイナリ値に基づいて、CTS制御回路820は、その出力信号(Tx_OK)をそれに応じて駆動することができる。たとえば、出力信号Tx_OKのバイナリゼロ値は、現在のフレームのストップビット送信に続く次のフレームにおいてシフトするために、シフトレジスタ805をストローブしないように、送信制御回路810をトリガすることができる。このアイドル状態は、CTS制御回路820が送信ピン電圧がバイナリ高値であることを再び検出するまで継続し、したがって、CTS制御回路820がそれに応じてその出力信号Tx_OKをアサートするようになる。次いで、送信制御回路810は、送信バッファ815に、別のフレーム送信を開始するためにその低出力インピーダンス状態に入るように命令する(送信するものがあると仮定し、それはホストのFIFOバッファまたはメモリ803の状態に依存する)。
【００４２】
周辺IC 802において、そのUARTインターフェース116内の受信(RX)バッファ825は、RXピン112を介して各フレームを受信するように構成される。たとえば、RXバッファ835は、RXピン電圧がインバータトランジスタのゲートを駆動するインバータ(または比較器、図示せず)を備え得る。MOSFETトランジスタはそれらのゲートにおいて比較的高いインピーダンスを示すので、RXバッファ825は対応して高入力インピーダンスを有する。RXバッファ825は、オーバーサンプリングクロック信号(図示せず)に応答して、受信されるフレーム内の各ビットをサンプリングするように構成される。16倍オーバーサンプリングレートでは、受信されるフレーム内の各ビットは16個のサンプルで表される。16個のサンプルの各セットのバイナリ状態に基づいて、RXバッファ825は、結果として得られる受信ビットを受信制御回路835に駆動するためにビット決定を行い、次に受信制御回路835は、シフトクロックのストローブに応答して、受信ビットを受信シフトレジスタ836にシフトする。したがって、受信シフトレジスタ836のストローブは、16倍オーバーサンプリングクロック信号の16個のサイクルに等しい期間を有し得る。フレーム全体がシフトレジスタ836にロードされると、最終的にシステムバスを介して周辺IC 802内のプロセッサまたは他のデータシンク(図示せず)にパラレルに提示されるように、結果として得られるフレームが受信FIFOバッファ840にシフトされ得る。
【００４３】
RXバッファ825の入力インピーダンスは、上述のように高インピーダンス値に固定される。しかし、送信要求(RTS)制御回路830は、低入力インピーダンスと高入力インピーダンスの、RXピン112のための2つの入力インピーダンスの中から選択することができる。高入力インピーダンスは、通常、ホストIC 801の高出力インピーダンス(たとえば、10KΩ)よりもかなり高い。低入力インピーダンスは高入力インピーダンスよりもかなり低い。デフォルトモードの間、また現在のフレームのデータペイロードを通じてスタートビットを受信するとき、RTS制御回路830は受信ピン112にその高い入力インピーダンスを提示する。したがって、この低入力インピーダンスの提示の間、RTS制御回路830は、受信ピン電圧に影響を及ぼすことから効果的に分離される。受信制御回路835は、受信FIFOバッファ840が別のフレームを受信するために利用可能な十分な記憶容量を有するかどうかを決定するために、現在のフレームの受信されたストップビットの開始を検出し、受信FIFOバッファ840内の受信(RX)FIFOレベルをチェックする。送信FIFOバッファ803と同様に、受信FIFOバッファ840は、RX FIFOレベル信号を生成するためにウォーターマークロジックまたは他の適切な回路を含み得る。利用可能な十分な記憶容量がある場合、受信制御回路835は、現在のフレームのストップビットの残りの部分にわたってRTS制御回路830のデフォルト高出力インピーダンスを変更しない。しかし、利用可能な十分な記憶容量がない場合、受信制御回路835は、RTS制御回路830にその低入力インピーダンス(たとえば、50オーム)を選択するように命令する。この低入力インピーダンスは、周辺IC 801の低出力インピーダンスと実質的に等しくてもよい。ホストIC 801の送信バッファ815の高出力インピーダンスと比較して、周辺IC 802内のRTS制御回路830の低入力インピーダンスによって生じる、結果として得られる分圧器は、RTS制御回路830に、そのRXピン112上の電荷を急速に消耗させ、次に、RXピン112はホストIC 801のTXピン111として放電する。次いで、ホストIC 801内のCTS制御回路820は、この送信ピンの電圧降下を検出するので、ホストIC 801は、そのTXピンの電圧が回復されるまで、追加のフレームの送信を控える待機モードに入る。周辺IC 802内のRX制御回路835は、そのRX FIFOレベルが、別のフレームを受信するための十分な記憶能力があることを示すときを決定し、RX制御回路835は、RTS制御回路830に、そのデフォルト高出力インピーダンスを再開するように命令する。次いで、ホストIC 801におけるTXピン電圧の結果として得られる回復は、別のフレームの送信をトリガする。したがって、ホストIC 801と周辺IC 802との間のフロー制御は、別個のCTSまたはRTSピンを必要としない。
【００４４】
TXバッファ815およびRTS制御回路830の例示的な実施形態が図8Bに示されている。TXバッファ815内のスイッチS1は、抵抗RHighを通じて送信ピン111に結合する。同様に、スイッチS2は抵抗RLowを通じて送信ピン111に結合する。RHighの抵抗は、10Kオームなどの上述の高出力インピーダンスであるのに対して、抵抗器RLowの抵抗は、やはり上述の50オームなどの低出力インピーダンスである。スタートビットからデータペイロードの終わりまでのフレームの送信中、TXバッファ815内のスイッチS2が閉じられ、スイッチS1が開かれる。したがって、フレームのこの最初の部分(実際にはフレームの大部分)が、低出力インピーダンスを使用して送信される。この低出力インピーダンスは、フレームのストップビットの少なくとも最初のオーバーサンプリングクロックサイクルにわたって続く。ストップビット送信の残りのために、スイッチS1が閉じられ、スイッチS2が開かれるので、ストップビットの残りは高出力インピーダンスを使用して送信される。スイッチS1は、送信ピン111が常に抵抗器RHighを通じて電源電圧VDDに弱く充電されるような代替実施形態では省略され得ることが理解されよう。制御信号(図示せず)は、フレームのストップビットの少なくとも第1のオーバーサンプリングクロックサイクルを通じて、フレームの最初の部分の間、送信ピン111が電源電圧VDDに強く充電されるように、スイッチS2の閉鎖を制御することができる。グリッチを防止するために、CTS制御回路820は、制御信号駆動スイッチS2の補数によって可能にされ得る。このようにして、CTS制御回路820は、TX制御回路815が送信ピン111を弱く充電しているときのみアクティブになる。
【００４５】
RTS制御回路830は、スイッチS3およびS4の類似の構成と、抵抗RHighおよびRLowの類似のペアとを含む。受信されるフレーム受信の大部分(スタートビットから、ストップビットのサンプルの最初のサンプルまで)の間、ピン112を受取るために高入力インピーダンス(抵抗RHighの抵抗)を提示するために、スイッチS3は閉じられ、スイッチS4は開かれる。周辺ICの高入力インピーダンスとホストICの低出力インピーダンスとの間の結果として得られる電圧分割は、送信される/受信されるフレームのこの最初の部分の間に、TXバッファ815が、そのTXピン電圧を急速に充電する(または、各ビットのバイナリ値に応じて放電する)ことを可能にする。TXバッファ815がストップビット送信の残りのためにその高出力インピーダンスを切り替えると、RTS制御回路830は、RX FIFOバッファ840に十分な空きがない場合にRXピン112に低入力インピーダンス提示するために、スイッチS4を閉じ、スイッチS3を開く。十分な空きがある場合、スイッチS3は閉じたままであり、スイッチS4は開いたままである。
【００４６】
図3に関して説明したようなストップビット910の送信中のTXバッファ815の出力インピーダンスのタイミングが図9に示されている。初期低出力インピーダンス期間A、およびその後の高出力インピーダンス期間Bの持続時間は、16倍UARTオーバーサンプリングクロック信号900のサイクルに応答して決定される。一実施形態では、初期低出力インピーダンス期間Aは、16倍UARTオーバーサンプリングクロック信号900の最初の2つのサイクル中に生じる。そのような実施形態では、高出力インピーダンス期間Bは、16倍UARTオーバーサンプリングクロック信号900の残りの14個のサイクルにわたって生じる。初期低出力インピーダンス期間に照らして、ストップビット910は所望の論理ハイレベルに迅速に駆動され得る。
【００４７】
送信デバイスによって送信された例示的なフレーム1000が図10に示されている。さらに、ホストIC 801におけるTXバッファのインピーダンス状態(「TX」で示される)、および受信デバイスにおけるRTS制御回路(「RX」で示される)のインピーダンス状態も示されている。この実施形態では、フレーム1000は8ビットのデータペイロードを有するが、そのような長さは代替実施形態では変更され得る。送信デバイスは、スタートビットの持続時間の間そのTXピンをローにプルすることによってフレーム1000を開始する。フレーム1000内のデータビットおよびストップビットと同様に、スタートビットは、16倍オーバーサンプリングクロック信号の16個のサイクルに対応する期間を有することができる。代替実施形態では、フレーム1000内のビットの持続時間を測定するために、異なるオーバーサンプリングレートが使用され得る。フレーム1000はストップビットで終了し、その間にTXバッファはTXピンの電圧を高電圧に充電しようとする。
【００４８】
RXバッファは、16倍オーバーサンプリングクロック信号などの、そのオーバーサンプリングクロック信号を使用して、受信されるフレームをサンプリングする。例示を明確にするために、スタートビット、後続のデータビット(ヘッダ内の機能ビットは、説明を分かりやすくするためにフレーム1000には示されていないが、これらのビットも低出力インピーダンスで送信される)と、ストップビットの最初の部分の送信の間、TXバッファは、その低出力インピーダンス(50オームに等しいZout)を使用する。この間、受信デバイス内のRTS制御回路は、その高入力インピーダンス(「High-Z」)を使用するので、TXバッファは各送信ビットのバイナリ値に応じて、そのTXピンの電圧を適切なバイナリ値(VDDまたはグランド)にすばやくスイングさせることができる。さらに、TXバッファはまた、16倍オーバーサンプリングクロックの1サイクル以上などのストップビットの最初の部分の間、TXピンを電源電圧に迅速に充電することができる。図9に関して前述したように、ストップビットのオーバーサンプリングクロックの残りのサイクルにわたって、TXバッファはその高出力(O/P)インピーダンスを使用する。ストップビット送信の残りの間、このTXバッファ高出力インピーダンス期間には、図10に示される2つの受信機状態があります。第1の状態(ケース#1)では、RX FIFOレベルは、受信機制御回路(図示せず)内で決定されるようなFIFOしきい値設定点を下回る。そのような状態は、受信FIFOバッファ(やはり図示せず)内に記憶能力があることを示す。したがって、受信デバイス内のRTS制御回路は、ストップビットの持続時間の間、そのデフォルト高出力インピーダンスを維持する。第2の状態(ケース#2)では、RX FIFOレベルがFIFOしきい値設定点よりも大きい。TXバッファは、最初は低出力インピーダンスを使用してストップビットの最初の部分を駆動するので、この初期ストップビット期間中に、送信ピン電圧は電源電圧に容易に充電され得る。
【００４９】
ストップビットの最初の部分のRXピンの高電圧の検出に応じて、受信ノード内のRTS制御回路は、2つのことのうちの1つを行うことができる。低入力インピーダンスを通じてRXピンをグランドに接続してもよく、高入力インピーダンスを通じてRXピンをグランドに接続してもよい。RTS制御回路は、上述したような選択を行う。受信UARTインターフェースがフレームを受信する準備ができている場合(ケース#1のRX=OK条件として図10に示される)、RTS制御回路は、高入力インピーダンス、好ましくはTXバッファに使用される高出力インピーダンスよりもかなり大きい高入力インピーダンスを通じて、RXピンをグランドに結合する。その結果、TXバッファとRTS制御回路は、受信UARTインターフェースがフレームを受信する準備ができている場合はRXピンの電圧を高く維持する分圧器を形成する。修正された送信UARTインターフェースは、そのCTS制御回路を通じてこの高電圧を検知する。ストップビット期間の高出力インピーダンス部分の間、CTS制御回路が、そのTXピンの電圧が高いことを検知する場合、修正された送信UARTインターフェースは自由に別のデータフレームを送信する。
【００５０】
他方では、修正された受信UARTインターフェースがデータの別のフレームを受信する準備ができていない場合(ケース#2のRX=Not OK条件によって図10に示されるように)、RTS制御回路は、ストップビットを受信している間、比較的低いインピーダンスを通じてRXピンをグランドに結合する。TXバッファは高出力インピーダンスを通じてTXピンを高く駆動するため、その結果、RXピンとTXピンの電圧は実質的にグランドに放電され、送信デバイスによってCTS信号=0の状態として解釈される。送信デバイスが別のデータフレームを送信することを控えるように、従来のUARTインターフェースは(現存していない)CTSピンの低状態を検知するので、修正された送信UARTインターフェース内のCTS制御回路は、そのTXピン上でこの低電圧を検知する。受信UARTインターフェース内のRTS制御回路が、図10のケース#1のように、その高入力インピーダンスを通じてそのRXピンをグランドに結合する場合、送信UARTインターフェースは別のフレームを送信するように進み得る。
【００５１】
前述の説明は、従来のRTSピンおよびCTSピンを使用しないフロー制御に関するものであったが、従来のUART送信との下位互換性を必要とする実施形態では、RTSピンおよびCTSピンが提供され得ることが理解されよう。
【００５２】
本明細書で有効にされる柔軟なフレーム長が与えられると、フレーム長が増加され得、送信デバイスと受信デバイスのオーバーサンプリングクロック間の同期の欠如がエラーにつながる可能性がある点に留意されたい。これに関して、16倍オーバーサンプリングクロックが使用されると仮定すると、フレームの10ビットのデータペイロードは160個のサンプルによって表される。この同じサンプリングレートでは、20ビットのデータペイロードは320個のサンプルによって表される。サンプル数が増加すると、異種デバイスのオーバーサンプリングクロックが同期していないため、受信集積回路がフレーム内の所与のビットをアンダーサンプリングまたはオーバーサンプリングする可能性が高くなる。同期性を維持するために、より大きなフレームは、中間ストップビットおよびスタートビットを含み得る。前述の機能ビットは、これらの中間ビットの位置をより大きなフレームにおいてプログラムすることができる。たとえば、大きなフレームが最初の10個のビットの後に中間ストップビットを含むことが分かっている場合、受信デバイスは、中間ストップビットの受信前に160個のサンプルを作成したことを予期することができる(16倍オーバーサンプリングレートが使用されると仮定する)。より多くの、またはより少ないサンプルがある場合、受信デバイスは、それに応じて送信デバイスのオーバーサンプリングレートと十分に同期したままであるように、そのオーバーサンプリングレートを調整することができる。中間ストップビット1100に中間スタートビット1105が続く例示的なフレーム1101が図11に示されている。フレーム1101は、図3のフレーム400に関して説明したように、スタートビット306で開始し、ストップビット310で終了する。中間ストップビット1100は、最初の8個のデータビットD0〜D7に続く。ストップビット310とは対照的に、中間ストップビット1100の送信のための変化する出力インピーダンスがある必要はなく、対応するTXバッファは、そのTXピンをそのビットの電源電圧に駆動することができる。逆に、中間スタートビット1105を送信するために、TXバッファはそのTXピンを接地する。
【００５３】
可変出力インピーダンスは、2線式インターフェースを介したフロー制御の確立を有利に助けるだけではなく、デバイスの電源投入後のバック電力状態を本質的に保護する。これに関して、デバイスの電源がオンであるので、受信デバイスが依然として電源を切られている間、1つの集積回路がそのTXピン電圧を最初に高く駆動する場合がある。電源をオフにされたデバイスにおいて受信されたこのアサート電圧は、受信デバイスにおいて順方向バイアスされた寄生ダイオードを形成し得、受信デバイスは、最終的に電源がオンにされているときに、電流を無駄にし、ラッチアップまたは他のグリッチにつながる可能性がある。この問題は、従来、バック電力状態として示されている。しかし、本明細書に開示されているTXバッファのデフォルト高出力インピーダンスは、受信デバイス内の寄生ダイオードを順方向バイアスするためにある量の電流を必要とするため、この問題を本質的に回避する。TXバッファの高出力インピーダンスは、バック電力状態が生成されないように、電源オフの受信デバイスによって引き出される電流を制限する。
【００５４】
さらに、パワーアップ時に使用される高出力インピーダンスは、列挙プロセス中に有利である。電源オンリセット時に、最初の列挙の前に、TXピンの電圧レベルは高出力インピーダンスで「1」のままである。「1」の状態でTXピンをアサートするデバイスは、最初に「マスタ」状態を獲得する。これは、Txピンを「1」に設定する前に、デバイスはそのRXピンにおいて信号状態をチェックすることを意味する。マスタSOCは常に最初に電源をオンにされるので、マスタとしての役割はこの簡単なプロトコルで保証される。これと同じ動作(1回目から電源オンまでがマスタになる)は、マルチドロップ構成に関わるVGIインターフェースにおいて発生する可能性のあるあらゆる競合も解決する。
【００５５】
リモートコーナーケースの状態では、デバウンスのタイミング差(マルチドロップ構成において、あるデバイスから別のデバイスに発生する可能性がある)のために、早期列挙の1回目の反復では障害が発生する。その後の試行は、各側の非同期ローカルクロックがマスタとしてリードを取ろうとすることから開始する。位相差がゼロの両側の非同期クロックの正のエッジの確率は無限に小さいので、2つのデバイスのうちの一方が常にマスタになる。
【００５６】
次に、図1のホストデバイス101のようなホストデバイスの動作の例示的な方法について、図12のフローチャートを参照して説明する。本方法は、送信デバイスにおいて、複数の汎用入力/出力(GPIO)信号を仮想GPIO(VGI)信号の少なくとも第1のフレームとVGI信号の第2のフレームにシリアル化する動作1200を含み、第1のVGIフレームおよび第2のVGIフレームは、それぞれ最初の部分および残りの部分を有するストップビットで終了する。図8Aの送信シフトレジスタ805内の現在のフレームおよび後続のフレームのシリアル化は、動作1200の一例である。
【００５７】
本方法はまた、オーバーサンプリングクロック信号の複数のサイクルに応答して、送信デバイス上の送信ピンを介して第1のVGIフレームの最初の部分を受信デバイス用の受信ピンに送信する動作1205を含み、第1のVGIフレームの最初の部分はスタートビットで始まり、第1のVGIフレームのストップビットの前に終了する。図8Aおよび図8BのTXバッファ815に関して説明したように、フレームのスタートビットからフレームのデータペイロードの終わりへの送信は、動作1205の例である。
【００５８】
さらに、本方法は、オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して、低出力インピーダンスを通じて送信ピンを電源電圧に充電することによって、送信ピンを介して第1のVGIフレームのストップビットの最初の部分を送信する動作1210を含む。図9に関して説明した、最初の部分Aの送信は動作1210の一例である。
【００５９】
本方法はまた、オーバーサンプリングクロック信号の複数のサイクルに応答して、送信ピンを高出力インピーダンスを通じて電源電圧に充電することによって、送信ピンを介して第1のVGIフレームのストップビットの残りの部分を送信する動作1215を含む。図9に関して説明した、残りの部分Bの送信は動作1215の一例である。
【００６０】
最後に、本方法は、第1のVGIフレームのストップビットの残りの部分の送信中に送信ピンの電圧がしきい値電圧を下回らなかったことの検出に応答して、オーバーサンプリングクロック信号の複数のサイクルに応答して、送信ピンを介して受信デバイス用の受信ピンに第2のVGIフレームの最初の部分を送信する動作1220を含む。図8Aに関して説明したように、最初の部分がTXピン111を介して送信され得るように、送信シフトレジスタ805からTXバッファ815への次のフレームの最初の部分をシフトインすることは、動作1220の例である。
【００６１】
図1のVGIアーキテクチャ100内のホストデバイス101は、図13に示されるように、システムオンチップ(SOC)1305としてモバイルデバイス1300に組み込まれ得る。モバイルデバイス1300は、セルラーフォン、スマートフォン、携帯情報端末、タブレットコンピュータ、ラップトップコンピュータ、デジタルカメラ、ハンドヘルドゲーミングデバイス、または他の適切なデバイスを備え得る。SOC1305は、システムバス1315内の2本のワイヤを使用してVGIアーキテクチャ100に関して同様に説明したように、周辺IC 1310と通信する。システムバス1315はまた、ダイナミックランダムアクセスメモリ(DRAM)1320などのメモリ、およびディスプレイコントローラ1325に結合する。今度は、ディスプレイコントローラ1325は、ディスプレイ1335を駆動するビデオプロセッサ1030に結合する。次に、送信デバイスと受信デバイスのオーバーサンプリングクロック間の非同期性を扱うためのプログラム可能なストップビット幅について説明する。
【００６２】
プログラム可能なストップビット幅
再び図10を参照すると、受信デバイスは、送信デバイスによって使用されるオーバーサンプリングクロック信号とは非同期であるオーバーサンプリングクロック信号でフレーム1000をサンプリングする点に留意されたい。オーバーサンプリングクロックレートが16倍である場合、受信デバイスは理想的にはフレーム1000の各ビットを16回サンプリングする。したがって、各ビットからの第8のサンプルは、第8のサンプルを電源電圧VDDの2分の1などのしきい値電圧と比較することによってビット決定を行うために受信デバイスによって使用され得る。第8のサンプルがしきい値電圧よりも大きい場合、受信デバイスは対応するビットをバイナリ1として復号することができる。反対に、第8のサンプルがしきい値電圧よりも低い場合、受信デバイスは、対応するビットをバイナリゼロとして復号することができる(論理的に高い実施形態では)。
【００６３】
オーバーサンプリングクロックレートおよびフレーム長は、送信デバイスおよび受信デバイスにおけるオーバーサンプリングクロック信号間の非同期性の制限を定める。フレーム1000は10ビット長であるため、完全に同期化された受信デバイスは、16倍オーバーサンプリングクロックレートで160個のサンプルでフレーム1000をサンプリングする。各ビットを決定するために8番目のサンプルが使用される場合、受信オーバーサンプリングクロックレートは、送信オーバーサンプリングクロックレートの8/160=5%で高速または低速になりすぎることはできない。受信オーバーサンプリングクロックレートが送信オーバーサンプリングクロックレートの95%未満である場合、フレーム1000内のストップビットの意図された8番目のサンプルは代わりに最終データビットD7から取得される。同様に、受信オーバーサンプリングクロックレートが送信オーバーサンプリングクロックレートの105%より大きい場合、代わりにストップビットの意図された8番目のサンプルがストップビットの終了後に取得される。もちろん、どちらのシナリオでも、ストップビットの存在を復号する際にエラーが発生することがある。
【００６４】
受信オーバーサンプリングクロックレートがその最大限界に向かって増加すると、ストップビットの受信デバイスによって取得された8番目のサンプルは、フレーム1000の終わりに向かってますます近づく。次いで、受信デバイスのRTS制御回路830(図8)は、受信デバイスが別のフレームを受信する準備ができているかどうかに応じて、その高または低入力インピーダンスを選択することができるが、送信デバイスは、そのCTS制御回路820および送信制御回路810を通じてその送信ピン電圧を処理するために、ただ1つまたは2つのオーバーサンプリングクロックサイクルを有し得る。したがって、送信制御回路810は、受信デバイス内のRTS制御回路830によって適用されるインピーダンスに基づくフロー制御によって、その送信ピン電圧が放電されるか否かに基づいて、送信シフトレジスタ805を制御するために、処理時間のいくつかのオーバーサンプリングクロックサイクルを必要とすることが理解されよう。たとえ受信オーバーサンプリングクロックレートがその最大限度よりも小さい場合であっても、送信デバイスは、受信デバイスからのインピーダンスに基づくフロー制御メッセージングを処理するために十分な時間を有さない可能性がある。さらに、送信デバイス上の送信ピン111と受信デバイス上の受信ピン112との間の送信チャネルは、送信機に対するこの処理遅延を悪化させる可能性がある点にさらに留意されたい。これに関して、モバイルデバイス1300に関して説明したように、SOC101から周辺デバイス105へなどのモバイルデバイスにおける送信チャネルは、比較的短くてもよい。しかしながら、あるプロセッサと別のプロセッサとの間のパーソナルコンピュータ(PC)実装形態における送信チャネルは、比較的長く(たとえば、モバイルアプリケーションにおいては数ミリメートルにすぎないのと比較して、1メートル以上)てもよい。この増加したチャネル長は、RTS制御回路830によって選択されるような低入力インピーダンスを通じて送信ピン111をローに放電するために受信デバイスによって必要とされる時間を増加させる。
【００６５】
受信デバイスからのインピーダンスに基づくフロー制御メッセージングを処理するために十分な時間を送信デバイスに与えるために、ストップビット1405の幅は、図14のフレーム1400に示されるようにプログラム可能であり得る。たとえば、ストップビット1405の幅は、1ビットのデフォルト値から2.5ビット、あるいはさらに3ビットまたはそれ以上の幅に増加され得る。この増加された幅のストップビット1405は、受信デバイスからのインピーダンスに基づくフロー制御メッセージングを処理するために、そのオーバーサンプリングクロック信号の十分なサイクルを送信デバイスに提供する。送信デバイスは、図3に関して同様に論じたような適切な機能ヘッダを有するプログラミングフレームを通じて受信デバイスによって予期されるストップビット1405の幅をプログラムすることができる。
【００６６】
当業者であれば、当然のことながら、当面の特定の用途に応じて、本開示のデバイスの材料、装置、構成、および使用方法において、ならびにそれらに対して、それらの趣旨および範囲から逸脱することなしに多くの修正、置換、および変形が行われ得ることを理解するだろう。このことに照らして、本明細書に図示および記載された特定の実施形態は、それらのいくつかの例によるものにすぎないため、本開示の範囲はそのような特定の実施形態の範囲に限定されるべきではなく、むしろ、下記に添付される特許請求の範囲およびそれらの機能的な均等物の範囲と完全に同じであるべきである。
【符号の説明】
【００６７】
100  仮想汎用入力/出力(VGI)アーキテクチャ
101  ホスト集積回路
101  ホストデバイス
102  プロセッサ(CPU)
103  GPIOインターフェース
105  周辺デバイス
105  周辺集積回路
111  送信(TX)ピン
111  専用送信ピン
112  受信(RX)ピン
112  専用受信ピン
115  VGI有限状態機械(FSM)
115A  第1のVGI FSM
115B  第2のVGI FSM
116  UARTインターフェース
117  オーバーサンプリングクロックソース
118  オーバーサンプリングクロック信号
125  GPIOピン
130  GPIO信号
135  VGPIO(VGI)信号
136  UART信号
136  メッセージング信号
137  アドレスフィールド
138  メッセージングレジスタ
140  MPM
200  集積回路
205  集積回路
220  集積回路
225  集積回路
230  集積回路
300  フレーム
305  ヘッダ
305  機能ヘッダ
306  スタートビット
310  ストップビット
400  VGIプログラミングフレーム
405  UARTプログラミングフレーム
410  アイデンティティビット
500  VGI確認フレーム
505  UART確認フレーム
510  アイデンティティビット
600  VGIフレーム
605  UARTフレーム
700  ハイブリッドフレーム
701  メッセージング信号ビット
705  拡張ヘッダ
710  UARTビット
715  VGIビット
800  システム
801  ホスト集積回路(IC)
802  周辺IC
803  先入れ先出し(FIFO)メモリ
803  送信FIFOバッファ
805  送信シフトレジスタ
810  送信制御回路
815  送信(Tx)バッファ
815  TX制御回路
820  送信可(CTS)制御回路
825  受信(RX)バッファ
830  送信要求(RTS)制御回路
835  RXバッファ
835  受信制御回路
836  受信シフトレジスタ
840  FIFOメモリ
840  受信FIFOバッファ
900  UARTオーバーサンプリングクロック信号
910  ストップビット
1000  フレーム
1030  ビデオプロセッサ
1100  中間ストップビット
1101  フレーム
1105  中間スタートビット
1200  動作
1205  動作
1210  動作
1215  動作
1220  動作
1300  モバイルデバイス
1305  システムオンチップ(SOC)
1310  周辺IC
1315  システムバス
1320  ダイナミックランダムアクセスメモリ(DRAM)
1325  ディスプレイコントローラ
1335  ディスプレイ
1400  フレーム
1405  ストップビット
【図１】
2018512775.tif 000003
【図２Ａ】
2018512775.tif 000004
【図２Ｂ】
2018512775.tif 000005
【図３】
2018512775.tif 000006
【図４】
2018512775.tif 000007
【図５】
2018512775.tif 000008
【図６】
2018512775.tif 000009
【図７】
2018512775.tif 000010
【図８Ａ】
2018512775.tif 000011
【図８Ｂ】
2018512775.tif 000012
【図９】
2018512775.tif 000013
【図１０】
2018512775.tif 000014
【図１１】
2018512775.tif 000015
【図１２】
2018512775.tif 000016
【図１３】
2018512775.tif 000017
【図１４】
2018512775.tif 000018
【手続補正書】
【提出日】平成29年9月1日(2017.9.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第1のプロセッサと、
送信ピンと、
前記プロセッサからGPIO信号の送信セットを受信し、複数のGPIOピンを介して前記送信セットの第1の部分をリモートの第2のプロセッサに送信するように構成されたGPIOインターフェースと、
前記GPIOインターフェースからのGPIO信号の前記送信セットの残りの第2の部分を第1の仮想GPIO(VGI)フレームおよび第2のVGIフレームにシリアル化するように構成された有限状態機械であって、前記第1のVGIフレームおよび前記第2のVGIフレームがそれぞれストップビットで終了する、有限状態機械と、
オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して、低出力インピーダンスを通じて前記送信ピンを介して前記第1のVGIフレームのストップビットの最初の部分を送信し、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、高出力インピーダンスを通じて第1のVGIフレームのストップビットの残りの部分を送信するように構成された送信バッファと、
前記第1のVGIフレームのストップビットの前記残りの部分の前記送信中に、前記送信ピンの電圧がしきい値電圧を上回ったという決定に応答して、前記第2のVGIフレームの最初の部分を送信するよう前記送信バッファに命令するように構成された送信制御回路と
を備える、集積回路。
【請求項２】
前記第1のVGIフレームのストップビットの前記残りの部分の前記送信中に、前記送信ピンの前記電圧が前記しきい値電圧を下回っているかどうかを決定するように構成された送信可(CTS)制御回路をさらに備える、請求項1に記載の集積回路。
【請求項３】
前記オーバーサンプリングクロック信号を提供するためのオーバーサンプリングクロック源をさらに備える、請求項1に記載の集積回路。
【請求項４】
前記オーバーサンプリングクロック信号を提供するためのオーバーサンプリングクロック源をさらに備える、請求項1に記載の集積回路。
【請求項５】
前記有限状態機械が複数のメッセージングレジスタを含み、前記第1のプロセッサが、複数のユニバーサル非同期受信機送信機(UART)信号を前記メッセージングレジスタに書き込むように構成され、前記有限状態機械が、前記メッセージングレジスタからの前記UART信号を、ストップビットを含む第1のUARTフレームと、ストップビットを含む第2のUARTフレームとにシリアル化するようにさらに構成され、前記送信バッファが、前記オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して前記低出力インピーダンスを通じて前記送信ピンを介して前記第1のUARTフレームのストップビットの最初の部分を送信し、前記オーバーサンプリングクロック信号の複数のサイクルに応答して前記高出力インピーダンスを通じて第1のUARTフレームのストップビットの残りの部分を送信するようにさらに構成される、請求項1に記載の集積回路。
【請求項６】
前記有限状態機械が、前記第1のUARTフレームおよび前記第2のUARTフレームを、それぞれがUART信号のデータペイロードを含むものとして識別するために、前記第1のUARTフレームおよび前記第2のUARTフレームにヘッダを付加するようにさらに構成される、請求項5に記載の集積回路。
【請求項７】
前記有限状態機械が、前記第1のVGIフレームおよび前記第2のVGIフレームを、それぞれがVGI信号のデータペイロードを含むものとして識別するために、前記第1のVGIフレームおよび前記第2のVGIフレームにヘッダを付加するようにさらに構成される、請求項1に記載の集積回路。
【請求項８】
前記有限状態機械が、VGIデータペイロードの長さを識別するVGIプログラミングフレームを形成するようにさらに構成され、前記送信バッファが、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを介して前記VGIプログラミングフレームを送信するようにさらに構成される、請求項7に記載の集積回路。
【請求項９】
受信ピンと、
受信バッファとをさらに備え、前記受信バッファが、前記VGIプログラミングフレームによって識別される前記長さを確認する確認フレームを受信するようにさらに構成される、請求項8に記載の集積回路。
【請求項１０】
前記集積回路が、セルラーフォン、スマートフォン、携帯情報端末、タブレットコンピュータ、ラップトップコンピュータ、デジタルカメラ、およびハンドヘルドゲーミングデバイスからなるグループから選択されたデバイス内に含まれる、請求項9に記載の集積回路。
【請求項１１】
送信デバイスにおいて、複数の汎用入力/出力(GPIO)信号を第1のVGIフレームと第2のVGIフレームとにシリアル化するステップであって、前記第1のVGIフレームおよび前記第2のVGIフレームがそれぞれ、最初の部分と残りの部分とを有するストップビットで終了する、ステップと、
オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信デバイス上の送信ピンを介して前記第1のVGIフレームの最初の部分を受信デバイス用の受信ピンに送信するステップであって、前記第1のVGIフレームの前記最初の部分がスタートビットで始まり、前記第1のVGIフレームのストップビットの前に終了する、ステップと、
前記オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して、前記送信ピンを低出力インピーダンスを通じて電源電圧に充電することによって、前記送信ピンを介して前記第1のVGIフレームのストップビットの前記最初の部分を送信するステップと、
前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを高出力インピーダンスを通じて前記電源電圧に充電することによって、前記送信ピンを介して前記第1のVGIフレームのストップビットの前記残りの部分を送信するステップと、
第1のVGIフレームのストップビットの前記残りの部分の前記送信中に前記送信ピンの電圧がしきい値電圧を下回らなかったことの検出に応答して、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを介して前記受信デバイス用の前記受信ピンに前記第2のVGIフレームの最初の部分を送信するステップと
を備える、方法。
【請求項１２】
第1のVGIフレームのストップビットの前記残りの部分の前記送信中に、前記送信ピンの前記電圧が前記しきい値電圧を下回ったことの検出に応答して、前記第2のVGIフレームが送信されないデフォルトモードに入るステップをさらに備える、請求項11に記載の方法。
【請求項１３】
前記送信デバイスにおいて、複数のユニバーサル非同期受信機送信機(UART)信号を、ストップビットを含む第1のUARTフレームと、ストップビットを含む第2のUARTフレームとにシリアル化するステップであって、各ストップビットが最初の部分と残りの部分とを含む、ステップと、
前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを介して前記低出力インピーダンスを通じて前記第1のUARTフレームの最初の部分を前記受信デバイス用の前記受信ピンに送信するステップであって、前記第1のUARTフレームの前記最初の部分がスタートビットで始まり、前記第1のUARTフレームのストップビットの前に終了する、ステップと、
前記オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して、前記低出力インピーダンスを通じて前記送信ピンを前記電源電圧に充電することによって、前記送信ピンを介して前記第1のUARTフレームのストップビットの前記最初の部分を送信するステップと、
前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記高出力インピーダンスを介して前記送信ピンを前記電源電圧に充電することによって、前記送信ピンを介して前記第1のUARTフレームのストップビットの前記残りの部分を送信するステップと、
第1のUARTフレームのストップビットの前記残りの部分の前記送信中に前記送信ピンの前記電圧が前記しきい値電圧を下回らなかったことの検出に応答して、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを介して前記受信デバイス用の前記受信ピンに前記第2のUARTフレームの最初の部分を送信するステップと
をさらに備える、請求項11に記載の方法。
【請求項１４】
前記複数のUART信号を前記第1のUARTフレームと前記第2のUARTフレームとにシリアル化するステップが、前記第1のUARTフレームのデータペイロードをUARTペイロードとして識別するために、ヘッダを前記第1のUARTフレームに付加するステップと、前記第2のUARTフレームへのデータペイロードをUARTペイロードとして識別するために、前記第2のUARTフレームにヘッダを添付するステップとをさらに含む、請求項13に記載の方法。
【請求項１５】
前記複数の汎用入力/出力(GPIO)信号を前記第1のVGIフレームと前記第2のVGIフレームとにシリアル化するステップが、前記第1のVGIフレームのデータペイロードをVGIペイロードとして識別するために、ヘッダを前記第1のVGIフレームに付加するステップと、前記第2のVGIフレームのデータペイロードをVGIペイロードとして識別するために、ヘッダを前記第2のVGIフレームに付加するステップとをさらに含む、請求項11に記載の方法。
【請求項１６】
第1のプロセッサと、
複数の汎用入力/出力(GPIO)ピンと、
送信ピンと、
前記第1のプロセッサからGPIO信号の送信セットを受信し、前記GPIOピンを介して前記送信セットの第1の部分をリモートの第2のプロセッサに送信するように構成されたGPIOインターフェースと、
前記GPIOインターフェースからのGPIO信号の前記送信セットの残りの第2の部分を、ストップビットを含む少なくとも第1の仮想GPIO(VGI)フレームにシリアル化するように構成された有限状態機械と、
オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して、低出力インピーダンスを通じて前記送信ピンを介して前記第1のVGIフレームのストップビットの最初の部分を送信し、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、高出力インピーダンスを通じて第1のVGIフレームのストップビットの残りの部分を送信するように構成された送信バッファと、
前記送信バッファによる第2のVGIフレームの次の送信に関するフロー制御決定を行うために、前記送信ピンの電圧をしきい値電圧と比較するための手段と
を備える、集積回路。
【請求項１７】
前記集積回路が、セルラーフォン、スマートフォン、携帯情報端末、タブレットコンピュータ、ラップトップコンピュータ、デジタルカメラ、およびハンドヘルドゲーミングデバイスからなるグループから選択されたデバイスに含まれる、請求項16に記載の集積回路。
【請求項１８】
前記有限状態機械が複数のメッセージングレジスタを含み、前記第1のプロセッサが、複数のメッセージング信号を前記メッセージングレジスタに書き込むように構成され、前記有限状態機械が、前記メッセージングレジスタからの前記メッセージング信号を、ストップビットを含む第1のメッセージングフレームにシリアル化するようにさらに構成される、請求項16に記載の集積回路。
【請求項１９】
前記有限状態機械が、前記第1のメッセージングフレームのデータペイロードをメッセージング信号ペイロードとして識別するために、ヘッダを前記第1のメッセージングフレームに挿入するようにさらに構成される、請求項18に記載の集積回路。
【請求項２０】
前記有限状態機械が、前記第1のVGIフレームのデータペイロードをVGIペイロードとして識別するために、ヘッダを前記第1のVGIフレームに挿入するようにさらに構成される、請求項16に記載の集積回路。
【請求項２１】
第1のプロセッサと、
送信ピンと、
前記プロセッサからGPIO信号の送信セットを受信し、複数のGPIOピンを介して前記送信セットの第1の部分をリモートの第2のプロセッサに送信するように構成されたGPIOインターフェースと、
前記GPIOインターフェースからのGPIO信号の前記送信セットの残りの第2の部分を、第1の仮想GPIO(VGI)フレーム内および第2のVGIフレーム内の複数の仮想GPIOビットにシリアル化するように構成された有限状態機械であって、前記第1のVGIフレームおよび前記第2のVGIフレームがそれぞれストップビットで終了し、前記ストップビットは、前記仮想GPIOビットの各々の幅よりも広い幅を有する、有限状態機械と、
オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して、低出力インピーダンスを通じて前記送信ピンを介して前記第1のVGIフレームのストップビットの最初の部分を送信し、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、高出力インピーダンスを通じて第1のVGIフレームのストップビットの残りの部分を送信するように構成された送信バッファと、
前記第1のVGIフレームのストップビットの前記残りの部分の前記送信中に、前記送信ピンの電圧がしきい値電圧を上回ったという決定に応答して、前記第2のVGIフレームの最初の部分を送信するよう前記送信バッファに命令するように構成された送信制御回路と
を備える、集積回路。
【請求項２２】
前記ストップビットの前記幅が、前記仮想GPIOビットの各々の前記幅の2倍から3倍の間であり、前記集積回路が、
前記第1のVGIフレームのストップビットの前記残りの部分の前記送信中に、前記送信ピンの前記電圧が前記しきい値電圧を下回っているかどうかを決定するように構成された送信可(CTS)制御回路をさらに備える、請求項21に記載の集積回路。
【請求項２３】
前記オーバーサンプリングクロック信号を提供するためのオーバーサンプリングクロック源をさらに備える、請求項21に記載の集積回路。
【請求項２４】
前記オーバーサンプリングクロック信号を提供するためのオーバーサンプリングクロック源をさらに備える、請求項21に記載の集積回路。
【請求項２５】
前記有限状態機械が複数のメッセージングレジスタを含み、前記第1のプロセッサが、複数のユニバーサル非同期受信機送信機(UART)信号を前記メッセージングレジスタに書き込むように構成され、前記有限状態機械が、前記メッセージングレジスタからの前記UART信号を、ストップビットを含む第1のUARTフレームと、ストップビットを含む第2のUARTフレームとにシリアル化するようにさらに構成され、前記送信バッファが、前記オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して前記低出力インピーダンスを通じて前記送信ピンを介して前記第1のUARTフレームのストップビットの最初の部分を送信し、前記オーバーサンプリングクロック信号の複数のサイクルに応答して前記高出力インピーダンスを通じて第1のUARTフレームのストップビットの残りの部分を送信するようにさらに構成される、請求項21に記載の集積回路。
【請求項２６】
前記有限状態機械が、前記第1のUARTフレームおよび前記第2のUARTフレームを、それぞれがUART信号のデータペイロードを含むものとして識別するために、前記第1のUARTフレームおよび前記第2のUARTフレームにヘッダを付加するようにさらに構成される、請求項25に記載の集積回路。
【請求項２７】
前記有限状態機械が、前記第1のVGIフレームおよび前記第2のVGIフレームを、それぞれがVGI信号のデータペイロードを含むものとして識別するために、前記第1のVGIフレームおよび前記第2のVGIフレームにヘッダを付加するようにさらに構成される、請求項21に記載の集積回路。
【請求項２８】
前記有限状態機械が、前記ストップビットの前記幅をプログラムするVGAプログラミングフレームを形成するようにさらに構成される、請求項27に記載の集積回路。
【請求項２９】
受信ピンと、
受信バッファと
をさらに備え、前記受信バッファが、前記VGIプログラミングフレームによって識別される前記ストップビットの前記幅を確認する確認フレームを受信するようにさらに構成される、請求項28に記載の集積回路。
【請求項３０】
前記集積回路が、セルラーフォン、スマートフォン、携帯情報端末、タブレットコンピュータ、ラップトップコンピュータ、デジタルカメラ、およびハンドヘルドゲーミングデバイスからなるグループから選択されたデバイス内に含まれる、請求項29に記載の集積回路。
【請求項３１】
送信デバイスにおいて、複数の汎用入力/出力(GPIO)信号を、第1のVGIフレーム内および第2のVGIフレーム内に含まれる複数の仮想GPIO(VGI)ビットにシリアル化するステップであって、前記第1のVGIフレームおよび前記第2のVGIフレームが、最初の部分と残りの部分とを有するストップビットでそれぞれ終了し、各VGIビットが第1の幅を有し、各ストップビットが第2の幅を有し、前記第2の幅が前記第1の幅よりも大きい、ステップと、
オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信デバイス上の送信ピンを介して前記第1のVGIフレームの最初の部分を受信デバイス用の受信ピンに送信するステップであって、前記第1のVGIフレームの前記最初の部分がスタートビットで始まり、前記第1のVGIフレームのストップビットの前に終了する、ステップと、
前記オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して、前記送信ピンを低出力インピーダンスを通じて電源電圧に充電することによって、前記送信ピンを介して前記第1のVGIフレームのストップビットの前記最初の部分を送信するステップと、
前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを高出力インピーダンスを通じて前記電源電圧に充電することによって、前記送信ピンを介して前記第1のVGIフレームのストップビットの前記残りの部分を送信するステップと、
第1のVGIフレームのストップビットの前記残りの部分の前記送信中に前記送信ピンの電圧がしきい値電圧を下回らなかったことの検出に応答して、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを介して前記受信デバイス用の前記受信ピンに前記第2のVGIフレームの最初の部分を送信するステップと
を備える、方法。
【請求項３２】
第1のVGIフレームのストップビットの前記残りの部分の前記送信中に、前記送信ピンの前記電圧が前記しきい値電圧を下回ったことの検出に応答して、前記第2のVGIフレームが送信されないデフォルトモードに入るステップをさらに備える、請求項31に記載の方法。
【請求項３３】
前記送信デバイスにおいて、複数のユニバーサル非同期受信機送信機(UART)信号を、UARTストップビットを含む第1のUARTフレームに含まれる複数のUARTビットと、UARTストップビットを含む第2のUARTフレームとにシリアル化するステップであって、各UARTストップビットが、最初の部分と残りの部分とを含み、各UARTビットが、UARTストップビットごとの幅よりも小さい幅を有する、ステップと、
前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを介して前記低出力インピーダンスを通じて前記第1のUARTフレームの最初の部分を前記受信デバイス用の前記受信ピンに送信するステップであって、前記第1のUARTフレームの前記最初の部分がスタートビットで始まり、前記第1のUARTフレームのUARTストップビットの前に終了する、ステップと、
前記オーバーサンプリングクロック信号の少なくとも1つのサイクルに応答して、前記低出力インピーダンスを通じて前記送信ピンを前記電源電圧に充電することによって、前記送信ピンを介して前記第1のUARTフレームのUARTストップビットの前記最初の部分を送信するステップと、
前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記高出力インピーダンスを通じて前記送信ピンを前記電源電圧に充電することによって、前記送信ピンを介して前記第1のUARTフレームのUARTストップビットの前記残りの部分を送信するステップと、
第1のUARTフレームのUARTストップビットの前記残りの部分の前記送信中に前記送信ピンの前記電圧が前記しきい値電圧を下回らなかったことの検出に応答して、前記オーバーサンプリングクロック信号の複数のサイクルに応答して、前記送信ピンを介して前記受信デバイス用の前記受信ピンに前記第2のUARTフレームの最初の部分を送信するステップと
をさらに備える、請求項31に記載の方法。
【請求項３４】
前記複数のUART信号を前記第1のUARTフレーム内および前記第2のUARTフレーム内に含まれる前記複数のUARTビットにシリアル化するステップが、前記第1のUARTフレームのデータペイロードをUARTペイロードとして識別するために、ヘッダを前記第1のUARTフレームに付加するステップと、前記第2のUARTフレームのデータペイロードをUARTペイロードとして識別するために、前記第2のUARTフレームにヘッダを添付するステップとをさらに含む、請求項33に記載の方法。
【請求項３５】
前記複数の汎用入力/出力(GPIO)信号を前記第1のVGIフレーム内および前記第2のVGIフレーム内に含まれる前記複数のVGIビットにシリアル化するステップが、前記第1のVGIフレームのデータペイロードをVGIペイロードとして識別するために、ヘッダを前記第1のVGIフレームに付加するステップと、第2のVGIフレームにヘッダを付加し、前記第2のVGIフレームのデータペイロードをVGIペイロードとして識別するために、ヘッダを前記第2のVGIフレームに付加するステップとをさらに含む、請求項31に記載の方法。
【国際調査報告】
2018512775.tif 000019
2018512775.tif 000020
2018512775.tif 000021