EP3268868B1 - Farewell reset and restart method for coexistence of legacy and next generation devices over a shared multi-mode bus - Google Patents
Farewell reset and restart method for coexistence of legacy and next generation devices over a shared multi-mode bus Download PDFInfo
- Publication number
- EP3268868B1 EP3268868B1 EP16711955.1A EP16711955A EP3268868B1 EP 3268868 B1 EP3268868 B1 EP 3268868B1 EP 16711955 A EP16711955 A EP 16711955A EP 3268868 B1 EP3268868 B1 EP 3268868B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- bus
- devices
- over
- mode
- communication protocol
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 41
- 238000004891 communication Methods 0.000 claims description 149
- 230000005540 biological transmission Effects 0.000 claims description 66
- 230000000694 effects Effects 0.000 claims description 20
- 238000001514 detection method Methods 0.000 claims description 8
- 230000008878 coupling Effects 0.000 claims 3
- 238000010168 coupling process Methods 0.000 claims 3
- 238000005859 coupling reaction Methods 0.000 claims 3
- 230000007704 transition Effects 0.000 description 75
- 238000006243 chemical reaction Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 9
- 238000011084 recovery Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 230000001351 cycling effect Effects 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 101100425597 Solanum lycopersicum Tm-1 gene Proteins 0.000 description 2
- 238000010959 commercial synthesis reaction Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
Definitions
- the present disclosure pertains to techniques to permit devices of different generations to coexist when coupled to a shared bus and, more particularly, to permit next-generation devices to disable legacy devices on the shared bus and bring them back into operation without a power cycling or bus reset.
- the I2C standard (also referred to as I 2 C) was defined by NXP for a multi-master serial single-ended bus used for attaching low-speed peripherals to a motherboard, embedded system, cellphone, cameras, or other electronic devices.
- the I2C bus includes a clock (SCL) and data (SDA) lines with 7-bit addressing.
- the bus has two roles for devices: master and slave.
- a master device is a node that generates the clock and initiates communication with slave devices.
- a slave device is a node that receives the clock and responds when addressed by the master device.
- the I2C bus is a multi-master bus which means any number of master devices can be present. Additionally, master and slave roles may be changed between messages (after a STOP is sent).
- I2C defines basic types of messages, each of which begins with a START and ends with a STOP.
- I2C-compatible bus Various multi-protocol methods have been proposed to achieve higher bandwidth over an I2C-compatible bus while still permitting I2C legacy devices to remain operational over the I2C-compatible bus.
- the I3C standard (defined by the MIPI Alliance) is an evolution of the I2C standard and provides backward compatibility for I2C devices.
- MIPI Alliance MIPI Alliance
- United States Patent Application Publication No. US 2014/372642 relates to a camera control interface extension bus.
- United States Patent No. US 6,574,233 relates to an arrangement for redefining an interface while maintaining backwards compatibility.
- a first aspect provides a device, comprising a first bus, a second bus, a first set of devices, and a second set of devices.
- the first set of devices are coupled to the first bus and second bus, and the first set of devices configured to communicate over the first bus according to a first communication protocol.
- the second set of devices are coupled to the first bus, and the second set of devices configured to communicate over the first bus according to both the first communication protocol and a second communication protocol.
- some devices of the second set of devices e.g., a next-generation master device and/or next-generation slave devices
- the first set of devices and second set of devices may concurrently communicate over the first bus using the first communication protocol.
- the second set of devices may communicate with each other using the second communication protocol over the first bus, and the first set of devices stop operating over the first bus.
- a disable command may be sent over the first bus (e.g., by a bus master device, possibly within the second set of devices) to cause the first set of devices to stop operating over the first bus while the second set of devices operate in the second mode over the first bus.
- An enable command is sent over the second bus (e.g., by the bus master device, possibly within the second set of devices) to cause the first set of devices to resume operating over the first bus while the first bus switches to operate in the first mode.
- the first communication protocol may provide a first data throughput over the first bus while the second communication protocol provides a second data throughput over the first bus, where the second data throughput may be greater than the first data throughput.
- the disable command prevents each of the first set of devices from receiving and transmitting over the first bus. Prior to or concurrent with entering the second mode of operation, at least one device from the second set of devices sends the disable command. During the second mode of operation the first set of devices are unaffected by activity over the first bus.
- the first bus includes a plurality of lines, with N lines allocated for transmissions in the first mode, and M lines being allocated for transmissions in the second mode, where N and M are integers greater than or equal to two (2).
- N and M are integers greater than or equal to two (2).
- the number of lines N and M may be different integers.
- the number of lines N and M are the same integers and different number of logical transmission lanes are defined in the first and second modes.
- a second aspect provides a legacy device, comprising: a first communication circuit, second communication circuit, and a control circuit.
- the first communication circuit to couple to a first bus and configured to communicate over the first bus according to a first communication protocol.
- the second communication circuit to couple to a second bus.
- the control circuit coupled to the first communication circuit and second communication circuit.
- the control circuit may be configured or adapted to: (a) configure the communication circuit to communicate over the first bus using the first communication protocol, (b) monitor the first bus for a disable command, (c) reconfigure the first communication circuit to ignore activity over the first bus upon detection of the disable command, (d) monitor the second bus for an enable command, and/or (e) reconfigure the first communication circuit to resume activity over the first bus upon detection of the enable command.
- the first bus may include a plurality of lines, with N lines allocated for transmissions in the first mode, and M lines being allocated for transmissions in the second mode, where N and M are integers greater than or equal to two (2).
- N and M are integers greater than or equal to two (2).
- the plurality of lines N and M are different integers.
- the plurality of lines N and M are the same integers and different number of logical transmission lanes are defined in the first and second modes.
- in the first mode 3-wire single-ended transmissions are used, and in the second mode one pair of lines is used for differential transmissions and the remaining single line is used for sideband signaling.
- a third aspect provides a next-generation device, configured as a bus master device, may comprise a first communication circuit, a second communication circuit, and/or a control circuit.
- the first communication circuit to couple to a first bus shared with other devices.
- the second communication circuit to couple to a second bus shared with the other devices.
- the control circuit may be coupled to the first communication circuit and the second communication circuit.
- the control circuit may be configured to: (a) configure the first communication circuit to operate in a first mode in which a first communication protocol is used over the first bus; (b) send a disable command over the first bus to indicate to other devices that do not support a second communication protocol to ignore activity over the first bus; (c) reconfigure the first communication circuit to operate in a second mode in which the second communication protocol is used over the first bus; (d) reconfigure the first communication circuit to operate in the first mode in which the first communication protocol is used over the first bus; and/or (e) send an enable command over a second bus to indicate to the other devices to resume activity over the first bus using the first protocol.
- the disable command may prevent the other devices from communicating over the first bus.
- the disable command may be sent prior to or concurrent with the first communication circuit entering the second mode.
- next-generation devices In a system in which next-generation devices and legacy devices share a first bus, a feature is provided that permits the next-generation devices to selectively disable or sleep the legacy devices (or at least the bus interfaces of the legacy devices) in order to improve performance (e.g., increase bandwidth or transmission rates) over the bus.
- a first set of devices e.g., legacy devices, I2C-compatible devices, I3C-compatible devices, etc.
- a second set of devices e.g., next-generation devices
- the first set of devices and second set of devices may concurrently communicate over the first bus using the first communication protocol.
- the second set of devices communicate with each other using the second communication protocol over the first bus, and the first set of devices stop operating over the first bus. For instance, at least one device from the second set of devices may cause the first set of devices to enter a disabled mode and the second set of devices communicate with each other using the second communication protocol. Consequently, in the second mode, the first set of devices ignore activity (e.g., do not transmit and ignore most commands) over the bus.
- the first communication protocol provides a first data throughput (e.g., bandwidth or transmission rate) over the bus while the second communication protocol provides a second data throughput over the bus, where the second data throughput is generally greater than the first data throughput.
- the second communication protocol may be slower (e.g., less data throughput) than the first communication protocol, but the second protocol may be chosen for lower power consumption using, for instance, some DC level which the first communication protocol cannot accept.
- At least one of the second set of devices sends a disable command or a sleep command over the first bus to cause the first set of devices to stop operating over the first bus.
- the system may also include a second or secondary bus, distinct from the first bus, to which the next-generation devices (i.e., second set of devices) and legacy devices (i.e., first set of devices) are also coupled.
- a master device may make use of the second or secondary bus to send an enable command to the second set of devices. That is, while the first set of devices may have disabled communications over the first bus, they may still remain operational over the second or secondary bus.
- each device in the first set of devices may be configured to activate its interface to/from the first bus and start communicating over the first bus (e.g., using the first protocol).
- the first bus and/or the second bus may be used to inform slave next-generation devices (e.g., in the second set of devices) to switch back to the first mode.
- the second or secondary bus permits re-enabling operation of the first set of devices without the need for power cycling or a hardware reset.
- the first bus may be a data bus and the second bus may be a control bus.
- FIG. 1 is a block diagram illustrating an example of a first bus 102 and a second bus 112 shared by legacy devices 108 and 110 and next-generation devices 104 and 106.
- the legacy devices 108 and 110 may be CCIe-compatible devices (described below), I2C-compatible devices, and/or I3C-compatible devices while the next-generation devices 104 and 106 may be post-CCIe devices and/or post-I3C devices.
- CCIe-compatible devices as described below, may be an evolution or extension of the Camera Control Interface specified by MIPI.
- Such next-generation devices 104 and 106 may have improved performance over the first bus 102 or features relative to the legacy devices 108 and 110 (e.g., may operate faster, or include improved capabilities).
- the legacy devices 108 and 110 and next-generation devices 104 and 106 may also share a separate second bus 112, distinct from the first bus.
- the first bus 102 may be a control bus while the second bus 112 may be a data bus.
- next-generation devices 104 and 106 may be operated at a reduced performance level in order to accommodate operation of the legacy devices 108 and 110.
- a master device may send a disable command to the legacy devices 108 and 110 to cause the legacy devices 108 and 110 to stop receiving and/or transmitting over the first bus.
- the legacy devices 108 and 110 may be reset by power cycling them to start communicating (e.g., listening and/or transmitting) over the first bus 102.
- another implementation provides for an enable command to be sent via the second bus 112.
- the legacy devices 108 and 110 may renew use of the first bus (e.g., receiving and/or transmitting over the first bus according to the first protocol).
- a first next-generation device 104 may serve as a multimode master device, being able to control communications over the first bus 102 according to both the first protocol and/or the second protocol. While operating as a master device over the first bus 102, the first next-generation device 104 may be capable of sending both a disable command to the legacy devices 108 and 110 over the first bus 102 as well as an enable command to the legacy devices 108 and 110 over the second bus 112.
- FIG. 2 is a block diagram illustrating another implementation of the device in FIG. 1 in which the second bus 212 may be coupled between a master device 104 and some or all of the legacy devices 108 and 110.
- the first bus 102 may be a two-line bus.
- FIG. 3 illustrates how both wires/lines of a shared first bus (e.g., first bus 102) may be utilized for data transmission in a first (CCIe) mode.
- first bus 102 may include a first line (SDA) 302 and a second line (SCL) 304.
- SDA first line
- SCL second line
- a clock signal may be embedded within symbol transitions (as discussed further below).
- the SDA line 302 and SCL line 304 may each transmit any arbitrary number of symbols between two consecutive START conditions 306, 308 and 310 from the legacy devices (e.g., CCIe-capable nodes/devices).
- a CCIe word may be sent in 12-symbols that carry 20-bits information.
- sixteen (16) bits of the 20-bits may be for data information while 4 bits of the 20-bits may be used for other information such as control information.
- FIG. 4 illustrates an exemplary general call that may be used to place the legacy (CCIe) devices (or at least their interface to the bus) into a disable mode (e.g., suspend, stop, or kill mode so legacy devices do not wakeup). That is, such disable mode may be used when the legacy devices will not be subsequently awoken (except through a power reset or a reboot or other mechanism that does not utilize the first bus).
- a next-generation device 104 or 106 (operating as a master device relative to the first bus 102) may send a farewell/disable command/call 400 over the shared first bus 102 which causes the legacy devices 108 and 110 to become disabled until a power reset occurs or an enable command is received over a second bus 112 or 212.
- the farewell/disable command/call 400 may include a general call identifier portion 402, an address portion 404 that is specifically selected to disable the legacy (CCIe) devices 108 and/or 110.
- the farewell address portion 404 is selected so that no legacy device 108 and/or 110 accidentally interprets it as valid address. Instead, such farewell address 404 is interpreted and processed as a farewell/disable command/call by the legacy devices 108 and 110.
- the farewell address may be a compact and simple code to avoid large hardware overhead when decoding at the legacy devices.
- the farewell/disable command/call 400 may be sent, for example, by a master device (e.g., a next-generation device 104 or 106 operating as a master for communications over the shared first bus 102).
- a master device e.g., a next-generation device 104 or 106 operating as a master for communications over the shared first bus 102
- next-generation devices may be configured to switch to a different mode (e.g., a mode in which the next-generation devices operate according a different communication protocol, transmit speed, etc.).
- next-generation devices may change their input/output specifications (e.g. input/output level, slew-rate, etc.) from a first protocol to a second protocol.
- the legacy devices 108 and/or 110 do not receive or transmit over the shared first bus 102. Consequently, the legacy devices 108 and/or 110 may not communicate over the first bus 102 unless they are reset or otherwise enabled. Resetting or power cycling a legacy device is disfavored because it also means resetting the first bus, which is time consuming. Instead, an enable command/call may be sent by a next-generation device via the second bus 112 to enable, reanimate, or wake-up the legacy devices from the disable mode. Such enable command/call may be designed to cause the receiving legacy device to enable a communication interface of the legacy device 108 and/or 110 so that it can again receive and/or transmit over the first bus 102.
- Occurrence of such enable command or call may also cause the next-generation devices 104 and/or 106 to switch to an operating mode that permits coexistence with the legacy devices 108 and/or 110 over the shared first bus 102 (e.g., switch from the second protocol to the first protocol).
- the next-generation devices 106 may not be coupled to the second bus 112 and may receive command to switch to the second protocol over the first bus 102 when the master device 104 switches back to the first protocol.
- FIG. 5 illustrates a method operational at a next generation device to disable legacy devices (e.g., CCIe-compatible devices) from operating over a shared first bus and subsequently re-enable operation of the legacy devices via a second bus.
- a next generation device may ascertain when to change from a first mode of operation, in which it coexists with the legacy devices on the first bus, to a second mode of operation which has improved performance over the first bus (e.g., greater data throughput, increased bandwidth, increase bus speed, etc.) relative to the first mode of operation 502.
- the next generation device may then send a disable command/signal over the first bus to cause the legacy devices to become disabled with respect to the first bus 504.
- the legacy devices may ignore all transmissions over the first bus (i.e., do not receive or transmit over the first bus).
- the next generation device may then transmit or receive signals over the first bus according to the second mode of operation 506.
- the next generation device may receive an enable command over the first bus and switches to operating in the first mode over the first bus 508.
- the next generation device may revert to operating in the first mode of operation over the first bus and transmits an enable command over a second bus to cause the legacy devices to start communicating (e.g., receive or transmit) over the first bus 510.
- an enable command may be sent by a next generation master device.
- FIG. 6 illustrates a method operational at a legacy device to operate over a shared first bus with next generation devices.
- the legacy device may be coupled to one or more next generation devices over a first bus and a second bus.
- the legacy device may operate over the first bus shared with one or more next generation devices, where the first bus is configurable to dynamically switch between a first mode of operation, in which legacy devices and next generation devices coexists on the first bus, and a second mode of operation which has improved performance (e.g., greater data throughput, increased bandwidth, increase bus speed, etc.) relative to the first mode of operation in which only the next generation devices operate on the first bus 602.
- the legacy device may receive a disable command (e.g., from a master device controlling the first bus) over the first bus to cause the legacy device to disable its operations over the first bus 604.
- the legacy device Even when the legacy device has disabled its operations over the first bus, it continues to operate (e.g., communicate) over the second bus also shared with the one or more next generation devices 606. Subsequently, the legacy device may receive an enable command over the second bus and resumes operation over the first bus 608.
- FIG. 7 illustrates a method that permits a next generation device to disable and re-enable legacy devices sharing the same first bus.
- a first set of devices e.g., legacy devices
- a second set of devices e.g., next generation devices
- the first set of devices and the second set of devices may concurrently communicate over the bus using the first communication protocol 706.
- the second set of devices In a second mode of operation the second set of devices communicate with each other using the second communication protocol over the bus, and the first set of devices stop operating (e.g., stop receiving and/or transmitting) over the first bus 708.
- the first set of devices are unaffected by bus activity (e.g., ignore all or most transmissions on the bus and/or do not transmit over the bus).
- at least one device from the second set of devices may cause the first set of devices to enter a sleep or disabled mode.
- a disable command may be sent from at least one of the second set of devices over the first bus during the first mode of operation to cause the first set of devices to stop operating over the first bus 710.
- the first communication protocol may provide a first data throughput over the first bus while the second communication protocol provides a second data throughput over the first bus, where the second data throughput is greater than the first data throughput.
- the first bus may include two lines.
- signals may be transmitted over the two lines and a clock signal may be embedded in symbol-to-symbol transitions of the plurality of symbols within the signals.
- the first bus may include a plurality of lines and the number of lines used may be dynamically allocated/adjusted depending on the mode of operation of the first bus.
- the first bus may use N lines in a first mode and M lines in a second mode, where N and M are different integer numbers.
- the first bus may use N lines in a first mode and M lines in a second mode, where N and M is the same integer number, but with different number of logical lanes used in the first mode and second mode.
- the first bus may use the same number of lines in the first mode and second mode but with different encodings in each mode.
- the first bus may use the same number of lines in the first and second modes, but for different purposes.
- the first bus may use three (3) lines in a first mode for transmitting data (e.g., 3-wire single-ended transmissions), and in a second mode may use two lines for transmitting data (e.g., one pair of lines for differential transmissions) plus a single line for sideband signaling (e.g., a legacy device command line to disable legacy devices when the first bus operates in the second mode).
- At least one of the second set of devices sends a disable command over the first bus to cause the first set of devices to stop from operating (or communicating) over the first bus.
- the disable command prevents each of the first set of devices from communicating over the first bus until either a power on reset or hardware reset of the first set of devices or an enable command is send to the first set of devices via a different channel than the first bus.
- a legacy device may disable operation of a bus interface from receiving and/or transmitting over the first bus.
- the disable command may disable operation of each device within the first set of devices.
- Each of the first set of devices may include a receiver device capable of at least partially decoding signals on the bus using just a clock signal embedded within signals transmitted according to the first communication protocol.
- the receiver device may enter into a disabled mode upon receipt of a disable command over the first bus.
- the receiver device may resume operation over the first bus upon receipt of an enable command over the second bus.
- an enable command may be sent from at least one of the second set of devices over a second bus to cause the first set of devices to resume operating over the first bus 712.
- the second bus may be one or more channels or communication lines, distinct from the first bus, between at least one of the second set of devices and one or more of the first set of devices.
- the second bus may operate according to a different protocol than either the first or second protocols used over the first bus.
- the first communication protocol may be, for example, one of a camera control interface extended (CCIe) protocol or an I2C protocol.
- CCIe camera control interface extended
- I2C I2C protocol
- FIG. 8 is a block diagram illustrating an exemplary method for transcoding of data bits into sequential symbols at a transmitter to embed a clock signal within the sequential symbols.
- a sequence of data bits 804 are converted into a ternary (base 3) number (e.g., where each individual digit of the ternary number is referred to as a "transition number"), and the ternary numbers are converted into sequential symbols which are transmitted over a control data bus that includes a clock line SCL 812 and a data line SDA 814.
- an original 20-bits 804 of binary data is input to a bit-to-transition number converter block 808 to be converted to a 12-digits ternary number 809.
- Each digit of a 12-digits ternary number may represent a "transition number”. Two consecutive digits of a transition number may be the same digit value.
- Each digit of a transition number is converted into a sequential symbol at a transition-to-symbol block 810 such that no two consecutive sequential symbols have the same value. Because a transition (e.g., change) is guaranteed at every sequential symbol, such sequential symbol transition may serve to embed a clock signal.
- Each sequential symbol 816 is then sent over a two wire physical link (e.g., I2C control data bus comprising a SCL line 812 and a SDA line 814).
- I2C control data bus comprising a SCL line 812 and a SDA line 814.
- a receiver 820 the process is reversed to convert the sequential symbols back to bits and, in the process, a clock signal is extracted from the sequential symbol transition.
- the receiver 820 receives the sequential symbols 822 over the two wire physical link (e.g., an I2C control data bus comprising a SCL line 824 and a SDA line 826).
- the received sequential symbols 822 are input into a clock-data recovery (CDR) block 828 to recover a clock timing and sample the sequential symbols (S).
- CDR clock-data recovery
- a symbol-to-transition number converter block 830 then converts each sequential symbol to a transition number, where each transition number represents a digit of a ternary number.
- a transition number-to-bits converter 832 converts twelve (12) transition numbers (i.e., a ternary number) to restore twenty (20) bits of original data from the 12 digit ternary number.
- a master node/device and/or a slave node/device coupled to the control data bus 102 and 208 may implement transmitters and/or receivers that embed a clock signal within sequential symbol changes/transitions (as illustrated in FIG. 10 ) in order to achieve higher bit rates over the same control data bus than is possible using a standard I2C control data bus.
- FIG. 9 illustrates an exemplary conversion from bits to transition numbers at a transmitter 902 and then from transition numbers to bits at a receiver 904.
- This example illustrates the transmission for a 2-wire system using 12 transition symbols.
- the transmitter 902 feeds binary information, Bits, into a "Bits to 12 ⁇ T" converter 906 to generate 12 symbol transition numbers, T0 to T11.
- T2, T1, T0 ⁇ ⁇ 2, 1, 0, 0, 1, 1, 0, 1,0, 1, 2, 1 ⁇
- the ternary number is: 2100 _ 1101 _ 0121 3
- transitions numbers may be converted into a number.
- the ternary number 2100_1101_0121 3 may be used as the transition number, for example, in FIG. 8 , so that each integer may be mapped to a sequential symbol and vice versa.
- the Ts are sent in decreasing order of power, i.e., T11 is the digit to be multiplied by 3 11 so it is of the eleventh power and so forth.
- FIG. 10 illustrates an exemplary conversion between transition numbers 1002 and sequential symbols 1004.
- An individual digit of ternary number, base-3 number, also referred to as a transition number can have one of the three (3) possible digits or states, 0, 1, or 2. While the same digit may appear in two consecutive digits of the ternary number, no two consecutive sequential symbols have the same value.
- the conversion between a transition number and a sequential symbol guarantees that the sequential symbol always changes (from sequential symbol to sequential symbol) even if consecutive transition numbers are the same.
- the conversion function adds the transition number (e.g., digit of a ternary number) plus 1 to the previous raw sequential symbol value. If the addition results in a number larger than 3, it rolls over from 0, then the result becomes the state number or value for the current sequential symbol.
- transition number e.g., digit of a ternary number
- a previous sequential symbol (Ps) is 1 when a first transition number (T a ) 1 is input, so the first transition number 1 plus 1 is added to the previous sequential symbol (Ps), and the resulting current sequential symbol (Cs) of 3 becomes the current sequential symbol that is sent to the physical link.
- a second transition number (T b ) of 0 is input, and the second transition number 0 plus 1 is added to the previous sequential symbol (Ps) of 3. Since the result of the addition (0+1+3) equals 4, is larger than 3, the rolled over number 0 becomes the current sequential symbol (Cs).
- a third transition number (T c ) of 0 is input.
- the conversion logic adds the third transition number 0 plus 1 to the previous sequential symbol (Ps) 0 to generate current sequential symbol (Cs) 1.
- a fourth transition number (T d ) of 2 is input.
- the conversion logic adds the fourth transition number (T d ) 2 plus 1 to the previous symbol (Ps) 1 to generate current sequential symbol (Cs) 0 (since the result of the addition, 4, is larger than 3, the rolled over number 0 becomes the current sequential symbol).
- the guaranteed sequential symbol change or transition in the sequence of symbols 1004 may serve to embed a clock signal, thereby freeing the clock line SCL in an I2C control data bus for data transmissions.
- transition number to sequential number conversions adds a guaranteed number "1" to increment between consecutive sequential symbols
- other values may be used in other implementations to guarantee a transition or change between sequential symbols.
- the process illustrated in FIG. 10 is reversed to convert the sequential symbols back to bits and, in the process, a clock signal is extracted from the symbol transition.
- the receiver 820 receives sequential symbols 822 over the two wire physical link (e.g., I2C bus comprising a SCL line 824 and a SDA line 826).
- the received sequential symbols 422 are input into a clock-data recovery (CDR) block 828 to recover a clock timing and sample the transcoded symbols (S).
- CDR clock-data recovery
- a symbol-to-transition number converter block 830 then converts each sequential symbol to a transition number, i.e., which makes up a digit within a ternary number.
- a transition number-to-bits converter 32 converts 12 transition numbers (i.e., a ternary number) to restore 20 bits of original data from the 12 digit ternary number.
- FIG. 11 illustrates the conversion between sequential symbols and transition numbers. This conversion maps each transition from a previous sequential symbol number (Ps) to a current sequential symbol (Cs) to a transition number (T). At the transmitter device, the transition numbers are being converted to sequential symbols. Because of the relative conversion scheme being used, the transition numbers guarantee that no two consecutive sequential symbols 1104 will be the same.
- Table 1102 illustrates how a current sequential symbol (Cs) may be assigned based on a previous sequential symbol (Ps) and a temporary transition number T tmp based upon the current transition number (T).
- FIG. 12 illustrates a general example of converting a ternary number (base-3 number) to a binary number, where each T in ⁇ T11, T10, ... T2, T1, T0 ⁇ is a symbol transition number.
- FIG. 13 illustrates an exemplary method for converting a binary number (bits) to a 12 digit ternary number (base-3 number). Each digit can be calculated by dividing the remainder (result of a modulo operation) from a higher digit calculation with 3 to the power of the digit number, discarding decimal points numbers.
- FIG. 14 illustrates an example of one possible implementation of the division and the module operations of the FIG. 13 , which may be synthesizable by any commercial synthesis tools.
- FIG. 15 is a block diagram illustrating an exemplary legacy device 1502.
- the legacy device 1502 may be a CCIe-compatible device.
- the legacy device 1502 may include a control circuit/logic 1504 coupled to a first communication circuit 1506 and a second communication circuit 1507.
- the first communication circuit 1506 may serve to couple to a shared first bus and may be configured to communicate over the first bus according to a first communication protocol.
- the first communication circuit 1506 may include or define a transmitter/receiver circuit 1506 that implement a transcoding circuit/module 1514, a clock recovery circuit/module 1516, and/or a transmit/receive buffer 1518.
- the transcoding circuit/module 1514 may perform one or more functions illustrated in FIGS.
- the 8-14 to convert bits into symbols for transmission over the first bus and to convert received symbols to bits upon reception over the first bus.
- This transcoding may also effectively embed a clock within symbol-to-symbol transitions.
- the clock recovery circuit/module 1516 may serve to extract such embedded clock from the symbol-to-symbol transitions.
- the transmit/receive buffer 1518 may serve to buffer bits for transmission and/or during reception.
- the second communication circuit 1507 may serve to couple to a second bus and may be configured to communicate over the second bus according to a third communication protocol.
- the control circuit/logic 1504 may include or implement a command monitoring circuit/module 1508, a disable detection circuit/module 1510, and/or an enable detection circuit/module 1512.
- the control circuit/logic 1504 may be adapted to configure the communication circuit 1506 to communicate over the first bus using the first communication protocol.
- the command monitoring circuit/module 1508 may monitor the first bus for a disable command. If the disable command is detected over the first bus, then the disable circuit/module 1510 may fully or partially disable operation of the first communication circuit 1506 to ignore activity over the first bus.
- the bus may be a two-line bus.
- signals may be transmitted over the two lines and a clock signal is embedded in symbol-to-symbol transitions of the plurality of symbols within the signals.
- the disable command may cause the legacy device 1502 to stop operating over the first bus (e.g., stop transmitting and stop receiving over the first bus). For instance, the disable command may prevent the legacy device 1502 from communicating over the first bus until a power on reset or hardware reset of the legacy device or reception of an enable command from the second bus.
- FIG. 16 illustrates an exemplary method that may be implemented by a legacy device.
- a first communication circuit may be configured to communicate over a first bus using a first communication protocol 1602.
- the legacy device may monitor the first bus for a disable command 1604.
- the legacy device may receive the disable command over the first bus from a second device capable of operating in a first mode of operation that uses the first communication protocol and in a second mode of operation that uses a second communication protocol 1606.
- the first communication circuit may be reconfigured to ignore activity over the first bus upon detection of the disable command 1608.
- the first communication protocol may provide a first data throughput over the first bus while the second communication protocol provides a second data throughput over the first bus, where the second data throughput is greater than the first data throughput.
- the first bus may include two lines, and in the first mode of operation signals are transmitted over the two lines and a clock signal is embedded in symbol-to-symbol transitions of the plurality of symbols within the signals.
- the disable command may be received prior to or concurrent with the first bus being switched to operate according to a second communication protocol unsupported by the legacy device.
- the legacy device may be disabled from using the first bus, it may continue to operate and/or monitor a second bus (or a channel) for an enable command 1610.
- the legacy device may receive such enable command over the second bus 1612 which causes it to reconfigure the first communication circuit to resume activity over the first bus, using the first protocol 1614.
- the first bus includes a plurality of lines, with N lines allocated for transmissions in the first mode, and M lines being allocated for transmissions in the second mode, where N and M are integers greater than or equal to two (2).
- N and M may be different integers. In another implementation, N and M may be the same integer and different number of logical transmission lanes are defined in the first and second modes.
- the first mode 3-wire single-ended transmissions are used, and in the second mode one pair of lines is used for differential transmissions and the remaining single line is used for sideband signaling.
- FIG. 17 is a block diagram illustrating an exemplary next-generation device 1702.
- the next-generation device 1702 may operate as a slave device or a master device.
- the next-generation device 1702 may be a CCIe-compatible device.
- the next-generation device 1702 may include a control circuit/logic 1704 coupled to a first communication circuit 1706 and, optionally, a second communication circuit 1707.
- the next-generation device 1702 when it operates as a master device, it may include or activate the second communication circuit 1707 in order to re-enable legacy devices (i.e., over a second bus) that have been previously disabled.
- the first communication circuit 1706 may serve to couple to a first bus shared with other devices.
- the first communication circuit 1706 may be configurable to communicate over the first bus according to a first communication protocol or a second communication protocol.
- the first communication circuit 1706 may include or define a transmitter/receiver circuit 1706 that implements a transcoding circuit/module 1714, a clock recovery circuit/module 1716, and/or a transmit/receive buffer 1718.
- the transcoding circuit/module 1714 may perform one or more functions illustrated in FIGS. 8-14 to convert bits into symbols for transmission over the first bus and to convert received symbols to bits upon reception over the first bus when using the first communication protocol.
- This transcoding may also effectively embed a clock within symbol-to-symbol transitions.
- the clock recovery circuit/module 1716 may serve to extract such embedded clock from the symbol-to-symbol transitions.
- the transmit/receive buffer 1718 may serve to buffer bits for transmission and/or during reception.
- the control circuit 1704 may include or implement a first mode circuit/module 1708 adapted to configure the first communication circuit 1706 to operate in the first mode in which the first communication protocol is used over the first bus.
- control circuit 1704 may include or implement a disable circuit/module 1710 that sends a disable command over the first bus to indicate to other devices that do not support a second communication protocol to ignore activity over the first bus.
- the control circuit 1704 may include or implement a second mode circuit/module adapted to reconfigure the first communication circuit to operate in a second mode in which the second communication protocol is used over the first bus.
- the first communication circuit 1706 may disable operation of, for example, the transcoding circuit/module 1714 and/or clock recovery circuit/module 1716.
- control circuit 1704 may include or implement an enable circuit/module that sends an enable command over the second communication circuit (e.g., through the second bus) to indicate to the other devices (e.g., legacy devices) to resume activity over the first bus.
- the first communication circuit 1706 may be reconfigured to operate in the first mode in which the first communication protocol is used over the first bus.
- the first communication protocol provides a first data throughput/rate over the bus while the second communication protocol provides a second data throughput/rate over the first bus, where the second data throughput/rate is greater than the first data throughput/rate.
- the first bus may include or be defined by two lines, wherein the first mode of operation signals are transmitted over the two lines and a clock signal is embedded in symbol-to-symbol transitions of the plurality of symbols within the signals.
- the disable command may prevent the other devices from communicating over the first bus until a power on reset or hardware reset of each of the other devices or an enable command is otherwise effectuated on the other devices.
- the disable command may be sent prior to or concurrent with the device entering the second mode.
- the first communication circuit 1706 may include a receiver device capable of at least partially decoding signals on the first bus using just a clock signal embedded within signals transmitted according to the first communication protocol.
- the first bus includes a plurality of lines, with N lines allocated for transmissions in the first mode, and M lines being allocated for transmissions in the second mode, where N and M are integers greater than or equal to two (2).
- N and M may be different integers. In another implementation, N and M may be the same integer and different number of logical transmission lanes are defined in the first and second modes.
- the first mode 3-wire single-ended transmissions are used, and in the second mode one pair of lines is used for differential transmissions and the remaining single line is used for sideband signaling.
- FIG. 18 illustrates an exemplary method that may be implemented by a next-generation device when operating as a master device.
- a first communication circuit may be configured to operate in a first mode in which a first communication protocol is used over a first bus 1802.
- the next-generation device may send a disable command over the first bus to indicate to other devices that do not support a second communication protocol to ignore activity over the first bus 1804.
- the first communication circuit may be reconfigured to operate in a second mode in which the second communication protocol is used over the first bus 1806.
- next-generation device may reconfigure the first communication circuit to operate in the first mode in which the first communication protocol is used over the first bus 1808.
- the next-generation device then sends an enable command over a second bus to indicate to the other devices to resume activity over the first bus using the first protocol 1810.
- the bus may include two lines, and in the first mode of operation signals are transmitted over the two lines and a clock signal is embedded in symbol-to-symbol transitions of the plurality of symbols within the signals.
- the sleep or disable command may be sent prior to or concurrent with the device entering the second mode.
- FIG. 19 illustrates an exemplary method that may be implemented by a next-generation device when operating as a slave device over a shared bus.
- this next-generation device may be coupled solely to a shared first bus.
- a first communication circuit may be configured to operate in a first mode in which a first communication protocol is used over the first bus 1902.
- the next-generation device may subsequently receive or detect an indication that the first bus is to operate in a second mode in which the second communication protocol is used over the first bus 1904. Consequently, the first communication circuit may be reconfigured to operate in a second mode in which the second communication protocol is used over the first bus 1906.
- the next-generation device may subsequently receive or detect an indication that the first bus is to operate in a second mode in which the second communication protocol is used over the first bus 1908.
- next-generation device may reconfigure the first communication circuit to operate in the first mode in which the first communication protocol is used over the first bus 1910 and/or optionally over the second bus.
- One or more of the components, steps, features, and/or functions illustrated in the Figures may be rearranged and/or combined into a single component, step, feature, or function or embodied in several components, steps, or functions. Additional elements, components, steps, and/or functions may also be added without departing from novel features disclosed herein.
- the apparatus, devices, and/or components illustrated in the Figures may be configured to perform one or more of the methods, features, or steps described in the Figures.
- the novel algorithms described herein may also be efficiently implemented in software and/or embedded in hardware.
- the embodiments may be described as a process that is depicted as a flowchart, a flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged.
- a process is terminated when its operations are completed.
- a process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.
- a storage medium may represent one or more devices for storing data, including read-only memory (ROM), random access memory (RAM), magnetic disk storage mediums, optical storage mediums, flash memory devices, and/or other machine readable mediums for storing information.
- ROM read-only memory
- RAM random access memory
- magnetic disk storage mediums magnetic disk storage mediums
- optical storage mediums flash memory devices
- machine readable medium includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels and various other mediums capable of storing, containing, or carrying instruction(s) and/or data.
- embodiments may be implemented by hardware, software, firmware, middleware, microcode, or any combination thereof.
- the program code or code segments to perform the necessary tasks may be stored in a machine-readable medium such as a storage medium or other storage(s).
- a processor may perform the necessary tasks.
- a code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements.
- a code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
- DSP digital signal processor
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- a general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine.
- a processor may also be implemented as a combination of computing components, e.g., a combination of a DSP and a microprocessor, a number of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
- a software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
- a storage medium may be coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
- Small-Scale Networks (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Description
- The present disclosure pertains to techniques to permit devices of different generations to coexist when coupled to a shared bus and, more particularly, to permit next-generation devices to disable legacy devices on the shared bus and bring them back into operation without a power cycling or bus reset.
- The I2C standard (also referred to as I2C) was defined by NXP for a multi-master serial single-ended bus used for attaching low-speed peripherals to a motherboard, embedded system, cellphone, cameras, or other electronic devices. The I2C bus includes a clock (SCL) and data (SDA) lines with 7-bit addressing. The bus has two roles for devices: master and slave. A master device is a node that generates the clock and initiates communication with slave devices. A slave device is a node that receives the clock and responds when addressed by the master device. The I2C bus is a multi-master bus which means any number of master devices can be present. Additionally, master and slave roles may be changed between messages (after a STOP is sent). I2C defines basic types of messages, each of which begins with a START and ends with a STOP.
- Various multi-protocol methods have been proposed to achieve higher bandwidth over an I2C-compatible bus while still permitting I2C legacy devices to remain operational over the I2C-compatible bus. For example, the I3C standard (defined by the MIPI Alliance) is an evolution of the I2C standard and provides backward compatibility for I2C devices. However, it is foreseen that even higher bandwidth may be desirable over the same bus in the future. Achieving such higher bandwidths over the bus may be hindered by the operation of legacy devices, such as I2C device and I3C devices.
- Therefore, a solution is needed that allows selectively disabling legacy devices in a system in which a bus is shared by both legacy devices and next generation devices to permit higher bandwidths over the shared bus.
- United States Patent Application Publication No.
US 2014/372642 relates to a camera control interface extension bus. United States Patent No.US 6,574,233 relates to an arrangement for redefining an interface while maintaining backwards compatibility. - A first aspect provides a device, comprising a first bus, a second bus, a first set of devices, and a second set of devices. The first set of devices are coupled to the first bus and second bus, and the first set of devices configured to communicate over the first bus according to a first communication protocol. The second set of devices are coupled to the first bus, and the second set of devices configured to communicate over the first bus according to both the first communication protocol and a second communication protocol. In some implementations, some devices of the second set of devices (e.g., a next-generation master device and/or next-generation slave devices) may be coupled to the second bus. In a first mode of operation over the first bus, the first set of devices and second set of devices may concurrently communicate over the first bus using the first communication protocol. In a second mode of operation over the first bus, the second set of devices may communicate with each other using the second communication protocol over the first bus, and the first set of devices stop operating over the first bus. A disable command may be sent over the first bus (e.g., by a bus master device, possibly within the second set of devices) to cause the first set of devices to stop operating over the first bus while the second set of devices operate in the second mode over the first bus. An enable command is sent over the second bus (e.g., by the bus master device, possibly within the second set of devices) to cause the first set of devices to resume operating over the first bus while the first bus switches to operate in the first mode. The first communication protocol may provide a first data throughput over the first bus while the second communication protocol provides a second data throughput over the first bus, where the second data throughput may be greater than the first data throughput. The disable command prevents each of the first set of devices from receiving and transmitting over the first bus. Prior to or concurrent with entering the second mode of operation, at least one device from the second set of devices sends the disable command. During the second mode of operation the first set of devices are unaffected by activity over the first bus.
- In one implementation, the first bus includes a plurality of lines, with N lines allocated for transmissions in the first mode, and M lines being allocated for transmissions in the second mode, where N and M are integers greater than or equal to two (2). In some instances, the number of lines N and M may be different integers. In other instances, the number of lines N and M are the same integers and different number of logical transmission lanes are defined in the first and second modes.
- A second aspect provides a legacy device, comprising: a first communication circuit, second communication circuit, and a control circuit. The first communication circuit to couple to a first bus and configured to communicate over the first bus according to a first communication protocol. The second communication circuit to couple to a second bus. The control circuit coupled to the first communication circuit and second communication circuit. The control circuit may be configured or adapted to: (a) configure the communication circuit to communicate over the first bus using the first communication protocol, (b) monitor the first bus for a disable command, (c) reconfigure the first communication circuit to ignore activity over the first bus upon detection of the disable command, (d) monitor the second bus for an enable command, and/or (e) reconfigure the first communication circuit to resume activity over the first bus upon detection of the enable command.
- The first bus may include a plurality of lines, with N lines allocated for transmissions in the first mode, and M lines being allocated for transmissions in the second mode, where N and M are integers greater than or equal to two (2). In some instances, the plurality of lines N and M are different integers. In other instances, the plurality of lines N and M are the same integers and different number of logical transmission lanes are defined in the first and second modes. In one example, in the first mode N=2 to support CCIe-compatible transmissions and in the second mode M=3 to support three factorial (3!) multi-wire multi-level differential transmissions. In another example, in the first mode N=4 to support 4-wire single ended multi-wire transmissions and in the second mode M= 2x2 to support transmissions over a first differential pair using two lines and a second differential pair using another two lines. In yet another example, in the first mode N= 2x2 to support two differential wire pairs of CCIe-compatible transmissions and in the second mode M= 4 to support four factorial (4!) multi-wire multi-level differential transmissions.
- In another implementation, where N=M=3, in the first mode 3-wire single-ended transmissions are used, and in the second mode one pair of lines is used for differential transmissions and the remaining single line is used for sideband signaling.
- A third aspect provides a next-generation device, configured as a bus master device, may comprise a first communication circuit, a second communication circuit, and/or a control circuit. The first communication circuit to couple to a first bus shared with other devices. The second communication circuit to couple to a second bus shared with the other devices. The control circuit may be coupled to the first communication circuit and the second communication circuit. The control circuit may be configured to: (a) configure the first communication circuit to operate in a first mode in which a first communication protocol is used over the first bus; (b) send a disable command over the first bus to indicate to other devices that do not support a second communication protocol to ignore activity over the first bus; (c) reconfigure the first communication circuit to operate in a second mode in which the second communication protocol is used over the first bus; (d) reconfigure the first communication circuit to operate in the first mode in which the first communication protocol is used over the first bus; and/or (e) send an enable command over a second bus to indicate to the other devices to resume activity over the first bus using the first protocol.
- The disable command may prevent the other devices from communicating over the first bus. The disable command may be sent prior to or concurrent with the first communication circuit entering the second mode.
- Various features, nature, and advantages may become apparent from the detailed description set forth below when taken in conjunction with the drawings in which like reference characters identify correspondingly throughout.
-
FIG. 1 is a block diagram illustrating an example of a first bus and a second bus shared by legacy devices and next-generation devices. -
FIG. 2 is a block diagram illustrating another implementation of the device inFIG. 1 in which the second bus may be coupled between a master device and some or all of the legacy devices. -
FIG. 3 illustrates how both wires/lines of a shared first bus may be utilized for data transmission in a first mode. -
FIG. 4 illustrates an exemplary general call that may be used to place the legacy devices (or at least their interface to the bus) into a disable mode (e.g., suspend, stop, or kill mode so legacy devices do not wakeup). -
FIG. 5 illustrates a method operational at a next generation device to disable legacy devices from operating over a shared first bus and subsequently re-enable operation of the legacy devices via a second bus. -
FIG. 6 illustrates a method operational at a legacy device to operate over a shared first bus with next generation devices. -
FIG. 7 illustrates a method that permits a next generation device to disable and re-enable legacy devices sharing the same first bus. -
FIG. 8 is a block diagram illustrating an exemplary method for transcoding of data bits into sequential symbols at a transmitter to embed a clock signal within the sequential symbols. -
FIG. 9 illustrates an exemplary conversion from bits to transition numbers at a transmitter and then from transition numbers to bits at a receiver. -
FIG. 10 illustrates an exemplary conversion between transition numbers and sequential symbols. -
FIG. 11 illustrates the conversion between sequential symbols and transition numbers. -
FIG. 12 illustrates a general example of converting a ternary number (base-3 number) to a binary number, where each T in {T11, T10, ... T2, T1, T0} is a symbol transition number. -
FIG. 13 illustrates an exemplary method for converting a binary number (bits) to a 12 digit ternary number (base-3 number). -
FIG. 14 illustrates an example of one possible implementation of the division and the module operations of theFIG. 13 , which may be synthesizable by any commercial synthesis tools. -
FIG. 15 is a block diagram illustrating an exemplary legacy device. -
FIG. 16 illustrates an exemplary method that may be implemented by a legacy device. -
FIG. 17 is a block diagram illustrating an exemplary next-generation device. -
FIG. 18 illustrates an exemplary method that may be implemented by a next-generation device when operating as a master device over a shared bus. -
FIG. 19 illustrates an exemplary method that may be implemented by a next-generation device when operating as a slave device over a shared bus. - In the following description, specific details are given to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific detail. For example, circuits may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, structures, and techniques may not be shown in detail in order not to obscure the embodiments.
- In a system in which next-generation devices and legacy devices share a first bus, a feature is provided that permits the next-generation devices to selectively disable or sleep the legacy devices (or at least the bus interfaces of the legacy devices) in order to improve performance (e.g., increase bandwidth or transmission rates) over the bus. A first set of devices (e.g., legacy devices, I2C-compatible devices, I3C-compatible devices, etc.) may be configured to communicate over the first bus according to a first communication protocol. A second set of devices (e.g., next-generation devices) may be configured to communicate over the first bus according to both the first communication protocol and a second communication protocol. In a first mode of operation, the first set of devices and second set of devices may concurrently communicate over the first bus using the first communication protocol. In a second mode of operation, the second set of devices communicate with each other using the second communication protocol over the first bus, and the first set of devices stop operating over the first bus. For instance, at least one device from the second set of devices may cause the first set of devices to enter a disabled mode and the second set of devices communicate with each other using the second communication protocol. Consequently, in the second mode, the first set of devices ignore activity (e.g., do not transmit and ignore most commands) over the bus.
- In one example, the first communication protocol provides a first data throughput (e.g., bandwidth or transmission rate) over the bus while the second communication protocol provides a second data throughput over the bus, where the second data throughput is generally greater than the first data throughput. In another example, the second communication protocol may be slower (e.g., less data throughput) than the first communication protocol, but the second protocol may be chosen for lower power consumption using, for instance, some DC level which the first communication protocol cannot accept.
- During the first mode of operation, at least one of the second set of devices sends a disable command or a sleep command over the first bus to cause the first set of devices to stop operating over the first bus.
- The system may also include a second or secondary bus, distinct from the first bus, to which the next-generation devices (i.e., second set of devices) and legacy devices (i.e., first set of devices) are also coupled. In order to wake up the second set of devices after a disable command has been sent over the first bus, a master device may make use of the second or secondary bus to send an enable command to the second set of devices. That is, while the first set of devices may have disabled communications over the first bus, they may still remain operational over the second or secondary bus. Upon reception of an enable command over the second or secondary bus, each device in the first set of devices may be configured to activate its interface to/from the first bus and start communicating over the first bus (e.g., using the first protocol). In various implementations, while in the second mode of operation, the first bus and/or the second bus may be used to inform slave next-generation devices (e.g., in the second set of devices) to switch back to the first mode. Note that the second or secondary bus permits re-enabling operation of the first set of devices without the need for power cycling or a hardware reset. In one example, the first bus may be a data bus and the second bus may be a control bus.
-
FIG. 1 is a block diagram illustrating an example of afirst bus 102 and asecond bus 112 shared bylegacy devices generation devices legacy devices generation devices generation devices first bus 102 or features relative to thelegacy devices 108 and 110 (e.g., may operate faster, or include improved capabilities). - The
legacy devices generation devices second bus 112, distinct from the first bus. For example, thefirst bus 102 may be a control bus while thesecond bus 112 may be a data bus. - In some modes of operation, it may be desirable to share the
first bus 102 between thelegacy devices generation devices 104 and 106 (e.g., for backward compatibility). In such modes of operation, the next-generation devices legacy devices - In other modes of operation, it may be desirable to improve performance over the first bus by disabling the
legacy devices 108 and 110 (or at least the bus interfaces of the legacy devices to the first bus), thereby permitting the next-generation devices legacy devices - A master device may send a disable command to the
legacy devices legacy devices legacy devices first bus 102. However, because such power reset of legacy devices is time/resource intensive, another implementation provides for an enable command to be sent via thesecond bus 112. Upon detection of an enable command over thesecond bus 112, thelegacy devices - In this example, a first next-
generation device 104 may serve as a multimode master device, being able to control communications over thefirst bus 102 according to both the first protocol and/or the second protocol. While operating as a master device over thefirst bus 102, the first next-generation device 104 may be capable of sending both a disable command to thelegacy devices first bus 102 as well as an enable command to thelegacy devices second bus 112.
FIG. 2 is a block diagram illustrating another implementation of the device inFIG. 1 in which thesecond bus 212 may be coupled between amaster device 104 and some or all of thelegacy devices first bus 102 may be a two-line bus. -
FIG. 3 illustrates how both wires/lines of a shared first bus (e.g., first bus 102) may be utilized for data transmission in a first (CCIe) mode. For instance,first bus 102 may include a first line (SDA) 302 and a second line (SCL) 304. In one implementation, a clock signal may be embedded within symbol transitions (as discussed further below). TheSDA line 302 andSCL line 304 may each transmit any arbitrary number of symbols between twoconsecutive START conditions - In one example, a CCIe word may be sent in 12-symbols that carry 20-bits information. In one implementation, sixteen (16) bits of the 20-bits may be for data information while 4 bits of the 20-bits may be used for other information such as control information.
-
FIG. 4 illustrates an exemplary general call that may be used to place the legacy (CCIe) devices (or at least their interface to the bus) into a disable mode (e.g., suspend, stop, or kill mode so legacy devices do not wakeup). That is, such disable mode may be used when the legacy devices will not be subsequently awoken (except through a power reset or a reboot or other mechanism that does not utilize the first bus). For instance, a next-generation device 104 or 106 (operating as a master device relative to the first bus 102) may send a farewell/disable command/call 400 over the sharedfirst bus 102 which causes thelegacy devices second bus call identifier portion 402, anaddress portion 404 that is specifically selected to disable the legacy (CCIe)devices 108 and/or 110. Thefarewell address portion 404 is selected so that nolegacy device 108 and/or 110 accidentally interprets it as valid address. Instead,such farewell address 404 is interpreted and processed as a farewell/disable command/call by thelegacy devices - The farewell/disable command/call 400 may be sent, for example, by a master device (e.g., a next-
generation device - Once placed in the disable mode, the
legacy devices 108 and/or 110 do not receive or transmit over the sharedfirst bus 102. Consequently, thelegacy devices 108 and/or 110 may not communicate over thefirst bus 102 unless they are reset or otherwise enabled. Resetting or power cycling a legacy device is disfavored because it also means resetting the first bus, which is time consuming. Instead, an enable command/call may be sent by a next-generation device via thesecond bus 112 to enable, reanimate, or wake-up the legacy devices from the disable mode. Such enable command/call may be designed to cause the receiving legacy device to enable a communication interface of thelegacy device 108 and/or 110 so that it can again receive and/or transmit over thefirst bus 102. Occurrence of such enable command or call may also cause the next-generation devices 104 and/or 106 to switch to an operating mode that permits coexistence with thelegacy devices 108 and/or 110 over the shared first bus 102 (e.g., switch from the second protocol to the first protocol). In alternative implementations, the next-generation devices 106 may not be coupled to thesecond bus 112 and may receive command to switch to the second protocol over thefirst bus 102 when themaster device 104 switches back to the first protocol. -
FIG. 5 illustrates a method operational at a next generation device to disable legacy devices (e.g., CCIe-compatible devices) from operating over a shared first bus and subsequently re-enable operation of the legacy devices via a second bus. A next generation device may ascertain when to change from a first mode of operation, in which it coexists with the legacy devices on the first bus, to a second mode of operation which has improved performance over the first bus (e.g., greater data throughput, increased bandwidth, increase bus speed, etc.) relative to the first mode ofoperation 502. The next generation device may then send a disable command/signal over the first bus to cause the legacy devices to become disabled with respect to thefirst bus 504. In disabled mode, the legacy devices may ignore all transmissions over the first bus (i.e., do not receive or transmit over the first bus). - The next generation device may then transmit or receive signals over the first bus according to the second mode of
operation 506. - In some implementations, the next generation device may receive an enable command over the first bus and switches to operating in the first mode over the
first bus 508. - In some instances, the next generation device may revert to operating in the first mode of operation over the first bus and transmits an enable command over a second bus to cause the legacy devices to start communicating (e.g., receive or transmit) over the
first bus 510. For instance, such enable command may be sent by a next generation master device. -
FIG. 6 illustrates a method operational at a legacy device to operate over a shared first bus with next generation devices. The legacy device may be coupled to one or more next generation devices over a first bus and a second bus. - The legacy device may operate over the first bus shared with one or more next generation devices, where the first bus is configurable to dynamically switch between a first mode of operation, in which legacy devices and next generation devices coexists on the first bus, and a second mode of operation which has improved performance (e.g., greater data throughput, increased bandwidth, increase bus speed, etc.) relative to the first mode of operation in which only the next generation devices operate on the
first bus 602. The legacy device may receive a disable command (e.g., from a master device controlling the first bus) over the first bus to cause the legacy device to disable its operations over thefirst bus 604. - Even when the legacy device has disabled its operations over the first bus, it continues to operate (e.g., communicate) over the second bus also shared with the one or more
next generation devices 606. Subsequently, the legacy device may receive an enable command over the second bus and resumes operation over thefirst bus 608. -
FIG. 7 illustrates a method that permits a next generation device to disable and re-enable legacy devices sharing the same first bus. A first set of devices (e.g., legacy devices) may be coupled to a first bus, the first set of devices configured to communicate over the bus according to afirst communication protocol 702. A second set of devices (e.g., next generation devices) may be coupled to the first bus, the second set of devices configured to communicate over the first bus according to both the first communication protocol and asecond communication protocol 704. In a first mode of operation, the first set of devices and the second set of devices may concurrently communicate over the bus using the first communication protocol 706. In a second mode of operation the second set of devices communicate with each other using the second communication protocol over the bus, and the first set of devices stop operating (e.g., stop receiving and/or transmitting) over thefirst bus 708. - That is, during the second mode of operation the first set of devices are unaffected by bus activity (e.g., ignore all or most transmissions on the bus and/or do not transmit over the bus). For example, prior to or concurrent with entering the second mode of operation, at least one device from the second set of devices may cause the first set of devices to enter a sleep or disabled mode. For instance, a disable command may be sent from at least one of the second set of devices over the first bus during the first mode of operation to cause the first set of devices to stop operating over the
first bus 710. - The first communication protocol may provide a first data throughput over the first bus while the second communication protocol provides a second data throughput over the first bus, where the second data throughput is greater than the first data throughput.
- In one example, the first bus may include two lines. In the first mode of operation, signals may be transmitted over the two lines and a clock signal may be embedded in symbol-to-symbol transitions of the plurality of symbols within the signals.
- In another example, the first bus may include a plurality of lines and the number of lines used may be dynamically allocated/adjusted depending on the mode of operation of the first bus. For example, the first bus may use N lines in a first mode and M lines in a second mode, where N and M are different integer numbers. Alternatively, the first bus may use N lines in a first mode and M lines in a second mode, where N and M is the same integer number, but with different number of logical lanes used in the first mode and second mode.
- In yet another example, the first bus may have a first mode in which two lines (N=2) are used for transmissions (e.g., CCIe-compatible transmissions), and a second mode in which three lines (M=3) are used for transmissions (e.g., three factorial (3!) multi-wire multi-level differential transmissions).
- In yet another example, the first bus may use the same number of lines in the first mode and second mode but with different encodings in each mode. For instance, the first bus may operate in a first mode in which four lines (N=4) are used for transmissions (e.g., 4-wire single ended multi-wire (2^4-1 states per symbol)), and a second mode in which two pairs of differential lines (M= 2x2) are used for transmissions (e.g., a first differential pair over two lines and a second differential pair over another two lines).
- In yet another example, the first bus may operate in a first mode in which two pairs of differential lines (N= 2x2) are used for transmissions according to a first encoding (e.g., two lanes of CCIe-compatible transmissions), and a second mode in which four lines (M=4) are used for transmissions (e.g., four factorial (4!) multi-wire multi-level differential transmissions).
- In yet another example, the first bus may use the same number of lines in the first and second modes, but for different purposes. For instance, the first bus may use three (3) lines in a first mode for transmitting data (e.g., 3-wire single-ended transmissions), and in a second mode may use two lines for transmitting data (e.g., one pair of lines for differential transmissions) plus a single line for sideband signaling (e.g., a legacy device command line to disable legacy devices when the first bus operates in the second mode).
- During the first mode of operation, at least one of the second set of devices sends a disable command over the first bus to cause the first set of devices to stop from operating (or communicating) over the first bus.
- The disable command prevents each of the first set of devices from communicating over the first bus until either a power on reset or hardware reset of the first set of devices or an enable command is send to the first set of devices via a different channel than the first bus. While in the disabled mode, a legacy device may disable operation of a bus interface from receiving and/or transmitting over the first bus. In another example, the disable command may disable operation of each device within the first set of devices.
- Each of the first set of devices may include a receiver device capable of at least partially decoding signals on the bus using just a clock signal embedded within signals transmitted according to the first communication protocol. The receiver device may enter into a disabled mode upon receipt of a disable command over the first bus. The receiver device may resume operation over the first bus upon receipt of an enable command over the second bus. For instance, an enable command may be sent from at least one of the second set of devices over a second bus to cause the first set of devices to resume operating over the
first bus 712. In various examples, the second bus may be one or more channels or communication lines, distinct from the first bus, between at least one of the second set of devices and one or more of the first set of devices. In some implementations, the second bus may operate according to a different protocol than either the first or second protocols used over the first bus. - The first communication protocol may be, for example, one of a camera control interface extended (CCIe) protocol or an I2C protocol.
-
FIG. 8 is a block diagram illustrating an exemplary method for transcoding of data bits into sequential symbols at a transmitter to embed a clock signal within the sequential symbols. At thetransmitter 802, a sequence ofdata bits 804 are converted into a ternary (base 3) number (e.g., where each individual digit of the ternary number is referred to as a "transition number"), and the ternary numbers are converted into sequential symbols which are transmitted over a control data bus that includes aclock line SCL 812 and adata line SDA 814. - In one example, an original 20-
bits 804 of binary data is input to a bit-to-transitionnumber converter block 808 to be converted to a 12-digitsternary number 809. Each digit of a 12-digits ternary number may represent a "transition number". Two consecutive digits of a transition number may be the same digit value. Each digit of a transition number is converted into a sequential symbol at a transition-to-symbol block 810 such that no two consecutive sequential symbols have the same value. Because a transition (e.g., change) is guaranteed at every sequential symbol, such sequential symbol transition may serve to embed a clock signal. Eachsequential symbol 816 is then sent over a two wire physical link (e.g., I2C control data bus comprising aSCL line 812 and a SDA line 814). - At a
receiver 820 the process is reversed to convert the sequential symbols back to bits and, in the process, a clock signal is extracted from the sequential symbol transition. Thereceiver 820 receives thesequential symbols 822 over the two wire physical link (e.g., an I2C control data bus comprising aSCL line 824 and a SDA line 826). The receivedsequential symbols 822 are input into a clock-data recovery (CDR) block 828 to recover a clock timing and sample the sequential symbols (S). A symbol-to-transitionnumber converter block 830 then converts each sequential symbol to a transition number, where each transition number represents a digit of a ternary number. Then, a transition number-to-bits converter 832 converts twelve (12) transition numbers (i.e., a ternary number) to restore twenty (20) bits of original data from the 12 digit ternary number. - The technique illustrated herein may be used to increase the link rate of a control data bus 102 (
FIG. 1 ) and 208 (FIG. 2 ) beyond what the I2C standard control data bus provides and is referred hereto as CCIe mode. In one example, a master node/device and/or a slave node/device coupled to thecontrol data bus 102 and 208 may implement transmitters and/or receivers that embed a clock signal within sequential symbol changes/transitions (as illustrated inFIG. 10 ) in order to achieve higher bit rates over the same control data bus than is possible using a standard I2C control data bus. -
FIG. 9 illustrates an exemplary conversion from bits to transition numbers at atransmitter 902 and then from transition numbers to bits at areceiver 904. This example illustrates the transmission for a 2-wire system using 12 transition symbols. Thetransmitter 902 feeds binary information, Bits, into a "Bits to 12×T"converter 906 to generate 12 symbol transition numbers, T0 to T11. Thereceiver 904 receives 12 symbols transition numbers, T0 to T11, which are fed into a "12×T to Bits"converter 908 to retrieve the binary information (Bits). If there are r possible symbol transition states per one T, T0 to T11, 12 transitions can send r12 different states. For a 2-wire bus, r = 22-1. Consequently, transitions T0 ... T11 contain data that can have (22-1)12 different states. Consequently, r = 4-1 = 3 and the number of states = (4-1)^12 = 531441. - In this example for a 2-wire system using 12 symbol transition numbers, it may be assumed that the possible symbol transitions per one T, r is 3 (= 22-1). If the number of symbols in a group is 12, a 12-digit ternary number (base-3 number): T11, T10, ..., T2, T1, T0, where each Ti: 0, 1, 2, may be used. For example, for {T11, T10, .. T2, T1, T0} = {2, 1, 0, 0, 1, 1, 0, 1,0, 1, 2, 1}, the ternary number is:
- In this manner, 12 transitions numbers may be converted into a number. Note that the ternary number 2100_1101_01213 may be used as the transition number, for example, in
FIG. 8 , so that each integer may be mapped to a sequential symbol and vice versa. When sending 2100_1101_01213 in inverse order, the Ts are sent in decreasing order of power, i.e., T11 is the digit to be multiplied by 311 so it is of the eleventh power and so forth. - The example illustrated in
FIG. 8 for a 2-wire system and 12 symbol transition numbers may be generalized to an n-wire system and m symbol transition numbers. If there are r possible symbol transition states per one T, T0 to Tm-1, m transitions can send rm different states, i.e., r = 2n-1. Consequently, transitions T0 ... Tm-1 contain data that can have (2n-1)m different states. -
FIG. 10 illustrates an exemplary conversion betweentransition numbers 1002 andsequential symbols 1004. An individual digit of ternary number, base-3 number, also referred to as a transition number, can have one of the three (3) possible digits or states, 0, 1, or 2. While the same digit may appear in two consecutive digits of the ternary number, no two consecutive sequential symbols have the same value. The conversion between a transition number and a sequential symbol guarantees that the sequential symbol always changes (from sequential symbol to sequential symbol) even if consecutive transition numbers are the same. - In one example, the conversion function adds the transition number (e.g., digit of a ternary number) plus 1 to the previous raw sequential symbol value. If the addition results in a number larger than 3, it rolls over from 0, then the result becomes the state number or value for the current sequential symbol.
- In a
first cycle 1006, a previous sequential symbol (Ps) is 1 when a first transition number (Ta) 1 is input, so thefirst transition number 1 plus 1 is added to the previous sequential symbol (Ps), and the resulting current sequential symbol (Cs) of 3 becomes the current sequential symbol that is sent to the physical link. - In a second (next)
cycle 1008, a second transition number (Tb) of 0 is input, and thesecond transition number 0 plus 1 is added to the previous sequential symbol (Ps) of 3. Since the result of the addition (0+1+3) equals 4, is larger than 3, the rolled overnumber 0 becomes the current sequential symbol (Cs). - In a
third cycle 1010, a third transition number (Tc) of 0 is input. The conversion logic adds thethird transition number 0 plus 1 to the previous sequential symbol (Ps) 0 to generate current sequential symbol (Cs) 1. - In a
fourth cycle 1012, a fourth transition number (Td) of 2 is input. The conversion logic adds the fourth transition number (Td) 2plus 1 to the previous symbol (Ps) 1 to generate current sequential symbol (Cs) 0 (since the result of the addition, 4, is larger than 3, the rolled overnumber 0 becomes the current sequential symbol). - Consequently, even if two consecutive ternary digits Tb and Tc have the same number, this conversion guarantees that two consecutive sequential symbols have different state values. Because of this conversion, the guaranteed sequential symbol change or transition in the sequence of
symbols 1004 may serve to embed a clock signal, thereby freeing the clock line SCL in an I2C control data bus for data transmissions. - Note that while this example of transition number to sequential number conversions adds a guaranteed number "1" to increment between consecutive sequential symbols, other values may be used in other implementations to guarantee a transition or change between sequential symbols.
- Referring again to
FIG. 8 , at thereceiver 820 the process illustrated inFIG. 10 is reversed to convert the sequential symbols back to bits and, in the process, a clock signal is extracted from the symbol transition. Thereceiver 820 receivessequential symbols 822 over the two wire physical link (e.g., I2C bus comprising aSCL line 824 and a SDA line 826). The received sequential symbols 422 are input into a clock-data recovery (CDR) block 828 to recover a clock timing and sample the transcoded symbols (S). A symbol-to-transitionnumber converter block 830 then converts each sequential symbol to a transition number, i.e., which makes up a digit within a ternary number. Then, a transition number-to-bits converter 32 converts 12 transition numbers (i.e., a ternary number) to restore 20 bits of original data from the 12 digit ternary number. -
FIG. 11 illustrates the conversion between sequential symbols and transition numbers. This conversion maps each transition from a previous sequential symbol number (Ps) to a current sequential symbol (Cs) to a transition number (T). At the transmitter device, the transition numbers are being converted to sequential symbols. Because of the relative conversion scheme being used, the transition numbers guarantee that no two consecutivesequential symbols 1104 will be the same. - In one example for a 2-wire system, there are 4 raw symbols assigned to 4 sequential symbol S0, S1, S2, and S3. For the 4 sequential symbols, Table 1102 illustrates how a current sequential symbol (Cs) may be assigned based on a previous sequential symbol (Ps) and a temporary transition number Ttmp based upon the current transition number (T).
- In this example, the transition number Cs may be assigned according to:
-
FIG. 12 illustrates a general example of converting a ternary number (base-3 number) to a binary number, where each T in {T11, T10, ... T2, T1, T0} is a symbol transition number. -
FIG. 13 illustrates an exemplary method for converting a binary number (bits) to a 12 digit ternary number (base-3 number). Each digit can be calculated by dividing the remainder (result of a modulo operation) from a higher digit calculation with 3 to the power of the digit number, discarding decimal points numbers. -
FIG. 14 illustrates an example of one possible implementation of the division and the module operations of theFIG. 13 , which may be synthesizable by any commercial synthesis tools. -
FIG. 15 is a block diagram illustrating anexemplary legacy device 1502. In one example, thelegacy device 1502 may be a CCIe-compatible device. Thelegacy device 1502 may include a control circuit/logic 1504 coupled to afirst communication circuit 1506 and asecond communication circuit 1507. Thefirst communication circuit 1506 may serve to couple to a shared first bus and may be configured to communicate over the first bus according to a first communication protocol. In one example, thefirst communication circuit 1506 may include or define a transmitter/receiver circuit 1506 that implement a transcoding circuit/module 1514, a clock recovery circuit/module 1516, and/or a transmit/receivebuffer 1518. The transcoding circuit/module 1514 may perform one or more functions illustrated inFIGS. 8-14 to convert bits into symbols for transmission over the first bus and to convert received symbols to bits upon reception over the first bus. This transcoding may also effectively embed a clock within symbol-to-symbol transitions. The clock recovery circuit/module 1516 may serve to extract such embedded clock from the symbol-to-symbol transitions. The transmit/receivebuffer 1518 may serve to buffer bits for transmission and/or during reception. - The
second communication circuit 1507 may serve to couple to a second bus and may be configured to communicate over the second bus according to a third communication protocol. - The control circuit/
logic 1504 may include or implement a command monitoring circuit/module 1508, a disable detection circuit/module 1510, and/or an enable detection circuit/module 1512. The control circuit/logic 1504 may be adapted to configure thecommunication circuit 1506 to communicate over the first bus using the first communication protocol. The command monitoring circuit/module 1508 may monitor the first bus for a disable command. If the disable command is detected over the first bus, then the disable circuit/module 1510 may fully or partially disable operation of thefirst communication circuit 1506 to ignore activity over the first bus. - In one example, the bus may be a two-line bus. In the first communication protocol signals may be transmitted over the two lines and a clock signal is embedded in symbol-to-symbol transitions of the plurality of symbols within the signals.
- The disable command may cause the
legacy device 1502 to stop operating over the first bus (e.g., stop transmitting and stop receiving over the first bus). For instance, the disable command may prevent thelegacy device 1502 from communicating over the first bus until a power on reset or hardware reset of the legacy device or reception of an enable command from the second bus. -
FIG. 16 illustrates an exemplary method that may be implemented by a legacy device. A first communication circuit may be configured to communicate over a first bus using afirst communication protocol 1602. The legacy device may monitor the first bus for a disablecommand 1604. The legacy device may receive the disable command over the first bus from a second device capable of operating in a first mode of operation that uses the first communication protocol and in a second mode of operation that uses asecond communication protocol 1606. The first communication circuit may be reconfigured to ignore activity over the first bus upon detection of the disablecommand 1608. - The first communication protocol may provide a first data throughput over the first bus while the second communication protocol provides a second data throughput over the first bus, where the second data throughput is greater than the first data throughput.
- The first bus may include two lines, and in the first mode of operation signals are transmitted over the two lines and a clock signal is embedded in symbol-to-symbol transitions of the plurality of symbols within the signals.
- The disable command may be received prior to or concurrent with the first bus being switched to operate according to a second communication protocol unsupported by the legacy device.
- Even though the legacy device may be disabled from using the first bus, it may continue to operate and/or monitor a second bus (or a channel) for an enable
command 1610. The legacy device may receive such enable command over thesecond bus 1612 which causes it to reconfigure the first communication circuit to resume activity over the first bus, using thefirst protocol 1614. - In a first example, the first bus includes a plurality of lines, with N lines allocated for transmissions in the first mode, and M lines being allocated for transmissions in the second mode, where N and M are integers greater than or equal to two (2).
- In one implementation, N and M may be different integers. In another implementation, N and M may be the same integer and different number of logical transmission lanes are defined in the first and second modes.
- In a second example, in the first mode N=2 to support CCIe-compatible transmissions and in the second mode M=3 to support three factorial (3!) multi-wire multi-level differential transmissions.
- In a third example, in the first mode N=4 to support 4-wire single ended multi-wire transmissions and in the second mode M= 2x2 to support transmissions over a first differential pair using two lines and a second differential pair using another two lines.
- In a fourth example, in the first mode N= 2x2 to support two differential wire pairs of CCIe-compatible transmissions and in the second mode M= 4 to support four factorial (4!) multi-wire multi-level differential transmissions.
- In a fifth example, N=M=3, in the first mode 3-wire single-ended transmissions are used, and in the second mode one pair of lines is used for differential transmissions and the remaining single line is used for sideband signaling.
-
FIG. 17 is a block diagram illustrating an exemplary next-generation device 1702. In various examples, the next-generation device 1702 may operate as a slave device or a master device. In one example, the next-generation device 1702 may be a CCIe-compatible device. The next-generation device 1702 may include a control circuit/logic 1704 coupled to afirst communication circuit 1706 and, optionally, asecond communication circuit 1707. For instance, when the next-generation device 1702 operates as a master device, it may include or activate thesecond communication circuit 1707 in order to re-enable legacy devices (i.e., over a second bus) that have been previously disabled. - The
first communication circuit 1706 may serve to couple to a first bus shared with other devices. Thefirst communication circuit 1706 may be configurable to communicate over the first bus according to a first communication protocol or a second communication protocol. In one example, in order for the next generation device to operate according to a first mode in which the first communication protocol is used, thefirst communication circuit 1706 may include or define a transmitter/receiver circuit 1706 that implements a transcoding circuit/module 1714, a clock recovery circuit/module 1716, and/or a transmit/receivebuffer 1718. The transcoding circuit/module 1714 may perform one or more functions illustrated inFIGS. 8-14 to convert bits into symbols for transmission over the first bus and to convert received symbols to bits upon reception over the first bus when using the first communication protocol. This transcoding may also effectively embed a clock within symbol-to-symbol transitions. The clock recovery circuit/module 1716 may serve to extract such embedded clock from the symbol-to-symbol transitions. The transmit/receivebuffer 1718 may serve to buffer bits for transmission and/or during reception. - The
control circuit 1704 may include or implement a first mode circuit/module 1708 adapted to configure thefirst communication circuit 1706 to operate in the first mode in which the first communication protocol is used over the first bus. - In order to operate in the second mode in which a second protocol is used, when the next generation device operates as a master device the
control circuit 1704 may include or implement a disable circuit/module 1710 that sends a disable command over the first bus to indicate to other devices that do not support a second communication protocol to ignore activity over the first bus. Thecontrol circuit 1704 may include or implement a second mode circuit/module adapted to reconfigure the first communication circuit to operate in a second mode in which the second communication protocol is used over the first bus. In the second mode of operation thefirst communication circuit 1706 may disable operation of, for example, the transcoding circuit/module 1714 and/or clock recovery circuit/module 1716. - When the next-
generation device 1702 operates as a master device, thecontrol circuit 1704 may include or implement an enable circuit/module that sends an enable command over the second communication circuit (e.g., through the second bus) to indicate to the other devices (e.g., legacy devices) to resume activity over the first bus. Thefirst communication circuit 1706 may be reconfigured to operate in the first mode in which the first communication protocol is used over the first bus. - In one example, the first communication protocol provides a first data throughput/rate over the bus while the second communication protocol provides a second data throughput/rate over the first bus, where the second data throughput/rate is greater than the first data throughput/rate.
- The first bus may include or be defined by two lines, wherein the first mode of operation signals are transmitted over the two lines and a clock signal is embedded in symbol-to-symbol transitions of the plurality of symbols within the signals.
- The disable command may prevent the other devices from communicating over the first bus until a power on reset or hardware reset of each of the other devices or an enable command is otherwise effectuated on the other devices. The disable command may be sent prior to or concurrent with the device entering the second mode.
- The
first communication circuit 1706 may include a receiver device capable of at least partially decoding signals on the first bus using just a clock signal embedded within signals transmitted according to the first communication protocol. - In a first example, the first bus includes a plurality of lines, with N lines allocated for transmissions in the first mode, and M lines being allocated for transmissions in the second mode, where N and M are integers greater than or equal to two (2).
- In one implementation, N and M may be different integers. In another implementation, N and M may be the same integer and different number of logical transmission lanes are defined in the first and second modes.
- In a second example, in the first mode N=2 to support CCIe-compatible transmissions and in the second mode M=3 to support three factorial (3!) multi-wire multi-level differential transmissions.
- In a third example, in the first mode N=4 to support 4-wire single ended multi-wire transmissions and in the second mode M= 2x2 to support transmissions over a first differential pair using two lines and a second differential pair using another two lines.
- In a fourth example, in the first mode N= 2x2 to support two differential wire pairs of CCIe-compatible transmissions and in the second mode M= 4 to support four factorial (4!) multi-wire multi-level differential transmissions.
- In a fifth example, N=M=3, in the first mode 3-wire single-ended transmissions are used, and in the second mode one pair of lines is used for differential transmissions and the remaining single line is used for sideband signaling.
-
FIG. 18 illustrates an exemplary method that may be implemented by a next-generation device when operating as a master device. A first communication circuit may be configured to operate in a first mode in which a first communication protocol is used over afirst bus 1802. The next-generation device may send a disable command over the first bus to indicate to other devices that do not support a second communication protocol to ignore activity over thefirst bus 1804. Subsequently, the first communication circuit may be reconfigured to operate in a second mode in which the second communication protocol is used over thefirst bus 1806. - Subsequently, the next-generation device may reconfigure the first communication circuit to operate in the first mode in which the first communication protocol is used over the
first bus 1808. The next-generation device then sends an enable command over a second bus to indicate to the other devices to resume activity over the first bus using thefirst protocol 1810. - The bus may include two lines, and in the first mode of operation signals are transmitted over the two lines and a clock signal is embedded in symbol-to-symbol transitions of the plurality of symbols within the signals.
- In one example, the sleep or disable command may be sent prior to or concurrent with the device entering the second mode.
-
FIG. 19 illustrates an exemplary method that may be implemented by a next-generation device when operating as a slave device over a shared bus. In some examples, this next-generation device may be coupled solely to a shared first bus. A first communication circuit may be configured to operate in a first mode in which a first communication protocol is used over thefirst bus 1902. - The next-generation device may subsequently receive or detect an indication that the first bus is to operate in a second mode in which the second communication protocol is used over the
first bus 1904. Consequently, the first communication circuit may be reconfigured to operate in a second mode in which the second communication protocol is used over thefirst bus 1906. - The next-generation device may subsequently receive or detect an indication that the first bus is to operate in a second mode in which the second communication protocol is used over the
first bus 1908. - Consequently, the next-generation device may reconfigure the first communication circuit to operate in the first mode in which the first communication protocol is used over the
first bus 1910 and/or optionally over the second bus. - One or more of the components, steps, features, and/or functions illustrated in the Figures may be rearranged and/or combined into a single component, step, feature, or function or embodied in several components, steps, or functions. Additional elements, components, steps, and/or functions may also be added without departing from novel features disclosed herein. The apparatus, devices, and/or components illustrated in the Figures may be configured to perform one or more of the methods, features, or steps described in the Figures. The novel algorithms described herein may also be efficiently implemented in software and/or embedded in hardware.
- In addition, it is noted that the embodiments may be described as a process that is depicted as a flowchart, a flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.
- Moreover, a storage medium may represent one or more devices for storing data, including read-only memory (ROM), random access memory (RAM), magnetic disk storage mediums, optical storage mediums, flash memory devices, and/or other machine readable mediums for storing information. The term "machine readable medium" includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels and various other mediums capable of storing, containing, or carrying instruction(s) and/or data.
- Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine-readable medium such as a storage medium or other storage(s). A processor may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
- The various illustrative logical blocks, modules, circuits, elements, and/or components described in connection with the examples disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic component, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing components, e.g., a combination of a DSP and a microprocessor, a number of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
- The methods or algorithms described in connection with the examples disclosed herein may be embodied directly in hardware, in a software module executable by a processor, or in a combination of both, in the form of processing unit, programming instructions, or other directions, and may be contained in a single device or distributed across multiple devices. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. A storage medium may be coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor.
- Those of skill in the art would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system.
- The various features of the invention described herein can be implemented in different systems without departing from the invention. It should be noted that the foregoing embodiments are merely examples and are not to be construed as limiting the invention. The description of the embodiments is intended to be illustrative, and not to limit the scope of the claims. As such, the present teachings can be readily applied to other types of apparatuses and many alternatives, modifications, and variations will be apparent to those skilled in the art.
Claims (15)
- A device, comprising:a first bus (102);a second bus (112);a first set of devices (108, 110) coupled to the first bus, the first set of devices configured to communicate over the first bus according to a first communication protocol; anda second set of devices (104, 106) coupled to the first bus, the second set of devices configured to communicate over the first bus according to both the first communication protocol and a second communication protocol,whereinin a first mode of operation over the first bus, the first set of devices and second set of devices concurrently communicate over the first bus using the first communication protocol;in a second mode of operation over the first bus, the second set of devices communicate with each other using the second communication protocol over the first bus, and the first set of devices stop operating over the first bus;characterized in that the first set of devices is also coupled to the second bus and in that at least one of the devices of the second set of devices is configured to send a disable command over the first bus to cause the first set of devices to stop operating over the first bus while the second set of devices operate in the second mode over the first bus; and to send an enable command over the second bus to cause the first set of devices to resume operating over the first bus while the first bus switches to operate in the first mode.
- The device of claim 1, wherein the first communication protocol provides a first data throughput over the first bus while the second communication protocol provides a second data throughput over the first bus, where the second data throughput is greater than the first data throughput.
- The device of claim 1, wherein the disable command prevents each of the first set of devices from receiving and transmitting over the first bus.
- The device of claim 1, wherein prior to or concurrent with entering the second mode of operation, at least one device from the second set of devices sends the disable command.
- The device of claim 1, wherein during the second mode of operation the first set of devices are unaffected by activity over the first bus.
- The device of claim 1, wherein the first bus includes a plurality of lines, with N lines allocated for transmissions in the first mode, and M lines being allocated for transmissions in the second mode, where N and M are integers greater than or equal to two.
- The device of claim 6, wherein N and M are different integers.
- The device of claim 6, wherein N and M are same integers and different number of logical transmission lanes are defined in the first and second modes.
- A method, comprising:coupling (702) a first set of devices to a first bus, the first set of devices configured to communicate over the first bus according to a first communication protocol;coupling (704) a second set of devices to the first bus, the second set of devices configured to communicate over the first bus according to both the first communication protocol and a second communication protocol;configuring (706), in a first mode of operation, the first set of devices and second set of devices to concurrently communicate over the first bus using the first communication protocol;characterized by:coupling (702) the first set of devices to a second bus;sending (710) a disable command, from at least one of the second set of devices, over the first bus during the first mode of operation to cause the first set of devices to stop operating on the first bus; andsending (712) an enable command, from at least one of the second set of devices, over the second bus to cause the first set of devices to resume operating over the first bus while the first bus switches to operate in the first mode.
- The method of claim 9, wherein during the second mode of operation the first set of devices are unaffected by activity over the first bus.
- The method of claim 10, wherein each of the first set of devices includes a receiver device that enters into a disabled mode upon receipt of the disable command.
- The method of claim 10, wherein each of the first set of devices includes a receiver device that enters into an enabled mode upon receipt of the enable command.
- The method of claim 10, wherein the first bus includes a plurality of lines, with N lines allocated for transmissions in the first mode, and M lines being allocated for transmissions in the second mode, where N and M are integers greater than or equal to two (2).
- A device (108, 110), comprising:a first communication circuit to couple to a first bus and configured to communicate over the first bus according to a first communication protocol;a control circuit coupled to the first communication circuit, the control circuit adapted to:
configure (1602) the communication circuit to communicate over the first bus using the first communication protocol,characterized by a second communication circuit to couple to a second bus; andfurther characterized in that the control circuit is coupled to the second communication circuit and is further adapted to:monitor (1604) the first bus for a disable command,reconfigure (1608) the first communication circuit to ignore activity over the first bus upon detection of the disable command,monitor (1610) the second bus for an enable command, andreconfigure (1614) the first communication circuit to resume activity over the first bus upon detection of the enable command. - A device, comprising:a first communication circuit to couple to a first bus shared with other devices;a control circuit coupled to the first communication circuit, the control circuit configured to:
configure (1802) the first communication circuit to operate in a first mode in which a first communication protocol is used over the first bus;characterized by a second communication circuit to couple to a second bus shared with the other devices; andfurther characterized in that the control circuit is coupled to the second communication circuit and is further configured to:send (1804) a disable command over the first bus to indicate to the other devices that do not support a second communication protocol to ignore activity over the first bus;reconfigure (1806) the first communication circuit to operate in a second mode in which the second communication protocol is used over the first bus;reconfigure (1808) the first communication circuit to operate in the first mode in which the first communication protocol is used over the first bus; andsend (1810) an enable command over the second bus to indicate to the other devices to resume activity over the first bus using the first communication protocol.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562131802P | 2015-03-11 | 2015-03-11 | |
US15/067,111 US10139875B2 (en) | 2014-02-20 | 2016-03-10 | Farewell reset and restart method for coexistence of legacy and next generation devices over a shared multi-mode bus |
PCT/US2016/022175 WO2016145401A1 (en) | 2015-03-11 | 2016-03-11 | Farewell reset and restart method for coexistence of legacy and next generation devices over a shared multi-mode bus |
Publications (2)
Publication Number | Publication Date |
---|---|
EP3268868A1 EP3268868A1 (en) | 2018-01-17 |
EP3268868B1 true EP3268868B1 (en) | 2018-12-05 |
Family
ID=55629134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP16711955.1A Active EP3268868B1 (en) | 2015-03-11 | 2016-03-11 | Farewell reset and restart method for coexistence of legacy and next generation devices over a shared multi-mode bus |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3268868B1 (en) |
JP (1) | JP2018509710A (en) |
KR (1) | KR20170126904A (en) |
CN (1) | CN107408097A (en) |
WO (1) | WO2016145401A1 (en) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10417172B2 (en) | 2014-04-28 | 2019-09-17 | Qualcomm Incorporated | Sensors global bus |
US9734121B2 (en) | 2014-04-28 | 2017-08-15 | Qualcomm Incorporated | Sensors global bus |
WO2019040360A1 (en) * | 2017-08-24 | 2019-02-28 | Qualcomm Incorporated | Sensors global bus |
US20190095273A1 (en) * | 2017-09-27 | 2019-03-28 | Qualcomm Incorporated | Parity bits location on i3c multilane bus |
CN108228517B (en) * | 2017-12-01 | 2019-09-13 | 广东高云半导体科技股份有限公司 | I3C circuit arrangement, system and communication means |
CN108255754B (en) * | 2017-12-01 | 2019-11-19 | 广东高云半导体科技股份有限公司 | A kind of I3C main equipment of compatible I2C, I3C master-slave equipment communication system and method |
KR20210102754A (en) | 2020-02-12 | 2021-08-20 | 정현명 | wireless charging smartphone hand grip |
CN111447127B (en) * | 2020-03-11 | 2022-05-06 | 北京金茂绿建科技有限公司 | Bus multiplexing method and system |
JP2022021468A (en) * | 2020-07-22 | 2022-02-03 | ソニーセミコンダクタソリューションズ株式会社 | Communication apparatus, communication method and program |
KR20230052505A (en) | 2021-10-13 | 2023-04-20 | 염민재 | Grip Tok for mobile phones with Guide Rail |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574233B1 (en) * | 1999-04-09 | 2003-06-03 | Avaya Technology Corp. | Arrangement for redefining an interface while maintaining backwards compatibility |
US6502146B1 (en) * | 2000-03-29 | 2002-12-31 | Intel Corporation | Apparatus and method for dedicated interconnection over a shared external bus |
US9552325B2 (en) * | 2013-06-12 | 2017-01-24 | Qualcomm Incorporated | Camera control interface extension bus |
US9852104B2 (en) * | 2014-02-20 | 2017-12-26 | Qualcomm Incorporated | Coexistence of legacy and next generation devices over a shared multi-mode bus |
US10007628B2 (en) * | 2014-06-18 | 2018-06-26 | Qualcomm Incorporated | Dynamically adjustable multi-line bus shared by multi-protocol devices |
-
2016
- 2016-03-11 JP JP2017546974A patent/JP2018509710A/en active Pending
- 2016-03-11 WO PCT/US2016/022175 patent/WO2016145401A1/en active Application Filing
- 2016-03-11 CN CN201680014367.6A patent/CN107408097A/en active Pending
- 2016-03-11 KR KR1020177025275A patent/KR20170126904A/en unknown
- 2016-03-11 EP EP16711955.1A patent/EP3268868B1/en active Active
Non-Patent Citations (1)
Title |
---|
None * |
Also Published As
Publication number | Publication date |
---|---|
WO2016145401A1 (en) | 2016-09-15 |
JP2018509710A (en) | 2018-04-05 |
KR20170126904A (en) | 2017-11-20 |
EP3268868A1 (en) | 2018-01-17 |
CN107408097A (en) | 2017-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3268868B1 (en) | Farewell reset and restart method for coexistence of legacy and next generation devices over a shared multi-mode bus | |
US10139875B2 (en) | Farewell reset and restart method for coexistence of legacy and next generation devices over a shared multi-mode bus | |
US9852104B2 (en) | Coexistence of legacy and next generation devices over a shared multi-mode bus | |
US9811499B2 (en) | Transcoding and transmission over a serial bus | |
EP3055779B1 (en) | Coexistence of i2c slave devices and camera control interface extension devices on a shared control data bus | |
US9892077B2 (en) | Camera control interface slave device to slave device communication | |
US9519603B2 (en) | Method and apparatus to enable multiple masters to operate in a single master bus architecture | |
US20150248373A1 (en) | Bit allocation over a shared bus to facilitate an error detection optimization | |
US10579581B2 (en) | Multilane heterogeneous serial bus | |
US9990330B2 (en) | Simultaneous edge toggling immunity circuit for multi-mode bus | |
US20150234773A1 (en) | Technique to avoid metastability condition and avoid unintentional state changes of legacy i2c devices on a multi-mode bus | |
US10031547B2 (en) | CCIe receiver logic register write only with receiver clock |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20170719 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R079 Ref document number: 602016007865 Country of ref document: DE Free format text: PREVIOUS MAIN CLASS: G06F0013420000 Ipc: H04L0012640000 |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04L 12/64 20060101AFI20180614BHEP |
|
INTG | Intention to grant announced |
Effective date: 20180709 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE PATENT HAS BEEN GRANTED |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: REF Ref document number: 1074485 Country of ref document: AT Kind code of ref document: T Effective date: 20181215 |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602016007865 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: MP Effective date: 20181205 |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: MK05 Ref document number: 1074485 Country of ref document: AT Kind code of ref document: T Effective date: 20181205 |
|
REG | Reference to a national code |
Ref country code: LT Ref legal event code: MG4D |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 Ref country code: LV Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 Ref country code: NO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190305 Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 Ref country code: HR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 Ref country code: LT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190305 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: RS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190306 Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 Ref country code: AL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190405 Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190405 Ref country code: SM Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 602016007865 Country of ref document: DE |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
26N | No opposition filed |
Effective date: 20190906 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20190311 |
|
REG | Reference to a national code |
Ref country code: BE Ref legal event code: MM Effective date: 20190331 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20190331 Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20190311 Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20190331 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20190331 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: TR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MT Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20190311 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: HU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO Effective date: 20160311 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181205 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20230209 Year of fee payment: 8 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20240209 Year of fee payment: 9 Ref country code: GB Payment date: 20240208 Year of fee payment: 9 |