United States

Data Center Software User's Manual v6.00

6 USB Monitoring

The Beagle USB 5000 SuperSpeed Protocol Analyzer is capable of monitoring super-speed, high-speed, full-speed, and low-speed USB devices in real time.

The Beagle USB 480 Protocol Analyzer is capable of monitoring high-speed, full-speed, and low-speed USB devices in real time.

The Beagle USB 12 Protocol Analyzer is capable of monitoring full-Speed and low-Speed USB devices in real time.

The Data Center software is able to parse the USB packets and provides the user with several powerful tools for filtering the captured data.

6.1 Performing a USB Capture

Here are the steps for starting a capture with the Beagle USB 5000 analyzer, the Beagle USB 480 analyzer, or the Beagle USB 12 analyzer.

  1. Start the Data Center application.

  2. Plug in the power cord and turn on the analyzer when using the Beagle 5000. Make sure the white Total Phase logo LED has illuminated. This step is not necessary when using other Beagle analyzer since they draw from the USB power from the analysis PC.

  3. Connect the Beagle USB analyzer to the analysis computer. Make sure that the green indicator LED has illuminated when using the Beagle USB 480 analyzer. Be sure the analyzer is powered before plugging in any devices on the capture side to ensure the target device can function properly.

  4. Click the Connect to Analyzer… button in the toolbar and connect to the analyzer.

  5. Ensure the Protocol Lens is set to USB.

  6. Connect the Beagle USB analyzer to the target host computer. This can be the same computer. Make sure that the amber indicator LED has illuminated on the Beagle 480 analyzer. Make sure the Target Power LED has illuminated on the Beagle 5000.

  7. Click the Run Capture button to start the data capture. Manually trigger the capture using the Capture Control window when using the Beagle 5000. Once the capture has started, the capture indicator will turn green and an informational transaction will appear in the Transaction window which notes when the capture was started.

  8. Connect the target device.

    With the Beagle USB 5000 analyzer, any super-speed, high-speed, full-speed, or low-speed USB device can be connected directly. While USB 3.0 signals occur in parallel to USB 2.0/1.x signals, the Beagle USB 5000 analyzer is capable of recording both simultaneously. When monitoring super-speed USB, please make sure to use USB 3.0 cables to connect the target host and the target device.

    With the Beagle USB 480 analyzer, any high-speed, full-speed, or low-speed USB device can be connected directly.

    With the Beagle USB 12 analyzer, full-speed and low-speed devices can be connected directly to the Beagle USB 12 analyzer. High-speed devices can also be monitored, but they must be connected through an in-line full-speed hub.

  9. To stop the capture, click on the Stop Capture button.

The Bus pane will only display a device’s descriptors if the device’s entire enumeration sequence was captured. If the target device connects to the host before the capture is started, the device enumeration will not be captured and the descriptors cannot be displayed.

6.2 USB Capture Settings

Various capture settings can be configured by the user when using a Beagle USB 5000 analyzer or Beagle USB 480 analyzer. Please note that there are no USB-specific user controlled capture settings when using the Data Center application with the Beagle USB 12 Protocol Analyzer.

\includegraphics[clip=true]{default-usb-settings}
Figure 46: USB Capture Settings Dialog

Capture Mode

The Data Center software has two modes of operation during capture with a Beagle USB 480/5000 Protocol Analyzer.

  • Sequential – Saves information necessary to display the capture in time-ordered Packet View (Section 6.7).

  • Aggregate – Discards the information saved in Sequential Mode in order to reduce memory usage. Using this mode disables the ability to use Packet View (Section 6.7).

Keep/Drop Options

The Data Center software compresses individual data-less sequences, by default, to reduce memory usage during capture with a Beagle USB 480 analyzer or Beagle USB 5000 analyzer.

For USB 2.0 captures, the user can turn off compression and keep individual data-less sequences by checking Data-less Sequences.

For USB 3.0 captures, the user can turn off compression and keep individual sequences for the following types of traffic by checking their respective boxes:

  • Link Power Reject

  • Training

  • LUP/LDN

  • LFPS

  • ITP

6.3 USB Device Settings

There are several USB device settings that can be set by the user when using a Beagle USB 480 Protocol Analyzer or a Beagle USB 5000 Protocol Analyzer. Some of these settings are shared between the two analyzers and others are specific to the Beagle USB 5000 analyzer. Please note that there are no user controlled device settings when using the Data Center application with the Beagle USB 12 Protocol Analyzer.

The USB device settings can be changed in the Device Settings dialog (Figure 47). To open this dialog, click on the Device Settings… button or go to Analyzer | Device Settings….

\includegraphics[clip=true]{usb-device-settings}
Figure 47: USB Device Settings Dialog

USB 2.0 Bus Speed

The Beagle USB 480/5000 analyzer has the ability to automatically detect the speed at which the USB-under-test is operating. However, there may be a situation where the user wishes to explicitly lock it to a specific USB bus speed. This control allows the user to switch between the Beagle analyzer automatically detecting the bus speed to locking the hardware to a specific speed.

If the user knows that the traffic on a bus will always be a certain speed, there can be at least one minor advantage to locking the target speed in the capture settings. Specifically for low-speed and full-speed devices, by locking the bus speed, the Beagle analyzer will not attempt to detect high-speed signaling levels. This will help mitigate the appearance of Chirp J/K and Tiny J/K events which are not of great importance for low-speed- and full-speed-only devices, and these events would otherwise only serve to clutter the display.

Omit Packets Matching Beagle Analyzer’s Device Address

When the analysis port of the Beagle USB 480 analyzer is connected to the same USB host controller as the traffic being monitored, the Beagle analyzer may observe its own USB traffic. This is because all downstream packets from the host are broadcast to all USB links. Therefore, packets from the host to the Beagle analyzer may appear on the capture side of the Beagle USB 480 analyzer.

One method to avoid flooding the capture with traffic for the Beagle analyzer is to enable the Omit packets matching Beagle’s device address option. This option instructs the Beagle USB 480 analyzer to discard any packets directed to its own device address. Further information about this option may be found in Device Operation section of the Beagle datasheet.

Do not enable this option if the Beagle USB 480 analyzer is not on the same host controller or if it is not on the same computer as the traffic being monitored. This may cause the Beagle analyzer to discard USB packets intended for another device since device addresses across different USB buses can overlap. Furthermore, do this only if you are monitoring a High-speed device with the Beagle 480 Analyzer, as High-speed devices and Full-speed or Low-speed devices on the same host may also have overlapping addresses.

Do not enable this option when using a Beagle USB 5000 analyzer. USB 3.0 hosts are required to have an integrated USB 2.0 host which means that by default the analyzer will be monitoring a separate host controller.

USB2 Capture Mode

The Beagle USB 480 analyzer has two modes of operation during capture.

  • Real-time – The capture is streamed from the Beagle USB 480 analyzer to the Data Center software as it is received. If the hardware is monitoring traffic faster than it can stream data to the analysis PC, it will cache the data in the analyzer’s hardware buffer. If the hardware buffer should fill completely, the capture will be stopped.

  • Delayed-download – The Beagle analyzer hardware will not stream the capture data to the analysis PC until the capture is concluded. The capture will be stored in the analyzer’s hardware buffer until it is filled or the user stops the capture to download the results. This feature is useful if the Beagle analyzer is connected to the same host controller as the traffic being monitored, as this greatly reduces the amount of USB traffic generated by the Beagle analyzer while the capture is taking place. More information about the utility of a delayed-download capture can be found in the Beagle datasheet (Device Operation section). More details on running a delayed-download capture can be found in Section 6.4.

USB2 Hardware Input Filter

These options will enable the Beagle USB 480/5000 analyzer hardware to discard some common packet groups to reduce the amount of capture data received. Some of these packet groups correspond to polling operations and so these sequences do not contain any actual data transfer. When using the Beagle USB 5000 analyzer, these settings are only applicable when capturing USB 2.0 data.

Note: If there is a change in the digital input lines in the middle of one of the packet groups that is being filtered, that group will not be discarded. In this way, the context for the digital input line change is preserved.

The hardware filter options are:

  • SOF – Discard Start-of-Frame packets.

  • IN – Discard IN+ACK and IN+NAK packet groups.

  • PING – Discard PING+NAK packet groups.

  • PRE – Discard all PRE tokens.

  • SPLIT – Enabling this option will cause the hardware to discard many polling split packet groups. The split groups that will be discarded are:

    • SSPLIT+IN

    • SSPLIT+IN+ACK

    • CSPLIT+IN+NAK

    • CSPLIT+IN+NYET

    • CSPLIT+OUT+NYET

    • CSPLIT+SETUP+NYET

Configure Matching

The digital inputs and outputs are configured in the USB 2.0/USB 3.0 matching system.

USB 2.0

All USB 2.0 digital inputs and outputs for the Beagle USB 480 analyzer and Beagle USB 5000 analyzer can be configured in a single window (Figure 48).

\includegraphics[clip=true]{matching-usb2}
Figure 48: USB 2.0 Matching Configuration Dialog

Digital Input Configuration

This option enables the user to individually enable the four digital input lines on the Beagle USB 480/5000 analyzer hardware. During the capture, if there is a change on one of the enabled input lines, an event transaction will be displayed in the Transaction window with the new input line state.

When using the Beagle USB 5000 analyzer, there is an additional option to set individual digital inputs to trigger the capture. When configuring the trigger, the user can select whether a rising edge, falling edge, or either should trigger the capture.

USB2 Matching

The lower half of the USB 2.0 matching window provides the capabilities to configure the digital output lines on the Beagle USB 480/5000 analyzer hardware. See the Device Operation section of the Beagle analyzer datasheet for information on the timing of the digital output pins.

Pin 1

When enabled, digital output pin 1 will switch to its active state at the beginning of capture and will stay at the active level until the capture is stopped. The options available on this tab are to set pin 1 to be active high, active low, or to disable the pin.

Pin 2

When enabled, digital output pin 2 will switch to its active state whenever there is a USB packet being transmitted on the bus. The options available on this tab are to set pin 2 to be active high, active low, or to disable the pin.

Pin 3

Digital output pin 3 can be set to match a PID, a device address, and an endpoint address. For example, pin 3 can go active when it observes a DATA0 packet to any device but 0x01 on any endpoint address. Each of the match settings can be set to match if the packet equals the parameter (=), does not equal the parameter (!=), or it can disregard the parameter (X). Pin 3 can also be set to be active high, active low, or to be disabled.

Pin 4

Digital output pin 4 can be set to match a PID, a device address, an endpoint address, and a data payload pattern. As with Pin 3, the PID, device, and endpoint settings can be set to match if the packet equals the parameter (=), does not equal the parameter (!=), or it can disregard the parameter (X). The data pattern to match can be set in the Data Matching Options once data matching is enabled. Pin 4 can also be set to be active high, active low, or to be disabled.

Data Matching Options

Clicking the Data Match Options button in the Pin 4 tab of the Digital Output Settings dialog will reveal the data match options (Figure 49). Checking the Enable Data Matching option will enable the data match functionality.

Note: PID matching will be disabled when data pattern matching is enabled. The data PIDs selected in the PIDs to match section will be used instead.

\includegraphics[clip=true]{usb480-dig-out-4-data}
Figure 49: Digital Output Pin 4 Data Tab

The data match pattern for output pin 4 can be specified in the hex editor. XX can be used anywhere in the pattern as a wildcard to match any 1-byte datum at that location. The data match pattern can be up to 1024 bytes in length.

When data pattern matching is enabled, every data packet with the specified PID will have its data payload (not including the PID or the CRC field) matched against as much of the pattern as the data payload size. So a data packet with an 8-byte data payload will be compared against the first 8 bytes of the data match pattern. And a data packet with a 64-byte payload will be compared against the first 64 bytes of the data pattern.

Using the pulldown box above the hex editor, the packet can be set to match if the payload equals the pattern (=) or does not equal (!=) the pattern.

The Write CSV button allows the contents of the data match hex editor to be written to a comma-separated values (*.csv) file. The CSV file can be loaded into the data match table by clicking the Read CSV button. The Clear Data button will clear the contents of the data match table.

USB 3.0 Simple

In the USB 3.0 Simple tab (Figure 50), the simple matching systems is capable of triggering the USB 3.0 capture or asserting the external output on the following types of data or events in either the upstream or downstream direction:

\includegraphics[clip=true]{matching-usb3-simple}
Figure 50: USB 3.0 Simple Matching Configuration Dialog

  • Link Command

  • Header Packet

  • Data Payload

  • CRC Error

  • Training Sequences

  • VBUS Detection

  • External Input

  • Reverse Polarity

  • Termination Detection

  • Scrambling Disable

  • LFPS

  • PHY Error

The simple match is designed to be very broad to provide a quick method to set triggers to capture data. For example, selecting Header Packet will match whenever a Link Management Packet, Transaction Packet, Data Payload Packet, or Isochronous Timestamp Packet occurs on the bus.

When a match occurs, the user can configure the analyzer to trigger and/or assert the external output. The external output can be asserted on the capture trigger or on every time the match occurs.

WARNING: The USB 3.0 Digital Input and Output are only rated for 1.8V. The USB 3.0 input and output of the Beagle USB 5000 analyzer have been optimized for maximum edge performance at 125 MHz. Applying signals with higher voltage will damage your analyzer and void the warranty.

Details about the different types of packets and events are covered in the Beagle analyzer datasheet.

As a convenience, common configurations can be set with a click of a button. These configurations are:

  • Check All CRC Errors

  • Check All Training Sequences

  • Check All

  • Clear All

USB 3.0 Complex

The USB 3.0 Complex tab (Figure 51) provides additional capabilities beyond the USB 3.0 Simple options to match a specific packet type or data pattern in addition to bus events and timers.

\includegraphics[clip=true]{matching-usb3-complex}
Figure 51: USB 3.0 Complex Matching Configuration Dialog

Instead of an array of check boxes, complex matches are built through states. The Standard Beagle USB 5000 analyzer allows for a single state to be defined. The optional advanced matching upgrade allows for up to eight states to be defined.

Within any state, match action units are specified to define the match conditions which can trigger an action. Matches can be based on packet type, packet data, events, and/or timers. The Standard Beagle USB 5000 analyzer provides an upstream data match, a downstream data match, and an event match. The optional advanced matching upgrade allows for up to three upstream data matches, up to three downstream data matches, an event match, and a timer per state. The actual number of matches available in any one state will depend on the resources available.

Each match action unit defines one or more actions when the match conditions are met. The available actions are: assert external output, trigger capture, filter out the matching data, or go to another state (including the current state). These actions provide flexibility to define very complex scenarios to capture specific USB 3.0 traffic.

The top of the USB 3.0 Complex Match tab has the following functions:

Validate States \includegraphics[clip=true]{validate}
The Validate States button will do a simple verification of the state configuration to make sure that there are no obvious errors. If the configuration is valid, “OK” will appear next to the button. If the configuration is invalid, an error message will appear next to the button (Figure 52).

\includegraphics[clip=true]{validate-states-error}
Figure 52: USB 3.0 Complex Matching - Invalid state

Write Config and Read Config \includegraphics[clip=true]{config-buttons}
Users are able to save and load complicated matching for later use. To save a complex state match, click Write Config. A file dialog will open so that the user can save a CSM file with the configuration. To load a match, click Read Config, and find the desired CSM file with the file dialog. The CSM file is a text based file that can be edited with a text editor.

Clear All \includegraphics[clip=true]{clear-all-button}
Clear All will delete all complex state match data. When the button is clicked, a modal dialog will appear to confirm the deletion of all match data.

Enabled \includegraphics[clip=true]{complex-enabled}
The Enabled checkbox indicates whether the complex matching system is enabled. Simply click the checkbox to activate the interface to define a complex state match.

State Configuration

Each state in the complex state match is delimited by a graphical box. The box is identified by the state number. By default the first state is created when creating a new complex match.

To create a new state, simply click the New State button. Only a single state can be defined when using a standard Beagle USB 5000 analyzer. Up to eight states can be defined with an optional upgrade to the advanced matching.

A state can be deleted by clicking on the \includegraphics[clip=true]{state-delete} button at the top left of a state window. A modal dialog will open when the button is clicked to verify that the deletion of the state.

To change the order of the states, click and drag a state box. A dotted box will appear where the state will be moved to and the other states will reorder themselves (Figure 53). Once the state is released, all other states will renumber themselves accordingly. Any existing “GOTO” command will be updated with the new state number.

\includegraphics[clip=true]{state-move}
Figure 53: USB 3.0 Complex Matching - Reordering States

Match Action Units

Within each state, one or more match action units can be defined by clicking on the New Match Action button. When clicked, the available match action units will appear as a drop down menu (Figure 54). A Match Action Configuration window will open specific to the type of match action unit selected. If a match action unit is not available, it will be grayed out in the menu.

\includegraphics[clip=true]{mau-new}
Figure 54: USB 3.0 Complex Matching - Creating a new match action unit

After a match action unit is defined, a match action unit block will appear in the state with a textual description of the match criteria and action settings. If a “Go To” branching action has been defined, the “GOTO” parameters will appear next to the match action unit.

To change the settings of a match action unit, click the Settings button \includegraphics[clip=true]{mau-settings} , this will open the match action configuration window. To delete a defined match action unit, click on the delete button \includegraphics[clip=true]{mau-delete} . A modal dialog will open to confirm the deletion.

Each state can have a number of match action units. If multiple matches occur simultaneously, all non-GOTO actions will execute before the GOTO executes and the state changes. If multiple matches occur simultaneous that have GOTO actions, the order of the GOTO blocks in the state determine what the next state will be. For example, in Fig 53, if a downstream ITP and upstream ITP occur at the same time, the GOTO 2 from the downstream ITP will execute since it comes before all other matching GOTOs in the state.

To change the order of the match action units, click and drag a match action unit. A dotted box will appear where the match action unit will be moved to and the other match action units will reorder themselves accordingly (Figure 55).

\includegraphics[clip=true]{mau-move}
Figure 55: USB 3.0 Complex Matching - Reordering a match action unit

Match Action Unit Configuration

The different match action units have different configuration windows to suit their properties. In general there are three types of match action units: data match, event match, and timer match. The timer match is only available in the advanced matching system.

Available Actions

All match action units can be configured to execute one or more actions: assert digital output, capture the trigger, or go to another state.

With the advanced matching upgrade, counters are built-in to all match action units. They can be configured in one of two ways (Figure 56): execute the action after the match has occurred a specified number of times (“Apply action on or after X matches”) or execute for a set number of matches (“Apply action on the first X matches”).

\includegraphics[clip=true]{mau-counter}
Figure 56: USB 3.0 Complex Matching - Match counter

Event Match Action Unit

The Event Match Action Unit (Figure 57) matches USB 3.0 events similar to what is available in the USB 3.0 Simple configuration.

\includegraphics[clip=true]{mau-event}
Figure 57: Event Match Action Unit

The following events in the upstream or downstream direction can be selected: LPFS, Polarity Inversion, Receiver (RX) Termination, or Disable Scrambling. VBUS Presence and External Input can also be selected independent of stream direction. The match can be specified on the rising or falling edge.

Timer Match Action Unit

The Timer Match Action Unit (Figure 58) matches after a specified amount of time has elapsed. The amount of time can be configured in seconds, milliseconds, microseconds, or nanoseconds.

\includegraphics[clip=true]{mau-timer}
Figure 58: Timer Match Action Unit

Data Match Action Unit

The Data Match Action Unit is the most versatile and is configured for specifically the upstream (US) or downstream (DS) direction. A Data match action unit can be configured for any one of the following packet types: Link Command, Header Packet, Data Packet, Qualified Data Packet, and Training Sequence.

All Data match action units provide the ability to match the opposite of the selection. In this way, a match action unit can be configured to match X or NOT X.

It is important to note that data match action units are defined for a common class of packets and the negation only occurs within that type (Figure 59). For example, selecting “Any Link Command of a different Link Type” will only match any link command that is not LGOOD_0 (e.g. LGOOD_1, LCRD_A, etc.). If “Any packet besides this Link Type” is selected, the unit will match not only on every other link command, but also any packet which is not a link command (e.g. Header Packet or Data Packet Payload).

\includegraphics[clip=true]{mau-negation}
Figure 59: Data Match Action Unit - Negative Criteria

Link Command Match Action Unit

The Link Command match action unit (Figure 60) provides the ability to match a specific link command. Checks for the validity of the CRCs can also be set.

Header Packet Match Action Unit

\includegraphics[width=3.25in]{mau-header}
Figure 61: Header Packet Data Match Action Unit

The Header Packet match action unit (Figure 61) provides the ability to set a specific data pattern to match in the header packet. The fields of the header packet follow the USB 3.0 specification. The fields available will depend on the type of header packet that is specified. The data pattern must be entered in binary format with a X indicating that the specific bit does not need to be matched.

Fields marked with a black triangle in the bottom right corner are configured with presets to facilitate data entry. By clicking on the field, a drop-down menu will appear listing the available options. Please note that it is not necessary to use the drop-down menu, a bit pattern can be specified directly.

The fields available in the interface will update on the fly to match the type of header packet selected.

Data Packet

\includegraphics[width=3.25in]{mau-data}
Figure 62: Data Packet Data Match Action Unit

The Data Packet match action unit (Figure 62) can match a data pattern in the data payload. The hex editor interface for entering the data payload pattern is flexible. The user can enter data in hex, ASCII, binary, decimal, or octal. Right-clicking on the interface brings up a contextual menu that allows the user to change the input style, number of panes, radix, etc.

The data match pattern can be specified in the hex editor. XX can be used anywhere in the pattern as a wildcard to match any 1-byte datum at that location. The data match pattern can be up to 1024 bytes in length.

When data pattern matching is enabled, every data packet will have its data payload matched against as much of the pattern as the data payload size. So a data packet with an 8-byte data payload will be compared against the first 8 bytes of the data match pattern. And a data packet with a 64-byte payload will be compared against the first 64 bytes of the data pattern.

The CRC-32 and END Framing combo box can be specified to match a data packet which ends in a valid CRC-32 and END framing (“Both valid”), an invalid CRC-32 or EDB framing (“Either invalid”), or to ignore these fields entirely (“Both ignored”).

Qualified Data Packet

\includegraphics[width=3.25in]{mau-qualified-data}
Figure 63: Qualified Data Packet Data Match Action Unit

The Qualified Data Packet match action unit (Figure 63) provides the same capabilities as the Data Packet match, but also provides the ability to specify additional parameters such as device, endpoint, stream ID, and data length.

Training Sequences

\includegraphics[width=3.25in]{mau-training}
Figure 64: Train Sequence Data Match Action Unit

The Training Sequence match action unit (Figure 64) can match a TS1, TS2, or TSEQ packet. For TS1 and TS2, the data pattern for the Link Configuration Field can be supplied.

Error

\includegraphics[width=3.25in]{mau-error}
Figure 65: USB 3.0 Error Data Match Action Unit

The Error match action unit (Figure 65) can match on any packet type which exhibits an error. The errors which can be matched are a CRC error, Framing error, or any unknown packet. Matches of this type cannot be filtered.

5 Gbit Transmission

\includegraphics[width=3.25in]{mau-5gbit}
Figure 66: USB 3.0 5 Gbit Transmission Data Match Action Unit

The 5 Gbit Transmission match action unit (Figure 66) can match on the start or stop of 5 Gbit transmission. Matches of this type cannot be filtered.

USB 3.0 Ext Out

The behavior of the USB External output (Figure 67) can be configured for the Beagle USB 5000 analyzer. The external output can be set to one of the following behaviors when it is asserted:

\includegraphics[clip=true]{matching-usb3-ext-out}
Figure 67: USB 3.0 External Out Configuration

  • Set Low

  • Set High

  • Positive Pulse

  • Negative Pulse

  • Toggle (Initially Low)

  • Toggle (Initially High)

WARNING: The USB 3.0 Digital Input and Output are only rated for 1.8V. The USB 3.0 input and output of the Beagle USB 5000 analyzer have been optimized for maximum edge performance at 125 MHz. Applying signals with higher voltage will damage your analyzer and void the warranty.

USB 3.0 Capture Settings

Beagle 5000 Capture Mode

In USB 3.0 systems, a backwards compatible USB 2.0 system exists in parallel. The two protocols essentially operate as two separate channels.

The Beagle USB 5000 analyzer is able to capture USB 3.0 and/or USB 2.0 data. In the standard analyzer, either protocol can be captured. With an optional upgrade, the analyzer is able to capture both USB 3.0 and USB 2.0 simultaneously.

From the pull-down menu, users can select: USB 3.0, USB 2.0, or both.

USB 3.0 Truncation Mode

The Beagle USB 5000 analyzer can optionally truncate incoming packets to 20 symbols, 36 symbols, or 60 symbols. These truncation lengths include the packet framing (4 symbols), and thus provide a means for capturing 16 symbols, 32 symbols, or 64 symbols after the packet framing.

Even if truncation is enabled, match units will still be able to compare against the full length of the packet. Additionally, the Data Center software will still provide the user with the true length of the packet transmitted on the bus.

Enabling packet truncation will limit the available class-level decoding to Mass Storage, UASP, and Bulk Transfer Grouping. Within these parsers there may be additional limitations due to the loss of data.

Note that if the configuration descriptor is truncated, class-level decoding cannot be automatically applied. These can be applied after the capture has been stopped by using the Configuration Management feature of Data Center. See Section 6.10 for more details.

Capture Buffer

\includegraphics[clip=true]{capture-buffer}
Figure 68: USB 3.0 Capture Buffer Settings

With the Beagle USB 5000 analyzer, it is possible to limit the total size of the capture. The orange and blue bar represents the total amount of capture memory available on the analyzer (Figure 68). The orange area represents the amount of memory allocated to the pre-trigger capture. The blue area represents the amount of memory allocated to the post-trigger capture. By dragging the triangles located above and below the bar, the amount of memory used for the capture can be allocated. Not all the memory available on the analyzer needs to be used.

There is also the option of an infinite capture (Figure 69). Since the Beagle analyzer is constantly streaming data to the Analysis PC, it is possible for the analyzer to free up memory on the analyzer during the capture. This freed memory can be reused to capture more data. As long as the Analysis PC is able to keep up with the stream of data from the analyzer, it is theoretically possible to capture data infinitely. However, at a certain point, the memory on the analysis machine will be used up and the capture will need to be stopped.

\includegraphics[clip=true]{capture-buffer-infinite}
Figure 69: USB 3.0 Infinite Capture Buffer Setting

It is also important to note that the pre-trigger buffer will operate as a circular buffer until the trigger occurs. The Beagle analyzer will not download the data to the Analysis computer until the trigger event occurs. During this time, the portion of the memory allocated to the pre-trigger capture will be reused until the trigger occurs. Once the trigger happens, the capture buffer will be sent to the Analysis PC. It is important to note that if the pre-trigger buffer is not large enough, events could be lost from the early part of the capture.

Optionally, the capture can be immediately triggered once the capture has started by checking the Trigger Immediately checkbox.

Front-end Settings

Given the speeds of USB 3.0, it is not possible to passively monitor the USB 3.0 bus. Consequently, the USB 3.0 data stream needs to be regenerated to send to the target receiver. It is important to note that the latency of this regeneration is only 1 ns and that the USB 3.0 signal is not retimed.

Since the signal is regenerated, it is possible to modify some aspects of the signal. The Frontend Settings dialog (Figure 70) allows the user to configure this behavior.

\includegraphics[clip=true]{front-end}
Figure 70: USB 3.0 Frontend Settings

There are three different properties that can be set in either the upstream or downstream direction.

Output level is the signal levels sent by the transmitter in the Beagle USB 5000 analyzer. By lowering the output signal level, it is possible to test the sensitivity of the USB 3.0 receiver.

Input Equalization is used to correct for signal degradation due to transmission through a lossy channel. The equalization is broken up into three stages (short, medium, and long), which represent the size of the discontinuity causing the degradation. The equalization settings can correct for minimum, moderate, or maximum amount of degradation or can be turned off. For the most part, the default settings are adequate for most scenarios and do not need to be changed.

Output Pre-Emphasis is used to boost the signal sent by the transmitter to compensate for degradation as the signal is sent to the receiver. Pre-emphasis is broken up into two stages (short and long), which represent the size of the discontinuity expected to cause degradation. For each stage, the level (in dB) and the decay (in ps) of boost can be configured. For the most part, the default settings are adequate for most scenarios and do not need to be changed.

6.4 Delayed-Download Capture

This mode is only available with the Beagle USB 480 analyzer. In this capture mode, the capture data is not streamed out of the analysis port of the Beagle analyzer until after the analyzer has stopped monitoring the bus. This greatly reduces the amount of USB traffic going to the Beagle USB 480 analyzer while the capture is active, and thus is primarily useful when the Beagle analyzer and the test device share the same host controller. Please refer to the Device Operation section of the Beagle datasheet for more information regarding the delayed-download mode of the Beagle analyzer.

Performing a Delayed-Download Capture

To run a delayed-download capture, select the Delayed-Download Capture Mode option in the Device Settings dialog. During the delayed-download capture, there will still be a small amount of Beagle USB 480 analyzer traffic on the capture bus since the software pings the analyzer to retrieve capture statistics. Therefore, if the monitored device is High-speed and shares its host controller with the Beagle Analyzer, it is advisable to enable the Omit packets matching Beagle’s device address option to filter out the few Beagle packets that will remain during the delayed-download capture. In addition, because the capture will be stored in the Beagle analyzer’s hardware buffer during the capture, enabling the Hardware input filter options may be useful to allow for a longer capture by preventing non-essential traffic from being saved in the hardware buffer.

Once the capture settings have been set, click the Run Capture button to open the Delayed-Download Capture dialog (Figure 71).

\includegraphics[clip=true]{usb480-delayed-download}
Figure 71: Delayed-Download Capture dialog

Set the polling interval for the capture. When polling during the capture, the Data Center software will check the hardware buffer usage and display it in the progress bar. The polling will generate traffic on the bus, so polling can be disabled to eliminate this traffic by choosing Never for the polling interval.

Click the Start Capture button to start the capture. If polling is enabled, the progress bar will show the portion of the hardware buffer that has been filled with capture data. The progress bar will be updated every time the Data Center software polls the Beagle USB 480 analyzer. When the hardware buffer is full, the capture will stop and the dialog will say that it is ready to download the capture from the hardware.

If polling is disabled, the only way to know that the hardware buffer has filled and capture has stopped is by observing that the red activity LED on the Beagle Analyzer is no longer blinking and has turned off.

You may click the Download Capture button at any point to download the results. This will stop the capture if it had not already stopped. Once the download begins, the Delayed-Download Capture dialog will automatically close.

The Cancel button may be clicked at any time to exit the delayed-download process and close the dialog. This will completely discard any data that has been captured.

6.5 Capture Control Window

The Capture Control Window provides both control of a capture and visibility into the current state of the capture.

For the Beagle USB 12 analyzer and Beagle USB 480 analyzer, the Capture Control window behaves as described in the General overview Section 5.7.

The Capture Control window for a Beagle USB 5000 analyzer (Figure 72) is more complex and has three progress bars. The “USB 3” progress bar displays the status of the USB 3.0 hardware memory buffer on the Beagle analyzer. The “USB 2” progress bar displays the status of the USB 2.0 hardware memory buffer on the Beagle analyzer. The “Software Capture Buffer” progress bar displays the status of the software capture buffer as described in the General overview.

\includegraphics[clip=true]{capture-control}
Figure 72: Capture Control Window for the Beagle USB 5000 SuperSpeed Protocol Analyzer

The Beagle USB 5000 analyzer has two hardware buffers. A 2 GB buffer (upgradable to 4 GB) for USB 3.0 and a separate 128 MB buffer for USB 2.0. The USB 2.0 bus and USB 3.0 bus are essentially treated as two separate channels since they operate exclusively and in parallel. If the Beagle USB 5000 analyzer is configured to only capture USB 3.0 data, the “USB 2” progress bar will be disabled and vice versa. Both the “USB 3” and “USB 2” progress bars behave similarly.

Similar to the Device Settings Dialog, the entire progress bars represents the total amount of memory available. White areas indicate the amount of memory allocated for the pre- and post-trigger buffers. Gray areas indicates memory that is not available or not in use. When memory is used for captured, the white areas are filled with orange (pre-trigger data) or blue (post-trigger data). The amount of memory allocated for pre- and post-trigger is defined in the Device Settings. If the capture is set to be infinite, the entire status bar is used. If the amount of capture buffer is limited in the Device Settings dialog, the unused memory is filled with gray.

\includegraphics[clip=true]{capture-control-pretrig}
Figure 73: Capture Control Window for the Beagle USB 5000 SuperSpeed Protocol Analyzer - filling the pre-trigger buffer

Once a capture starts, the pre-trigger buffers will fill and the orange bar in the progress bar will grow (Figure 73). The pre-trigger buffer is a circular buffer and will only fill up to the limit set in the Device Settings.

\includegraphics[clip=true]{capture-control-posttrig}
Figure 74: Capture Control Window for the Beagle USB 5000 SuperSpeed Protocol Analyzer - downloading the pre-trigger buffer while filling the post-trigger buffer.

When the capture trigger occurs, a number of things happen simultaneously (Figure 74). The pre-trigger buffer will stop being filled, the post-trigger buffer will start being filled, and the analyzer will start streaming the data to the Analysis PC. Since the pre-trigger buffer has stopped the orange bar will stop growing, and any remaining white areas will be filled with gray to indicate that the pre-trigger memory is no longer available since the pre-trigger capture is complete. The orange buffer will be replaced with gray as the pre-trigger data is streamed off the analyzer. The pre-trigger capture is complete when all the orange has been replaced by gray, indicating that all the data has been downloaded to the Analysis PC.

\includegraphics[clip=true]{capture-control-pretrig-done}
Figure 75: Capture Control Window for the Beagle USB 5000 SuperSpeed Protocol Analyzer - pre-trigger buffer has been completely downloaded while the post-trigger is being filled

While the pre-trigger data is downloading, the post-trigger buffer will fill and the blue bar in the progress bars will grow (Figure 75). Once all the pre-trigger data has been downloaded, the post-trigger data will start being streamed off which will result in the blue buffer being replaced with gray. The post-trigger will continue to fill until the capture reaches its set limit, the Analysis PC runs out of memory, or the user stops the capture (Figure 76). Once the capture stops, any remaining white areas will be replaced with gray. The remaining data will download off the analyzer until the progress bars are completely gray, indicating that all data has been downloaded from the buffers.

\includegraphics[clip=true]{capture-control-done}
Figure 76: Capture Control Window for the Beagle USB 5000 SuperSpeed Protocol Analyzer - the capture has been stopped and the post-trigger buffer continues to be downloaded.

Once data starts downloading to the Analysis PC, the “Software Capture Buffer” will start to fill with green as described in the General Section.

Additional controls for the Beagle USB 5000 analyzer are available in the Capture Control window.

Target Power \includegraphics[clip=true]{capture-control-tpower}
Use the Target Power button to toggle whether VBUS is passed to the target device or not. This has the same effect as pressing the Target Power button on the front of the Analyzer. When VBUS is being passed to the target device, the button will be green. When VBUS is not passed through, the button will be red.

Receiver Termination \includegraphics[clip=true]{capture-control-rxterm}
Use the Receiver Termination button to configure the receiver detection system. When the button is clicked, a pull-down menu provides the ability to set automatic receiver detection or to force receiver termination to be either on or off in either the upstream (UP) direction, downstream (DS) direction, or both directions. This button is only active when using a Beagle USB 5000 analyzer to capture USB 3.0 data.

When set to Auto, the Beagle USB 5000 analyzer will automatically detect the receiver termination as described in the datasheet. When set to Force On, the lines presented to the transmitter by the analyzer will always be terminated, regardless of the state of the receiver termination. When set to Force Off, the lines presented to the transmitter by the analyzer will not be terminated, regardless of the state of the receiver termination.

Data Scrambling \includegraphics[clip=true]{capture-control-descramble}
Use the Data Scrambling button to configure the data scrambling detection. When the button is clicked, a pull-down menu provides the ability to set automatic data scrambling detection or to force data scrambling to be either on or off in either the upstream (UP) direction, downstream (DS) direction, or both directions. This button is only active when using a Beagle USB 5000 analyzer to capture USB 3.0 data.

When set to Auto, the Beagle USB 5000 analyzer will automatically detect the polarity settings of the USB 3.0 link being monitored during the training sequence. When set to Force On, the Beagle USB 5000 analyzer will always display data as if the data has been scrambled. When set to Force Off, the Beagle USB 5000 analyzer will always display data as if the data has not been scrambled.

Polarity Detection \includegraphics[clip=true]{capture-control-polarity}
Use the Polarity Detection button to configure the polarity detection. When the button is clicked, a pull-down menu provides the ability to set automatic polarity detection or to force polarity to be either inverted or non-inverted in either the upstream (UP) direction, downstream (DS) direction, or both directions. This button is only active when using a Beagle USB 5000 analyzer to capture USB 3.0 data.

When set to Auto, the Beagle USB 5000 analyzer will automatically detect the polarity settings of the USB 3.0 link being monitored during the training sequence. When set to Force Inverted, the Beagle USB 5000 analyzer will always display data as if the polarity is inverted. When set to Force Non-Inverted, the Beagle USB 5000 analyzer will always display data as if the polarity is not inverted.

6.6 Transaction Window

The Transaction window (Figure 77) displays all the transactions as they were captured on the USB bus in real time.

\includegraphics[clip=true]{usb-transactions}
Figure 77: USB Transaction Window

For a general description of the Transaction window, see Section 5.1. The following describes the specifics of the USB Transaction window.

Speed (Sp)
The bus speed of the transaction (Beagle USB 480/5000 analyzer only). The background color of the column will also indicate the bus speed. The possible values displayed are shown in Table 6. SuperSpeed transactions have an arrow next to the SS that specifies the channel on which the transaction occurred (Upstream or Downstream) or have a double-headed arrow for SuperSpeed collapsed transactions that contain traffic from both streams. The HS, FS, LS, and LF transactions always have a double-headed arrow.

Table 6: USB speed column values

Value

Meaning

Background color

SS

SuperSpeed

Blue

HS

High-speed

Green

FS

Full-speed

Yellow

LS

Low-speed

Red

LF

Low-speed over full-speed

Yellow

Length (Len)
The length of the transaction in bytes is shown if the transaction has a byte value. If the transaction doesn’t have a byte value, such as bus events, the duration is shown instead.

Error codes (Err)
Error codes listing abnormal conditions that occurred while capturing the transaction. See Table 2 for the possible error codes. In addition, there are several USB specific error codes as described in Table 7.

Table 7: USB-specific error code values

Code

Meaning

Description

0

Bad bit-stuff

The Beagle USB 12 analyzer has detected a bit-stuff error.

B

Bad signals

Invalid signal observed on the bus. With the Beagle USB 480/5000, this could be caused by a misaligned bit-stuff error.

C

Bad CRC

The CRC of the packet is invalid.

F

SOF/ITP frame number error

Unexpected frame number encountered. This could be caused by a discontinuity in the frame number sequence, a repeated frame number in full-speed, or greater or fewer than 8 repeated frame numbers in high-speed.

H

Invalid SPLIT bits

Certain bit patterns of the SPLIT packet are not allowed by the USB 2.0 Specification. Please refer to the USB 2.0 Specification section 8.4.2.2 for more information.

I

Invalid PID sequence

An invalid sequence of packets has been observed.

K

Classification error

An error occurred during class-level parsing.

L

Improper packet length

The packet has a length that is too large or too small for the packet’s PID type.

Y

Unexpected PING

A PING token was seen but is unexpected. A PING token is expected to be seen only after one of these transactions: a OUT-DATA-NYET, a OUT-DATA-NAK, or a PING-NAK.

Z

Frame timing jitter

The frame was observed outside of the acceptable timing specification. Please refer to USB 2.0 Specification section 7.1.12 for the particular timing specifications.

S

Sequence error

For SuperSpeed, a Header’s sequence number, a Link Good, or a Link Credit is not consecutive.

R

Stream error

For a SuperSpeed streaming bulk endpoint, the Transaction Packets or Data Packets did not follow the expected bulk streaming protocol.

E

EDB Framing

A SuperSpeed Data Packet Payload terminated with EDB framing.

G

Framing error

A symbol was corrupted on a SuperSpeed packet frame.

Dev
The device being addressed represented as a decimal value.

Ep
The endpoint being addressed represented as a decimal value.

Data
For individual packets, the Data column will show the raw data bytes including the PID and CRC. For some transactions, such as SETUP transactions, the Data column may show a parsed representation of its corresponding packet data. For other transactions, such as IN transactions, the Data column will show its internal packet data without any PID or CRC.

USB 2.0 Transaction Groups

USB packets are grouped into transactions when they are detected on the USB bus. The four transaction groups are IN, OUT, SETUP, and LPM. Each transaction group is denoted with a unique icon and can be expanded to reveal the individual packets. The timestamp of the group will match the timestamp of the first item in the group to appear on the bus.

Polling transactions that do not have a data payload, such as IN/NAK or PING/NAK, will also be included in the related transaction group. Figure 78 shows an example of this where the IN/NAKs associated with the IN transaction have been included in the IN group.

\includegraphics[clip=true]{usb-polling}
Figure 78: IN/NAK collapsed packets included in IN transaction

As a result of grouping the polling transactions into higher level transaction groups, there may be situations where packets are shown out of chronological order. Figure 79 shows an example of this. The collapsed PING/NAK group at index 5604 has an earlier timestamp than the collapsed SOF group at index 5602. Digital input transactions may also appear out of order since they are not included in any transaction group.

\includegraphics[clip=true]{usb-polling-out-of-order}
Figure 79: PING/NAK out of order grouping

Consecutive isochronous, or interrupt, transactions that are related may be grouped together as shown in Figure 80.

\includegraphics[clip=true]{usb-isoch-grouping}
Figure 80: Grouped isochronous SPLIT transactions

USB 3.0 Transaction Groups

While at the lowest level, USB 3.0 data is made up of packets rather than tokens, the transaction grouping in the Data Center software follows the same convention as USB 2.0 data: IN, OUT, and SETUP transactions. Each transaction group is denoted with a unique icon and can be expanded to reveal the individual packets. The timestamp of the group will match the timestamp of the first item in the group to appear on the bus.

Special Transaction Types

Besides the four main transaction groups, there are several different types of transactions which can appear in the Transaction window.

Information

Start/Stop informational transactions indicate when a capture was started or stopped. These transactions appear in blue text.

Events

Event transactions represent non-packet bus activity, such as host connect, target device connect, bus reset, or bus speed events. These transactions are displayed as a text description of the event that occurred with further information available in the Info pane. These transactions appear in the Transaction window in green text. Please refer to the Device Operation section of the Beagle datasheet for more information on specifics of bus events and their timings.

The types of USB 2.0 event transactions are:

  • Host connected – USB cable connected to upstream port.

  • Host disconnected – USB cable disconnected from upstream port or voltage level dropped below detection threshold.

  • Target connected – USB cable connected to downstream port.

  • Target disconnected – USB cable disconnected from downstream port or voltage level dropped below detection threshold.

  • Reset – Bus put into reset state.

  • Sync error – Bad sync observed on packet. (Beagle USB 12 only)

  • Low-speed – The bus is operating at low-speed. (Beagle USB 480/5000 analyzer only)

  • Full-speed – The bus is operating at full-speed. (Beagle USB 480/5000 analyzer only)

  • High-speed – The bus is operating at high-speed. (Beagle USB 480/5000 analyzer only)

  • Suspend – The bus has entered suspend state. (Beagle USB 480/5000 analyzer only)

  • Resume – The bus has left suspend state. (Beagle USB 480/5000 analyzer only)

  • Keep-alive – Low-speed keep-alive strobe detected. This signal is used by the host to keep low-speed devices from going into suspend mode. (Beagle USB 480/5000 analyzer only)

  • Chirp J – A high-speed chirp J was observed. This signal is part of the High-speed Detection Handshake used by high-speed devices to transition from full-speed to high-speed. (Beagle USB 480/5000 analyzer only)

  • Chirp K – A high-speed chirp K was observed. This signal is part of the High-speed Detection Handshake used by high-speed devices to transition from full-speed to high-speed. (Beagle USB 480/5000 analyzer only)

  • Tiny J – A false J caused by a voltage divider effect between the device pulling up the D+ line with a 1.5K resistor and the host not driving the data line to ground with a sufficiently low enough output resistance. (Beagle USB 480/5000 analyzer only)

  • Tiny K – A false K caused by a voltage divider effect between the device pulling up the D- line with a 1.5K resistor and the host not driving the data line to ground with a sufficiently low enough output resistance. (Beagle USB 480/5000 analyzer only)

  • Input line change – Voltage change on one or more of the input lines detected. (Beagle USB 480/5000 analyzer only)

  • OTG HNP – An On-The-Go Host Negotiation Protocol was detected. (Beagle USB 480/5000 analyzer only)

  • OTG SRP data-line pulse – A data-line pulse of the On-The-Go Session Request Protocol was detected. (Beagle USB 480/5000 analyzer only)

  • OTG SRP Vbus pulse – A Vbus pulse of the On-The-Go Session Request Protocol was detected. (Beagle USB 480/5000 analyzer only)

The types of USB 3.0 event transactions are:

  • VBUS Present – V{\mbox{BUS}}$ detected between the target host and the target device.

  • VBUS Absent – V{\mbox{BUS}}$ not detected between the target host and the target device.

  • SuperSpeed Target Connected – USB 3.0 cable connected to the downstream port

  • SuperSpeed Target Disconnected – USB 3.0 cable disconnected from the downstream port

  • SuperSpeed Host Connected – USB 3.0 cable connected to the upstream port

  • SuperSpeed Host Disconnected – USB 3.0 cable disconnected from the upstream port

  • Manual Trigger or USB2 Trigger – USB 2.0 capture triggered

  • Manual Trigger or USB3 Trigger – USB 3.0 capture triggered

  • LTSSM Transitions

Collapsed

There are common packet sequences that are repeated frequently on the USB bus which can quickly fill up a capture and make it difficult to find the data of interest. In order to reduce this problem, the Data Center software will automatically “collapse” these sequence of packets into a single row. Packets will only be collapsed together if they share the same device and endpoint. Some of these collapsed transactions may appear in transaction groups.

These collapsed packets will collapse the following types of data.

SOF

Start-of-Frame. These packets are issued once every millisecond in full-speed and every 125 microseconds in high-speed to keep devices synchronized with the host.

Keep-alive

Low-speed keep-alive strobe. This signal is used by the host to keep low-speed devices from going into suspend mode. (Beagle USB 480/5000 analyzer only)

IN/NAK

Some USB devices require the host to periodically poll the device to see if any changes occurred. The host will issue an IN packet and if the device has no changes, it will send a NAK. This sequence of packets can quickly eat up capture space when a device is idle and is therefore collapsed.

IN/ACK

When an IN/DATA/ACK occurs on a parallel USB link, only the IN and the ACK will be observed by the Beagle analyzer. Therefore, this packet group is collapsed.

PRE/IN, PRE/IN/NAK, PRE/IN/PRE/ACK

When a host communicates to a low-speed device through a full-speed hub, the host must send the hub a PRE packet before every packet to the low-speed device. This alerts the hub that the packet that follows the PRE will be transmitted at the low-speed data rate. This is called low-speed over full-speed.

These packet groups are similar to IN/NAK and IN/ACK, so are similarly collapsed.

PING/NAK

PING packets are used in high-speed traffic to poll if a device is ready to receive data. The NAK packet indicates that the device is not yet ready to receive more data.

SPLIT transactions

Split transactions are used by the host to communicate with a full- or low-speed device through a high-speed hub. (Beagle USB 480/5000 analyzer only)

In a typical situation, the host will send a START-SPLIT packet (SSPLIT) to the hub. The split packet will contain flags indicating which port to send the following packets to and what speed to send them at. Then the host will send the token packet (IN, OUT, or SETUP) to send to the full- or low-speed device. For OUT and SETUP transactions, a data packet will follow. Then the hub may or may not send an ACK to the host, depending on the transfer type.

The hub will then transmit the packets to the downstream device at the requested bus speed. The host will then periodically poll the hub to see if the hub has completed the transaction and to get the response of the device. The host does this by sending the hub a complete-split (CSPLIT) packet followed by the same token packet it sent earlier. The hub will then either respond with a NYET to indicate that it is not yet done sending the transaction, or it will respond with the device’s response (data or NAK for IN tokens, a handshake packet for OUT and SETUP tokens).

Since there can be a good deal of polling with split transactions, including using IN packets to poll the downstream device, the following packet groups are collapsed into SPLIT groups:

  • SSPLIT/IN will be shown as [ START ]

  • SSPLIT/IN/ACK will be shown as [ START ]

  • CSPLIT/IN/NYET will be shown as [ NYET ]

  • CSPLIT/IN/NAK will be shown as [ NAK ]

The following packets groups are collapsed inline with their associated transaction group:

  • CSPLIT/OUT/NYET

  • CSPLIT/SETUP/NYET

Orphaned packets

It is common to observe orphaned packets when multiple devices are plugged into the same host controller, or if a USB hub is present on the bus.

Orphaned transactions are transactions which the Beagle analyzer only sees a portion of because the target device is on a different branch of the USB tree. Since all messages from the host are broadcast throughout the entire bus, the Beagle analyzer will only see one half of the conversation.

Consider the bus topology in Figure 81.

\includegraphics[clip=true]{hub-setup}
Figure 81: USB topology which causes orphaned packets

In this configuration, the Beagle sees all traffic between the host and device A, but only downstream traffic from the host to device B. For example, if the Host sends an IN to Device B and Device B NAKs the IN, the Beagle will have only seen the IN. We consider such packets to be orphaned and group them accordingly in the Data Center software.

Note that a hub retransmits packets destined for itself. So, even if device B were not present in Figure 81, the Beagle would still see orphaned packets from the communication between the hub and the host.

Even if the hub were not present, the Beagle would observe orphaned packets if devices A and B were connected to the same host controller.

Training Sequences

Training sequences packets: TSEQ, TS1, and TS2 are repeated many times when a USB 3.0 device is first plugged in to establish a communication link between the transmitter and the receiver. It is not uncommon for there to be a significant number of PHY errors during the training sequence while the link is being established. Once the link is establish, PHY Errors should be uncommon.

LFPS

Low-Frequencey Periodic Signaling packets is a lower frequency packet sent on the SuperSpeed data lines to manage signal initiation and low power management on a link between two ports.

6.7 Capture View

Three unique capture views are available in Data Center when using a Beagle USB 5000 or Beagle USB 480 Protocol Analyzer. Two capture views are available when using a Beagle USB 12 Protocol Analyzer. Please note that Packet View is not available when using the Data Center software with the Beagle USB 12 Protocol Analyzer. To select a Capture View, use the Capture View Menu in the Transaction Window Controls section of the application (Section 4.3).

  • \includegraphics[clip=true]{capture-view-packet} Packet – Protocol-level decoding is performed, and records are in time-order. Collapsed groups, such as SOFs and IN-NAKs are broken up as necessary to ensure records are in timestamp order. Only captures run in Sequential Mode (Section 6.2) can be viewed in Packet View.

  • \includegraphics[clip=true]{capture-view-transaction} Transaction – Protocol-level decoding is performed. Records may not be in time-order. Collapsed groups are not broken up for time-order preservation. Since there is no time-order restriction, captures generally appear more compact in this view than in Packet View.

  • \includegraphics[clip=true]{capture-view-class} Class – Class-level parsing is performed. Records may not be in time-order. Captures generally appear high-level and compact in this view. For more information regarding class-level parsing, see Section 6.9.


6.8 LTSSM View

Track the progression of top-level SuperSpeed LTSSM transitions during a capture using the Data Center software’s interactive LTSSM diagram (Figure 82). The view is accessible via \includegraphics[clip=true]{ltssm-view-icon} in the application toolbar.

\includegraphics[clip=true]{ltssm-view}
Figure 82: LTSSM View of a capture that entered four link states: SS.Disabled, Rx.Detect, Polling, and U0. Green and blue arrows on the task bar indicate visibility of both upstream and downstream state transitions. Gold highlights on Polling and adjoining arrows show that the currently selected record (not pictured) occurred while the bus was in that state, having entered it from Rx.Detect and subsequently exited towards U0. Also pictured: the count of each transition that occurred, both upstream (green) and downstream (blue). Following the same color code, the final captured states for both streams are decorated with spherical markers above and below the label (in this case, on U0).

Interacting with the LTSSM View

Controls in the LTSSM View enable filtering of which transitions should be represented on the diagram as well as LTSSM-centric traversal of the record list.

  • Toggle visibility of upstream and downstream state transitions in the diagram with \includegraphics{ltssm-view-stream-icons} on the LTSSM View toolbar.

  • Jump to the previous or next state transition relative to the selected record with \includegraphics{ltssm-view-prev-state} and \includegraphics{ltssm-view-next-state} on the LTSSM View toolbar, respectively.

  • Cycle through occurrences of a particular state by hovering over the state ellipse of interest and rolling the mouse wheel. Rolling upwards navigates to the previous instance of the state relative to the currently selected record, and rolling downwards to the next instance.

    • Alternatively, repeatedly click the state to cycle through matching transition records, starting at the first.

  • Cycle through occurrences of a particular transition by hovering over the counter embedded on the transition arrow of interest (e.g. \includegraphics{ltssm-view-transition-counter} ) and either rolling the mouse wheel or clicking. The behavior is identical to navigating states (see previous bullet point).

  • Jump to the first/previous/next/last instance of a state or transition by right-clicking on either the state ellipse or transition counter of interest and selecting the desired option from the context menu.

  • View all valid transitions from a state according to the USB3 spec by hovering the mouse pointer over the state of interest. After a short delay, any transitions originating from that state that weren’t already visible will appear in faint gray.

6.9 Class-Level Parsing

Some USB hosts and devices may communicate with one another using device classes. The Data Center software supports parsing of these device classes. Further information about device classes may be found in the USB Background section of the Beagle datasheet.

General Use

Class-level parsing can be enabled by selecting Class View in the Capture View menu (Section 4.3). For class-level parsing to work correctly, it is necessary for the Data Center software to capture the enumeration of the USB device. The easiest way to ensure that the enumeration is captured is to first start the capture and then to plug in the device into the analyzer. It is not possible to enable or disable classification while the capture is running. The enumeration is preserved across capture sessions. This may lead to unintended behavior if different devices share the same device address across the capture sessions.

Post-capture, It is possible to apply a configuration to a device in order to see its data parsed at the class level. More information about applying and managing configurations can be found in Section 6.10.

Note that when using circular buffer or saving a filtered view the class-level parsing ability may be lost. For more information please see the section on circular buffer (Section 4.14) and saving a capture (Section 26).

Also, note that the Beagle USB 12 Analyzer supports parsing of the Standard Device Requests only. Class specific parsing is not supported with the Beagle USB 12 Analyzer.

Class-Level Transactions

The benefit of enabling classification is that class-level fields are visible for each transfer. One or more protocol-level transactions will be grouped into a class-level transaction. Additionally, for some classes, a class-level transaction may contain one or more other class-level transactions. The transaction will display information that is relevant to the device class. For instance, with a mass storage device, a class-level transaction may be named “Read”, and the Data column will show the logical block address and length of the transfer. Additional information can be obtained by clicking on the class-level transaction and looking at the Info pane. The Info pane will show the parsed fields of the selected class transaction. See Figure 83 for an example.

\includegraphics[clip=true]{usb-class}
Figure 83: A parsed mass storage class transaction.

Control Transfers

An additional benefit of enabling classification is that the protocol-level transactions that make up a control transfer are grouped into a single class-level transaction (Figure 84). If the control transfer can be parsed, the transaction will be named accordingly. Otherwise, the transaction will show up as “Control Transfer.”

\includegraphics[clip=true]{usb-control}
Figure 84: A parsed control transfer.

Bulk Transfer Grouping

If a device with an unrecognized class is enumerated, the Data Center can group bulk endpoint transfers based on a short packet delimitation. To enable this feature, right click on the Universal Serial Bus item in the USB Bus Pane and choose Enable Bulk Ep Grouping.

The device has to be enumerated for this feature to work. If the device has not been enumerated, the Managed Configurations (Section 6.10) feature can be used to set a custom enumeration. The bulk endpoints have to be properly listed under an interface with the proper maximum endpoint size set for proper operation of bulk transfer grouping.

6.10 Bus Pane

The USB Bus pane (Figure 85) provides detailed information about each device on the bus. Clicking on a packet in the Transaction window will highlight the related device in the Bus pane.

\includegraphics[clip=true]{usb-bus-pane}
Figure 85: USB Bus Pane

When performing a simultaneous USB 3.0/2.0 capture, separate bus trees are available for USB 2.0 and USB 3.0 because both buses exists separately, but in parallel.

The Bus Pane is divided into two main sections. The top section displays the bus tree of all the USB devices that have been detected on the bus. The bottom section of the screen provides enumeration information and statistics about the bus or device selected in the bus tree.

Real-Time Statistics Pane

The Statistics pane (Figure 39) provides a real-time count of Packets, Control Transfers, Errors, etc. as data is being captured. When an endpoint is selected in the Bus Pane, only its data is displayed in the Statistics Pane. When a device is selected, only the device data is displayed. When a bus is selected in the Bus Pane, the aggregate of the bus level data and the bus’ connected devices data will be displayed in the statistics table.

\includegraphics[clip=true]{statistics-visible}
Figure 86: Real-time Statistics Pane provides a quick and easy way to access types of packets

When the individual statistics are expanded in the Statistics table, the sub data will vary. As it is possible for both USB 2.0 and USB 3.0 traffic to be on the same bus, data for a given bus will only display in the Statistics Pane when the bus in question is selected.

Enumeration

The Bus pane will only display descriptor information for devices whose enumeration was captured. It is possible to have missing or incomplete descriptor information if a capture is stopped prematurely or is interrupted. In these cases, it is possible to manually apply a device configuration to the device.

Descriptor information is stored in a cache for an entire capture session and is saved in the capture file as an “Enumerated Config”. The descriptor information associated to a device is based on the device’s address. Therefore all packets that are sent or received to the same address are considered to be interacting with the same device.

However, if the USB control message “SET ADDRESS” is seen, the software will parse all new descriptor information corresponding to a different target device, even if that device has the same USB address as a previously connected target device.

Please note that this feature can cause some strange behaviors. When appending to an older capture file, different devices may share the same address. The Data Center software may become confused and display the wrong descriptor information if a SET ADDRESS is not seen.

Based on how the operating system assigns device addresses, there may be duplicate addresses for different devices when devices are disconnected and plugged in.

Clicking on a device will show a summary of the descriptor information below the tree in the Enumeration tab. Expanding a device will reveal a hierarchy of descriptor information from the device, configuration, interface, and endpoint descriptors. Clicking on any level of the tree will show a parsed view of those descriptors and any child descriptors.

The packets and bytes columns list the number of each that have been sent or received from each endpoint, interface, configuration, and entire device. The byte count includes only the size of the data payload, excluding PIDs, CRCs, etc.

Right clicking in the Bus tree will reveal a popup menu that gives the user the option to apply a filter so that specific devices can be shown or hidden in the Transaction window. Also in the popup menus is a Manage Configs options. It is possible to manage the configuration information for the device and/or apply a new configuration.

Configuration Management

By default, Data Center uses configuration descriptor information captured during the enumeration phase to configure class-level decoding of USB traffic. However, with the Configuration Management interface, users can apply arbitrary configuration descriptors to the captured USB device data. This provides a custom class-level decoding experience within the set of USB classes supported by Data Center.

To clarify, this feature does not add support for decoding custom USB classes, only for specifying custom configuration descriptors.

For step-by-step instructions on how to perform common tasks with this interface, refer Common Tasks at the end of this section.

The Configuration Management interface provides ways for the user to:

  • Create, Edit, and Delete custom configuration descriptors that persist either on the user’s machine or in the active capture file.

  • Assign a custom configuration descriptor to an arbitrary bConfigurationValue of any device on the bus, which can change the way data is parsed during a capture.

  • Remove one or all previously assigned custom configuration descriptors from a device on the bus, exposing the originally enumerated configuration descriptor where available.

These functions are provided through the Configuration Management Window (Figure 87) and the Bus Pane’s right-click context menu (Figure 88) through which the window is accessed.

\includegraphics[clip=true]{manage-configs}
Figure 87: USB Configuration Management Window

\includegraphics[clip=true]{config-all_tasks_start}
Figure 88: Access the configuration management interface through the Bus Pane context menu.

The Configuration Management Window is broken up into three functional areas.

Configurations Pane

The Configurations Pane is a hierarchical list providing all available configurations separated into four categories:

  • Enumerated Configs are the configurations enumerated during the capture. Being part of the capture, they can be copied but not modified.

  • Assignable Configs are custom configurations that have been saved with the capture file. They are the only non-enumerated configurations that the user can directly assign to a device for customized class level decoding.

  • User Configs are custom configurations that are saved in the user’s preferences. These configurations are available to any capture opened with the user’s Data Center software.

  • Configs Provided by Data Center are immutable custom configurations that were packaged with the application. Use them as examples or templates for making new configurations.

The user can create \includegraphics[clip=true]{config-new} custom configurations using the controls below the Configurations Pane

The user can also \includegraphics[clip=true]{config-rename} , \includegraphics[clip=true]{config-copy} , or \includegraphics[clip=true]{config-delete} the selected configuration using the same controls.

Data Pane

Clicking a configuration in the Configurations Pane displays the descriptor’s raw data in the bottom-left of the window. This data is editable in a variety of formats (e.g. hexadecimal, ASCII) for Assigned and User configurations. Configure the data display by right-clicking anywhere in the pane.

The Data Pane will highlight relevant regions of the data when a specific parameter is clicked in the Details Pane. Likewise, when changes are made in the data, the Details Pane shows the results immediately if \includegraphics[clip=true]{config-preview} at the bottom is checked.

The user can also \includegraphics[clip=true]{config-save} or \includegraphics[clip=true]{config-revert} edits to a configuration using the controls beneath the Data Pane.

Details Pane

The configuration data is parsed into higher level parameters in the Details Pane. This display is similar to the Enumeration tab of the Bus Pane. When a specific parameter is highlighted in the Details Pane, the corresponding data is highlighted in the Data Pane. As the configuration data is modified in the Data Pane, the parameters in the Details Pane will update if \includegraphics[clip=true]{config-preview} is checked.

Common Tasks

How to Save an Enumerated Configuration for Later

Rather than re-enumerate a frequently used device on every new capture, it can be time-efficient to save the device’s configuration descriptor and assign it in future captures using Configuration Management.

To save an enumerated configuration:

  1. Right-click on any Bus, Device, or Configuration in the Bus Pane (Figure 88).

  2. Click Manage Configs to open the Configuration Management Window (Figure 87).

  3. Find and click on the enumerated configuration descriptor of interest in the Enumerated Configs section of the Configurations Pane:

    \includegraphics[clip=true]{config-save_task-select_cfg}
  4. Click \includegraphics[clip=true]{config-copy} and follow the instructions to name the new custom configuration.

How to Assign a Custom Configuration to a Device

The following steps will assign an existing custom configuration to a target device and bConfigurationValue:

  1. Right-click on the device of interest in the Bus Pane (Figure 88).

  2. Click Manage Configs. This will open the Configuration Management Window (Figure 87).

  3. Locate and click the configuration you would like to assign to the device in the Assignable Configs, User Configs, or Configs Provided by Data Center categories of the Configurations Pane:

    \includegraphics[clip=true]{config-assign_task-select_cfg}
  4. Click \includegraphics[clip=true]{config-assign} at the bottom right of the window. This will open a dialog allowing selection of a bConfigurationValue for assignment.

  5. Select the desired bConfigurationValue and click OK:

    \includegraphics[clip=true]{config-assign_task-choose_bcfg_value}

The custom configuration is now assigned and will appear blue in the Bus Pane. Until this configuration is removed, Data Center will class-decode all transfers against the device as if the custom configuration actually occupied the device’s bConfigurationValue.

How to Remove One Assigned Configuration from a Device

The following steps will remove a specific previously assigned custom configuration from active class-level decoding:

  1. Right-click on the configuration to remove in the Bus Pane (Figure 88).

    \includegraphics[clip=true]{config-remove_one_cfg_task-bus_pane}
  2. Click Remove Assigned Config on the context menu opened by the previous step.

The custom configuration is removed, exposing any originally enumerated configuration on that bConfigurationValue.

How to Remove All Assigned Configurations from a Device

The following steps will remove all of a device’s previously assigned custom configurations from active class-level decoding:

  1. Right click on the target device in the Bus Pane (Figure 88).

  2. Click Remove Assigned Configs on the context menu opened by the previous step.

All custom configurations are removed, exposing the device’s originally enumerated configurations where present.

Details Window

Refer to section 5.2 for an overview of the Details View. Note that for USB captures, a bit-level timing view of the data is not available.

6.11 Filtering a USB Capture

A USB capture can be filtered in real time or after it has been completed. The Data Center software offers an extensive list of filters (Figure 89) to help developers filter out extraneous data. All filters are non-destructive and users are free to apply filters multiple times without losing data.

For a description of the General filters and how filtering works, refer to Section 5.5.

\includegraphics[clip=true]{usb-filters}
Figure 89: USB Filters

Bus Filters

Reset/Suspend/Connect Events

Unchecking this option will hide all bus events.

Collapsed

Unchecking this option will hide all collapsed transactions.

Note:

  1. This setting will not affect collapsed SOFs and keep-alives, as they are bus events and not transactions.

  2. When the Filter Protocol is in Packet mode, this setting will not affect any collapsed types that are still checked.

Digital Inputs

Unchecking this option will hide all digital input events.

USB 2.0

Devices

An integer value, or list of values, that filters transactions based on their device address. This filter only applies to transactions that have a device address. Addresses should be expressed as decimal values as they are shown in the Dev column. Multiple addresses can be listed separated by commas or spaces.

Endpoints

An integer value, or list of values, that filters transactions based on their endpoint address. This filter only applies to transactions that have an endpoint address. Addresses should be expressed as decimal values as they are shown in the Ep column. Multiple addresses can be listed separated by commas or spaces.

Chirps

Unchecking this option will hide all chirp J and chirp K events.

SOFs/Keep-Alives

Unchecking this option will hide all SOF and keep-alive events.

USB 3.0

Devices

An integer value, or list of values, that filters transactions based on their device address. This filter only applies to transactions that have a device address. Addresses should be expressed as decimal values as they are shown in the Dev column. Multiple addresses can be listed separated by commas or spaces.

Endpoints

An integer value, or list of values, that filters transactions based on their endpoint address. This filter only applies to transactions that have an endpoint address. Addresses should be expressed as decimal values as they are shown in the Ep column. Multiple addresses can be listed separated by commas or spaces.

Upstream

Unchecking this option will hide all upstream traffic (from the Target Device to the Target Host).

Downstream

Unchecking this option will hide all downstream traffic (from the Target Host to the Target Device).

Link

The following settings are specific to Link Commands

Flow

Unchecking this option will hide all Link Flow Commands such as LGOOD and LCRD.

Power

Unchecking this option will hide all Link Power Commands such as LPM

Keep-Alive

Unchecking this option will hide all Link Keep-Alive Packets such as LUP and LDN.

LTSSM

Unchecking this option will hide all LTSSM transitions such as Polling.Idle -> U0.

Training

Unchecking this option will hide all Training sequences such as TSEQ, TS1, and TS2.

LFPS

Unchecking this option will hide all Low Frequency Packets.

Pkt

The following settings apply to Packets.

ITPs

Unchecking this option will hide all Isochronous Timestamp Packets.

LMPs

Unchecking this option will hide all Link Management Packets.

Unknown

Unchecking this option will hide all Unknown Packets.

Protocol Filters

The Protocol filters are separated into three types: class filtering, transaction filtering, and packet filtering.

Class

When Class is selected, the Device Requests and the Class Transfers options apply only to class-level transactions, not to the protocol-level transactions or the packets inside the class-level transactions.

The Device Requests options filter class-level transactions on the Default Control Pipe based on the bmRequestType field of the transfer. For example, unchecking the Host-To-Device option would hide all the Set device requests such as the Set Configuration request.

The Class Transfer option decides whether to show all of the class transactions which are not on the Default Control Pipe. For example, unchecking this option will hide all of the class transactions that occur on endpoints other than 0.

When all of the options under the Device Requests and the Class Transfers are selected, all transactions packets are matched. None of the protocol-level transactions, or individual packets will match unless all of the options under the Device Requests and the Class Transfers are selected.

Transactions

When Transactions is selected, the Token and Handshake options apply only to the protocol-level transactions as a whole, and not to the class-level transactions, or the individual packets inside the transactions.

Any protocol-level transaction that has BOTH a selected Token and a selected Handshake will match. None of the individual packets will match, unless all the Token and Handshake options are selected.

For example, selecting only IN, SETUP, ACK and NAK will show all IN/ACK, IN/NAK, SETUP/ACK and SETUP/NAK transactions. All other transaction groups will not be shown.

The Token and Handshake options are also applied to collapsed transactions. For example, unchecking the NAK handshake will hide all IN/NAK collapsed transactions.

Packets

When Packets is selected, only the selected packets match, and all of the class-level transactions and the protocol-level transactions do not match. This means that even with all the individual packet options checked, every transaction will appear in the Transaction window as a soft match. This is helpful for isolating specific packet types apart from transactions when used in conjunction with the Show parent if child matches option (Section 5.5).