CN100353718C - 一种扩展i2c总线的系统及方法 - Google Patents
一种扩展i2c总线的系统及方法 Download PDFInfo
- Publication number
- CN100353718C CN100353718C CNB031571379A CN03157137A CN100353718C CN 100353718 C CN100353718 C CN 100353718C CN B031571379 A CNB031571379 A CN B031571379A CN 03157137 A CN03157137 A CN 03157137A CN 100353718 C CN100353718 C CN 100353718C
- Authority
- CN
- China
- Prior art keywords
- bus
- clock
- clock switch
- line
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种扩展I2C总线的方法和系统,使用该方法,可以对多个地址相同的同类I2C器件进行读写操作。该方法包括以下步骤:1)确定与I2C总线相连的需要进行操作的器件;2)接通与已确定的需要操作的器件连接的时钟线;3)对已接通时钟线的器件进行I2C总线的读写操作。所述系统包括:I2C控制器,对与I2C总线连接的器件的读写操作进行控制;多个通过数据线与所述I2C控制器连接的器件;时钟开关,通过相应的时钟线与所述多个I2C器件分别连接;以及CPU,用于确定需要所述多个器件中要操作器件,并控制所述时钟开关仅接通与确定要进行操作的器件相连的时钟线所对应的时钟开关。本发明可以简化单板的设计,并节约制造成本。
Description
技术领域
本发明涉及一种I2C总线设计技术,具体地说,本发明涉及一种扩展I2C总线的系统及扩展I2C总线的方法,以实现对多个具有相同地址的同类器件进行读写操作的功能。
背景技术
I2C串行接口总线是Philips公司定义的同步串行数据传输总线,用于读取光模块,EEPROM和实时时钟等器件中存储的信息。目前广泛地使用在路由器和以太网交换机等网络设备的电路设计中。
I2C串行接口总线是一种2线串行接口总线,总线分为SDA(串行数据线)和SCL(串行时钟线)。在同一条总线上可以挂接多个器件,各个器件通过对应的器件地址来区分,在总线中,同类器件的地址是不能相同的,否则就会造成总线冲突,读写异常,无法完成对应的功能。
然而在实际的设计中却常常遇到这样的情况:单板中存在多个地址相同的同类器件,这些同类器件的地址是无法改变的,如光模块,这样就无法提取相应的信息,因为两个以上的同类器件会同时做出应答,严重时可能会损坏器件。
对于设计中出现的上述问题,可以通过复杂的编程解决,通过可编程逻辑可以实现区别相同I2C总线地址器件的功能。但其程序设计复杂,需要软件来模拟I2C总线时序;并且单板设计成本高,需要特定的器件来完成相应的功能。因此有必要提供一种对I2C总线上相同地址的同类器件进行读写操作的新方法。
发明内容
本发明就是为解决现有技术存在的上述问题而做出的。本发明的目的是提供一种扩展I2C总线的方法,对I2C总线上相同地址的同类器件进行读写操作。
为实现上述目的,本发明提供了一种扩展I2C总线的方法,包括以下步骤:
1)确定与I2C总线相连的器件中需要进行操作的器件;
2)仅使与已确定的需要操作的器件连接的所述I2C总线中的时钟线所对应的时钟开关处于接通;
3)对已接通时钟线的器件,通过所述I2C总线中的数据线和时钟线进行I2C总线的读写操作;
其中:I2C总线包括一组时钟开关,每个时钟开关通过I2C总线中的相应时钟线与器件分别连接,时钟开关组通过时钟线与I2C控制器连接,所述器件通过数据线与所述I2C控制器连接。
所述的步骤2)由时钟开关完成。所述时钟开关的输出在未接通相应的时钟线时都是关闭的。所述时钟开关是通过可编程逻辑器件构成的三态门实现的,当所述时钟开关接通时,该时钟开关输出时钟信号,当所述时钟开关关闭时,该时钟开关输出为高阻信号。
本方法还包括下述步骤:
4)在所述I2C总线的读写操作完成后,关闭相应的时钟开关。
本发明还提供一种扩展的I2C总线系统,包括:
I2C控制器,对与I2C总线连接的器件通过所述I2C总线中的数据线和时钟线进行的读写操作进行控制;
多个通过所述I2C总线中的数据线与所述I2C控制器连接的I2C器件;
时钟开关组,通过所述I2C总线中的相应的时钟线与所述多个器件分别连接,所述时钟开关组通过时钟线与所述I2C控制器连接;以及
CPU,用于确定需要所述多个器件中要操作器件,并通过控制所述时钟开关组,仅使与确定要进行操作的器件相连的所述I2C总线中的时钟线所对应的时钟开关处于接通。
本发明的方法和系统实现简单,技术难度小,成本低,可以简化单板的设计,并节约制造成本。
附图说明
图1是本发明的原理示意图;
图2是本发明的一个实施例的读写操作流程图。
具体实施方式
如图1所示,本发明的扩展I2C总线系统包括:I2C控制器、时钟开关组、CPU以及多个I2C器件。
在本发明的实施方案中,I2C控制器是指I2C总线协议中的控制设备,用于对与I2C总线连接的器件的读写操作进行控制。I2C控制器提供SDA数据线和时钟线。时钟开关组通过SCL时钟线与I2C控制器连接,并在CPU的控制下对I2C总线时钟进行控制。此外,I2C控制器的SDA数据线直接连到n个I2C器件上,实现数据读写功能。
时钟开关组根据I2C控制器的SCL时钟线输出n个时钟线分支SCL1,SCL2...SCLn,分别与相应的I2C器件连接。CPU确定在多个器件中要操作的器件,并向时钟开关组输出控制信号,时钟开关组根据控制信号接通对应器件的开关,然后由I2C控制器对对应的器件进行读写操作。
时钟开关组可以通过多种方式来实现。优选地通过可编程逻辑器件来实现。其实现的原理是通过可编程器件来模拟三态门,门打开时输出时钟信号,门关闭时输出为高阻信号。对应的三态门由CPU写可编程逻辑器件的寄存器来控制。所述的可编程逻辑器件可以是公知的通用可编程逻辑器件,例如EPM7256。
下面以一个四端口的时钟开关组为例,说明可编程逻辑器件设计的程序流程。第一步,确定可编程器件通用I/O管脚与输入输出的对应关系,设置一个管脚为SCL的输入,四个管脚为时钟开关的输出时钟SCL1到SCL4,同时利用其他管脚与CPU总线的数据线,地址线和控制线连接。第二步,在可编程逻辑器件内部设计一个四位寄存器,寄存器初始值为“0000”,每一个比特为对应与一个时钟输出。对应的比特位为‘1’时打开开关,为‘0’时关闭开关,根据寄存器的值来判断进行操作的器件,并进行相应的输出。这样,要对器件1进行操作时,就将寄存器的值写为“0001”,此时SCL1输出SCL时钟,其他管脚SCL2,SCL3和SCL4输出高阻态,操作完成后,将寄存器的值写回到“0000”,此时所有输出SCL1到SCL4输出高阻态。如果要操作器件2,那么将寄存器写为“0010”,对其它器件的操作也依此类推。
下面结合图2对本发明的方法进行详细的描述。如图2所示,如果对I2C器件1进行读写操作,首先由CPU确定需要进行操作的器件,对于集中式系统来说,所述CPU可以是网络设备的CPU。而对于分布式系统来说,所述CPU是单板的CPU。然后CPU控制时钟开关将时钟线SCL1接通,其他时钟线关闭。即控制时钟线SCL1的时钟开关输出为总线时钟,而控制其它时钟线的时钟开关输出为高阻状态。那么此时只有I2C器件1对控制器的请求做出回应,其他的器件输出高阻态,对器件1的操作没有任何影响。在读写操作完成后,时钟开关关闭相应的时钟开关,此时控制时钟线SCL1的时钟开关输出为高阻状态。在未接通任何时钟开关时,所有时钟输出都是关闭的(即呈高阻状态)。这时不能进行读写操作。
以上对本发明进行了详细的描述,但本领域的普通技术人员应该意识到,在不脱离本发明的范围和精神的情况下,各种改进、添加和替换都是可能的,并都在本发明的权利要求所限定的范围内。
Claims (9)
1.一种扩展I2C总线的方法,包括以下步骤:
1)确定与I2C总线相连的器件中需要进行操作的器件;
2)仅使与已确定的需要操作的器件连接的所述I2C总线中的时钟线所对应的时钟开关处于接通;
3)对已接通时钟线的器件,通过所述I2C总线中的数据线和时钟线进行I2C总线的读写操作;
其中:I2C总线包括一组时钟开关,每个时钟开关通过I2C总线中的相应时钟线与器件分别连接,时钟开关组通过时钟线与I2C控制器连接,所述器件通过数据线与所述I2C控制器连接。
2.根据权利要求1所述的扩展I2C总线的方法,其特征在于所述时钟开关的输出在未接通相应的时钟线时都是关闭的。
3.根据权利要求1所述的方法,其特征在于,进一步包括:
4)在所述I2C总线的读写操作完成后,关闭相应的时钟开关。
4.根据权利要求1所述的方法,其特征在于,当所述时钟开关接通时,该时钟开关输出时钟信号,当所述时钟开关关闭时,该时钟开关输出为高阻信号。
5.根据权利要求1-4任一项所述的方法,其特征在于,当所述时钟开关关闭时,相应器件的输出呈高阻态,而当所述时钟开关接通时,相应器件进行读写操作。
6.一种扩展的I2C总线系统,其特征在于包括:
I2C控制器,对与I2C总线连接的器件通过所述I2C总线中的数据线和时钟线进行的读写操作进行控制;
多个通过所述I2C总线中的数据线与所述I2C控制器连接的器件;
时钟开关组,包括一组时钟开关,每个时钟开关通过所述I2C总线中的相应的时钟线与所述多个器件分别连接,所述时钟开关组通过时钟线与所述I2C控制器连接;以及
CPU,用于确定需要所述多个器件中要操作器件,并通过控制所述时钟开关组,仅使与确定要进行操作的器件相连的所述I2C总线中的时钟线所对应的时钟开关处于接通。
7.根据权利要求6所述的扩展I2C总线的系统,其特征在于,所述时钟开关组是通过可编程逻辑器件实现的。
8.根据权利要求7所述的扩展I2C总线的系统,其特征在于,所述可编程逻辑器件模拟一组三态门,当所述时钟开关组中某一时钟开关接通时,其输出信号等于输入信号;当其关闭时,其输出为高阻信号。
9.根据权利要求6、7或8所述的扩展I2C总线的系统,其特征在于,与所述的时钟开关组中关闭的时钟开关相连的器件的输出呈高阻态,与所述时钟开关组中接通的时钟开关相连的器件可以响应I2C总线控制器的请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031571379A CN100353718C (zh) | 2003-09-16 | 2003-09-16 | 一种扩展i2c总线的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031571379A CN100353718C (zh) | 2003-09-16 | 2003-09-16 | 一种扩展i2c总线的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1599343A CN1599343A (zh) | 2005-03-23 |
CN100353718C true CN100353718C (zh) | 2007-12-05 |
Family
ID=34660211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031571379A Expired - Fee Related CN100353718C (zh) | 2003-09-16 | 2003-09-16 | 一种扩展i2c总线的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100353718C (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101324875B (zh) * | 2007-06-11 | 2011-06-01 | 大唐移动通信设备有限公司 | 一种扩展i2c总线的方法及i2c总线扩展装置 |
CN101398801B (zh) * | 2008-10-17 | 2010-06-02 | 北京星网锐捷网络技术有限公司 | 扩展内部集成电路总线的方法及装置 |
US10185563B2 (en) | 2014-03-24 | 2019-01-22 | Inesc Tec—Instituto De Engenharia De Sistemas E | Control module for multiple mixed-signal resources management |
EP3123348B1 (en) | 2014-03-24 | 2018-08-22 | INESC TEC - Instituto de Engenharia de Sistemas e Computadores, Tecnologia e Ciencia | Control module for multiple mixed-signal resources management |
CN105279130A (zh) * | 2015-10-22 | 2016-01-27 | 北方工业大学 | 一种对同地址的多个i2c器件进行操作的方法 |
CN108255760A (zh) * | 2017-12-25 | 2018-07-06 | 北京摩高科技有限公司 | 一种多路i2c系统、及数据读写方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4554657A (en) * | 1982-06-07 | 1985-11-19 | Ltv Aerospace And Defense Company | Multiplexed multiplex bus |
US6061756A (en) * | 1995-11-20 | 2000-05-09 | Advanced Micro Devices, Inc. | Computer system which performs intelligent byte slicing/data packing on a multi-byte wide bus |
CN2424494Y (zh) * | 2000-03-31 | 2001-03-21 | 上海华申智能卡应用系统有限公司 | 总线驱动的智能卡读写器 |
-
2003
- 2003-09-16 CN CNB031571379A patent/CN100353718C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4554657A (en) * | 1982-06-07 | 1985-11-19 | Ltv Aerospace And Defense Company | Multiplexed multiplex bus |
US6061756A (en) * | 1995-11-20 | 2000-05-09 | Advanced Micro Devices, Inc. | Computer system which performs intelligent byte slicing/data packing on a multi-byte wide bus |
CN2424494Y (zh) * | 2000-03-31 | 2001-03-21 | 上海华申智能卡应用系统有限公司 | 总线驱动的智能卡读写器 |
Also Published As
Publication number | Publication date |
---|---|
CN1599343A (zh) | 2005-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7085863B2 (en) | I2C device including bus switches and programmable address | |
EP2350847B1 (en) | Method and system for improving serial port memory communication latency and reliability | |
US6769078B2 (en) | Method for isolating an I2C bus fault using self bus switching device | |
US6434660B1 (en) | Emulating one tape protocol of flash memory to a different type protocol of flash memory | |
EP1358564B1 (en) | System having i2c self bus switching devices | |
US20050188144A1 (en) | Protocol conversion and arbitration circuit, system having the same, and method for converting and arbitrating signals | |
CN101398801B (zh) | 扩展内部集成电路总线的方法及装置 | |
CN101770437B (zh) | 实现同步双端口存储器ip的并行读写的装置及方法 | |
WO2002017305A3 (en) | Disk controller configured to perform out of order execution of write operations | |
CN110597745A (zh) | 一种交换机系统多主多从i2c通信实现方法和装置 | |
CN103903651A (zh) | 双线串行端口内建自测电路及其通讯方法 | |
JPH1153295A (ja) | Pciブリッジ | |
CN100353718C (zh) | 一种扩展i2c总线的系统及方法 | |
JPH0628528A (ja) | Icカード用インターフェース回路 | |
KR100377708B1 (ko) | 저소비 전력화가 가능한 파이프라인 방식의 반도체 기억장치 | |
US7043592B2 (en) | External bus controller | |
CN114967570B (zh) | 一种i2c从机地址可编程控制电路结构及控制方法 | |
CN107918593A (zh) | 近端一对多串行总线的拓展接口电路以及通信方法 | |
CN103309828A (zh) | 一种sd卡从控制器及控制方法 | |
CN100440880C (zh) | 物理地址转换装置及转换方法 | |
JP4116805B2 (ja) | 内部バス試験装置及び内部バス試験方法 | |
US6240496B1 (en) | Architecture and configuring method for a computer expansion board | |
EP0382342B1 (en) | Computer system DMA transfer | |
CN111079167A (zh) | 一种通过cpld实现的硬件电路加密装置 | |
JPH07154451A (ja) | システム相互接続用の走査プログラマブルチェックマトリクス |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071205 Termination date: 20150916 |
|
EXPY | Termination of patent right or utility model |