CN112286852B - 基于iic总线的数据通信方法和数据通信装置 - Google Patents
基于iic总线的数据通信方法和数据通信装置 Download PDFInfo
- Publication number
- CN112286852B CN112286852B CN201910674913.4A CN201910674913A CN112286852B CN 112286852 B CN112286852 B CN 112286852B CN 201910674913 A CN201910674913 A CN 201910674913A CN 112286852 B CN112286852 B CN 112286852B
- Authority
- CN
- China
- Prior art keywords
- iic
- data
- slave
- virtual
- equipment
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/403—Bus networks with centralised control, e.g. polling
-
- 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)
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明提供了一种基于IIC总线的数据通信方法、一种基于IIC总线的数据通信装置、一种IIC总线设备、以及一种IIC总线系统。基于本发明,IIC从设备中的虚拟配置寄存器中维护的状态,可以表示IIC从设备是否有数据等待发送至IIC主设备、或IIC主设备是否有数据已发送至IIC从设备并等待IIC从设备收取,因此,既可以由IIC从设备通过对虚拟配置寄存器中的状态置位来发起IIC主设备和IIC从设备之间的数据通信,也可以由IIC主设备通过对虚拟配置寄存器中的状态置位来发起IIC主设备和IIC从设备之间的数据通信,从而可以支持IIC主设备与IIC从设备之间的双向数据通信。而且,对虚拟配置寄存器中的状态置位还可以约束数据通信的发起时机,以实现对数据通信的双向流控。
Description
技术领域
本发明涉及IIC(Inter-Integrated Circuit,互连集成电路)总线技术,特别涉及一种基于IIC总线的数据通信方法、一种基于IIC总线的数据通信装置、一种IIC总线设备、以及一种IIC总线系统。
背景技术
IIC总线系统通常采用一个IIC主设备和至少一个IIC从设备的架构,并且,基于IIC主设备在IIC总线的SCL(Serial Clock,串行时钟)信号线产生的时钟信号,IIC 主设备与每个IIC从设备之间可以通过SDA(Serial Data Address,串行数据地址)信号线进行数据通信。
如何在IIC主设备与IIC从设备之间数据通信,成为现有技术致力于改善的技术问题。
发明内容
在一个实施例中,提供了一种基于IIC总线的数据通信方法,包括在IIC主设备执行的如下步骤:
当IIC从设备的虚拟配置寄存器中的主设备发送状态为空闲时,通过IIC总线发起对所述IIC从设备的虚拟写寄存器的数据写操作;其中,若所述主设备发送状态为空闲,则表示所述IIC主设备暂无数据发送至所述IIC从设备;
当完成向所述虚拟写寄存器的数据写入时,通过IIC总线发起用于将所述虚拟配置寄存器中的所述主设备发送状态置为数据已发送的写操作;其中,若所述主设备发送状态为数据已发送,则表示所述IIC主设备已有数据发送至IIC从设备;并且,当所述IIC从设备完成从所述虚拟写寄存器的数据读取时,所述主设备发送状态被所述IIC从设备置为空闲。
可选地,进一步包括在IIC主设备执行的如下步骤:当通过IIC总线发起向所述虚拟写寄存器的数据写操作时,通过IIC总线发起用于将所述虚拟配置寄存器中的主设备发送数据长度设置为向所述虚拟写寄存器写入数据的长度的写操作。
可选地,进一步包括在IIC主设备执行的如下步骤:当对所述IIC从设备的轮询时刻到达时,通过IIC总线发起对所述虚拟配置寄存器中的所述主设备发送状态的读操作。
在另一个实施例中,提供了一种基于IIC总线的数据通信方法,包括在IIC从设备执行的如下步骤:
当所述IIC从设备的虚拟配置寄存器中的主设备发送状态为数据已发送时,从所述IIC从设备的虚拟写寄存器中读取IIC主设备在所述主设备发送状态为空闲时写入的数据;其中,若所述主设备发送状态为数据已发送,则表示所述IIC主设备已有数据发送至IIC从设备;若所述主设备发送状态为空闲,则表示所述IIC主设备暂无数据发送至所述IIC从设备;
当完成从所述虚拟写寄存器的数据读取时,将所述虚拟配置寄存器中的所述主设备发送状态置为空闲。
可选地,进一步包括在IIC从设备执行的如下步骤:当所述主设备发送状态为数据已发送时,从所述虚拟配置寄存器中读取主设备发送数据长度,并根据所述主设备发送数据长度确定从所述虚拟写寄存器中的数据读取是否完成,其中,所述主设备发送数据长度为所述IIC主设备在所述主设备发送状态为空闲时向所述虚拟写寄存器写入数据的长度。
可选地,进一步包括在IIC从设备执行的如下步骤:当对所述虚拟配置寄存器的周期性访问时刻到达时,读取所述虚拟配置寄存器中的所述主设备发送状态。
在另一个实施例中,提供了一种基于IIC总线的数据通信方法,包括在IIC从设备执行的如下步骤:
当所述IIC从设备的虚拟配置寄存器中的从设备发送状态为空闲时,向所述 IIC从设备的虚拟读寄存器写入待发送至IIC主设备的数据;其中,若所述从设备发送状态为空闲,则表示所述IIC从设备暂无数据发送至IIC主设备;
当完成向所述虚拟读寄存器的数据写入时,将所述虚拟配置寄存器中的所述从设备发送状态置为数据待发送;其中,若所述从设备发送状态为数据待发送,则表示所述IIC从设备有数据等待发送至所述IIC主设备;并且,当所述IIC主设备通过IIC总线完成对所述虚拟读寄存器的数据读操作时,所述从设备发送状态被所述IIC主设备通过IIC总线置为空闲。
可选地,进一步包括在IIC从设备执行的如下步骤:当向所述虚拟读寄存器写入待发送至IIC主设备的数据时,将所述虚拟配置寄存器中的从设备发送数据长度设置为向所述虚拟读寄存器写入数据的长度。
可选地,进一步包括在IIC从设备执行的如下步骤:当对所述虚拟配置寄存器的周期性访问时刻到达时,读取所述虚拟配置寄存器中的所述从设备发送状态。
在另一个实施例中,提供了一种基于IIC总线的数据通信方法,包括在IIC主设备执行的如下步骤:
当IIC从设备的虚拟配置寄存器中的从设备发送状态为数据待发送时,通过 IIC总线发起对所述IIC从设备的虚拟读寄存器的数据读操作,以从所述虚拟读寄存器中读取所述IIC从设备在所述从设备发送状态置为空闲时写入的数据;其中,若所述从设备发送状态为空闲,则表示所述IIC从设备暂无数据发送至所述IIC主设备;若所述从设备发送状态为数据待发送,则表示所述IIC从设备有数据等待发送至所述IIC主设备;
当完成对所述虚拟读寄存器的数据读操作时,通过IIC总线发起用于将所述虚拟配置寄存器中的所述从设备发送状态置为空闲的写操作。
可选地,进一步包括在IIC主设备执行的如下步骤:通过IIC总线发起对所述虚拟读寄存器的数据读操作之前,通过IIC总线发起对所述虚拟配置寄存器中的从设备发送数据长度的读操作,并根据所述从设备发送数据长度确定对所述虚拟读寄存器的数据读取是否完成,其中,所述从设备发送数据长度为所述IIC从设备写入所述虚拟读寄存器的数据的长度。
可选地,进一步包括在IIC主设备执行的如下步骤:在对所述IIC从设备的轮询时刻到达时,通过IIC总线发起对所述虚拟配置寄存器中的所述从设备发送状态的读操作。
在另一个实施例中,提供了一种基于IIC总线的数据通信装置,包括在IIC主设备运行的如下模块:
写访问模块,用于当IIC从设备的虚拟配置寄存器中的主设备发送状态为空闲时,通过IIC总线发起对所述IIC从设备的虚拟写寄存器的数据写操作;其中,若所述主设备发送状态为空闲,则表示所述IIC主设备暂无数据发送至所述IIC从设备;
写提示模块,用于当完成向所述虚拟写寄存器的数据写入时,通过IIC总线发起用于将所述虚拟配置寄存器中的所述主设备发送状态置为数据已发送的写操作;其中,若所述主设备发送状态为数据已发送,则表示所述IIC主设备已有数据发送至IIC从设备;并且,当所述IIC从设备完成从所述虚拟写寄存器的数据读取时,所述主设备发送状态被所述IIC从设备置为空闲。
在另一个实施例中,提供了一种基于IIC总线的数据通信装置,包括在IIC从设备运行的如下模块:
写收取模块,用于当所述IIC从设备的虚拟配置寄存器中的主设备发送状态为数据已发送时,从所述IIC从设备的虚拟写寄存器中读取IIC主设备在所述主设备发送状态为空闲时写入的数据;其中,若所述主设备发送状态为数据已发送,则表示所述IIC主设备已有数据发送至IIC从设备;若所述主设备发送状态为空闲,则表示所述IIC主设备暂无数据发送至所述IIC从设备;
写响应模块,用于当完成从所述虚拟写寄存器的数据读取时,将所述虚拟配置寄存器中的所述主设备发送状态置为空闲。
在另一个实施例中,提供了一种基于IIC总线的数据通信装置,包括在IIC从设备运行的如下模块:
读预备模块,用于当所述IIC从设备的虚拟配置寄存器中的从设备发送状态为空闲时,向所述IIC从设备的虚拟读寄存器写入待发送至IIC主设备的数据;其中,若所述从设备发送状态为空闲,则表示所述IIC从设备暂无数据发送至IIC主设备;
读提示模块,当完成向所述虚拟读寄存器的数据写入时,将所述虚拟配置寄存器中的所述从设备发送状态置为数据待发送;其中,若所述从设备发送状态为数据待发送,则表示所述IIC从设备有数据等待发送至所述IIC主设备;并且,当所述IIC主设备通过IIC总线完成对所述虚拟读寄存器的数据读操作时,所述从设备发送状态被所述IIC主设备通过IIC总线置为空闲。
在另一个实施例中,提供了一种基于IIC总线的数据通信装置,包括在IIC主设备运行的如下模块:
读访问模块,用于当IIC从设备的虚拟配置寄存器中的从设备发送状态为数据待发送时,通过IIC总线发起对所述IIC从设备的虚拟读寄存器的数据读操作,以从所述虚拟读寄存器中读取所述IIC从设备在所述从设备发送状态置为空闲时写入的数据;其中,若所述从设备发送状态为空闲,则表示所述IIC从设备暂无数据发送至所述IIC主设备;若所述从设备发送状态为数据待发送,则表示所述IIC从设备有数据等待发送至所述IIC主设备;
读响应模块,用于当完成对所述虚拟读寄存器的数据读操作时,通过IIC总线发起用于将所述虚拟配置寄存器中的所述从设备发送状态置为空闲的写操作。
在另一个实施例中,提供了一种IIC总线设备,包括处理器,用于执行如上述实施例所述的数据通信方法中的步骤。
在另一个实施例中,提供了一种IIC总线系统,包括一个IIC主设备、以及至少一个IIC从设备,其中:
所述IIC主设备用于执行如上述实施例所述的数据通信方法中在IIC主设备执行的步骤;
所述IIC从设备用于执行如上述实施例所述的数据通信方法中在IIC从设备执行的步骤。
在另一个实施例中,提供了一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如上所述的数据通信方法中的步骤。
基于上述的各实施例,IIC从设备中的虚拟配置寄存器中维护的状态,可以表示IIC从设备是否有数据等待发送至IIC主设备、或IIC主设备是否有数据已发送至IIC从设备并等待IIC从设备收取,因此,既可以由IIC从设备通过对虚拟配置寄存器中的状态置位来发起IIC主设备和IIC从设备之间的数据通信,也可以由IIC 主设备通过对虚拟配置寄存器中的状态置位来发起IIC主设备和IIC从设备之间的数据通信,从而可以支持IIC主设备与IIC从设备之间的双向数据通信。而且,对虚拟配置寄存器中的状态置位还可以约束数据通信的发起时机,以实现对数据通信的双向流控。
附图说明
以下附图仅对本发明做示意性说明和解释,并不限定本发明的范围:
图1为一个实施例中的IIC总线系统中的系统架构示意图;
图2为如图1所示IIC总线系统的硬件框架实例示意图;
图3为如图1所示的IIC总线系统中由IIC主设备发起的交互流程图;
图4为如图1所示的IIC总线系统中由IIC从设备发起的交互流程图;
图5为IIC主设备基于如图3所示交互原理的数据通信方法的流程示意图;
图6为如图5所示数据通信方法的实例流程示意图;
图7为IIC从设备基于如图3所示交互原理的数据通信方法的流程示意图;
图8为如图7所示数据通信方法的实例流程示意图;
图9为IIC主设备基于如图4所示交互原理的数据通信方法的流程示意图;
图10为如图9所示数据通信方法的实例流程示意图;
图11为IIC从设备基于如图4所示交互原理的数据通信方法的流程示意图;
图12为如图11所示数据通信方法的实例流程示意图;
图13a至图13d为一个实施例中基于IIC总线的数据通信装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
图1为一个实施例中的IIC总线系统中的系统架构示意图。请参见图1,在一个实施例中,IIC总线系统包括第一IIC总线设备10、以及至少一个第二IIC总线设备20。
第一IIC总线设备10被配置为IIC主设备,第二IIC总线设备20被配置为IIC 从设备,并且,第一IIC总线设备10和第二IIC总线设备20通过包含SCL和SDA 的IIC总线连接。为了便于描述,后文中将第一IIC总线设备10称为IIC主设备、并将第二IIC总线设备20称为IIC从设备。
在该实施例中,IIC从设备20可以包括虚拟配置寄存器21、虚拟写寄存器22、以及虚拟读寄存器23。其中,虚拟配置寄存器21、虚拟写寄存器22、以及虚拟读寄存器23可以被IIC从设备20本地访问,也可以被IIC主设备10通过IIC总线访问。
图2为如图1所示IIC总线系统的硬件框架实例示意图。请在参见图1的同时结合图2,在该实施例中:
IIC主设备10可以包括第一处理器110、第一IIC总线控制器120以及第一非瞬时计算机可读存储介质130,其中,第一非瞬时计算机可读存储介质130中可以存放供第一处理器110和第一IIC总线控制器120执行的指令集;
IIC从设备20可以包括第二处理器210、第二IIC总线控制器220以及第二非瞬时计算机可读存储介质230,其中,第二非瞬时计算机可读存储介质230中可以存放供第二处理器210和第二IIC总线控制器220执行的指令集;
而且,IIC从设备20还可以包括存储器200,该存储器200可以是例如RAM (RandomAccess Memory,随机访问存储器)等易失性存储器,或者,也可以是例如FLASH(闪存)等非易失性存储器。该存储器200主要用于为虚拟配置寄存器21、虚拟写寄存器22、以及虚拟读寄存器23提供存储空间,也就是,虚拟配置寄存器21、虚拟写寄存器22、以及虚拟读寄存器23可以为映射在存储器200 的存储空间的指定区域,因此,虚拟配置寄存器21、虚拟写寄存器22、以及虚拟读寄存器23中的″虚拟″意味着虚拟配置寄存器21、虚拟写寄存器22、以及虚拟读寄存器23并不是必须被限制为物理寄存器。
在实际应用中,IIC主设备10和IIC从设备20都可以将虚拟配置寄存器21、虚拟写寄存器22、以及虚拟读寄存器23视为设备的寄存器。在该实施例中,可以为虚拟配置寄存器21、虚拟写寄存器22、以及虚拟读寄存器23编址,以供IIC主设备10和IIC从设备20访问。
例如,假设虚拟配置寄存器21的长度设定为16字节(bytes),并且,虚拟配置寄存器21的地址信息可以设定为″0000H-0010H″。而考虑到虚拟写寄存器 22和虚拟读寄存器23用于数据存储,因而虚拟写寄存器22和虚拟读寄存器23可以设定比虚拟配置寄存器21更大的长度,比如虚拟写寄存器22和虚拟读寄存器 23的长度可以均被设定为1024字节(bytes),相应地,虚拟写寄存器22的地址信息可以设定为″0010H-410H″,虚拟读寄存器23的地址信息可以设定为″410H-810H″。
可以理解的是,随着IIC主设备10和IIC从设备20的类型和配置不同、以及通信的数据类型的不同,虚拟配置寄存器21、虚拟写寄存器22、以及虚拟读寄存器23的长度和地址信息都可以相应调整。
在具体实现时,IIC主设备10的第一非瞬时计算机可读存储介质130、以及IIC 从设备20的第二非瞬时计算机可读存储介质230中可以存储虚拟配置寄存器21、虚拟写寄存器22、以及虚拟读寄存器23的地址信息,以供设备上电时获取。
基于上述的编址方式,IIC主设备10的第一IIC总线控制器120和IIC从设备 20的第二IIC总线控制器220通过IIC总线的通信连接,可以支持IIC主设备10 (例如第一处理器110)对虚拟配置寄存器21、虚拟写寄存器22、以及虚拟读寄存器23实现通过IIC总线的读写访问,而IIC从设备20(例如第二处理器210) 则可以对虚拟配置寄存器21、虚拟写寄存器22、以及虚拟读寄存器23实现本地的读写访问。
请回看图1,虚拟配置寄存器21中可以存放主设备发送状态(Master SendingState)31和从设备发送状态(Slaver Sending State)32。
主设备发送状态31包括表示IIC主设备10暂无数据发送至IIC从设备20的空闲状态、以及表示IIC主设备10已有数据发送至IIC从设备20的数据已发送状态。其中,IIC主设备10和IIC从设备20都可以对主设备发送状态31执行置位写操作。但是,IIC主设备10仅限于对主设备发送状态31执行置位为数据已发送状态的写操作,以表示IIC主设备10已有数据发送至IIC从设备20、并等待IIC从设备20收取;IIC从设备20则仅限于对主设备发送状态31执行置位为空闲的写操作,以表示IIC从设备20已成功收取IIC主设备10发送至IIC从设备20的数据。
从设备发送状态32包括表示IIC从设备20暂无数据向IIC主设备10发送的空闲状态、以及表示IIC从设备20有数据等待发送至IIC主设备10的数据待发送状态。其中,IIC主设备10和IIC从设备20都可以对从设备发送状态32执行置位写操作。但是,IIC从设备21仅限于对从设备发送状态32执行置位为数据待发送状态的写操作,以表示IIC从设备20有数据等待发送至IIC主设备10;IIC主设备10仅限于对从设备发送状态32执行置位为空闲状态的写操作,以表示IIC从设备20待发送至IIC主设备10的数据已成功发送。
相应地,虚拟写寄存器22用于存放IIC主设备10已发送至IIC从设备20的数据,虚拟读寄存器23则用于存放IIC从设备20待发送至IIC主设备10的数据。并且,由于IIC主设备10和IIC从设备20对主设备发送状态31的置位写操作的单向限制,虚拟写寄存器22在主设备发送状态31为空闲时被写入数据的过程、以及在主设备发送状态31为数据已发送时被读取数据的过程,在时间上是互斥的。同理,由于IIC主设备10和IIC从设备20对从设备发送状态32的置位写操作的单向限制,虚拟读寄存器在从设备发送状态32为空闲时写入数据的过程、以及在从设备发送状态32为待发送时读取数据的过程,在时间上也是互斥的。
作为一种可选的优化,虚拟配置寄存器21中还可以包括主设备发送数据长度(Master Sending length)41和从设备发送数据长度(Slaver Sending length)42。其中,主设备发送数据长度41用于表示IIC主设备10发送至IIC从设备20的数据的长度,从设备发送数据长度42则用于表示IIC从设备20待发送至IIC主设备 10的数据的长度。
结合主设备发送数据长度41和从设备发送数据长度42,IIC主设备10与IIC 从设备20之间的数据通信可以准确的确定完成时间。
图3为如图1所示的IIC总线系统中由IIC主设备发起的交互流程示意图。请参见图3:
S310:IIC主设备10以轮询方式查询各IIC从设备20的虚拟配置寄存器21 中的主设备发送状态31,当对IIC从设备20的轮询时刻到达时,IIC主设备10通过IIC总线发起对虚拟配置寄存器21的主设备发送状态31的读操作。
例如,如图2所示的IIC主设备10中的第一处理器可以向第一IIC总线控制器120下发对主设备发送状态31的读操作,再由第一IIC总线控制器120通过IIC 总线将该读操作发送至IIC从设备中的第二IIC总线控制器220。
S320:响应于IIC主设备10对主设备发送状态31发起的读操作,IIC从设备20 向IIC主设备返回虚拟配置寄存器21中当前设置的主设备发送状态31。相应地,IIC 主设备10可以通过IIC总线接收IIC从设备10发送的主设备发送状态31。
例如,如图2所示的IIC从设备20中的第二IIC总线控制器220可以从虚拟配置寄存器21读取主设备发送状态31、并返回给IIC主设备10中的第一IIC总线控制器120,再由IIC主设备10中的第一IIC总线控制器120将主设备发送状态 31上报给第一处理器110。
S330:IIC主设备10成功读取到IIC从设备20的虚拟配置寄存器21中的主设备发送状态31后,若确定主设备发送状态31为空闲,则IIC主设备10可以通过IIC总线发起对IIC从设备20的虚拟写寄存器22的数据写操作。
此时,IIC主设备10还可以通过IIC总线发起对虚拟配置寄存器21中的主设备发送数据长度41的写操作,以将主设备发送数据长度41设置为向虚拟写寄存器22写入数据的长度。
例如,如图2所示的IIC主设备10中的第一处理器110可以将待写入数据及数据长度下发给第一IIC总线控制器120,并由第一IIC总线控制器120通过IIC 总线发送至IIC从设备20中的第二IIC总线控制器220,再由第二IIC总线控制器 220将数据写入虚拟写寄存器22、并将虚拟配置寄存器21中的主设备发送数据长度41设置为接收到的数据长度。
若IIC主设备10确定主设备发送状态31为数据已发送,则表示IIC主设备10 上一次通过数据写操作发送给IIC从设备20的数据尚未被IIC从设备20成功收取,此时,即便IIC主设备10有待发送给IIC从设备20的数据,也暂缓发起数据写操作,直至等到IIC主设备10通过轮询确定主设备发送状态31为空闲时再发起数据写操作。
S340:当完成向IIC从设备20的数据写入时,IIC主设备10还可以向IIC从设备20发起对虚拟配置寄存器21的主设备发送状态31的写操作,用于将主设备发送状态31置为数据已发送。
例如,如图2所示的IIC主设备10中的第一处理器可以向第一IIC总线控制器120下发对主设备发送状态31的写请求、并由第一IIC总线控制器120通过IIC 总线发送至IIC从设备20中的第二IIC总线控制器220,相应地,第二IIC总线控制器220可以将虚拟配置寄存器21中主设备发送状态31设置为数据已发送。
S350:当对虚拟配置寄存器21的周期性访问时刻到达时,IIC从设备20可以读取虚拟配置寄存器21中的主设备发送状态31,若虚拟配置寄存器21中的主设备发送状态31为数据已发送,则IIC从设备20可以从虚拟写寄存器22中读取IIC 主设备10写入的数据、并在完成从虚拟写寄存器22的数据读取时将主设备发送状态31置为空闲。
此时,IIC从设备20还可以从虚拟配置寄存器21中读取主设备发送数据长度 41,并根据读取到的主设备发送数据长度41确定从虚拟写寄存器22的数据读取是否完成。
例如,如图2所示的IIC从设备20的第二处理器210可以读取虚拟配置寄存器21中的主设备发送状态31,并在读取到的主设备发送状态31为数据已发送时再从虚拟写寄存器22读取数据、以及虚拟配置寄存器21中的主设备发送数据长度41,然后再由第二处理器210依据主设备发送数据长度41确定数据读取已完成时将虚拟配置寄存器21中的主设备发送状态31置为空闲。
若IIC从设备20确定主设备发送状态31为空闲,则表示IIC主设备10并未通过数据写操作向IIC从设备20发送数据,此时,IIC从设备20不需要对虚拟写寄存器22执行读操作,只需继续等待IIC主设备10发起向虚拟写寄存器22的数据写入、并将主设备发送状态31置为数据已发送。
此后,即可开始下一次由IIC主设备10发起的数据通信。
图4为如图1所示的IIC总线系统中由IIC从设备发起的交互流程图。请参见图4:
S410:当对虚拟配置寄存器21的周期性访问时刻到达时,IIC从设备20可以读取虚拟配置寄存器21中的从设备发送状态32,若虚拟配置寄存器21中的从设备发送状态32为空闲,则IIC从设备20可以向虚拟读寄存器23写入待发送至IIC 主设备10的数据、并在完成向虚拟读寄存器23的数据写入时,将从设备发送状态32置为数据待发送。
此时,IIC从设备20还可以将虚拟配置寄存器21中的从设备发送数据长度42 设置为向虚拟读寄存器23写入数据的长度。
例如,如图2所示的IIC从设备20中的第二处理器210可以读取虚拟配置寄存器21中的从设备发送状态32,在确定读取到的从设备发送状态32为空闲时,第二处理器210可以向虚拟读寄存器23写入待发送至IIC主设备10的数据、并在完成数据写入时将从设备发送状态32置为数据待发送。并且,第二处理器210还可以将虚拟配置寄存器21中的从设备发送数据长度42设置为向虚拟读寄存器23 写入数据的长度。
若IIC从设备20读取到虚拟配置寄存器21中的从设备发送状态32为数据待发送,则表示此前写入在虚拟读寄存器23的数据尚未被IIC主设备10读取,此时,即便IIC从设备20有待发送至IIC主设备10的数据,也暂缓对虚拟读寄存器23 的数据写操作,直至后续的周期性访问时刻从虚拟配置寄存器21读取到从设备发送状态32为空闲时,再向虚拟读寄存器23写入待发送至IIC主设备10的数据。
S420:IIC主设备10以轮询方式查询各IIC从设备20的虚拟配置寄存器21 中的从设备发送状态32,对IIC从设备20的轮询时刻到达时,IIC主设备10可以通过IIC总线向IIC从设备20发起对虚拟配置寄存器21中的从设备发送状态32 的读操作。
此时,IIC主设备10还可以通过IIC总线发起对虚拟配置寄存器21中的从设备发送数据长度42的读操作。
例如,如图2所示的IIC主设备10中的第一处理器110可以向第一IIC总线控制器120下发对从设备发送状态32的读操作,再由第一IIC总线控制器120通过IIC总线发送至IIC从设备中的第二IIC总线控制器220。
S430:响应于IIC主设备10对虚拟配置寄存器21的从设备发送状态32发起的读操作,IIC从设备20向IIC主设备返回虚拟配置寄存器21中的从设备发送状态32。相应地,IIC主设备10可以通过IIC总线接收IIC从设备10发送的从设备发送状态32。
此时,IIC从设备20还可以通过IIC总线向IIC主设备10返回虚拟配置寄存器21中的从设备发送数据长度42。
例如,如图2所示的IIC从设备20中的第二IIC总线控制器220可以从虚拟配置寄存器21读取从设备发送状态32、并从虚拟配置寄存器21中读取从设备发送数据长度42,然后通过IIC总线返回给IIC主设备10中的第一IIC总线控制器 120,再由IIC主设备10中的第一IIC总线控制器120将从设备发送状态32和从设备发送数据长度42上报给第一处理器110。
S440:IIC主设备10成功读取到IIC从设备20的虚拟配置寄存器21中的从设备发送状态32后,若从设备发送状态32为数据待发送,则IIC主设备10通过 IIC总线向IIC从设备20发起对虚拟读寄存器23的数据读操作。
例如,如图2所示的IIC主设备10中的第一处理器110可以向第一IIC总线控制器120下发对虚拟读寄存器23的数据读操作,并由第一IIC总线控制器120 通过IIC总线发送至IIC从设备中的第二IIC总线控制器220。
若IIC主设备10确定从设备发送状态32为空闲,则表示IIC从设备20当前没有待发送至IIC主设备10的数据,此时,IIC主设备10不需要向IIC从设备20 发起对虚拟写寄存器22的数据读操作,只需继续等待IIC从设备20向虚拟读寄存器23写入数据、并将从设备发送状态32置为数据待发送。
S450:响应于IIC主设备10对虚拟读寄存器23发起的数据读操作,IIC从设备20向IIC主设备10发送虚拟读寄存器23中的数据。相应地,IIC主设备10可以通过IIC总线接收IIC从设备20返回的虚拟读寄存器23中的数据。
例如,如图2所示的IIC从设备中的第二IIC总线控制器220响应于数据读操作,从虚拟读寄存器23读取数据并通过IIC总线返回给IIC主设备10的第一IIC 总线控制器120,以供IIC主设备10的第一处理器110获取。
S460:当IIC主设备10完成对IIC从设备20的虚拟读寄存器23的数据读取时,IIC主设备10可以通过IIC总线向IIC从设备20发起对虚拟配置寄存器21的从设备发送状态32的写请求,用于将从设备发送状态32置为空闲。相应地,响应于IIC主设备10对从设备发送状态32发起的写请求,IIC从设备20可以将从设备发送状态置32为空闲。
例如,如图2所示的IIC主设备10中的第一处理器110可以向第一IIC总线控制器120下发对从设备发送状态32发起的写请求、并由第一IIC总线控制器120 通过IIC总线发送至IIC从设备20中的第二IIC总线控制器220,相应地,第二IIC 总线控制器220可以将虚拟配置寄存器21中的从设备发送状态32置为空闲。
此后,即可开始下一次由IIC从设备20发起的数据通信。
如图2所示的第一非瞬时计算机可读存储介质130中存放的指令集,可以在由第一处理器110和第一IIC总线控制器120执行时,引发IIC主设备10执行如图3和/或如图4所示流程中涉及IIC主设备10的步骤;并且,如图2所示的第二非瞬时计算机可读存储介质230中存放的指令集,可以在由第二处理器210和第二IIC总线控制器220执行时,引发IIC从设备20执行如图3和/或如图4所示流程中涉及IIC从设备20的步骤。
图5为IIC主设备基于如图3所示交互原理的数据通信方法的流程示意图。请参见图5,在一个实施例中,基于IIC总线的数据通信方法可以包括在IIC主设备执行的如下步骤:
S510:当IIC从设备的虚拟配置寄存器中的主设备发送状态为空闲时,通过 IIC总线发起对IIC从设备的虚拟写寄存器的数据写操作。
S520:当完成向虚拟写寄存器的数据写入时,通过IIC总线发起用于将虚拟配置寄存器中的主设备发送状态置为数据已发送的写操作。
至此,从IIC主设备向IIC从设备的一次数据发送过程结束,并且,待IIC从设备从虚拟写寄存器读取数据、并将主设备发送状态置为空闲后,方可进行从IIC 主设备向IIC从设备的下一次数据发送过程。
图6为如图5所示数据通信方法的实例流程示意图。请参见图6,在具体实现时,如图5所示的流程可以进一步扩展为包括在IIC主设备执行的如下步骤:
S600:当对IIC从设备的轮询时刻到达时,通过IIC总线发起对IIC从设备的虚拟配置寄存器中的主设备发送状态的读操作。
S610:识别从虚拟配置寄存器读取到的主设备发送状态是否为空闲,若是,则跳转至S620,否则返回S600等待下一次的轮询时刻到达。
S620:当从虚拟配置寄存器读取到的主设备发送状态为空闲时,通过IIC总线发起对IIC从设备的虚拟写寄存器的数据写操作。
S630:当完成向虚拟写寄存器的数据写入时,通过IIC总线发起对虚拟配置寄存器的写操作,用于将主设备发送状态置为数据已发送、并将主设备发送数据长度设置为向虚拟写寄存器写入数据的长度。
至此,从IIC主设备向IIC从设备的一次数据发送过程结束,并且,待IIC从设备从虚拟写寄存器读取数据、并将主设备发送状态置为空闲后,方可进行从IIC 主设备向IIC从设备的下一次数据发送过程。
图7为IIC从设备基于如图3所示交互原理的数据通信方法的流程示意图。请参见图7,在一个实施例中,基于IIC总线的数据通信方法可以包括在IIC从设备执行的如下步骤:
S710:当IIC从设备的虚拟配置寄存器中的主设备发送状态为数据已发送时,从IIC从设备的虚拟写寄存器中读取IIC主设备在主设备发送状态为空闲时写入的数据。
S720:当完成从虚拟写寄存器的数据读取时,将虚拟配置寄存器中的主设备发送状态置为空闲。
至此,IIC从设备对IIC主设备的发送数据的一次收取过程完成,并且,待IIC 主设备再次向虚拟写寄存器写入数据、并将主设备发送状态置为数据已发送后,IIC 从设备方可执行下一次对IIC主设备发送数据的收取过程。
图8为如图7所示数据通信方法的实例流程示意图。请参见图8,在具体实现时,如图7所示的流程可以进一步扩展为包括在IIC从设备执行的如下步骤:
S800:当对IIC从设备的虚拟配置寄存器的周期性访问时刻到达时,读取虚拟配置寄存器中的主设备发送状态。
S810:识别从虚拟配置寄存器读取到的主设备发送状态是否为数据已发送,若是,则跳转至S820,否则返回S800等待下一次的周期性访问时刻到达。
S820:当从虚拟配置寄存器中读取到的主设备发送状态为数据已发送时,从虚拟配置寄存器中读取主设备发送数据长度、并依据读取到的主设备发送数据长度从虚拟写寄存器中读取IIC主设备在主设备发送状态为空闲时写入的数据。
S830:当完成从所述虚拟写寄存器的数据读取时,将虚拟配置寄存器中的主设备发送状态置为空闲。
至此,IIC从设备对IIC主设备的发送数据的一次收取过程完成,并且,待IIC 主设备再次向虚拟写寄存器写入数据、并将主设备发送状态置为数据已发送后,IIC 从设备方可执行下一次对IIC主设备发送数据的收取过程。
图9为IIC主设备基于如图4所示交互原理的数据通信方法的流程示意图。请参见图9,在一个实施例中,基于IIC总线的数据通信方法可以包括在IIC从设备执行的如下步骤:
S910:当IIC从设备的虚拟配置寄存器中的从设备发送状态为空闲时,向IIC 从设备的虚拟读寄存器写入待发送至IIC主设备的数据。
S920:当完成向虚拟读寄存器的数据写入时,将虚拟配置寄存器中的从设备发送状态置为数据待发送,以提示IIC主设备通过IIC总线发起对虚拟读寄存器的读操作。
至此,IIC从设备向IIC主设备的一次数据发送的准备过程结束,并且,待IIC 主设备从虚拟读寄存器读取数据、并将从设备发送状态置为空闲后,方可进行从 IIC从设备向IIC主设备的下一次数据发送的准备过程。
图10为如图9所示数据通信方法的实例流程示意图。请参见图10,在具体实现时,如图9所示的流程可以进一步扩展为包括在IIC从设备执行的如下步骤:
S1000:当对IIC从设备的虚拟配置寄存器的周期性访问时刻到达时,读取虚拟配置寄存器中的从设备发送状态。
S1010:识别从虚拟配置寄存器读取到的从设备发送状态是否为空闲,若是,则跳转至S1020,否则返回S1000等待下一次的周期性访问时刻到达。
S1020:当虚拟配置寄存器中的从设备发送状态为空闲时,向IIC从设备的虚拟读寄存器写入待发送至IIC主设备的数据,并将虚拟配置寄存器中的从设备发送数据长度设置为向虚拟读寄存器写入数据的长度,以供IIC主设备在发起对虚拟读寄存器的读操作之前读取。
S1030:当完成向虚拟读寄存器的数据写入时,将虚拟配置寄存器中的从设备发送状态置为数据待发送,以提示IIC主设备通过IIC总线发起对虚拟读寄存器的读操作。
至此,IIC从设备向IIC主设备的一次数据发送的准备过程结束,并且,待IIC 主设备从虚拟读寄存器读取数据、并将从设备发送状态置为空闲后,方可进行从 IIC从设备向IIC主设备的下一次数据发送的准备过程。
图11为IIC从设备基于如图4所示交互原理的数据通信方法的流程示意图。在一个实施例中,基于IIC总线的数据通信方法可以包括在IIC主设备执行的如下步骤:
S1110:当IIC从设备的虚拟配置寄存器中的从设备发送状态为数据待发送时,通过IIC总线发起对IIC从设备的虚拟读寄存器的数据读操作。
S1120:当完成对虚拟读寄存器的数据读操作时,通过IIC总线发起用于将虚拟配置寄存器中的从设备发送状态置为空闲的写操作。
至此,IIC从设备向IIC主设备的一次数据发送过程结束,并且,待IIC从设备再次向虚拟读寄存器写入数据、并将从设备发送状态置为数据待发送后,方可进行从IIC从设备向IIC主设备的下一次数据发送。
图12为如图11所示数据通信方法的实例流程示意图。请参见图12,在具体实现时,如图11所示的流程可以进一步扩展为包括在IIC主设备执行的如下步骤:
S1200:当对IIC从设备的轮询时刻到达时,通过IIC总线发起对IIC从设备的虚拟配置寄存器中的从设备发送状态和从设备发送数据长度的读操作。
S1210:识别从虚拟配置寄存器读取到的从设备发送状态是否为数据待发送,若是,则跳转至S1220,否则返回S1200等待下一次的轮询时刻到达。
S1220:当IIC从设备的虚拟配置寄存器中的从设备发送状态为数据待发送时,依据从虚拟配置寄存器读取到的从设备发送数据长度,通过IIC总线发起对IIC从设备的虚拟读寄存器的数据读操作。
S1230:当完成对虚拟读寄存器的数据读操作时,通过IIC总线发起用于将虚拟配置寄存器中的从设备发送状态置为空闲的写操作。
至此,IIC从设备向IIC主设备的一次数据发送过程结束,并且,待IIC从设备再次向虚拟读寄存器写入数据、并将从设备发送状态置为数据待发送后,方可进行从IIC从设备向IIC主设备的下一次数据发送。
图13a至图13d为一个实施例中基于IIC总线的数据通信装置的结构示意图。
请先参见图13a,在该实施例中,基于IIC总线的数据通信装置可以包括在IIC 主设备10运行的如下模块:
写访问模块1311,用于当IIC从设备的虚拟配置寄存器中的主设备发送状态为空闲时,通过IIC总线发起对IIC从设备的虚拟写寄存器的数据写操作;
写提示模块1312,用于当完成向虚拟写寄存器的数据写入时,通过IIC总线发起对用于将虚拟配置寄存器中的主设备发送状态置为数据已发送的写操作。
在实际应用中,写访问模块1311可以进一步用于当通过IIC总线发起向虚拟写寄存器的数据写操作时,通过IIC总线发起用于将虚拟配置寄存器中的主设备发送数据长度设置为向虚拟写寄存器写入数据的长度的写操作。并且,写访问模块 1311还可以进一步用于当对IIC从设备的轮询时刻到达时,通过IIC总线发起对虚拟配置寄存器中的主设备发送状态的读操作。
请参见图13b,在该实施例中,基于IIC总线的数据通信装置可以包括在IIC 从设备20运行的如下模块:
写收取模块1321,用于当所述IIC从设备的虚拟配置寄存器中的主设备发送状态为数据已发送时,从所述IIC从设备的虚拟写寄存器中读取IIC主设备在所述主设备发送状态为空闲时写入的数据;
写响应模块1322,用于当完成从所述虚拟写寄存器的数据读取时,将虚拟配置寄存器中的主设备发送状态置为空闲。
在实际应用中,写收取模块1321可以进一步用于当主设备发送状态为数据已发送时,从虚拟配置寄存器中读取主设备发送数据长度,并根据主设备发送数据长度确定从虚拟写寄存器中的数据读取是否完成。并且,写收取模块1321还可以进一步用于当对虚拟配置寄存器的周期性访问时刻到达时,读取虚拟配置寄存器中的主设备发送状态。
请参见图13c,在该实施例中,基于IIC总线的数据通信装置可以包括在IIC 从设备运行的如下模块:
读预备模块1331,用于当所述IIC从设备的虚拟配置寄存器中的从设备发送状态为空闲时,向所述IIC从设备的虚拟读寄存器写入待发送至IIC主设备的数据;
读提示模块1332,当完成向所述虚拟读寄存器的数据写入时,将虚拟配置寄存器中的所述从设备发送状态置为数据待发送,以提示IIC主设备通过IIC总线发起对虚拟读寄存器的读操作。
实际应用中,读预备模块1331可以进一步用于当向虚拟读寄存器写入待发送至IIC主设备的数据时,将虚拟配置寄存器中的从设备发送数据长度设置为向虚拟读寄存器写入数据的长度,以供IIC主设备在发起对虚拟读寄存器的读操作之前读取。并且,读预备模块1331还可以进一步用于当对虚拟配置寄存器的周期性访问时刻到达时,读取虚拟配置寄存器中的从设备发送状态。
请参见图13d,在该实施例中,基于IIC总线的数据通信装置可以包括在IIC 主设备运行的如下模块:
读访问模块1341,用于当IIC从设备的虚拟配置寄存器中的从设备发送状态为数据待发送时,通过IIC总线发起对所述IIC从设备的虚拟读寄存器的数据读操作;
读响应模块1342,用于当完成对所述虚拟读寄存器的数据读操作时,通过IIC 总线发起用于将虚拟配置寄存器中的从设备发送状态置为空闲的写操作。
实际应用中,读访问模块1341可以进一步用于在通过IIC总线发起对虚拟读寄存器的数据读操作之前,通过IIC总线发起对虚拟配置寄存器中的从设备发送数据长度的读操作,以根据从设备发送数据长度确定对虚拟读寄存器的数据读取是否完成。并且,读访问模块1341还可以进一步用于在对IIC从设备的轮询时刻到达时,通过IIC总线发起对虚拟配置寄存器中的从设备发送状态的读操作。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (18)
1.一种基于IIC总线的数据通信方法,其特征在于,包括在IIC主设备执行的如下步骤:
当IIC从设备的虚拟配置寄存器中的主设备发送状态为空闲时,通过IIC总线发起对所述IIC从设备的虚拟写寄存器的数据写操作;其中,若所述主设备发送状态为空闲,则表示所述IIC主设备暂无数据发送至所述IIC从设备;
当完成向所述虚拟写寄存器的数据写入时,通过IIC总线发起用于将所述虚拟配置寄存器中的所述主设备发送状态置为数据已发送的写操作;其中,若所述主设备发送状态为数据已发送,则表示所述IIC主设备已有数据发送至IIC从设备;并且,当所述IIC从设备完成从所述虚拟写寄存器的数据读取时,所述主设备发送状态被所述IIC从设备置为空闲。
2.根据权利要求1所述的数据通信方法,其特征在于,进一步包括在IIC主设备执行的如下步骤:
当通过IIC总线发起向所述虚拟写寄存器的数据写操作时,通过IIC总线发起用于将所述虚拟配置寄存器中的主设备发送数据长度设置为向所述虚拟写寄存器写入数据的长度的写操作。
3.根据权利要求1所述的数据通信方法,其特征在于,进一步包括在IIC主设备执行的如下步骤:
当对所述IIC从设备的轮询时刻到达时,通过IIC总线发起对所述虚拟配置寄存器中的所述主设备发送状态的读操作。
4.一种基于IIC总线的数据通信方法,其特征在于,包括在IIC从设备执行的如下步骤:
当所述IIC从设备的虚拟配置寄存器中的主设备发送状态为数据已发送时,从所述IIC从设备的虚拟写寄存器中读取IIC主设备在所述主设备发送状态为空闲时写入的数据;其中,若所述主设备发送状态为数据已发送,则表示所述IIC主设备已有数据发送至IIC从设备;若所述主设备发送状态为空闲,则表示所述IIC主设备暂无数据发送至所述IIC从设备;
当完成从所述虚拟写寄存器的数据读取时,将所述虚拟配置寄存器中的所述主设备发送状态置为空闲。
5.根据权利要求4所述的数据通信方法,其特征在于,进一步包括在IIC从设备执行的如下步骤:
当所述主设备发送状态为数据已发送时,从所述虚拟配置寄存器中读取主设备发送数据长度,并根据所述主设备发送数据长度确定从所述虚拟写寄存器中的数据读取是否完成,其中,所述主设备发送数据长度为所述IIC主设备在所述主设备发送状态为空闲时向所述虚拟写寄存器写入数据的长度。
6.根据权利要求4所述的数据通信方法,其特征在于,进一步包括在IIC从设备执行的如下步骤:
当对所述虚拟配置寄存器的周期性访问时刻到达时,读取所述虚拟配置寄存器中的所述主设备发送状态。
7.一种基于IIC总线的数据通信方法,其特征在于,包括在IIC从设备执行的如下步骤:
当所述IIC从设备的虚拟配置寄存器中的从设备发送状态为空闲时,向所述IIC从设备的虚拟读寄存器写入待发送至IIC主设备的数据;其中,若所述从设备发送状态为空闲,则表示所述IIC从设备暂无数据发送至IIC主设备;
当完成向所述虚拟读寄存器的数据写入时,将所述虚拟配置寄存器中的所述从设备发送状态置为数据待发送;其中,若所述从设备发送状态为数据待发送,则表示所述IIC从设备有数据等待发送至所述IIC主设备;并且,当所述IIC主设备通过IIC总线完成对所述虚拟读寄存器的数据读操作时,所述从设备发送状态被所述IIC主设备通过IIC总线置为空闲。
8.根据权利要求7所述的数据通信方法,其特征在于,进一步包括在IIC从设备执行的如下步骤:
当向所述虚拟读寄存器写入待发送至IIC主设备的数据时,将所述虚拟配置寄存器中的从设备发送数据长度设置为向所述虚拟读寄存器写入数据的长度。
9.根据权利要求7所述的数据通信方法,其特征在于,进一步包括在IIC从设备执行的如下步骤:
当对所述虚拟配置寄存器的周期性访问时刻到达时,读取所述虚拟配置寄存器中的所述从设备发送状态。
10.一种基于IIC总线的数据通信方法,其特征在于,包括在IIC主设备执行的如下步骤:
当IIC从设备的虚拟配置寄存器中的从设备发送状态为数据待发送时,通过IIC总线发起对所述IIC从设备的虚拟读寄存器的数据读操作,以从所述虚拟读寄存器中读取所述IIC从设备在所述从设备发送状态置为空闲时写入的数据;其中,若所述从设备发送状态为空闲,则表示所述IIC从设备暂无数据发送至所述IIC主设备;若所述从设备发送状态为数据待发送,则表示所述IIC从设备有数据等待发送至所述IIC主设备;
当完成对所述虚拟读寄存器的数据读操作时,通过IIC总线发起用于将所述虚拟配置寄存器中的所述从设备发送状态置为空闲的写操作。
11.根据权利要求10所述的数据通信方法,其特征在于,进一步包括在IIC主设备执行的如下步骤:
通过IIC总线发起对所述虚拟读寄存器的数据读操作之前,通过IIC总线发起对所述虚拟配置寄存器中的从设备发送数据长度的读操作,并根据所述从设备发送数据长度确定对所述虚拟读寄存器的数据读取是否完成,其中,所述从设备发送数据长度为所述IIC从设备写入所述虚拟读寄存器的数据的长度。
12.根据权利要求10所述的数据通信方法,其特征在于,进一步包括在IIC主设备执行的如下步骤:
在对所述IIC从设备的轮询时刻到达时,通过IIC总线发起对所述虚拟配置寄存器中的所述从设备发送状态的读操作。
13.一种基于IIC总线的数据通信装置,其特征在于,包括在IIC主设备运行的如下模块:
写访问模块,用于当IIC从设备的虚拟配置寄存器中的主设备发送状态为空闲时,通过IIC总线发起对所述IIC从设备的虚拟写寄存器的数据写操作;其中,若所述主设备发送状态为空闲,则表示所述IIC主设备暂无数据发送至所述IIC从设备;
写提示模块,用于当完成向所述虚拟写寄存器的数据写入时,通过IIC总线发起用于将所述虚拟配置寄存器中的所述主设备发送状态置为数据已发送的写操作;其中,若所述主设备发送状态为数据已发送,则表示所述IIC主设备已有数据发送至IIC从设备;并且,当所述IIC从设备完成从所述虚拟写寄存器的数据读取时,所述主设备发送状态被所述IIC从设备置为空闲。
14.一种基于IIC总线的数据通信装置,其特征在于,包括在IIC从设备运行的如下模块:
写收取模块,用于当所述IIC从设备的虚拟配置寄存器中的主设备发送状态为数据已发送时,从所述IIC从设备的虚拟写寄存器中读取IIC主设备在所述主设备发送状态为空闲时写入的数据;其中,若所述主设备发送状态为数据已发送,则表示所述IIC主设备已有数据发送至IIC从设备;若所述主设备发送状态为空闲,则表示所述IIC主设备暂无数据发送至所述IIC从设备;
写响应模块,用于当完成从所述虚拟写寄存器的数据读取时,将所述虚拟配置寄存器中的所述主设备发送状态置为空闲。
15.一种基于IIC总线的数据通信装置,其特征在于,包括在IIC从设备运行的如下模块:
读预备模块,用于当所述IIC从设备的虚拟配置寄存器中的从设备发送状态为空闲时,向所述IIC从设备的虚拟读寄存器写入待发送至IIC主设备的数据;其中,若所述从设备发送状态为空闲,则表示所述IIC从设备暂无数据发送至IIC主设备;
读提示模块,当完成向所述虚拟读寄存器的数据写入时,将所述虚拟配置寄存器中的所述从设备发送状态置为数据待发送;其中,若所述从设备发送状态为数据待发送,则表示所述IIC从设备有数据等待发送至所述IIC主设备;并且,当所述IIC主设备通过IIC总线完成对所述虚拟读寄存器的数据读操作时,所述从设备发送状态被所述IIC主设备通过IIC总线置为空闲。
16.一种基于IIC总线的数据通信装置,其特征在于,包括在IIC主设备运行的如下模块:
读访问模块,用于当IIC从设备的虚拟配置寄存器中的从设备发送状态为数据待发送时,通过IIC总线发起对所述IIC从设备的虚拟读寄存器的数据读操作,以从所述虚拟读寄存器中读取所述IIC从设备在所述从设备发送状态置为空闲时写入的数据;其中,若所述从设备发送状态为空闲,则表示所述IIC从设备暂无数据发送至所述IIC主设备;若所述从设备发送状态为数据待发送,则表示所述IIC从设备有数据等待发送至所述IIC主设备;
读响应模块,用于当完成对所述虚拟读寄存器的数据读操作时,通过IIC总线发起用于将所述虚拟配置寄存器中的所述从设备发送状态置为空闲的写操作。
17.一种IIC总线设备,其特征在于,包括处理器,用于执行如权利要求1至12中任一项所述的数据通信方法中的步骤。
18.一种IIC总线系统,其特征在于,包括一个IIC主设备、以及至少一个IIC从设备,其中,所述IIC主设备用于执行如权利要求1至3以及10至12中任一项所述的数据通信方法中的步骤,所述IIC从设备用于执行如权利要求4至9中任一项所述的数据通信方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910674913.4A CN112286852B (zh) | 2019-07-25 | 2019-07-25 | 基于iic总线的数据通信方法和数据通信装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910674913.4A CN112286852B (zh) | 2019-07-25 | 2019-07-25 | 基于iic总线的数据通信方法和数据通信装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286852A CN112286852A (zh) | 2021-01-29 |
CN112286852B true CN112286852B (zh) | 2022-08-12 |
Family
ID=74418852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910674913.4A Active CN112286852B (zh) | 2019-07-25 | 2019-07-25 | 基于iic总线的数据通信方法和数据通信装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286852B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961500B (zh) * | 2021-09-01 | 2024-04-09 | 中国航空工业集团公司西安航空计算技术研究所 | 一种iic总线从控制器及其工作方法 |
CN116226021B (zh) * | 2023-05-06 | 2023-07-25 | 摩尔线程智能科技(北京)有限责任公司 | 数据收发方法、装置以及图形处理器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477504A (zh) * | 2009-02-19 | 2009-07-08 | 浙江中控技术股份有限公司 | 数据传输系统及数据传输方法 |
CN104598418A (zh) * | 2015-01-27 | 2015-05-06 | 北京奥普维尔科技有限公司 | 一种基于fpga的控制i2c通信的系统及方法 |
WO2018109160A1 (en) * | 2016-12-15 | 2018-06-21 | Iristick Nv | I2c bridge device |
CN108763140A (zh) * | 2018-04-23 | 2018-11-06 | 深圳市文鼎创数据科技有限公司 | 一种双向通信的方法、系统及终端设备 |
-
2019
- 2019-07-25 CN CN201910674913.4A patent/CN112286852B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477504A (zh) * | 2009-02-19 | 2009-07-08 | 浙江中控技术股份有限公司 | 数据传输系统及数据传输方法 |
CN104598418A (zh) * | 2015-01-27 | 2015-05-06 | 北京奥普维尔科技有限公司 | 一种基于fpga的控制i2c通信的系统及方法 |
WO2018109160A1 (en) * | 2016-12-15 | 2018-06-21 | Iristick Nv | I2c bridge device |
CN108763140A (zh) * | 2018-04-23 | 2018-11-06 | 深圳市文鼎创数据科技有限公司 | 一种双向通信的方法、系统及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112286852A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678193B (zh) | 控制非易失性存储卡的主机、包括主机的系统、操作方法 | |
EP3570175B1 (en) | Method for implementing nvme over fabrics, terminal, server, and system | |
CN101634975B (zh) | 一种实现dma数据传输的方法及装置 | |
KR102111741B1 (ko) | 임베디드 멀티미디어 카드 및 이의 동작 방법 | |
US20070088874A1 (en) | Offload engine as processor peripheral | |
CN108268414B (zh) | 基于spi模式的sd卡驱动器及其控制方法 | |
US11010094B2 (en) | Task management method and host for electronic storage device | |
CN112286852B (zh) | 基于iic总线的数据通信方法和数据通信装置 | |
CN110896372B (zh) | 一种i2c链路切换方法、终端及存储介质 | |
CN112947857B (zh) | 一种数据搬移方法、装置、设备及计算机可读存储介质 | |
KR20130086572A (ko) | 높은 클럭 속도에서 연속하는 판독 버스트 지원 | |
CN105681222A (zh) | 一种数据接收缓存方法、装置及通信系统 | |
WO2017143857A1 (zh) | 数据传输的方法、扩展装置、外围设备及系统 | |
CN109086168A (zh) | 一种利用硬件备份固态硬盘写速度的方法及其系统 | |
CN110175146B (zh) | 硬盘信息获取方法和获取硬盘信息的装置 | |
JP6523707B2 (ja) | ラップ読出しから連続読出しを行うメモリサブシステム | |
CN101937413A (zh) | 一种i2c总线的通信方法 | |
JP4001511B2 (ja) | Icカード及びその制御方法 | |
CN109992556A (zh) | 一种i2c驱动方法和装置 | |
US20120307827A1 (en) | Multi-processor apparatus using dedicated buffers for multicast communications | |
CN111143898A (zh) | 可插拔存储器装置数据保护方法 | |
JP2734246B2 (ja) | パイプラインバス | |
CN102984599B (zh) | 基于RapidIO协议网络的视频采集传输装置及方法 | |
CN116756078B (zh) | pcie数据包的通知方法、装置及存储介质 | |
KR20140006205A (ko) | 씨리얼 ata 프로토콜을 이용하는 반도체 장치 및 이를 포함하는 시스템 |
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 |