CN111737173B - I2c总线通信控制方法、装置、系统及可读存储介质 - Google Patents
I2c总线通信控制方法、装置、系统及可读存储介质 Download PDFInfo
- Publication number
- CN111737173B CN111737173B CN202010589296.0A CN202010589296A CN111737173B CN 111737173 B CN111737173 B CN 111737173B CN 202010589296 A CN202010589296 A CN 202010589296A CN 111737173 B CN111737173 B CN 111737173B
- Authority
- CN
- China
- Prior art keywords
- polling
- read
- bus
- write operation
- communication control
- 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/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- 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
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Bus Control (AREA)
Abstract
本发明公开了一种I2C总线通信控制方法、装置、系统及可读存储介质,该方法包括:接收上层应用发送的I2C总线的配置信息;解析所述配置信息,得到多条轮询参数;将多条所述轮询参数写入轮询表中;控制所述I2C总线,按照所述轮询表执行对应的读写操作。该方法中,I2C总线上执行的读写操作是按照轮询表进行的,因而无需轮询访问总线状态,便可直接基于轮询表得到精准的I2C总线的通信情况;可降低拥塞风险,存在多个主器件时,也可达到单个主器件的访问效率。对于管理维护方便;若发生硬件或功能变化,仅需对轮询表进行更新即可,而无需修改程序,能够快速适应功能更新或硬件更替。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种I2C总线通信控制方法、装置、系统及可读存储介质。
背景技术
I2C(Inter-Integrated Circuit)总线是一种两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。
I2C通过串行数据(SDA)线和串行时钟(SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别,而且都可以作为一个发送器或接收器(由器件的功能决定)。主机是初始化总线的数据传输并产生允许传输的时钟信号的器件(即主器件)。相应地,任何被寻址的器件(从器件)都被认为是从机。
在现有的I2C控制器访问方案中,提出在访问I2C控制器获取总线状态时,采用轮询方式,来解决现有I2C访问标准流程效率不高的问题。但是,在此类方案中,轮询方式需要开发人员专门设计轮询程序,每当有硬件改动,轮询程序也必须随之发生变化,而且当总线处于繁忙拥塞状态时,上层会频繁获取总线状态信息,占用系统资源,管理效率极低。也就是说,I2C访问效率低这个问题仍然没有被很好的解决。
综上所述,如何有效地提高I2C访问效率等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种I2C总线通信控制方法、装置、系统及可读存储介质,上层应用和底层硬件可以基于轮询表精准的得到总线的通信情况,可避免频繁获取总线通信情况,按照轮询表来控制I2C总线的通信控制,可避免出现拥塞风险,可提高多个主器件应用场景下的访问效率。
为解决上述技术问题,本发明提供如下技术方案:
一种I2C总线通信控制方法,包括:
接收上层应用发送的I2C总线的配置信息;
解析所述配置信息,得到多条轮询参数;
将多条所述轮询参数写入轮询表中;
控制所述I2C总线,按照所述轮询表执行对应的读写操作。
优选地,还包括:
接收所述上层应用发送的配置修改信息;
利用所述配置修改信息对所述轮询表进行更新。
优选地,解析所述配置信息,得到多条轮询参数,包括:
解析所述配置信息,得到各个所述读写操作分别对应的操作类型、主器件、从器件、字节数、轮询时间和优先级;
利用每一种所述读写操作对应的所述字节数和所述轮询周期,计算出所述读写操作对应的剩余时间;
将一种所述读写操作对应的所述操作类型、所述主器件、所述从器件、所述字节数、所述轮询时间、所述剩余时间和所述优先级作为一条所述轮询参数。
优选地,利用每一种所述读写操作对应的所述字节数和所述轮询周期,计算出所述读写操作对应的剩余时间,包括:
利用所述字节数以及总线频率,计算出执行一次所述读写操作的执行用时;
利用底层时钟,并结合所述执行用时和所述轮询周期,得到所述剩余时间。
优选地,控制所述I2C总线,按照所述轮询表执行对应的读写操作,包括:
按照对应的所述操作类型、所述主器件、所述从器件和所述字节数确定出各个待执行读写操作;
按照所述优先级和所述剩余时间确定出各个所述待执行读写操作的执行时间;
按照所述执行时间执行各个所述待执行读写操作;
对所述I2C总线的读写操作进行校验,并拦截校验失败的读写操作。
优选地,还包括:
接收所述上层应用发送的通信中断请求;
生成目标读写操作的结束信号;所述目标读写操作为所述I2C总线当前执行的读写操作。
优选地,还包括:
若目标从器件访问失败次数达到降级阈值,则降低所述轮询表中所述目标从器件对应的优先级。
一种I2C总线通信控制装置,包括:
配置信息获取模块,用于接收上层应用发送的I2C总线的配置信息;
解析模块,用于解析所述配置信息,得到每一条轮询参数;
轮询表维护模块,用于将所述轮询参数写入轮询表中;
读写操作执行模块,用于控制所述I2C总线,按照所述轮询表执行对应的读写操作。
一种I2C总线通信控制系统,包括:
上层应用,以及与I2C总线相连接的I2C总线通信控制设备、I2C主器件和I2C从器件;
其中,所述上层应用通过AXI总线访问所述I2C总线通信控制设备;
所述I2C总线通信控制设备包括寄存器、计数器和轮询表;
所述I2C总线通信控制设备,用于执行如上述的I2C总线通信控制方法的步骤。
一种I2C总线通信控制设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述I2C总线通信控制方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述I2C总线通信控制方法的步骤。
应用本发明实施例所提供的方法,接收上层应用发送的I2C总线的配置信息;解析配置信息,得到多条轮询参数;将多条轮询参数写入轮询表中;控制I2C总线,按照轮询表执行对应的读写操作。
在本方法中,将上层应用发送的配置信息写入到轮询表中,进而得到多条轮询参数。然后,控制I2C总线执行与轮询读取操作参数对应的读写操作即可。可见,在本方法中,由于I2C总线上执行的读写操作是按照轮询表进行的,因而无需轮询访问总线状态,便可直接基于轮询表得到精准的I2C总线的通信情况。也正是因为I2C总线上执行的读写操作是按照轮询表进行的,可大大降低拥塞风险,当存在多个主器件时,也可达到单个主器件的访问效率。对于管理维护方便;若发生硬件或功能变化,仅需对轮询表进行更新即可,而无需修改程序,能够快速适应功能更新或硬件更替。
相应地,本发明实施例还提供了与上述I2C总线通信控制方法相对应的I2C总线通信控制装置、系统和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种I2C总线通信控制方法的实施流程图;
图2为本发明实施例中一种I2C总线通信控制装置的结构示意图;
图3为本发明实施例中一种I2C总线通信控制系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例中一种I2C总线通信控制方法的流程图,该方法包括以下步骤:
S101、接收上层应用发送的I2C总线的配置信息。
其中,上层应用(APPLY),例如运行在手机、平板电脑的应用,该上层应用可具体为个人用户应用,也可以为企业级应用。在本实施例中对上层应用并不做具体限定。
在本实施例中,该上层应用可通过写入的方式,发送I2C总线对应的配置信息,以便基于I2C总线进行数据传递处理。
其中,配置信息可具体为指明哪个主器件需要在何时才有何种方式访问哪个从器件,访问方式是什么,访问字节数多少等。具体的,配置信息可包括主器件、操作类型、从器件、字节数、轮询周期和优先级。
其中,操作类型可分读操作和写操作,字节数即读的位数或写的位数;轮询周期即多长的访问间隔周期,与轮询时间对应;优先级即当出现访问冲突时,确定优先执行哪个主器件的访问需求。
S102、解析配置信息,得到多条轮询参数。
得到配置信息之后,便可对配置信息进行解析,得到多条轮询参数。
其中,一条轮询参数具体对应一种读写操作,在轮询参数可具体包括:操作类型、主器件、从器件、字节数、轮询时间、剩余时间和优先级。
得到轮询参数的过程,包括:
步骤一、解析配置信息,得到各个读写操作分别对应的操作类型、主器件、从器件、字节数、轮询周期和优先级;
步骤二、利用每一种读写操作对应的字节数和轮询时间,计算出读写操作对应的剩余时间;
步骤三、将一种读写操作对应的操作类型、主器件、从器件、字节数、轮询时间、剩余时间和优先级作为一条轮询参数。
其中,步骤二可具体包括:
步骤2.1、利用字节数以及总线频率,计算出执行一次读写操作的执行用时;
步骤2.2、利用底层时钟,并结合执行用时和轮询周期,得到剩余时间。
具体来说,在轮询表中每个序号代表一种I2C读写操作,可采用8位2进制数表示,(8位2进制数共计可表示256种操作,远远大于一条I2C总线的常规操作数),在序号中通过指定位的数值来区分主器件。
具体的,若有2个主器件,则可采用1位(如最高位)来区别主器件,例如,0标识主器件1,而1标识主器件2;若有3个或4个主器件,则采用2位来区别主器件;若有5-8个主器件,则采用3位来区别主器件;以此类推。每种I2C的操作由SLAVE器件(从器件)的地址,以及slave内部寄存器的偏移地址决定。
字节数(Byte数)表示读操作或者写操作需要占用的字节数,在轮询表的字节数处不需要区分读操作还是写操作。
通过字节数以及系统内部默认的总线频率,可以计算出该次读/写操作的执行用时。而轮询时间则表示周期性获取信息的间隔,剩余时间表示的是距离下一次读/写操作的剩余时间,该时间可从底层时钟确定,即上层应用在获取一次数据后,同步进行倒计时操作。
优选地,可以通过增加访问次数,获得更精确的计时时间。
而优先级则是定义当有冲突将要出现时,优先进行哪一个操作,另一个操作的剩余时间将进行调整延后。
S103、将多条轮询参数写入轮询表中。
得到轮询参数之后,可将轮询参数写入到轮询表。
具体的,在本实施例中,可设置一个表头包括序号、操作类型、从器件、字节数、轮询时间、剩余时间和优先级的类型表;相应地,该配置信息包括操作类型、从器件、字节数、轮询周期和优先级。
举例说明:请参考图2,图2为本发明实施例中一种I2C总线通信控制系统的主要结构示意图。假设I2C总线上有两个主器件,两个从器件AB,其中A、B从器件的地址为0X33、0X34。若配置信息包括:
主器件1与A器件offset0x01有写0x88的操作,轮询周期两秒;
主器件1对B器件offset0x2有读2byte的操作,轮询周期三秒;
主器件2与A器件offset0x01有写0x88的操作,轮询周期两秒;
主器件2对B器件offset0x3有读3byte的操作,轮询周期三秒;
相应的,解析配置信息可得到四条轮询参数,将轮询参数写入轮询表,得到如下所示的轮询表:
序号 | Slave | Offset | Byte数 | 轮询时 | 剩余时间(10us) | 优先级 |
00000001 | 00110011 | 00000001 | 00000001 | 0111110100 | 00001110101001100000 | 01 |
00000010 | 00110100 | 00000010 | 00000002 | 1011101110 | 00001110101001011101 | 01 |
10000011 | 00110011 | 00000001 | 00000001 | 0111110100 | 00011101010011000000 | 01 |
10000100 | 00110100 | 00000011 | 00000003 | 1011101110 | 00101011111100100000 | 10 |
其中,序号的最高位区别主器件,0标识主器件1;1标识主器件2。
可将剩余时间设置为只读数据,剩余时间可在对所有操作分析后自动生成。在常规模式下分析所有数据,以最大轮询周期数为总周期数,将每个任务平均分配在该周期内的各个时间段,保证通信之间的稀疏性。
S104、控制I2C总线,按照轮询表执行对应的读写操作。
即按照轮询表中每一条记录对应一个读写操作的具体轮询读写参照参数,确定出I2C总线所执行的具体读写操作以及具体时间。
具体执行过程,包括:
步骤一、按照对应的操作类型、主器件、从器件和字节数确定出各个待执行读写操作;
步骤二、按照优先级和剩余时间确定出各个待执行读写操作的执行时间;
步骤三、按照执行时间执行各个待执行读写操作;
步骤四、对I2C总线的读写操作进行校验,并拦截校验失败的读写操作。
也就是说,通过轮询表可确定出每个读写操作的具体轮询周期,操作的主器件、从器件、访问类型、访问时间等。而无需每次访问I2C总线都查询一次状态寄存器。即,系统内的全部主器件均按照轮询表通过I2C总线访问从器件。可分析I2C总线传来的数据,并与内部寄存器中的数据进行关联,更新轮询表相关信息。为了保障系统安全,在实际应用,在控制I2C总线执行读写操作时,可以对I2C总线的读写操作进行校验,并拦截校验失败的读写操作。可设置校验功能,即将会拦截不满足校验条件的读写操作,保护系统安全。
优选地,当系统硬件发生更替,或上层用于功能更新后,还可执行以下步骤来完成I2C适配:
步骤一、接收上层应用发送的配置修改信息;
步骤二、利用配置修改信息对轮询表进行更新。
通过对轮询表进行更新,便可完成I2C适配,无需修改底层访问控制程序。具体的,该配置修改信息可具体为某一种具体的读写操作的轮询时间、访问地址或访问方式的变化,并针对轮询表中的某一条记录进行修改,也可以是对全新的配置信息,对整个轮询表中的全部记录进行更替。
优选地,为了缩短突发通信时延,还可接收上层应用发送的通信中断请求;生成目标读写操作的结束信号;目标读写操作为I2C总线当前执行的读写操作。即能够在紧急通信出现的突发情况下,对当前的I2C总线操作产生结束信号,缩短突发通信时延。
优选地,还可对故障从器件进行标记,减少故障从器件访问次数。也就是说,还可执行:若目标从器件访问失败次数达到降级阈值,则降低轮询表中目标从器件对应的优先级。如果某个地址的从器件持续访问失败(如降级阈值为3,即连续访问失败3次,即视为连续访问失败),认为该从器件故障,在轮询表中将该从器件降低,如优先级降为最低,进一步降低访问故障从器件的频率。
应用本发明实施例所提供的方法,接收上层应用发送的I2C总线的配置信息;解析配置信息,得到多条轮询参数;将多条轮询参数写入轮询表中;控制I2C总线,按照轮询表执行对应的读写操作。
在本方法中,将上层应用发送的配置信息写入到轮询表中,进而得到多条轮询参数。然后,控制I2C总线执行与轮询读取操作参数对应的读写操作即可。可见,在本方法中,由于I2C总线上执行的读写操作是按照轮询表进行的,因而无需轮询访问总线状态,便可直接基于轮询表得到精准的I2C总线的通信情况。也正是因为I2C总线上执行的读写操作是按照轮询表进行的,可大大降低拥塞风险,当存在多个主器件时,也可达到单个主器件的访问效率。对于管理维护方便;若发生硬件或功能变化,仅需对轮询表进行更新即可,而无需修改程序,能够快速适应功能更新或硬件更替。
相应于上面的方法实施例,本发明实施例还提供了一种I2C总线通信控制装置,下文描述的I2C总线通信控制装置与上文描述的I2C总线通信控制方法可相互对应参照。
请参考图2,该装置包括:
配置信息获取模块101,用于接收上层应用发送的I2C总线的配置信息;
解析模块102,用于解析配置信息,得到每一条轮询参数;
轮询表维护模块103,用于将轮询参数写入轮询表中;
读写操作执行模块104,用于控制I2C总线,按照轮询表执行对应的读写操作。
应用本发明实施例所提供的装置,接收上层应用发送的I2C总线的配置信息;解析配置信息,得到多条轮询参数;将多条轮询参数写入轮询表中;控制I2C总线,按照轮询表执行对应的读写操作。
在本装置中,将上层应用发送的配置信息写入到轮询表中,进而得到多条轮询参数。然后,控制I2C总线执行与轮询读取操作参数对应的读写操作即可。可见,在本装置中,由于I2C总线上执行的读写操作是按照轮询表进行的,因而无需轮询访问总线状态,便可直接基于轮询表得到精准的I2C总线的通信情况。也正是因为I2C总线上执行的读写操作是按照轮询表进行的,可大大降低拥塞风险,当存在多个主器件时,也可达到单个主器件的访问效率。对于管理维护方便;若发生硬件或功能变化,仅需对轮询表进行更新即可,而无需修改程序,能够快速适应功能更新或硬件更替。
在本发明的一种具体实施方式中,还包括:
轮询表更新模块,用于接收上层应用发送的配置修改信息;利用配置修改信息对轮询表进行更新。
在本发明的一种具体实施方式中,解析模块102,具体用于解析配置信息,得到各个读写操作分别对应的操作类型、主器件、从器件、字节数、轮询周期和优先级;利用每一种读写操作对应的字节数和轮询时间,计算出读写操作对应的剩余时间;将一种读写操作对应的操作类型、主器件、从器件、字节数、轮询时间、剩余时间和优先级作为一条轮询参数。
在本发明的一种具体实施方式中,解析模块102,具体用于利用字节数以及总线频率,计算出执行一次读写操作的执行用时;利用底层时钟,并结合执行用时和轮询周期,得到剩余时间。
在本发明的一种具体实施方式中,读写操作执行模块104,用于按照对应的操作类型、主器件、从器件和字节数确定出各个待执行读写操作;按照优先级和剩余时间确定出各个待执行读写操作的执行时间;按照执行时间执行各个待执行读写操作;对I2C总线的读写操作进行校验,并拦截校验失败的读写操作。
在本发明的一种具体实施方式中,还包括:
通信中断控制模块,用于接收上层应用发送的通信中断请求;生成目标读写操作的结束信号;目标读写操作为I2C总线当前执行的读写操作。
在本发明的一种具体实施方式中,还包括:
故障处理模块,用于若目标从器件访问失败次数达到降级阈值,则降低轮询表中目标从器件对应的优先级。
相应于上面的方法实施例,本发明实施例还提供了一种I2C总线通信控制系统,下文描述的I2C总线通信控制系统与上文描述的I2C总线通信控制方法可相互对应参照。
请参见图3所示,该系统包括:
上层应用,以及与I2C总线相连接的I2C总线通信控制设备、I2C主器件和I2C从器件;
其中,上层应用通过AXI总线访问I2C总线通信控制设备;
I2C总线通信控制设备包括寄存器、计数器和轮询表;
I2C总线通信控制设备,用于执行如上述方法实施例所描述的I2C总线通信控制方法的步骤。
其中,I2C总线通信控制设备的具体结构可参照图3所示。I2C总线通信控制设备内部主要包括四个功能模块(当然,也可划分出其他组合类型的功能模块,以能够实现方法实施例所提供的I2C总线通信控制为准):
1、代理单元:负责在紧急通信出现的突发情况下,对当前的I2C总线操作产生结束信号,缩短突发通信时延。例如,在CPU温度过高时,需要马上中断现有的I2C总线所执行的读写操作,以便进行I2C总线的写操作来紧急控制风扇提速。
2、分析模块:负责分析I2C总线传来的数据,并与内部的配置寄存器中的数据进行关联,更新轮询表相关信息。此外,如果开启校验功能,将会拦截不满足校验条件的读写操作,保护系统安全。
3、轮询表:包含轮询表信息,可供I2C总线与AXI总线访问。
4、内部的配置寄存器:可包括各项详细配置,如:安全校验开关、自动重读功能、故障器件标记等。具体说明如下:
安全校验开关:开启后,非最高优先级、从器件地址以及offset地址不符的操作将会被拒绝发起;
自动重读功能:开启后,当一次读或写操作失败后,不需要上层修改,自动将下一次的通信改为本次失败的通信;
故障器件标记:开启后,如果某个地址的从器件持续访问失败,认为该器件故障,在轮询表中将该器件优先级降为最低,降低访问频率。
5、计时器,负责记录总线时序,保证上下时钟频率一致。
基于底层轮询表,对整个I2C总线的资源使用进行重新分配,而且多主器件的情况下有更好的防冲突机制,大大提高了总线利用率,避免了拥塞情况的发生,节省了上层资源。同时安全校验以及故障标记功能极大的提高了总线安全性与稳定性。
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种I2C总线通信控制方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的I2C总线通信控制方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
Claims (8)
1.一种I2C总线通信控制方法,其特征在于,包括:
接收上层应用发送的I2C总线的配置信息;
解析所述配置信息,得到多条轮询参数;
将多条所述轮询参数写入轮询表中;
控制所述I2C总线,按照所述轮询表执行对应的读写操作;
解析所述配置信息,得到多条轮询参数,包括:
解析所述配置信息,得到各个所述读写操作分别对应的操作类型、主器件、从器件、字节数、轮询时间和优先级;
利用每一种所述读写操作对应的所述字节数和轮询周期,计算出所述读写操作对应的剩余时间;
将一种所述读写操作对应的所述操作类型、所述主器件、所述从器件、所述字节数、所述轮询时间、所述剩余时间和所述优先级作为一条所述轮询参数;
利用每一种所述读写操作对应的所述字节数和所述轮询周期,计算出所述读写操作对应的剩余时间,包括:
利用所述字节数以及总线频率,计算出执行一次所述读写操作的执行用时;
利用底层时钟,并结合所述执行用时和所述轮询周期,得到所述剩余时间。
2.根据权利要求1所述的I2C总线通信控制方法,其特征在于,还包括:
接收所述上层应用发送的配置修改信息;
利用所述配置修改信息对所述轮询表进行更新。
3.根据权利要求1所述的I2C总线通信控制方法,其特征在于,控制所述I2C总线,按照所述轮询表执行对应的读写操作,包括:
按照对应的所述操作类型、所述主器件、所述从器件和所述字节数确定出各个待执行读写操作;
按照所述优先级和所述剩余时间确定出各个所述待执行读写操作的执行时间;
按照所述执行时间执行各个所述待执行读写操作;
对所述I2C总线的读写操作进行校验,并拦截校验失败的读写操作。
4.根据权利要求1所述的I2C总线通信控制方法,其特征在于,还包括:
接收所述上层应用发送的通信中断请求;
生成目标读写操作的结束信号;所述目标读写操作为所述I2C总线当前执行的读写操作。
5.根据权利要求1所述的I2C总线通信控制方法,其特征在于,还包括:
若目标从器件访问失败次数达到降级阈值,则降低所述轮询表中所述目标从器件对应的优先级。
6.一种I2C总线通信控制装置,其特征在于,包括:
配置信息获取模块,用于接收上层应用发送的I2C总线的配置信息;
解析模块,用于解析所述配置信息,得到每一条轮询参数;
轮询表维护模块,用于将所述轮询参数写入轮询表中;
读写操作执行模块,用于控制所述I2C总线,按照所述轮询表执行对应的读写操作;
解析所述配置信息,得到多条轮询参数,包括:
解析所述配置信息,得到各个所述读写操作分别对应的操作类型、主器件、从器件、字节数、轮询时间和优先级;
利用每一种所述读写操作对应的所述字节数和轮询周期,计算出所述读写操作对应的剩余时间;
将一种所述读写操作对应的所述操作类型、所述主器件、所述从器件、所述字节数、所述轮询时间、所述剩余时间和所述优先级作为一条所述轮询参数;
利用每一种所述读写操作对应的所述字节数和所述轮询周期,计算出所述读写操作对应的剩余时间,包括:
利用所述字节数以及总线频率,计算出执行一次所述读写操作的执行用时;
利用底层时钟,并结合所述执行用时和所述轮询周期,得到所述剩余时间。
7.一种I2C总线通信控制系统,其特征在于,包括:
上层应用,以及与I2C总线相连接的I2C总线通信控制设备、I2C主器件和I2C从器件;
其中,所述上层应用通过AXI总线访问所述I2C总线通信控制设备;
所述I2C总线通信控制设备包括寄存器、计数器和轮询表;
所述I2C总线通信控制设备,用于执行如权利要求1至5任一项所述的I2C总线通信控制方法的步骤。
8.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述I2C总线通信控制方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010589296.0A CN111737173B (zh) | 2020-06-24 | 2020-06-24 | I2c总线通信控制方法、装置、系统及可读存储介质 |
US17/795,255 US11726946B2 (en) | 2020-06-24 | 2021-02-19 | I2C bus communication control method, device and system, and readable storage medium |
PCT/CN2021/076839 WO2021258748A1 (zh) | 2020-06-24 | 2021-02-19 | I2c总线通信控制方法、装置、系统及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010589296.0A CN111737173B (zh) | 2020-06-24 | 2020-06-24 | I2c总线通信控制方法、装置、系统及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111737173A CN111737173A (zh) | 2020-10-02 |
CN111737173B true CN111737173B (zh) | 2022-03-22 |
Family
ID=72650979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010589296.0A Active CN111737173B (zh) | 2020-06-24 | 2020-06-24 | I2c总线通信控制方法、装置、系统及可读存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11726946B2 (zh) |
CN (1) | CN111737173B (zh) |
WO (1) | WO2021258748A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737173B (zh) | 2020-06-24 | 2022-03-22 | 浪潮(北京)电子信息产业有限公司 | I2c总线通信控制方法、装置、系统及可读存储介质 |
CN112463662B (zh) * | 2020-12-16 | 2024-04-05 | 福州创实讯联信息技术有限公司 | 一种用户态控制i2c设备的方法与终端 |
CN113641618B (zh) * | 2021-08-12 | 2024-06-18 | 海信空调有限公司 | Iic通讯控制方法、用电设备和计算机可读存储介质 |
CN113986803B (zh) * | 2021-10-21 | 2024-05-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种i2c总线控制方法、装置、器件及存储介质 |
CN115220675B (zh) * | 2022-05-20 | 2024-04-09 | 广东逸动科技有限公司 | 显示设备的控制方法、显示设备及计算机存储介质 |
TWI845154B (zh) * | 2023-02-09 | 2024-06-11 | 大陸商北京集創北方科技股份有限公司 | 數據傳輸電路、電子晶片及資訊處理裝置 |
CN116132383B (zh) * | 2023-04-13 | 2023-07-18 | 苏州浪潮智能科技有限公司 | 信息传输装置、系统及方法 |
CN116185915B (zh) * | 2023-04-21 | 2023-08-04 | 山东云海国创云计算装备产业创新中心有限公司 | 总线调度方法、装置及设备、介质和基板管理控制芯片 |
CN117240651B (zh) * | 2023-11-14 | 2024-03-22 | 广东宝莱特医用科技股份有限公司 | 查询设备上线的方法、遥测系统、电子设备和存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6938103B2 (en) * | 2001-10-19 | 2005-08-30 | Dell Products L.L.P. | Universal serial bus transaction processing tasks scheduling method for computer system, involves assigning transaction to periodic queue head list with faster polling interval |
US7188202B1 (en) * | 2003-09-29 | 2007-03-06 | Emc Corporation | Techniques for accessing devices through a set of serial buses |
EP2171619A1 (en) * | 2007-07-23 | 2010-04-07 | Telefonaktiebolaget LM Ericsson (PUBL) | Database system with multiple layer distribution |
US8024499B1 (en) * | 2008-01-17 | 2011-09-20 | Juniper Networks, Inc. | Systems and methods for automated sensor polling |
US8364862B2 (en) * | 2009-06-11 | 2013-01-29 | Intel Corporation | Delegating a poll operation to another device |
CN105279133B (zh) | 2015-10-20 | 2017-10-31 | 电子科技大学 | 基于SoC在线重构的VPX并行DSP信号处理板卡 |
US10019546B1 (en) * | 2015-10-30 | 2018-07-10 | Amazon Technologies, Inc. | Modular system on chip configuration system |
US10467890B2 (en) * | 2016-05-13 | 2019-11-05 | Microsoft Technology Licensing, Llc | Secured sensor interface |
US10348834B2 (en) * | 2016-10-24 | 2019-07-09 | Graywolf Sensing Solutions, Llc | Self configuring smart probe |
CN107066413B (zh) * | 2016-12-30 | 2023-11-24 | 幻境(珠海)科技有限公司 | 一种用于处理多个总线设备数据的方法及其总线系统 |
CN106936647B (zh) * | 2017-04-26 | 2020-02-14 | 成都成电光信科技股份有限公司 | 一种新型gjb289a总线的配置方法 |
TWI662410B (zh) * | 2017-12-18 | 2019-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置與記憶體裝置之資料處理方法 |
US10860509B1 (en) * | 2019-07-23 | 2020-12-08 | Texas Instruments Incorporated | Multi-device burst update method |
CN111090600B (zh) * | 2019-12-09 | 2021-07-16 | 苏州浪潮智能科技有限公司 | 一种总线共享的方法 |
CN111737173B (zh) * | 2020-06-24 | 2022-03-22 | 浪潮(北京)电子信息产业有限公司 | I2c总线通信控制方法、装置、系统及可读存储介质 |
-
2020
- 2020-06-24 CN CN202010589296.0A patent/CN111737173B/zh active Active
-
2021
- 2021-02-19 US US17/795,255 patent/US11726946B2/en active Active
- 2021-02-19 WO PCT/CN2021/076839 patent/WO2021258748A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20230064411A1 (en) | 2023-03-02 |
US11726946B2 (en) | 2023-08-15 |
WO2021258748A1 (zh) | 2021-12-30 |
CN111737173A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111737173B (zh) | I2c总线通信控制方法、装置、系统及可读存储介质 | |
US7523271B2 (en) | Apparatus, system, and method for regulating the number of write requests in a fixed-size cache | |
CN111290973B (zh) | 数据写入方法、装置、计算机设备及存储介质 | |
US8161221B2 (en) | Storage system provided with function for detecting write completion | |
CN107025203B (zh) | 第一板卡、第二板卡及一种设备 | |
CN112269752A (zh) | 一种PCIe虚拟通道的数据处理方法及相关装置 | |
CN115269544A (zh) | 一种数据库集群升级方法、装置、电子设备及存储介质 | |
US7353300B2 (en) | Apparatus to improve the firmware efficiency for a multiframe serial interface | |
CN116521429A (zh) | 资产信息的上报方法及装置、存储介质及电子设备 | |
JP2016143422A (ja) | シリアルデバイスの構成 | |
CN113590405A (zh) | 硬盘错误的检测方法、装置、存储介质和电子装置 | |
US11809353B2 (en) | Component firmware interaction using hardware registers | |
KR20170117326A (ko) | 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치 | |
CN112445734A (zh) | 通信控制方法和通讯电路 | |
CN114116337A (zh) | 基于pcie链路配置的硬盘测试方法、系统、终端及存储介质 | |
CN110765060A (zh) | Mdio总线到并行总线转换方法及装置、设备、介质 | |
CN115857811A (zh) | 一种数据处理方法、装置、固态硬盘及可读存储介质 | |
CN104678292A (zh) | 一种复杂可编程逻辑器件cpld测试方法和装置 | |
CN115098138A (zh) | 电池管理系统的功能升级方法、装置、电子设备及介质 | |
CN112673364A (zh) | 数据传输方法、数据传输装置、电子设备和存储介质 | |
CN111241026A (zh) | 一种多个时钟的自适应系统 | |
CN117009162B (zh) | 一种三模raid卡芯片识别硬盘的方法 | |
EP3557422A1 (en) | Method for accessing code sram, and electronic device | |
CN113934671B (zh) | 一种接口控制芯片及网络设备 | |
CN111488175B (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 |