US6339806B1 - Primary bus to secondary bus multiplexing for I2C and other serial buses - Google Patents

Primary bus to secondary bus multiplexing for I2C and other serial buses Download PDF

Info

Publication number
US6339806B1
US6339806B1 US09/273,663 US27366399A US6339806B1 US 6339806 B1 US6339806 B1 US 6339806B1 US 27366399 A US27366399 A US 27366399A US 6339806 B1 US6339806 B1 US 6339806B1
Authority
US
United States
Prior art keywords
bus
primary
unique
expander
coupled
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
Application number
US09/273,663
Inventor
Jimmy Grant Foster, Sr.
Justin Potok Bandholz
Richard Jesse Muse
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US09/273,663 priority Critical patent/US6339806B1/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORP. reassignment INTERNATIONAL BUSINESS MACHINES CORP. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BANDHOLZ, JUSTIN POTOK, FOSTER, JIMMY GRANT SR., MUSE, RICHARD JESSE
Application granted granted Critical
Publication of US6339806B1 publication Critical patent/US6339806B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Definitions

  • This invention pertains to computers and other electronic systems and, more particularly, to such a system that includes a primary serial bus and a plurality of secondary serial buses, and means for coupling the primary serial bus to a selected secondary serial bus.
  • the Inter-Integrated Circuit or “I 2 C” bus is a well known industry standard serial bus for interconnecting and transferring information between various integrated circuits or “chips” in a computer or other electronic system.
  • the standard I 2 C bus includes two lines, an “SDA” line for transmitting start, address, data, control, acknowledge and stop information, and an “SCL” line that carries the clock.
  • a bus master transmits a start bit followed by 8 bits of address and read/write information.
  • the start bit is unique in that the SDA line transitions from high to low while the SCL line is high. The only other time the SDA line transitions when the clock line is high is during a stop bit, which is a low to high transition of the SDA line when SCL is high.
  • the next 8 bits include 7 address bits and 1 read/write bit. Of the 7 address bits, 4 of these bits are preprogrammed by the chip manufacturer and the remaining 3 bits are typically programmed by the system manufacturer, typically through three inputs on the chip that can be pulled up or down as required.
  • a computer or other electronic system is usually limited to having a maximum of 2 3 or 8 of the same type of chip connected to any one I 2 C bus.
  • the addressed slave responds with and “ACK” or acknowledge bit.
  • the master transmits 8 bits of data, which is again followed by the transmission of an ACK from the slave.
  • This pattern of 8 data bits followed by an ACK bit can be repeated until all data has been transmitted, or it can be terminated only after one byte of data is transmitted by the transmission of a stop bit following the data acknowledge bit from the slave.
  • Bus loading is a limitation as to the total number of devices that can be coupled to any one bus. Consequently, because of bus loading, and because of the inability to address more than 8 of the same type of chip on any one I 2 C bus, system manufacturers have previously incorporated more than one I 2 C bus in a system, and they have used two general approaches to interconnecting multiple I 2 C buses.
  • the first approach is to use multiple primary I 2 C buses, each with its own controller.
  • the first approach solves the limitations of loading and address availability, but requires extra controllers, which are usually the most expensive device in an I 2 C circuit.
  • the requirement of running a number of primary I 2 C buses through many connectors and interfaces adds cost and, in some cases, is not possible because of the limited pin count of the connectors and interfaces.
  • the second approach is to use a primary I 2 C bus multiplexed onto two or more secondary I 2 C buses, but controlled separately from any of the secondary buses.
  • the second approach is an improvement over the first in that it does not require multiple controllers and it is not constrained to run through multiple connectors and interfaces.
  • a new complexity arises in that a separate mechanism must be set up to control the multiplexing. Since the primary I 2 C bus is switched in this approach, it must be controlled from a different primary I 2 C bus; otherwise data loss and signal quality degradation will occur. Consequently, the need for more than one primary I 2 C bus limits the benefits of this approach.
  • this invention has all the benefits of the approaches described above, but without any of the aforementioned limitations.
  • this invention can generate new addresses for each of the secondary serial buses, but it does not require more than one controller or more than one primary serial bus.
  • the invention is an electronic system that includes a primary I 2 C bus for communicating start bits, address bits, data bits, acknowledgment bits and stop bits over an SDA line of the primary I 2 C bus, wherein a block of data bits is followed by an acknowledgment bit and a stop bit.
  • the system also includes a plurality of secondary I 2 C buses and an expander with a unique I 2 C address.
  • the expander includes a bus port coupled to the primary I 2 C bus, and a plurality of outputs that can be selectively activated.
  • a controller is coupled to the primary I 2 C bus. The controller can activate a selected one of the outputs of the expander by transmitting the unique I 2 C address to the bus port of the expander, followed by the transmission of a predetermined block of data bits.
  • a bus switch includes a bus input coupled to the primary I 2 C bus and a plurality of bus outputs, wherein each of the of secondary I 2 C buses is coupled to a unique one of the bus outputs.
  • the bus switch also includes a plurality of control inputs, such that the primary I 2 C bus can be connected to a unique one of the secondary I 2 C buses in response to the activation of the corresponding control input.
  • a plurality of delay circuits each one coupled between a unique one of the outputs of the expander and a unique one of the control inputs of the bus switch, delays the activation of the corresponding control input of the bus switch until after an acknowledgment bit and a stop bit have been communicated over the primary I 2 C bus.
  • the invention is an electronic system including a primary serial bus for communicating address bits, data bits and control bits over an information line of the primary serial bus, wherein a block of data bits is followed by a control bit.
  • the system also includes a plurality of secondary serial buses, and an expander with a unique address.
  • the expander includes a bus port coupled to the primary serial bus, and a plurality of outputs that can be selectively activated.
  • a controller is coupled to the primary serial bus. The controller selectively activates a selected one of the outputs of the expander by transmitting the unique address to the bus port of the expander, followed by the transmission of a predetermined block of data bits.
  • a bus switch includes a bus input coupled to the primary serial bus and a plurality of bus outputs, wherein each of the secondary serial buses is coupled to a unique one of the bus outputs.
  • the bus switch also includes a plurality of control inputs, such that the primary serial bus can be connected to a unique one of the secondary serial buses in response to the activation of the corresponding control input.
  • a plurality of delay circuits each one coupled between a unique one of the outputs of the expander and a unique one of the control inputs of the bus switch, delays the activation of the corresponding control input of the bus switch until after a control bit has been communicated over the primary serial bus.
  • FIG. 1 is a schematic diagram of the present invention.
  • FIG. 2 is timing diagram that illustrates the operation of the present invention.
  • FIG. 1 is a block diagram of an illustrative embodiment of the current invention.
  • controller 101 is a well known I 2 C bus controller having its SDA and SCL ports connected to, respectively, the PSDA (“Primary SDA”) and PSCL (“Primary SCL”) lines of a primary I 2 C bus P.
  • PSDA Primary SDA
  • PSCL Primary SCL
  • the SDA and SCL ports of a well known I/O expander, such as a Philips PCF8574, are connected, respectively, to the PSDA and PSCL lines of primary I 2 C bus P.
  • the A 0 , A 1 and A 2 inputs of expander 103 are connected through three resistors, collectively labeled 104 in FIG. 1, to either V+ or ground (in FIG. 1, all three resistors are connected to V+) to set the lower order address bits of I/O expander 103 .
  • the 4 high order address bits are preset by the chip manufacturer and are not programmable to the system designer.
  • I/O expander 103 like other I 2 C bus devices, responds to a 7 bit address directed to the expander over the primary I 2 C bus P, with the 3 least significant bits being set by the system manufacturer and the 4 most significant address bits being pre-programmed by the chip manufacturer.
  • Outputs I/O 0 through I/O 7 of expander 103 are connected, respectively, to the “D” inputs of well known D-flip flops 105 a through 105 h.
  • Eight pull-up resistors, collectively labeled 106 in FIG. 1, are connected to the I/O 0 through I/O 7 lines of expander 103 .
  • a pull-up resistor 111 is connected to the preset (“pre”) and clear (“clr”) inputs of D-flip flops 105 a through 105 h.
  • the PSCL line of primary I 2 C bus P is connected to the input of a well known buffer 107 , the output of which is connected to each of the CLK or clock inputs of D-flip flops 105 a through 105 h. Resistor 109 is connected between the output of buffer 107 and ground.
  • the PSDA line of primary I 2 C bus P is connected to the input of a well known inverter 108 , the output of which is connected to the enable input (active low) of buffer 107 .
  • the output of buffer 107 is the logical AND of PSDA and PSCL.
  • quad analog switches 110 a through 110 d are used to selectively connect the primary I 2 C bus P to one of eight secondary I 2 C buses S 1 through S 8 .
  • Each secondary I 2 C bus S 1 through S 8 includes an SCL line and an SDA line, such as S 1 -SCL and S 1 -SDA of secondary I 2 bus S 1 .
  • Each of the eight secondary SCL lines (S 1 -SCL through S 8 -SCL) is connected to a unique one of the outputs (which are bi-directional) of bus switches 110 a through 110 d, and the corresponding input is connected to the primary SCL line PSCL of primary I 2 C bus P.
  • each of the eight secondary SDA lines (S 1 -SDA through S 8 -SDA) is connected to a unique one of the outputs of bus switches 110 a through 110 d, and the corresponding input is connected to the primary SDA line PSDA of primary I 2 C bus P.
  • Switches 110 a through 110 d include 16 enable inputs (the lines connected to the input of the inverters) which can be grouped in eight pairs, with each pair corresponding to a unique one of the eight secondary buses S 1 through S 8 .
  • Each pair of enable inputs is connected to a corresponding Q output of D-flip flops 105 a through 105 h.
  • 16 pull-up resistors collectively labeled 112 in FIG. 1, are connected to the SCL and SDA lines of each of the secondary buses S 1 through S 8 .
  • controller 101 transmits a start bit over primary I 2 C bus P, followed by the unique address of expander 103 .
  • Expander 103 responds by sending an acknowledgment bit or ACK over the bi-directional primary I 2 C bus P, which is received by controller 101 .
  • controller 101 transmits a data byte over the primary I 2 C bus P, which is followed by another ACK from expander 103 .
  • the particular data byte transmitted by controller 101 includes seven logical 0's and one logic 1, the particular bit in the 8 bit byte that is set to logical 1 will cause the corresponding I/O output I/O 0 through I/O 7 of expander 103 to go active which, in turn, causes the corresponding “D” input of flip flops 105 a through 105 h to go active. With the D input of one of the flip flops active, the corresponding Q output of the flip flop will also go active on the next cycle of DCLK, which is connected to the “clk” inputs of each of the D-flip flops 105 a through 105 h.
  • the timing of the delay between the D input and the Q outputs of flip flops 105 a through 105 h is critical, and is best illustrated by the timing diagram of FIG. 2 .
  • expander 103 is transmitting an ACK bit back to controller 101 , and the bits immediately preceding T 0 are data bits transmitted by the controller. Recall that the particular data contained in the data byte determines which one of the secondary I 2 C buses will be selected for connection to the primary I 2 C bus P.
  • a selected one of the I/O outputs of expander 103 goes active as determined by the particular data transmitted immediately prior to time T 0 .
  • PSDA goes active when clock line PSCL is active which, as described above, is indicative of a stop bit.
  • the stop bit is recognized by buffer 107 and inverter 108 , causing DCLK to go active upon detection of a stop bit.
  • DCLK When DCLK goes active, it clocks the D input of flip flops 105 a through 105 h to the corresponding Q output and, if a Q output is active, it causes the corresponding pair of switches embodied in analog switches 110 a through 110 d to couple the primary I 2 C bus to a selected one of the secondary I 2 C buses S 1 through S 8 .
  • D-flip flops 105 a through 105 h form a delay circuit that delays the switching of the secondary buses S 1 through S 8 until both an acknowledgment bit ACK and a stop bit are transmitted over the primary I 2 C bus P. While a specific embodiment of the delay circuit is illustrated, those skilled in the art will recognize that there are other circuits that could perform substantially the same delay function. Similarly, other well known circuits could also be used to perform the expander and switching functions. Furthermore, this invention is not limited to the I 2 C bus, but is also applicable to other serial buses. While other serial buses may not transmit ACK and stop bits, the invention can be appropriately modified to delay the switching of the secondary buses until after the transmission of certain control bits that follow the transmission of data bits.

Abstract

A computer or other electronic system includes a primary I2C bus and a plurality of secondary I2C buses that can be selectively coupled to the primary bus. The primary I2C bus is coupled to the input of an I/O expander, which has a unique address on the primary bus, and to the bus input of a bus switch. Each of the secondary I2C buses is coupled to a unique one of the bus outputs of the bus switch, which are controlled by a plurality on control inputs. Activating a selected control input of the bus switch couples the primary I2C bus to the corresponding secondary I2C bus. A controller addresses the I/O expander and then transmits a unique data byte that activates a selected output of the expander. Each of the outputs of the I/O expander is coupled to a unique control input of the bus switch through a delay circuit. The delay circuit delays the activation of the corresponding control input of the bus switch until after an acknowledge bit and a stop bit have been communicated over the primary I2C bus, so that the switching from one secondary bus to another occurs at the appropriate time.

Description

BACKGROUND OF THE INVENTION
This invention pertains to computers and other electronic systems and, more particularly, to such a system that includes a primary serial bus and a plurality of secondary serial buses, and means for coupling the primary serial bus to a selected secondary serial bus.
The Inter-Integrated Circuit or “I2C” bus is a well known industry standard serial bus for interconnecting and transferring information between various integrated circuits or “chips” in a computer or other electronic system. The standard I2C bus includes two lines, an “SDA” line for transmitting start, address, data, control, acknowledge and stop information, and an “SCL” line that carries the clock.
Briefly, a bus master transmits a start bit followed by 8 bits of address and read/write information. The start bit is unique in that the SDA line transitions from high to low while the SCL line is high. The only other time the SDA line transitions when the clock line is high is during a stop bit, which is a low to high transition of the SDA line when SCL is high. The next 8 bits include 7 address bits and 1 read/write bit. Of the 7 address bits, 4 of these bits are preprogrammed by the chip manufacturer and the remaining 3 bits are typically programmed by the system manufacturer, typically through three inputs on the chip that can be pulled up or down as required. Consequently, because the chip manufacturer pre-programs the most significant 4 bits of a 7 bit address, leaving only 3 programmable address bits for the system manufacturer, a computer or other electronic system is usually limited to having a maximum of 23 or 8 of the same type of chip connected to any one I2C bus.
Following the transmission of the address and read/write bits, the addressed slave responds with and “ACK” or acknowledge bit. Next, the master transmits 8 bits of data, which is again followed by the transmission of an ACK from the slave. This pattern of 8 data bits followed by an ACK bit can be repeated until all data has been transmitted, or it can be terminated only after one byte of data is transmitted by the transmission of a stop bit following the data acknowledge bit from the slave.
Bus loading is a limitation as to the total number of devices that can be coupled to any one bus. Consequently, because of bus loading, and because of the inability to address more than 8 of the same type of chip on any one I2C bus, system manufacturers have previously incorporated more than one I2C bus in a system, and they have used two general approaches to interconnecting multiple I2C buses.
The first approach is to use multiple primary I2C buses, each with its own controller.
The first approach solves the limitations of loading and address availability, but requires extra controllers, which are usually the most expensive device in an I2C circuit. In addition, the requirement of running a number of primary I2C buses through many connectors and interfaces adds cost and, in some cases, is not possible because of the limited pin count of the connectors and interfaces.
The second approach is to use a primary I2C bus multiplexed onto two or more secondary I2C buses, but controlled separately from any of the secondary buses. The second approach is an improvement over the first in that it does not require multiple controllers and it is not constrained to run through multiple connectors and interfaces. However, a new complexity arises in that a separate mechanism must be set up to control the multiplexing. Since the primary I2C bus is switched in this approach, it must be controlled from a different primary I2C bus; otherwise data loss and signal quality degradation will occur. Consequently, the need for more than one primary I2C bus limits the benefits of this approach.
Accordingly, the invention described below has all the benefits of the approaches described above, but without any of the aforementioned limitations. In particular, this invention can generate new addresses for each of the secondary serial buses, but it does not require more than one controller or more than one primary serial bus.
SUMMARY OF THE INVENTION
Briefly, the invention is an electronic system that includes a primary I2C bus for communicating start bits, address bits, data bits, acknowledgment bits and stop bits over an SDA line of the primary I2C bus, wherein a block of data bits is followed by an acknowledgment bit and a stop bit. The system also includes a plurality of secondary I2C buses and an expander with a unique I2C address. The expander includes a bus port coupled to the primary I2C bus, and a plurality of outputs that can be selectively activated. A controller is coupled to the primary I2C bus. The controller can activate a selected one of the outputs of the expander by transmitting the unique I2C address to the bus port of the expander, followed by the transmission of a predetermined block of data bits. A bus switch includes a bus input coupled to the primary I2C bus and a plurality of bus outputs, wherein each of the of secondary I2C buses is coupled to a unique one of the bus outputs. The bus switch also includes a plurality of control inputs, such that the primary I2C bus can be connected to a unique one of the secondary I2C buses in response to the activation of the corresponding control input. A plurality of delay circuits, each one coupled between a unique one of the outputs of the expander and a unique one of the control inputs of the bus switch, delays the activation of the corresponding control input of the bus switch until after an acknowledgment bit and a stop bit have been communicated over the primary I2C bus.
In another embodiment, the invention is an electronic system including a primary serial bus for communicating address bits, data bits and control bits over an information line of the primary serial bus, wherein a block of data bits is followed by a control bit. The system also includes a plurality of secondary serial buses, and an expander with a unique address. The expander includes a bus port coupled to the primary serial bus, and a plurality of outputs that can be selectively activated. A controller is coupled to the primary serial bus. The controller selectively activates a selected one of the outputs of the expander by transmitting the unique address to the bus port of the expander, followed by the transmission of a predetermined block of data bits. A bus switch includes a bus input coupled to the primary serial bus and a plurality of bus outputs, wherein each of the secondary serial buses is coupled to a unique one of the bus outputs. The bus switch also includes a plurality of control inputs, such that the primary serial bus can be connected to a unique one of the secondary serial buses in response to the activation of the corresponding control input. A plurality of delay circuits, each one coupled between a unique one of the outputs of the expander and a unique one of the control inputs of the bus switch, delays the activation of the corresponding control input of the bus switch until after a control bit has been communicated over the primary serial bus.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic diagram of the present invention.
FIG. 2 is timing diagram that illustrates the operation of the present invention.
DESCRIPTION OF THE ILLUSTRATIVE EMBODIMENT
FIG. 1 is a block diagram of an illustrative embodiment of the current invention. Referring to this figure, controller 101 is a well known I2C bus controller having its SDA and SCL ports connected to, respectively, the PSDA (“Primary SDA”) and PSCL (“Primary SCL”) lines of a primary I2C bus P. Two pull-up resistors, collectively labeled 102 in FIG. 1, pull the PSDA and PSCL lines high. The SDA and SCL ports of a well known I/O expander, such as a Philips PCF8574, are connected, respectively, to the PSDA and PSCL lines of primary I2C bus P. The A0, A1 and A2 inputs of expander 103 are connected through three resistors, collectively labeled 104 in FIG. 1, to either V+ or ground (in FIG. 1, all three resistors are connected to V+) to set the lower order address bits of I/O expander 103. As discussed above, the 4 high order address bits are preset by the chip manufacturer and are not programmable to the system designer. Thus, I/O expander 103, like other I2C bus devices, responds to a 7 bit address directed to the expander over the primary I2C bus P, with the 3 least significant bits being set by the system manufacturer and the 4 most significant address bits being pre-programmed by the chip manufacturer.
Outputs I/O0 through I/O7 of expander 103 are connected, respectively, to the “D” inputs of well known D-flip flops 105 a through 105 h. Eight pull-up resistors, collectively labeled 106 in FIG. 1, are connected to the I/O0 through I/O7 lines of expander 103. A pull-up resistor 111 is connected to the preset (“pre”) and clear (“clr”) inputs of D-flip flops 105 a through 105 h. The PSCL line of primary I2C bus P is connected to the input of a well known buffer 107, the output of which is connected to each of the CLK or clock inputs of D-flip flops 105 a through 105 h. Resistor 109 is connected between the output of buffer 107 and ground. The PSDA line of primary I2C bus P is connected to the input of a well known inverter 108, the output of which is connected to the enable input (active low) of buffer 107. The output of buffer 107 is the logical AND of PSDA and PSCL.
Four, well known, quad analog switches 110 a through 110 d, such as a Pericom PI5C3125, are used to selectively connect the primary I2C bus P to one of eight secondary I2C buses S1 through S8. Each secondary I2C bus S1 through S8 includes an SCL line and an SDA line, such as S1-SCL and S1-SDA of secondary I2bus S1. Each of the eight secondary SCL lines (S1-SCL through S8-SCL) is connected to a unique one of the outputs (which are bi-directional) of bus switches 110 a through 110 d, and the corresponding input is connected to the primary SCL line PSCL of primary I2C bus P. Similarly, each of the eight secondary SDA lines (S1-SDA through S8-SDA) is connected to a unique one of the outputs of bus switches 110 a through 110 d, and the corresponding input is connected to the primary SDA line PSDA of primary I2C bus P. Switches 110 a through 110 d include 16 enable inputs (the lines connected to the input of the inverters) which can be grouped in eight pairs, with each pair corresponding to a unique one of the eight secondary buses S1 through S8. Each pair of enable inputs is connected to a corresponding Q output of D-flip flops 105 a through 105 h. 16 pull-up resistors, collectively labeled 112 in FIG. 1, are connected to the SCL and SDA lines of each of the secondary buses S1 through S8.
The operation of selecting a particular secondary I2C bus S1 through S8 to be connected to the primary I2C bus P proceeds as follows. First, controller 101 transmits a start bit over primary I2C bus P, followed by the unique address of expander 103. Expander 103 responds by sending an acknowledgment bit or ACK over the bi-directional primary I2C bus P, which is received by controller 101. Next, controller 101 transmits a data byte over the primary I2C bus P, which is followed by another ACK from expander 103. For this process, the particular data byte transmitted by controller 101 includes seven logical 0's and one logic 1, the particular bit in the 8 bit byte that is set to logical 1 will cause the corresponding I/O output I/O0 through I/O7 of expander 103 to go active which, in turn, causes the corresponding “D” input of flip flops 105 a through 105 h to go active. With the D input of one of the flip flops active, the corresponding Q output of the flip flop will also go active on the next cycle of DCLK, which is connected to the “clk” inputs of each of the D-flip flops 105 a through 105 h. Thus, there is a slight delay between the Q outputs of flip flops 105 a through 105 h and the corresponding D inputs. When a particular Q output of a flip flop 105 a through 105 h goes active, it causes the corresponding pair of enable inputs of switches 110 a through 110 d to go active, thereby coupling the primary I2C bus to the selected secondary I2C bus.
The timing of the delay between the D input and the Q outputs of flip flops 105 a through 105 h is critical, and is best illustrated by the timing diagram of FIG. 2. Referring to this figure, between times T0 to T1, expander 103 is transmitting an ACK bit back to controller 101, and the bits immediately preceding T0 are data bits transmitted by the controller. Recall that the particular data contained in the data byte determines which one of the secondary I2C buses will be selected for connection to the primary I2C bus P. Thus, at time T1, a selected one of the I/O outputs of expander 103 (as well as the D input of the corresponding flip flop 105 a through 105 h ) goes active as determined by the particular data transmitted immediately prior to time T0. (Similarly, if a different one of the I/O outputs of expander 103 was previously active, its output now goes inactive at time T0.) At time T2, PSDA goes active when clock line PSCL is active which, as described above, is indicative of a stop bit. The stop bit is recognized by buffer 107 and inverter 108, causing DCLK to go active upon detection of a stop bit. When DCLK goes active, it clocks the D input of flip flops 105 a through 105 h to the corresponding Q output and, if a Q output is active, it causes the corresponding pair of switches embodied in analog switches 110 a through 110 d to couple the primary I2C bus to a selected one of the secondary I2C buses S1 through S8.
Thus, D-flip flops 105 a through 105 h, as well as buffer 107 and inverter 108, form a delay circuit that delays the switching of the secondary buses S1 through S8 until both an acknowledgment bit ACK and a stop bit are transmitted over the primary I2C bus P. While a specific embodiment of the delay circuit is illustrated, those skilled in the art will recognize that there are other circuits that could perform substantially the same delay function. Similarly, other well known circuits could also be used to perform the expander and switching functions. Furthermore, this invention is not limited to the I2C bus, but is also applicable to other serial buses. While other serial buses may not transmit ACK and stop bits, the invention can be appropriately modified to delay the switching of the secondary buses until after the transmission of certain control bits that follow the transmission of data bits.

Claims (6)

We claim as our invention:
1. An electronic system, comprising:
a primary I2C bus for communicating start bits, address bits, data bits, acknowledgment bits and stop bits over an SDA line of said primary I2C bus, wherein a block of data bits is followed by an acknowledgment bit and a stop bit;
a plurality of secondary I2C buses;
an expander having a unique I2C address, said expander having a bus port coupled to said primary I2C bus, said expander including a plurality of outputs that can be selectively activated;
a controller coupled to said primary I2C bus, said controller activating a selected one of the outputs of said expander by transmitting said unique I2C address to the bus port of said expander, followed by the transmission of a predetermined block of data bits to the bus port of said expander;
a bus switch having a bus input coupled to said primary I2C bus and a plurality of bus outputs, each of said plurality of secondary I2C buses being coupled to a unique one of the bus outputs of said bus switch, said bus switch also having a plurality of control inputs, said primary I2C bus being connected to a unique one of said secondary I2C buses in response to a unique one of the control inputs being activated; and
a plurality of delay circuits, each one of said delay circuits being coupled between a unique one of the outputs of said expander and a unique one of the control inputs of said bus switch, each one of said delay circuits delaying the activation of the corresponding control input of said bus switch until after an acknowledgment bit and a stop bit have been communicated over said primary I2C bus.
2. The electronic system of claim 1, wherein each of said delay circuits includes a “D” flip flop having an input and an output, the input of each flip flop coupled to a unique one of the outputs of said expander circuit, and the output of each of said “D” flip flops being coupled to a unique one of the control inputs of said bus switch.
3. The electronic system of claim 2, wherein:
each of said “D” flip flops includes a clock input;
said primary I2C bus also includes an SCL line; and
said system including combinational logic for logically ANDing said SCL and SDA lines, the output of said combinational logic being coupled to the clock inputs of each of said “D” flip flops.
4. An electronic system, comprising:
a primary serial bus for communicating address bits, data bits and control bits over an information line of said primary serial bus, wherein a block of data bits is followed by a control bit;
a plurality of secondary serial buses;
an expander having a unique address, said expander having a bus port coupled to said primary serial bus, said expander including a plurality of outputs that can be selectively activated;
a controller coupled to said primary serial bus, said controller activating a selected one of the outputs of said expander by transmitting said unique address to the bus port of said expander, followed by the transmission of a predetermined block of data bits to the bus port of said expander;
a bus switch having a bus input coupled to said primary serial bus and a plurality of bus outputs, each of said plurality of secondary serial buses being coupled to a unique one of the bus outputs of said bus switch, said bus switch also having a plurality of control inputs, said primary serial bus being connected to a unique one of said secondary serial buses in response to a unique one of the control inputs being activated; and
a plurality of delay circuits, each one of said delay circuits being coupled between a unique one of the outputs of said expander and a unique one of the control inputs of said bus switch, each one of said delay circuits delaying the activation of the corresponding control input of said bus switch until after a control bit has been communicated over said primary serial bus.
5. The electronic system of claim 4, wherein each of said delay circuits includes a “D” flip flop having an input and an output, the input of each flip flop coupled to a unique one of the outputs of said expander circuit, and the output of each of said “D” flip flops being coupled to a unique one of the control inputs of said bus switch.
6. The electronic system of claim 5, wherein:
each of said “D” flip flops includes a clock input;
said primary serial bus also includes a clock line; and
said system including combinational logic for logically ANDing said information and clock lines, the output of said combinational logic being coupled to the clock inputs of each of said “D” flip flops.
US09/273,663 1999-03-23 1999-03-23 Primary bus to secondary bus multiplexing for I2C and other serial buses Expired - Fee Related US6339806B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/273,663 US6339806B1 (en) 1999-03-23 1999-03-23 Primary bus to secondary bus multiplexing for I2C and other serial buses

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/273,663 US6339806B1 (en) 1999-03-23 1999-03-23 Primary bus to secondary bus multiplexing for I2C and other serial buses

Publications (1)

Publication Number Publication Date
US6339806B1 true US6339806B1 (en) 2002-01-15

Family

ID=23044893

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/273,663 Expired - Fee Related US6339806B1 (en) 1999-03-23 1999-03-23 Primary bus to secondary bus multiplexing for I2C and other serial buses

Country Status (1)

Country Link
US (1) US6339806B1 (en)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030107909A1 (en) * 2001-10-19 2003-06-12 Hitachi, Ltd. Semiconductor device
US20030135679A1 (en) * 2002-01-16 2003-07-17 Tangen Wayne A. Circuit and method for expanding a serial bus
US20030212847A1 (en) * 2002-05-09 2003-11-13 International Business Machines Corporation Apparatus for supporting I2C bus masters on a secondary side of an I2C multiplexor
US20040059852A1 (en) * 2002-09-24 2004-03-25 Weiyun Sun System and method of mastering a serial bus
US6725320B1 (en) * 2001-02-08 2004-04-20 International Business Machines Corporation I2C bus switching devices interspersed between I2C devices
US20040139258A1 (en) * 2003-01-09 2004-07-15 Peter Chambers Device and method for improved serial bus transaction using incremental address decode
US20040145500A1 (en) * 2002-12-30 2004-07-29 Jochen Huebl Method and device for waking users of a bus system, and corresponding users
US20040255070A1 (en) * 2003-06-12 2004-12-16 Larson Thane M. Inter-integrated circuit router for supporting independent transmission rates
US20050097230A1 (en) * 2003-11-04 2005-05-05 Chun-Pin Hsu Circuit and system for expandably connecting electronic devices
US20050097255A1 (en) * 2003-10-30 2005-05-05 International Business Machines Corporation I2C device including bus switches and programmable address
US20050120155A1 (en) * 2003-11-27 2005-06-02 Hon Hai Precision Industry Co. Ltd. Multi-bus I2C system
US20050289273A1 (en) * 2004-06-25 2005-12-29 Lee Bong-Geun Communication apparatus using inter integrated circuit bus and communication method thereof
US7092041B2 (en) * 2000-12-20 2006-08-15 Thomson Licensing I2C bus control for isolating selected IC's for fast I2C bus communication
US20060294275A1 (en) * 2005-06-23 2006-12-28 Emil Lambrache Fast two wire interface and protocol for transferring data
CN1327661C (en) * 2002-06-07 2007-07-18 索尼株式会社 Radio communication apparatus and method therefor ,wireless radio system, and record medium, as well as program
US20080114920A1 (en) * 2006-11-10 2008-05-15 Olympus Corporation Microscope system and extension unit
CN100412837C (en) * 2003-11-22 2008-08-20 鸿富锦精密工业(深圳)有限公司 Multichannel internal integrated circuit
US20080301344A1 (en) * 2007-06-01 2008-12-04 Hon Hai Precision Industry Co., Ltd. System for expandably connecting electronic devices
US20100122002A1 (en) * 2008-11-11 2010-05-13 Nxp B.V. Automatic on-demand prescale calibration across multiple devices with independent oscillators over an i2c bus interface
US20120005385A1 (en) * 2010-06-30 2012-01-05 Hon Hai Precision Industry Co., Ltd. Communication circuit of inter-integrated circuit device
US20120311211A1 (en) * 2010-01-18 2012-12-06 Zte Corporation Method and system for controlling inter-integrated circuit (i2c) bus
US20130132628A1 (en) * 2011-11-18 2013-05-23 Universal Scientific Industrial (Shanghai) Co.,Ltd Plug-in module, electronic system, and judging method and querying method thereof
US20130150166A1 (en) * 2008-07-11 2013-06-13 Nintendo Co., Ltd. Expanding operating device and operation system
US20140025851A1 (en) * 2012-07-17 2014-01-23 International Business Machines Corporation Double density i2c system
US8943256B1 (en) * 2013-08-08 2015-01-27 Cypress Semiconductor Corporation Serial data intermediary device, and related systems and methods
US20150161075A1 (en) * 2013-12-09 2015-06-11 Samsung Display Co., Ltd. I2c router system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604918A (en) * 1993-06-04 1997-02-18 U.S. Philips Corporation Two-line mixed analog/digital bus system and a master station and a slave station for use in such system
US5696994A (en) * 1995-05-26 1997-12-09 National Semiconductor Corporation Serial interface having control circuits for enabling or disabling N-channel or P-channel transistors to allow for operation in two different transfer modes
US6145102A (en) * 1998-01-20 2000-11-07 Compaq Computer Corporation Transmission of an error message over a network by a computer which fails a self-test
US6233635B1 (en) * 1997-07-10 2001-05-15 Samsung Electronics Co., Ltd. Diagnostic/control system using a multi-level I2C bus
US6286073B1 (en) * 1998-12-01 2001-09-04 Lucent Technologies Inc. Integrated circuit interface between a personal computer and an external device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604918A (en) * 1993-06-04 1997-02-18 U.S. Philips Corporation Two-line mixed analog/digital bus system and a master station and a slave station for use in such system
US5696994A (en) * 1995-05-26 1997-12-09 National Semiconductor Corporation Serial interface having control circuits for enabling or disabling N-channel or P-channel transistors to allow for operation in two different transfer modes
US6233635B1 (en) * 1997-07-10 2001-05-15 Samsung Electronics Co., Ltd. Diagnostic/control system using a multi-level I2C bus
US6145102A (en) * 1998-01-20 2000-11-07 Compaq Computer Corporation Transmission of an error message over a network by a computer which fails a self-test
US6286073B1 (en) * 1998-12-01 2001-09-04 Lucent Technologies Inc. Integrated circuit interface between a personal computer and an external device

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7092041B2 (en) * 2000-12-20 2006-08-15 Thomson Licensing I2C bus control for isolating selected IC's for fast I2C bus communication
US6725320B1 (en) * 2001-02-08 2004-04-20 International Business Machines Corporation I2C bus switching devices interspersed between I2C devices
US6947335B2 (en) * 2001-10-19 2005-09-20 Renesas Technology Corp. Semiconductor device with an input/output interface circuit for a bus
US20030107909A1 (en) * 2001-10-19 2003-06-12 Hitachi, Ltd. Semiconductor device
US6874050B2 (en) * 2002-01-16 2005-03-29 Hewlett-Packard Development Company, L.P. Circuit and method for expanding a serial bus
US20030135679A1 (en) * 2002-01-16 2003-07-17 Tangen Wayne A. Circuit and method for expanding a serial bus
US20030212847A1 (en) * 2002-05-09 2003-11-13 International Business Machines Corporation Apparatus for supporting I2C bus masters on a secondary side of an I2C multiplexor
US6816939B2 (en) * 2002-05-09 2004-11-09 International Business Machines Corporation Apparatus for supporting I2C bus masters on a secondary side of an I2C multiplexor
CN1327661C (en) * 2002-06-07 2007-07-18 索尼株式会社 Radio communication apparatus and method therefor ,wireless radio system, and record medium, as well as program
US20040059852A1 (en) * 2002-09-24 2004-03-25 Weiyun Sun System and method of mastering a serial bus
US7039734B2 (en) * 2002-09-24 2006-05-02 Hewlett-Packard Development Company, L.P. System and method of mastering a serial bus
US7890229B2 (en) * 2002-12-30 2011-02-15 Robert Bosch Gmbh Method and device for waking users of a bus system, and corresponding users
US20040145500A1 (en) * 2002-12-30 2004-07-29 Jochen Huebl Method and device for waking users of a bus system, and corresponding users
US8514065B2 (en) 2002-12-30 2013-08-20 Robert Bosch Gmbh Method and device for waking users of a bus system, and corresponding users
US20110107130A1 (en) * 2002-12-30 2011-05-05 Jochen Huebl Method and device for waking users of a bus system, and corresponding users
US20040139258A1 (en) * 2003-01-09 2004-07-15 Peter Chambers Device and method for improved serial bus transaction using incremental address decode
US7013355B2 (en) * 2003-01-09 2006-03-14 Micrel, Incorporated Device and method for improved serial bus transaction using incremental address decode
US20040255070A1 (en) * 2003-06-12 2004-12-16 Larson Thane M. Inter-integrated circuit router for supporting independent transmission rates
US7085863B2 (en) * 2003-10-30 2006-08-01 International Business Machines Corporation I2C device including bus switches and programmable address
US20050097255A1 (en) * 2003-10-30 2005-05-05 International Business Machines Corporation I2C device including bus switches and programmable address
US20050097230A1 (en) * 2003-11-04 2005-05-05 Chun-Pin Hsu Circuit and system for expandably connecting electronic devices
US7386635B2 (en) 2003-11-04 2008-06-10 Hon Hai Precision Industry Co., Ltd. Electronic device circuit having a sensor function for expandably connecting a plurlity of electronic devices
CN100412837C (en) * 2003-11-22 2008-08-20 鸿富锦精密工业(深圳)有限公司 Multichannel internal integrated circuit
US20050120155A1 (en) * 2003-11-27 2005-06-02 Hon Hai Precision Industry Co. Ltd. Multi-bus I2C system
US20050289273A1 (en) * 2004-06-25 2005-12-29 Lee Bong-Geun Communication apparatus using inter integrated circuit bus and communication method thereof
US20060294275A1 (en) * 2005-06-23 2006-12-28 Emil Lambrache Fast two wire interface and protocol for transferring data
US20080114920A1 (en) * 2006-11-10 2008-05-15 Olympus Corporation Microscope system and extension unit
US7627707B2 (en) * 2006-11-10 2009-12-01 Olympus Corporation Microscope system and extension unit
US20080301344A1 (en) * 2007-06-01 2008-12-04 Hon Hai Precision Industry Co., Ltd. System for expandably connecting electronic devices
US20130150166A1 (en) * 2008-07-11 2013-06-13 Nintendo Co., Ltd. Expanding operating device and operation system
US8224602B2 (en) * 2008-11-11 2012-07-17 Nxp B.V. Automatic on-demand prescale calibration across multiple devices with independent oscillators over an I2C Bus interface
US20100122002A1 (en) * 2008-11-11 2010-05-13 Nxp B.V. Automatic on-demand prescale calibration across multiple devices with independent oscillators over an i2c bus interface
US20120311211A1 (en) * 2010-01-18 2012-12-06 Zte Corporation Method and system for controlling inter-integrated circuit (i2c) bus
US20120005385A1 (en) * 2010-06-30 2012-01-05 Hon Hai Precision Industry Co., Ltd. Communication circuit of inter-integrated circuit device
US20130132628A1 (en) * 2011-11-18 2013-05-23 Universal Scientific Industrial (Shanghai) Co.,Ltd Plug-in module, electronic system, and judging method and querying method thereof
US20140025851A1 (en) * 2012-07-17 2014-01-23 International Business Machines Corporation Double density i2c system
US8832343B2 (en) * 2012-07-17 2014-09-09 International Business Machines Corporation Double density I2C system
US8943256B1 (en) * 2013-08-08 2015-01-27 Cypress Semiconductor Corporation Serial data intermediary device, and related systems and methods
US20150161075A1 (en) * 2013-12-09 2015-06-11 Samsung Display Co., Ltd. I2c router system
US9684619B2 (en) * 2013-12-09 2017-06-20 Samsung Display Co., Ltd. I2C router system

Similar Documents

Publication Publication Date Title
US6339806B1 (en) Primary bus to secondary bus multiplexing for I2C and other serial buses
US5878234A (en) Low power serial protocol translator for use in multi-circuit board electronic systems
EP0258872B1 (en) Serial data transfer system
US6799233B1 (en) Generalized I2C slave transmitter/receiver state machine
US5758073A (en) Serial interface between DSP and analog front-end device
US5416909A (en) Input/output controller circuit using a single transceiver to serve multiple input/output ports and method therefor
EP0287119B1 (en) Serial data processor capable of transferring data at a high speed
EP0453199A2 (en) Computer system with synchronous bus
US6816939B2 (en) Apparatus for supporting I2C bus masters on a secondary side of an I2C multiplexor
CN101398801B (en) Method and device for expanding internal integrate circuit bus
EP0693729B1 (en) Multi-protocol data bus system
US20100064083A1 (en) Communications device without passive pullup components
US7822076B2 (en) Apparatus for multiplexing signals through I/O pins
CN110858182A (en) Integrated circuit, bus system and control method thereof
CN114911743B (en) SPI slave device, SPI master device and related communication method
US5884044A (en) Dedicated DDC integrable multimode communications cell
CN104991876A (en) Serial bus control method and apparatus
US6721810B2 (en) Universal controller expansion module system, method and apparatus
US5909560A (en) Target peripheral device detection in a multi-bus system
JP2000293485A (en) Communication interface
US5371863A (en) High speed processor bus extension
US4594654A (en) Circuit for controlling external bipolar buffers from an MOS peripheral device
JP3949429B2 (en) IIC bus control system
US5488736A (en) Bidirectional programmable I/O driver array
US6738830B2 (en) Universal controller expansion module system, method and apparatus

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORP., NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FOSTER, JIMMY GRANT SR.;BANDHOLZ, JUSTIN POTOK;MUSE, RICHARD JESSE;REEL/FRAME:009850/0068

Effective date: 19990322

FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20100115