CN106874228A - 基于i2c总线的控制器及通信方法、多控制器间的通信方法 - Google Patents
基于i2c总线的控制器及通信方法、多控制器间的通信方法 Download PDFInfo
- Publication number
- CN106874228A CN106874228A CN201710051177.8A CN201710051177A CN106874228A CN 106874228 A CN106874228 A CN 106874228A CN 201710051177 A CN201710051177 A CN 201710051177A CN 106874228 A CN106874228 A CN 106874228A
- Authority
- CN
- China
- Prior art keywords
- controller
- mode
- buses
- slave
- 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.)
- Pending
Links
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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
-
- 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)
- Small-Scale Networks (AREA)
Abstract
本发明涉及一种基于I2C总线的控制器及通信方法、多控制器间的通信方法,其中单控制器的通信方法包括:在主机模式下,占用I2C总线的控制权;在占用完成后,向总线发出主从转换的控制命令,该控制命令包含待转换的从机地址和设定标识信息;之后释放I2C总线控制权,由主机模式转为从机模式;在从机模式下,实时监听I2C总线上的允许本控制器转为主机模式的主从转换的控制命令,若收到则由从机模式转为主机模式。本发明通过主从转换的控制命令来确定各个控制器成为主控制器的逻辑顺序,避免了各个主控制器占据I2C总线控制权的竞争,提高了通信的可靠性。
Description
技术领域
本发明涉及基于I2C总线的控制器及通信方法、多控制器间的通信方法,属于总线通信控制技术领域。
背景技术
I2C总线协议是由飞利浦公司于20世纪80年代开发的一种“电路板级”的双线式总线结构,被广泛应用于电路板间芯片的通信,速率可设定为100kb/s、400kb/s以及3.4Mb/s。
常见的多主机多从机的I2C总线系统结构如图1所示,在此系统中,主控制器A和主控制器B通过“总线仲裁”的方式抢夺总线的控制权,分时对从属器件进行读写,控制器通过“器件地址”实现对不同从属器件的读写。
为了实现两个主控制器之间的直接通信,可以额外建立两线或更多的物理连接,借以串口或其他总线通信协议完成通信,如图2所示。在这种情况下,每个主控制器都必须额外提供通信接口互连,对一些空间和硬件资源有限的板卡的布局造成了不利。
发明内容
本发明的目的是提供一种基于I2C总线的控制器及通信方法、多控制器间的通信方法,用于解决不同控制器之间依赖硬件来实现通信,造成通信可靠性较差的问题。
为解决上述技术问题,本发明提供了一种基于I2C总线的控制器,该控制器工作于主机模式或者从机模式:
主机模式下:占用I2C总线的控制权;在占用完成后,向总线发出主从转换的控制命令,该控制命令包含待转换的从机地址和设定标识信息;之后释放I2C总线控制权,由主机模式转为从机模式;
从机模式下:实时监听I2C总线上的允许本控制器转为主机模式的主从转换的控制命令,若收到则由从机模式转为主机模式。
本发明还提供了一种基于I2C总线的控制器的通信方法,包括:
在主机模式下,占用I2C总线的控制权;在占用完成后,向总线发出主从转换的控制命令,该控制命令包含待转换的从机地址和设定标识信息;之后释放I2C总线控制权,由主机模式转为从机模式;
在从机模式下,实时监听I2C总线上的允许本控制器转为主机模式的主从转换的控制命令,若收到则由从机模式转为主机模式。
本发明还提供了一种基于I2C总线的多控制器间的通信方法,包括:
任一时刻,多控制器处于一主机、多从机的控制模式,由主机占用总线;
主机对I2C总线的占用完成后,向其中一个从机写入主从转换的控制命令;之后该主机转入从机模式,该从机转入主机模式。
本发明的有益效果是:
对于I2C总线上的单控制器,当处于主机模式下时,通过I2C总线与其他处于从机模式下的控制器进行通信;在通信完成后,向下一个处于从机模式下的控制器发送主从转换的控制命令,之后由主机模式转为从机模式;当处于在从机模式下时,实时监听I2C总线上的允许本控制器转为主机模式的主从转换的控制命令,若收到该控制命令,由从机模式转为主机模式。
对于I2C总线上的多个控制器,处于主机模式下的控制器占据I2C总线的控制权,通过I2C总线与其他控制器进行通信,在通信完成后,向下一个处于从机模式下的控制器发送主从转换的控制命令,之后由主机模式转为从机模式;处于从机模式下的控制器实时监听处于主机模式下的控制器发送的允许本控制器转为主机模式的主从转换的控制命令,若收到该控制命令,由从机模式转为主机模式;通过每个控制器接收允许本控制器转为主机模式以及发送允许下一个控制器转为主机模式的主从转换的控制命令,实现每个控制器在主机模式和从机模式两种工作模式下的切换,最终实现多个控制器之间的通信,由于系统任意时刻都工作在单主机多从机的工作模式下,不需要额外增加硬件,即可实现多控制器之间的通信,提高了通信的可靠性。
附图说明
图1是多主机多从机的I2C总线系统结构;
图2是借助他总线通信协议完成多主机之间通信的系统结构图;
图3是本实施例中I2C总线系统结构。
具体实施方式
下面结合附图以及具体的实施例对本发明进行详细说明。
对于I2C总线上的单个控制器,共有两种工作模式,即主机模式和从机模式。在两种不同的工作模式下,单个控制器的通信方法如下:
在主机模式下:该控制器占用I2C总线的控制权,通过I2C总线与其他处于从机模式下的控制器进行通信;在占用完成后,向总线发出主从转换的控制命令即向下一个处于从机模式下的控制器发送允许其转为主机模式的控制命令,之后释放I2C总线的控制权,由主机模式转为从机模式。
在从机模式下:该控制器实时监听I2C总线上的允许本控制器转为主机模式的主从转换的控制命令,若收到该控制命令,则由从机模式转为主机模式。
其中,在主机模式下,本控制器向总线发出的主从转换的控制命令包括待转换的从机地址和设定标识信息;在从机模式下,I2C总线上的允许本控制器转为主机模式的主从转换的控制命令包括本控制器的地址和设定标识信息。
单个控制器通过在主机模式和从机模式两种工作模式下的切换,实现与I2C总线上其他控制器的通信。在单个控制器通讯方法的基础上,I2C总线上的多控制器的通信方法如下:
任一时刻,多控制器处于一主机、多从机的控制模式,由主机占用总线;
主机对I2C总线的占用完成后,向其中一个从机写入主从转换的控制命令;之后该主机转入从机控制模式,该从机转入主机控制模式。
如图3所示的系统结构,整个系统初次启动时,其中一个控制器以主机模式启动,其他控制器均以从机模式启动。例如,设定控制器A以主机模式启动,占有I2C总线的控制权,其余控制器B和C均以从机模式启动,处于从机模式。此时,系统实际工作在一个主机多个从机的模式下。其中,各个控制器均有各自独立的地址。由于主控制器A独自占用I2C总线的控制权,不单可以利用I2C总线与从属器件1和2通信,还能够与处于从机模式的控制器B和C通信,实现控制器之间的信息传递。由于主控制器与处于从机模式下的控制器以及从属器件进行通信的具体方式属于现有技术,此处不再赘述。
当主控制器A对I2C总线占用完成后,即已完成其所需的数据读写后,主控制器A向总线发出主从转换的控制命令,其中,该控制命令包含待转换的从机地址和设定标识信息。具体的,主控制器A确定下一个待转换的从控制器的方法可以是:主控制器A存储有所有处于从机模式下的控制器的地址,从所有从控制器中随意选取一个作为待转换的从控制器。当然,主控制器A确定下一个待转换的从控制器的方法并不固定,也可以是在主控制器A的地址的基础上,采用某种算法来确定下一个待转换的从控制器。例如,在遵循I2C标准协议数据发送方式的前提下,主控制器A确定将控制器B作为下一个待转换的从控制器,此时主控制器A先向控制器B发送控制器B的地址,再发送设定标识信息‘F’、‘O’和‘R’。当然,主控制器A向控制器B发送的设定标识信息的字符的数目以及字符的具体内容可以由用户进行设定。此后,主控制器A交出I2C总线控制权,转入从机模式,而接收到该控制命令的控制器B则转入主机模式,取得I2C总线的控制权,占用I2C总线,使用I2C接口实现预先设定的功能完成下一步工作。待控制器B使用完总线后,亦需额外发送一个主从转换的控制命令即总线转移命令,将I2C总线的控制权转交给其他控制器,例如控制器C。
按照上述工作模式,各控制器之间就可以通过I2C接口实现信息交互,无需再使用额外的总线和接口资源。各个控制器通过程序逻辑实现主从模式的切换,使用标准I2C协议完成总线控制权交接,对标准I2C通信协议没有任何影响,仅以极小的程序开销提升了硬件接口资源的使用效率。另一方面,由于系统任意时刻都工作在单主机多从机的工作模式下,避免了I2C总线的竞争,提高了通信的可靠性。
Claims (3)
1.一种基于I2C总线的控制器,其特征在于,该控制器工作于主机模式或者从机模式:
主机模式下:占用I2C总线的控制权;在占用完成后,向总线发出主从转换的控制命令,该控制命令包含待转换的从机地址和设定标识信息;之后释放I2C总线控制权,由主机模式转为从机模式;
从机模式下:实时监听I2C总线上的允许本控制器转为主机模式的主从转换的控制命令,若收到则由从机模式转为主机模式。
2.一种基于I2C总线的控制器的通信方法,其特征在于,包括:
在主机模式下,占用I2C总线的控制权;在占用完成后,向总线发出主从转换的控制命令,该控制命令包含待转换的从机地址和设定标识信息;之后释放I2C总线控制权,由主机模式转为从机模式;
在从机模式下,实时监听I2C总线上的允许本控制器转为主机模式的主从转换的控制命令,若收到则由从机模式转为主机模式。
3.一种基于I2C总线的多控制器间的通信方法,其特征在于,包括:
任一时刻,多控制器处于一主机、多从机的控制模式,由主机占用总线;
主机对I2C总线的占用完成后,向其中一个从机写入主从转换的控制命令;之后该主机转入从机模式,该从机转入主机模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710051177.8A CN106874228A (zh) | 2017-01-23 | 2017-01-23 | 基于i2c总线的控制器及通信方法、多控制器间的通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710051177.8A CN106874228A (zh) | 2017-01-23 | 2017-01-23 | 基于i2c总线的控制器及通信方法、多控制器间的通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106874228A true CN106874228A (zh) | 2017-06-20 |
Family
ID=59157996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710051177.8A Pending CN106874228A (zh) | 2017-01-23 | 2017-01-23 | 基于i2c总线的控制器及通信方法、多控制器间的通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106874228A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107565900A (zh) * | 2017-08-29 | 2018-01-09 | 阳光电源股份有限公司 | 一种太阳能电池板清扫系统和清扫方法 |
CN111078606A (zh) * | 2019-11-18 | 2020-04-28 | 上海灵动微电子股份有限公司 | 一种模拟i2c从机及其实现方法、终端设备和存储介质 |
WO2020124575A1 (zh) * | 2018-12-21 | 2020-06-25 | 海能达通信股份有限公司 | 一种通信设备 |
CN112565039A (zh) * | 2020-12-11 | 2021-03-26 | 杭州和利时自动化有限公司 | 一种通信网络架构 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263835A (zh) * | 2010-05-31 | 2011-11-30 | 弗卢克公司 | 双线串行总线接口的自动寻址方案 |
CN103473166A (zh) * | 2013-08-27 | 2013-12-25 | 中国航天科工集团第二研究院七〇六所 | 一种小型嵌入式系统板卡监控系统 |
CN105488004A (zh) * | 2015-11-27 | 2016-04-13 | 山东超越数控电子有限公司 | 一种服务器开关机状态下的i2c线路复用控制逻辑方法 |
CN105518637A (zh) * | 2013-09-09 | 2016-04-20 | 高通股份有限公司 | 用于使多个主控能在单主控总线架构中操作的方法和装置 |
-
2017
- 2017-01-23 CN CN201710051177.8A patent/CN106874228A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263835A (zh) * | 2010-05-31 | 2011-11-30 | 弗卢克公司 | 双线串行总线接口的自动寻址方案 |
CN103473166A (zh) * | 2013-08-27 | 2013-12-25 | 中国航天科工集团第二研究院七〇六所 | 一种小型嵌入式系统板卡监控系统 |
CN105518637A (zh) * | 2013-09-09 | 2016-04-20 | 高通股份有限公司 | 用于使多个主控能在单主控总线架构中操作的方法和装置 |
CN105488004A (zh) * | 2015-11-27 | 2016-04-13 | 山东超越数控电子有限公司 | 一种服务器开关机状态下的i2c线路复用控制逻辑方法 |
Non-Patent Citations (1)
Title |
---|
孙贞运等: "《微型计算机接口》", 31 December 1995 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107565900A (zh) * | 2017-08-29 | 2018-01-09 | 阳光电源股份有限公司 | 一种太阳能电池板清扫系统和清扫方法 |
WO2020124575A1 (zh) * | 2018-12-21 | 2020-06-25 | 海能达通信股份有限公司 | 一种通信设备 |
CN111078606A (zh) * | 2019-11-18 | 2020-04-28 | 上海灵动微电子股份有限公司 | 一种模拟i2c从机及其实现方法、终端设备和存储介质 |
CN111078606B (zh) * | 2019-11-18 | 2021-05-11 | 上海灵动微电子股份有限公司 | 一种模拟i2c从机及其实现方法、终端设备和存储介质 |
CN112565039A (zh) * | 2020-12-11 | 2021-03-26 | 杭州和利时自动化有限公司 | 一种通信网络架构 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023953B (zh) | 具有多路i2c总线的系统的控制方法 | |
CN201583944U (zh) | 一种采用fpga实现基于pci总线的实时采集卡 | |
CN101296065B (zh) | 一种提高冗余主站可靠性的方法及系统 | |
CN110489365A (zh) | 交换设备、外围部件互连高速系统及其初始化方法 | |
CN106874228A (zh) | 基于i2c总线的控制器及通信方法、多控制器间的通信方法 | |
CN204808315U (zh) | 一种基于spi串行外设接口协议实现板间通信的系统 | |
CN100530156C (zh) | 一种主从模块间的控制方法和装置 | |
CN104008082A (zh) | 1553b总线rt节点与can总线的转换器 | |
CN201626437U (zh) | 一种多功能车辆总线控制器和多功能车辆总线网卡 | |
CN202602697U (zh) | 基于cpci总线的列车通信网关装置 | |
CN102724092A (zh) | 一种Profibus-DP现场总线通信协议冗余主站 | |
CN104009976B (zh) | 一种用于多主站系统之间的实时通信方法及其设备 | |
CN101478460A (zh) | 一种FlexRay-CAN通信网关及实现方法 | |
CN102866683A (zh) | 一种信号转换装置及自动测试系统 | |
CN102291337B (zh) | EtherCAT协议与Profibus-DP协议通信转换的网关及其通信方法 | |
CN105446930A (zh) | 一种单选择端spi主从式多机双向通信方法 | |
EP1701271A1 (en) | Electronic apparatus system with master node and slave node | |
CN101464846B (zh) | 数据卡读写方法、接口控制方法和装置 | |
CN203706058U (zh) | 一种基于can总线的多i/o板卡扩展结构 | |
CN101383788B (zh) | 一种FlexRay-RS485通信网关及实现方法 | |
CN207182023U (zh) | 基于网络控制和通信的网络控制板以及模块化仪器 | |
CN104346310B (zh) | 一种高性能i2c从机数据交换电路及方法 | |
CN202652246U (zh) | 基于vme总线的列车通信网关装置 | |
CN212324117U (zh) | 一种rs485总线多主机竞争切换系统 | |
CN109617801A (zh) | 一种大力矩飞轮双路冗余can总线可靠通信方法和装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170620 |
|
RJ01 | Rejection of invention patent application after publication |