[go: up one dir, main page]

CN110945490B - 通信设备、通信方法、程序和通信系统 - Google Patents

通信设备、通信方法、程序和通信系统 Download PDF

Info

Publication number
CN110945490B
CN110945490B CN201880047901.2A CN201880047901A CN110945490B CN 110945490 B CN110945490 B CN 110945490B CN 201880047901 A CN201880047901 A CN 201880047901A CN 110945490 B CN110945490 B CN 110945490B
Authority
CN
China
Prior art keywords
communication device
error
communication
received
slave
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
CN201880047901.2A
Other languages
English (en)
Other versions
CN110945490A (zh
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
Publication of CN110945490A publication Critical patent/CN110945490A/zh
Application granted granted Critical
Publication of CN110945490B publication Critical patent/CN110945490B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Communication Control (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

更可靠地执行通信。CCI(I3C DDR)处理部当被请求由I3C主设备访问以用于读取操作时确定索引的状态。然后,错误处理部控制I3C从设备13基于索引的状态检测错误的发生,并且忽略所有通信,直到I3C主设备停止或重新启动DDR模式为止,当对从I3C主设备发送的信号执行确认处理时,进一步控制I3C从设备13以发送NACK响应。该技术能够应用于例如I3C总线。

Description

通信设备、通信方法、程序和通信系统
技术领域
本发明涉及通信设备、通信方法、程序和通信系统。更具体地,本发明涉及用于更可靠地执行通信的通信设备、通信方法、程序和通信系统。
背景技术
以往,CCI(相机控制接口)已经被广泛地用作控制各种装置中的寄存器的总线IF(接口)。利用CCI,物理层已经采用I2C(内部集成电路)协议。此外,近年来,随着I3C(改进的内部集成电路)协议作为下一代协议的制定和修订,在I2C协议下有更高的速度需求。
例如,I2C和I3C协议被配置为使具有管理权限的主设备经由总线IF的通信与连接到总线IF并由主设备控制的从设备通信。I3C协议还提供了保持与I2C设备的兼容性的功能,该功能称为热连接,使得从设备在活动期间部分地连接总线IF,以及具有在多个主设备中将主设备权限从一个主设备分配给另一个主设备的功能。
此外,专利文献1公开了一种通信设备,其能够通过以避免由于通信启动或停止的错误检测而导致的通信不可用的方式定义在I3C协议下的错误检测方法来执行更可靠的通信。
引用列表
专利文献
专利文献1:PCT专利公开号WO2017/061330
发明内容
技术问题
顺便提及,虽然I2C和分级高于I2C的CCI没有定义检测错误的功能,但是I3C协议定义了错误检测方法和错误恢复方法。然而,在例如发生索引错误或FIFO(先进先出)溢出的情况下,如稍后将讨论的,存在通信可能不被正常执行的担忧。因此,需要针对这种错误采取对策,以便更可靠地执行通信。
本发明是鉴于上述情况而制成,并且提供了用于更可靠地执行通信的装置。
问题的解决方案
根据本发明的第一方面,提供了一种通信设备,其经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信。从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。高级层包括高级层通信处理部和高级层错误处理部,高级层通信处理部被配置为当管理通信设备请求访问读取操作时确定索引是否处于未定义状态;高级层错误处理部被配置为命令低级层基于确定索引处于未定义状态检测错误的发生,并且忽略所有通信直到管理通信设备停止或重新启动高速通信模式经为止,还命令低级层当对从管理通信设备发送的信号执行确认处理时总是发送NACK响应。
此外,根据本发明的第一方面,提供了一种与通信设备一起使用的通信方法,其经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信,从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。通信方法包括当管理通信设备请求访问读取操作时,使从属通信设备确定索引是否处于未定义状态,并且使得从属通信设备基于确定索引处于未定义状态来命令低级层检测错误的发生,并且忽略所有通信直到管理通信设备停止或重新启动高速通信模式为止,还命令低级层当对从管理通信设备发送的信号执行确认处理时总是发送NACK响应。
此外,根据本发明的第一方面,提供了一种用于使通信设备的计算机执行通信处理的程序,通信设备经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信,从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。通信处理包括当管理通信设备请求访问读取操作时使计算机确定索引是否处于未定义状态,以及使计算机命令低级层基于确定索引处于未定义状态来检测错误的发生,并且忽略所有通信直到管理通信设备停止或重新启动高速通信模式为止,还命令低级层当对从管理通信设备发送的信号执行确认处理时总是发送NACK响应。
因此,根据本发明的第一方面,当管理通信设备发出读取访问请求时,确定索引是否处于未定义状态。命令低级层基于确定索引处于未定义状态来检测错误的发生,并且忽略所有通信直到管理通信设备停止或重新启动高速通信模式为止,并且当对从管理通信设备发送的信号执行确认处理时总是发送NACK响应。
根据本发明的第二方面,提供了一种通信设备,其经由总线以管理方式控制通信。管理通信设备包括低级层和高级层,低级层被配置为经由总线与从属通信设备通信,从属通信设备在管理通信设备的控制下以高速通信模式执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。高级层包括高级层通信处理部,其被配置为清除内部的索引,从而在低级层检测到错误或者接收到从从属通信设备发送的NACK响应的接收的通知的情况下,将索引带入未定义状态。
根据本发明的第二方面,提供了一种用于与通信设备一起使用的通信方法,其经由总线以管理方式控制通信,管理通信设备包括低级层和高级层,低级层被配置为经由总线与从属通信设备进行通信,从属通信设备在管理通信设备的控制下以高速通信模式执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。该通信方法包括使管理通信设备清除内部的索引,从而在低级层检测到错误或者高级层接收到从从属通信设备发送的NACK响应的接收的通知的情况下,将索引带入未定义状态。
根据本发明的第二方面,提供了一种用于使通信设备的计算机执行通信处理的程序,通信设备经由总线以管理方式控制通信,管理通信设备包括低级层和高级层,低级层被配置为经由总线与从属通信设备进行通信,从属通信设备在管理通信设备的控制下以高速通信模式执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。该通信处理包括使计算机清除内部的索引,从而在低级层检测到错误或者高级层接收到从从属通信设备发送的NACK响应的接收的通知的情况下,将索引带入未定义状态。
因此,根据本发明的第二方面,在低级层检测到错误或接收到从从属通信设备发送的NACK响应的接收的通知的情况下,清除内部的索引并将其带入未定义状态。
根据本发明的第三方面,提供了一种通信系统,包括管理通信设备,其控制经由总线的通信;以及从属通信设备,其以与管理通信设备连接并由其控制的方式执行通信。从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。高级层包括高级层通信处理部和高级层错误处理部,高级层通信处理部被配置为当管理通信设备请求访问读取操作时确定索引是否处于未定义状态;高级层错误处理部被配置为命令低级层基于确定索引处于未定义状态检测错误的发生,并且忽略所有通信直到管理通信设备停止或重新启动高速通信模式为止,还命令低级层当对从管理通信设备发送的信号执行确认处理时总是发送NACK响应。管理通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与从属通信设备进行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。高级层包括高级层通信处理部,其被配置为清除内部的索引,从而在低级层检测到错误或者接收到从从属通信设备发送的NACK响应的接收的通知的情况下,将索引带入未定义状态。
因此,根据本发明的第三方面,利用从属通信设备,当管理通信设备发出读取访问请求时,确定索引是否处于未定义状态。命令低级层基于确定索引处于未定义状态来检测错误的发生,并且忽略所有通信直到管理通信设备停止或重新启动高速通信模式为止,并且当对从管理通信设备发送的信号执行确认处理时总是发送NACK响应。另一方面,利用管理通信设备,在低级层检测到错误或者接收到从从属通信设备发送的NACK响应的接收的通知的情况下,清除内部的索引并将其带入未定义状态。
根据本发明的第四方面,提供了一种通信设备,其经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信。从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。高级层包括高级层通信处理部和高级层错误处理部,高级层通信处理部被配置为确定是否存在超过先前通知的发送和接收的字节数的写入数据的延续作为构成要在通信中发送和接收的数据的字节数;高级层错误处理部被配置为控制低级层基于确定存在超过所发送和接收的字节数的写入数据的延续来检测错误的发生,并且忽略所有通信直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。
此外,根据本发明的第四方面,提供了一种与通信设备一起使用的通信方法,其经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信。从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。通信方法包括使从属通信设备确定是否存在超过先前通知的发送和接收的字节数的写入数据的延续作为构成要在通信中发送和接收的数据的字节数;以及使从属通信设备控制低级层基于确定存在超过所发送和接收的字节数的写入数据的延续来检测错误的发生,并且忽略所有通信直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。
此外,根据本发明的第四方面,提供了一种用于使通信设备的计算机执行通信处理的程序,通信设备经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信,从属于通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。通信处理包括使计算机确定是否存在超过先前通知的发送和接收的字节数的写入数据的延续作为构成要在通信中发送和接收的数据的字节数;以及使计算机控制低级层基于确定存在超过发送和接收的字节数的写入数据的延续来检测错误的发生,并且忽略所有通信直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。
因此,根据本发明的第四方面,确定是否存在超过先前通知的发送和接收的字节数作为构成要在通信中发送和接收的数据的字节数的写入数据的延续。控制低级层基于确定超过所发送和接收的字节数的写入数据的延续来检测错误的发生,并且忽略所有通信直到至少管理通信设备停止或重新启动高速通信模式为止。还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。
根据本发明的第五方面,提供了一种通信设备,其经由总线以管理方式控制通信。管理通信设备包括低级层和高级层,低级层被配置为经由总线与从属通信设备通信,从属通信设备在管理通信设备的控制下以高速通信模式执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。高级层包括高级层通信处理部,被配置为确定是否存在超过先前通知的发送和接收的字节数的读取数据的延续作为构成要在通信中发送和接收的数据的字节数。低级层包括错误处理部,其被配置为在基于确定存在超过发送和接收的字节数的读取数据的延续而检测到错误的发生时,使高级层清除索引,取消通信,并且在重置错误之前至少停止或重新启动高速通信模式。
此外,根据本发明的第五方面,提供了一种用于与通信设备一起使用的通信方法,其经由总线以管理方式控制通信,管理通信设备包括低级层和高级层,低级层被配置为经由总线与从属通信设备通信,从属通信设备以高速通信模式在管理通信设备的控制下执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。通信方法包括使管理通信设备确定是否存在超过先前通知的发送和接收的字节数的读取数据的延续作为构成能够在通信中发送和接收的数据的字节数;并且使管理通信设备在基于确定存在超过发送和接收的字节数的读取数据的延续而检测到错误的发生时,使高级层清除索引,取消通信,并且在重置错误之前至少停止或重新启动高速通信模式。
此外,根据本发明的第五方面,提供了一种用于使通信设备的计算机执行通信处理的程序,通信设备经由总线以管理方式控制通信,管理通信设备包括低级层和高级层,低级层被配置为经由总线与从属通信设备通信,从属通信设备在管理通信设备的控制下以高速通信模式执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。通信处理包括使计算机确定是否存在超过先前通知的发送和接收的字节数的读取数据的延续作为构成能够在通信中发送和接收的数据的字节数,并且使计算机在基于确定存在超过发送和接收的字节数的读取数据的延续而检测到错误的发生时,使高级层清除索引,取消通信,并且在重置错误之前至少停止或重新启动高速通信模式。
因此,根据本发明的第五方面,确定是否存在超过先前通知的发送和接收的字节数的读取数据的延续作为构成能够在通信中发送和接收的数据的字节数。在基于确定存在超过发送和接收的字节数的读取数据的延续而检测到错误的发生时,使高级层清除索引,取消通信,并且在重置错误之前至少停止或重新启动高速通信模式。
根据本发明的第六方面,提供了一种通信系统,包括管理通信设备,其经由总线控制通信;以及从属通信设备,其以与管理通信设备连接并由其控制的方式执行通信。从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。高级层包括高级层通信处理部和高级层错误处理部,高级层通信处理部被配置为确定是否存在超过先前通知的发送和接收的字节数的写入数据的延续作为构成要在通信中发送和接收的数据的字节数;高级层错误处理部被配置为命令低级层基于确定存在超过所发送和接收的字节数的写入数据的延续来检测错误的发生,并且忽略所有通信直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。管理通信设备包括低级层和高级层,低级层被配置为经由总线与从属通信设备通信,从属通信设备在管理通信设备的控制下以高速通信模式执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。高级层包括高级层通信处理部,被配置为确定是否存在超过先前通知的发送和接收的字节数的读取数据的延续作为构成要在通信中发送和接收的数据的字节数。低级层包括错误处理部,其被配置为在基于确定存在超过发送和接收的字节数的读取数据的延续而检测到错误的发生时,使高级层清除索引,取消通信,并且在重置错误之前至少停止或重新启动高速通信模式。
因此,根据本发明的第六方面,利用从属通信设备,确定是否存在超过先前通知的发送和接收的字节数的写入数据的延续作为构成要在通信中要发送和接收的数据的字节数。控制低级层以基于确定存在超过发送和接收的字节数的写入数据的延续来检测错误的发生,并且忽略所有通信直到至少管理通信设备停止或重新启动高速通信模式为止。还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。另一方面,利用管理通信设备确定是否存在超过先前通知的发送和接收字节数的读取数据的延续作为构成要在通信中发送和接收的数据的字节数。在基于确定存在超过发送和接收的字节数的读取数据的延续而检测到错误的发生时,使高级层清除索引,取消通信,并且在重置错误之前至少停止或重新启动高速通信模式。
根据本发明的第七方面,提供了一种通信设备,其经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信。从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。高级层包括高级层通信处理部和高级层错误处理部,高级层通信处理部被配置为确定是否接收到具有超过可以在单个发送和接收操作中写入的最大传输字节数的字节数的写入数据;高级层错误处理部被配置为控制低级层基于在确定接收到具有超过最大传输字节数的字节数的写入数据来检测错误的发生,并且忽略所有通信直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。
根据本发明的第七方面,提供了一种与通信设备一起使用的通信方法,其经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信,从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。该通信方法包括使从属通信设备确定是否接收到具有超过可以在单个发送和接收操作中写入的最大传输字节数的字节数的写入数据;以及使从属通信设备控制低级层基于在确定接收到具有超过最大传输字节数的字节数的写入数据来检测错误的发生,并且忽略所有通信直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。
根据本发明的第七方面,提供了一种用于使通信设备的计算机执行通信处理的程序,通信设备经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信,从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。通信处理包括使计算机确定是否接收到具有超过可以在单个发送和接收操作中写入的最大传输字节数的字节数的写入数据,并且使计算机基于在确定接收到具有超过最大传输字节数的字节数的写入数据来检测错误的发生,并且忽略所有通信直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。
因此,根据本发明的第七方面,确定是否接收到超过构成能够在单个发送和接收操作中写入的数据的最大传输字节数的写入数据。控制低级层基于在确定接收到超过最大传输字节数的写入数据来检测错误的发生,并且忽略所有通信直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。
根据本发明的第八方面,提供了一种通信设备,其经由总线以管理方式控制通信。管理通信设备包括低级层和高级层,低级层被配置为经由总线与从属通信设备通信,从属通信设备在管理通信设备的控制下以高速通信模式执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。高级层包括高级层通信处理部,被配置为确定是否接收到具有超过在单个发送和接收操作中能够读取的最大传输字节数的字节数的读取数据。低级层包括错误处理部,被配置为在基于确定接收到具有超过最大传输字节数的字节数的读取数据而检测错误的发生时,取消通信并且在重置错误之前至少停止或重新启动高速通信模式。
根据本发明的第八方面,提供了一种用于与通信设备一起使用的通信方法,其经由总线以管理方式控制通信,管理通信设备包括低级层和高级层,低级层被配置为经由总线与从属通信设备通信,从属通信设备在管理通信设备的控制下以高速通信模式执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。通信方法包括使管理通信设备确定是否接收到具有超过在单个发送和接收操作中能够读取的最大传输字节数的字节数的读取数据;并且使管理通信设备在确定接收到具有超过最大传输字节数的字节数的读取数据而检测错误的发生时,取消通信并且在重置错误之前至少停止或重新启动高速通信模式。
根据本发明的第八方面,提供了一种用于使通信设备的计算机执行通信处理的程序,通信设备经由总线以管理方式控制通信,管理通信设备包括低级层和高级层,低级层被配置为经由总线与从属通信设备通信,从属通信设备在管理通信设备的控制下以高速通信模式执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。通信处理包括使计算机确定是否接收到具有超过在单个发送和接收操作中能够读取的最大传输字节数的字节数的读取数据,并且使计算机在基于确定接收到具有超过最大传输字节数的字节数的读取数据而检测错误的发生时,取消通信并且在重置错误之前至少停止或重新启动高速通信模式。
因此,根据本发明的第八方面,确定是否接收到具有超过在单个发送和接收操作中能够读取的最大传输字节数的读取数据。在基于确定接收到具有超过最大传输字节数的读取数据而检测错误的发生时,取消通信并且在重置错误之前停止或重新启动高速通信模式。
根据本发明的第九方面,提供了一种通信系统,包括管理通信设备,其经由总线控制通信;以及从属通信设备,其以与管理通信设备连接并由其控制的方式执行通信。从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。高级层包括高级层通信处理部和高级层错误处理部,高级层通信处理部被配置为确定是否接收到具有超过在单个发送和接收操作中能够写入的最大传输字节数的字节数的写入数据;高级层错误处理部被配置为命令低级层在基于确定接收到具有超过最大传输字节数的字节数的写入数据而检测错误的发生,并且忽略所有通信直到管理通信设备停止或重新启动高速通信模式为止,还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。管理通信设备包括低级层和高级层,低级层被配置为经由总线与从属通信设备通信,从属通信设备在管理通信设备的控制下以高速通信模式执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。高级层包括高级层通信处理部,被配置为确定是否接收到具有超过在单个发送和接收操作中能够读取的最大传输字节数的字节数的读取数据。低级层包括错误处理部,被配置为在基于确定接收到具有超过最大传输字节数的字节数的读取数据而检测错误的发生时,取消通信并且在重置错误之前停止或重新启动高速通信模式。
因此,根据本发明的第九方面,利用从属通信设备,确定是否接收到具有超过在单个发送和接收操作中能够写入的最大传输字节数的写入数据。控制低级层在基于确定接收到具有超过最大传输字节数的写入数据来检测错误的发生,并且忽略所有通信直到管理通信设备停止或重新启动高速通信模式为止,还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。另一方面,利用管理通信设备,确定是否接收到具有超过在单个发送和接收操作中能够读取的最大传输字节数的读取数据。在基于确定接收到具有超过最大传输字节数的读取数据而检测错误的发生时,取消通信并且在重置错误之前停止或重新启动高速通信模式。
本发明的有益效果
根据本发明的第一方面至第九方面,更可靠地执行通信。
以上概述的有益效果并不限制本发明。通过随后的描述,本发明的其他优点将变得显而易见。
附图说明
[图1]图1是描述应用本技术的I3C总线的实施例的典型配置的框图。
[图2]图2是描述使用I3C总线的I3C通信系统的典型配置的框图。
[图3]图3是描述I3C从设备中I3C(SDR)处理部的典型配置的框图。
[图4]图4是描述I3C从设备中I3C(DDR)处理部的典型配置的框图。
[图5]图5是说明由主设备侧的I3C层执行的通信处理的流程图。
[图6]图6是说明由主设备侧的CCI层执行的通信处理的流程图。
[图7]图7是说明由从设备侧的CCI层执行的SDR通信处理的流程图。
[图8]图8是说明由从设备侧的CCI层执行的CCI(I3C DDR)处理的流程图。
[图9]图9是说明错误处理过程的流程图。
[图10]图10是说明由从设备侧的I3C层执行的SDR通信处理的流程图。
[图11]图11是说明确认处理的流程图。
[图12]图12是说明写入接收处理的流程图。
[图13]图13是说明CCC接收处理的流程图。
[图14]图14是说明读取接收处理的流程图。
[图15]图15是说明HDR启动处理的流程图。
[图16]图16是说明由从设备侧的I3C层执行的I3C(DDR)处理的流程图。
[图17]图17是说明DDR写入处理的流程图。
[图18]图18是说明DDR读取处理的流程图。
[图19]图19是说明DDR确认处理的流程图。
[图20]图20是说明成帧错误处理过程的流程图。
[图21]图21是说明奇偶校验错误处理过程的流程图。
[图22]图22是说明CRC错误处理过程的流程图。
[图23]图23是说明索引错误的示意图。
[图24]图24是描述从设备侧上的错误的定义的表格图。
[图25]图25是描述主设备侧上的错误的定义的表格图。
[图26]图26是描述典型SD0错误操作的示意图。
[图27]图27是描述当SS0错误由当前读取操作引起时执行的典型操作的示意图。
[图28]图28是描述典型SD1错误操作的示意图。
[图29]图29是描述当MD0错误发生时执行的典型操作的示意图。
[图30]图30是描述典型SD2错误操作的示意图。
[图31]图31是描述应用本技术的计算机的实施例的典型配置的框图。
具体实施方式
下面参照附图详细描述应用本技术的具体实施例。
<总线IF的典型配置>
图1是描述应用本技术的I3C总线的实施例的典型配置的框图。
图1所示的I3C总线11被配置为具有经由用于发送串行数据SDA的数据信号线14和用于发送串行时钟信号SCL的时钟信号线15彼此连接的I3C主设备12和三个I3C从设备13-1至13-3。
I3C主设备12具有对I3C总线11上的通信的管理权限。I3C主设备12经由数据信号线14和时钟信号线15控制与I3C从设备13-1到13-3的通信。
在I3C主设备12的控制下,I3C从设备13-1到13-3经由I3C总线11执行通信。在随后的描述中,在不需要区分I3C从设备13-1至13-3中的每一个的情况下,在适当的情况下将它们简单地称为I3C从设备13。
如上所述配置的I3C总线11允许根据I3C协议的通信。例如,对于I3C总线11规定了两种数据传输模式:以正常传输速率传输数据的SDR(单数据速率)模式和以高于SDR模式的传输速率传输数据的HDR(高数据速率)模式。此外,HDR模式包括由协议定义的三种传输模式:DDR(双数据速率)模式、TSP(三元符号纯总线)模式和TSL(三元符号传统兼容性总线)模式。
此外,I3C允许使用CCC(通用命令代码)来同时向一个或多个I3C从设备13发送命令,并设置DAA(动态地址分配),用于向一个或多个I3C从设备13动态分配地址。
<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,其在检测到错误发生时处理错误;以及ACK验证部32,其验证作为I3C从设备13的信号确认处理的结果而从I3C从设备13发送的ACK响应或NACK响应。
I3C从设备13包括当I3C通信处于SDR模式时在物理层中执行通信处理的I3C(SDR)处理部41;当I3C通信处于DDR模式时在物理层中执行通信处理的I3C(DDR)处理部42;以及当检测到错误发生时处理错误的错误处理部43。
CCI主设备16包括CCI(I3C SDR)处理部51,其在I3C通信处于SDR模式时作为高级层执行通信处理;以及CCI(I3C DDR)处理部52,其在I3C通信处于DDR模式时作为高级层执行通信处理。
CCI从设备18包括CCI(I3C SDR)处理部61,其在I3C通信处于SDR模式时作为高级层执行通信处理;CCI(I3C DDR)处理部62,其在I3C通信处于DDR模式时作为高级层执行通信处理;以及错误处理部63,其在检测到错误发生时处理错误。
图3是描述I3C从设备13中I3C(SDR)处理部41的典型配置的框图。
如图3所示,I3C(SDR)处理部41包括确认处理部71、写入接收处理部72、CCC接收处理部73、读取接收处理部74、HDR启动处理部75和错误处理部76。
确认处理部71执行如稍后将参照图11的流程图说明的确认处理。例如,即使在I3C协议下作为I3C层操作的确认处理部71确定ACK响应对于I3C层是可接受的,如果CCI层命令发送NACK响应,则确认处理部71发送NACK响应而不是ACK响应。
写入接收处理部72执行如稍后将参照图12的流程图说明的写入接收处理。例如,写入接收处理部72接收从I3C主设备12发送的写入数据,并且在将写入数据转发到CCI从设备18时,确定写入数据中是否发生奇偶校验错误。在确定写入数据中发生了奇偶校验错误的情况下,错误处理部76向CCI从设备18通知指示写入数据中发生了奇偶校验错误的S2错误。
CCC接收处理部73执行如稍后将参照图13的流程图说明的CCC接收处理。例如,CCC接收处理部73确定在从I3C主设备12发送的CCC中是否发生了奇偶校验错误。在确定CCC中发生了奇偶校验错误的情况下,错误处理部76向CCI从设备18通知指示CCC中发生了奇偶校验错误的S1错误。
读取接收处理部74执行如稍后将参照图14的流程图说明的读取接收处理。例如,在经由I3C总线11发送从CCI从设备18接收的读取数据时,读取接收处理部74监测I3C总线11上的信号并确定该信号是否与读取数据匹配。在确定I3C总线11上的信号与读取数据不匹配的情况下,错误处理部76向CCI从设备18通知指示I3C总线11上的信号与读取数据不匹配的S6错误。
HDR启动处理部75执行如稍后将参照图15的流程图说明的HDR启动处理。例如,根据从I3C主设备12发送的命令HDR模式启动的CCC(ENTHDRx),HDR启动处理部75确定将启动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向I3C主设备12发送从CCI从设备18接收的读取数据。
DDR确认处理部83执行如稍后将参照图19的流程图说明的DDR确认处理。例如,即使在I3C协议下作为I3C层操作的DDR确认处理部83确定ACK响应对于I3C层是可接受的,如果CCI层命令发送NACK响应,则DDR确认处理部83发送NACK响应而不是ACK响应。
错误处理部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说明由13C通信系统21执行的典型通信处理。
图5是说明由I3C主设备12侧的I3C层执行的通信处理的流程图。
例如,当向主设备22供电并激活I3C主设备12时,启动该处理。在步骤S11中,在来自CCI主设备16的指令下,I3C主设备12确定是否要在SDR模式或DDR模式下执行与I3C从设备13的通信。
在步骤S11中确定要以SDR模式执行通信的情况下,控制转移到步骤S12。然后,I3C主设备12在SDR模式下执行与I3C从设备13的正常通信。例如,I3C主设备12执行SDR正常处理,直到错误处理部31检测到错误;直到ACK验证部32接收到NACK响应;或者直到通信停止。当SDR正常处理停止时,控制转移到步骤S13。
在步骤S13中,I3C主设备12确定SDR正常处理是否由于通信停止、由于检测到错误或由于接收到NACK响应而在步骤S12中停止。
在步骤S13中确定由于通信停止而停止了SDR正常处理的情况下,控制返回到步骤S12。然后,I3C主设备12通过执行SDR正常处理来继续通信。
另一方面,在步骤S13中确定由于检测到错误或接收到NACK响应而停止SDR正常处理的情况下,控制转移到步骤S14。然后,I3C主设备12通知I3C驱动器17检测到错误或接收到NACK响应。
在步骤S15中,I3C驱动器17通知CCI主设备16中的CCI(I3C SDR)处理部51检测到错误或接收到NACK响应。然后在步骤S16中,I3C驱动器17命令I3C主设备12根据I3C协议规定的恢复方法执行恢复处理。顺便提及,可以使用软件来实现从步骤S15到步骤S16的处理。
在步骤S17中,I3C主设备12执行由I3C驱动器17在步骤S16中命令的恢复处理。此后,控制返回到步骤S12。然后重复类似的步骤。例如,I3C主设备12中的错误处理部31在重置错误之前发送主设备中止,随后停止或重新启动。这允许I3C从设备13从错误中恢复。
另一方面,在步骤S11中确定要在DDR模式下执行通信的情况下,控制转移到步骤S18。然后,I3C主设备12执行DDR正常处理,其中以DDR模式执行与I3C从设备13的正常通信。例如,I3C主设备12执行DDR正常处理,直到错误处理部31检测到错误;直到ACK验证部32接收到NACK响应;或者直到通信停止。然后,在DDR正常处理停止的情况下,控制转移到步骤S19。
在步骤S19中,I3C主设备12确定DDR正常处理是否由于通信停止、由于检测到错误或由于接收到NACK响应而在步骤S18中停止。
在步骤S19中确定由于通信停止而停止了DDR正常处理的情况下,控制返回到步骤S18。然后,I3C主设备12通过执行DDR正常处理来继续通信。
另一方面,在步骤S19中确定由于检测到错误或接收到NACK响应而停止DDR正常处理的情况下,控制转移到步骤S20。然后,I3C主设备12通知I3C驱动器17检测到错误或接收到NACK响应。
在步骤S21中,I3C驱动器17通知CCI主设备16中的CCI(I3C DDR)处理部52检测到错误或接收到NACK响应。然后在步骤S22中,I3C驱动器17命令I3C主设备12根据I3C协议规定的恢复方法执行恢复处理。顺便提及,可以使用软件来实现从步骤S21到步骤S22的处理。
在步骤S23中,I3C主设备12执行由I3C驱动器17在步骤S22中命令的恢复处理。此后,控制返回到步骤S18。然后重复类似的步骤。例如,在发送主设备中止之后,错误处理部31发送HDR退出或HDR重新启动,从而允许I3C从设备13从错误中恢复。
图6是说明由CCI主设备16在主设备-侧CCI层中执行的通信处理的流程图。顺便提及,该通信处理可以使用软件来实现。
例如,当向主设备22供电并激活CCI主设备16并且从上层控制部(未示出)给出指令以执行通信时,启动该处理。在步骤S31中,CCI主设备16确定以SDR模式还是以DDR模式执行通信。例如,CCI主设备16确定在启动通信时将以SDR模式执行通信。如果稍后执行处理以将通信切换到DDR模式,则CCI主设备16确定要在DDR模式下执行通信。
在CCI主设备16确定在步骤S31中要以SDR模式执行通信的情况下,控制转移到步骤S32。然后,CCI(I3C SDR)处理部51执行SDR正常处理。例如,CCI(I3C SDR)处理部51执行SDR正常处理,直到在图5的步骤S14中从I3C驱动器17接收到检测到错误或者I3C主设备12接收到NACK响应的通知或者直到通信停止为止。然后,当停止SDR正常处理时,控制转移到步骤S33。
在步骤S33中,CCI(I3C SDR)处理部51确定SDR正常处理是否由于通信停止或由于接收到检测到错误或接收到NACK响应的通知而停止。
在步骤S33中确定由于通信停止而停止了SDR正常处理的情况下,控制返回到步骤S32。然后,CCI(I3C SDR)处理部51通过执行SDR正常处理来继续通信。
另一方面,在步骤S33中确定由于接收到检测到错误或接收到NACK响应的通知而停止SDR正常处理的情况下,控制转移到步骤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。然后重复类似的步骤。
同时,在CCI主设备16确定在步骤S31要在DDR模式下执行通信的情况下,控制转移到步骤S37。然后CCI(I3C DDR)处理部52执行DDR正常处理。例如,CCI(I3C DDR)处理部52执行DDR正常处理,直到在图5中步骤S21从I3C驱动器17接收到检测到错误或接收到NACK响应的通知;直到检测到MD0错误或MD1错误;或者直到通信停止为止。然后,当DDR正常处理停止时,控制转移到步骤S38。
在步骤S38中,CCI(I3C DDR)处理部52确定DDR正常处理是否由于通信停止、由于接收到检测到错误或接收到NACK响应的通知,或者由于检测到MD0或MD1错误而停止。
在步骤S38中确定由于通信停止而停止了DDR正常处理的情况下,控制返回到步骤S37。然后CCI(I3C DDR)处理部52通过执行DDR正常处理来继续通信。
另一方面,在步骤S33中确定由于接收到检测到错误或接收到NACK响应的通知或由于检测到MD0或MD1错误而停止DDR正常处理的情况下,控制转移到步骤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发送的信号。当I3C从设备13接收到从I3C主设备12发送的信号,然后CCI(I3C SDR)处理部61接收到来自I3C从设备13的信号时,控制转移到步骤S53。
在步骤S53中,CCI(I3C SDR)处理部61基于在步骤S52中接收的信号确定是否要转换到HDR模式。
在CCI(I3C SDR)处理部61确定在步骤S53中不转换到HDR模式的情况下,控制转移到步骤S54。
在步骤S54中,错误处理部63确定在步骤S52中基于CCI(I3C SDR)处理部61接收的信号的字是否被错误地或正常地接收。
在错误处理部63确定在步骤S54错误地接收到字的情况下,控制转移到步骤S55。在步骤S55中,错误处理部63将清除和取消索引。此后,控制返回到步骤S51,并且重复类似的步骤。
另一方面,在错误处理部63确定在步骤S54正常地接收到字的情况下,控制转移到步骤S56。在步骤S56中,CCI(I3C SDR)处理部61确定正常接收的字意味着什么。
在CCI(I3C SDR)处理部61确定在步骤S56该字表示从设备地址和写入命令的情况下,控制转移到步骤S57。在步骤S57中,CCI(I3C SDR)处理部61处理下一个要从I3C从设备13接收的字作为子地址。然后控制返回到步骤S52。
另一方面,在CCI(I3C SDR)处理部61确定在步骤S56中该字意味着子地址的情况下,控制转移到步骤S58。在步骤S58中,CCI(I3C SDR)处理部61保持索引中的字的值。
在步骤S59中,CCI(I3C SDR)处理部61确定是否已经接收到子地址的n个字节。
在CCI(I3C SDR)处理部61确定在步骤S59没有接收到子地址的n个字节的情况下,控制转移到步骤S57。然后重复随后的步骤。
另一方面,在CCI(I3C SDR)处理部61确定在步骤S59已经接收到子地址的n个字节的情况下,控制转移到步骤S60。在步骤S60中,CCI(I3C SDR)处理部61将下一个要从I3C从设备13接收的字作为写入数据进行处理。然后控制返回到步骤S52。
同时,在CCI(I3C SDR)处理部61确定在步骤S56中该字意味着写入数据的情况下,控制转移到步骤S61。在步骤S61中,CCI(I3C SDR)处理部61将数据的值写入经保持的索引地址。
在步骤S62中,CCI(I3C SDR)处理部61使索引递增(1)。在步骤S63中,CCI(I3CSDR)处理部61确定是否从I3C从设备13接收到停止或重新启动(重复启动)。
在CCI(I3C SDR)处理部61确定在步骤S63中未接收到停止或重新启动的情况下,控制转移到步骤S60。然后重复随后的步骤。
另一方面,在CCI(I3C SDR)处理部61确定在步骤S63中接收到停止或重新启动的情况下,控制转移到步骤S64。在步骤S64中,CCI(I3C SDR)处理部61不处理下一个要从I3C从设备13接收的字作为写入数据。此后,控制转移到步骤S76。
同时,在CCI(I3C SDR)处理部61确定在步骤S56中该字意味着从设备地址和读取命令的情况下,控制转移到步骤S65。
在步骤S65中,CCI(I3C SDR)处理部61确定经保持的索引值是否有效。
在CCI(I3C SDR)处理部61确定在步骤S65中经保持的索引值有效(即,正确地定义了索引)的情况下,控制转移到步骤S66。在步骤S66中,CCI(I3C SDR)处理部61从经保持的索引地址读取数据。
在步骤S67中,CCI(I3C SDR)处理部61将在步骤S66中读取的数据传输到I3C从设备13。在步骤S68中,CCI(I3C SDR)处理部61使索引递增(1)。
在步骤S69中,CCI(I3C SDR)处理部61确定下一个读取数据是否就绪。在CCI(I3CSDR)处理部61确定在步骤S69中下一个读取数据就绪的情况下,控制转移到步骤S70。然后CCI(I3C SDR)处理部61确定I3C从设备13是否已经通知接收到主设备中止。
在CCI(I3C SDR)处理部61确定在步骤S70中I3C从设备13没有通知接收到主设备中止的情况下,控制返回到步骤S67。然后连续读取数据。
另一方面,确定在步骤S69中下一个读取数据未就绪或在步骤S70中确定I3C从设备13已经通知接收到主设备中止的情况下,控制转移到步骤S71。在步骤S71中,CCI(I3CSDR)处理部61等待停止或重新启动。然后,当从I3C从设备13接收到停止或重新启动时,控制转移到步骤S76。
同时,在CCI(I3C SDR)处理部61确定在步骤S65中经保持的索引值无效(例如,索引未定义且无效)的情况下,控制转移到步骤S72。在步骤S72中,错误处理部63基于CCI(I3CSDR)处理部61确定经保持的索引值无效来检测SS0错误的发生。
在步骤S73中,错误处理部63命令I3C从设备13发送NACK响应,直到重置SS0错误。
在步骤S74中,错误处理部63等待停止或重新启动。当从I3C从设备13接收到停止或重新启动时,控制转移到步骤S75。
在步骤S75中,在步骤S74中接收到停止或重新启动之后,错误处理部63重置SS0错误。此后,控制转移到步骤S76。
在步骤S76中,CCI(I3C SDR)处理部61确定从I3C从设备13接收到停止和重新启动中的哪一个。
在CCI(I3C SDR)处理部61确定在步骤S76中接收到重新启动的情况下,控制返回至步骤S52。在CCI(I3C SDR)处理部61确定在步骤S76中接收到停止的情况下,控制返回至步骤S51。然后重复类似的步骤。
另一方面,在CCI(I3C SDR)处理部61确定在步骤S53中转换为HDR模式的情况下,控制转移到步骤S77。
在步骤S77中,CCI(I3C SDR)处理部61根据在步骤S53中确定为引起向HDR模式的转换的信号来确定模式的类型。
在步骤S53中确定引起转换到HDR模式的信号是ENTHDR0的情况下,CCI(I3C SDR)处理部61确定在步骤S77中将转换到DDR模式。然后控制转移到步骤S78。在步骤S78中,CCI(I3C DDR)处理部62执行CCI(I3C DDR)处理(稍后将参照图8所讨论的)。此后,控制转移到步骤S81。
另一方面,在步骤S53中确定引起向HDR模式转换的信号是ENTHDR1的情况下,CCI(I3C SDR)处理部61确定在步骤S77中将转换到TSP模式。然后控制转移到步骤S79。在步骤S79中,执行CCI(I3C TSP)处理。此后,控制转移到步骤S81。
同时,在步骤S53中确定引起向HDR模式转换的信号是ENTHDR2的情况下,CCI(I3CSDR)处理部61确定在步骤S77中将转换到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发送的信号。当I3C从设备13接收到从I3C主设备12发送的信号,然后CCI(I3C DDR)处理部62接收到来自I3C从设备13的信号时,控制转移到步骤S92。
在步骤S92中,错误处理部63确定基于CCI(I3C DDR)处理部62在步骤S91中接收的信号的字是否被错误地或正常地接收。
在错误处理部63确定在步骤S92错误地接收到字的情况下,控制转移到步骤S93。然后,错误处理部63将清除和取消索引。此后,控制转移到步骤S94。然后CCI(I3C DDR)处理部62等待HDR退出或HDR重新启动。然后,在从I3C从设备13接收到HDR退出或HDR重新启动时,控制转移到步骤S116。
另一方面,在错误处理部63确定在步骤S92中该字被正常地接收的情况下,控制转移到步骤S95。在步骤S95中,CCI(I3C DDR)处理部62确定正常接收的字意味着什么。
在CCI(I3C DDR)处理部62确定在步骤S95中该字意味着从设备地址的写入命令的情况下,控制转移到步骤S96。在步骤S96中,CCI(I3C DDR)处理部62将下一个要从I3C从设备13接收的字处理为发送和接收的字节数(长度)。然后控制返回到步骤S91。
另一方面,在CCI(I3C DDR)处理部62确定在步骤S95中该字意味着发送和接收的字节数的情况下,控制转移到步骤S97。在步骤S97中,CCI(I3C DDR)处理部62保持发送和接收的字节数(L字节)的值。
在步骤S98中,CCI(I3C DDR)处理部62确定是否已经接收到关于发送和接收的字节数的预定字节数。在CCI(I3C DDR)处理部62确定在步骤S98没有接收到预定字节数的情况下,控制转移到步骤S96。然后重复随后的步骤。
另一方面,在CCI(I3C DDR)处理部62确定在步骤S98已经接收到预定字节数的情况下,控制转移到步骤S99。在步骤S99中,CCI(I3C DDR)处理部62处理下一个要从I3C从设备13接收的字作为子地址。然后控制返回到步骤S91。
同时,在CCI(I3C DDR)处理部62确定在步骤S95中该字意味着子地址的情况下,控制转移到步骤S100。在步骤S100中,CCI(I3C DDR)处理部62在索引中保存子地址的值。
在步骤S101中,CCI(I3C DDR)处理部62确定是否已经接收到关于子地址的预定字节数。在CCI(I3C DDR)处理部62确定在步骤S101没有接收到预定字节数的情况下,控制转移到步骤S99。然后重复随后的步骤。如果CCI(I3C DDR)处理部62确定已经接收到预定字节数,则控制返回到步骤S91。
另一方面,在CCI(I3C DDR)处理部62确定在步骤S95中该字意味着写入数据的情况下,控制转移到步骤S102。在步骤S102中,CCI(I3C DDR)处理部62将数据写入经保持的索引地址。
在步骤S103中,CCI(I3C DDR)处理部62使索引递增(1)。在步骤S104中,CCI(I3CDDR)处理部62确定到目前为止接收的写入数据是否已经超过发送和接收的字节数(L字节)。
在CCI(I3C DDR)处理部62确定在步骤S104写入数据已经超过发送和接收的字节数(L字节)的情况下,控制转移到步骤S105。在步骤S105中,错误处理部63检测SD1错误的发生并执行错误处理过程(稍后将参照图9所讨论的)。此后,控制转移到步骤S116。
另一方面,在CCI(I3C DDR)处理部62确定在步骤S104写入数据没有超过发送和接收的字节数(L字节)的情况下,控制转移到步骤S106。在步骤S106中,CCI(I3C DDR)处理部62确定到目前为止接收的写入数据是否已经超过预定字节数(K字节)。
在CCI(I3C DDR)处理部62确定在步骤S106写入数据已经超过预定字节数(K字节)的情况下,控制转移到步骤S107。在步骤S107中,错误处理部63检测SD2错误的发生并执行错误处理过程(稍后将参照图9所讨论的)。此后,控制转移到步骤S116。另一方面,在CCI(I3C DDR)处理部62确定在步骤S106写入数据没有超过预定字节数(K字节)的情况下,控制返回到步骤S91。
同时,在CCI(I3C DDR)处理部62确定在步骤S95中该字意味着CRC字的情况下,控制转移到步骤S94。然后重复随后的步骤。
另一方面,在CCI(I3C DDR)处理部62确定在步骤S95中该字意味着读取命令和从设备地址的情况下,控制转移到步骤S108。在步骤S108中,CCI(I3C DDR)处理部62确定经保持的索引值是否有效。
同时,在CCI(I3C DDR)处理部62确定在步骤S108经保持的索引值有效(例如,正确地定义了索引)的情况下,控制转移到步骤S109。在步骤S109中,CCI(I3C DDR)处理部62从经保持的索引地址读取数据。
在步骤S110中,CCI(I3C DDR)处理部62将在步骤S109中读取的数据传输到I3C从设备13。在步骤S111中,CCI(I3C DDR)处理部62使索引递增(1)。
在步骤S112中,CCI(I3C DDR)处理部62确定到目前为止发送的读取数据是否已经超过发送和接收的字节数(L字节)。在CCI(I3C DDR)处理部62确定在步骤S112读取数据没有超过发送和接收字节数(L字节)的情况下,控制转移到步骤S113。
在步骤S113中,CCI(I3C DDR)处理部62确定I3C从设备13是否已经给出接收主设备中止的通知。在CCI(I3C DDR)处理部62确定在步骤S113中I3C从设备13没有给出接收到主设备中止的通知的情况下,控制返回到步骤S110。然后连续读取数据。另一方面,在CCI(I3C DDR)处理部62确定在步骤S113中I3C从设备13已经给出接收主设备中止的通知的情况下,控制转移到步骤S94。然后重复随后的步骤。
另一方面,确定在步骤S112中读取数据已经超过发送和接收的字节数(L字节)的情况下,控制转移到步骤S114。在步骤S114中,CCI(I3C DDR)处理部62发送CRC字。此后,控制转移到步骤S94。然后重复随后的步骤。
同时,在CCI(I3C DDR)处理部62确定在步骤S108中经保持的索引值无效(例如,索引未定义且无效)的情况下,控制转移到步骤S115。在步骤S115中,在CCI(I3C SDR)处理部61确定经保持的索引值无效的基础上,错误处理部63检测SD0错误的发生并执行错误处理过程(稍后将参照图9所讨论的)。此后,控制转移到步骤S116。
在步骤S116中,CCI(I3C DDR)处理部62确定从I3C从设备13接收HDR重新启动和HDR退出中的哪一个。
在CCI(I3C DDR)处理部62确定在步骤S116接收到HDR重新启动的情况下,控制返回到步骤S91。然后重复类似的步骤。另一方面,在CCI(I3C DDR)处理部62确定在步骤S116接收到HDR退出的情况下,处理结束。
图9是说明在图8的步骤S105、步骤S107或步骤S115中由CCI从设备18的错误处理部63执行的错误处理过程的流程图。
在步骤S121中,错误处理部63命令I3C从设备13发送NACK响应,直到重置错误(SD0错误、SD1错误或SD2错误)。
在步骤S122中,错误处理部63等待HDR退出或HDR重新启动。然后,当从I3C从设备13接收到HDR退出或HDR重新启动时,控制转移到步骤S123。
在步骤S123中,在步骤S122中接收到HDR退出或HDR重新启动之后,错误处理部63重置错误(SD0错误、SD1错误或SD2错误)。此后,处理结束。
图10是说明由从设备侧I3C层中的I3C(SDR)处理部41执行的SDR通信处理的流程图。
例如,当向从设备23供电并且激活I3C从设备13时,处理启动。在步骤S131中,I3C(SDR)处理部41等待处理,直到I3C主设备12启动或重新启动通信,从而检测到通信的启动或重新启动。然后,当I3C(SDR)处理部41检测到通信的启动或重新启动时,控制转移到步骤S132。
在步骤S132中,I3C(SDR)处理部41验证在紧接着通信启动或重新启动之后发送的第一字。在步骤S133中,I3C(SDR)处理部41确定第一字是否是禁止地址。
在I3C(SDR)处理部41确定在步骤S133中第一字是禁止地址的情况下,控制转移到步骤S134。在步骤S134中,基于I3C(SDR)处理部41确定第一字是禁止地址,错误处理部43检测S0错误的发生。
在步骤S135中,错误处理部43通知CCI从设备18发生S0错误。
在步骤S136中,I3C(SDR)处理部41等待HDR退出。在步骤S137中,I3C(SDR)处理部41确定是否接收到HDR退出。在I3C(SDR)处理部41确定没有接收到HDR退出的情况下,控制返回到步骤S136。在步骤S136中,I3C(SDR)处理部41连续等待HDR退出。
另一方面,在I3C(SDR)处理部41确定在步骤S137接收到HDR退出的情况下,控制转移到步骤S138。在步骤S138中,错误处理部43在步骤S137中由I3C(SDR)处理部41接收到HDR退出之后重置S0错误。此后,控制转移到步骤S150。
同时,在I3C(SDR)处理部41确定在步骤S133中第一字不是禁止地址的情况下,控制转移到步骤S139。在步骤S139中,I3C(SDR)处理部41确定第一字是否是寻址到与I3C总线11连接的所有I3C从设备13的读取命令(7'h7E+R)。
在I3C(SDR)处理部41确定在步骤S139中第一字是读取命令(7'h7E+R)的情况下,控制转移到步骤S134,其中检测到S0错误的发生。然后重复随后的步骤。
另一方面,在I3C(SDR)处理部41确定在步骤S139中第一字不是读取命令(7'h7E+R)的情况下,控制转移到步骤S140。在步骤S140中,I3C(SDR)处理部41确定第一字是否是寻址到与I3C总线11连接的所有I3C从设备13的写入命令(7'h7E+W)。
在I3C(SDR)处理部41确定在步骤S140中第一字是写入命令(7'h7E+W)的情况下,控制转移到步骤S141。然后确认处理部71执行确认处理(稍后将参照图11所讨论的)。
在步骤S142中,I3C(SDR)处理部41确定在步骤S141的确认处理期间发送了ACK响应和NACK响应中的哪一个。
在I3C(SDR)处理部41确定在步骤S142中发送ACK响应的情况下,控制转移到步骤S143。在步骤S143中,I3C(SDR)处理部41确定下一次是否已经实现重新启动。在I3C(SDR)处理部41确定下一次重新启动已经实现的情况下,控制返回到步骤S132。
另一方面,在I3C(SDR)处理部41确定在步骤S143中下一次没有实现重新启动的情况下,控制转移到步骤S144。即,这种情况下的第一字是CCC,从而CCC接收处理部73执行CCC接收处理(稍后将参照图13所讨论的)。此后,控制转移到步骤S150。
同时,在I3C(SDR)处理部41确定在步骤S142中发送NACK响应的情况下,控制转移到步骤S145。然后,I3C(SDR)处理部41等待停止或重新启动。在接收到停止或重新启动时,控制转移到步骤S150。
另一方面,在I3C(SDR)处理部41确定在步骤S140中第一字不是写入命令(7'h7E+W)的情况下,控制转移到步骤S146。即,在这种情况下,第一字是与I3C总线11连接的多个I3C从设备13之一的地址。在步骤S146中,I3C(SDR)处理部41确定第一字是否与自己的地址匹配。
在I3C(SDR)处理部41确定在步骤S146中第一字与自己的地址不匹配的情况下,控制转移到步骤S145。即,在这种情况下,第一字是另一个I3C从设备13的地址。因此,在步骤S145中,I3C(SDR)处理部41等待停止或重新启动。
另一方面,在I3C(SDR)处理部41确定在步骤S146中第一字与自己的地址匹配的情况下,控制转移到步骤S147。在步骤S147中,I3C(SDR)处理部41确定与自己的地址一起发送的命令是写入命令还是读取命令。
在I3C(SDR)处理部41确定在步骤S147中命令是写入命令的情况下,控制转移到步骤S148。然后写入接收处理部72执行写入接收处理(稍后将参照图12所讨论的)。此后,控制转移到步骤S150。
另一方面,在I3C(SDR)处理部41确定在步骤S147中命令是读取命令的情况下,控制转移到步骤S149。然后,读取接收处理部74执行读取接收处理(稍后将参照图14所讨论的)。此后,控制转移到步骤S150。
在步骤S150中,I3C(SDR)处理部41确定接收到停止和重新启动中的哪一个。
在I3C(SDR)处理部41确定在步骤S150中接收到重新启动的情况下,控制返回到步骤S132。在I3C(SDR)处理部41确定接收到停止的情况下,控制返回到步骤S131。然后重复类似的步骤。
图11是说明图10的步骤S141中的确认处理部71所执行的确认处理的流程图。
在步骤S161中,确认处理部71关于上述写入命令(7'h7E+W)确定I3C从设备13是否可接受ACK响应。例如,在正常接收到命令或数据的情况下,确认处理部71确定要发送ACK响应。在错误地接收到命令或数据的情况下,确认处理部71确定不发送ACK响应(即,发送NACK响应)。
在确认处理部71确定在步骤S161中I3C从设备13是可接受ACK响应的情况下,控制转移到步骤S162。
在步骤S162中,假设确认处理部71在步骤S161中确定ACK响应是可接受的,则错误处理部76确定CCI从设备18是否正在请求利用NACK重写响应。例如,CCI从设备18请求利用NACK重写响应,直到SS0错误重置,而与上述的I3C协议无关。
在错误处理部76确定在步骤S162中CCI从设备18没有请求利用NACK重写响应的情况下,控制转移到步骤S163。然后确认处理部71发送ACK响应。此后,处理结束。
另一方面,在确认处理部71确定在步骤S161中I3C对于从设备13而言ACK响应是不可接受的(即,将发送NACK响应)情况下,控制转移到步骤S164。同样,在错误处理部76确定在步骤S162中CCI从设备18正在请求利用NACK重写响应的情况下,控制转移到步骤S164。在步骤S164中,确认处理部71发送NACK响应。此后,处理结束。
图12是说明由图10的步骤S148中的写入接收处理部72执行的写入接收处理的流程图。
在步骤S171中,写入接收处理部72将接收的从设备地址和写入命令发送到CCI从设备18。
在步骤S172中,确认处理部71执行确认处理(以上参照图11所讨论的)。在步骤S173中,写入接收处理部72确定在确认处理期间发送ACK响应和NACK响应中的哪一个。
在写入接收处理部72确定在步骤S173中发送ACK响应的情况下,控制转移到步骤S174。在步骤S174中,写入接收处理部72接收下一个字作为写入数据,并将接收的写入数据发送到CCI从设备18。
在步骤S175中,写入接收处理部72确定在步骤S173中接收的写入数据中是否存在奇偶校验错误。
在步骤S175确定不存在奇偶校验错误的情况下,控制转移到步骤S176。然后,写入接收处理部72确定下一次是否已经实现重新启动或停止。在写入接收处理部72确定在步骤S176中下一次没有实现重新启动或停止的情况下,控制返回到步骤S174。然后重复类似的步骤。
另一方面,在步骤S176中确定下一次实现了重新启动或停止的情况下,处理结束。
同时,在写入接收处理部72确定在步骤S175中存在奇偶校验错误的情况下,控制转移到步骤S177。在步骤S177中,基于写入接收处理部72确定存在奇偶校验错误,错误处理部76检测S2错误的发生。
在步骤S178中,错误处理部76通知CCI从设备18已经发生S2错误。
在步骤S179中,写入接收处理部72等待停止或重新启动。在步骤S180中,写入接收处理部72确定是否接收到停止或重新启动。
在写入接收处理部72确定在步骤S180中没有接收到停止或重新启动的情况下,控制返回到步骤S179。然后写入接收处理部72连续等待停止或重新启动。
另一方面,在写入接收处理部72确定在步骤S180中接收到停止或重新启动的情况下,控制转移到步骤S181。在步骤S181中,当在步骤S180中由写入接收处理部72接收到停止或重新启动时,错误处理部43重置S2错误。此后,处理结束。
同时,在写入接收处理部72确定在步骤S173中发送NACK响应的情况下,控制转移到步骤S182。在步骤S182中,写入接收处理部72等待停止或重新启动。当接收到停止或重新启动时,处理结束。
图13是说明在图10的步骤S144中由CCC接收处理部73执行的CCC接收处理的流程图。
在步骤S191中,CCC接收处理部73确定CCC中是否存在奇偶校验错误。
在CCC接收处理部73确定在步骤S191中存在奇偶校验错误的情况下,控制转移到步骤S192。在步骤S192中,根据CCC接收处理部73确定存在奇偶校验错误,错误处理部76检测S1错误的发生。
在步骤S193中,错误处理部76通知CCI从设备18已经发生S1错误。
在步骤S194中,CCC接收处理部73等待HDR退出。在步骤S195中,CCC接收处理部73确定是否接收到HDR退出。在CCC接收处理部73确定在步骤S195中没有接收到HDR退出的情况下,控制返回到步骤S194。然后CCC接收处理部73连续等待HDR退出。
另一方面,在CCC接收处理部73确定在步骤S195中接收到HDR退出的情况下,控制转移到步骤S196。在步骤S196中,当CCC接收处理部73在步骤S195中接收到HDR退出,错误处理部76重置S1错误。此后,处理结束。
同时,在CCC接收处理部73确定在步骤S191中不存在奇偶校验错误的情况下,控制转移到步骤S197。在步骤S197中,CCC接收处理部73确定CCC排序的内容。
在CCC接收处理部73确定在步骤S197中CCC排序的是CCC(ENTDAA)排序动态地址分配的情况下,控制转移到步骤S198。
在步骤S198中,执行涉及动态地址分配的CCC(ENTDAA)处理。
在步骤S199,错误处理部76确定在步骤S198的CCC(ENTDAA)处理期间是否检测到S3错误的发生。
在错误处理部76确定在步骤S199中检测到S3错误的发生的情况下,控制转移到步骤S200。在步骤S200中,错误处理部76通知CCI从设备18检测到S3错误的发生。
另一方面,在错误处理部76确定在步骤S199中未检测到S3错误的发生的情况下,控制转移到步骤S201。在步骤S201中,错误处理部76确定在步骤S198中的CCC(ENTDAA)处理期间是否检测到S4错误的发生。
在错误处理部76确定在步骤S201中检测到S4错误的发生的情况下,控制转移到步骤S200。在这种情况下,错误处理部76在步骤S200通知CCI从设备18检测到S4错误。
在步骤S200的处理之后,控制转移到步骤S202。同样,在错误处理部76确定在步骤S201中未检测到S4错误的发生,即未检测到S3错误和S4错误两者的发生的情况下,控制转移到步骤S202。
在步骤S202中,CCC接收处理部73确定是否接收到停止。在CCC接收处理部73确定在步骤S202中没有接收到停止的情况下,控制返回到步骤S198。然后重复类似的步骤。在确定接收到停止的情况下,处理结束。
另一方面,在CCC接收处理部73确定在步骤S197中CCC排序的是CCC(GET系统)排序请求要发送和获取的各种信息项的情况下,控制转移到步骤S203。
在步骤S203中,执行涉及要发送和获取的各种信息项的请求的CCC(GET系统)处理。
在步骤S204中,错误处理部76确定在步骤S203中的CCC(GET系统)处理期间是否检测到S5错误的发生。
在错误处理部76确定在步骤S204中检测到S5错误的发生的情况下,控制转移到步骤S205。在步骤S205中,错误处理部76通知CCI从设备18检测到S5错误。
在步骤S205的处理之后或者在步骤S204中确定没有检测到S5错误的情况下,控制转移到步骤S206。在步骤S206中,CCC接收处理部73确定是否接收到停止或重新启动。
在CCC接收处理部73确定在步骤S206中没有接收到停止或重新启动的情况下,控制返回到步骤S203。然后重复类似的步骤。在确定接收到停止或重新启动的情况下,处理结束。
另一方面,在CCC接收处理部73确定在步骤S197中经CCC排序的是启动HDR模式的CCC(ENTHDRx)排序的情况下,控制转移到步骤S207。
在步骤S207中,HDR启动处理部75执行CCC(ENTHDRx)处理以启动HDR模式。
在步骤S208中,在步骤S207中的CCC(ENTHDRx)处理期间,确定是否接收到HDR退出之后是停止还是重新启动。连续执行CCC(ENTHDRx)处理,直到确定接收到HDR退出之后是停止或重新启动为止。当确定接收到HDR退出之后是停止或重新启动时,处理结束。
顺便提及,尽管图13示出了作为示例的CCC(ENTDAA)处理、CCC(GET系统)处理和CCC(ENTHDRx)处理,但是实际上使用了许多其他CCC。
图14是说明由图10的步骤S149中的读取接收处理部74执行的读取接收处理的流程图。
在步骤S211中,读取接收处理部74将接收的从设备地址和读取命令发送到CCI从设备18。
在步骤S212中,确认处理(以上参照图11所讨论的)由确认处理部71执行。在步骤S213中,读取接收处理部74确定在确认处理期间发送ACK响应和NACK响应中的哪一个。
在读取接收处理部74确定在步骤S213中发送ACK响应的情况下,控制转移到步骤S214。在步骤S214中,读取接收处理部74将从CCI从设备18接收的读取数据发送到I3C主设备12。
在步骤S215中,读取接收处理部74确定通过I3C总线11发送的信号是否与传输数据匹配。
在读取接收处理部74确定在步骤S215中通过I3C总线11发送的信号与传输数据匹配的情况下,控制转移到步骤S216。在步骤S216中,读取接收处理部74确定是否从CCI从设备18接收到下一个读取数据。
在读取接收处理部74确定在步骤S216中没有从CCI从设备18接收到下一个读取数据的情况下,控制转移到步骤S217。在步骤S217中,读取接收处理部74向I3C主设备12发送数据结束(数据的结束)。然后,读取接收处理部74等待停止或重新启动。此后,当接收到停止或重新启动时,处理结束。
另一方面,在读取接收处理部74确定在步骤S216中从CCI从设备18接收下一个读取数据的情况下,控制转移到步骤S218。在步骤S218中,读取接收处理部74确定是否从I3C主设备12接收到中止请求。
在读取接收处理部74确定在步骤S218中没有从I3C主设备12接收到中止请求的情况下,控制返回到步骤S214。然后重复类似的步骤。
另一方面,在读取接收处理部74确定在步骤S218中从I3C主设备12接收到中止请求的情况下,控制转移到步骤S219。在步骤S219中,读取接收处理部74通知CCI从设备18接收到中止请求。然后,读取接收处理部74等待停止或重新启动。此后,当接收到停止或重新启动时,处理结束。
同时,在读取接收处理部74确定在步骤S215中通过I3C总线11发送的信号与传输数据不匹配的情况下,控制转移到步骤S220。在步骤S220中,基于由读取接收处理部74确定在步骤S215中通过I3C总线11发送的信号与传输数据不匹配,错误处理部76检测S6错误的发生。
在步骤S221中,错误处理部76通知CCI从设备18已经发生S6错误。在步骤S222中,读取接收处理部74停止发送读取数据。
在步骤S223中,读取接收处理部74等待停止或重新启动。在步骤S224中,读取接收处理部74确定是否接收到停止或重新启动。在读取接收处理部74确定在步骤S224中没有接收到停止或重新启动的情况下,控制返回到步骤S223。然后,读取接收处理部74连续等待停止或重新启动。
另一方面,在读取接收处理部74确定在步骤S224中接收到停止或重新启动的情况下,控制转移到步骤S225。在步骤S225中,当在读取接收处理部74在步骤S224中接收到停止或重新启动时,错误处理部43重置S6错误。此后,处理结束。
同时,在读取接收处理部74确定在步骤S213中发送NACK响应的情况下,控制转移到步骤S226。在步骤S226中,读取接收处理部74等待停止或重新启动。然后,当读取接收处理部74接收到停止或重新启动时,处理结束。
图15是说明由图13的步骤S207中的HDR启动处理部75执行的HDR启动处理的流程图。
在步骤S231中,HDR启动处理部75根据接收到的CCC(ENTHDRx)确定HDR模式的类型。
在HDR启动处理部75确定在步骤S231中接收的CCC是ENTHDR0的情况下,HDR启动处理部75确定DDR模式将被启动。然后控制转移到步骤S232。在步骤S232中,HDR启动处理部75通知CCI从设备18要启动DDR模式。在步骤S233中,I3C(DDR)处理部42执行DDR处理(将参照图16所讨论的)。此后,处理结束。
另一方面,在HDR启动处理部75确定在步骤S231中接收的CCC是ENTHDR1的情况下,HDR启动处理部75确定TSP模式将启动。然后控制转移到步骤S234。在步骤S234中,HDR启动处理部75通知CCI从设备18要启动TSP模式。在步骤S235中,执行TSP处理。此后,处理结束。
同时,在HDR启动处理部75确定在步骤S231接收的CCC是ENTHDR2的情况下,HDR启动处理部75确定要启动TSL模式。然后控制转移到步骤S236。在步骤S236中,HDR启动处理部75通知CCI从设备18要启动TSL模式。在步骤S237中,执行TSL处理。此后,处理结束。
另一方面,在HDR启动处理部75确定在步骤S231中接收的CCC不是ENTHDR0、ENTHDR1或ENTHDR2的情况下,控制转移到步骤S238。在步骤S238中,HDR启动处理部75等待HDR退出。此后,当接收到HDR退出时,处理结束。
图16是说明由从设备侧I3C层中的I3C(DDR)处理部42在图15的步骤S233中执行的I3C(DDR)处理的流程图。
在步骤S241中,I3C(DDR)处理部42验证并确定CCC(ENTHDRx)之后立即发送的前导码的类型。
在I3C(DDR)处理部42确定在步骤S241中前导码是2'b01的情况下,控制转移到步骤S242。
在步骤S242中,I3C(DDR)处理部42等待命令。当接收到命令时,控制转移到步骤S243。在步骤S243中,I3C(DDR)处理部42等待从设备地址。当接收到从设备地址时,控制转移到步骤S244。
在步骤S244中,I3C(DDR)处理部42确定在步骤S242中接收的命令和在步骤S243中接收的从设备地址中是否发生奇偶校验错误。在I3C(DDR)处理部42确定在步骤S244中没有发生奇偶校验错误的情况下,控制转移到步骤S245。
在步骤S245中,I3C(DDR)处理部42确定在步骤S243中接收的地址是否与自己的地址匹配。在I3C(DDR)处理部42确定接收到的地址与自己的地址匹配的情况下,控制转移到步骤S246。在步骤S246中,I3C(DDR)处理部42向CCI从设备18发送在步骤S242中接收的命令和在步骤S243中接收的从设备地址。
在步骤S247中,I3C(DDR)处理部42确定在步骤S242中接收的命令是写入命令还是读取命令。
在I3C(DDR)处理部42确定在步骤S247接收的命令是写入命令的情况下,控制转移到步骤S248,其中DDR写入处理部81执行DDR写入处理。此后,控制转移到步骤S252。
另一方面,在I3C(DDR)处理部42确定在步骤S247接收的命令是读取命令的情况下,控制转移到步骤S249,其中DDR读取处理部82执行DDR读取处理。此后,控制转移到步骤S252。
同时,在I3C(DDR)处理部42确定在步骤S244中发生了奇偶校验错误的情况下,控制转移到步骤S250,在步骤S250中,由错误处理部84执行奇偶校验错误处理过程(稍后将参照图21所讨论的)。此后,控制转移到步骤S252。
另一方面,在I3C(DDR)处理部42确定在步骤S241中前导码是2'b00的情况下,控制转移到步骤S252。
同时,在I3C(DDR)处理部42确定在步骤S241中前导码不是2'b01或2'b00的情况下,控制转移到步骤S251,在步骤S251中,由错误处理部84执行成帧错误处理过程(稍后将参照图20所讨论的)。此后,控制转移到步骤S252。
在步骤S252中,I3C(DDR)处理部42等待HDR退出或HDR重新启动。然后,当I3C(DDR)处理部42接收到HDR退出或HDR重新启动时,控制转移到步骤S253。
在步骤S253中,I3C(DDR)处理部42确定在步骤S252中接收到HDR退出和HDR重新启动中的哪一个。在I3C(DDR)处理部42确定在步骤S253中接收到HDR重新启动的情况下,控制返回到步骤S241。然后重复类似的步骤。在确定接收到HDR退出的情况下,处理结束。
图17是说明在图16的步骤S248中由DDR写入处理部81执行的DDR写入处理的流程图。
在步骤S261中,DDR写入处理部81验证并确定前导码的类型。
在DDR写入处理部81确定在步骤S261中前导码是2'b10的情况下,控制转移到步骤S262。
在步骤S262中,DDR写入处理部81等待写入数据。当接收到写入数据时,控制转移到步骤S263。
在步骤S263中,DDR写入处理部81确定在步骤S262中接收的写入数据中是否发生奇偶校验错误。在DDR写入处理部81确定在步骤S263中没有发生奇偶校验错误的情况下,控制转移到步骤S264。
在步骤S264中,DDR写入处理部81将在步骤S262中接收的写入数据发送到CCI从设备18。
在步骤S265中,DDR写入处理部81验证并确定前导码的类型。
在DDR写入处理部81确定在步骤S265中前导码是2'b11的情况下,控制返回到步骤S262。然后连续地接收写入数据。
另一方面,在DDR写入处理部81确定在步骤S265中前导码是2'b01的情况下,控制转移到步骤S266。在步骤S266中,DDR写入处理部81等待CRC。当接收到CRC时,控制转移到步骤S267。
在步骤S267中,DDR写入处理部81确定是否接收到报头(4'hC)。在DDR写入处理部81确定在步骤S267中接收到报头(4'hC)的情况下,控制转移到步骤S268。
在步骤S268中,DDR写入处理部81确定在步骤S266中接收的CRC中是否发生CRC错误。在DDR写入处理部81确定在步骤S268没有发生CRC错误的情况下,控制转移到步骤S269。
在步骤S269中,DDR写入处理部81将在步骤S266中接收的CRC字发送到CCI从设备18。此后,处理结束。
另一方面,在DDR写入处理部81确定在步骤S268已经发生CRC错误的情况下,控制转移到步骤S270。在步骤S270中,错误处理部84执行CRC错误处理过程(稍后将参照图22所讨论的)。此后,处理结束。
同时,在DDR写入处理部81确定在步骤S267没有接收到报头(4'hC)的情况下,控制转移到步骤S271。在步骤S271中,错误处理部84执行成帧错误处理过程(稍后将参照图20所讨论的)。此后,处理结束。
另一方面,在DDR写入处理部81确定在步骤S265中前导码是2'b00的情况下,处理结束。
同时,在DDR写入处理部81确定在步骤S265中前导码是除了2'b11、2'b01或2'b00之外的其他的情况下,控制转移到步骤S272。在步骤S272中,错误处理部84执行成帧错误处理过程(稍后将参照图20所讨论的)。此后,处理结束。
另一方面,在DDR写入处理部81确定在步骤S263中奇偶校验错误已经发生的情况下,控制转移到步骤S273。在步骤S273中,错误处理部84执行奇偶校验错误处理(稍后将参照图21所讨论的)。此后,处理结束。
在DDR写入处理部81确定在步骤S261中前导码是2'b00的情况下,处理结束。
在DDR写入处理部81确定在步骤S261中前导码是除了2'b10或2'b00之外的其他的情况下,控制转移到步骤S274。在步骤S274中,错误处理部84执行成帧错误处理过程(稍后将参照图20所讨论的)。此后,处理结束。
图18是说明在图16的步骤S249中由DDR读取处理部82执行的DDR读取处理的流程图。
在步骤S281中,DDR确认处理由DDR确认处理部83执行。在步骤S282中,DDR读取处理部82确定在确认处理期间发送ACK响应和NACK响应中的哪一个。
在DDR读取处理部82确定在步骤S282中执行了ACK处理的情况下,控制转移到步骤S283。在步骤S283中,DDR读取处理部82将从CCI从设备18接收的读取数据发送到I3C主设备12。
在步骤S284中,DDR读取处理部82确定是否从CCI从设备18接收到下一个读取数据。
在DDR读取处理部82确定在步骤S284中从CCI从设备18接收到下一个读取数据的情况下,控制转移到步骤S285,在步骤S285中发送前导码(前导码[1]=1'b1)。
在步骤S286中,DDR读取处理部82确定接收到的前导码(前导码[0])是1'b1还是1'b0。
在DDR读取处理部82确定在步骤S286中接收到的前导码是1'b1的情况下,控制返回到步骤S283。然后重复类似的步骤。如果确定接收到的前导码是1'b0,则处理结束。
另一方面,在DDR读取处理部82确定在步骤S284中没有从CCI从设备18接收到下一个读取数据的情况下,控制转移到步骤S287。在步骤S287中,DDR读取处理部82发送前导码(2'b01)。在步骤S288中,DDR读取处理部82发送CRC字。此后,处理结束。
同时,在步骤S282中DDR读取处理部82确定执行了NACK处理的情况下,处理结束。
图19是说明在图18的步骤S281中由DDR确认处理部83执行的DDR确认处理的流程图。
在步骤S291中,DDR确认处理部83针对上述读取命令确定I3C从设备13是否可接受ACK响应。例如,在正常接收到命令和数据的情况下,DDR确认处理部83确定要发送ACK响应;在命令或数据中发生错误的情况下,DDR确认处理部83确定不发送ACK响应(即,发送NACK响应)。
在DDR确认处理部83确定在步骤S291中ACK响应对于I3C从设备13是可接受的情况下,控制转移到步骤S292。
在步骤S292中,假设DDR确认处理部83确定在步骤S291中ACK响应是可接受的,则错误处理部84确定CCI从设备18是否请求用NACK重写响应。例如,CCI从设备18请求用NACK重写响应,直到重置SS0错误为止,而与上述的I3C协议无关。
在错误处理部84确定在步骤S292中CCI从设备18没有请求用NACK重写响应的情况下,控制转移到步骤S293。然后DDR确认处理部83发送ACK响应。
另一方面,在DDR确认处理部83确定在步骤S291中ACK响应对于I3C从设备13是不可接受的(即,将发送NACK响应)的情况下,控制转移到步骤S294。同样,在错误处理部84确定在步骤S292中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的层中的错误。此时,CCI从设备18的层忽略从I3C从设备13接收的所有数据,直到I3C从设备13从检测到错误的字中恢复为止,并且直到在SDR模式和DDR模式下都接收到从设备地址和写入命令为止。这是因为写入传输总是伴随有子地址。
作为上述实施例的第一变型,例如从设备23,可以忽略从I3C从设备13接收的所有数据,直到I3C从设备13从当I3C从设备13检测到错误时检测到错误的字中恢复,并且直到CCI从设备18的CCI(I3C SDR)处理部61和CCI(I3C DDR)处理部62都接收到从设备地址和写入命令。这是因为从设备地址和写入命令之后总是跟随有子地址。
在该时间期间,I3C从设备13尝试根据I3C协议发送ACK响应或NACK响应。然而,紧接在从设备地址和CCI(I3C SDR)的读取命令之后的ACK响应经CCI从设备18异常地用NACK响应重写。如果在I3C主设备12和I3C从设备13经一对一地配置的情况下NACK响应被发送到别处,诸如紧接在7E+W之后,则在此执行重写以避免在无意地检测到根据I3C协议规定的M2错误(对广播地址无响应)时发生的故障。根据需要,可以以ACK响应不经NACK响应重写的方式提供特定的受限命令。
此外,作为上述实施例的第二变型,在使用I3C总线11的I3C通信系统21中,在检测到I3C从设备13的层中的错误时,从设备23中的CCI从设备18的层可以忽略所有从I3C从设备13接收的数据直到I3C从设备13从检测到错误的字中恢复并且直到下一次启动或下一次重新启动,从设备地址、写入命令和索引都以SDR模式和DDR模式接收为止。在此期间,I3C从设备13尝试根据I3C协议发送ACK响应或NACK响应。然而,紧接在从设备地址和CCI(I3CSDR)的读取命令之后的ACK响应经CCI从设备18异常地用NACK响应重写。这允许可靠地接收索引。
顺便提及,当检测到SD0错误、SD1错误或SD2错误已经发生时,I3C从设备13可以输出从设备中止以取消来自I3C从设备13的部分的通信。
<错误的处理>
下面参照图23到图30更详细地说明索引错误、发送和接收数据中等于或大于发送和接收的字节数的错误以及FIFO溢出的处理。
参照图23首先说明索引错误。
作为示例,图23示出了根据CCI(I3C DDR)规范在从随机位置(从具有8位长度和8位索引的随机位置启动的顺序读取(奇数字节读取传输))的顺序读取操作期间发生的奇偶校验错误。这里,在接收子地址(子地址[7:0])期间检测到根据I3C协议的奇偶校验错误的情况下,I3C从设备13忽略任何接收到的信号,直到根据I3C协议检测到HDR退出或HDR重新启动为止。因此,如图23所示,CCI从设备18不能接收任何信号,并且不能更新例如发送和接收的字节数(长度),直到在子地址之后检测到HDR重新启动为止。
另一方面,I3C从设备13从下一个HDR重新启动时的错误中恢复,接收读取命令,并将接收的读取命令通知CCI从设备18。然而,未能更新索引的CCI从设备18不能正确地识别读取命令被寻址到的子地址。因此,存在可将关于先前建立的寄存器地址的读取数据发送到I3C主设备12的担忧。
此外,因为基于先前建立的子地址来计算索引的更新,所以当前读取操作(如果接下来继续)将导致错误的读取数据未经检查地发送到I3C主设备12。也就是说,单个错误产生一连串错误。那么,I3C主设备12很难注意到这样发送的数据是错误的值。
发送和接收数据中的错误等于或大于发送和接收的字节数如下所述。
CCI(I3C DDR)除了CCI(I3C SDR)也使用的子地址之外,还具有重新添加到帧结构的发送和接收字节数(长度)。这是因为在发送和接收的字节数未知的情况下,I3C从设备13不能根据I3C DDR规范停止读取传输。
这里,在发送和接收的字节数(长度)由于某种错误而与实际发送和接收的字节数不匹配的情况下,例如,实际发送和接收的字节数可以大于或小于发送和接收的字节数(长度)。于是,将这些可能性之一作为错误来处理是不适合的,即涉及发送和接收比发送和接收的字节数(长度)小的字节数的可能性。这是因为考虑到CCI(I3C DDR)帧结构,这种类型的发送和接收操作存在于正常传输中,并且因为I3C主设备12可能由于诸如优先级的因素而有意地取消通信。
相反,在发送和接收的字节数大于发送和接收的字节数(长度)的情况下,存在引起严重错误的可能性。这种可能性需要作为要求以安全方式停止通信的错误来处理。例如,可能存在用于控制I3C主设备12的软件设备描述符接收超过数据缓冲器的数据的情况,该数据缓冲器预先分配在用于容纳发送和接收的字节数(长度)的数据的存储器中。在这种情况下,存在可能尝试访问存储器外部地址并导致系统关闭的担忧。
下面进一步说明FIFO溢出。
I3C协议允许每个I3C从设备13定义能够在单个发送和接收操作中读取的最大传输字节数(最大读取长度:MRL)和能够在单个发送和接收操作中写入的最大传输字节数(最大写入长度:MWL),所定义的数由I3C主设备12获取。然而,在I3C主设备12无意地发送超过最大传输字节数(最大写入长度:MWL)的写入数据的情况下,存在I3C从设备13可能使其FIFO溢出并且可能不能正确地将数据写入寄存器的担忧。
鉴于此,如图24和图25所述,为I3C通信系统21定义了从索引错误、发送和接收数据中等于或大于发送和接收的字节数的错误以及FIFO溢出中检测和恢复的方法。
首先,说明索引错误的处理。
例如,如图24所示,从设备23利用CCI从设备18的层中新定义的SD0错误。即,当检测到由I3C DDR规范规定的成帧错误、奇偶校验错误或CRC5错误的发生时,I3C从设备13通知CCI从设备18中的CCI(I3C DDR)处理部62相应的一个对应错误已经发生。反过来,CCI从设备18清除目前为止存储的索引信息。
然后,在清除索引的情况下,I3C从设备13接收读取命令,CCI从设备18检测SD0错误的发生(图8中的步骤S115)。如图24所示,当检测到SD0错误以这种方式发生时,CCI从设备18忽略所有通信,直到接收到停止或重新启动为止。
在I3C从设备13此时发送ACK响应或NACK响应的情况下,CCI从设备18命令I3C从设备13发送NACK响应(图9中的步骤S121),直到重置SD0错误而不管I3C协议为止。
此外,图26描述了典型的SD0错误操作。如图所示,CCI从设备18在接收HDR重新启动之后的读取命令时检测SD0错误。这使得可以避免向I3C主设备12发送寻址到错误子地址的读取数据。
此外,在主设备22中的I3C主设备12检测到成帧错误、奇偶校验错误或CRC5错误的发生或接收到NACK响应的情况下,I3C主设备12通知CCI(I3C DDR)处理部52检测到错误或接收到NACK响应(图5中的步骤S20和S21)。转而,CCI(I3C DDR)处理部52清除目前为止存储的索引信息。
此后,I3C主设备12根据I3C协议规定的过程从错误中恢复(图5中的步骤S23)。然后CCI(I3C DDR)处理部52禁止CCI(SDR)当前读取操作(“从当前位置启动的顺序读取”或“从当前位置启动的单次读取”)的使用。即,不使用的原因在于,在I3C主设备12侧发生错误时清除索引,I3C主设备12和I3C从设备13之间的索引内容不一致,使得预期的寄存器读取值不可用。此外,禁止当前读取操作的使用是因为在错误发生时清除索引的情况下,如果当前读取操作用于下一次传输,则SS0错误总是发生。
图27描述当SS0错误由当前读取操作引起时执行的典型操作。
如图27所示,当I3C从设备13检测到奇偶校验错误时,清除CCI从设备18的索引。随后,当I3C从设备13接收HDR重新启动时,重置奇偶校验错误。然后CCI从设备18检测SD0错误并发送NACK响应。当接收到HDR退出时,重置SD0错误。这里,在当前读取操作用于下一次传输的情况下,SS0错误总是出现。因此,如上所述,禁止使用当前读取操作。
接下来说明的是在发送和接收数据时处理等于或大于发送和接收的字节数的错误。
如上述图24所示,例如,从设备23利用在CCI从设备18的层中新定义的SD1错误。即,在紧跟着接收紧接在发送和接收的字节数(长度)之后的写入数据的第一字节之后存在写入数据的延续的情况下,I3C从设备13检测SD1错误(重写长度错误)。具体地,在紧跟着接收紧接在发送和接收的字节数(长度)之后的写入数据的第一字节之后接收的前导码是2'b11(数据跟随)的情况下,检测到SD1错误已经发生,指示存在接收数据的延续。
然后,在检测到SD1错误的发生之后,CCI从设备18清除索引并忽略所有通信,直到接收到HDR退出或HDR重新启动为止。这使得可以避免向寄存器写入接收的数据超过紧接在发送和接收的字节数(长度)之后的一个字节。此时,在I3C从设备13发送ACK响应或NACK响应的情况下,CCI从设备18命令I3C从设备13发送NACK响应,直到重置SD1错误而不管I3C协议为止(图9中的步骤S121)。
此外,图28描述了典型的SD1错误操作。如图所示,在写入数据的延续超过发送和接收的字节数(长度)的情况下,检测到SD1错误的发生。清除索引后,当收到HDR退出或HDR重新启动时重置SD1错误。
此外,如上述图25所示,主设备22利用新定义的MD0错误。也就是说,在紧跟着接收到紧接在发送和接收的字节数(长度)之后的读取数据的第一字节之后存在读取数据的延续的情况下,CCI(I3C DDR)处理部52检测MD0错误(读完长度错误)。具体地,在紧跟着接收紧接在发送和接收的字节数(长度)之后的读取数据的第一字节之后接收的前导码是1'b1的情况下,指示存在接收数据的延续,检测到MD0错误已经发生。
然后,在检测到MD0错误的发生之后,I3C主设备12中的CCI(I3C DDR)处理部52清除索引。此外,在发送主设备中止之后,CCI(I3C DDR)处理部52发送HDR退出或HDR重新启动。通过以这种方式发送HDR退出或HDR重新启动,重置MD0错误,并且允许I3C主设备12返回到正常操作。可选地,I3C主设备12可以在不发送主设备中止的情况下忽略所有读取数据,直到发送HDR退出或HDR重新启动为止。
图29描述当MD0错误发生时执行的典型操作。如图所示,在读取数据的延续超过发送和接收字节数(长度)的情况下,检测到MD0错误。发送HDR退出后,将重置MD0错误。
下面说明FIFO溢出的处理。
在启动通信之前,I3C主设备12能够使用命令(GETMRL或GETMWL)来获取最大传输字节数(MRL或MWL),该命令对发送的最大传输字节数排序。可选地,用户可以向I3C主设备12设置从每个I3C从设备13的数据表读取的最大传输字节数(MRL或MWL)。这使得I3C主设备12能够抑制传输数据的请求超过最大传输字节数(MRL或MWL)。
然而,尽管如上所述执行了处理,但是一些错误可能导致FIFO溢出,其需要进一步进行处理。
例如,在I3C主设备12请求I3C从设备13写入超过最大传输字节数(MWL)的字节数的情况下,I3C从设备13丢弃从设备侧的溢出数据,因为I3C从设备13没有配备根据I3C版本1.0DDR规范停止写入传输。
因此,如上述图24所示,I3C从设备13利用新定义的SD2错误。也就是说,在紧接在接收第K字节的写入数据之后存在写入数据的延续的情况下,I3C从设备13检测SD2错误(重写MWL)。具体地,在紧接在写入数据的第K字节的接收之后接收到的前导码是2'b11(数据跟随)的情况下,指示存在接收数据的延续,检测到SD2错误已经发生。作为参照,用于获得第K字节的值的计算公式在图30的左下角表示。
然后,在检测到SD2错误之后,CCI从设备18清除索引,并忽略所有通信直到接收到HDR退出或HDR重新启动为止。这使得可以避免向寄存器写入超过K字节的接收数据。在I3C从设备13此时发送ACK响应或NACK响应的情况下,CCI从设备18命令I3C从设备13发送NACK响应,直到重置SD2错误而不管I3C协议为止(图9中的步骤S121)。
此外,图30描述了典型的SD2错误操作。如图所示,在写入数据的延续超过K字节的情况下,检测到SD2错误已经发生。清除索引后,当接收到HDR退出或HDR重新启动时重置SD2错误。
同时,在I3C主设备12请求I3C从设备13读取超过最大传输字节数(MRL)的字节数的情况下,不需要识别错误,因为允许该请求发生在为CCI(I3C DDR)定义的正常传输(从随机位置启动的级联顺序读取)中。例如,在给予I3C从设备13这样的请求的情况下,I3C从设备13返回I3C主设备12读取数据,直到达到由最大传输字节数(MRL)定义的最大读取数据字节数为止,然后发送CRC5。接着,I3C从设备13暂时停止传输。
因此,要由I3C主设备12处理的假定情况例如是I3C从设备13在上述正常传输期间无意地发送超过最大传输字节数(MRL)设置的数据的情况。在这种情况下,需要检测错误,因为担心试图访问存储器外部的地址可能发生在I3C主设备12侧。
为此,如上提及的图25所示的,利用新定义的MD1错误。CCI(I3C DDR)处理部52在接收达到最大传输字节数(MRL)的读取数据之后存在读取数据的延续的情况下检测MD1错误(读完MRL)的发生。具体地,在接收达到最大传输字节数(MRL)的读取数据之后立即接收到的前导码是1'b1,指示接收数据的延续的情况下,检测到MD1错误已经发生。
然后,在清除索引之前,I3C主设备12中的CCI(I3C DDR)处理部52检测MD1错误。此外,在发送主设备中止之后,CCI(I3C DDR)处理部52发送HDR退出或HDR重新启动。以这种方式发送HDR退出或HDR重新启动后,重置MD1错误。因此允许I3C主设备12返回到正常操作。
<计算机的典型配置>
以上参照所附流程图说明的处理不需要如流程图中所示按时间顺序执行。即,处理可以包括并行或单独进行(例如,并行处理或面向对象的处理)。而且,所涉及的程序可以由单个CPU或多个CPU在分布式基础上处理。
此外,上述一系列处理(通信方法)可以由硬件或软件来执行。在要执行基于软件的一系列处理的情况下,构成软件的程序可以预先结合在要使用的计算机的专用硬件中,或者从程序记录介质安装,该程序记录介质将程序存储到通用个人计算机或能够基于所安装的程序执行各种功能的类似设备中。
图31是描述使用程序执行上述一系列处理的计算机的典型硬件配置的框图。
在计算机中,CPU(中央处理单元)101、ROM(只读存储器)102、RAM(随机存取存储器)103和EEPROM(电可擦除可编程只读存储器)104经由总线105互连。总线105还与输入/输出接口106连接。输入/输出接口106与外部连接。
在如上所述配置的计算机中,CPU 101通过经由总线105将适当的程序从ROM 102或从EEPROM 104加载到RAM 103中并通过执行所加载的程序来执行上述一系列处理。此外,由计算机(CPU 101)执行的程序可以安装到EEPROM 104中,或者除了预先写入ROM 102之外,还可以经由输入/输出接口106从外部更新。
<配置部件的典型组合>
本技术在实现时可以优选地配置如下:
(1)
一种通信设备,经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信,从属通信设备包括:
低级层,被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;以及
高级层,被配置为分级地位于低级层之上,并且根据索引来读取和写入数据;
其中,高级层包括:
高级层通信处理部,被配置为当管理通信设备请求访问读取操作时确定索引的状态;以及
高级层错误处理部,被配置为控制低级层基于索引的状态来检测错误的发生,并且忽略所有通信,直到至少管理通信设备停止或重新启动高速通信模式为止,当对从管理通信设备发送的信号执行确认处理时,还控制低级层发送NACK响应。
(2)
如以上第(1)段所述的通信设备,其中高级层通信处理部还被配置为响应于由高级层错误处理部检测到的错误,清除索引,从而将索引带入未定义状态。
(3)
一种与通信设备一起使用的通信方法,经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信,从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据,该通信方法包括:
当管理通信设备请求访问用于读取操作时,使从属通信设备确定索引的状态;以及
使从属通信设备基于索引的状态来控制低级层检测错误的发生,并且忽略所有通信,直到至少管理通信设备停止或重新启动高速通信模式为止,低级层进一步被控制为当对从管理通信设备发送的信号执行确认处理时发送NACK响应。
(4)
一种用于使通信设备的计算机执行通信处理的程序,通信设备经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信,从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。该通信处理包括:
当管理通信设备请求访问索引以进行读取操作时,使计算机确定索引的状态;以及
使计算机控制低级层基于索引的状态检测错误的发生,并忽略所有通信,直到至少管理通信设备停止或重新启动高速通信模式为止,低级层还被控制为当对从管理通信设备发送的信号执行确认处理时发送NACK响应。
(5)
一种经由总线以管理方式控制通信的通信设备,管理通信设备包括:
低级层,被配置为经由总线与从属通信设备通信,该从属通信设备在管理通信设备的控制下以高速通信模式执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;以及
高级层,被配置为分级地位于低级层之上,并且根据索引来读取和写入数据;
其中,高级层包括高级层通信处理部,被配置为在低级层已经检测到错误或者接收到从从属通信设备发送的NACK响应接收的通知的情况下,清除内部的索引并由此将索引带入未定义状态。
(6)
如以上第(5)段所述的通信设备,其中在低级层检测到错误之后或者在接收到从从属通信设备发送的NACK响应的接收的通知之后,高级层通信处理部禁止在由低级层恢复通信之后的下一次传输启动时使用当前读取操作。
(7)
一种与通信设备一起使用的通信方法,经由总线以管理方式控制通信,管理通信设备包括低级层和高级层,低级层被配置为经由总线与从属通信设备通信,从属通信设备在管理通信设备的控制下以高速通信模式执行通信;在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上并且根据索引来读取和写入数据,该通信方法包括:
在低级层已经检测到错误或者接收到从从属通信设备发送的NACK响应的接收的通知的情况下,使管理通信设备清除内部的索引,从而使索引进入未定义状态。
(8)
一种用于使通信设备的计算机执行通信处理的程序,通信设备经由总线以管理方式控制的通信,管理通信设备包括低级层和高级层,低级层被配置为经由总线与从属通信设备通信,从属通信设备在管理通信设备的控制下以高速通信模式执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据,通信处理包括:
在低级层已经检测到错误或者接收到从从属通信设备发送的NACK响应的接收的通知的情况下,使计算机清除内部的索引,从而将索引带入未定义状态。
(9)
一种通信系统,包括:
管理通信设备,经由总线控制通信;以及
从属通信设备,以与管理通信设备连接并由其控制的方式执行通信;
其中,从属通信设备包括:
低级层,被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;以及
高级层,被配置为分级地位于低级层之上,并且根据索引来读取和写入数据;
高级层包括:
高级层通信处理部,被配置为当管理通信设备请求访问读取操作时确定索引的状态;以及
高级层错误处理部,被配置为控制低级层基于索引的状态来检测错误的发生,并且忽略所有通信,直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层在对从管理通信设备发送的信号进行确认处理时发送NACK响应;
管理通信设备包括:
低级层,被配置为经由总线以高速通信模式与从属通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;以及
高级层,被配置为分级地位于低级层之上,并且根据索引来读取和写入数据;以及
高级层包括高级层通信处理部,被配置为在低级层检测到错误或者接收到从从属通信设备发送的NACK响应的接收的通知的情况下,清除内部的索引并由此将索引带入未定义状态。
(10)
一种通信设备,经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信,从属通信设备包括:
低级层,被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;以及
高级层,被配置为分级地位于低级层之上,并且根据索引来读取和写入数据;
其中,高级层包括:
高级层通信处理部,被配置为确定是否存在超过先前通知的发送和接收的字节数的写入数据的延续作为构成要在通信中要发送和接收的数据的字节数;以及
高级层错误处理部,被配置为控制低级层基于确定存在超过发送和接收的字节数的写入数据的延续来检测错误的发生,并且忽略所有通信,直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。
(11)
如以上第(10)段所述的通信设备,其中在紧接在发送和接收的字节数之后接收的前导码指示数据接收的延续的情况下,高级层通信处理部确定存在超过发送和接收的字节数的写入数据的延续。
(12)
一种与通信设备一起使用的通信方法,经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信,从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据,通信方法包括:
使从属通信设备确定是否存在超过先前通知的发送和接收的字节数的写入数据的延续作为构成要在通信中发送和接收的数据的字节数;以及
基于确定存在超过发送和接收的字节数的写入数据的延续,使从属通信设备控制低级层检测错误的发生,并且忽略所有通信,直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。
(13)
一种用于使通信设备的计算机执行通信处理的程序,通信设备经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信,从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据,通信处理包括:
使计算机确定是否存在超过先前通知的发送和接收的字节数的写入数据的延续作为构成要在通信中发送和接收的数据的字节数;以及
基于确定存在超过发送和接收的字节数的写入数据的延续使计算机控制低级层检测错误的发生,并且忽略所有通信,直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。
(14)
一种经由总线以管理方式控制通信的通信设备,管理通信设备包括:
低级层,被配置为经由总线与从属通信设备通信,从属通信设备在管理通信设备的控制下以高速通信模式执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;以及
高级层,被配置为分级地位于低级层之上,并且根据索引来读取和写入数据;
其中,高级层包括高级层通信处理部,被配置为确定是否存在超过先前通知的发送和接收的字节数的读取数据的延续作为构成要在通信中发送和接收的数据的字节数;以及
低级层包括错误处理部,被配置为在基于确定存在超过发送和接收的字节数的读取数据的延续而检测到错误的发生时,使高级层清除索引,取消通信,并且在重置错误之前至少停止或重新启动高速通信模式。
(15)
如以上第(14)段所述的通信设备,其中在紧接在发送和接收的字节数之后的读取数据的第一字节之后立即接收到的前导码指示数据接收的延续的情况下,高级层通信处理部确定存在超过发送和接收的字节数的读取数据的延续。
(16)
一种与通信设备一起使用的通信方法,经由总线以管理方式控制通信,管理通信设备包括低级层和高级层,低级层被配置为经由总线与从属通信设备通信,从属通信设备以高速通信模式在管理通信设备的控制下执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据,通信方法包括:
使管理通信设备确定是否存在超过先前通知的发送和接收的字节数的读取数据的延续作为构成在单个发送和接收操作中可以读取的数据的字节数;以及
使管理通信设备在基于确定存在超过发送和接收的字节数的读取数据的延续而检测到错误发生时,使高级层清除所述索引,取消通信,并且在重置错误之前至少停止或重新启动高速通信模式。
(17)
一种用于使通信设备的计算机执行通信处理的程序,通信设备经由总线以管理方式控制通信,管理通信设备包括低级层和高级层,低级层被配置为经由总线与从属通信设备通信,从属通信设备以高速通信模式在管理通信设备控制下执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据,通信处理包括:
使计算机确定是否存在超过先前通知的发送和接收的字节数的读取数据的延续作为构成可以在单个发送和接收操作中读取的数据的字节数;以及
使计算机在基于确定存在超过发送和接收的字节数的读取数据的延续而检测到错误的发生时,使高级层清除索引,取消通信,并且在重置错误之前至少停止或重新启动高速通信模式。
(18)
一种通信系统,包括:
管理通信设备,经由总线控制通信;以及
从属通信设备,以与管理通信设备连接并由其控制的方式执行通信;
其中,从属通信设备包括:
低级层,被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;以及
高级层,被配置为分级地位于低级层之上,并且根据索引来读取和写入数据;
高级层包括:
高级层通信处理部,被配置为确定是否存在超过先前通知的发送和接收的字节数的写入数据的延续作为构成要在通信中发送和接收的数据的字节数;以及
高级层错误处理部,被配置为控制低级层基于确定存在超过发送和接收的字节数的写入数据的延续来检测错误的发生,并且忽略所有通信,直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层在对从管理通信设备发送的信号进行确认处理时发送NACK响应;
管理通信设备包括:
低级层,被配置为经由总线与从属通信设备通信,从属通信设备在管理通信设备的控制下以高速通信模式执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;以及
高级层,被配置为分级地位于低级层之上,并且根据索引来读取和写入数据;
高级层包括高级层通信处理部,被配置为确定是否存在超过先前通知的发送和接收的字节数的读取数据的延续作为构成要在通信中发送和接收的数据的字节数;以及
低级层包括错误处理部,被配置为在基于确定存在超过发送和接收的字节数的读取数据的延续而检测到错误的发生时,使高级层清除索引,取消通信,并且在重置错误之前至少停止或重新启动高速通信模式。
(19)
一种通信设备,经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信,从属通信设备包括:
低级层,被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;以及
高级层,被配置为分级地位于低级层之上,并且根据索引来读取和写入数据;
其中,高级层包括:
高级层通信处理部,被配置为确定是否接收到具有超过可以在单个发送和接收操作中写入的最大传输字节数的字节数的写入数据;以及
高级层错误处理部,被配置为控制低级层基于确定接收到具有超过最大传输字节数的字节数的写入数据来检测错误的发生,并且忽略所有通信,直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层在对从管理通信设备发送的信号进行确认处理时发送NACK响应。
(20)
如以上第(19)段所述的通信设备,其中在紧接着接收到预定字节数的写入数据之后接收的前导码指示数据接收的延续的情况下,高级层通信处理部确定接收的写入数据超过最大传输字节数。
(21)
一种与通信设备一起使用的通信方法,经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信,从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据。通信方法包括:
使从属通信设备确定是否接收到具有超过可以在单个发送和接收操作中写入的最大传输字节数的字节数的写入数据;以及
基于确定接收到具有超过最大传输字节数的字节数的写入数据,使从属通信设备控制低级层检测错误的发生,并且忽略所有通信,直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。
(22)
一种用于使通信设备的计算机执行通信处理的程序,通信设备经由总线以从属于控制通信的管理通信设备并由其控制的方式执行通信,从属通信设备包括低级层和高级层,低级层被配置为经由总线以高速通信模式与管理通信设备通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;高级层被配置为分级地位于低级层之上,并且根据索引来读取和写入数据,通信处理包括:
使计算机确定是否接收到具有超过可以在单个发送和接收操作中写入的最大传输字节数的字节数的写入数据;以及
基于确定接收到具有超过最大传输字节数的字节数的写入数据,使计算机控制低级层检测错误的发生,并且忽略所有通信,直到至少管理通信设备停止或重新启动高速通信模式为止,还控制低级层当对从管理通信设备发送的信号执行确认处理时发送NACK响应。
(23)
一种经由总线以管理方式控制通信的通信设备,管理通信设备包括:
低级层,被配置为经由总线与从属通信设备通信,从属通信设备在管理通信设备的控制下以高速通信模式执行通信,在高速通信模式中,以高于正常传输速率的传输速率传输数据;以及
高级层,被配置为分级地位于低级层之上,并且根据索引来读取和写入数据;
其中,高级层包括高级层通信处理部,被配置为确定是否接收到具有超过可以在单个发送和接收操作中读取的最大传输字节数的字节数的读取数据;以及
低级层包括错误处理部,被配置为在基于确定接收到具有超过最大传输字节数的字节数的读取数据而检测到错误发生时,取消通信,并且在重置错误之前至少停止或重新启动高速通信模式。
(24)
如以上第(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 (20)

1.一种主通信装置,包括:
改进的内部集成电路,所述改进的内部集成电路被配置为:
经由总线以两种不同的通信模式之一与从通信装置通信,所述主通信装置控制所述从通信装置与所述主通信装置之间的通信,所述两种不同的通信模式包括具有第一数据传输速率的第一通信模式和具有高于所述第一数据传输速率的第二数据传输速率的第二通信模式,以及
检测错误;以及
相机控制接口,所述相机控制接口被配置为与所述改进的内部集成电路通信,以及
根据索引读取和写入数据,
接收来自所述改进的内部集成电路的通知,所述通知指示由所述改进的内部集成电路检测到的所述错误,以及
基于所述通知清除所述索引。
2.根据权利要求1所述的主通信装置,
其中,所述改进的内部集成电路还被配置为接收来自所述从通信装置的NACK响应,并且
其中,所述相机控制接口还被配置为接收来自所述改进的内部集成电路的第二通知,所述第二通知指示由所述改进的内部集成电路接收的所述NACK响应,以及
基于所述第二通知清除所述索引。
3.根据权利要求2所述的主通信装置,其中,所述相机控制接口还被配置为响应于接收所述通知或所述第二通知而禁止当前读取操作的使用。
4.根据权利要求2所述的主通信装置,其中,所述相机控制接口还被配置为确定是否存在超过先前通知的发送和接收字节数的读取数据的延续,
响应于确定存在超过所述先前通知的所述发送和接收字节数的所述读取数据的所述延续,检测第二错误,
基于所述第二错误清除所述索引,
控制所述改进的内部集成电路以取消所述主通信装置和所述从通信装置之间的通信,
停止或重新启动所述第二通信模式,以及
响应于停止或重新启动所述第二通信模式,重置所述第二错误。
5.根据权利要求4所述的主通信装置,其中,所述相机控制接口通过确定在接收到紧跟在发送和接收的字节数之后的读取所述数据的第一字节之后立即接收的前导码指示数据接收的延续,来确定存在超过所述先前通知的所述发送和接收的字节数的所述读取数据的所述延续。
6.根据权利要求1所述的主通信装置,其中,所述相机控制接口还被配置为确定是否存在已经以超过在单个发送和接收操作中能够读取的最大传输字节数的字节数接收的读取数据,
响应于确定存在已经以超过所述最大传输字节数的所述字节数接收的所述读取数据,检测第二错误,
控制所述改进的内部集成电路以取消所述主通信装置和所述从通信装置之间的通信,
停止或重新启动所述第二通信模式,以及
响应于停止或重新启动所述第二通信模式,重置所述错误。
7.根据权利要求6所述的主通信装置,其中,所述相机控制接口通过确定紧接在接收达到所述最大传输字节数的所述读取数据之后接收的前导码是否指示数据接收的延续,来确定存在已经以超过所述最大传输字节数的所述字节数接收的所述读取数据。
8.一种从通信装置,包括:
改进的内部集成电路,所述改进的内部集成电路被配置为经由总线以两种不同通信模式之一与主通信装置通信,所述主通信装置控制所述从通信装置与所述主通信装置之间的通信,所述两种不同通信模式包括具有第一数据传输速率的第一通信模式和具有高于所述第一数据传输速率的第二数据传输速率的第二通信模式;以及
相机控制接口,所述相机控制接口被配置为与所述改进的内部集成电路通信,
根据索引读取和写入数据,
接收来自所述主通信装置的访问用于读取操作的所述索引的请求,以及
基于来自所述主通信装置的所述请求确定所述索引的状态,
控制所述改进的内部集成电路以检测错误的发生,
基于所述错误的所述发生清除所述索引,
当清除所述索引时,检测来自所述主通信装置的信号,
响应于当清除所述索引时检测到来自所述主通信装置的所述信号,忽略来自所述主通信装置的数据,直到所述主通信装置停止或重新启动至少所述第二通信模式为止,以及
响应于当清除所述索引时检测到来自所述主通信装置的所述信号,控制所述改进的内部集成电路向所述主通信装置通信NACK响应。
9.根据权利要求8所述的从通信装置,其中,所述相机控制接口还被配置为确定是否存在超过先前通知的发送和接收的字节数的写入数据的延续,
响应于确定存在超过所述先前通知的所述发送和接收的字节数的所述写入数据的所述延续,检测第二错误,以及
基于所述第二错误清除所述索引。
10.根据权利要求9所述的从通信装置,其中,所述相机控制接口通过确定紧接在发送和接收的字节数之后接收的前导码指示数据接收的延续,来确定存在超过所述先前通知的发送和接收的字节数的所述写入数据的所述延续。
11.根据权利要求8所述的从通信装置,其中,所述相机控制接口还被配置为确定是否存在已经以超过在单个发送和接收操作中能够写入的最大传输字节数的字节数接收的写入数据,
响应于确定存在已经以超过所述最大传输字节数的所述字节数接收的所述写入数据,检测第二错误,以及
基于所述第二错误清除所述索引。
12.根据权利要求11所述的从通信装置,其中,所述相机控制接口通过确定紧接在接收所述写入数据的预定字节数之后接收的前导码是否指示数据接收的延续,来确定存在超过所述最大传输字节数的所述写入数据。
13.一种通信系统,包括:
从通信装置;以及
主通信装置,所述主通信装置包括:
改进的内部集成电路,所述改进的内部集成电路被配置为经由总线以两种不同的通信模式之一与所述从通信装置通信,所述主通信装置控制所述从通信装置与所述主通信装置之间的通信,所述两种不同的通信模式包括具有第一数据传输速率的第一通信模式和具有高于所述第一数据传输速率的第二数据传输速率的第二通信模式,以及
检测错误;以及
相机控制接口,所述相机控制接口被配置为与所述改进的内部集成电路通信,
根据索引读取和写入数据,
接收来自所述改进的内部集成电路的通知,所述通知指示由所述改进的内部集成电路检测的所述错误,以及
基于所述通知清除所述索引。
14.根据权利要求13所述的通信系统,
其中,所述改进的内部集成电路还被配置为接收来自所述从通信装置的NACK响应,并且
其中,所述相机控制接口还被配置为接收来自所述改进的内部集成电路的第二通知,所述第二通知指示由所述改进的内部集成电路接收的所述NACK响应,以及基于所述第二通知清除所述索引。
15.根据权利要求14所述的通信系统,
其中,所述相机控制接口还被配置为响应于接收所述通知或所述第二通知而禁止当前读取操作的使用。
16.根据权利要求13所述的通信系统,
其中,所述从通信装置包括
第二改进的内部集成电路,所述第二改进的内部集成电路被配置为经由总线以所述两种不同的通信模式之一与所述主通信装置通信;以及
第二相机控制接口,所述第二相机控制接口被配置为与所述第二改进的内部集成电路通信,
根据第二索引读取和写入第二数据,
接收来自所述主通信装置的访问用于读取操作的所述第二索引的请求,
基于来自所述主通信装置的所述请求确定所述第二索引的状态,
控制所述第二改进的内部集成电路以检测第二错误的发生,
基于所述第二错误的所述发生来清除所述第二索引,
当清除所述第二索引时,检测来自所述主通信装置的信号,
响应于当清除所述第二索引时检测到来自所述主通信装置的所述信号,忽略来自所述主通信装置的数据,直到所述主通信装置停止或重新启动至少所述第二通信模式为止,以及
响应于当清除所述第二索引时检测到来自所述主通信装置的所述信号,控制所述第二改进的内部集成电路向所述主通信装置通信NACK响应。
17.一种通信方法,包括:
利用主通信装置的改进的内部集成电路,经由总线以两种不同的通信模式之一控制与从通信装置的通信,所述两种不同的通信模式包括具有第一数据传输速率的第一通信模式和具有高于所述第一数据传输速率的第二数据传输速率的第二通信模式;
利用所述改进的内部集成电路检测错误;
利用所述主通信装置的相机控制接口接收来自所述改进的内部集成电路的通知,所述通知指示由所述改进的内部集成电路检测的所述错误;以及
利用所述相机控制接口清除基于所述通知的索引。
18.根据权利要求17所述的通信方法,还包括:
利用所述改进的内部集成电路接收来自所述从通信装置的NACK响应;
利用所述相机控制接口接收来自所述改进的内部集成电路的第二通知,所述第二通知指示由所述改进的内部集成电路接收的所述NACK响应;以及
利用所述相机控制接口清除基于所述第二通知的所述索引。
19.根据权利要求18所述的通信方法,还包括:
响应于接收所述通知或所述第二通知,利用所述相机控制接口禁止当前读取操作。
20.一种通信方法,包括:
利用从通信装置的相机控制接口经由总线接收来自主通信装置的访问用于读取操作的索引的请求,所述主通信装置控制所述从通信装置与所述主通信装置之间的通信,所述通信为两种不同的通信模式之一,并且所述两种不同的通信模式包括具有第一数据传输速率的第一通信模式和具有高于所述第一数据传输速率的第二数据传输速率的第二通信模式;
利用所述相机控制接口控制改进的内部集成电路以检测错误的发生;
利用所述相机控制接口,基于所述错误的所述发生来清除所述索引;
当清除所述索引时,利用所述相机控制接口检测来自所述主通信装置的信号;
响应于当清除所述索引时检测到来自所述主通信装置的所述信号,利用所述相机控制接口忽略来自所述主通信装置的数据,直到所述主通信装置停止或重新启动至少所述第二通信模式为止;以及
响应于当清除所述索引时检测到来自所述主通信装置的所述信号,利用所述相机控制接口控制所述改进的内部集成电路向所述主通信装置通信NACK响应。
CN201880047901.2A 2017-08-04 2018-07-20 通信设备、通信方法、程序和通信系统 Active CN110945490B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017152062A JP6953226B2 (ja) 2017-08-04 2017-08-04 通信装置、通信方法、プログラム、および、通信システム
JP2017-152062 2017-08-04
PCT/JP2018/027242 WO2019026643A1 (en) 2017-08-04 2018-07-20 COMMUNICATION APPARATUS, COMMUNICATION METHOD, PROGRAM, AND COMMUNICATION SYSTEM

Publications (2)

Publication Number Publication Date
CN110945490A CN110945490A (zh) 2020-03-31
CN110945490B true CN110945490B (zh) 2023-10-10

Family

ID=63143334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880047901.2A Active CN110945490B (zh) 2017-08-04 2018-07-20 通信设备、通信方法、程序和通信系统

Country Status (6)

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

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7031961B2 (ja) * 2017-08-04 2022-03-08 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信方法、プログラム、および、通信システム
JP6953226B2 (ja) 2017-08-04 2021-10-27 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信方法、プログラム、および、通信システム
WO2022056793A1 (zh) * 2020-09-17 2022-03-24 华为技术有限公司 一种基于内部集成电路的通信方法及装置
CN119718604A (zh) * 2023-09-27 2025-03-28 瑞昱半导体股份有限公司 中央处理单元和i3c控制器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002077472A (ja) * 2000-08-24 2002-03-15 Canon Inc データ送信装置、データ送信方法、及び記憶媒体
CN101695028A (zh) * 2009-10-16 2010-04-14 杭州华三通信技术有限公司 一种简单网络管理协议配置方法及装置

Family Cites Families (20)

* 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
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 シャープ株式会社 データ通信誤動作防止装置、電子機器、データ通信誤動作防止装置の制御方法、データ通信誤動作防止装置の制御プログラム、及び当該プログラムを記録した記録媒体
JP6191604B2 (ja) * 2012-07-04 2017-09-06 富士通株式会社 情報処理装置、アクセス制御プログラム、およびアクセス制御方法
EP2945447A4 (en) 2013-01-09 2016-08-03 Sharp Kk TERMINAL DEVICE AND BASE STATION DEVICE
JP6411480B2 (ja) * 2013-10-09 2018-10-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 富士通株式会社 バス制御装置、データ転送システム、及びバス制御方法
EP3254202A1 (en) 2015-02-04 2017-12-13 Qualcomm Incorporated Voltage mode and current mode device enumeration
DE112016002371B4 (de) * 2015-05-26 2024-08-08 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 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信方法、プログラム、および、通信システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002077472A (ja) * 2000-08-24 2002-03-15 Canon Inc データ送信装置、データ送信方法、及び記憶媒体
CN101695028A (zh) * 2009-10-16 2010-04-14 杭州华三通信技术有限公司 一种简单网络管理协议配置方法及装置

Also Published As

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

Similar Documents

Publication Publication Date Title
CN110945491B (zh) 通信设备、通信方法、程序和通信系统
CN110945490B (zh) 通信设备、通信方法、程序和通信系统
CN100380334C (zh) 启用远程直接存储器存取的网络接口控制器切换方法
CN110447020B (zh) 通信装置、通信方法、程序和通信系统
EP3542276B1 (en) Flow control in remote direct memory access data communications with mirroring of ring buffers
JPH0652515B2 (ja) コンピュータ入出力装置における論理チャネル経路機構およびその論理チャネル経路の確立方法
JP4756992B2 (ja) ストレージシステム及び記憶制御方法
JP4195368B2 (ja) センダ・レシーバ要求再施行方法および装置
JP4016430B2 (ja) ネットワーク構成方法、情報処理システム並びに情報処理装置
JP2001034555A (ja) データ伝送システム
TWI839203B (zh) 擴充伺服系統與資料更新方法
JP2002163165A (ja) ネットワークデバイスの管理方法及びネットワークデバイス
JP4207657B2 (ja) 論理パス制御方法及び中継サーバ並びにプログラム
US8619778B2 (en) Method for automatic address allocation to a communication partner and a communication partner
JP2004139609A (ja) 開発支援装置
JPH04172502A (ja) プログラマブルコントローラにおけるネットワーク間通信方式
JP3577727B2 (ja) 情報処理装置の管理制御装置
JPH02186407A (ja) 伝送制御装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant