CN103617138A - 多主机仲裁方法及多主机通信*** - Google Patents
多主机仲裁方法及多主机通信*** Download PDFInfo
- Publication number
- CN103617138A CN103617138A CN201310690547.4A CN201310690547A CN103617138A CN 103617138 A CN103617138 A CN 103617138A CN 201310690547 A CN201310690547 A CN 201310690547A CN 103617138 A CN103617138 A CN 103617138A
- Authority
- CN
- China
- Prior art keywords
- main frame
- data line
- handshake
- line
- timeslice
- 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
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种多主机仲裁方法及多主机通信***,该方法包括如下步骤:若主机需要占用数据线时,主机检测握手信号线是否处于高电平;若握手信号线处于低电平,主机则等待;若握手信号线处于高电平,主机则通过握手信号端将握手信号线置于低电平,并随即开始检测数据线是否存在数据传输的启动信号;若在对应的时间片内检测到启动信号,则主机退出占用数据线的竞争,若在对应的时间片内检测不到启动信号,则主机占用数据线。本发明使得不具有I2C总线的主机之间可以实现I2C总线功能,并且也实现了较高优先级的主机更优先占用I2C总线。
Description
【技术领域】
本发明涉及通信领域,尤其涉及多主机仲裁方法及多主机通信***。
【背景技术】
I2C(Inter-Integrated Circuit)总线由PHLIPS公司开发的两线式总线,由串行数据线SDA和串行时钟线SCL构成,主机可以通过I2C与带有I2C接口的器件通过I2C总线进行数据的收发,传输速率在标准模式下可达100kbps,在快速模式下可达400kbps,I2C可以通过冲突检测和数据仲裁的方式防止数据被破坏,是一个真正的多主机总线,它允许多个主机进行通信,I2C总线的仲裁包括SCL(串行时钟线)同步和SDA(串行数据线)仲裁:
1同步
所有主机在SCL线上产生自己的时钟来传输I2C总线上的报文,数据只在时钟的高电平周期有效。所有主机在SCL线上表现出的是一个线与的逻辑,因此,SCL线被最长低电平周期的器件保持低电平,此时,低电平周期短的器件进入高电平等待状态,产生的同步SCL时钟的低电平周期由低电平时钟周期最长的器件决定,而高电平周期由高电平时钟周期最短的器件决定。
1仲裁
SDA线的仲裁也是建立在总线具有线“与”逻辑功能的原理上的。节点在发送1位数据后,比较总线上所呈现的数据与自己发送的是否一致。是,继续发送;否则,退出竞争。这样,在其他主机发送低电平时,发送的高电平的主机将断开它的数据输出,仲裁可以持续多位比较。
而在嵌入式应用中,很多主机一般为MCU,而很多MCU并不带有I2C总线接口,因此在多主机、主机和从机之间,不能实现可靠的通信。
【发明内容】
为了克服现有技术的不足,本发明提供了一种多主机仲裁方法,从而使得普通的不具有I2C总线的主机,可以模拟I2C总线,实现快速可靠的仲裁。本发明还提供了一种多主机通信***,使得通信***可以模拟I2C总线,实现快速可靠的仲裁,从而完成通信。
一种多主机仲裁方法,每个主机的数据线接口分别与数据线连接,每个主机的握手信号端分别与握手信号线连接;不同时长的时间片被分配给每个主机;
所述多主机仲裁方法包括如下步骤:
若主机需要占用数据线时,主机检测所述握手信号线是否处于高电平;
若所述握手信号线处于低电平,所述主机则等待;
若所述握手信号线处于高电平,所述主机则通过握手信号端将所述握手信号线置于低电平,并随即开始检测所述数据线是否存在数据传输的启动信号;
若在对应的时间片内检测到启动信号,则所述主机退出占用所述数据线的竞争,
若在对应的时间片内检测不到启动信号,则所述主机占用所述数据线。
在一个实施例中,当所述主机占用并使用完所述数据线,所述主机将所述握手信号线置于高电平。
在一个实施例中,根据每个主机的优先级别分配不同时长的时间片,优先级较低的主机分配较短的时间片,优先级较高的主机分配较长的时间片。
在一个实施例中,所述主机通过如下方法检测所述数据线是否存在数据传输的启动信号:
若前一个时刻所述主机检测到所述数据线处于高电平,而后一个时刻所述数据线处于低电平,则所述主机判断所述数据线存在启动信号。
本发明还提供了一种多主机通信***,包括数据线、握手信号线、时钟信号线、多个主机以及至少一个从机,每个主机的数据线接口分别与数据线连接,其特征是:每个主机的握手信号端分别与握手信号线连接,每个主机的时钟信号端分别与所述时钟信号线连接;所述从机的I2C总线的串行数据线和串行时钟线分别与所述数据线和时钟信号线连接;
不同时长的时间片被分配给每个主机;
若主机需要占用数据线时,主机检测所述握手信号线是否处于高电平,
若所述握手信号线处于低电平,所述主机则等待,
若所述握手信号线处于高电平,所述主机则通过握手信号端将所述握手信号线置于低电平,并随即开始检测所述数据线是否存在数据传输的启动信号,
若在对应的时间片内检测到启动信号,则所述主机退出占用所述数据线的竞争,
若在对应的时间片内检测不到启动信号,则所述主机占用所述数据线。
在一个实施例中,当所述主机占用并使用完所述数据线,所述主机将所述握手信号线置于高电平。
在一个实施例中,根据每个主机的优先级别分配不同时长的时间片,优先级较低的主机分配较短的时间片,优先级较高的主机分配较长的时间片。
在一个实施例中,所述主机通过如下方法检测所述数据线是否存在数据传输的启动信号:
若前一个时刻所述主机检测到所述数据线处于高电平,而后一个时刻所述数据线处于低电平,则所述主机判断所述数据线存在启动信号。
本发明的有益效果是:通过采用上述技术方案,使得在很多嵌入式***中不具有I2C总线的主机之间可以实现I2C总线功能,从而,具有I2C总线的从机可以直接连接到数据线进行接收数据;根据不同的优先级将不同的长度的时间片分配给不同的主机,从而也实现了较高优先级的主机更优先占用I2C总线。
【附图说明】
图1是本发明一种实施例的多主机通信***的***示意图;
图2是本发明一种实施例的多主机仲裁方法的时序图;
图3是本发明一种实施例的。
【具体实施方式】
以下将结合附图,对本发明的具体实施例作进一步详细说明。
如图1所示,一种多主机通信***,包括第一主机、第二主机、从机、数据线SDA、握手信号线busy和时钟信号线SCL,其中,第一主机和第二主机均没有I2C总线,例如采用微控制器(MCU)STC12C5A60S2,其是宏晶公司的一款8位单片机;而从机具有I2C总线,例如采用SD2405API,其是兴威帆公司的实时时钟,带有标准的I2C接口。
第一主机的数据线接口SDA1和第二主机的数据线接口SDA2分别与数据线SDA连接,第一主机的握手信号端busy1和第二主机的握手信号端busy2分别与握手信号线busy连接,第一主机的时钟信号端SCL1和第二主机的时钟信号端SCL2分别与时钟信号线SCL连接;从机的I2C总线的串行数据线SDA3和串行时钟线SCL3分别与数据线SDA和时钟信号线SCL连接;第一主机的握手信号端busy1、数据线接口SDA1和时钟信号端SCL1均采用普通的I/O口,同样第一主机的握手信号端busy2、数据线接口SDA2和时钟信号端SCL2也是普通的I/O口。例如,第一主机的P2^0作为SCL1,P2^1作为SDA1,P2^2作为busy2,使用第二主机的P2^0作为SCL2,P2^1作为SDA2,P2^2作为busy2。
假定第一主机的优先级高于第二主机的优先级,因此给第一主机分配时间片t1,而给第二主机分配时间片(t1+t2)。例如t1可以为20us,(t1+t2)为40us。
当两个主机均没有占用或需要占用数据线SDA时,握手信号线busy处于高电平状态(即busy处于闲状态),数据线SDA也处于高电平状态,时钟信号线也处于高电平状态;当数据线SDA被某个主机占用时,握手信号线busy处于低电平,即忙状态。
若第一主机需要占用数据线SDA(在I2C总线中,当某个主机占用数据线SDA时,也需要同时向时钟信号线发送时钟信号),第一主机检测握手信号线busy是否处于高电平:
若握手信号线busy处于低电平,则说明此时数据线SDA被第二主机占用着,因此第一主机继续等待握手信号线busy变为闲状态;
若握手信号线busy处于高电平,则说明此时数据线SDA尚未被第二主机占用着,因此此时第一主机将握手信号端busy1置为低电平,由于握手信号端busy1和握手信号端busy2是线与连接关系,因此,握手信号线busy变为低电平,此时第一主机随即开始检测数据线SDA是否存在数据传输的启动信号;由于在第一主机检测到握手信号线busy处于高电平的状态的时候,很有可能第二主机也正想要占用SDA,并且同时检测到握手信号线busy处于高电平,并且同时第二主机也通过握手信号端busy2将握手信号线busy置于低电平,并随即开始检测数据线SDA是否存在数据传输的启动信号,因此,第一主机和第二主机同时开始数据线SDA是否存在数据传输的启动信号。
由于第一主机的优先级较高,在对应的时间片t1内,都检测到数据线SDA是高电平,即没有检测到数据传输的启动信号,因此,在时间片t1结束的时刻,第一主机随即通过数据线接口SDA1占用数据线SDA,数据线SDA随即出现启动信号;而由于第二主机的优先级较低,当过去时间片t1时长后,其仍然继续在检测数据线SDA是否出现启动信号,因此,第二主机将检测到该启动信号,即在时间片t1阶段检测到数据线SDA处于高电平,然后在时间片t1的时刻后检测到SDA低电平,因此,第二主机退出占用数据线SDA的竞争,并将握手信号端busy2置于高电平,但是,由于此时第一主机的握手信号端busy1还处于低电平,握手信号线busy仍处于低电平,其余的主机(若还有其他主机)检测到握手信号线busy处于低电平后,仍然会处于等待状态。
在第一主机发出启动信号之后(同时第一主机通过时钟信号端SCL1向时钟信号线发送时钟信号),具有I2C总线的从机检测到该启动信号,通过数据线接口SDA3开始接收从第一主机发送到数据线SDA上的数据。
当第一主机占用I2C总线(数据线SDA和时钟信号线SCL)完成后,置SDA1和SCL1为高电平,置握手信号端busy1为高电平,由于此时第二主机的握手信号端busy2也是高电平,因此握手信号线变busy为高电平,即重新回到闲状态;同时也将时钟信号线SCL拉回高电平。
主机的数量可以是任意多个,其与数据线SDA、握手信号线和时钟信号线的连接方式与上述的第一主机的相同。而具有I2C总线的从机也可以有多个,其与数据线SDA和时钟信号线的连接方式也与上述从机相同。
Claims (8)
1.一种多主机仲裁方法,其特征是:每个主机的数据线接口分别与数据线连接,每个主机的握手信号端分别与握手信号线连接;不同时长的时间片被分配给每个主机;
所述多主机仲裁方法包括如下步骤:
若主机需要占用数据线时,主机检测所述握手信号线是否处于高电平;
若所述握手信号线处于低电平,所述主机则等待;
若所述握手信号线处于高电平,所述主机则通过握手信号端将所述握手信号线置于低电平,并随即开始检测所述数据线是否存在数据传输的启动信号;
若在对应的时间片内检测到启动信号,则所述主机退出占用所述数据线的竞争,
若在对应的时间片内检测不到启动信号,则所述主机占用所述数据线。
2.如权利要求1所述的多主机仲裁方法,其特征是:当所述主机占用并使用完所述数据线,所述主机将所述握手信号线置于高电平。
3.如权利要求1所述的多主机仲裁方法,其特征是:根据每个主机的优先级别分配不同时长的时间片,优先级较低的主机分配较短的时间片,优先级较高的主机分配较长的时间片。
4.如权利要求1所述的多主机仲裁方法,其特征是,所述主机通过如下方法检测所述数据线是否存在数据传输的启动信号:
若前一个时刻所述主机检测到所述数据线处于高电平,而后一个时刻所述数据线处于低电平,则所述主机判断所述数据线存在启动信号。
5.一种多主机通信***,包括数据线、握手信号线、时钟信号线、多个主机以及至少一个从机,每个主机的数据线接口分别与数据线连接,其特征是:每个主机的握手信号端分别与握手信号线连接,每个主机的时钟信号端分别与所述时钟信号线连接;所述从机的I2C总线的串行数据线和串行时钟线分别与所述数据线和时钟信号线连接;
不同时长的时间片被分配给每个主机;
若主机需要占用数据线时,主机检测所述握手信号线是否处于高电平,
若所述握手信号线处于低电平,所述主机则等待,
若所述握手信号线处于高电平,所述主机则通过握手信号端将所述握手信号线置于低电平,并随即开始检测所述数据线是否存在数据传输的启动信号,
若在对应的时间片内检测到启动信号,则所述主机退出占用所述数据线的竞争,
若在对应的时间片内检测不到启动信号,则所述主机占用所述数据线。
6.如权利要求5所述的多主机通信***,其特征是:当所述主机占用并使用完所述数据线,所述主机将所述握手信号线置于高电平。
7.如权利要求5所述的多主机通信***,其特征是:根据每个主机的优先级别分配不同时长的时间片,优先级较低的主机分配较短的时间片,优先级较高的主机分配较长的时间片。
8.如权利要求5所述的多主机通信***,其特征是,所述主机通过如下方法检测所述数据线是否存在数据传输的启动信号:
若前一个时刻所述主机检测到所述数据线处于高电平,而后一个时刻所述数据线处于低电平,则所述主机判断所述数据线存在启动信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310690547.4A CN103617138A (zh) | 2013-12-16 | 2013-12-16 | 多主机仲裁方法及多主机通信*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310690547.4A CN103617138A (zh) | 2013-12-16 | 2013-12-16 | 多主机仲裁方法及多主机通信*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103617138A true CN103617138A (zh) | 2014-03-05 |
Family
ID=50167841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310690547.4A Pending CN103617138A (zh) | 2013-12-16 | 2013-12-16 | 多主机仲裁方法及多主机通信*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103617138A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408000A (zh) * | 2014-12-05 | 2015-03-11 | 浪潮集团有限公司 | 一种避免飞腾服务器上bios与bmc读取健康信息冲突的方法 |
CN106953787A (zh) * | 2017-03-28 | 2017-07-14 | 华南理工大学 | 一种基于电平迁移的电池管理***多主机通信方法及装置 |
CN108280041A (zh) * | 2017-12-29 | 2018-07-13 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 一种内部集成电路主机的通信方法和装置 |
CN108521854A (zh) * | 2017-05-17 | 2018-09-11 | 深圳市大疆创新科技有限公司 | 通信控制方法、通信主设备和通信*** |
CN108920401A (zh) * | 2018-06-04 | 2018-11-30 | 深圳柴火创客教育服务有限公司 | 多主多从的i2c通信方法、***及节点设备 |
CN109634532A (zh) * | 2018-12-19 | 2019-04-16 | 湖南源科创新科技有限公司 | 多VxWorks主机共享访问存储介质的方法 |
CN110780589A (zh) * | 2019-11-08 | 2020-02-11 | 航天柏克(广东)科技有限公司 | 一种主机的竞争产生方法 |
CN110850770A (zh) * | 2019-11-08 | 2020-02-28 | 航天柏克(广东)科技有限公司 | 一种多主机的快速判断和退出方法 |
CN111444124A (zh) * | 2020-03-25 | 2020-07-24 | 苏州琅润达检测科技有限公司 | 一种高频自主请求的串口分流装置 |
CN112069114A (zh) * | 2020-09-07 | 2020-12-11 | 北京同有飞骥科技股份有限公司 | I2c仲裁方法及装置 |
CN112765082A (zh) * | 2021-01-27 | 2021-05-07 | 维沃移动通信有限公司 | 多主机仲裁方法、装置和可读存储介质 |
CN116566761A (zh) * | 2023-03-28 | 2023-08-08 | 成都电科星拓科技有限公司 | Spi双主机共享仲裁***及方法 |
CN117076373A (zh) * | 2023-10-16 | 2023-11-17 | 北京紫光芯能科技有限公司 | 一种通信方法、spi控制器及单片机 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0759593A2 (en) * | 1995-08-22 | 1997-02-26 | Mats Iderup | Interface device between a RS232 port and an I2C bus and method using the same |
US20030212847A1 (en) * | 2002-05-09 | 2003-11-13 | International Business Machines Corporation | Apparatus for supporting I2C bus masters on a secondary side of an I2C multiplexor |
CN1821913A (zh) * | 2006-01-26 | 2006-08-23 | 中控科技集团有限公司 | 基于i2c的通信***及通信方法 |
CN202018576U (zh) * | 2011-04-19 | 2011-10-26 | 杭州华光电气有限公司 | 单片机通信模块 |
-
2013
- 2013-12-16 CN CN201310690547.4A patent/CN103617138A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0759593A2 (en) * | 1995-08-22 | 1997-02-26 | Mats Iderup | Interface device between a RS232 port and an I2C bus and method using the same |
US20030212847A1 (en) * | 2002-05-09 | 2003-11-13 | International Business Machines Corporation | Apparatus for supporting I2C bus masters on a secondary side of an I2C multiplexor |
CN1821913A (zh) * | 2006-01-26 | 2006-08-23 | 中控科技集团有限公司 | 基于i2c的通信***及通信方法 |
CN202018576U (zh) * | 2011-04-19 | 2011-10-26 | 杭州华光电气有限公司 | 单片机通信模块 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408000A (zh) * | 2014-12-05 | 2015-03-11 | 浪潮集团有限公司 | 一种避免飞腾服务器上bios与bmc读取健康信息冲突的方法 |
CN106953787A (zh) * | 2017-03-28 | 2017-07-14 | 华南理工大学 | 一种基于电平迁移的电池管理***多主机通信方法及装置 |
CN106953787B (zh) * | 2017-03-28 | 2022-09-20 | 华南理工大学 | 一种基于电平迁移的电池管理***多主机通信方法及装置 |
CN108521854A (zh) * | 2017-05-17 | 2018-09-11 | 深圳市大疆创新科技有限公司 | 通信控制方法、通信主设备和通信*** |
CN108280041B (zh) * | 2017-12-29 | 2020-03-10 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 一种内部集成电路主机的通信方法和装置 |
CN108280041A (zh) * | 2017-12-29 | 2018-07-13 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 一种内部集成电路主机的通信方法和装置 |
CN108920401A (zh) * | 2018-06-04 | 2018-11-30 | 深圳柴火创客教育服务有限公司 | 多主多从的i2c通信方法、***及节点设备 |
CN108920401B (zh) * | 2018-06-04 | 2020-07-28 | 深圳柴火创客教育服务有限公司 | 多主多从的i2c通信方法、***及节点设备 |
CN109634532A (zh) * | 2018-12-19 | 2019-04-16 | 湖南源科创新科技有限公司 | 多VxWorks主机共享访问存储介质的方法 |
CN110850770A (zh) * | 2019-11-08 | 2020-02-28 | 航天柏克(广东)科技有限公司 | 一种多主机的快速判断和退出方法 |
CN110850770B (zh) * | 2019-11-08 | 2021-05-11 | 航天柏克(广东)科技有限公司 | 一种多主机的快速判断和退出方法 |
CN110780589A (zh) * | 2019-11-08 | 2020-02-11 | 航天柏克(广东)科技有限公司 | 一种主机的竞争产生方法 |
CN111444124A (zh) * | 2020-03-25 | 2020-07-24 | 苏州琅润达检测科技有限公司 | 一种高频自主请求的串口分流装置 |
CN112069114A (zh) * | 2020-09-07 | 2020-12-11 | 北京同有飞骥科技股份有限公司 | I2c仲裁方法及装置 |
CN112765082A (zh) * | 2021-01-27 | 2021-05-07 | 维沃移动通信有限公司 | 多主机仲裁方法、装置和可读存储介质 |
CN112765082B (zh) * | 2021-01-27 | 2024-04-26 | 维沃移动通信有限公司 | 多主机仲裁方法、装置和可读存储介质 |
CN116566761A (zh) * | 2023-03-28 | 2023-08-08 | 成都电科星拓科技有限公司 | Spi双主机共享仲裁***及方法 |
CN116566761B (zh) * | 2023-03-28 | 2024-02-02 | 成都电科星拓科技有限公司 | Spi双主机共享仲裁***及方法 |
CN117076373A (zh) * | 2023-10-16 | 2023-11-17 | 北京紫光芯能科技有限公司 | 一种通信方法、spi控制器及单片机 |
CN117076373B (zh) * | 2023-10-16 | 2024-02-27 | 北京紫光芯能科技有限公司 | 一种通信方法、spi控制器及单片机 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103617138A (zh) | 多主机仲裁方法及多主机通信*** | |
TWI733752B (zh) | 用於旁波帶通訊之系統及方法、以及實體非暫時性計算機可讀媒體 | |
CN105677608B (zh) | 一种多主rs485总线仲裁方法及*** | |
CN101788972A (zh) | 一种数据传输的***与方法 | |
CN211427190U (zh) | 一种基于飞腾处理器2000+的服务器电路和主板 | |
CN101312302A (zh) | 一种不间断电源并机信号的传输方法 | |
CN102664918B (zh) | 刀片服务器控制方法及控制台 | |
CN105159860A (zh) | Iic扩展***及方法 | |
JP2021531569A (ja) | ディスプレイポートオルタネートモード通信の検出 | |
CN102073611B (zh) | 一种i2c总线控制***及方法 | |
CN106569416B (zh) | 一种微控制器的串行接口与仿真调试接口复用方法及装置 | |
CN104199795A (zh) | 一种总线架构 | |
CN102722462A (zh) | 一种同步通信装置及其控制方法 | |
CN101937413B (zh) | 一种i2c总线的通信方法 | |
US7353300B2 (en) | Apparatus to improve the firmware efficiency for a multiframe serial interface | |
CN109062850B (zh) | 一种单片机的数据发送和接收方法 | |
CN108920401B (zh) | 多主多从的i2c通信方法、***及节点设备 | |
CN103077139B (zh) | 使用内部集成电路总线的集成电路及其控制方法 | |
CN103412835B (zh) | 一种群同步串行总线方法及*** | |
JP2016532967A5 (zh) | ||
CN204256732U (zh) | 基于PCI-Express接口的高速数据传输装置 | |
CN108345564B (zh) | 中断矩阵模块、芯片及电子设备 | |
CN103885910B (zh) | 多设备在主模式下进行iic通信的方法 | |
Chhikara et al. | Implementing communication bridge between I2C and APB | |
CN102929828B (zh) | 同时支持标准和非标准i2c接口的数据传输方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140305 |