Beagle Data Center Software Manual v2.20
| Prev: General Monitoring | Table of Contents | Next: I2C Monitoring |
- 6 USB Monitoring
- 6.1 Performing a USB Capture
- 6.2 Beagle USB 12 Capture Settings
- 6.3 Beagle USB 480 Capture Settings
- 6.4 Delayed-Download Capture
- 6.5 Transaction Window
- 6.6 Detailed View
- 6.7 Filtering a USB Capture
6 USB Monitoring
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 Beagle 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 480 analyzer or the Beagle USB 12 analyzer.
Start the Beagle Data Center application.
Connect the Beagle USB analyzer to the analysis computer. Make sure that the green indicator LED has illuminated. Be sure the analyzer is powered before plugging in any devices on the capture side to ensure the target device can function properly.
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.
Click Connection in the toolbar and connect to the analyzer.
Click on the USB tab in the transaction window in order to see USB specific data.
Click on Capture to start the data capture. 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.
Connect 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.
To stop the capture, click on the Stop button.
In order to display device descriptors in the Details view, the entire enumeration sequence must be captured. If the target host and device are connected before the capture is started the device enumeration will not be captured and the descriptors cannot be displayed.
6.2 Beagle USB 12 Capture Settings
There are several USB capture settings that can be set by the user. These settings can be changed in the Beagle USB 12 Capture Settings window (Figure 31). To open this window, click on the Settings button or go to Beagle | Settings… or use the keyboard shortcut <Ctrl>+T.
Capture Data Limit
This option specifies the maximum amount of memory to allocate for the capture data. Enter a number in the Capture data limit field to set the size of the capture buffer. During capture, once this limit is exceeded, the capture will be automatically stopped.
Total Phase recommends that the maximum size allowed for a capture should be set to no more than half the available memory on the system. On an extremely busy computer, the capture limit should be set even lower to prevent problems. If the application starts swapping memory, incoming capture data may be lost.
Incoming Data Buffer Size
This option will specify the size of the operating system level USB buffer. See Section 4.13 for more information on this option.
Bit-Level Timing
The capture of the bit-level timing is optional. By not capturing bit-level timing data, the Data Center application will have improved performance, reduced memory usage and will be able to capture data for a longer period of time before running into the capture data limit.
To enable or disable the capture of Bit-Level Timing information, simply check or uncheck the box in the Settings window.
6.3 Beagle USB 480 Capture Settings
There are several USB capture settings that can be set by the user. These settings can be changed in the Beagle USB 480 Capture Settings window (Figure 32). To open this window, click on the Settings button or go to Beagle | Settings… or use the keyboard shortcut <Ctrl>+T.
Capture Data Limit
This option specifies the maximum amount of memory to allocate for the capture data. Enter a number in the Capture data limit field to set the size of the capture buffer. During capture, once this limit is exceeded, the capture will be automatically stopped.
Total Phase recommends that the maximum size allowed for a capture should be set to no more than half the available memory on the system. On an extremely busy computer, the capture limit should be set even lower to prevent problems. If the application starts swapping memory, application performance will be greatly affected and the capture may stop.
Incoming Data Buffer Size
This option will specify the size of the operating system level USB buffer. A large buffer size will increase performance of the Data Center software and can act to augment the hardware buffer on the Beagle USB 480 analyzer during real-time capture. See Section 4.13 for more information on this option.
Enable Packet Collapsing
By default, the Beagle Data Center software will “collapse” common packet groups into a single transaction. This option allows the user to turn off packet collapsing to see the USB traffic in greater detail. For a list of the packet groups that are collapsed, see section 147.
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.
Bus Speed
The Beagle USB 480 analyzer has the ability to automatically detect the speed at which the USB-under-test is operating. But 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.
Capture Mode
The Beagle USB 480 analyzer has three 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.
Real-time with overflow protection – The capture is streamed from the Beagle USB 480 analyzer to the Data Center software in real-time, but as the analyzer’s hardware buffer approaches its capacity, the Beagle analyzer hardware will truncate incoming packets. The Beagle analyzer hardware will only capture the first 4 bytes of each packet to preserve the remaining space in the hardware buffer. This will continue until the Beagle analyzer can stream enough data out of the buffer to drop its usage down to a safe level. At that point, the analyzer will automatically return to normal operating mode and each packet will be captured in its entirety. Once truncation mode has been entered, all packets will be marked with a flag noting that the analyzer is in truncation mode, regardless of whether that specific packet was truncated.
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 s6.4.1 capture can be found in the Beagle datasheet (Device Operation section). More details on running a s6.4.1 capture can be found in Section 6.4.
Hardware Input Filter
These options will enable the Beagle USB 480 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.
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
Digital Inputs
This option enables the user to individually enable the four digital input lines on the Beagle USB 480 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.
Digital Output
The Configure button opens the digital output settings dialog (Figure 33) to configure the digital output lines on the Beagle USB 480 analyzer hardware.
The configuration of the digital output pins can be saved to a file for later use. Clicking the Save button allows the digital output settings to be saved to an XML file. The digital output settings file can then be loaded by clicking the Load button.
Clicking the OK button accepts the digital output settings while the Cancel button reverts any changes made.
The following sections describe the tabs of the digital output settings dialog.
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.
See the Device Operation section of the Beagle analyzer datasheet for information on the timing of the digital output pins.
Pin 2
When enabled, digital output pin 2 will switch to its active state whenever there is USB traffic detected on the bus. It 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.
See the Device Operation section of the Beagle analyzer datasheet for information on the timing of the digital output pins.
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 (=), doesn’t 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.
See the Device Operation section of the Beagle analyzer datasheet for information on the timing of the digital output pins.
Pin 4
Digital output pin 4 can be set to match a PID, a device address, an endpoint address, and a data payload pattern. Each of the match settings can be set to match if the packet equals the parameter (=), doesn’t equal the parameter (!=), or it can disregard the parameter (X). The data pattern to match upon can be set in the Pin 4 Data tab once data match is enabled. Pin 4 can also be set to be active high, active low, or to be disabled.
See the Device Operation section of the Beagle analyzer datasheet for information on the timing of the digital output pins.
Note: PID matching will be disabled when data pattern matching is enabled. In that case, in the Pin 4 Data tab, the data PIDs on which to match can be selected.
Pin 4 Data
In this tab, the data match pattern for output pin 4 can be specified, as well as which data packets on which to run the data pattern match.
The data packets that can be selected for the data pattern match are: DATA0, DATA1, DATA2, and MDATA.
In the packet match table, for each byte position, a hexadecimal byte value can be entered. XX can also be entered to indicate not to match the data 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.
The Write CSV button allows the contents of the data match table 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.
6.4 Delayed-Download Capture
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. Please refer to the Device Operation section of the Beagle datasheet for more information regarding the usefulness of the s6.4.1 mode of the Beagle analyzer.
Performing a Delayed-Download Capture
To run a s6.4.1 capture, select the Delayed-Download Capture Mode option in the Beagle USB 480 analyzer Capture Settings window. During the s6.4.1 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, it is also advisable to enable the Omit packets matching Beagle’s device address option to filter out the few Beagle packets that will remain during the s6.4.1 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 Capture button to open the Delayed-Download Capture dialog (Figure 38).
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 is no longer blinking and has turned off.
When the capture has completed or at any point prior, you may click the Download Capture button to download the results. This will stop the capture if it had not already stopped. Once the download is complete, the Delayed-Download Capture dialog will automatically close.
The Cancel button may be clicked at any time to exit the s6.4.1 process and close the dialog. This will completely discard any data that has been captured.
6.5 Transaction Window
The transaction window (Figure 39) displays all the transactions that were captured on the USB bus in real time. When a transaction is selected in the transaction window, detailed information about that transaction is displayed in the Detailed window.
If group filtering is enabled, then grouped IN, OUT and SETUP packets are color-coded. Table 5 shows the background colors for specific packet groups.
Type |
Color |
Notes |
IN |
Blue |
Includes SPLIT+IN groups |
OUT |
Green |
Includes SPLIT+OUT and PING groups |
SETUP |
Yellow |
|
EXT |
Orange |
For extended PID packet groups |
In the USB transaction window, the transaction table provides the following information:
Speed (Sp)
The bus speed of the transaction (Beagle USB 480 analyzer only). The background color of the column will also indicate the bus speed. The possible values displayed are shown in Table 6.
Value |
Meaning |
Background color |
HS |
High-speed |
Green |
FS |
Full-speed |
Yellow |
LS |
Low-speed |
Red |
LF |
Low-speed over full-speed |
Yellow |
Index
The transaction index number. The beginning of the capture is considered index 0.
Time
The time that the transaction was captured. The time counter starts at 0 when a capture is started. Every time a new capture is started, the time is reset to 0.
The time is provided in the following format: min:sec.ms.µs. The timestamp of the transaction is displayed in nanosecond precision in the timing detailed view.
Duration (Dur)
The elapsed time that the transaction was in the bus. The duration value displayed is shown in an abridged format. The full duration to nanosecond precision is displayed in the timing detailed view.
Length (Len)
The length is only meaningful in the context of DATA packets. The length is the number of bytes in the payload of the packet. It does not include the PID and checksums.
Error codes (Err)
Error codes listing abnormal conditions that occurred while capturing the transaction. See Table 1 for the possible error codes. In addition, there are several USB specific error codes as described in Table 2.
PID
The PID of the packet is parsed and displayed. Supported PID types are: IN, OUT, SETUP, SOF, DATA0, DATA1, DATA2, ACK, NAK, PING, SPLIT, NYET, STALL, MDATA, PRE/ERR, Reserved, Corrupted.
CRC
The CRC of the packet is parsed and displayed in normal bit order as defined by the USB 2.0 specification.
Other USB analzyers display the CRC in reverse bit order. For compatibility, it is possible to display the CRC in reverse bit order by checking Reverse CRC bits in the filters palette.
Packet
This field displays information about the packet. For IN, OUT, and SETUP packets, it will display the device (DEV) and endpoint (EP) being addressed. For SPLIT packets, the hub, port, and other fields of the packet are displayed.
Some of the data packets involved with device enumeration will be parsed and displayed. For all other data packets, the data payload of the packet (minus PID and checksum) is displayed. Only the first 16 bytes of the payload are shown. The complete packet can be seen in the Data tab.
Delta Time and Data Payload Display
When moving the mouse over the transaction window, the transaction that the mouse pointer is over will be highlighted. The time difference between this transaction and the currently selected transaction will be displayed as “Delta time” in the status bar at the bottom of the application window. The time displayed will be the time difference between the start times of the two transactions. The summation of the Length (Len) field inclusively between the two selected transactions will be displayed as “Data payload” in the status bar next to the “Delta time”. Moreover, the calculated bandwidth between the selected transactions is also displayed after the “Data payload” in parenthesis.
The delta time and data payload will only be displayed when the two transactions are from the same capture session. So if you start then stop a capture, then start another capture, these statistics will only be displayed when both the selected transaction and the one the mouse is over are from the same capture session.
Special Transaction Types
In most cases, a USB packet will appear in the transaction window as expected. The PID will be parsed and the contents of the packet are displayed.
Additionally, there are several different types of transaction 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 Details tab. 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 event transactions are:
Host port connected – USB cable connected to upstream port.
Host port disconnected – USB cable disconnected from upstream port or voltage level dropped below detection threshold.
Target port connected – USB cable connected to downstream port.
Target port 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 analyzer only)
Full-speed – The bus is operating at full-speed. (Beagle USB 480 analyzer only)
High-speed – The bus is operating at high-speed. (Beagle USB 480 analyzer only)
Suspend – The bus has entered suspend state. (Beagle USB 480 analyzer only)
Resume – The bus has left suspend state. (Beagle USB 480 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 analyzer only)
J chirp – A high-speed J chirp 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 analyzer only)
K chirp – A high-speed K chirp 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 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 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 analyzer only)
Input line change – Voltage change on one or more of the input lines detected. (Beagle USB 480 analyzer only)
OTG HNP – An On-The-Go Host Negotiation Protocol was detected. (Beagle USB 480 analyzer only)
OTG SRP data-line pulse – A data-line pulse of the On-The-Go Session Request Protocol was detected. (Beagle USB 480 analyzer only)
OTG SRP Vbus pulse – A Vbus pulse of the On-The-Go Session Request Protocol was detected. (Beagle USB 480 analyzer only)
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.
On the Beagle USB 480 analyzer, packet collapsing can be disabled.
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 analyzer only)
K/J chirps
Chirp K/J pairs emitted by the host as part of the High-speed Detection Handshake to transition from full-speed to high-speed. During the handshake process, the first 4 K/J pairs will be displayed as events. The rest of the K/J pairs will be collapsed. (Beagle USB 480 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 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:
SSPLIT/IN
SSPLIT/IN/ACK
CSPLIT/IN/NYET
CSPLIT/IN/NAK
CSPLIT/OUT/NYET
CSPLIT/SETUP/NYET
6.6 Detailed View
The Detailed view provides detailed information about a specific transaction. The USB mode has three viewing modes: Details, Data and Timing.
Details Mode
The Details mode (Figure 40) provides a variety of information dependent on the type of transaction selected.
Event transactions
For event transactions, the Details mode will display a verbose display describing the event in greater detail.
Collapsed transactions
For collapsed transactions, the Details mode will display a formatted version of what packets were collapsed.
Packet transactions
For regular packet transactions, the Details mode provides high level information about the USB device connected to the host PC. This information is only available if the Data Center application captured the enumeration process. However, in the case of SETUP data packets, the Details mode will provide detailed information about the specific SETUP request.
The Details mode will only display descriptor information for devices whose enumeration was captured. It is possible to have incomplete descriptor information if a capture is stopped prematurely or is interrupted.
Descriptor information is stored in a cache for an entire capture session. 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 is considered to be the same device.
However, if the USB control message “SET ADDRESS” is seen, the software will parse all new descriptor information as 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 a older capture file, different devices may share the same address. The Data Center software may become confused and display the wrong descriptor information.
Data Mode
The Data mode (Figure 41) provides a general hexadecimal and ASCII dump of the contents of the transaction. The entire contents of the transaction is displayed in the Data mode, including the PID and the checksum.
The data is displayed in a standard hexdump format which includes:
Offset
The offset position of the first byte in a row in hexadecimal notation.
0 to F
Bytes 0 through 15 of the row in hexadecimal format.
ASCII
The bytes from the row displayed as ASCII characters. If the equivalent ASCII character is a non-printing character, a “.” is printed instead.
Timing Mode
The Timing Mode (Figure 42) provides bit-level timing for the data of the transaction. Each byte of the transaction appears as a row in this mode. All the bytes from the a transaction will be displayed in this mode.
Note: For data from the Beagle USB 480 analyzer, the time values displayed are reconstructed based upon the bus speed and the packet data.
The first line of the table displays the transaction timestamp as well as the transaction duration, both to nanosecond precision.
Each row contains the following information:
Offset
The offset position of the byte
Time
The time in nanoseconds from the start of the transaction to the start of the byte.
Value
The hexadecimal value of the byte.
Timing
A graphic display of each individual bit of a byte. Each bit is displayed as being either high or low with the time in nanoseconds from the start of the current bit to the start of the subsequent bit.
The lengths of the timing blocks in the graph are not drawn to scale and are intended merely to provide a hint to the relative time scale of one bit time to the next.
Please note that the order of bits in a USB data packet is sent LSB (least significant bit) first and MSB (most significant bit) last.
6.7 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 43) to help developers filter out extraneous data. All filters are non-destructive, developers are free to apply filters multiple times without losing data.
Reverse CRC bits
The Data Center software displays the CRC of a packet in normal bit order as defined by the USB 2.0 specification whereas CATC-based analzyers display the CRC in reverse bit order. By checking this option, the Data Center software will reverse the order of the CRC bits in the CRC column of the transaction window for compatibility. The Apply Filters button must be clicked for the setting of this option to take effect.
Minimum Index
The transaction index number must be greater than or equal to this integer in order to appear in the transaction window.
Maximum Index
The transaction index number must be less than or equal to this integer in order to appear in the transaction window.
Minimum Length
This filter only applies to DATA packets. The data packet must have at least this many bytes in its payload in order to appear in the transaction window.
When combined with the packet group filters, this filter will invalidate an entire packet group if the DATA packet does not pass this filter.
Maximum Length
This filter only applies to DATA packets. The data packet must have no more than this many bytes in its payload in order to appear in the transaction window.
When combined with the packet group filters, this filter will invalidate an entire packet group if the DATA packet does not pass this filter.
Minimum Duration
An integer number that filters the transactions based on a minimum transaction duration in nanoseconds. If the user enters 8000, then a transaction’s duration must be greater than or equal to 8 microseconds in order to be included in the transaction window.
Maximum Duration
An integer number that filters the transactions based on a maximum transaction duration in nanoseconds. If the user enters 20000, then a transaction’s duration must be less than or equal to 20 microseconds in order to be included in the transaction window.
Device Addresses
This filter only applies to IN, OUT, SETUP, and SPLIT packets. A packet must be addressed to one of the specified addresses in order to appear in the transaction window. The addresses should be specified in hexadecimal format. Multiple device addresses should be separated by spaces.
If grouped packets are selected, then the entire group of packets that make up a transaction are displayed. For SPLIT packet groups, the group will be displayed if either the SPLIT hub address or the token packet device address matches one of the specified addresses.
Endpoint Addresses
This filter only applies to IN, OUT, and SETUP packets. A packet must be addressed to one of the specified endpoints in order to appear in the transaction window. The addresses should be specified in hexadecimal format. Multiple endpoint addresses should be separated by spaces.
If grouped packets are selected, then the entire group of packets that make up a transaction are displayed.
Data Pattern
This filter only applies to data packets. The data of the transaction must match the given data pattern in order for the transaction to be included in the transaction window.
If grouped packets are selected, then the entire group of packets that make up a transaction are displayed.
Please note that this filter may affect the performance of the application during a capture. Therefore, it may be necessary to wait until the capture is complete to use the data pattern filter.
See Section 5.2 for details on the syntax of the data pattern field.
Show Collapsed
For USB traffic, common packet groups (such as SOF, IN/NAK, and PING/NAK) are collected into a single transaction called a collapsed transaction. When the Show collapsed is checked, the transaction window will display all the collapsed transactions with the type and number of packets. When this option is not checked, these entries will not appear in the transaction window.
By default, collapsed packets are displayed.
See section 147 for more information on the packet groups that are collapsed.
Show Events
When checked, the transaction window will display all the bus event packets, such as host connect/disconnect, bus reset, chirp events, and input line events. Otherwise, these entries will not appear in the transaction window.
By default, event packets are displayed.
See section 6.5 for information on the types of event transactions.
Show Info
When checked, the transaction window will display all the informational packets about when the captures were started, when they were stopped and other associated information. Otherwise, these entries will not appear in the transaction window.
By default, information packets are displayed.
See section 6.5 for details about informational transactions.
Packets
The packet filters allow for filtering USB transactions based on the transaction type. These filters operate based on the transactions’ PID values. There are two types of packet filters: group filters and individual packet filters.
The group filters operate by examining multiple USB transactions to see if the sequence of PID values fits into a particular pattern. An example of this would be the IN+DATA+ACK group filter. If enabled, the filter will scan the USB packets and search for a sequence where an IN transaction is followed by a data transaction and then an ACK packet. When that sequence is observed, those packets will be displayed in the transaction table.
Packets that match a group filter are color-coded in the transaction window to indicate packet group type they are part of. See Table 5 for a list of the color codes for the packet groups.
The individual packet filters operate on individual packets. So if the DATA1 packet filter is enabled, all DATA1 packets will be displayed in the transaction window, regardless of whether or not they are part of a packet group.
Note: The group packet filters and the packet filters operate in parallel. Any USB transactions that matches a group packet filter OR match one of the individual packet filters will be displayed in the transaction table. So if a USB transaction matches a group filter, it will be displayed. If a transaction matches an individual packet filter, it will also be displayed. What is displayed in the transaction table will be a union of the packets that match the group filters and the packets that match the individual packet filters, not the intersection of the two. In other words, the transaction window will display the inclusive set of transactions, not the exclusive set.
The following sections explains the types of packet filters that are available in the filter palette.
Grouped Packets
Every USB transfer is made up of multiple packets. The Data Center software can filter these packets as a group as long as the group type has been selected in the filter set.
By default, all grouped packets are selected.
Note: Several of these packet groups will be collapsed when collapsing is enabled. See section 147 for more information on the packet groups that are collapsed.
IN Groups
IN (Orphaned)
An IN+NAK, IN+STALL, or IN+DATA occurred on a parallel USB link. Because USB packets are broadcast only in the downstream direction, the Beagle analyzer only observed the IN packet.
IN+NAK
The host polled the device for data, but the device had none.
IN+ACK
An IN+DATA+ACK occurred on a parallel USB link. Because USB packets are broadcast only in the downstream direction, the Beagle analyzer only observed the IN and the ACK packets.
IN+STALL
The host requested data from a device endpoint that does not exist or is disabled.
IN+DATA
Isochronous transfer from the host to the device. Isochronous transfers are a special type of transfer where the DATA packet is not acknowledged.
IN+DATA+ACK
General case USB transfer from the host to the device which completed successfully.
IN+DATA+NAK
General case USB transfer from the host to the device which completed unsuccessfully.
OUT Groups
OUT+DATA
Isochronous transfer from the host to the device. Isochronous transfers are a special type of transfer where the DATA packet is not acknowledged.
Possibly, an OUT+DATA+ACK, OUT+DATA+NAK, OUT+DATA+NYET, or OUT+DATA+STALL transaction that occurred on a parallel USB link. Because USB packets are broadcast only in the downstream direction, the Beagle analyzer only observed the OUT and the DATA packets.
OUT+DATA+ACK
General case USB transfer from the device to the host which completed successfully.
OUT+DATA+NAK
General case USB transfer from the device to the host which completed unsuccessfully.
OUT+DATA+NYET
Host sent data to the device which the device accepted but device signals to the host not to send more data until the device responds to a PING packet with an ACK. High-speed only.
OUT+DATA+STALL
Host attempted to send data to an endpoint that does not exist or is disabled.
SETUP Groups
SETUP+DATA
A SETUP+DATA+ACK, SETUP+DATA+NAK, or SETUP+DATA+STALL transaction that occurred on a parallel USB link. Because USB packets are broadcast only in the downstream direction, the Beagle analyzer only observed the SETUP and the DATA packets.
SETUP+DATA+ACK
USB control transfer between the host and device which completed successfully.
SETUP+DATA+NAK
USB control transfer between the host and device which completed unsuccessfully.
SETUP+DATA+STALL
Host attempted to send configuration data to an endpoint that does not exist or is disabled.
PING Groups
PING (Orphaned)
A PING+ACK, PING+NAK, or PING+STALL occurred on a parallel USB link. Because USB packets are broadcast only in the downstream direction, the Beagle analyzer only observed the PING packet.
PING+ACK
The host polling a device to ask if it is ready to receive data. The ACK indicates the device is ready.
PING+NAK
The host polling a device to ask if it is ready to receive data. The NAK indicates the device is not ready.
PING+STALL
The host polling a device to ask if it is ready to receive data. The STALL indicated the endpoint does not exist or is disabled.
SPLIT Groups
SPLIT+IN Groups
SSPLIT+IN
Start of SPLIT transaction for interrupt and isochronous IN transfers.
Alternatively, an SSPLIT+IN+ACK or SSPLIT+IN+NAK transaction that occurred on a parallel USB link. Because USB packets are broadcast only in the downstream direction, the Beagle analyzer only observed the SSPLIT and the IN packets.
SSPLIT+IN+ACK
Successful start of SPLIT transaction for non-isochronous IN transfers.
SSPLIT+IN+NAK
Unsuccessful start of SPLIT transaction for non-isochronous IN transfers.
CSPLIT+IN+DATA
End of SPLIT+IN transaction with data from the downstream device.
CSPLIT+IN+MDATA
Middle of isochronous SPLIT+IN transaction with data from the downstream device and more data pending.
CSPLIT+IN+NYET
The host is polling the hub for completion of the SPLIT+IN transaction, but the hub has not yet completed the transaction.
CSPLIT+IN+STALL
End of SPLIT+IN transaction but the downstream device’s endpoint does not exist or is disabled.
CSPLIT+IN+ERR
Error occurred during the downstream transaction.
SPLIT+OUT Groups
SSPLIT+OUT+DATA
Start of split transaction for isochronous OUT transfers.
Alternatively, an SSPLIT+OUT+DATA+ACK or SSPLIT+OUT+DATA+NAK transaction that occurred on a parallel USB link. Because USB packets are broadcast only in the downstream direction, the Beagle analyzer only observed the SSPLIT, OUT, and DATA packets.
SSPLIT+OUT+DATA+ACK
Successful start of split transaction for non-isochronous OUT transfers.
SSPLIT+OUT+DATA+NAK
Unsuccessful start of split transaction for non-isochronous OUT transfers.
CSPLIT+OUT+ACK
Downstream device responded to the OUT transaction with an ACK.
CSPLIT+OUT+NAK
Downstream device responded to the OUT transaction with a NAK.
CSPLIT+OUT+NYET
The host is polling the hub for completion of the SPLIT+OUT transaction, but the hub has not yet completed the transaction.
CSPLIT+OUT+STALL
Downstream device responded to the OUT transaction with a STALL.
CSPLIT+OUT+ERR
Error occurred during the downstream OUT transaction.
SPLIT+SETUP Groups
SSPLIT+SETUP+DATA+ACK
Successful start of split transaction for a SETUP transfer.
SSPLIT+SETUP+DATA+NAK
Unsuccessful start of split transaction for a SETUP transfer.
CSPLIT+SETUP+ACK
Downstream device responded to the SETUP transaction with an ACK.
CSPLIT+SETUP+NAK
Downstream device responded to the SETUP transaction with a NAK.
CSPLIT+SETUP+NYET
The host is polling the hub for completion of the SPLIT+SETUP transaction, but the hub has not yet completed the transaction.
CSPLIT+SETUP+STALL
Downstream device responded to the SETUP transaction with a STALL.
EXT Groups
EXT+LPM (Orphaned)
An EXT+LPM+ACK, EXT+LPM+NYET, or EXT+LPM+STALL occurred on a parallel USB link. Because USB packets are broadcast only in the downstream direction, the Beagle analyzer only observed the EXT+LPM group.
EXT+LPM+ACK
Downstream device is ready to transition to link power state.
EXT+LPM+NYET
Downstream device is not ready to transition to link power state.
EXT+LPM+STALL
Downstream device does not support the requested link power state.
Individual Packets
It is also possible to filter the captured data such that only a certain packet type is displayed in the transaction window regardless of the type of transfer occurred.
By default, only SOF, Corrupted, and the non-LPM SubPIDs are selected.
Token
OUT
OUT Token packet. Indicates that the host has data to send to a device.
IN
IN Token packet. Indicates that the host is requesting data from a device.
SOF
Start-of-Frame Token packet. Indicates the beginning of each USB frame or microframe (high-speed). Used to synchronize devices and to keep devices from entering suspend mode.
SETUP
SETUP Token packet. Indicates that the host wants to initiate a control transfer.
Data
DATA0
DATA0 Data packet. Used to transfer data between host and device.
DATA1
DATA1 Data packet. Used to transfer data between host and device.
DATA2
DATA2 Data packet used to transfer data in high-speed isochronous transfers.
MDATA
MDATA Data Packet. Used in isochronous transfers to indicate further additional data is available.
Handshake
ACK
ACK Handshake packet. A packet has been successfully received. In the case of an IN transfer, the host ACKs the Data packet. In the case of an OUT or SETUP transfer, the device ACKs the Data packet.
NAK
NAK Handshake packet. In the case of an IN transfer, the device has no data to transfer to the host or is temporarily unable to transmit data. In the case of an OUT or SETUP transfer, a NAK indicates that the device is temporarily unable to receive data.
STALL
STALL Handshake packet. The device endpoint is unable to service the request from the host and the device will need host intervention to return to normal functionality.
NYET
NYET Handshake packet (high-speed only). There are two purposes for this packet type. First, it is returned by high-speed hubs during split transactions to indicate that a full- or low-speed transaction has not yet been completed. A NYET can also be returned by a high-speed OUT endpoint to indicate that it successfully received a data packet, but it cannot currently accept any additional data.
Special
PRE/ERR
PRE Special packet. This packet is used when communicating with a full-speed hub that has low-speed devices connected on its downstream ports. When the host wants to communicate to the downstream low-speed device, it must first send a PRE packet to warn the full-speed hub that the following packet will be sent at the low-speed data rate.
ERR Handshake packet (high-speed only). Returned by high-speed hubs during split transactions to indicate a communication error occurred during the full- or low-speed transaction.
SPLIT
SPLIT Special token (high-speed only). This packet is used when communicating with a full- or low-speed device through a high-speed hub.
PING
PING Special token (high-speed only). The PING token is used to determine if a high-speed OUT endpoint has enough bandwidth to accept more data. If the device responds to a PING with a NAK, it indicates that the device is not yet ready for additional data. An ACK response means the host can send the device further data.
EXT
EXT Special Token. Indicates the start of an extended token format. The following token will have a SubPID.
SubPID
LPM
Link Power Management token. The host wishes to change the link power state of the device.
Reserved
This is reserved for future use, but has the same value as the EXT token.
Other
This includes all valid SubPIDs that are reserved for future use, except for the Reserved SubPID.
Invalid
This includes all invalid SubPIDs, and must not be used for Extended Token PIDs. This is any SubPID that has the same value as any non-EXT token.
Corrupted
A packet with a corrupted PID.
| Prev: General Monitoring | Table of Contents | Next: I2C Monitoring |
