JP2016539533A - CCIeプロトコルを介したエラー検出能力 - Google Patents

CCIeプロトコルを介したエラー検出能力 Download PDF

Info

Publication number
JP2016539533A
JP2016539533A JP2016521313A JP2016521313A JP2016539533A JP 2016539533 A JP2016539533 A JP 2016539533A JP 2016521313 A JP2016521313 A JP 2016521313A JP 2016521313 A JP2016521313 A JP 2016521313A JP 2016539533 A JP2016539533 A JP 2016539533A
Authority
JP
Japan
Prior art keywords
bits
bus
bit
word
symbols
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016521313A
Other languages
English (en)
Other versions
JP2016539533A5 (ja
JP6411480B2 (ja
Inventor
祥一郎 仙石
祥一郎 仙石
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2016539533A publication Critical patent/JP2016539533A/ja
Publication of JP2016539533A5 publication Critical patent/JP2016539533A5/ja
Application granted granted Critical
Publication of JP6411480B2 publication Critical patent/JP6411480B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/095Error detection codes other than CRC and single parity bit codes
    • H03M13/096Checksums

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Dc Digital Transmission (AREA)

Abstract

共有バスと、スレーブデバイスと、マスタデバイスとを備えるデバイスを提供する。スレーブデバイスは、共有バスに結合され得る。マスタデバイスは、共有バスに結合され、共有バス上の通信を管理するように適応され得る。共有バスを介した送信は、送信のためにシンボルに次にトランスコーディングされる3進数に符号化される複数のビットであり、複数のビットにおける3桁の最下位ビットまたは最下位のもののいずれかが、送信のエラー検出のために使用される。

Description

関連出願の相互参照
本特許出願は、両方が本出願の譲受人に譲渡され、参照により明示的にに本明細書に組み込まれる、2013年10月9日に出願した「Error Correction Capability Over CCIe Bus」という名称の米国仮出願第61/889,030号、および、2014年2月28日に出願した「Bit Allocation Over A Camera Control Interface Extended Bus」という名称の米国仮出願第61/946,647号の優先権を主張するものである。
本開示は、共有バスを介して効率的な動作を可能にすることに関し、より詳細には、共有カメラ制御インターフェース拡張(CCIe)バスを介してエラー検出を容易にすることに関する。
I2C(I2Cとも呼ばれる)は、マザーボード、埋込みシステム、携帯電話または他の電子デバイスに低速周辺装置を取り付けるために使用されるマルチマスタシリアルシングルエンドバスである。I2Cバスは、クロック(SCL)ラインと、7ビットアドレス指定を用いるデータ(SDA)ラインとを含む。バスは、デバイスに関する2つの役割、すなわち、マスタおよびスレーブを有する。マスタデバイスは、クロックを生成し、スレーブデバイスとの通信を開始するデバイスである。スレーブデバイスは、クロックを受信し、マスタによってアドレス指定されたときに応答するデバイスである。I2Cバスは、任意の数のマスタデバイスが存在できることを意味するマルチマスタバスである。加えて、マスタおよびスレーブの役割は、メッセージの間で(STOPが送られた後に)変更される場合がある。I2Cは、メッセージの基本タイプを定義し、それらの各々はSTARTで開始し、STOPで終了する。
カメラの実装形態との関連では、一方向送信を用いて、センサから画像を取り込み、そのような画像データをベースバンドプロセッサ内のメモリに送信することができ、一方、制御データは、ベースバンドプロセッサとセンサならびに他の周辺デバイスとの間で交換することができる。一例では、ベースバンドプロセッサとイメージセンサ(および/または1つもしくは複数のスレーブデバイス)との間のそのような制御データのために、カメラ制御インターフェース(CCI)プロトコルが使用される場合がある。一例では、CCIプロトコルは、イメージセンサとベースバンドプロセッサとの間のI2Cシリアルバスを介して実装される場合がある。
バスを共有するデバイス間の送信におけるエラー検出を提供することが望ましいであろう。
共有バスと、スレーブデバイスと、マスタデバイスとを備えるデバイスを提供する。スレーブデバイスは、共有バスに結合され得る。マスタデバイスは、共有バスに結合され、共有バス上の通信を管理するように適応され得る。共有バスを介した送信は、送信のためにシンボルに次にトランスコーディングされる3進数に符号化される複数のビットであり、複数のビットにおける3桁の最下位ビットまたは最下位のもののいずれかが、送信のエラー検出のために使用される。
共有バスは2ラインバスであってよく、2ラインバスの両方のラインが、シンボルを転送するために使用される。クロック信号は、シンボル間遷移内に埋め込まれ得る。スレーブデバイスは、クロック信号内で誤ったクロックパルス消失と誤った余剰クロックパルスとを検出する、状態機械論理回路を実装することができる。
一例では、複数のビットは20ビットシーケンスであり得る。エラー検出のための3桁の最下位ビットの使用は、20ビットシーケンス全体におけるエラーの検出を保証する。加えて、第2の最下位ビットおよび第3の最下位ビットの使用が、データ送信またはエラー検出のいずれかに柔軟に割り振られ得る。3桁の最下位ビットがエラー検出のために使用されるとき、3桁の最下位ビットの値が「000」または「111」のいずれかの一定の2進値に設定され得る。
エラー検出のための最下位ビットの使用は、時間の約50%のみで、20ビットシーケンス全体における単一シンボルエラーの検出を保証する。一例では、最下位ビットのみがエラー検出のために使用されるとき、最下位ビットの値が「1」または「0」のいずれかの一定の2進値に設定される。
一態様によれば、バスインターフェースと処理回路とを備える送信機デバイスが提供される。バスインターフェースは、送信機デバイスを、(受信またはスレーブデバイスが結合される)共有バスに結合するように働き得る。送信機デバイスは、共有バスを介した通信を管理または制御することができる。処理回路は、(a)共有バスを介して送信されるべき複数のビットを取得することであって、複数のビットにおける3桁の最下位ビットまたは最下位のもののいずれかが、エラー検出のために使用されること、(b)複数のビットを3進数に変換すること、(c)3進数の桁を順次シンボルに変換すること、(d)複数のシンボルを送信のためにワードに結合すること、および/あるいは(e)共有バスを介して受信デバイスへワードを送信することを行うように構成され得る。クロックは、シンボル間遷移内に埋め込まれ得る。共有バスは2ラインバスであってよく、2ラインバスの両方のラインが、シンボルを転送するために使用される。処理回路は、(a)送信されるビットのためのチェックサムを計算すること、および/または(b)送信されるビットのためのチェックサムを受信デバイスへ送信することを行うようにさらに構成され得る。チェックサムは、受信デバイスへの送信のために、いずれかの任意のワード内に挿入され得る。
別の態様によれば、バスインターフェースと処理回路とを備える受信機デバイスが提供される。バスインターフェースは、その上で通信がマスタデバイスによって管理される共有バスに結合するように働き得る。処理回路は、(a)共有バスを介して複数のシンボルを受信すること、(b)複数のシンボルを桁に変換すること、(c)桁を3進数に結合すること、(d)3進数をビットに変換することであって、複数のビットにおける3桁の最下位ビットまたは最下位のもののいずれかが、エラー検出のために使用されること、および/あるいは(e)複数のビットにおける3桁の最下位ビットまたは最下位のもののいずれかに基づいて、受信された複数のビット内のエラーを確かめることを行うように構成され得る。クロックは、複数の受信されたシンボルのシンボル間遷移内に埋め込まれ得る。共有バスは2ラインバスであってよく、2ラインバスの両方のラインが、シンボルを転送するために使用される。受信機デバイスは、クロック信号内で誤ったクロックパルス消失と誤った余剰クロックパルスとを検出する、状態機械論理回路を実装することができる。
様々な特徴、性質、および利点は、同様の参照文字が全体を通じて対応して識別する図面と併せて読まれたとき、以下に記載の詳細な説明から明らかになる場合がある。
ベースバンドプロセッサおよびイメージセンサを有し、画像データバスおよびマルチモード制御データバスを実装するデバイスを示すブロック図である。 どのようにクロックがCCIeモードでシンボル間遷移内に埋め込まれ、それによって、データ送信のためにI2Cバスにおける2本のライン(すなわち、SDAラインおよびSCLライン)の使用を可能にし得るかを示す図である。 トランスコーディングされたシンボル内にクロック信号を埋め込むために、送信機においてデータビットをトランスコーディングし、トランスコーディングされたシンボルにするための例示的な方法を示すブロック図である。 遷移番号と順次シンボルとの間の例示的な変換を示す図である。 遷移番号と順次シンボルとの間の変換を示す図である。 最上位ビットから最下位ビットまで、2進ビットを3進数に変換するための方法を示す図である。 最上位ビットから最下位ビットまで、2進ビットを3進数に変換するための送信機側論理回路を示す図である。 最上位ビットから最下位ビットまで、3進数を2進ビットに変換するための方法を示す図である。 12桁の3進数を20ビットに変換するための受信機側論理回路を示す図である。 ビット19(すなわち、ビットカウントが、ビット0である第1のビットにおいて開始するとき、第20のビット)が、CCIeプロトコルでは大抵使用されず、共有バス上のデバイス間のコマンドのために使用され得ることを、概念的に示す図である。 共有バスがI2CモードからCCIeモードへ動作するように切り替え中であることをスレーブデバイスに示すために、共有バスを介してマスタデバイスによって送られ得る、CCIeモードエントリインジケータのための例示的な一般呼出し(general call)を示す図である。 CCIeモードからI2Cモードへの遷移をすべてのCCIe可能デバイスに示すために、CCIeマスタデバイス(たとえば、I2Cモードである間に、図1におけるマスタデバイス)によって発行され得る、例示的なCCIe呼出しを示す図である。 例示的なCCIeスレーブ識別子(SID)ワードフォーマットを示す図である。 例示的なCCIeアドレスワードフォーマットを示す図である。 例示的な書込みデータワードフォーマットを示す図である。 例示的な読取り指定ワードフォーマットを示す図である。 例示的な読取りデータワードフォーマットを示す図である。 I2Cの1バイト書込みデータ動作の例示的なタイミング図である。 SDAラインおよびSCLラインを介した送信のために、データビットが12シンボルにトランスコーディングされた、例示的なCCIe送信を示す図である。 図2〜図10に示した符号化方式から得られた第20のビット(ビット19)の例示的なマッピングを示す図である。 図20の第20のビット(ビット19)領域の例示的なマッピング内の下位領域の詳細を示す図である。 発生し得る様々なシンボルエラー状態を示す図である。 送信シンボルシーケンス0321_0321_0321(2進シーケンス0000_0000_0000_0000_0000および3進数0000_0000_00003に変換する)内の可能性があるエラーを示すテーブル、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す図である。 送信シンボルシーケンス2301_2301_2301(2進シーケンス0100_0000_1101_1111_1000および3進数1111_1111_11113に変換する)内の可能性があるエラーを示すテーブル、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す図である。 送信シンボルシーケンス3131_3131_3131(2進シーケンス1000_0001_1011_1111_0000および3進数2222_2222_22223に変換する)内の可能性があるエラーを示すテーブル、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す図である。 送信シンボルシーケンス0132_3101_3231内の可能性があるエラーを示すテーブル、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す図である。 送信シンボルシーケンス2030_2120_3021内の可能性があるエラーを示すテーブル、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す図である。 送信シンボルシーケンス3231_0132_3101内の可能性があるエラーを示すテーブル、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す図である。 CCIeワードが、エラー検出のために3桁の最下位ビットまたは最下位ビットをどのように使用することができるかを示す図である。 8ビットのチェックサムがCCIeワード内でどのように実装され得るかを示す図である。 8ビットチェックサム発生器の例示的な実装形態を示す図である。 エラー検出を容易にする例示的なCCIeワードフォーマットを示す図である。 本開示によるマスタ/スレーブデバイスの例示的な構成要素を示すブロック図である。 プロトコル(たとえば、CCIeプロトコル)の1つまたは複数のエラー検出機能に従って通信を容易にする例示的な方法を示す図である。 クロックエラーなしの例示的なCCIeワード送信を示す図である。 単一クロック消失エラーありの例示的なCCIeワード送信を示す図である。 ダブルクロック消失エラーありの例示的なCCIeワード送信を示す図である。 余剰クロックエラーありの例示的なCCIeワード送信を示す図である。
以下の説明では、実施形態の完全な理解を提供するために、具体的な詳細が与えられる。ただし、実施形態はこれらの具体的な詳細なしに実施され得ることを当業者は理解されよう。たとえば、回路は、不必要な詳細で実施形態を不明瞭にしないために、ブロック図で示される場合がある。他の例では、よく知られている回路、構造、および技法は、実施形態を不明瞭にしないために、詳細に示されない場合がある。
《概要》
2進数を3進数に変換し、次に3進数が、以前よりも高い速度を可能にするために、2ラインI2Cバスを介した送信のためにクロックを埋め込まれたシンボルにトランスコーディングされる、CCIe(カメラ制御インターフェース拡張)と呼ばれるCCIの拡張が開発されている。2進数は、最初に3進数(すなわち、3進法の数)に変換される。次に、3進数の各桁がシンボルに変換され、そこで、いかなる2つの順次シンボルも繰り返さず、限られた数のシンボル(たとえば、4つのシンボル)のみが使用される。次に、それらのシンボルがバスを介して送信される。
3進数空間およびシンボルへの変換の使用は、余剰ビットが利用可能になる結果となる。一例では、この余剰ビットは最上位であり、3進数の領域が、さもなければ利用可能ではない他の機能をサポートするために利用可能になる場合がある。たとえば、エラー検出およびチェックサムが、この余剰ビット内に含まれ得る余剰情報のために、容易になり得る。
一態様によれば、各送信ワード(たとえば、20ビットワード)内の最下位ビットが、送信中に発生し得るエラーのほぼ半数を検出するために使用され得る。
第2の態様によれば、送信におけるエラーを検出するために、柔軟なチェックサムワードが通信プロトコルに追加される。チェックサムワードは、送信におけるいずれかの任意の点において挿入され得る。
第3の態様によれば、ワード内のビットは、3桁の最下位ビットがワード全体にわたるエラー検出のために利用可能であるように配置される。
第4の態様によれば、受信機デバイスは、エラーを検出するために、CCIeワードのシンボル間遷移内に埋め込まれたクロック信号内の消失したクロックパルスと余剰クロックパルスとを検出する助けとなる、状態機械論理回路を維持することができる。
《例示的な動作環境》
図1は、ベースバンドプロセッサ104およびイメージセンサ106を有し、画像データバス116およびマルチモード制御データバス108を実装するデバイス102を示すブロック図である。図1はカメラデバイス内のマルチモード制御データバス108を示すが、この制御データバス108が様々な異なるデバイスおよび/またはシステム内に実装され得ることは明らかであろう。画像データは、画像データバス116(たとえば、高速差動DPHYリンク)を介して、イメージセンサ106からベースバンドプロセッサ104に送られる場合がある。
一例では、制御データバス108は、2本の線、クロックライン(SCL)およびシリアルデータライン(SDA)を備える、I2Cバスであり得る。クロックラインSCLは、I2Cバス(制御データバス108)を介してすべてのデータ転送を同期させるために使用されるクロックを送るために使用され得る。データラインSDAおよびクロックラインSCLは、I2Cバス(制御データバス108)上ですべてのデバイス112、114、および118に結合される。この例では、制御データが、制御データバス108を介して、ベースバンドプロセッサ104とイメージセンサ106ならびに他の周辺デバイス118、122、および/または124との間で交換され得る。I2Cのための標準クロック(SCL)速度は、最高100KHzである。I2C高速モードにおける標準クロックSCL速度は、最高400KHzであり、I2C高速モードプラス(Fm+)では、最高1MHzである。I2Cバスを介したこれらの動作モードは、カメラの適用例に使用されるとき、カメラ制御インターフェース(CCI)モードと呼ばれる場合がある。
一態様によれば、カメラ動作をサポートするために、改善された(すなわち、1MHzよりも大きい制御データバス送信周波数を用いる)動作モードを、マルチモード制御データバス108を介して実装することができる。I2Cバスを介してのこの改善された動作モードは、カメラの適用例のために使用されるとき、カメラ制御インターフェース拡張(CCIe)モードと呼ばれる場合がある。CCIeモードでは、SCLラインおよびSDAラインは両方とも、それらの2本のラインを介したシンボル間遷移内にクロックが埋め込まれる間に、データを送信するために使用され得る。この例では、ベースバンドプロセッサ104はマスタデバイス112を含み、イメージセンサ106はスレーブデバイス114を含み、マスタデバイス112とスレーブデバイス114の両方は、制御データバス108に結合された他のレガシーI2Cデバイスの適切な動作に影響を与えることなく、制御データバス108を介してカメラ制御インターフェース拡張(CCIe)モードに従って動作することができる。一態様によれば、制御データバス108を介したこの改善されたモードは、CCIeデバイスとレガシーI2Cスレーブデバイスとの間にいかなるブリッジデバイスを用いることもなく、実装され得る。
I2C互換デバイスとCCIe互換デバイスとが共有制御データバス108に並行して結合されることを可能にするプロトコルが提供される。制御データバス108は、別個の通信プロトコル(たとえば、I2CモードおよびCCIeモード)に従った動作間で動的に切り替えることができる。前記のように、共有制御データバス108への通信および/またはアクセスは、マルチモードマスタデバイス112によって管理される。マスタデバイスは、制御データバス108がその通信プロトコルを第1のプロトコルモード(たとえば、I2Cモード)から第2のプロトコルモード(たとえば、CCIeモード)へ切り替えるべきであることを示すために、エントリ呼出し(entry call)を送信する。同様に、マスタデバイスは、制御データバス108がその通信プロトコルを第2のプロトコルモード(たとえば、CCIeモード)から第1のプロトコルモード(たとえば、I2Cモード)へ切り替えるべきであることを示すために、終了呼出し(exit call)を送信する。共有バス108に結合されたスレーブデバイスは、これらのエントリ呼出しと終了呼出しとを監視して、いつ共有バス108上で動作することができるかを確認する。
《例示的なCCIe符号化技法》
図2は、どのようにクロックがCCIeモードでシンボル間遷移内に埋め込まれ、それによって、データ送信のためにI2Cバスにおける2本のライン(すなわち、SDAラインおよびSCLライン)の使用を可能にし得るかを示す。一例では、このクロックの埋め込みは、遷移クロックトランスコーディングによって達成され得る。たとえば、物理リンク(線)を介して送信されるべきデータ204は、送信されるシンボルが、送信シンボル206のシンボルサイクルまたは遷移ごとに状態を変化させることを保証されるように、トランスコーディングされる。一例では、ビットのシーケンスが3進数に変換され、3進数の各桁が、送信のためにシンボルに変換される。順次シンボルは、3進数の2つの順次の桁が同じであるときでも、異なるように保証される。したがって、元のクロック202は、シンボルサイクルごとのシンボル状態の変化において埋め込まれ得る。受信機は、(送信シンボル206内の)各シンボルにおける状態遷移からクロック情報208を復元し、次に、送信シンボル206のトランスコーディングを逆転させて、元のデータ210を取得する。一例では、各シンボルが桁に変換され、複数の桁が3進数を構成し、次に、3進数が複数のビットに変換される。したがって、元のクロック202は、シンボルサイクルごとのシンボル状態の変化において埋め込まれ得る。これによって、I2Cバスの両方の線(図1における制御データバス108、SDAラインおよびSCLライン)がデータ情報を送るために使用されることが可能になる。加えて、クロック信号とデータ信号との間のセットアップ時間および保持時間を有する必要がもはやないので、シンボルレートが倍増され得る。
図3は、トランスコーディングされたシンボル内にクロック信号を埋め込むために、送信機においてデータビットをトランスコーディングし、トランスコーディングされたシンボルにするための例示的な方法を示すブロック図である。送信機302において、データビット304のシーケンスが3進(3進法の)数(すなわち、「遷移番号」)に変換され、次に、3進数が(順次)シンボルに変換され、それらのシンボルがクロックラインSCL312およびデータラインSDA314を介して送信される。
一例では、2進データの元の20ビットが、ビット-遷移番号変換器ブロック308に入力されて、12桁の3進数に変換される。12桁の3進数の各桁は、「遷移番号」を表す。2つの連続する遷移番号は、同じ数であってよい(すなわち、3進数の連続する桁が同じであってよい)。各遷移番号は、2つの連続する順次シンボルが同じ値を有することがないように、遷移-シンボルブロック310において順次シンボルに変換される。順次シンボルごとに遷移が保証されるので、そのような順次シンボル遷移は、クロック信号を埋め込むように働き得る。次に、各順次シンボル316が、2線式物理リンク(たとえば、SCLライン312とSDAライン314とを備えるI2Cバス)を介して送られる。
図4は、遷移番号402と順次シンボル404との間の例示的な変換を示す。遷移番号とも呼ばれる、3進数、3進法の数の個々の桁は、3つの可能な数字または状態、0、1または2のうちの1つを有することができる。3進数の2つの連続する桁において同じ数字が現れる場合があるが、2つの連続する順次シンボルは同じ値を有しない。遷移番号と順次シンボルとの間の変換は、連続する遷移番号が同じである場合でも、順次シンボルが(順次シンボルから順次シンボルへと)常に変化することを保証する。
この変換関数を図5に例示的に記載する。送信機側(TX:TからSへ)502では、遷移番号(T)が順次シンボル(S)に変換され得る。たとえば、現在の順次シンボル(Cs)は、前の順次シンボル(Ps)と、現在の遷移番号(T)の関数である一時遷移番号(Ttmp)とに基づいて、取得され得る。一時遷移番号(Ttmp)は、現在の遷移番号Tを0と比較することによって取得することができ、T=0のとき、一時遷移番号(Ttmp)は3に等しくなり、そうでない場合(Tが0に等しくないとき)、TtmpはTに等しくなる(すなわち、Ttmp=T=0?3:T)。現在の順次シンボルは、現在の順次シンボル(Cs)+前の順次シンボル(Ps)+一時遷移番号(Ttmp)の和として取得され得る(すなわち、Cs=Ps+Ttmp)。
受信機側(RX:SからTへ)504では、変換演算が逆にされて、現在の順次シンボル(Cs)および前の順次シンボル(Ps)から遷移番号が取得される。一時遷移番号(Ttmp)は、現在の順次シンボル(Cs)+4の和-前の順次シンボル(Ps)として取得され得る(すなわち、Ttmp=Cs+4-Ps)。現在の遷移番号(T)は一時遷移番号(Ttmp)に等しいが、一時遷移番号(Ttmp)が3と比較され、Ttmp=3のとき、一時遷移番号(Ttmp)は0に等しくなり、そうでない場合(Ttmpが3に等しくないとき)、TはTtmpに等しくなる(すなわち、T=Ttmp=3?0:T)。
テーブル506は、遷移番号と順次シンボルとの間の変換を示す。
再び図4を参照すると、遷移番号と順次シンボルとの間の変換の一例がその中に示されている。たとえば、第1のサイクル406では、現在の遷移番号(Ta)は2であり、そのためTtmpもまた2であり、前の順次シンボルPsは1であり、新しい現在の順次シンボルCsは現在3である。
第2のサイクル408では、遷移番号(Tb)は1である。遷移番号(Tb)は0に等しくないので、一時遷移番号Ttmpは、1である遷移番号(Tb)値に等しい。現在の順次シンボル(Cs)は、3である前の順次シンボル(Ps)値を、1である一時遷移番号Ttmpに加算することによって、取得される。加算演算の結果が、3よりも大きい4に等しいので、ロールオーバされた数0が現在の順次シンボル(Cs)になる。
第3のサイクル410では、現在の遷移番号(T)は1である。遷移番号Tが1であるので、一時遷移番号Ttmpもまた1である。現在の順次シンボル(Cs)は、0である前の順次シンボル(Ps)値を、1である一時遷移番号Ttmpに加算することによって、取得される。加算演算の結果が、3よりも大きくない1に等しいので、現在の順次シンボル(Cs)は1に等しい。
第4のサイクル412では、現在の遷移番号(T)は0である。遷移番号Tが0であるので、一時遷移番号Ttmpは3である。
現在の順次シンボル(Cs)は、1である前の順次シンボル(Ps)値を、3である一時遷移番号Ttmpに加算することによって、取得される。加算演算の結果が、3よりも大きい4であるので、ロールオーバされた数0が現在の順次シンボル(Cs)になる。
2つの連続する3進数の桁TbおよびTcが同じ数を有する場合でも、この変換は、2つの連続する順次シンボルが異なる状態値を有することを保証することに留意されたい。このため、順次シンボル404内の保証された遷移がクロック信号を埋め込むように働き、それによって、データ送信のためにI2Cバス内のクロックラインSCLを解放することができる。
図3を再び参照すると、受信機320において、このプロセスが逆にされて、トランスコーディングされたシンボルがビットに戻るように変換され、このプロセスにおいて、クロック信号がシンボル遷移から抽出される。受信機320は、2線式物理リンク(たとえば、SCLライン324およびSDAライン326を備えるI2Cバス)を介して、順次シンボル322のシーケンスを受信する。受信された順次シンボル322は、クロック-データ復元(CDR)ブロック328に入力されて、クロックタイミングが復元され、トランスコーディングされたシンボル(S)がサンプリングされる。次に、シンボル-遷移番号変換器ブロック330が、トランスコーディングされた(順次)シンボルを、遷移番号、すなわち、1つの3進数字に変換する。次に、遷移番号-ビット変換器332は、12個の遷移番号を変換して、12桁の3進数から20ビットの元のデータを回復させる。
2線式バスおよび12個の遷移番号について図3および図4に示した例は、n線式システムおよびm個の遷移番号に一般化され得る。T0〜Tm-1の1つのTあたりにr個の可能なシンボル遷移状態がある場合、m個の遷移がrm個の異なる状態を送ることができ、すなわち、r=2n-1個である。したがって、遷移T0...Tm-1は、(2n-1)m個の異なる状態を有することができるデータを含む。
本明細書で説明する本技法を使用して、I2C標準バスが提供し、本明細書でCCIeモードと呼ばれるものを超えて、制御バス108(図1)のリンクレートを高めることができる。一例では、制御データバス108に結合されるマスタデバイスおよび/またはスレーブデバイスは、同じ制御データバスを介して、標準I2Cバスを使用して可能であるよりも高いビットレートを達成するために、(図2、図3、図4、および図5に示すような)シンボル送信内にクロック信号を埋め込む送信機および/または受信機を実装することができる。
図6は、最上位ビットから最下位ビットまで、2進ビットを3進数に変換するための方法を示す。3進数の各桁は、受信デバイスに送信されるシンボルにトランスコーディング(変換)され得る。3進数を表すT0、T1...T11を有する12桁の3進数602では、T0は30の桁を表し(かつ、最下位桁であり)、T11は311の桁を表す(かつ、最上位桁である)。受信ビット(たとえば、20ビットのシーケンス)で開始すると、3進数602の最上位桁T11が最初に取得される。次に、次の最上位桁T10が次に取得される。このプロセスは、最下位桁T0が取得されるまで続く。3進数602の桁の各々はまた、「遷移番号」と呼ばれることもある。
図7は、最上位ビットから最下位ビットまで、2進ビットを3進数に変換するための送信機側論理回路を示す。図6および図7は、T11、T10、T9、...、T0の順序で送られる12桁の3進数602を示す。最上位ビットを最初に取得し、送ることによって、関連する論理および回路の複雑さが簡略化される。図6および図7における手法では、最上位の順次シンボルが受信デバイスに最初に送信され、したがって、MSS最優先(MSS first:most significant symbol first)と呼ばれる。本明細書で使用する「最下位シンボル」は、3進数602の最下位桁に対応するトランスコーディングされたシンボルを指す。たとえば、ならびに図4および図5の説明を参照すると、T0が順次シンボルにトランスコーディングされるとき、それは最下位の3進数の桁から発生したので、最下位シンボルである。同様に、本明細書で使用する「最上位シンボル」は、3進数602の最上位桁に対応するトランスコーディングされたシンボルを指す。たとえば、ならびに図4および図5の説明を参照すると、T11が順次シンボルにトランスコーディングされるとき、それは最上位の3進数の桁から発生したので、最上位シンボルである。また、シンボル-遷移番号変換器ブロック330(図3)が、後で、トランスコーディングされた(順次)シンボルを受信し、遷移番号、すなわち、3進数の桁に変換するとき、それは、最上位桁T11が最初に、最下位桁T0が最後になる。
図3に戻って参照すると、20ビットの元のデータが、逆順で3進数に変換され(すなわち、最上位ビットが変換器に最初に供給され)、次に、3進数の各桁(たとえば、各遷移番号)が、逆順で順次シンボルに変換(すなわち、トランスコーディング)され、これらのトランスコーディングされたシンボルが、バス上で逆順に(すなわち、最上位シンボルが最初に)送信される。
図8は、最上位ビットから最下位ビットまで、3進数を2進ビットに変換するための方法を示す。すなわち、この受信機側変換は、図6および図7に示した送信機側変換において実施された動作を逆にする。受信デバイス(たとえば、スレーブデバイス)は、逆順送信を受信し、クロック復元およびシンボルサンプリングを実施して、トランスコーディングされたシンボルを3進数に戻すように変換し、次に、3進数は逆順で図9における論理回路に供給され、論理回路は3進数を20ビットの2進の元データに戻すように変換する。図7は、論理デバイスへの単出力に結合された12個の入力を有するマルチプレクサを示す。
図9は、12桁の3進数を20ビットに変換するための受信機側論理回路を示す。
図10は、ビット19(すなわち、ビットカウントが、ビット0である第1のビットにおいて開始するとき、第20のビット)が、CCIeプロトコルでは大抵使用されず、共有バス上のデバイス間のコマンドのために使用され得ることを、概念的に示す。すなわち、図3〜図9に示した符号化方式の結果として、余分のビット(すなわち、ビット19)が現在、送信シンボル内で利用可能である。より具体的には、図10は、ビット19(すなわち、第20のビット)を示す。言い換えれば、コンピュータサイエンスにおいて典型的であるように、ビットワイズのカウントは0で開始し、ビット19は第20のビットである。ここで、ビット0〜18は、0000_0000_00003から2221_2201_20013の3進数範囲内で表される。2221_2201_20023から2222_2222_22223の範囲内の3進数は使用されない。したがって、3進数範囲2221_2201_20023から2222_2222_22223を使用して、ビット19(すなわち、第20のビット)を表すことができる。言い換えれば、2221,2201,20023 3進数は、10,000,000,000,000,000,000 2進数(0x80000 16進数)であり、2222_2222_22223 3進数(0x81BF0)は、可能な最大の12桁の3進数である。
《CCIeモードのための例示的なプロトコル》
図11は、共有バスがI2CモードからCCIeモードへ動作するように切り替え中であることをスレーブデバイスに示すために、共有バスを介してマスタデバイスによって送られ得る、CCIeモードエントリインジケータのための例示的な一般呼出しを示す。一般呼出し1102は、I2CモードからCCIeモードへの遷移をすべてのI2C互換デバイスに示すために、共有バスを介してI2Cマスタデバイス(たとえば、SDAラインおよびSCLラインを介して、I2Cモードである間、図1におけるマスタデバイス112)によって発行され得る。
I2Cモードでは、CCIeマスタデバイスは、このI2C一般呼出し1102を、「CCIeモード」バイトまたはインジケータ1104とともに発行する。CCIe互換スレーブデバイスは、一般呼出し1102の受信を肯定応答する。CCIe互換スレーブデバイスは、必要な場合、一般呼出し中に(制御データバス108の)SCLラインを低に保持することによって、待機サイクルを挿入することができる。
CCIeモードになると、すべてのCCIe互換デバイスは、CCIeマスタデバイスからの要求に応答することができる。CCIeモードをサポートしない共有制御データバス上のレガシーI2C互換スレーブデバイスの動作状態または任意の機能は、いかなるCCIeトランザクションによっても影響を受けない。
図12は、CCIeモードからI2Cモードへの遷移をすべてのCCIe可能デバイスに示すために、CCIeマスタデバイス(たとえば、I2Cモードである間に、図1におけるマスタ112)によって発行され得る、例示的なCCIe呼出し1202を示す。CCIeマスタデバイスは、CCIe SIDの代わりにこの終了呼出し1202を発行することができる。
CCIeモードで、CCIeモードにおける最後のデータおよび後続するSの後、CCIeマスタは、CCIeモードの終了とI2Cモードへ戻る遷移とを(たとえば、CCIe互換デバイスに)示すために、特殊なCCIe SIDコードである「終了」コード/インジケータ1204を送る。加えて、「終了」コード/インジケータ1204の後、CCIeマスタデバイスは、S(開始ビット)および後続する「一般呼出し」1206を、I2Cプロトコルに従って、I2Cプロトコル内の第2のバイトにおける「終了」コード1208とともに送る。すべてのCCIe対応スレーブは、一般呼出し1204に対して肯定応答しなければならない。
図13は、例示的なCCIeスレーブ識別子(SID)ワードフォーマットを示す。これは、CCIe SIDワードフォーマット1302の一部としての16ビットのスレーブ識別子(SID)1304の使用を示す。そのようなSIDワードフォーマットは、そのワードが制御データバス上に配置されるとき、特定のスレーブデバイスを識別するために使用されることになる。
図14は、例示的なCCIeアドレスワードフォーマット1402を示す。これは、各アドレスワード1406が16ビットのアドレス1404を含むことを示す。アドレスワード1406はまた、2ビットの制御コード1408と、1ビットのエラー検出定数1410とを含む。テーブル1412は、制御コードのための様々な可能な値を示す。
複数のアドレスワードが順次送られ得る。現在の制御ワードが「00」である場合、これは、アドレスワードが後続することになることを意味する。制御コードが「01」である場合、次のデータワードは、書込みデータワードである。制御コードが「10」である場合、次のデータワードは、1ワード読取りデータワードである。制御コード「11」は禁止される。
図15は、例示的な書込みデータワードフォーマット1500を示す。これは、各データワード1500が16ビットの書込みデータ部分1502を含むことを示す。書込みデータワード1500はまた、2ビットの制御コード1504と、1ビットのエラー検出定数1510とを含む。テーブル1514は、制御コードのための様々な可能な値を示す。
複数の書込みデータワードが順次送られ得る。現在の書込みワードの制御コードが「00」(シンボルC0)である場合、データは、前のアドレスに書き込まれるべきである。現在の書込みワードの制御コードが「01」(シンボルC1)である場合、データは、前のアドレス+1に書き込まれるべきである。制御コードが「10」(シンボルE)である場合、次のワードはSIDまたは終了コードになる。
図16は、例示的な読取り指定ワードフォーマット1600を示す。読取り指定データワード1600は、16ビットの読取りデータ値部分1604と、2ビットの制御コード1608と、3ビットのエラー検出定数1610とを含み得る。
最後のアドレスワード1607の後、「読取り指定」(RS)ワード1612が後続する。読取り指定(RS)ワード1612は、後続する読取りデータワードの数を指定する。テーブル1616に示すように、制御コード「00」は、同じアドレスからの読取りワードを示すために使用される。制御コード「01」は、増分アドレスからの読取りワードを示すために使用される。(そこからデータが読み取られている)スレーブデバイスは、「読取り指定」(RS)ワード1604によって指定されるよりも多くのデータワード(CHKワードを含まない)を送らないものとする。スレーブデバイスは、少なくとも1つの読取りワード(CHKワードを含まない)を送るものとする。スレーブデバイスは、「読取り指定」(RS)ワード1604によって指定された数のワードを送る前に、読取り転送を終了することができる。
図17は、例示的な読取りデータワードフォーマット1702を示す。読取りデータワード1702は、16ビットの読取りデータ値部分1704と、2ビットの制御コード1706と、1ビットのエラー検出定数1708とを含み得る。SID1707によってアドレス指定されたスレーブデバイスは、要求するマスタデバイスに戻すためのワードの数を決定する。テーブル1716に示すように、読取りワードが同じアドレスから続く場合、制御コードは「00」(シンボルR0)である。読取りワードが増分アドレスから続く場合、制御コードは「01」(シンボルR1)である。ワードが最後の読取りワードであり、その後、CHKがない場合、制御コードは「10」(シンボルE)である。制御コード「00」は禁止される。
《例示的な共有バスを介したI2C送信対CCIe送信》
図18は、I2Cの1バイト書込みデータ動作の例示的なタイミング図を示す。この例では、共有制御データバス108(図1)は、シリアルデータラインSDA1802とシリアルクロックラインSCL1804とを含む。図18に示す送信方式は、「I2Cモード」と呼ばれることがある。SCLライン1804は、マスタデバイスからすべてのスレーブデバイスへクロックを送るために使用されるが、SDAライン1802は、データビットを送信する。I2Cマスタデバイスは、I2Cバス上のどのスレーブデバイスにマスタデバイスがアクセスすることを望むかを示すために、SDAライン1802において7ビットのスレーブID1808を送り、次に、書込み動作を示すために1ビットを送る。そのIDが7ビットのスレーブID1808にマッチするスレーブデバイスのみが、意図されたアクションを引き起こすことができる。I2Cスレーブデバイスがそれ自体のIDを検出するために、マスタデバイスは、SDAライン上で少なくとも8ビット(または、SCLライン1804上で8個のクロックパルス)を送らなければならない。
I2C規格は、すべてのI2C互換スレーブデバイスが、(たとえば、SCLラインが高である間にSDAライン上の高から低への遷移によって示される)START条件1806を受信すると、それらのバス論理をリセットすることを必要とする。
CCIeプロトコルは、クロック信号をデータ送信内に埋め込みながら、SDAライン1802とSCLライン1804の両方をデータ送信のために使用する。たとえば、データビットは、次にラインを介して送信される複数のシンボルにトランスコーディングされ得る。クロック信号(図18におけるI2CバスではSCLライン)をシンボル送信内に埋め込むことによって、SDAライン1802とSCLライン1804の両方が、データ送信のために使用され得る。
図19は、SDAライン1902およびSCLライン1904を介した送信のために、データビットが12シンボルにトランスコーディングされた、例示的なCCIe送信を示す。図19に示す送信方式は、「CCIeモード」と呼ばれることがある。CCIeモードは、ソース同期であり、プッシュプルドライバによって駆動される。共有制御データバスを介してデータを送出するものはどれもまた、データ内(たとえば、シンボル間遷移内)に埋め込まれたクロック情報を送出する。したがって、制御データバス上のただ1つのデバイスが一度に共有制御データバスを駆動することが可能にされる。
同じバスを介してレガシーI2CデバイスとCCIeデバイスの両方をサポートするために、CCIeモード動作は、同じSTART条件1906、1908、1910を使用し、これによって、レガシーI2CスレーブデバイスがいかなるCCIe動作に反応することも防止される(たとえば、CCIeモード中の開始条件は、レガシーI2Cスレーブデバイスをリセットさせる)。この例では、START条件1906、1908、1910(すなわち、SCLライン1904が高である間に、SDAライン1902上の高から低への遷移によって示される)は、完全なスレーブID(すなわち、完全な7ビット)が送信される前に検出され、したがって、これは、不完全なスレーブID(7ビット未満)である。マスタデバイスが6個のSCLパルスを送り、次に、START条件1906、1908、1910を発行する場合、すべてのレガシーI2Cスレーブデバイスは、データをI2CスレーブIDとして認識する前に、それらのバス論理をリセットする。6ビットシーケンス(たとえば、2つおきのシンボルに対応する)が2つのSTART条件1906、1908、1910の間で送られるので、これらの6ビットシーケンスは、いかなるI2Cスレーブデバイスによっても有効なスレーブIDとして復号されない。したがって、レガシーI2Cスレーブデバイスは、不完全なスレーブIDに作用しないようになる。
このシステムでは、マスタデバイスは、バスへのアクセスを制御する。そのため、制御データバスを介して送信することを望むいかなるデバイスも、たとえば、割込み要求を発行することによって、マスタデバイスにそのようなアクセスを要求しなければならない。割込みを発行するための従来技術の機構は、専用の割込みラインまたは専用の割込みバスに依拠していた。しかしながら、そのような専用の割込みラインまたはバスは、そのような割込みラインまたはバスを収容するために、デバイスが少なくとも1つの追加のピンを含まなければならないことを意味する。そのような専用の割込みピンおよびライン/バスの必要性をなくすために、CCIe内の帯域内割込みのための機構が必要とされる。
帯域内割込みの使用はまた、バス競合または衝突を回避するべきである。たとえば、衝突を回避するために、スレーブデバイスは、マスタデバイスが制御データバスを駆動中である間に、IRQをアサートするために制御データバス(たとえば、SDAライン1902またはSCLライン1904のいずれか)を駆動することが可能にされるべきではない。
《例示的なビット19領域およびチェックサム》
図20は、図2〜図10に示した符号化方式から得られた第20のビット(ビット19)の例示的なマッピングを示す。諒解され得るように、利用可能な3進数は、マスタデバイスとスレーブデバイスとの間の特徴および能力を拡張するように働き得る。たとえば、ビット19内で利用可能なこの3進数空間(すなわち、そのビット19が「1」であるデータ領域)は、(a)スレーブ間送信、(b)送信のためのチェックサム、(c)スレーブデバイスへのマスタ動作ハンドオーバ、(d)ハートビートクロックなどを容易にするか、または示すように働き得る。
図21は、図20の第20のビット(ビット19)領域の例示的なマッピング内の下位領域の詳細を示す。
図22は、発生し得る様々なシンボルエラー状態を示す。タイミング図2202は、制御データバス(SDAラインおよびSCLライン)を介した正しい送信と、受信機クロック(RXCLK)とを示す。
受信機クロック(RXCLK)が2つのサイクル2212および2214を消失し、データビット2210が誤って検出されるようになる、クロック消失2204が示されている。同じ転送方向により多くの後続のワードがある場合、ワードデータエラーは、後続するワードにおいて検出される可能性が最も高い。同期(SYNC)消失もまた検出され得る。エラーが最後のワードにおいて発生する場合、マスタデバイスは、タイムアウト検出機能を必要とする。
受信機クロック(RXCLK)が、余剰クロックサイクル2220において検出された余剰シンボル「01」2216および2218を有する、余剰クロック2206が示されている。このエラーは、ワードまたは後続するワードにおいて検出される可能性が最も高い。同期消失もまた検出され得る。
受信機クロック(RXCLK)消失がないが、単一シンボルエラー2222が発生する、シンボルエラー2208が示されている。このエラーは、ワードまたは後続するワードにおいて検出される可能性が最も高い。チェックサムエラーが検出される可能性が最も高い。
《例示的な送信シンボル内のエラー検出》
図23〜図28は、様々なCCIeワードについて発生し得る様々なシンボルエラー状態(すなわち、シンボルスリップなしの単一シンボルエラー)を示す。図示のように、これらのエラーは、以下でさらに説明するように、3ビット(ビット0、1、および2)を使用することによって検出され得る。これらの例は、エラー検出のために3桁の最下位ビット(ビット[2:0])を使用する。
図23は、送信シンボルシーケンス0321_0321_0321内の可能性があるエラーを示すテーブル2300、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す。図3、図4、図5、図6、図7および図8に示す方法を使用することによって、(ビット[19:0])0000_0000_0000_0000_0000の20ビットシーケンス2302が、3進数(T11...T0)0000_0000_00003 2304に変換され、次にこの3進数が、順次シンボル(S11...S0)0321_0321_0321 2306に変換される。この例では、3桁の最下位ビット2308がすべて0(000)である。元の順次シンボル0321_0321_0321 2306のシンボルのいずれかにおいて、送信中にエラーが導入される場合、これらは誤ったシンボル2310を生じる。たとえば、最後のシンボル「1」が「0」に変更される場合、これは、3桁の最下位ビットの「000」から「010」への変化を生じる。最後のシンボル「1」が「3」に変更される場合、これは、3桁の最下位ビットの「000」から「001」への変化を生じる。「0」である最初のシンボルが「2」に変更される場合、これは、3桁の最下位ビットの「000」から「100」への変化を生じる。テーブル2300は、3桁の最下位ビットが既知の定数(たとえば、「000」という固定定数)である限り、任意の単一シンボルの変化が3桁の最下位ビットによってどのように検出可能であるかの様々な他の例を示す。
図24は、送信シンボルシーケンス2301_2301_2301内の可能性があるエラーを示すテーブル2400、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す。図3、図4、図5、図6、図7および図8に示す方法を使用することによって、(ビット[19:0])0100_0000_1101_1111_1000の20ビットシーケンス2402が、3進数(T11...T0)1111_1111_11113 2404に変換され、次にこの3進数が、順次シンボル(S11...S0)2301_2301_2301 2406に変換される。この例では、3桁の最下位ビット2408がすべて0(000)である。元の順次シンボル2301_2301_2301 2406のシンボルのいずれかにおいて、送信中にエラーが導入される場合、これらは誤ったシンボル2410を生じる。たとえば、最後のシンボル「1」が「3」に変更される場合、これは、3桁の最下位ビットの「000」から「111」への変化を生じる。最後のシンボル「1」が「2」に変更される場合、これは、3桁の最下位ビットの「000」から「001」への変化を生じる。「2」である最初のシンボルが「0」に変更される場合、これは、3桁の最下位ビットの「000」から「100」への変化を生じる。テーブル2400は、3桁の最下位ビットが既知の定数(たとえば、「000」という固定定数)である限り、任意の単一シンボルの変化が3桁の最下位ビットによってどのように検出可能であるかの様々な他の例を示す。
図25は、送信シンボルシーケンス3131_3131_3131内の可能性があるエラーを示すテーブル2500、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す。図3、図4、図5、図6、図7および図8に示す方法を使用することによって、(ビット[19:0])1000_0001_1011_1111_0000の20ビットシーケンス2502が、3進数(T11...T0)2222_2222_22223 2504に変換され、次にこの3進数が、順次シンボル(S11...S0)3131_3131_3131 2506に変換される。この例では、3桁の最下位ビット2508がすべて0(000)である。元の順次シンボル3131_3131_3131 2406のシンボルのいずれかにおいて、送信中にエラーが導入される場合、これらは誤ったシンボル2510を生じる。たとえば、最後のシンボル「1」が「0」に変更される場合、これは、3桁の最下位ビットの「000」から「111」への変化を生じる。最後のシンボル「1」が「2」に変更される場合、これは、3桁の最下位ビットの「000」から「110」への変化を生じる。「3」である最初のシンボルが「0」に変更される場合、これは、3桁の最下位ビットの「000」から「001」への変化を生じる。テーブル2500は、3桁の最下位ビットが既知の定数(たとえば、「000」という固定定数)である限り、任意の単一シンボルの変化が3桁の最下位ビットによってどのように検出可能であるかの様々な他の例を示す。
図26は、送信シンボルシーケンス0132_3101_3231内の可能性があるエラーを示すテーブル2600、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す。図3、図4、図5、図6、図7および図8に示す方法を使用することによって、(ビット[19:0])0001_1000_1111_0011_1000の20ビットシーケンス2602が、3進数(T11...T0)0120_1201_20123 2604に変換され、次にこの3進数が、順次シンボル(S11...S0)0132_3101_3231 2606に変換される。この例では、3桁の最下位ビット2608がすべて0(000)である。元の順次シンボル0132_3101_3231 2606のシンボルのいずれかにおいて、送信中にエラーが導入される場合、これらは誤ったシンボル2610を生じる。たとえば、最後のシンボル「1」が「0」に変更される場合、これは、3桁の最下位ビットの「000」から「111」への変化を生じる。最後のシンボル「1」が「2」に変更される場合、これは、3桁の最下位ビットの「000」から「110」への変化を生じる。「0」である最初のシンボルが「3」に変更される場合、これは、3桁の最下位ビットの「000」から「111」への変化を生じる。テーブル2600は、3桁の最下位ビットが既知の定数(たとえば、「000」という固定定数)である限り、任意の単一シンボルの変化が3桁の最下位ビットによってどのように検出可能であるかの様々な他の例を示す。
図27は、送信シンボルシーケンス2030_2120_3021内の可能性があるエラーを示すテーブル2700、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す。図3、図4、図5、図6、図7および図8に示す方法を使用することによって、(ビット[19:0])0100_1010_1101_1010_1000の20ビットシーケンス2702が、3進数(T11...T0)1201_2012_01203 2704に変換され、次にこの3進数が、順次シンボル(S11...S0)2030_2120_3021 2706に変換される。この例では、3桁の最下位ビット2708がすべて0(000)である。元の順次シンボル2030_2120_3021 2706のシンボルのいずれかにおいて、送信中にエラーが導入される場合、これらは誤ったシンボル2710を生じる。たとえば、最後のシンボル「1」が「0」に変更される場合、これは、3桁の最下位ビットの「000」から「010」への変化を生じる。「2」である最初のシンボルが「0」に変更される場合、これは、3桁の最下位ビットの「000」から「011」への変化を生じる。テーブル2700は、3桁の最下位ビットが既知の定数(たとえば、「000」という固定定数)である限り、任意の単一シンボルの変化が3桁の最下位ビットによってどのように検出可能であるかの様々な他の例を示す。
図28は、送信シンボルシーケンス3231_0132_3101内の可能性があるエラーを示すテーブル2800、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す。図3、図4、図5、図6、図7および図8に示す方法を使用することによって、(ビット[19:0])0101_1110_1101_0000_1000の20ビットシーケンス2802が、3進数(T11...T0)2012_0120_12013 2804に変換され、次にこの3進数が、順次シンボル(S11...S0)3231_0132_3101 2806に変換される。この例では、3桁の最下位ビット2808がすべて0(000)である。元の順次シンボル3231_0132_3101 2806のシンボルのいずれかにおいて、送信中にエラーが導入される場合、これらは誤ったシンボル2810を生じる。たとえば、最後のシンボル「1」が「3」に変更される場合、これは、3桁の最下位ビットの「000」から「111」への変化を生じる。「3」である最初のシンボルが「0」に変更される場合、これは、3桁の最下位ビットの「000」から「100」への変化を生じる。テーブル2800は、3桁の最下位ビットが既知の定数(たとえば、「000」という固定定数)である限り、任意の単一シンボルの変化が3桁の最下位ビットによってどのように検出可能であるかの様々な他の例を示す。
《第1の例示的なエラー検出の手法》
図23〜図28において言及したように、20ビットのCCIeワードの3桁の最下位ビットを使用して、クロック消失またはシンボルスリップなしのいずれかの単一シンボルエラーを検出することが可能である。
図29は、CCIeワード2902が、エラー検出のために3桁の最下位ビット2903または最下位ビット2905をどのように使用することができるかを示す。第1のCCIeワード2902(たとえば、20ビットシーケンス)では、3桁の最下位ビット2903は、固定定数(たとえば、「000」)に設定されてよく、受信された20ビットシーケンスが、固定定数(たとえば、「000」)以外の何かである3桁の最下位ビットを有する場合、エラーが受信デバイスにおいて検出される。CCIeワード内(たとえば、ワード内の12シンボルのいずれか内、または20ビット(16進の0x00000から0x81BF0までのビット[19:0])のいずれか内)のシンボルスリップなしのどの単一シンボルエラーも、この手法を使用することによって逃されず、それによって、いかなるそのような単一シンボルエラーも100%の検出が提供される。しかしながら、エラー検出のために20ビットの中から3ビットを使用することは、多くの実装形態にとってコストがかかりすぎる場合がある。
代替手法は、エラー検出のために3桁の最下位ビットの代わりに単一ビット(たとえば、最下位ビット0)を使用することを提供する。固定ビット0(たとえば、「0」に固定される)が、ほぼ半数の場合において、(クロック消失またはシンボルスリップなしの)シンボルエラーの検出を助けるために使用され得る。固定ビット0を使用することに加えて、順次CCIeワードのビット1および2のチェックサムが計算され(図31参照)、受信デバイスに送られて、送信されたCCIeワード内でエラーが発生したか否かが確かめられ得る。
第2のCCIeワード2904(たとえば、20ビットシーケンス)では、最下位ビット2905が固定定数(たとえば、「0」)に設定され得る。図23〜図28から諒解され得るように、最下位ビット2905は、対応するシンボルのシーケンス内にシンボルエラーがあるとき、時間の約半分で変化する。したがって、最下位ビットにおいて反映されたエラーについて、受信デバイスは、シーケンス内の最下位ビットが固定定数(たとえば、「0」)以外の何かである場合、受信された20ビットシーケンス内に単一シンボルエラー(クロック消失またはシンボルスリップなし)があることを成功裏に確かめることができる。
エラー検出のために最下位ビット2905を使用することに加えて、またはそれとともに、チェックサムメッセージが、CCIeワードのシーケンスを介した高度のエラー検出を提供するために使用され得る。そのようなチェックサムメッセージがエラーを検出しない唯一のシナリオは、チェックサムを計算するときに2つのシンボルエラーの影響が打ち消しになる場合である。
図30は、8ビットのチェックサムがCCIeワード内でどのように実装され得るかを示す。この例では、CCIeアドレスワード3004a、書込みワード3004b、および/または読取りワード3004cについて、CCIeフレーム内にチェックサム値を配置しながら、ビット19を「1」に、およびビット12を「0」に設定することによって、チェックサムワード3005が(20ビットシーケンス内で)示され得る(たとえば、各ワードのビット4〜11がチェックサムのために使用され得る)。8ビットのチェックサム値3003は、いくつかのCCIeワード送信を介して計算され得る。たとえば、このチェックサムワード3005は、CCIeワード送信のシーケンスの終了において送られ得る。
このチェックサムワードは、ビット19のために利用可能な追加の空間内で定義され得る(図20参照)。チェックサムワード3005は、書込みコマンド3006および/または読取りコマンド3010のアドレスまたはデータ部分内に挿入され得る。たとえば、書込みコマンド3006において、1つもしくは複数のアドレスワード3008a、3008b、ならびに/または、1つもしくは複数の書込みワード3008cおよび3008dが、チェックサム値を(たとえば、マスタデバイスからスレーブデバイスへ)搬送するために使用され得る。同様に、読取りコマンド3010において、1つもしくは複数のアドレスワード3012a、3012b、ならびに/または、1つもしくは複数の読取りワード3012cおよび3012dが、チェックサム値を搬送するために使用され得る。
他のチェックサム手法とは対照的に、本CCIeチェックサムワード3005は、送信側によって送信内のどこでもいつでも挿入され得る。
図31は、8ビットチェックサム発生器の例示的な実装形態を示す。チェックサム発生器3102は、チェックサム3104の8ビットの各々について、1ビットレジスタを含み得る。第1のCCIeワードN3110のビット2および1と、チェックサム3104内の最下位ビットとの排他的論理和(XOR)がとられる。次に、第2のCCIeワードN+1 3112のビット2および1と、チェックサム3104内の次の最下位ビットとの排他的論理和(XOR)がとられる。次に、第3のCCIeワードN+2 3114のビット2および1と、チェックサム3104内の次の最下位ビットとの排他的論理和(XOR)がとられる。次に、第4のCCIeワードN+3 3116のビット2および1と、チェックサム3104内の最上位ビットとの排他的論理和(XOR)がとられる。チェックサム値3104の最上位ビットに到達した後、次のCCIeワードN+4において、チェックサム発生器は、チェックサム3104の2桁の最下位ビットにおいて再度開始することができる。
このようにして、異なるCCIeワードからの寄与が、8ビットのチェックサムにわたるそれらの使用において伝播する。1ビットレジスタが、転送の開始ごと(たとえば、SIDの前、および/または読取りワードの開始前)に初期化され得る。CCIeチェックサムワードを実装するために、送信デバイスは、各CCIeワードが送られるときにチェックサム値を計算することができる。受信機デバイスでは、チェックサム値がまた、受信されたCCIeワードごとに同様にして計算される。次に、送信機デバイスは、受信機デバイスがそれ自体のチェックサム値と比較して、いずれかのシンボルエラーが発生したか否かを確かめることができる、直近のチェックサム値とともに、CCIeチェックサムワードを受信機デバイスに送ることができる。
チェックサムワード3005は、(a)CHKワード(CHKワードを繰り返す)、および/または(b)ハートビート/SYNCワードを含む、任意のCCIeワードに後続することができる。CCIe送信機および受信機は、チェックサム機能をサポートすることができる。たとえば、CCIe送信機は、CCIe受信機が次に使用するチェックサムワード3005を送ることができる。
受信機デバイスがチェックサム(CHK)エラーを検出する場合、(a)SYNCワードもしくはWAKEUPイベントまで、CCIeアクション(たとえば、レジスタ書込み)をサスペンドすることができ、(b)IRQを介してCHKエラーをレポートすることができ、(c)CHKエラーイベントを状態レジスタに設定することができ、かつ/または(d)チェックサムエラーを無視することができる。
チェックサム(CHK)ワードは、任意のワード境界に挿入され得る。これによって、チェックサムの使用が、異なるシステム/プロトコル内で容易にポータブルになり、また、スケーラブルなデータ品質になる(たとえば、信頼性がより低いバスを介して、より多くのCHKを使用する)。
いくつかの実装形態では、チェックサム(CHK)サポートは必須でなくてもよい。これによって、低層の製品にとっての負担がそれほど生じず、また、チェックサムの使用が必要とされない場合、なだらかな下落が可能になる。
《第2の例示的なエラー検出の手法》
図29〜図31に示すフォーマットを有するワード内のシステムエラーを検出することは、必ずしも信頼性が高いとは限らず、いくつかのシステムにとっては問題のある場合がある。たとえば、医療、自動車、航空宇宙、または軍事的使用など、高いデータの完全性を必要とするバスシステムでは、すべてのシンボルエラーをすぐに検出することが望ましいことが多い。この問題に対処するために、100%のシンボルエラー検出が達成可能である、代替CCIeワードフォーマットを開示する(すなわち、シンボルスリップなしのワードごとの単一シンボルエラー)。この目的で、まず、本明細書で開示する態様は、部分的に、図23〜図28における観測に依拠しており、これらの観測では、符号化ワードが、既知の定数を用いてすべてが固定されたそれらの3桁の最下位ビット(LSB)とともに送信されるとき、100%のシンボルエラー検出が達成され得ることに留意されたい。しかしながら、3桁のLSBを利用して、エラービット検出定数を表すには、3桁のLSBが、それらのビット値が制御され得るように柔軟であることが必要である。
図30におけるCCIeチェックサムワード3005では、たとえば、ビット1および2がCCIeワードのための制御コードに割り振られる。そのような制御コードは、ワードが読取り動作を含むか、書込み動作を含むかを識別し、CCIeワードの動作に影響を及ぼすことなく修正することはできない。
1つの解決策は、3桁のLSBが3ビットのエラー検出定数を表すことができるように、図30に示すCCIeワードフォーマットを修正することである。そのような修正の一例は、図13〜図15に提供されており、その例は、必要に応じて、データスループットまたはエラー検出を最適化することができる、柔軟なビット割振り方式を実装する。
図32は、エラー検出を容易にする例示的な柔軟なCCIeワードフォーマット3202を示す。この20ビットワード3202では、ビット[0]がエラー検出定数3204のために割り振られ、ビット[2,1]がデータのため、またはエラー検出定数を拡張するためのいずれか3206に割り振られ、ビット[4,3]が制御ビット3208のために割り振られ、ビット[18,5]が14ビットのデータフィールド3210のために割り振られ、ビット[19]が前述の「余剰」ビット3212のために割り振られる。すなわち、ビット[2,1]が、エラー訂正のために使用することができない制御コード3228のために使用され得る、代替CCIeワードフォーマット3220に対して、柔軟なCCIeワード3202は、2つの制御ビットをビット[2,1]から離して移動させ、それによって、データスループットを最適化するために(すなわち、ビット[18,5]およびビット[2,1]を介して、16ビットをデータのために割り振ることによって)データのために、または、エラー検出を最適化するために(すなわち、前述の100%エラー検出を達成するために、3桁のLSBをエラー検出定数のために割り振ることによって)、エラー検出定数拡張のために、ビット[2,1]を利用する柔軟性を提供する。したがって、ユーザは、必要に応じて、非100%のシンボルエラー検出とともに16ビットのデータを有する符号化ワードを送ること、または、100%のシンボルエラー検出とともに14ビットのデータを有する符号化ワードを送ることの間で選ぶことができる。
様々なビット割振り方式のいずれもが、本明細書で開示する態様の範囲内に入るように企図されることに留意されたい。たとえば、図32は、この特定の例では、LSBにより近く割り振るための(すなわち、より高い値のMSBにより近く割り振るのではない)、制御ビットのためのビット[4,3]の割振りを示すが、他のビット割振り方式は、これらの制御ビットを、ビット[18,3]内のビットの任意の組合せにおいて配置することを含み得る。また、図32は20ビットのCCIeワードフォーマットを示すが、ビット割振り方式は、任意のビット長さのワードについて同様に企図され、データまたはエラー検出定数拡張のために割り振られた固定数の最下位ビットが、適宜に増加/減少され得ることにも留意されたい。
さらに、本明細書で開示する態様は、第1のビット割振り方式と第2のビット割振り方式との間で動的に切り替えることを容易にすることができ、第1のビット割振り方式は、データ最適化(すなわち、データのための16ビットの割振り)に向けられ、第2のビット割振り方式は、エラー検出最適化(すなわち、エラー検出定数のための3桁のLSBの割振り)に向けられる。
《例示的なクロック/シンボルスリップエラー検出》
クロック消失または余剰クロックによって引き起こされるシンボルスリップエラーは、エラー検出定数および/またはチェックサムによって検出されない場合がある。しかしながら、これらのタイプのエラーの大多数は、受信機デバイスにおいて、次のワードにおいて、および/または状態機械を使用して検出され得る。
図35は、クロックエラーなしの例示的なCCIeワード送信を示す。第1のライン(SDA)3502と第2のライン(SCL)3504とを備える共有バスを使用して、12個のシンボル3512(CCIeワードを構成する)が開始条件3508と3510との間で送信される。そのような開始条件3508および3510は、第2のライン(SCL)3504が高である間に、第1のライン(SDA)3502上の高から低への遷移において発生する。すべてのCCIe準拠デバイスは、これが、受信機デバイスの状態機械によって追跡され得る期待CCIeワード境界における、開始条件(すなわち、第2のライン(SCL)3504が高である間の第1のライン(SDA)3502上の高から低への遷移)であると理解する。加えて、シンボル間遷移内に埋め込まれたクロック3506も示されている。
図36は、単一クロック消失エラーありの例示的なCCIeワード送信を示す。すなわち、この例では、クロックパルス3602が、受信機デバイスによって検出されておらず、それが、対応するシンボル「2」が無視されることを引き起こす。この状態3604は、シンボルスリップと呼ばれることがある。受信機デバイスがクロックを消失したので、受信機デバイスは、第1のライン3502および第2のライン3504からシンボルを読み取り続け、第2の開始条件3510をシンボルとして解釈することになり、次のシンボル3602が開始条件であると期待することになる。その次のシンボル3602は決して開始条件にならないので、クロック消失エラーが受信機デバイスによって検出されるのは、この点である。次に、受信機デバイスは、同期消失を仮定し、その受信機論理をリセットすることができる。
図37は、ダブル消失クロックエラーありの例示的なCCIeワード送信を示す。すなわち、この例では、2つのクロックパルス3702が、受信機デバイスによって検出されず、それが、シンボル「2」および「3」3704が無視されることを引き起こす。この状態は、ダブルシンボルスリップと呼ばれることがある。受信機デバイスが2つのクロックを消失したので、受信機デバイスは、第1のライン3502および第2のライン3504からシンボルを読み取り続け、第2の開始条件3510をシンボルとして解釈することになる。9回中8回の場合について、受信機デバイス論理は、期待される開始条件が(次のワード3702の第1のシンボルと第2のシンボルとの間で)消失していることを認識し、したがって、ダブルクロック消失を検出することになる。受信機デバイスは、いつ開始条件が期待されるかを追跡するために、状態機械論理を含み得る。次のワード3702の第1のシンボルと第2のシンボルとの間の遷移が開始条件(すなわち、3から1へのシンボル遷移)として検出されることになる、9分の1の確率について、受信機デバイスは、次のワードにおいてこのダブルクロックエラーを検出することができる(すなわち、次のCCIeワードにおけるある点において、第1のシンボルと第2のシンボルとの間の遷移が開始条件にならず、受信機デバイスによってエラーが検出される)。
図38は、余剰クロックエラーありの例示的なCCIeワード送信を示す。すなわち、この例では、余剰クロックパルス3802が、受信機デバイスによって検出されており、それが、余剰シンボル「1」が読み取られることを引き起こす。この状態3804下で、受信機デバイスは、最後の有効なシンボル遷移3806中に次の開始条件を期待することになる。9回中8回の場合では、CCIeワードの最後の2つのシンボルにおけるシンボルの組合せが開始条件を生じないことになるので、受信機デバイスは、同期エラーを認識することになる。9回中1回の場合では、CCIeワードの最後の2つのシンボルが、受信機デバイスによって開始条件(すなわち、3から1へのシンボル遷移)として認識されることになる。その状況では、受信機デバイスは、このエラーを検出するために、現在および/または次のCCIeワードのエラー検出定数に依拠することができる。
《例示的な柔軟なエラー検出を用いるデバイス》
図33は、本開示によるマスタ/スレーブデバイスの例示的な構成要素を示すブロック図である。図示のように、マスタ/スレーブデバイス3314は、制御データバス3350を介してマスタ/スレーブデバイス3360に結合される。ここで、マスタ/スレーブデバイス3314またはマスタ/スレーブデバイス3360のいずれかが、本明細書で開示する前述の態様に従って、マスタまたはスレーブとして動作することができること、ならびに、マスタ/スレーブデバイス3314およびマスタ/スレーブデバイス3360が、実質的に同様の構成要素を有し得ることが企図される。
この例では、マスタ/スレーブデバイス3314は、バス3302によって概略的に表される内部バスアーキテクチャを用いて実装され得る。バス3302は、マスタ/スレーブデバイス3314の具体的な適用例および全体的な設計制約に応じて、任意の数の相互接続するバスおよびブリッジを含む場合がある。バス3302は、(処理回路3304によって概略的に表される)1つまたは複数のプロセッサ、メモリ3305、および(コンピュータ可読媒体3306によって概略的に表される)コンピュータ可読媒体を含む様々な回路を互いにリンクさせる。バス3302は、タイミングソース、周辺機器、電圧調整器、および電力管理回路などの様々な他の回路をリンクさせることもできるが、これらの回路は当技術分野でよく知られており、したがって、これ以上は説明しない。バスインターフェース/回路3308は、制御データバス3350とマスタ/スレーブデバイス3314との間のインターフェースを提供する。
本開示の一態様では、コンピュータ可読媒体3306は、本明細書で開示するようなCCIeプロトコル通信を容易にするために、様々な命令3306a、3306b、および/または3306cを含むように構成される。同様の態様では、そのような通信は、代わりに、処理回路3304を図示のように回路3320、3330、および/または3340のうちのいずれかに結合することによって、ハードウェアを介して実装され得る。代替的に、処理回路3304は、回路3320、3330、および/または3340のうちのいずれかを含み、かつ/または実装することができる。その上、CCIe通信は、命令3306a、3306b、および/または3306cの任意の組合せ、ならびに、回路3320、3330、および/または3340の任意の組合せによって容易にされ得ることが企図される。
たとえば、エンコーダ/デコーダ命令3306aおよびエンコーダ/デコーダ回路3320は、CCIeプロトコルに従ってワードを符号化/復号することに向けられる。前述のように(図2〜図21参照)、そのような符号化/復号は、3進数を桁ごとに複数のシンボルに変換して(たとえば、12桁の3進数は12シンボルになる)、前述の「余剰ビット」(ビット19)を生じることを含み得る。
本開示の別の態様では、エラー検出命令3306bおよびエラー検出回路3330は、図23〜図32において説明し、示したように、かつ/または、所望のCCIeワードフォーマットに従って、エラー検出を実施することに向けられる。この目的で、図31〜図32のように、本明細書で開示する、企図されたCCIeワードフォーマットは、符号化された20ビットワードを備え、3桁の最下位ビットがデータまたはエラー検出のために割り振られる。その上、エラー検出命令3306bおよび/またはエラー検出回路3330のいずれかは、柔軟なビット割振りを容易にするように構成されてよく、最下位ビットがエラー検出のために割り振られ、第2の最下位ビットおよび第3の最下位ビットの各々がデータまたはエラー検出のいずれかのために割り振られることが企図される。さらに、図23〜図30および図35〜図38のように、エラー検出命令3306bおよび/またはエラー検出回路3330のいずれかは、固定最下位ビットを使用して、および/もしくはプロトコルに追加されるチェックサムワードとともに、ならびに/または、消失した開始条件を検出する受信機デバイス論理を使用して、エラー検出を容易にするように構成され得ることが企図される。
本開示の別の態様では、チェックサム命令3306cおよび/またはチェックサム回路3340が、バス3350から受信および/または送信されるワードのためのチェックサムを生成するように構成され得る。特に、チェックサム命令3306cおよび/またはチェックサム回路3340のいずれかは、CCIeチェックサムワードをサポートするために、チェックサム計算を容易にするように構成され得る。
処理回路3304は、バス3302を管理すること(すなわち、デバイス3314がマスタデバイスであるとき)、および、コンピュータ可読媒体3306に記憶されたソフトウェアの実行を含む全体的な処理を担当することを諒解されたい。ソフトウェアは、処理回路3304によって実行されるとき、マスタ/スレーブデバイス3314に、任意の特定の装置のための下記で説明する様々な機能を実施させる。コンピュータ可読媒体3306は、ソフトウェアを実行するときに処理回路3304によって操作されるデータを記憶するために使用することもできる。
処理回路3304内の1つまたは複数のプロセッサは、ソフトウェアを実行することができる。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、または他の名称で呼ばれるかどうかにかかわらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、プロシージャ、機能などを意味するように広く解釈されるべきである。ソフトウェアは、コンピュータ可読媒体3306上に存在することができる。コンピュータ可読媒体3306は、非一時的コンピュータ可読媒体である場合がある。非一時的コンピュータ可読媒体には、例として、磁気ストレージデバイス(たとえば、ハードディスク、フロッピー(登録商標)ディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、カード、スティック、またはキードライブ)、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、リムーバブルディスク、ならびに、コンピュータがアクセスし読み取ることができるソフトウェアおよび/または命令を記憶するための任意の他の適切な媒体が含まれる。コンピュータ可読媒体には、例として、搬送波、伝送路、ならびに、コンピュータがアクセスし読み取ることができるソフトウェアおよび/または命令を送信するための任意の他の適切な媒体も含まれ得る。コンピュータ可読媒体3306は、マスタ/スレーブデバイス3314の中に、マスタ/スレーブデバイス3314の外部に存在するか、またはマスタ/スレーブデバイス3314を含む複数のエンティティにわたって分散される場合がある。コンピュータ可読媒体3306は、コンピュータプログラム製品内で具現化される場合がある。例として、コンピュータプログラム製品には、パッケージング材料内のコンピュータ可読媒体が含まれ得る。当業者は、特定の適用例および全体的なシス
テムに課された設計制約全体に応じて、本開示全体にわたって提示された記載の機能を最もよく実装する方法を認識されよう。
図34は、プロトコル(たとえば、CCIeプロトコル)の1つまたは複数のエラー検出機能に従って通信を容易にする例示的な方法を示す。3402で、共有バスを介して送信されるべき複数のビットが取得され、複数のビットにおける3桁の最下位ビットまたは最下位のもののいずれかが、エラー検出のために使用され得る。3404で、複数のビットが3進数に変換される。3406で、3進数の桁が順次シンボルに変換され、クロックがシンボル間遷移内に埋め込まれる。3408で、複数のシンボルが送信のためにワードに結合される。次に、3410で、ワードが共有バスを介して受信デバイスへ送信され得る。加えて、3412で、チェックサムが送信されるビットのために計算され得る。3414で、送信されるビットのためのチェックサムが受信デバイスへ送られ得る。
一態様によれば、バスインターフェースと処理回路とを備える送信機デバイスが提供される。バスインターフェースは、送信機デバイスを、(受信またはスレーブデバイスが結合される)共有バスに結合するように働き得る。送信機デバイスは、共有バスを介した通信を管理または制御することができる。処理回路は、(a)共有バスを介して送信されるべき複数のビットを取得することであって、複数のビットにおける3桁の最下位ビットまたは最下位のもののいずれかが、エラー検出のために使用されること、(b)複数のビットを3進数に変換すること、(c)3進数の桁を順次シンボルに変換すること、(d)複数のシンボルを送信のためにワードに結合すること、および/あるいは(e)共有バスを介して受信デバイスへワードを送信することを行うように構成され得る。クロックは、シンボル間遷移内に埋め込まれ得る。共有バスは2ラインバスであってよく、2ラインバスの両方のラインが、シンボルを転送するために使用される。処理回路は、(a)送信されるビットのためのチェックサムを計算すること、および/または(b)送信されるビットのためのチェックサムを受信デバイスへ送信することを行うようにさらに構成され得る。チェックサムは、受信デバイスへの送信のために、いずれかの任意のワード内に挿入され得る。
別の態様によれば、バスインターフェースと処理回路とを備える受信機デバイスが提供される。バスインターフェースは、その上で通信がマスタデバイスによって管理される共有バスに結合するように働き得る。処理回路は、(a)共有バスを介して複数のシンボルを受信すること、(b)複数のシンボルを桁に変換すること、(c)桁を3進数に結合すること、(d)3進数をビットに変換することであって、複数のビットにおける3桁の最下位ビットまたは最下位のもののいずれかが、エラー検出のために使用されること、および/あるいは(e)複数のビットにおける3桁の最下位ビットまたは最下位のもののいずれかに基づいて、受信された複数のビット内のエラーを確かめることを行うように構成され得る。クロックは、複数の受信されたシンボルのシンボル間遷移内に埋め込まれ得る。共有バスは2ラインバスであってよく、2ラインバスの両方のラインが、シンボルを転送するために使用される。受信機デバイスは、クロック信号内で誤ったクロックパルス消失と誤った余剰クロックパルスとを検出する、状態機械論理回路を実装することができる。
図に示す構成要素、ステップ、特徴、および/または機能のうちの1つまたは複数は、並べ替えられてもよく、ならびに/あるいは、単一の構成要素、ステップ、特徴、または機能に組み合わされてもよく、またはいくつかの構成要素、ステップ、または機能で具現化されてもよい。また、本明細書で開示する新規の特徴から逸脱することなく追加の要素、構成要素、ステップ、および/または機能が、同様に追加され得る。図に示す装置、デバイス、および/または構成要素は、図に記載した方法、特徴、またはステップのうちの1つまたは複数を実施するように構成され得る。本明細書で説明する新規のアルゴリズムはまた、効率的にソフトウェアに実装され、および/またはハードウェアに埋め込まれ得る。
さらに、実施形態は、フローチャート、流れ図、構造図、またはブロック図として示されるプロセスとして説明される場合があることに留意されたい。フローチャートは動作を順次プロセスとして説明する場合があるが、動作の多くは並行してまたは同時に実施され得る。さらに、動作の順序は並べ替えることができる。プロセスは、その動作が完了したとき、終了する。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応するときには、その終了は、その関数が、呼出し関数またはメイン関数に戻ることに対応する。
その上、記憶媒体は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および/または情報を記憶するための他の機械可読媒体を含む、データを記憶するための1つまたは複数のデバイスを表す場合がある。「機械可読媒体」という用語は、限定はしないが、ポータブルまたは固定ストレージデバイス、光ストレージデバイス、ワイヤレスチャネル、ならびに命令および/またはデータを記憶するか、包含するか、または搬送することができる様々な他の媒体を含む。
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実施するためのプログラムコードまたはコードセグメントは、記憶媒体または他のストレージなどの機械可読媒体に記憶され得る。プロセッサは必要なタスクを実施することができる。コードセグメントは、手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造もしくはプログラムステートメントの任意の組合せを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡し、かつ/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合することができる。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む任意の適切な手段を介して渡すことができるか、転送することができるか、または送信することができる。
本明細書で開示する例に関して説明する様々な例示的な論理ブロック、モジュール、回路、要素、および/または構成要素は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実施するように設計されたそれらの任意の組合せで実装または実施され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替としてプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティング構成要素の組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連係した1つまたは複数のマイクロプロセッサ、あるいは他の任意のそのような構成として実装され得る。
本明細書で開示する例に関して説明する方法またはアルゴリズムは、直接ハードウェアにおいて、プロセッサによって実行可能なソフトウェアモジュールにおいて、または両方の組合せにおいて、処理ユニット、プログラミング命令、または他の指示の形態で具現化されてよく、かつ、単一のデバイスに含まれてよく、または複数のデバイスにわたって分散されてよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体に存在することができる。記憶媒体は、プロセッサがその記憶媒体から情報を読み取り、かつその記憶媒体に情報を書き込むことができるように、プロセッサに結合され得る。代替として、記憶媒体は、プロセッサと一体化され得る。
本明細書で開示する実施形態に関して説明する、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを当業者はさらに諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能の観点から説明した。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約によって決まる。
本明細書で説明する本発明の様々な特徴は、本発明から逸脱することなく、異なるシステムにおいて実施され得る。上記の実施形態は例にすぎず、本発明を限定するものと解釈すべきではないことに留意されたい。実施形態の説明は、例示的なものであり、特許請求の範囲を限定するものではない。したがって、本教示は、他のタイプの装置に容易に適用することができ、多くの代替形態、変更形態、および変形形態が当業者には明らかであろう。
102 デバイス
104 ベースバンドプロセッサ
106 イメージセンサ
108 マルチモード制御データバス、制御データバス、共有制御データバス、共有バス、制御バス
112 デバイス、マスタデバイス、マルチモードマスタデバイス、マスタ
114 デバイス、スレーブデバイス
116 画像データバス
118 デバイス、周辺デバイス
122、124 周辺デバイス
202 元のクロック
204 データ
206 送信シンボル
208 クロック情報
210 元のデータ
302 送信機
304 データビット
308 ビット-遷移番号変換器ブロック
310 遷移-シンボルブロック
316、322、404 順次シンボル
320 受信機
324 クロックラインSCL、SCLライン
326 データラインSDA、SDAライン
328 クロック-データ復元(CDR)ブロック
330 シンボル-遷移番号変換器ブロック
332 遷移番号-ビット変換器
402 遷移番号
406 第1のサイクル
408 第2のサイクル
410 第3のサイクル
412 第4のサイクル
502 送信機側(TX:TからSへ)
504 受信機側(RX:SからTへ)
506、1412、1514、1616、1716、2300、2400、2500、2600、2700、2800 テーブル
602 3進数
1102 一般呼出し、I2C一般呼出し
1104 「CCIeモード」バイトまたはインジケータ
1202 CCIe呼出し、終了呼出し
1204 「終了」コード/インジケータ、一般呼出し
1206 「一般呼出し」
1208 「終了」コード
1302 CCIe SIDワードフォーマット
1304 16ビットのスレーブ識別子(SID)
1402 CCIeアドレスワードフォーマット
1404 16ビットのアドレス
1406 アドレスワード
1408、1504、1608、1706 制御コード
1410、1510、1610、1708 エラー検出定数
1500 書込みデータワードフォーマット、データワード、書込みデータワード
1502 16ビットの書込みデータ部分
1600 読取り指定ワードフォーマット、読取り指定データワード
1604 16ビットの読取りデータ値部分、「読取り指定」(RS)ワード
1607 最後のアドレスワード
1612 「読取り指定」(RS)ワード
1702 読取りデータワードフォーマット、読取りデータワード
1704 16ビットの読取りデータ値部分
1707 SID
1802 シリアルデータラインSDA、SDAライン
1804 シリアルクロックラインSCL、SCLライン
1806、1906、1908、1910 START条件
1808 スレーブID
1902 SDAライン
1904 SCLライン
2202 タイミング図
2204 クロック消失
2206 余剰クロック
2208 シンボルエラー
2210 データビット
2212、2214 サイクル
2216、2218 余剰シンボル「01」
2220 余剰クロックサイクル
2222 単一シンボルエラー
2302 (ビット[19:0])0000_0000_0000_0000_0000の20ビットシーケンス
2304 3進数(T11...T0)0000_0000_00003
2306 順次シンボル(S11...S0)0321_0321_0321、順次シンボル0321_0321_0321
2308、2408、2508、2608、2708、2808 3桁の最下位ビット
2310、2410、2510、2610、2710、2810 誤ったシンボル
2402 (ビット[19:0])0100_0000_1101_1111_1000の20ビットシーケンス
2404 3進数(T11...T0)1111_1111_11113
2406 順次シンボル(S11...S0)2301_2301_2301、順次シンボル2301_2301_2301
2502 (ビット[19:0])1000_0001_1011_1111_0000の20ビットシーケンス
2504 3進数(T11...T0)2222_2222_22223
2506 順次シンボル(S11...S0)3131_3131_3131、順次シンボル3131_3131_3131
2602 (ビット[19:0])0001_1000_1111_0011_1000の20ビットシーケンス
2604 3進数(T11...T0)0120_1201_20123
2606 順次シンボル(S11...S0)0132_3101_3231、順次シンボル0132_3101_3231
2702 (ビット[19:0])0100_1010_1101_1010_1000の20ビットシーケンス
2704 3進数(T11...T0)1201_2012_01203
2706 順次シンボル(S11...S0)2030_2120_3021、順次シンボル2030_2120_3021
2802 (ビット[19:0])0101_1110_1101_0000_1000の20ビットシーケンス
2804 3進数(T11...T0)2012_0120_12013
2806 順次シンボル(S11...S0)3231_0132_3101、順次シンボル3231_0132_3101
2902 CCIeワード、第1のCCIeワード
2903 3桁の最下位ビット
2904 第2のCCIeワード
2905 最下位ビット
3003 チェックサム値
3004a CCIeアドレスワード
3004b、3008c、3008d 書込みワード
3004c、3012c、3012d 読取りワード
3005 チェックサムワード
3006 書込みコマンド
3008a、3008b、3012a、3012b アドレスワード
3010 読取りコマンド
3102 チェックサム発生器
3104 チェックサム、チェックサム値
3110 第1のCCIeワードN
3112 第2のCCIeワードN+1
3114 第3のCCIeワードN+2
3116 第4のCCIeワードN+3
3202 例示的な柔軟なCCIeワードフォーマット、20ビットワード、柔軟なCCIeワード
3204 エラー検出定数
3206 データのため、またはエラー検出定数を拡張するためのいずれか
3208 制御ビット
3210 14ビットのデータフィールド
3212 「余剰」ビット
3220 代替CCIeワードフォーマット
3228 制御コード
3302 バス
3304 処理回路
3305 メモリ
3306 コンピュータ可読媒体
3306a 命令、エンコーダ/デコーダ命令
3306b 命令、エラー検出命令
3306c 命令、チェックサム命令
3308 バスインターフェース/回路
3314 マスタ/スレーブデバイス、デバイス
3314 マスタ/スレーブデバイス
3320 回路、エンコーダ/デコーダ回路
3330 回路、エラー検出回路
3340 回路、チェックサム回路
3350 制御データバス、バス
3360 マスタ/スレーブデバイス
3502 第1のライン(SDA)、第1のライン
3504 第2のライン(SCL)、第2のライン
3506 クロック
3508 開始条件
3510 開始条件、第2の開始条件
3512 12個のシンボル
3602 クロックパルス、次のシンボル
3604、3804 状態
3702 2つのクロックパルス、次のワード
3704 シンボル「2」および「3」
3802 余剰クロックパルス
3806 シンボル遷移

Claims (27)

  1. 共有バスと、
    前記共有バスに結合されたスレーブデバイスと、
    前記共有バスに結合され、前記共有バス上の通信を管理するように適合されたマスタデバイスと
    を備え、
    前記共有バスを介した送信が、送信のためにシンボルに次にトランスコーディングされる3進数に符号化される複数のビットであり、前記複数のビットにおける3桁の最下位ビットまたは最下位のもののいずれかが、前記送信のエラー検出のために使用される、デバイス。
  2. 前記共有バスが2ラインバスであり、前記2ラインバスの両方のラインが、前記シンボルを転送するために使用される、請求項1に記載のデバイス。
  3. クロック信号がシンボル間遷移内に埋め込まれる、請求項1に記載のデバイス。
  4. 前記スレーブデバイスが、前記クロック信号内で誤ったクロックパルス消失と誤った余剰クロックパルスとを検出する、状態機械論理回路を実装する、請求項3に記載のデバイス。
  5. 前記複数のビットが20ビットシーケンスである、請求項1に記載のデバイス。
  6. エラー検出のための前記3桁の最下位ビットの使用が、前記20ビットシーケンス全体におけるエラーの検出を保証する、請求項5に記載のデバイス。
  7. 第2の最下位ビットおよび第3の最下位ビットの使用が、データ送信またはエラー検出のいずれかに柔軟に割り振られる、請求項1に記載のデバイス。
  8. エラー検出のための前記最下位ビットの使用が、時間の約50%のみで、前記20ビットシーケンス全体における単一シンボルエラーの検出を保証する、請求項7に記載のデバイス。
  9. 前記最下位ビットのみがエラー検出のために使用されるとき、前記最下位ビットの値が「1」または「0」のいずれかの一定の2進値に設定される、請求項1に記載のデバイス。
  10. 前記3桁の最下位ビットがエラー検出のために使用されるとき、前記3桁の最下位ビットの値が「000」または「111」のいずれかの一定の2進値に設定される、請求項6に記載のデバイス。
  11. 送信機デバイス上で動作可能な方法であって、
    共有バスを介して送信されるべき複数のビットを取得するステップであって、前記複数のビットにおける3桁の最下位ビットまたは最下位のもののいずれかが、エラー検出のために使用されるステップと、
    前記複数のビットを3進数に変換するステップと、
    前記3進数の桁を順次シンボルに変換するステップと、
    複数のシンボルを送信のためにワードに結合するステップと
    を含む方法。
  12. 前記共有バスを介して受信デバイスへ前記ワードを送信するステップ
    をさらに含む、請求項11に記載の方法。
  13. 前記送信されるビットのためのチェックサムを計算するステップと、
    前記送信されるビットのための前記チェックサムを受信デバイスへ送信するステップと
    をさらに含む、請求項11に記載の方法。
  14. チェックサムが、受信デバイスへの送信のために、いずれかの任意のワード内に挿入される、請求項11に記載の方法。
  15. クロックがシンボル間遷移内に埋め込まれる、請求項11に記載の方法。
  16. 前記共有バスが2ラインバスであり、前記2ラインバスの両方のラインが、前記シンボルを転送するために使用される、請求項11に記載の方法。
  17. 送信機デバイスであって、
    共有バスに結合するためのバスインターフェースと、
    前記バスインターフェースに結合される処理回路であって、
    共有バスを介して送信されるべき複数のビットを取得することであって、前記複数のビットにおける3桁の最下位ビットまたは最下位のもののいずれかが、エラー検出のために使用されること、
    前記複数のビットを3進数に変換すること、
    前記3進数の桁を順次シンボルに変換すること、および
    複数のシンボルを送信のためにワードに結合すること
    を行うように構成された処理回路と
    を備える送信機デバイス。
  18. 前記処理回路が、
    前記共有バスを介して受信デバイスへ前記ワードを送信すること
    を行うようにさらに構成される、請求項17に記載のデバイス。
  19. 前記処理回路が、
    前記送信されるビットのためのチェックサムを計算すること、および
    前記送信されるビットのための前記チェックサムを受信デバイスへ送信すること
    を行うようにさらに構成される、請求項17に記載のデバイス。
  20. チェックサムが、受信デバイスへの送信のために、いずれかの任意のワード内に挿入される、請求項17に記載のデバイス。
  21. クロックがシンボル間遷移内に埋め込まれる、請求項17に記載のデバイス。
  22. 前記共有バスが2ラインバスであり、前記2ラインバスの両方のラインが、前記シンボルを転送するために使用される、請求項17に記載のデバイス。
  23. 受信機デバイスであって、
    共有バスに結合するためのバスインターフェースと、
    前記バスインターフェースに結合される処理回路であって、
    前記共有バスを介して複数のシンボルを受信すること、
    前記複数のシンボルを桁に変換すること、
    前記桁を3進数に結合すること、および
    前記3進数をビットに変換することであって、前記複数のビットにおける3桁の最下位ビットまたは最下位のもののいずれかが、エラー検出のために使用されること
    を行うように構成された処理回路と
    を備える受信機デバイス。
  24. 前記処理回路が、
    前記複数のビットにおける前記3桁の最下位ビットまたは前記最下位のもののいずれかに基づいて、前記受信された複数のビット内のエラーを確かめること
    を行うようにさらに構成される、請求項23に記載の受信機デバイス。
  25. クロックが、前記複数の受信されたシンボルのシンボル間遷移内に埋め込まれる、請求項23に記載の受信機デバイス。
  26. クロック信号内で誤ったクロックパルス消失と誤った余剰クロックパルスとを検出する、状態機械論理回路
    をさらに備える、請求項23に記載の受信機デバイス。
  27. 前記共有バスが2ラインバスであり、前記2ラインバスの両方のラインが、前記シンボルを転送するために使用される、請求項23に記載の受信機デバイス。
JP2016521313A 2013-10-09 2014-10-09 CCIeプロトコルを介したエラー検出能力 Expired - Fee Related JP6411480B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361889030P 2013-10-09 2013-10-09
US61/889,030 2013-10-09
US201461946647P 2014-02-28 2014-02-28
US61/946,647 2014-02-28
PCT/US2014/059981 WO2015054548A1 (en) 2013-10-09 2014-10-09 ERROR DETECTION CAPABILITY OVER CCIe PROTOCOL

Publications (3)

Publication Number Publication Date
JP2016539533A true JP2016539533A (ja) 2016-12-15
JP2016539533A5 JP2016539533A5 (ja) 2017-11-02
JP6411480B2 JP6411480B2 (ja) 2018-10-24

Family

ID=51845514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016521313A Expired - Fee Related JP6411480B2 (ja) 2013-10-09 2014-10-09 CCIeプロトコルを介したエラー検出能力

Country Status (6)

Country Link
US (1) US9678828B2 (ja)
EP (1) EP3055929A1 (ja)
JP (1) JP6411480B2 (ja)
KR (1) KR20160070171A (ja)
CN (1) CN105900340A (ja)
WO (1) WO2015054548A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019032626A (ja) * 2017-08-04 2019-02-28 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信方法、プログラム、および、通信システム
JP2020005224A (ja) * 2018-07-02 2020-01-09 ルネサスエレクトロニクス株式会社 半導体装置及び通信システム
US11544132B2 (en) 2017-08-04 2023-01-03 Sony Semiconductor Solutions Corporation Communication apparatus, communication method, program, and communication system

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690725B2 (en) 2014-01-14 2017-06-27 Qualcomm Incorporated Camera control interface extension with in-band interrupt
US10353837B2 (en) 2013-09-09 2019-07-16 Qualcomm Incorporated Method and apparatus to enable multiple masters to operate in a single master bus architecture
US9996488B2 (en) 2013-09-09 2018-06-12 Qualcomm Incorporated I3C high data rate (HDR) always-on image sensor 8-bit operation indicator and buffer over threshold indicator
US9519603B2 (en) 2013-09-09 2016-12-13 Qualcomm Incorporated Method and apparatus to enable multiple masters to operate in a single master bus architecture
US9684624B2 (en) 2014-01-14 2017-06-20 Qualcomm Incorporated Receive clock calibration for a serial bus
WO2015126983A1 (en) * 2014-02-18 2015-08-27 Qualcomm Incorporated Technique to avoid metastability condition and avoid unintentional state changes of legacy i2c devices on a multi-mode bus
US20150248373A1 (en) * 2014-02-28 2015-09-03 Qualcomm Incorporated Bit allocation over a shared bus to facilitate an error detection optimization
US10089173B2 (en) 2014-11-26 2018-10-02 Qualcomm Incorporated Error detection constants of symbol transition clocking transcoding
FR3036513B1 (fr) * 2015-05-19 2018-06-08 Stmicroelectronics (Rousset) Sas Procede de communication sur un bus bifilaire
US9960981B2 (en) 2015-10-08 2018-05-01 Sony Corporation Communication device, communication method, program, and communication system
JP6976728B2 (ja) * 2017-06-08 2021-12-08 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信方法、プログラム、および、通信システム
CN110659238A (zh) * 2018-06-28 2020-01-07 鸿富锦精密电子(天津)有限公司 数据通信系统
CN109861896A (zh) * 2019-03-29 2019-06-07 上海剑桥科技股份有限公司 高速单总线设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5037305A (ja) * 1973-08-06 1975-04-08
JPS50147204A (ja) * 1974-05-15 1975-11-26
US4398265A (en) * 1980-09-15 1983-08-09 Motorola, Inc. Keyboard and display interface adapter architecture
JPS59178842A (ja) * 1983-03-29 1984-10-11 Omron Tateisi Electronics Co デ−タ通信システム
JPH04358363A (ja) * 1991-06-04 1992-12-11 Toshiba Corp 高能率符号化用エラー訂正装置
JPH1032565A (ja) * 1996-07-15 1998-02-03 Fujitsu Ltd クロック余剰/歯抜検出回路
JP2005210159A (ja) * 2004-01-20 2005-08-04 Sharp Corp データ伝送装置およびデータ伝送方法
JP2012039552A (ja) * 2010-08-11 2012-02-23 Fujitsu Advanced Engineering Ltd エラーチェック回路及びエラーチェック方法

Family Cites Families (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3629823A (en) * 1969-11-14 1971-12-21 Gen Dynamics Corp Information-handling system having error correction capabilities
JPS5868346A (ja) 1981-10-18 1983-04-23 Toshiba Corp デ−タ伝送システム
JPS615658A (ja) * 1984-06-01 1986-01-11 Fujitsu Ltd 信号監視回路
US4695945A (en) 1985-02-28 1987-09-22 International Business Machines Corporation Processor I/O and interrupt filters allowing a co-processor to run software unknown to the main processor
GB2173929A (en) 1985-04-20 1986-10-22 Itt Ind Ltd Computer systems
US4800564A (en) * 1986-09-29 1989-01-24 International Business Machines Corporation High performance clock system error detection and fault isolation
US5274647A (en) * 1989-02-13 1993-12-28 Kabushiki Kaisha Toshiba Elastic buffer with error detection using a hamming distance circuit
US5613128A (en) 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
US5257270A (en) * 1990-12-26 1993-10-26 Eastman Kodak Company Shift-correction code rate-enhancing parity encoding/decoding
US5321818A (en) 1992-05-12 1994-06-14 Hughes Aircraft Company System for arbitrating for access on VME bus structures
US5872519A (en) 1992-05-22 1999-02-16 Directed Electronics, Inc. Advanced embedded code hopping system
US5581770A (en) 1992-06-04 1996-12-03 Mitsubishi Denki Kabushiki Kaisha Floating interruption handling system and method
ATE170351T1 (de) 1992-06-22 1998-09-15 Ibm Knotenpunkt und schnittstelle für isochronen token-ring
US5376928A (en) 1992-09-18 1994-12-27 Thomson Consumer Electronics, Inc. Exchanging data and clock lines on multiple format data buses
JPH06337843A (ja) 1993-05-28 1994-12-06 Fujitsu Ltd データ転送制御方法
GB9506470D0 (en) * 1995-03-29 1995-05-17 Sgs Thomson Microelectronics 5b4t coding scheme
GB9614561D0 (en) * 1996-07-11 1996-09-04 4Links Ltd Communication system with improved code
US6812824B1 (en) 1996-10-17 2004-11-02 Rf Technologies, Inc. Method and apparatus combining a tracking system and a wireless communication system
AU6042098A (en) * 1997-01-30 1998-08-25 Fujitsu Limited Data encoder/decoder for a high speed serial link
US6359951B1 (en) * 1998-06-03 2002-03-19 Intel Corporation Method and apparatus for high speed signaling
US6191632B1 (en) 1998-07-24 2001-02-20 Matsushita Electric Industrial Co., Ltd. Clock generation circuit and semiconductor integrated circuit
US6532506B1 (en) 1998-08-12 2003-03-11 Intel Corporation Communicating with devices over a bus and negotiating the transfer rate over the same
US6895057B1 (en) * 1998-11-03 2005-05-17 Lucent Technologies Inc. System and method for wireless communication supporting link adaptation and incremental redundancy
US6253268B1 (en) 1999-01-15 2001-06-26 Telefonaktiebolaget L M Ericsson (Publ) Method and system for multiplexing a second interface on an I2C interface
US6609167B1 (en) 1999-03-17 2003-08-19 Adaptec, Inc. Host and device serial communication protocols and communication packet formats
US6839393B1 (en) 1999-07-14 2005-01-04 Rambus Inc. Apparatus and method for controlling a master/slave system via master device synchronization
US6370668B1 (en) 1999-07-23 2002-04-09 Rambus Inc High speed memory system capable of selectively operating in non-chip-kill and chip-kill modes
US6445313B2 (en) * 2000-02-07 2002-09-03 Lg Electronics Inc. Data modulating/demodulating method and apparatus for optical recording medium
ATE338308T1 (de) 2000-06-12 2006-09-15 Supersensor Proprietary Ltd Leseprotokoll für etiketten in einem elektronischen identifikationssystem
US8639849B2 (en) 2001-12-17 2014-01-28 Sutech Data Solutions Co., Llc Integrated circuits for high speed adaptive compression and methods therefor
US6617985B1 (en) * 2002-04-15 2003-09-09 Lsi Logic Corporation Method and/or apparatus for implementing constraint codes with low error propagation
US7100097B2 (en) * 2002-07-16 2006-08-29 Hewlett-Packard Development Company, L.P. Detection of bit errors in maskable content addressable memories
US7089338B1 (en) 2002-07-17 2006-08-08 Cypress Semiconductor Corp. Method and apparatus for interrupt signaling in a communication network
DE10250616C1 (de) 2002-10-30 2003-11-20 Siemens Ag Bordnetz
US7231587B2 (en) * 2004-03-29 2007-06-12 Lsi Corporation Embedded picture PSNR/CRC data in compressed video bitstream
JP4628162B2 (ja) 2004-04-16 2011-02-09 株式会社ソニー・コンピュータエンタテインメント 通信端末装置、通信システムおよび電力制御方法
US20070088874A1 (en) 2005-10-14 2007-04-19 Hewlett-Packard Development Company, L.P. Offload engine as processor peripheral
DE102006004346A1 (de) 2006-01-30 2007-10-18 Deutsche Thomson-Brandt Gmbh Datenbusschnittstelle mit abschaltbarem Takt
US8880104B2 (en) 2006-03-03 2014-11-04 Qualcomm Incorporated Standby time improvements for stations in a wireless network
EP2005308A2 (en) 2006-03-31 2008-12-24 Nxp B.V. Method and system for i2c clock generation
US7502992B2 (en) * 2006-03-31 2009-03-10 Emc Corporation Method and apparatus for detecting presence of errors in data transmitted between components in a data storage system using an I2C protocol
EP1868109A1 (de) * 2006-06-12 2007-12-19 Siemens Aktiengesellschaft Ereignissignalisierung zwischen Peripheriemodulen und einer Verarbeitungseinheit
US7707349B1 (en) * 2006-06-26 2010-04-27 Marvell International Ltd. USB isochronous data transfer for a host based laser printer
US8055988B2 (en) * 2007-03-30 2011-11-08 International Business Machines Corporation Multi-bit memory error detection and correction system and method
US9886231B2 (en) 2008-03-28 2018-02-06 Kopin Corporation Head worn wireless computer having high-resolution display suitable for use as a mobile internet device
WO2009132425A1 (en) 2008-04-29 2009-11-05 Jamie Hackett Wireless control system using variable power dual modulation transceivers
US8223796B2 (en) 2008-06-18 2012-07-17 Ati Technologies Ulc Graphics multi-media IC and method of its operation
US7990992B2 (en) 2008-06-19 2011-08-02 Nokia Corporation Electronically configurable interface
JP5081306B2 (ja) 2008-09-16 2012-11-28 パナソニック株式会社 撮像装置および動画データ作成方法
US8103803B2 (en) 2008-11-21 2012-01-24 Nvidia Corporation Communication between a processor and a controller
US8549198B2 (en) 2009-03-27 2013-10-01 Schneider Electric It Corporation Communication protocol
US8112551B2 (en) 2009-05-07 2012-02-07 Cypress Semiconductor Corporation Addressing scheme to allow flexible mapping of functions in a programmable logic array
US8971469B2 (en) 2010-08-31 2015-03-03 Sharp Kabushiki Kaisha Serial data communication method and serial data communication device
US8629913B2 (en) 2010-09-30 2014-01-14 Apple Inc. Overflow control techniques for image signal processing
JP5510275B2 (ja) 2010-11-08 2014-06-04 株式会社デンソー 通信システム、マスタノード、スレーブノード
CN102567250B (zh) * 2010-11-29 2016-06-01 意法半导体股份有限公司 具有可通过降低数量的端子编程的地址的电子设备
US9167612B2 (en) 2011-04-07 2015-10-20 Hewlett-Packard Development Company, L.P. Minimal synchronized network operations
US8819170B2 (en) 2011-07-14 2014-08-26 Schneider Electric It Corporation Communication protocols
US8842775B2 (en) 2011-08-09 2014-09-23 Alcatel Lucent System and method for power reduction in redundant components
EP2754017B1 (en) 2011-09-07 2021-03-03 Synaptics Incorporated Capacitive sensing during non-display update times
WO2013052886A2 (en) 2011-10-05 2013-04-11 Analog Devices, Inc. Two-wire communication system for high-speed data and power distribution
US8732560B2 (en) * 2012-05-08 2014-05-20 Infineon Technologies Ag Method and device for correction of ternary stored binary data
US8898358B2 (en) 2012-07-04 2014-11-25 International Business Machines Corporation Multi-protocol communication on an I2C bus
US9374216B2 (en) 2013-03-20 2016-06-21 Qualcomm Incorporated Multi-wire open-drain link with data symbol transition based clocking
US9137008B2 (en) 2013-07-23 2015-09-15 Qualcomm Incorporated Three phase clock recovery delay calibration
US9612983B2 (en) 2013-08-12 2017-04-04 Atmel Corporation Peripheral registers with flexible data width
US20150095537A1 (en) 2013-10-02 2015-04-02 Qualcomm Incorporated Camera control interface sleep and wake up signaling
US9519603B2 (en) 2013-09-09 2016-12-13 Qualcomm Incorporated Method and apparatus to enable multiple masters to operate in a single master bus architecture
US10353837B2 (en) 2013-09-09 2019-07-16 Qualcomm Incorporated Method and apparatus to enable multiple masters to operate in a single master bus architecture
US9690725B2 (en) 2014-01-14 2017-06-27 Qualcomm Incorporated Camera control interface extension with in-band interrupt
US9996488B2 (en) 2013-09-09 2018-06-12 Qualcomm Incorporated I3C high data rate (HDR) always-on image sensor 8-bit operation indicator and buffer over threshold indicator
CN105612507A (zh) 2013-10-08 2016-05-25 高通股份有限公司 I2c从动设备与相机控制接口扩展设备在共享控制数据总线上的共存
US9684624B2 (en) 2014-01-14 2017-06-20 Qualcomm Incorporated Receive clock calibration for a serial bus
US20150248373A1 (en) 2014-02-28 2015-09-03 Qualcomm Incorporated Bit allocation over a shared bus to facilitate an error detection optimization
US9904637B2 (en) 2014-11-26 2018-02-27 Qualcomm Incorporated In-band interrupt time stamp

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5037305A (ja) * 1973-08-06 1975-04-08
JPS50147204A (ja) * 1974-05-15 1975-11-26
US4398265A (en) * 1980-09-15 1983-08-09 Motorola, Inc. Keyboard and display interface adapter architecture
JPS59178842A (ja) * 1983-03-29 1984-10-11 Omron Tateisi Electronics Co デ−タ通信システム
JPH04358363A (ja) * 1991-06-04 1992-12-11 Toshiba Corp 高能率符号化用エラー訂正装置
JPH1032565A (ja) * 1996-07-15 1998-02-03 Fujitsu Ltd クロック余剰/歯抜検出回路
JP2005210159A (ja) * 2004-01-20 2005-08-04 Sharp Corp データ伝送装置およびデータ伝送方法
JP2012039552A (ja) * 2010-08-11 2012-02-23 Fujitsu Advanced Engineering Ltd エラーチェック回路及びエラーチェック方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019032626A (ja) * 2017-08-04 2019-02-28 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信方法、プログラム、および、通信システム
US11544132B2 (en) 2017-08-04 2023-01-03 Sony Semiconductor Solutions Corporation Communication apparatus, communication method, program, and communication system
US11561922B2 (en) 2017-08-04 2023-01-24 Sony Semiconductor Solutions Corporation Communication apparatus, communication method, program, and communication system
JP2020005224A (ja) * 2018-07-02 2020-01-09 ルネサスエレクトロニクス株式会社 半導体装置及び通信システム
CN110677450A (zh) * 2018-07-02 2020-01-10 瑞萨电子株式会社 半导体器件和通信
JP7320927B2 (ja) 2018-07-02 2023-08-04 ルネサスエレクトロニクス株式会社 半導体装置及び通信システム
CN110677450B (zh) * 2018-07-02 2024-05-14 瑞萨电子株式会社 半导体器件和通信

Also Published As

Publication number Publication date
US9678828B2 (en) 2017-06-13
JP6411480B2 (ja) 2018-10-24
WO2015054548A1 (en) 2015-04-16
EP3055929A1 (en) 2016-08-17
CN105900340A (zh) 2016-08-24
US20150100862A1 (en) 2015-04-09
KR20160070171A (ko) 2016-06-17

Similar Documents

Publication Publication Date Title
JP6411480B2 (ja) CCIeプロトコルを介したエラー検出能力
JP2017511044A (ja) エラー検出最適化を容易にするための共有バスを介したビット割振り
US9811499B2 (en) Transcoding and transmission over a serial bus
US9519603B2 (en) Method and apparatus to enable multiple masters to operate in a single master bus architecture
US9990330B2 (en) Simultaneous edge toggling immunity circuit for multi-mode bus
JP6277267B2 (ja) CCIeバスを介したスレーブ識別子スキャニングおよびホットプラグ能力
US10031547B2 (en) CCIe receiver logic register write only with receiver clock

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170925

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170925

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180713

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180926

R150 Certificate of patent or registration of utility model

Ref document number: 6411480

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees