CN113196255B - 基于内部集成电路协议的数据传输方法和传输装置 - Google Patents
基于内部集成电路协议的数据传输方法和传输装置 Download PDFInfo
- Publication number
- CN113196255B CN113196255B CN202080006831.3A CN202080006831A CN113196255B CN 113196255 B CN113196255 B CN 113196255B CN 202080006831 A CN202080006831 A CN 202080006831A CN 113196255 B CN113196255 B CN 113196255B
- Authority
- CN
- China
- Prior art keywords
- data
- feedback information
- transmission
- chip
- transmission chip
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4045—Coupling between buses using bus bridges where the bus bridge performs an extender function
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种基于I2C协议的数据传输方法和传输装置。该方法包括:第一传输芯片获取来自第一设备的I2C数据,该I2C数据为该第一设备向第二设备发送的数据,该第一传输芯片与该第一设备对应;该第一传输芯片向该第一设备发送第一反馈信息,该第一反馈信息用于指示该I2C数据是否被成功接收;该第一传输芯片向该第二设备对应的第二传输芯片转发该I2C数据;该第一传输芯片接收来自该第二传输芯片的第二反馈信息,该第二反馈信息用于指示该I2C数据是否被成功接收;该第一传输芯片将该第二反馈信息存储在第一存储空间,该第一存储空间是该第一传输芯片的存储空间。本申请提供的方法可以提高I2C数据长距离传输的有效速率。
Description
技术领域
本申请涉及通信领域,并且更具体地,涉及一种基于内部集成电路协议的数据传输方法和传输装置。
背景技术
目前,基于内部集成电路(inter-integrated circuit,I2C)协议的长距离数据传输的方式有两种。方式一,主设备对应的传输芯片#1每接收到来自主设备的1比特(bit)的I2C数据,就将接收到的1比特I2C数据传输到从设备对应的传输芯片#2,进一步地,传输芯片#2再将接收到的1比特I2C数据发送到从设备;主设备重复上述步骤,将8比特的I2C数据传输至从设备。方式二,传输芯片#1每接收到来自主设备的8比特的I2C数据,就将接收到的8比特的I2C数据传输到传输芯片#2,进一步地,传输芯片#2再将接收到的8比特的I2C数据发送到从设备。
然而,上述两种方法中,基于I2C数据的传输机制,主设备发送完8比特的I2C数据之后,再接收到1比特的反馈信息(从设备将反馈信息发送给传输芯片#2,传输芯片#2将反馈信息传输至传输芯片#1,传输芯片#1再将反馈信息发送给主设备)之后,才能发送下一个I2C数据。因此,长距离传输I2C数据的有效速率较低。
发明内容
本申请提供一种基于I2C协议的数据传输方法,以达到提高长距离传输I2C数据的有效速率的目的。
第一方面,提供了一种基于I2C协议的数据传输方法,该方法包括:第一传输芯片获取来自第一设备的I2C数据,该I2C数据为该第一设备向第二设备发送的数据,其中,该第一传输芯片与该第一设备对应;该第一传输芯片向该第一设备发送第一反馈信息,该第一反馈信息用于指示该I2C数据是否被成功接收;该第一传输芯片向该第二设备对应的第二传输芯片转发该I2C数据;该第一传输芯片接收来自该第二传输芯片的第二反馈信息,该第二反馈信息用于指示该I2C数据是否被成功接收;该第一传输芯片将该第二反馈信息存储在第一存储空间,该第一存储空间为该第一传输芯片的存储空间。
基于上述技术方案,第一设备向第二设备发送I2C数据的过程中,通过第一传输芯片基于是否成功接收I2C数据向第一设备回复一个反馈信息(即第一反馈信息)的方式,使得第一设备与传输芯片#1之间的I2C接口可以连续传输,从而提高了I2C数据传输的有效速率。此外,第二传输芯片将接收来自第二设备的真实反馈信息(即第二反馈信息)传输到第一传输芯片,使得第一设备可以从第一传输芯片获取从设备的真实反馈信息。
可选地,第一设备可以是主设备,第二设备是从设备。
可选地,第一设备可以是从设备,第二设备是主设备。
结合第一方面,在第一方面的某些实现方式中,该第一传输芯片向该第二设备对应的第二传输芯片转发该I2C数据,包括:当第二存储空间内存储的至少一个I2C数据的数量满足预设条件后,该第一传输芯片向该第二传输芯片转发该存储的至少一个I2C数据,该第二存储空间为该第一传输芯片的存储空间,该至少一个I2C数据来自该第一设备,该至少一个I2C数据包括该I2C数据。
基于上述技术方案,第一传输芯片可以在获取到多个I2C数据之后,再将多个I2C数据转发至第二传输芯片,从而使得第一传输芯片与第二传输芯片之间的长距离传输的数据包的传输频率与I2C数据传输速率解耦,也就是说,长距离传输的数据包的传输频率可以小于I2C数据传输速率。因此,可以使长距离传输数据包变大,从而提高长距离传输的传输效率。
结合第一方面,在第一方面的某些实现方式中,该第一传输芯片接收来自该第二传输芯片的第二反馈信息,包括:该第一传输芯片接收来自该第二传输芯片的第三反馈信息,该第三反馈信息用于指示包括该I2C数据在内的一个或多个I2C数据分别对应的第二反馈信息。
可以理解,第二反馈信息是从设备针对接收的一个I2C数据反馈的,也就是说,从设备反馈的第二反馈信息与从设备接收到的I2C数据是一一对应的。
结合第一方面,在第一方面的某些实现方式中,在该第一传输芯片接收来自该第二传输芯片的第二反馈信息之后,该方法还包括:该第一传输芯片将该第二存储空间设为禁止写入状态。
结合第一方面,在第一方面的某些实现方式中,该第一传输芯片获取来自第一设备的I2C数据,包括:该第一传输芯片读取存储在该第二存储空间中的该I2C数据。
第二方面,提供了一种基于I2C协议的数据传输方法,该方法包括:第二传输芯片接收来自第一设备对应的第一传输芯片的I2C数据,其中,该第二传输芯片与该第二设备对应;该第二传输芯片向该第二设备发送该I2C数据;该第二传输芯片接收来自该第二设备的第二反馈信息,该第二反馈信息用于指示该I2C数据是否被成功接收;该第二传输芯片向该第一传输芯片发送该第二反馈信息。
基于上述技术方案,第一设备向第二设备发送I2C数据的过程中,通过第一传输芯片基于是否成功接收I2C数据向第一设备回复一个反馈信息(即第一反馈信息)的方式,使得第一设备与传输芯片#1之间的I2C接口可以连续传输,从而提高了I2C数据传输的有效速率。此外,第二传输芯片将接收来自第二设备的真实反馈信息(即第二反馈信息)传输到第一传输芯片,使得第一设备可以从第一传输芯片获取从设备的真实反馈信息。
可选地,第一设备可以是主设备,第二设备是从设备。
可选地,第一设备可以是从设备,第二设备是主设备。
结合第二方面,在第二方面的某些实现方式中,该第二传输芯片向该第一传输芯片发送该第二反馈信息,包括:该第二传输芯片向该第一传输芯片发送第三反馈信息,该第三反馈信息用于指示包括该I2C数据在内的一个或多个I2C数据分别对应的第二反馈信息。
可以理解,第二反馈信息是从设备针对接收的一个I2C数据反馈的,也就是说,从设备反馈的第二反馈信息与从设备接收到的I2C数据是一一对应的。
结合第二方面,在第二方面的某些实现方式中,该第二传输芯片向该第一传输芯片发送该第三反馈信息,包括:在达到预设触发条件的情况下,该第二传输芯片向该第一传输芯片发送该第三反馈信息;其中,该预设触发条件是该第二反馈信息的数量满足预设条件;和/或,该预设触发条件是该一个或多个I2C数据中的至少一个未被成功接收。
结合第二方面,在第二方面的某些实现方式中,该方法还包括:该第二传输芯片将来自该第一传输芯片的至少一个I2C数据存储在第三存储空间,该第三存储空间是该第二传输芯片的存储空间,该至少一个I2C数据包括该I2C数据。
基于上述技术方案,第一传输芯片可以在获取到多个I2C数据之后,再将多个I2C数据转发至第二传输芯片,从而使得第一传输芯片与第二传输芯片之间的长距离传输的数据包的传输频率与I2C数据传输速率解耦,也就是说,长距离传输的数据包的传输频率可以小于I2C数据传输速率。因此,可以使长距离传输数据包变大,从而提高长距离传输的传输效率。
第三方面,提供了一种基于I2C协议的数据传输方法,该方法包括:主设备向第一传输芯片发送内部集成电路I2C数据,该第一传输芯片与该主设备对应;该主设备接收来自该第一传输芯片的第一反馈信息,该第一反馈信息用于指示该I2C数据是否被成功接收;该主设备读取该第一传输芯片对应的第一存储空间,获得第二反馈信息,该第二反馈信息用于指示该I2C数据是否被成功接收。
基于上述技术方案,在主设备向从设备写数据的过程中,通过第一传输芯片基于是否成功接收I2C数据向主设备回复一个反馈信息(即第一反馈信息)的方式,使得主设备与第一传输芯片之间的I2C接口可以连续传输,从而提高了I2C数据传输的有效速率。此外,第二传输芯片将来自从设备的真实反馈信息(即第二反馈信息)传输到第一传输芯片;进一步地,主设备可以从第一传输芯片获取从设备的真实反馈信息。
结合第三方面,在第三方面的某些实现方式中,该主设备读取该第一传输芯片对应的第一存储空间,包括:该主设备周期性地读取该第一存储空间。
结合第三方面,在第三方面的某些实现方式中,在该主设备读取该第一传输芯片对应的第一存储空间之前,该方法还包括:该主设备确定该第一传输芯片对应的第二存储空间为禁止写入状态。
第四方面,提供了一种传输装置,包括用于执行第一方面以及第一方面中任一种可能实现方式中的方法的各个模块或单元。
第五方面,提供了一种传输装置,包括用于执行第二方面以及第二方面中任一种可能实现方式中的方法的各个模块或单元。
第六方面,提供了一种传输装置,包括处理器。该处理器与存储器耦合,可用于执行存储器中的指令,以实现上述第一方面至第二方面或第一方面至第二方面中任一种可能实现方式中的方法。
第七方面,提供了一种通信装置,包括用于执行第三方面以及第三方面中任一种可能实现方式中的方法的各个模块或单元。
第八方面,提供了一种通信装置,包括处理器。该处理器与存储器耦合,可用于执行存储器中的指令,以实现上述第三方面或第三方面中任一种可能实现方式中的方法。
第九方面,提供了一种处理器,包括:输入电路、输出电路和处理电路。处理电路用于通过输入电路接收信号,并通过输出电路发射信号,使得处理器执行上述第一方面至第三方面或第一方面至第三方面中任一种可能实现方式中的方法。
在具体实现过程中,上述处理器可以为芯片,输入电路可以为输入管脚,输出电路可以为输出管脚,处理电路可以为晶体管、门电路、触发器和各种逻辑电路等。输入电路所接收的输入的信号可以是由例如但不限于接收器接收并输入的,输出电路所输出的信号可以是例如但不限于输出给发射器并由发射器发射的,且输入电路和输出电路可以是同一电路,该电路在不同的时刻分别用作输入电路和输出电路。本申请实施例对处理器及各种电路的具体实现方式不做限定。
第十方面,提供了一种处理装置,包括处理器。还可以包括存储器,存储器用于存储指令,该处理器用于读取存储器中存储的指令,并可通过接收器接收信号,通过发射器发射信号,以执行上述第一方面至第三方面或第一方面至第三方面中任一种可能实现方式中的方法。
可选地,处理器为一个或多个,存储器为一个或多个。
可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
应理解,相关的数据交互过程例如发送指示信息可以为从处理器输出指示信息的过程,接收能力信息可以为处理器接收输入能力信息的过程。具体地,处理输出的数据可以输出给发射器,处理器接收的输入数据可以来自接收器。其中,发射器和接收器可以统称为收发器。
上述第十方面中的处理装置可以是一个芯片,该处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
第十一方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行上述第一方面至第三方面或第一方面至第三方面中任一种可能实现方式中的方法。
第十二方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面至第三方面或第一方面至第三方面中任一种可能实现方式中的方法。
第十三方面,提供了一种I2C数据传输系统,包括主设备和前述第一传输芯片,第二传输芯片以及从设备。
附图说明
图1示出了内部集成电路的示意图。
图2示出了内部集成电路数据传输的示意图。
图3示和图4出了多域控制器向摄像头传输I2C数据的示意图。
图5至图7示出了适用于本申请实施例提供的方法的通信系统的示意图。
图8至图10示出了本申请实施例提供的数据传输方法的示意性流程图。
图11至图12示出了本申请实施例提供的传输装置的示意性框图。
图13至图14示出了本申请实施例提供的通信装置的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
内部集成电路I2C是一种低速串行总线,用于连接微控制器如主(master)设备与外围设备如从(slave)设备,是一种在印制电路板(printed circuit board,PCB)上走线的近距离传输总线。如图1所示,I2C由两根线组成,一根为串行时钟线(serial clock line,SCL),用于传输时钟,SCL是单向传输,即只能由微控制器传输到外围设备。另一根为串行数据线(serial data line,SDA),用于传输数据,SDA是双向传输,即数据可以由微控制器传输到外围设备,也可以由外围设备传输到微控制器。
微控制器通过控制两根线的电平状态对I2C的行为进行控制。如图2所示,当SCL处于高电平,SDA由高电平变为低电平时,标志着开始传输数据;当SCL处于高电平,SDA由低电平变为高电平时表示数据传输结束。
在基于I2C的数据传输中,每一次交互固定由9个比特(bit)组成,其中8个比特是数据,1个比特是反馈,即发送端每发送一个8比特的数据,必须要接收到来自接收端的1比特的反馈,才能进行下一步操作。如图2所示,在发送端第一次向接收端发送的8个比特数据中,包含7个比特的接收设备地址和1个比特的读/写(read/write,)选择位,发送端接收到接收端发送的肯定应答(acknowledgement,ACK)消息之后,继续向接收端发送8个比特的数据。
在长距离传输I2C数据的场景下,微控制器与外围设备之间的距离比较远(一般在10m左右),因此需要将I2C数据承载在基于远距离传输技术的数据包里透传。如图3所示,在车内网场景下,多域控制器(multi-domain controller,MDC)作为微控制器,MDC安装在车内。车载摄像头作为外围设备,摄像头一般安装在挡风玻璃上、后保险杠上、门柱上等。因此摄像头与MDC之间有较远的距离。在MDC与摄像头之间,有一根可以用于传输图像的高速传输线,因此可以把I2C数据放在摄像头与MDC之间的长距离高速传输线上共线传输。
目前,I2C数据长距离传输的方式有两种:
方式一:
如图3所示,以MDC向摄像头传输I2C数据(例如,传输的数据是10101001)为例,MDC每次向对应的传输芯片#1传输1比特的I2C数据;进一步地,传输芯片#1将接收的1比特的I2C数据传输到摄像头对应的传输芯片#2;再进一步地,传输芯片#2将接收到的1比特I2C数据传输到摄像头。重复上述步骤,直到MDC将8比特的I2C数据都传输到摄像头之后,摄像头反馈1比特的ACK消息或1比特的否定应答(negative acknowledgement,NACK)消息给传输芯片#2;进一步地,传输芯片#2将1比特的反馈信息打包,并发送给传输芯片#1;进一步地,传输芯片#1将收到的反馈信息反馈至MDC。MDC收到1比特的反馈信息之后才开始发送下一个8比特的I2C数据。
如图3所示,传输芯片#1与传输芯片#2之间的I2C传输为长距离传输,即传输芯片#1向传输芯片#2发送的I2C数据需要承载在长距离传输的数据包里传输。因此采用上述方法传输I2C数据的前提是,长距离传输的数据包的传输频率必须大于I2C数据的传输速率。例如,I2C数据的传输速率为400千比特率(kilobit per second,Kbps),若按照方式一中的方法传输I2C数据,传输芯片#1每次向传输芯片#2传输1比特的I2C数据,都得承载在一个长距离传输的数据包中。也就是说,在1秒中内,传输芯片#1要向传输芯片#2传输400千比特的I2C数据,传输芯片#1传输芯片#2之间就得传输至少400,000个数据包。因此,长距离传输的数据包的传输频率必须大于400KHz。表1示出了与不同I2C数据传输速率对应的长距离传输速率,以及长距离传输的数据包大小。其中,封包大小(字节)=长距离传输速率/I2C数据传输速率/8。例如,1Gbps/400Kbps/8=312.5字节。例如,I2C数据传输速率是400Kbps,也就是说,1秒中内,至少要传输400,000个长距离传输包,在长距离传输速率是1Gbps的情况下,每个数据包的大小是1Gb/400,000/8=312.5字节。需要说明的是,下表只是示意,采用简化计算,即1Kbps=1,000bps,1Mbps=1,000,000bps,1Gbps=1,000,000,000bps。并没有考虑包头,信令等其它开销。
表1
因此,在采用上述方法传输I2C数据的情况下,由于I2C数据传输速率与长距离传输数据包的传输频率耦合,因此会限制长距离传输的数据包的大小。而长距离传输的每个数据包需要对所传输的数据格式进行指示,以及对数据包进行校验,所以长距离传输的数据包越小,传输效率越低。也就是说,采用上述方法传输I2C数据导致长距离传输速率与I2C数据传输速率耦合,进而影响长距离传输封包大小,降低长距离接口的传输效率。
方式二:
如图4所示,以MDC向摄像头传输I2C数据(例如,传输的数据是10101001)为例,MDC对应的传输芯片#1接收到来自MDC的8比特的I2C数据后,将8比特的I2C数据打包,一次性传输到远端的摄像头对应的传输芯片#2;进一步地,传输芯片#2将8比特的I2C数据传输到摄像头;摄像头收到8比特的I2C数据之后,向传输芯片#2反馈1比特的ACK/NACK;再进一步地,传输芯片#2将收到的1比特反馈信息发送至传输芯片#1;传输芯片#1再将1比特的反馈信息反馈至MDC。MDC收到1比特的反馈信息之后,发送下一个8比特的I2C数据。
以I2C数据的传输速率为400Kbps为例,在近距离传输I2C数据的过程中,微控制器与外围设备之间传输8比特的数据以及1比特的反馈信息需要的时间是2.5*9微秒。而在采用上述方法进行I2C数据长距离传输的过程中,MDC向传输芯片#1传输8比特的I2C数据和传输芯片#2向摄像头传输8比特的I2C数据分别需要2.5*8微秒,以及摄像头向传输芯片#2回复1比特的反馈信息和传输芯片#1将来自传输芯片#2的1比特反馈信息反馈至MDC分别需要2.5微秒,以及传输芯片#1与传输芯片#2之间还具有传输时延。
因此,采用上述方法进行I2C数据长距离传输,MDC与摄像头之间交互一次的时间大于2.5*9*2微秒(2.5*9*2微秒+传输芯片#1与传输芯片#2之间的传输时延)。也就是说,与近距离传输I2C数据相比,采用方式二进行长距离传输I2C数据的传输交互时间增大了一倍多。因此,采用上述方法进行I2C数据长距离传输,会导致I2C数据传输的有效速率降低一倍多。
基于此,本申请实施例提供一种基于I2C协议的数据传输方法,以期提高I2C数据的有效传输速率。
图5是适用于本申请实施例提供的方法的通信系统100的示意图。如图5所示,主设备与对应的传输芯片#1之间、从设备与对应的传输芯片#2之间由I2C总线连接,也就是说,主设备与传输芯片#1之间、从设备与传输芯片#2之间可以按照现有的I2C机制传输I2C数据。其中,主设备与传输芯片#1对应(或者传输芯片#1与主设备对应),可以理解为主设备与传输芯片#1通过I2C总线连接,具体地,传输芯片#1可以集成在主设备中,或者独立于主设备,本申请对此不做限定。从设备与传输芯片#2对应(或者传输芯片#2与从设备对应),可以理解为从设备与传输芯片#2通过I2C总线连接,具体地,传输芯片#2可以集成在从设备中,或者独立于从设备,本申请对此不做限定。
传输芯片#1与传输芯片#2之间由长距离传输线连接,也就是说,传输芯片#1和传输芯片#2之间可以传输长距离传输的数据包,以及传输芯片#1与传输芯片#2之间传输的I2C数据可以承载在长距离传输的数据包上进行传输。
图5所示的通信系统中,主设备对应的传输芯片#1只与一个从设备对应的传输芯片相连,在某些应该场景中,传输芯片#1可以与多个从设备对应的传输芯片相连。如图6所示的通信系统200,传输芯片#1与传输芯片#2和传输芯片#3相连。图6所示的通信系统中,仅示出了主设备与传输芯片#1之间存在一个I2C接口的示例,主设备与传输芯片#1之间还可以存在多个I2C接口。可以理解,在主设备与传输芯片#1之间存在一个I2C接口的情况下,主设备每次只能与一个从设备交互;在从设备与传输芯片#1之间存在多个I2C接口的情况下,主设备可以同时与多个从设备交互,在此情况下,从设备与传输芯片#1之间的每个I2C接口分别对应不同的从设备。
如图7所示的通信系统300,在某些应用场景中,主设备对应的传输芯片#1与从设备对应的传输芯片#2之间还可以通过网关或交换机相连。
下面将结合附图详细说明本申请实施例提供的基于I2C协议的数据传输方法。
应理解,下文仅为便于理解和说明,以第一设备只与一个第二设备交互为例进行说明,但这不应对本申请实施例构成限定,本申请实施例提供的方法同样适用于第一设备与多个第二设备交互的场景。其中,第一设备可以是主设备,第二设备是从设备;或者,第一设备可以是从设备,第二设备是主设备。在第一设备与多个第二设备交互的场景下,第一设备与每个第二设备之间都可以采用本申请实施例提供的方法进行交互。
需要说明的是,下文示出的实施例中提及的存储空间#1和存储空间#2对应于传输芯片#1,存储空间#1和存储空间#2可以对应传输芯片#1中的同一个存储器,或者,可以对应传输芯片#1中的不同存储器,本申请实施例对此不做限定。
还需要说明的是,下文示出的实施例中提及的存储空间#3和存储空间#4对应于传输芯片#2,存储空间#3和存储空间#4可以对应传输芯片#2中的同一个存储器,或者,可以对应传输芯片#2中的不同存储器,本申请实施例对此不做限定
图8是本申请实施例提供的数据传输的方法的示意性流程图,其中,第一设备与对应的传输芯片#1之间、第二设备与对应的传输芯片#2之间通过I2C总线连接,传输芯片#1与传输芯片#2之间通过长距离传输线连接。图8示出的方法400可以应用于图5至图7示出的通信系统100至通信系统300中。图8示出的第一设备和第二设备可以分别是通信系统100至通信系统300中的主设备和从设备,或者,第一设备和第二设备可以分别是通信系统100至通信系统300中的从设备和主设备。图8所示的方法可以包括S410至S470。下面详细说明方法400中的各步骤。
S410,第一设备向传输芯片#1(第一传输芯片的一例)发送I2C数据。相应地,在S410中,传输芯片#1获取来自第一设备的I2C数据。
I2C数据是第一设备向第二设备发送的数据。
S420,传输芯片#1向第一设备发送反馈信息#1(第一反馈信息的一例)。
反馈信息#1用于指示I2C数据是否被成功接收。
第一设备向传输芯片#1发送I2C数据,可以理解为第一设备向传输芯片#1的某个地址写I2C数据,例如,第一设备向传输芯片#1中的地址#2对应的存储空间#2(第二存储空间的一例)写I2C数据。
传输芯片#1获取来自第一设备的I2C数据,可以理解为传输芯片#1读取第一设备写入存储空间#2的I2C数据。
传输芯片#1获取到I2C数据之后,可以基于I2C数据是否完整(例如,I2C数据是否够8比特),向第一设备回复反馈信息#1。在I2C数据完整的情况下,或者说,在传输芯片#1成功接收I2C数据的情况下,传输芯片#1向第一设备发送的反馈信息#1可以是ACK消息;在I2C数据不完整的情况下,或者说,在传输芯片#1未成功接收I2C数据的情况下,传输芯片#1向第一设备发送的反馈信息#1可以是NACK消息。
可以理解,若反馈信息#1用于指示I2C数据被成功接收,则第一设备继续向传输芯片#1发送下一个I2C数据;若反馈信息#1用于指示I2C数据未被成功接收,则第一设备向传输芯片#2重传反馈信息#1对应的I2C数据。例如,第一设备向传输芯片#1发送了I2C数据#1之后,若收到了传输芯片#1反馈的ACK消息,则第一设备继续向传输芯片#1发送I2C数据#2;若收到了传输芯片#1反馈的NACK消息,则第一设备向传输芯片#1重传I2C数据#1。
根据I2C传输机制,第一设备在发送完一个8比特的I2C数据之后,必须收到一个1比特的反馈信息才可以发送下一个8比特的I2C数据。本申请实施例采用传输芯片#1基于是否成功接收I2C数据向第一设备回复一个1比特的反馈信息#1的方案,使得第一设备发送I2C数据的有效速率得到了提高。
S430,传输芯片#1向传输芯片#2(第二传输芯片的一例)转发I2C数据。
可以理解,传输芯片#1向传输芯片#2发送的I2C数据承载在长距离传输的数据包中。
传输芯片#1向传输芯片#2转发I2C数据的方式可以是,传输芯片#1将I2C数据承载在长距离传输数据包中透传至传输芯片#2;或者,可以是传输芯片#1将I2C数据封装成新的数据包承载在长距离传输包中传输中传输芯片#2;或者,还可以是传输芯片#1将I2C数据分段打包成多个数据包,将多个数据包承载在长距离传输数据包中传输至传输芯片#2。当然,传输芯片#1转发I2C数据的具体实现方式并不限于上文所列举,本申请实施例对此并不做限定。
在一种实现方式中,传输芯片#1可以每获取一个8比特的I2C数据,就将获取的I2C数据转发至传输芯片#2。
在另一种实现方式中,传输芯片#1可以在获取到多个8比特的I2C数据之后,将多个8比特的I2C数据一次性转发至传输芯片#2。例如,传输芯片#2可以在存储空间#2中存储的I2C数据的数量满足预设条件后,将存储的多个I2C数据转发至传输芯片#2。其中,预设条件例如可以是,存储空间#2中的存储的I2C数据的数量等于N,N是大于1的整数。预设条件例如还可以是当存储空间#2中的存储的I2C数据的时间过一定阈值,比如最早存储的I2C数据的存储时间超过该阈值,或存储的多个I2C数据的平均存储时间超过该阈值,或者最晚存储的I2C数据的存储时间超过该阈值,本申请对此不作限定。
本申请实施例对传输芯片#1判断存储空间#2存储的I2C数据的数量是否等于N的方法不做限定。
作为一个示例,传输芯片#1每获取到一个I2C数据之后,都对存储空间#2中存储的I2C数据的数量进行一次判断,即判断I2C数据的数量是否等于N。
作为另一个示例,传输芯片#1维护一个计数器,传输芯片#1每获取到一个I2C数据,计数器的数值都会加1,进一步地,传输芯片#1判断计数器的数值是否等于N。在传输芯片#1将N个I2C数据转发至传输芯片#2之后,计数器的数值清零。
本申请实施例对传输芯片#1转发多个I2C数据的方式不做限定。
作为一个示例,传输芯片#1可以基于多个I2C数据生成一个数据包(例如,将多个I2C数据按顺序排列生成一个数据包),然后将生成的数据包承载在长距离传输的数据包中发送至传输芯片#2。
作为另一个示例,传输芯片#1将多个I2C数据承载在长距离传输的数据包中发送至传输芯片#2。
在本申请实施例中,传输芯片#1获取到多个I2C数据之后,再将多个I2C数据转发至传输芯片#2,从而使得传输芯片#1与传输芯片#2之间的长距离传输的数据包的传输频率与I2C数据传输速率解耦,也就是说,长距离传输的数据包的传输频率可以小于I2C数据传输速率。因此,可以使长距离传输数据包变大,从而提高长距离传输的传输效率。
S440,传输芯片#2向第二设备发送I2C数据。
若第一设备是主设备,第二设备是从设备,则传输芯片#2收到来自传输芯片#1的I2C数据之后,主动将收到的I2C数据发送给从设备。
若第一设备是从设备,第二设备是主设备,则传输芯片#2收到来自传输芯片#1的I2C数据之后,将I2C数据存储在存储空间#3(第三存储空间的一例),随后等待主设备读取存储空间#3。后文会结合其他实施例说明主设备读取存储空间#3的方法,此处暂不详述。
S450,第二设备向传输芯片#2发送反馈信息#2(第二反馈信息的一例)。
反馈信息#2用于指示I2C数据是否被成功接收。
传输芯片#2接收到来自传输芯片#1的I2C数据之后,则按照现有的I2C流程,向第二设备发送I2C数据,即向第二设备的某个地址写入I2C数据。
第二设备接收到来自传输芯片#2的I2C数据之后,基于I2C数据是否完整(例如,I2C数据是否够8比特)、内容是否完整,向传输芯片#2发送反馈信息#2。在I2C数据完整、内容正确的情况下,或者说,在第二设备成功接收I2C数据的情况下,第二设备向传输芯片#2发送的反馈信息#2可以是ACK消息;在I2C数据不完整,和/或,内容不正确的情况下,或者说,在第二设备未成功接收I2C数据的情况下,第二设备向传输芯片#2发送的反馈信息#2可以是NACK消息。
如前文所述,传输芯片#1可以一次性向传输芯片#2发送多个I2C数据,在此情况下,传输芯片#2可以将接收到的多个I2C数据存储在存储空间#3,进一步地,传输芯片#2按照I2C流程依次将多个I2C数据发送至第二设备。例如,传输芯片#2向第二设备发送I2C数据#1,收到第二设备发送的反馈信息#2之后,传输芯片#2再向第二设备发送I2C数据#2。
S460,传输芯片#2向传输芯片#1发送反馈信息#2。
在一种实现方式中,传输芯片#2可以基于接收到的反馈信息#2,生成一个新的反馈信息,如反馈信息#3(第三反馈信息的一例),并将该反馈信息#3发送给传输芯片#1。传输芯片#1可以基于接收到的反馈信息#3获取上述反馈信息#2。在一种可能的设计中,该反馈信息#3可以是I2C数据中的信息。
当然,传输芯片#2发送反馈信息#2的具体实现方式并不限于上文所列举。例如,传输芯片#2也可直接将接收到的反馈信息#2发送给传输芯片#1。本申请对于传输芯片#2发送反馈信息#2的具体实现方式不做限定。
可以理解,传输芯片#2向传输芯片#1发送的反馈信息#3承载在长距离传输的数据包中。
可选地,传输芯片#2可以每收到一个反馈信息#2,就基于一个反馈信息#2生成一个反馈信息#3,进一步地,将反馈信息#3发送至传输芯片#1。
可选地,传输芯片#2可以在达到预设触发条件的情况下,向传输芯片#1发送反馈信息#3,反馈信息#3用于指示一个或多个I2C数据分别对应的反馈信息#2。其中,预设触发条件可以是传输芯片#2接收到的反馈信息#2的数量满足预设条件,和/或,一个或多个I2C数据中的至少一个未被成功接收。预设条件例如可以是,反馈信息#2的数量等于M,M是大于1的整数。
作为一个示例,传输芯片#2可以在接收到的反馈信息#2的数量满足预设条件的情况下,向传输芯片#1发送反馈信息#3。例如,传输芯片#2可以在接收到的反馈信息#2的数量等于M的情况下,基于M个反馈信息#2生成反馈信息#3,并经反馈信息#3发送至传输芯片#1。反馈信息#3用于指示M个I2C数据分别对应的反馈信息#2。
作为另一个示例,传输芯片#2例如可以基于接收到的一个或多个反馈信息#2来确定每个反馈信息#2所对应的I2C数据是否被成功接收,并可以在确定一个或多个I2C数据中的至少一个未被成功接收的情况下,向传输芯片#1发送反馈信息#3。
例如,传输芯片#2接收到K个反馈信息#2,K个反馈信息#2分别用于指示I2C数据#1至I2C数据#K被成功接收,传输芯片#2向第二设备发送I2C数据#K+1,随后收到第二设备反馈的第K+1个反馈信息#2,用于指示I2C数据#K+1未被成功接收,随后,传输芯片#2基于已经接收到的K+1个反馈信息#2生成反馈信息#3,并将反馈信息#3发送至传输芯片#1。其中,K为整数。
作为再一个示例,传输芯片#2在接收的反馈信息#2的数量满足预设条件,且确定一个或多个I2C数据中的至少一个未被成功接收的情况下,向传输芯片#1发送反馈信息#3。例如,传输芯片可以在接收到的反馈信息#2的数量等于M的情况下,且M个反馈信息#2中至少一个反馈信息#2用于指示该反馈信息#2对应的I2C数据未被成功接收的情况下,基于M个反馈信息#2生成反馈信息#3,并将反馈信息#3发送至传输芯片#1。
若传输芯片#2接收的反馈信息#2的数量达到了预设条件,但多个反馈信息#2都用于指示每个反馈信息#2对应的I2C数据被成功接收,则传输芯片#2可以基于接收到的多个反馈信息#2生成反馈信息#3,并将反馈信息#3发送至传输芯片#1;或者,传输芯片#2可以在接收到一个用于指示I2C数据未被成功接收的反馈信息#2之后,基于已经接收到的反馈信息#2生成反馈信息#3,并将反馈信息#3发送至传输芯片#1。
作为有一个示例,传输芯片#2可以在存储空间#4中的存储的反馈信息#2的时间过一定阈值,比如最早存储的反馈信息#2的存储时间超过该阈值,或存储的多个反馈信息#2的平均存储时间超过该阈值,或者最晚存储的反馈信息#2的存储时间超过该阈值,本申请对此不作限定。可以理解,在传输芯片#2在接收到多个反馈信息#2之后,再基于多个反馈信息#2生成反馈信息#3的情况下,传输芯片#2在生成反馈信息#3之前,可以将多个反馈信息#2存储在存储空间#4,传输芯片#2基于多个反馈信息#2生成反馈信息#3,并将反馈信息#3发送至传输芯片#1之后,清空存储空间#4存储的多个反馈信息#2。
本申请实施例对传输芯片#2判断接收到的反馈信息#2的数量是否等于M的方法不做限定。
作为一个示例,传输芯片#2每接收到一个反馈信息#2之后,都对存储空间#4中存储的反馈信息#2的数量进行一次判断,即判断反馈信息#2的数量是否等于M。
作为另一个示例,传输芯片#2维护一个计数器,传输芯片#2每接收到一个反馈信息#2,计数器的数值都会加1,进一步地,传输芯片#2判断计数器的数值是否等于M。在传输芯片#2基于M个反馈信息#2向传输芯片#1发送反馈信息#3之后,计数器的数值清零。
S470,传输芯片#1将反馈信息#2存储在存储空间#1(第一存储空间的一例)。
在一种实现方式中,传输芯片#1接收到来自传输芯片#2的反馈信息#3之后,根据反馈信息#3获取反馈信息#2。
在一种实现方式中,若第一设备是主设备,第二设备是从设备,则在S470之后,该方法还可以包括:主设备读取传输芯片#1的存储空间#1,获得反馈信息#2。下文将结合其他的实施例说明主设备读取存储空间#1的方式,为了简洁,此处暂不详述。
在另一种实现方式中,若第一设备是从设备,第二设备是主设备,则在S470之后,该方法可以包括:传输芯片#1将反馈信息#2发送至从设备。
在本申请实施例中,第一设备向第二设备发送I2C数据的过程中,通过传输芯片#1基于是否成功接收I2C数据向第一设备回复一个反馈信息(即反馈信息#1)的方式,使得第一设备与传输芯片#1之间的I2C接口可以连续传输,从而提高了I2C数据传输的有效速率。此外,传输芯片#2可以将来自第二设备的真实反馈信息(即反馈信息#2)传输到传输芯片#1;进一步地,传输芯片#1可以触发第一设备获取第二设备的真实反馈信息,或者将第二设备的真实反馈信息发送至第一设备,从而确保第一设备可以收到来自第二设备的真实反馈信息。
下文结合图9以第一设备是主设备、第二设备是从设备为例说明本申请实施例提供的数据传输方法。
图9示出了本申请实施例提供的基于I2C协议的数据传输方法的示意性流程图,图9所示的方法500可以包括S510至S570,下面详细说明各个步骤。
S510,主设备向传输芯片#1(第一传输芯片的一例)发送写命令。
主设备向传输芯片#1发送写命令,可以理解为主设备向传输芯片#1的某个地址写入写命令。例如,主设备向传输芯片#1的存储空间#2(第二存储空间的一例)写入写命令。
相应地,传输芯片#1获取到来自主设备的写命令之后,基于写命令是否够8个比特、写命令的内容是否正确,向主设备回复1比特的ACK消息或NACK消息。若写命令够8个比特且内容正确,则传输芯片#1向主设备回复ACK消息;若写命令不够8比特,和/或,内容不正确,则传输芯片#1向主设备回复NACK消息。
进一步地,若主设备接收到来自传输芯片#1的ACK消息,则主设备开始向传输芯片#1发送I2C数据。若主设备接收到来自传输芯片#1的NACK消息,则主设备重新发起写数据流程,即重新向传输芯片#1发送写命令,直到收到来自传输芯片#1的ACK消息之后,主设备开始向传输芯片#1发送I2C数据。
S520,主设备向传输芯片#1发送I2C数据。
I2C数据是主设备发送给从设备的数据。下文以主设备向传输芯片#1发送N个I2C数据为例进行说明,其中,N为正整数。
S5201a,主设备向传输芯片#1发送I2C数据#1。
可以理解,主设备发送给从设备的第一个I2C数据(例如是I2C数据#1)是主设备对从设备的某个地址的写命令。
主设备向传输芯片#1发送I2C数据#1,可以理解为主设备向传输芯片#1的存储空间#2写入I2C数据。相应地,传输芯片#1读取存储空间#2获取I2C数据#1。
S5201b,传输芯片#1向主设备发送ACK消息(第一反馈信息的一例)。
传输芯片#1获取到来自主设备的I2C数据#1之后,基于判断I2C数据#1是否够8个比特向主设备发送1比特的反馈信息#1(第一反馈信息的一例),例如,反馈信息#1可以ACK消息或NACK消息。若I2C数据#1够8个比特,则传输芯片#1向主设备发送ACK消息;若I2C数据#1不够8个比特,则传输芯片#1向主设备发送NACK消息。
主设备收到来自传输芯片#1的ACK消息之后,则继续向传输芯片#1发送下一个I2C数据。
……
S520Na,主设备向传输芯片#1发送I2C数据#N。
S520Nb,传输芯片#1向主设备发送ACK消息。
应理解,图9仅以传输芯片#1向主设备回复的反馈信息#1都是ACK消息为例进行说明,但这不应对本申请实施例造成限定。
S530,传输芯片#1将来自主设备的N个I2C数据转发至传输芯片#2(第二传输芯片的一例)。
可以理解,传输芯片#1向传输芯片#2发送的N个I2C数据承载在长距离传输数据包中。
传输芯片#1在存储空间#2中存储的I2C数据的数量等于N的情况下,将N个I2C数据一次性转发至传输芯片#2。传输芯片#1判断存储空间#2中存储的I2C数据的数量是否等于N的方法可以参考前文S430中的描述,为了简洁,此处不再赘述。
S540,传输芯片#2向从设备设备发送I2C数据。
传输芯片#2接收到来自传输芯片#1的N个I2C数据之后,可以将N个I2C数据存储在存储空间#3(第三存储空间的一例),随后依次向从设备发送N个I2C数据。
S5401a,传输芯片#2向从设备发送I2C数据#1。
S5401b,从设备向传输芯片#2发送反馈信息#2(第二反馈信息的一例)。
反馈信息#2用于指示I2C数据#1是否被成功接收。
从设备接收到来自传输芯片#2的I2C数据#1之后,基于判断I2C数据#1是否够8个比特以及内容是否正确向传输芯片#2发送1比特的反馈信息#2,例如,反馈信息#2可以是ACK消息或NACK消息。若I2C数据#1够8个比特且内容正确,则从设备向传输芯片#2发送ACK消息;若I2C数据#1不够8个比特,和/或,内容不正确,则从设备向传输芯片#2发送NACK消息。
传输芯片#2接收到来自从设备的反馈信息#2之后,可以将反馈信息#2存储在存储空间#4,并继续向从设备发送下一个I2C数据。
……
S540Na,传输芯片#2向从设备发送I2C数据#N。
S540Nb,从设备向传输芯片#2发送反馈信息#2。
反馈信息#2用于指示I2C数据#N是否被成功接收。
S550,传输芯片#2基于接收到N个反馈信息#2生成反馈信息#3(第三反馈信息的一例),反馈信息#3用于指示N个反馈信息#2。
可以理解,传输芯片#2向传输芯片#1发送反馈信息#3承载在长距离传输数据包中。
传输芯片#2在存储空间#4中存储的反馈信息#2的数量等于N的情况下,基于N个反馈信息#2向传输芯片#1发送反馈信息#3。传输芯片#2判断存储空间#4中存储的反馈信息#2的数量是否等于N的方法可以参考前文S460中的描述,为了简洁,此处不再赘述。
应理解,图9仅为示例,示出了传输芯片#2在接收到反馈信息#2的数量等于N之后,触发传输芯片#2向传输芯片#1发送反馈信息#3,这不应对本申请构成限定。传输芯片#2还可以在接收到的反馈信息#2的数量等于M的情况下,基于M个反馈信息#2向传输芯片#1发送反馈信息#3。其中,M为正整数,且M不等于N。
在一些实现方式中,传输芯片#2可以在接收到的一个反馈信息#2是NACK消息的情况下,向传输芯片#1发送反馈信息#3。也就是说,若传输芯片#2接收到的反馈信息#2都是ACK消息,则不向传输芯片#1发送反馈信息#3,直到接收到一个NACK消息,才会基于已经接收到的反馈信息#2生成反馈信息#3,并向传输芯片#1发送反馈信息#3。
在另一些实现方式中,传输芯片#2可以在存储空#4中存储的反馈信息#2的数量等于N,且N个反馈信息#2中至少有一个反馈信息#2是NACK消息的情况下,基于N个反馈信息#2生成反馈信息#3,并向传输芯片#1发送反馈信息#3。
S560,传输芯片#1基于接收到的反馈信息#3获取N个反馈信息#2,并将反馈信息#2存储在存储空间#1。
可以理解,若传输芯片#2在接收到的多个反馈信息#2中至少一个反馈信息#2是NACK消息的情况下,才会向传输芯片#1发送反馈信息#3,则在传输芯片#1接收到反馈信息#3之前,可以默认传输芯片#1的存储空间#1(第一存储空间的一例)中存储的都是ACK消息。传输芯片#1接收到反馈信息#3之后,再将存储空间#1中默认存储的ACK消息更新为根据反馈信息#3获取的反馈信息#2。进一步地,主设备读取存储空间#1之后,传输芯片#1将存储空间#1恢复为默认存储ACK消息的状态。
S570,主设备读取传输芯片#1的存储空间#1。
本申请实施例对主设备何时读取存储空间#1不做限定。
在一种实现方式中,主设备可以周期性地读取存储空间#1。
例如,主设备可以根据传输芯片#1向传输芯片#2发送I2C数据的规则设定读取存储空间#1的周期。例如,传输芯片#1每接收到来自主设备的N个I2C数据,就将N个I2C数据一次性发送至传输芯片#2,则主设备可以每发送2N个I2C数据之后,读取一次存储空间#1,或者可以每发送3N个I2C数据之后,读取一次存储空间#1。
在另一种实现方式中,主设备可以在确定存储空间#2为禁止写入状态的情况下,读取存储空间#1。
传输芯片#1接收来自传输芯片#2的反馈信息#3之后,若主设备还在继续向传输芯片#1的存储空间#2写入I2C数据,则传输芯片#1的存储空间#2暂停接收I2C数据,即将存储空间#2设为禁止接收状态。在传输芯片#1的存储空间#2暂停接收I2C数据的情况下,会向主设备反馈一个NACK消息。相应地,主设备接收到传输芯片#1反馈的NACK消息之后,确定存储空间#2为禁止写入状态。进一步地,主设备读取存储空间#1。
若主设备读取存储空间#1,获得的反馈信息#2都是ACK消息,即反馈信息#2均用于指示I2C数据被成功接收,则主设备确定与传输芯片#1之间的I2C链路出错;若主设备读取存储空间#1,获得的反馈信息#2中至少有一个反馈信息#2是NACK消息,即至少有一个反馈信息用于指示I2C数据未被成功接收,则主设备确定传输芯片#2与从设备之间的I2C链路出错。进一步地,主设备确定出链路出错的位置之后,按照预定的规则重传相应的I2C数据。
若主设备发送给从设备的I2C数据全部发送完成,但还没有确定最后一个I2C数据是否被成功接收,则主设备可以周期性地读取存储空间#1。
应理解,在本申请实施例中,主设备可以判断在发送完一个8比特的I2C数据之后,接收的反馈信息#1是传输芯片#1回复的,主设备读取传输芯片#1的存储空间#1获取的反馈信息#2是从设备的真实反馈信息。
若主设备读取存储空间#1获取到的某一个反馈信息#2是ACK消息,则确定从设备成功接收与该反馈信息#2对应的I2C数据;若主设备读取存储空间#1获取的某一个反馈信息#2是NACK消息,则确定从设备未成功接收该反馈信息#2对应的I2C数据,随后,主设备向从设备重传该反馈信息#2对应的I2C数据。
在本申请实施例中,在主设备向从设备写数据的过程中,通过传输芯片#1基于是否成功接收到I2C数据向主设备回复一个反馈信息(即反馈信息#1)的方式,使得主设备与传输芯片#1之间的I2C接口可以连续传输,从而提高了I2C数据传输的有效速率。此外,传输芯片#2可以将来自从设备的真实反馈信息(即反馈信息#2)传输到传输芯片#1;进一步地,传输芯片#1可以触发主设备获取从设备的真实反馈信息,从而确保主设备可以收到来自从设备的真实反馈信息。
下文结合图10以第一设备是从设备、第二设备是主设备为例说明本申请实施例提供的数据传输方法。
图10示出了本申请实施例提供的基于I2C协议的数据传输方法的示意性流程图,图10所示的方法600可以包括S601至S615,下面详细说明各个步骤。
S601,主设备向传输芯片#2(第二传输芯片的一例)发送写命令。
主设备向传输芯片#2发送写命令,可以理解为主设备向传输芯片#2的某个地址写入写命令。例如,主设备向传输芯片#2的存储空间#3(第三存储空间的一例)写入写命令。
S602,传输芯片#2向主设备发送ACK消息。
传输芯片#2获取到来自主设备的写命令之后,基于写命令是否够8个比特、写命令的内容是否正确,向主设备回复1比特的ACK消息或NACK消息。若写命令够8个比特且内容正确,则传输芯片#2向主设备回复ACK消息;若写命令不够8比特,和/或,内容不正确,则传输芯片#2向主设备回复NACK消息。
进一步地,若主设备接收到来自传输芯片#2的ACK消息,则主设备开始执行下一个步骤。若主设备接收到来自传输芯片#2的NACK消息,则主设备重新发送写命令,即重新向传输芯片#2发送写命令,直到收到来自传输芯片#2的ACK消息之后,主设备开始执行下一个步骤。
S603,主设备向传输芯片#2发送读命令#1。
可以理解为,主设备向传输芯片#2的存储空间#3写入读命令#1。读命令#1指示主设备要读取的从设备的地址和读标志。
S604,传输芯片#2向主设备发送ACK消息。
传输芯片#2获取到来自主设备的读命令#1之后,基于读命令#1是否够8个比特,向主设备回复1比特的ACK消息或NACK消息。若写命令够8个比特,则传输芯片#2向主设备回复ACK消息;若写命令不够8比特,则传输芯片#2向主设备回复NACK消息。
S605,传输芯片#2向传输芯片#1(第一传输芯片的一例)转发读命令#1。
可以理解,传输芯片#2向传输芯片#1转发的读命令#1承载在长距离传输数据包中。
传输芯片#2获取到读命令#1之后,可以判断主设备发起的是读操作,随后,将读命令#1转发至传输芯片#1。
S606,传输芯片#1将读命令#1发送至从设备。
S607,从设备向传输芯片#1发送ACK消息。
从设备接收到来自传输芯片#1的读命令#1之后,基于读命令#1是否够8个比特、内容是否正确,向传输芯片#1回复1比特的ACK消息或NACK消息。
若读命令#1够8个比特且内容正确,则从设备向传输芯片#1回复ACK消息,随后从设备开始向传输芯片#1传输I2C数据。
若读命令#1不够8比特,和/或,内容不正确,则从设备向传输芯片#1回复NACK消息。进一步地,传输芯片#1接收到从设备发送的NACK消息之后,将NACK消息转发至传输芯片#2;进一步地,传输芯片#2收到来自传输芯片#1的NACK消息之后,触发主设备读取传输芯片#2的存储空间#3。在此情况下,由于传输芯片#2还没有接收到来自传输芯片#1的I2C数据,也就是说存储空间#3中无I2C数据,因此,传输芯片#2向主设备反馈一个NACK消息。进一步地,主设备根据传输芯片#2反馈的NACK消息可以确定传输芯片#1与从设备之间的I2C出错,因此,主设备重新向从设备发起读操作。
在本申请实施例中,传输芯片#2将从设备对应于读命令#1的NACK消息转发至传输芯片#1,进一步传输芯片#1在主设备读取存储空间#3时向主设备反馈NACK消息,使得主设备可以获取到从设备对应于读命令#1的真实反馈信息。
S608,从设备向传输芯片#1发送I2C数据。
从设备将读命令#1指示的地址对应的存储空间中的I2C数据发送给传输芯片#1。I2C数据是从设备发送给主设备的数据。下文以从设备向传输芯片#1发送N个I2C数据为例进行说明,其中,N为正整数。
S6081a,从设备向传输芯片#1发送I2C数据#1。
S6081b,传输芯片#1向从设备发送ACK消息。
传输芯片#1收到到来自从设备的I2C数据#1之后,基于判断I2C数据#1是否够8个比特向从设备发送1比特的反馈信息#1(第一反馈信息的一例),例如,反馈信息#1可以ACK消息或NACK消息。
若传输芯片#1判断I2C数据不够8比特,即读取从设备的数据出错,则传输芯片#1向从设备发送NACK消息。在此情况下,传输芯片#1可以确定与从设备之间的I2C链路出错,随后,传输芯片#1重新向从设备发起读过程,即重新向从设备发送读命令#1。进一步地,接收到从设备对应于读命令#1的ACK消息之后,继续读取从设备的数据。
若I2C数据#1够8个比特,则传输芯片#1向从设备发送ACK消息;从设备收到来自传输芯片#1的ACK消息之后,则继续向传输芯片#1发送下一个I2C数据。
……
S608Na,从设备向传输芯片#1发送I2C数据#N。
S608Nb,传输芯片#1向从设备发送ACK消息。
应理解,图10仅以传输芯片#1向从设备回复的反馈信息#1都是ACK消息为例进行说明,但这不应对本申请实施例构成限定。
S609,传输芯片#1将来自从设备的N个I2C数据转发至传输芯片#2。
可以理解,传输芯片#1向传输芯片#2发送的N个I2C数据承载在长距离传输数据包中。
传输芯片#1在存储空间#2(第二存储空间的一例)中存储的I2C数据的数量等于N的情况下,将N个I2C数据一次性转发至传输芯片#2。传输芯片#1判断存储空间#2中存储的I2C数据的数量是否等于N的方法可以参考前文S430中的描述,为了简洁,此处不再赘述。
相应地,传输芯片#2接收到来自传输芯片#1的I2C数据之后,将I2C数据存储在存储空间#3,随后等待主设备读取。
S610,主设备向传输芯片#2发送读命令#2。
主设备开始读取传输芯片#2的存储空间#3之前,可以先向传输芯片#2发送一个读命令#2,读命令#2用于指示存储空间#3的地址和读标志。
本申请实施例对主设备何时读取存储空间#3不做限定。
在一种实现方式中,主设备可以周期性地读取存储空间#3,。
例如,主设备可以根据传输芯片#1向传输芯片#2发送I2C数据的规则设定读取存储空间#3的周期。例如,传输芯片#1每接收到来自从设备的N个I2C数据,就将N个I2C数据一次性发送至传输芯片#2,则主设备可以每隔发送2N个I2C数据的时间,读取一次存储空间#3,或者可以每隔发送3N个I2C数据的时间,读取一次存储空间#3。
在另一种实现方式中,主设备可以在传输芯片#2释放SCL之后,读取存储空间#3。
在此情况下,传输芯片#2在接收到来自传输芯片#1的I2C数据之前,将SCL拉低至低电平状态。传输芯片#2接收到来自传输芯片#1的I2C数据之后,将SCL释放。
S611,传输芯片#2向主设备发送ACK消息。
传输芯片#2获取到来自主设备的读命令#2之后,基于读命令#2是否够8个比特、读命令#2的内容是否正确,向主设备回复1比特的ACK消息或NACK消息。若读命令#2够8个比特且内容正确,则传输芯片#2向主设备回复ACK消息;若读命令#2不够8比特,和/或,内容不正确,则传输芯片#2向主设备回复NACK消息。
进一步地,若主设备接收到来自传输芯片#2的ACK消息,则主设备开始读取传输芯片#2的存储空间#3。若主设备接收到来自传输芯片#2的NACK消息,则主设备重新向传输芯片#2发送读命令#2,直到收到来自传输芯片#2的ACK消息之后,主设备开始读取传输芯片#2的存储空间#3。
S612,主设备读取传输芯片#2的存储空间#3。
主设备依次读取存储空间#3存储的N个I2C数据。
S6121a,主设备读取I2C数据#1。
S6121b,主设备向传输芯片#2发送反馈信息#2(第二反馈信息的一例)。
反馈信息#2用于指示I2C数据#1是否被成功接收。
主设备读取到来自传输芯片#2的I2C数据#1之后,基于判断I2C数据#1是否够8个比特以及内容是否正确向传输芯片#2发送1比特的反馈信息#2,例如,反馈信息#2可以是ACK消息或NACK消息。若I2C数据#1够8个比特且内容正确,则主设备向传输芯片#2发送ACK消息;若I2C数据#1不够8个比特,和/或,内容不正确,则主设备向传输芯片#2发送NACK消息。
传输芯片#2接收到来自从设备的反馈信息#2之后,可以将反馈信息#2存储在存储空间#4。
……
S612Na,主设备读取I2C数据#N。
S612Nb,主设备向传输芯片#2发送反馈信息#2。
反馈信息#2用于指示I2C数据#N是否被成功接收。
可选地,传输芯片#2可以基于接收到N个反馈信息#2生成反馈信息#3(第三反馈信息的一例),并将反馈信息#3发送至传输芯片#1,反馈信息#3用于指示N个反馈信息#2。进一步地,反馈信息#1基于反馈信息#3获取到反馈信息#2之后,将反馈信息#2发送至从设备。传输芯片#2向传输芯片#1发送反馈信息#3的方式可以参考上文S550的描述,为了简洁,此处不再赘述。
S613,主设备在停止读操作的情况下,向传输芯片#2发送一个NACK消息。
S614,传输芯片#2将来自主设备的NACK消息转发至传输芯片#1。
可以理解,传输芯片#2向传输芯片#1发送的NACK消息承载在长距离传输的数据包中。
相应地,传输芯片#1接收到来自传输芯片#2的NACK消息之后,清空存储空间#2中存储的I2C数据。
S615,传输芯片#1将来自传输芯片#2的NACK消息发送至从设备。
在本申请实施例中,在主设备读取从设备数据的过程中,通过传输芯片#1基于是否成功接收I2C数据向从设备回复一个反馈信息(即反馈信息#1)的方式,使得从设备与传输芯片#1之间的I2C接口可以连续传输,从而提高了I2C数据传输的有效速率。
以上,结合图8至图10详细说明了本申请实施例提供的基于I2C协议的数据传输方法。以下,结合图11至图14详细说明本申请实施例提供的装置。
图11是本申请实施例提供的传输装置700的示意性框图。如图所示,该传输装置700可以包括:收发单元710和处理单元720。
在一种可能的设计中,该传输装置700可对应于上文方法实施例中的第一传输芯片。
应理解,该传输装置700可以包括用于执行图8中的方法400、图9中的方法500以及图10中的方法600中的第一传输芯片执行的方法的单元。并且,该传输装置700中的各单元和上述其他操作和/或功能分别为了实现8中的方法400、图9中的方法500以及图10中的方法600中的第一传输芯片执行的相应流程。应理解,各单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
在另一种可能的设计中,该传输装置700可对应于上文方法实施例中的第二传输芯片。
应理解,该传输装置700可以包括用于执行图8中的方法400、图9中的方法500以及图10中的方法600中的第二传输芯片执行的方法的单元。并且,该传输装置700中的各单元和上述其他操作和/或功能分别为了实现8中的方法400、图9中的方法500以及图10中的方法600中的第二传输芯片执行的相应流程。应理解,各单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
应理解,该传输装700中的收发单元710可对应于图12中示出的传输装置800中的收发器810,该传输装置700中的处理单元720可对应于图12中示出的传输装置800中的处理器820。
图12是本申请实施例提供的传输装置800的示意性框图。如图所示,该传输装置800可以包括:处理器820,还可以包括收发器810和存储器830。该处理器820与存储器830耦合,用于执行存储器中存储的指令,以控制收发器810发送信号和/或接收信号。
应理解,上述处理器820和存储器830可以合成一个处理装置,处理器820用于执行存储器830中存储的程序代码来实现上述功能。具体实现时,该存储器830也可以集成在处理器820中,或者独立于处理器820。
在一种可能的设计中,该传输装置800可对应于上文方法实施例中的第一传输芯片。
具体地,该传输装置800可以包括用于执行图8中的方法400、图9中的方法500以及图10中的方法600中的第一传输芯片执行的方法的单元。并且,该传输装置800中的各单元和上述其他操作和/或功能分别为了实现图8中的方法400、图9中的方法500以及图10中的方法600中第一传输芯片执行的相应流程。应理解,各单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
在一种可能的设计中,该传输装置800可对应于上文方法实施例中的第二传输芯片。
具体地,该传输装置800可以包括用于执行图8中的方法400、图9中的方法500以及图10中的方法600中的第二传输芯片执行的方法的单元。并且,该传输装置800中的各单元和上述其他操作和/或功能分别为了实现图8中的方法400、图9中的方法500以及图10中的方法600中第二传输芯片执行的相应流程。应理解,各单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
图13是本申请实施例提供的通信装置900的示意性框图。如图所示,该通信装置900可以包括:收发单元910和处理单元920。
具体地,该通信装置900可以包括用于执行图8中的方法400、图9中的方法500以及图10中的方法600中的主设备执行的方法的单元。并且,该通信装置900中的各单元和上述其他操作和/或功能分别为了实现图8中的方法400、图9中的方法500以及图10中的方法600中的主设备执行的相应流程。应理解,各单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。应理解,该通信装置900中的收发单元910可对应于图14中示出的通信装置1000中的收发器1010,该通信装置900中的处理单元920可对应于图14中示出的通信装置1000中的处理器1020。
图14是本申请实施例提供的通信装置1000的示意性框图。如图所示,该通信装置1000包括:处理器1020,还可以包括收发器1010。可选地,该通信装置1000还包括存储器1030,用于存储指令。该处理器1020与存储器1030耦合,用于执行存储器1030中存储的指令,以控制收发器1010发送信号和/或接收信号。
应理解,上述处理器1020和存储器1030可以合成一个处理装置,处理器1020用于执行存储器1030中存储的程序代码来实现上述功能。具体实现时,该存储器1030也可以集成在处理器1020中,或者独立于处理器1020。
还应理解,收发器1010可以包括接收器(或者称,接收机)和发射器(或者称,发射机)。收发器还可以进一步包括天线,天线的数量可以为一个或多个。
具体地,该通信装置1000可以包括用于执行图8中的方法400、图9中的方法500以及图10中的方法600中的主设备执行的方法的单元。并且,该通信装置1000中的各单元和上述其他操作和/或功能分别为了实现图8中的方法400、图9中的方法500以及图10中的方法600中的主设备执行的相应流程。应理解,各单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行图8至图10所示实施例中任意一个实施例的方法。
根据本申请实施例提供的方法,本申请还提供一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行图8至图10所示实施例中任意一个实施例的方法。
根据本申请实施例提供的方法,本申请还提供一种系统,该系统包括主设备,和前述的第一传输芯片、第二传输芯片以及从设备。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital videodisc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
上述各个装置实施例中各网元可以和方法实施例中的各网元完全对应,由相应的单元执行相应的步骤,例如收发单元(收发器)执行方法实施例中接收或发送的步骤,除发送、接收外的其它步骤可以由处理单元(处理器)执行。具体单元的功能可以参考相应的方法实施例。其中,处理器可以为一个或多个。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在本说明书中使用的术语“单元”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (18)
1.一种基于内部集成电路I2C协议的数据传输方法,其特征在于,包括:
第一传输芯片获取来自第一设备的第一I2C数据,所述第一I2C数据为所述第一设备向第二设备发送的数据,其中,所述第一传输芯片与所述第一设备对应;
所述第一传输芯片向所述第一设备发送第一反馈信息,所述第一反馈信息用于指示所述第一I2C数据是否被所述第一传输芯片成功接收;
当第二存储空间内存储的至少一个I2C数据的数量满足预设条件后,所述第一传输芯片向所述第二设备对应的第二传输芯片转发所述存储的至少一个I2C数据,所述第二存储空间为所述第一传输芯片的存储空间,所述至少一个I2C数据包括所述第一I2C数据;
所述第一传输芯片接收来自所述第二传输芯片的第二反馈信息,所述第二反馈信息用于指示所述至少一个I2C数据是否被所述第二传输芯片成功接收;
所述第一传输芯片将所述第二反馈信息存储在第一存储空间,所述第一存储空间为所述第一传输芯片的存储空间。
2.根据权利要求1所述的方法,其特征在于,所述第一传输芯片接收来自所述第二传输芯片的第二反馈信息,包括:
所述第一传输芯片接收来自所述第二传输芯片的第三反馈信息,所述第三反馈信息用于指示包括所述第一I2C数据在内的一个或多个I2C数据分别对应的第二反馈信息。
3.根据权利要求1或2所述的方法,其特征在于,在所述第一传输芯片接收来自所述第二传输芯片的第二反馈信息之后,所述方法还包括:
所述第一传输芯片将所述第二存储空间设为禁止写入状态。
4.根据权利要求1或2所述的方法,其特征在于,所述第一传输芯片获取来自第一设备的第一I2C数据,包括:
所述第一传输芯片读取存储在所述第二存储空间中的所述至少一个I2C数据。
5.根据权利要求1或2所述的方法,其特征在于,所述第一设备是主设备,所述第二设备是从设备;或者,所述第一设备是从设备,所述第二设备是主设备。
6.一种基于内部集成电路I2C协议的数据传输方法,其特征在于,包括:
第二传输芯片接收来自第一设备对应的第一传输芯片的至少一个I2C数据,其中,所述第二传输芯片与第二设备对应;
所述第二传输芯片向所述第二设备发送所述至少一个I2C数据;
所述第二传输芯片接收来自所述第二设备的第二反馈信息,所述第二反馈信息用于指示至少一个I2C数据是否被所述第二设备成功接收;
所述第二传输芯片向所述第一传输芯片发送所述第二反馈信息;
所述第二传输芯片将来自所述第一传输芯片的所述至少一个I2C数据存储在第三存储空间,所述第三存储空间为所述第二传输芯片的存储空间,所述至少一个I2C数据包括第一I2C数据。
7.根据权利要求6所述的方法,其特征在于,所述第二传输芯片向所述第一传输芯片发送所述第二反馈信息,包括:
所述第二传输芯片向所述第一传输芯片发送第三反馈信息,所述第三反馈信息用于指示包括所述第一I2C数据在内的一个或多个I2C数据分别对应的第二反馈信息。
8.根据权利要求7所述的方法,其特征在于,所述第二传输芯片向所述第一传输芯片发送第三反馈信息,包括:
在达到预设触发条件的情况下,所述第二传输芯片向所述第一传输芯片发送所述第三反馈信息;
其中,所述预设触发条件是所述第二反馈信息的数量满足预设条件;和/或,
所述预设触发条件是所述一个或多个I2C数据中的至少一个未被成功接收。
9.根据权利要求6至8中任一项所述的方法,其特征在于,所述第一设备是主设备,所述第二设备是从设备;或者,所述第一设备是从设备,所述第二设备是主设备。
10.一种传输装置,与第一设备对应,其特征在于,包括处理单元和收发单元:
所述收发单元用于获取来自第一设备的第一内部集成电路I2C数据,所述第一I2C数据为所述第一设备向第二设备发送的数据;
所述收发单元还用于向所述第一设备发送第一反馈信息,所述第一反馈信息用于指示所述第一I2C数据是否被第一传输芯片成功接收;
当第二存储空间内存储的至少一个I2C数据的数量满足预设条件后,所述收发单元具体用于向所述第二设备对应的第二传输芯片转发所述存储的至少一个I2C数据,所述第二存储空间为所述传输装置的存储空间,所述至少一个I2C数据包括所述第一I2C数据;
所述收发单元还用于接收来自所述第二传输芯片的第二反馈信息,所述第二反馈信息用于指示所述至少一个I2C数据是否被所述第二传输芯片成功接收;
所述处理单元用于将所述第二反馈信息存储在第一存储空间,所述第一存储空间为所述传输装置的存储空间。
11.根据权利要求10所述的传输装置,其特征在于,所述收发单元具体用于接收来自所述第二传输芯片的第三反馈信息,所述第三反馈信息用于指示包括所述第一I2C数据在内的一个或多个I2C数据分别对应的第二反馈信息。
12.根据权利要求10或11所述的传输装置,其特征在于,在所述收发单元接收来自所述第二传输芯片的第二反馈信息之后,所述处理单元还用于将所述第二存储空间设为禁止写入状态。
13.根据权利要求10或11所述的传输装置,其特征在于,所述收发单元具体用于读取存储在所述第二存储空间中的所述至少一个I2C数据。
14.一种传输装置,与第二设备对应,其特征在于,包括收发单元和处理单元:
所述收发单元用于接收来自第一设备对应的第一传输芯片的至少一个内部集成电路I2C数据;
所述收发单元还用于向所述第二设备发送所述至少一个I2C数据;
所述收发单元还用于接收来自所述第二设备的第二反馈信息,所述第二反馈信息用于指示至少一个I2C数据是否被所述第二设备成功接收;
所述收发单元还用于向所述第一传输芯片发送所述第二反馈信息;
所述处理单元用于将来自所述第一传输芯片的所述至少一个I2C数据存储在第三存储空间,所述第三存储空间是所述传输装置的存储空间,所述至少一个I2C数据包括第一I2C数据。
15.根据权利要求14所述的传输装置,其特征在于,所述收发单元具体用于向所述第一传输芯片发送第三反馈信息,所述第三反馈信息用于指示包括所述第一I2C数据在内的一个或多个I2C数据分别对应的第二反馈信息。
16.根据权利要求15所述的传输装置,其特征在于,所述收发单元具体用于:在达到预设触发条件的情况下,向所述第一传输芯片发送所述第三反馈信息;
其中,所述预设触发条件是所述第二反馈信息的数量满足预设条件;和/或,
所述预设触发条件是所述一个或多个I2C数据中的至少一个未被成功接收。
17.一种通信装置,其特征在于,包括至少一个处理器,所述至少一个处理器用于执行存储器中存储的计算机程序,以使得所述通信装置实现如权利要求1至5任一项所述的方法,或者,实现如权利要求6至9中任一项所述的方法。
18.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,当所述计算机程序被计算设备执行时,使得所述计算设备实现如权利要求1至5中任一项所述的方法,或者,实现如权利要求6至9中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/083441 WO2021203227A1 (zh) | 2020-04-07 | 2020-04-07 | 基于内部集成电路协议的数据传输方法和传输装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113196255A CN113196255A (zh) | 2021-07-30 |
CN113196255B true CN113196255B (zh) | 2022-04-29 |
Family
ID=76973830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080006831.3A Active CN113196255B (zh) | 2020-04-07 | 2020-04-07 | 基于内部集成电路协议的数据传输方法和传输装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20230021703A1 (zh) |
EP (1) | EP4120092A4 (zh) |
JP (1) | JP2023521335A (zh) |
KR (1) | KR20220158814A (zh) |
CN (1) | CN113196255B (zh) |
MX (1) | MX2022012563A (zh) |
WO (1) | WO2021203227A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023954A (zh) * | 2009-09-17 | 2011-04-20 | 研祥智能科技股份有限公司 | 具有多路i2c总线的装置、处理器、系统主板及工控计算机 |
CN102169463A (zh) * | 2011-04-28 | 2011-08-31 | 杭州华三通信技术有限公司 | 一种基于iic总线的制造信息的获取方法和设备 |
CN104598418A (zh) * | 2015-01-27 | 2015-05-06 | 北京奥普维尔科技有限公司 | 一种基于fpga的控制i2c通信的系统及方法 |
CN105095139A (zh) * | 2014-05-08 | 2015-11-25 | 中兴通讯股份有限公司 | 集成电路总线系统及其数据操作和传输方法 |
CN105912354A (zh) * | 2016-03-16 | 2016-08-31 | 昆山软龙格自动化技术有限公司 | 一种cmos芯片快速i2c配置/烧录方法 |
CN109981480A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 一种数据传输方法及第一设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7353158B2 (en) * | 2004-12-13 | 2008-04-01 | Sony Corporation | Inter integrated circuit extension via shadow memory |
US7640378B2 (en) * | 2005-03-11 | 2009-12-29 | Icron Technologies Corporation | Method and apparatus for improving the performance of USB mass storage devices in the presence of long transmission delays |
US7587539B2 (en) * | 2006-04-25 | 2009-09-08 | Texas Instruments Incorporated | Methods of inter-integrated circuit addressing and devices for performing the same |
US8558577B1 (en) * | 2012-07-31 | 2013-10-15 | Hewlett-Packard Development Company, L.P. | Systems and methods for bidirectional signal separation |
US9619330B2 (en) * | 2013-10-08 | 2017-04-11 | Seagate Technology Llc | Protecting volatile data of a storage device in response to a state reset |
JP6565360B2 (ja) * | 2015-06-17 | 2019-08-28 | 富士通株式会社 | 接続装置およびストレージ装置 |
EP3316523B1 (en) * | 2015-06-25 | 2022-03-09 | Thine Electronics, Inc. | Host-side transceiver device and transceiver system |
CN105975425A (zh) * | 2016-04-28 | 2016-09-28 | 英业达科技有限公司 | I2c设备通信方法及系统 |
CN209357068U (zh) * | 2019-02-20 | 2019-09-06 | 无锡宇宁智能科技有限公司 | Nfc电路和终端设备 |
CN209920986U (zh) * | 2019-04-19 | 2020-01-10 | 重庆长安汽车股份有限公司 | 一种汽车空调分区控制系统及汽车 |
-
2020
- 2020-04-07 JP JP2022561039A patent/JP2023521335A/ja active Pending
- 2020-04-07 MX MX2022012563A patent/MX2022012563A/es unknown
- 2020-04-07 KR KR1020227037432A patent/KR20220158814A/ko unknown
- 2020-04-07 WO PCT/CN2020/083441 patent/WO2021203227A1/zh unknown
- 2020-04-07 EP EP20929800.9A patent/EP4120092A4/en active Pending
- 2020-04-07 CN CN202080006831.3A patent/CN113196255B/zh active Active
-
2022
- 2022-10-04 US US17/959,541 patent/US20230021703A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023954A (zh) * | 2009-09-17 | 2011-04-20 | 研祥智能科技股份有限公司 | 具有多路i2c总线的装置、处理器、系统主板及工控计算机 |
CN102169463A (zh) * | 2011-04-28 | 2011-08-31 | 杭州华三通信技术有限公司 | 一种基于iic总线的制造信息的获取方法和设备 |
CN105095139A (zh) * | 2014-05-08 | 2015-11-25 | 中兴通讯股份有限公司 | 集成电路总线系统及其数据操作和传输方法 |
CN104598418A (zh) * | 2015-01-27 | 2015-05-06 | 北京奥普维尔科技有限公司 | 一种基于fpga的控制i2c通信的系统及方法 |
CN105912354A (zh) * | 2016-03-16 | 2016-08-31 | 昆山软龙格自动化技术有限公司 | 一种cmos芯片快速i2c配置/烧录方法 |
CN109981480A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 一种数据传输方法及第一设备 |
Also Published As
Publication number | Publication date |
---|---|
EP4120092A1 (en) | 2023-01-18 |
MX2022012563A (es) | 2022-11-07 |
EP4120092A4 (en) | 2023-04-26 |
CN113196255A (zh) | 2021-07-30 |
US20230021703A1 (en) | 2023-01-26 |
JP2023521335A (ja) | 2023-05-24 |
WO2021203227A1 (zh) | 2021-10-14 |
KR20220158814A (ko) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101641683B (zh) | 增强的无线usb协议和集线器 | |
US8509257B2 (en) | CAN node, and communication method of communication system including CAN node | |
CN100366029C (zh) | 通信控制器、主机端控制器、通信设备、通信系统和方法 | |
US8082373B2 (en) | Specialized universal serial bus controller | |
CN111164923B (zh) | 用于单向传输数据的设计 | |
US9524265B2 (en) | Providing a serial protocol for a bidirectional serial interconnect | |
CN107637023B (zh) | 用于在数据总线系统中传输消息的方法、收发器和用于机动车的电子控制单元 | |
US20090024782A1 (en) | Distributed interconnect bus apparatus | |
KR20090034409A (ko) | 통신 시스템에서 자동 재송신 요구 피드백 정보 엘리먼트송수신 장치 및 방법 | |
CN113992317A (zh) | 一种spi通信方法、装置及存储介质 | |
CN113196255B (zh) | 基于内部集成电路协议的数据传输方法和传输装置 | |
CN110099028B (zh) | 一种串口数据传输的方法及装置 | |
CN111641565B (zh) | 一种以太网报文的传输方法、装置及系统 | |
CN104426866B (zh) | 一种数据传输方法及装置 | |
CN111385069A (zh) | 数据传输方法及计算机设备 | |
EP3985928A1 (en) | Communication device, communication method, and program | |
EP1305922B1 (en) | Ground level shift detection in can systems | |
CN115244523A (zh) | 一种时钟展频协商方法、高速外围组件互联设备及系统 | |
CN113572629A (zh) | 消息传输的方法、终端及存储介质 | |
CN110166341B (zh) | 一种服务器、服务器集群及通信方法 | |
CN115687225A (zh) | Uart软件流控方法、装置、设备及介质 | |
CN116016708A (zh) | 一种1553b总线与blvds总线转换方法及装置 | |
EP1487157A2 (en) | Information data transmitting and receiving device and transmitting and receiving method of information data | |
JP3386115B2 (ja) | 無線アダプタ | |
CN116055009A (zh) | 数据传输方法及相关装置 |
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 |