Message recipient discrimination using start-of-packet delimiters
Claim Score by NHIP
Abstract
Methods and apparatus for operating a communication system comprising three or more communication transceivers. In illustrative embodiments, multiple unique start-of-packet delimiters are maintained. A data packet to be transmitted is constructed using a specified one of the plurality of start-of-packet delimiters to demarcate the start of said data packet. The chosen start-of-packet delimiter reflects one or more transceivers that are intended recipients of said data packet. When a data packet is received by a transceiver, the start-of-packet delimiter of the received data packet is compared to one or more valid start-of-packet delimiters for the receiving transceiver. If the start-of-packet delimiter of the received data packet matches a valid start-of-packet delimiter for the receiving transceiver, the data packet is accepted, otherwise it is rejected.

Term
8.5 yearsleft in the term
Expires 7 April 2035.
- Priority
- Filed
- Granted
- Today
- Expires
22 claims: 7 independent, 15 dependent
- 1A method of operating a transceiver in a communication system, the method comprising:maintaining a plurality of unique start-of-packet delimiters;constructing a data packet to be transmitted using a specified one of the plurality of start-of-packet delimiters to demarcate the start of said data packet, the chosen start-of-packet delimiter reflecting one or more transceivers that are intended recipients of said data packet;and when receiving a data packet is received , by a the transceiver : , the data packet including a start-of-packet (SOP) delimiter to demarcate the start of the data packet, the SOP delimiter including code words;comparing , by the transceiver, the start-of-packet code words of the SOP delimiter of the received data packet to one or more valid start-of-packet delimiters for the receiving transceiver corresponding code words of a stored SOP delimiter ;and if the start-of-packet delimiter of rejecting, by the transceiver, the received data packet matches a valid start-of-packet when the code words of the received SOP delimiter do not match code words of the stored SOP delimiter for the receiving transceiver, accepting said data packet, otherwise rejecting said data packet ;wherein the communication system is a universal serial bus (USB) communication system and wherein said transceivers comprise the transceiver comprises a USB power-delivery (USB-PD) transceivers transceiver .
- 10A method of operating a data transmitter to indicate an intended one or more recipients of a data packet to be transmitted, the method comprising:maintaining a plurality of unique start-of-packet delimiters, each start-of-packet delimiter being associated with one or more transceivers that are potential communication partners;determining one or more transceivers that are intended recipients of a data packet to be transmitted;selecting one of said plurality of start-of-packet delimiters based on which one or more transceivers are intended recipients of said data packet;and constructing said data packet using the selected start-of-packet delimiter to demarcate the start of said data packet;wherein said data transmitter comprises a universal serial bus power-delivery (USB-PD) transmitter and wherein said one or more transceivers comprise USB-PD transceivers.
- 11A method of operating a data transmitter to indicate an intended one or more recipients of a data packet to be transmitted, the method comprising:maintaining a plurality of unique start-of-packet delimiters, each start-of-packet delimiter being associated with one or more transceivers that are potential communication partners;determining one or more transceivers that are intended recipients of a data packet to be transmitted;selecting one of said plurality of start-of-packet delimiters based on which one or more transceivers are intended recipients of said data packet;and constructing said data packet using the selected start-of-packet delimiter to demarcate the start of said data packet;wherein said data transmitter is operable to communicate with a second transceiver and a third transceiver, wherein said plurality of unique start-of-packet delimiters comprises a first start-of-packet delimiter and a second start-of-packet delimiter, and wherein said selecting one of said plurality of start-of-packet delimiters comprises selecting the first start-of-packet delimiter if the second transceiver is the only intended recipient of the data packet and selecting the second start-of-packet delimiter if both the second and third transceivers are intended recipients of the data packet.
- 14A method of specifying an intended recipient of a data packet to be transmitted, the method comprising:maintaining a first start-of-packet delimiter associated with a first one or more recipient transceivers;maintaining a second start-of-packet delimiter associated with a second one or more recipient transceivers;when constructing a data packet intended for said first one or more recipient transceivers, constructing said data packet using the first start-of-packet delimiter to demarcate the start of said data packet;and when constructing a data packet intended for said second one or more recipient transceivers, constructing said data packet using the second start-of-packet delimiter to demarcate the start of said data packet;wherein said recipient transceivers comprise universal serial bus power-delivery (USB-PD) transceivers.
- 16A method of specifying an intended recipient of a data packet to be transmitted, the method comprising:maintaining a first start-of-packet delimiter associated with a first one or more recipient transceivers;maintaining a second start-of-packet delimiter associated with a second one or more recipient transceivers;when constructing a data packet intended for said first one or more recipient transceivers, constructing said data packet using the first start-of-packet delimiter to demarcate the start of said data packet;and when constructing a data packet intended for said second one or more recipient transceivers, constructing said data packet using the second start-of-packet delimiter to demarcate the start of said data packet;maintaining a third start-of-packet delimiter associated with a third one or more recipient transceivers;when constructing a data packet intended for said third one or more recipient transceivers, constructing said data packet using the third start-of-packet delimiter to demarcate the start of said data packet;wherein said first one or more recipient transceivers comprises a first universal serial bus power-delivery (USB-PD) transceiver residing in a USB-capable device, said second one or more recipient transceivers comprises said first USB-PD transceiver and a second USB-PD transceiver residing in a first USB cable plug of a USB cable, and said third one or more recipient transceivers comprises said first USB-PD transceiver, said second USB-PD transceiver, and a third USB-PD transceiver residing in a second USB cable plug of said USB cable.
- 17A universal serial bus (USB) device adapted to be coupled to a USB cable via a USB receptacle, the USB device comprising:the USB receptacle;a controller coupled to the USB receptacle and configured to transmit a data packet including a start-of-packet (SOP) delimiter to demarcate the start of the data packet;and wherein the data packet will only be accepted by the USB cable when the SOP delimiter transmitted by the controller matches a stored SOP delimiter stored in memory in the USB cable.
- 21Broadest claimClaim Score 79, broad(NHIP)A universal serial bus (USB) transceiver incorporated into a USB cable, the USB transceiver comprising:memory for storing a stored start-of-packet (SOP) delimiter;and a processor coupled to the memory;the USB transceiver is configured to receive a data packet including a SOP delimiter to demarcate the start of the data packet, and accept the data packet in response to the received SOP delimiter matching the stored SOP delimiter.
Independent claims7
53 paragraphs in 5 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATIONS
0001This application claims priority to U.S. Provisional Application No. 61/976,604, filed on Apr. 8, 2014, the contents of which are hereby expressly incorporated herein by reference.
BACKGROUND
0002Universal Serial Bus (USB) is an industry standard that defines the cables, connectors and communications protocols used in a bus for connection, communication, and power supply between computers and electronic devices. USB was designed to standardize the connection of computer peripherals (including keyboards, pointing devices, digital cameras, printers, portable media players, disk drives and network adapters) to personal computers, both to communicate and to supply electric power. It has become commonplace on other devices, such as smartphones, PDAs and video game consoles. USB has effectively replaced a variety of earlier interfaces, such as serial and parallel ports, as well as separate power chargers for portable devices.
0003A new USB Power Delivery Specification has been developed to enable delivery of higher power over new USB cables and connectors. This technology creates a universal power plug for laptops, tablets, etc. that may require more than five volts using cables and plugs compatible with existing USB solutions. The USB Power Delivery (USB-PD) Specification defines a packet-based communication link between ports connected via a USB-PD cable and USB-PD connectors. The packets contain information that enables the two ports to communicate and negotiate a voltage and a current that the source port will provide to the sink port. This communication occurs on a separate wire independently from the normal USB communications that appear on the USB data wires.
0004It has been proposed to incorporate an in-line transceiver inside a USB-PD cable as a way of communicating information about the cable to USB devices that the cable is connected to. In some illustrative embodiments, such an in-line transceiver resides in the USB plug of the USB-PD cable. Such an in-line transceiver illustratively would include or be associated with a non-volatile memory that stores information that the transceiver can send to such connected devices. In most embodiments, the in-line transceiver would be coupled with an embedded processor. Some examples of information that could be stored in the memory and transmitted to connected devices include: current and voltage capabilities of the cable, the cable manufacturer, the length of the cable, the type of cable termination, USB data line configurability, and an indication of whether the cable is active or passive. However, adding a transceiver inside the cable means that there are multiple possible destinations for any message sent by one of the three transceivers now associated with the cable (one at each end plus the at least one in-line transceiver). Thus there is a need for a simple and efficient means for a transmitter and a receiver to distinguish intended recipients of a transmitted message.
SUMMARY
0005One embodiment of the present disclosure is directed to a method of operating a communication system. Pursuant to such a method, a plurality of unique start-of-packet delimiters is maintained. A data packet to be transmitted is constructed using a specified one of the plurality of start-of-packet delimiters to demarcate the start of said data packet. The chosen start-of-packet delimiter reflects one or more transceivers that are intended recipients of said data packet. When a data packet is received by a transceiver, the start-of-packet delimiter of the received data packet is compared to one or more valid start-of-packet delimiters for the receiving transceiver. If the start-of-packet delimiter of the received data packet matches a valid start-of-packet delimiter for the receiving transceiver, the data packet is accepted, otherwise it is rejected.
BRIEF DESCRIPTION OF THE DRAWINGS
0006<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram representing a USB communication system that includes two USB devices connected by a USB cable that has an in-line transceiver embedded in the cable.
0007<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram representing an illustrative USB power-delivery device.
0008<figref idref="DRAWINGS">FIG. 3</figref> is a data structure diagram representing the structure of a USB-PD data packet.
0009<figref idref="DRAWINGS">FIG. 4</figref> is a flowchart representing a method of operating a communication system.
0010<figref idref="DRAWINGS">FIG. 5</figref> is a flowchart representing a method of operating a data transmitter to indicate an intended one or more recipients of a data packet to be transmitted.
0011<figref idref="DRAWINGS">FIG. 6</figref> is a flowchart representing a method of specifying an intended recipient of a data packet to be transmitted.
DETAILED DESCRIPTION
0012This disclosure is directed generally towards methods and apparatus for using start-of-packet delimiter codes to distinguish intended recipients in a multi-transceiver communication system. Such methods and apparatus will be described herein with respect to a USB communication system. However, it is to be understood that the methods and apparatus described herein can pertain to, and be implemented in, any communication system that consists of three or more transceivers and that uses start-of-packet delimiters.
0013<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram representing a USB communication system <b>100</b> that includes two USB devices connected by a USB cable that has an in-line transceiver embedded in the cable. The USB communication system <b>100</b> comprises a first USB power delivery (USB-PD) device <b>110</b> connected to a second USB-PD device <b>120</b> via USB-PD cable <b>130</b>. In USB power delivery, there are four kinds of devices defined: provider-only, provider/consumer, consumer/provider, and consumer-only. USB-PD devices <b>110</b> and <b>120</b> could each be any of these four types of devices. Each USB device <b>110</b>, <b>120</b> includes a USB-PD transceiver for sending and receiving messages pertaining to the delivery of power over the USB-PD cable <b>130</b>. USB-PD transceiver <b>140</b> is an in-line transceiver that is embedded in the USB-PD cable <b>130</b>. The transceiver <b>140</b> illustratively includes or is associated with a non-volatile memory that stores information that the transceiver can send to USB-PD device <b>110</b> and/or USB-PD device <b>120</b>. In some embodiments, the in-line transceiver <b>140</b> is coupled with an embedded processor. Some examples of information that can be stored in the memory and transmitted to device <b>110</b> and/or device <b>120</b> include: the voltage capabilities of the cable, the current capabilities of the cable, the data-carrying capabilities of the cable, the cable manufacturer, the length of the cable, an indication of whether the cable is active or passive, and, if the cable is terminated by a USB receptacle, an indication of whether or not there is a plug inserted into the far end of the cable. There can also be additional in-line transceivers in the USB-PD cable <b>130</b> in addition to in-line transceiver <b>140</b>. In some illustrative embodiments, in-line transceivers such as in-line transceiver <b>140</b> reside in a USB plug at the end of USB-PD cable <b>130</b>. In other embodiments, one of the USB-PD transceivers <b>110</b> or <b>120</b> can be a non-USB device, such as in embodiments that employ USB Type-C receptacles and cables, which are designed to support alternate modes such as DisplayPort. In some embodiments, there is no cable in the traditional sense, for example, a laptop connected to a docking station. In such an embodiment, the USB-PD transceiver <b>140</b> can be in the docking station, for example.
0014<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram representing an illustrative USB power-delivery (USB-PD) device <b>200</b>. The device <b>200</b> of <figref idref="DRAWINGS">FIG. 2</figref> can both source and sink power and therefore can function as either a provider or consumer USB power-delivery device. The illustrative USB-PD device <b>200</b> of <figref idref="DRAWINGS">FIG. 2</figref> could represent device <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>, device <b>120</b> of <figref idref="DRAWINGS">FIG. 1</figref>, or both. The USB power-delivery device <b>200</b> includes a USB receptacle <b>260</b> that is capable of attachably receiving a USB connector disposed on one end of a USB cable <b>250</b>, as is well known in the art. The other end of the USB cable <b>250</b> can be permanently attached to a second USB device, or can terminate at a second USB connector that can be attachably connected to a second USB-capable device. In still another embodiment, the USB cable <b>250</b> can be permanently affixed to the USB device <b>200</b>. The USB power-delivery device <b>200</b> also includes a USB-PD controller <b>210</b> that controls the communications with other USB power delivery devices, via the USB cable <b>250</b>, regarding power delivery, and also controls the actual sourcing of power to, or sinking of power received from, another USB power delivery device. In an illustrative embodiment, the USB cable <b>250</b> has an in-line transceiver embedded in the cable, such as the USB-PD transceiver <b>140</b> described above with respect to <figref idref="DRAWINGS">FIG. 1</figref>.
0015The USB-PD controller <b>210</b> includes a transceiver <b>220</b>, a microcontroller unit <b>230</b>, and a cable-type detection circuit <b>240</b>. The transceiver <b>220</b> includes a receiver <b>222</b> and a transmitter <b>224</b>. In an illustrative embodiment, the transceiver <b>220</b> comprises a biphase mark encoding (BMC) modem. In another illustrative embodiment, the transceiver <b>220</b> comprises a binary frequency-shift keying (BFSK) modem. The receiver <b>222</b> receives communications regarding USB power delivery from a far-end USB power-delivery device, or from an in-line transceiver embedded in the USB cable <b>250</b>, as will be described in more detail below. The transmitter <b>224</b> transmits communications regarding USB power delivery to a far-end USB power-delivery device, or to an in-line transceiver embedded in the USB cable <b>250</b>. Such communications with a far-end device regarding USB power delivery can include the negotiating of which device is to be the source (provide power) and which is to be the sink (receive power), and the negotiating of the voltage, current, and mode of the power delivery, as well as other information attendant to the delivery of power from one device to the other over the USB cable <b>250</b>. Such communications with an in-line transceiver embedded in the USB cable <b>250</b> can include, for example, communications regarding the current and voltage capabilities of the cable, the cable manufacturer, the length of the cable, and an indication of whether the cable is active or passive.
0016In the illustrative embodiment shown in <figref idref="DRAWINGS">FIG. 2</figref>, the USB cable is a type-C USB cable and the transceiver <b>220</b> communicates with the far-end USB device and any in-line transceiver via a wire in the USB cable <b>250</b> called the communication channel (CC). In an alternative embodiment, the transceiver <b>220</b> communicates with the far-end USB device and any in-line transceiver via the voltage bus (Vbus) <b>245</b>. The microcontroller unit <b>230</b> controls the operations of the USB-PD controller <b>210</b>, generates messages to be sent to the far-end USB device and/or an in-line transceiver, and processes messages received from the far-end USB device or the in-line transceiver. One function performed by the microcontroller <b>230</b> is the selection of power supplies to be provided to the Vbus <b>245</b> in order to power a connected far-end device. The microcontroller can make this determination based upon a variety of factors. One such factor is what type and/or level of power supply is being requested by the far-end of device. In the illustrative embodiment of <figref idref="DRAWINGS">FIG. 2</figref>, such requests are received from the far-end device via the CC wire of the USB cable <b>250</b>. Another such factor can be what type of USB cable <b>250</b> is inserted in the USB receptacle <b>260</b> and what power delivery mode or modes are appropriate for that USB cable type. Such cable-type information can be received from an in-line transceiver embedded in the USB cable <b>250</b> via the CC wire of the cable. In the illustrative embodiment of <figref idref="DRAWINGS">FIG. 2</figref>, USB-PD device <b>200</b> includes two electrical connections CC<b>1</b> and CC<b>2</b> connecting the USB-PD controller <b>210</b> to the USB receptacle <b>260</b>. When a type-C USB cable is inserted in the receptacle <b>260</b>, one of the lines CC<b>1</b> and CC<b>2</b> is coupled to the CC wire of the USB cable <b>250</b>. The USB-PD controller <b>210</b> includes a cable detection circuit <b>240</b> that, based on signals received over lines CC<b>1</b> and/or CC<b>2</b>, detects whether a cable is inserted in the USB receptacle <b>260</b> and, if so, detects which of CC<b>1</b> and CC<b>2</b> is coupled to the CC wire in the USB cable <b>250</b>. In some embodiments, the cable detection circuit <b>240</b> also receives cable-type information from whichever of CC<b>1</b> and CC<b>2</b> is coupled to the CC wire of USB cable <b>250</b>. It is to be understood that the details of how the USB-PD transceiver <b>200</b> exchanges information regarding USB power delivery with a far-end device or with an in-line transceiver are merely illustrative. Indeed, when a USB cable that is not a type-C USB cable is inserted in the USB receptacle <b>260</b>, some of the details of how the transceiver <b>200</b> exchanges power delivery information will diverge from the details described above.
0017The USB power-delivery device <b>200</b> shown in <figref idref="DRAWINGS">FIG. 2</figref> also includes two power supplies: 5-volt power supply <b>265</b> and 20-volt power supply <b>270</b>. It will be appreciated that this embodiment is merely illustrative and that the USB power-delivery device <b>200</b> can include additional power supplies as well, or a single power supply whose voltage can be changed. The USB power-delivery device <b>200</b> also includes a power sink <b>275</b> that can receive power supplied over the Vbus <b>245</b> to power the USB power-delivery device <b>200</b>. The USB power-delivery device <b>200</b> further includes power switches <b>280</b>, <b>285</b>, <b>290</b>. The USB-PD controller <b>210</b> controls the power switches <b>280</b>, <b>285</b>, <b>290</b> in order to select a power supply and to couple the selected power supply to the Vbus <b>245</b>, or to couple the power sink <b>275</b> to the Vbus <b>245</b> if the USB power-delivery device <b>200</b> is to receive power from a far-end device.
0018As mentioned, the USB-PD device <b>200</b> of <figref idref="DRAWINGS">FIG. 2</figref> is capable of acting as a USB-PD provider or as a USB-PD consumer. An illustrative provider-only USB-PD device would include similar functionality as the device <b>200</b> of <figref idref="DRAWINGS">FIG. 2</figref> but would not include the power sink <b>275</b>. Similarly an illustrative consumer-only USB-PD device would include functionality similar to the device <b>200</b> but would not include the power supplies <b>265</b> and <b>270</b>. An illustrative embodiment of the in-line transceiver <b>140</b> of <figref idref="DRAWINGS">FIG. 1</figref> would not include either the power supplies <b>265</b>, <b>270</b> or the power sink <b>275</b>, but would comprise a transceiver similar to the transceiver <b>220</b> of <figref idref="DRAWINGS">FIG. 2</figref>, and a microcontroller similar to the microcontroller <b>230</b> of <figref idref="DRAWINGS">FIG. 2</figref>.
0019There is a physical layer built around a USB-PD transceiver, such as the transceiver <b>220</b> of <figref idref="DRAWINGS">FIG. 2</figref>, that allows the USB power-delivery device <b>200</b> and a far-end USB device to send power-delivery messages to one another over Vbus <b>245</b>, and also allows the device <b>200</b> to communicate with an in-line transceiver that may be embedded in the USB cable <b>250</b>. Above the physical layer is a protocol layer, and then a policy engine layer. In illustrative embodiments, the physical layer uses binary frequency shift keying (FSK) modulation or biphase mark coding (BMC). The physical layer also encodes the data bits in the packet using, for example, 4b5b encoding.
0020The packet format of a power-delivery data packet, according to an illustrative embodiment, is shown in <figref idref="DRAWINGS">FIG. 3</figref>. Each packet <b>300</b> begins with a preamble <b>310</b> which contains a sequence of alternating ones and zeros for a total of 64 bits. The preamble <b>310</b> is followed by a start-of-packet delimiter (SOP) <b>320</b>, which is a predefined 20-bit code word that announces the start of a new data packet. In limited special circumstances, i.e., when a hard reset of one or more transceivers in the system is to be performed, the preamble is followed not by the start-of-packet delimiter but instead by a different predefined 20-bit sequence called the hard-reset sequence. The start-of-packet delimiter, or hard-reset sequence, is divided into four 5-bit nibbles that are called K-codes in the USB specification. A valid SOP or hard-reset sequence requires that at least three out of the four nibbles does not have any bit errors. Per the USB specification, the standard start-of-packet delimiter comprises three “Sync-1” K-codes (11000) followed by a “Sync-2” K-code (10001), where the first bit in a K-code is the last bit of that K-code to be sent on the wire. Thus the standard start-of-packet delimiter bit sequence is 000110000110001110001. The standard hard-reset sequence per the USB specification comprises two “RST-1” K-codes (00111) followed by two “RST-2” K-codes (11001). Thus the standard hard-reset bit sequence is 11100111001110010011.
0021The start-of-packet delimiter <b>320</b> is followed by a header (that is encoded using the 4b5b code) which contains information used by the protocol layer. Among other information contained in the header <b>330</b> is a message-type field that indicates what kind of message the packet <b>300</b> represents. The header <b>330</b> also includes a data field (sometimes referred to as Nobj) that indicates the number of data objects that follow in the packet. When a hard-reset sequence is sent, it is not followed by a header or a data payload after the hard-reset sequence. Following the header <b>330</b> are one or more data fields <b>340</b>, <b>342</b>, <b>344</b>, <b>346</b>, encoded using the 4b5b code. For example, in a specific type of message known as a source capabilities message, the data fields <b>340</b>-<b>346</b> comprise data structures known as power delivery objects. The source capabilities message is a message that is sent by a USB-PD source device such as device <b>200</b> to broadcast its availability as a power source and to communicate the device's capabilities as a source. These capabilities are enumerated in the power delivery objects.
0022The data fields <b>340</b>-<b>346</b> are followed by a 32-bit cyclic redundancy check (CRC) <b>350</b>. The CRC <b>350</b> is an error-detecting code used to detect accidental changes to the data contained in the data packet <b>300</b>. The CRC is computed based on the header <b>330</b> and the data objects <b>340</b>-<b>346</b>. The CRC is the 32-bit remainder of a polynomial division of the contents of the header <b>330</b> and the power delivery objects, encoded into 40 bits using the 4b5b code, as will be described in more detail below. Upon retrieval of the data packet by, say, a second USB device, the calculation is repeated, and corrective action can be taken against presumed data corruption if the check values do not match. Finally, the CRC <b>350</b> is followed by a predefined 5-bit end-of-packet delimiter (EOP) announcing the end of the data packet <b>300</b>.
0023Referring again to <figref idref="DRAWINGS">FIG. 1</figref>, the presence of the in-line transceiver <b>140</b> in the USB cable <b>130</b> means that there are (at least) three transceivers in the USB communication system <b>100</b>, and thus there are (at least) two possible destinations for a message sent by any of the transceivers <b>110</b>, <b>120</b>, <b>140</b>. The present disclosure presents a method of distinguishing which messages are meant for which transceiver. To allow the transceiver <b>140</b> in the cable to be as simple as possible, a mechanism at the physical layer or protocol layer is preferable so it doesn't need to parse too many different kinds of messages. This disclosure presents a physical layer solution that uses two or more unique start-of-packet delimiters to distinguish the intended recipient of a message. USB-PD receivers are required to reject packets that do not have a valid start-of-packet delimiter or a valid hard-reset sequence at the end of the preamble. In the scheme of the present disclosure, the system maintains multiple start-of-packet delimiters. A transmitting transceiver can effect a selection of one or more intended recipients of a data packet to be transmitted via the selection of which start-of-packet delimiter it uses in said data packet.
0024Each transceiver in the system, i.e., coupled to the CC wire, will have one or more start-of packet delimiters that it will accept. That is, each transceiver is configured to process data packets having a specified one or more of the start-of-packet sequences and to ignore packets having any other start-of-packet sequences. Illustratively, each transceiver will maintain a list of one or more valid start-of-packet delimiter values, i.e., start-of-packet delimiters which that transceiver will accept. When a transceiver receives a transmitted data packet, it will compare the start-of-packet delimiter of the received packet to the list of valid start-of-packet delimiters. If the start-of-packet delimiter value matches one of the valid start-of-packet delimiter values for the receiving transceiver, the transceiver accepts the packet and proceeds with processing the data that follows the start-of-packet delimiter. If the start-of-packet delimiter does not match any of the valid start-of-packet values (and the start-of-packet sequence further does not match a valid hard-reset value as described below), the transceiver rejects the packet. In this way, the USB transceiver can ignore packets not intended for that transceiver. This system architecture allows multiple transceivers to use the same wire to talk to one another.
0025For the purposes of this disclosure, “accepting” a data packet means, for example, proceeding to perform the cyclic redundancy check (CRC) on the associated data packet and, if the packet passes the CRC check, forwarding the packet to the protocol layer for processing. In an illustrative embodiment, when a data packet passes the CRC check, the receiving transceiver sends an acknowledgement message called a GoodCRC message to the transceiver that sent the packet. For the purposes of this disclosure, “rejecting” a data packet means, for example, that the packet is discarded without performing a CRC check on the packet. Because no CRC check is performed, the receiving transceiver does not send the GoodCRC acknowledgement message to the transceiver that sent the packet.
0026In an illustrative embodiment, the system also maintains multiple hard-reset values so that specified ones of the transceivers, such as transceivers <b>110</b>, <b>120</b>, and <b>140</b>, can be reset without resetting all of the transceivers in the system. Per the USB-PD Specification, a reset is a necessary response to protocol errors or other error conditions. The USB-PD Specification defines two types of resets: a soft reset, which resets protocol, and a hard reset, which resets both protocol and the power supplies. A hard reset is signaled by the transmission of a predefined hard-reset sequence by one of the transceivers in the system. Both the sending transceiver and the recipient transceiver shall cause their respective power supplies to return to their default states. In addition, both the sending transceiver and the recipient transceiver shall reset their respective protocol layers as is done with the soft reset procedure. This allows the attached devices to be in a state where they can re-establish USB-PD communication.
0027According to an illustrative embodiment of the present disclosure, a transmitting transceiver can effect a specification of one or more specific transceivers to reset via the selection of which hard-reset sequence it uses. Each transceiver in the system, i.e., coupled to the USB wire, will have one or more hard-reset sequences that it will recognize. That is, each transceiver is configured to perform a hard reset when it receives a specified one or more of the hard-reset sequences and to ignore any other hard-reset sequences. Illustratively, each transceiver will maintain a list of one or more valid hard-reset values, i.e., hard-reset sequences which that transceiver will recognize. When a transceiver receives transmitted data and the bit sequence following the preamble does not match one of that transceiver's valid start-of-packet delimiters, it will compare the bit sequence following the preamble to its list of valid hard-reset sequences. If the bit sequence matches one of the valid hard-reset sequences for the receiving transceiver, the transceiver performs the hard reset procedure. If the bit sequence following the preamble does not match any of the valid start-of-packet values or any of the valid hard-reset values, the transceiver rejects the data. In this way, the USB transceiver can ignore hard-reset messages not intended for that transceiver. Again, this system architecture further allows multiple transceivers to use the same line to communicate with each other.
0028<figref idref="DRAWINGS">FIG. 4</figref> is a flowchart representing a method of operating a communication system. At block <b>400</b>, a plurality of unique start-of-packet delimiters are maintained. At block <b>410</b>, a data packet to be transmitted is constructed using a specified one of the plurality of start-of-packet delimiters to demarcate the start of said data packet. The start-of-packet delimiter that is chosen reflects one or more transceivers that are intended recipients of the data packet. At block <b>420</b>, when a data packet is received by a transceiver, the start-of-packet delimiter of the received data packet is compared to one or more valid start-of-packet delimiters for the receiving transceiver. At the decision box <b>430</b>, it is queried whether the start-of-packet delimiter of the received data packet matches a valid start-of-packet delimiter for the receiving transceiver. If it does, the data packet is accepted, as indicated at block <b>440</b>. If it does not, the data packet is rejected, as indicated at block <b>450</b>.
0029<figref idref="DRAWINGS">FIG. 5</figref> is a flowchart representing a method of operating a data transmitter to indicate an intended one or more recipients of a data packet to be transmitted. At block <b>500</b>, a plurality of unique start-of-packet delimiters are maintained. Each start-of-packet delimiter is associated with one or more transceivers that are potential communication partners. At block <b>510</b>, it is determined which one or more transceivers are intended recipients of a data packet to be transmitted. At block <b>520</b>, one of said plurality of start-of-packet delimiters are selected based on which one or more transceivers are intended recipients of the data packet. At block <b>530</b>, the data packet is constructed using the selected start-of-packet delimiter to demarcate the start of the data packet.
0030<figref idref="DRAWINGS">FIG. 6</figref> is a flowchart representing a method of specifying an intended recipient of a data packet to be transmitted. At block <b>600</b>, a first start-of-packet delimiter associated with a first one or more recipient transceivers is maintained. At block <b>610</b>, a second start-of-packet delimiter associated with a second one or more recipient transceivers is maintained. At block <b>620</b>, when constructing a data packet intended for said first one or more recipient transceivers, the data packet is constructed using the first start-of-packet delimiter to demarcate the start of the data packet. At block <b>630</b>, when constructing a data packet intended for said second one or more recipient transceivers, the data packet is constructed using the second start-of-packet delimiter to demarcate the start of the data packet.
0031Thus, according to illustrative embodiments of the present disclosure, multiple start-of-packet delimiters are maintained and the selection of which start-of-packet delimiter to use for a given data packet dictates which transceivers will accept that data packet. In certain embodiments, multiple hard-reset sequences are also maintained and the selection of which hard-reset sequence is used dictates which transceivers will be reset. In such a system, the determination of what specific bit sequences to use for the multiple start-of-packet delimiters and the multiple hard-reset sequences has significant implications for the complexity and performance of the system. To determine optimal sequences for the start-of-packet delimiters and hard-reset sequences, two primary criteria were used: limiting the complexity of the implementation, and minimizing the probability of mistaking one bit sequence for another. With these criteria in mind, various metrics were used to compare bit sequences. One such metric is the ratio of the number of bits that are the same to the total number of bits (twenty in the illustrative embodiments described herein) when compared to each of the other sequences. This metric should be minimized to reduce the probability of mistakenly detecting one sequence instead of another. This ratio when compared to the hard-reset sequence was prioritized since mistakenly detecting a hard reset may be considered catastrophic.
0032Another metric used to assess the effectiveness of different bit sequences for the multiple start-of-packet delimiters and hard-reset sequences is the DC balance ratio (DCBR). The signal should be as DC balanced as possible, meaning the ratio of 1's to the total number of bits in the sequence should be as close to 0.5 as possible. A ratio between 0.4 and 0.6 is considered sufficient because that is the ratio for the standard start-of-packet delimiter and hard-reset sequences as defined in the USB specification.
0033Another metric used to assess the effectiveness of different bit sequences is the number of bit positions at which a given bit sequence differs from every other bit sequence. It is desirable to ensure that each bit sequence differs from every other sequence by at least six bits (out of the twenty). This ensures that at least two 5-bit nibbles must be demodulated incorrectly in order to mistake one 20-bit sequence for another. Alternatively, the number of nibbles that are different between any two sequences can be restricted to be larger than 1. In some embodiments, it is acceptable to have only one nibble be different between sequences so this constraint could be relaxed.
0034Another metric used to assess the effectiveness of different bit sequences is the number of correlations needed to distinguish the possible nibbles at any point in the sequence. It is desirable to minimize this number in order to minimize the complexity of the system. In an illustrative implementation of the system, the incoming demodulated bit stream is correlated with all possible sequences of interest. Thus, in an illustrative embodiment wherein three distinct start-of-packet delimiters and two distinct hard-reset sequences are maintained, the incoming bitstream is correlated with five different 20-bit sequences. If there are N sequences of interest, then this requires 20*N comparisons (or multiplications) for each incoming 20-bit sequence. A lower complexity implementation is to correlate for just one nibble at a time. Then if a match is found, a correlation is performed for the next nibble. This lower complexity implementation requires the nibbles to be designed appropriately. Depending on the design of the sequences, this implementation may require between 5 and N*5 comparisons per incoming nibble. We define the term comparisons per nibble (CPN) as a metric for the complexity of a given sequence. The CPN of the nibble having the highest CPN is used as the overall CPN for that 20-bit sequence. A lower CPN value indicates a lower complexity. In an illustrative embodiment, one complexity reduction that is employed where possible is making two of the nibbles of a given 20-bit sequence opposite of each other in each bit. When this condition is present, both nibbles can be checked with one correlation. Thus only five comparisons are needed to check both nibbles.
0035To demonstrate the process of selecting optimal bit sequences to use for the various start-of-packet delimiters and hard-reset sequences, some examples of potential start-of-packet delimiters and hard-reset sequences will be described below. It is to be understood that the bit sequences used in the examples of Tables 2-4 below are merely illustrative and that the criteria used to generate and analyze the bit sequences in Tables 2-4 can be applied for generating any number of sequences.
0036In the illustrative bit sequences of Tables 2-4 below, the 20-bit sequences are made up of four predefined 5-bit nibbles, referred to as K-codes in the USB specification. The definitions of the K-codes used in these examples is as set forth in Table 1. In Table 1, the K-codes Sync-1, Sync-2, RST-1 and RST-2 are pre-existing K-codes, i.e., K-codes that are defined and used in pre-existing versions of the USB specification. The Sync-3 and Sync-4 K-codes shown in Table 1 are new K-codes that have been defined for the purposes of the present disclosure.
0037<tables id="TABLE-US-00001" num="00001"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE 1</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>K-code definitions.</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="4"><colspec colname="1" colwidth="21pt" align="left" /><colspec colname="2" colwidth="35pt" align="left" /><colspec colname="3" colwidth="84pt" align="center" /><colspec colname="4" colwidth="77pt" align="left" /><tbody valign="top"><row><entry /><entry>Name</entry><entry>5b Symbol</entry><entry>Description</entry></row><row><entry namest="1" nameend="4" align="center" rowsep="1" /></row><row><entry /><entry>Sync-1</entry><entry>11000</entry><entry>Startsynch #1</entry></row><row><entry /><entry>Sync-2</entry><entry>10001</entry><entry>Startsynch #2</entry></row><row><entry /><entry>Sync-3</entry><entry>00110</entry><entry>Startsynch #3</entry></row><row><entry /><entry>Sync-4</entry><entry>01100</entry><entry>Startsynch #4</entry></row><row><entry /><entry>RST-1</entry><entry>00111</entry><entry>Hard Reset #1</entry></row><row><entry /><entry>RST-2</entry><entry>11001</entry><entry>Hard Reset #2</entry></row><row><entry namest="1" nameend="4" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0038Table 2 shows a set of four different start-of-packet delimiters labelled SOP, SOPa, SOPb, and SOPc. The start-of-packet delimiter labelled SOP is the standard start-of-packet delimiter as defined in the USB specification and is comprised of the predefined K-codes Sync-1 (11000), Sync-1 (11000), Sync-1 (11000) and Sync-2 (10001). Since the right-most bit in the K-code is the first one applied to the wire, the complete SOP bit sequence is 00011000110001110001. Similarly, the bit sequences of the start-of-packet delimiters SOPa, SOPb and SOPc are as shown in Table 2. Also shown in Table 2 is the standard hard-reset sequence as defined in the USB specification. As indicated in Table 2, the first three 5-bit nibbles (K-code #1, K-code #2 and K-code #3) of each start-of-packet delimiter and hard-reset sequence each has a comparisons-per-nibble (CPN) metric of 5. The fourth 5-bit nibble (K-code #4) of each sequence, meanwhile, has a CPN of 10. Thus the overall CPN for each bit sequence is 10, since the CPN of the nibble having the highest CPN is used as the overall CPN for that bit. The overall CPNs of 10 for each sequence are quite low, which helps to minimize the complexity of the system of Table 2. Also, the scheme set forth in Table 2 does not introduce any new 5-bit nibbles (K-codes) with respect to pre-existing versions of the USB-PD specification, which further minimizes the complexity of the system. The DC balance ratios (DCBRs) of SOPa, SOPb and SOPc are each 0.5, which is ideal. The DCBR of the standard USB start-of-packet delimiter SOP is 0.4 and the DCBR of the standard USB hard-reset sequence is 0.55. Thus all of the DCBRs are within the preferred range of 0.4-0.6. In Table 2, each of the start-of-packet delimiters SOP, SOPa, SOPb and SOPc differs from the hard-reset sequence in at least six bit positions, which is less than optimal as it is more likely to result in mistaking one of the start-of-packet delimiters for the hard-reset sequence than are start-of-packet delimiters that differ from the hard-reset sequence at more bit positions.
0039<tables id="TABLE-US-00002" num="00002"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE 2</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>System having very low complexity.</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="5"><colspec colname="1" colwidth="49pt" align="left" /><colspec colname="2" colwidth="35pt" align="center" /><colspec colname="3" colwidth="49pt" align="center" /><colspec colname="4" colwidth="35pt" align="center" /><colspec colname="5" colwidth="49pt" align="center" /><tbody valign="top"><row><entry>Sequence</entry><entry>K-code #1</entry><entry>K-code #2</entry><entry>K-code #3</entry><entry>K-code #4</entry></row><row><entry>Label</entry><entry>CPN = 5</entry><entry>CPN = 5</entry><entry>CPN = 5</entry><entry>CPN = 10</entry></row><row><entry namest="1" nameend="5" align="center" rowsep="1" /></row><row><entry>SOP</entry><entry>Sync-1</entry><entry>Sync-1</entry><entry>Sync-1</entry><entry>Sync-2</entry></row><row><entry /><entry>(11000)</entry><entry>(11000)</entry><entry>(11000)</entry><entry>(10001)</entry></row><row><entry>HardReset</entry><entry>RST-1</entry><entry>RST-1</entry><entry>RST-1</entry><entry>RST-2</entry></row><row><entry /><entry>(00111)</entry><entry>(00111)</entry><entry>(00111)</entry><entry>(11001)</entry></row><row><entry>SOPa</entry><entry>Sync-1</entry><entry>Sync-1</entry><entry>RST-1</entry><entry>RST-2</entry></row><row><entry /><entry>(11000)</entry><entry>(11000)</entry><entry>(00111)</entry><entry>(11001)</entry></row><row><entry>SOPb</entry><entry>Sync-1</entry><entry>RST-1</entry><entry>Sync-1</entry><entry>RST-2</entry></row><row><entry /><entry>(11000)</entry><entry>(00111)</entry><entry>(11000)</entry><entry>(11001)</entry></row><row><entry>SOPc</entry><entry>Sync-1</entry><entry>RST-1</entry><entry>RST-1</entry><entry>Sync-2</entry></row><row><entry /><entry>(11000)</entry><entry>(00111)</entry><entry>(00111)</entry><entry>(10001)</entry></row><row><entry namest="1" nameend="5" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0040Table 3 shows a set of four different start-of-packet delimiters labelled SOP, SOPa, SOPb, and SOPc, as well as a hard-reset sequence. The start-of-packet delimiter labelled SOP is the standard start-of-packet delimiter as defined in the USB specification, and the hard-reset sequence in Table 3 is the standard hard-reset sequence as defined in the USB specification. The scheme of Table 3 takes advantage of the fact that the RST-1 K-code (00111) is the inverse of Sync-1 (11000), and Sync-3 (00110) is the inverse of RST-2 (11001), to help keep the comparisons per nibble (CPN) low. As indicated in Table 3, the first 5-bit nibble (K-code #1) of each start-of-packet delimiter and hard-reset sequence has a CPN of 5. The last three 5-bit nibbles (K-codes #2, #3 and #4) of each sequence, meanwhile, all have a CPN of 10. Thus the overall CPN for each bit sequence is 10. With overall CPNs of 10 for each sequence, the bit sequences of Table 3 help to minimize the complexity of the system, though not quite as much as do the bit sequences of Table 2, whose bit sequences have three out of the four nibbles with CPNs of just 5. The scheme set forth in Table 3 introduces one new 5-bit nibble, namely the Sync-3 K-code (00110), thus increasing the complexity of the system somewhat relative to the system of Table 2, which introduces no new K-codes with respect to pre-existing versions of the USB specification. However, an introduction of just one new K-code is not an onerous increase in complexity. The DCBR of SOPa is 0.5, while the DCBRs of SOPb and SOPc are 0.4, which are in the preferred range, though somewhat higher than the DCBRs of Table 2. In Table 3, each of the start-of-packet delimiters SOP, SOPa, SOPb and SOPc differs from the hard-reset sequence in at least sixteen bit positions, which significantly reduces the chances of mistaking one of the start-of-packet delimiters for a hard-reset sequence, which may be considered a catastrophic error.
0041<tables id="TABLE-US-00003" num="00003"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE 3</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>System having low complexity and very high performance.</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="5"><colspec colname="1" colwidth="49pt" align="left" /><colspec colname="2" colwidth="35pt" align="center" /><colspec colname="3" colwidth="49pt" align="center" /><colspec colname="4" colwidth="35pt" align="center" /><colspec colname="5" colwidth="49pt" align="center" /><tbody valign="top"><row><entry>Sequence</entry><entry>K-code #1</entry><entry>K-code #2</entry><entry>K-code #3</entry><entry>K-code #4</entry></row><row><entry>Label</entry><entry>CPN = 5</entry><entry>CPN = 10</entry><entry>CPN = 10</entry><entry>CPN = 10</entry></row><row><entry namest="1" nameend="5" align="center" rowsep="1" /></row><row><entry>SOP</entry><entry>Sync-1</entry><entry>Sync-1</entry><entry>Sync-1</entry><entry>Sync-2</entry></row><row><entry /><entry>(11000)</entry><entry>(11000)</entry><entry>(11000)</entry><entry>(10001)</entry></row><row><entry>HardReset</entry><entry>RST-1</entry><entry>RST-1</entry><entry>RST-1</entry><entry>RST-2</entry></row><row><entry /><entry>(00111)</entry><entry>(00111)</entry><entry>(00111)</entry><entry>(11001)</entry></row><row><entry>SOPa</entry><entry>Sync-1</entry><entry>RST-2</entry><entry>RST-2</entry><entry>Sync-3</entry></row><row><entry /><entry>(11000)</entry><entry>(11001)</entry><entry>(11001)</entry><entry>(00110)</entry></row><row><entry>SOPb</entry><entry>Sync-1</entry><entry>Sync-3</entry><entry>Sync-1</entry><entry>Sync-3</entry></row><row><entry /><entry>(11000)</entry><entry>(00110)</entry><entry>(11000)</entry><entry>(00110)</entry></row><row><entry>SOPc</entry><entry>Sync-1</entry><entry>Sync-1</entry><entry>Sync-3</entry><entry>Sync-3</entry></row><row><entry /><entry>(11000)</entry><entry>(11000)</entry><entry>(00110)</entry><entry>(00110)</entry></row><row><entry namest="1" nameend="5" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0042Table 4 shows a set of four different start-of-packet delimiters labelled SOP, SOPa, SOPb, and SOPc, and also includes two different hard reset sequences, which allow the specifying of which transceivers in the system are to be reset. The hard-reset sequence labelled HardReset is the standard hard-reset sequence as defined in the USB specification, while the hard-reset sequence labelled HardReseta is a new hard-reset sequence defined for the purposes of the present disclosure. The start-of-packet delimiter labelled SOP is the standard start-of-packet delimiter as defined in the USB specification. As indicated in Table 4, the first 5-bit nibble (K-code #1) of each start-of-packet delimiter and hard-reset sequence has a CPN of 5. The last three 5-bit nibbles (K-codes #2, #3 and #4) of each sequence, meanwhile, all have a CPN of 15. Thus the overall CPN for each bit sequence is 15. These CPN=15 values for each sequence contribute to a relatively higher system complexity. The scheme set forth in Table 4 introduces two new 5-bit nibbles, namely the Sync-3 K-code (00110) and the Sync-4 K-code (01100), thus further increasing the complexity of the system somewhat relative to the systems of Tables 2 and 3. However, these additional K-codes are in part necessitated by the introduction of the additional hard-reset sequence. The DCBRs of the bit sequences of Table 4 are in the preferred range of 0.4-0.6. In Table 4, each of the start-of-packet delimiters SOP, SOPa, SOPb and SOPc differs from the legacy hard-reset sequence (HardReset) in at least sixteen bit positions, significantly reducing the chances of mistaking one of the start-of-packet delimiters for the legacy hard-reset sequence. Each of SOP, SOPa, SOPb and SOPc differs from the new hard-reset sequence (HardReseta) in at least eleven bit positions. The legacy hard-reset sequence (HardReset) differs from the new hard-reset sequence (HardReseta) at 12 bit positions, reducing the risk of mistaking one of the hard-reset sequences for the other.
0043<tables id="TABLE-US-00004" num="00004"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE 4</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>High performance system having two hard-reset sequences.</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="5"><colspec colname="1" colwidth="49pt" align="left" /><colspec colname="2" colwidth="42pt" align="center" /><colspec colname="3" colwidth="42pt" align="center" /><colspec colname="4" colwidth="42pt" align="center" /><colspec colname="5" colwidth="42pt" align="center" /><tbody valign="top"><row><entry>Sequence</entry><entry>K-code #1</entry><entry>K-code #2</entry><entry>K-code #3</entry><entry>K-code #4</entry></row><row><entry>Label</entry><entry>CPN = 5</entry><entry>CPN = 15</entry><entry>CPN = 15</entry><entry>CPN = 15</entry></row><row><entry namest="1" nameend="5" align="center" rowsep="1" /></row><row><entry>SOP</entry><entry>Sync-1</entry><entry>Sync-1</entry><entry>Sync-1</entry><entry>Sync-2</entry></row><row><entry /><entry>(11000)</entry><entry>(11000)</entry><entry>(11000)</entry><entry>(10001)</entry></row><row><entry>HardReset</entry><entry>RST-1</entry><entry>RST-1</entry><entry>RST-1</entry><entry>RST-2</entry></row><row><entry /><entry>(00111)</entry><entry>(00111)</entry><entry>(00111)</entry><entry>(11001)</entry></row><row><entry>SOPa</entry><entry>Sync-1</entry><entry>Sync-2</entry><entry>Sync-1</entry><entry>Sync-4</entry></row><row><entry /><entry>(11000)</entry><entry>(10001)</entry><entry>(11000)</entry><entry>(01100)</entry></row><row><entry>SOPb</entry><entry>Sync-1</entry><entry>RST-1</entry><entry>Sync-4</entry><entry>Sync-3</entry></row><row><entry /><entry>(11000)</entry><entry>(00111)</entry><entry>(01100)</entry><entry>(00110)</entry></row><row><entry>SOPc</entry><entry>Sync-1</entry><entry>Sync-1</entry><entry>Sync-3</entry><entry>Sync-3</entry></row><row><entry /><entry>(11000)</entry><entry>(11000)</entry><entry>(00110)</entry><entry>(00110)</entry></row><row><entry>HardReseta</entry><entry>RST-1</entry><entry>Sync-4</entry><entry>RST-2</entry><entry>Sync-3</entry></row><row><entry /><entry>(00111)</entry><entry>(01100)</entry><entry>(11001)</entry><entry>(00110)</entry></row><row><entry namest="1" nameend="5" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0044As previously mentioned, the standard start-of-packet delimiter as defined in the USB-PD specification is defined as three Sync-1 K-codes (11000) followed by one Sync-2 K-code (10001). This standard start-of-packet delimiter is referred to in the USB-PD specification, and in the present disclosure, as SOP. Per the USB specification, any transceiver that is USB power-delivery-capable, i.e., that is either a USB power-delivery provider, provider/consumer, consumer, or consumer/provider, shall be able to both detect and send data packets having the standard start-of-packet delimiter SOP. In an illustrative embodiment of the present disclosure, sending and receiving of packets having the standard start-of-packet delimiter SOP is limited to power-delivery-capable downstream-facing ports (DFPs) and power-delivery-capable upstream-facing ports (UFPs), that is, power-delivery-capable ports on USB-PD hosts and USB-PD devices. In an illustrative embodiment, transceivers residing in the USB cable, such as cable plug transceivers, for example, shall neither send nor accept packets having the standard start-of-packet delimiter SOP.
0045According to an illustrative embodiment of the present disclosure, a second start-of-packet delimiter, unique from the standard start-of-packet delimiter SOP, is maintained to enable exclusive communications between a USB-PD device and a transceiver residing in the USB cable such as a cable plug transceiver. This second start-of-packet delimiter, which will be designated SOP′ herein, allows such exclusive communications between a USB-PD device and the cable plug transceiver, for example, to be targeted specifically at the intended recipient, rather than broadcasting the communication to all transceivers coupled to the wire on which the communication is transmitted. In an illustrative embodiment of the present disclosure, this second start-of-packet delimiter SOP′ is defined as two Sync-1 K-codes (11000) followed by two Sync-3 K-codes (00110). Thus in this embodiment, SOP′=00011000110001101100. This specific second start-of-packet delimiter has been determined to be effective at enabling low-complexity implementations and minimizing the probability of mistaking one start-of-packet delimiter for another, using analysis similar to and including the analysis described above with respect to Tables 2-4.
0046According to an illustrative embodiment of the present disclosure, a cable plug transceiver capable of SOP′ communications shall use said second start-of-packet delimiter SOP′ in all data packets that it transmits, and shall only be able to detect data packets having said second start-of-packet delimiter SOP′. In this illustrative embodiment, a USB-PD downstream-facing port (DFP) or a USB-PD source device that needs to be able to communicate with a cable plug transceiver that is capable of SOP′ communications shall be capable of communicating using both packets starting with the standard start-of-packet delimiter SOP and packets starting with the second start-of-packet delimiter SOP′. Thus such a DFP or source device shall be able to detect packets having the SOP′ start-of-packet delimiter, and when such a DFP or source device wants to send a communication to the cable plug transceiver it will do so using a packet starting with the SOP′ start-of-packet delimiter. In an illustrative embodiment, the DFP or source device coordinates SOP and SOP′ communications so as to avoid collisions.
0047When a cable plug transceiver that supports SOP′ communications receives an incoming data packet, it checks the start-of-packet delimiter of the incoming packet. If the SOP′ start-of-packet delimiter is not detected, the transceiver ignores the entire transmission. When a USB-PD downstream-facing port (DFP) or USB-PD source device that supports SOP′ communications receives an incoming data packet, it checks the start-of-packet delimiter of the incoming packet. If the SOP or SOP′ start-of-packet delimiter is detected, the packet is accepted and processed per the transceiver's usual packet processing procedures. If, on the other hand, the SOP or SOP′ start-of-packet delimiter is not detected, the transceiver ignores the entire transmission.
0048Some USB cables can have multiple transceivers residing therein. For example, a USB cable having a USB plug on each end can have a transceiver associated with each plug. In an illustrative embodiment, in such cases, two alternative start-of-packet delimiters are maintained, in addition to the standard USB start-of-packet delimiter, in order to allow targeted communications with one of the cable plug transceivers but not the other. Thus in an illustrative embodiment, in addition to the SOP and SOP′ start-of-packet delimiters defined above, a third start-of-packet delimiter, which will be designated SOP″ herein, is maintained to allow exclusive communications between a USB-PD device and one of the cable plug transceivers. In an illustrative embodiment of the present disclosure, this third start-of-packet delimiter SOP″ is defined as the following sequence of K-codes: Sync-1 (11000), Sync-3 (00110), Sync-1 (11000), Sync-3 (00110). Thus in this embodiment, SOP″=00011011000001101100. This specific third start-of-packet delimiter has been determined to be effective at enabling low-complexity implementations and minimizing the probability of mistaking one start-of-packet delimiter for another, using analysis similar to and including the analysis described above with respect to Tables 2-4.
0049According to an illustrative embodiment of the present disclosure, only a cable having SOP′ communication capability in one of its cable plugs shall support SOP″ communication in the other cable plug. No cable shall support only SOP″ communication. Similarly, only downstream-facing ports (DFPs) that support SOP′ communication shall support SOP″ communications. No DFP shall support SOP″ communication but not SOP′ communication. In an illustrative embodiment, a cable plug transceiver capable of SOP″ communications shall use the third start-of-packet delimiter SOP″ in all data packets that it transmits, and shall only be able to detect data packets having said third start-of-packet delimiter SOP″. In this illustrative embodiment, a USB-PD downstream-facing port (DFP) or a USB-PD source device that needs to be able to communicate with two different cable plug transceivers shall be capable of communicating using packets starting with either the standard start-of-packet delimiter SOP, the second start-of-packet delimiter SOP′, or the third start-of-packet delimiter SOP″. Thus such a DFP or source device shall be able to detect packets having the SOP″ start-of-packet delimiter, and when such a DFP or source device wants to send a communication to the SOP″-capable cable plug transceiver it will do so using a packet starting with the SOP″ start-of-packet delimiter. In an illustrative embodiment, the DFP or source device coordinates SOP, SOP′ and SOP″ communications so as to avoid collisions.
0050When a cable plug transceiver that supports SOP″ communications receives an incoming data packet, it checks the start-of-packet delimiter of the incoming packet. If the SOP″ start-of-packet delimiter is not detected, the transceiver ignores the entire transmission. When a USB-PD downstream-facing port (DFP) or USB-PD source device that supports SOP″ communications receives an incoming data packet, it checks the start-of-packet delimiter of the incoming packet. If one of the SOP, SOP′ or SOP″ start-of-packet delimiter is detected, the packet is accepted and processed per the transceiver's usual packet processing procedures. If, on the other hand, the SOP, SOP′ or SOP″ start-of-packet delimiter is not detected, the transceiver ignores the entire transmission. In an illustrative embodiment, USB-PD upstream-facing ports (UFPs) shall not support SOP′ or SOP″ communications. Therefore such transceivers shall not use the SOP′ or SOP″ start-of-packet delimiter when sending packets, and if such a transceiver receives an incoming data packet having the SOP′ or SOP″ start-of-packet delimiter, it shall ignore the entire transmission.
0051As previously mentioned, in an illustrative embodiment, the system also maintains multiple hard-reset values so that specified ones of the transceivers coupled to the USB cable, such as transceivers <b>110</b>, <b>120</b>, and <b>140</b> in <figref idref="DRAWINGS">FIG. 1</figref>, can be reset without resetting all of the transceivers in the system. As previously mentioned, the USB specification defines a standard hard-reset code that is placed immediately following the preamble of the packet, in place of the start-of-packet delimiter, to effect the hard reset of transceivers that receive the hard-reset sequence. The standard hard-reset sequence as defined by the USB-PD specification comprises three RST-1 K-codes (00111) followed by one RST-2 K-code (11001). Thus the standard hard-reset sequence is 11100111001110010011. Per the USB specification, both USB device transceivers and cable plug transceivers shall perform a hard reset whenever the hard-reset sequence is detected following the packet preamble.
0052According to an illustrative embodiment of the present disclosure, the system maintains a second hard-reset sequence, referred to herein as a cable-reset sequence, for the purpose of resetting transceivers residing in the USB cable, such as cable plug transceivers, without resetting the USB devices attached to the cable. In an illustrative embodiment, the cable-reset sequence is defined as the following sequence of K-codes: RST-1 (00111), Sync-1 (11000), RST-1 (00111), and Sync-3 (00110). Thus the cable-reset bit sequence is 11100000111110001100. This specific cable-reset bit sequence has been determined to be effective at enabling low-complexity implementations and minimizing the probability of mistaking one start-of-packet delimiter for another, using analysis similar to and including the analysis described above with respect to Tables 2-4.
0053Having thus described circuits and methods for distinguishing intended recipients of a data packet using start-of-packet delimiters and hard-reset sequences by reference to certain of their preferred embodiments, it is noted that the embodiments disclosed are illustrative rather than limiting in nature and that a wide range of variations, modifications, changes, and substitutions are contemplated in the foregoing disclosure. For example, while certain aspects of the invention are described with respect to a USB power delivery communication system, it will be understood that such aspects can also be applied to other types of communication systems other than USB-PD systems. Furthermore, in some instances, some features may be employed without a corresponding use of the other features. Accordingly, it is appropriate that the appended claims be construed broadly and in a manner consistent with the broad inventive concepts disclosed herein.
Contents5
5 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US7215670B1 | Cites | United States of America | Search report |
| US7346728B1 | Cites | United States of America | Search report |
| US7533209B2 | Cites | United States of America | Search report |
| US7990937B2 | Cites | United States of America | Search report |
| US8315523B2 | Cites | United States of America | Search report |
| TPS65987D USB Type-C and USB PD Controller with Integrated Power Switches datasheet (Rev. B) , revised Jan. 2019. (Year: 2019). | Non-patent | – | Search report |
| “Universal Serial Bus Power Delivery Specification,” Revision 1.0, Including Errata Through Mar. 11, 2014 (Version 1.3), Chapter 5, 27 pages pages. | Non-patent | – | Applicant |
| TPS65987D USB Type-C and USB PD Controller with Integrated Power Switches datasheet (Rev. B) , revised Jan. 2019. (Year: 2019). | Non-patent | – | Search report |
| “Universal Serial Bus Power Delivery Specification,” Revision 1.0, Including Errata Through Mar. 11, 2014 (Version 1.3), Chapter 5, 27 pages pages. | Non-patent | – | Applicant |
3 members in 1 office
Priority claims10
| Document | Office | Kind | Date |
|---|---|---|---|
| 201461976604 | United States of America | P | |
| 201461976604 | United States of America | P | |
| 201514680935 | United States of America | A | |
| 201514680935 | United States of America | A | |
| 201916568009 | United States of America | A | |
| 14680935 | – | – | – |
| 61976604 | – | – | – |
| US201461976604P | – | – | – |
| US201514680935 | – | – | – |
| US201916568009 | – | – | – |
Members3
| Document | Office | Kind | |
|---|---|---|---|
| US2015286605A1 | United States of America | A1 | |
| US9760522B2 | United States of America | B2 | |
| USRE48754EThis record | United States of America | E |
51 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail PUB other miscellaneous communication to applicantMM327-D | MM327-D | |
| PUB Other miscellaneous communication to applicantM327-D | M327-D | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Ex Parte Quayle ActionA.QU | A.QU | |
| New or Additional Drawing FiledC614 | C614 | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Ex Parte Quayle Action (PTOL - 326)MCTEQ | MCTEQ | |
| Quayle actionCTEQ | CTEQ | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Oath or Declaration Filed (Including Supplemental)C602 | C602 | |
| New or Additional Drawing FiledC614 | C614 | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Notice of Reissue Published in Official GazetteNRE. | NRE. | |
| Paralegal Reissue Review CompletePRIR | PRIR | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Application Dispatched from OIPEOIPE | OIPE | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Preliminary AmendmentA.PE | A.PE | |
| PTO/SB/69-Authorize EPO Access to Search ResultsSREXR141 | SREXR141 | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Cleared by OIPE CSRL194 | L194 | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
2 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Fee payment procedureENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP |
Numbers
- Publication
- RE048754
- Publication, DOCDB
- RE48754
- Publication, EPODOC
- USRE48754E
- Application
- 16568009
- Application, DOCDB
- 201916568009
- Application, EPODOC
- US201916568009
Titles
- English
- Message recipient discrimination using start-of-packet delimiters
Classification
- CPC, 3
- G06F13/4221
- G06F13/382
- G06F13/4295
- IPC, 2
- G06F13 42
- G06F13 38