CN101894088A - 一种解决i2c总线上多主机冲突的方法及装置 - Google Patents

一种解决i2c总线上多主机冲突的方法及装置 Download PDF

Info

Publication number
CN101894088A
CN101894088A CN2010102349574A CN201010234957A CN101894088A CN 101894088 A CN101894088 A CN 101894088A CN 2010102349574 A CN2010102349574 A CN 2010102349574A CN 201010234957 A CN201010234957 A CN 201010234957A CN 101894088 A CN101894088 A CN 101894088A
Authority
CN
China
Prior art keywords
bus
main frame
token
bus resource
resource
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.)
Pending
Application number
CN2010102349574A
Other languages
English (en)
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.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN2010102349574A priority Critical patent/CN101894088A/zh
Publication of CN101894088A publication Critical patent/CN101894088A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

本发明提供一种解决I2C总线上多主机冲突的方法及装置,该方法包括:接收到主机申请I2C总线资源的请求后,若判断I2C总线当前的工作状态为空闲,则将I2C总线资源分配给请求申请I2C总线资源中优先级最高的第一主机。本发明能够保证总线上仅有一个主机生效,即保证总线上主机的唯一性,进而提高了系统的稳定性。

Description

一种解决I2C总线上多主机冲突的方法及装置
技术领域
本发明涉及通讯领域,特别涉及一种解决I2C总线上多主机冲突的方法及装置。
背景技术
I2C(Inter Integrated Circuit,内部集成线路)总线是由飞利浦公司在二十世纪八十年代提出的两线、串行、中低速通信总线。被应用在各种控制体系中,例如SMBus(System Management Bus,系统管理总线)、PMBus(PowerManagement Bus,电源管理总线)、IPMI(Intelligem Platform ManagementInterface,智能平台管理接口)、ATCA(Advanced Telecom ComputingArchitecture,先进的电信计算平台)等。I2C总线是一个多主机总线,也就是说总线上可以连接多于一个能控制总线的器件(主机)。主机能够实现初始化数据传输、产生时钟信号且终止数据传输,此时其它任何被寻址的器件都被认为是从机。
I2C总线支持仲裁机制,主机只能在总线空闲时启动传输。两个或多个主机可能在起始条件的最小持续时间内产生一个起始条件,结果在总线上产生一个规定的起始条件。当SCL(I2C时钟信号线)是高电平时,仲裁在SDA(I2C数据信号线)发生;这样,在其他主机发送低电平时发送高电平的主机将断开它的数据输出级,因为总线上的电平与其自己的电平不相同。仲裁可以持续多位,其第一个阶段是比较地址位,如果每个主机都尝试寻址相同的器件,仲裁会继续比较数据位(如果主机是发送器),或者比较响应位(如果主机是接收器)。因为I2C总线的地址和数据信息由赢得仲裁的主机决定,所以在仲裁过程中不会丢失信息。
图1显示了两个主机的仲裁过程。当然可能包含更多的内容(由连接到总线的主机数量决定)。DATA1为主机1输出的数据,DATA2为主机2输出的数据,SDA为I2C总线上面的数据,SCL为I2C总线时钟信号。SDA信号电平由DATA1和DATA2信号“相与”得到的。主机发出数据后,采集总线上面的数据,当总线上面的数据和自己发出的数据不一致,主机自动断开其数据输出级。图1上面显示DATA1数据电平与SDA线的实际电平有一些差别,那么,主机1主动关断数据输出,放弃总线竞争。主机2输出的内部数据信号DATA2和SDA信号一致,最终赢得了总线使用权。
这种仲裁方式存在一些问题:
(1)由于I2C总线的控制由地址或主机码以及竞争主机发送的数据决定,没有中央主机,总线也没有任何定制的优先权;
(2)在总线上面有多主机的应用场合,总线冲突严重,效率很低;
(3)某些特定场合应用会出现异常情况,如两个主器件(A和B)同时和一个从器件(C)通讯,A向C发送一个数据字节M,B向C发送两个数据字节M和N。这种情况下,在A发送完数据后,总线通讯就结束了,B无法和C正常通讯。
随着I2C总线应用越来越广泛,应用场景也越来越复杂。I2C总线在多主机存在的情况下,由于总线冲突仲裁,导致工作效率低而且稳定性差。
发明内容
本发明要解决的技术问题是提供一种解决I2C总线上多主机冲突的方法及装置,以提高I2C总线的稳定性。
为了解决上述技术问题,本发明提供了一种解决I2C总线上多主机冲突的方法,包括:
接收到主机申请I2C总线资源的请求后,若判断I2C总线当前的工作状态为空闲,则将I2C总线资源分配给请求申请I2C总线资源中优先级最高的第一主机。
进一步地,上述方法还具有下面特点:所述将I2C总线资源分配给请求申请I2C总线资源中优先级最高的第一主机的步骤包括:
将I2C总线资源分配给请求申请I2C总线资源中被预先赋予令牌的第一主机,若有多个请求申请I2C总线资源的主机被预先赋予令牌,则将I2C总线资源分配给请求申请I2C总线资源中被预先赋予令牌、且预定优先级最高的第一主机。
进一步地,上述方法还具有下面特点:将I2C总线资源分配给第一主机的步骤之后,所述方法还包括:取消所述第一主机的令牌。
进一步地,上述方法还具有下面特点:所述取消所述第一主机的令牌之后,所述方法还包括:
向请求申请I2C总线资源的所述第一主机发放令牌。
进一步地,上述方法还具有下面特点:将I2C总线资源分配给第一主机的步骤之后,所述方法还包括:
若判断挂在同一I2C总线上的所有主机都没有令牌,则向请求申请I2C总线资源的第二主机发放令牌,或向挂在该同一I2C总线上的所有主机发放令牌。
进一步地,上述方法还具有下面特点:所述将I2C总线资源分配给请求申请I2C总线资源中优先级最高的第一主机的步骤具体为:打开请求申请I2C总线资源中优先级最高的第一主机与所述I2C总线之间的电子开关,使该第一主机占用I2C总线资源。
进一步地,上述方法还具有下面特点:所述将I2C总线资源分配给请求申请I2C总线资源中优先级最高的第一主机的步骤之后,所述方法还包括:
若判断所述第一主机占用I2C总线资源超过第一时间,则强制释放I2C总线资源。
为了解决上述问题,本发明还提供了一种解决I2C总线上多主机冲突的装置,所述装置与多个挂在同一条I2C总线上的主机连接,所述装置包括:
接收单元,用于接收主机申请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总线仲裁过程的示意图;
图2是现有技术的I2C总线系统的示意图;
图3是本发明实施例的I2C总线系统的示意图;
图4为本发明实施例的解决I2C总线上多主机冲突的装置的示意图;
图5为本发明一实施例的解决I2C总线上多主机冲突的方法的流程图;
图6为本发明另一实施例的解决I2C总线上多主机冲突的方法的流程图;
图7为本发明实施例的控制单元的状态机示意图。
具体实施方式
本发明主要是使用电子开关隔离主机I2C通道和I2C总线,根据各个主机的申请资源信息和I2C总线的工作状态控制电子开关的通断,以保证I2C总线上最多只有一个电子开关处于导通状态,这样,就保证了总线上主机的唯一性。
为了更好地理解本发明,下面结合附图和具体实施例对本发明作进一步地描述。
图2是现有技术的I2C总线系统的示意图,如图2所示,四个主机和一个从机之间通过I2C总线进行信息交互。四个主机和从机直接挂在一条I2C总线上,各主机通过I2C总线仲裁机制来竞争总线使用权。此设计是常规设计,如果各个主机和从机频繁交换信息,会存在严重冲突情况,大大影响了I2C总线的效率。本发明在此基础上进行改进。
图3是本发明实施例的I2C总线系统的示意图,如图3所示,为了在硬件上面保证I2C总线上仅有一个主机,本发明选用电子开关来隔离主机的I2C信号,某个电子开关开启后,对应主机I2C通道便连接到I2C总线上。主机如果要占用I2C总线,必须要向本发明的解决I2C总线上多主机冲突的装置申请总线资源,本发明的装置根据I2C总线的工作状态及各个主机申请占用I2C总线情况来判断是否开启电子开关。
图4为本发明实施例的解决I2C总线上多主机冲突的装置的示意图,如图4所示,本实施例的装置与多个挂在同一条I2C总线上的主机连接,这些主机与该I2C总线隔离,例如,这些主机通过相应的电子开关与该I2C总线隔离。本实施例的装置可以包括:接收单元和控制单元,其中,
接收单元,用于接收主机申请I2C总线资源的请求后,触发控制单元;
控制单元,与所述接收单元连接,用于判断I2C总线当前的工作状态是否为空闲,若是,则将I2C总线资源分配给请求申请I2C总线资源中优先级最高的第一主机;否则,不分配I2C总线资源。
这样,根据本发明的装置的控制,在I2C总线忙的工作状态下,不会分配I2C总线资源,就不存在I2C仲裁过程,保证I2C总线上主机的唯一性,进而提高系统的稳定性。
进一步地,若请求申请I2C总线资源的主机被预先赋予令牌,有令牌的主机的优先级高于没有令牌的主机,则所述控制单元会将I2C总线资源分配给该带有令牌的主机,若有多个请求申请I2C总线资源的主机被预先赋予令牌,则控制单元将I2C总线资源分配给请求申请I2C总线资源中被预先赋予令牌、且预定优先级最高的主机。
本实施例中的控制单元可以包括:令牌管理模块、判断模块和分配模块,其中,
令牌管理模块,可以预先为挂在I2C总线上的所有主机分放令牌,也可以在主机申请I2C总线资源的过程中为某一主机,或某几个主机分放令牌、也可以消耗完所有主机的令牌之后为挂在I2C总线上的所有主机,或某一主机,或某几个主机分放令牌。
判断模块,用于若判断I2C总线当前的工作状态为空闲,并且判断请求申请I2C总线资源的第一主机被预先赋予令牌,则通告分配模块将I2C总线资源分配给有令牌的第一主机;
判断模块若判断请求申请I2C总线资源中有多个主机被预先赋予令牌,则继续判断有令牌的主机中哪一主机的预定优先级最高,则通知分配模块将I2C总线资源分配给有令牌且预定优先级最高的主机。
令牌管理模块还可以在分配模块为有令牌的主机分配I2C总线资源之后,将该主机的令牌取消掉;还可以在取消掉某一主机的令牌之后,再为该主机重新分发令牌。
进一步地,判断模块在判断挂在同一I2C总线上的所有主机都没有令牌时,也可以通知令牌管理模块为所有主机或某一主机或某几个主机分发令牌。
这样,本实施例的装置可以通过令牌灵活控制各个主机的优先级。
具体地,在本实施例中,多个主机是通过相应的电子开关与I2C总线隔离,控制单元将I2C总线资源分配给请求申请I2C总线资源中优先级最高的主机具体是:通过打开请求申请I2C总线资源中优先级最高的主机与I2C总线之间的电子开关,使该主机占用I2C总线资源。
本发明实施例的装置通过电子开关的方式对主机I2C通道信号进行隔离,避免I2C总线上有多个主机出现的情况,就不存在I2C仲裁过程。
进一步地,本实施例的控制单元还可以用于判断主机占用I2C总线资源是否超过预设时间,若是,则通知该主机释放I2C总线资源,以避免主机在可能挂死,或者线路问题导致异常情况下,主机无休止地占用I2C总线资源,以提高I2C总线资源的利用率。
其中,所预设时间可以根据占用I2C总线资源的主机发送的数据量而设置,也可以预先设置的固定占用时间。
图5为本发明实施例的解决I2C总线上多主机冲突的方法的流程图,如图5所示,本实施例的方法可以包括下面步骤:
S10、接收到主机申请I2C总线资源的请求;
S20、判断I2C总线当前的工作状态是否为空闲,若是,则执行步骤S30;否则,执行步骤S40;
S30、将I2C总线资源分配给请求申请I2C总线资源中优先级最高的主机。
S40、通知请求申请I2C总线资源的主机进行等待。
这样,在I2C总线忙的工作状态下,不会分配I2C总线资源,就不存在I2C仲裁过程,保证I2C总线上主机的唯一性,进而提高系统的稳定性。
下面通过图3的实施例,对本发明的解决I2C总线上多主机冲突的方法进行详细的说明。
如图3所示,本实施例的系统包括:四个主机(定义为Master1,Master2、Master3和Master4)、一个从机(Slave)、四个电子开关(Switch1,Switch2、Switch3和Switch4)和一个本实施例的解决I2C总线上多主机冲突的装置。
每个主机对应一个电子开关,如Master1对应Switch1。当Switch1导通后,Master1占用I2C总线;当Switch1断开后,Master1放弃I2C总线。每个主机和本实施例的装置之间可以有两个数据通道:请求数据通道和响应数据通道,其中,请求数据通道用于主机向控制单元申请I2C总线资源;响应数据通道用于控制单元通知主机是否申请到了I2C总线资源。请求数据通道和响应数据通道设计非常灵活,可以是单根信号线,也可以是多条信号总线,接口协议可以灵活设计,可以是同步的,也可以是异步的。
例如,Master1,Master2和本实施例的装置之间的请求数据通道分别为mst1_req,mst2_req(例如,编号为①,④),响应数据通道分别为mst1_ack,mst2_ack(例如,编号为②,⑤)。每个电子开关都有一个通断控制信号,如Switch1,Switch2的控制信号分别为mst1_en,mst2_en(例如,编号为③,⑥)。本实施例的装置通过电子开关的控制信号来控制电子开关的通断,保证总线最多只有一个电子开关处在导通状态。具体控制策略如下:
(1)I2C总线在空闲状态下仅有一个主机申请I2C总线资源;
例如,当前I2C总线处于空闲状态,且仅有Master1通过①发送请求占用I2C总线的申请,控制单元立刻将I2C总线资源分配给Master1,具体操作如下:
首先,控制单元将③置于使能状态,使Switch1导通;其次,通过②通知Mster1已经获取I2C总线资源;接着,Master1占用I2C总线资源,和从机通讯。最后,Master1通讯结束后,通过①取消占用I2C总线请求,控制单元将③置于禁止状态,使Switch1关断,将Master1从总线上隔离开。
(2)I2C总线在空闲状态下有多个主机申请I2C总线资源;
例如,当前I2C总线处于空闲状态,I2C总线上Master1和Master2同时发送请求占用I2C总线的申请,控制单元比较当前Master1和Master2优先级,如果Master1的优先级高于Master2,立刻将资源分配给Master1,具体操作与(1)中的操作相同。当Master1释放总线后,若Master2仍然处在申请总线状态,则控制单元再将I2C总线资源分配给Master2。
(3)I2C总线在忙状态下仅有一个主机申请资源;
例如,当前I2C总线处于繁忙状态,仅有Master1申请总线资源。此时,控制单元不会立即将I2C总线资源分配给Master1,而是让Master1处在等待状态,即通过②通知Master1没有获取到总线资源。直到I2C总线空闲后,控制单元才会再次检测各个主机申请总线资源的信息,如果Master1仍然处于申请总线资源状态,则控制单元才将I2C总线资源分配给Master1。
(4)I2C总线在忙状态下有多个主机申请资源;
例如,当前I2C总线处于繁忙状态下,Master1和Master2同时申请总线资源。此时,控制单元首先通知Master1和Master2等待,待I2C总线空闲后,如果Master1和Master2仍然在申请总线资源,则控制单元将根据当前Master1和Master2的优先级确定将资源分配给优先级高的主机。
图6为本发明另一实施例的解决I2C总线上多主机冲突的方法的流程图,系统上电后所有Switch默认为关闭,即所有主机都和I2C总线隔离开。如图6所示,可以包括下面步骤:
S101、主机申请占用I2C总线资源;
例如,Master1需要占用I2C总线资源,首先通过请求数据通道向控制单元申请占用I2C总线资源并不停检测响应数据通道信息。
S102、控制单元判断是否为主机分配I2C总线资源,若是,则转向步骤S103,否则,转向步骤S107;
控制单元接收到Master1请求后,根据当前I2C总线状态和当前申请总线资源所有主机的优先级来决定是否分配总线资源给Master1。控制单元仅仅会在总线空闲,且当前申请总线资源的主机中,Master1的优先级最高的条件下,才会把总线资源分配给Master1。
本实施例中,可以通过令牌来实现主机的优先级,可以在初始状态下为每个主机或指定的一个或几个主机分别赋予一个令牌,有令牌的主机优先级高于无令牌的主机,在令牌情况相同的主机之间按预先规定的优先级排序。有令牌主机抢占到I2C总线资源后,则耗用掉该主机的令牌。在本实施例中,可以在某一特定主机耗用掉令牌之后,重新为该特定的主机分发令牌;也可以在所有主机的令牌都被消耗掉时,为所有主机,或某一主机,或某几个主机重新分发令牌。
S103、主机占用I2C总线资源,和从机进行通讯;
控制单元通过Master1的响应数据通道通知Master1是否申请到了I2C总线资源。
S 104、判断主机占用I2C总线资源是否超时,若是,则转向步骤S105;若未超时,转向步骤S106;
S105、强制释放I2C总线资源;
为了防止某个主机长期占用I2C总线,控制单元设定了最长占用总线时间Twmax。如果某主机占用总线时间大于Twmax,控制单元便强制释放总线,并通知该主机释放I2C总线资源。可以通过各个主机通讯的数据量大小来合理设置Twmax参数,可以配置最大总线占用时间,这样在主机挂死、或者是由于线路问题导致异常情况下,可以自动隔离总线上故障主机,进而可以使I2C总线的利用率大大提高。
S106、主机与从机通讯结束后,自动释放I2C总线资源。
S107、判断主机申请占用I2C总线资源是否超时,若是,则转向步骤S108;否则,转向步骤S101;
S108、主机超时告警,控制单元释放该主机的申请总线占用的请求;
系统定义了I2C申请超时时间参数Tsmax,如果Master1在Tsmax时间内无法申请到I2C总线资源,Master1本身进行超时告警,同时释放I2C总线申请请求;Master1释放I2C总线申请占用请求后,可以再次进行申请。
本实施例的控制单元分配I2C总线资源的过程可以通过状态机来实现。
如7所示,本实施例的控制单元的状态机可以包括IDLE(初始状态)、SCHEDULER(分配状态)、CPU_WORKING(工作状态)和JUDGE(判决状态)几个状态,各个状态说明如下:
(1)IDLE:初始状态,给控制单元赋初始值;
(2)SCHEDULER:控制单元按照优先级来进行I2C总线资源的分配,如果没有接收到主机的申请占用总线资源的请求,则一直停留在这个状态;
(3)CPU_WORKING:控制单元分配I2C总线资源完成之后,获得总线资源的主机与从机进行通讯的过程中,控制单元都处于该状态,通讯完成之后,控制单元从该状态跳转到IDLE状态;如果主机与从机的通讯时间超时,则控制单元从该状态跳转到JUDGE状态;
(4)JUDGE:在某个主机与从机通讯超时的时候,控制单元处于该状态,其原因可能是主机通讯数据量大,可能是主机挂死,或者是由于线路问题导致的异常情况。在该状态中,首先,控制单元结束当前主机与从机之间的总线占用,释放总线资源;其次,暂时忽略此主机占用总线资源的请求,并通知主机释放占用总线资源的请求。直到主机自动释放占用总线资源的请求后,才使该主机的占用总线资源的请求有效;最后,跳转到IDLE状态。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各单元/单元可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (14)

1.一种解决I2C总线上多主机冲突的方法,包括:
接收到主机申请I2C总线资源的请求后,若判断I2C总线当前的工作状态为空闲,则将I2C总线资源分配给请求申请I2C总线资源中优先级最高的第一主机。
2.如权利要求1所述的方法,其特征在于:所述将I2C总线资源分配给请求申请I2C总线资源中优先级最高的第一主机的步骤包括:
将I2C总线资源分配给请求申请I2C总线资源中被预先赋予令牌的第一主机,若有多个请求申请I2C总线资源的主机被预先赋予令牌,则将I2C总线资源分配给请求申请I2C总线资源中被预先赋予令牌、且预定优先级最高的第一主机。
3.如权利要求2所述的方法,其特征在于:将I2C总线资源分配给第一主机的步骤之后,所述方法还包括:
取消所述第一主机的令牌。
4.如权利要求3所述的方法,其特征在于:所述取消所述第一主机的令牌之后,所述方法还包括:
向请求申请I2C总线资源的所述第一主机发放令牌。
5.如权利要求2所述的方法,其特征在于:将I2C总线资源分配给第一主机的步骤之后,所述方法还包括:
若判断挂在同一I2C总线上的所有主机都没有令牌,则向请求申请I2C总线资源的第二主机发放令牌,或向挂在该同一I2C总线上的所有主机发放令牌。
6.如权利要求1-5任一项所述的方法,其特征在于:所述将I2C总线资源分配给请求申请I2C总线资源中优先级最高的第一主机的步骤具体为:
打开请求申请I2C总线资源中优先级最高的第一主机与所述I2C总线之间的电子开关,使该第一主机占用I2C总线资源。
7.如权利要求6所述的方法,其特征在于:所述将I2C总线资源分配给请求申请I2C总线资源中优先级最高的第一主机的步骤之后,所述方法还包括:
若判断所述第一主机占用I2C总线资源超过第一时间,则强制释放I2C总线资源。
8.一种解决I2C总线上多主机冲突的装置,其特征在于,所述装置与多个挂在同一条I2C总线上的主机连接,所述装置包括:
接收单元,用于接收主机申请I2C总线资源的请求后,触发控制单元;及
控制单元,与所述接收单元连接,用于若判断I2C总线当前的工作状态为空闲,则将I2C总线资源分配给请求申请I2C总线资源中优先级最高的第一主机。
9.如权利要求8所述的装置,其特征在于:所述控制单元包括:
判断模块,用于若判断I2C总线当前的工作状态为空闲,并且判断请求申请I2C总线资源的第一主机被预先赋予令牌,或者判断请求申请I2C总线资源中被预先赋予令牌的多个主机中的第一主机的预定优先级最高,则触发分配模块;
分配模块,用于将I2C总线资源分配给所述第一主机。
10.如权利要求9所述的装置,其特征在于:所述控制单元还包括令牌管理模块,
所述分配模块,将I2C总线资源分配给所述第一主机之后还用于向所述令牌管理模块发送第一消息;
所述令牌管理模块,用于接收到所述第一消息后取消所述第一主机的令牌。
11.如权利要求10所述的装置,其特征在于:
所述令牌管理模块,取消所述第一主机的令牌之后还用于,向请求申请I2C总线资源的所述第一主机发放令牌。
12.如权利要求9所述的装置,其特征在于:
所述判断模块,还用于若判断挂在所述同一I2C总线上的所有主机都没有令牌,则向所述令牌管理模块发送第二消息;
所述令牌管理模块,还用于接收到所述第二消息后向请求申请I2C总线资源的第二主机发放令牌,或向挂在该同一I2C总线上的所有主机发放令牌。
13.如权利要求8所述的装置,其特征在于:所述多个主机通过相应的电子开关与所述I2C总线隔离,
所述控制单元,将I2C总线资源分配给请求申请I2C总线资源中优先级最高的第一主机具体用于,打开请求申请I2C总线资源中优先级最高的第一主机与所述I2C总线之间的电子开关,使该第一主机占用I2C总线资源。
14.如权利要求13所述的装置,其特征在于:
所述控制单元,还用于若判断所述第一主机占用I2C总线资源超过第一时间,则强制释放I2C总线资源。
CN2010102349574A 2010-07-21 2010-07-21 一种解决i2c总线上多主机冲突的方法及装置 Pending CN101894088A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102349574A CN101894088A (zh) 2010-07-21 2010-07-21 一种解决i2c总线上多主机冲突的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102349574A CN101894088A (zh) 2010-07-21 2010-07-21 一种解决i2c总线上多主机冲突的方法及装置

Publications (1)

Publication Number Publication Date
CN101894088A true CN101894088A (zh) 2010-11-24

Family

ID=43103280

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102349574A Pending CN101894088A (zh) 2010-07-21 2010-07-21 一种解决i2c总线上多主机冲突的方法及装置

Country Status (1)

Country Link
CN (1) CN101894088A (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102891859A (zh) * 2012-10-22 2013-01-23 北京奇虎科技有限公司 一种令牌接口过期处理系统及方法
CN103813481A (zh) * 2013-09-23 2014-05-21 杭州优能通信系统有限公司 一种智能终端设备及其业务处理方法
CN103869731A (zh) * 2014-02-26 2014-06-18 成都信息工程学院 基于异步串行通信的多主无损总线竞争电路
CN105975412A (zh) * 2016-05-13 2016-09-28 Tcl移动通信科技(宁波)有限公司 一种基于iic总线的设备优先级控制方法、装置及系统
CN106155971A (zh) * 2016-07-04 2016-11-23 锐捷网络股份有限公司 I2c总线的仲裁方法及装置
CN103885910B (zh) * 2012-12-21 2017-08-25 深圳市兴飞科技有限公司 多设备在主模式下进行iic通信的方法
CN107678993A (zh) * 2016-08-02 2018-02-09 纬创资通股份有限公司 电脑系统及总线仲裁方法
CN108073538A (zh) * 2016-11-17 2018-05-25 英业达科技有限公司 集成电路总线仲裁控制系统
CN108139997A (zh) * 2015-10-01 2018-06-08 索尼公司 通信系统、设备、主设备、从设备、通信系统控制方法和程序
CN108965488A (zh) * 2018-06-04 2018-12-07 深圳柴火创客教育服务有限公司 I2c通信系统及其控制设备、节点设备、地址管理方法
CN109407569A (zh) * 2017-08-16 2019-03-01 浙江西谷数字技术股份有限公司 一种基于单片机系统的自动赋址方法
CN110275856A (zh) * 2018-03-13 2019-09-24 纬颖科技服务股份有限公司 双向沟通方法、系统及其主控端装置
CN110647488A (zh) * 2019-09-04 2020-01-03 苏州浪潮智能科技有限公司 一种i2c总线的抗噪声方法、系统及相关组件
CN110874265A (zh) * 2019-11-15 2020-03-10 厦门物通博联网络科技有限公司 一种快速采集数据方法、装置、设备及存储介质
CN111124979A (zh) * 2019-10-31 2020-05-08 苏州浪潮智能科技有限公司 一种基于堆栈结构的i2c多主访问方法和系统
CN111124964A (zh) * 2019-11-29 2020-05-08 深圳震有科技股份有限公司 一种cpu与iic总线的连通控制方法及设备
CN111324559A (zh) * 2020-02-27 2020-06-23 南通琅润达大数据科技有限公司 一种自主请求的串口分流装置
CN111444124A (zh) * 2020-03-25 2020-07-24 苏州琅润达检测科技有限公司 一种高频自主请求的串口分流装置
CN112069114A (zh) * 2020-09-07 2020-12-11 北京同有飞骥科技股份有限公司 I2c仲裁方法及装置
CN112817778A (zh) * 2021-01-27 2021-05-18 惠州Tcl移动通信有限公司 一种移动终端复用模块管理方法、系统、终端及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1767490A (zh) * 2004-10-27 2006-05-03 乐金电子(天津)电器有限公司 支持载波感知的多重通信方式的通信装置及其方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1767490A (zh) * 2004-10-27 2006-05-03 乐金电子(天津)电器有限公司 支持载波感知的多重通信方式的通信装置及其方法

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102891859B (zh) * 2012-10-22 2016-05-25 北京奇虎科技有限公司 一种令牌接口过期处理系统及方法
CN102891859A (zh) * 2012-10-22 2013-01-23 北京奇虎科技有限公司 一种令牌接口过期处理系统及方法
CN103885910B (zh) * 2012-12-21 2017-08-25 深圳市兴飞科技有限公司 多设备在主模式下进行iic通信的方法
CN103813481A (zh) * 2013-09-23 2014-05-21 杭州优能通信系统有限公司 一种智能终端设备及其业务处理方法
CN103869731A (zh) * 2014-02-26 2014-06-18 成都信息工程学院 基于异步串行通信的多主无损总线竞争电路
CN108139997A (zh) * 2015-10-01 2018-06-08 索尼公司 通信系统、设备、主设备、从设备、通信系统控制方法和程序
CN105975412A (zh) * 2016-05-13 2016-09-28 Tcl移动通信科技(宁波)有限公司 一种基于iic总线的设备优先级控制方法、装置及系统
CN106155971A (zh) * 2016-07-04 2016-11-23 锐捷网络股份有限公司 I2c总线的仲裁方法及装置
CN107678993A (zh) * 2016-08-02 2018-02-09 纬创资通股份有限公司 电脑系统及总线仲裁方法
CN107678993B (zh) * 2016-08-02 2020-07-07 纬颖科技服务股份有限公司 电脑系统及总线仲裁方法
CN108073538B (zh) * 2016-11-17 2020-01-07 英业达科技有限公司 集成电路总线仲裁控制系统
CN108073538A (zh) * 2016-11-17 2018-05-25 英业达科技有限公司 集成电路总线仲裁控制系统
CN109407569A (zh) * 2017-08-16 2019-03-01 浙江西谷数字技术股份有限公司 一种基于单片机系统的自动赋址方法
CN110275856A (zh) * 2018-03-13 2019-09-24 纬颖科技服务股份有限公司 双向沟通方法、系统及其主控端装置
US10795848B2 (en) 2018-03-13 2020-10-06 Wiwynn Corporation Dual way communication method, system, and master device thereof
CN108965488A (zh) * 2018-06-04 2018-12-07 深圳柴火创客教育服务有限公司 I2c通信系统及其控制设备、节点设备、地址管理方法
CN110647488A (zh) * 2019-09-04 2020-01-03 苏州浪潮智能科技有限公司 一种i2c总线的抗噪声方法、系统及相关组件
CN111124979A (zh) * 2019-10-31 2020-05-08 苏州浪潮智能科技有限公司 一种基于堆栈结构的i2c多主访问方法和系统
CN110874265A (zh) * 2019-11-15 2020-03-10 厦门物通博联网络科技有限公司 一种快速采集数据方法、装置、设备及存储介质
CN111124964A (zh) * 2019-11-29 2020-05-08 深圳震有科技股份有限公司 一种cpu与iic总线的连通控制方法及设备
CN111324559A (zh) * 2020-02-27 2020-06-23 南通琅润达大数据科技有限公司 一种自主请求的串口分流装置
CN111444124A (zh) * 2020-03-25 2020-07-24 苏州琅润达检测科技有限公司 一种高频自主请求的串口分流装置
CN112069114A (zh) * 2020-09-07 2020-12-11 北京同有飞骥科技股份有限公司 I2c仲裁方法及装置
CN112817778A (zh) * 2021-01-27 2021-05-18 惠州Tcl移动通信有限公司 一种移动终端复用模块管理方法、系统、终端及存储介质

Similar Documents

Publication Publication Date Title
CN101894088A (zh) 一种解决i2c总线上多主机冲突的方法及装置
US20080244282A1 (en) Managing Power Allocation To Ethernet Ports In The Absence Of Mutually Exclusive Detection And Powering Cycles In Hardware
CN101789877B (zh) 一种构建网络的方法和系统
CN101442513A (zh) 实现多种业务处理功能的方法和多核处理器设备
CN108683618B (zh) 通信设备和智能终端
EP1942608A1 (en) Network interface control program and network interface controller
RU2716560C2 (ru) Базовая радиостанция и система связи, содержащая базовую радиостанцию
CN110880998B (zh) 一种基于可编程器件的报文传输方法及装置
CN108141882A (zh) 基于竞争的系统中的具有不同优先级的数据流和竞争窗口参数的调整
CN103200015A (zh) 一种poe交换机供电方法
CN112088346A (zh) 多端口间通用串行总线功率的委托
EP3629535A1 (en) Method, device, and system for implementing mux machine
EP2852113B1 (en) Load sharing method and device, and single board
CN109213530A (zh) 一种基于usb的通信连接方法、移动终端及存储介质
CN112753197B (zh) 使用lan唤醒的网络管理
CN106301803A (zh) 一种芯片供电控制方法、装置及通信设备
CN104468311A (zh) 一种物理网卡虚拟成多个虚拟网卡的方法及系统
WO2022095862A1 (zh) 调整线程优先级的方法、终端及计算机可读存储介质
US8132029B2 (en) Method for managing the power transmitted from a central network component to a decentralized network component via a line
CN111124593A (zh) 信息处理方法及装置、网元及存储介质
US6760849B1 (en) Event initiation bus and associated fault protection for a telecommunications device
CN107070695A (zh) 一种总线型网络负载自适应通信方法
CN109582626B (zh) 一种访问总线的方法、装置、设备及可读存储介质
CN101296132A (zh) 一种监测网卡的方法、系统及一种监测装置
EP2207309A1 (en) Method and system for a protocol with stateful negotiation for energy efficient network parameters in layer 2

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20101124