Transmitting USB data in a data stream

By inserting interrupt mode into the data stream, USB data is divided into transmission packets and inserted into the data stream, solving the problem of limited transmission distance of USB devices and realizing transparent transmission of USB data over longer distances. This is suitable for applications in medical devices and PCs.

CN115934593BActive Publication Date: 2026-05-05SIEMENS HEALTHINEERS AG
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SIEMENS HEALTHINEERS AG
Filing Date
2022-10-08
Publication Date
2026-05-05

AI Technical Summary

Technical Problem

In existing technologies, the transmission distance of USB devices is limited to 5 meters, which cannot effectively bridge connections over longer distances. This is especially problematic in applications involving medical devices and PCs, where cable laying is difficult.

Method used

By inserting interrupt mode into the data stream, USB data is divided into multiple transmission packets and inserted into the data stream. Transparent transmission is achieved using the sending and receiving units.

Benefits of technology

It enables transparent transmission of USB data over longer distances, avoiding the limitations of traditional optical extenders and KVM extenders, supporting high data rate video data transmission, and requiring no knowledge of the terminal device.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115934593B_ABST
    Figure CN115934593B_ABST
Patent Text Reader

Abstract

This invention includes a method for transmitting (I) USB data (TxData) in a data stream (SerDesData) comprising streaming data (StrData). Here, the streaming data (StrData) and USB data (TxData) comprising multiple USB packets having a first digit are received. Furthermore, the USB data (TxData) is divided to generate multiple transmission packets (SPs) of USB data (TxData) having a second digit. Furthermore, the transmission packets (SPs) are inserted into the data stream (SerDesData). The combined data stream (SerDesData) is transmitted. Here, an interrupt mode (Pat) is appended at least to the initial transmission packet (SP) to signal the presence of USB data (TxData) in the data stream (SerDesData). This invention also relates to a method (II) for receiving data and a transmission method (I, II), as well as a transmission unit (50), a receiving unit (70), and a transmission system (100).
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a method for sending USB data in a data stream, a method for receiving such data, a sending unit, a receiving unit, and a transmission system. Background Technology

[0002] USB networks have the following characteristics: they can only bridge a limited distance (5m) between a PC or host and a terminal device. The primary reason for this limitation is the maximum permissible round-trip latency, or response time, of 1.5μs. If a USB device does not respond to a USB host command within the allowed time, the host considers the command lost. To comply with the USB specification, cable lengths should not exceed 5 meters or 3 meters. Up to six of these cables can be cascaded using USB hubs with intermediate connections. Therefore, a total transmission path of up to approximately 30 meters can be achieved.

[0003] An illustrative application scenario derived from medical technology: The monitor, along with the mouse and keyboard, is often located in the examination room and must be connected to the PC via USB. However, the PC is located 10m-30m away in another room, such as an operating room or a central computing or server room. That is, there is often a wired video connection between the PC and the display device, and an additional USB connection is required, typically resulting in two cables being laid.

[0004] For bridging distances greater than those set by standards, optical extenders are known in practice. These extenders directly convert the electrical USB signals from the terminal device into optical signals, transmit these optical signals, and then convert them back at the receiver. Here, each USB port requires its own optical cable.

[0005] Furthermore, so-called KVM extenders are known in practice. However, these KVM extenders do not transparently transmit USB signals; rather, they typically rely on knowledge of the connected end device. Summary of the Invention

[0006] One object of the present invention is to transmit arbitrary USB data and other arbitrary stream data via cable.

[0007] The objective is achieved by means of a method for transmitting and a method for receiving, and by means of a transmitting unit, a receiving unit, and a transmission system.

[0008] The method mentioned at the beginning is used to send USB data in a data stream. Here, the data stream includes arbitrary stream data. The method has the following steps. In one step, at least a portion of the stream data and USB data is received. The USB data includes multiple USB packets with a first digit. In another step, the USB data is divided to generate multiple transmission packets with a second digit. In a subsequent step, such transmission packets are inserted into the data stream. In another step, the combined data stream is transmitted. Here, an interrupt mode is attached at least to the initial transmission packet to notify the receiver, for example, by signaling that USB data is present in the data stream, especially in subsequent data streams.

[0009] The term data stream generally refers to the continuous flow of a dataset, the end of which is usually unpredictable. Data streams are particularly serial, meaning the dataset is processed, sent, and / or received continuously. Streaming data can, in principle, be received as continuous or serial data in any format or protocol (e.g., HSSL). Here, streaming data includes content such as audio data, video data, measurement data, or even Ethernet data, but excludes USB data. In the case of 4K video data, the streaming data may have a high data rate or bandwidth of several GB / s.

[0010] The USB data to be received can, in principle, come from any USB device, such as a mouse, keyboard, mass storage media, or, for example, a USB hub. According to the USB specification, USB data can be transmitted at different speeds (low, full, and high), and for each speed, the standard defines different maximum packet sizes. The maximum packet size corresponds to a maximum number of bits, for example, 8 bytes for low speeds up to 1024 bytes for high speeds, where each byte contains the corresponding USB packet.

[0011] The partitioning of USB data or individual USB packets means, in particular, dividing larger USB packets into multiple transmission packets. The USB data is therefore the valid data for transmission within the transmission packets. The partitioning of USB data into transmission packets preferably begins as soon as the portion of the USB packet corresponding to the second bit is received. The second bit is particularly smaller than the first bit. Even though the term "bit" is used in this context, it is clear that standard dimensions for data transmission are typically described in bytes.

[0012] Send packets (also called droplets) are inserted into the data stream, specifically into consecutive streams of data. Therefore, the send packet is, in principle, foreign data that can be placed anywhere within the stream of data. To distinguish the send packet from the rest of the stream data, an interrupt mode is appended to at least one initial send packet.

[0013] The interrupt mode is a bit sequence that is as representative as possible. For example, the interrupt mode may be statically predefined, or it may be selected from a plurality of predefined interrupt modes, as will be explained in more detail later.

[0014] While interrupt mode can theoretically follow the transmitted packet, it is advantageous for further data processing to have interrupt mode preceding the transmitted packet. Therefore, interrupt mode identifies the corresponding transmitted packet and signals this to the receiver. The combination of interrupt mode and the transmitted packet is also known as a drop.

[0015] Because USB data involves time-critical data, it is advantageous to forward the USB data in the transmission packet as quickly as possible. USB data transmission is transparent, and especially bit-transparent, by means of the transmission of the transmission packet; that is, the USB data is reconstructed identically upon reception after transmission, without the need for information about the source of the USB data. Therefore, USB data can be partitioned into transmission packets even before the USB packet as a whole is received. It is therefore feasible to transmit the transmission packet within the shortest possible time period after its generation, i.e., within the clock or cycle that directly follows the data stream. This time saving is particularly advantageous because any time saving in data processing results in a possible increase in the transmission distance for the USB data.

[0016] The mechanism for transmitting data streams is designed such that, in addition to the bandwidth required for streaming data, USB data can also be transmitted in the form of packets.

[0017] The transmitting unit mentioned at the beginning for sending USB data in a data stream including streaming data has the following components. The transmitting unit includes at least one stream input interface for receiving streaming data and a USB input interface for receiving USB data, the USB data comprising multiple USB packets with a first digit. The transmitting unit also includes a distribution unit for dividing the USB data to generate multiple transmitting packets with a second digit. The transmitting unit further includes a combination unit for inserting the transmitting packets into the data stream. Furthermore, the transmitting unit has an output interface for transmitting the combined data stream. Here, an interrupt mode is attached at least to the initial transmitting packet to signal that USB data is present in the data stream.

[0018] Therefore, the transmitting unit has all the components for implementing the method for transmitting data according to the present invention.

[0019] In the method for receiving data mentioned earlier, a combined data stream is received in a first step, the combined data stream being transmitted according to the method according to the invention. In another step, an interruption mode is identified in the data stream. Using the interruption mode, the data stream is divided into transmission packets and stream data. In another step, the USB data contained in the transmission packets is reconstructed into USB data packets, the USB data packets being, in particular, identical to the original USB data packets. In yet another step, the stream data and the reconstructed USB data are output separately.

[0020] The receiving unit mentioned at the beginning is used to receive USB data in a data stream including streaming data. The receiving unit has an input interface for receiving a combined data stream including transmission packets and streaming data. Here, an interrupt mode is attached at least to the initial transmission packet to signal that USB data is present in the data stream. The input interface is therefore used to receive the data stream transmitted according to the invention. The receiving unit also has an identification unit for identifying the interrupt mode. Furthermore, the receiving unit includes a partitioning unit for dividing the data stream into transmission packets and streaming data using the interrupt mode. By means of a further included reconstruction unit, the USB data contained in the transmission packets is reconstructed into USB data packets. Additionally, the receiving unit includes at least one streaming output interface for outputting streaming data and a USB output interface for outputting USB data.

[0021] Therefore, the receiving unit has all the components for implementing the method for receiving data according to the present invention.

[0022] The method for transmitting data mentioned at the beginning includes the steps of sending data by means of the method for sending USB data according to the present invention and the steps of the method for receiving data according to the present invention.

[0023] The transmission system mentioned at the beginning for transmitting USB data in at least one data stream including streaming data has the following components. The transmission system includes a client device having a transmitting unit according to the invention and a receiving unit according to the invention. Furthermore, the transmission system includes a host device having a transmitting unit according to the invention and a receiving unit according to the invention. Here, the transmitting unit of the client device is connected to the receiving unit of the host device, and the transmitting unit of the host device is connected to the receiving unit of the client device.

[0024] The client device and the host device are thus in a typical client-host relationship, in which the host provides the client with services that the client can request, such as computing power. Each transmission path, i.e., from the client device to the host device on one hand and from the host device to the client device on the other, is preferably unidirectional and not connected to the other transmission path. The transmission system enables bidirectional transmission of USB data and streaming data by means of two transmission paths. Each transmission path is configured such that it includes the components necessary for implementing the method for transmitting data according to the invention.

[0025] Most of the aforementioned components of the transmitting unit, receiving unit, and / or transmission system can be implemented entirely or partially in the form of logic circuits or logic devices.

[0026] In principle, the components can also be implemented, particularly when very fast computations are involved, in the form of software-supported hardware, such as FPGAs, ASICs, etc. Similarly, the required interfaces, for example when only data reception from other software components is involved, can be configured as software interfaces. However, these interfaces can also be configured as hardware-based interfaces controlled by appropriate software.

[0027] The largely software-based implementation has the advantage of allowing existing transmitting, receiving, and / or transmission systems to be easily added via software updates or FPGA reconfiguration to operate according to the invention. In this regard, the objective is also achieved through a corresponding computer program product that can be connected to the programmable logic device of the transmitting, receiving, and / or transmission system. This computer program product has program segments or logic instructions to execute the steps of the method according to the invention when logic is executed in the transmitting, receiving, and / or transmission system. In addition to the computer program, such a computer program product may, if necessary, include additional components, such as documentation and / or additional parts, as well as hardware components, such as hardware keys (software dongles, etc.) for using the software.

[0028] Computer-readable media, such as memory sticks, hard disks, or other portable or fixed-mount data carriers, can be used to transport to a transmitting unit, receiving unit, and / or transmission system and / or for storage at or within the transmitting unit, receiving unit, and / or transmission system, on which a computer program is stored, and programmable and executable program segments on the logic means of the transmitting unit, receiving unit, and / or transmission system. The logic means may, for example, have one or more cooperating logic elements.

[0029] Other particularly advantageous designs and modifications of the invention will be derived in the following description. Embodiments of one category of embodiments may also be modified in a similar manner to embodiments of another category of embodiments and the description portion. In particular, features of different embodiments or variations may be combined to form new embodiments or variations.

[0030] The packet is preferably inserted into the data stream and transmitted within a short period of time after its generation. Insertion of the packet into the data stream within a short period of time after its generation preferably means that the packet is inserted several cycles or clock cycles after its generation and, if necessary, a previous interrupt mode. The packet is particularly preferably inserted at most four cycles after its generation, more preferably at most two cycles after its generation, and most preferably at most one cycle after its generation. For example, the cycle can be 60 MHz, as is typically output by a ULPI-PHY module, or the cycle depends on the requirements of components typically used in the USB3 standard. However, a cycle such as 156 MHz is preferred, as serializers-to-parallel converters or output interfaces also use this cycle to output or receive data streams.

[0031] The transmitted packet preferably also includes transmission control data, which contains information about where, at what subsequent position, or within what time interval another transmitted packet is transmitted. Thus, an initial transmitted packet characterized by an interrupt mode can, in particular, use transmission control data to indicate where or when another transmitted packet follows. Obviously, each other transmitted packet can also contain corresponding transmission control data. However, it is particularly preferable to predefine an interval that specifies the distance between subsequent transmitted packets. This interval is preferably defined relative to the period of the data stream. Correspondingly, by means of the transmission control data, it is only necessary to indicate that another transmitted packet is transmitted within a predefined interval. Thus, the amount of data or bits required for the corresponding transmission control data can be advantageously kept small.

[0032] Utilizing the previously described use of transmission control data, after the initial transmission packet, subsequent transmission packets can be identified based on their location, time, or interval, and distinguished from the remaining streaming data. Therefore, interrupt modes are no longer needed for differentiation. To conserve data, preferably, other transmission packets do not have interrupt modes.

[0033] Preferably, each transmission packet includes transmission control data. Thus, preferably, along with each transmission packet, it is indicated whether the next transmission packet is identified based on its location, time, / or its interval, or based on an interruption pattern.

[0034] As already mentioned, the partitioning, insertion, and transmission steps begin as soon as the second digit of USB data is received. Thus, it is advantageous to process and transmit USB data even before the entire USB packet has been received. Partitioning and insertion are preferably performed on every four received bytes, particularly preferably on each received byte, and even more particularly preferably on every two received bytes. This small partitioning allows the remaining stream data to be advantageously transmitted within the data stream without significant delay.

[0035] The interrupt mode is preferably selected such that it occurs as infrequently as possible in the remaining stream data. For this purpose, bit patterns can be selected, for example, based on practical experience. This means analyzing or counting bit patterns over a longer time period and then selecting the least frequent pattern as the interrupt mode. Particularly preferably, this method also allows for determining the number of predefined, infrequently occurring interrupt modes and selecting the least frequent mode within the currently defined time interval from that number during operation. This selection of the interrupt mode ensures that the interrupt mode conflicts with the remaining stream data as little as possible.

[0036] The interrupt mode preferably comprises two identical sub-modes, which are particularly preferably selected as described above. If the two-part interrupt mode now occurs in the streaming data, a third identical sub-mode is preferably appended to the streaming data. Upon receiving data, it can now be categorized such that data with exactly two identical sub-interrupt modes is associated with USB data. If only one sub-interrupt mode occurs, that sub-interrupt mode is associated with the remaining streaming data. However, if three consecutive sub-interrupt modes occur, one sub-interrupt mode is removed again, and two sub-interrupt modes are associated with the streaming data.

[0037] The transmission control data preferably also includes information about which interrupt mode is currently being used. Correspondingly, one transmission packet can specify the use of a different interrupt mode for the next transmission packet. The transmission control data may also preferably include information about whether the transmission packet contains the start, middle, or end of a USB packet. Furthermore, the transmission control data may include information about whether another transmission packet is directly appended after the transmission packet. The transmission control data may also include information about the size of the transmission packet, i.e., how many bytes of data the transmission packet includes, such as one byte, two bytes, or four bytes of valid transmission data. Alternatively, it may be specified that the transmission packet only includes USB control data.

[0038] The transmitted packet preferably includes transmission check data, which can be used to specify and optionally correct transmission errors. This can be accomplished, for example, by means of CRC data (Cyclic Redundancy Check), thereby enabling the detection and, if necessary, correction of random transmission errors by means of a known checksum. Attached Figure Description

[0039] The invention will be described in detail again below with reference to the accompanying drawings and embodiments. Here, in the different drawings, the same parts are given the same reference numerals.

[0040] The accompanying diagrams are usually not to scale. The diagrams show:

[0041] Figure 1 A schematic block diagram of an embodiment of the transmission system according to the present invention is shown.

[0042] Figure 2 A schematic block diagram showing one embodiment of the combined transmitting and receiving units according to the present invention is shown.

[0043] Figure 3 This illustrates a schematic embodiment of the data structure for sending packets.

[0044] Figure 4 This illustration shows a schematic embodiment of the data structure of a packet that includes USB control data transmission.

[0045] Figure 5 A schematic block diagram illustrating one embodiment of the combined transmitting and receiving unit according to the invention and the ULPI-PHY module is shown.

[0046] Figure 6 A schematic block diagram of one embodiment of the transmitting unit according to the present invention is shown.

[0047] Figure 7 A schematic block diagram illustrating one embodiment of the receiving unit according to the present invention, and

[0048] Figure 8 A flowchart illustrating an embodiment of the transmission method according to the present invention is shown. Detailed Implementation

[0049] exist Figure 1The transmission system 100 according to the invention is illustrated exemplary and schematically as a block diagram. The transmission system 100 includes a host device 30 and a client device 31 with substantially similar constructions. The host device 30 and the client device 31 are connected bidirectionally via a line capable of transmitting multiplexed data (SerDesData). This connection can be implemented, for example, as an optical connection or an electrical connection. The host device 30 and the client device 31 are similarly configured and both include a commercially available ULPI-PHY module 33 and, according to... Figure 2 An embodiment of the combined transmitting and receiving unit 40 according to the present invention is described in more detail.

[0050] The transmitting and receiving unit 40 of the host device 30 is connected to the computing unit 20, which acts as a host, particularly a USB host, via the ULPI-PHY module 33, for exchanging USB data RxData and TxData. Furthermore, depending on requirements and design, the computing unit 20 has one or more connections to the transmitting and receiving unit 40 of the host device 30, such as HSSL connections, established for transmitting, i.e., for sending or receiving streaming data StrData. Streaming data StrData includes, for example, audio data, video data, measurement data, and / or other data from medical devices, as well as, if necessary, associated flow control data StrCtrl (see...). Figure 2 and Figure 6 However, there is no USB data.

[0051] Unlike the host device 30, the client device 31's transmitting and receiving unit 40 is first connected to the USB hub 32 via the ULPI-PHY module 33, which serves as a USB interface, for exchanging USB data RxData and TxData. Various USB terminal devices 22, 23, and 24, such as a keyboard 22, mouse 23, DVD drive 24, mass storage media (not shown here), and / or the like, are connected to the USB hub 32. Furthermore, the client device 31's transmitting and receiving unit 40 is connected to a CT scanner 25 (a medical device) to receive streaming data StrData in the form of measurement data, and to a screen 21 (an optical output mechanism) to transmit streaming data StrData in the form of video data.

[0052] For each connection direction in the data stream SerDesData, not only the USB data RxData and TxData, but also the stream data StrData are transmitted via the connection between the host device 30 and the client device 31, as described in more detail below.

[0053] Figure 2A block diagram of a combined transmitting and receiving unit 40 according to the invention is shown exemplary and schematically, comprising a transmitting unit 50 and a receiving unit 70. The transmitting unit 50 transmits a combined data stream SerDesData according to the invention via an output interface 62, while the receiving unit 70 receives a combined data stream SerDesData according to the invention via an input interface 71.

[0054] The transmitting and receiving unit 40 also has a USB interface 41, which is bidirectionally connected to the ULPI-PHY module 33 to exchange ULPI data (ULPIData) according to the ULPI standard. Furthermore, the ULPI-PHY module 33 sends its ULPI clock signal (ULPI-Clk) to the USB interface 41. The USB interface 41 is connected to the transmitting unit 50 for exchanging output USB data (TxData) and to the receiving unit 70 for exchanging input USB data (RxData). Additionally, the USB interface 41 receives the output clock (SerDesTxClk) from the output interface 62 and the input clock (SerDesRxClk) from the input interface 71, and synchronizes the two clocks or cycles (SerDesTxClk, SerDesRxClk) with each other and with the ULPI clock signal (ULPI-Clk). Figure 5 USB interface 41 is described in more detail.

[0055] The transmitting unit 50 is connected to the stream input interface 52. The transmitting unit 50 receives stream data StrData from the stream input interface 52, which also includes flow control data StrCtrl. The transmitting unit 50 combines the output USB data TxData with the stream data StrData and transmits it as a combined data stream SerDesData. In this combined data stream SerDesData, the USB data TxData is transmitted transparently. Figure 6 The transmitting unit 50 and the processes performed in the transmitting unit 50 are described in more detail below.

[0056] The receiving unit 70 divides the combined data stream SerDesData into input USB data RxData and stream data StrData, wherein the stream data StrData also includes flow control data StrCtrl. The receiving unit 70 transmits the input USB data RxData to the USB interface 41 and the stream data StrData to the stream output interface 76. Figure 7 The receiving unit 70 and the processes performed in the receiving unit 70 are described in more detail below.

[0057] Figure 5A block diagram of the USB interface 41 of the transmitting and receiving unit 40 according to the present invention is shown exemplary and schematically. The USB interface 41 includes a ULPI interface 42 connected to the ULPI-PHY module 33, a USB output interface 43 connected to the ULPI interface 42 and the transmitting unit 50, and a USB input interface 45 connected to the ULPI interface 42 and the receiving unit 70.

[0058] As already described, in accordance with the ULPI standard, ULPI data (ULPIData) and ULPI clock signal (ULPI-Clk) are transmitted and connected between ULPI interface 42 and ULPI-PHY module 33.

[0059] USB output interface 43 synchronizes USB interface 41 with the output clock SerDesTxClk signal. USB output interface 43 receives output USB data TxData from ULPI interface 42 and transmits the output USB data TxData to transmitting unit 50. Furthermore, USB output interface 43 transmits an output packet verification signal TxPktV as a gradient during USB packet transmission and a data verification signal TxDataV during reading one byte of USB data from ULPI interface 42.

[0060] USB input interface 44 synchronizes USB interface 41 with the input clock SerDesRxClk signal. USB input interface 44 is also connected to receiving unit 70 and receives input USB data RxData and the associated input packet verification signal RxDrpPkt as a slope during USB packet transmission. USB input interface 44 sends a read request RxDrpRd to invoke the USB packet if it is available at receiving unit 70.

[0061] The USB control unit 46 of the USB interface 41 receives input USB control data RxCMD, such as changes in USB state, from the ULPI PHY module 33 via the ULPI interface 42 in the established ULPI format, and converts the USB control data RxCMD into USB control data CMDData in a form suitable for sending packet SP.

[0062] With the aid of output USB control data TxCMD transformed from USB control data CMDData of input transmission packet SP, USB control unit 46 of USB interface 41 transmits instructions to ULPI-PHY module 33 in established ULPI format via ULPI interface 42. The instructions are, for example, requests for additional information or changes to the configuration of ULPI-PHY module 33, such as changing the transmission speed from full speed (FS) to high speed (HS).

[0063] Corresponding to the configuration of the ULPI PHY module 33, the USB control unit 46 also displays the transmission speed to the USB input interface 44 via the speed signal HS-Con, so that USB data can be output accordingly via the ULPI interface 42.

[0064] In this design, the USB input interface 44 includes a buffer 45 in which transmit packets can be combined into USB packets according to the transmission speed and output. This portion of the USB interface 41 is therefore functionally associated with the receiving unit 70. Alternatively, USB packets can also be reconstructed or combined directly in the receiving unit 70, as per [the specified transmission speed]. Figure 7 As described.

[0065] exist Figure 6 A block diagram of a transmitting unit 50 according to the present invention is shown exemplary and schematically. The transmitting unit 50 includes a USB input interface 51 for receiving output USB data TxData. As per [reference to...] Figure 5 As described, the output USB data TxData is transmitted, received, and forwarded by the USB interface 41 to the allocation unit 53, where it is stored in the buffer 54 until it is divided into multiple transmit packets SP. The output USB data TxData initially exists as a USB packet including the first digit. In the allocation unit 53, the output USB data TxData is divided into transmit packets SP or droplets with a second digit, for example, two bytes of USB data TxData.

[0066] The transmit packet SP also includes transmit control data ds, pc, lnd, ndc, sdd, sid, and pa, which are received by the transmit control unit 55 and set after the USB data TxData. To check the correct transmission of the transmit packet SP, a checksum or cyclic redundancy check (CRC) is set before the transmit packet SP. The bit settings in the transmit packet are based on a predefined scheme. The specific construction of the scheme can be specified according to specific requirements. The transmitted packet SP, thus combined, is transmitted to the combining unit 61, which combines the output data stream SerDesData.

[0067] Figure 3 This illustrates a schematic example of such a transmission packet SP. The first bytes b0, b1, ..., b7 are configured for Cyclic Redundancy Check (CRC), which is formed based on the remaining bits in a known manner. The second and third bytes b8, b9, ..., b15, b16, b17, ..., b23 are typically configured for useful data, i.e., USB data data0, data1 or USB control data mt0, mt1, rsi, res, ct0, ct1, ct2, ct3 (see...). Figure 4 The fourth byte, b24, b25, ..., b31, contains the transmission control data pa0, pa1, pc0, pc1, lnd, ndc, ds0, ds1.

[0068] The following describes the transmission control data pa0, pa1, pc0, pc1, lnd, ndc, ds0, and ds1. Bits pa0 and pa1 signal which interrupt mode (Pat) is active. That is, they select one of four predefined interrupt modes (Pat) indicating the next transmission packet (SP). Bits pc0 and pc1 contain USB packet control data. Specifically, bits pc0 and pc1 indicate four USB packet states: "start of packet" (SOP), "end of packet" (EOP), and "body of packet" (the body or middle portion of the USB packet), or via a "command," i.e., transmitting USB control data mt0, mt1, rsi, res, ct0, ct1, ct2, and ct3 in the transmission packet (SP). Bit lnd signal whether another transmission packet directly follows the transmission packet (SP) or droplet without an interrupt mode (Pat). In other cases, the Ind bit signals that stream data StrData will follow. The ndc bit signals whether another transmit packet SP will follow within a predefined interval and preferably without an additional interrupt mode Pat. In other cases, the ndc bit signals that the next transmit packet SP is identified by the interrupt mode Pat. The ds0 and ds1 bits indicate the size of the current transmit packet, i.e., whether the transmit packet does not contain data bytes, or contains one or two data bytes Data0 and Data1. However, not containing data bytes may also mean that the transmit packet SP contains only USB control data mt0, mt1, rsi, res, ct0, ct1, ct2, and ct3.

[0069] exist Figure 4The diagram illustrates a schematic example of the transmission of USB control data mt0, mt1, rsi, res, ct0, ct1, ct2, and ct3 in the data byte data1 of the transmitted packet SP. The transmission of USB control data mt0, mt1, rsi, res, ct0, ct1, ct2, and ct3 is signaled by transmitting control data pc0, pc1, and ds0, ds1. The USB control data mt0, mt1, rsi, res, ct0, ct1, ct2, and ct3 are described separately below. mt0 and msi indicate the message type. Signals are used to indicate whether it is a plain message requiring no response, whether a response is requested, or whether a response is requested. The rsi bit signals whether it is the first transmitted message or a retransmitted message. The res bit remains idle and is set to 0 for further implementation schemes. Using bits ct0, ct1, ct2, and ct3, different control processes defined in ULPI are signaled, such as "Idle," "Client Connect," "Controller Reset," "Client Chirp Started," "Controller Start of Frame Timeout," "Controller Suspend," "Controller SE0," and "Controller Resume Start." Other bits, which can also be used for USB control data, specifically the data0 byte of the sent packet SP, are reserved for further implementation schemes.

[0070] The transmission control unit 55 preferably instructs the allocation unit 53 to allocate the 2 bytes of USB data TxData to the transmission packet SP. However, if the time between the two output packet verification signals TxPktV is too long, a transmission packet SP with only one byte of USB data TxData may also be generated.

[0071] Figure 6The transmitting unit 50 also has a stream input interface 52 for receiving streaming data StrData. The stream input interface 52 is configured, for example, as an HSSL interface. In addition to the actual streaming data StrData, stream control data StrCtrl is also received via the stream input interface 52. This stream control data StrCtrl signals, for example, the start of a stream (SOS) or the end of a stream (EOS). Furthermore, the output clock SerDesTxClk, provided by the output interface 62, is received via the stream input interface 52. The output clock SerDesTxClk can alternatively be generated in the transmitting unit 50, for example, by means of a clock generator. All processes performed in the transmitting unit 50, such as allocating USB data TxData to the transmission packet SP in the allocation unit 52, are preferably performed or timed using the output clock SerDesTxClk.

[0072] The streaming data StrData is transmitted to the pattern recognition unit 56. The pattern recognition unit 56 notifies the transmission control unit 55 of the occurrence of the interruption pattern Pat or sub-pattern via the pattern detection signal PatDet.

[0073] The stream data StrData is then temporarily stored in buffer 57. Buffer 57 preferably comprises four or more double-words of stream data StrData to allow for early detection of stream interruptions, ensuring further transmission of time-critical output USB data TxData. A pattern analyzer 58 is connected to buffer 57. The pattern analyzer 58 counts the occurrence of multiple, preferably four, different predefined interrupt patterns Pat or sub-patterns of said interrupt patterns in the stream data StrData. Interrupt patterns Pat or two identical sub-patterns of said interrupt patterns are stored in pattern memory 59 and can be retrieved from and updated in pattern memory 59, for example, during an upgrade or via a pattern selection process. Selecting the least frequent interrupt pattern Pat advantageously saves bandwidth because fewer additional sub-patterns must be inserted to identify the stream data StrData. The pattern analyzer 58 informs the transmission control unit 55 of the corresponding interrupt pattern Pat, and the transmission control unit 55 sends the corresponding information in the control data pa0, pa1 of the next transmission packet SP.

[0074] The pattern analyzer 58 is integrated into the transmitting unit 50. Alternatively, the pattern analyzer 58 may be constructed as a separate unit connected to the transmitting unit 50 via a corresponding interface.

[0075] The central purpose of the transmit control unit 55 is to control the combination of the output combined data stream SerDesData transmitted via the output interface 62. To this end, the transmit control unit 55 sends a combination control signal muxctrl to the combination unit 61. The transmit control unit 55 preferably ensures that USB data TxData is inserted as a transmit packet into the output combined data stream SerDes within one cycle of the output clock SerDesTxClk, or, if necessary, that at least the previous interrupt mode SP is inserted into the output combined data stream SerDes within one cycle of the output clock SerDesTxClk. For this purpose, the transmit control unit 55 generates transmit control data pa0, pa1, pc0, pc1, lnd, ndc, ds0, ds1 for the transmit packet SP to be inserted, based on the USB data TxData accumulated in the buffer 54. In particular, the control data lnd and ndc determine when the next transmit packet SP follows, i.e., whether the next transmit packet SP follows directly at a predefined interval, or whether the next transmit packet SP is signaled via an interrupt mode Pat, for example, as the initial transmit packet SP. If the interrupt mode Pat is signaled to transmit packet SP, the transmission control unit 55 instructs the combination unit 61 to first insert the currently used interrupt mode Pat from the mode memory 59, and then insert the transmit packet SP.

[0076] If a current interrupt mode Pat with two identical sub-modes appears in the streaming data StrData, the sending control unit 55 instructs the combining unit 61 to add another identical sub-mode to the interrupt mode. Thus, if three consecutive sub-modes or only one sub-mode appear, the receiving unit 70 (participating in...) Figure 7 The logic in the code can interpret data as streaming data StrData. Subsequent data is only interpreted as a transmission packet when an interrupt pattern Pat with exactly two identical, following sub-patterns occurs.

[0077] If it is not necessary to send the transmit packet SP via the combined data stream SerDesData, the stream data StrData—along with any additional sub-patterns inserted as described—is transmitted. If no stream is opened, i.e., no stream data StrData is transmitted, but the transmit packet SP must be transmitted, the transmit control unit 55 can directly instruct the output interface 62 to open a new data stream SerDesData by means of the stream open signal NewStr. The data stream SerDesData can then be maintained by means of so-called "idle packets," i.e., transmit packets SP that do not contain other related data, as needed and whenever necessary.

[0078] exist Figure 7A block diagram of a receiving unit 70 according to the present invention is shown exemplary and schematically. The receiving unit 70 is configured to receive input USB data RxData in the form of a transmit packet SP in a data stream SerDesData, the data stream SerDesData being transmitted as described above and including stream data StrData. For this purpose, the receiving unit 70 has an input interface 71, which is connected to… Figure 6 The output interface 61 of the transmitting unit 50 is connected.

[0079] Input interface 71 transmits data to buffer 72 of partitioning unit 73, which partitions the data stream SerDesData into transmit packets SP and stream data StrData. Partitioning unit 73 further includes identification unit 79, which identifies active interrupt mode Pat or the same sub-mode of interrupt mode Pat appearing in the combined data stream SerDesData by comparing it with predefined modes from mode memory 78. If an active interrupt mode Pat with exactly two identical sub-modes following each other is identified, where the directly following data is not equal to the sub-mode, the data is identified as transmit packet SP and forwarded to reconstruction unit 74. Interrupt mode Pat identified in this way indicates a previous plan for transmit packets SP following at intervals using transmit control data ndc. However, if a previous transmit packet SP indicates that other transmit packets SP are planned to follow directly or at intervals using transmit control data ndc, ldc, the arriving data is interpreted accordingly as transmit packet SP and forwarded to reconstruction unit 74 as well.

[0080] If the above conditions are not met, i.e., not exactly two identical sub-patterns form an interrupt mode and the data is not interpreted as a directly following or intermittently following transmission packet SP, then the data is interpreted as streaming data StrData. In the case of three identical sub-patterns following each other, the sub-patterns added during transmission are removed to restore the original streaming data StrData. Streaming data StrData is then forwarded to streaming output interface 76 for output, which is synchronized with the input clock SerDesRxClk. Here, as already described, streaming data StrData also includes the associated flow control data StrCtrl.

[0081] The reconstruction unit 74 first corresponds to a Cyclic Redundancy Check (CRC) check of the checksum of the transmitted packet SP. Transmitted packets SP with incorrect CRC checksums are discarded. Thus, if USB data RxData does not arrive or does not arrive completely, this is achieved through measures defined in the USB standard, such as collecting a new request for the relevant USB data.

[0082] Furthermore, the transmission control data pa0, pa1, pc0, pc1, lnd, ndc, ds0, and ds1 are evaluated. The information contained in the transmission control data pa0, pa1, lnd, and ndc is transmitted to the partitioning unit 73 for interpreting subsequently arriving data in the data stream SerDesData. As described above, the transmission control data pc0, pc1, ds0, and ds1 relate to the data data0 and data1 contained in the current transmission packet SP, and the current transmission packet is correspondingly reconstructed into input USB data RxData in the form of a USB packet. Typically, transmission and reconstruction are performed error-free, such that the input USB data RxData is identical to the previously transmitted output USB data TxData. Therefore, the transmission bits are transparently transmitted. As already determined according to... Figure 5 As described, the reconstructed input USB data RxData, together with its associated control data RxDrpRd and RxDrpPkt, is transmitted via USB output interface 75 to the connected USB interface 41 or ULPI-PHY module 33, wherein it is synchronized with the ULPI clock signal ULPI-Clk of ULPI-PHY module 33 (not shown here).

[0083] Alternatively, the input USB data RxData can be reconstructed in the USB interface 41 in a manner similar to that described above. The corresponding component of the USB interface 41 is then functionally associated with the receiving unit 70.

[0084] Figure 8 A flowchart of a method for transmitting data according to the present invention is shown exemplary and schematically, comprising a method I for transmitting data and a method II for receiving data. Method I for transmitting data is subdivided herein into steps i, i', ii, iii, and iv, and is implemented particularly in the transmitting unit 50, as per [the provided text]. Figure 6 As described.

[0085] In step i, as described above with respect to the transmitting unit 50, output USB data TxData, comprising multiple USB packets with a first digit, is received via the USB input interface 51. Furthermore, in step i', stream data StrData is received via the stream input interface 52.

[0086] In another step ii, the output USB data TxData is divided by means of the allocation unit 53, thereby generating multiple transmission packets SP with a second bit of USB data.

[0087] In step iii, the combining unit 61 inserts the transmission packet SP into the data stream SerDesData, wherein at least one initial transmission packet SP is marked by an interrupt mode Pat. The interrupt mode Pat is therefore inserted into the data stream SerDesData, specifically in the form of two identical sub-modes, and preferably directly before the transmission packet SP. Through the transmission of additional stream data StrData in the data stream SerDesData, a combined or composed data stream SerDesData is thus generated.

[0088] In step iv, the combined data stream SerDesData is sent via output interface 62.

[0089] Method II for receiving data is here subdivided into steps v, vi, vii, viiii, ix, ix', and is implemented particularly in receiving unit 70, as it is based on Figure 7 As described.

[0090] In step v, the combined data stream SerDesData, as described in step iv, is received via input interface 71 of receiving unit 70. The combined data stream SerDesData therefore includes a transmission packet SP and stream data StrData. Here, at least one initial transmission packet SP has an interrupt mode Pat. This signals that USB data RxData exists in the subsequent data stream SerDesData.

[0091] In another step vi, at least one interruption mode Pat is identified in the combined data stream SerDesData by means of the identification unit 79.

[0092] Interruption mode Pat indicates that the following transmission packet SP is sent directly, so that in the subsequent step vii, the partitioning unit 73 uses interrupt mode Pat to partition the data stream SerDesData into transmission packet SP and stream data StrData.

[0093] In step viii, the input USB data RxData contained in the transmission packet SP is reconstructed into a USB data packet by means of the reconstruction unit 74.

[0094] In step ix, the input USB data RxData, reconstructed as a packet, is output via USB output interface 75.

[0095] In step ix', a separate stream of data StrData is output using the stream output interface 76.

[0096] Finally, it should be reiterated that the devices and methods described in detail above are merely embodiments, and these embodiments can be modified in different ways by those skilled in the art without departing from the scope of the invention. Furthermore, the use of the indefinite article "a" or "an" does not exclude the possibility that the features involved may exist multiple times. Similarly, the term "unit" does not exclude the possibility that it may consist of multiple components that can be spatially distributed if necessary. For example, as described above, the reconstruction unit 74 of the receiving unit 70 can also be configured in the USB interface 41, which then also serves as the USB output interface from the receiving unit, wherein the transmitted packet SP is reconstructed into an output USB packet in the USB interface 41 in this case. In another case, it is preferable to process the round-trip path, i.e., the input and output data streams SerDesData, together in the combined transmitting and receiving units 40, so that some components can be shared if necessary.

Claims

1. A method for transmitting (I)USB data (TxData) in a data stream (SerDesData) including streaming data (StrData), the method comprising the following steps: - Receive (i, i') at least a portion of the stream data (StrData) and the USB data (TxData), wherein the USB data comprises a plurality of USB packets having a first digit number. - Divide (ii) the USB data (TxData) to generate multiple transmission packets (SPs) with a second bit of USB data (TxData). - Insert the send packet (SP) into the data stream (SerDesData) described in (iii), and - Send (iv) combined data stream (SerDesData), where An interrupt mode (Pat) is appended at least to the initial transmit packet (SP) to signal that USB data (TxData) is present in the data stream (SerDesData). The transmit packet (SP) includes transmit control data (ndc), which contains information about where to transmit additional transmit packets (SP), wherein the additional transmit packets (SP) do not have an interrupt mode (Pat).

2. The method according to claim 1, The information described therein indicates that additional transmit packets (SPs) are transmitted at predefined intervals.

3. The method according to claim 1 or 2, Each transmit packet (SP) includes transmit control data (ndc).

4. The method according to claim 1 or 2, Once the second bit of USB data (RxData, TxData) is received, the partitioning and insertion process begins.

5. The method according to claim 1 or 2, The interrupt mode (Pat) is selected such that the interrupt mode appears as little as possible in the remaining stream data (StrData).

6. The method according to claim 5, The interrupt mode (Pat) from a plurality of predefined interrupt modes is selected such that the interrupt mode appears as little as possible in the remaining stream data (StrData).

7. The method according to claim 1 or 2, The sent packet (SP) includes sent check data (CRC), which can be used to identify and optionally correct transmission errors.

8. The method according to claim 1 or 2, The sending packet (SP) is inserted into the data stream and sent within a short period of time after its generation.

9. The method according to claim 1 or 2, The interrupt mode (Pat) consists of exactly two identical sub-modes, and if the two identical sub-modes appear in the streaming data, a third identical sub-mode is appended to them to distinguish them from the interrupt mode (Pat).

10. A method for receiving (II) data (SerDesData) transmitted according to any one of claims 1 to 9, the method comprising the steps of: - Receive (v) combined data stream (SerDesData), - Identify (vi) interrupt mode (Pat), - The data stream (SerDesData) is divided (vii) into transmit packets (SP) and stream data (StrData) using the interrupt mode (Pat). - Reconstruct (viii) the USB data (RxData) contained in the transmitted packet (SP) into a USB data packet, and - Output the stream data (StrData) and the reconstructed USB data (RxData) separately (ix, ix').

11. A method for transmitting (I, II) data, the method comprising steps (i, i', ii, iii, iv) for transmitting data by means of the method according to any one of claims 1 to 9 and steps (v, vi, vii, viiii, ix, ix') for receiving data by means of the method according to claim 10.

12. A transmitting unit (50) for transmitting USB data (TxData) in a data stream (SerDesData) including streaming data (StrData), the transmitting unit (50) comprising: - At least one stream input interface (52) for receiving the stream data (StrData), - A USB input interface (51) for receiving the USB data (TxData), the USB data (TxData) comprising multiple USB packets with a first digit number. - Allocation unit (53) for dividing the USB data (TxData) to generate multiple transmission packets (SPs) with a second bit of USB data (TxData). - Combination unit (61) for inserting the transmit packet (SP) into the data stream (SerDesData), and - Output interface (62) for sending combined data stream (SerDesData), where The interrupt mode (Pat) is appended at least to the initial transmit packet (SP) to signal that USB data (TxData) is present in the data stream (SerDesData). The transmit packet (SP) includes transmit control data (ndc), which contains information about where to transmit additional transmit packets (SP), wherein the additional transmit packets (SP) do not have an interrupt mode (Pat).

13. A receiving unit (70) for receiving USB data (RxData) in a data stream (SerDesData) including streaming data (StrData), the receiving unit (70) comprising: - Input interface (71) for receiving a combined data stream (SerDesData) comprising a transmit packet (SP) and stream data (StrData), wherein at least one initial transmit packet (SP) has an interrupt mode (Pat) to signal that USB data (RxData) is present in the subsequent data stream (SerDesData). - Identification unit (79), used to identify interrupt mode (Pat), - A partitioning unit (73) is used to partition the data stream (SerDesData) into transmit packets (SP) and stream data (StrData) using the interrupt mode (Pat). - Reconstruction unit (74), used to reconstruct the USB data (RxData) contained in the transmitted packet (SP) into a USB packet, - At least one stream output interface (76) for outputting the stream data (StrData), -USB output interface (75), used to output the USB data (RxData), The transmit packet (SP) includes transmit control data (ndc), which contains information about where to transmit additional transmit packets (SP), wherein the additional transmit packets (SP) do not have an interrupt mode (Pat).

14. A transmission system (100) for transmitting USB data (TxData, RxData) in at least one data stream (SerDesData) including streaming data (StrData), the transmission system (100) having: - A client device (31), the client device (31) having a transmitting unit (50) according to claim 12 and a receiving unit (70) according to claim 13, and -A host device (30), the host device (30) having a transmitting unit (50) according to claim 12 and a receiving unit (70) according to claim 13, wherein The sending unit (50) of the client device (31) is connected to the receiving unit (70) of the host device (30), and the sending unit (50) of the host device (30) is connected to the receiving unit (70) of the client device (31).

15. A computer program product having a computer program that can be directly loaded into the logic means of a transmitting unit (50) and / or a receiving unit (70), the computer program having program segments that, when executed in the transmitting unit (50) and / or the receiving unit (70), perform at least a portion of the steps of the method according to any one of claims 1 to 9 and / or claim 10 or claim 11.

16. A computer-readable medium storing a program segment that can be programmed and executed on a logic device so that, when the program segment is executed by the logic device, at least a portion of the steps of the method according to any one of claims 1 to 9 and / or claim 10 or claim 11 is performed.

Citation Information

Patent Citations

  • Protocol for digital audio-video interface

    US9575917B1