一种数据传输方法及i2c接口扩展器的制造方法
【专利摘要】本发明实施例公开了一种数据传输方法及I2C接口扩展器,本发明实施例中数据传输方法包括:控制器向与控制器相连的开关发送第一控制信号,第一控制信号用于控制开关的通断,当开关导通时,控制器通过开关向与开关相连的I2C接口发送第二控制信号,第二控制信号用于控制与I2C接口相连的I2C器件,I2C接口将所述第二控制信号传输至I2C器件,实现了在开关导通时,控制器可以与开关相连的I2C接口对I2C器件发送第二控制信号,避免在I2C器件地址相同时发生的通信冲突。
【专利说明】一种数据传输方法及12C接口扩展器
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种数据传输方法及I2C接口扩展器。
【背景技术】
[0002]为了提高系统的兼容性及可扩展性能力,带有I2C (Inter — IntegratedCircuit)总线的嵌入式系统把I2C总线扩展出去,控制模块与I2C器件间通过外部线缆进行连接,并可以通过连接不同的I2C器件实现各种不同的功能。
[0003]但是在现有技术中,控制模块是通过I2C器件地址来访问I2C器件的,如果在一个系统中出现多个I2C器件地址相同的情况,会造成系统的I2C通信冲突。
【发明内容】
[0004]本发明提供一种数据传输方法及I2C接口扩展器,能够避免在I2C器件地址相同时发生的通信冲突。
[0005]本发明实施例提供的数据传输方法,包括:控制器向与控制器相连的开关发送第一控制信号,第一控制信号用于控制开关的通断,当开关导通时,控制器通过开关向与开关相连的I2C接口发送第二控制信号,第二控制信号用于控制与I2C接口相连的I2C器件,I2C接口将所述第二控制信号传输至I2C器件。
[0006]本发明实施例提供的I2C接口扩展器,包括:多个输入/输出I/O 口的控制器,开关以及I2C接口,控制器用于发送第一控制信号及第二控制信号,第一控制信号用于控制开关的通断,第二控制信号用于控制I2C器件,开关的第一端与控制器的多个I/O 口中的一个I/O 口相连,开关的第二端与I2C接口相连,开关用于根据第一控制信号导通或断开,I2C接口的一端与开关的第二端相连,I2C接口的另一端通过线缆与I2C器件相连,I2C接口用于传输第二控制信号至I2C器件。
[0007]从以上技术方案可以看出,本发明实施例具有以下优点:
[0008]本发明实施例中,控制器向与控制器相连的开关发送第一控制信号,第一控制信号用于控制开关的通断,当开关导通时,控制器通过开关向与开关相连的I2C接口发送第二控制信号,第二控制信号用于控制与I2C接口相连的I2C器件,I2C接口将第二控制信号传输至I2C器件,实现了在开关导通时,控制器可以通过与开关相连的I2C接口对I2C器件发送第二控制信号,避免在I2C器件地址相同时发生的通信冲突。
【专利附图】
【附图说明】
[0009]图1为本发明实施例中数据传输方法一个实施例示意图;
[0010]图2为本发明实施例中数据传输方法另一实施例示意图;
[0011]图3为本发明实施例中I2C接口扩展器的一个实施例示意图;
[0012]图4为本发明实施例中I2C接口扩展器的另一实施例示意图。【具体实施方式】
[0013]本发明实施例提供一种数据传输方法及I2C接口扩展器,能够避免在I2C器件地址相同时发生的通信冲突。
[0014]请参照图1,本发明实施例中数据传输方法一个实施例包括:
[0015]101、控制器向与控制器相连的开关发送第一控制信号;
[0016]本实施例中,该第一控制信号用于控制开关的通断。
[0017]102、当开关导通时,控制器通过开关向与开关相连的I2C接口发送第二控制信号;
[0018]本实施例中,在开关导通时,控制器可以通过导通的开关向I2C接口发送第二控制信号,其中该第二控制信号用于控制与I2C接口相连的I2C器件,该I2C器件具体的功能不做限定,可以根据I2C器件所在的I2C系统来选择不同功能的I2C器件,例如,I2C器件可以为温度采集模块,第二控制信号可以用于控制温度采集模块采集温度值。
[0019]103、I2C接口将所述第二控制信号传输至I2C器件。
[0020]本实施例中,I2C接口可以将第二控制信号传输至与其相连的I2C器件。
[0021]本实施例中,控制器向与控制器相连的开关发送第一控制信号,第一控制信号用于控制开关的通断,当开关导通时,控制器通过开关向与开关相连的I2C接口发送第二控制信号,第二控制信号用于控制与I2C接口相连的I2C器件,I2C接口将所述第二控制信号传输至I2C器件,实现了在开关导通时,控制器可以通过与开关相连的I2C接口对I2C器件发送第二控制信号,避免在I2C器件地址相同时发生的通信冲突。
[0022]为了便于理解,下面以一具体实例对本发明实施例的数据传输方法中进行描述,请参阅图2,本发明实施例中数据传输方法另一实施例包括:
[0023]201、控制器从与控制器相连的I2C器件控制模块接收控制指令;
[0024]202、控制器根据控制指令向与控制器相连的开关发送第一控制信号;
[0025]本实施例中,首先控制器从与其相连的I2C器件控制模块接收控制指令,然后根据控制指令向与控制器相连的开关发送第一控制信号,第一控制信号用于控制开关的通断,其中,当第一控制信号为高电平时,开关导通,当第一控制信号为低电平时,开关断开,在实际应用中,控制器可以连接多个开关,控制指令可以用于告知控制器选择哪个开关及向选定的开关发送哪种电平的第一控制信号,在实际应用中,该控制器可以为PCF8574器件,开关可以为SN74CBT3257器件。
[0026]需要说明的是,该开关包括至少两个输入端及两个输出端。
[0027]203、控制器从I2C器件控制模块接收第二控制信号;
[0028]204、当开关导通时,控制器通过开关向与开关相连的I2C接口发送第二控制信号;
[0029]本实施例中,控制器接收到控制指令之后,控制器可以从I2C器件控制模块接收第二控制信号,然后在步骤202中,开关接收到第一控制信号为高电平时,开关导通,此时控制器通过该导通的开关向与开关相连的I2C接口发送第二控制信号,其中第二控制信号用于控制与I2C接口相连的I2C器件,在实际应用中,根据选择开关的种类不同,开关可以与多个I2C接口相连,此时每个I2C接口与一个I2C器件相连,此时控制器接收控制指令包括从该开关的哪个输出端传输,该控制器根据接收到的该控制指令发送第一控制信号至该开关,其中第一控制信号包括导通该开关的哪个输出端,例如,一个开关包括输出端A及输出端B,输出端A与I2C接口 A相连,输出端B与I2C接口 B相连,此时控制器接收控制指令包括从该开关的输出端A传输,则开关接收到的第一控制信号包括导通该开关的输出端A,然后当开关接收到第二控制信号时,该开关将该第二控制信号通过输出端A传输至I2C接Π A。
[0030]205、12C接口将第二控制信号传输至I2C器件。
[0031]本实施例中,当I2C接口接收到第二控制信号后,I2C接口将第二控制信号传输至与其相连的I2C器件,使得I2C器件可以根据接收到的第二控制信号执行相应的操作。
[0032]本实施例中,控制器从与控制器相连的I2C器件控制模块接收控制指令,控制器根据控制指令向与控制器相连的开关发送第一控制信号,控制器从I2C器件控制模块接收第二控制信号,当开关导通时,控制器通过开关向与开关相连的I2C接口发送第二控制信号,I2C接口将第二控制信号传输至I2C器件,实现了在开关导通时,控制器可以通过与开关相连的I2C接口对I2C器件发送第二控制信号,避免在I2C器件地址相同时发生的通信冲突,同时可以根据控制器所在的系统的规模来选择不同数量的I2C接口,进而可以适用于不同规模的系统。
[0033]下面对用于执行上述数据传输方法的本发明实施例的I2C接口扩展器进行说明,其基本逻辑结构参考图3,本发明实施例中I2C接口扩展器一个实施例包括:多个输入/输出(1/0,Input/Output) 口的控制器 301,开关 302 以及 I2C 接口 303 ;
[0034]控制器301用于发送第一控制信号及第二控制信号,第一控制信号用于控制开关302的通断,第二控制信号用于控制I2C器件;
[0035]开关302的第一端与控制器的多个I/O 口中的一个I/O 口相连,开关302的第二端与I2C接口 303相连,开关302用于根据第一控制信号导通或断开;
[0036]I2C接口 303的一端与开关的第二端相连,I2C接口 303的另一端通过线缆与I2C器件相连,I2C接口 303用于传输第二控制信号至I2C器件。
[0037]本实施例中,控制器301用于发送第一控制信号及第二控制信号,第一控制信号用于控制开关302的通断,第二控制信号用于控制I2C器件,开关302的第一端与控制器的多个I/O 口中的一个I/O 口相连,开关302的第二端与I2C接口 303相连,开关302用于根据第一控制信号导通或断开,I2C接口 303的一端与开关的第二端相连,I2C接口 303的另一端通过线缆与I2C器件相连,I2C接口 303用于传输第二控制信号至I2C器件,实现了在开关导通时,控制器301可以通过与开关302相连的I2C接口 303对I2C器件发送第二控制信号,避免在I2C器件地址相同时发生的通信冲突。
[0038]为了更好的理解上述的实施例,下面以控制器为PCF8574,开关为SN74CBT3257为例的具体实施例对I2C接口扩展器中包括的各个元件的交互对I2C接口扩展器中的数据交互方式进行说明,请参阅图4,包括:
[0039]PCF8574 器件 401、多个 SN74CBT3257 器件 402 和多个 I2C 接口 403。
[0040]为了方便说明,本实施例仅以一个PCF8574器件401通过一个SN74CBT3257器件402与一个12C接口 403相连进行说明。
[0041]PCF8574器件401的I2C总线接口通过I2C总线I2C器件控制模块(图中未示出)相连,在实际应用中,I2C总线包括串行时钟(SCL,serial clock)线和串行数据(SDA,serialdata)线,PCF8574器件401通过I2C总线接收I2C器件控制模块发送的控制指令,PCF8574器件401的8个I/O 口中的一个I/O 口与一个SN74CBT3257器件402的用于切换开关信号的管脚相连,PCF8574器件401可以根据接收到的控制指令向SN74CBT3257器件402的用于切换开关信号的管脚发送第一控制信号,其中,该第一控制信号用于控制SN74CBT3257器件402的通断,例如PCF8574器件401先后输出第一控制信号0x00和第一控制信号0x80,表示将PCF8574器件401的最高位的电平拉低再置高,此时PCF8574器件401的低7位状态保持不变,SN74CBT3257器件402根据第一控制信号0x00和第一控制信号0x80从断开切换到导通,在实际应用中,PCF8574器件401可以连接8片SN74CBT3257器件402,控制指令可以用于告知PCF8574器件401选择哪个SN74CBT3257器件402及向选定的SN74CBT3257器件402发送哪种电平的第一控制信号。
[0042]PCF8574器件401通过I2C总线接收I2C器件控制模块发送的第二控制信号,SN74CBT3257器件402的输入端与I2C总线相连,当PCF8574器件401向SN74CBT3257器件402发送的第一控制信号为高电平时,PCF8574器件401可以通过I2C总线向SN74CBT3257器件402发送第二控制信号,其中第二控制信号用于控制与I2C接口 403相连的I2C器件(图中未示出)。
[0043]SN74CBT3257器件402的输出端与I2C接口 403的一端相连,SN74CBT3257器件402通过与I2C接口 403相连的输出端向I2C接口 403发送第二控制信号,在实际应用中,SN74CBT3257器件402可以连接4个I2C接口 403,此时PCF8574器件401接收控制指令包括从该SN74CBT3257器件402的哪个输出端传输,该PCF8574器件401根据接收到的该控制指令发送第一控制信号至SN74CBT3257器件402,其中第一控制信号包括导通SN74CBT3257器件402的哪个输出端,在实际应用中,SN74CBT3257器件402包括四个输出端(例如,输出端A、输出端B、输出端C和输出端D),预设SN74CBT3257器件402的输出端A与I2C接口 A相连,输出端B与I2C接口 B相连,此时PCF8574器件401接收控制指令包括从SN74CBT3257器件402的输出端A传输,则SN74CBT3257器件402接收到的第一控制信号包括导通SN74CBT3257器件402的输出端A,当SN74CBT3257器件402接收到第二控制信号时,SN74CBT3257器件402将该第二控制信号通过输出端A传输至I2C接口 A。
[0044]需要说明的是,若选择其它型号的开关,该开关的第一端与控制器的多个I/O 口中的一个I/o 口相连,该开关的第二端与I2C接口相连,该开关的第三端与I2C总线相连。
[0045]I2C接口 403接收到第二控制信号后,将第二控制信号传输至与其相连的I2C器件,使得I2C器件可以根据接收到的第二控制信号执行相应的操作。
[0046]需要说明的是,由于一片PCF8574器件401有八个I/O 口,即可以输出8个控制信号,所以最多可以控制8片SN74CBT3257器件402,而一片SN74CBT3257器件402可以连接4个I2C接口 403,所以一片PCF8574器件401最多可以连接32个I2C接口 403,在I2C器件的地址都相同的情况下,最少也可以连接8个I2C地址相同的I2C器件。PCF8574器件401有3个不同地址的管脚,并通过外部电阻上下拉来选择地址,根据组合关系,在一条I2C总线上最多可以连接9片PCF8574器件401,本实施例的I2C接口扩展器最多可以连接288个不同地址的I2C器件,最少也可以连接72个相同地址的I2C器件,当然本领域技术人员还可以选择其他型号的控制器和包括至少两个输入端及两个输出端的开关。
[0047]本实施例中,PCF8574器件401发送第一控制信号及第二控制信号,第一控制信号用于控制SN74CBT3257器件402的通断,第二控制信号用于控制I2C器件,SN74CBT3257器件402的用于切换开关信号的管脚与PCF8574器件401的多个I/O 口中的一个I/O 口相连,SN74CBT3257器件402的输出端与I2C接口 403相连,SN74CBT3257器件402用于根据第一控制信号导通或断开,I2C接口 403的一端与开关的第二端相连,I2C接口 403的另一端通过线缆与I2C器件相连,I2C接口 403用于传输第二控制信号至I2C器件,实现了在SN74CBT3257器件402导通时,PCF8574器件401可以通过与SN74CBT3257器件402相连的I2C接口 403对I2C器件发送第二控制信号,避免在I2C器件地址相同时发生的通信冲突。
[0048]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0049]以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【权利要求】
1.一种数据传输方法,其特征在于,包括: 控制器向与所述控制器相连的开关发送第一控制信号,所述第一控制信号用于控制所述开关的通断; 当所述开关导通时,所述控制器通过所述开关向与所述开关相连的I2C接口发送第二控制信号,所述第二控制信号用于控制与所述I2C接口相连的I2C器件; 所述I2C接口将所述第二控制信号传输至所述I2C器件。
2.根据权利要求1所述的方法,其特征在于,所述控制器向与所述控制器相连的开关发送第一控制信号的具体步骤包括: 所述控制器从与所述控制器相连的所述I2C器件控制模块接收控制指令; 所述控制器根据所述控制指令向与所述控制器相连的开关发送第一控制信号。
3.根据权利要求1所述的方法,其特征在于,所述控制器通过所述开关向与所述开关相连的I2C接口发送第二控制信号之前的步骤包括: 所述控制器从所述I2C器件控制模块接收所述第二控制信号。
4.根据权利要求1所述的方法,其特征在于, 当所述第一控制信号为高电平时,所述开关导通; 当所述第一控制信号为低电 平时,所述开关断开。
5.—种I2C接口扩展器,其特征在于,包括: 多个输入/输出I/O 口的控制器,开关以及I2C接口; 所述控制器用于发送第一控制信号及第二控制信号,所述第一控制信号用于控制开关的通断,所述第二控制信号用于控制I2C器件; 所述开关的第一端与所述控制器的多个I/O 口中的一个I/O 口相连,所述开关的第二端与所述I2C接口相连,所述开关用于根据所述第一控制信号导通或断开; 所述I2C接口的一端与所述开关的第二端相连,所述I2C接口的另一端通过线缆与所述I2C器件相连,所述I2C接口用于传输所述第二控制信号至所述I2C器件。
6.根据权利要求5所述的I2C接口扩展器,其特征在于, 所述控制器的I2C接口通过I2C总线与I2C器件控制模块相连,所述控制器还用于接收所述I2C器件控制模块发送的控制指令,并根据所述控制指令向所述开关发送所述第一控制信号。
7.根据权利要求6所述的I2C接口扩展器,其特征在于, 所述控制器,还用于从所述I2C器件控制模块接收所述第二控制信号,并将所述第二控制信号通过导通的所述开关及所述I2C接口转发至所述I2C器件。
8.根据权利要求5所述的I2C接口扩展器,其特征在于,当所述第一控制信号为高电平时,所述开关导通; 当所述第一控制信号为低电平时,所述开关断开。
9.根据权利要求5至8中任一项所述的I2C接口扩展器,其特征在于,所述控制器为PCF8574器件,所述开关为SN74CBT3257器件; 所述PCF8574器件的多个I/O 口中的一个I/O 口与一个所述SN74CBT3257器件的用于切换开关信号的管脚相连; 所述SN74CBT3257器件的输入端与所述I2C总线相连,所述SN74CBT3257器件的输出端与所述I2C接口相连。.
【文档编号】G06F13/376GK103473206SQ201310425374
【公开日】2013年12月25日 申请日期:2013年9月17日 优先权日:2013年9月17日
【发明者】贺文健 申请人:广东威创视讯科技股份有限公司