内部集成电路总线的扩展方法、装置及系统的制作方法

文档序号:6461512阅读:313来源:国知局
专利名称:内部集成电路总线的扩展方法、装置及系统的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及内部集成电路总线(Inter Integrated Circuit Bus, I2C总线或IIC总线)的扩展方法、装置及系统。
背景技术
由于协议及接口非常简单,电路系统很多芯片都釆用了 12C作为芯片的 带外控制总线。12C总线只包含一根双向信号线SDA和一根时钟线SCL,属 于串行通信接口。 一条I2C总线上有一个主器件(Master)和多个/人器件 (Slave),主器件用于发起I2C协议,从器件接收协议并进行响应。参见图 1,为I2C协议字段示意图,协议字段中包含从器件地址(SLAVE ADDRESS )、 读/写指示位(R/『)、确认位(A)以及数据(DATA),其中,起始信号(S) 用于启动I2C总线,停止信号(P)为I2C总线终止信号,图中空白方块表示 从主器件向从器件的方向传输字段,阴影方块表示从从器件向主器件传输的 字段。主器件向从器件数据流时,从器件根据数据流中的地址判决该数据流 是否发送给自身的,若是,则接收协议中的数据(写过程)或者将对应的数 据写入协议中的对应字段发回给主器件(读过程)。从器件不能发起协议, 因此若从器件需要主器件对自身进行读写操作时,在实际系统中通常发起一 个中断信号(INT)的方式,向主器件发起中断,要求主器件对其进行访问。12C总线受负载影响很大,信号线的电阻、电容及信号有效电压等指标限 制非常严格,如要求在一条总线频率在100kHz时不能超过400pf的负栽电容, 总线频率在400kHz时不能超过200pf的电容,这直接限制了 12C总线所能支 持的负载数量。参见图2,为目前扩展I2C总线的方案示意图,利用专用12C扩展器件进 行扩展(图2中为PCA954、系列芯片实现示意图),类似的总线扩展器一般 采用l:n模拟开关的方式,每次通讯时只打开一路开关,确保I2C的主器件只 与n路中的一路进行电气连接,从而减少每次I2C总线通讯时的负载数量,增加了 I2C总线系统的可靠性。每次I2C主器件要向I2C从器件发起I2C协 *时,首先需要向PCA954+发送即时配置,确定与PCA954^那个端口连接的 I2C从,器件,然后再向该I2C从器件发送I2C终端通讯指令。在实现本发明的过程中,发明人经过研究发现这种方案存在如下问题首先,必须购买PCA95^等专用芯片,增加额外成本和电路负担。其次,每次I2C主器件要发送协议时都需要分两步,第一次是向总线扩 展器发送,进行l:n的开关通路配置,待配置完毕,再发送第二次协议与从器 件通讯,这种每次都对专用芯片的动态配置工作,既增加了软件的设计负担, 也降低了实际的通讯效率。发明内容有鉴于此,本发明实施例提供一种I2C总线的扩展方法、装置及系统, 以解决现有4支术软件设计负担大以及通讯效率低的问题。为此,本发明实施例采用如下技术方案一种I2C总线的扩展方法,12C总线系统中包括I2C主器件、扩展装置 以及至少一个I2C从器件,所述扩展装置的每一输出端口连接一个I2C从器 件,包括以下步骤接收I2C主器件发送的地址、写命令及数据,或者,接收I2C主器件发 送的地址及读命令;查找预置的地址端口对应表,确定所述I2C主器件发送的地址对应的所 述扩展装置的输出端口;通过所述扩展装置的输出端口向其连接的12C从器件写入所述数据,或 者,通过所述扩展装置的输出端口从其连接的12C从器件读出信息。一种I2C总线的扩展装置,包括从模块、緩冲器、主模块、地址译码器 和开关选择器,其中所述从模块用于接收I2C主器件的地址、读/写命令及数据并提供给所述 緩冲器緩存,或者,用于将緩冲器中緩存的I2C从器件发送的信息提供给I2C 主器件;所述地址译码器用于存储地址端口对应表,并根据緩冲器存储的地址确定开关选择器的输出端口;所述主模块用于从所述緩沖器中获取I2C主器件的读/写命令和数据,并 通过所述开关选择器输出端口从对应的12C从器件读取信息或者向12C从器 件写入数据。一种I2C总线的扩展系统,包括I2C主器件、I2C从器件以及扩展装置, 所述扩展装置包括从模块、緩冲器、主模块、地址译码器和开关选择器,其 中所述从模块用于接收I2C主器件的地址、读/写命令及数据并提供给所述 緩冲器緩存,或者,用于将緩冲器中緩存的I2C从器件发送的信息提供给I2C 主器件;所述地址译码器用于存储地址端口对应表,并根据緩冲器存储的地址确 定开关选择器的输出端口;所述主模块用于从所述緩冲器中获取I2C主器件的读/写命令和数据,并 通过所述开关选择器输出端口从对应的12C从器件读取信息或者向12C从器 件写入数据。可见,本发明实施例中,预先在扩展装置中配置地址端口对应表,在I2C 总线系统后续运行中,12C主器件不需要对扩展装置进行配置,可直接按照地 址端口对应表确定端口,即直接向确定的12C从器件进行读/写操作,从而省 去了 I2C主器件向扩展装置配置的环节,可筒化软件设计难度,提高通讯效 率。


图1为现有技术I2C协议字段示意图;图2为现有技术I2C总线扩展方案示意图;图3为本发明实施例I2C总线扩展方法的流程图;图4为本发明实施例I2C总线扩展系统的结构示意图。
具体实施方式
本发明实施例中,12C总线系统包括I2C主器件、扩展装置以及至少一个 12C从器件,扩展装置的每个输出端口连接一个I2C从器件。其中,扩展装置 只与一条I2C总线分支相连,并且,扩展装置的每一输出端口连接有一个I2C 从器件。预先在扩展装置中配置地址端口对应表,在I2C总线系统后续运行 中,12C主器件不需要对扩展装置进行配置,可直接按照地址端口对应表,向 确定的端口所连接的12C从器件进行读/写操作,从而省去了 12C主器件向扩 展装置配置的环节,可简化软件设计难度,提高通讯效率。参见图3,为本发明12C总线扩展方法实施例的流程图,包括S301:接收I2C主器件下发的地址、写命令及数据,或者,接收I2C主 器件下发的地址及读命令;S302:查找预置的地址端口对应表,确定所述I2C主器件发送的地址对 应的所述扩展装置的输出端口 ,由于所述扩展装置的每一输出端口对应连接 一个I2C从器件,确定了所述扩展装置的输出端口即确定了所述I2C主器件 需要通讯的I2C从器件;其中,通过确定I2C主器件发送的地址与12C从器件连接端口之间的对 应关系完成地址端口对应表的配置,也就是,所述地址端口对应表具体是指 I2C主器件发送的地址与12C从器件连接的开关选择器输出端口之间的对应关 系表。S303:通过所述地址对应的所述扩展装置的端口向I2C从器件写入所述 数据,或者,通过所述地址对应的端口从I2C从器件读出信息。在具体应用中,本发明实施例可采用可编程逻辑器件实现I2C总线扩展,具体地,可采用复杂可编程逻辑器件(Complex Programmable Logical Device, CPLD)、现场可编程门阵列(Field Programmable Gate Array, FPGA)或可 擦编程逻辑器件(Erasable Programmable Logic Device, EPLD)等可编程逻辑 器件实现,采用可编程逻辑器件不但可更新电气逻辑关系,而且价格低廉可 根据系统需求自行设计,易于调试,使用方便。7对于上述方法中的地址端口对应表,可根据I2C系统要求,在设计可编 程逻辑器件时预先编写和烧制,或者,由I C主器件或其他CPU配置。在上 述方法中,优选地,在I2C总线系统初始化或,在I2C总线系统地址改变时, 可更新所述地址端口对应表,其余情况则不需要配置该对应表。本发明实施例中,由于预先在扩展装置中配置了地址端口对应表,从而 省略了现有技术中每次都需要配置专用芯片的步骤,在I2C主器件向扩展装 置下发地址时,就可根据地址端口对应表确定该地址对应的扩展装置的输出 端口,然后对该端口连接的I2C从器件进行读/写操作,可见,与现有技术相 比,本发明实施例简化了软件设计,提高了通讯效率。参见图4,为本发明实施例I2C总线扩展系统的结构示意图。12C总线扩 展系统包括I2C主器件401、扩展装置402以及多个I2C从器件403,其中, 扩展装置402作为I2C主器件401和I2C从器件403的桥梁,逻辑上位于I2C 主器件401和I2C从器件403之间。其中,SDA表示双向信号线,SCL表示 时钟线,INT表示中断信号。扩展装置402包括从模块4021,緩沖器4022,主模块4023,地址译码器 4024和开关选择器4025。(1) 从模块4021在扩展模块402中,从模块4021用于和I2C主器件401通讯,在内部与緩沖 器4022连接。从模块4021接收并解析I2C主器件401下发的地址、读/写命令和数据,并 且将这些命令和数据存放到緩沖器4022中;或者,将緩冲器4022中的I2C从器 件403提供的信息发送至I2C主器件401。(2) 緩沖器4022在扩展装置402内部,緩冲器4022是主模块4023和从模块4021连接的桥梁。緩冲器4022用于存放I2C主器件401通过从模块4011下发的命令和数据, 以及用于存放I2C从器件403通过主模块4023发送的信息。此外,缓冲器4022还与地址译码器4024连接,将I2C主器件401发送来的 地址提併给地址译码器4024,以便地址译码器4024查找地址端口对应表,从 而确定端口、(3 )主模块4023主模块4023负责从緩冲器4022中读取命令和数据,根据从緩冲器4022中 读取的命令与下级I2C从器件进行通信。(4) 地址译码器4024由软件在系统初始化时进行配置,建立I2C协议中的地址字段与开关选择 器4025的1: n端口设置的对应关系。所述地址译码器4024用于存储预置的地 址端口对应表,所述地址端口对应表具体是指I2C主器件发送的地址与开关选 择器4025输出端口之间的对应关系表。所述地址译码器4024根据緩冲器4022 存储的地址确定开关选择器4025的输出端口 。(5) 开关选择器4025负责建立主模块4023和单独一个I2C从器件403建立总线连接,进行通信。优选地,扩展装置402中还可包括对应表更新单元(图中未示出),用于 更新所述地址译码器4024存储的地址端口对应表,具体地,可在I2C总线系 统初始化或者在I2C总线系统地址改变时,对地址端口对应表进行更新。在 具体实现上,可通过I2C主器件401控制该对应表更新单元的启动,也可以 由其他CPU控制。下面以可编程逻辑器件实现的扩展装置402内部各部分的工作过程进行 详细i兌明。在I2C主器件401—侧连接的是扩展装置402的从模块4021 ,该从模块4021 被动接收I2C主器件401的地址、命令和数据,并对命令进行解析;若接收到 写命令,则将I2C主器件401发出的地址和数据写入緩沖器4022,并通知扩展 装置402的主模块4023进行转发;若接收到读命令,则将I2C主器件401发出的 地址写入緩冲器4022,通知主模块4023转发该读命令,并拉高I2C主器件401 方向的SDA信号线,待主模块4023通知数据已放入緩冲器4022后,放开SDA式通知可以再次访问。扩展装置402的主模块4023通过緩冲器4022接收I2C主器件401的命令,收 到写命令时,启动写进程,将緩冲器4022中的地址和数据向目的地址对应的 端口发送;收到读命令时,启动读进程,将緩冲器4022中的地址向目的地址 对应的端口发出,接收目的地址对应端口发来的信息,放入緩冲器4022,从 模块4021最终将緩冲器4022存放的信息发送给I2C主器件401 。緩冲器4022由目的地址寄存器和lt据寄存器组成。地址译码器4024根据緩沖器4022中目的地址寄存器中的地址信息和预置 的地址端口对应表对开关选择器4025进行配置,以保证主模块4023通过正确 的输出端口与I2C从器件403进行连接。开关选择器4025由主模块4023控制,实现主 ^莫块4023内部信号线与I2C从 器件403收发端口的点对点连接。可见,本发明实施例通过预置地址端口对应表,即静态配置,避免了现 有方案中每次I2C主器件发送协议时都需要分两步配置(第一次是向总线扩 展器发送,进行l:n的开关通路配置,待配置完毕,再发送第二次协议与从器 件通讯),从而可避免这种每次都对专用芯片进行动态配置的工作,降低软 件的设计负担,提高实际的通讯效率。本发明实施例釆用低成本的可编程逻辑器件实现I2C总线扩展,具体地, 通过可编程逻辑器件直接实现多路开关选择的功能,每次发起I2C协议时不 需要对可编程逻辑器件进行配置,从而从软件上可以忽略中间部件的存在, 直接由I2C主器件向从器件发起协议,可降低软件编程难度,提并高通讯效 率。另夕卜,可编程逻辑器件内部由数字电路实现l:n开关,极大地降低了实现 成本。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普 通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润 饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1、一种I2C总线的扩展方法,I2C总线系统中包括I2C主器件、扩展装置以及至少一个I2C从器件,所述扩展装置的每一输出端口连接一个I2C从器件,其特征在于,包括接收I2C主器件发送的地址、写命令及数据,或者,接收I2C主器件发送的地址及读命令;查找预置的地址端口对应表,确定所述I2C主器件发送的地址对应的所述扩展装置的输出端口;通过所述扩展装置的输出端口向其连接的I2C从器件写入所述数据,或者,通过所述扩展装置的输出端口从其连接的I2C从器件读出信息。
2、 根据权利要求1所述的方法,其特征在于,还包括在I2C总线系统初始化或者在I2C总线系统地址改变时,更新所述地址 端口对应表。
3、 根据权利要求1或2所述的方法,其特征在于,所述地址端口对应表 为12C主器件发送的地址与12C从器件连接端口之间的对应关系表,预先配 置在所述扩展装置中。
4、 一种I2C总线的扩展装置,其特征在于,包括从模块、緩沖器、主模 块、地址译码器和开关选择器,其中所述从模块用于接收I2C主器件的地址、读/写命令及数据并提供给所述 緩冲器緩存,或者,用于将緩冲器中緩存的I2C从器件发送的信息提供给I2C 主器件;所述地址译码器用于存储地址端口对应表,并根据緩冲器存储的地址确 定开关选择器的输出端口;所述主模块用于从所述緩冲器中获取I2C主器件的读/写命令和数据,并 通过所述开关选择器输出端口从对应的12C从器件读取信息或者向12C从器 件写入数据。
5、 根据权利要求4所述的扩展装置,其特征在于,还包括 对应表更新单元,用于更新所述地址端口对应表。
6、 根据权利要求4或5所述的扩展装置,其特征在于,所述扩展装置采 用可编程逻辑器件实现。
7、 一种I2C总线的扩展系统,包括I2C主器件、12C从器件以及扩展装 置,其特征在于,所述扩展装置包括从模块、緩沖器、主模块、地址译.码器 和开关选择器,其中 ,所述从模块用于接收I2C主器件的地址、读/写命令及数据并提供给所述 緩冲器緩存,或者,用于将緩沖器中緩存的I2C从器件发送的信息提供给I2C 主器件;所述地址译码器用于存储地址端口对应表,并根据緩沖器存^f诸的地址确 定开关选择器的输出端口;所述主模块用于从所述緩冲器中获取I2C主器件的读/写命令和数据,并 通过所述开关选择器输出端口从对应的12C从器件读取信息或者向12C从器 件写入数据。
8、 根据权利要求7所述的扩展系统,其特征在于,所述扩展装置还包括 对应表更新单元,用于更新所述地址端口对应表。
9、 根据权利要求7或8所述的扩展系统,其特征在于,所述扩展装置采 用可编程逻辑器件实现。
10、 根据权利要求9所述的扩展系统,其特征在于,所述可编程逻辑器 件包括FPGA、 CPLD或EPLD。
全文摘要
本发明实施例公开了一种内部集成电路I2C总线的扩展方法,I2C总线系统中包括I2C主器件、扩展装置以及至少一个I2C从器件,所述扩展装置的每个输出端口连接一个I2C从器件,包括接收I2C主器件发送的地址、写命令及数据,或者,接收I2C主器件发送的地址及读命令;查找预置的地址端口对应表,确定所述I2C主器件发送的地址对应的所述扩展装置的输出端口;通过所述扩展装置的输出端口向其连接的I2C从器件写入所述数据,或者,通过所述扩展装置的输出端口从其连接的I2C从器件读出信息。另外,本发明实施例还提供一种I2C总线的扩展装置及系统。
文档编号G06F13/42GK101256544SQ20081008455
公开日2008年9月3日 申请日期2008年3月25日 优先权日2008年3月25日
发明者杜宇旻 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1