JP6953226B2 - 通信装置、通信方法、プログラム、および、通信システム - Google Patents

通信装置、通信方法、プログラム、および、通信システム Download PDF

Info

Publication number
JP6953226B2
JP6953226B2 JP2017152062A JP2017152062A JP6953226B2 JP 6953226 B2 JP6953226 B2 JP 6953226B2 JP 2017152062 A JP2017152062 A JP 2017152062A JP 2017152062 A JP2017152062 A JP 2017152062A JP 6953226 B2 JP6953226 B2 JP 6953226B2
Authority
JP
Japan
Prior art keywords
communication device
communication
error
received
leading
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.)
Active
Application number
JP2017152062A
Other languages
English (en)
Other versions
JP2019032626A (ja
Inventor
高橋 宏雄
宏雄 高橋
直弘 越坂
直弘 越坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Semiconductor Solutions Corp
Original Assignee
Sony Semiconductor Solutions Corp
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 Sony Semiconductor Solutions Corp filed Critical Sony Semiconductor Solutions Corp
Priority to JP2017152062A priority Critical patent/JP6953226B2/ja
Priority to CN201880047901.2A priority patent/CN110945490B/zh
Priority to US16/635,050 priority patent/US11561922B2/en
Priority to PCT/JP2018/027242 priority patent/WO2019026643A1/en
Priority to EP18752295.8A priority patent/EP3662383B1/en
Priority to TW107125489A priority patent/TWI758517B/zh
Publication of JP2019032626A publication Critical patent/JP2019032626A/ja
Application granted granted Critical
Publication of JP6953226B2 publication Critical patent/JP6953226B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Communication Control (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

本開示は、通信装置、通信方法、プログラム、および、通信システムに関し、特に、より確実に通信を行うことができるようにした通信装置、通信方法、プログラム、および、通信システムに関する。
従来、各種のデバイスにおけるレジスタを制御するためのバスIF(Interface)としてCCI(Camera Control Interface)が広く使用されており、CCIでは、物理層にI2C(Inter-Integrated Circuit)規格が採用されている。また、近年、I2Cの高速化を実現することが求められており、次世代の規格としてI3C(Improved Inter Integrated Circuit)の規定が策定され、その改定が進められている。
例えば、I2CおよびI3Cは、バスIFを介した通信の主導権を有するマスタによる制御に従って、バスIFに接続されているスレーブと通信を行うことができるように構成される。さらに、I3Cでは、I2Cのデバイスと通信を行うことができるように互換性を維持する機能や、バスIFに途中からスレーブが参加することを可能とするホットジョインと称される機能、複数のマスタどうしでマスタ権限を譲渡する機能などが提供される。
また、特許文献1には、I3Cにおいて、通信のスタートやストップなどの誤検出に伴って通信不能となることを回避するようにエラー検出方法を定義することで、より確実に通信を行うことが可能な通信装置が開示されている。
国際公開第2017/061330号
ところで、I2Cと、I2Cの上位層規格であるCCIは、規格上、エラーを検出する機能は定義されていなかったのに対し、I3Cの規格では、エラーの検出方法および復帰方法が定義されている。しかしながら、例えば、後述するようなインデックスのエラー、または、FIFO(First In, First Out)オーバーフローが発生した場合には、通信を正常に行うことができない状態になる恐れがある。そこで、それらのエラーに対する対策を施して、より確実に通信を行えるようにすることが求められている。
本開示は、このような状況に鑑みてなされたものであり、より確実に通信を行うことができるようにするものである。
本開示の第1の側面の通信装置は、バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスが未定義の状態であるか否かを判定する上位階層通信処理部と、前記インデックスが未定義の状態であると判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、前記下位階層に指令する上位階層エラー対応部とを有する。
本開示の第1の側面の通信方法は、バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置が、前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスが未定義の状態であるか否かを判定することと、前記インデックスが未定義の状態であると判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、前記下位階層に指令することとを含む。
本開示の第1の側面のプログラムは、バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置のコンピュータに、前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスが未定義の状態であるか否かを判定することと、前記インデックスが未定義の状態であると判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、前記下位階層に指令することとを含む通信処理を実行させる。
本開示の第1の側面においては、主導的な通信装置からリードアクセスが要求されたときに、インデックスが未定義の状態であるか否かが判定され、インデックスが未定義の状態であると判定されたことに基づいてエラーの発生を検出し、主導的な通信装置により高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、下位階層に指令される。
本開示の第2の側面の通信装置は、バスを介した通信を制御する主導的な通信装置であって、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にする上位階層通信処理部を有する。
本開示の第2の側面の通信方法は、バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置が、前記上位階層は、前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にすることを含む。
本開示の第2の側面のプログラムは、バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置のコンピュータに、前記上位階層は、前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にすることを含む通信処理を実行させる。
本開示の第2の側面においては、下位階層によりエラーが検出された場合、または、従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスがクリアされて、未定義の状態にされる。
本開示の第3の側面の通信システムは、バスを介した通信を制御する主導的な通信装置と、前記通信装置による制御に従って通信を行う従属的な通信装置とが接続されて構成される通信システムであって、前記従属的な通信装置は、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスが未定義の状態であるか否かを判定する上位階層通信処理部と、前記インデックスが未定義の状態であると判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、前記下位階層に指令する上位階層エラー対応部とを有し、前記主導的な通信装置は、前記従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にする上位階層通信処理部を有する。
本開示の第3の側面においては、従属的な通信装置では、主導的な通信装置からリードアクセスが要求されたときに、インデックスが未定義の状態であるか否かが判定され、インデックスが未定義の状態であると判定されたことに基づいてエラーの発生を検出し、主導的な通信装置により高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、下位階層に指令される。一方、主導的な通信装置では、下位階層によりエラーが検出された場合、または、従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスがクリアされて、未定義の状態にされる。
本開示の第4の側面の通信装置は、バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、通信で送受信されるデータのバイト数として予め通知された送受信バイト数を超えてライトデータが続くか否かを判定する上位階層通信処理部と、前記送受信バイト数を超えてライトデータが続くと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部とを有する。
本開示の第4の側面の通信方法は、バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置が、通信で送受信されるデータのバイト数として予め通知された送受信バイト数を超えてライトデータが続くか否かを判定することと、前記送受信バイト数を超えてライトデータが続くと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することとを含む。
本開示の第4の側面のプログラムは、バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置のコンピュータに、通信で送受信されるデータのバイト数として予め通知された送受信バイト数を超えてライトデータが続くか否かを判定することと、前記送受信バイト数を超えてライトデータが続くと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
を含む通信処理を実行させる。
本開示の第4の側面においては、通信で送受信されるデータのバイト数として予め通知された送受信バイト数を超えてライトデータが続くか否かが判定され、送受信バイト数を超えてライトデータが続くと判定されたことに基づいてエラーの発生を検出し、主導的な通信装置により少なくとも高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、下位階層が制御される。
本開示の第5の側面の通信装置は、バスを介した通信を制御する主導的な通信装置であって、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてリードデータが続くか否かを判定する前記上位階層通信処理部を有し、前記下位階層は、前記送受信バイト数を超えてリードデータが続くと判定されたことに基づいてエラーの発生を検出したとき、前記上位階層にインデックスをクリアさせ、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除するエラー対応部を有する。
本開示の第5の側面の通信方法は、バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置が、通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてリードデータが続くか否かを判定することと、前記送受信バイト数を超えてリードデータが続くと判定されたことに基づいてエラーの発生を検出したとき、前記上位階層にインデックスをクリアさせ、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除することとを含む。
本開示の第5の側面のプログラムは、バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置のコンピュータに、通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてリードデータが続くか否かを判定することと、前記送受信バイト数を超えてリードデータが続くと判定されたことに基づいてエラーの発生を検出したとき、前記上位階層にインデックスをクリアさせ、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除することとを含む通信処理を実行させる。
本開示の第5の側面においては、通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてリードデータが続くか否かが判定され、送受信バイト数を超えてリードデータが続くと判定されたことに基づいてエラーの発生を検出したとき、上位階層にインデックスをクリアさせ、通信を打ち切って、少なくとも高速通信モードの終了またはリスタートを行った後、エラーが解除される。
本開示の第6の側面の通信システムは、バスを介した通信を制御する主導的な通信装置と、前記主導的な通信装置による制御に従って通信を行う従属的な通信装置とが接続されて構成される通信システムであって、前記従属的な通信装置は、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてライトデータが続くか否かを判定する上位階層通信処理部と、前記送受信バイト数を超えてライトデータが続くと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部とを有し、前記主導的な通信装置は、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてリードデータが続くか否かを判定する前記上位階層通信処理部を有し、前記下位階は、前記送受信バイト数を超えてリードデータが続くと判定されたことに基づいてエラーの発生を検出したとき、前記上位階層にインデックスをクリアさせ、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除するエラー対応部を有する。
本開示の第6の側面においては、従属的な通信装置では、通信で送受信されるデータのバイト数として予め通知された送受信バイト数を超えてライトデータが続くか否かが判定され、送受信バイト数を超えてライトデータが続くと判定されたことに基づいてエラーの発生を検出し、主導的な通信装置により少なくとも高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、下位階層が制御される。一方、主導的な通信装置では、通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてリードデータが続くか否かが判定され、送受信バイト数を超えてリードデータが続くと判定されたことに基づいてエラーの発生を検出したとき、上位階層にインデックスをクリアさせ、通信を打ち切って、少なくとも高速通信モードの終了またはリスタートを行った後、エラーが解除される。
本開示の第7の側面の通信装置は、バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、一度の送受信でライトできる最大転送バイト数を超えるライトデータを受信したか否かを判定する上位階層通信処理部と、前記最大転送バイト数を超えるライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部とを有する。
本開示の第7の側面の通信方法は、バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置が、一度の送受信でライトできる最大転送バイト数を超えるライトデータを受信したか否かを判定することと、前記最大転送バイト数を超えるライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することとを含む。
本開示の第7の側面のプログラムは、バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置のコンピュータに、一度の送受信でライトできる最大転送バイト数を超えるライトデータを受信したか否かを判定することと、前記最大転送バイト数を超えるライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することとを含む通信処理を実行させる。
本開示の第7の側面においては、一度の送受信でライトできる最大転送バイト数を超えるライトデータを受信したか否かが判定され、最大転送バイト数を超えるライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、主導的な通信装置により少なくとも高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、下位階層が制御される。
本開示の第8の側面の通信装置は、バスを介した通信を制御する主導的な通信装置であって、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、一度の送受信でリードできる最大転送バイト数を超えるリードデータを受信したか否かを判定する上位階層通信処理部を有し、前記下位階層は、前記最大転送バイト数を超えるリードデータを受信したと判定されたことに基づいてエラーの発生を検出したとき、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除するエラー対応部を有する。
本開示の第8の側面の通信方法は、バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置が、一度の送受信でリードできる最大転送バイト数を超えるリードデータを受信したか否かを判定することと、前記最大転送バイト数を超えるリードデータを受信したと判定されたことに基づいてエラーの発生を検出したとき、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除することとを含む。
本開示の第8の側面のプログラムは、バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置のコンピュータに、一度の送受信でリードできる最大転送バイト数を超えるリードデータを受信したか否かを判定することと、前記最大転送バイト数を超えるリードデータを受信したと判定されたことに基づいてエラーの発生を検出したとき、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除することとを含む通信処理を実行させる。
本開示の第8の側面においては、一度の送受信でリードできる最大転送バイト数を超えるリードデータを受信したか否かが判定され、前記最大転送バイト数を超えるリードデータを受信したと判定されたことに基づいてエラーの発生を検出したとき、通信を打ち切って、前記高速通信モードの終了またはリスタートを行った後、エラーが解除される。
本開示の第9の側面の通信システムは、バスを介した通信を制御する主導的な通信装置と、前記通信装置による制御に従って通信を行う従属的な通信装置とが接続されて構成される通信システムであって、前記従属的な通信装置は、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、一度の送受信でライトできる最大転送バイト数を超えるライトデータを受信したか否かを判定する上位階層通信処理部と、前記最大転送バイト数を超えるライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、前記下位階層に指令する上位階層エラー対応部とを有し、前記主導的な通信装置は、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、一度の送受信でリードできる最大転送バイト数を超えるリードデータを受信したか否かを判定する上位階層通信処理部を有し、前記下位階層は、前記最大転送バイト数を超えるリードデータを受信したと判定されたことに基づいてエラーの発生を検出したとき、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除するエラー対応部を有する。
本開示の第9の側面においては、従属的な通信装置では、一度の送受信でライトできる最大転送バイト数を超えるライトデータを受信したか否かが判定され、最大転送バイト数を超えるライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、主導的な通信装置により高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、下位階層に指令される。一方、主導的な通信装置では、一度の送受信でリードできる最大転送バイト数を超えるリードデータを受信したか否かが判定され、前記最大転送バイト数を超えるリードデータを受信したと判定されたことに基づいてエラーの発生を検出したとき、通信を打ち切って、前記高速通信モードの終了またはリスタートを行った後、エラーが解除される。
本開示の第1乃至第9の側面によれば、より確実に通信を行うことができる。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術を適用したI3Cバスの一実施の形態の構成例を示すブロック図である。 I3Cバスを利用したI3C通信システムの構成例を示すブロック図である。 I3CスレーブのI3C(SDR)処理部の構成例を示すブロック図である。 I3CスレーブのI3C(DDR)処理部の構成例を示すブロック図である。 マスタ側のI3C階層で行われる通信処理を説明するフローチャートである。 マスタ側のCCI階層で行われる通信処理を説明するフローチャートである。 スレーブ側のCCI階層で行われるSDR通信処理を説明するフローチャートである。 スレーブ側のCCI階層で行われるCCI(I3C DDR)処理を説明するフローチャートである。 エラー対応処理を説明するフローチャートである。 スレーブ側のI3C階層で行われるSDR通信処理を説明するフローチャートである。 確認応答処理を説明するフローチャートである。 ライト受信処理を説明するフローチャートである。 CCC受信処理を説明するフローチャートである。 リード受信処理を説明するフローチャートである。 HDR開始処理を説明するフローチャートである。 スレーブ側のI3C階層で行われるI3C(DDR)処理を説明するフローチャートである。 DDRライト処理を説明するフローチャートである。 DDRリード処理を説明するフローチャートである。 DDR確認応答処理を説明するフローチャートである。 フレーミングエラー対応処理を説明するフローチャートである。 パリティエラー対応処理を説明するフローチャートである。 CRCエラー対応処理を説明するフローチャートである。 インデックスのエラーについて説明する図である。 スレーブ側におけるエラーの定義を示す図である。 マスタ側におけるエラーの定義を示す図である。 SD0エラーの動作例を示す図である。 カレントリードによりSS0エラーが発生する動作例を示す図である。 SD1エラーの動作例を示す図である。 MD0エラーが発生したときの動作例を示す図である。 SD2エラーの動作例を示す図である。 本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
<バスIFの構成例>
図1は、本技術を適用したI3Cバスの一実施の形態の構成例を示すブロック図である。
図1に示されているI3Cバス11は、I3Cマスタ12と3台のI3Cスレーブ13−1乃至13−3とが、シリアルデータSDAを伝送するデータ信号線14と、シリアルクロックSCLを伝送するクロック信号線15とを介して接続されて構成される。
I3Cマスタ12は、I3Cバス11における通信の主導権を有しており、データ信号線14およびクロック信号線15を介して、I3Cスレーブ13−1乃至13−3との通信を制御する。
I3Cスレーブ13−1乃至13−3は、I3Cマスタ12による制御に従って、I3Cバス11を介した通信を行うことができる。なお、以下適宜、I3Cスレーブ13−1乃至13−3それぞれを区別する必要がない場合、単に、I3Cスレーブ13と称する。
このように構成されるI3Cバス11では、I3Cの規格に準じた通信が行われる。例えば、I3Cバス11では、データの転送レートに応じて、通常の転送レートでデータ転送を行うSDR(Single Data Rate)モードと、SDRモードよりも高い転送レートでデータ転送を行うHDR(High Data Rate)モードとが規定されている。また、HDRモードでは、DDR(Double Data Rate)モード、TSP(Ternary Symbol Pure-Bus)モード、および、TSL(Ternary Symbol Legacy-inclusive-Bus)モードの3つの転送モードが規格で定義されている。
また、I3Cでは、コモンコマンドコード(CCC :Common Command Code)を利用して、1台または複数台のI3Cスレーブ13に対して一斉にコマンドを送信したり、動的に割り当てられるアドレス(DAA:Dynamic Address Assignment)を設定したりすることができる。
<I3C通信システムの構成例>
図2は、I3Cバス11を利用したI3C通信システム21の構成例を示すブロック図である。
図2に示す構成では、I3Cマスタ12は、マスタデバイス22の物理層(下位階層)として組み込まれ、マスタデバイス22は、I3Cマスタ12に対して上位階層となるCCIマスタ16を備える。また、I3Cマスタ12およびCCIマスタ16は、I3Cドライバ17を介して接続されている。
また、I3Cスレーブ13は、スレーブデバイス23の物理層(下位階層)として組み込まれ、スレーブデバイス23は、I3Cスレーブ13に対して上位となるCCIスレーブ18を備える。
I3Cマスタ12は、エラーの発生が検出されたときに、そのエラーに対して対応する処理を行うエラー対応部31、および、I3Cスレーブ13において信号の確認応答処理を行った結果に応じて送信してくるACK応答またはNACK応答を確認するACK確認部32を有している。
I3Cスレーブ13は、I3Cの通信がSDRモードであるときの物理層での通信処理を行うI3C(SDR)処理部41、I3Cの通信がDDRモードであるときの物理層での通信処理を行うI3C(DDR)処理部42、および、エラーの発生が検出されたときに、そのエラーに対して対応する処理を行うエラー対応部43を有している。
CCIマスタ16は、I3Cの通信がSDRモードであるときの上位階層としての通信処理を行うCCI(I3C SDR)処理部51、および、I3Cの通信がDDRモードであるときの上位階層としての通信処理を行うCCI(I3C DDR)処理部52を有している。
CCIスレーブ18は、I3Cの通信がSDRモードであるときの上位階層としての通信処理を行うCCI(I3C SDR)処理部61、I3Cの通信がDDRモードであるときの上位階層としての通信処理を行うCCI(I3C DDR)処理部62、および、エラーの発生が検出されたときに、そのエラーに対して対応する処理を行うエラー対応部63を有している。
図3は、I3Cスレーブ13のI3C(SDR)処理部41の構成例を示すブロック図である。
図3に示すように、I3C(SDR)処理部41は、確認応答処理部71、ライト受信処理部72、CCC受信処理部73、リード受信処理部74、HDR開始処理部75、および、エラー対応部76を備えて構成される。
確認応答処理部71は、図11のフローチャートを参照して説明するような確認応答処理を行う。例えば、確認応答処理部71は、I3Cの規定に従ってI3C階層としてはACKでよいと判定しても、CCI階層からNACK応答するように指令があったときには、ACK応答を行わずに、NACK応答を行う。
ライト受信処理部72は、図12のフローチャートを参照して説明するようなライト受信処理を行う。例えば、ライト受信処理部72は、I3Cマスタ12から送信されてくるライトデータを受信し、CCIスレーブ18へ送付する際に、そのライトデータにパリティエラーが発生しているか否かを判定する。そして、ライトデータにパリティエラーが発生していると判定された場合、エラー対応部76によって、ライトデータにパリティエラーが発生していることを示すS2エラーが、CCIスレーブ18に通知される。
CCC受信処理部73は、図13のフローチャートを参照して説明するようなCCC受信処理を行う。例えば、CCC受信処理部73は、I3Cマスタ12から送信されてくるCCCにパリティエラーが発生しているか否かを判定する。そして、CCCにパリティエラーが発生していると判定された場合、エラー対応部76によって、CCCにパリティエラーが発生していることを示すS1エラーが、CCIスレーブ18に通知される。
リード受信処理部74は、図14のフローチャートを参照して説明するようなリード受信処理を行う。例えば、リード受信処理部74は、CCIスレーブ18から受領したリードデータを、I3Cバス11を介して送信しているときに、I3Cバス11上の信号を監視して、その信号がリードデータと一致しているか否かを判定する。そして、I3Cバス11上の信号がリードデータと一致していないと判定された場合、エラー対応部76によって、I3Cバス11上の信号がリードデータと一致していないことを示すS6エラーが、CCIスレーブ18に通知される。
HDR開始処理部75は、図15のフローチャートを参照して説明するようなHDR開始処理を行う。例えば、HDR開始処理部75は、I3Cマスタ12から送信されてくるHDRモードの開始を指示するCCC(ENTHDRx)に従って、DDRモード、TSPモード、およびTSLモードの何れを開始するか判定し、その判定の結果を示すモードを、CCIスレーブ18に通知する。
エラー対応部76は、確認応答処理部71、ライト受信処理部72、CCC受信処理部73、およびリード受信処理部74が、それぞれ行う処理の中で、エラーの発生に対して対応する各種の処理を行う。
図4は、I3Cスレーブ13のI3C(DDR)処理部42の構成例を示すブロック図である。
図4に示すように、I3C(DDR)処理部42は、DDRライト処理部81、DDRリード処理部82、DDR確認応答処理部83、および、エラー対応部84を備えて構成される。
DDRライト処理部81は、図17のフローチャートを参照して説明するようなDDRライト処理を行う。例えば、DDRライト処理部81は、データの配置(フレーミング)や、パリティ、CRCワードなどに従って、I3Cマスタ12から送信されてくるライトデータにエラーが発生しているか否かを判定する。
DDRリード処理部82は、図18のフローチャートを参照して説明するようなDDRリード処理を行う。例えば、DDRリード処理部82は、CCIスレーブ18から受領したリードデータをI3Cマスタ12に送信する。
DDR確認応答処理部83は、図19のフローチャートを参照して説明するようなDDR確認応答処理を行う。例えば、DDR確認応答処理部83は、I3Cの規定に従ってI3C階層としてはACKでよいと判定しても、CCI階層からNACK応答するように指令があったときには、ACK応答を行わずに、NACK応答を行う。
エラー対応部84は、図20のフローチャートを参照して説明するようなフレーミングエラー対応処理、図21のフローチャートを参照して説明するようなパリティエラー対応処理、および、図22のフローチャートを参照して説明するようなCRCエラー対応処理を行う。例えば、エラー対応部84は、それぞれのエラーが発生したことをCCIスレーブ18に通知する。
以上のようにI3C通信システム21は構成されており、I3Cマスタ12およびI3Cスレーブ13がI3Cバス11を介して通信を行い、I3Cマスタ12は主導的に通信を制御し、I3Cスレーブ13はI3Cマスタ12による制御に従って従属的に通信を行う。また、マスタデバイス22では、CCIマスタ16が上位層とし、I3Cマスタ12が下位層として通信処理を行う。同様に、スレーブデバイス23では、CCIスレーブ18が上位層とし、I3Cスレーブ13が下位層として通信処理を行う。そして、CCIマスタ16およびCCIスレーブ18は、互いに共通するインデックスに従って、データを読み出す処理(リード)、および、データを書き込む処理(ライト)を行うことができる。
なお、例えば、CCIマスタ16が有するCCI(I3C SDR)処理部51およびCCI(I3C DDR)処理部52は、ソフトウエアによって実装され、I3Cマスタ12が有するエラー対応部31およびACK確認部32は、半導体回路のようなハードウエアで実装される。同様に、CCIスレーブ18が有するCCI(I3C SDR)処理部61、CCI(I3C DDR)処理部62、およびエラー対応部63は、ソフトウエアによって実装され、I3Cスレーブ13が有するI3C(SDR)処理部41、I3C(DDR)処理部42、およびエラー対応部43は、半導体回路のようなハードウエアで実装される。もちろん、このような実装方法が考えられるが必ずしもこれに限定されることはなく、その他の実装方法を採用してもよい。
<I3Cバスの通信処理>
図5乃至図22を参照して、I3C通信システム21で行われる通信処理の一例について説明する。
図5は、I3Cマスタ12によりマスタ側のI3C階層で行われる通信処理を説明するフローチャートである。
例えば、マスタデバイス22に電力が供給されて、I3Cマスタ12が起動すると処理が開始され、ステップS11において、I3Cマスタ12は、CCIマスタ16からの指示に応じて、I3Cスレーブ13との通信をSDRモードおよびDDRモードのどちらで行うかを判定する。
ステップS11において、SDRモードで通信を行うと判定された場合、処理はステップS12に進み、I3Cマスタ12は、I3Cスレーブ13とSDRモードで通常の通信を行うSDR通常処理を行う。例えば、I3Cマスタ12は、エラー対応部31がエラーを検出するまで、ACK確認部32がNACK応答を受信するまで、または、通信が終了するまでSDR通常処理を行う。そして、SDR通常処理が終了したとき、処理はステップS13に進む。
ステップS13において、I3Cマスタ12は、ステップS12のSDR通常処理を終了したのは、通信終了によるものなのか、エラー検出またはNACK受信によるものなのかを判定する。
ステップS13において、SDR通常処理を終了したのは通信終了によるものであると判定された場合、処理はステップS12に戻り、I3Cマスタ12は、SDR通常処理による通信を継続して行う。
一方、ステップS13において、SDR通常処理を終了したのはエラー検出またはNACK受信によるものであると判定された場合、処理はステップS14に進み、I3Cマスタ12は、エラー検出またはNACK受信があったことをI3Cドライバ17に通知する。
ステップS15において、I3Cドライバ17は、エラー検出またはNACK受信があったことを、CCIマスタ16のCCI(I3C SDR)処理部51に通知する。そして、ステップS16において、I3Cドライバ17は、I3C規格が定める復帰方法に従って、復帰処理を実施するようにI3Cマスタ12に対する指令を行う。なお、ステップS15およびS16の処理はソフトウエアによる処理が可能である。
ステップS17において、I3Cマスタ12は、ステップS16でのI3Cドライバ17からの指令に従って復帰処理を実行した後、処理はステップS12に戻り、以下、同様の処理が繰り返して行われる。例えば、I3Cマスタ12のエラー対応部31は、マスタアボートを送信し、ストップまたはリスタートを送信した後、エラーを解除する。これにより、I3Cスレーブ13をエラーから復帰させる。
一方、ステップS11において、DDRモードで通信を行うと判定された場合、処理はステップS18に進み、I3Cマスタ12は、I3Cスレーブ13とDDRモードで通常の通信を行うDDR通常処理を行う。例えば、I3Cマスタ12は、エラー対応部31がエラーを検出するまで、ACK確認部32がNACK応答を受信するまで、または、通信が終了するまでDDR通常処理を行う。そして、DDR通常処理が終了したとき、処理はステップS19に進む。
ステップS19において、I3Cマスタ12は、ステップS18のDDR通常処理を終了したのは、通信終了によるものなのか、エラー検出またはNACK受信によるものなのかを判定する。
ステップS19において、DDR通常処理を終了したのは通信終了によるものであると判定された場合、処理はステップS18に戻り、I3Cマスタ12は、DDR通常処理による通信を継続して行う。
一方、ステップS19において、DDR通常処理を終了したのはエラー検出またはNACK受信によるものであると判定された場合、処理はステップS20に進み、I3Cマスタ12は、エラー検出またはNACK受信があったことをI3Cドライバ17に通知する。
ステップS21において、I3Cドライバ17は、エラー検出またはNACK受信があったことを、CCIマスタ16のCCI(I3C DDR)処理部52に通知する。そして、ステップS22において、I3Cドライバ17は、I3C規格が定める復帰方法に従って、復帰処理を実施するようにI3Cマスタ12に対する指令を行う。なお、ステップS21およびS22の処理はソフトウエアによる処理が可能である。
ステップS23において、I3Cマスタ12は、ステップS22でのI3Cドライバ17からの指令に従って復帰処理を実行した後、処理はステップS18に戻り、以下、同様の処理が繰り返して行われる。例えば、エラー対応部31が、マスタアボートを送信した後、HDR ExitまたはHDR Restartを送信することで、I3Cスレーブ13をエラーから復帰させる。
図6は、CCIマスタ16によりマスタ側のCCI階層で行われる通信処理を説明するフローチャートである。なお、この通信処理はソフトウエアによる処理が可能である。
例えば、マスタデバイス22に電力が供給されてCCIマスタ16が起動し、図示しない上位の制御部から通信を行うように指示があると処理が開始され、ステップS31において、CCIマスタ16は、SDRモードおよびDDRモードのどちらで通信を行うかを判定する。例えば、CCIマスタ16は、通信の開始時にはSDRモードで通信を行うと判定し、その後にDDRモードに通信を切り替える処理が行われていれば、DDRモードで通信を行うと判定する。
ステップS31において、CCIマスタ16が、SDRモードで通信を行うと判定した場合、処理はステップS32に進み、CCI(I3C SDR)処理部51は、SDR通常処理を行う。例えば、CCI(I3C SDR)処理部51は、図5のステップS14でI3Cドライバ17からエラー検出またはNACK受信があったという報告をI3Cマスタ12から受領するまで、または、通信が終了するまでSDR通常処理を行う。そして、SDR通常処理が終了したとき、処理はステップS33に進む。
ステップS33において、CCI(I3C SDR)処理部51は、SDR通常処理を終了したのは、通信終了によるものなのか、エラー検出またはNACK受信があったという報告を受領したことによるものなのかを判定する。
ステップS33において、SDR通常処理を終了したのは通信終了によるものであると判定された場合、処理はステップS32に戻り、CCI(I3C SDR)処理部51は、SDR通常処理による通信を継続して行う。
一方、ステップS33において、SDR通常処理が終了したのはエラー検出またはNACK受信があったという報告を受領したことによるものであると判定された場合、処理はステップS34に進む。
ステップS34において、CCI(I3C SDR)処理部51は、内部のインデックスをクリアし、無効化する。
ステップS35において、CCI(I3C SDR)処理部51は、次の転送は、現在のアドレス位置のデータを読み出すCCI(SDR)カレントリードであるか否かを判定する。
ステップS35において、次の転送はCCI(SDR)カレントリードでないと判定された場合、処理はステップS32に戻り、次の転送からSDR通常処理が再開される。
一方、ステップS35において、次の転送はCCI(SDR)カレントリードであると判定された場合、処理はステップS36に進む。ステップS36において、CCI(I3C SDR)処理部51は、カレントリードを禁止して、ランダムリードに変更し、または、カレントリードをスキップする。ステップS36の処理後、処理はステップS32に戻り、以下、同様の処理が繰り返して行われる。
一方、ステップS31において、CCIマスタ16が、DDRモードで通信を行うと判定した場合、処理はステップS37に進み、CCI(I3C DDR)処理部52は、DDR通常処理を行う。例えば、CCI(I3C DDR)処理部52は、図5のステップS21でI3Cドライバ17からエラー検出またはNACK受信があったという報告を受領するまで、MD0エラーまたはMD1エラーが検出されるまで、または、通信が終了するまでDDR通常処理を行う。そして、DDR通常処理が終了したとき、処理はステップS38に進む。
ステップS38において、CCI(I3C DDR)処理部52は、DDR通常処理を終了したのは、通信終了によるものなのか、エラー検出またはNACK受信があったという報告を受領したことによるものなのか、あるいは、MD0エラーまたはMD1エラーが検出されたことによるものなのかを判定する。
ステップS38において、DDR通常処理を終了したのは通信終了によるものであると判定された場合、処理はステップS37に戻り、CCI(I3C DDR)処理部52は、DDR通常処理による通信を継続して行う。
一方、ステップS33において、DDR通常処理が終了したのはエラー検出またはNACK受信があったという報告を受領したことによるもの、あるいは、MD0エラーまたはMD1エラーが検出されたことによるものであると判定された場合、処理はステップS39に進む。
ステップS39において、CCI(I3C DDR)処理部52は、は、内部のインデックスをクリアし、無効化する。
ステップS40において、CCI(I3C DDR)処理部52は、次の転送は、現在のアドレス位置のデータを読み出すCCI(DDR)カレントリードであるか否かを判定する。
ステップS40において、次の転送はCCI(DDR)カレントリードでないと判定された場合、処理はステップS37に戻り、次の転送からDDR通常処理が再開される。
一方、ステップS40において、次の転送はCCI(DDR)カレントリードであると判定された場合、処理はステップS41に進む。ステップS41において、CCI(I3C DDR)処理部52は、カレントリードを禁止して、ランダムリードに変更し、または、カレントリードをスキップする。ステップS41の処理後、処理はステップS37に戻り、以下、同様の処理が繰り返して行われる。
図7は、CCIスレーブ18のCCI(I3C SDR)処理部61によりスレーブ側のCCI階層で行われるSDR通信処理を説明するフローチャートである。
例えば、スレーブデバイス23に電力が供給されてCCIスレーブ18が起動すると処理が開始される。ステップS51において、CCI(I3C SDR)処理部61は、I3Cマスタ12により通信のスタートまたはリスタートが行われて、その通信のスタートまたはリスタートをI3Cスレーブ13が検出するまで処理を待機する。そして、通信のスタートまたはリスタートをI3Cスレーブ13が検出すると、処理はステップS52に進む。
ステップS52において、CCI(I3C SDR)処理部61は、I3Cスレーブ13がI3Cマスタ12から送信されてくる信号を受信するのを待機する。そして、CCI(I3C SDR)処理部61は、I3Cマスタ12から送信されてきた信号をI3Cスレーブ13が受信し、その信号をI3Cスレーブ13から受領すると、処理はステップS53に進む。
ステップS53において、CCI(I3C SDR)処理部61は、ステップS52で受領した信号に基づいて、HDRモード遷移するか否かを判定する。
ステップS53において、CCI(I3C SDR)処理部61が、HDRモード遷移しないと判定した場合、処理はステップS54に進む。
ステップS54において、エラー対応部63は、ステップS52でCCI(I3C SDR)処理部61が受領した信号に基づくワードついて、エラーが発生しているエラー受信、または、正常に受信することができた正常ワード受信のどちらであるかを判定する。
ステップS54において、エラー対応部63が、エラー受信であると判定した場合、処理はステップS55に進む。ステップS55において、エラー対応部63は、インデックスをクリアし、無効化する。その後、処理はステップS51に戻り、以下、同様の処理が繰り返して行われる。
一方、ステップS54において、エラー対応部63が、正常ワード受信であると判定した場合、処理はステップS56に進む。ステップS56において、CCI(I3C SDR)処理部61は、正常に受信したワードの意味を判定する。
ステップS56において、CCI(I3C SDR)処理部61が、ワードの意味がスレーブアドレスおよびライトコマンドであると判定した場合、処理はステップS57に進む。ステップS57において、CCI(I3C SDR)処理部61は、I3Cスレーブ13から次に受領するワードをサブアドレスとして扱うものとし、処理はステップS52に戻る。
一方、ステップS56において、CCI(I3C SDR)処理部61が、ワードの意味がサブアドレスであると判定した場合、処理はステップS58に進む。ステップS58において、CCI(I3C SDR)処理部61は、そのワードの値をインデックスに保持する。
ステップS59において、CCI(I3C SDR)処理部61は、サブアドレスのnバイトの受領が完了したか否かを判定する。
ステップS59において、CCI(I3C SDR)処理部61が、サブアドレスのnバイトの受領が完了していないと判定した場合、処理はステップS57に進み、以下、上述した処理が行われる。
一方、ステップS59において、CCI(I3C SDR)処理部61が、サブアドレスのnバイトの受領が完了したと判定した場合、処理はステップS60に進む。ステップS60において、CCI(I3C SDR)処理部61は、I3Cスレーブ13から次に受領するワードをライトデータとして扱うものとし、処理はステップS52に戻る。
一方、ステップS56において、CCI(I3C SDR)処理部61が、ワードの意味がライトデータであると判定した場合、処理はステップS61に進む。ステップS61において、CCI(I3C SDR)処理部61は、そのデータの値を、保持しているインデックス番地に書き込む。
ステップS62において、CCI(I3C SDR)処理部61は、インデックスをインクリメント(+1)し、ステップS63において、ストップまたはリスタート(Repeated Start)をI3Cスレーブ13から受領したか否かを判定する。
ステップS63において、CCI(I3C SDR)処理部61が、ストップまたはリスタートを受領していないと判定した場合、処理はステップS60に進み、以下、上述した処理が行われる。
一方、ステップS63において、CCI(I3C SDR)処理部61が、ストップまたはリスタートを受領したと判定した場合、処理はステップS64に進む。ステップS64において、CCI(I3C SDR)処理部61は、I3Cスレーブ13から次に受領するワードをライトデータとしないこととした後、処理はステップS76に進む。
一方、ステップS56において、CCI(I3C SDR)処理部61が、ワードの意味がスレーブアドレスおよびリードコマンドであると判定した場合、処理はステップS65に進む。
ステップS65において、CCI(I3C SDR)処理部61は、保持しているインデックス値が有効であるか否かを判定する。
ステップS65において、CCI(I3C SDR)処理部61が、保持しているインデックス値が有効である(例えば、インデックスが正しく定義されている)と判定した場合、処理はステップS66に進む。ステップS66において、CCI(I3C SDR)処理部61は、保持しているインデックス番地のデータを読み込む。
ステップS67において、CCI(I3C SDR)処理部61は、ステップS66で読み込んだデータをI3Cスレーブ13に渡し、ステップS68において、インデックスをインクリメント(+1)する。
ステップS69において、CCI(I3C SDR)処理部61は、次のリードデータの準備が完了したか否かを判定する。ステップS69において、CCI(I3C SDR)処理部61が、次のリードデータの準備が完了したと判定した場合、処理はステップS70に進み、CCI(I3C SDR)処理部61は、I3Cスレーブ13からマスタアボートを受信した連絡があったか否かを判定する。
ステップS70において、CCI(I3C SDR)処理部61が、I3Cスレーブ13からマスタアボートを受信した連絡がなかったと判定した場合、処理はステップS67に戻り、データの読み込みが続けて行われる。
一方、ステップS69において、次のリードデータの準備が完了していないと判定された場合、または、ステップS70において、I3Cスレーブ13からマスタアボートを受信した連絡があったと判定された場合、処理はステップS71に進む。ステップS71において、CCI(I3C SDR)処理部61は、ストップまたはリスタートを待機した後、I3Cスレーブ13からストップまたはリスタートを受領すると、処理はステップS76に進む。
一方、ステップS65において、CCI(I3C SDR)処理部61が、保持しているインデックス値が有効でない(例えば、インデックスが未定義であって無効である)と判定した場合、処理はステップS72に進む。ステップS72において、エラー対応部63は、CCI(I3C SDR)処理部61により保持しているインデックス値が有効でないと判定されたことに基づいて、SS0エラーが発生したことを検出する。
ステップS73において、エラー対応部63は、I3Cスレーブ13に対して、SS0エラーを解除するまでNACK応答を行うことを指令する。
ステップS74において、エラー対応部63は、ストップまたはリスタートを待機した後、I3Cスレーブ13からストップまたはリスタートを受領すると、処理はステップS75に進む。
ステップS75において、エラー対応部63は、ステップS74でストップまたはリスタートを受領したのに応じて、SS0エラーを解除した後、処理はステップS76に進む。
ステップS76において、CCI(I3C SDR)処理部61は、I3Cスレーブ13からストップまたはリスタートのどちらを受領したのかを判定する。
ステップS76において、CCI(I3C SDR)処理部61が、リスタートを受領したと判定した場合には処理はステップS52に戻り、ストップを受領したと判定した場合には処理はステップS51に戻って、以下、同様の処理が繰り返して行われる。
一方、ステップS53において、CCI(I3C SDR)処理部61が、HDRモード遷移すると判定した場合、処理はステップS77に進む。
ステップS77において、CCI(I3C SDR)処理部61は、ステップS53でHDRモードに遷移すると判定した信号に従って、モードを判定する。
ステップS77において、CCI(I3C SDR)処理部61は、ステップS53でHDRモードに遷移すると判定した信号がENTHDR0である場合、DDRモードに遷移すると判定し、処理はステップS78に進む。ステップS78において、CCI(I3C DDR)処理部62が、CCI(I3C DDR)処理(後述する図8)を実行した後、処理はステップS81に進む。
一方、ステップS77において、CCI(I3C SDR)処理部61は、ステップS53でHDRモードに遷移すると判定した信号がENTHDR1である場合、TSPモードに遷移すると判定し、処理はステップS79に進む。ステップS79においてCCI(I3C TSP)処理が実行された後、処理はステップS81に進む。
一方、ステップS77において、CCI(I3C SDR)処理部61は、ステップS53でHDRモードに遷移すると判定した信号がENTHDR2である場合、TSLモードに遷移すると判定し、処理はステップS80に進む。ステップS80においてCCI(I3C TSL)処理が実行された後、処理はステップS81に進む。
ステップS81において、CCI(I3C SDR)処理部61は、I3Cスレーブ13からストップまたはリスタートを受領するのを待機した後、ストップまたはリスタートを受領すると処理はステップS76に進み、以下、上述した処理が行われる。
図8は、CCIスレーブ18のCCI(I3C DDR)処理部62によりスレーブ側のCCI階層で行われるCCI(I3C DDR)処理(図7のステップS78)を説明するフローチャートである。
ステップS91において、CCI(I3C DDR)処理部62は、I3Cスレーブ13がI3Cマスタ12から送信されてくる信号を受信するのを待機する。そして、CCI(I3C DDR)処理部62は、I3Cマスタ12から送信されてきた信号をI3Cスレーブ13が受信し、その信号をI3Cスレーブ13から受領すると、処理はステップS92に進む。
ステップS92において、エラー対応部63は、ステップS91でCCI(I3C DDR)処理部62が受領した信号に基づくワードついて、エラーが発生しているエラー受信、または、正常に受信することができた正常ワード受信のどちらであるかを判定する。
ステップS92において、エラー対応部63が、エラー受信であると判定した場合、処理はステップS93に進み、エラー対応部63は、インデックスをクリアし、無効化する。その後、処理はステップS94に進み、CCI(I3C DDR)処理部62は、HDR ExitまたはHDR Restartを待機した後、I3Cスレーブ13からHDR ExitまたはHDR Restartを受領すると、処理はステップS116に進む。
一方、ステップS92において、エラー対応部63が、正常ワード受信であると判定した場合、処理はステップS95に進む。ステップS95において、CCI(I3C DDR)処理部62は、正常に受信したワードの意味を判定する。
ステップS95において、CCI(I3C DDR)処理部62が、ワードの意味がライトコマンドおよびスレーブアドレスであると判定した場合、処理はステップS96に進む。ステップS96において、CCI(I3C DDR)処理部62は、I3Cスレーブ13から次に受領するワードを送受信バイト数(LENGTH)として扱うものとし、処理はステップS91に戻る。
一方、ステップS95において、CCI(I3C DDR)処理部62が、ワードの意味が送受信バイト数であると判定した場合、処理はステップS97に進む。ステップS97において、CCI(I3C DDR)処理部62は、送受信バイト数の値(Lバイト)を保持する。
ステップS98において、CCI(I3C DDR)処理部62は、送受信バイト数について、所定バイト分の受領が完了したか否かを判定する。ステップS98において、CCI(I3C DDR)処理部62が、所定バイト分の受領が完了していないと判定した場合、処理はステップS96に進み、以下、上述した処理が行われる。
一方、ステップS98において、CCI(I3C DDR)処理部62が、所定バイト分の受領が完了したと判定した場合、処理はステップS99に進む。ステップS99において、CCI(I3C DDR)処理部62は、I3Cスレーブ13から次に受領するワードをサブアドレスとして扱うものとし、処理はステップS91に戻る。
一方、ステップS95において、CCI(I3C DDR)処理部62が、ワードの意味がサブアドレスであると判定した場合、処理はステップS100に進む。ステップS100において、CCI(I3C DDR)処理部62は、そのサブアドレスの値をインデックスに保持する。
ステップS101において、CCI(I3C DDR)処理部62は、サブアドレスについて、所定バイト分の受領が完了したか否かを判定する。ステップS101において、CCI(I3C DDR)処理部62が、所定バイト分の受領が完了していないと判定した場合には処理はステップS99に進み、以下、上述した処理が行われ、所定バイト分の受領が完了したと判定した場合には処理はステップS91に戻る。
一方、ステップS95において、CCI(I3C DDR)処理部62が、ワードの意味がライトデータであると判定した場合、処理はステップS102に進む。ステップS102において、CCI(I3C DDR)処理部62は、そのデータを、保持しているインデックス番地に書き込む。
ステップS103において、CCI(I3C DDR)処理部62は、インデックスをインクリメント(+1)し、ステップS104において、これまでに受信したライトデータが送受信バイト数(Lバイト)を超えたか否かを判定する。
ステップS104において、CCI(I3C DDR)処理部62が、ライトデータが送受信バイト数(Lバイト)を超えたと判定した場合、処理はステップS105に進む。ステップS105において、エラー対応部63は、SD1エラーが発生したことを検出し、エラー対応処理(後述する図9)を行った後、処理はステップS116に進む。
一方、ステップS104において、CCI(I3C DDR)処理部62が、ライトデータが送受信バイト数(Lバイト)を超えていないと判定した場合、処理はステップS106に進む。ステップS106において、CCI(I3C DDR)処理部62は、これまでに受信したライトデータが所定バイト数(Kバイト)を超えたか否かを判定する。
ステップS106において、CCI(I3C DDR)処理部62が、ライトデータが所定バイト数(Kバイト)を超えたと判定した場合、処理はステップS107に進む。ステップS107において、エラー対応部63は、SD2エラーが発生したことを検出し、エラー対応処理(後述する図9)を行った後、処理はステップS116に進む。一方、ステップS106において、CCI(I3C DDR)処理部62が、ライトデータが所定バイト数(Kバイト)を超えていないと判定した場合には処理はステップS91に戻る。
一方、ステップS95において、CCI(I3C DDR)処理部62が、ワードの意味がCRCワードであると判定した場合、処理はステップS94に進み、以下、上述した処理が行われる。
一方、ステップS95において、CCI(I3C DDR)処理部62が、ワードの意味がリードコマンドおよびスレーブアドレスであると判定した場合、処理はステップS108に進む。ステップS108において、CCI(I3C DDR)処理部62は、保持しているインデックス値が有効であるか否かを判定する。
一方、ステップS108において、CCI(I3C DDR)処理部62が、保持しているインデックス値が有効である(例えば、インデックスが正しく定義されている)と判定した場合、処理はステップS109に進む。ステップS109において、CCI(I3C DDR)処理部62は、保持しているインデックス番地のデータを読み込む。
ステップS110において、CCI(I3C DDR)処理部62は、ステップS109で読み込んだデータをI3Cスレーブ13に渡し、ステップS111において、インデックスをインクリメント(+1)する。
ステップS112において、CCI(I3C DDR)処理部62は、これまでに送信したリードデータが送受信バイト数(Lバイト)を超えたか否かを判定する。ステップS112において、CCI(I3C DDR)処理部62が、リードデータが送受信バイト数(Lバイト)を超えていないと判定した場合、処理はステップS113に進む。
ステップS113において、CCI(I3C DDR)処理部62は、I3Cスレーブ13からマスタアボートを受信した連絡があったか否かを判定する。ステップS113において、CCI(I3C DDR)処理部62が、I3Cスレーブ13からマスタアボートを受信した連絡がなかったと判定した場合、処理はステップS110に戻り、データの読み込みが続けて行われる。一方、ステップS113において、CCI(I3C DDR)処理部62が、I3Cスレーブ13からマスタアボートを受信した連絡があったと判定した場合、処理はステップS94に進み、以下、上述した処理が行われる。
一方、ステップS112において、リードデータが送受信バイト数(Lバイト)を超えたと判定された場合、処理はステップS114に進む。ステップS114において、CCI(I3C DDR)処理部62は、CRCワードを送信し、その後、処理はステップS94に進み、以下、上述した処理が行われる。
一方、ステップS108において、CCI(I3C DDR)処理部62が、保持しているインデックス値が有効でない(例えば、インデックスが未定義であって無効である)と判定した場合、処理はステップS115に進む。ステップS115において、エラー対応部63は、CCI(I3C SDR)処理部61が、保持しているインデックス値が有効でないと判定したことに基づいて、SD0エラーが発生したことを検出し、エラー対応処理(後述する図9)を行った後、処理はステップS116に進む。
ステップS116において、CCI(I3C DDR)処理部62は、I3Cスレーブ13からHDR RestartまたはHDR Exitのどちらを受領したのかを判定する。
ステップS116において、CCI(I3C DDR)処理部62が、HDR Restartを受領したと判定した場合、処理はステップS91に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS116において、CCI(I3C DDR)処理部62が、HDR Exitを受領したと判定した場合、処理は終了される。
図9は、図8のステップS105、ステップS107、またはステップS115において、CCIスレーブ18のエラー対応部63により行われるエラー対応処理を説明するフローチャートである。
ステップS121において、エラー対応部63は、I3Cスレーブ13に対して、エラー(SD0エラー、SD1エラー、またはSD2エラー)を解除するまでNACK応答を行うことを指令する。
ステップS122において、エラー対応部63は、HDR ExitまたはHDR Restartを待機した後、I3Cスレーブ13からHDR ExitまたはHDR Restartを受領すると、処理はステップS123に進む。
ステップS123において、エラー対応部63は、ステップS122でHDR ExitまたはHDR Restartを受領したのに応じて、エラー(SD0エラー、SD1エラー、またはSD2エラー)を解除した後、処理は終了される。
図10は、I3C(SDR)処理部41によりスレーブ側のI3C階層で行われるSDR通信処理を説明するフローチャートである。
例えば、スレーブデバイス23に電力が供給されてI3Cスレーブ13が起動すると処理が開始される。ステップS131において、I3C(SDR)処理部41は、I3Cマスタ12により通信のスタートまたはリスタートが行われて、その通信のスタートまたはリスタートを検出するまで処理を待機する。そして、I3C(SDR)処理部41が、通信のスタートまたはリスタートを検出すると、処理はステップS132に進む。
ステップS132において、I3C(SDR)処理部41は、通信のスタートまたはリスタートに続いて送信されてくる1ワード目を確認し、ステップS133において、その1ワード目が禁止アドレスであるか否かを判定する。
ステップS133において、I3C(SDR)処理部41が、1ワード目が禁止アドレスであると判定した場合、処理はステップS134に進む。ステップS134において、エラー対応部43は、I3C(SDR)処理部41により1ワード目が禁止アドレスであると判定されたことに基づいて、S0エラーが発生したことを検出する。
ステップS135において、エラー対応部43は、CCIスレーブ18に対してS0エラーが発生したことを通知する。
ステップS136において、I3C(SDR)処理部41は、HDR Exitを待機する。ステップS137において、I3C(SDR)処理部41は、HDR Exitを受信したか否かを判定し、HDR Exitを受信していないと判定した場合、処理はステップS136に戻り、HDR Exitの待機が継続される。
一方、ステップS137において、I3C(SDR)処理部41が、HDR Exitを受信したと判定した場合、処理はステップS138に進む。ステップS138において、エラー対応部43は、ステップS137でI3C(SDR)処理部41がHDR Exitを受信したのに応じて、S0エラーを解除した後、処理はステップS150に進む。
一方、ステップS133において、I3C(SDR)処理部41が、1ワード目が禁止アドレスでないと判定した場合、処理はステップS139に進む。ステップS139において、I3C(SDR)処理部41は、1ワード目がI3Cバス11に接続されている全てのI3Cスレーブ13を対象としたリードコマンド(7’h7E+R)であるか否かを判定する。
ステップS139において、I3C(SDR)処理部41が、1ワード目がリードコマンド(7’h7E+R)であると判定した場合、処理はステップS134に進んでS0エラーが発生したことが検出され、以下、上述した処理が行われる。
一方、ステップS139において、I3C(SDR)処理部41が、1ワード目がリードコマンド(7’h7E+R)でないと判定した場合、処理はステップS140に進む。ステップS140において、I3C(SDR)処理部41は、1ワード目がI3Cバス11に接続されている全てのI3Cスレーブ13を対象としたライトコマンド(7’h7E+W)であるか否かを判定する。
ステップS140において、I3C(SDR)処理部41が、1ワード目がライトコマンド(7’h7E+W)であると判定した場合、処理はステップS141に進み、確認応答処理部71による確認応答処理(後述する図11)が行われる。
ステップS142において、I3C(SDR)処理部41は、ステップS141の確認応答処理においてACK応答またはNACK応答のどちらが行われたかを判定する。
ステップS142において、I3C(SDR)処理部41が、ACK応答が行われたと判定した場合、処理はステップS143に進む。ステップS143において、I3C(SDR)処理部41は、次にリスタートが来たか否かを判定し、次にリスタートが来たと判定した場合には処理はステップS132に戻る。
一方、ステップS143において、I3C(SDR)処理部41が、次にリスタートが来ていないと判定した場合には処理はステップS144に進む。即ち、この場合、1ワード目はCCCであり、CCC受信処理部73によるCCC受信処理(後述する図13)が行われた後、処理はステップS150に進む。
一方、142において、I3C(SDR)処理部41が、NACK応答が行われたと判定した場合、処理はステップS145に進み、ストップまたはリスタートを待機した後、ストップまたはリスタートを受信すると、処理はステップS150に進む。
一方、ステップS140において、I3C(SDR)処理部41が、1ワード目がライトコマンド(7’h7E+W)でないと判定した場合、処理はステップS146に進む。即ち、この場合、1ワード目は、I3Cバス11に接続されている複数のI3Cスレーブ13のうちの、いずれか1台のアドレスであり、ステップS146において、I3C(SDR)処理部41は、その1ワード目が自分のアドレスと一致しているか否かを判定する。
ステップS146において、I3C(SDR)処理部41が、1ワード目が自分のアドレスと一致していないと判定した場合、処理はステップS145に進む。即ち、この場合、その1ワード目は他のI3Cスレーブ13のアドレスであるため、I3C(SDR)処理部41は、ステップS145において、ストップまたはリスタートを待機する。
一方、ステップS146において、I3C(SDR)処理部41が、1ワード目が自分のアドレスと一致していると判定した場合、処理はステップS147に進む。ステップS147において、I3C(SDR)処理部41は、自分のアドレスとともに送信されてきたコマンドが、ライトコマンドまたはリードコマンドのどちらであるかを判定する。
ステップS147において、I3C(SDR)処理部41が、ライトコマンドであると判定した場合、処理はステップS148に進み、ライト受信処理部72によるライト受信処理(後述する図12)が行われた後、処理はステップS150に進む。
一方、ステップS147において、I3C(SDR)処理部41が、リードコマンドであると判定した場合、処理はステップS149に進み、リード受信処理部74によるリード受信処理(後述する図14)が行われた後、処理はステップS150に進む。
ステップS150において、I3C(SDR)処理部41は、ストップまたはリスタートのどちらを受信したのかを判定する。
ステップS150において、I3C(SDR)処理部41が、リスタートを受信したと判定した場合には処理はステップS132に戻り、ストップを受信したと判定した場合には処理はステップS131に戻って、以下、同様の処理が繰り返して行われる。
図11は、図10のステップS141において、確認応答処理部71により行われる確認応答処理を説明するフローチャートである。
ステップS161において、確認応答処理部71は、I3Cスレーブ13として、上述したライトコマンド(7’h7E+W)に対してACK応答でよいか否かを判定する。例えば、確認応答処理部71は、コマンドやデータなどを正常に受信することができた場合、ACK応答を行うと判定し、コマンドやデータなどにエラーが発生している場合、ACK応答を行わない(即ち、NACK応答する)と判定する。
ステップS161において、確認応答処理部71が、I3Cスレーブ13としてACK応答でよいと判定した場合、処理はステップS162に進む。
ステップS162において、エラー対応部76は、ステップS161において確認応答処理部71によるACK応答でよいとした判定結果に対して、CCIスレーブ18からNACKに上書きする要求があるか否かを判定する。例えば、CCIスレーブ18は、上述したようにSS0エラーが解除されるまでは、I3Cの規格によらず、NACKに上書きするように要求する。
ステップS162において、エラー対応部76が、CCIスレーブ18からNACKに上書きする要求がないと判定した場合、処理はステップS163に進み、確認応答処理部71は、ACK応答を行った後、処理は終了される。
一方、ステップS161において、確認応答処理部71が、I3Cスレーブ13としてACK応答でよくない(即ち、NACK応答する)と判定した場合、処理はステップS164に進む。同様に、ステップS162において、エラー対応部76が、CCIスレーブ18からNACKに上書きする要求があると判定した場合、処理はステップS164に進む。ステップS164において、確認応答処理部71は、NACK応答を行った後、処理は終了される。
図12は、図10のステップS148において、ライト受信処理部72により行われるライト受信処理を説明するフローチャートである。
ステップS171において、ライト受信処理部72は、受信したスレーブアドレスおよびライトコマンドをCCIスレーブ18へ送付する。
ステップS172において、確認応答処理部71による確認応答処理(上述した図11)が行われ、ステップS173において、ライト受信処理部72は、その確認応答処理においてACK応答またはNACK応答のどちらが行われたかを判定する。
ステップS173において、ライト受信処理部72が、ACK応答が行われたと判定した場合、処理はステップS174に進む。ステップS174において、ライト受信処理部72は、次のワードをライトデータとして受信し、CCIスレーブ18へ送付する。
ステップS175において、ライト受信処理部72は、ステップS173で受信したライトデータにパリティエラーがあるか否かを判定する。
ステップS175において、パリティエラーがないと判定された場合、処理はステップS176に進み、ライト受信処理部72は、次にリスタートまたはストップが来たか否かを判定する。ステップS176において、ライト受信処理部72が、次にリスタートまたはストップが来ていないと判定した場合、処理はステップS174に戻り、以下、同様の処理が繰り返される。
一方、ステップS176においてリスタートまたはストップが来たと判定された場合、処理は終了される。
一方、ステップS175において、ライト受信処理部72が、パリティエラーがあると判定した場合、処理はステップS177に進む。ステップS177において、エラー対応部76は、ライト受信処理部72によりパリティエラーがあると判定されたことに基づいて、S2エラーが発生したことを検出する。
ステップS178において、エラー対応部76は、CCIスレーブ18に対してS2エラーが発生したことを通知する。
ステップS179において、ライト受信処理部72は、ストップまたはリスタートを待機し、ステップS180において、ストップまたはリスタートを受信したか否かを判定する。
ステップS180において、ライト受信処理部72が、ストップまたはリスタートを受信していないと判定した場合、処理はステップS179に戻り、ストップまたはリスタートの待機が継続される。
一方、ステップS180において、ライト受信処理部72が、ストップまたはリスタートを受信したと判定した場合、処理はステップS181に進む。ステップS181において、エラー対応部43は、ステップS180でライト受信処理部72がストップまたはリスタートを受信したのに応じて、S2エラーを解除した後、処理は終了される。
一方、ステップS173において、ライト受信処理部72が、NACK応答が行われたと判定した場合、処理はステップS182に進む。ステップS182において、ライト受信処理部72は、ストップまたはリスタートを待機した後、ストップまたはリスタートを受信すると、処理は終了される。
図13は、図10のステップS144において、CCC受信処理部73により行われるCCC受信処理を説明するフローチャートである。
ステップS191において、CCC受信処理部73は、CCCにパリティエラーがあるか否かを判定する。
ステップS191において、CCC受信処理部73が、パリティエラーがあると判定した場合、処理はステップS192に進む。ステップS192において、エラー対応部76は、CCC受信処理部73によりパリティエラーがあると判定されたのに基づいて、S1エラーが発生したことを検出する。
ステップS193において、エラー対応部76は、CCIスレーブ18に対してS1エラーが発生したことを通知する。
ステップS194において、CCC受信処理部73は、HDR Exitを待機し、ステップS195において、CCC受信処理部73は、HDR Exitを受信したか否かを判定する。ステップS195において、CCC受信処理部73が、HDR Exitを受信していないと判定した場合、処理はステップS194に戻り、HDR Exitの待機が継続される。
一方、ステップS195において、CCC受信処理部73が、HDR Exitを受信したと判定した場合、処理はステップS196に進む。ステップS196において、エラー対応部76は、ステップS195でCCC受信処理部73がHDR Exitを受信したのに応じて、S1エラーを解除した後、処理は終了される。
一方、ステップS191において、CCC受信処理部73が、パリティエラーがないと判定した場合、処理はステップS197に進む。ステップS197において、CCC受信処理部73は、CCCによる指示内容を判定する。
ステップS197において、CCC受信処理部73が、CCCによる指示内容がダイナミックアドレスの割り当てを指示するCCC(ENTDAA)である場合、処理はステップS198に進む。
ステップS198において、ダイナミックアドレスを割り当てるCCC(ENTDAA)処理が行われる。
ステップS199において、エラー対応部76は、ステップS198のCCC(ENTDAA)処理において、S3エラーの発生を検出したか否かを判定する。
ステップS199において、エラー対応部76が、S3エラーの発生を検出したと判定した場合、処理はステップS200に進む。ステップS200において、エラー対応部76は、CCIスレーブ18に対してS3エラーの発生を検出したことを通知する。
一方、ステップS199において、エラー対応部76が、S3エラーの発生を検出しなかったと判定した場合、処理はステップS201に進む。ステップS201において、エラー対応部76は、ステップS198のCCC(ENTDAA)処理において、S4エラーの発生を検出したか否かを判定する。
ステップS201において、エラー対応部76が、S4エラーの発生を検出したと判定した場合、処理はステップS200に進む。この場合、ステップS200において、エラー対応部76は、CCIスレーブ18に対してS4エラーを検出したことを通知する。
ステップS200の処理後、処理はステップS202に進む。同様に、ステップS201において、エラー対応部76が、S4エラーの発生を検出しなかったと判定した場合、即ち、S3エラーおよびS4エラーのどちらの発生も検出されていない場合、処理はステップS202に進む。
ステップS202において、CCC受信処理部73は、ストップを受信したか否かを判定する。ステップS202において、CCC受信処理部73が、ストップを受信していないと判定した場合には処理はステップS198に戻り、以下、同様の処理が繰り返され、ストップを受信したと判定した場合には処理は終了される。
一方、ステップS197において、CCC受信処理部73が、CCCによる指示内容が各種の情報の送信を要求して取得することを指示するCCC(GET系)である場合、処理はステップS203に進む。
ステップS203において、各種の情報の送信を要求して取得するCCC(GET系)処理が行われる。
ステップS204において、エラー対応部76は、ステップS203のCCC(GET系)処理において、S5エラーの発生を検出したか否かを判定する。
ステップS204において、エラー対応部76が、S5エラーの発生を検出したと判定した場合、処理はステップS205に進む。ステップS205において、エラー対応部76は、CCIスレーブ18に対してS5エラーを検出したことを通知する。
ステップS205の処理後、または、ステップS204でS5エラーが検出されなかったと判定された場合、処理はステップS206に進む。ステップS206において、CCC受信処理部73は、ストップまたはリスタートを受信したか否かを判定する。
ステップS206において、CCC受信処理部73が、ストップまたはリスタートを受信していないと判定した場合には処理はステップS203に戻り、以下、同様の処理が繰り返され、ストップまたはリスタートを受信したと判定した場合には処理は終了される。
一方、ステップS197において、CCC受信処理部73が、CCCによる指示内容がHDRモードを開始すること指示するCCC(ENTHDRx)である場合、処理はステップS207に進む。
ステップS207において、HDR開始処理部75によりHDRモードを開始するCCC(ENTHDRx)処理が行われる。
ステップS208では、ステップS207のCCC(ENTHDRx)処理において、HDR Exitと、ストップまたはリスタートとを受信したか否かが判定される。そして、HDR Exitと、ストップまたはリスタートとを受信したと判定されるまで、CCC(ENTHDRx)処理が継続して行われ、HDR Exitと、ストップまたはリスタートとを受信したと判定されると処理は終了される。
なお、図13では、CCC(ENTDAA)処理、CCC(GET系)処理、およびCCC(ENTHDRx)処理について例示したが、その他、多数のCCCが用いられる。
図14は、図10のステップS149において、リード受信処理部74により行われるリード受信処理を説明するフローチャートである。
ステップS211において、リード受信処理部74は、受信したスレーブアドレスおよびリードコマンドをCCIスレーブ18へ送付する。
ステップS212において、確認応答処理部71による確認応答処理(上述した図11)が行われ、ステップS213において、リード受信処理部74は、その確認応答処理においてACK応答またはNACK応答のどちらが行われたかを判定する。
ステップS213において、リード受信処理部74が、ACK応答が行われたと判定した場合、処理はステップS214に進む。ステップS214において、リード受信処理部74は、CCIスレーブ18から受領したリードデータをI3Cマスタ12へ送信する。
ステップS215において、リード受信処理部74は、送信中のI3Cバス11上の信号が送信データと一致しているか否かを判定する。
ステップS215において、リード受信処理部74が、送信中のI3Cバス11上の信号が送信データと一致していると判定した場合、処理はステップS216に進む。ステップS216において、リード受信処理部74は、CCIスレーブ18から次のリードデータを受領したか否かを判定する。
ステップS216において、リード受信処理部74が、CCIスレーブ18から次のリードデータを受領していないと判定した場合、処理はステップS217に進む。ステップS217において、リード受信処理部74は、データエンド(End-of-Data)をI3Cマスタ12に送信する。その後、リード受信処理部74は、ストップまたはリスタートを待機した後、ストップまたはリスタートを受信すると、処理は終了される。
一方、ステップS216において、リード受信処理部74が、CCIスレーブ18から次のリードデータを受領したと判定した場合、処理はステップS218に進む。ステップS218において、リード受信処理部74は、I3Cマスタ12からのアボート要求を受領したか否かを判定する。
ステップS218において、リード受信処理部74が、I3Cマスタ12からのアボート要求を受領していないと判定した場合、処理はステップS214に戻り、以下、同様の処理が繰り返される。
一方、ステップS218において、リード受信処理部74が、I3Cマスタ12からのアボート要求を受領したと判定した場合、処理はステップS219に進む。ステップS219において、リード受信処理部74は、アボート要求を受領したことをCCIスレーブ18へ通知する。その後、リード受信処理部74は、ストップまたはリスタートを待機した後、ストップまたはリスタートを受信すると、処理は終了される。
一方、ステップS215において、リード受信処理部74が、送信中のI3Cバス11上の信号が送信データと一致していないと判定した場合、処理はステップS220に進む。ステップS220において、エラー対応部76は、ステップS215でリード受信処理部74により送信中のI3Cバス11上の信号が送信データと一致していないと判定されたことに基づいて、S6エラーが発生したことを検出する。
ステップS221において、エラー対応部76は、CCIスレーブ18に対してS6エラーが発生したことを通知し、ステップS222において、リード受信処理部74は、リードデータの送信を停止する。
ステップS223において、リード受信処理部74は、ストップまたはリスタートを待機し、ステップS224において、ストップまたはリスタートを受信したか否かを判定する。ステップS224において、リード受信処理部74が、ストップまたはリスタートを受信していないと判定した場合、処理はステップS223に戻り、ストップまたはリスタートの待機が継続される。
一方、ステップS224において、リード受信処理部74が、ストップまたはリスタートを受信したと判定した場合、処理はステップS225に進む。ステップS225において、エラー対応部43は、ステップS224でリード受信処理部74がストップまたはリスタートを受信したのに応じて、S6エラーを解除した後、処理は終了される。
一方、ステップS213において、リード受信処理部74が、NACK応答が行われたと判定した場合、処理はステップS226に進む。ステップS226において、リード受信処理部74は、ストップまたはリスタートを待機する。そして、リード受信処理部74は、ストップまたはリスタートを受信すると、処理は終了される。
図15は、図13のステップS207において、HDR開始処理部75により行われるHDR開始処理を説明するフローチャートである。
ステップS231において、HDR開始処理部75は、受信したCCC(ENTHDRx)に従って、HDRのモードを判定する。
ステップS231において、HDR開始処理部75が、受信したCCCがENTHDR0であると判定した場合、DDRモードを開始すると判定し、処理はステップS232に進む。ステップS232において、HDR開始処理部75は、CCIスレーブ18に対してDDRモードを開始することを通知し、ステップS233において、I3C(DDR)処理部42によりDDR処理(後述する図16)が行われた後、処理は終了される。
一方、ステップS231において、HDR開始処理部75が、受信したCCCがENTHDR1であると判定した場合、TSPモードを開始すると判定し、処理はステップS234に進む。ステップS234において、HDR開始処理部75は、CCIスレーブ18に対してTSPモードを開始することを通知し、ステップS235においてTSP処理が行われた後、処理は終了される。
一方、ステップS231において、HDR開始処理部75が、受信したCCCがENTHDR2であると判定した場合、TSLモードを開始すると判定し、処理はステップS236に進む。ステップS236において、HDR開始処理部75は、CCIスレーブ18に対してTSLモードを開始することを通知し、ステップS237においてTSL処理が行われた後、処理は終了される。
一方、ステップS231において、HDR開始処理部75が、受信したCCCが、ENTHDR0,ENTHDR1、およびENTHDR2以外の、その他であると判定した場合、処理はステップS238に進む。ステップS238において、HDR開始処理部75は、HDR Exitを待機した後、HDR Exitを受信すると、処理は終了される。
図16は、図15のステップS233において、I3C(DDR)処理部42によりスレーブ側のI3C階層で行われるI3C(DDR)処理を説明するフローチャートである。
ステップS241において、I3C(DDR)処理部42は、CCC(ENTHDRx)に続けて送信されてくるプリアンブルを確認し、プリアンブルを判定する。
ステップS241において、I3C(DDR)処理部42が、プリアンブルが2’b01であると判定した場合、処理はステップS242に進む。
ステップS242において、I3C(DDR)処理部42は、コマンドを待機し、コマンドを受信すると処理はステップS243に進む。ステップS243において、I3C(DDR)処理部42は、スレーブアドレスを待機し、スレーブアドレスを受信すると処理はステップS244に進む。
ステップS244において、I3C(DDR)処理部42は、ステップS242で受信したコマンド、および、ステップS243で受信したスレーブアドレスに、パリティエラーが発生しているか否かを判定する。ステップS244において、I3C(DDR)処理部42が、パリティエラーが発生していないと判定した場合、処理はステップS245に進む。
ステップS245において、I3C(DDR)処理部42は、ステップS243で受信したアドレスが、自分のアドレスと一致しているか否かを判定し、自分のアドレスと一致していると判定した場合、処理はステップS246に進む。ステップS246において、I3C(DDR)処理部42は、ステップS242で受信したコマンド、および、ステップS243で受信したスレーブアドレスをCCIスレーブ18へ送付する。
ステップS247において、I3C(DDR)処理部42は、ステップS242で受信したコマンドが、ライトコマンドまたはリードコマンドのどちらであるかを判定する。
ステップS247において、I3C(DDR)処理部42が、ライトコマンドであると判定した場合、処理はステップS248に進み、DDRライト処理部81によりDDRライト処理が行われた後、処理はステップS252に進む。
一方、ステップS247において、I3C(DDR)処理部42が、リードコマンドであると判定した場合、処理はステップS249に進み、DDRリード処理部82によりDDRリード処理が行われた後、処理はステップS252に進む。
一方、ステップS244において、I3C(DDR)処理部42が、パリティエラーが発生していると判定した場合、処理はステップS250に進み、エラー対応部84によるパリティエラー対応処理(後述する図21)が行われた後、処理はステップS252に進む。
一方、ステップS241において、I3C(DDR)処理部42が、プリアンブルが2'b00であると判定された場合、処理はステップS252に進む。
一方、ステップS241において、I3C(DDR)処理部42が、プリアンブルが2’b01および2’b00以外の、その他であると判定した場合、処理はステップS251に進み、エラー対応部84によるフレーミングエラー対応処理(後述する図20)が行われた後、処理はステップS252に進む。
ステップS252において、I3C(DDR)処理部42は、HDR ExitまたはHDR Restartを待機する。そして、I3C(DDR)処理部42がHDR ExitまたはHDR Restartを受信すると、処理はステップS253に進む。
ステップS253において、I3C(DDR)処理部42は、ステップS252でHDR ExitまたはHDR Restartのどちらを受信したのかを判定する。ステップS253において、I3C(DDR)処理部42が、HDR Restartを受信したと判定した場合には処理はステップS241に戻って、以下、同様の処理が行われ、HDR Exitを受信したと判定した場合には処理は終了される。
図17は、図16のステップS248において、DDRライト処理部81により行われるDDRライト処理を説明するフローチャートである。
ステップS261において、DDRライト処理部81は、プリアンブルを確認し、プリアンブルを判定する。
ステップS261において、DDRライト処理部81が、プリアンブルが2’b10であると判定した場合、処理はステップS262に進む。
ステップS262において、DDRライト処理部81は、ライトデータを待機し、ライトデータを受信すると処理はステップS263に進む。
ステップS263において、DDRライト処理部81は、ステップS262で受信したライトデータに、パリティエラーが発生しているか否かを判定する。ステップS263において、DDRライト処理部81が、パリティエラーが発生していないと判定した場合、処理はステップS264に進む。
ステップS264において、DDRライト処理部81は、ステップS262で受信したライトデータをCCIスレーブ18へ送付する。
ステップS265において、DDRライト処理部81は、プリアンブルを確認し、プリアンブルを判定する。
ステップS265において、DDRライト処理部81が、プリアンブルが2’b11であると判定した場合、処理はステップS262に戻り、以下、ライトデータの受信が継続して行われる。
一方、ステップS265において、DDRライト処理部81が、プリアンブルが2’b01であると判定した場合、処理はステップS266に進む。ステップS266において、DDRライト処理部81は、CRCを待機し、CRCを受信すると処理はステップS267に進む。
ステップS267において、DDRライト処理部81は、ヘッダ(4’hC)を受信したか否かを判定する。ステップS267において、DDRライト処理部81が、ヘッダ(4’hC)を受信したと判定した場合、処理はステップS268に進む。
ステップS268において、DDRライト処理部81は、ステップS266で受信したCRCにCRCエラーが発生しているか否かを判定する。ステップS268において、DDRライト処理部81が、CRCエラーが発生していないと判定した場合、処理はステップS269に進む。
ステップS269において、DDRライト処理部81は、ステップS266で受信したCRCのワードをCCIスレーブ18へ送付した後、処理は終了される。
一方、ステップS268において、DDRライト処理部81が、CRCエラーが発生していると判定した場合、処理はステップS270に進む。ステップS270において、エラー対応部84によるCRCエラー対応処理(後述する図22)が行われた後、処理は終了される。
一方、ステップS267において、DDRライト処理部81が、ヘッダ(4’hC)を受信していないと判定した場合、処理はステップS271に進む。ステップS271において、エラー対応部84によるフレーミングエラー対応処理(後述する図20)が行われた後、処理は終了される。
一方、ステップS265において、DDRライト処理部81が、プリアンブルが2’b00であると判定した場合、処理は終了される。
一方、ステップS265において、DDRライト処理部81が、プリアンブルが2'b11,2'b01,2’b00以外の、その他であると判定した場合、処理はステップS272に進む。ステップS272において、エラー対応部84によるフレーミングエラー対応処理(後述する図20)が行われた後、処理は終了される。
一方、ステップS263において、DDRライト処理部81が、パリティエラーが発生していると判定した場合、処理はステップS273に進む。ステップS273において、エラー対応部84によるパリティエラー対応処理(後述する図21)が行われた後、処理は終了される。
ステップS261において、DDRライト処理部81が、プリアンブルが2’b00であると判定した場合、処理は終了される。
ステップS261において、DDRライト処理部81が、プリアンブルが2’b10,2’b00以外の、その他であると判定した場合、処理はステップS274に進む。ステップS274において、エラー対応部84によるフレーミングエラー対応処理(後述する図20)が行われた後、処理は終了される。
図18は、図16のステップS249において、DDRリード処理部82により行われるDDRリード処理を説明するフローチャートである。
ステップS281において、DDR確認応答処理部83によるDDR確認応答処理が行われ、ステップS282において、DDRリード処理部82は、その確認応答処理においてACK応答またはNACK応答のどちらが行われたかを判定する。
ステップS282において、DDRリード処理部82が、ACK処理が行われたと判定した場合、処理はステップS283に進む。ステップS283において、DDRリード処理部82は、CCIスレーブ18から受領したリードデータをI3Cマスタ12へ送信する。
ステップS284において、DDRリード処理部82は、CCIスレーブ18から次のリードデータを受領したか否かを判定する。
ステップS284において、DDRリード処理部82が、CCIスレーブ18から次のリードデータを受領したと判定した場合、処理はステップS285に進み、プリアンブル(preamble[1]=1’b1)を送信する。
ステップS286において、DDRリード処理部82は、受信したプリアンブル(preamble[0])の受信は、1’b1または1’b0のどちらであるかを判定する。
ステップS286において、DDRリード処理部82が、1’b1であると判定した場合、処理はステップS283に戻り、以下、同様の処理が繰り返して行われ、1’b0であると判定した場合、処理は終了される。
一方、ステップS284において、DDRリード処理部82が、CCIスレーブ18から次のリードデータを受領していないと判定した場合、処理はステップS287に進む。ステップS287において、DDRリード処理部82は、プリアンブル(2’b01)を送信し、ステップS288においてCRCワードを送信した後、処理は終了される。
一方、ステップS282において、DDRリード処理部82が、NACK処理が行われたと判定した場合、処理は終了される。
図19は、図18のステップS281において、DDR確認応答処理部83により行われるDDR確認応答処理を説明するフローチャートである。
ステップS291において、DDR確認応答処理部83は、I3Cスレーブ13として、上述したリードコマンドに対してACK応答でよいか否かを判定する。例えば、DDR確認応答処理部83は、コマンドやデータなどを正常に受信することができた場合、ACK応答を行うと判定し、コマンドやデータなどにエラーが発生している場合、ACK応答を行わない(即ち、NACK応答する)と判定する。
ステップS291において、DDR確認応答処理部83が、I3Cスレーブ13としてACK応答でよいと判定した場合、処理はステップS292に進む。
ステップS292において、エラー対応部84は、ステップS291においてDDR確認応答処理部83によるACK応答でよいとした判定結果に対して、CCIスレーブ18からNACKに上書きする要求があるか否かを判定する。例えば、CCIスレーブ18は、上述したようにSS0エラーが解除されるまでは、I3Cの規格によらず、NACKに上書きするように要求する。
ステップS292において、エラー対応部84が、CCIスレーブ18からNACKに上書きする要求がないと判定した場合、処理はステップS293に進み、DDR確認応答処理部83は、ACK応答を行う。
一方、ステップS291において、DDR確認応答処理部83が、I3Cスレーブ13としてACK応答でよくない(即ち、NACK応答する)と判定した場合、処理はステップS294に進む。同様に、ステップS292において、エラー対応部84が、CCIスレーブ18からNACKに上書きする要求があると判定した場合、処理はステップS294に進む。ステップS294において、確認応答処理部71は、NACK応答を行った後、処理は終了される。
図20は、図16のステップS251、並びに、図17のステップS271,S272、およびS274において、エラー対応部84により行われるフレーミングエラー対応処理を説明するフローチャートである。
ステップS301において、エラー対応部84は、CCIスレーブ18に、フレーミングエラーを通知し、処理は終了される。
図21は、図16のステップS250、および、図17のステップS273において、エラー対応部84により行われるパリティエラー対応処理を説明するフローチャートである。
ステップS311において、エラー対応部84は、CCIスレーブ18に、パリティエラーを通知し、処理は終了される。
図22は、図17のステップS270において、エラー対応部84により行われるCRCエラー対応処理を説明するフローチャートである。
ステップS321において、エラー対応部84は、CCIスレーブ18に、CRCエラーを通知し、処理は終了される。
以上のように、I3Cバス11を利用したI3C通信システム21において、スレーブデバイス23では、I3Cスレーブ13の階層でエラーを検出すると、そのエラーを検出したワードから、I3Cスレーブ13が復帰し、SDRモードおよびDDRモードともにスレーブアドレスとライトコマンドとを受信するまで、CCIスレーブ18の階層は、I3Cスレーブ13からの一切の受信データを無視する。これは、ライト転送には、必ずサブアドレスが付いているからである。
なお、本実施の形態の第1の変形例として、例えば、スレーブデバイス23では、I3Cスレーブ13がエラーを検出すると、そのエラーを検出したワードからI3Cスレーブ13が復帰して、CCIスレーブ18のCCI(I3C SDR)処理部61およびCCI(I3C DDR)処理部62がともにスレーブアドレスおよびライトコマンドを受信するまで、I3Cスレーブ13からの一切の受信データを無視するようにしてもよい。これは、スレーブアドレスおよびライトコマンドの後には必ず、サブアドレスが付随しているからである。
この間、I3Cスレーブ13は、I3C規格に沿ってACK応答またはNACK応答を行おうとするが、例外的に、CCI(I3C SDR)のスレーブアドレスおよびリードコマンドの次のACK応答は、CCIスレーブ18によりNACK応答に上書きされる。このような上書きを行うのは、他の箇所、例えば、7E+Wの次にNACK応答すると、I3Cマスタ12およびI3Cスレーブ13が1対1の構成である場合、意図せずに、I3C規格で規定されているM2エラー(No response to Broadcast Address)が検出されて誤動作するからである。なお、必要に応じて、特定のコマンドだけは、NACK応答に上書きしないように実装してもよい。
また、本実施の形態の第2の変形例として、I3Cバス11を利用したI3C通信システム21において、スレーブデバイス23は、I3Cスレーブ13の階層でエラーを検出したら、そのエラーを検出したワードからI3Cスレーブ13が復帰し、SDRモードおよびDDRモードともに次のスタートまたはリスタートと、スレーブアドレスと、ライトコマンドと、インデックスとを受信するまで、CCIスレーブ18の階層は、I3Cスレーブ13からの一切の受信データを無視する。この間、I3Cスレーブ13は、I3C規格に沿ってACK応答またはNACK応答を行おうとするが、例外的に、CCI(I3C SDR)のスレーブアドレスおよびリードコマンドの次のACK応答は、CCIスレーブ18によりNACK応答に上書きされる。これにより、インデックスは確実に受信することができる。
なお、SD0エラー、SD1エラー、またはSD2エラーの発生が検出されたときに、I3Cスレーブ13が、スレーブアボートを出力して、I3Cスレーブ13側から通信を打ち切るようにしてもよい。
<エラー対策について>
図23乃至図30を参照して、インデックスのエラー対策、送受信バイト数以上のデータの送受信エラー対策、およびFIFOオーバーフロー対策について、さらに説明する。
まず、図23を参照して、インデックスのエラーについて説明する。
図23には、一例として、CCI(I3C DDR)規格での、ランダムロケーションからのシーケンシャルリード(Sequential Read Starting from a Random Location with 8-bit length and 8-bit index ( odd byte read transfer ))において発生するパリティエラーが示されている。ここで、I3Cスレーブ13は、I3C規格上のパリティエラーをサブアドレス(Sub Address[7:0])の受信中に検出した場合、I3C規格上、HDR ExitまたはHDR Restartを検出するまで、受信信号を一切無視することになる。このため、CCIスレーブ18は、サブアドレス以降について、図23に示すように、HDR Restartまで一切の信号を受信することができず、例えば、送受信バイト数(LENGTH)を更新することができない。
一方、I3Cスレーブ13は、次のHDR Restartでエラーから復帰し、リードコマンドを受信し、そのリードコマンドをCCIスレーブ18に通知する。しかしながら、CCIスレーブ18は、インデックスを更新できなかったため、どのサブアドレスに対するリードコマンドであるのか正しく解釈することができない。その結果、以前に設定したレジスタアドレスに対するリードデータをI3Cマスタ12に送信してしまう恐れがある。
さらに、インデックスの更新が、以前に設定したサブアドレスに基づいて計算されてしまうため、次にカレントリードが続いた場合、そのまま間違ったリードデータをI3Cマスタ12に送信することになる。即ち、1つのエラーによって連鎖的にエラーが発生してしまうが、その値が誤っていることにI3Cマスタ12が気付くことは非常に困難である。
また、送受信バイト数以上のデータの送受信エラーについて説明する。
CCI(I3C DDR)では、CCI(I3C SDR)にも使用されているサブアドレスに加えて、送受信バイト数(LENGTH)が新たにフレーム構造に追加された。これは、送受信バイト数が不明な場合、I3C DDRの規格上、I3Cスレーブ13が、リード転送を終了させることができないからである。
ここで、何らかのエラーによって、送受信バイト数(LENGTH)の値と、実際の送受信バイト数とが一致しない場合、例えば、実際の送受信バイト数が、送受信バイト数(LENGTH)の値よりも多い、または、少ないことが発生する可能性がある。このうち、送受信バイト数(LENGTH)の値よりも少ないバイト数を送受信することは、CCI(I3C DDR)のフレーム構造上、正常な転送時にも存在するとともに、I3Cマスタ12は、優先度の関係などの要因で意図的に通信を打ち切ることがあるため、エラーとして扱うことは適切ではない。
これに対し、送受信バイト数(LENGTH)の値よりも多いバイト数を送受信する場合には、深刻なエラーを引き起こす可能性があるため、エラーとして扱って、通信を安全に停止させる必要がある。例えば、I3Cマスタ12を制御するソフトウエアのデバイスディスクリプタが、予め送受信バイト数(LENGTH)分だけメモリ上に確保したデータバッファを超えるデータを受信した場合、メモリの領域外のアクセスが発生するため、システムが停止する恐れがある。
また、FIFOオーバーフローについて説明する。
I3C規格は、例えば、一度の送受信でリードできる最大転送バイト数(MRL:Max Read Length)、および、一度の送受信でライトできる最大転送バイト数(MWL:Max Write Length)を、各I3Cスレーブ13が定義し、その値をI3Cマスタ12が取得することができる。しかしながら、I3Cマスタ12が、意図せず、最大転送バイト数(MWL:Max Write Length)を超えるライトデータを送信した場合、I3Cスレーブ13では、FIFOがオーバーフローし、正しくレジスタへデータが書き込めない恐れがある。
そこで、I3C通信システム21では、図24および図25に示すように、インデックスのエラー、送受信バイト数以上のデータの送受信エラー、およびFIFOオーバーフローに対する検出方法および復帰方法を定義する。
まず、インデックスのエラー対策について説明する。
例えば、スレーブデバイス23では、図24に示すように、CCIスレーブ18の階層において新たに定義されるSD0エラーが利用される。即ち、I3Cスレーブ13は、I3C DDRで規定されているフレーミングエラー、パリティエラー、またはCRC5エラーの発生を検出すると、それぞれのエラーが発生したことをCCIスレーブ18のCCI(I3C DDR)処理部62に通知し、CCIスレーブ18は、それまで記憶していたインデックスの情報をクリアする。
そして、CCIスレーブ18は、インデックスがクリアされた状態で、I3Cスレーブ13がリードコマンドを受信した場合、SD0エラーの発生を検出すること(図8のステップS115)ができる。このように、SD0エラーの発生を検出すると、図24に示すように、CCIスレーブ18は、ストップまたはリスタートを受信するまで、一切の通信を無視する。
このとき、I3Cスレーブ13がACK応答またはNACK応答をする場合には、I3Cの規定によらず、SD0エラーから復帰するまでは、CCIスレーブ18は、I3Cスレーブ13に対してNACK応答をするように指令(図9のステップS121)する。
また、図26には、SD0エラーの動作例が示されている。図示するように、CCIスレーブ18は、HDR Restartの後のリードコマンドを受信する時に、SD0エラーを検出することができるようになるため、誤ったサブアドレスに対するリードデータをI3Cマスタ12に送信することは回避される。
また、マスタデバイス22において、I3Cマスタ12は、フレーミングエラー、パリティエラー、またはCRC5エラーの発生を検出した場合、あるいは、NACK応答を受信した場合、エラーの検出またはNACK応答の受信をCCI(I3C DDR)処理部52に通知(図5のステップS20およびS21)する。これに応じて、CCI(I3C DDR)処理部52は、それまで記憶していたインデックス情報をクリアする。
その後、I3Cマスタ12は、I3C規格で定める手順に従ってエラーから復帰(図5のステップS23)する。そして、CCI(I3C DDR)処理部52は、次の転送の開始時には、CCI(SDR)カレントリード(”Sequential Read Starting from the Current Location” or “Single Read Starting from the Current Location”)を使用することを禁止する。即ち、I3Cマスタ12側でエラー発生時にはインデックスがクリアされており、I3Cスレーブ13との間でインデックスにずれが生じてしまい、意図したレジスタのリード値を得ることができないためである。さらに、CCIスレーブ18において、エラー発生時にインデックスがクリアされており、次の転送でカレントリードを使用した場合には、必ずSS0エラーが発生してしまうため、その使用が禁止される。
図27には、カレントリードによりSS0エラーが発生する動作例が示されている。
図27に示すように、I3Cスレーブ13においてパリティエラーが検出されると、CCIスレーブ18のインデックスがクリアされる。その後、I3Cスレーブ13は、HDR Restartを受信すると、パリティエラーが解除される。そして、CCIスレーブ18は、SD0エラーを検出してNACK応答し、HDR Exitを受信することで、SD0エラーが解除される。ここで、次の転送でカレントリードを使用した場合には、必ずSS0エラーが発生することになる。そのため、上述したように、カレントリードの使用が禁止される。
次に、送受信バイト数以上のデータの送受信エラー対策について説明する。
例えば、スレーブデバイス23では、上述の図24に示すように、CCIスレーブ18の階層において新たに定義されるSD1エラーが利用される。即ち、I3Cスレーブ13は、送受信バイト数(LENGTH)の次の1バイト目のライトデータの受信後、さらにライトデータが続く場合に、SD1エラー(Write over LENGTH Error)を検出する。具体的には、送受信バイト数(LENGTH)の次の1バイト目のライトデータの受信後、次に受信したプリアンブルが、データの受信が継続することを示す2’b11(Data follows)の場合、SD1エラーが発生したことが検出される。
そして、CCIスレーブ18は、SD1エラーの発生を検出した後、インデックスをクリアし、HDR ExitまたはHDR Restartを受信するまで、一切の通信を無視する。従って、送受信バイト数(LENGTH)の次の1バイトを超えた受信データはレジスタへ書き込まれることが回避される。このとき、I3Cスレーブ13がACK応答またはNACK応答をする場合には、I3Cの規定によらず、SD1エラーから復帰するまでは、CCIスレーブ18は、I3Cスレーブ13に対してNACK応答をするように指令(図9のステップS121)する。
また、図28には、SD1エラーの動作例が示されている。図示するように、送受信バイト数(LENGTH)を超えてライトデータが続く場合に、SD1エラーの発生が検出され、インデックスをクリアした後、HDR ExitまたはHDR Restartを受信することで、SD1エラーが解除される。
また、マスタデバイス22において、上述の図25に示すように、新たに定義されるMD0エラーが利用される。即ち、CCI(I3C DDR)処理部52は、送受信バイト数(LENGTH)の次の1バイト目のリードデータの受信後、さらにリードデータが続く場合に、MD0エラー(Read over LENGTH Error)を検出する。具体的には、送受信バイト数(LENGTH)の次の1バイト目のリードデータの受信後、次に受信したプリアンブルが、データの受信が継続することを示す1’b1の場合、MD0エラーが発生したことが検出される。
そして、I3Cマスタ12のCCI(I3C DDR)処理部52は、MD0エラーの発生を検出した後、インデックスをクリアする。さらに、マスタアボートを送信した後、HDR ExitまたはHDR Restartを送信する。このように、HDR ExitまたはHDR Restartを送信した後、MD0エラーは解除され、I3Cマスタ12は、通常動作に復帰することができる。なお、I3Cマスタ12は、マスタアボートを送信せずに、HDR ExitまたはHDR Restartを送信するまで、リードデータを全て無視してもよい。
図29には、MD0エラーが発生したときの動作例が示されている。図示するように、送受信バイト数(LENGTH)を超えてリードデータが続く場合に、MD0エラーが検出されて、HDR Exitを送信した後、MD0エラーは解除される。
次に、FIFOオーバーフロー対策について説明する。
I3Cマスタ12は、通信を開始する前に、最大転送バイト数の送信を指示するコマンド(GETMRLまたはGETMWL)を用いて、最大転送バイト数(MRLまたはMWL)を取得することができる。なお、ユーザが、各I3Cスレーブ13のデータシートから最大転送バイト数(MRLまたはMWL)を読み取って、I3Cマスタ12に対して設定してもよい。これにより、I3Cマスタ12は、最大転送バイト数(MRLまたはMWL)を超えるデータの転送を要求することを防止することができる。
しかしながら、このような対策を施していても、何らかのエラーによって、FIFOオーバーフローが発生することに対して、対策が必要となる。
例えば、I3Cマスタ12が、最大転送バイト数(MWL)を超えるバイト数のライトをI3Cスレーブ13に要求してきた場合、I3Cver1.0 DDRの規格上、I3Cスレーブ13が、ライト転送を止めるすべを持たないため、受けきれなかったデータはI3Cスレーブ13側で捨てられてしまうことになる。
そこで、I3Cスレーブ13は、上述の図24に示すように、新たに定義されるSD2エラーが利用される。即ち、I3Cスレーブ13は、Kバイト目のライトデータを受信した後、さらにライトデータが続く場合に、SD2エラー(Write over MWL)を検出する。具体的には、Kバイト目のライトデータを受信した後、次に受信したプリアンブルがデータの受信を継続することを示す2’b11(Data follows)の場合、SD2エラーが発生したことが検出される。なお、Kバイト目の値を求める計算式は、図30の左下に示す通りである。
そして、CCIスレーブ18は、SD2エラーを検出した後、インデックスをクリアし、HDR ExitまたはHDR Restartを受信するまで、一切の通信を無視する。従って、Kバイトを超えた受信データはレジスタへ書き込まれることが回避される。このとき、I3Cスレーブ13がACK応答またはNACK応答をする場合には、I3Cの規定によらず、SD2エラーから復帰するまでは、CCIスレーブ18は、I3Cスレーブ13に対してNACK応答をするように指令(図9のステップS121)する。
また、図30には、SD2エラーの動作例が示されている。図示するように、Kバイトを超えてライトデータが続く場合に、SD2エラーの発生が検出され、インデックスをクリアした後、HDR ExitまたはHDR Restartを受信することで、SD2エラーが解除される。
ところで、I3Cマスタ12が最大転送バイト数(MRL)を超えたバイト数のリードをI3Cスレーブ13に要求してきた場合、CCI(I3C DDR)で定義されている通常の転送(Concatenated Sequential Read Starting from a Random Location)で起こり得るため、エラーとする必要はない。例えば、I3Cスレーブ13が、このような要求を受けた場合、I3Cスレーブ13は、最大転送バイト数(MRL)で定める上限までリードデータをI3Cマスタ12に往診した後、CRC5を送信することで、一旦転送を終了する。
例えば、I3Cマスタ12側の対策として想定されるケースとしては、上述したような通常の転送時に、I3Cスレーブ13が意図せずに最大転送バイト数(MRL)の設定値を超えるデータを送信することが想定される。この場合、I3Cマスタ12側でメモリの領域外のアクセスが発生することが懸念されるため、エラーとして検出する必要がある。
そこで、上述の図25に示すように、新たに定義されるMD1エラーが利用される。CCI(I3C DDR)処理部52は、最大転送バイト数(MRL)目のリードデータを受信した後、さらにリードデータが続く場合にMD1エラー(Read over MRL)の発生を検出する。具体的には、最大転送バイト数(MRL)目のリードデータを受信した後、次に受信したプリアンブルがデータの受信を継続することを示す1’b1の場合、MD1エラーの発生が検出される。
そして、I3Cマスタ12のCCI(I3C DDR)処理部52は、MD1エラーを検出した後、インデックスをクリアする。さらに、マスタアボートを送信した後、HDR ExitまたはHDR Restartを送信する。このように、HDR ExitまたはHDR Restartを送信した後、MD1エラーは解除され、I3Cマスタ12は、通常動作に復帰することができる。
<コンピュータの構成例>
なお、上述のフローチャートを参照して説明した各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。また、プログラムは、単一のCPUにより処理されるものであっても良いし、複数のCPUによって分散処理されるものであっても良い。
また、上述した一連の処理(通信方法)は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラムが記録されたプログラム記録媒体からインストールされる。
図31は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)101,ROM(Read Only Memory)102,RAM(Random Access Memory)103、およびEEPROM(Electronically Erasable and Programmable Read Only Memory)104は、バス105により相互に接続されている。バス105には、さらに、入出力インタフェース106が接続されており、入出力インタフェース106が外部に接続される。
以上のように構成されるコンピュータでは、CPU101が、例えば、ROM102およびEEPROM104に記憶されているプログラムを、バス105を介してRAM103にロードして実行することにより、上述した一連の処理が行われる。また、コンピュータ(CPU101)が実行するプログラムは、ROM102に予め書き込んでおく他、入出力インタフェース106を介して外部からEEPROM104にインストールしたり、更新したりすることができる。
<構成の組み合わせ例>
なお、本技術は以下のような構成も取ることができる。
(1)
バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、
前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、
前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスの状態を判定する上位階層通信処理部と、
前記インデックスの状態に基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部と
を有する
通信装置。
(2)
前記上位階層通信処理部は、前記上位階層エラー対応部によりエラーが検出されるのに応じて、前記インデックスをクリアし、未定義の状態とする
上記(1)に記載の通信装置。
(3)
バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置が、
前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスの状態を判定することと、
前記インデックスの状態に基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
を含む通信方法。
(4)
バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置のコンピュータに、
前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスの状態を判定することと、
前記インデックスの状態に基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
を含む通信処理を実行させるためのプログラム。
(5)
バスを介した通信を制御する主導的な通信装置であって、
制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にする上位階層通信処理部を有する
通信装置。
(6)
前記上位階層通信処理部は、前記下位階層によりエラーが検出された後に、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した後に、前記下位階層において通信を復帰した次の転送開始時において、カレントリードの使用を禁止する
上記(5)に記載の通信装置。
(7)
バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置が、
前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にすること
を含む通信方法。
(8)
バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置のコンピュータに、
前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にすること
を含む通信処理を実行させるためのプログラム。
(9)
バスを介した通信を制御する主導的な通信装置と、前記主導的な通信装置による制御に従って通信を行う従属的な通信装置とが接続されて構成される通信システムであって、
前記従属的な通信装置は、
前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、
前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスの状態を判定する上位階層通信処理部と、
前記インデックスの状態に基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部と
を有し、
前記主導的な通信装置は、
前記従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にする上位階層通信処理部を有する
通信システム。
(10)
バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、
前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、
通信で送受信されるデータのバイト数として予め通知された送受信バイト数を超えてライトデータが続くか否かを判定する上位階層通信処理部と、
前記送受信バイト数を超えてライトデータが続くと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部と
を有する
通信装置。
(11)
前記上位階層通信処理部は、前記送受信バイト数の次に受信したプリアンブルがデータの受信が継続することを示す場合、前記送受信バイト数を超えてライトデータが続くと判定する
上記(10)に記載の通信装置。
(12)
バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置が、
通信で送受信されるデータのバイト数として予め通知された送受信バイト数を超えてライトデータが続くか否かを判定することと、
前記送受信バイト数を超えてライトデータが続くと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
を含む通信方法。
(13)
バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置のコンピュータに、
通信で送受信されるデータのバイト数として予め通知された送受信バイト数を超えてライトデータが続くか否かを判定することと、
前記送受信バイト数を超えてライトデータが続くと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
を含む通信処理を実行させるためのプログラム。
(14)
バスを介した通信を制御する主導的な通信装置であって、
制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてリードデータが続くか否かを判定する前記上位階層通信処理部を有し、
前記下位階層は、前記送受信バイト数を超えてリードデータが続くと判定されたことに基づいてエラーの発生を検出したとき、前記上位階層にインデックスをクリアさせ、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除するエラー対応部を有する
通信装置。
(15)
前記上位階層通信処理部は、前記送受信バイト数の次の1バイト目のリードデータを受信した後、次に受信したプリアンブルがデータの受信が継続することを示す場合、前記送受信バイト数を超えてリードデータが続くと判定する
上記(14)に記載の通信装置。
(16)
バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置が、
一度の送受信でリードできる通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてリードデータが続くか否かを判定することと、
前記送受信バイト数を超えてリードデータが続くと判定されたことに基づいてエラーの発生を検出したとき、前記上位階層にインデックスをクリアさせ、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除することと
を含む通信方法。
(17)
バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置のコンピュータに、
一度の送受信でリードできる通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてリードデータが続くか否かを判定することと、
前記送受信バイト数を超えてリードデータが続くと判定されたことに基づいてエラーの発生を検出したとき、前記上位階層にインデックスをクリアさせ、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除することと
を含む通信処理を実行させるためのプログラム。
(18)
バスを介した通信を制御する主導的な通信装置と、前記主導的な通信装置による制御に従って通信を行う従属的な通信装置とが接続されて構成される通信システムであって、
前記従属的な通信装置は、
前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、
通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてライトデータが続くか否かを判定する上位階層通信処理部と、
前記送受信バイト数を超えてライトデータが続くと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部と
を有し、
前記主導的な通信装置は、
制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてリードデータが続くか否かを判定する前記上位階層通信処理部を有し、
前記下位階は、前記送受信バイト数を超えてリードデータが続くと判定されたことに基づいてエラーの発生を検出したとき、前記上位階層にインデックスをクリアさせ、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除するエラー対応部
を有する
通信システム。
(19)
バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、
前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、
一度の送受信でライトできる最大転送バイト数を超えるライトデータを受信したか否かを判定する上位階層通信処理部と、
前記最大転送バイト数を超えるライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部と
を有する
通信装置。
(20)
前記上位階層通信処理部は、所定のバイト数目のライトデータを受信した後、次に受信したプリアンブルがデータの受信が継続することを示す場合、前記最大転送バイト数を超えるライトデータを受信すると判定する
上記(19)に記載の通信装置。
(21)
バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置が、
一度の送受信でライトできる最大転送バイト数を超えるライトデータを受信したか否かを判定することと、
前記最大転送バイト数を超えるライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
を含む通信方法。
(22)
バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置のコンピュータに、
一度の送受信でライトできる最大転送バイト数を超えるライトデータを受信したか否かを判定することと、
前記最大転送バイト数を超えるライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
を含む通信処理を実行させるためのプログラム。
(23)
バスを介した通信を制御する主導的な通信装置であって、
制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、一度の送受信でリードできる最大転送バイト数を超えるリードデータを受信したか否かを判定する上位階層通信処理部を有し、
前記下位階層は、前記最大転送バイト数を超えるリードデータを受信したと判定されたことに基づいてエラーの発生を検出したとき、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除するエラー対応部を有する
通信装置。
(24)
前記上位階層通信処理部は、前記最大転送バイト数のリードデータの次の1バイト目のリードデータを受信した後、次に受信したプリアンブルがデータの受信が継続することを示す場合、前記最大転送バイト数を超えるリードデータを受信したと判定する
上記(23)に記載の通信装置。
(25)
バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置が、
一度の送受信でリードできる最大転送バイト数を超えるリードデータを受信したか否かを判定することと、
前記最大転送バイト数を超えるリードデータを受信したと判定されたことに基づいてエラーの発生を検出したとき、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除することと
を含む通信方法。
(26)
バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置のコンピュータに、
一度の送受信でリードできる最大転送バイト数を超えるリードデータを受信したか否かを判定することと、
前記最大転送バイト数を超えるリードデータを受信したと判定されたことに基づいてエラーの発生を検出したとき、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除することと
を含む通信処理を実行させるためのプログラム。
(27)
バスを介した通信を制御する主導的な通信装置と、前記主導的な通信装置による制御に従って通信を行う従属的な通信装置とが接続されて構成される通信システムであって、
前記従属的な通信装置は、
前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、
一度の送受信でライトできる最大転送バイト数を超えるライトデータを受信したか否かを判定する上位階層通信処理部と、
前記最大転送バイト数を超えるライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部と
を有し、
前記主導的な通信装置は、
制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、一度の送受信でリードできる最大転送バイト数を超えるリードデータを受信したか否かを判定する上位階層通信処理部を有し、
前記下位階層は、前記最大転送バイト数を超えるリードデータを受信したと判定されたことに基づいてエラーの発生を検出したとき、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除するエラー対応部を有する
通信システム。
なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
11 I3Cバス, 12 I3Cマスタ, 13 I3Cスレーブ, 14 データ信号線, 15 クロック信号線, 16 CCIマスタ, 17 I3Cドライバ, 18 CCIスレーブ, 21 I3C通信システム, 22 マスタデバイス, 23 スレーブデバイス, 31 エラー対応部, 32 ACK確認部, 41 I3C(SDR)処理部, 42 I3C(DDR)処理部, 43 エラー対応部, 51 CCI(I3C SDR)処理部, 52 CCI(I3C DDR)処理部, 61 CCI(I3C SDR)処理部, 62 CCI(I3C DDR)処理部, 63 エラー対応部, 71 確認応答処理部, 72 ライト受信処理部, 73 CCC受信処理部, 74 リード受信処理部, 75 HDR開始処理部, 76 エラー対応部, 81 DDRライト処理部, 82 DDRリード処理部, 83 DDR確認応答処理部, 84 エラー対応部

Claims (27)

  1. バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、
    前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
    前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
    を備え、
    前記上位階層は、
    前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスの状態を判定する上位階層通信処理部と、
    前記インデックスの状態に基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部と
    を有する
    通信装置。
  2. 前記上位階層通信処理部は、前記上位階層エラー対応部によりエラーが検出されるのに応じて、前記インデックスをクリアし、未定義の状態とする
    請求項1に記載の通信装置。
  3. バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置が、
    前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスの状態を判定することと、
    前記インデックスの状態に基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
    を含む通信方法。
  4. バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置のコンピュータに、
    前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスの状態を判定することと、
    前記インデックスの状態に基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
    を含む通信処理を実行させるためのプログラム。
  5. バスを介した通信を制御する主導的な通信装置であって、
    制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
    前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
    を備え、
    前記上位階層は、前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にする上位階層通信処理部を有する
    通信装置。
  6. 前記上位階層通信処理部は、前記下位階層によりエラーが検出された後に、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した後に、前記下位階層において通信を復帰した次の転送開始時において、カレントリードの使用を禁止する
    請求項5に記載の通信装置。
  7. バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置が、
    前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にすること
    を含む通信方法。
  8. バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置のコンピュータに、
    前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にすること
    を含む通信処理を実行させるためのプログラム。
  9. バスを介した通信を制御する主導的な通信装置と、前記主導的な通信装置による制御に従って通信を行う従属的な通信装置とが接続されて構成される通信システムであって、
    前記従属的な通信装置は、
    前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
    前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
    を備え、
    前記上位階層は、
    前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスの状態を判定する上位階層通信処理部と、
    前記インデックスの状態に基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部と
    を有し、
    前記主導的な通信装置は、
    前記従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
    前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
    を備え、
    前記上位階層は、前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にする上位階層通信処理部を有する
    通信システム。
  10. バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、
    前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
    前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
    を備え、
    前記上位階層は、
    通信で送受信されるデータのバイト数として予め通知された送受信バイト数を超えてライトデータが続くか否かを判定する上位階層通信処理部と、
    前記送受信バイト数を超えてライトデータが続くと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部と
    を有する
    通信装置。
  11. 前記上位階層通信処理部は、前記送受信バイト数の次に受信したプリアンブルがデータの受信が継続することを示す場合、前記送受信バイト数を超えてライトデータが続くと判定する
    請求項10に記載の通信装置。
  12. バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置が、
    通信で送受信されるデータのバイト数として予め通知された送受信バイト数を超えてライトデータが続くか否かを判定することと、
    前記送受信バイト数を超えてライトデータが続くと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
    を含む通信方法。
  13. バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置のコンピュータに、
    通信で送受信されるデータのバイト数として予め通知された送受信バイト数を超えてライトデータが続くか否かを判定することと、
    前記送受信バイト数を超えてライトデータが続くと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
    を含む通信処理を実行させるためのプログラム。
  14. バスを介した通信を制御する主導的な通信装置であって、
    制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
    前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
    を備え、
    前記上位階層は、通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてリードデータが続くか否かを判定する前記上位階層通信処理部を有し、
    前記下位階層は、前記送受信バイト数を超えてリードデータが続くと判定されたことに基づいてエラーの発生を検出したとき、前記上位階層にインデックスをクリアさせ、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除するエラー対応部を有する
    通信装置。
  15. 前記上位階層通信処理部は、前記送受信バイト数の次の1バイト目のリードデータを受信した後、次に受信したプリアンブルがデータの受信が継続することを示す場合、前記送受信バイト数を超えてリードデータが続くと判定する
    請求項14に記載の通信装置。
  16. バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置が、
    一度の送受信でリードできる通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてリードデータが続くか否かを判定することと、
    前記送受信バイト数を超えてリードデータが続くと判定されたことに基づいてエラーの発生を検出したとき、前記上位階層にインデックスをクリアさせ、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除することと
    を含む通信方法。
  17. バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置のコンピュータに、
    一度の送受信でリードできる通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてリードデータが続くか否かを判定することと、
    前記送受信バイト数を超えてリードデータが続くと判定されたことに基づいてエラーの発生を検出したとき、前記上位階層にインデックスをクリアさせ、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除することと
    を含む通信処理を実行させるためのプログラム。
  18. バスを介した通信を制御する主導的な通信装置と、前記主導的な通信装置による制御に従って通信を行う従属的な通信装置とが接続されて構成される通信システムであって、
    前記従属的な通信装置は、
    前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
    前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
    を備え、
    前記上位階層は、
    通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてライトデータが続くか否かを判定する上位階層通信処理部と、
    前記送受信バイト数を超えてライトデータが続くと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部と
    を有し、
    前記主導的な通信装置は、
    制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
    前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
    を備え、
    前記上位階層は、通信で送受信されるデータのバイト数として予め通知した送受信バイト数を超えてリードデータが続くか否かを判定する前記上位階層通信処理部を有し、
    前記下位階は、前記送受信バイト数を超えてリードデータが続くと判定されたことに基づいてエラーの発生を検出したとき、前記上位階層にインデックスをクリアさせ、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除するエラー対応部
    を有する
    通信システム。
  19. バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、
    前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
    前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
    を備え、
    前記上位階層は、
    一度の送受信でライトできる最大転送バイト数を超えるライトデータを受信したか否かを判定する上位階層通信処理部と、
    前記最大転送バイト数を超えるライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部と
    を有する
    通信装置。
  20. 前記上位階層通信処理部は、所定のバイト数目のライトデータを受信した後、次に受信したプリアンブルがデータの受信が継続することを示す場合、前記最大転送バイト数を超えるライトデータを受信すると判定する
    請求項19に記載の通信装置。
  21. バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置が、
    一度の送受信でライトできる最大転送バイト数を超えるライトデータを受信したか否かを判定することと、
    前記最大転送バイト数を超えるライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
    を含む通信方法。
  22. バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置のコンピュータに、
    一度の送受信でライトできる最大転送バイト数を超えるライトデータを受信したか否かを判定することと、
    前記最大転送バイト数を超えるライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
    を含む通信処理を実行させるためのプログラム。
  23. バスを介した通信を制御する主導的な通信装置であって、
    制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
    前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
    を備え、
    前記上位階層は、一度の送受信でリードできる最大転送バイト数を超えるリードデータを受信したか否かを判定する上位階層通信処理部を有し、
    前記下位階層は、前記最大転送バイト数を超えるリードデータを受信したと判定されたことに基づいてエラーの発生を検出したとき、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除するエラー対応部を有する
    通信装置。
  24. 前記上位階層通信処理部は、前記最大転送バイト数のリードデータの次の1バイト目のリードデータを受信した後、次に受信したプリアンブルがデータの受信が継続することを示す場合、前記最大転送バイト数を超えるリードデータを受信したと判定する
    請求項23に記載の通信装置。
  25. バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置が、
    一度の送受信でリードできる最大転送バイト数を超えるリードデータを受信したか否かを判定することと、
    前記最大転送バイト数を超えるリードデータを受信したと判定されたことに基づいてエラーの発生を検出したとき、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除することと
    を含む通信方法。
  26. バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置のコンピュータに、
    一度の送受信でリードできる最大転送バイト数を超えるリードデータを受信したか否かを判定することと、
    前記最大転送バイト数を超えるリードデータを受信したと判定されたことに基づいてエラーの発生を検出したとき、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除することと
    を含む通信処理を実行させるためのプログラム。
  27. バスを介した通信を制御する主導的な通信装置と、前記主導的な通信装置による制御に従って通信を行う従属的な通信装置とが接続されて構成される通信システムであって、
    前記従属的な通信装置は、
    前記主導的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
    前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
    を備え、
    前記上位階層は、
    一度の送受信でライトできる最大転送バイト数を超えるライトデータを受信したか否かを判定する上位階層通信処理部と、
    前記最大転送バイト数を超えるライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも前記高速通信モードの終了またはリスタートが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部と
    を有し、
    前記主導的な通信装置は、
    制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行い、通常の転送レートよりも高い転送レートでデータ転送を行う高速通信モードで通信を行うことができる下位階層と、
    前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
    を備え、
    前記上位階層は、一度の送受信でリードできる最大転送バイト数を超えるリードデータを受信したか否かを判定する上位階層通信処理部を有し、
    前記下位階層は、前記最大転送バイト数を超えるリードデータを受信したと判定されたことに基づいてエラーの発生を検出したとき、通信を打ち切って、少なくとも前記高速通信モードの終了またはリスタートを行った後、エラーを解除するエラー対応部を有する
    通信システム。
JP2017152062A 2017-08-04 2017-08-04 通信装置、通信方法、プログラム、および、通信システム Active JP6953226B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2017152062A JP6953226B2 (ja) 2017-08-04 2017-08-04 通信装置、通信方法、プログラム、および、通信システム
CN201880047901.2A CN110945490B (zh) 2017-08-04 2018-07-20 通信设备、通信方法、程序和通信系统
US16/635,050 US11561922B2 (en) 2017-08-04 2018-07-20 Communication apparatus, communication method, program, and communication system
PCT/JP2018/027242 WO2019026643A1 (en) 2017-08-04 2018-07-20 COMMUNICATION APPARATUS, COMMUNICATION METHOD, PROGRAM, AND COMMUNICATION SYSTEM
EP18752295.8A EP3662383B1 (en) 2017-08-04 2018-07-20 Communication apparatus, communication method, program, and communication system
TW107125489A TWI758517B (zh) 2017-08-04 2018-07-24 通訊裝置,通訊方法,程式及通訊系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017152062A JP6953226B2 (ja) 2017-08-04 2017-08-04 通信装置、通信方法、プログラム、および、通信システム

Publications (2)

Publication Number Publication Date
JP2019032626A JP2019032626A (ja) 2019-02-28
JP6953226B2 true JP6953226B2 (ja) 2021-10-27

Family

ID=63143334

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017152062A Active JP6953226B2 (ja) 2017-08-04 2017-08-04 通信装置、通信方法、プログラム、および、通信システム

Country Status (6)

Country Link
US (1) US11561922B2 (ja)
EP (1) EP3662383B1 (ja)
JP (1) JP6953226B2 (ja)
CN (1) CN110945490B (ja)
TW (1) TWI758517B (ja)
WO (1) WO2019026643A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6953226B2 (ja) 2017-08-04 2021-10-27 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信方法、プログラム、および、通信システム
JP7031961B2 (ja) * 2017-08-04 2022-03-08 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信方法、プログラム、および、通信システム
KR20230066467A (ko) * 2020-09-17 2023-05-15 후아웨이 테크놀러지 컴퍼니 리미티드 인터 집적 회로를 채용하는 통신 방법 및 장치

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08320790A (ja) 1995-05-25 1996-12-03 Mitsubishi Electric Corp メソッド呼び出し方法及びメソッド追加・削除方法
US5696994A (en) * 1995-05-26 1997-12-09 National Semiconductor Corporation Serial interface having control circuits for enabling or disabling N-channel or P-channel transistors to allow for operation in two different transfer modes
JP4439699B2 (ja) * 2000-08-24 2010-03-24 キヤノン株式会社 データ送信装置、データ送信方法、及び記憶媒体
US8416793B2 (en) * 2005-03-29 2013-04-09 Alcatel Lucent Method and apparatus for queue depth detection in a memory system
JP2007179435A (ja) * 2005-12-28 2007-07-12 Sony Corp 情報処理装置、情報処理方法、プログラム
JP4926648B2 (ja) * 2006-10-27 2012-05-09 富士通セミコンダクター株式会社 車載ゲートウェイ装置
JP4879765B2 (ja) * 2007-01-29 2012-02-22 パナソニック株式会社 I2cバス制御回路
JP5160100B2 (ja) 2007-02-08 2013-03-13 シャープ株式会社 データ通信誤動作防止装置、電子機器、データ通信誤動作防止装置の制御方法、データ通信誤動作防止装置の制御プログラム、及び当該プログラムを記録した記録媒体
CN101695028B (zh) * 2009-10-16 2012-04-18 杭州华三通信技术有限公司 一种简单网络管理协议配置方法及装置
WO2014006701A1 (ja) * 2012-07-04 2014-01-09 富士通株式会社 情報処理装置、アクセス制御プログラム、およびアクセス制御方法
US20150358133A1 (en) 2013-01-09 2015-12-10 Sharp Kabushiki Kaisha User equipment, base station, and radio communication method
KR20160070171A (ko) * 2013-10-09 2016-06-17 퀄컴 인코포레이티드 CCIe 프로토콜을 통한 에러 검출 능력
US20150248373A1 (en) * 2014-02-28 2015-09-03 Qualcomm Incorporated Bit allocation over a shared bus to facilitate an error detection optimization
JP6340962B2 (ja) * 2014-07-07 2018-06-13 富士通株式会社 バス制御装置、データ転送システム、及びバス制御方法
CN107209739A (zh) 2015-02-04 2017-09-26 高通股份有限公司 电压模式和电流模式设备枚举
DE112016002371T5 (de) * 2015-05-26 2018-02-15 Intel Corporation Vorrichtung, gerät und system zum verringern der stromableitung während differentiellen kommunikationen
US9960981B2 (en) 2015-10-08 2018-05-01 Sony Corporation Communication device, communication method, program, and communication system
US20170168966A1 (en) * 2015-12-10 2017-06-15 Qualcomm Incorporated Optimal latency packetizer finite state machine for messaging and input/output transfer interfaces
US20170255588A1 (en) * 2016-03-07 2017-09-07 Qualcomm Incorporated Multiprotocol i3c common command codes
US20180181531A1 (en) 2016-12-22 2018-06-28 Intel Corporation Serial peripheral mode in mipi improved inter-integrated circuit (i3c)
US11132323B2 (en) * 2017-06-20 2021-09-28 Intel Corporation System, apparatus and method for extended communication modes for a multi-drop interconnect
JP6953226B2 (ja) 2017-08-04 2021-10-27 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信方法、プログラム、および、通信システム

Also Published As

Publication number Publication date
US11561922B2 (en) 2023-01-24
EP3662383B1 (en) 2022-10-26
WO2019026643A1 (en) 2019-02-07
CN110945490B (zh) 2023-10-10
US20200250128A1 (en) 2020-08-06
JP2019032626A (ja) 2019-02-28
TW201911788A (zh) 2019-03-16
CN110945490A (zh) 2020-03-31
EP3662383A1 (en) 2020-06-10
TWI758517B (zh) 2022-03-21

Similar Documents

Publication Publication Date Title
JP7031961B2 (ja) 通信装置、通信方法、プログラム、および、通信システム
JP6953226B2 (ja) 通信装置、通信方法、プログラム、および、通信システム
JP4756992B2 (ja) ストレージシステム及び記憶制御方法
KR102515186B1 (ko) 통신 장치, 통신 방법, 프로그램 및 통신 시스템
US7716536B2 (en) Techniques for entering a low-power link state
JP2008225753A (ja) 計算機システム、アクセス制御方法及び管理計算機
JP4195368B2 (ja) センダ・レシーバ要求再施行方法および装置
JP2013069005A (ja) 自動車用電子制御装置
TWI755538B (zh) 通訊裝置、通訊方法、程式及通訊系統
JP7270859B2 (ja) ネットワークシステム、通信方法、および、通信プログラム
US11757799B2 (en) Line monitor device and network switch
EP1179907A2 (en) Data communication apparatus and method with error correction mode
JPH04172502A (ja) プログラマブルコントローラにおけるネットワーク間通信方式
CN116401189A (zh) 基于pcie控制器的多芯片通信方法、设备及存储介质
JP2005159920A (ja) メッセージ交換管理方法、ネットワークシステム、そのマスタノード、ノード、プログラム
JP2002163043A (ja) ネットワーク端末装置
JP2010152558A (ja) プログラマブルコントローラおよび電文作成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200716

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: 20210831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210929

R150 Certificate of patent or registration of utility model

Ref document number: 6953226

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150