Common bus data flow for serially chained devices
The use of a multi-stream generator and stream disaggregators in a serial chain topology addresses the complexity and cost issues of electronic systems by efficiently routing data to displays, reducing mechanical constraints and operational inefficiencies.
Patent Information
- Application Number
- JP2022524077
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-10-23
- Filing Date
- 2020-10-23
- Publication Date
- 2025-09-10
- Estimated Expiration
- 2040-10-23
AI Technical Summary
Electronic systems face challenges due to increased complexity and cost associated with numerous connectors and cables, which are constrained by structural and space limitations, particularly in mobile platforms like vehicles, leading to mechanical spacing issues and operational inefficiencies.
A system architecture that employs a multi-stream generator and stream disaggregators to encode and selectively forward communications between serially chained devices, using a packet format with identifiers to route data to specific displays, reducing the need for multiple connectors and cables by adopting a serial chain topology.
This approach minimizes mechanical constraints and reduces system complexity and cost by consolidating connectors and cables, enabling efficient data transmission and display functionality while maintaining high-resolution video streaming.
Smart Images

Figure 0007737368000001 
Figure 0007737368000002 
Figure 0007737368000003
Abstract
Description
[Technical Field]
[0001] In some electronic systems, various components are coupled by a physical layer that may include connectors and electrical wiring. In some applications, limitations on the functionality of the various components may be constrained by the cost, size, and number of connectors and / or the cost, size, and number of individual wires in the electrical wiring. Summary of the Invention
[0002] In a described example, the circuit includes a system bus controller having a first downstream port and configured to generate a first downstream frame in response to a first local bus transmission received by the first local bus controller and to generate a second downstream frame in response to a second local bus transmission received by the second local bus controller. The system bus controller is configured to generate a downstream aggregate frame in response to the first downstream frame and the second downstream frame and to initiate transmission of the downstream aggregate frame on the first downstream port. The system bus controller is adapted to receive an upstream aggregate frame including the first upstream frame and the second upstream frame and is configured to generate a first upstream transmission in response to the first upstream frame and to generate a second upstream transmission in response to the second upstream frame. [Brief explanation of the drawings]
[0003] [Figure 1] 1 is a system diagram illustrating an example vehicle including an example system adapted to selectively forward communications between devices connected in a serial chain.
[0004] [Figure 2]1 is a diagram of an example transmission in an example system adapted to selectively forward communications between serially chained devices.
[0005] [Figure 3] FIG. 1 is a block diagram of an example multi-stream generator adapted to aggregate input streams in an example system adapted to selectively forward communications between serially chained devices.
[0006] [Figure 4] FIG. 1 is a block diagram of an example system including at least one stream disaggregator adapted to selectively forward communications between serially chained devices.
[0007] [Figure 5] 1 is a block diagram of an exemplary system including at least one bus unit adapted to generate and transfer a system wake-up signal between serially chained bus units.
[0008] [Figure 6] 6 is a flowchart of an example method of wake-up signaling for the example system of FIG. 5.
[0009] [Figure 7] 6 is a flowchart of an example method of wake-up signal detection and wake-up signal handling for the example system of FIG. 5.
[0010] [Figure 8] FIG. 1 is a block diagram of a first example wake-up signal handling scenario in an example system.
[0011] [Figure 9] FIG. 10 is a block diagram of a second example wake-up signal handling scenario in an example system.
[0012] [Figure 10] FIG. 10 is a block diagram of a third example wake-up handling scenario in an example system.
[0013] [Figure 11] FIG. 10 is a block diagram of another example system including at least one stream disaggregator adapted to selectively forward communications between serially chained devices.
[0014] [Figure 12] FIG. 1 is a block diagram illustrating example communications through an example system including at least one stream disaggregator adapted to selectively forward communications between serially chained devices.
[0015] [Figure 13] FIG. 1 is a timing diagram illustrating an example protocol for sequencing example communications through an example system including at least one stream disaggregator adapted to selectively forward communications between serially chained devices.
[0016] [Figure 14] FIG. 2 is a block diagram illustrating example communications through an example system including two chains chained in series.
[0017] [Figure 15A] FIG. 1 is a block diagram illustrating associated pairs of virtualization network entities in an example system including at least one translating switch adapted to selectively forward communications between serially chained devices. [Figure 15B] FIG. 2 is a block diagram illustrating associated pairs of virtualized network entities in an example system including at least one translation switch adapted to selectively forward communications between serially chained devices.
[0018] [Figure 16] FIG. 1 is a schematic diagram illustrating external selection of associated pairs of virtualized network entities in an exemplary system adapted to selectively forward communications to serially chained devices.
[0019] [Figure 17A] FIG. 1 is a schematic diagram illustrating a serializer configured to associate pairs of virtualized network entities in an example system adapted to selectively forward communications between serially chained devices. [Figure 17B] FIG. 1 is a schematic diagram illustrating a serializer configured to associate pairs of virtualized network entities in an example system adapted to selectively forward communications between serially chained devices.
[0020] [Figure 18] 17C is a flowchart illustrating an example method of selected forwarding of communications of virtualized network entities of the example systems of FIGS. 17A and 17B. DETAILED DESCRIPTION OF THE INVENTION
[0021] In the drawings, like reference numerals refer to like elements and the various features are not necessarily drawn to scale.
[0022] Various electronic systems employ components that are coupled together to form the system. As systems become more sophisticated, the complexity of the interconnections increases. As more functionality is added to a system (e.g., with increased integration and processing power), the number of terminals on the connector increases, which in turn increases the size, complexity, and / or cost of the connector.
[0023] Some electronic systems may be installed on transportation platforms (such as aircraft or electric vehicles). Structural constraints of the mobile platform (e.g., human factors, safety considerations, and aerodynamic performance) may limit the space otherwise provided for the connectors and cables of the electronic system. Also, access to the connectors and cables (e.g., for testing, replacement, and / or repair) may be limited (which may increase operational costs), such as when the electronic system is installed in the dashboard of a vehicle (which may include at least one airbag).
[0024] One example of an electronic system that can be installed on a moving platform is an automobile “infotainment” system, in which video data may be generated (or otherwise transmitted) by a control unit (e.g., a head unit or other data source). The generated video data may be transmitted to multiple display panels (e.g., a head-up display, an instrument cluster, and a center instrument display). Various cables / connectors are disposed between the control unit and each of the different displays to send different types of display data from the control unit to the different displays. A cable adapted to carry signals between two units (such as between a display and a control unit) has a first connector (e.g., a first connector set) adapted to connect to a first mating connector of the first unit, a second connector (e.g., a second connector set) adapted to connect to a second mating connector of the second unit, and a cable harness (e.g., a flexible cable harness) having insulated wiring arranged to electrically couple signals (e.g., unidirectional and / or bidirectional signals) between the first and second connectors.
[0025] In some examples, multiple displays may be connected to a control unit in a one-to-many configuration, with the connecting cables converging at a single location (e.g., on the face of the control unit) on the control unit. For example, a master control unit may include a connector and cable pair for communicating with each slave device in the system (e.g., a star network topology). Converging the connectors and cables at the control unit creates mechanical spacing issues in that the convergence of multiple side-by-side connectors takes up a large amount of space within the automobile. Additionally, video information (e.g., at least one video stream) from the control unit is high-resolution data that is continuously streamed to each display via a respective connector / cable pair. The point-to-point connection of the star topology eliminates the need to associate or otherwise identify each video stream with a networking address. Traditionally, video data from the head unit transmitted to the displays is continuously streamed high-resolution data and is not in a format that can be easily networked like some other data networking applications.
[0026] As described herein, an example system is adapted to selectively forward communications between serially chained devices of the example system. For example, the example system may include a control unit coupled to a serial chain of display units (e.g., at one end of the serial chain). An example multi-stream generator may be coupled to an output of the control unit such that the example multi-stream generator can encode (e.g., encapsulate) video data from multiple streams into a format adaptable to different types of displays in the serial chain (e.g., daisy-chained displays). Mechanical spacing issues due to cable / connector congestion at the control unit location may be mitigated by arranging the example system components as shown in FIG. 1.
[0027] 1 is a system diagram illustrating an example vehicle including an example system adapted to selectively forward communications between its serially chained devices. Generally, system 100 is an example system including a host vehicle 110. An example multi-display system 120 may be installed in host vehicle 110. The example multi-display system 120 may include any number of displays in a serial chain, one end of which may be connected to a control unit.
[0028] An example multi-display system 120 may include a control unit (e.g., head unit 122), a first display (e.g., instrument cluster display CLUSTER 124), a second display (e.g., head-up display HUD 126), and a third display (e.g., center instrument display CID 128). The example multi-display system may include one or more head units 122. The head units 122 are adapted to receive sensor data (e.g., from a camera or instrumentation sensor) and generate video streams in response to the sensor data. Each head unit 122 transmits at least one generated video stream, and each video stream is received by a multi-stream generator 123. However, using multiple head units increases system complexity, introduces additional failure nodes, increases costs, and occupies more space, for example, in tight locations.
[0029] The multi-stream generator 123 (MG) may have an input (e.g., a video input) that is coupled to (e.g., may be included in) the head unit 122 and may have an output that is coupled to an input of the stream disaggregator 125 (e.g., via cable 133). In some examples, the multi-stream generator 123 may receive video streams from each head unit 122. In some examples, the multi-stream generator 123 may receive video streams from at least one head unit 122 (so that, for example, one or more video streams may be generated by the head unit 122 for stream aggregation by the multi-stream generator 123).
[0030] The stream disaggregator 125 may have a first output (e.g., a local output) that is coupled to (e.g., may be included in) the display CLUSTER 124, and may have a second output (e.g., a system output) that is coupled to an input of the stream disaggregator 127 (e.g., via cable 135).
[0031] The stream disaggregator 127 may have a first output (e.g., a local output) that is coupled to (e.g., may be included in) the display HUD 126, and may have a second output (e.g., a system output) that is coupled to an input of the stream disaggregator 129 (e.g., via cable 137).
[0032] Stream disaggregator 129 (SD) may have a first output (e.g., local output) that is coupled to (e.g., may be included in) display CID 128, and may have a second output (e.g., system output) that is optionally coupled (e.g., via another cable, not shown) to an input of an optional stream disaggregator (not shown) for display. Other stream disaggregators may be sequentially coupled to the end of a serial chain connecting serially chained displays (e.g., where the end of the serial chain is opposite the end of the serial chain that is connected to head unit 122). (An example cabling network is described below with reference to FIG. 4.)
[0033] Compared to a star topology display system for three displays (which includes three cables and respective connectors that converge at the control unit location), the serial chained display system described herein reduces space and mechanical constraints (so, for example, these constraints are reduced to space with a single connector / cable connected at the head unit 122).
[0034] The multi-stream generator 123 is configured to encode high-resolution real-time video data (including video-related data) into a packet format. The operation of the multi-stream generator is described below with reference to FIG. 3. The multi-stream generator 123 may be configured as a serializer (e.g., adapted to output video data serially) (wherein video data may be received asynchronously by the multi-stream generator 123 in serial or parallel format) and / or configured to output video data in parallel. Each packet may include an identifier (e.g., a stream identifier) to identify the particular video stream being encoded and / or to identify the destination of the packet (e.g., identify the display to which the packet is addressed). The identifier may be analyzed by stream disaggregators according to a mode (e.g., a default configuration or a programmed configuration) associated with each stream disaggregator. Each packet is received by at least one stream disaggregator for forwarding (and / or decoding / deserialization).
[0035] The stream disaggregators (e.g., 133, 135, and 137) are arranged to receive packets (e.g., having an identifier to indicate a destination display) and select between a stream disaggregator first output (e.g., a local output for combining the information with a locally coupled display) and a stream disaggregator second output (e.g., a system output for forwarding the information to at least one other stream disaggregator).
[0036] 2 is a diagram of an example transmission in an example system adapted to selectively forward communications between serially chained devices. Generally, transmission 200 is an example transmission arranged in a packet format. The example transmission may include streaming data for streaming video. The streaming video data may include audio data coupled with (e.g., synchronized with) the streaming video. The streaming data may include content for displaying moving and / or still images.
[0037] In a first example packet (such as packet 210), packet 210 includes a control (CTL) field 211, a payload (e.g., STREAM_PAYLOAD) field 212, an error correction code (ECC) field 213, a stream / destination (STRM) field 214, a reserved field 215, and a continuation (CONT) field 216.
[0038] Field 211 may indicate whether the stream payload (e.g., field 212) contains command data or streaming data. The command data contained in field 212 may include, for example, a start command to begin playback of a selected video stream, a configuration command to configure a mode, for example, to select a particular protocol (e.g., from among various proprietary or industry standards) for a particular stream disaggregator to communicate with a connected local display (e.g., a directly cabled local display) and to set a playback channel for a particular display (e.g., to play at least one selected stream that includes a selected STRM field 214 value), a routing command to select at least one stream to be routed to a local display (e.g., of a particular stream disaggregator), and / or a forwarding command to select at least one stream to be forwarded to another stream disaggregator (so that, for example, a first disaggregator forwards a selected stream to a second stream disaggregator downstream of the first stream disaggregator and head unit). In some examples, configuration data may be pre-programmed into a particular stream disaggregator (e.g., during system integration, such as at an automobile factory) (e.g., to reduce configuration time), and command data may be used during operation to reprogram a given configuration (e.g., this given configuration may be pre-programmed or programmed during operation).
[0039] The streaming data included in field 212 may include video (e.g., still or moving images), audio, or a combination thereof. The resolution of the streaming data may be selected to provide video (and / or sound) quality commensurate with a particular display and / or target functionality. The streamed video data may include pixel information. An example pixel may include 8 bits of red information, 8 bits of green information, and 8 bits of blue information. The number of pixel rows and columns may be selected to generate video frames corresponding to the capabilities of a particular display screen. The video frames may be encoded as transmission symbols and / or compressed information for transmission and subsequent decoding by the target display. The video frames may be streamed (e.g., transmitted as a timed sequence of video frames associated with a particular video "feed").
[0040] Field 213 includes an ECC code (e.g., for error detection and correction). The number of bits in field 213 can be increased (e.g., from one parity bit to more bits) to increase the level of detection and even correction of errors that may occur in packet 210 being transmitted or received. A receiver may evaluate the ECC code of a received packet against other bits of the received packet, for example, to correct a corrupted packet and / or to request (e.g., by transmitting upstream) a retransmission of the original packet (e.g., the original packet data). The length of the ECC field can be selected to provide a performance level for a particular functionality (e.g., for a dashboard display compared to a less critical infotainment display unit for viewing by rear seat passengers).
[0041] Field 214 contains information useful for identifying a display to which a received packet should be routed. The number of bits in field 214 is sufficient to uniquely identify a particular stream (e.g., a video channel) and / or display (e.g., at least one display for consuming and playing the stream associated with the received packet). In a first example, field 214 contains enough bits to identify a particular stream (e.g., a channel number), where a stream disaggregator is programmed (e.g., via a configuration command described herein) to route received packets to at least one display (e.g., set to a channel number so that two or more displays can play the same stream). In a second example, field 214 contains enough bits to identify a particular display (e.g., an instrument panel or electronic side-view “mirror” display) on which a particular received packet will be displayed. In a third example, field 214 contains enough bits to indicate a code for selecting a predefined routing configuration for consuming (e.g., routing to a local display) and / or forwarding a particular received packet. In a fourth example, field 214 includes enough bits to include a combination (e.g., some or all combinations) of the functionality described herein for the first, second, and third examples.
[0042] Field 215 is reserved to carry data for an undefined (e.g., unannounced or unpublished) purpose. For example, the reserved field may be used to carry information that is useful in future systems but not necessarily data that is useful in previous systems, thereby eliminating the need to change the packet length to make room for carrying information that will be implemented in the future. Field 215 may contain enough bits to allow for widespread transmission and reception of packets having a common packet length (e.g., according to a subsequent protocol standard associated with at least one existing FPD standard or according to a proprietary protocol that will be developed in the future).
[0043] Field 216 indicates whether the packet is the last packet of the stream. In examples where field 216 indicates the last packet of the stream, a display consuming the packet may take action in response to an indication that a particular received packet is the last packet of the stream. An example action (e.g., taken in response to an indication that a particular received packet is the last packet of the stream) may be a temporary action (e.g., an action that is instantly reversible), such as dimming a display selected to display the stream associated with the particular received packet. Packet transmission and forwarding is described below with reference to Figure 4.
[0044] In a second example packet (such as packet 220), packet 220 includes a control (CTL) field 221, a stop (e.g., STREAM_STOP) field 222, an error correction code (ECC) field 223, a stream / destination (STRM) field 224, and a reserved field 225.
[0045] Field 221 may indicate whether the stream payload includes command data (e.g., a stop command in field 222). The command data included in field 222 may include a stop command. In response to a transmitted stop command, a downstream stream disaggregator and display identified by field 224 may power down, reinitialize, and / or reallocate resources previously allocated to displaying the stream associated with the received packet (e.g., the packet including the stop command). In some examples, field 222 may include a command to terminate operation of programmable hardware adapted to display video information (e.g., the code in stop field 222 may indicate that the current packet is the last packet of the video stream indicated by field 224).
[0046] Field 223 contains ECC codes (eg, for error detection and correction), such as the codes contained in field 213 .
[0047] Field 224 is a field similar to field 214 and may contain information to indicate which stream the packet is associated with and / or to indicate the display to which the packet is sent.
[0048] Field 225 is a field similar to field 215. A continue field, such as field 216, need not be implemented in packets that include a stop field, because the presence of the stop field can be used to determine that the packet containing the stop field is the last packet of the stream. Using the stop field to infer that the stream should be terminated frees up the space that would otherwise be used by the continue field in a packet with a stop field, reserving this space for potential future use (e.g., future use for any purpose).
[0049] FIG. 3 is a block diagram of an example multi-stream generator adapted to aggregate input streams in an example system adapted to selectively forward communications between serially chained devices. Multi-stream generator 300 is an example multi-stream generator that may be disposed on a substrate 302. Multi-stream generator 300 includes an input (e.g., receiver 310) adapted to receive at least one video stream from a selected head unit and an output (e.g., transmitter 390) adapted to forward a packetized video stream to a first stream disaggregator. The packetized video stream may be generated (e.g., sourced) by a video source (such as a digital camera) according to a mobile industry peripheral interface (MIPI) camera serial interface (CSI). The video source for generating the example video 0 through video 7 streams may include sensors (e.g., sensor 402), which may include various cameras, such as a backup camera or a side-view camera, each configured to generate a respective video stream. The video sources for generating the example Video 0 through Video 7 streams may also include the head unit itself (e.g., head unit 401), which may generate at least one video stream for display in response to a sensor, such as sensor 402 (as described below with reference to FIG. 4).
[0050] In one example, the clock generator 304 is disposed on the substrate 302 and is adapted to generate clock signals such as a video pixel clock (VP clocks), a video link layer clock (vclk_link), a frame clock (clk_frame), and a lane clock (clk_div40). In some examples, some of the clock signals may be generated by circuit elements not included on the substrate 302. The architecture of the multi-stream generator is also scalable (e.g., by powers of two), so that the multi-stream generator can aggregate a selected number (e.g., eight or more) of video streams (which can be accommodated by including a sufficient number of bits in fields 214 and 224). In some examples, the receiver may include a transmitter so that information can be transmitted from the exemplary receiver 310 (e.g., in a second, opposite direction). The multi-stream generator 300 may be adapted to communicate data bidirectionally (e.g., at 165 Mbit / s upstream or 13 Gbit / s downstream). An example of bidirectional transmission / reception of transmitted data is described in U.S. Patent No. 9,363,067, entitled "Data Signal Transceiver Circuit Providing Simultaneous Bidirectional Communication Over a Common Conductor Pair," issued June 7, 2016, which is incorporated herein by reference. [Patent Document 1] U.S. Patent No. 9,363,067
[0051] For a first video stream (e.g., Video In 0) in the exemplary multi-stream generator 300, a pixel aligner 312 is adapted to sample the first video transmission, align (e.g., synchronize) the sampled data with an internal clock (e.g., VP clock) of the multi-stream generator 300, and generate horizontal synchronization (hsync) and vertical synchronization (vsync) information (e.g., for identifying pixel locations in the received pixel data). The sampled data is verified by checking for (and possibly correcting) errors with a 32-bit cyclic redundancy checker (CRC) 314. The verified information is stored in a video buffer 322 and is temporally associated with the hsync and vsync information, so that, for example, start and stop packets can be associated with the beginning and end of a displayed video frame, respectively. Video streams may be received (e.g., from a head unit) as serial or parallel streams, accessed from system memory (e.g., frame memory), and / or transmitted / accessed via a combination thereof.
[0052] Stream mapper 330 is adapted to receive stream (e.g., Video In 0 stream) information and associated hsync and vsync signals from video buffer 322. In response to the video buffer 322 information and associated hsync and vsync signals, stream mapper 330 is configured to associate a particular video stream with a particular display (e.g., by setting the value of a STRM field, such as field 214 or field 224).
[0053] The Lane 0 link layer 332 is arranged to generate (for example) signals adapted to control physical layer parameters for transmitting data on Lane 0 in accordance with a system protocol (e.g., the FPD protocol described below). The Lane 1 link layer 334 is arranged to generate (for example) link control signals adapted to control physical layer parameters for transmitting data over Lane 1 in accordance with the system protocol. The link control signals may be generated synchronously with (e.g., in response to) a video link layer clock.
[0054] Packets from a particular stream (e.g., the Video In 0 stream) may be transmitted over either Lane 0 or Lane 1 in response to an assignment made by a transmit distributor (TX distributor) 342. The TX distributor 342 may allocate at least one transmit lane so that pixels of a video frame may be transmitted at a rate sufficient to meet the frame rate of the display indicated by the STRM field. A first output of the TX distributor 342 is coupled to convey data for Lane 0 to an input of the framer 352, and a second output of the TX distributor 342 is coupled to convey data for Lane 1 to an input of the framer 354. The pixels of the video frame may be transmitted synchronously with a frame clock. In some examples, a particular lane may be associated with each display (e.g., as a system design choice), and thus a video stream may be associated with (transferred to) each display. In some examples, lanes may be dynamically designated based on network traffic, such that the lanes may carry different video streams (where, for example, a stream disaggregator is adapted to associate received packets of a particular video stream with a particular display and, in response, forward / transmit packets of a given video stream toward the correct display).
[0055] Framer 352 and framer 354 are adapted to generate transmission frames according to a system protocol, such as a Low-Voltage Differential Signaling (LVDS) protocol. The system protocol may be an LVDS standard, such as a Flat Panel Display Link (FPD) protocol (e.g., FPD-link I, FPD-link II, FPD-link III, and any future standard related to at least one existing FPD standard). The system protocol may also include "sub-LVDS standards," current-mode and / or voltage-mode drivers / receivers, and other such low-power, high-speed signaling protocols (including Gigabit Multimedia Serial Link, GMSL). FPD framer 362 is adapted to align data for transmission within a transmission frame, FPD encoder 372 is adapted to encode the aligned data as symbols for transmission within the transmission frame, and FPD frame physical aligner 382 is adapted to buffer the encoded symbols for synchronous transmission by transmitter 390 over lane 0 (e.g., clocked by the lane clock). FPD framer 364 is adapted to align data for transmission within a transmission frame, FPD encoder 374 is adapted to encode the aligned data as symbols for transmission within the transmission frame, and FPD frame physical aligner (FRAME PHY ALIGN) 384 is adapted to buffer the encoded symbols for synchronous transmission by transmitter 390 over Lane 1. The encoded symbols may be decoded by a receiver such as receiver 422 and encoded by a stream transporter (e.g., a stream transmitter) such as stream transporter 426, e.g., as described herein below.
[0056] For a second video stream (e.g., Video In 7) in the exemplary multi-stream generator 300, a pixel aligner 316 is adapted to sample the video transmission, align the sampled data with an internal clock of the multi-stream generator 300, and generate horizontal synchronization (hsync) and vertical synchronization (vsync) information. The sampled data is verified by checking for errors with a 32-bit CRC (cyclic redundancy checker) 318. The verified information is stored in a video buffer 324 and is temporally associated with the hsync and vsync information so that, for example, start and stop packets can be associated with the start and end, respectively, of a video frame to be displayed.
[0057] The stream mapping unit 330 is adapted to receive stream (e.g., Video In 7 stream) information and associated hsync and vsync signals from the video buffer 324. In response to the information and associated hsync and vsync signals from the video buffer 324, the stream mapping unit 330 is configured to associate a particular video stream with a particular display (e.g., by setting the value of a STRM field, such as field 214 or field 224).
[0058] Lane 2 link layer 336 is arranged to generate signals adapted to control physical layer parameters for transmitting data on Lane 2 (for example) in accordance with the system protocol. Lane 3 link layer 338 is arranged to generate signals adapted to control physical layer parameters for transmitting data across Lane 3 (for example) in accordance with the system protocol.
[0059] Packets from a particular stream (e.g., the Video In 7 stream) may be transmitted over either Lane 2 or Lane 3, depending on the designation made by transmit distributor (TX distributor) 344. TX distributor 344 may allocate at least one transmit lane so that pixels may be transmitted at a rate sufficient to meet the frame rate of the display indicated by the STRM field. A first output of TX distributor 344 is coupled to communicate Lane 2 data to an input of framer 356, and a second output of TX distributor 344 is coupled to communicate Lane 1 data to an input of framer 358.
[0060] Framers 356 and 358 are adapted to generate transmission frames according to a system protocol, such as a Low-Voltage Differential Signaling (LVDS) protocol. The system protocol may be an LVDS standard, such as the Flat Panel Display Link (FPD) Protocol, Version 4. FPD framer 366 is adapted to align data for transmission within a transmission frame, FPD encoder 376 is adapted to encode the aligned data as symbols for transmission within the transmission frame, and FPD frame physical aligner (FRAME PHY ALIGN) 386 is adapted to buffer the encoded symbols for synchronous transmission by transmitter 390 via Lane 2. FPD framer 368 is adapted to align data for transmission within a transmission frame, FPD encoder 378 is adapted to encode the aligned data as symbols for transmission within the transmission frame, and FPD frame physical aligner (FRAME PHY ALIGN) 388 is adapted to buffer the encoded symbols for synchronous transmission by transmitter 390 via Lane 3.
[0061] Other video inputs (e.g., Video In 2 through Video In 6) and lane outputs (e.g., Lane 4 through Lane 15) and circuitry may be included so that the system bandwidth is sufficient to handle (for example) a larger number of displays and / or increased resolutions (e.g., for instrumentation, side and rearview, navigation, and passenger infotainment systems). As described below with reference to FIG. 4, the outputs (e.g., multi-stream outputs) are coupled to at least one stream disaggregator to combine selected video streams to respective local displays. While local displays may not be coupled to any stream disaggregators, the cabling requirements (e.g., number of connectors, cables, and / or conductors) in a system with multiple displays and video streams increase to cable local displays that are not coupled to stream disaggregators.
[0062] 4 is a block diagram of an example system including at least one stream disaggregator adapted to selectively forward communications between serially chained devices. For example, system 400 is an example system including head unit 401, multi-stream generator 410, stream disaggregator 420 (e.g., locally coupled to local display 404 via cable 405), stream disaggregator 430 (e.g., locally coupled to local display 406 via cable 407), and stream disaggregator 440 (e.g., locally coupled to local display 408 via cable 409). Stream disaggregators 420, 430, and 440 may be adapted to convey data bidirectionally (e.g., at 165 Mbits / sec upstream or 13 Gbits / sec downstream).
[0063] In some examples, the head unit 401 is coupled to receive sensor information from sensors 402. The sensors 402 may be a suite of sensors associated with the electronic systems of a vehicle (e.g., vehicle 110). Such sensors may include sensors adapted to sense the position of driver controls (e.g., gear shift, lights, steering wheel, turn signals, and other controls), vehicle attributes (e.g., speed, gas level, temperature, fuel flow, tire pressure, seat belt, and other attributes), and positioning (e.g., radar, satellite navigation, camera, lane and curb sensors, and other relevant information). The head unit 401 is adapted to generate output information (e.g., video information) in response to the sensor information. Additional head units 401 may be coupled to various sensors 402 and the multi-stream generator 410.
[0064] Head unit 401 is adapted to generate video information for display on local display 404 (which may be, for example, CLUSTER 124), local display 406 (which may be, for example, head-up display HUD 126), and local display 408 (which may be, for example, center instrument display CID 128). For example, the head unit may generate a first video stream of an operating vehicle dashboard (e.g., for display on a display panel replacing mechanical instruments), a second video stream for the HUD (e.g., for displaying navigation information on a virtual screen on the windshield), and a third video stream for the CID (e.g., for displaying real-time images from a rear-facing backup camera). Head unit 401 is adapted, for example, to output these video streams as individual bitstreams.
[0065] The multi-stream generator 410 is a multi-stream generator such as the multi-stream generator 300 described above. The multi-stream generator 410 is coupled to a video output (e.g., each video output) of the head unit 401 and is adapted to combine (e.g., at least two) independent video streams received from the head unit 401 into an integrated (e.g., multi-stream) video stream using a system protocol. The multi-stream generator is adapted to packetize information from the integrated video stream (which, e.g., includes information of at least two video streams) and transmit the integrated video stream (multi-stream). Thus, the multi-stream generator is arranged as a source node of the integrated video stream.
[0066] Each individual packet (generated by the multi-stream generator) includes an identification field, such as a STRM identifier, that may identify the display (e.g., the addressed display and / or the addressed node) selected as the destination of the packet. The multi-stream generator 410 is adapted to couple the encoded packets to a source output (e.g., of a source node) of the multi-stream generator 410. A first cable (411) is connected between the multi-stream generator 410 (e.g., the source node) and a first stream disaggregator (e.g., the stream disaggregator 420). The first cable includes sufficient conductors (and associated insulators / shielding) to convey information for all lanes (e.g., at least one lane) along which video information is transmitted.
[0067] The stream disaggregator 420 includes a local link controller 421, stream inputs (such as a receiver 422), a stream selector 423, a demultiplexer (DEMUX) 424, and a switch 427 (which includes a local exporter 425 and a stream forwarder 426). The receiver 422 may include a physical layer receiver, the local exporter 425 may include a physical layer driver, and the stream forwarder 426 may include a physical layer driver. The receiver 422 has a receiver output. The receiver 422 has a receiver input adapted to receive input data (e.g., an aggregated video stream) from the output of a source node (e.g., the multi-stream generator 410). The input data may be (and / or may include) incoming packets that include an identification field, and the incoming packets are sent by the source node. The input data may be received as serial data or parallel data. The input data is received according to a system protocol (e.g., an FPD protocol) that is different from a local protocol (e.g., an eDP protocol, described below).
[0068] The stream selector 423 includes a selector output. The stream selector 423 is coupled to a receiver output (e.g., of the receiver 422), and the stream selector 423 is configured to generate a destination indication at the selector output (e.g., of the stream selector 423). For example, the stream selector 423 is adapted to monitor the receiver 422 for received transmissions (e.g., packets 210 and 220) for STRM field content (which may include, for example, feature data) and to program the demultiplexer (DEMUX) 424 in response thereto. In one example, the stream selector 423 is adapted to generate a destination indication in response to an identification field (the stream selector 423 is optionally adapted to receive the identification field).
[0069] The switch 427 includes a switch local output and a switch system output. The switch 427 is coupled to the output of the receiver 422 (or optionally coupled to the input of the receiver 422) and is adapted to generate a transmission (e.g., an output signal) at the switch local output (e.g., a first output of the switch) in response to the indication at the output of the stream selector 423 and the input data, and is adapted to generate a transmission at the switch system output in response to the input data. The switch local output is adapted to be coupled to a first destination node, and the switch system output is adapted to be coupled to a second destination node. For example, the switch 427 is adapted to generate an output packet adapted to be transmitted at the switch local output (e.g., local exporter 425) in response to the identification field, e.g., if the identification field indicates that the packet is to be exported to the local display 404. In one example, switch 427 is adapted to route input data to a switch system output (e.g., stream forwarder 426) in response to a destination indication, for example, if the destination indication at the output of stream selector 423 indicates that the packet is to be forwarded to another display (e.g., the packet is not to be exported to local display 404). In another example, switch 427 forwards (e.g., transmits) all input data received by stream disaggregator 420, where the input data is combined from receiver input 422 (where combining may include combining the input data via receiver 422 itself and an output of receiver 422), such that transmissions at the switch system output are generated by switch 427 in response to the input data (e.g., regardless of the content of stream fields 214 and 224).
[0070] The demultiplexer 424 includes a first output adapted to be coupled to a first destination node, and the demultiplexer 424 includes a second output adapted to be coupled to a second destination node. For example, the demultiplexer 424 includes a first output adapted to be coupled to a local display 404 via a local exporter 425. The first destination node is a local (e.g., local to the instance of the stream disaggregator 420) node address that may be associated with at least one display node address. In this example, the demultiplexer 424 includes a second output adapted to be coupled to (for example) the local display 406 via the stream transporter 426, the cable 412, and the stream disaggregator 430. The second destination node is a non-local node address that may be associated with a display node address indicating a node address other than the node address associated with the first destination node. The node addresses may be logical addresses of various display nodes, while the contents of the stream field identify particular video streams (e.g., that may be selectively received by one or more displays having different logical addresses). The stream selector may be dynamically programmed (e.g., in response to received control packets) to direct selected video streams to local displays associated with the stream selector. The stream forwarder 426 is coupled to the switch system output, the stream forwarder being adapted to transmit according to the system protocol.
[0071] In some examples, the demultiplexer 424 is adapted to combine (e.g., by switching) incoming packets to a first output of the switch and a second output of the switch in response to a destination indication. In some examples, the demultiplexer 424 is adapted to generate a packet at a selected one of the first output of the switch and the second output of the switch in response to an identification field. In some examples, the demultiplexer 424 is adapted to generate a packet destination indication in response to an identification field of the incoming packet.
[0072] The local link controller is a local controller coupled to a switch local output, which is adapted for transmission to a display. The local link controller 421 is adapted to monitor transmissions (e.g., packets 210 and 220) received by the receiver 422 for commands (e.g., function data). The local link controller 421 is adapted to control the transmission of packets from the switch local output according to a local protocol (which may, for example, be a protocol different from the system protocol).
[0073] The local exporter 425 is coupled to a first output of the demultiplexer 424, and the local exporter 425 includes an exporter output adapted for coupling to a display. For example, the first output of the demultiplexer 424 is coupled to an input of the local exporter 425. The exporter output of the local exporter 425 may be coupled (e.g., connected) to the local display 404.
[0074] The output of the local exporter 425 includes a local protocol. In one example, the local protocol is a DisplayPort protocol such as the Video Electronics Association of America (VESA) embedded DisplayPort (eDP) standard. Thus, input data may be received by the receiver 422 according to at least one system protocol (e.g., FPD) that differs from the local protocol. Other DisplayPort protocols that may be supported as local protocols include DisplayPort (DP), open liquid crystal display interface (OpenLDI), mobile industry processor interface (MIPI) display serial interface (DSI), and camera serial interface (CSI). A first local protocol (e.g., 405) of a first display (e.g., 404) may be a different protocol than a second local protocol (e.g., 407) of a second display (e.g., 406).
[0075] The stream disaggregator 420 may be programmed to operate according to a protocol associated with a particular display locally coupled to the local exporter 425. For example, the multi-stream generator 410 may configure the stream disaggregator 420 by sending a start command to the local link controller 421 that includes an indication of the protocol to be selected. The indication of the protocol to be selected may be included, for example, in the stream_payload 212. In an example system, a first stream disaggregator (e.g., 420) is adapted to select a first local protocol (e.g., 405), and a second stream disaggregator (e.g., 430) is adapted to select a second local protocol that is a different protocol than the first local protocol.
[0076] In an example system with two displays, a first cable (e.g., 411) is coupled between an output of multi-stream generator 410 and an input of first stream disaggregator 420, and a second cable (e.g., 412) is coupled between a second output of first stream disaggregator 420 and an input of second stream disaggregator 430. In this example system with two displays, received packets (e.g., encoded packets) of a first video stream are sent over the first cable (e.g., via a first switch local output) to the first display, and received packets (e.g., encoded packets) of a second video stream are sent over the first cable and a second cable (e.g., via a first switch system output and a second switch local output) to the second display.
[0077] In an example with at least two displays, the stream disaggregator 430 may include a second receiver having a second receiver output, the second receiver input adapted to receive second input data from the first switch local output, a second selector having a second selector output and coupled to the second receiver, the second selector configured to generate a second destination indication at the second selector output, and a second switch having a second switch local output and a second switch system output, coupled to the second receiver, the second switch adapted to generate a transmission at the second switch local output in response to the indication at the second selector output and the second input data. The second switch is adapted to generate a transmission at the second switch system output in response to the second input data.
[0078] In this example system comprising at least two displays, the stream disaggregator 430 may further include a second local controller coupled to a second switch local output, the second switch local output adapted to transmit to the second display, and the second local exporter arranged to transmit data to the second display in response to a start command in a packet including a second destination indication indicating the second display.
[0079] In another exemplary system having at least two displays, a head unit is adapted to generate at least two video streams at an output of the head unit, a multi-stream generator is coupled to the output of the head unit and adapted to generate encoded packets containing information from the at least two video streams and send the encoded packets to a source output, the input data including packets from one of the at least two video streams. The encoded packets may be encoded by an encoder such as FPD encoders 372, 374, 376, and 378, and the encoded packets may be decoded by a receiver (e.g., downstream stream disaggregator receiver 422).
[0080] In one example system having at least two displays, the system includes a head unit adapted to generate at least two video streams; a multi-stream generator coupled to the head unit, the multi-stream generator adapted to generate encoded packets including an identification field and including information from the at least two video streams and combine the encoded packets to an output of the multi-stream generator; and a first stream disaggregator having a first stream input coupled to the output of the multi-stream generator, the first output adapted to combine received encoded packets to the first display according to a first local protocol in response to an identification field in the received encoded packets indicating a node address of the first display. a first stream disaggregator having a second output adapted to forward received encoded packets in response to an identification field in the received encoded packets indicating a node address other than the play; and a second stream disaggregator having a second stream input coupled to the second output of the first stream disaggregator, the second stream disaggregator having a first output adapted to couple received encoded packets to a second display according to a second local protocol in response to an identification field in the received encoded packets indicating a node address other than the second display node address.The example system further includes a third stream disaggregator having a third stream input coupled to the second output of the second stream disaggregator, the third stream disaggregator having a first output adapted to couple the received encoded packet to a third display in response to an identification field of the received encoded packet indicating a third display node address, and a second output adapted to forward the received encoded packet in response to an identification field of the received encoded packet indicating a node address other than the third display node address. The example system may further include a first cable coupled between the output of the multi-stream generator and the first stream input, and a second cable coupled between the second output of the first stream disaggregator and the second stream disaggregator, wherein the encoded packets of the first video stream are transmitted over the first cable to the first display, and the encoded packets of the second video stream are transmitted over the first cable and the second cable to the second display. In this example system, the first local protocol may be a different protocol than the second local protocol.
[0081] One example method for networking multiple display systems includes operations such as sending a first transmission to a first display, the first transmission including information from the received encoded packet, in response to an identification field in the received encoded packet indicating a node address of the first display; forwarding a second transmission including information from the received encoded packet, in response to an identification field in the received encoded packet indicating a node address other than the first display node address; sending a third transmission to a second display, the second transmission including information from the received encoded packet, in response to an identification field in the received encoded packet indicating the second display; and forwarding a fourth transmission including information from the received encoded packet, in response to an identification field in the received encoded packet indicating a node address other than the second display node address. If the received encoded packet is a first encoded packet, the example method may further include generating the first encoded packet in response to information received from the first video stream, generating a second encoded packet in response to information received from the second video stream, transmitting the first encoded packet of the first video stream over a first cable to a first display, and transmitting the second encoded packet of the second video stream over the first cable and a second cable to a second display. The example method may further include generating the first video stream in response to sensors of a vehicle including the first and second displays.
[0082] In one example system with three displays, a first cable (e.g., 411) is coupled between the output of the multi-stream generator 410 and the input of the first stream disaggregator 420, a second cable (e.g., 412) is coupled between the second output of the first stream disaggregator 420 and the input of the second stream disaggregator 430, and a third cable (e.g., 413) is coupled between the second output of the second stream disaggregator 430 and the input of the third stream disaggregator 440. In this example system with three displays, received encoded packets of a first video stream are transmitted over a first cable (e.g., via a first switch local output) to a first display, received encoded packets of a second video stream are transmitted over the first cable and a second cable (e.g., via a first switch system output and a second switch local output) to a second display, and received encoded packets of a third video stream are transmitted over the first cable, the second cable, and a third cable (e.g., via a first switch system output, a second switch system output, and a third switch local output) to a third display.
[0083] In accordance with these examples described herein, additional displays and video streams can be added to the multi-display unit without increasing the number of cables connected (e.g., physically connected) to the head unit 401 and / or the multi-stream generator 410 (for example).
[0084] 5 is a block diagram of an example system including at least one bus unit adapted to generate and transfer a system wake-up signal between serially chained bus units. For example, system 500 is an example system including head unit 401 (e.g., coupled to sensor 402), first bus unit 510 (e.g., locally coupled to head unit 401 via local port 561 and cable 560), second bus unit 520 (e.g., locally coupled to touch display 572 via local port 562 and cable 405), third bus unit 530 (e.g., locally coupled to touch display 573 via local port 563 and cable 407), and fourth bus unit 540 (e.g., locally coupled to touch display 574 via local port 564 and cable 409). Bus units 510, 520, 530, and 540 may be adapted to communicate data bidirectionally (e.g., at 165 Mbit / s upstream or 13 Gbit / s downstream). Bus units 520, 530, and 540 may be serializers and / or deserializers (e.g., SERDES) and / or disaggregators (such as 420, 430, and 440, respectively).
[0085] In an example wake-up sequence generally described herein below, the second bus unit 520 may be configured to transition from a power-save mode to an active mode (e.g., be woken up) by a local wake-up signal generated in response to a wake-up event detected at the touch display 572. In response to the local wake-up signal, the second bus unit 520 may generate and transmit a system wake-up signal to the first bus unit 510 (e.g., causing the system wake-up signal to be transmitted upstream and the first bus unit 510 to wake up in response). Similarly, the second bus unit 520 may generate and transmit a system wake-up signal to the third bus unit 530 (e.g., causing the system wake-up signal to be transmitted downstream and the third bus unit 530 to wake up in response). In this example, in response to receiving the system wake-up signal, the third bus unit 530 may generate a subsequent system wake-up signal and transmit this wake-up signal to the fourth bus unit 540 (e.g., thereby transmitting a system wake-up signal downstream and waking up the third bus unit 530 in response). Other wake-up sequences are described below (e.g., with reference to Figures 8, 9, and 10).
[0086] In a first exemplary system, system 500 includes a first bus unit (FBU) 510 having an FBU first system port (e.g., downstream D port 591), an FBU local port (e.g., local L port 561), an FBU wakeup input, an FBU transceiver 512, an FBU controller 514, and an FBU energy detector 516. FBU transceiver 512 is coupled to the FBU first system port, the FBU local port, and the FBU wakeup input.
[0087] The FBU first system port (e.g., 591) is adapted to receive the FBU first system input signal. The FBU local port (e.g., 561) is adapted to receive the FBU local input signal. The FBU transceiver 512 is configured to transmit data of the FBU first system input signal to the FBU local port (e.g., 561) in the FBU first mode (e.g., active mode). The FBU transceiver 512 is configured to save power in the FBU second mode. The FBU transceiver 512 is configured to enter the FBU first mode in response to an FBU local wakeup signal. The FBU transceiver 512 is configured to transmit an FBU system wakeup signal at one of the FBU first system port (e.g., 591) and the FBU local port (e.g., 561) in response to the FBU local wakeup signal.
[0088] The FBU controller 514 has an FBU energy detect input and an FBU wakeup output, the FBU wakeup output coupled to the FBU wakeup input, and is configured to generate an FBU local wakeup signal at the FBU wakeup output in response to the FBU energy detect signal.
[0089] FBU energy detector 516 has an FBU energy detect output coupled to the FBU energy detect input. FBU energy detector 516 is coupled to the FBU first system port (e.g., via bus 551) and to the FBU local port (e.g., via node 561a). FBU energy detector 516 is configured to generate an FBU energy detect signal at the FBU energy detect output in response to FBU detection of energy in one of the FBU first system input signal (e.g., the signal via node 561a) and the FBU local input signal received by FBU transceiver 512 in FBU second mode.
[0090] In the first exemplary system, system 500 further includes a second bus unit (SBU) 520 having an SBU first system port (e.g., upstream U port 582). The SBU first system port is coupled to an FBU first system port (e.g., downstream D port 591). The SBU first system port (e.g., 582) is adapted to receive an FBU system wake-up signal, and the FBU first system port (e.g., 591) is adapted to receive an SBU system wake-up signal (e.g., when sent by SBU 520 via the SBU first system port).
[0091] SBU 520 may further include an SBU second system port (e.g., downstream D port 592), an SBU local port (e.g., local L port 562), an SBU wake-up input, an SBU transceiver 522, an SBU controller 524, and an SBU energy detector 526. SBU transceiver 522 is coupled to the SBU first system port, the SBU second system port, the SBU local port, and the SBU wake-up input.
[0092] The SBU first system port (e.g., 582) is adapted to receive an SBU first system input signal, the SBU second system port (e.g., 592) is adapted to receive an SBU second system input signal, and the SBU local port (e.g., 562) is adapted to receive an SBU local input signal. The SBU transceiver 522 is configured to communicate data of the SBU first system input signal to the SBU second system port (e.g., 592) in an SBU first mode (e.g., active mode), and the SBU transceiver 522 is configured to save power in an SBU second mode (e.g., power save mode). The SBU transceiver 522 is configured to enter the SBU first mode in response to an SBU local wakeup signal. The SBU transceiver 522 is configured to transmit an SBU system wakeup signal on one of the SBU first system port and the SBU second system port in response to the SBU local wakeup signal.
[0093] Generally, SBU 520 may detect a wake-up signal at any of the first system port (e.g., 582), the SBU second system port (e.g., 592), and the SBU local port (e.g., 562). SBU 520 is configured to generate (in response to the detected wake-up signal) a subsequent wake-up signal to be transmitted to the port on which the detected wake-up signal was received. In a first scenario, a wake-up signal is detected via the SBU local port (e.g., 562), and in response, SBU transceiver 522 transmits a system wake-up signal via the SBU first system port (e.g., 582) and via the SBU second system port (e.g., 592). In a second scenario, a wake-up signal is detected via the SBU first system port (e.g., 582), and in response, the SBU transceiver 522 transmits a system wake-up signal via the SBU second system port (e.g., 592) and a local wake-up signal via the SBU local port (e.g., 562). In a third scenario, a wake-up signal is detected via the SBU second system port (e.g., 592), and in response, the SBU transceiver 522 transmits a system wake-up signal via the SBU first system port (e.g., 582) and a local wake-up signal via the SBU local port (e.g., 562). In response to the SBU 522 receiving a system wake-up signal from either the FBU 510 or the third bus unit 530, it may signal the touch display 572 to transition from a power-save mode to an active mode by transmitting a local wake-up signal to the touch display 572.
[0094] The SBU controller 524 has an SBU energy detect input and an SBU wakeup output, the SBU wakeup output coupled to the SBU wakeup input, and is configured to generate an SBU local wakeup signal at the SBU wakeup output in response to the SBU energy detect signal.
[0095] SBU energy detector 526 has an SBU energy detect output coupled to the SBU energy detect input. SBU energy detector 526 is coupled to an SBU first system port (e.g., 582), an SBU second system port (e.g., 592), and an SBU local port (e.g., 562). SBU energy detector 526 is configured to generate an SBU energy detect signal at the SBU energy detect output in response to SBU detection of energy in one of an SBU first system input signal (e.g., a signal via node 582a), an SBU second system input signal (e.g., a signal via bus 552), and an SBU local input signal (e.g., a signal via node 562a) received by SBU transceiver 522 in the SBU second mode.
[0096] In the first exemplary system, system 500 further includes a third bus unit (TBU) 530 having a TBU first system port (e.g., upstream U-port 583), an optional TBU second system port (e.g., downstream D-port 593), a TBU local port (e.g., local L-port 563), a TBU wake-up input, a TBU transceiver 532, a TBU controller 534, and a TBU energy detector 536. The TBU first system port (e.g., 583) is coupled to the SBU second system port (e.g., 592). The TBU transceiver 532 is coupled to the TBU first system port, the optional TBU second system port, the TBU local port, and the TBU wake-up input.
[0097] The TBU first system port (e.g., 583) is adapted to receive a TBU first system input signal, the optional TBU second system port (e.g., 593) may be adapted to receive a TBU second system input signal, and the TBU local port (e.g., 563) is adapted to receive a TBU local input signal. The TBU transceiver 532 is configured to communicate data of the TBU first system input signal to one of the TBU local port (e.g., 563) and the TBU second system port (e.g., 593) in a TBU first mode (e.g., an active mode), and the TBU transceiver 523 is configured to conserve power in a TBU second mode (e.g., a power save mode). The TBU transceiver 532 is configured to enter the TBU first mode in response to a TBU local wakeup signal. The TBU transceiver 532 is configured to transmit a TBU system wakeup signal on one of the TBU first system port and the TBU local port in response to the TBU local wakeup signal. The SBU second system port (eg, 592) is adapted to receive a TBU system wake-up signal (eg, in response to a TBU system wake-up signal being sent by TBU 530 via the TBU first system port).
[0098] Generally, TBU 530 may detect a wake-up signal at any of the first system port (e.g., 583), the TBU second system port (e.g., 593), and the TBU local port (e.g., 563). TBU 530 is configured to generate (in response to the detected wake-up signal) a subsequent wake-up signal to be transmitted to the port on which the detected wake-up signal was received. In a first scenario, a wake-up signal is detected via the TBU local port (e.g., 563), and in response, TBU transceiver 523 transmits a system wake-up signal via the TBU first system port (e.g., 583) and via the TBU second system port (e.g., 593). In a second scenario, a wake-up signal is detected via the TBU first system port (e.g., 583), and in response, the TBU transceiver 532 transmits a system wake-up signal via the TBU second system port (e.g., 593) and a local wake-up signal via the TBU local port (e.g., 563). In a third scenario, a wake-up signal is detected via the TBU second system port (e.g., 593), and in response, the TBU transceiver 532 transmits a system wake-up signal via the TBU first system port (e.g., 583) and a local wake-up signal via the TBU local port (e.g., 563). In response to the TBU 530 receiving a system wake-up signal from either the SBU 520 or the fourth bus unit 540, the TBU 530 may signal (command) the touch display 573 to transition from a power-save mode to an active mode by transmitting a local wake-up signal to the touch display.
[0099] The TBU controller 534 has a TBU energy detect input and a TBU wakeup output, the TBU wakeup output coupled to the TBU wakeup input, and is configured to generate a TBU local wakeup signal at the TBU wakeup output in response to the TBU energy detect signal.
[0100] TBU energy detector 536 has a TBU energy detect output coupled to the TBU energy detect input. TBU energy detector 536 is coupled to a TBU first system port (e.g., 583), a TBU second system port (e.g., 593), and a TBU local port (e.g., 563). TBU energy detector 536 is configured to generate a TBU energy detect signal at the TBU energy detect output in response to TBU detection of energy in one of a TBU first system input signal (e.g., via node 583a), an optional TBU second system input signal (e.g., via bus 553), and a TBU local input signal (e.g., via node 563a) received by TBU transceiver 532 in TBU second mode.
[0101] In the first exemplary system, system 500 may further include additional (e.g., optional) bus units for expanding the serially chained system bus. For example, fourth bus unit 540 has a first system port (e.g., upstream U port 584), a second system port (e.g., downstream D port 594), a local port (e.g., local L port 564), a wake-up input, transceiver 542, a controller 544, and an energy detector 546. The first system port (e.g., 584) is coupled to a TBU second system port (e.g., 593).
[0102] The first system port (e.g., 584) is adapted to receive a first system input signal, the optional second system port (e.g., 594) may be adapted to receive a second system input signal, and the local port (e.g., 564) is adapted to receive a local input signal. The transceiver 542 is configured to communicate data of the first system input signal to one of the local port (e.g., 564) and the second system port (e.g., 594) in a first mode (e.g., an active mode), and the transceiver 542 is configured to conserve power in a second mode (e.g., a power save mode). The transceiver 542 is configured to enter the first mode in response to a local wake-up signal. The transceiver 542 is configured to transmit a system wake-up signal at one of the first system port and the local port in response to the local wake-up signal. The TBU second system port (e.g., 593) is adapted to receive a fourth bus unit generated system wake-up signal (e.g., in response to a fourth bus unit system wake-up signal being sent by the fourth bus unit 540 via the fourth bus unit first system port).
[0103] The controller 544 has an energy detect input and a wake-up output, the wake-up output coupled to the wake-up input, and is configured to generate a local wake-up signal at the wake-up output in response to the energy detect signal.
[0104] Energy detector 546 has an energy detect output coupled to the energy detect input. Energy detector 546 is coupled to a first system port (e.g., 584), a second system port (e.g., 594), and a local port (e.g., 564). Energy detector 546 is configured to generate an energy detect signal at the energy detect output in response to detecting energy in one of the first system input signal (e.g., the signal via node 584a), the optional second system input signal (e.g., the signal via bus 554), and the local input signal (e.g., the signal via node 564a) received by transceiver 542 in the second mode.
[0105] In the first example system, system 500 further includes a user interface (UI) device such as one of touch displays 572, 573, and 574. Touch display 572 is coupled to switch 527 (e.g., a switch similar to switch 427) of transceiver 522 of SBU 520 via cable 405 and local port 562, touch display 573 is coupled to switch 537 (e.g., a switch similar to switch 437) of transceiver 532 of TBU 530 via cable 407 and local port 563, and touch display 574 is coupled to switch 547 (e.g., a switch similar to switch 447) of transceiver 542 of fourth bus unit 540 via cable 409 and local port 564.
[0106] With respect to the FBU 510, a UI device (e.g., sensor 402 and head unit 401) includes a UI port (e.g., 560) coupled to an FBU local port (561), which is adapted to receive user input (such as user touch, user voice, user manipulation, proximity detection, and physical or electronic indications). The FBU 510 is configured to generate a user wake-up signal at the UI port in response to the user input. The FBU 510 is configured to generate an SBU system wake-up signal in response to the user wake-up signal. The SBU 520 is configured to generate an SBU local wake-up signal in response to the FBU system wake-up signal.
[0107] With respect to SBU 520, a UI device (e.g., touch display 572) includes a UI port (e.g., 405) coupled to SBU local port (562), the UI device adapted to receive user input. SBU 520 is configured to generate a user wake-up signal at the UI port in response to the user input. SBU 520 is configured to generate an SBU system wake-up signal in response to the user wake-up signal. FBU 510 is configured to generate an FBU local wake-up signal in response to the SBU system wake-up signal, and TBU 530 is configured to generate an FBU local wake-up signal in response to the SBU system wake-up signal.
[0108] With respect to the TBU 530, a UI device (e.g., touch display 573) includes a UI port (e.g., 407) coupled to the TBU local port (563), the UI device adapted to receive user input. The TBU 530 is configured to generate a user wake-up signal at the UI port in response to the user input. The TBU 530 is configured to generate a TBU system wake-up signal in response to the user wake-up signal. The SBU 520 is configured to generate an SBU local wake-up signal in response to the TBU system wake-up signal, and the fourth bus unit 540 is configured to generate a fourth bus unit local wake-up signal in response to the TBU system wake-up signal.
[0109] With respect to the fourth bus unit 540, a UI device (e.g., touch display 574) includes a UI port (e.g., 409) coupled to the fourth bus unit local port (564), the UI device adapted to receive user input. The fourth bus unit 540 is configured to generate a user wake-up signal at the UI port in response to the user input. The fourth bus unit 540 is configured to generate a fourth bus unit system wake-up signal in response to the user wake-up signal. The TBU 530 is configured to generate a TBU local wake-up signal in response to the fourth bus unit system wake-up signal, and any additional serially-chained bus units are configured to generate their respective unit local wake-up signals in response to the system wake-up signal of an adjacent serially-chained bus unit.
[0110] In the second exemplary system, system 500 includes a power management system 508. Power management system 508 includes power management devices such as a PMIC (power management integrated circuit) 518 coupled to FBU 510, a PMIC 528 coupled to SBU 520, a PMIC 538 coupled to TBU 530, and a PMIC 548 coupled to fourth bus unit 540. PMIC 518, PMIC 528, PMIC 538, and PMIC 548 may be included on a common substrate, may be included on a substrate that includes the bus unit to which the respective PMIC is coupled, and / or combinations thereof. For example, power for controlling the operation of the power management devices and energy detection circuitry may be provided (e.g., coupled) via a VDDKA (first power rail keep alive) power signal (which may enable, for example, reduced power consumption in a power saving mode).
[0111] In the second exemplary system, the system 500 includes circuitry (such as SBU 520) that includes a transceiver (eg, 522), a controller (eg, 524), and an energy detector (eg, 526).
[0112] The transceiver (e.g., 522) has a first system port (e.g., a first selected one of 582 and 592), a second system port (e.g., a second selected one of 582 and 592 that is different from the first selected one of 582 and 592), a local port (e.g., 562), and a wake-up input. The first system port is adapted to receive a first system input signal, the second system port is adapted to receive a second system input signal, and the local port is adapted to receive a local input signal. The transceiver is configured to communicate data of the first system input signal to the second system port in a first mode, the transceiver is configured to conserve power in the second mode, the transceiver is configured to enter the first mode in response to a local wake-up signal, and the transceiver is configured to transmit a system wake-up signal at the second system port in response to the local wake-up signal.
[0113] A controller (e.g., 524) has an energy detect input and a wake-up output, the wake-up output coupled to the wake-up input, and is configured to generate a local wake-up signal at the wake-up output in response to the energy detect signal.
[0114] An energy detector (e.g., 526) has an energy detect output coupled to the energy detect input. The energy detector is coupled to the first system port and the local port. The energy detector is configured to generate an energy detect signal at the energy detect output in response to detecting energy in one of the first system input signal and the local input signal received by the transceiver in the second mode.
[0115] In one example, the transceiver is further configured to communicate data of the second system input signal to the first system port in the first mode. In this example, the system wake-up signal may include a wake-up pattern.
[0116] In another example, the transceiver is further configured, in the second mode, to transmit a system wake-up signal at the first system port in response to the local wake-up signal.
[0117] In yet another example, the energy detector is configured to detect energy in one of the first system input signal and the local input signal. In this example, the energy detector may be coupled to the second system port, and the energy detector may be configured to detect energy in the second system input signal. In this example, the energy detector is configured to generate an energy detect signal at the energy detect output in response to detecting energy in the second system input signal received by the transceiver in the second mode.
[0118] In a further example, the controller is further coupled to the first system port and the local port. The controller is further configured to detect a wake-up pattern in one of the first system input signal and the local input signal in response to the energy detect signal. In this example, the controller further includes a data valid output, and the controller is configured to generate a data valid signal at the data valid output in response to detecting the wake-up pattern in one of the first system input signal and the local input signal. In this example, the energy detector may further include a data valid input and an enable power output, the data valid input being coupled to the data valid output, and the energy detector further configured to generate an enable power signal at the enable power output. In this example, the circuit may further include a power management unit, the power management unit including an enable power input and a power supply output, the enable power input being coupled to the enable power output, and the power management unit configured to generate a power signal at the power supply output in response to the enable power signal. In this example, the controller further includes a power supply input, the power supply input being coupled to the power supply output, and the controller is further configured to generate a local wake-up signal in response to the power signal. In this example system, the power management unit of the circuit may further include a logic enable output, the controller may further include a logic enable input, the logic enable input coupled to the logic enable output, the power management unit may further be configured to generate a logic enable signal at the logic enable output in response to the power signal, and the controller may further be responsive to generate a local wake-up signal in response to the logic enable signal.
[0119] 6 is a flowchart of an example method of wake-up signaling for the example system of FIG. 5. Example method 600 may include various techniques described herein below. In various implementations, the described actions need not be performed in the described order. In example method 600, the method may begin at 605.
[0120] At 605, the method may include receiving a first wake-up signal by a first port of a first bus unit (FBU). For example, the first wake-up signal may be generated by head unit 401 in response to sensor 502. The first wake-up signal may be received at local port 561 by FBU 510. The method may continue at 610.
[0121] At 610, the method may include applying power to a second port of the FBU in response to the first wake-up signal. For example, power management circuitry, such as the PMIC 518, may couple operating power to a transmitter (e.g., of the transceiver 512) so that the transmitter can exit a power-saving mode and enter an active mode (e.g., a mode in which a signal can be transmitted). In some examples, power may be coupled by energizing a power supply. In another example, a system clock is activated (e.g., asserted), thereby drawing additional power in response to active CMOS circuitry switching with the activated system clock. In some implementations, the entire bus unit may be placed in an active mode by applying power to active circuitry of all bus units in response to a received wake-up signal. The method may continue at 615.
[0122] At 615, the method may include transmitting a second wake-up signal by a second port of the FBU in response to the first wake-up signal. For example, the transmitter portion of the transceiver 512 may transmit the second wake-up signal from the second port (e.g., the first system port 591). The method may continue at 620.
[0123] At 620, the method may include receiving a second wake-up signal by a first port of a second bus unit (SBU). For example, the second wake-up signal may be generated by FBU 510 in response to the first wake-up signal. The second wake-up signal may be received at first system port 582 by SBU 520. The method may continue at 625.
[0124] At 625, the method may include applying power to a second port of the SBU in response to the second wake-up signal. For example, power management circuitry such as the PMIC 528 may couple operating power to a transmitter (e.g., of the transceiver 522) so that the transmitter may exit a power-saving mode and enter an active mode (e.g., a mode in which a signal may be transmitted). The method may continue at 630.
[0125] At 630, the method may include transmitting a third wake-up signal by a second port of the SBU in response to the second wake-up signal. For example, a transmitter portion of the transceiver 522 may transmit the third wake-up signal from a second port (e.g., second system port 592). A transmit portion of the transceiver 522 may optionally transmit a local wake-up signal from a third port (e.g., 562) to a locally coupled device (e.g., touch display 572) in response to the second wake-up signal. The method may continue at 635.
[0126] At 635, the method may include receiving a third wake-up signal by a first port of a third bus unit (TBU). For example, the third wake-up signal may be generated by SBU 520 in response to the second wake-up signal. The third wake-up signal may be received at first system port 582 by TBU 530. The method may continue at 640.
[0127] At 640, the method may include applying power to the TBU in response to the third wake-up signal. For example, power management circuitry such as PMIC 538 may couple operating power to TBU 530 such that TBU 530 may exit a power-saving mode and enter an active mode (e.g., a mode in which signals may be actively received and transmitted). Thus, a local wake-up event may be issued across and through the serial chain of bus units of system 500 described herein.
[0128] 7 is a flowchart of an example method of detecting and handling a wake-up signal for the example system of FIG. 5. Example method 700 may include various techniques described herein below. In various implementations, the described actions need not be performed in the order described. In example method 700, the method may begin at 705.
[0129] At 705, the method may include monitoring, by the energy detector, a wake-up mode signal. For example, the wake-up mode signal may be a VDDKA signal that may provide operating power to the energy detector of the bus unit. The method may continue at 710.
[0130] At 710 , the method continues at 715 if the wake-up mode signal is asserted, otherwise the method continues at 705 .
[0131] At 715, the method may include monitoring the input signal for signal energy by an energy detector. For example, the energy detector of the bus unit may compare the field strength, current, and / or voltage levels carried by the conductor to a threshold to detect quantized changes in the input signal. A signal net (e.g., a signal line) may be a dedicated wake-up signal conductor or may be used for other purposes (e.g., a signal lane for receiving video stream information from an upstream source) while the bus unit is operating in the active mode. The method continues at 720.
[0132] At 720 , the method continues at 725 if signal energy is detected, otherwise the method continues at 705 .
[0133] At 725, the method may include asserting, by the energy detector, an enable power signal in response to detecting the signal energy. The method continues at 730.
[0134] At 730, the method may include asserting, by the energy detector, an energy detect signal in response to detecting signal energy. The method continues at 735.
[0135] At 735, the method may include applying power to the controller of the bus unit by the power management interface controller in response to the asserted enable power signal. The method continues at 740.
[0136] At 740, the method may include asserting, by the power management interface controller, a logic enable signal in response to the enable power signal. For example, the logic enable signal may be asserted after a period of time during which logic circuits of the controller stabilize after application of power. The method continues at 745.
[0137] At 745, the method may include determining, by the controller, a start time of a valid detection period. For example, the controller may, in response to the logic enable signal, determine a start time (e.g., start a timer) of a valid detection period during which an input signal (e.g., a potential wake-up signal) is evaluated for valid data (e.g., a wake-up pattern). The method continues at 750.
[0138] At 750, the method may include evaluating, by a controller of the bus unit, a received signal of the input signal for valid data. For example, the input signal may be evaluated to determine the presence of a wake-up pattern. The valid data may include a wake-up code configured to identify the bus unit from which the wake-up signal in the input signal was received. The wake-up pattern may be encoded to reduce entropy (e.g., to reduce false positives due to incoming noise). The method continues at 755.
[0139] At 755, the method continues at 780 if valid data is detected, otherwise the method continues at 760.
[0140] If the valid detection period has expired (eg, exceeded) at 760 , the method continues at 765 , otherwise the method continues at 750 .
[0141] At 765, the method may include indicating, by the controller of the bus unit, that no valid data was detected. The method continues at 770.
[0142] At 770, the method may include deasserting, by the energy detector, the enable power signal in response to an indication that valid data is not detected. For example, the enable power signal may be deasserted by negating an active low signal indicating that valid data is detected (e.g., valid data-). The method continues at 775.
[0143] At 775, the method may include removing power from the controller of the bus unit by the power management interface controller in response to the enable power signal being deasserted. The method continues at 780.
[0144] At 780, the method may include transmitting, by a bus unit (e.g., a first bus unit including an energy detector and a controller), a wake-up signal (e.g., a second wake-up signal) to another bus unit (e.g., a second bus unit). For example, the first bus unit may send a second wake-up signal to the second bus unit, where the second wake-up signal is encoded with an identifier of the first bus unit and the second bus unit is not the bus unit to which the first wake-up signal was sent. The wake-up signal may include a repeating pattern such that the wake-up signal may be transmitted (e.g., repeatedly transmitted) over a valid detection period. The length (e.g., duration) of the valid detection period may be selected for each bus unit.
[0145] 8 is a block diagram of a first example wake-up signal handling scenario in an example system. In this example, system 800 includes serially chained bus units such as 810, 820, 830, and 840. The bus units may be deserializers (which may themselves include both serialization and deserialization circuitry) and / or disaggregators (described above with reference to FIG. 4).
[0146] The FBU 810 may be similar to the multi-stream generator 410 and / or the FBU 510. The FBU 810 may be locally coupled to various devices (e.g., the sensor 402 and the head unit 401) and may generate a local wake-up signal in response to input generated by any coupled sensor. The FBU 810 is upstream of the SBU 820 (e.g., with respect to the majority direction of video stream flow in the system bus main channel). The FBU 810 is coupled to the SBU 820 via a cable 801. The cable 801 (and each of the cables 802, 803, and 804) may be a cable harness including conductors (e.g., twisted pair, coaxial, or optical fiber) for transmitting and / or receiving wake-up signals. In some examples, conductors reserved as "lanes" for video streaming in active mode may be used to transmit wake-up signals to adjacent bus units in power-save mode.
[0147] FBU 810 is coupled to a second bus unit (SBU) 820 via cable 801. SBU 820 is locally coupled to a touch display 826 (which may be similar to touch display 572) via cable 824, where SBU 820 is configured to disaggregate active mode video (by switch 822) and send the disaggregated stream to touch display 826. SBU 820 is coupled to a third bus unit (TBU) 830 via cable 802. TBU 830 is locally coupled to a touch display 836 (which may be similar to touch display 573) via cable 834, where TBU 830 is configured to disaggregate active mode video (by switch 832) and send the disaggregated stream to touch display 836. TBU 830 is coupled to a fourth bus unit 840 via cable 803. A fourth bus unit 840 is locally coupled to a touch display 846 via cable 844 (which may be similar to touch display 574), and the fourth bus unit 840 is configured to disaggregate active mode video (via switch 842) and send the disaggregated stream to touch display 846. The fourth bus unit 840 may be coupled to an adjacent (e.g., downstream) bus unit via cable 804 (where more downstream bus units may be chained in series along the system bus, and each of these additional downstream units may be locally coupled using similar circuitry).
[0148] In a first example scenario, a first bus unit (e.g., FBU 810) is configured to generate (e.g., transmit) a system wake-up signal 850 at a first time (e.g., time T0) in response to a user wake-up signal (such as generated by sensor 402 and head unit 401). The system wake-up signal 850 is generated at a first output (e.g., cable 801). A second bus unit (e.g., SBU 820) is configured to generate (e.g., transmit) a system wake-up signal 851 at a second time (e.g., time T1 following the first time) in response to the system wake-up signal 850. The system wake-up signal 851 is generated at a second output (e.g., cable 802). A third bus unit (e.g., TBU 830) is configured to generate (e.g., transmit) a system wake-up signal 852 at a third time (e.g., time T2 following the second time) in response to the system wake-up signal 851. The system wake-up signal 852 is generated at a third output (e.g., cable 803). A fourth bus unit (e.g., fourth bus unit 840) is configured to generate (e.g., transmit) a system wake-up signal 853 at a fourth time (e.g., time T3 following the third time) in response to the system wake-up signal 852. The system wake-up signal 853 is generated at a fourth output (e.g., cable 804).
[0149] 9 is a block diagram of a second example wake-up signal handling scenario in an example system. In this example, system 900 includes serially chained bus units such as 910, 920, 930, and 940. The bus units may be deserializers and / or disaggregators.
[0150] FBU 910 may be similar to multi-stream generator 410 and / or FBU 510. FBU 910 may be locally coupled to various devices (e.g., sensor 402 and head unit 401) and may generate a local wake-up signal in response to input generated by any coupled sensor. FBU 910 is upstream of SBU 920. FBU 910 is coupled to SBU 920 via cable 901. Cable 901 (and each of cables 902, 903, and 904) may be a cable harness including conductors for transmitting and / or receiving wake-up signals. In some examples, conductors reserved as "lanes" for video streaming in active mode may be used to transmit wake-up signals to adjacent bus units in power-save mode.
[0151] The FBU 910 is coupled to a second bus unit (SBU) 920 via cable 901. The SBU 920 is locally coupled to a touch display 926 (which may be similar to touch display 572) via cable 924, where the SBU 920 is configured to disaggregate active mode video (via switch 922) and send the disaggregated stream to the touch display 926. The SBU 920 is coupled to a third bus unit (TBU) 930 via cable 902. The TBU 930 is locally coupled to a touch display 936 (which may be similar to touch display 573) via cable 934, where the TBU 930 is configured to disaggregate active mode video (via switch 932) and send the disaggregated stream to the touch display 936. The TBU 930 is coupled to a fourth bus unit 940 via cable 903. A fourth bus unit 940 is locally coupled to a touch display 946 (which may be similar to touch display 574) via cable 944, and the fourth bus unit 940 is configured to disaggregate active mode video (via switch 942) and send the disaggregated stream to touch display 946. The fourth bus unit 940 may be coupled to an adjacent (e.g., downstream) bus unit via cable 904 (where more downstream bus units may be chained in series along the system bus, and these additional downstream units may each be locally coupled using similar circuitry).
[0152] In a second example scenario, a first bus unit (e.g., SBU 920) is configured to generate (e.g., transmit) a system wake-up signal 950 at a first time (e.g., time T0) in response to a user wake-up signal (such as generated by touch display 926). The system wake-up signal 950 is generated at a first output (e.g., cable 901). The first bus unit (e.g., SBU 920) is further configured to generate (e.g., transmit) a system wake-up signal 951 at a first time (e.g., time T0) in response to the user wake-up signal (such as generated by touch display 926). The system wake-up signal 951 is generated at a second output (e.g., cable 902). A second bus unit (e.g., TBU 930) is configured to generate (e.g., transmit) a system wake-up signal 952 at a second time (e.g., time T1 following the first time) in response to the system wake-up signal 951. A system wake-up signal 952 is generated at a third output (e.g., cable 903). A third bus unit (e.g., fourth bus unit 940) is configured to generate (e.g., transmit) a system wake-up signal 953 at a third time (e.g., time T2 following the second time) in response to the system wake-up signal 952. The system wake-up signal 953 is generated at a fourth output (e.g., cable 904).
[0153] 10 is a block diagram of a third example wake-up handling scenario in an example system. In this example, system 1000 includes serially chained bus units such as 1010, 1020, 1030, and 1040. The bus units may be deserializers and / or disaggregators.
[0154] The FBU 1010 may be similar to the multi-stream generator 410 and / or the FBU 510. The FBU 1010 may be locally coupled to various devices (e.g., the sensor 402 and the head unit 401) and may generate a local wake-up signal in response to input generated by any coupled sensor. The FBU 1010 is upstream of the SBU 1020. The FBU 1010 is coupled to the SBU 1020 via a cable 1001. The cable 1001 (and each of the cables 1002, 1003, and 1004) may be a cable harness including conductors for transmitting and / or receiving wake-up signals. In some examples, conductors reserved as "lanes" for video streaming in active mode may be used to transmit wake-up signals to adjacent bus units in power-save mode.
[0155] The FBU 1010 is coupled to a second bus unit (SBU) 1020 via cable 1001. The SBU 1020 is locally coupled to a touch display 1026 (which may be similar to touch display 572) via cable 1024, and the SBU 1020 is configured (by switch 1022) to disaggregate active mode video and send the disaggregated stream to the touch display 1026. The SBU 1020 is coupled to a third bus unit (TBU) 1030 via cable 1002. The TBU 1030 is locally coupled to a touch display 1036 (which may be similar to touch display 573) via cable 1034, and the TBU 1030 is configured (by switch 1032) to disaggregate active mode video and send the disaggregated stream to the touch display 1036. TBU 1030 is coupled to a fourth bus unit 1040 via cable 1003. The fourth bus unit 1040 is locally coupled to a touch display 1046 (which may be similar to touch display 574) via cable 1044, and the fourth bus unit 1040 is configured to disaggregate active mode video (via switch 1042) and send the disaggregated stream to touch display 1046. The fourth bus unit 1040 may be coupled to an adjacent (e.g., downstream) bus unit via cable 1004 (where more downstream bus units may be chained in series along the system bus, and these additional downstream units may each be locally coupled using similar circuitry).
[0156] In a third example scenario, a first bus unit (e.g., TBU 1030) is configured to generate (e.g., transmit) a system wake-up signal 1050 at a first time (e.g., time T0) in response to a user wake-up signal (such as generated by touch display 1036). The system wake-up signal 1050 is generated at a first output (e.g., cable 1002). The first bus unit (e.g., TBU 1030) is further configured to generate (e.g., transmit) a system wake-up signal 1051 at a first time (e.g., time T0) in response to the user wake-up signal (such as generated by touch display 1036). The system wake-up signal 1051 is generated at a second output (e.g., cable 1003). A second bus unit (e.g., SBU 1020) is configured to generate (e.g., transmit) a system wake-up signal 1052 at a second time (e.g., time T1 following the first time) in response to the system wake-up signal 1050. The system wake-up signal 1052 is generated at a third output (e.g., cable 1001). A third bus unit (e.g., fourth bus unit 1040) is configured to generate (e.g., transmit) a system wake-up signal 1053 at a second time (e.g., time T1 following the first time) in response to the system wake-up signal 1051. The system wake-up signal 1053 is generated at a fourth output (e.g., cable 1004).
[0157] 11 is a block diagram of another example system including at least one stream disaggregator adapted to selectively forward communications between serially chained devices. For example, system 1100 is an example system including source 1101, serializer 1110 (coupled to source 1101 via cable 1102), deserializer 1120 (e.g., locally coupled to local display 1104 via cable 1105), deserializer 1130 (e.g., locally coupled to local display 1106 via cable 1107), and deserializer 1140 (e.g., locally coupled to local display 1108 via cable 1109).
[0158] Cables 1111, 1112, and 1113 each include a physical medium over which a system protocol (e.g., a system bus) is implemented. The system protocol may be either unidirectional or bidirectional. In implementing a bidirectional system protocol, a first bidirectional serial link is established between serializer 1110 and deserializer 1120 over cable 1111 (which is coupled between serializer 1110 and deserializer 1120), a second bidirectional serial link is established between deserializer 1120 and deserializer 1130 over cable 1112 (which is coupled between deserializer 1120 and deserializer 1130), and a third bidirectional serial link is established between deserializer 1130 and deserializer 1140 over cable 1113 (which is coupled between deserializer 1130 and deserializer 1140).
[0159] The bidirectional serial link can be either asymmetric or symmetric. An example asymmetric bidirectional link includes an upstream rate (e.g., the rate for bit traffic toward the serializer 1110) of 165 Mbit / s and a downstream rate (e.g., the rate for bit traffic away from the serializer 1110) of 13 Gbit / s. This asymmetric rate allows high-resolution video to be sent downstream at a high bit rate (e.g., to send various high-resolution video streams to selected displays) and also enables a robust bidirectional system control and communication link between devices. The example asymmetric bidirectional link includes a symmetric data rate, so that data can be transferred at the full rate in either direction.
[0160] In one example, source 1101 is a source such as head unit 401. Source 1101 is coupled to serializer 1110 via cable 1102. Cable 1102 is configured to transmit at least one video stream according to a protocol such as MIPI CIS.
[0161] In this example, the serializer 1110 is a serializer such as the multi-stream generator 410. The serializer 1110 includes a transmitter 1190, such as the transmitter 390, adapted to transmit the multi-stream (which includes, for example, reformatting information for at least one video stream generated by the serializer 1110 and transmitted over the cable 1102), so that the deserializer 1120 can receive and process (e.g., process a portion of) the transmitted multi-stream.
[0162] In this example, the deserializer 1120 is a deserializer such as the stream deaggregator 420. The deserializer 1120 is coupled to the serializer 1110 via a cable 1111. The deserializer 1120 includes a receiver 1122 (such as the receiver 422) arranged to receive information transmitted by the transmitter 1190. The deserializer 1120 includes a transmitter 1126 (such as the stream forwarder 426) arranged to receive information received from the transmitter 1190. The cable 1111 is arranged to transmit a multi-stream output transmitted by the transmitter 1190 according to a protocol such as FPD-link IV. The deserializer 1120 is locally coupled to a local display 1104 (such as the local display 404) via a cable 1105. The cable 1105 is arranged to transmit a selected video stream according to a protocol such as eDP (Extended Display Protocol).
[0163] In this example, the deserializer 1130 is a deserializer such as the stream deaggregator 430. The deserializer 1130 is coupled to the deserializer 1120 via a cable 1112. The deserializer 1130 includes a receiver 1132 (such as the receiver 422) arranged to receive information transmitted by the transmitter 1126. The deserializer 1130 includes a transmitter 1136 (such as the stream forwarder 426) arranged to transmit information received from the transmitter 1126. The cable 1112 is arranged to transmit the multi-stream output transmitted by the transmitter 1126 according to a protocol such as FPD-link IV. The deserializer 1130 is locally coupled to a local display 1106 (such as the local display 406) via a cable 1107. The cable 1107 is arranged to transmit a selected video stream according to a protocol such as eDP.
[0164] In this example, the deserializer 1140 is a deserializer such as the stream deaggregator 440. The deserializer 1140 is coupled to the deserializer 1130 via a cable 1113. The deserializer 1140 includes a receiver 1142 (such as the receiver 422) arranged to receive information transmitted by the transmitter 1136. The deserializer 1140 optionally includes a transmitter 1146 (such as the stream forwarder 426) arranged to transmit information received from the transmitter 1136. The cable 1113 is arranged to transmit the multi-stream output transmitted by the transmitter 1136 according to a protocol such as FPD-link IV. The deserializer 1140 is locally coupled to a local display 1108 (such as the local display 408) via a cable 1109. The cable 1109 is arranged to transmit a selected video stream according to a protocol such as eDP.
[0165] For example, if the last deserializer in the chain only receives data intended for display on (e.g., addressed to) a respective local display locally coupled to the last deserializer, the last deserializer does not need to include a switch such as switch 427.
[0166] In at least one example system (e.g., a vehicle infotainment system), video data is generated from a head unit (e.g., source 1101), and the video data is communicated from the head unit to multiple display panels (e.g., local displays 1104, 1106, and 1108). Each local display may be configured to display information using a particular device (e.g., a HUD, an instrument cluster, a center instrument display, etc.), and each such device may be located in a separate physical location, with each such device connected in a serial chain (e.g., daisy-chained) such that communication with a device further along the chain is coupled through a device closer to the head unit (e.g., coupled through an intermediary device located between the head unit and the farthest device).
[0167] In contrast, communication between the head unit and the display panel in many comparable systems is coupled using a direct point-to-point connection, whereby communication is coupled through an intermediary device rather than over a common physical medium. Many such point-to-point communications are generally optimized for same-board (or same-chip) communication, where external wiring is not necessarily required. When using external wiring, the wiring used for direct connections can become challenging when the wiring is routed through limited spatial areas to devices (such as displays) located in different locations.
[0168] Costs, cable congestion, and various design challenges can be alleviated by approaches using various examples described herein. As shown in FIG. 11 , a head unit is adapted to send and receive information for controlling displays connected in a serial chain. Such information can include transmission confirmations, touch control operation status, and system configuration settings for various devices. Such information can be communicated (e.g., sent and received) using a proprietary protocol (e.g., eDP, I2C, SPI, UART, and / or GPIO protocol) selected to communicate with a particular device. Information (e.g., management, control, and / or configuration information) encoded using the proprietary protocol is received by a serializer 1110. The serializer 1110 can re-encode the received information using a subsequent protocol (e.g., different from the proprietary protocol used by the head unit, which can be a high-speed protocol such as FPD-link III or FPD-link IV). The serializer 1110 can then transmit the encoded information over the serially coupled cables (e.g., 1111, 1112, and 1113). As described with reference to FIG. 12, a deserializer (e.g., 1120, 1130, or 1140) that receives the later-encoded information may decode and re-encode the later-encoded information for transmission to a local device (e.g., a display panel).
[0169] 12 is a block diagram illustrating example communications through an example system including at least one stream disaggregator adapted to selectively forward communications between serially chained devices. For example, system 1200 is an example system including source 1101 (e.g., a head unit), serializer 1110 (e.g., a multi-stream generator coupled to source 1101 via cable 1102), deserializer 1120 (e.g., a stream deaggregator locally coupled to local display 1104 via cable 1105), deserializer 1130 (e.g., a stream deaggregator locally coupled to local display 1106 via cable 1107), and deserializer 1140 (e.g., a stream deaggregator locally coupled to local display 1108 via cable 1109). As shown in FIG. 15A, cable 1102 includes a separate physical medium for each link (which may be included in a common cable or a combination of separate cables).
[0170] In system 1200, a first bidirectional serial link is established between serializer 1110 and deserializer 1120 over cable 1111 (which is coupled between serializer 1110 and deserializer 1120), and a second bidirectional serial link is established between deserializer 1120. System 1200 illustrates example downstream communication over both the first and second bidirectional serial links.
[0171] The first link includes communication 1210 that is encoded (using a first proprietary protocol) and indicated by source 1101 for transmission to local display 1104. Communication 1210 is sent by source 1101 to serializer 1110 via cable 1102 (e.g., including the physical medium of the first local bus). Serializer 1110 encodes information from communication 1210 (using a subsequent protocol different from the first proprietary protocol) and transmits it as communication 1212 to deserializer 1120 via cable 1111 (which includes the physical medium of the system bus). In response to the indication that communication 1210 is for transmission to local display 1104, deserializer 1120 encodes information from communication 1212 (e.g., using the first proprietary protocol) and transmits it as communication 1214 via cable 1105 to local display 1104.
[0172] The second link includes communication 1220, which is encoded (using a second proprietary protocol) and indicated by source 1101 for transmission to local display 1106. Communication 1220 is sent by source 1101 to serializer 1110 via cable 1102 (which may include, for example, the physical medium of a second local bus). Serializer 1110 encodes information from communication 1220 (using a subsequent protocol different from the second proprietary protocol) and transmits it as communication 1222 to deserializer 1120 via cable 1111 (which may include the physical medium of a system bus). In response to the indication that communication 1220 is for transmission to local display 1106, deserializer 1120 transmits the information from communication 1222 as communication 1224 via cable 1112 to deserializer 1130. In response to an indication that communication 1210 is for transmission to local display 1106, deserializer 1130 encodes the information from communication 1224 (e.g., using a first proprietary protocol) and transmits it as communication 1226 via cable 1107 to local display 1106.
[0173] In various examples, a system bus (which includes the physical media of, for example, cables 1111, 1112, and 1113) is configured to carry control information bidirectionally (e.g., upstream and downstream). For example, control information (e.g., generated by a head unit or local display using a local protocol) may be virtualized (e.g., logically switched instead of fixed point-to-point wired routing) by a serializer (e.g., in the downstream direction) or a deserializer (e.g., in the upstream direction) and transmitted across the system bus using the system protocol (e.g., across the system bus in a path toward the indicated destination). In the upstream direction, serializer 1110 converts the control information from the system bus protocol into a local protocol compatible with the controller associated with the indicated destination of the control information (e.g., master C0 in FIG. 15A). In the downstream direction, a deserializer (e.g., 1120, 1130, or 1140) converts the control information from the system bus protocol into a local protocol compatible with the respective local display (e.g., local display 1104, 1106, or 1108) associated with the intended destination of the control information.
[0174] In one example, a first link (which may include, for example, communications 1210, 1212, and 1214) is established between a first controller (e.g., a network master) included in source 1101 and a first reciprocating controller (e.g., a network slave) included in local display 1104, and a second link (which may include, for example, communications 1220, 1222, 1224, and 1226) is established between a second controller included in source 1101 and a reciprocating controller included in local display 1106. Each controller / reciprocating controller pair may be configured using a master-slave and / or peer-to-peer relationship.
[0175] In this example, the intermediate portions (e.g., communication 1212 of the first link, and communications 1222 and 1224) are virtualized (e.g., using a different protocol than the beginning and ending portions of each link) and transmitted in either the downstream direction (e.g., as forward channel data packets) or the upstream direction (e.g., as back channel data packets).
[0176] The serializer 1110 acts as a virtual slave (e.g., emulates or virtualizes a virtual slave) to a master included in the source 1101. Also, the deserializer (e.g., 1120) acts as a virtual master to a local slave included in a local device (e.g., 1104) that is locally coupled to the deserializer (see, e.g., FIGS. 15A and 15B).
[0177] For communications transmitted downstream, serializer 1110 receives (from the respective master) information indicated for transmission to a slave included in a particular device. Serializer 1110 generates (in response to the information received from the respective master) a system transmission (which may include, for example, a packet) that is coupled by the system bus to a deserializer (e.g., deserializer 1120) that is locally coupled to the indicated slave (e.g., included in local display 1104). The locally coupled deserializer transmits the local transmission to the indicated slave (in response to the system transmission and an indication of the slave to which the transmission is to be sent), so that the deserializer (for example) emulates the respective master of source 1101 to the slave (e.g., included in local display 1104) locally coupled to the deserializer.
[0178] For communications transmitted in the upstream direction, a particular deserializer (e.g., 1120) receives information from a local slave included in each locally coupled device (e.g., local display 1104). The particular deserializer generates a system transmission (which may include, for example, a packet) in response to the information received from the local slave, where the system transmission indicates the local slave's respective master. Serializer 1110 receives this system transmission and generates a local transmission that is coupled to the indicated respective master included in source 1101, so that (for example) serializer 1110 emulates the respective slave locally coupled to the particular deserializer.
[0179] Information sent (e.g., combined) from the master to each slave (or from a slave to each master) may be encapsulated as packets in a system transmission. Packets generated by (for example) different slaves may be ordered in time (e.g., by transmitting packets in their respective time slots), as described below with reference to FIG. 13.
[0180] 13 is a timing diagram illustrating an example protocol for sequencing example communications through an example system including at least one stream disaggregator adapted to selectively forward communications between serially chained devices. Protocol 1300 is an example protocol for an example system including at least one stream disaggregator adapted to selectively forward communications (e.g., packets) between serially chained devices. Communications are selectively forwarded between two entities having a common link (e.g., a logical network connection) over which information (including control information) is transmitted and / or exchanged. Such forwarded information may include information generated in response to user input, information adapted to configure the example system into a particular configuration, menu and user interface information, status information for device (e.g., display device) performance, etc.
[0181] Protocol 1300 includes aggregated control system frames 1310, which include a first set of time-ordered frames to be forwarded downstream (e.g., a downstream frame set beginning with frame 1320) and a second set of time-ordered frames to be forwarded upstream (e.g., an upstream frame set beginning with frame 1330). A frame (e.g., frame 1320) may include one or more packets. In one example, a frame is indicated by a time slot (e.g., a slot) in which at least one packet appears.
[0182] In various examples, the time slots all have the same duration, so that (for example) the destination of the selected frame may be indicated by the lane (e.g., physical medium) and frame order, and / or the time the frame is active (e.g., relative to the start of transmission of the aggregated control system frame 1310).
[0183] In at least one example, control system frames 1310 are transmitted and / or received by a serializer and at least one deserializer at a rate determined in response to an aggregate frame repetition period 1350 (e.g., 16 milliseconds). Generally, downstream frame sets are generated by a serializer and forwarded to the next adjacent downstream device in the serial chain of deserializers every aggregate frame period (e.g., CSF0, CSF1, and CSF2). For upstream frame sets, generally, each serializer is configured to generate local frames in response to locally coupled devices (e.g., devices not coupled through a system bus), and thus each serializer is configured to generate upstream frame sets in response to locally generated frames and in response to frame sets received from downstream deserializers (which may have been previously generated in response to frames locally generated by adjacent downstream deserializers and frame sets received from further downstream deserializers).
[0184] In at least one embodiment, an updated (e.g., modified) frame is propagated to an adjacent device (e.g., a deserializer or serializer) upstream or downstream of the high-speed system bus stream 1340 in the serially chained system bus every aggregate frame repetition period 1350. Although two lanes (lane 0 and lane 1) are shown reserved for transmission of aggregated control system frames 1310, additional lanes (e.g., additional pairs of lanes) may be used, for example, to increase the throughput of supervisory information (e.g., control, monitoring, maintenance, status, user interface control object, and configuration information).
[0185] In some examples, the destination of a packet within a frame may be determined in response to at least one of a source field "S," a destination field "D," and a payload field "P." In at least one example, the S field is an indication of a source network address, the D field is an indication of a destination network address, and the P field is an aggregation of data (e.g., information) to be transferred. For example, the P field may include data that is uniquely encoded using a local bus protocol (e.g., I2C, GPIO, or SPI).
[0186] In some examples, the directionality (e.g., upstream or downstream) may be determined in response to the lane on which the frame is transmitted. For example, lane 0 may be reserved for downstream traffic, and lane 1 may be reserved for upstream traffic. The destination of the frame (and at least one packet therein) may be determined in response to the directionality of the lane, the lane number, and / or the time the packet is transmitted. The serializer may determine the destination of the frame (in the downstream direction) depending on the physical medium (e.g., the wire connected from the source network entity to the serializer's port) so that information from the source network entity can be forwarded to a corresponding destination network entity (e.g., a reciprocal destination network entity).
[0187] The downstream frame set of time-ordered frames in the aggregated control system frame 1310 is transmitted in lane 0 and includes the first frame 1320 in slot 1, the second frame 1322 in slot 2, the third frame 1324 in slot 3, and so on through the last frame 1326 in slot N (where N is the number of slots in the lane of the control system frame 1310). The smaller the number N, the fewer the number of slots, resulting in a shorter propagation time to travel across the high-speed system bus.
[0188] The upstream frame set of time-ordered frames in the aggregated control system frame 1310 is transmitted in lane 1 and includes the first frame 1330 in slot 1, the second frame 1332 in slot 2, the third frame 1334 in slot 3, and so on, through the last frame 1336 in slot N (where N is the number of slots in the lane of the control system frame 1310).
[0189] In at least one example, control system frame 1310 includes information for controlling downstream devices. In one such example, frame 1320 may be transmitted by a serializer to configure a first display to display the video stream in response to parameters included in frame 1320. Lanes of high-speed system bus stream 1340 that are not reserved at a particular time (e.g., not reserved for aggregated control system frame 1310) may be used to stream video data to the first display, so that the display can display the video stream according to the parameters included in frame 1320.
[0190] In another such example, frame 1332 may be transmitted by a deserializer locally coupled to the second display. Frame 1332 may be generated in response to a user action received by a user interface of the second display. Frame 1332 is received by a serializer and routed by the serializer to a network entity (e.g., a master) that controls the video stream being sent to the second display. The network entity controlling the display of the video stream on the second display may terminate the video stream in response to transmission of frame 1332 (which, for example, indicates a user's intent to stop displaying the video stream). User interaction with the user interface is described below with reference to FIG. 14.
[0191] 14 is a block diagram illustrating example communications through an example system including two chains chained in series. For example, system 1400 is an example system including a head unit 1410 (e.g., a video stream source unit), a chain base unit 1420 (e.g., a serializer coupled to head unit 1410), a first bi-directional chain of chained units 1430, and a second bi-directional chain of chained units 1440. The first bi-directional chain of chained units includes a deserializer 1432 (Des0, locally coupled to touchscreen display 1436 with a physical address of 0xB) and a deserializer 1434 (Desl, locally coupled to touchscreen display 1438 with a physical address of 0xA). The second bidirectional chain of chained units includes deserializer 1442 (Des2, which is locally coupled to touchscreen display 1446 with a physical address of 0xD) and deserializer 1444 (Des3, which is locally coupled to touchscreen display 1448 with a physical address of 0xC).
[0192] The head unit 1410 includes multiple network entities (e.g., masters), each coupled to the chain base unit 1420 via a local bus, each including a local bus protocol (eDP, I2C, GPIO, etc.) that may be the same as or different from the local bus protocols of the other ones of the local buses. As described below with reference to Figures 15A, 15B, 16, and 17, each local bus is associated with a corresponding upstream port (e.g., an upstream-facing port) of the chain base unit 1420.
[0193] The chain base unit 1420 may be a serializer configured to generate multiple streams (e.g., video multiple streams) at a first downstream port (e.g., a downstream port DOUT<0,1> and a second downstream port DOUT<2,3> of the chain base unit 1420) in response to video streams received by at least two of the upstream ports of the chain base unit 1420. The first downstream port is the base of a first bi-directional chain 1430 of chained units, and the second downstream port is the base of a second bi-directional chain 1440 of chained units.
[0194] Each deserializer / touch panel display pair may be coupled using first and second local buses. For example, an I2C bus may be adapted to transmit video streaming data to the touch screen display, and a GPIO bus may be adapted to convey information (e.g., control information including gestures received by the touch screen display) bidirectionally.
[0195] 15A and 15B are block diagrams illustrating associated pairs of virtualized network entities in an example system including at least one translation switch adapted to selectively forward communications between serially chained devices. System 1500 is an exemplary system including source 1101, chain base unit 1501 (e.g., serializer 1110), chained unit 1502 (which includes, for example, deserializer 1120 locally coupled to local display 1104 via cable 1105), chained unit 1503 (which includes, for example, deserializer 1130 locally coupled to local display 1106 via cable 1107), chained unit 1504 (which includes, for example, deserializer 1140 locally coupled to local display 1108 via cable 1109), and chained unit 1505 (which includes, for example, deserializer 1550 locally coupled to local display 1510 via cable 1511). The chain base unit 1501 and at least selected ones of the deserializers 1120, 1130, 1140, and 1550 are adapted to virtualize, for example, communications coupled to and from local devices (where, for example, each local device is locally coupled to a respective deserializer) via the first and second ports (e.g., by routing the communications through a system bus including deserializers serially coupled by the system bus).
[0196] In one example, source 1101 is a head unit adapted to generate video information for display on local display 1104, local display 1106, local display 1108, and local display 1510. In this example, source 1101 is adapted to generate a video stream for each local display in response to supervisory communications (which may include, for example, commands) from a respective downstream node (e.g., a local display, which may include a user interface such as a touchscreen adapted to receive commands from a user). In this example, the supervisory communications are transmitted (e.g., transmitted bidirectionally) over a system bus (which may, for example, serially couple a deserializer).
[0197] Source 1101 includes four network entities configured as Master C0, Master C1, Master C2, and Master C3, respectively. In this example, the four network entities are configured to include a networking method using the I2C protocol. Other examples may include other protocols (such as GPIO).
[0198] Chain base unit 1501 includes four network entities configured as slave S0, slave S1, slave S2, and slave S3, respectively. Each slave is coupled to a respective slave via a respective physical medium, such that the master and each slave are configured in a master-slave relationship (e.g., as a master / slave pair). Each master / slave pair (e.g., one of C0 / S0, C1 / S1, C2 / S2, or C3 / S3) is configured to send and receive communications therebetween (e.g., point-to-point over respective twisted pairs included in cable 1102) according to a compatible (e.g., common) protocol. Each master is located upstream of a respective slave (and therefore each slave is downstream of a respective master).
[0199] Chain base unit 1501 further includes a translation controller 1516. Translation controller 1516 is a translator including upstream ports, each coupled to a respective slave and adapted to receive communications (e.g., frames) from the respective slave. In one example, the translator includes a first upstream port coupled to a first slave, a second upstream port coupled to a second slave, and an output coupled to a first downstream port adapted to be coupled to a first system bus. The translator is adapted to generate a first downstream frame (e.g., to be transmitted downstream) in response to a frame received via the first upstream port and is configured to generate a second downstream frame in response to a frame received via the second upstream port. The translator is configured to generate a downstream aggregate frame in response to the first downstream frame and the second downstream frame and to initiate transmission of the downstream aggregate frame at the first downstream port.
[0200] In this example, the translator is configured to associate the first downstream frame with a first downstream node and to associate the second downstream frame with a second downstream node, so that (for example) the deserializer can correctly switch the first downstream frame to the first downstream node (e.g., a respective downstream node) and correctly switch the second downstream frame to a second downstream node (e.g., a respective downstream node different from the first downstream node). In various examples, the first downstream node is associated with the first downstream frame by an address of the first downstream node included in the first downstream frame. In various examples, the first downstream node is associated with the first downstream frame by a transmission order of the first downstream frame within the downstream aggregate frame.
[0201] The translator is adapted to receive an upstream aggregate frame including a first upstream frame and a second upstream frame. The first upstream frame may be generated in response to a first downstream node (e.g., in response to a transmission from the first downstream node), the second upstream frame may be generated in response to a second downstream node, and the first upstream frame and the second upstream frame may be transmitted in tandem as part of the upstream aggregate frame. The translator is further configured to generate a first upstream transmission in response to the first upstream frame (e.g., the first upstream transmission may be transmitted to a first master via a first upstream port), and the translator is configured to generate a second upstream transmission in response to the second upstream frame (e.g., the second upstream transmission may be transmitted to a second master via a second upstream port).
[0202] Chain base unit 1501 further includes downstream ports, such as downstream port BCC0, downstream port BCC1, downstream port BCC2, and downstream port BCC3. In one example, the downstream ports are coupled to a first system bus via cable 1111, and downstream port BCC1 is coupled to a second system bus via cable 1528. In at least one example, the same physical device may be coupled to the first system bus and the second system bus simultaneously, with a first network connection with a first slave of the same physical device established across a portion of the first system bus and a second network connection with a second slave of the same physical device established across a portion of the second system bus.
[0203] Chain base unit 1501 further includes registers 1515 that, in at least one example, can be programmed to indicate a system configuration. For example, registers 1515 can be programmed to store system configuration instructions to indicate the type of protocol used by each network connection, the selected bus speed, and the number, type, and physical locations (e.g., addresses) of devices coupled to one or more system buses.
[0204] The chain base unit 1501 further includes a table 1517 that, in at least one example, can be programmed with translation values to associate physical devices for virtualization. For example, the translation values can indicate an association between two (and between three or more) of the following: a virtual connection, paired network entities, frame ordering for upstream and downstream aggregate frames, and device-specific protocol translation (e.g., translation of data and / or commands to and from any device).
[0205] The downstream port BCC0 is the base point (e.g., the upstream end) of the first system bus that chains (e.g., serially couples) the chained units of the chain of chained units 1501. The upstream port 1521 of the chain connection unit 1502 is coupled to the downstream port BCC0 via cable 1111, the upstream port 1531 of the chain connection unit 1503 is coupled to the downstream port 1522 (of the chain connection unit 1502) via cable 1112, the upstream port 1541 of the chain connection unit 1504 is coupled to the downstream port 1532 (of the chain connection unit 1503) via cable 1113, and the upstream port 1551 of the chain connection unit 1505 is coupled to the downstream port 1542 (of the chain connection unit 1504) via cable 1115. The first system bus extends from downstream port BCC0 and is serially chained (e.g., daisy-chained) via chain connection unit 1502, chain connection unit 1503, chain connection unit 1504, and chain connection unit 1505. The first system bus can be expanded (e.g., expanded downstream) by coupling additional chain connection units (not shown) to downstream port 1552 of chain connection unit 1505.
[0206] In at least one example, the first system bus is a bidirectional bus with data transmitted at a higher rate in a downstream direction and at a lower rate in an upstream direction.
[0207] In at least one example, system 1500 includes (e.g., optionally includes) a second system bus configured to transmit data in an upstream direction (e.g., transmit unidirectionally), and the first system bus is configured to transmit data in a downstream direction (e.g., transmit unidirectionally). Downstream port BCC1 is the origin (e.g., upstream end) of the second system bus that chains (e.g., serially couples) the chained units of the chain of chained units 1510. The upstream port 1523 of the chain connection unit 1502 is coupled to the downstream port BCC1 via cable 1528, the upstream port 1533 of the chain connection unit 1503 is coupled to the downstream port 1524 (of the chain connection unit 1502) via cable 1538, the upstream port 1543 of the chain connection unit 1504 is coupled to the downstream port 1534 (of the chain connection unit 1503) via cable 1548, and the upstream port 1553 of the chain connection unit 1505 is coupled to the downstream port 1544 (of the chain connection unit 1504) via cable 1558. The second system bus extends from the downstream port BCC1 and is chained (e.g., daisy-chained) in series via the chain connection unit 1502, the chain connection unit 1503, the chain connection unit 1504, and the chain connection unit 1505. The second system bus may be expanded (eg, expanded downstream) by coupling additional chain connection units (not shown) to downstream port 1554 of chain connection unit 1505.
[0208] The chaining unit 1502 includes a local display 1104 and a deserializer 1120. The local display 1104 includes a slave T0 that is locally coupled via cable 1105 to a master D0 included in the deserializer 1120. A network connection is established (e.g., using the I2C protocol) between the deserializer 1120 (which is configured as the master D0 for the local display 1104) and the local display (which is configured as the slave T0 for the deserializer 1120). The chaining unit 1502 further includes a register 1525 (e.g., REGS, configured to store configuration information), a translation switch 1526 (e.g., XLTG SW, configured to selectively switch communications indicated as relating to the local display 1104), and a table 1527 (e.g., TBL, configured to store virtualization information such as address articulation lookups and base addresses, indexes, and other indicators used in virtualization techniques). The translation switch 1526 is configured to selectively couple communications between an upstream master / slave pair (e.g., C0 / S0) and a downstream master / slave pair (e.g., D0 / T0) so that the downstream slave (e.g., slave T0) is configured as a virtual slave (e.g., with respect to upstream slave S0) and the downstream master (e.g., master D0) is configured as a virtual master (e.g., with respect to master C0).
[0209] Chaining unit 1503 includes a local display 1106 and a deserializer 1130. Local display 1106 includes a slave T1 that is locally coupled via cable 1107 to a master D1 included in deserializer 1130. A network connection is established between deserializer 1130 (which is configured as master D1 with respect to local display 1106) and local display (which is configured as slave T1 with respect to deserializer 1130). Chaining unit 1503 further includes register 1535, translation switch 1536, and table 1537. The translation switch 1536 is configured to selectively couple communications between an upstream master / slave pair (e.g., C1 / S1) and a downstream master / slave pair (e.g., D1 / T1) so that the downstream slave (e.g., slave T1) is configured as a virtual slave (e.g., with respect to upstream slave S1) and the downstream master (e.g., master D1) is configured as a virtual master (e.g., with respect to master C1).
[0210] The chaining unit 1504 includes a local display 1108 and a deserializer 1140. The local display 1108 includes a slave T2 that is locally coupled via cable 1109 to a master D2 included in the deserializer 1140. A network connection is established between the deserializer 1140 (which is configured as a master D2 for the local display 1108) and the local display (which is configured as a slave T2 for the deserializer 1140). The chaining unit 1504 further includes a register 1545, a translation switch 1546, and a table 1547. The translation switch 1546 is configured to selectively couple communications between an upstream master / slave pair (e.g., C2 / S2) and a downstream master / slave pair (e.g., D2 / T2) so that the downstream slave (e.g., slave T2) is configured as a virtual slave (e.g., with respect to upstream slave S2) and the downstream master (e.g., master D2) is configured as a virtual master (e.g., with respect to master C2).
[0211] The chaining unit 1505 includes a local display 1510 and a deserializer 1550. The local display 1510 includes a slave T3 that is locally coupled via cable 1511 to a master D3 included in the deserializer 1550. A network connection is established between the deserializer 1550 (which is configured as a master D3 to the local display 1108) and the local display (which is configured as a slave T3 to the deserializer 1550). The chaining unit 1505 further includes a register 1555, a translation switch 1556, and a table 1557. The translation switch 1556 is configured to selectively couple communications between an upstream master / slave pair (e.g., C3 / S3) and a downstream master / slave pair (e.g., D3 / T3) so that the downstream slave (e.g., slave T3) is configured as a virtual slave (e.g., with respect to upstream slave S3) and the downstream master (e.g., master D3) is configured as a virtual master (e.g., with respect to master C3).
[0212] 16 is a schematic diagram illustrating external selection of associated pairs of virtualized network entities in an example system adapted to selectively forward communications to serially chained devices. System 1600 is an example system including a head unit 1601 and a chain base unit 1610 (e.g., serializer 1110).
[0213] In one example, head unit 1601 is adapted to generate video information for display on various local displays (e.g., local display 1104, local display 1106, and local display 1108). The local displays are, for example, not "local" to head unit 1601 but local to their respective deserializers. The local displays are virtualized by a system bus coupled to replicate local communications between a local host controller (e.g., included in head unit 1601) and each slave (e.g., included in chain base unit 1610).
[0214] In this example, head unit 1601 includes host controller 1602, which includes master 1603 (I2C master 0), host controller 1604, which includes master 1605 (I2C master 1), host controller 1606, which includes master 1607 (I2C master 2), and host controller 1608, which includes master 1609 (I2C master 3). Each host controller and each master is coupled to chain base unit 1610 by a respective serial bus, and each line of the serial bus may be coupled through an open-drain transistor adapted to cooperate with a respective pull-up resistor to generate an output voltage.
[0215] The I2C bus coupled to master 1603 includes a data line (SDA0) and a clock line (SCL0), which are collectively designated as I2C0 in chain base unit 1610. The I2C bus coupled to master 1605 includes a data line (SDA1) and a clock line (SCL1), which are collectively designated as I2C1 in chain base unit 1610. The I2C bus coupled to master 1607 includes a data line (SDA2) and a clock line (SCL2), which are collectively designated as I2C2 in chain base unit 1610. The I2C bus coupled to master 1609 includes a data line (SDA3) and a clock line (SCL3), which are collectively designated as I2C3 in chain base unit 1610.
[0216] Chain base unit 1610 further includes a multiple-input / multiple-output (MIMO) switch 1629 configured (e.g., in response to external voltage divider 1621) to associate any master in head unit 1601 with any slave in chain base unit 1610. For example, the MIMO switch includes multiplexer 1622, multiplexer 1624, multiplexer 1626, and multiplexer 1628. Multiplexer 1622 is coupled to inputs I2C0, I2C1, I2C2, and I2C3 and is configured (in response to signal reg_port0_conn) to selectively route a selected one of these inputs to slave 1632 (I2C slave 0). Multiplexer 1624 is coupled to inputs I2C0, I2C1, I2C2, and I2C3 and configured (in response to signal reg_port1_conn) to selectively direct a selected one of these inputs to slave 1634 (I2C slave 1). Multiplexer 1626 is coupled to inputs I2C0, I2C1, I2C2, and I2C3 and configured (in response to signal reg_port2_conn) to selectively direct a selected one of these inputs to slave 1636 (I2C slave 2). Multiplexer 1628 is coupled to inputs I2C0, I2C1, I2C2, and I2C3 and configured (in response to signal reg_port3_conn) to selectively direct a selected one of these inputs to slave 1638 (I2C slave 3).
[0217] Chain base unit 1610 includes a decoder 1620 configured to program the selection of each multiplexer, so that each slave coupled to the output of the multiplexer is coupled to a selected master of head unit 1601. The decoder outputs selected values of the reg_port0_conn, reg_port1_conn, reg_port2_conn, and reg_port3_conn signals in response to an input-decoder voltage (ID[x]). Voltage divider 1621 may be external to the semiconductor substrate containing system 1600, so that the input-decoder voltages may be generated in response to external transistors selected and installed (for example) by a system integrator. Decoder 1620 may include an analog-to-digital converter (not shown) and a pre-programmed lookup table (not shown), so that values output by the analog-to-digital converter are coupled as inputs to the lookup table configured to output a selected set of selected values, so that each slave is selectively coupled to a respective master (and vice versa) in response to user selections for the configuration of system 1600.
[0218] 17A and 17B are schematic diagrams illustrating a serializer configured to associate a pair of virtualized network entities in an example system adapted to selectively forward communications between serially chained devices. Serializer 1700 is an example serializer including a substrate 1701 (e.g., a semiconductor substrate or a printed wiring board substrate), a local interface 1710 (e.g., configured to manage local upstream communications according to local bus 1702 and local bus 1704), a system interface 1750 (e.g., configured to manage system downstream communications according to at least one of system bus 1706 and system bus 1708), and a chain base unit controller 1780 (e.g., configured to control communications between local interface 1710 and system interface 1750).
[0219] Local interface 1710 includes local bus controller 1720 and local bus controller 1730. More such local bus controllers may be included in local interface 1710, and each included local bus controller may be configured as a network entity for a respective local bus coupled to the local bus controller.
[0220] Local bus controller 1720 includes downstream data buffer 1725 and upstream data buffer 1726, head protocol arbiter 1727, and upstream port 1728. Upstream port 1728 includes tri-state driver 1721 (e.g., coupled to selectively couple signal line SDA0 to the input of downstream data buffer 1725), tri-state driver 1722 (e.g., coupled to selectively couple the output of upstream data buffer 1726 to signal line SDA0), tri-state driver 1723 (e.g., coupled to selectively couple signal line SCLO to the input of head protocol arbiter 1727), and tri-state driver 1724 (e.g., coupled to selectively couple the output of head protocol arbiter 1727 to signal line SCLO). The upstream port 1728 is configured to transmit in response to a first value of the signal R / W0, and the upstream port 1728 is configured to receive in response to a second value of the signal R / W0.
[0221] Downstream data buffer 1725 is configured to store data for downstream transmission received over signal line SDA0 in response to a clock received over signal line SCL0. Downstream data buffer 1725 is configured to output the data stored therein in response to a clock received from chain base unit controller 1780 over signal line CLOCK3.
[0222] The upstream data buffer 1726 is adapted to store data indicated by an upstream transmission received from a downstream node, where the upstream transmission includes a first frame of an upstream aggregate frame, the stored data being stored in response to a clock received over signal line CLOCK2 from the chain base unit controller 1780. The upstream data buffer 1726 is configured to output the data stored therein in response to a clock received from the head protocol arbiter 1727.
[0223] The head protocol arbiter 1727 is configured to control the directionality (e.g., upstream or downstream data flow) of the upstream port 1728 in response to one of a signal on the local bus 1702 (e.g., signal SCL0), a system clock (including signals derived in response to the system clock), and a mode control line (e.g., received via signal line STATUS0).
[0224] In one example, the local bus controller 1720 is a first local controller having a first upstream port adapted to be coupled to a first local bus and adapted to receive a first local bus transmission via the first local bus, and the first local controller is configured to transmit the first upstream transmission via the first upstream port.
[0225] Local bus controller 1730 includes downstream data buffer 1735 and upstream data buffer 1736, head protocol arbiter 1737, and upstream port 1738. Upstream port 1738 includes tri-state driver 1731 (e.g., coupled to selectively couple signal line SDA1 to an input of downstream data buffer 1735), tri-state driver 1732 (e.g., coupled to selectively couple an output of upstream data buffer 1736 to signal line SDA1), tri-state driver 1733 (e.g., coupled to selectively couple signal line SCL1 to an input of head protocol arbiter 1737), and tri-state driver 1734 (e.g., coupled to selectively couple an output of head protocol arbiter 1737 to signal line SCL1). The upstream port 1738 is configured to transmit in response to a first value of the signal R / W1, and the upstream port 1738 is configured to receive in response to a second value of the signal R / W1.
[0226] Downstream data buffer 1735 is configured to store data for downstream transmission received over signal line SDA1 in response to a clock received over signal line SCL1, and to output the data stored therein in response to a clock received from chain base unit controller 1780 over signal line CLOCK1.
[0227] The upstream data buffer 1736 is adapted to store data indicated by an upstream transmission received from a downstream node, where the upstream transmission includes a second frame of an upstream aggregate frame, the stored data being stored in response to a clock received over signal line CLOCK0 from the chain base unit controller 1780. The upstream data buffer 1736 is configured to output the data stored therein in response to a clock received from the head protocol arbiter 1737.
[0228] The head protocol arbiter 1737 is configured to control the directionality (e.g., upstream or downstream data flow) of the upstream port 1738 in response to one of a signal on the local bus 1704 (e.g., signal SCL1), a system clock (including signals derived in response to the system clock), and a mode control line (e.g., received via signal line STATUS1).
[0229] In one example, the local bus controller 1730 is a second local controller having a second upstream port adapted to be coupled to a second local bus and adapted to receive second local bus transmissions via the second local bus, and the second local controller is configured to transmit the second upstream transmissions via the second upstream port.
[0230] This example may further include a first buffer having an input coupled to the first upstream port and an output coupled to the downstream port, the first buffer configured to store a first indication of data (e.g., a data payload) in response to the first local bus transmission, and the system bus controller configured to generate a first downstream frame in response to the first indication of data.
[0231] This example may further include a second buffer having an input coupled to the second upstream port and an output coupled to the downstream port, the second buffer configured to store a second instruction of data in response to the first local bus transmission, and the system bus controller configured to generate a first downstream frame in response to the second instruction of data.
[0232] This example may further include a third buffer having an input coupled to the downstream port and an output coupled to the first upstream port, the third buffer configured to generate a third instruction of data, and the system bus controller configured to generate the first upstream transmission in response to the third instruction of data.
[0233] This example may further include a fourth buffer having an input coupled to the downstream port and an output coupled to the second upstream port, the fourth buffer configured to generate a fourth instruction of data in response to the second upstream frame, and the system bus controller configured to generate a second upstream transmission in response to the fourth instruction of data.
[0234] System interface 1750 includes system bus controller 1760 and optional system bus controller 1770. More (or fewer) such system bus controllers may be included in system interface 1750. System bus controller 1760 is adapted to control a first system bus, such as system bus 1706. In one example, system bus 1706 may include one or more twisted pairs CB0 coupled to the output of tri-state driver 1765 and the input of tri-state driver 1766. If multiple twisted pairs CB0 are present, the system bus controller component may be instantiated multiple times, so that (for example) there is a pair of drivers (e.g., tri-state driver 1765 and tri-state driver 1766) for each lane of system bus 1706.
[0235] System bus controller 1760 includes input multiplexer 1761, output multiplexer 1762, chain protocol translator 1763, head protocol translator 1764, and downstream port 1768 (which includes tri-state driver 1765 and tri-state driver 1766).
[0236] Input multiplexer 1761 includes input A (e.g., coupled to a data output of downstream data buffer 1725), input B (e.g., coupled to a data output of downstream data buffer 1735), input S (e.g., coupled to output SELECT0 of chain base unit controller 1780), input E (e.g., coupled to output ENABLE0 of chain base unit controller 1780), and output O (e.g., coupled to an input of chain protocol translator 1763). Input multiplexer 1761 is coupled to select input A or input B in response to a frame selector (e.g., timer 1782, which is included in chain base unit controller 1780) so that data from either local bus controller 1720 or local bus controller 1730 (for example) can be transmitted in a time slot associated with the ordering of the frame indicated for transmission to the respective downstream node (e.g., each downstream node is adapted to be coupled to chain protocol translator 1763 via downstream port 1768).
[0237] Chain protocol translator 1763 includes a data input (coupled to output O of input multiplexer 1761), a system clock input (coupled to receive a system clock or a derivative thereof), and a data output (e.g., coupled to an input of downstream port 1768). In at least one example, chain protocol translator 1763 is configured to output data in accordance with the protocol of system bus 1706.
[0238] In one example, the chain protocol translator 1763 is a translator having inputs coupled to a first upstream port and a second upstream port and an output coupled to a downstream port, the translator configured to associate a first downstream frame with a first downstream node and to associate a second downstream frame with a second downstream node.
[0239] In at least one such example, the first downstream node is associated with the first downstream frame by an address of the first downstream node included in the first downstream frame. In at least one such example, the first downstream node is associated with the first downstream frame by a transmission order of the first downstream frame within the downstream aggregate frame.
[0240] This example may include a first downstream node and a second downstream node, the first downstream node coupled to a downstream port, and the second downstream node coupled to the first downstream node, where the first downstream node is coupled between the downstream port and the second downstream node.
[0241] Head protocol translator 1764 includes a data input (e.g., coupled to an output of downstream port 1768, such as the output of tri-state driver 1766), a system clock input (e.g., coupled to receive a system clock or a derivative thereof), and a data output (e.g., coupled to a selected input of one of upstream data buffer 1726 and upstream data buffer 1736). In at least one example, the head protocol translator is configured to translate data encoded in a system bus protocol (e.g., data received from system bus 1706) into data encoded in a local bus protocol (e.g., data transmitted via local bus 1702 or local bus 1704).
[0242] The output multiplexer 1762 includes input A (e.g., coupled to a data output of the head protocol translator 1764), input B (e.g., coupled to a data output of the head protocol translator 1774), input S (e.g., coupled to output SELECT0 of the chain base unit controller 1780), input E (e.g., coupled to output ENABLE1 of the chain base unit controller 1780), and output O (e.g., coupled to an input of the upstream data buffer 1726 and to an input of the upstream data buffer 1736) (wherein data represented by a first upstream frame can be selectively clocked into the upstream data buffer 1726 in response to the CLOCK2 line, and data represented by a second upstream frame can be selectively clocked into the upstream data buffer 1736 in response to the CLOCK0 line). The output multiplexer 1762 is coupled to select one of input A or input B in response to a frame selector (e.g., a timer 1782 included in the chain base unit controller 1780). The selection of output multiplexer 1762 includes switching data in response to an address indication. In one example, the address indication may be an ordering of time slots associated with downstream nodes associated with a current upstream frame (e.g., one of the first upstream frame and the second upstream frame). The switching of data via the selection of output multiplexer 1762 may include (for example) switching data to a local bus controller (e.g., either local bus controller 1720 or local bus controller 1730) associated with the current upstream frame.
[0243] In one example, system bus controller 1760 is a system bus controller having a downstream port adapted to be coupled to a system bus, the system bus controller configured to generate a first downstream frame in response to a first local bus transmission, the system bus controller configured to generate a second downstream frame in response to a second local bus transmission, the system bus controller configured to generate a downstream aggregate frame in response to the first downstream frame and the second downstream frame, the system bus controller configured to initiate transmission of the downstream aggregate frame at the downstream port, the system bus controller adapted to receive an upstream aggregate frame including the first upstream frame and the second upstream frame, the system bus controller configured to generate a first upstream transmission in response to the first upstream frame, and the system bus controller configured to generate a second upstream transmission in response to the second upstream frame.
[0244] This example may further include a substrate, wherein the first local controller, the second local controller, and the system bus controller are disposed on the substrate. In at least one such example, the substrate is a monolithic semiconductor substrate, and the first local controller, the second local controller, and the system bus controller are formed on the substrate.
[0245] This example may further include a translator (such as head protocol translator 1764), the translator including an input coupled to the downstream port and an output selectively coupled to one of the first upstream port and the second upstream port, the output of the translator selected in response to an indication of an association between a selected downstream node and a respective upstream frame of the upstream aggregate frame.
[0246] In one such example, the association between the selected downstream node and each upstream frame of the upstream aggregate frame is indicated by an address included in the upstream aggregate frame, hi one such example, the association between the selected downstream node and each upstream frame of the upstream aggregate frame is indicated by a time of receipt by the downstream port of each upstream frame.
[0247] In an example described herein below, the system bus controller may be a first system bus controller, the system bus may be a first system bus, the downstream aggregate frame may be a first downstream aggregate frame, the upstream aggregate frame may be a first aggregate frame, and the downstream port may be a first downstream port, where this example includes a second system bus controller having a second downstream port adapted to be coupled to a second system bus, the system bus controller configured to generate a third downstream frame in response to a third local bus transmission, the system bus controller configured to generate a fourth downstream frame in response to a fourth local bus transmission, and the system bus controller The system bus controller is configured to generate a second downstream aggregate frame in response to the third downstream frame and the fourth downstream frame, the system bus controller is configured to initiate transmission of the second downstream aggregate frame at the second downstream port, the system bus controller is adapted to receive a second upstream aggregate frame including the third upstream frame and the fourth upstream frame, the system bus controller is configured to initiate transmission of a third upstream transmission at the third upstream port in response to the third upstream frame, and the system bus controller is configured to initiate transmission of a fourth upstream transmission at the fourth upstream port in response to the fourth upstream frame.
[0248] System bus controller 1770 is an optional system bus controller that includes input multiplexer 1771, output multiplexer 1772, chain protocol translator 1773, head protocol translator 1774, and downstream port 1778 (which includes tri-state driver 1775 and tri-state driver 1776). System bus controller 1770 is adapted to control a second system bus, such as system bus 1708. In one example, system bus 1708 may include one or more twisted pairs CB1 coupled to the output of tri-state driver 1775 and the input of tri-state driver 1776. If multiple twisted pairs CB1 are present, components of the system bus controller may be instantiated multiple times, so that (for example) there is a pair of tri-state drivers (e.g., tri-state driver 1775 and tri-state driver 1776) for each lane of system bus 1708.
[0249] Input multiplexer 1771 includes input A (e.g., coupled to a data output of downstream data buffer 1725), input B (e.g., coupled to a data output of downstream data buffer 1735), input S (e.g., coupled to output SELECT1 of chain base unit controller 1780), input E (e.g., coupled to output ENABLE2 of chain base unit controller 1780), and output O (e.g., coupled to an input of chain protocol translator 1773). Input multiplexer 1771 is coupled to select input A or input B in response to a frame selector (e.g., timer 1782 included in chain base unit controller 1780) so that data from either local bus controller 1720 or local bus controller 1730 (for example) can be transmitted in a time slot associated with the ordering of the frame indicated for transmission to the respective downstream node (e.g., each downstream node is adapted to be coupled to chain protocol translator 1773 via downstream port 1778).
[0250] Chain protocol translator 1773 includes a data input (coupled to output O of input multiplexer 1771), a system clock input (coupled to receive the system clock or a derivative thereof), and a data output (e.g., coupled to an input of downstream port 1778). In at least one example, chain protocol translator 1773 is configured to output data in accordance with the protocol of system bus 1708.
[0251] Head protocol translator 1774 includes a data input (e.g., coupled to an output of downstream port 1778, such as the output of tri-state driver 1776), a system clock input (e.g., coupled to receive a system clock or a derivative thereof), and a data output (e.g., coupled to a selected input of one of upstream data buffer 1726 and upstream data buffer 1736). In at least one example, the head protocol translator is configured to translate data encoded in a system bus protocol (e.g., data received from system bus 1708) to data encoded in a local bus protocol (e.g., data transmitted via local bus 1702 or local bus 1704).
[0252] Output multiplexer 1772 includes input A (e.g., coupled to a data output of head protocol translator 1764), input B (e.g., coupled to a data output of head protocol translator 1774), input S (e.g., coupled to output SELECT1 of chain base unit controller 1780), input E (e.g., coupled to output ENABLE3 of chain base unit controller 1780), and output O (e.g., coupled to an input of upstream data buffer 1726 and an input of upstream data buffer 1736) (data represented by a first upstream frame can be selectively clocked into upstream data buffer 1726 in response to the CLOCK2 line, and data represented by a second upstream frame can be selectively clocked into upstream data buffer 1736 in response to the CLOCK0 line). Output multiplexer 1772 is coupled to select one of input A or input B in response to a frame selector (e.g., a timer 1782, which is included in chain base unit controller 1780). The selection of output multiplexer 1772 includes switching data in response to an address indication. In one example, the address indication may be an ordering of time slots associated with downstream nodes associated with a current upstream frame (e.g., one of the first upstream frame and the second upstream frame). The switching of data via the selection of output multiplexer 1772 may include (for example) switching data to a local bus controller (e.g., either local bus controller 1720 or local bus controller 1730) associated with the current upstream frame.
[0253] The chain base unit controller 1780 includes a timer 1782. The chain base unit controller 1780 is configured to control communications between the local interface 1710 and the system interface 1750. The timer 1782 may be configured to indicate (e.g., generate) a division of time for controlling the encoding and decoding of data in frames included in an aggregated system frame, such as the aggregated control system frame 1310. In at least one example, the timer 1782 is configured to indicate the start of the aggregated control system frame (e.g., the aggregated control system frame 1310) and the start time of each frame included in the aggregated control system frame.
[0254] The chain base unit controller 1780 may (for example) be a finite state machine configured to select a programmed output for a state at a time in response to a previous state, a clock (e.g., a system clock), a timer, the state of the first local bus, and the state of the second local bus. The programmed outputs for the various states may be stored in a physical medium such as a ROM (read only memory) or a PGA (programmable gate array).
[0255] In one example system, the system includes a first local controller having a first upstream port adapted to receive a first downstream transmission from a first upstream node, the first downstream transmission being directed for transmission to the first downstream node, the first local controller being adapted to transmit the first upstream transmission to the first upstream node via the first upstream port; a second local controller having a second upstream port adapted to receive a second downstream transmission from a second upstream node, the second downstream transmission being directed for transmission to the second downstream node, the second local controller being adapted to transmit the second upstream transmission via the second upstream port; and a second local controller having a first downstream port and directing a second downstream transmission to a second downstream node in response to the first downstream transmission. and a system bus controller configured to generate a downstream frame, wherein the system bus controller is configured to generate the second downstream frame in response to the second downstream transmission, the system bus controller is configured to generate a downstream aggregate frame in response to the first downstream frame and the second downstream frame, the system bus controller is configured to transmit the downstream aggregate frame at a first downstream port, the system bus controller is adapted to receive an upstream aggregate frame including the first upstream frame and the second upstream frame, the system bus controller is configured to generate a first upstream transmission in response to the first upstream frame, and the system bus controller is configured to generate a second upstream transmission in response to the second upstream frame.
[0256] The example system may further include remote devices such as a first upstream node, a second upstream node, a first downstream node and a second downstream node, the first upstream node coupled to the first upstream port, the second upstream node coupled to the second upstream port, the first downstream node coupled to the first downstream port, the second downstream node coupled to the second downstream node, and the first downstream node coupled between the first downstream port and the second downstream node.
[0257] In an example system including such a remote device, the system bus controller may be a first system bus controller, the downstream aggregate frame may be a first downstream aggregate frame, and the upstream aggregate frame may be a first upstream aggregate frame, and the example system including the remote device further includes a third upstream port, a fourth upstream port, and a second system bus controller, the second system bus controller having a second downstream port, the system bus controller configured to generate a third downstream frame in response to the third downstream transmission, and the system bus controller configured to generate a fourth downstream frame in response to the fourth downstream transmission, and The controller is configured to generate a second downstream aggregate frame in response to the third downstream frame and the fourth downstream frame, the system bus controller is configured to transmit the second downstream aggregate frame at the second downstream port, the system bus controller is adapted to receive a second upstream aggregate frame including the second upstream frame and the fourth upstream frame, the system bus controller is configured to generate a third upstream transmission at the third upstream port in response to the third upstream frame, and the system bus controller is configured to generate a second upstream transmission at the fourth upstream port in response to the second upstream frame.
[0258] 17A and 17B. The example method 1800 may include various techniques described herein below. In various implementations, some of the described operations need not necessarily be performed in the order described. In the example method 1800, the method may begin at 1802.
[0259] At 1802, the method may include receiving, by a first upstream port, a first downstream transmission from a first upstream node, the first downstream transmission directed for transmission to the first downstream node. The method may continue at 1804.
[0260] At 1804, the method may include receiving, by a second upstream port, a second downstream transmission from a second upstream node, the second downstream transmission being directed for transmission to the second downstream node. The method may continue at 1806.
[0261] At 1806, the method may include generating, by a system bus controller having a first downstream port, a first downstream frame in response to the first downstream transmission, and generating, by the system bus controller, a second downstream frame in response to the second downstream transmission. The method may continue at 1808.
[0262] At 1808, the method may include generating, by the system bus controller, a downstream aggregate frame in response to the first downstream frame and the second downstream frame. The method may continue at 1810.
[0263] At 1810, the method may include transmitting, at the first downstream port, the downstream aggregate frame at the first downstream port. The method may continue, at 1812.
[0264] At 1812, the method may include receiving, at the first downstream port, an upstream aggregate frame including the first upstream frame and the second upstream frame. The method may continue at 1814.
[0265] At 1814, the method may include generating, by the system bus controller, a first upstream transmission in response to the first upstream frame, and generating, by the system bus controller, a second upstream transmission in response to the second upstream frame. The method may continue at 1816.
[0266] At 1816, the method may include transmitting, by the first upstream port, a first upstream transmission via the first upstream port to the first upstream node. The method may continue at 1818.
[0267] At 1818, the method may include transmitting, by the second upstream port, a second upstream transmission via the second upstream port to a second upstream node. The method may continue at 1820.
[0268] At 1820, the method may optionally include generating, by the first downstream node, first downstream information, the first downstream information included in the first upstream frame. The method may continue at 1822.
[0269] At 1822, the method may optionally include generating, by the second downstream node, second downstream information, the second downstream information included in the second upstream frame.
[0270] Modifications in the described embodiments are possible, and other embodiments are possible, within the scope of the claims.
Claims
1. A circuit comprising: a first local controller adapted to be coupled to a first local bus and having a first upstream port adapted to receive a first local bus transmission via the first local bus, the first local controller being configured to transmit a first upstream transmission via the first upstream port; a second local controller adapted to be coupled to a second local bus and having a second upstream port adapted to receive second local bus transmissions via the second local bus, the second local controller configured to transmit second upstream transmissions via the second upstream port; 1. A system bus controller having a downstream port adapted to be coupled to a system bus, the system bus controller adapted to receive an upstream aggregate frame including a first upstream frame and a second upstream frame, generating a first downstream frame in response to the first local bus transmission; generating a second downstream frame in response to the second local bus transmission; generating a downstream aggregate frame in response to the first downstream frame and the second downstream frame; commencing transmission of the downstream aggregate frame at the downstream port; generating the first upstream transmission in response to the first upstream frame; generating the second upstream transmission in response to the second upstream frame; the system bus controller configured as follows: a translator having inputs coupled to the first upstream port and the second upstream port and an output coupled to the downstream port, the translator configured to associate a first downstream node with the first downstream frame and a second downstream node with the second downstream frame; The circuit includes:
2. 2. The circuit of claim 1, The circuit further includes a substrate, the first local controller, the second local controller, and the system bus controller disposed on the substrate.
3. 3. The circuit of claim 2, The circuit, wherein the substrate is a monolithic semiconductor substrate, and the first local controller, the second local controller, and the system bus controller are formed on the substrate.
4. 2. The circuit of claim 1, a first buffer having an input coupled to the first upstream port and an output coupled to the downstream port, the first buffer configured to store an indication of data in response to the first local bus transmission; The circuitry further configured for the system bus controller to generate the first downstream frame in response to an indication of the data.
5. 5. The circuit of claim 4, a second buffer having an input coupled to the second upstream port and an output coupled to the downstream port, the second buffer configured to store an indication of second data in response to the first local bus transmission; The circuitry, wherein the system bus controller is further configured to generate the first downstream frame in response to an indication of the second data.
6. 6. The circuit of claim 5, a third buffer having an input coupled to the downstream port and an output coupled to the first upstream port, the third buffer configured to generate an indication of third data; The circuitry, wherein the system bus controller is further configured to generate the first upstream transmission in response to an indication of the third data.
7. 7. The circuit of claim 6, a fourth buffer having an input coupled to the downstream port and an output coupled to the second upstream port, the fourth buffer configured to generate an indication of fourth data in response to the second upstream frame; The circuitry, wherein the system bus controller is further configured to generate the second upstream transmission in response to an indication of the fourth data.
8. 2. The circuit of claim 1, The circuitry, wherein the first downstream node is associated with the first downstream frame by an address of the first downstream node included in the first downstream frame.
9. 2. The circuit of claim 1, The circuitry is configured to associate the first downstream node with the first downstream frame by a transmission order of the first downstream frame within the downstream aggregate frame.
10. 2. The circuit of claim 1, The circuitry wherein the first downstream node is coupled between the downstream port and the second downstream node.
11. A circuit comprising: a first local controller adapted to be coupled to a first local bus and having a first upstream port adapted to receive a first local bus transmission via the first local bus, the first local controller being configured to transmit a first upstream transmission via the first upstream port; a second local controller adapted to be coupled to a second local bus and having a second upstream port adapted to receive second local bus transmissions via the second local bus, the second local controller configured to transmit second upstream transmissions via the second upstream port; 1. A system bus controller having a downstream port adapted to be coupled to a system bus, the system bus controller adapted to receive an upstream aggregate frame including a first upstream frame and a second upstream frame, generating a first downstream frame in response to the first local bus transmission; generating a second downstream frame in response to the second local bus transmission; generating a downstream aggregate frame in response to the first downstream frame and the second downstream frame; commencing transmission of the downstream aggregate frame at the downstream port; generating the first upstream transmission in response to the first upstream frame; generating the second upstream transmission in response to the second upstream frame; the system bus controller configured as follows: a translator having an input coupled to the downstream port and an output selectively coupled to one of the first upstream port and the second upstream port, the output of the translator being selected in response to an indication of an association between a selected downstream node and each upstream frame of the upstream aggregate frame; The circuit includes:
12. 12. The circuit of claim 11, a circuit for receiving a downstream frame from the upstream aggregate frame, the upstream aggregate frame including a selected downstream node and a corresponding upstream frame of the upstream aggregate frame;
13. 12. The circuit of claim 11, The circuitry, wherein an association between the selected downstream node and each upstream frame of the upstream aggregate frame is indicated by a time of receipt by the downstream port of the each upstream frame.
14. 1. A method comprising: receiving, by a first upstream port, a first downstream transmission from a first upstream node, the first downstream transmission being directed for transmission to a first downstream node; receiving, by a second upstream port, a second downstream transmission from a second upstream node, the second downstream transmission being directed for transmission to a second downstream node; generating, by a system bus controller having a first downstream port, a first downstream frame in response to the first downstream transmission, and generating, by the system bus controller, a second downstream frame in response to the second downstream transmission; generating, by the system bus controller, a downstream aggregate frame in response to the first downstream frame and the second downstream frame; transmitting the downstream aggregate frame at the first downstream port; receiving, at the first downstream port, an upstream aggregate frame including a first upstream frame and a second upstream frame; generating, by the system bus controller, a first upstream transmission in response to the first upstream frame, and generating, by the system bus controller, a second upstream transmission in response to a second upstream frame; transmitting, by the first upstream port, the first upstream transmission via the first upstream port to the first upstream node; transmitting, by the second upstream port, the second upstream transmission via the second upstream port to the second upstream node; A method comprising:
15. 15. The method of claim 14, generating, by the first downstream node, first downstream information included in the first upstream frame; generating, by the second downstream node, second downstream information included in the second upstream frame; The method further comprises:
Citation Information
Patent Citations
Data processing device, control device and method thereof
JP2016161985A
Synchronous slave-to-slave communications
JP2017135711A
System and method for universal serial bus hub port reversal
US20070255885A1
System and method for transmitting data packets in a computer system having a memory hub architecture
US20090319714A1
Apparatus and method for controlling data transmission
US20100155493A1