CN114238196A - I2c总线单元、i2c总线系统及通信同步控制方法 - Google Patents

I2c总线单元、i2c总线系统及通信同步控制方法 Download PDF

Info

Publication number
CN114238196A
CN114238196A CN202111336101.2A CN202111336101A CN114238196A CN 114238196 A CN114238196 A CN 114238196A CN 202111336101 A CN202111336101 A CN 202111336101A CN 114238196 A CN114238196 A CN 114238196A
Authority
CN
China
Prior art keywords
signal
scl
bus
cpu
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.)
Granted
Application number
CN202111336101.2A
Other languages
English (en)
Other versions
CN114238196B (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.)
Zhuhai Miaocun Technology Co ltd
Original Assignee
Zhuhai Miaocun Technology Co ltd
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 Zhuhai Miaocun Technology Co ltd filed Critical Zhuhai Miaocun Technology Co ltd
Priority to CN202111336101.2A priority Critical patent/CN114238196B/zh
Publication of CN114238196A publication Critical patent/CN114238196A/zh
Application granted granted Critical
Publication of CN114238196B publication Critical patent/CN114238196B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明公开了一种I2C总线单元、I2C总线系统及通信同步控制方法,包括I2C主机在与I2C从机建立连接后,向I2C从机发送第一段数据报文;I2C主机在第一段数据报文发送完毕后,向对应的第一CPU发送第一中断信号,以使第一CPU准备下一段数据报文;I2C从机接收到第一段数据报文后,向对应的第二CPU发送第二中断信号,以及拉低SCL总线的电平,以使I2C主机进入等待状态;I2C从机在接收到来自第二CPU的第一中断完成信号后,释放SCL总线;I2C主机在接收到来自第一CPU的第二中断完成信号且SCL总线被释放后,发送下一段数据报文。本发明可以实现处理器与I2C总线之间的通信同步。

Description

I2C总线单元、I2C总线系统及通信同步控制方法
技术领域
本发明涉及电通信技术领域,特别涉及一种I2C总线单元、I2C总线系统及通信同步控制方法。
背景技术
目前,市面上一些复杂的玩具、家电或机器人等,往往具有几块、几十块甚至更多的微处理器(MCU)。为了达到低功耗的目的,当系统不需要MCU快速反应时,大多数MCU都会进入低功耗模式(非待机模式),即MCU在一个极低频率的系统时钟下运行,这样既可以接收主控制器(CPU、DSP或MCU等)发来的配置信息和查询,又可以降低功耗。这些MCU通常不定时且不间断地收到主控制器的控制和配置,因此可以通过低速总线来进行交互和通信。
其中,I2C(Inter-Integrated Circuit)总线非常适合应用于上述场景。I2C总线是由飞利浦(philips)公司开发的串行低速总线,仅需要SCL(Serial Clock)总线和SDA(Serial Data)总线这两根线就可以完成数据的收发并具备应答机制。但是,在实际应用中发现,在处于低功耗模式的情况下,由于MCU运行在很低的时钟频率下,容易出现MCU与I2C总线通信失步的问题,从而导致数据接收失败。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种I2C总线单元、I2C总线系统及通信同步控制方法,能够实现处理器与I2C总线之间的通信同步。
第一方面,根据本发明实施例的I2C总线单元,包括第一数据寄存器,具有第一信号端和第二信号端,所述第一数据寄存器的第一信号端用于与外部的第一CPU通信连接;第一移位寄存器,具有第一信号端、第二信号端、第三信号端、第四信号端和第五信号端,所述第一移位寄存器的第一信号端与所述第一数据寄存器的第二信号端连接,所述第一移位寄存器的第二信号端和第三信号端分别与外部的SDA总线连接;第一SCL总线时钟检测模块,具有第一信号端和第二信号端,所述第一SCL总线时钟检测模块的第一信号端与外部的SCL总线连接;SCL时钟输出模块,具有第一信号端、第二信号端和第三信号端,所述SCL时钟输出模块的第一信号端连接有波特率发生器,所述SCL时钟输出模块的第二信号端分别与所述SCL总线和所述第一移位寄存器的第四信号端连接;FLAG控制和暂停SCL输出模块,具有第一信号端、第二信号端、第三信号端、第四信号端和第五信号端,所述FLAG控制和暂停SCL输出模块的第一信号端与所述第一移位寄存器的第五信号端连接,所述FLAG控制和暂停SCL输出模块的第二信号端和第三信号端分别与所述第一CPU连接,所述FLAG控制和暂停SCL输出模块的第四信号端与所述第一SCL总线时钟检测模块的第二信号端连接,所述FLAG控制和暂停SCL输出模块的第五信号端与所述SCL时钟输出模块的第三信号端连接,所述FLAG控制和暂停SCL输出模块用于根据来自所述第一SCL总线时钟检测模块的检测信号使能或禁止所述SCL时钟输出模块、根据来自所述第一移位寄存器的信号向所述第一CPU发送第一中断信号或者接收来自所述第一CPU的第一中断完成信号。
根据本发明实施例的I2C总线单元,至少具有如下有益效果:
FLAG控制和暂停SCL输出模块用于根据来自第一SCL总线时钟检测模块的检测信号使能或禁止SCL时钟输出模块,可以在SCL总线的电平被拉低时停止SCL时钟输出,以进入等待状态,在SCL总线被释放后重新进行数据传输,从而实现处理器与I2C总线之间的通信同步。
第二方面,根据本发明实施例的I2C总线单元,包括第二数据寄存器,具有第一信号端和第二信号端,所述第二数据寄存器的第一信号端用于与外部的第二CPU通信连接;第二移位寄存器,具有第一信号端、第二信号端、第三信号端、第四信号端和第五信号端,所述第二移位寄存器的第一信号端与所述第二数据寄存器的第二信号端连接,所述第二移位寄存器的第二信号端连接有SDA总线检测模块,并通过所述SDA总线检测模块与外部的SDA总线连接,所述第二移位寄存器的第三信号端与所述SDA总线连接;第二SCL总线时钟检测模块,具有第一信号端和第二信号端,所述第二SCL总线时钟检测模块的第一信号端与外部的SCL总线连接,所述第二SCL总线时钟检测模块的第二信号端与所述第二移位寄存器的第四信号端连接;SCL时钟控制模块,具有第一信号端和第二信号端,所述SCL时钟控制模块的第一信号端与所述SCL总线连接;FLAG控制和暂停数据传输模块,具有第一信号端、第二信号端、第三信号端和第四信号端,所述FLAG控制和暂停数据传输模块的第一信号端与所述第二移位寄存器的第五信号端连接,所述FLAG控制和暂停数据传输模块的第二信号端和第三信号端分别与所述第二CPU连接,所述FLAG控制和暂停数据传输模块的第四信号端与所述SCL时钟控制模块的第二信号端连接,所述FLAG控制和暂停数据传输模块用于根据来自所述第二移位寄存器的信号向所述第二CPU发送第二中断信号以及向所述SCL时钟控制模块发送第一控制信号,或者根据来自所述第二CPU的第二中断完成信号向所述SCL时钟控制模块发送第二控制信号。
根据本发明实施例的I2C总线单元,至少具有如下有益效果:
FLAG控制和暂停数据传输模块根据来自第二移位寄存器的信号向第二CPU发送第二中断信号以及向SCL时钟控制模块发送第一控制信号,拉低SCL总线的电平,从而停止SDA总线的数据传输,当第二CPU完成中断后,向所述SCL时钟控制模块发送第二控制信号,释放SCL总线,从而继续传输数据,可以实现处理器与I2C总线之间的通信同步。
第三方面,根据本发明实施例的I2C总线系统,包括相互连接的I2C主机和I2C从机,所述I2C主机采用第一方面所述的I2C总线单元,所述I2C从机采用第二方面所述的I2C总线单元。
第四方面,根据本发明实施例的通信同步控制方法,应用于I2C主机和I2C从机,包括步骤:
所述I2C主机在与所述I2C从机建立连接后,向所述I2C从机发送第一段数据报文;
所述I2C主机在所述第一段数据报文发送完毕后,向对应的第一CPU发送第一中断信号,以使所述第一CPU准备下一段数据报文;
所述I2C从机接收到所述第一段数据报文后,向对应的第二CPU发送第二中断信号,以及拉低SCL总线的电平,以使所述I2C主机进入等待状态;
所述I2C从机在接收到来自所述第二CPU的第二中断完成信号后,释放所述SCL总线;
所述I2C主机在接收到来自所述第一CPU的第一中断完成信号且所述SCL总线被释放后,发送所述下一段数据报文。
根据本发明实施例的通信同步控制方法,至少具有如下有益效果:
I2C从机在接收第一段数据报文后拉低SCL总线的电平,以使I2C主机进入等待状态,在第二CPU完成中断处理后释放SCL总线,重新开始数据报文的传输,可以实现处理器与I2C总线之间的通信同步。
第五方面,根据本发明实施例的通信同步控制方法,应用于I2C主机,包括步骤:
在与对应的I2C从机建立连接后,向所述I2C从机发送第一段数据报文;
在所述第一段数据报文发送完毕后,向对应的第一CPU发送第一中断信号;
等待来自所述第一CPU的第一中断完成信号,以及在SCL总线为低电平的情况下,进入等待状态。
第六方面,根据本发明实施例的通信同步控制方法,应用于I2C从机,包括步骤:
在与I2C主机建立连接且接收到来自所述I2C主机的第一段数据报文后,向对应的第二CPU发送第二中断信号,以及拉低SCL总线的电平;
在接收到来自所述第二CPU的第二中断完成信号后,释放所述SCL总线。
第七方面,根据本发明实施例的通信同步控制方法,应用于I2C主机和I2C从机,包括步骤:
在所述I2C主机与所述I2C从机建立连接后,所述I2C从机向所述I2C主机发送第一段数据报文;
所述I2C主机接收到所述第一段数据报文后,向所述I2C从机发送第一应答报文或第二应答报文;
所述I2C从机在接收到所述第一应答报文的情况下,拉低SCL总线的电平,以及向对应的第二CPU发送第三中断信号,以使所述第二CPU准备下一段数据报文;
所述I2C主机接收到所述第一段数据报文后,向对应的第一CPU发送第四中断信号,并在所述第一CPU完成中断处理后,接收来自所述第一CPU的第三中断完成信号;
所述I2C主机在所述SCL总线为低电平的情况下,进入等待状态;
所述I2C从机在接收到来自所述第二CPU的第四中断完成信号后,释放所述SCL总线,并发送所述下一段数据报文;
或者,所述I2C从机在接收到所述第二应答报文的情况下,进入初始状态。
根据本发明实施例的通信同步控制方法,至少具有如下有益效果:
I2C从机在发送第一段数据报文后拉低SCL总线的电平,以使I2C主机进入等待状态,在第二CPU完成中断处理后释放SCL总线,重新开始数据报文的传输,可以实现处理器与I2C总线之间的通信同步。
第八方面,根据本发明实施例的通信同步控制方法,应用于I2C主机,包括步骤:
在与对应的I2C从机建立连接且接收到来自所述I2C从机的第一段数据报文后,向所述I2C从机发送第一应答报文或第二应答报文;
向对应的第一CPU发送第四中断信号,并等待来自所述第一CPU的第三中断完成信号;
在SCL总线为低电平的情况下,进入等待状态。
第九方面,根据本发明实施例的通信同步控制方法,应用于I2C从机,包括步骤:
在与对应的I2C主机建立连接后,向所述I2C主机发送第一段数据报文,并查看来自所述I2C主机的应答报文;
在所述应答报文为第一应答报文的情况下,拉低SCL总线的电平,以及向对应的第二CPU发送第三中断信号,以使所述第二CPU准备下一段数据报文;
在接收到来自所述第二CPU的第四中断完成信号后,释放所述SCL总线,并发送所述下一段数据报文;
或者,在所述应答报文为第二应答报文的情况下,进入初始状态。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例的I2C总线系统的示意图;
图2为图1示出的I2C总线系统的第一I2C总线单元的示意图;
图3为图1示出的I2C总线系统的第二I2C总线单元的示意图;
图4为本发明实施例2的通信同步控制方法的步骤流程图;
图5为本发明实施例2的通信同步控制方法的波形图;
图6为本发明实施例3的通信同步控制方法的步骤流程图;
图7为本发明实施例3的通信同步控制方法的波形图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,“若干”的含义是一个或者多个,“多个”的含义是两个以上,大于、小于、超过等理解为不包括本数,“以上”、“以下”、“以内”等理解为包括本数。如果有描述到“第一”、“第二”等只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
本发明的描述中,除非另有明确的限定,“设置”、“连接”等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
实施例1
请参照图1,本实施例公开一种I2C总线系统,包括I2C主机和I2C从机,I2C主机分别通过SCL总线和SDA总线连接于I2C从机。I2C主机和I2C从机分别位于对应的处理器内,其中,I2C主机所在的处理器为主控制器,主控制器内设置有嵌入式的第一CPU,第一CPU与I2C主机通信连接;I2C从机所在的处理器为MCU X,MCU X内设置有嵌入式的第二CPU,第二CPU与I2C从机通信连接。需要说明的是,MCU X是指与主控制器通信的第X个MCU,X为正整数。本实施例中,I2C主机采用第一I2C总线单元,I2C从机采用第二I2C总线单元。下面分别对第一I2C总线单元和第二I2C总线单元进行详细讨论。
请参照图2,第一I2C总线单元包括第一数据寄存器110、第一移位寄存器120、第一SCL总线时钟检测模块130、SCL时钟输出模块140以及FLAG(标志)控制和暂停SCL输出模块150,第一数据寄存器110具有第一信号端和第二信号端,第一数据寄存器110的第一信号端用于与第一CPU通信连接,第一移位寄存器120具有第一信号端、第二信号端、第三信号端、第四信号端和第五信号端,第一移位寄存器120的第一信号端与第一数据寄存器110的第二信号端连接,第一移位寄存器120的第二信号端和第三信号端分别与SDA总线连接,第一SCL总线时钟检测模块130具有第一信号端和第二信号端,第一SCL总线时钟检测模块130的第一信号端与SCL总线连接,SCL时钟输出模块140具有第一信号端、第二信号端和第三信号端,SCL时钟输出模块140的第一信号端连接有波特率发生器141,SCL时钟输出模块140的第二信号端分别与SCL总线和第一移位寄存器120的第四信号端连接,FLAG控制和暂停SCL输出模块150具有第一信号端、第二信号端、第三信号端、第四信号端和第五信号端,FLAG控制和暂停SCL输出模块150的第一信号端与第一移位寄存器120的第五信号端连接,FLAG控制和暂停SCL输出模块150的第二信号端和第三信号端分别与第一CPU连接,FLAG控制和暂停SCL输出模块150的第四信号端与第一SCL总线时钟检测模块130的第二信号端连接,FLAG控制和暂停SCL输出模块150的第五信号端与SCL时钟输出模块140的第三信号端连接。
在本实施例中,第一数据寄存器110包括第一TX(发送)寄存器和第一RX(接收)寄存器,其中,第一TX寄存器用于缓存来自第一CPU的待发送数据,第一RX寄存器用于缓存待传输给第一CPU的数据,第一数据寄存器110与第一CPU之间通过8bit的CPU数据总线进行通信连接,而SDA总线为串行数据总线,因此,需要通过第一移位寄存器120对第一数据寄存器110的并行数据和SDA总线的串行数据进行串并转换或并串转换。第一SCL总线时钟检测模块130用于对SCL总线的时钟信号进行检测,并将检测信号发送给FLAG控制和暂停SCL输出模块150,FLAG控制和暂停SCL输出模块150用于根据来自第一SCL总线时钟检测模块130的检测信号使能或禁止SCL时钟输出模块140、根据来自第一移位寄存器120的信号向第一CPU发送第一中断信号或者接收来自第一CPU的第一中断完成信号。SCL时钟输出模块140用于向SCL总线和第一移位寄存器120提供SCL时钟信号,以便于实现I2C主机和I2C从机的时钟同步。
第二I2C总线单元包括第二数据寄存器210、第二移位寄存器220、SDA总线检测模块230、第二SCL总线时钟检测模块240、SCL时钟控制模块250以及FLAG控制和暂停数据传输模块260,第二数据寄存器210具有第一信号端和第二信号端,第二数据寄存器210的第一信号端用于与第二CPU通信连接,第二移位寄存器220具有第一信号端、第二信号端、第三信号端、第四信号端和第五信号端,第二移位寄存器220的第一信号端与第二数据寄存器210的第二信号端连接,第二移位寄存器220的第二信号端连接有SDA总线检测模块230,并通过SDA总线检测模块230与SDA总线连接,第二移位寄存器220的第三信号端与SDA总线连接,第二SCL总线时钟检测模块240具有第一信号端和第二信号端,第二SCL总线时钟检测模块240的第一信号端与SCL总线连接,第二SCL总线时钟检测模块240的第二信号端与第二移位寄存器220的第四信号端连接,SCL时钟控制模块250具有第一信号端和第二信号端,SCL时钟控制模块250的第一信号端与SCL总线连接,FLAG控制和暂停数据传输模块260具有第一信号端、第二信号端、第三信号端和第四信号端,FLAG控制和暂停数据传输模块260的第一信号端与第二移位寄存器220的第五信号端连接,FLAG控制和暂停数据传输模块260的第二信号端和第三信号端分别与第二CPU连接,FLAG控制和暂停数据传输模块260的第四信号端与SCL时钟控制模块250的第二信号端连接。
在本实施例中,第二数据寄存器210包括第二TX发送寄存器和第二RX接收寄存器,其中,第二TX寄存器用于缓存来自第二CPU的待发送数据,第二RX寄存器用于缓存待传输给第二CPU的数据,第二数据寄存器210与第二CPU之间通过8bit的数据总线进行通信连接,而SDA总线为串行数据总线,因此,需要通过第二移位寄存器220对第二数据寄存器210的并行数据和SDA总线的串行数据进行串并转换或并串转换。第二SCL总线时钟检测模块240用于对SCL总线的时钟信号进行检测,并将检测信号发送给第二移位寄存器220。SDA总线检测模块230用于检测来自SDA总线的数据信号,配合第二SCL总线时钟检测模块240的检测信号Start/Stop,可以对SDA总线的数据进行识别。FLAG控制和暂停数据传输模块260用于根据来自第二移位寄存器220的信号向第二CPU发送第二中断信号以及向SCL时钟控制模块250发送第一控制信号,或者根据来自第二CPU的第二中断完成信号向SCL时钟控制模块250发送第二控制信号。SCL时钟控制模块250用于根据第一控制信号拉低SCL总线的电平,或者根据第二控制信号释放SCL总线。
本实施例的工作原理如下:
当主控制器需要将数据发送给MCU X时,第一CUP将I2C从机的地址和写Write命令填入第一数据寄存器110;
SCL时钟输出模块140向SCL总线提供SCL时钟信号,第一移位寄存器120对第一数据寄存器110中的数据进行并串转换,使转换后的数据随SCL时钟信号在SDA总线上传输;
第二移位寄存器220通过第二SCL总线时钟检测模块240检测到起始信号后,通过SDA总线检测模块230从SDA总线上接收数据,并检测数据中的地址是否正确,若正确则返回应答ACK;
第一移位寄存器120接收到应答ACK后,表示I2C主机与I2C从机之间已建立连接,第一移位寄存器120发送第一段数据报文,并在完成第一段数据报文的发送后向FLAG控制和暂停SCL输出模块150发送信号;
FLAG控制和暂停SCL输出模块150在接收到来自第一移位寄存器120的信号后,向第一CPU发送第一中断信号,以使第一CPU准备下一段数据报文;
第一CPU在完成下一段数据报文的准备后,向FLAG控制和暂停SCL输出模块150发送第一中断完成信号;
第二移位寄存器220通过SDA总线检测模块230从SDA总线上接收第一段数据报文,并将第一段数据报文缓存在第二数据寄存器210中;
第二移位寄存器220在完成数据接收后,向FLAG控制和暂停数据传输模块260发送信号;
FLAG控制和暂停数据传输模块260接收到来自第二移位寄存器220的信号后,向第二CPU发送第二中断信号,以及向SCL时钟控制模块250发送第一控制信号;
SCL时钟控制模块250在接收到第一控制信号后,拉低SCL总线的电平;
第一SCL总线时钟检测模块130在检测到SCL总线被拉低为低电平时,向FLAG控制和暂停SCL输出模块150发送信号;
FLAG控制和暂停SCL输出模块150在接收到来自第一SCL总线时钟检测模块130的信号后,向SCL时钟输出模块140发送第三控制信号,以使SCL时钟输出模块140停止输出SCL时钟信号,从而使I2C主机进入等待状态;
第二CPU在接收到第二中断信号后,对缓存在第二数据寄存器210中的数据进行处理,并在完成数据处理后,向FLAG控制和暂停数据传输模块260发送第二中断完成信号;
FLAG控制和暂停数据传输模块260在接收到第二中断完成信号后,向SCL时钟控制模块250发送第二控制信号;
SCL时钟控制模块250在接收到第二控制信号后,释放SCL总线,使SCL总线恢复高电平;
第一SCL总线时钟检测模块130检测到SCL总线恢复为高电平后,向FLAG控制和暂停SCL输出模块150发送信号;
FLAG控制和暂停SCL输出模块150向SCL时钟输出模块140发送第四控制信号,以使SCL时钟输出模块140重新输出SCL时钟信号,从而使I2C主机重新进入数据传输状态。需要说明的是,在MCU X进入低功耗模式的情况下,主控制器的工作频率(速度)高于MCU X的工作频率(速度),当SCL总线恢复为高电平时,第一CPU以完成下一段数据报文的准备,即FLAG控制和暂停SCL输出模块150已接收到来自第一CPU的第一中断完成信号。
本实施例的I2C从机在接收到数据后,FLAG控制和暂停数据传输模块260发送第二中断信号以通知第二CPU进行数据处理,以及发送第一控制信号以通过SCL时钟控制模块250拉低SCL总线的电平,I2C主机的FLAG控制和暂停SCL输出模块150在SCL总线被拉低为低电平时,通过SCL时钟输出模块140暂停SCL时钟信号输出,进入等待状态,以使I2C总线的数据传输速度与MCU X的数据处理速度匹配,从而实现处理器与I2C总线的通信同步。值得理解的是,上述讨论中仅以主控制器向MCU X发送数据为例,而在主控制器向MCU X读取数据的过程同样可以利用SCL时钟控制模块250拉低SCL总线的电平以实现I2C总线与MCU X的通信同步。与增加FIFO(First In First Out,先进先出)的方式相比,本实施例可以在较低的硬件开销上实现I2C总线与处理器的通信同步,有利于实现小型化设计以及提高硬件集成密度。
值得理解的是,本实施例中未对I2C主机和I2C从机内部各个模块的具体结构进行讨论,但是本领域技术人员在根据各个模块之间的逻辑关系,通过选择合适的逻辑逻辑器件的组合,可以达到本实施例的技术效果。此外,I2C主机还设置有第一协议控制FSM(Finite State Machine,有限状态机)模块160和第一控制/状态寄存器170,第一协议控制FSM模块160用于划分I2C协议的地址位、读写位、数据位、应答位、start(开始)位、stop(结束)位的时序,同时将相应的状态标志信号发送给第一控制/状态寄存器170,第一控制/状态寄存器170用于为第一CPU提供I2C主机的状态查询。同样的,I2C从机还设置有第二协议控制FSM模块270和第二控制/状态寄存器280。
实施例2
请参照图4和图5,本实施例公开一种通信同步控制方法,应用于I2C主机和I2C从机,希望理解的是,为了避免赘述,本实施例的I2C主机和I2C从机的具体配置可参照实施例1。本实施例的通信同步控制方法包括步骤:
S110、I2C主机在与I2C从机建立连接后,向I2C从机发送第一段数据报文;
请参照图2和图3,在本实施例中,I2C主机与I2C从机建立连接的过程如下:
I2C主机的第一数据寄存器110接收来自第一CUP的I2C从机的地址和写(Write)命令,其中第一CPU为与I2C主机位于同一主控制器内且对应连接的嵌入式CPU;
I2C主机的SCL时钟输出模块140向SCL总线提供SCL时钟信号,I2C主机的第一移位寄存器120对I2C主机的第一数据寄存器110中的数据进行并串转换,使转换后的数据随SCL时钟信号在SDA总线上传输;
I2C从机的第二移位寄存器220通过I2C从机的第二SCL总线时钟检测模块240检测到起始信号后,通过I2C从机的SDA总线检测模块230从SDA总线上接收数据,并检测数据中的地址是否正确,若正确则返回应答ACK;
I2C主机的第一移位寄存器120接收到应答ACK后,表示I2C主机与I2C从机之间已建立连接。
S120、I2C主机在第一段数据报文发送完毕后,向对应的第一CPU发送第一中断信号,以使第一CPU准备下一段数据报文;
需要说明的是,在数据传输过程中,I2C主机的SCL时钟输出模块140通过SCL总线为I2C从机提供同步时钟。在第一段数据报文发送完毕后,I2C主机的第一移位寄存器120向FLAG控制和暂停SCL输出模块150发送信号,使FLAG控制和暂停SCL输出模块150向第一CPU发送第一中断信号(即DATA_READY_FLAG_1信号),以使第一CPU准备下一段数据报文,避免数据报文的连续发送导致的I2C总线传输速度过快而MCU X接收处理速度过慢的通信失步问题。
S130、I2C从机接收到第一段数据报文后,向对应的第二CPU发送第二中断信号,以及拉低SCL总线的电平,以使I2C主机进入等待状态;
具体的,I2C从机的第二移位寄存器220在接收到第一段数据报文后,向FLAG控制和暂停数据传输模块260发送信号,使FLAG控制和暂停数据传输模块260向第二CPU发送第二中断信号(即DATA_READY_FLAG_2信号),以及向SCL时钟控制模块250发送PAUSE_2(暂停)信号,使SCL时钟控制模块250将SCL总线上的电平拉低,从而通知I2C主机进入等待状态,避免在第二CPU处理数据的过程中进行数据传输,有利于防止通信失步而导致数据丢失。
S140、I2C从机在接收到来自第二CPU的第二中断完成信号后,释放SCL总线;
具体的,在第二CPU完成对第一段数据报文的处理后,I2C从机的FLAG控制和暂停数据传输模块260接收来自第二CPU的第二中断完成信号(即清除FLAG_2信号),使FLAG控制和暂停数据传输模块260通过SCL时钟控制模块250将SCL总线的电平恢复为高电平,以通知I2C主机进入下一阶段的数据传输。
S150、I2C主机在接收到来自第一CPU的第一中断完成信号且SCL总线被释放后,发送下一段数据报文。
具体的,I2C主机的第一SCL总线时钟检测模块130检测到SCL总线的电平恢复为高电平时,向FLAG控制和暂停SCL输出模块150发送信号,使FLAG控制和暂停SCL输出模块150控制SCL时钟输出模块140继续向SCL总线和第一移位寄存器120提供SCL时钟信号,进而使第一移位寄存器120跟随SCL时钟信号将第一数据寄存器110中的数据报文通过SDA总线发送给I2C从机。如此不断重复步骤S120~S150,直至所有的数据传输完毕,第一CPU将I2C主机的“停止数据传输位”置1,从而向I2C从机发送STOP停止信号,I2C从机在收到STOP信号后回到初始状态(IDLE),从而完成I2C主机和I2C从机之间的通信。
在MCU X进入低功耗模式的情况下,MCU X的运行频率(速度)会低于主控制器的运行频率(速度),即第二CPU的处理速度低于第一CPU的处理速度,若按照第一CPU的运行速度在I2C总线上进行连续数据传输,则会导致第二CPU与I2C总线之间的通信失步。为此,本实施例的I2C从机在接收第一段数据报文后拉低SCL总线的电平,以使I2C主机进入等待状态,在第二CPU完成中断处理后释放SCL总线,重新开始数据报文的传输,可以位第二CPU提供数据处理的时间,可以实现处理器与I2C总线之间的通信同步。
对于一个控制系统而言,微处理器的数据可以是几块或几十块,对于I2C总线通信系统而言,通常配置一个I2C主机和多个I2C从机,以实现不同微处理器之间的串行通信。为此,本实施例提供一种通信同步控制方法,应用于I2C主机,希望理解的是,为了避免赘述,本实施例的I2C主机的配置可按照实施例1。本实施例的通信同步控制方法包括步骤:
S210、在与对应的I2C从机建立连接后,向I2C从机发送第一段数据报文;
当I2C主机向与I2C从机写入数据时,I2C主机的第一数据寄存器110接收来自第一CUP的I2C从机的地址和写(Write)命令,其中第一CPU为与I2C主机位于同一主控制器内且对应连接的嵌入式CPU;
I2C主机的SCL时钟输出模块140向SCL总线提供SCL时钟信号,I2C主机的第一移位寄存器120对I2C主机的第一数据寄存器110中的数据进行并串转换,使转换后的数据随SCL时钟信号在SDA总线上传输;
I2C从机的第二移位寄存器220通过I2C从机的第二SCL总线时钟检测模块240检测到起始信号后,通过I2C从机的SDA总线检测模块230从SDA总线上接收数据,并检测数据中的地址是否正确,若正确则返回应答ACK;
I2C主机的第一移位寄存器120接收到应答ACK后,表示I2C主机与I2C从机之间已建立连接。
S220、在第一段数据报文发送完毕后,向对应的第一CPU发送第一中断信号;
在第一段数据报文发送完毕后,I2C主机的第一移位寄存器120向FLAG控制和暂停SCL输出模块150发送信号,使FLAG控制和暂停SCL输出模块150向第一CPU发送第一中断信号(即DATA_READY_FLAG_1信号),以使第一CPU准备下一段数据报文,避免数据报文的连续发送导致的I2C总线传输速度过快而MCU X接收处理速度过慢的通信失步问题。
S230、等待来自第一CPU的第一中断完成信号,以及在SCL总线为低电平的情况下,进入等待状态。
当第一CPU完成下一段数据报文的准备,即将下一段数据报文填入I2C主机的第一数据寄存器110后,第一CPU向I2C主机的FLAG控制和暂停SCL输出模块150发送第一中断完成信号(即清除FLAG_1信号),I2C主机的SCL总线时钟检测模块对SCL总线的电平进行检测,在SCL总线的电平被拉低为低电平时,SCL总线时钟检测模块向FLAG控制和暂停SCL输出模块150发送信号,使FLAG控制和暂停SCL输出模块150控制SCL时钟输出模块140停止SCL时钟信号的输出,从而进入等待状态。需要说明的是,在MCU X进入低功耗模式的情况下,第一CPU的处理速度通常高于第二CPU的处理速度,因此,当FLAG控制和暂停SCL数据模块接收到来自第一CPU的第一中断完成信号时,SCL总线仍处于低电平状态。
同样的,本实施例还公开一种通信同步控制方法,应用于I2C从机,希望理解的是,为了避免赘述,I2C从机的配置可参照实施例1。本实施例的通信同步控制方法包括步骤:
S310、在与I2C主机建立连接且接收到来自I2C主机的第一段数据报文后,向对应的第二CPU发送第二中断信号,以及拉低SCL总线的电平;
具体的,I2C从机的第二移位寄存器220在接收到第一段数据报文后,向FLAG控制和暂停数据传输模块260发送信号,使FLAG控制和暂停数据传输模块260向第二CPU发送第二中断信号(即DATA_READY_FLAG_2信号),以及向SCL时钟控制模块250发送PAUSE暂停信号,使SCL时钟控制模块250将SCL总线上的电平拉低,从而通知I2C主机进入等待状态,避免在第二CPU处理数据的过程中进行数据传输,有利于防止通信失步而导致数据丢失。
S320、在接收到来自第二CPU的第一中断完成信号后,释放SCL总线。
具体的,在第二CPU完成对第一段数据报文的处理后,I2C从机的FLAG控制和暂停数据传输模块260接收来自第二CPU的第二中断完成信号(即清除FLAG_2信号),使FLAG控制和暂停数据传输模块260通过SCL时钟控制模块250将SCL总线的电平恢复为高电平,以通知I2C主机进入下一阶段的数据传输。
实施例3
请参照图6和图7,本实施例的通信同步控制方法,应用于I2C主机和I2C从机,希望理解的是,为了避免赘述,本实施例的I2C主机和I2C从机的配置可参照实施例1。本实施例的通信同步控制方法包括步骤:
S410、在I2C主机与I2C从机建立连接后,I2C从机向I2C主机发送第一段数据报文;
请参照图2和图3,具体的,I2C主机的第一数据寄存器110接收来自第一CUP的I2C从机的地址和读(Read)命令,其中第一CPU为与I2C主机位于同一主控制器内且对应连接的嵌入式CPU;
I2C主机的SCL时钟输出模块140向SCL总线提供SCL时钟信号,I2C主机的第一移位寄存器120对I2C主机的第一数据寄存器110中的数据进行并串转换,使转换后的数据随SCL时钟信号在SDA总线上传输;
I2C从机的第二移位寄存器220通过I2C从机的第二SCL总线时钟检测模块240检测到起始信号后,通过I2C从机的SDA总线检测模块230从SDA总线上接收数据,并检测数据中的地址是否正确,若正确则返回应答ACK;
I2C主机的第一移位寄存器120接收到应答ACK后,表示I2C主机与I2C从机之间已建立连接。
I2C从机向I2C主机发送第一段数据报文,具体包括:
I2C从机的第二移位寄存器220将缓存在第二数据寄存器210中的第一数据报文进行并串转换,并随着SLC时钟信号通过SDA总线发送给I2C主机。
S420、I2C主机接收到第一段数据报文后,向I2C从机发送第一应答报文或第二应答报文;
具体,I2C主机的第一移位寄存器120接收第一段数据报文并缓存在第一数据寄存器110中,当第一段数据报文接收完毕后,第一移位寄存器120向I2C从机发送第一应答报文(即应答ACK)或第二应答报文(即应答NACK),其中第一应答报文用于表征数据报文接收正确,并需要继续通信;第二应答报文用于表征数据报文接收正确,且不准备继续通信。
S430、I2C从机在接收到第一应答报文的情况下,拉低SCL总线的电平,以及向对应的第二CPU发送第三中断信号,以使第二CPU准备下一段数据报文;
具体的,I2C从机的第二移位寄存器220在接收到第一应答报文的情况下,向FLAG控制和暂停数据传输模块260发送信号,使FLAG控制和暂停数据传输模块260通过SCL时钟控制模块250拉低SCL总线的电平,以及向第二CPU发送第三中断信号,以通知第二CPU准备下一段数据报文。如此,可以通知I2C主机进入等待状态,以便于为第二CPU提供足够的时间准备数据,解决I2C总线与第二CPU之间的通信失步问题。
S440、I2C主机接收到第一段数据报文后,向对应的第一CPU发送第四中断信号,并在第一CPU完成中断处理后,接收来自第一CPU的第三中断完成信号;
具体的,I2C主机的第一移位寄存器120接收第一段数据报文后,向FLAG控制和暂停SCL输出模块150发送信号,使FLAG控制和暂停SCL输出模块150向第一CPU发送第四中断信号,以通知第一CPU对第一段数据报文将进行处理。当第一CPU完成中断处理后,向FLAG控制和暂停SCL数据模块发送第三中断完成信号,以通知I2C主机准备接收下一段数据报文或进行下一阶段的工作。
S450、I2C主机在SCL总线为低电平的情况下,进入等待状态;
具体的,I2C主机的第一SCL总线时钟检测模块130对SCL总线进行电平检测,当检测到SCL总线为低电平的情况下,向FLAG控制和暂停SCL输出模块150发送信号,使FLAG控制和暂停SCL输出模块150控制SLC时钟输出模块停止SCL信号的发送,从而进入等待状态。
S460、I2C从机在接收到来自第二CPU的第四中断完成信号后,释放SCL总线,并发送下一段数据报文;
具体的,当第二CPU完成下一段数据报文的准备,即将下一段数据报文填入I2C从机的第二数据寄存器210后,向I2C从机的FLAG控制和暂停数据传输模块260发送第四中断完成信号,使FLAG控制和暂停数据传输模块260通过SCL时钟控制模块250释放SCL总线,即将SCL总线的电平恢复为高电平。当SCL总线恢复为高电平后,I2C主机的SCL时钟输出模块140重新提供SCL时钟信号,从而使I2C从机的第二移位寄存器220随SCL时钟信号发送下一段数据报文。
或者,S470、I2C从机在接收到第二应答报文的情况下,进入初始状态。
具体的,当I2C主机不准备继续通信时,I2C从机进入初始状态IDLE,以结束当前的通信。
I2C从机在发送第一段数据报文后拉低SCL总线的电平,以使I2C主机进入等待状态,在第二CPU完成中断处理后释放SCL总线,重新开始数据报文的传输,可以实现处理器与I2C总线之间的通信同步。
本实施例的还提供一种通信同步控制方法,应用于I2C主机,包括步骤:
S510、在与对应的I2C从机建立连接且接收到来自I2C从机的第一段数据报文后,向I2C从机发送第一应答报文或第二应答报文;
具体,I2C主机的第一移位寄存器120接收第一段数据报文并缓存在第一数据寄存器110中,当第一段数据报文接收完毕后,第一移位寄存器120向I2C从机发送第一应答报文(即应答ACK)或第二应答报文(即应答NACK),其中第一应答报文用于表征数据报文接收正确,并需要继续通信;第二应答报文用于表征数据报文接收正确,且不准备继续通信。
S520、向对应的第一CPU发送第四中断信号,并等待来自第一CPU的第三中断完成信号;
具体的,I2C主机的第一移位寄存器120接收第一段数据报文后,向FLAG控制和暂停SCL输出模块150发送信号,使FLAG控制和暂停SCL输出模块150向第一CPU发送第四中断信号,以通知第一CPU对第一段数据报文将进行处理。当第一CPU完成中断处理后,向FLAG控制和暂停SCL数据模块发送第三中断完成信号,以通知I2C主机准备接收下一段数据报文或进行下一阶段的工作。
S530、在SCL总线为低电平的情况下,进入等待状态。
具体的,I2C主机的第一SCL总线时钟检测模块130对SCL总线进行电平检测,当检测到SCL总线为低电平的情况下,向FLAG控制和暂停SCL输出模块150发送信号,使FLAG控制和暂停SCL输出模块150控制SLC时钟输出模块停止SCL信号的发送,从而进入等待状态。
如此,在MCU X进入低功耗模式的情况下,I2C主机能够根据MCU X的运行速度来调节数据接收速度,可以解决I2C总线与MCU X的通信失步问题。需要说明的是,在MCU X进入低功耗模式的情况下,第一CPU的处理速度通常高于第二CPU的处理速度,因此,当I2C主机接收来自第一CPU的第三中断完成信号时,SCL总线仍会处于低电平状态。
本实施例还提供一种通信同步控制方法,应用于I2C从机,包括步骤:
S610、在与对应的I2C主机建立连接后,向I2C主机发送第一段数据报文,并查看来自I2C主机的应答报文;
I2C主机的应答报文包括第一应答报文(即应答ACK)和第二应答报文(即应答NACK),其中第一应答报文用于表征数据报文接收正确,并需要继续通信;第二应答报文用于表征数据报文接收正确,且不准备继续通信。
S620、在应答报文为第一应答报文的情况下,拉低SCL总线的电平,以及向对应的第二CPU发送第三中断信号,以使第二CPU准备下一段数据报文;
具体的,I2C从机的第二移位寄存器220在接收到第一应答报文的情况下,向FLAG控制和暂停数据传输模块260发送信号,使FLAG控制和暂停数据传输模块260通过SCL时钟控制模块250拉低SCL总线的电平,以及向第二CPU发送第三中断信号,以通知第二CPU准备下一段数据报文。如此,可以通知I2C主机进入等待状态,以便于为第二CPU提供足够的时间准备数据,解决I2C总线与第二CPU之间的通信失步问题。
S630、在接收到来自第二CPU的第四中断完成信号后,释放SCL总线,并发送下一段数据报文;
具体的,当第二CPU完成下一段数据报文的准备,即将下一段数据报文填入I2C从机的第二数据寄存器210后,向I2C从机的FLAG控制和暂停数据传输模块260发送第四中断完成信号,使FLAG控制和暂停数据传输模块260通过SCL时钟控制模块释放SCL总线,即将SCL总线的电平恢复为高电平。当SCL总线恢复为高电平后,I2C主机的SCL时钟输出模块140重新提供SCL时钟信号,从而使I2C从机的第二移位寄存器220随SCL时钟信号发送下一段数据报文。
或者,S640、在应答报文为第二应答报文的情况下,进入初始状态。
具体的,I2C主机的第一SCL总线时钟检测模块130对SCL总线进行电平检测,当检测到SCL总线为低电平的情况下,向FLAG控制和暂停SCL输出模块150发送信号,使FLAG控制和暂停SCL输出模块150控制SLC时钟输出模块停止SCL信号的发送,从而进入等待状态。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

Claims (9)

1.一种I2C总线单元,其特征在于,包括:
第一数据寄存器(110),具有第一信号端和第二信号端,所述第一数据寄存器(110)的第一信号端用于与外部的第一CPU通信连接;
第一移位寄存器(120),具有第一信号端、第二信号端、第三信号端、第四信号端和第五信号端,所述第一移位寄存器(120)的第一信号端与所述第一数据寄存器(110)的第二信号端连接,所述第一移位寄存器(120)的第二信号端和第三信号端分别与外部的SDA总线连接;
第一SCL总线时钟检测模块(130),具有第一信号端和第二信号端,所述第一SCL总线时钟检测模块(130)的第一信号端与外部的SCL总线连接;
SCL时钟输出模块(140),具有第一信号端、第二信号端和第三信号端,所述SCL时钟输出模块(140)的第一信号端连接有波特率发生器(141),所述SCL时钟输出模块(140)的第二信号端分别与所述SCL总线和所述第一移位寄存器(120)的第四信号端连接;
FLAG控制和暂停SCL输出模块(150),具有第一信号端、第二信号端、第三信号端、第四信号端和第五信号端,所述FLAG控制和暂停SCL输出模块(150)的第一信号端与所述第一移位寄存器(120)的第五信号端连接,所述FLAG控制和暂停SCL输出模块(150)的第二信号端和第三信号端分别与所述第一CPU连接,所述FLAG控制和暂停SCL输出模块(150)的第四信号端与所述第一SCL总线时钟检测模块(130)的第二信号端连接,所述FLAG控制和暂停SCL输出模块(150)的第五信号端与所述SCL时钟输出模块(140)的第三信号端连接,所述FLAG控制和暂停SCL输出模块(150)用于根据来自所述第一SCL总线时钟检测模块(130)的检测信号使能或禁止所述SCL时钟输出模块(140)、根据来自所述第一移位寄存器(120)的信号向所述第一CPU发送第一中断信号或者接收来自所述第一CPU的第一中断完成信号。
2.一种I2C总线单元,其特征在于,包括:
第二数据寄存器(210),具有第一信号端和第二信号端,所述第二数据寄存器(210)的第一信号端用于与外部的第二CPU通信连接;
第二移位寄存器(220),具有第一信号端、第二信号端、第三信号端、第四信号端和第五信号端,所述第二移位寄存器(220)的第一信号端与所述第二数据寄存器(210)的第二信号端连接,所述第二移位寄存器(220)的第二信号端连接有SDA总线检测模块(230),并通过所述SDA总线检测模块(230)与外部的SDA总线连接,所述第二移位寄存器(220)的第三信号端与所述SDA总线连接;
第二SCL总线时钟检测模块(240),具有第一信号端和第二信号端,所述第二SCL总线时钟检测模块(240)的第一信号端与外部的SCL总线连接,所述第二SCL总线时钟检测模块(240)的第二信号端与所述第二移位寄存器(220)的第四信号端连接;
SCL时钟控制模块(250),具有第一信号端和第二信号端,所述SCL时钟控制模块(250)的第一信号端与所述SCL总线连接;
FLAG控制和暂停数据传输模块(260),具有第一信号端、第二信号端、第三信号端和第四信号端,所述FLAG控制和暂停数据传输模块(260)的第一信号端与所述第二移位寄存器(220)的第五信号端连接,所述FLAG控制和暂停数据传输模块(260)的第二信号端和第三信号端分别与所述第二CPU连接,所述FLAG控制和暂停数据传输模块(260)的第四信号端与所述SCL时钟控制模块(250)的第二信号端连接,所述FLAG控制和暂停数据传输模块(260)用于根据来自所述第二移位寄存器(220)的信号向所述第二CPU发送第二中断信号以及向所述SCL时钟控制模块(250)发送第一控制信号,或者根据来自所述第二CPU的第二中断完成信号向所述SCL时钟控制模块(250)发送第二控制信号。
3.一种I2C总线系统,其特征在于,包括相互连接的I2C主机和I2C从机,所述I2C主机采用权利要求1所述的I2C总线单元,所述I2C从机采用权利要求2所述的I2C总线单元。
4.一种通信同步控制方法,应用于I2C主机和I2C从机,其特征在于,包括步骤:
所述I2C主机在与所述I2C从机建立连接后,向所述I2C从机发送第一段数据报文;
所述I2C主机在所述第一段数据报文发送完毕后,向对应的第一CPU发送第一中断信号,以使所述第一CPU准备下一段数据报文;
所述I2C从机接收到所述第一段数据报文后,向对应的第二CPU发送第二中断信号,以及拉低SCL总线的电平,以使所述I2C主机进入等待状态;
所述I2C从机在接收到来自所述第二CPU的第二中断完成信号后,释放所述SCL总线;
所述I2C主机在接收到来自所述第一CPU的第一中断完成信号且所述SCL总线被释放后,发送所述下一段数据报文。
5.一种通信同步控制方法,应用于I2C主机,其特征在于,包括步骤:
在与对应的I2C从机建立连接后,向所述I2C从机发送第一段数据报文;
在所述第一段数据报文发送完毕后,向对应的第一CPU发送第一中断信号;
等待来自所述第一CPU的第一中断完成信号,以及在SCL总线为低电平的情况下,进入等待状态。
6.一种通信同步控制方法,应用于I2C从机,其特征在于,包括步骤:
在与I2C主机建立连接且接收到来自所述I2C主机的第一段数据报文后,向对应的第二CPU发送第二中断信号,以及拉低SCL总线的电平;
在接收到来自所述第二CPU的第二中断完成信号后,释放所述SCL总线。
7.一种通信同步控制方法,应用于I2C主机和I2C从机,其特征在于,包括步骤:
在所述I2C主机与所述I2C从机建立连接后,所述I2C从机向所述I2C主机发送第一段数据报文;
所述I2C主机接收到所述第一段数据报文后,向所述I2C从机发送第一应答报文或第二应答报文;
所述I2C从机在接收到所述第一应答报文的情况下,拉低SCL总线的电平,以及向对应的第二CPU发送第三中断信号,以使所述第二CPU准备下一段数据报文;
所述I2C主机接收到所述第一段数据报文后,向对应的第一CPU发送第四中断信号,并在所述第一CPU完成中断处理后,接收来自所述第一CPU的第三中断完成信号;
所述I2C主机在所述SCL总线为低电平的情况下,进入等待状态;
所述I2C从机在接收到来自所述第二CPU的第四中断完成信号后,释放所述SCL总线,并发送所述下一段数据报文;
或者,所述I2C从机在接收到所述第二应答报文的情况下,进入初始状态。
8.一种通信同步控制方法,应用于I2C主机,其特征在于,包括步骤:
在与对应的I2C从机建立连接且接收到来自所述I2C从机的第一段数据报文后,向所述I2C从机发送第一应答报文或第二应答报文;
向对应的第一CPU发送第四中断信号,并等待来自所述第一CPU的第三中断完成信号;
在SCL总线为低电平的情况下,进入等待状态。
9.一种通信同步控制方法,应用于I2C从机,其特征在于,包括步骤:
在与对应的I2C主机建立连接后,向所述I2C主机发送第一段数据报文,并查看来自所述I2C主机的应答报文;
在所述应答报文为第一应答报文的情况下,拉低SCL总线的电平,以及向对应的第二CPU发送第三中断信号,以使所述第二CPU准备下一段数据报文;
在接收到来自所述第二CPU的第四中断完成信号后,释放所述SCL总线,并发送所述下一段数据报文;
或者,在所述应答报文为第二应答报文的情况下,进入初始状态。
CN202111336101.2A 2021-11-11 2021-11-11 I2c总线单元、i2c总线系统及通信同步控制方法 Active CN114238196B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111336101.2A CN114238196B (zh) 2021-11-11 2021-11-11 I2c总线单元、i2c总线系统及通信同步控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111336101.2A CN114238196B (zh) 2021-11-11 2021-11-11 I2c总线单元、i2c总线系统及通信同步控制方法

Publications (2)

Publication Number Publication Date
CN114238196A true CN114238196A (zh) 2022-03-25
CN114238196B CN114238196B (zh) 2022-12-20

Family

ID=80749129

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111336101.2A Active CN114238196B (zh) 2021-11-11 2021-11-11 I2c总线单元、i2c总线系统及通信同步控制方法

Country Status (1)

Country Link
CN (1) CN114238196B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011070282A (ja) * 2009-09-24 2011-04-07 Furukawa Electric Co Ltd:The 通信システム、マスタ装置、および、スレーブ装置
US20170185548A1 (en) * 2015-12-25 2017-06-29 Fujitsu Limited Transmission system that includes master device and a plurality of slave devices
CN110401585A (zh) * 2019-07-11 2019-11-01 上海申矽凌微电子科技有限公司 可中断串行总线通讯方法、系统及介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011070282A (ja) * 2009-09-24 2011-04-07 Furukawa Electric Co Ltd:The 通信システム、マスタ装置、および、スレーブ装置
US20170185548A1 (en) * 2015-12-25 2017-06-29 Fujitsu Limited Transmission system that includes master device and a plurality of slave devices
CN110401585A (zh) * 2019-07-11 2019-11-01 上海申矽凌微电子科技有限公司 可中断串行总线通讯方法、系统及介质

Also Published As

Publication number Publication date
CN114238196B (zh) 2022-12-20

Similar Documents

Publication Publication Date Title
US8082373B2 (en) Specialized universal serial bus controller
CN101032113B (zh) 单线双向通信装置和系统
EP2676204B1 (en) Serial interface
EP2867780A1 (en) Device disconnect detection
CN106959935B (zh) 一种兼容i2c通信与ipmb通信的方法
EP2867745A1 (en) A low power universal serial bus
WO2014004916A1 (en) Device connect detection
US6763413B2 (en) Method for the serial transfer of data between two electronic bus stations and bus station for use in said method
CN108920401B (zh) 多主多从的i2c通信方法、系统及节点设备
JP2005122372A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
CN112269749A (zh) I2c通信系统
CN110309092B (zh) 电路装置、电子设备以及线缆束
CN110138761B (zh) 基于mipi协议的设备间通信方法及设备拓扑结构
CN114238196B (zh) I2c总线单元、i2c总线系统及通信同步控制方法
CN103650401A (zh) 一种移动终端内部通信方法
CN116743317B (zh) 基于通用芯片互联标准的数据传输方法
CN103593316B (zh) 一种减少mcu中断占用i2c总线时间的方法
CN115442178B (zh) 多轴伺服总线控制电路及多轴伺服系统
EP3459189B1 (en) Communication apparatus, communication method, program, and communication system
CN112506840B (zh) 一种多对多spi总线切换方法
CN114793186A (zh) 多主供电通信系统、方法及装置
KR20190008198A (ko) 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템
CN113722254A (zh) 一种适用于工业控制现场的多主机通讯总线系统
CN217467655U (zh) 一种单片机单io口双向通信结构
CN217034737U (zh) Usb键鼠转换器主从远程操控系统

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