CN112765082B - 多主机仲裁方法、装置和可读存储介质 - Google Patents
多主机仲裁方法、装置和可读存储介质 Download PDFInfo
- Publication number
- CN112765082B CN112765082B CN202110111278.6A CN202110111278A CN112765082B CN 112765082 B CN112765082 B CN 112765082B CN 202110111278 A CN202110111278 A CN 202110111278A CN 112765082 B CN112765082 B CN 112765082B
- Authority
- CN
- China
- Prior art keywords
- host
- level signal
- bit
- data
- duration
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000005540 biological transmission Effects 0.000 claims abstract description 17
- 238000004891 communication Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000002035 prolonged effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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
- 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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/06—Clock generators producing several clock signals
-
- 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/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06M—COUNTING MECHANISMS; COUNTING OF OBJECTS NOT OTHERWISE PROVIDED FOR
- G06M1/00—Design features of general application
- G06M1/27—Design features of general application for representing the result of count in the form of electric signals, e.g. by sensing markings on the counter drum
- G06M1/272—Design features of general application for representing the result of count in the form of electric signals, e.g. by sensing markings on the counter drum using photoelectric means
-
- 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)
- Information Transfer Systems (AREA)
Abstract
本申请公开了一种多主机仲裁方法、装置和可读存储介质,属于通信技术领域。该方法包括:在第一主机使用总线的串行数据线进行数据传输的情况下,生成第一主机的第一时钟信号,第一时钟信号中的第一高电平信号的持续时间大于第二高电平信号的持续时间,第一高电平信号与第一主机所传输的数据中的字节的第一个比特位对应,第二高电平信号与字节中除第一个比特位之外的一比特位对应;在第一高电平信号的持续时间内,若检测到第二主机向串行数据线发送的数据为重复起始位或停止位的数据,且串行数据线的电平信号与第二主机所发送的数据匹配的情况下,则控制第一主机停止传输数据,并控制第二主机重新传输数据或者停止传输数据,从而降低总线的出错率。
Description
技术领域
本申请属于通信技术领域,具体涉及一种多主机仲裁方法、装置和可读存储介质。
背景技术
集成电路(Inter-Integrated Circuit,简称I2C)总线是一种允许多主机接入的两线式串行总线,通过串行数据(Serial Data,简称)SDA线和串行时钟(Serial Clock,简称SCL)线在连接到总线的器件间传递信息,是同步通信的一种特殊形式,具有接口线少、控制方式简单、器件封装形式小、通信速率较高等优点,已成为微电子通信控制领域广泛采用的一种总线标准。由于I2C总线没有任何定制的优先权,也没有中央主机来制定优先权,因此,I2C总线需要通过不同主机之间的相互竞争来实现优先级的仲裁。
在现有技术中,当一个主机正在使用I2C总线传输数据,且另外一个主机向I2C总线发送重复起始位或者停止位时,I2C总线中的串行数据线上的数据位会受到重复起始位或者停止位的干扰,使得串行数据线的电平跳变与串行时钟线的电平跳变可能会同时出现,这时I2C总线不能对多个主机进行仲裁,从而导致I2C总线可能出错。
发明内容
本申请实施例的目的是提供一种多主机仲裁方法、装置和可读存储介质,能够解决现有的I2C总线的串行数据线的电平跳变与串行时钟线的电平跳变可能同时出现,导致I2C总线可能出错的问题。
为了解决上述技术问题,本申请是这样实现的:
第一方面,本申请实施例提供了一种多主机仲裁方法,该方法包括:
在第一主机使用总线的串行数据线进行数据传输的情况下,生成所述第一主机的第一时钟信号,所述第一时钟信号中的第一高电平信号的持续时间大于第二高电平信号的持续时间,所述第一高电平信号与所述第一主机所传输的数据中的字节的第一个比特位对应,所述第二高电平信号与所述字节中除所述第一个比特位之外的一比特位对应;
在所述第一高电平信号的持续时间内,若检测到所述第二主机向所述串行数据线发送的数据为重复起始位或停止位的数据,且所述串行数据线的电平信号与所述第二主机所发送的数据匹配的情况下,则控制所述第一主机停止传输数据,并控制所述第二主机重新传输数据或者停止传输数据。
第二方面,本申请实施例提供了一种多主机仲裁装置,该装置包括:
生成模块,用于在第一主机使用总线的串行数据线进行数据传输的情况下,生成所述第一主机的第一时钟信号,所述第一时钟信号中的第一高电平信号的持续时间大于第二高电平信号的持续时间,所述第一高电平信号与所述第一主机所传输的数据中的字节的第一个比特位对应,所述第二高电平信号与所述字节中除所述第一个比特位之外的一比特位对应;
第一控制模块,用于在所述第一高电平信号的持续时间内,若检测到所述第二主机向所述串行数据线发送的数据为重复起始位或停止位的数据,且所述串行数据线的电平信号与所述第二主机所发送的数据匹配的情况下,则控制所述第一主机停止传输数据,并控制所述第二主机重新传输数据或者停止传输数据。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
在本申请实施例中,在第一主机使用总线的串行数据线进行数据传输的情况下,生成所述第一主机的第一时钟信号,所述第一时钟信号中的第一高电平信号的持续时间大于第二高电平信号的持续时间,所述第一高电平信号与所述第一主机所传输的数据中的字节的第一个比特位对应,所述第二高电平信号与所述字节中除所述第一个比特位之外的一比特位对应;在所述第一高电平信号的持续时间内,若检测到所述第二主机向所述串行数据线发送的数据为重复起始位或停止位的数据,且所述串行数据线的电平信号与所述第二主机所发送的数据匹配的情况下,则控制所述第一主机停止传输数据,并控制所述第二主机重新传输数据或者停止传输数据。这样使得第二主机向串行数据线发送重复起始位或停止位时,会发生在第一高电平信号的持续时间内,从而避免总线的串行数据线的电平跳变与串行时钟线的电平跳变同时出现的情况,降低总线的出错率。
附图说明
图1为本申请实施例提供的多主机仲裁方法的流程图之一;
图2(a)为本申请实施例提供的第一主机和第二主机的仲裁示意图之一;
图2(b)为本申请实施例提供的第一主机和第二主机的仲裁示意图之二;
图2(c)为本申请实施例提供的第一主机和第二主机的仲裁示意图之三;
图3为本申请实施例提供的多主机仲裁方法的流程图之二;
图4为本申请实施例提供的第一主机的结构示意图;
图5为本申请实施例提供的多主机仲裁装置的结构示意图;
图6为本发明实施例提供的电子设备的结构图之一;
图7是本发明实施例提供的电子设备的结构图之二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的多主机仲裁方法进行详细地说明。
参见图1,图1为本申请实施例提供的多主机仲裁方法的流程图之一。如图1所示,该多主机仲裁方法,具体包括以下步骤:
步骤101、在第一主机使用总线的串行数据线进行数据传输的情况下,生成第一主机的第一时钟信号,第一时钟信号中的第一高电平信号的持续时间大于第二高电平信号的持续时间,第一高电平信号与第一主机所传输的数据中的字节的第一个比特位对应,第二高电平信号与字节中除第一个比特位之外的一比特位对应。
其中,上述总线包括但不限于I2C总线,还可以为其他串行数据传输总线,本申请不做具体限定。上述第一主机是指使用该总线进行数据传输的一个或者多个主机。需要说明的是,该总线包括串行数据线和串行时钟线,在第一主机使用总线的串行数据线进行数据传输时,第一主机还需要生成第一时钟信号,并向总线的串行时钟线发送该第一时钟信号,通过第一主机的第一时钟信号来对总线的串行时钟线上的高低电平信号进行控制,并在总线的串行时钟线为高电平信号时,对第一主机需要发送的数据中的各字节按照比特位依次进行传输,从而可以通过第一时钟信号控制第一主机向总线的串行数据线发送数据的速率。
在本申请实施例中,第一主机的第一时钟信号中的第一高电平信号的持续时间大于第二高电平信号的持续时间,其中,第一高电平信号与第一主机所传输的数据中的字节的第一个比特位对应,第二高电平信号与字节中除第一个比特位之外的一比特位对应,如与字节中的第二个比特位至第八个比特位中的每一比特位对应。具体地,第二高电平信号可以与字节中的第二个比特位对应,还可以与字节中的第三个比特位、第四个比特位、第五个比特位、第六个比特位、第七个比特位或者第八个比特位对应。此处的第二个比特位至第八个比特位对应的时钟信号的高电平信号的持续时间,可以相同,也可以不同。也就是说,需要第一主机所传输的数据中的字节的第一个比特位对应第一高电平信号的持续时间大于字节中其他比特位对应的第二高电平信号的持续时间。
由于总线的串行时钟线上的电平信号是由第一主机的第一时钟信号决定,即总线的串行时钟线上的电平信号是基于第一主机发送的第一时钟信号执行“线与”逻辑来实现的。当第一主机为多个时,多个第一主机可以分别向总线的串行时钟线发送第一时钟信号,总线的串行时钟线可以基于多个第一主机发送的第一时钟信号执行“线与”逻辑,从而确定总线的串行时钟线上的电平信号。其中,此处的“线与”逻辑是指,若多个第一时钟信号在某一时段存在任意一个第一时钟信号为低电平时,则总线的串行时钟线在该时段表现为低电平;若多个第一时钟信号在某一时段均为高电平时,则总线的串行时钟线在该时段表现为高电平。因此,当第一时钟信号的第一高电平信号的持续时间延长的情况下,会导致总线的时钟信号线的在对应位置的高电平信号的持续时间也延长,这样使得第一主机在进行数据传输时,其他主机发送的重复起始位或者是停止位会发生在第一高电平信号的持续时间内,而不会发生在第一高电平信号的跳变位置,这样有利于避免总线的串行数据线的电平跳变与串行时钟线的电平跳变同时出现的情况。
步骤102、在第一高电平信号的持续时间内,若检测到第二主机向串行数据线发送的数据为重复起始位或停止位的数据,且串行数据线的电平信号与第二主机所发送的数据匹配的情况下,则控制第一主机停止传输数据,并控制第二主机重新传输数据或者停止传输数据。
其中,上述第二主机为接入总线的除上述第一主机外的其他至少一个主机。上述第二主机发送的重复起始位是指在第二主机的时钟信号为高电平信号情况下,第二主机向总线的串行数据线发送的从高电平信号向低电平信号的跳变信号,用于第二主机向总线请求传输新的数据。上述第二主机发送的停止位是指在第二主机的时钟信号为高电平信号情况下,第二主机向总线的串行数据线发送的从低电平信号向高电平信号的跳变信号,用于第二主机向总线请求停止传输数据。
在一实施例中,在第一高电平信号的持续时间内,若检测到第二主机向总线的串行数据线发送的数据为重复起始位或停止位的数据,且该串行数据线的电平信号与该第二主机所发送的数据匹配的情况下,表示此时总线的串行数据线上传输的信号与第二主机传输的信号一致,则可以确定第二总线仲裁成功,此时可以控制第一主机停止传输数据,并控制第二主机依据其发送的重复起始位重新传输数据,或者依据其发送的停止位停止传输数据。
具体地,参见图2(a)至2(b),图2(a)至2(b)为本申请实施例提供的第一主机和第二主机的仲裁示意图。
如图2(a)所示,第一主机包括第一时钟信号和第一数据信号,第二主机包括第二时钟信号和第二数据信号,总线的串行时钟线上的电平信号为第一时钟信号与第二时钟信号执行“线与”逻辑后的电平信号,总线的串行数据线上的电平信号为第一数据信号与第二数据信号执行“线与”逻辑后的电平信号。在图2(a)所示的第一时钟信号的第一高电平信号对应的位置,由于第一主机发送的第一数据信号为高电平信号,第二主机发送的第二数据信号为一停止位,因而总线的串行数据线执行“线与”逻辑后,在第一高电平信号对应的位置的电平信号与第二主机一致,均为一停止位,因此,第二主机仲裁成功,第一主机仲裁失败,需要控制第一主机停止传输数据,并控制第二主机也停止传输数据。此后,总线进入空闲状态,总线的串行数据线和总线的串行时钟线均为高电平状态。
当然,如图2(b)所示,在图2(b)所示的第一时钟信号的第一高电平信号对应的位置,第一主机发送的第一数据信号仍为高电平信号,第二主机发送的第二数据信号为一重复起始位,那么总线的串行数据线执行“线与”逻辑后,在第一高电平信号对应的位置的电平信号与第二主机仍然一致,均为一重复起始位,因此,第二主机仲裁成功,第一主机仲裁失败,需要控制第一主机停止传输数据,并控制第二主机传输新的数据。此后,总线的串行数据线上的电平状态与第二主机的第二数据信号的电平状态一致。
在本实施例中,通过对正在进行数据传输的第一主机生成第一时钟信号,使得字节的第一个比特位对应的第一高电平信号的持续时间大于字节中其他比特位对应的第二高电平信号的持续时间,这样使得第二主机向串行数据线发送重复起始位或停止位时,会发生在第一高电平信号的持续时间内,从而避免总线的串行数据线的电平跳变与串行时钟线的电平跳变同时出现的情况,降低总线的出错率。
进一步地,参见图3,图3为本申请实施例提供的多主机仲裁方法的流程图之二。基于上述图1所示的实施例,在步骤101、在第一主机使用总线的串行数据线进行数据传输的情况下,生成第一主机的第一时钟信号之后,还包括:
步骤103、在第一高电平信号的持续时间内,若检测到第二主机向串行数据线发送的数据为重复起始位或停止位,且串行数据线的电平信号与第一主机所发送的数据的电平信号匹配的情况下,则控制第一主机继续传输数据。
其中,第一主机所发送的数据的电平信号可以是高电平信号,也可以为低电平信号,根据第一主机实际需要发送的数据确定。例如,如果第一主机在第一高电平信号的持续时间内需要发送数据0,则向总线的串行数据线发送低电平信号,如果第一主机在第一高电平信号的持续时间内需要发送数据1,则向总线的串行数据线发送高电平信号。
具体地,在第一高电平信号的持续时间内,若检测到第二主机向总线的串行数据线发送的数据为重复起始位或停止位,且该串行数据线的电平信号与该第一主机所发送的数据的电平信号匹配的情况下,表示此时总线的串行数据线上传输的信号与第一主机传输的信号一致,则可以确定第一总线仲裁成功,第二总线仲裁失败,此时可以控制第一主机继续传输数据。
参见图2(c),图2(c)为本申请实施例提供的另一第一主机和第二主机的仲裁示意图。在图2(c)所示的第一时钟信号的第一高电平信号对应的位置,第一主机发送的第一数据信号为低电平信号,第二主机发送的第二数据信号为一重复起始位或者一停止位,那么总线的串行数据线执行“线与”逻辑后,在第一高电平信号对应的位置的电平信号均为低电平信号,与第一主机一致,因此,此时第一主机仲裁成功,第二主机仲裁失败。此后,总线的串行数据线上的电平状态与第一主机的第一数据信号的电平状态一致。
在本实施例中,当检测到第二主机在第一高电平信号的持续时间内向串行数据线发送重复起始位或停止位时,可以通过判断总线的串行数据线的电平信号是否与第一主机所发送的数据位匹配,确定第一主机是否仲裁成功,因此,能够在第二主机发送重复起始位或停止位时能够实现正确的仲裁,降低总线的出错率。
进一步地,第一高电平信号的持续时间为第二高电平信号的持续时间的两倍。
其中,上述第一高电平信号与第一主机所传输的数据中的字节的第一个比特位对应,上述第二高电平信号与字节中除第一个比特位之外的一比特位对应,如与字节中的第二个比特位至第八个比特位中的每一比特位对应。具体地,第二高电平信号可以与字节中的第二个比特位对应,还可以与字节中的第三个比特位、第四个比特位、第五个比特位、第六个比特位、第七个比特位或者第八个比特位对应。
在一实施例中,第一高电平信号的持续时间为第二高电平信号的持续时间的两倍。例如,假设字节中的第二个比特位至第八个比特位对应的时钟信号的高电平信号的持续时间均为5毫秒,则字节中的第一个比特位的持续时间为10毫秒。通过这种方式,可以使得数据中字节的第一个比特位对应的高电平信号相比其他比特位对应的高电平信号持续时间更长,从而较好地避免总线的串行数据线的电平跳变与串行时钟线的电平跳变同时出现的情况,达到降低总线的出错率的效果。而且,即便字节中第一个比特位对应的高电平信号是字节中除第一个比特位之外的其他一比特位对应的高电平信号的持续时间的2倍,其实际对于总线的传输效率的影响也不大,因此,这样不仅可以规避不同主机在同时发送数据重复起始位或者停止位与正常数据位之间的冲突,尤其对于累加性读写传输来说,效果比较明显。
进一步地,第一主机包括字节计数器、比特位计数器和时钟信号发生器;
上述步骤101、生成第一主机的第一时钟信号,包括:
获取字节计数器和比特位计数器的计数结果;
根据计数结果,确定第一主机所传输的数据中的字节的第一个比特位在第一主机的时钟信号上所对应的位置;
控制时钟信号发生器在位置生成第一高电平信号。
具体地,参见图4,图4为本申请实施例提供的第一主机的结构示意图。如图4所示,该第一主机包括字节计数器、比特位计数器和时钟信号发生器,其中,字节计数器用于对第一主机向总线的串行数据线传输的数据的字节进行计数,比特位计数器用于对第一主机向总线的串行数据线传输的数据的字节中的比特位进行计数,时钟信号发生器用于产生第一时钟信号。当然,该第一主机包括还可以包括控制单元、主状态机、读寄存器、写寄存器、串转并模块、并转串模块等,其中,主状态机用于对总线和接入总线的从机的忙闲状态进行监控,控制单元用于根据主状态机的监控结果对读寄存器和写寄存器中的数据进行读操作或者写操作,串转并模块用于将从总线的串行数据线上接收到的数据由串行转化为并行后,传输至读寄存器,并转串模块用于将写寄存器中的数据由并行转化为串行后,传输至总线的串行数据线。
在生成第一主机的第一时钟信号时,可以通过获取第一主机中字节计数器和比特位计数器的计数结果,根据字节计数器确定第一主机向总线的串行数据线传输的字节数量,根据比特位计数器确定第一主机向总线的串行数据线传输的字节的比特位数量,由此,可以根据字节计数器和比特位计数器的计数结果,确定第一主机所传输的数据中的字节的第一个比特位在第一主机的时钟信号上所对应的位置,并控制时钟信号发生器在该位置生成第一高电平信号,即将该位置的第一高电平信号的持续时间延长,而将字节中其他比特位对应的位置的第二高电平信号的持续时间不变。
当然,作为另一种实施方式,也可以在第一主机中仅设置一个计数器,通过该计数器对字节中的0至8比特位循环计数,当计数到第一个比特位时,控制时钟信号发生器在该位置生成第一高电平信号。
在本实施例中,可以根据第一主机的字节计数器和比特位计数器的计数结果,确定第一主机所传输的数据中的字节的第一个比特位在第一主机的时钟信号上所对应的位置,从而控制时钟信号发生器在该位置生成第一高电平信号,这样可以提高第一时钟信号的准确性。
需要说明的是,本申请实施例提供的多主机仲裁方法,执行主体可以为多主机仲裁装置,或者该多主机仲裁装置中的用于执行多主机仲裁方法的控制模块。本申请实施例中以多主机仲裁装置执行多主机仲裁方法为例,说明本申请实施例提供的多主机仲裁装置。
参见图5,图5为本申请实施例提供的多主机仲裁装置的结构示意图。如图5所示,该多主机仲裁装置500,包括:
生成模块501,用于在第一主机使用总线的串行数据线进行数据传输的情况下,生成第一主机的第一时钟信号,第一时钟信号中的第一高电平信号的持续时间大于第二高电平信号的持续时间,第一高电平信号与第一主机所传输的数据中的字节的第一个比特位对应,第二高电平信号与字节中除第一个比特位之外的一比特位对应;
第一控制模块502,用于在第一高电平信号的持续时间内,若检测到第二主机向串行数据线发送的数据为重复起始位或停止位的数据,且串行数据线的电平信号与第二主机所发送的数据匹配的情况下,则控制第一主机停止传输数据,并控制第二主机重新传输数据或者停止传输数据。
进一步地,该多主机仲裁装置500,还包括:
第二控制模块,用于在第一高电平信号的持续时间内,若检测到第二主机向串行数据线发送的数据为重复起始位或停止位,且串行数据线的电平信号与第一主机所发送的数据的电平信号匹配的情况下,则控制第一主机继续传输数据。
进一步地,第一高电平信号的持续时间为第二高电平信号的持续时间的两倍。
进一步地,第一主机包括字节计数器、比特位计数器和时钟信号发生器;生成模块501,包括:
获取单元,用于获取字节计数器和比特位计数器的计数结果;
确定单元,用于根据计数结果,确定第一主机所传输的数据中的字节的第一个比特位在第一主机的时钟信号上所对应的位置;
控制单元,用于控制时钟信号发生器在位置生成第一高电平信号。
本申请实施例中的多主机仲裁装置500可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的多主机仲裁装置500可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的多主机仲裁装置500能够实现图1至图4的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选的,如图6所示,本申请实施例还提供一种电子设备600,包括处理器601,存储器602,存储在存储器602上并可在处理器601上运行的程序或指令,该程序或指令被处理器601执行时实现上述多主机仲裁方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述的移动电子设备和非移动电子设备。
图7为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备700包括但不限于:射频单元701、网络模块702、音频输出单元703、输入单元704、传感器705、显示单元706、用户输入单元707、接口单元708、存储器709、以及处理器710等部件。
本领域技术人员可以理解,电子设备700还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器710逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图7中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器710,用于在第一主机使用总线的串行数据线进行数据传输的情况下,生成第一主机的第一时钟信号,第一时钟信号中的第一高电平信号的持续时间大于第二高电平信号的持续时间,第一高电平信号与第一主机所传输的数据中的字节的第一个比特位对应,第二高电平信号与字节中除第一个比特位之外的一比特位对应;
在第一高电平信号的持续时间内,若检测到第二主机向串行数据线发送的数据为重复起始位或停止位的数据,且串行数据线的电平信号与第二主机所发送的数据匹配的情况下,则控制第一主机停止传输数据,并控制第二主机重新传输数据或者停止传输数据。进一步地,处理器710,还用于在第一高电平信号的持续时间内,若检测到第二主机向串行数据线发送的数据为重复起始位或停止位,且串行数据线的电平信号与第一主机所发送的数据的电平信号匹配的情况下,则控制第一主机继续传输数据。
进一步地,第一高电平信号的持续时间为第二高电平信号的持续时间的两倍。
进一步地,第一主机包括字节计数器、比特位计数器和时钟信号发生器;
处理器710,还用于获取字节计数器和比特位计数器的计数结果;
根据计数结果,确定第一主机所传输的数据中的字节的第一个比特位在第一主机的时钟信号上所对应的位置;
控制时钟信号发生器在位置生成第一高电平信号。
电子设备700能够实现前述实施例中电子设备实现的各个过程,为避免重复,这里不再赘述。
本发明实施例的电子设备700,在第二主机向串行数据线发送重复起始位或停止位时,会发生在第一高电平信号的持续时间内,从而避免总线的串行数据线的电平跳变与串行时钟线的电平跳变同时出现的情况,降低总线的出错率。
应理解的是,本申请实施例中,输入单元704可以包括图形处理器(GraphicsProcessing Unit,GPU)7041和麦克风7042,图形处理器7041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元706可包括显示面板7061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板7061。用户输入单元707包括触控面板7071以及其他输入设备7072。触控面板7071,也称为触摸屏。触控面板7071可包括触摸检测装置和触摸控制器两个部分。其他输入设备7072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。存储器709可用于存储软件程序以及各种数据,包括但不限于应用程序和操作系统。处理器710可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器710中。
本申请实施例还提供一种可读存储介质,可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述多主机仲裁方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,处理器为上述实施例中的电子设备中的处理器。可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现上述多主机仲裁方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (10)
1.一种多主机仲裁方法,其特征在于,包括:
在第一主机使用总线的串行数据线进行数据传输的情况下,生成所述第一主机的第一时钟信号,所述第一时钟信号中的第一高电平信号的持续时间大于第二高电平信号的持续时间,所述第一高电平信号与所述第一主机所传输的数据中的字节的第一个比特位对应,所述第二高电平信号与所述字节中除所述第一个比特位之外的一比特位对应;
在所述第一高电平信号的持续时间内,若检测到第二主机向所述串行数据线发送的数据为重复起始位或停止位的数据,且所述串行数据线的电平信号与所述第二主机所发送的数据匹配的情况下,则控制所述第一主机停止传输数据,并控制所述第二主机重新传输数据或者停止传输数据。
2.根据权利要求1所述的方法,其特征在于,在第一主机使用总线的串行数据线进行数据传输的情况下,生成所述第一主机的第一时钟信号之后,还包括:
在所述第一高电平信号的持续时间内,若检测到所述第二主机向所述串行数据线发送的数据为重复起始位或停止位,且所述串行数据线的电平信号与所述第一主机所发送的数据的电平信号匹配的情况下,则控制所述第一主机继续传输数据。
3.根据权利要求1所述的方法,其特征在于,所述第一高电平信号的持续时间为第二高电平信号的持续时间的两倍。
4.根据权利要求1所述的方法,其特征在于,所述第一主机包括字节计数器、比特位计数器和时钟信号发生器;
所述生成所述第一主机的第一时钟信号,包括:
获取所述字节计数器和所述比特位计数器的计数结果;
根据所述计数结果,确定所述第一主机所传输的数据中的字节的第一个比特位在所述第一主机的时钟信号上所对应的位置;
控制所述时钟信号发生器在所述位置生成所述第一高电平信号。
5.一种多主机仲裁装置,其特征在于,包括:
生成模块,用于在第一主机使用总线的串行数据线进行数据传输的情况下,生成所述第一主机的第一时钟信号,所述第一时钟信号中的第一高电平信号的持续时间大于第二高电平信号的持续时间,所述第一高电平信号与所述第一主机所传输的数据中的字节的第一个比特位对应,所述第二高电平信号与所述字节中除所述第一个比特位之外的一比特位对应;
第一控制模块,用于在所述第一高电平信号的持续时间内,若检测到第二主机向所述串行数据线发送的数据为重复起始位或停止位的数据,且所述串行数据线的电平信号与所述第二主机所发送的数据匹配的情况下,则控制所述第一主机停止传输数据,并控制所述第二主机重新传输数据或者停止传输数据。
6.根据权利要求5所述的装置,其特征在于,还包括:
第二控制模块,用于在所述第一高电平信号的持续时间内,若检测到所述第二主机向所述串行数据线发送的数据为重复起始位或停止位,且所述串行数据线的电平信号与所述第一主机所发送的数据的电平信号匹配的情况下,则控制所述第一主机继续传输数据。
7.根据权利要求5所述的装置,其特征在于,所述第一高电平信号的持续时间为第二高电平信号的持续时间的两倍。
8.根据权利要求5所述的装置,其特征在于,所述第一主机包括字节计数器、比特位计数器和时钟信号发生器;所述生成模块,包括:
获取单元,用于获取所述字节计数器和所述比特位计数器的计数结果;
确定单元,用于根据所述计数结果,确定所述第一主机所传输的数据中的字节的第一个比特位在所述第一主机的时钟信号上所对应的位置;
控制单元,用于控制所述时钟信号发生器在所述位置生成所述第一高电平信号。
9.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-4任一项所述的多主机仲裁方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-4任一项所述的多主机仲裁方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110111278.6A CN112765082B (zh) | 2021-01-27 | 2021-01-27 | 多主机仲裁方法、装置和可读存储介质 |
PCT/CN2022/072956 WO2022161244A1 (zh) | 2021-01-27 | 2022-01-20 | 多主机仲裁方法、装置和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110111278.6A CN112765082B (zh) | 2021-01-27 | 2021-01-27 | 多主机仲裁方法、装置和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112765082A CN112765082A (zh) | 2021-05-07 |
CN112765082B true CN112765082B (zh) | 2024-04-26 |
Family
ID=75706085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110111278.6A Active CN112765082B (zh) | 2021-01-27 | 2021-01-27 | 多主机仲裁方法、装置和可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112765082B (zh) |
WO (1) | WO2022161244A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765082B (zh) * | 2021-01-27 | 2024-04-26 | 维沃移动通信有限公司 | 多主机仲裁方法、装置和可读存储介质 |
CN115396255A (zh) * | 2022-08-31 | 2022-11-25 | 哲库科技(北京)有限公司 | 电源控制方法、控制芯片、电源管理芯片和电子设备 |
CN117076373B (zh) * | 2023-10-16 | 2024-02-27 | 北京紫光芯能科技有限公司 | 一种通信方法、spi控制器及单片机 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0237839A2 (en) * | 1986-02-24 | 1987-09-23 | Chrysler Corporation | Serial data bus for intermodule data communications and method of data arbitration and collision detection on a data bus |
EP0246666A2 (en) * | 1986-05-22 | 1987-11-25 | Chrysler Corporation | Serial data bus for different modes of operation (SCI, SPI and buffered SPI) and methods for a serial peripheral interface in a serial data bus |
US5745708A (en) * | 1995-09-29 | 1998-04-28 | Allen-Bradley Company, Inc. | Method for and apparatus for operating a local communications module in arbitrating for mastership of a data transfer across a back plane bus in industrial automation controller |
JP2000138724A (ja) * | 1998-10-29 | 2000-05-16 | Nec Ic Microcomput Syst Ltd | シリアルデータ通信装置および通信方法 |
JP2008242884A (ja) * | 2007-03-28 | 2008-10-09 | Matsushita Electric Ind Co Ltd | I2cバス制御回路 |
CN103218331A (zh) * | 2012-12-07 | 2013-07-24 | 浙江大学 | 采用同步模式切换及帧优先级自动调整的总线装置及方法 |
CN103617138A (zh) * | 2013-12-16 | 2014-03-05 | 深圳市兴威帆电子技术有限公司 | 多主机仲裁方法及多主机通信系统 |
JP2014209284A (ja) * | 2013-04-16 | 2014-11-06 | 富士通セミコンダクター株式会社 | 調停回路、調停回路の制御方法、処理装置 |
TWI614609B (zh) * | 2016-11-24 | 2018-02-11 | 英業達股份有限公司 | 積體電路匯流排仲裁控制系統 |
CN109643298A (zh) * | 2016-08-02 | 2019-04-16 | 高通股份有限公司 | 用于同步链路的三倍数据率技术 |
CN111026691A (zh) * | 2019-12-11 | 2020-04-17 | 北京工业大学 | 基于apb总线的owi通讯设备 |
CN111427831A (zh) * | 2020-03-27 | 2020-07-17 | 电子科技大学 | 一种基于电源管理总线协议的接口实现方法 |
CN111881076A (zh) * | 2020-06-29 | 2020-11-03 | 苏州浪潮智能科技有限公司 | 一种国产cpu和bbu通信的i2c总线挂死修复方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5878234A (en) * | 1996-09-10 | 1999-03-02 | Sierra Wireless, Inc. | Low power serial protocol translator for use in multi-circuit board electronic systems |
US6175887B1 (en) * | 1998-10-21 | 2001-01-16 | Sun Microsystems, Inc. | Deterministic arbitration of a serial bus using arbitration addresses |
JP2005128747A (ja) * | 2003-10-23 | 2005-05-19 | Fujitsu Ltd | シリアル転送バス用の送受信マクロを有する集積回路装置 |
US10019306B2 (en) * | 2016-04-27 | 2018-07-10 | Western Digital Technologies, Inc. | Collision detection for slave storage devices |
CN112765082B (zh) * | 2021-01-27 | 2024-04-26 | 维沃移动通信有限公司 | 多主机仲裁方法、装置和可读存储介质 |
-
2021
- 2021-01-27 CN CN202110111278.6A patent/CN112765082B/zh active Active
-
2022
- 2022-01-20 WO PCT/CN2022/072956 patent/WO2022161244A1/zh active Application Filing
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0237839A2 (en) * | 1986-02-24 | 1987-09-23 | Chrysler Corporation | Serial data bus for intermodule data communications and method of data arbitration and collision detection on a data bus |
EP0246666A2 (en) * | 1986-05-22 | 1987-11-25 | Chrysler Corporation | Serial data bus for different modes of operation (SCI, SPI and buffered SPI) and methods for a serial peripheral interface in a serial data bus |
US5745708A (en) * | 1995-09-29 | 1998-04-28 | Allen-Bradley Company, Inc. | Method for and apparatus for operating a local communications module in arbitrating for mastership of a data transfer across a back plane bus in industrial automation controller |
JP2000138724A (ja) * | 1998-10-29 | 2000-05-16 | Nec Ic Microcomput Syst Ltd | シリアルデータ通信装置および通信方法 |
JP2008242884A (ja) * | 2007-03-28 | 2008-10-09 | Matsushita Electric Ind Co Ltd | I2cバス制御回路 |
CN103218331A (zh) * | 2012-12-07 | 2013-07-24 | 浙江大学 | 采用同步模式切换及帧优先级自动调整的总线装置及方法 |
JP2014209284A (ja) * | 2013-04-16 | 2014-11-06 | 富士通セミコンダクター株式会社 | 調停回路、調停回路の制御方法、処理装置 |
CN103617138A (zh) * | 2013-12-16 | 2014-03-05 | 深圳市兴威帆电子技术有限公司 | 多主机仲裁方法及多主机通信系统 |
CN109643298A (zh) * | 2016-08-02 | 2019-04-16 | 高通股份有限公司 | 用于同步链路的三倍数据率技术 |
TWI614609B (zh) * | 2016-11-24 | 2018-02-11 | 英業達股份有限公司 | 積體電路匯流排仲裁控制系統 |
CN111026691A (zh) * | 2019-12-11 | 2020-04-17 | 北京工业大学 | 基于apb总线的owi通讯设备 |
CN111427831A (zh) * | 2020-03-27 | 2020-07-17 | 电子科技大学 | 一种基于电源管理总线协议的接口实现方法 |
CN111881076A (zh) * | 2020-06-29 | 2020-11-03 | 苏州浪潮智能科技有限公司 | 一种国产cpu和bbu通信的i2c总线挂死修复方法及装置 |
Non-Patent Citations (3)
Title |
---|
I~2C总线接口逻辑分析;阮园;李静;;电子与封装(08);全文 * |
基于FPGA 的I2C 和SSPI 总线配置系统的设 计与实现;江青骏;硕士电子期刊(第2期);全文 * |
基于I~2C总线技术的多处理器系统设计;史文奎;赵敏;孙棣华;;自动化技术与应用(08);全文 * |
Also Published As
Publication number | Publication date |
---|---|
WO2022161244A1 (zh) | 2022-08-04 |
CN112765082A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112765082B (zh) | 多主机仲裁方法、装置和可读存储介质 | |
US11010327B2 (en) | I3C point to point | |
JP6517243B2 (ja) | リンクレイヤ/物理レイヤ(phy)シリアルインターフェース | |
US7562172B2 (en) | I2C Slave/master interface enhancement using state machines | |
US20080195764A1 (en) | Programming Parallel 12C Slave Devices from a Single 12C Data Stream | |
KR20160107247A (ko) | 대역-내 인터럽트를 이용한 카메라 제어 인터페이스 확장 | |
US20180329837A1 (en) | Input/output direction decoding in mixed vgpio state exchange | |
CN112639755A (zh) | 从机到从机直接通信 | |
US8386908B2 (en) | Data transmission methods and universal serial bus host controllers utilizing the same | |
US10417172B2 (en) | Sensors global bus | |
US10496562B1 (en) | Low latency virtual general purpose input/output over I3C | |
US20190356412A1 (en) | Fast termination of multilane double data rate transactions | |
US20190213165A1 (en) | Priority scheme for fast arbitration procedures | |
US7761637B2 (en) | Slave device with latched request for service | |
EP3036647B1 (en) | Method to minimize the number of irq lines from peripherals to one wire | |
US20190018818A1 (en) | Accelerated i3c stop initiated by a third party | |
KR101861453B1 (ko) | CCIe 버스를 통한 슬레이브 식별자 스캔 및 핫 플러그 능력 | |
US20170371830A1 (en) | Accelerated i3c master stop | |
CN111475432A (zh) | 一种从机启动控制装置、单总线系统及其控制方法 | |
CN105068962A (zh) | I2c控制器访问方法及系统 | |
CN110008071B (zh) | 一种远程调试装置及方法 | |
US11023408B2 (en) | I3C single data rate write flow control | |
US20200065274A1 (en) | Always-on ibi handling | |
US11847089B2 (en) | Electronic device and method for sharing data lanes of a network interface device between two or more computing devices | |
US11360916B2 (en) | Group slave identifier time-multiplexed acknowledgment for system power management interface |
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 |