一种多路I2C系统、及数据读写方法与流程

文档序号:14870329发布日期:2018-07-06 22:31阅读:826来源:国知局

本发明属于电子通信技术领域,特别涉及一种多路i2c接口连接结构。



背景技术:

i2c接口是在当前电子设备内部广泛使用的一种器件之间双向串行通信总线,只使用两根信号线(串行数据线sda,串行时钟线scl)即可在连接于总线上的器件之间传送信息,主设备依靠i2c地址区分访问不同的从设备。如图1所示,n个从设备通过一条串行时钟线scl和一条串行数据线sda与主设备连接。

在某些场景下,会存在如下的需求:主设备需要快速的访问大量的同类从设备,比如处理单元mcu需要高速访问几十个相同型号的传感器,因为这些传感器是相同型号,所以地址是一样的,无法在一路总线上区分。

针对这一问题,传统的作法是:

(1)有些传感器提供了在一定范围内调整地址的功能,但是调整的个数有限,远远不能达到支持几十个甚至更多从设备的能力。即使有设备支持配置大量地址区分,也存在主设备需要依次访问不同地址来轮询,效率会大幅下降,对于高速访问的需求无法满足。

(2)把这些器件挂到不同的i2c总线上,但是这样也存在问题:占用太多i2c接口。通常的主设备能提供的i2c接口最多只有几路。如果用软件控制通用输入输出gpio来模拟i2c接口,那么也会占用太多的输入输出io口(对于n个从设备,需要2xn个io口来连接),并且控制这些io口依次访问不同设备同样存在效率低下的问题。

(3)更改主从器件的设计专用的接口来满足这种需求,这种方法同样难以操作,因为主设备与从设备通常都是商用量产状态的芯片,对芯片进行定制修改在通常情况下是无法做到的。

(4)增加外围芯片扩展出更多接口,这种方法会增加电路复杂度,造成功耗,成本的大幅上升,在很多产品上也是无法接受的。



技术实现要素:

针对上述问题,本发明针对i2c总线提出了一种多路i2c系统、及数据读写方法。

本发明提供了一种多路i2c系统,所述多路i2c系统包括一个主设备和n个从设备,其特征在于,

所述主设备通过一条公共串行时钟线与所述n个从设备连接;

所述主设备通过n条串行数据线分别与所述n个从设备连接。

进一步地,所述公共串行时钟线与所述主设备的时钟提供端口、所述n个从设备的时钟端口连接;

所述n条串行数据线分别与所述主设备的n个数据端口、所述n个从设备的数据端口连接。

本发明还提供了一种应用于上述多路i2c系统中的数据读取方法,其特征在于,

主设备通过公共串行时钟线向n个从设备提供时钟信号;

主设备通过n个数据端口同时从所述n个从设备读取数据。

本发明还提供了一种应用于上述多路i2c系统中的数据写入方法,其特征在于,

主设备通过公共串行时钟线向n个从设备提供时钟信号;

主设备通过n个数据端口同时向所述n个从设备写入数据。

本发明的多路i2c系统、及数据读写方法无需对多个从设备调整地址而且使用的接口少。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了根据现有技术的多路i2c接口外设结构示意图;

图2示出了根据本发明实施例的多路i2c接口外设结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明以1个主设备,n(其中,n≥2)个符合i2c总线协议的从设备为例进行示例性说明本发明的连接结构及数据读写方法。该主设备的时钟端口通过一条公共串行时钟线scl与n个从属的时钟端口连接。如图2所示,从设备1、从设备2…从设备n的时钟端口均通过所述公共串行时钟线scl与所述主设备的时钟输出端口连接。也就是说,n个从设备共用一条串行时钟线与所述主设备的时钟输出端口连接。

主设备的各个数据读写端口分别与每个从设备的数据读写端口连接,也就是说各个从设备分别通过独立的串行数据线sda与主设备的各个数据读写端口连接。如图2所示,从设备1的读写端口使用第一条串行数据线sda1与主设备的第一个数据读写端口连接,从设备2的读写端口使用第二条串行数据线sda2与主设备的第二个数据读写端口连接…从设备n的读写端口使用第n条串行数据线sdan与主设备的第n个数据读写端口连接。

主设备向从设备写入数据时,通过所述公共串行时钟线scl同时向所述n个从设备提供时钟信号。在时钟信号的驱动下,各个从设备接收主设备通过各条串行数据线sda发送的数据。如图2所示,所述主设备通过公共串行时钟线向所有n个从设备提供时钟信号。在所述时钟信号的驱动下,第一个从设备1通过第一条串行数据线sda1接收主设备从其第一个数据端口输出的数据,第二个从设备2通过第二条串行数据线sda2接收主设备从其第二个数据端口输出的数据…第n个从设备n通过第n条串行数据线sdan接收主设备从其第n个数据端口输出的数据。通过上述连接结构,实现了主设备能够同时向多个从设备写入数据的目的。

主设备读取从设备的数据时,通过所述公共串行时钟线scl同时向所述n个从设备提供时钟信号。在时钟信号的驱动下,各个从设备通过与其连接的串行数据线sda,将数据发送给主设备。如图2所示,所述主设备通过公共串行时钟线向所有n个从设备提供时钟信号。在所述时钟信号的驱动下,第一个从设备1通过第一条串行数据线sda1向所述主设备的第一个数据端口发送数据,第二个从设备2通过第二条串行数据线sda2向所述主设备的第二个数据端口发送数据…第n个从设备n通过第n条串行数据线sdan向所述主设备的第n个数据端口发送数据。所述主设备的各个数据端口检测串行数据线上的数据,并将检测到的数据读取到主设备中。通过上述连接结构,实现了主设备能够同时从多个从设备读取数据的目的。

通过本发明的连接结构,所有的从设备能够同时完成读写。假设从设备的串行时钟线scl支持100khz的时钟速度,那么主设备在串并行处理速度满足要求的情况下可以直接驱动100k的时钟,读写n个设备的数据与读写1个设备的数据使用的时间是相同的,从而达成了多路设备的高效读写。

本发明优点在于,针对i2c接口,不改变原有器件设计,而是直接使用主设备和从设备芯片原有设计;而且不需要接入专用外围接口芯片,因此不会增加外围芯片。同时本发明的设计结构占用了最少的io管脚,以20路从设备为例,传统方式需要使用至少40个io端口,本方法只需要21个io端口。本发明的设计结构能够高速访问所有通道,而传统方法由于逐个轮询使得在从设备增多的情况下访问速度会随之线性下降。

尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1