本申请涉及总线,尤其涉及一种用于多路i2c总线设备的系统、方法和控制器。
背景技术:
1、i2c是内部集成电路(inter-integrated circuit,iic)的简称,是一种通用的总线协议。它是由philips(飞利浦)公司,现nxp(恩智浦)半导体开发的一种简单的双向两线总线协议标准。i2c总线是一种非常流行的串行总线,用于单个或多个主机与单个或多个从机之间的通信。
2、i2c总线需要依靠集电极开路(oc)或者开漏(od)电路实现总线上多个i2c设备的共存。之所以使用漏极开路(open-drain)而不使用推挽式(push-pull)是因为线与时如果一个设备输出高电平,一个设备输出低电平,会导致如图1所示的电路中的上下两个mos管都会导通,从而造成vccio(用于驱动io模块的电压)和接地端gnd之间,或vcc端和接地端gnd之间的大电流,甚至会烧毁电路。如图1所示,为由4个mos管组成的电路,其中,若inp1端输入低电平,inn2端输入高电平,使mos管q1和mos管q4同时导通,或若inp2端输入低电平,inn1端输入高电平,使mos管q3和mos管q2同时导通,则会造成vcc端和接地端gnd之间产生很大的电流,可能会烧毁电路。
3、如图2所示,i2c总线有两根信号线,sda(serial data line,串行数据线)和scl(serial clock line,串行时钟线),它们都是双向i/o(io)总线,接口电路为开漏输出,需要通过上拉电阻(pull-up resistors)rp连接到vccio(用于驱动io模块的电压)或+vdd电压。多个设备(如图2所示的设备1和设备2)以线与(线与逻辑)的方式连接到总线上,当总线空闲时,两根信号线(sda和scl)都是高电平;当输出0时总线被拉低。i2c总线的状态是各i2c设备的线与,总线空闲时为high-z状态,通过上拉电阻表现为逻辑1,当输出0时总线被拉低。
4、然而,一般数字芯片只有io buffer上存在三态,内部只有逻辑0/1,是没有三态信号的,也就没法输出high-z状态;因此在数字芯片内部,无法将多个i2c设备连接到一块。
5、综上所述,需要提供一种能够在内部只有逻辑0/1的情况下,将多个i2c设备连接到一起的用于多路i2c总线设备的系统、方法和控制器。
技术实现思路
1、为解决以上问题,本申请提出了一种用于多路i2c总线设备的系统、方法和控制器。
2、一方面,本申请提出一种用于多路i2c总线设备的系统,用于数字芯片,包括:
3、监听模块,用于获取时钟信号以及主设备和多个从设备的数据信号,根据与所述时钟信号对应的所述数据信号中的数据信息确定控制信号并输出;
4、处理模块,用于根据所述控制信号控制所述主设备和所述多个从设备之间的数据传输方向;将所述多个从设备的数据的逻辑与传输至所述主设备。
5、优选地,所述监听模块还用于,获取所述主设备和/或所述多个从设备的所述时钟信号,从所述时钟信号中确定目标高电平信号;获取与所述目标高电平信号对应的所述数据信号中的目标数据信号;根据所述目标数据信号的数据信息,输出控制信号。
6、优选地,所述目标高电平信号为所述时钟信号中的地址周期之后的一个高电平信号;
7、所述目标数据信号的数据信息包括写信息和读信息;在所述目标数据信号的数据信息为写信息的情况下,所述监听模块输出第一控制信号;在所述目标数据信号的数据信息为读信息的情况下,所述监听模块输出第二控制信号。
8、优选地,所述主设备通过所述数字芯片的io接口与所述监听模块以及所述处理模块相连接;所述多个从设备中每个从设备均通过所述数字芯片的io接口与所述处理模块相连接;其中,所述主设备和所述多个从设备中的每个从设备分别与所述数字芯片的多个所述io接口中的不同的io接口相连接。
9、优选地,所述处理模块还用于,
10、在接收到的所述控制信号为第一控制信号的情况下,所述处理模块控制所述数据信号中的多个第一数据的逻辑与从所述多个从设备向所述主设备方向传输,控制所述数据信号中的多个第二数据从所述主设备向所述多个从设备方向传输;其中,所述多个第一数据的逻辑与为将所述多个第一数据进行逻辑与得到的结果;
11、在接收到的所述控制信号为第二控制信号的情况下,所述处理模块控制所述数据信号中的多个第三数据的逻辑与从所述多个从设备向所述主设备方向传输,控制所述数据信号中的多个第四数据从所述主设备向所述多个从设备方向传输;其中,所述多个第三数据的逻辑与为将所述多个第三数据进行逻辑与得到的结果。
12、优选地,所述多个第一数据包括与所述时钟信号中的第九时钟、第十八时钟和第二十七时钟对应的数据信号中的数据;
13、所述多个第二数据包括与所述时钟信号中的第十时钟至第十七时钟和第十九时钟至第二十六时钟对应的数据信号中的数据;
14、所述多个第三数据包括与所述时钟信号中的第九时钟、第十时钟至第十七时钟和第十九时钟至第二十六时钟对应的数据信号中的数据;
15、所述多个第四数据包括与所述时钟信号中的第十八时钟和第二十七时钟对应的数据信号中的数据。
16、优选地,在所述控制所述数据信号中的多个第一数据从所述多个从设备向所述主设备方向传输的情况下,或在所述控制所述数据信号中的多个第三数据从所述多个从设备向所述主设备方向传输的情况下,所述处理模块还用于对所述多个从设备的所述多个第一数据做与逻辑后输出,或对所述多个从设备的所述多个第三数据做与逻辑后输出。
17、优选地,所述多个从设备包括:实体从设备和/或虚拟从设备。
18、第二方面,本申请提出一种用于多路i2c总线设备的方法,用于数字芯片,包括:
19、监听模块获取时钟信号以及主设备和多个从设备的数据信号;
20、所述监听模块根据与所述时钟信号对应的所述数据信号中的数据信息确定控制信号并输出;
21、处理模块根据所述控制信号控制所述主设备和所述多个从设备之间的数据传输方向;将所述多个从设备的数据的逻辑与传输至所述主设备。
22、第三方面,本申请提出一种控制器,包括:如第一方面任一项所述的用于多路i2c总线设备的系统。
23、本申请的优点在于:通过监听模块获取主设备和多个从设备的数据信号,并根据数据信号中的数据信息确定控制信号并输出,可以确定主设备和多个从设备的数据信息的传输方向;通过处理模块调整主设备和多个从设备之间的数据传输方向,从而能够实现在内部只有逻辑0/1的情况下,将多个i2c设备连接到一起。
1.一种用于多路i2c总线设备的系统,用于数字芯片,其特征在于,包括:
2.如权利要求1所述的系统,其特征在于,所述监听模块还用于,获取所述主设备和/或所述多个从设备的所述时钟信号,从所述时钟信号中确定目标高电平信号;获取与所述目标高电平信号对应的所述数据信号中的目标数据信号;根据所述目标数据信号的数据信息,输出控制信号。
3.如权利要求2所述的系统,其特征在于,所述目标高电平信号为所述时钟信号中的地址周期之后的一个高电平信号;
4.如权利要求1所述的系统,其特征在于,所述主设备通过所述数字芯片的io接口与所述监听模块以及所述处理模块相连接;所述多个从设备中每个从设备均通过所述数字芯片的io接口与所述处理模块相连接;其中,所述主设备和所述多个从设备中的每个从设备分别与所述数字芯片的多个所述io接口中的不同的io接口相连接。
5.如权利要求4所述的系统,其特征在于,所述处理模块还用于,
6.如权利要求5所述的系统,其特征在于,所述多个第一数据包括与所述时钟信号中的第九时钟、第十八时钟和第二十七时钟对应的数据信号中的数据;
7.如权利要求5所述的系统,其特征在于,在所述控制所述数据信号中的多个第一数据从所述多个从设备向所述主设备方向传输的情况下,或在所述控制所述数据信号中的多个第三数据从所述多个从设备向所述主设备方向传输的情况下,所述处理模块还用于对所述多个从设备的所述多个第一数据做与逻辑后输出,或对所述多个从设备的所述多个第三数据做与逻辑后输出。
8.如权利要求1所述的系统,其特征在于,所述多个从设备包括:实体从设备和/或虚拟从设备。
9.一种用于多路i2c总线设备的方法,用于数字芯片,其特征在于,包括:
10.一种控制器,特征在于,包括如权利要求1至8任一项所述的用于多路i2c总线设备的系统。