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

文档序号:6470978阅读:198来源:国知局

专利名称::扩展内部集成电路总线的方法及装置的制作方法
技术领域
:本发明涉及电子系统应用设计
技术领域
,尤其涉及一种扩展内部集成电路(Inter-IntegratedCircuit,I2C)总线的方法及装置。技术背景总线(Bus)指通过分时复用的方式,将信息从一个或多个源部件传送到一个或多个目的部件的一组传输线。按照传输数据的方式划分,可以分为串行总线和并行总线。串行总线中,二进制数据逐位通过一根数据线发送到目的器件;并行总线的数据线通常超过2根。I2C总线是由Philips开发的一种简单的双向两线串行总线,用来实现有效的微型电子器件或部件之间的控制。每个连接到I2C总线的器件都可通过硬件设定的唯一地址和一直存在的简单的主机/从器件关系软件设定地址。连接到I2C总线的器件中,初始化发送、产生时钟信号和终止发送的器件为主机;被主机寻址的器件为从器件。由于发送数据到总线的器件为发送器,从总线接收数据的器件为接收器,因此,主机既可以作为主机发送器也可以作为主机接收器。I2C总线包括串行数据线SDA和串行时钟线SCL。I2C总线传输数据的示意图如图1所示。主机在起始位或起始条件S后发送了一个从器件地址,这个地址共有7位。紧接着的第8位是数据方向位R/W,O表示发送即写数据,1表示请求即读数据。被寻址的从器件接收到这个命令后,回复给主机一个确认响应(ACK)。如果当前数据传输周期是发送,则主机在接收到确认ACK后把数据以字节(8bit数据)为单位串行的送上数据总线;如果当前数据传输周期是请求数据,则从器件在发送确认ACK后把数据以字节(8bit数据)为单位串行的送上总线;接收器在接收到数据后,必须给出确认ACK;发送器在收到ACK确认后可以继续发送下一组数据。数据传输一般由主机产生的停止位P终止。I2C总线在板级连接的应用中,很多用到I2C总线的电子系统都使用模块化设计。如图2所示,这种电子系统往往由一个母板21和许多设置有从器件的子板(或子卡)24组成。母板21上提供许多子卡接插件接口26,选配各种子卡24插入母板21的子卡接插件接口26即构成了一个完整的电子系统。每个母板的接插件接口26往往支持不同种类型的子卡。因此,在模块化电子系统启动时,母板21必须扫描各个接口确认是否有子卡存在,并判断子卡的具体类型并初始化子卡。从成本和实用方面考虑,电子系统在子卡24上放置一个掉电后数据不丢失的存储芯片,即I2C电可擦可编程只读存储器(EEPROM)(例如24c02)25。EEPROM25内存储一组约定的子卡信息。当系统启动时,母板21上的系统控制器CPU22通过I2C总线23读取EEPROM25内的约定信息,根据读取的信息判断子卡24的存在和类型,而后完成相应的初始化工作。根据Philips给I2CEEPROM器件分配的地址段1010000~1010111,其中前高四位固定为1010,后三位为用户配置。这样一条fc总线最多可连接8个fCEEPROM器件,也就是说,模块化电子系统的母板21上最多只能挂接8个子卡24,导致电子系统的扩展受限。一条I2C总线及其连接的8个从器件统称为板级I2C器件。板级I2C器件设置于母板上。现有技术中,为了解决这个问题,采用I2C多路复用器(multiplexer)或fc扩展器件对fc总线进行扩展。其中,多路复用器通过使不同的输入信号线可以连通到一个输出信号线的器件实现对I2C总线的扩展。如申请号为200710145378.0的中国申请"用可编程器件实现访问多个I2C从器件的方法及装置",使用I2CmultiplexerPCA954X进行12(2总线扩展。如图3、图4所示,PCA9548将一个上行通道(Upstream)SCL/SDA通道扩展为多个下行(Downstream)的I2C(SCx/SDx,x=0,1,2…7)通道,利用命令选择下行通道SCx/SDx中的一个与上行通道直接连通,同时保证上行通道与其他下行通道断开。PCA9548有8个下行通道,而每个^C下行通道可以挂接8个EEPROM器件,因此,PCA9548通过下行通道SCx/SDx可以同时挂接64个EEPROM器件。利用产C命令选择,上行通道可以分别访问64个EEPROM器件,大大扩展了I2C总线,保证了I2C总线在模块化电子系统应用中得以满足。虽然采用I2Cmultiplexer对I2C总线扩展可以满足模块化系统的应用要求,但是fCmultiplexer价格昂贵,不适合对成本控制严格的环境。并且,这种扩展方法把总线的两位信号都通过扩展芯片切换,造成印刷电路板(PCB)走线较多,占用PCB面积。专利号为200410009102.0的专利《在通信设备中操作多个I2C从器件的装置及其方法》采用逻辑器件代替I力multiplexer扩展I2C总线。逻辑器件包括一时钟寄存器与多个数据寄存器。时钟寄存器的输出端连接至时钟线管脚。每个数据寄存器的输出端与数据线管脚之间均设置一电子开关,其输出端连接至数据线管脚,分别与多个从器件的I2C接口的串行数据线对应,并通过一输入输出寄存器控制该电子开关的闭合和断开。每个从器件的fc接口的串行时钟线均与逻辑器件的同一个时钟线管脚连接;每个从器件的I2C接口的串行数据线均与逻辑器件的对应的不同的数据线管脚连接。控制器通过访问逻辑器件内部对应的寄存器来实现对一个或多个I2C从器件的操作。采用逻辑器件扩展I2C总线的缺陷在于由于从器件的I2C接口的串行时钟线都与逻辑器件的同一个时钟线管脚连接,而每个器件的引脚都有一定的电容性阻抗(一般在10pF左右),当从器件较多时(超过8个),一方面时钟信号线的电容性负载将增大到较大的值,由于容性负载有阻止电平跳变的作用,这将阻止电平发送快速跳变,当信号电平从0到1跳变时,这个跳变沿(上升沿)将变成很緩慢;另一方面器件增多,当信号电平跳变时,多个从器件会同时对跳变信号发生多重反射,把原本已经緩慢上升的信号又拉回较低的电平。这两个方面的作用导致信号上升沿上产生回沟5,如图5A、图5B所示。这个信号失真(Distortion)有可能使接收器数据采样出错,这是由于时钟沿上有回沟,接收器可能误判为两个时钟上升沿,而从器件采样数据是在时钟的上升沿采样数据,因此从器件会重复采样数据,导致I2C通信错误,造成不可预知后果。
发明内容本发明的目的在于提出一种扩展内部集成电路总线的方法及装置,以降低I2C总线扩展的成本。为实现上述目的,本发明提供了一种扩展内部集成电路总线的方法,包括通过选通复用器将内部集成电路I2C总线的串行时钟线扩展为多个串行时钟线;将所述多个串行时钟线连接到各从器件;将所述I2C总线的串行数据线直接与所述各从器件连接。本发明还提供了一种扩展内部集成电路总线的装置,包括选通复用器,所述选通复用器通过PIO线及I2C总线的串行时钟线与控制器连接;所述选通复用器通过扩展的串行时钟线与各从器件连接;所述控制器通过所述I2C总线的串行数据线直接与所述各从器件连接。上述方案通过简单的逻辑器件选通复用器实现I2C总线在模块化设计系统中的扩展,避免了昂贵的可编程12(:扩展器件的使用,大大降低了I2C总线扩展成本以及模块化设计系统的成本,适合于对成本控制严格的环境。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。图1为I2C总线传输凝:据的示意图2为I2C总线在板级连接的应用示意图;图3为PCA9548原理框图;图4为PCA9548应用原理示意图;图5A为正常的上升沿信号示意图;图5B为失真的上升沿信号示意图;图6为本发明扩展内部集成电路总线的方法实施例的流程图;图7为本发明扩展内部集成电路总线的装置实施例一的结构示意图;图8为本发明扩展内部集成电路总线的装置实施例二的结构示意图;图9为本发明扩展内部集成电路总线的装置实施例二中SN74CBTD3126的原理框图;图IO为本发明扩展内部集成电路总线的装置实施例二中SN74CBTD3126的连接示意图;图11为本发明扩展内部集成电路总线的装置实施例二中74FST3251的原理框图;图12为本发明扩展内部集成电路总线的装置实施例二中74FST3251的连接示意图。具体实施方式图6为本发明扩展内部集成电路总线的方法实施例的流程图,包括步骤61、通过选通复用器将I2C总线的串行时钟线(SCL)扩展为多个串行时钟线;一个选通复用器可将一个I2C总线的串行时钟线扩展为多个12(:总线的串行时钟线;当有多个12(:总线时,可使用与12(:总线相同数量的选通复用器,——对应,扩展各I2C总线的SCL。选通复用器可由控制器的可编程输入/输出(PIO)接口信号控制扩展前后SCL的选通,详见装置实施例二中的说明。步骤62、将所述多个串行时钟线连接到各从器件;其中,各从器件为待连接到i2c总线的器件。步骤63、将所述12(:总线的串行数据线直接与所述各从器件连接,完成i2c总线的扩展。当待连接到12C总线的器件较多时,选通复用器扩展之前,可通过总线开关扩展,对扩展得到的一条i2c总线再通过选通复用器进行扩展,对扩展得到的另一条i2c总线连接板级i2c器件。这样就实现了i2c总线的进一步扩展。并且,总线开关的切换使得电子系统在选通一条扩展得到的i2c总线同时,断开另一条扩展得到的12(]总线,大大减少了连接的器件数量,避免了器件数量过多带来的信号失真问题,提高了具有较多从器件的电子系统中12(:总线工作的可靠性。总线开关的切换可由控制器输出的pio信号进行控制,详见装置实施例二的说明。上述方法实施例通过将使用选通复用器扩展i2c总线,大大降低了扩展成本。图7为本发明扩展内部集成电路总线的装置实施例一的结构示意图。扩展i2c总线的装置78包括选通复用器76,选通复用器76通过pio线72及i2c总线73的串行时钟线74与控制器71连接;控制器71通过pio线72向选通复用器76发送pi0信号,控制选通复用器76从扩展的串行时钟线77中选择一条,与扩展前的串行时钟线74连通。选通复用器76通过扩展的串行时钟线77与各从器件即子卡79连接;控制器71通过i2c总线73的串行数据线75直接与各子卡79连接。其中,控制器71即芯片级的计算机,通过将计算机的cpu、ram、r0m、定时数器和多种1/0接口集成在一片芯片上形成,为不同的应用场合做不同组合控制。pio—般指控制器上的可编程i/0接口,可用于外围器件的控制或状态监控。扩展i2c总线的装置还可包括总线开关,对控制器引出的i2c总线进行第一级扩展,将扩展得到的i2c总线的串行时钟线通过选通复用器进行扩展,实现i2c总线的第二级扩展图8为本发明扩展内部集成电路总线的装置实施例二的结构示意图。本实施例扩展I2C总线的装置与装置实施例一的不同之处在于还包括总线开关808及板级I2C器件810。总线开关808对I2C总线805进行第一级扩展,将I2C总线805扩展为第一I2C总线806和第二I2C总线807;选通复用器809对第一I2C总线806进行扩展,扩展方式同装置实施例一。板级I2C器件810为现有的板级I2C器件,即一条I力总线连接8个从器件,可与控制器801设置在同一块电路板上,换句话说,板级lt器件810设置于电子系统的母板上。板级I2C器件810与选通复用器809共同实现了对I2C总线805的第二次扩展,保证了扩展I2C总线的装置在子卡811较多的情况下,仍能满足电子系统对It总线的需求。本实施例中,总线开关808可为SN74CBTD3126,选通复用器809可为74FST3251。如图9所示,当OEn(n=l,2,3,4,下同)为逻辑电平T,且OEn驱动的开关打通,数据线nA和nB导通相连,nA的信息直接传输到nB。当使用SN74CBTD3126进行第一级扩展时,如图10所示。控制器801通过第一组PIO线803连接SN74CBTD3126。第一组PIO线803包括两个PIO线PIOl和PI02。使用控制器的PIOl和PI024巴I2C总线805切换连接到I2C总线806或I2C总线807。其中,控制器801的PIOl连接到总线开关(BusSwitch)SN74CBTD3126的OE1和OE2,控制器801的PI02连接到BusSwitchSN74CBTD3126的OE3和OE4。I2C总线805的SCL0连接到SN74CBTD3126的1A和3A输入端,SDAO连接到SN74CBTD3126的2A和4A输入端,SN74CBTD3126的输出端1B、2B、3B、4B分别连接到第一I2C总线806的SCL1、SDA1,第二I2C总线807的SCL2、SDA2。当控制器801的PIOl输出为逻辑电平"1",PI02输出为逻辑电平"0"时,即当BusSwitchSN74CBTD3126的0E1和OE2的输入为逻辑电平"1",OE3和OE4的输入为逻辑电平"0"时,SN74CBTD3126的内部开关1A-1B、2A-2B导通。即,从控制器801到BusSwitchSN74CBTD3126的TC总线805(SCL0/SDA0)直接连通到第一I2C总线806(SCL1/SDA1),而第二TC总线807(SCL2/SDA2)则处于不连通的状态;当控制器801的PI01输出为逻辑电平"0",PI02输出为逻辑电平"1"时,即当BusSwitchSN74CBTD3126的0E1和0E2的输入为逻辑电平"0",0E3和0E4的输入为逻辑电平T时,BusSwitchSN74CBTD3126的内部开关3A-3B、4A-4B导通,即从控制器801到BusSwitchSN74CBTD3126的I2C总线805(SCL0/S副)直接连通到第二I2C总线807(SCL2/SDA2),而第一I2C总线806(SCL1/SDA1)则处于不连通的状态。为了保证扩展得到的I2C总线在不连通时处于稳定状态,可用上拉电阻把SCL1/SDA1和SCL2/SDA2置于稳定的逻辑电平"1"状态,以避免出现不稳定状态。如图11所示,选通复选器74FST3251由信号线S0、Sl、S2控制A端连通到Bn(n-O,1,2...7,下同)端。信号线S0、Sl、S2逻辑电平的取值控制的A到Bn的连通关系如表1所示。表1A与Bn的导通关系表<table>tableseeoriginaldocumentpage10</column></row><table>OE信号全局控制信号A到信号Bn的导通。当OE为逻辑电平"0"时,信号A依据S0、Sl、S2的逻辑电平值的组合关系导通到Bn;当0E为逻辑电平"1",信号线A与Bn都不连通。当通过74FST3251对I2C总线805进行第二级扩展时,如图12所示。控制器801的第二组PIO线804连接到74FST3251的S0、Sl、S2。第二组PIO线804包括三个PIO线PI03、PI04及PI05。PI03连接到SO,PI04连接到Sl,PI05连接到S2。第一I2C总线806的SCL2信号线连接到74FST3251的输入端A,74FST3251的输出端Bl~B8分别连接到扩展后的I2C总线821~I2C总线828的SCL3~SCL11。另外,74FST3251的0E输入引脚直接连接到逻辑地,即OE的输入为逻辑电平"0",保证74FST3251始终可以正常工作。控制器801输出的信号PI03、PI04、PI05作为74FST3251的输入信号S0、Sl、S2,即,PI03、PI04、PI05输出的组合逻辑作为S0、Sl、S2的输入组合逻辑,控制74FST3251的输入A切换连通到输出端Bn,从而控制I2C总线805的SCL1连通到TC总线821~I2C总线828的SCL(SCL3~SCL11)。连通控制关系如表2所示。表2SCL1与SCL3~SCL11连通信息输入端信号功《匕fi匕<table>tableseeoriginaldocumentpage11</column></row><table>类似地,为了保证扩展到的rc总线821I2C总线828在不连通时处于稳定状态,可用上拉电阻把SCL3-SCL11置于稳定的逻辑电平"1"状态,避免出现不稳定状态。当控制器801访问母板上的板级I2C器件810时,在第一级扩展时,通过使pioi等于逻辑电平"r、pio2等于逻辑电平"o",把i2c总线805切换到第二I2C总线807。I2C总线805和第一I2C总线806不连接,可依靠上拉电阻使第一I2C总线806处于总线静止状态,即,第二I2C总线8Q6上没有信息传输。当控制器801访问子卡811上的I2C器件时,通过使PIOl等于逻辑电平"0"、PI02等于逻辑电平"1",把I2C总线805切换到第一rc总线806,再通过置PI03、PI04、PI05为确定的逻辑电平值,把第一I2C总线806的SCL切换到对应需要访问的子卡的I2CSCL,切换控制如表2所示。这样,被访问的子卡的I2C总线通过切换机制与TC总线805连通,实现总线连通,从而控制器801访问子卡。而不被访问的I2C总线的SCL通过上拉电阻处于高电平,即处于静止状态。当子卡较少时,可以去掉第一级扩展,直接采用第二级扩展。如图7中,控制器与选通复用器直接相连。当子卡较多时,即需要连接的从器件较多时,通过总线开关的第一级扩展,能够在选通12(:总线扩展的一条分支电路的同时,断开12(:总线805扩展的另一条分支电路,从而大大减少了电连接的器件的数量,从而降低了It总线的电容性负载,避免了对跳变信号的阻止产生的回沟等信号失真问题,保证了"C总线工作的可靠性。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。权利要求1、一种扩展内部集成电路总线的方法,其特征在于,包括通过选通复用器将内部集成电路I2C总线的串行时钟线扩展为多个串行时钟线;将所述多个串行时钟线连接到各从器件;将所述I2C总线的串行数据线直接与所述各从器件连接。2、根据权利要求1所述的扩展内部集成电路总线的方法,其特征在于,所述选通复用器在可编程输入输出PIO信号控制下切换所述多条串行时钟线。3、根据权利要求1所述的扩展内部集成电路总线的方法,其特征在于,还包括所述I2C总线通过总线开关扩展得到。4、根据权利要求3所述的扩展内部集成电路总线的方法,其特征在于,所述总线开关在可编程输入输出PIO信号控制下选通所述"C总线。5、一种扩展内部集成电路总线的装置,其特征在于,包括选通复用器,所述选通复用器通过PIO线及I2C总线的串行时钟线与控制器连接;所述选通复用器通过扩展的串行时钟线与各从器件连接;所述控制器通过所述I2C总线的串行数据线直接与所述各从器件连接。6、根据权利要求5所述的扩展内部集成电路总线的装置,其特征在于,所述控制器与选通复用器之间设置有连接板级I2C器件的总线开关;所述总线开关与所述控制器之间通过P10线及一条TC总线连接;所述总线开关与所述选通复用器之间通过扩展得到的一条i2c总线的串行时钟线连接。全文摘要本发明涉及一种扩展内部集成电路总线的方法及装置,方法包括通过选通复用器将内部集成电路I<sup>2</sup>C总线的串行时钟线扩展为多个串行时钟线;将所述多个串行时钟线连接到各从器件;将所述I<sup>2</sup>C总线的串行数据线直接与所述各从器件连接。装置包括选通复用器,所述选通复用器通过PIO线及I<sup>2</sup>C总线的串行时钟线与控制器连接;所述选通复用器通过扩展的串行时钟线与各从器件连接;所述控制器通过所述I<sup>2</sup>C总线的串行数据线直接与所述各从器件连接。通过简单的逻辑器件选通复用器实现I<sup>2</sup>C总线在模块化设计系统中的扩展,避免了昂贵的可编程I<sup>2</sup>C扩展器件的使用,大大降低了I<sup>2</sup>C总线扩展成本以及模块化设计系统的成本,适合于对成本控制严格的环境。文档编号G06F13/40GK101398801SQ200810224519公开日2009年4月1日申请日期2008年10月17日优先权日2008年10月17日发明者黄金灿申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1