Sending universal serial bus (USB) data over an alternate mode connection

By generating alternating mode compatible packets and using Thunderbolt™ interface tunnels to transmit USB 3.1 data, the incompatibility between Thunderbolt™ interface and USB 3.1 specification is resolved, achieving coexistence and compatibility of USB 2.0 and USB 3.1 functions.

CN115509980BActive Publication Date: 2026-06-05INTEL CORP

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INTEL CORP
Filing Date
2017-01-26
Publication Date
2026-06-05

AI Technical Summary

Technical Problem

The existing Thunderbolt™ interface is not compatible with the USB 3.1 specification, which means that USB 2.0 and USB 3.1 functions cannot coexist in a Type-C connector. Software modifications are required to enable USB 3.1 data transfer.

Method used

By generating alternating mode compatible packets, USB 3.1 data is transmitted via Thunderbolt™ interface tunneling, sending and receiving data using USB Type-C cables, and restoring the original USB packets at the receiver adapter, avoiding software modification.

Benefits of technology

It enables the coexistence of USB 2.0 and USB 3.1 functions on the Thunderbolt™ interface, supports various connection types, maintains compatibility with USB devices, and implements data transfer through hardware.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115509980B_ABST
    Figure CN115509980B_ABST
Patent Text Reader

Abstract

Examples include an apparatus for transmitting universal serial bus (USB) packets. The apparatus includes a transmitter adapter to receive a USB packet from a USB device. The transmitter adapter can also generate one or more alternate mode packets based on the USB packet. The transmitter adapter can also transmit the alternate mode packets via an alternate mode connection.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the same patent application, filed on January 26, 2017, with application number 201780014422.6.

[0002] Cross-reference to related applications

[0003] This application claims the benefit of U.S. Patent Application No. 15 / 088,997, entitled “Transmitting Universal Serial Bus (USB) Data over Alternate Mode Connection”, filed April 1, 2016 by Rozic et al., which is incorporated herein by reference. Background Technology

[0004] Interconnect channels are used to connect electronic devices, such as USB devices, to computing devices. For example, a USB device may include a hard disk drive (HDD) connected via a long cable and a thumb drive connected via a short interconnect channel (as well as interconnect channels of other devices and other lengths).

[0005] Thunderbolt TM It is an interface that combines peripheral component interconnection fast (PCIe) and DisplayPort (DP) interfaces into a single serial signal to provide DC power in a single cable. Attached Figure Description

[0006] Figure 1 This is a block diagram illustrating an exemplary system that can transmit USB via an alternating mode interface tunnel;

[0007] Figure 2 This is a block diagram illustrating an exemplary physical topology for transmitting USB via an alternating mode interface tunnel.

[0008] Figure 3 This is a cross-section of an exemplary logical topology for transmitting USB via an alternating mode interface tunnel;

[0009] Figure 4 This is a block diagram of an exemplary alternating pattern packet header;

[0010] Figure 5 This is a block diagram illustrating an exemplary computing device that can transmit USB via an alternating mode interface tunnel;

[0011] Figure 6 This is a flowchart illustrating a method for transmitting USB via an alternating mode interface tunnel; and

[0012] Figure 7This is a block diagram illustrating a computer-readable medium storing code for transmitting USB via an alternating mode interface tunnel.

[0013] Throughout this disclosure and in the accompanying drawings, the same numerals are used to refer to the same components and features. The numerals in the 100 series originally appeared in... Figure 1 Features in; the numerical designation in the 200 series first appeared in Figure 2 Features; etc. Detailed Implementation

[0014] As mentioned above, Thunderbolt TM Thunderbolt is an interface that combines support for PCIe (PCIe) and DisplayPort (DP) interfaces into a single serial signal while providing DC power in a single cable. TM Versions 1 and 2 use a Mini DisplayPort connector to connect devices. Current Thunderbolt... TM Version 3 uses USB Type-C as released on April 3, 2015. TM USB Type-C in Cable and Connector Specification Revision 1.1 TM Cables and connectors. Additionally, Thunderbolt... TM Version 3 uses USB Type-C TM This is achieved through an alternating mode. Alternating mode dedicates some of the physical lines in the USB Type-C cable to direct device-to-host transfers using the alternating data protocol. Specifically, four high-speed channels, two sideband pins, and (for dock, detachable, and permanent cable applications only) two USB 2.0 pins and one configuration pin can be used for alternating mode transfers. The mode is configured using vendor-defined messages (VDM) via the configuration channel.

[0015] To use Type-C TM The connection is achieved via Thunderbolt. TM USB tunneling supports both USB 2.0 and USB 3.1 transmission modes. As used herein, tunneling refers to sending data according to a computer network protocol encapsulated within another network protocol. For example, the USB 2.0 standard includes Low Speed ​​(LS), Full Speed ​​(FS), and High Speed ​​(HS) modes. The USB 3.x standard includes SuperSpeed ​​(SS) and SuperSpeed+ (SSP) modes, which can transmit data at speeds up to 5 Gbit / s and 10 Gbit / s, respectively. USB 2.0 in Type-C... TM The connector uses a reserved signal set, which is used once the connector is in USB Type-C.TM When Alternate Mode is enabled, USB 2.0 functionality can coexist with the Alternate Mode interface. Therefore, by using different signaling without any tunneling, USB 2.0 functionality can operate on Thunderbolt. TM Version 3 and later versions coexist. However, the USB 3.0 specification, released on November 17, 2008, and the USB 3.1 specification, released on July 26, 2013, are not included in Type-C. TM The connector uses any reserved signal set, and therefore is currently not compatible with Thunderbolt. TM Alternating modes coexist.

[0016] In summary, this disclosure relates to the use of Thunderbolt TM This document describes a technique for transmitting USB 3.1 data via an interface tunnel. Specifically, the technique includes systems, methods, and interface controllers for transmitting USB 3.x data via a Type-C connector by generating alternating mode compatible packets. For example, alternating mode packets can be generated at a USB transmitter adapter, transmitted via a USB Type-C cable, and received at a USB receiver adapter. The USB receiver adapter can then generate a USB packet corresponding to the initially received USB packet based on the alternating mode packet. For example, the USB packet can be generated based on header information in the alternating mode packet. Therefore, the technique enables connection to Thunderbolt... TM USB devices within the domain can connect to a single Scalable Host Controller Interface (xHCI) controller. Furthermore, no software modification is required because the USB receiver adapter outputs USB packets in the same format as the USB transmitter adapter receives USB packets. Additionally, instead of via Thunderbolt... TM Domain hot-pluggable xHCI controllers, USB hubs, and USB devices can be hot-plugged more naturally. Therefore, various connection types can be implemented through alternating modes, as implemented by the USB Type-C specification. Specifically, the USB Type-C specification allows signal pins to be reassigned for purposes other than USB2 / USB3 data transfer. These reassignments are called alternating modes. Each USB Type-C port can support zero or more alternating modes. In embodiments, an alternating mode can be a form of operation in which data is sent and received across pins and / or hardware, wherein the pins and / or hardware indicate a first protocol, while data is packaged, encoded / decoded, or otherwise transmitted according to a second protocol.

[0017] Now for reference Figure 1 This shows that it can be accessed via devices such as Thunderbolt. TMA block diagram of an exemplary system for tunneling USB using an alternating mode interface, such as an interface, is shown. The exemplary system is generally referred to by reference numeral 100 and can be used with the following... Figure 5 This can be achieved using a computing device 500. For example, the above can be used. Figure 1 The exemplary system 100 is implemented using the alternating mode interface of the computing device 126.

[0018] System 100 may include an xHCI port 102. For example, the xHCI port 102 may be a host controller for Universal Serial Bus (USB) capable of interfacing with USB 1.x, 2.0, and 3.x compatible devices. System 100 may also include a USB 2.0 hub 104 and a USB 3.1 hub 106. USB 2.0 hub 104 and USB 3.0 hub 106 include USB uplink hubs 108 and 110, respectively. USB 2.0 hub 104 may also include two USB downlink ports 112 and 114. USB 2.1 hub 106 may include two USB downlink hubs 116 and 118. System 100 may also include two alternating mode connections 120 and 122. Alternating mode connection 120 connects to two Type-C ports 124 and 126. Alternating mode connection 122 is coupled to two Type-C ports 128 and 130. Additionally, system 100 may include a USB 3.x adapter 132 coupled to xHCI port 102 and an alternating mode interface 134 coupled to USB 3.x adapter 132. Depending on the direction of data flow, USB 3.x adapter 132 may be referred to as a USB transmitter adapter or a USB receiver adapter. The system may include another alternating mode interface 136 coupled to USB adapter 138 and one or more other adapters 140. For example, other adapters 140 may include PCIe adapters and DP adapters. USB adapter 138 is also coupled to USB uplink hub 110 of USB 3.x hub 106. Another USB adapter 142 is coupled to USB downlink hub 116 of USB 3.x hub 106 and alternating mode interface 144. Alternating mode interface 144 is coupled to USB Type-C connection 128. Another alternating mode interface 146 is coupled to Type-C connection 130 and USB adapter 148.

[0019] like Figure 1As shown, xHCI port 102 can receive 150 and send 152 USB 2.0 services via Type-C connectors 124 and 126 through connections 154 and 156 using a Type-C cable. As indicated by arrows 158 and 160, Type-C connector 124 can directly send USB 2.0 services to and from USB 2.0 hub 104. USB 2.0 services can be sent and received between USB uplink hub 108 and USB downlink hub 114 of the USB 2.0 hub, as indicated by arrows 162 and 164. USB downlink hub 114 can be coupled to USB Type-C connector 118 and send and receive USB 2.0 services as indicated by arrows 166 and 168. Then, as indicated by arrows 170 and 172, USB 2.0 services can be sent or received between Type-C connector 128 and Type-C connector 130. For example, USB 2.0 traffic can be sent via any suitable USB Type-C compatible cable. USB 2.0 traffic can then be sent and received from any number of USB 2.0 devices (not shown).

[0020] xHCI port 102 can also send and receive USB 3.x data, such as USB 3.0 data or USB 3.1 data. For example, xHCI port 102 can receive USB 3.x data packets from a USB device and forward the packets to USB 3.x adapter 132. USB 3.x adapter 132 can generate alternating mode packets based on the USB 3.x packets and send the alternating mode packets to alternating mode interface 134 for transmission. In some examples, the alternating mode packets include a packet header that includes a value indicating the layer type. In some examples, the alternating mode packets may include a packet header that includes a field indicating the path between the upstream and downstream ports. For example, the field may indicate the path for a virtual link between the upstream and downstream USB ports. In some examples, the alternating mode packets may include packets to be sent periodically. In some examples, all alternating mode packets may include portions of USB packets. For example, the USB packets may be data packets. In some examples, the alternating mode packets may include a packet header that includes a length field indicating the transaction length in bytes. In some examples, alternating pattern grouping may include a group header that includes fields to be used for synchronization and error checking.

[0021] As by Figure 1As indicated by arrows 174 and 176, alternating mode packets can be sent and received between Type-C connectors 124 and 126. For example, alternating mode packets can be sent and received via a USB Type-C cable. Alternating mode interface 136 can receive alternating mode packets and forward them to USB 3.x adapter 138. USB 3.x adapter 138 can then generate USB 3.x packets based on the received alternating mode packets. For example, USB 3.x adapter 138 can concatenate two or more alternating mode packets using header information included in the alternating mode packets. The generated USB packets can then be sent to USB 3.x hub 106. USB 3.x packets can be sent and received between USB uplink hub 110 and USB downlink hub 116 of USB 3.x hub 106, as indicated by arrows 178 and 180. In some examples, USB packets can be sent to one or more USB 3.x devices (not shown) via USB downlink hub 118. In some examples, USB 3.x packets can be sent to USB adapter 142. USB adapter 142 can generate alternating mode packets to be sent to alternating mode interface 144 and transmitted between Type-C connectors 128 and 130 (as shown by arrows 182 and 184). For example, alternating mode packets can be transmitted via a USB Type-C cable. Alternating mode interface 146 can receive alternating mode packets from Type-C port 130 and send the packets to USB adapter 148. For example, USB adapter 148 can be a USB receiver adapter. USB adapter 148 can generate USB packets based on the received alternating mode packets. For example, USB adapter 148 can recover USB packets based on alternating mode packets by removing the alternating mode header from the alternating mode packets. In some examples, USB receiver adapter 148 can recover USB packets based on alternating mode packets by combining data from two or more alternating mode packets. In some examples, alternating mode packets may include packet headers containing values ​​to be used by USB adapter 148 to parse commands and data. Therefore, at least one alternating mode path can be used to establish a USB virtual link between a downstream port and an upstream port.

[0022] Figure 1 The diagram is not intended to indicate that the exemplary system 100 shall include Figure 1 All the components shown. Instead, fewer components or... Figure 1 The exemplary system 100 may be implemented using other components not shown in the figure (e.g., additional hubs, USB adapters, ports, connections, etc.).

[0023] Figure 2It shows the use of, for example, Thunderbolt TM A block diagram of an exemplary physical topology for USB tunneling using an alternating mode interface, such as an interface. The exemplary physical topology is generally referred to by reference numeral 200 and can be used as follows. Figure 5 This can be achieved using a computing device 500. For example, it can be implemented using a computing device 500. Figure 1 An exemplary physical topology 200 can be implemented in the alternating mode interface of the computing device. For example, it can be implemented in the above... Figure 1 The SoC 202 is implemented in computing devices.

[0024] Physical topology 200 may include a system-on-a-chip (SoC) 202. SoC 202 may include multiple xHCI ports 212 connected to an alternating mode switch 214 via connections 216, 218. For example, the alternating mode switch 214 may be a Thunderbolt. TM Switches. As shown by arrow 220, one of the xHCI host ports 212 is also shown connected to USB endpoint 208. Alternating mode switch 214 is shown as alternating mode switch 224 coupled to alternating mode device 204 via arrow 222. For example, alternating mode switches 214, 224 can be coupled via a USB Type-C cable. Alternating mode switch 224 is also shown as USB hub 226 coupled to alternating mode device 204 via connections 228, 230. Alternating mode switch 224 is also shown as alternating mode switch 234 coupled to alternating mode device 206 via arrow 232. Alternating mode switch 234 is shown as USB hub 236 coupled to alternating mode device 206 via connections 238, 240. USB hub 236 is shown as coupled to USB endpoint 210 via connection 242.

[0025] In the exemplary physical topology 200, one or more USB 3.x data streams can be sent from xHCI port 212 to and received from alternating mode switch 214 via connections 216, 218. Alternating mode switches 214, 224, and 234 can all have USB adapters for generating alternating mode packets to be sent via connections 222, 232. The USB adapters can also generate USB packets from the alternating mode packets to be sent to USB hubs 226, 236 for delivery to any number of USB endpoints 210. Therefore, alternating mode switches can be used to add USB 3.x functionality while maintaining compatibility with USB endpoint devices 208, 210. (The following is a brief explanation...) Figure 5 The functionality of the USB adapter is discussed in more detail.

[0026] Figure 2The diagram is not intended to indicate that the exemplary physical topology 200 should include Figure 2 All the components shown. Instead, fewer components or... Figure 2 Additional components (e.g., additional ports, switches, hubs, endpoints, etc.) not shown in the diagram are used to implement the exemplary physical topology 200.

[0027] Figure 3 It is used for communication via devices such as Thunderbolt. TM A cross-section of an exemplary logical topology for USB tunneling via an alternating mode interface, such as an interface. The exemplary logical topology is generally referred to by reference numeral 300 and can be used as follows. Figure 5 This is implemented using a computing device 500. For example, an exemplary logical topology 300 may correspond to... Figure 2 The physical topology 200, and can be found below. Figure 5 It is implemented in the alternating mode interface 526 of the computing device.

[0028] Logical topology 300 may include a system-on-chip (SoC) 302 coupled to USB endpoints 308 and 310 and alternating mode devices 304 and 306. For example, alternating mode devices 304 and 306 may be Thunderbolts. TM Device. SoC 302 may include multiple xHCI host ports 312 connected to USB hub 314, which is connected to USB endpoint 308 and alternating mode device 304, as indicated by arrows 316 and 318, respectively. For example, arrow 318 may indicate an alternating mode connection using a USB Type-C connector. USB hub 314 is also coupled to USB hub 322, as indicated by arrow 320. Arrow 320 may indicate an alternating mode connection using a USB Type-C connector.

[0029] like Figure 3 As shown, logical topology 300 is illustrated as a series of USB hubs 314, 322 connecting xHCI host port 312 and USB endpoint 310. Although alternating mode packets are used during transmissions via connections 318 and 320, logical topology 300 appears to resemble a series of USB hubs connected via two alternating mode connections 318 and 320.

[0030] Figure 3 The diagram is not intended to indicate that the exemplary logical topology 300 should include Figure 3 All the components shown. Instead, fewer components or... Figure 3 Additional components (e.g., additional ports, USB hubs, USB endpoints, SoCs, etc.) not shown in the diagram are used to implement the exemplary logical topology 300.

[0031] Figure 4 This is a block diagram of an exemplary alternating pattern packet header. The exemplary packet header is generally referred to by reference numeral 400 and can be used as described above. Figure 1 This can be achieved using system 100. For example, it can be implemented using the above. Figure 1 USB adapters 138 and 142 send and receive exemplary packet headers 400.

[0032] The packet header 400 includes a Protocol Definition (PDF) field 402, a HopID field 404, a Length field 406, and a Header Error Control / Check (HEC) field 408. In some examples, the PDF 402 may be 4 bits in size, the HopID field 404 may be 12 bits in size, the Length field 406 may be 8 bits in size, and the HEC field 408 may be 8 bits in size.

[0033] In the exemplary packet header 400, the USB receiver adapter can use the PDF field 402 to parse commands and data. For example, the USB transmitter adapter can encode the PDF 402 to indicate the type of layer from which the information is being transmitted. For example, the value 0000b can be used to indicate a Low Frequency Periodic Signaling (LFPS) layer.

[0034] In some examples, the value 0001b can be used to indicate an ordered set in the PDF 402 field. The ordered set value can be used to convey training sequence 1 (TS1), training sequence 2 (TS2), start data stream (SDS), and ordered set (OS) information.

[0035] In some examples, the value 0010b can be used to indicate the link layer in PDF 402 of the alternating mode packet header. The link layer can be used to transmit link command information. A link layer packet can include two DWORDs of data covering a complete 8-symbol link command.

[0036] In some examples, the value 0011b can be used to indicate a protocol layer that includes Link Management Packets (LMP), Transaction Packets (TP), Isochronous Timestamp Packets (ITP), and Data Packet Headers (DPH). This protocol layer packet can be used to transmit the protocol layer header. For example, the packet may include five or six DWORDs of data that cover the complete structure of the protocol layer packet.

[0037] In some examples, three protocol-defined field (PDF) 402 values ​​can be used to define protocol layer data packets. For example, because USB packets can be longer than alternating mode packets, USB packets can be segmented at the USB transmit adapter and reassembled at the USB receive adapter. For example, value 0100b can be used to indicate the start / single segment data packet, value 0101b can indicate the middle segment data packet of the protocol layer, and value 0110b can indicate the end segment data packet of the protocol layer. In some examples, values ​​0111b-1111b can be reserved to indicate additional optional layers or functions.

[0038] In some examples, the HopID field 404 can be used to indicate the path for each virtual link between the upstream and downstream USB ports.

[0039] In some examples, the length field 406 can be used to indicate the length of a specific packet. For instance, data packets can be of variable length depending on the data being sent. Therefore, the length field 406 can be used to indicate the data of a transaction in bytes.

[0040] In some examples, the HEC field 408 can be used to synchronize and check for errors in alternating pattern packets. For instance, the HEC field 408 can be used to verify the correctness of the header.

[0041] Figure 4 The diagram is not intended to indicate that the exemplary group header 400 should include Figure 4 All the components shown. Instead, fewer components or... Figure 4 Additional components (e.g., additional fields, field values, etc.) not shown in the diagram implement the exemplary packet header 400. For example, the specific structure of the packet header may depend on the protocol through which USB 3.x is to be tunneled.

[0042] Figure 5This is a block diagram illustrating an exemplary computing device that can transmit USB data via an alternating mode interface tunnel. The computing device 500 may be, for example, a laptop computer, desktop computer, tablet computer, mobile device, or server. The computing device 500 may include: a central processing unit (CPU) 502 configured to execute stored instructions; and a memory device 504 storing instructions executable by the CPU 502. The CPU 502 may be coupled to the memory device 504 via a bus 506. Furthermore, the CPU 502 may be a single-core processor, a multi-core processor, a computing cluster, or any number of other configurations. Additionally, the computing device 500 may include more than one CPU 502. The memory device 504 may include random access memory (RAM), read-only memory (ROM), flash memory, or any other suitable memory system. For example, the memory device 504 may include dynamic random access memory (DRAM).

[0043] The computing device 500 may also include a graphics processing unit (GPU) 508. As shown, the CPU 502 can be coupled to the GPU 508 via a bus 506. The GPU 508 can be configured to perform any number of graphics operations within the computing device 500. For example, the GPU 508 can be configured to render or manipulate graphical images, graphics frames, videos, etc., to be displayed to a user of the computing device 500.

[0044] Memory device 504 may include random access memory (RAM), read-only memory (ROM), flash memory, or any other suitable memory system. For example, memory device 504 may include dynamic random access memory (DRAM). Memory device 504 may include device driver 510, which is configured to execute instructions for device discovery. Device driver 510 may be software, application programs, application code, etc.

[0045] CPU 502 can also be connected via bus 506 to input / output (I / O) device interface 512, which is configured to connect computing device 500 to one or more I / O devices 514. I / O devices 514 may include, for example, a keyboard and indicating devices, wherein the indicating devices may include a touchpad or touchscreen, etc. I / O devices 514 may be built into computing device 500 or may be externally connected to computing device 500. In some examples, memory 504 may be communicatively coupled to I / O devices 514 via direct memory access (DMA).

[0046] CPU 502 can also be linked to display interface 516 via bus 506, which is configured to connect computing device 500 to display device 518. Display device 518 may include a display screen, which is a built-in component of computing device 500. Display device 518 may also include a computer monitor, television, or projector, etc., connected internally or externally to computing device 500.

[0047] The computing device also includes a storage device 520. Storage device 520 is a physical memory such as a hard disk drive, optical disk drive, thumb drive, drive array, or any combination thereof. Storage device 520 may also include a remote storage drive.

[0048] The computing device 500 may also include a network interface controller (NIC) 522. The NIC 522 can be configured to connect the computing device 500 to a network 524 via a bus 506. The network 524 can be a wide area network (WAN), a local area network (LAN), or the Internet, etc. In some examples, the device can communicate with other devices wirelessly. For example, the device can communicate with other devices via a wireless LAN connection. In some examples, the device can communicate via... Or similar technologies to connect and communicate with other devices.

[0049] CPU 502 can also be linked via bus 506 to alternating mode interface 526, which is configured to connect computing device 500 to any number of USB 3.1 devices 528. For example, the USB devices may include both USB 2.0 and USB 3.1 devices. In some examples, alternating mode interface 526 may be Thunderbolt. TM Interface. The alternating mode interface 526 can also be configured to connect the computing device 500 to any number of display devices. For example, the alternating mode interface 526 can be connected to the USB device 528 and the display device 530 via any suitable connection (e.g., a Type-C USB connection).

[0050] Figure 5 The block diagram is not intended to indicate that computing device 500 should include Figure 5 All the components shown. Instead, computing device 500 may include fewer components or Figure 5 Other components not shown may include, for example, additional USB devices, additional display devices, etc. Depending on the specific implementation details, computing device 500 may include... Figure 5 Any number of additional components not shown. Furthermore, any of the functions of CPU 502 may be implemented in hardware, either partially or entirely, and / or in the processor.

[0051] Figure 6 It shows the use of, for example, Thunderbolt TM A flowchart illustrating a method for tunneling USB via an alternating mode interface 526, such as an interface. Exemplary methods are generally referred to by reference numeral 600 and can be used as described above. Figure 5 It is implemented using the alternating mode interface 526.

[0052] At box 602, the first interface receives USB packets from the first USB device. For example, the first interface could be a USB transmitter adapter.

[0053] At box 604, the first interface generates an alternating pattern packet based on the USB packet. For example, the first interface may add an alternating pattern packet header to the USB packet. In some examples, the USB packet may be segmented into alternating pattern packets at the first interface.

[0054] At box 606, the first interface sends alternating mode packets to the second interface via an alternating mode connection. For example, the second interface could be a USB receiver adapter. In some examples, the alternating mode connection could be a USB Type-C cable.

[0055] At box 608, the second interface recovers the USB packet based on the received alternating pattern packets. For example, the second interface can remove the alternating pattern packet header from the alternating pattern packet to recover the USB packet. In some examples, the second interface combines two or more alternating pattern packets to recover segmented USB packets.

[0056] At box 610, the second interface sends the recovered USB packets to the second USB device. For example, the second USB device can detect the received USB packets as if it were connected to the first USB device via a USB hub. Therefore, the alternating mode connection can be transparent to both the first and second USB devices.

[0057] In some examples, the second USB device may send USB packets to the first USB device in the same way that the first USB device sends packets to the second USB device (as described above in boxes 602-610).

[0058] This process flow diagram is not intended to indicate that the boxes of the exemplary process 600 should be executed in any particular order, or to include all boxes in every case. Furthermore, depending on the details of the specific implementation, any number of additional boxes, not shown, may be included within the exemplary process 600.

[0059] Figure 7This is a block diagram illustrating a computer-readable medium 700 storing code for transmitting USB via an alternating mode interface tunnel. The computer-readable medium 700 can be accessed by a processor 702 via a computer bus 704. Furthermore, the computer-readable medium 700 may include code configured to instruct the processor 702 to execute the methods described herein. In some embodiments, the computer-readable medium 700 may be a non-transitory computer-readable medium. In some examples, the computer-readable medium 700 may be a storage medium. However, in any case, the computer-readable medium does not include transient media such as carrier waves, signals, etc.

[0060] Figure 7 The block diagram is not intended to indicate that computer-readable media 700 should include Figure 7 All components shown. Furthermore, depending on the details of the specific implementation, the computer-readable medium 700 may include... Figure 7 Any number of additional components not shown in the diagram.

[0061] The various software components discussed in this article can be stored on one or more computer-readable media 700, such as Figure 7 This is indicated. For example, receiver module 706 can be configured to receive USB packets from a first USB device. For example, the USB device could be a USB 3.x device. The USB packets could be data packets. Generator module 708 can generate alternating pattern packets based on the USB packets. For example, the alternating pattern packets could be Thunderbolt packets. TM Grouping. In some examples, generator module 708 can add an alternating mode group header to a USB group. In some examples, generator module 708 can parse commands and data via the alternating mode group header. In some examples, generator module 708 can segment a USB group into alternating mode groups. Transmitter module 710 can send alternating mode groups to an interface coupled to a second USB device. For example, the second USB device could be a USB 3.x device. The interface could be an alternating mode interface. For example, the interface could be Thunderbolt. TM interface.

[0062] In some examples, receiver module 706 can receive a second set of alternating pattern packets from the interface. In some examples, generator module 708 can generate USB packets based on alternating pattern packets. For example, the USB packets could be USB 3.x packets. In some examples, generator module 708 can remove the alternating pattern packet header from the alternating pattern packets. In some examples, generator module 708 can combine multiple alternating pattern packets to recover segmented USB packets. In some examples, transmitter module 710 can send the recovered USB packets to the first USB device. In some examples, the alternating pattern packets are therefore transparent to both the first and second USB devices. For example, the first and second USB devices may not detect the alternating pattern packets.

[0063] Figure 7 The block diagram is not intended to indicate that computer-readable media 700 should include Figure 7 All components shown. Furthermore, depending on the details of the specific implementation, the computer-readable medium 700 may include... Figure 7 Any number of additional components not shown in the diagram.

[0064] Example

[0065] Example 1 is an apparatus for transmitting Universal Serial Bus (USB) packets. The apparatus for transmitting USB packets includes a transmitter adapter for receiving USB packets from a USB device. The transmitter adapter is also used to generate one or more alternating mode packets based on the USB packets. The transmitter adapter is also used to transmit alternating mode packets via an alternating mode connection.

[0066] Example 2 includes the means of Example 1 for transmitting Universal Serial Bus (USB) packets, with or without optional features. In this example, the USB packets include USB 3.x packets.

[0067] Example 3 includes any of the means for transmitting Universal Serial Bus (USB) packets from Examples 1 to 2, with or without optional features. In this example, the alternating mode packet includes a packet header that includes a value indicating the layer type.

[0068] Example 4 includes any of Examples 1 to 3 for transmitting Universal Serial Bus (USB) packets, with or without optional features. In this example, the alternating mode packet includes a packet header that includes fields indicating the path between the upstream and downstream ports.

[0069] Example 5 includes any of Examples 1 through 4 for transmitting Universal Serial Bus (USB) packets, including or excluding optional features. In this example, alternating pattern packets include packets to be transmitted periodically.

[0070] Example 6 includes any of Examples 1 to 5 for transmitting Universal Serial Bus (USB) packets, including or excluding optional features. In this example, the alternating mode packet includes a portion of a USB packet, wherein the USB packet includes data packets.

[0071] Example 7 includes any of Examples 1 through 6 for transmitting Universal Serial Bus (USB) packets, including or excluding optional features. In this example, the alternating mode packet includes a packet header that includes a field indicating the path for a virtual link between an upstream USB port and a downstream USB port.

[0072] Example 8 includes any of Examples 1 through 7 for transmitting Universal Serial Bus (USB) packets, with or without optional features. In this example, the alternating mode packet includes a packet header that includes a length field for indicating the transaction length in bytes.

[0073] Example 9 includes any of Examples 1 through 8 for transmitting Universal Serial Bus (USB) packets, with or without optional features. In this example, the alternating mode packets include a packet header that includes fields for synchronization and error checking.

[0074] Example 10 includes any of Examples 1 through 9 for transmitting Universal Serial Bus (USB) packets, including or excluding optional features. In this example, the alternating mode connection includes a USB Type-C cable.

[0075] Example 11 is an apparatus for receiving USB packets via an alternating mode interface. The apparatus includes a receiver adapter configured to: receive alternating mode packets from a USB transmitter adapter via an alternating mode connection; recover USB packets based on the alternating mode packets; and transmit USB packets to a USB device.

[0076] Example 12 includes the device of Example 11, with or without optional features. In this example, the alternating mode connection includes a USB Type-C cable.

[0077] Example 13 includes an apparatus that includes any of Examples 11 to 12, with or without optional features. In this example, the receiver adapter is used to recover USB packets based on the alternating mode packet by removing the alternating mode header from the alternating mode packet.

[0078] Example 14 includes a device comprising any of Examples 11 to 13, with or without optional features. In this example, the receiver adapter is used to recover USB packets based on alternating mode packets by combining two or more alternating mode packets.

[0079] Example 15 includes an apparatus of any of Examples 11 to 14, with or without optional features. In this example, the alternating mode packet includes a packet header that includes values ​​to be used by the receiver adapter to parse commands and data.

[0080] Example 16 includes a device that comprises any of Examples 11 to 15, with or without optional features. In this example, the alternating pattern grouping includes a header that includes fields to be used for synchronization and error checking.

[0081] Example 17 includes a device that comprises any of Examples 11 to 16, with or without optional features. In this example, the USB packet includes a data packet.

[0082] Example 18 includes a device comprising any of Examples 11 through 17, with or without optional features. In this example, the receiver adapter is also coupled to an extensible host controller interface (xHCI) controller, wherein the xHCI controller is used to send USB 3.x packets to the receiver adapter and to send USB 2.0 packets directly to the alternating mode connection.

[0083] Example 19 includes a device comprising any of Examples 11 to 18, with or without optional features. In this example, the receiver adapter includes a USB receiver adapter.

[0084] Example 20 includes a device that includes any of Examples 11 to 19, with or without optional features. In this example, the device includes an interface.

[0085] Example 21 is a method for sending USB packets. The method includes: receiving USB packets from a first USB device at a first interface; generating an alternating mode packet based on the USB packets at the first interface; sending the alternating mode packet to a second interface via an alternating mode connection; recovering the USB packets based on the alternating mode packet via the second interface; and sending the recovered USB packets to a second USB device via the second interface.

[0086] Example 22 includes the method of Example 21, with or without optional features. In this example, the first interface includes a USB transmitter adapter, and the second interface includes a USB receiver adapter.

[0087] Example 23 includes the method of any of Examples 21 to 22, with or without optional features. In this example, generating an alternating pattern packet based on a USB packet includes adding an alternating pattern packet header to the USB packet.

[0088] Example 24 includes the method of any of Examples 21 to 23, with or without optional features. In this example, recovering a USB packet based on an alternating pattern packet includes removing the alternating pattern packet header from the alternating pattern packet.

[0089] Example 25 includes the method of any of Examples 21 through 24, with or without optional features. In this example, the USB group is a USB 3.x group.

[0090] Example 26 includes the method of any of Examples 21 through 25, with or without optional features. In this example, the first USB device and the second USB device are USB 3.x devices.

[0091] Example 27 includes the method of any of Examples 21 to 26, with or without optional features. In this example, generating alternating pattern packets based on USB packets includes segmenting the USB packets into alternating pattern packets.

[0092] Example 28 includes the method of any of Examples 21 to 27, with or without optional features. In this example, recovering USB packets includes combining multiple alternating pattern packets to recover segmented USB packets.

[0093] Example 29 includes the method of any of Examples 21 to 28, with or without optional features. In this example, the alternating mode connection is transparent to both the first and second USB devices.

[0094] Example 30 includes a method of any of Examples 21 to 29, with or without optional features. In this example, the method includes sending a second set of USB packets from a second USB device to a first USB device via a second interface, an alternating mode connection, and a first interface.

[0095] Example 31 is a system for transmitting Universal Serial Bus (USB) packets. The system includes: a unit for receiving USB packets from a USB device; a unit for generating one or more alternating pattern packets based on the USB packets; and a unit for transmitting the alternating pattern packets via an alternating pattern connection.

[0096] Example 32 includes the system of Example 31, with or without optional features. In this example, the USB group includes the USB 3.x group.

[0097] Example 33 includes a system that is any of Examples 31 to 32, with or without optional features. In this example, alternating pattern grouping includes a grouping header that includes a value indicating the layer type.

[0098] Example 34 includes a system that comprises any of Examples 31 to 33, with or without optional features. In this example, the alternating pattern packet includes a packet header that includes fields for indicating the path between the upstream and downstream ports.

[0099] Example 35 includes a system that is any of Examples 31 through 34, with or without optional features. In this example, alternating pattern packets include packets to be sent periodically.

[0100] Example 36 includes a system of any of Examples 31 to 35, with or without optional features. In this example, the alternating mode grouping includes a portion of a USB group, wherein the USB group includes a data group.

[0101] Example 37 includes a system that comprises any of Examples 31 through 36, with or without optional features. In this example, the alternating mode packet includes a packet header that includes a field indicating the path for the virtual link between the upstream USB port and the downstream USB port.

[0102] Example 38 includes a system that comprises any of Examples 31 through 37, with or without optional features. In this example, the alternating pattern grouping includes a group header that includes a length field for indicating the transaction length in bytes.

[0103] Example 39 includes a system that comprises any of Examples 31 through 38, with or without optional features. In this example, the alternating pattern grouping includes a group header that includes fields to be used for synchronization and error checking.

[0104] Example 40 includes a system that is any of Examples 31 through 39, with or without optional features. In this example, the alternating mode connection includes a USB Type-C cable.

[0105] Example 41 is a system for receiving USB packets via an alternating mode interface. The system includes: a unit for receiving alternating mode packets from a transmitter adapter via an alternating mode connection; a unit for recovering USB packets based on the alternating mode packets; and a unit for sending USB packets to a USB device.

[0106] Example 42 includes the system of Example 41, with or without optional features. In this example, the alternating mode connection includes a USB Type-C cable.

[0107] Example 43 includes a system comprising any of Examples 41 to 42, with or without optional features. In this example, the unit for recovering USB packets is used to recover USB packets based on alternating pattern packets by removing the alternating pattern header from the alternating pattern packets.

[0108] Example 44 includes a system comprising any of Examples 41 to 43, with or without optional features. In this example, the unit for recovering USB packets is used to recover USB packets based on alternating pattern packets by combining data from two or more alternating pattern packets.

[0109] Example 45 includes a system that comprises any of Examples 41 through 44, with or without optional features. In this example, the alternating mode packet includes a packet header that includes values ​​to be used by the USB receiver adapter to parse commands and data.

[0110] Example 46 includes a system that comprises any of Examples 41 through 45, with or without optional features. In this example, the alternating pattern grouping includes a header that includes fields to be used for synchronization and error checking.

[0111] Example 47 includes a system that comprises any of Examples 41 through 46, with or without optional features. In this example, the USB packet includes a data packet.

[0112] Example 48 includes a system of any of Examples 41 to 47, with or without optional features. In this example, a unit for receiving alternating mode packets is coupled to an extensible host controller interface (xHCI) controller, wherein the xHCI controller is used to send USB 3.x packets to a receiver adapter and to send USB 2.0 packets directly to the alternating mode connection.

[0113] Example 49 includes a system comprising any of Examples 41 to 48, with or without optional features. In this example, the unit for recovering USB packets includes a USB receiver adapter.

[0114] Example 50 includes a system of any of Examples 41 to 49, with or without optional features. In this example, the unit for receiving alternating pattern packets includes an interface.

[0115] Example 51 is at least one computer-readable medium having instructions stored thereon for sending USB packets. The computer-readable medium includes instructions for a boot processor to receive USB packets from a first USB device. The computer-readable medium also includes instructions for a boot processor to generate alternating pattern packets based on the USB packets. The computer-readable medium further includes instructions for a boot processor to send alternating pattern packets to an interface coupled to a second USB device.

[0116] Example 52 includes the computer-readable medium of Example 51, including or excluding optional features. In this example, the computer-readable medium includes instructions for receiving a second set of alternating pattern packets from an interface. The computer-readable medium also includes instructions for a boot processor to generate USB packets based on the alternating pattern packets. The computer-readable medium further includes instructions for a boot processor to send the recovered USB packets to a first USB device.

[0117] Example 53 includes a computer-readable medium of any of Examples 51 to 52, including or excluding optional features. In this example, the USB packet includes a data packet.

[0118] Example 54 includes a computer-readable medium of any of Examples 51 to 53, including or excluding optional features. In this example, the computer-readable medium includes instructions for adding an alternating pattern packet header to a USB packet.

[0119] Example 55 includes a computer-readable medium of any of Examples 51 to 54, including or excluding optional features. In this example, the computer-readable medium includes instructions for removing the alternating pattern packet header from the alternating pattern packet.

[0120] Example 56 includes a computer-readable medium of any of Examples 51 to 55, including or excluding optional features. In this example, the first USB device and the second USB device are USB 3.x devices.

[0121] Example 57 includes a computer-readable medium of any of Examples 51 to 56, including or excluding optional features. In this example, the computer-readable medium includes instructions for segmenting USB packets into alternating pattern packets.

[0122] Example 58 includes a computer-readable medium of any of Examples 51 to 57, including or excluding optional features. In this example, the computer-readable medium includes instructions for combining multiple alternating pattern packets to recover segmented USB packets.

[0123] Example 59 includes a computer-readable medium of any of Examples 51 to 58, including or excluding optional features. In this example, the alternating pattern grouping is transparent to both the first and second USB devices.

[0124] Example 60 includes a computer-readable medium of any of Examples 51 to 59, including or excluding optional features. In this example, the computer-readable medium includes instructions for parsing header commands and data via alternating pattern grouping.

[0125] Not all components, features, structures, characteristics, etc., described and illustrated herein need to be included in one or more specific aspects. For example, if the specification states that a component, feature, structure, or characteristic "may," "may," "can," or "may" be included, then that particular component, feature, structure, or characteristic is not required to be included. If the specification or claims refer to an element "a" or "an," it does not imply that only one of the elements exists. If the specification or claims refer to an element "another," it does not exclude the existence of more than one other element.

[0126] It should be noted that although some aspects have been described with reference to specific embodiments, other embodiments are also possible according to some aspects. Furthermore, the arrangement and / or order of circuit elements or other features shown in the drawings and / or described herein need not be arranged in the specific manner shown and described. Many other arrangements are possible according to some aspects.

[0127] In each system shown in the accompanying drawings, elements may have the same or different reference numerals in some cases to indicate that the elements represented may be different and / or similar. However, the elements can be flexible enough to have different implementations and work with some or all of the systems shown or described herein. The various elements shown in the accompanying drawings may be the same or different. Which element is referred to as the first element and which as the second element is arbitrary.

[0128] It should be understood that the details in the foregoing examples can be used anywhere in one or more aspects. For example, all the optional features of the computing device described above can also be implemented with respect to the methods described herein or any computer-readable medium. Furthermore, although flow diagrams and / or state diagrams may have been used herein to describe aspects, the technology is not limited to those diagrams or their corresponding descriptions herein. For example, the flow does not need to move through each shown box or state, or in the exact same order as shown and described herein.

[0129] This technology is not limited to the specific details listed herein. In fact, those skilled in the art who benefit from this disclosure will appreciate that many other variations based on the foregoing description and drawings can be made within the scope of this technology. Therefore, it is the appended claims (including any modifications thereof) that define the scope of this technology.

Claims

1. An apparatus for transmitting Universal Serial Bus (USB) packets, wherein, The device includes: A receiver, the receiver being used to receive packets formatted according to the USB protocol; A generator, configured to generate alternating packets based on the packets, the alternating packets including the packets, a protocol definition field, a length field, a HopID field, and a Header Error Control / Check (HEC) field, wherein the alternating packets are based on packets according to a protocol different from the USB protocol; and A transmitter for transmitting the alternating packets.

2. The apparatus according to claim 1, wherein, The protocol definition field, the length field, the HopID field, and the HEC field are in the header of the alternating packets.

3. The apparatus according to claim 1, wherein, The protocol definition field has values ​​associated with Low Frequency Periodic Signaling (LFPS).

4. The apparatus according to claim 1, wherein, The protocol definition field has values ​​associated with training sequence 1 TS1, training sequence 2 TS2, or the ordered set of the start data stream SDS.

5. The apparatus according to claim 1, wherein, The protocol definition field has values ​​related to link command information.

6. The apparatus according to any one of claims 1-5, wherein, The HopID field has a value associated with the path of the link between the two USB ports.

7. The apparatus according to any one of claims 1-5, wherein, The alternating grouping is a grouping of virtual paths between the first USB port and the second USB port.

8. The apparatus according to any one of claims 1-5, wherein, The generation of the alternating groups is transparent to the first device coupled to the first USB port and the second device coupled to the second USB port.

9. The apparatus according to any one of claims 1-5, wherein, The USB protocol is either USB 2.x or USB 3.x.

10. A method related to the transmission of USB packets, wherein, The method includes: Identify received packets formatted according to the USB 3.x protocol; A tunnel transmission packet is generated based on the aforementioned packet. This tunnel transmission packet is based on a protocol different from the USB 3.x protocol. The tunnel transmission packet includes the packet itself, a protocol definition field, a length field, a HopID field, and a Header Error Control / Check (HEC) field. Send the tunnel transmission packet.

11. The method according to claim 10, wherein, The protocol definition field, the length field, the HopID field, and the HEC field are in the header of the tunnel transmission packet.

12. The method according to claim 10, wherein, The protocol definition field has values ​​associated with Low Frequency Periodic Signaling (LFPS).

13. The method according to claim 10, wherein, The protocol definition field has values ​​associated with training sequence 1 TS1, training sequence 2 TS2, or the ordered set of the start data stream SDS.

14. The method of claim 10, wherein, The protocol definition field has values ​​related to link command information.

15. The method according to any one of claims 10-14, wherein, The HopID field has a value associated with the path of the link between the two USB ports.

16. The method according to any one of claims 10-14, wherein, The length field has a value related to the length of the packet or the tunnel transmission packet.

17. The method according to any one of claims 10-14, wherein, The HEC field has a value related to errors in the tunnel transmission packets.

18. An electronic device configured to couple with a Universal Serial Bus (USB) device, wherein, The electronic device includes: USB Type-C port; and Circuit device, the circuit device being used for: Receive packets formatted according to the USB 2.x or USB 3.x protocol; The packet is encapsulated to generate an encapsulated packet, the encapsulated packet including the packet, a protocol definition field, a length field, a HopID field, and a Header Error Control / Check (HEC) field, wherein the encapsulated packet is based on a protocol different from the USB 2.x protocol or the USB 3.x protocol; and The encapsulated packet is sent to the USB device via the USB Type-C port.

19. The electronic device according to claim 18, wherein, The protocol definition field, the length field, the HopID field, and the HEC field are in the header of the encapsulated packet.

20. The electronic device according to claim 18, wherein, The protocol definition field has values ​​associated with Low Frequency Periodic Signaling (LFPS).

21. The electronic device according to claim 18, wherein, The protocol definition field has values ​​associated with training sequence 1 TS1, training sequence 2 TS2, or the ordered set of the start data stream SDS.

22. The electronic device according to claim 18, wherein, The protocol definition field has values ​​related to link command information.

23. The electronic device according to any one of claims 18-22, wherein, The HopID field has a value associated with the path of the link between the two USB ports.

24. The electronic device according to any one of claims 18-22, wherein, The length field has a value related to the length of the group or the encapsulated group.

25. The electronic device according to any one of claims 18-22, wherein, The HEC field has a value related to errors in the encapsulation group.

26. An apparatus for transmitting USB packets, comprising a unit for performing the method according to any one of claims 10-17.