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

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

Info

Publication number
JP7031961B2
JP7031961B2 JP2017152061A JP2017152061A JP7031961B2 JP 7031961 B2 JP7031961 B2 JP 7031961B2 JP 2017152061 A JP2017152061 A JP 2017152061A JP 2017152061 A JP2017152061 A JP 2017152061A JP 7031961 B2 JP7031961 B2 JP 7031961B2
Authority
JP
Japan
Prior art keywords
communication device
error
communication
leading
index
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
JP2017152061A
Other languages
English (en)
Other versions
JP2019033331A (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
Priority to JP2017152061A priority Critical patent/JP7031961B2/ja
Application filed by Sony Semiconductor Solutions Corp filed Critical Sony Semiconductor Solutions Corp
Priority to EP18752294.1A priority patent/EP3662382B1/en
Priority to CN201880048148.9A priority patent/CN110945491B/zh
Priority to KR1020207002057A priority patent/KR20200035013A/ko
Priority to PCT/JP2018/027241 priority patent/WO2019026642A1/en
Priority to US16/634,795 priority patent/US11544132B2/en
Priority to TW107125520A priority patent/TWI768088B/zh
Publication of JP2019033331A publication Critical patent/JP2019033331A/ja
Application granted granted Critical
Publication of JP7031961B2 publication Critical patent/JP7031961B2/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/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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error 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 the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0742Error 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 the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in a mobile device, e.g. mobile phones, handheld devices
    • 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/0751Error or fault detection not based on redundancy
    • 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/0793Remedial or corrective actions
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0053Allocation of signaling, i.e. of overhead other than pilot signals
    • H04L5/0055Physical resource allocation for ACK/NACK
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0016Inter-integrated circuit (I2C)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices

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応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にする上位階層通信処理部を有する。そして、前記NACK応答の送信は、前記従属的な通信装置において、前記主導的な通信装置からリードアクセスが要求されたときに、当該リードアクセスを正常に受信することができた場合であっても、前記インデックスの状態が有効でないと判定されたことに基づいてエラーの発生が検出され、前記主導的な通信装置により少なくとも通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際に行われ、前記従属的な通信装置において、前記主導的な通信装置から送信されてくるライトデータが受信されて、前記従属的な通信装置の上位階層へ送付され、前記ライトデータにおけるパリティエラーの発生が検出されて、前記従属的な通信装置の上位階層に前記パリティエラーの発生が通知され、前記パリティエラーの通知に応じて、前記インデックスがクリアされ、未定義の状態とされる。
本開示の第2の側面の通信方法は、バスを介した通信を制御する主導的な通信装置であって、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える通主導的な信装置が、前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にすることを含む。そして、前記NACK応答の送信は、前記従属的な通信装置において、前記主導的な通信装置からリードアクセスが要求されたときに、当該リードアクセスを正常に受信することができた場合であっても、前記インデックスの状態が有効でないと判定されたことに基づいてエラーの発生が検出され、前記主導的な通信装置により少なくとも通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際に行われ、前記従属的な通信装置において、前記主導的な通信装置から送信されてくるライトデータが受信されて、前記従属的な通信装置の上位階層へ送付され、前記ライトデータにおけるパリティエラーの発生が検出されて、前記従属的な通信装置の上位階層に前記パリティエラーの発生が通知され、前記パリティエラーの通知に応じて、前記インデックスがクリアされ、未定義の状態とされる。
本開示の第2の側面のプログラムは、バスを介した通信を制御する主導的な通信装置であって、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置置のコンピュータに、前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にすることを含む通信処理を実行させる。そして、前記NACK応答の送信は、前記従属的な通信装置において、前記主導的な通信装置からリードアクセスが要求されたときに、当該リードアクセスを正常に受信することができた場合であっても、前記インデックスの状態が有効でないと判定されたことに基づいてエラーの発生が検出され、前記主導的な通信装置により少なくとも通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際に行われ、前記従属的な通信装置において、前記主導的な通信装置から送信されてくるライトデータが受信されて、前記従属的な通信装置の上位階層へ送付され、前記ライトデータにおけるパリティエラーの発生が検出されて、前記従属的な通信装置の上位階層に前記パリティエラーの発生が通知され、前記パリティエラーの通知に応じて、前記インデックスがクリアされ、未定義の状態とされる。
本開示の第2の側面においては、下位階層によりエラーが検出された場合、または、従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスがクリアされ、未定義の状態にされる。そして、NACK応答の送信は、前記従属的な通信装置において、前記主導的な通信装置からリードアクセスが要求されたときに、当該リードアクセスを正常に受信することができた場合であっても、前記インデックスの状態が有効でないと判定されたことに基づいてエラーの発生が検出され、主導的な通信装置により少なくとも通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際に行われる。さらに、従属的な通信装置において、主導的な通信装置から送信されてくるライトデータが受信されて、従属的な通信装置の上位階層へ送付され、ライトデータにおけるパリティエラーの発生が検出されて、従属的な通信装置の上位階層に前記パリティエラーの発生が通知され、パリティエラーの通知に応じて、インデックスがクリアされ、未定義の状態とされる。
本開示の第3の側面の通信システムは、バスを介した通信を制御する主導的な通信装置と、前記通信装置による制御に従って通信を行う従属的な通信装置が接続されて構成される通信システムであって、前記従属的な通信装置は、前記主導的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスの状態を判定する上位階層通信処理部と、当該リードアクセスを正常に受信することができた場合であっても、前記インデックスの状態が有効でないと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、前記下位階層に指令する上位階層エラー対応部とを有し、前記下位階層は、前記主導的な通信装置から送信されてくるライトデータを受信して、前記上位階層へ送付するライト受信処理を行うライト受信処理部と、前記ライトデータにおけるパリティエラーの発生を検出し、前記上位階層に前記パリティエラーの発生を通知する下位階層エラー対応部とを有し、前記上位階層通信処理部は、前記下位階層エラー対応部による前記パリティエラーの通知に応じて、前記インデックスをクリアし、未定義の状態とし、前記主導的な通信装置は、前記従属的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にする上位階層通信処理部を有する。
本開示の第3の側面においては、主導的な通信装置からリードアクセスが要求されたときに、インデックスの状態が判定され、そのリードアクセスを正常に受信することができた場合であっても、インデックスの状態が有効でないと判定されたことに基づいてエラーの発生が検出され、主導的な通信装置により通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、下位階層に指令される。さらに、主導的な通信装置から送信されてくるライトデータが受信されて、上位階層へ送付するライト受信処理が行われ、ライトデータにおけるパリティエラーの発生が検出され、上位階層にパリティエラーの発生を通知される。そして、パリティエラーの通知に応じて、インデックスがクリアされ、未定義の状態とされる。一方、下位階層によりエラーが検出された場合、または、従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスがクリアされ、未定義の状態にされる。
本開示の第4の側面の通信装置は、バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、前記主導的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、一度の送受信でライトできる最大転送バイト数を超えるバイト数のライトデータを受信したか否かを判定する上位階層通信処理部と、前記最大転送バイト数を超えるバイト数のライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、前記下位階層に指令する上位階層エラー対応部とを有する。
本開示の第4の側面の通信方法は、バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置が、一度の送受信でライトできる最大転送バイト数を超えるバイト数のライトデータを受信したか否かを判定することと、前記最大転送バイト数を超えるバイト数のライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、前記下位階層に指令することとを含む。
本開示の第4の側面のプログラムは、バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置のコンピュータに、一度の送受信でライトできる最大転送バイト数を超えるバイト数のライトデータを受信したか否かを判定することと、前記最大転送バイト数を超えるバイト数のライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、前記下位階層に指令することとを含む通信処理を実行させる。
本開示の第4の側面においては、一度の送受信でライトできる最大転送バイト数を超えるバイト数のライトデータを受信したか否かが判定され、最大転送バイト数を超えるバイト数のライトデータを受信したと判定されたことに基づいてエラーの発生が検出され、主導的な通信装置により通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、下位階層に指令される。
本開示の第5の側面の通信装置は、バスを介した通信を制御する主導的な通信装置であって、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、一度の送受信でリードできる最大転送バイト数を超えるバイト数のリードデータを受信した場合は、エラーを検出するとともにインデックスをクリアし、通信を終了させて、リスタートまたはストップを送信した後に、エラーを解除する。なお、主導的な通信装置の下位階層で上記エラーを検出ししてもよく、その場合には、インデックスをクリアするように主導的な通信装置の上位階層に下位階層が通知する。
本開示の第5の側面の通信方法は、バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置であって、一度の送受信でリードできる最大転送バイト数を超えるバイト数のリードデータを受信した場合は、エラーを検出するとともにインデックスをクリアし、通信を終了させて、リスタートまたはストップを送信した後に、エラーを解除することを含む。
本開示の第5の側面のプログラムは、バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置のコンピュータに、一度の送受信でリードできる最大転送バイト数を超えるバイト数のリードデータを受信した場合は、エラーを検出するとともにインデックスをクリアし、通信を終了させて、リスタートまたはストップを送信した後に、エラーを解除することを含む通信処理を実行させる。
本開示の第5の側面においては、一度の送受信でリードできる最大転送バイト数を超えるバイト数のリードデータを受信した場合は、エラーが検出されるとともにインデックスがクリアされ、通信を終了させて、リスタートまたはストップを送信した後に、エラーが解除される。
本開示の第6の側面の通信システムは、バスを介した通信を制御する主導的な通信装置と、前記通信装置による制御に従って通信を行う従属的な通信装置が接続されて構成される通信システムであって、前記従属的な通信装置は、前記主導的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、前記上位階層は、一度の送受信でライトできる最大転送バイト数を超えるバイト数のライトデータを受信したか否かを判定する上位階層通信処理部と、前記最大転送バイト数を超えるバイト数のライトデータを受信したと判定されたことに基づいてエラーの発生を検出し、前記主導的な通信装置により通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、前記下位階層に指令する上位階層エラー対応部とを有し、前記主導的な通信装置は、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備え、一度の送受信でリードできる最大転送バイト数を超えるバイト数のリードデータを受信した場合は、エラーを検出するとともにインデックスをクリアし、通信を終了させて、リスタートまたはストップを送信した後に、エラーを解除する。なお、主導的な通信装置の下位階層で上記エラーを検出ししてもよく、その場合には、インデックスをクリアするように主導的な通信装置の上位階層に下位階層が通知する。
本開示の第6の側面においては、一度の送受信でライトできる最大転送バイト数を超えるバイト数のライトデータを受信したか否かが判定され、最大転送バイト数を超えるバイト数のライトデータを受信したと判定されたことに基づいてエラーの発生が検出され、主導的な通信装置により通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には常にNACK応答を行うように、下位階層に指令される。一方、一度の送受信でリードできる最大転送バイト数を超えるバイト数のリードデータを受信した場合は、エラーが検出されるとともにインデックスがクリアされ、通信を終了させて、リスタートまたはストップを送信した後に、エラーが解除される。なお、主導的な通信装置の下位階層で上記エラーを検出ししてもよく、その場合には、インデックスをクリアするように主導的な通信装置の上位階層に下位階層が通知する。
本開示の第1乃至第6の側面によれば、より確実に通信を行うことができる。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術を適用した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エラー対応処理を説明するフローチャートである。 インデックスのエラーについて説明する図である。 SS0エラーを検出方法および復帰方法の定義を示す図である。 ランダムリード中にS2エラーが発生したときのSS0エラーの動作例を示す図である。 ランダムライト中にS2エラーが発生したときのSS0エラーの動作例を示す図である。 S0エラーを検出したときの動作例を示す図である。 S1エラーが発生したときの動作例を示す図である。 S3エラーが発生したときの動作例を示す図である。 S4エラーが発生したときの動作例を示す図である。 S5エラーが発生したときの動作例を示す図である。 S6エラーが発生したときの動作例を示す図である。 本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
<バス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(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に戻り、以下、同様の処理が繰り返して行われる。例えば、I3Cマスタ12のエラー対応部31は、マスタアボートを送信し、ストップまたはリスタートを送信した後、エラーを解除する。これにより、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において、CCI(I3C SDR)処理部61は、ステップS52で受領した信号に基づくワードついて、エラーが発生しているエラー受信、または、正常に受信することができた正常ワード受信のどちらであるかを判定する。
ステップS54において、CCI(I3C SDR)処理部61が、エラー受信であると判定した場合、処理はステップS55に進み、エラー対応部63は、インデックスをクリアし、無効化する。その後、処理はステップS51に戻り、以下、同様の処理が繰り返して行われる。
一方、ステップS54において、CCI(I3C SDR)処理部61が、正常ワード受信であると判定した場合、処理はステップ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において、CCI(I3C DDR)処理部62は、ステップS91で受領した信号に基づくワードついて、エラーが発生しているエラー受信、または、正常に受信することができた正常ワード受信のどちらであるかを判定する。
ステップS92において、CCI(I3C DDR)処理部62が、エラー受信であると判定した場合、処理はステップS93に進み、エラー対応部63は、インデックスをクリアし、無効化する。その後、処理はステップS94に進み、CCI(I3C DDR)処理部62は、HDR ExitまたはHDR Restartを待機した後、I3Cスレーブ13からHDR ExitまたはHDR Restartを受領すると、処理はステップS116に進む。
一方、ステップS92において、CCI(I3C DDR)処理部62が、正常ワード受信であると判定した場合、処理はステップ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応答に上書きされる。これにより、インデックスは確実に受信することができる。
<インデックスのエラー対策について>
図23乃至図32を参照して、インデックスのエラー対策について、さらに説明する。
まず、図23を参照して、インデックスのエラーについて説明する。
図23には、一例として、CCI(I3C SDR)規格での、ランダムロケーションからのシングルリード(Single Read from Random Location)において発生するS2エラーが示されている。ここで、I3Cスレーブ13は、I3C規格上のS2エラーをレジスタアドレス(Sub Address[7:0])の受信中に検出した場合、I3C規格上、次のストップ(P)またはリスタート(Sr)を検出するまで、受信信号を一切無視することになる。このため、CCIスレーブ18は、サブアドレス以降について、図23に示すように、ストップ(P)まで一切の信号を受信することができず、インデックスを更新することができない。
一方、I3Cスレーブ13は、次のリスタートでS2エラーから復帰し、リードコマンドを受信し、そのリードコマンドをCCIスレーブ18に通知する。しかしながら、CCIスレーブ18は、インデックスを更新できなかったため、どのレジスタアドレスに対するリードコマンドであるのか正しく解釈することができない。その結果、以前に設定したレジスタアドレスに対するリードデータをI3Cマスタ12に送信してしまう恐れがある。
さらに、インデックスの更新が、以前に設定したレジスタアドレスに基づいて計算されてしまうため、次にカレントリードが続いた場合、そのまま間違ったリードデータをI3Cマスタ12に送信することになる。即ち、1つのエラーによって連鎖的にエラーが発生してしまうが、その値が誤っていることにI3Cマスタ12が気付くことは非常に困難である。
そこで、I3C通信システム21では、図24に示すように、SS0エラーの検出方法および復帰方法を定義する。
例えば、スレーブデバイス23では、CCIスレーブ18の階層において新たに定義されるSS0エラーが利用される。即ち、I3Cスレーブ13は、I3Cで規定されているS0エラー乃至S6エラーの発生を検出すると、それぞれのエラーが発生したことをCCIスレーブ18に通知し、CCIスレーブ18は、それまで記憶していたインデックスの情報をクリアする。
そして、CCIスレーブ18は、インデックスがクリアされた状態で、I3Cスレーブ13がリードコマンドを受信した場合、SS0エラーの発生を検出すること(図7のステップS72)ができる。このように、SS0エラーの発生を検出すると、図24に示すように、CCIスレーブ18は、ストップまたはリスタートを受信するまで、一切の通信を無視する。
このとき、I3Cスレーブ13がACK応答またはNACK応答をする場合には、I3Cの規定によらず、SS0エラーから復帰するまでは、CCIスレーブ18は、I3Cスレーブ13に対してNACK応答をするように指令(図7のステップS73)する。
また、図25には、ランダムリード中にS2エラーが発生したときのSS0エラーの動作例が示されており、図26には、ランダムライト中にS2エラーが発生したときのSS0エラーの動作例が示されている。
図示するように、CCIスレーブ18は、リスタート(Sr)の後のリードコマンドを受信する時に、SS0エラーを検出することができるようになるため、誤ったレジスタアドレスに対するリードデータをI3Cマスタ12に送信することは回避される。
なお、CCIスレーブ18は、S2エラーおよびS6エラーに対しては、確実に、インデックスをクリアする必要がある。これに対し、例えば、S0エラーおよびS1エラーに対しては、I3Cマスタ12が、必ず、NACK応答後にランダムリードを確実に行うように実装されていれば、CCIスレーブ18は、インデックスをクリアしなくても正常に通信を行うことができる。しかしながら、万が一、I3Cマスタ12が意図せずにI3C規格に違反した場合に、そのような違反を容易に検出できるようにするため、CCIスレーブ18は、インデックスをクリアするようにした方が良い。また、S3エラーおよびS5エラーについても同様である。
また、マスタデバイス22において、I3Cマスタ12は、I3Cで規定されているM0エラー乃至M2エラーの発生を検出した場合、または、NACK応答を受信した場合、エラーの検出またはNACK応答の受信をCCI(I3C SDR)処理部51に通知(図5のステップS14およびS15)する。これに応じて、CCI(I3C SDR)処理部51は、それまで記憶していたインデックス情報をクリアする。
さらに、I3Cマスタ12は、M0エラー乃至M2エラーの検出またはNACK応答の受信をした場合、I3C規格で定める手順に従ってエラーから復帰(図5のステップS17)する。その後、CCI(I3C SDR)処理部51は、次の転送の開始時には、CCI(SDR)カレントリード(Sequential or Single Read Starting from the Current Location)を使用することを禁止する。即ち、CCIスレーブ18において、エラー発生時にインデックスがクリアされており、次の転送でカレントリードを使用した場合には、必ずSS0エラーが発生してしまうため、その使用が禁止される。
図27には、S0エラーが発生したときの動作例が示されている。
図27に示すように、I3Cスレーブ13においてS0エラーが検出されると、CCIスレーブ18のインデックスがクリアされる。その後、I3Cスレーブ13は、I3Cの規格に従ってNACK応答を行い続け、HDR Exitを受信すると、S0エラーが解除される。その後、CCIスレーブ18は、スレーブアドレスおよびリードコマンドを受信すると、SS0エラーを検出してNACK応答し、ストップ(P)を受信することで、SS0エラーが解除される。
図28には、S1エラーが発生したときの動作例が示されている。
図28に示すように、I3Cスレーブ13は、パリティエラーの発生に応じて、S1エラーの発生を検出し、CCIスレーブ18のインデックスがクリアされて、I3Cスレーブ13は、NACK応答を行い続ける。その後、I3Cスレーブ13が、HDR Exitを受信すると、S1エラーが解除される。そして、CCIスレーブ18は、スレーブアドレスおよびリードコマンドを受信すると、SS0エラーを検出してNACK応答し、ストップ(P)を受信することで、SS0エラーが解除される。
図29には、S3エラーが発生したときの動作例が示されている。
図29に示すように、I3Cスレーブ13は、パリティエラーの発生に応じて、S3エラーの発生を検出し、CCIスレーブ18のインデックスがクリアされて、I3Cスレーブ13は、NACK応答を行う。その後、I3Cスレーブ13が、リスタート(Sr)を受信すると、S3エラーが解除される。
図30には、S4エラーが発生したときの動作例が示されている。
図30に示すように、I3Cスレーブ13は、例えば、ダイナミックアドレスの割り当てを指示するCCC(ENTDAA)のうちの7E/R以外のアドレスヘッダを受信したとき、そのデータにエラーが発生しているのに応じて、S4エラーの発生を検出し、CCIスレーブ18のインデックスがクリアされて、I3Cスレーブ13は、NACK応答を行う。その後、I3Cスレーブ13が、リスタート(Sr)を受信すると、S4エラーが解除される。
図31には、S5エラーが発生したときの動作例が示されている。
図31に示すように、I3Cスレーブ13は、コモンコマンドコード(GETBCR CCC)を送信するトランザクションが確定した後に、I3Cマスタ12から送信されてくるデータにエラーが発生しているに応じて、S5エラーの発生を検出する。これに応じて、CCIスレーブ18のインデックスがクリアされて、I3Cスレーブ13は、NACK応答を行う。その後、I3Cスレーブ13が、ストップ(P)を受信すると、S5エラーが解除される。
図32には、S6エラーが発生したときの動作例が示されている。
図32に示すように、I3Cスレーブ13は、I3Cバス11上の信号がリードデータと一致していないことを検出するのに応じて、S6エラーの発生を検出する。これに応じて、CCIスレーブ18のインデックスがクリアされて、I3Cスレーブ13は、リードデータの転送を停止する。
<FIFOオーバーフローについて>
ここで、I3C規格は、例えば、一度の送受信でリードできる最大転送バイト数(MRL:Max Read Length)、および、一度の送受信でライトできる最大転送バイト数(MWL:Max Write Length)を、各I3Cスレーブ13が定義し、その値をI3Cマスタ12が取得することができる。しかしながら、I3Cマスタ12が、意図せず、最大転送バイト数(MWL:Max Write Length)を超えるライトデータを送信した場合、I3Cスレーブ13では、FIFOがオーバーフローし、正しくレジスタへデータが書き込めないことが想定される。
例えば、I3Cスレーブ13は、I3Cマスタ12から最大転送バイト数(MWL:Max Write Length)を超えたバイト数のライトを要求された場合、I3Cの規格上、I2Cと異なりライト転送を止めることが規定されていないため、受けきれなかったデータは捨てられることになる。そこで、I3Cマスタ12から最大転送バイト数(MWL:Max Write Length)を超えたバイト数のライトを要求されたことを、I3Cスレーブ13を検出することができるようにするため、例えばS7エラー(Write overMWL)を定義される。
このようなS7エラー(Write overMWL)を定義することで、I3Cマスタ12が、最大転送バイト数(MWL:Max Write Length)を超えたバイト数のライトを要求してきた場合でも、I3Cスレーブ13は、S7エラーの検出後、受けきれなかったデータを明示的に受信しないことにより、FIFOがオーバーフローすることを回避することができる。即ち、S7エラーが検出されると、リスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、NACK応答が行われる。また、I3Cマスタ12が、最大転送バイト数(MRL:Max Read Length)を超えるバイト数のリードを要求してきた場合には、I3Cスレーブ13は、Tビットを用いて転送を強制的に終了することができる。
また、I3Cマスタ12は、通信を開始する前に、最大転送バイト数の送信を指示するコマンド(GETMRLまたはGETMWL)を用いて、最大転送バイト数(MRLまたはMWL)を取得することができる。なお、ユーザが、各I3Cスレーブ13のデータシートから最大転送バイト数(MRLまたはMWL)を読み取って、I3Cマスタ12に対して設定してもよい。
これにより、I3Cマスタ12は、最大転送バイト数(MRLまたはMWL)を超えるデータの転送を要求することを防止することができる。なお、I3Cマスタ12は、最大転送バイト数(MRL)を超えるリードデータがI3Cスレーブ13から転送されてきた場合、自身の判断に従って、通信を終了させることができる。即ち、I3Cマスタ12は、最大転送バイト数(MRL)を超えるリードデータを受信した場合は、エラーを検出するとともにインデックスをクリアし、Tビットを用いて通信を終了させ、リスタートまたはストップを送信した後に、エラーを解除することができる。なお、エラーの検出およびインデックスのクリアは、必須ではない。また、I3Cマスタ12は、この場合でも、そのまま継続して通信を行ってもよく、通信が行えなくなるようなことはない。
なお、説明は省略するが、TSPモードおよびTSLモードにおいても、上述と同様のエラーの検出方法および復帰方法で通信処理が行われる。
<コンピュータの構成例>
なお、上述のフローチャートを参照して説明した各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。また、プログラムは、単一のCPUにより処理されるものであっても良いし、複数のCPUによって分散処理されるものであっても良い。
また、上述した一連の処理(通信方法)は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラムが記録されたプログラム記録媒体からインストールされる。
図33は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、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)
前記下位階層は、前記上位階層から受領したリードデータを、前記主導的な通信装置へ送信するリード受信処理を行うリード受信処理部をさらに備え、
前記下位階層エラー対応部は、前記リードデータの送信中に前記バス上の信号が一致していないことが検出されたことに基づいてエラーの発生を検出し、前記上位階層に前記エラーの発生を通知して、
前記上位階層通信処理部は、前記下位階層エラー対応部による前記エラーの通知に応じて、前記インデックスをクリアし、未定義の状態とする
上記(1)または(2)に記載の通信装置。
(4)
前記下位階層エラー対応部は、前記主導的な通信装置から送信されてくる通信のスタートまたはリスタートに続く1ワード目が、禁止アドレスであったことに基づいて、または、前記バスに接続されている全ての従属的な通信装置を対象としたリードコマンドであったことに基づいてエラーの発生を検出し、前記上位階層に前記エラーの発生を通知して、
前記上位階層通信処理部は、前記下位階層エラー対応部による前記エラーの通知に応じて、前記インデックスをクリアし、未定義の状態とする
上記(1)から(3)までのいずれかに記載の通信装置。
(5)
前記下位階層エラー対応部は、前記バスに接続されている1または複数の従属的な通信装置に対して一斉に送信されるコモンコマンドコードにおけるパリティエラーの発生を検出し、前記上位階層に前記パリティエラーの発生を通知して、
前記上位階層通信処理部は、前記下位階層エラー対応部による前記パリティエラーの通知に応じて、前記インデックスをクリアし、未定義の状態とする
上記(1)から(4)までのいずれかに記載の通信装置。
(6)
前記下位階層エラー対応部は、前記バスに接続されている1または複数の従属的な通信装置に対して一斉に送信されるコモンコマンドコードに従って行われる処理において発生したエラーに基づいて、前記上位階層に前記エラーの発生を通知して、
前記上位階層通信処理部は、前記下位階層エラー対応部による前記エラーの通知に応じて、前記インデックスをクリアし、未定義の状態とする
上記(1)から(5)までのいずれかに記載の通信装置。
(7)
バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置が、
前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスの状態を判定することと、
前記インデックスの状態に基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
を含む通信方法。
(8)
バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置のコンピュータに、
前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスの状態を判定することと、
前記インデックスの状態に基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
を含む通信処理を実行させるためのプログラム。
(9)
バスを介した通信を制御する主導的な通信装置であって、
制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行う下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にする上位階層通信処理部を有する
通信装置。
(10)
前記上位階層通信処理部は、前記下位階層によりエラーが検出された後に、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した後に、前記下位階層において通信を復帰した次の転送開始時において、カレントリードの使用を禁止する
上記(9)に記載の通信装置。
(11)
バスを介した通信を制御する主導的な通信装置であって、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える通主導的な信装置が、
前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にすること
を含む通信方法。
(12)
バスを介した通信を制御する主導的な通信装置であって、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置置のコンピュータに、
前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にすること
を含む通信処理を実行させるためのプログラム。
(13)
バスを介した通信を制御する主導的な通信装置と、前記主導的な通信装置による制御に従って通信を行う従属的な通信装置が接続されて構成される通信システムであって、
前記従属的な通信装置は、
前記主導的な通信装置と前記バスを介して通信を行う下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、
前記主導的な通信装置からリードアクセスが要求されたときに、前記インデックスの状態を判定する上位階層通信処理部と、
前記インデックスの状態に基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部と
を有し、
前記主導的な通信装置は、
前記従属的な通信装置と前記バスを介して通信を行う下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、前記下位階層によりエラーが検出された場合、または、前記従属的な通信装置から送信されてくるNACK応答を受信したことの報告を受領した場合、内部のインデックスをクリアし、未定義の状態にする上位階層通信処理部を有する
通信システム。
(14)
バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、
前記主導的な通信装置と前記バスを介して通信を行う下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、
一度の送受信でライトできる最大転送バイト数を超えるバイト数のライトデータの受信を判定する上位階層通信処理部と、
前記最大転送バイト数を超えるバイト数のライトデータの受信に基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御する上位階層エラー対応部と
を有する
通信装置。
(15)
前記上位階層通信処理部は、一度の送受信でリードできる最大転送バイト数を超えるバイト数のリードデータの要求を判定し、
前記上位階層エラー対応部は、前記最大転送バイト数を超えるバイト数のリードデータの要求に基づいて、Tビットを用いて転送を強制的に終了する
上記(14)に記載の通信装置。
(16)
バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置が、
一度の送受信でライトできる最大転送バイト数を超えるバイト数のライトデータの受信を判定することと、
前記最大転送バイト数を超えるバイト数のライトデータの受信に基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
を含む通信方法。
(17)
バスを介した通信を制御する主導的な通信装置による制御に従って通信を行う従属的な通信装置であって、かつ、前記主導的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える従属的な通信装置のコンピュータに、
一度の送受信でライトできる最大転送バイト数を超えるバイト数のライトデータの受信を判定することと、
前記最大転送バイト数を超えるバイト数のライトデータの受信に基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際にはNACK応答を行うように、前記下位階層を制御することと
を含む通信処理を実行させるためのプログラム。
(18)
バスを介した通信を制御する主導的な通信装置であって、
制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行う下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
一度の送受信でリードできる最大転送バイト数を超えるバイト数のリードデータを受信した場合は、エラーを検出するとともにインデックスをクリアし、通信を終了させて、リスタートまたはストップを送信した後に、エラーを解除する
通信装置。
(19)
バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置であって、
一度の送受信でリードできる最大転送バイト数を超えるバイト数のリードデータを受信した場合は、エラーを検出するとともにインデックスをクリアし、通信を終了させて、リスタートまたはストップを送信した後に、エラーを解除すること
を含む通信方法。
(20)
バスを介した通信を制御する主導的な通信装置であって、かつ、制御に従って通信を行う従属的な通信装置と前記バスを介して通信を行う下位階層と、前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層とを備える主導的な通信装置のコンピュータに、
一度の送受信でリードできる最大転送バイト数を超えるバイト数のリードデータを受信した場合は、エラーを検出するとともにインデックスをクリアし、通信を終了させて、リスタートまたはストップを送信した後に、エラーを解除すること
を含む通信処理を実行させるためのプログラム。
(21)
バスを介した通信を制御する主導的な通信装置と、前記主導的な通信装置による制御に従って通信を行う従属的な通信装置が接続されて構成される通信システムであって、
前記従属的な通信装置は、
前記主導的な通信装置と前記バスを介して通信を行う下位階層と、
前記下位階層に対して上位となり、インデックスに従ってデータのリードおよびライトを行う上位階層と
を備え、
前記上位階層は、
一度の送受信でライトできる最大転送バイト数を超えるバイト数のライトデータの受信を判定する上位階層通信処理部と、
前記最大転送バイト数を超えるバイト数のライトデータの受信に基づいてエラーの発生を検出し、前記主導的な通信装置により少なくとも通信のリスタートまたはストップが行われるまでの間、一切の通信を無視するとともに、前記主導的な通信装置から送信されてくる信号に対する確認応答処理を行う際には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 (20)

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

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2017152061A JP7031961B2 (ja) 2017-08-04 2017-08-04 通信装置、通信方法、プログラム、および、通信システム
CN201880048148.9A CN110945491B (zh) 2017-08-04 2018-07-20 通信设备、通信方法、程序和通信系统
KR1020207002057A KR20200035013A (ko) 2017-08-04 2018-07-20 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템
PCT/JP2018/027241 WO2019026642A1 (en) 2017-08-04 2018-07-20 COMMUNICATION APPARATUS, COMMUNICATION METHOD, PROGRAM, AND COMMUNICATION SYSTEM
EP18752294.1A EP3662382B1 (en) 2017-08-04 2018-07-20 Communication apparatus, communication method, program, and communication system
US16/634,795 US11544132B2 (en) 2017-08-04 2018-07-20 Communication apparatus, communication method, program, and communication system
TW107125520A TWI768088B (zh) 2017-08-04 2018-07-24 通訊裝置,通訊方法,程式及通訊系統

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2019033331A JP2019033331A (ja) 2019-02-28
JP7031961B2 true JP7031961B2 (ja) 2022-03-08

Family

ID=63143333

Family Applications (1)

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

Country Status (7)

Country Link
US (1) US11544132B2 (ja)
EP (1) EP3662382B1 (ja)
JP (1) JP7031961B2 (ja)
KR (1) KR20200035013A (ja)
CN (1) CN110945491B (ja)
TW (1) TWI768088B (ja)
WO (1) WO2019026642A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019201533A1 (de) * 2019-02-07 2020-08-13 Robert Bosch Gmbh Systemkomponente mit konfigurierbarem Kommunikationsverhalten und Verfahren zum Betreiben einer solchen Systemkomponente
US11113198B2 (en) * 2019-05-06 2021-09-07 Micron Technology, Inc. Timed data transfer between a host system and a memory sub-system
JP2023089317A (ja) * 2020-05-11 2023-06-28 ソニーセミコンダクタソリューションズ株式会社 通信装置及び通信システム
CN111866094B (zh) * 2020-07-01 2023-10-31 天津联想超融合科技有限公司 一种定时任务处理方法、节点及计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008197752A (ja) 2007-02-08 2008-08-28 Sharp Corp データ通信誤動作防止装置、電子機器、データ通信誤動作防止装置の制御方法、データ通信誤動作防止装置の制御プログラム、及び当該プログラムを記録した記録媒体

Family Cites Families (19)

* 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
US8416793B2 (en) 2005-03-29 2013-04-09 Alcatel Lucent Method and apparatus for queue depth detection in a memory system
JP4926648B2 (ja) 2006-10-27 2012-05-09 富士通セミコンダクター株式会社 車載ゲートウェイ装置
JP4879765B2 (ja) * 2007-01-29 2012-02-22 パナソニック株式会社 I2cバス制御回路
JP5350677B2 (ja) * 2008-05-19 2013-11-27 株式会社東芝 バス信号制御回路、及び、バス信号制御回路を備えた信号処理回路
US9264213B2 (en) * 2011-02-08 2016-02-16 Mitsubishi Electric Corporation Time synchronization method for communication system, slave station apparatus, master station apparatus, control device, and program
KR101733273B1 (ko) * 2012-06-01 2017-05-24 블랙베리 리미티드 다중 포맷 오디오 시스템들에서의 확률적 로크 보장 방법에 기초한 범용 동기화 엔진
WO2014109302A1 (ja) 2013-01-09 2014-07-17 シャープ株式会社 端末装置および基地局装置
CN105900340A (zh) 2013-10-09 2016-08-24 高通股份有限公司 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 富士通株式会社 バス制御装置、データ転送システム、及びバス制御方法
US10042797B2 (en) * 2015-02-04 2018-08-07 Qualcomm Incorporated Voltage mode and current mode device enumeration
US10691629B2 (en) 2015-05-26 2020-06-23 Intel Corporation Device, apparatus and system to reduce current leakage during differential communications
US9960981B2 (en) 2015-10-08 2018-05-01 Sony Corporation Communication device, communication method, program, and communication system
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 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信方法、プログラム、および、通信システム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008197752A (ja) 2007-02-08 2008-08-28 Sharp Corp データ通信誤動作防止装置、電子機器、データ通信誤動作防止装置の制御方法、データ通信誤動作防止装置の制御プログラム、及び当該プログラムを記録した記録媒体

Also Published As

Publication number Publication date
US11544132B2 (en) 2023-01-03
TW201911838A (zh) 2019-03-16
KR20200035013A (ko) 2020-04-01
JP2019033331A (ja) 2019-02-28
TWI768088B (zh) 2022-06-21
WO2019026642A1 (en) 2019-02-07
US20200272532A1 (en) 2020-08-27
EP3662382B1 (en) 2022-11-09
EP3662382A1 (en) 2020-06-10
CN110945491A (zh) 2020-03-31
CN110945491B (zh) 2023-06-02

Similar Documents

Publication Publication Date Title
JP7031961B2 (ja) 通信装置、通信方法、プログラム、および、通信システム
JP6953226B2 (ja) 通信装置、通信方法、プログラム、および、通信システム
KR100354675B1 (ko) 전송매체접속장치및제어장치와피제어장치및기억매체
EP3605348B1 (en) Communication device, communication method, program, and communication system
JP2007122117A (ja) ストレージシステム及び記憶制御方法
JP5451705B2 (ja) 自動車用電子制御装置及びデータ通信方法
JP2008225753A (ja) 計算機システム、アクセス制御方法及び管理計算機
TWI755538B (zh) 通訊裝置、通訊方法、程式及通訊系統
JP2005316762A (ja) ディスク記憶装置及びraid構築方法
US20180152315A1 (en) Communication system
JP6302004B2 (ja) 書込みプログラム
JP2004030254A (ja) リモートsi制御方式
TWI757491B (zh) 通訊裝置、通訊方法、程式及通訊系統
JP7270859B2 (ja) ネットワークシステム、通信方法、および、通信プログラム
WO2022163279A1 (ja) 補助電源システム、モジュール、補助電源制御方法、及びプログラム
JPH04172502A (ja) プログラマブルコントローラにおけるネットワーク間通信方式
JP4269911B2 (ja) メッセージ交換管理方法、ネットワークシステム、そのマスタノード、ノード、プログラム
JP2002163043A (ja) ネットワーク端末装置
JP2005056141A (ja) プラント監視制御システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200716

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210719

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211228

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20211228

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220112

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220118

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220222

R150 Certificate of patent or registration of utility model

Ref document number: 7031961

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150