Data Center Software Series: Transaction Window

The Data Center Software is Total Phase’s free bus monitoring software that allows users to interface with Total Phase protocol analyzers supporting I2C, SPI, USB, CAN, and eSPI protocols. These analyzers include the Beagle I2C/SPI Protocol Analyzer, the line of Beagle USB Protocol Analyzers, the USB Power Delivery Analyzer, the Komodo CAN Duo Interface, and the Promira Serial Platform with the eSPI Analysis Application.

One of the most significant facets of the Data Center Software is the Transaction Window that displays all data transactions that were captured on a serial bus in real time. This feature provides fundamental insight into the bus data, allowing engineers to more easily debug their embedded systems. In this article, we’ll discuss what this feature offers and provide a comprehensive explanation of the data it displays.

About the Transaction Window

The Transaction Window provides an interface for users to easily review and interpret the data captured on the bus in real time. Within the window, users can view each message on the bus in a single record. For specific data of interest, users can click on a data transaction and view the byte content and/or timing data of that transaction is displayed in the Details Window. Packet meta-information such as originating device and time stamp will be displayed in the Navigator Window.

Additionally, for a more custom layout of the Transaction Window, each column can be hidden, resized, and reordered depending on user preferences.

Default Columns within the Transaction Window

The Transaction Window provides the following information that applies to all supported protocols:

Index
The transaction index number. The first record of the first capture is considered index 0.

Timestamp
By default, the timestamp column displays the time that the transaction was captured. Other modes of operation that can be configured in the context menu include the Interval Time View, which displays the delta time between the start of the previous record and the start of the current record, and the Wall Time View, which displays the actual time and date that the transaction was captured.

The timestamp column can be configured to display timestamps at millisecond (min:sec.ms), microsecond (min:sec.ms.µs), or nanosecond (min:sec.ms.µs:ns) resolution.

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 Info pane.

Length (Len)
The number of bytes in the transaction.

Error Codes (Err)
Error codes listing abnormal conditions that occurred while capturing the transaction. These codes include:

Error Code Values:

Code Meaning Description
U Unexpected A packet or event occurred outside of the expected context.
T Time out Capture for transaction timed out while waiting for additional data.
M Middle of packet Data collection was started in the middle of a packet.
S Short buffer Transaction was too long to fit in capture buffer.
P Partial last byte The last byte in the buffer is incomplete. The number following the error code indicates how many bits were received for the last byte.

Record
A description of the transaction.

Data
The bytes in the transaction.

Context Menu in the Transaction Window

Context Menu within Transaction Window of Data Center Software Right-click to access Context Menu in the Transaction Window

Right-clicking in the Transaction window will bring up a context menu with the following options:

Export Binary Data
Export the selected records data to a file. The data that is exported is the same as that shown in the Details pane.

Quick Filters
Several commonly used filters are accessible though the quick filters menu. Only filters relevant to the currently selected record are available for use.

Timestamp Reference
By default, each capture session starts at time 0 and the timestamp displayed for each transaction is relative to the Capture started event. The user can select any transaction in a session to be the time reference and the timestamps of the other transactions will be adjusted accordingly.

Interval Time View
When enabled, the timestamp column will display the delta time from the start of the previous transaction to the start of the current transaction.

EoR Reference
By default, delta time calculations are based on the start time of the previous record and the start time of the current record. By enabling EoR Reference (End of Record), the delta time calculations will be based on the end time of the previous record and the start time of the current record.

Timestamp Resolution
The resolution of the timestamp can be set to milliseconds (ms), microseconds (µs), or nanoseconds (ns). Optionally, hours can also be shown.

Expand/Collapse All
Expand or collapse all the transactions in the Transaction Window.

Fully Expand/Collapse Branch
Expand or collapse the entire branch below the selected record.

Expand All to Level
Expand all transactions to the level of the selected record.

Comments
Comments allow the user to insert a record into the capture stream that contains arbitrary text.

Log Sync Packet Time
Calculate the latency of the current packet over the USB hub and log results into the Hub Latency View. 

Batch Log Sync Packet Time
Calculate latencies over the USB hub for several eligible packets starting with the current and log results into the Hub Latency View.

Additional Protocol Data in the Transaction Window

There are also additional protocol-specific features within the Transaction Window which provide high-level information about the data captured, including I2C, SPI, USB, CAN, and USB Power Delivery data.

I2C Protocol Lens in the Transaction Window

I2C Protocol Lens in Transaction Window The Transaction Window with Protocol Lens set to I2C

Error Codes (Err)
Error codes listing abnormal conditions that occurred while capturing the transaction.

I2C-specific Error Code Values:

Code Meaning Description
O Stop is required Stop condition is required for this transaction but was not observed.
N No protocol match Transaction did not match any of the expected protocols.
C PEC problem Transaction structure matched only to a protocol containing PEC, but PEC value is incorrect.
K Class error Transaction structure did not match to the protocol dictated by the command byte and the device class.

 Start/Stop (S/P)
This column indicates whether the start and stop conditions were observed for each record. S indicates the start condition; P indicates the stop condition. Transactions that have no stop condition (in the case of repeated start conditions) will have only S displayed.

Address (Addr)
The I2C address of the slave device that was the target of the transaction. This number is in hexadecimal.

Data
In the I2C Data column, NACK'ed bytes are followed by an asterisk (*) to differentiate them from ACK'ed bytes.

SPI Protocol Lens in the Transaction Window

SPI Protocol Lens in Transaction Window The Transaction Window with Protocol Lens set to SPI

For the top-level SPI transactions, data is displayed as a sequence of 2-byte words. The first byte of the word is the MOSI data, and the second byte is the MISO data. The data is paired because SPI is a bidirectional protocol, and the MOSI and MISO bytes appear on the bus at the same time. SPI transactions can be expanded into separate MISO and MOSI records, both of which contain the normal sequence of 1-byte words.

USB Protocol Lens in the Transaction Window

USB Protocol Lens in Transaction Window The Transaction Window with Protocol Lens set to USB

Speed (Sp)
This column indicates the bus speed of the transaction (Beagle USB 480/5000 analyzer only). The background color of the column will also indicate the bus speed and arrows indicate whether the transaction occurred on an upstream or downstream channel. HS, FS, LS, and LF transactions always have a double-headed arrow, while SS transactions may have just a one-sided arrow indicating its direction. Possible USB speed values are shown here:

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.

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 Headers 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.

CAN Protocol Lens in the Transaction Window

CAN Protocol Lens in Transaction Window The Transaction Window with Protocol Lens set to CAN

Ch
The channel on which the packet or event occurred.

Error Codes (Err)
Error codes listing abnormal conditions that occurred while capturing the transaction.

CAN-specific Error Code Values:

Code Meaning Description
B Bit The observed state (level) of a transmitted bit was different from the known transmitted value.
F Form A fixed-form bit field contained one or more illegal bits.
O Other An error other than bit, form or stuff was observed on the bus.
S Stuff A bit stuff error occurred more than 5 consecutive bits with the same level were received.

Bitrate
The bitrate of the CAN bus in kHz.

ID
The ID of the source CAN node of the CAN packet. When a packet is marked as RTR, the ID, instead, corresponds to the destination CAN node (the requestee).

DLC
DLC (Data Length Code) is the specified number of bytes transmitted in a single CAN packet.

Data
The data payload for CAN packets, and a textual description for CAN events, errors, and capture events.

USBPD (USB Power Delivery) Protocol Lens in the Transaction Window

USBPD Lens in Transaction Window The Transaction Window with Protocol Lens set to USBPD

Spec
The USB PD specification revision of the message, as indicated within the message header

CC
The CC line (CC1 or CC2) internal to the analyzer on which the packet was received.

Role
The role of the originator of the message, as indicated within the message header. For SOP messages, this indicates the data and power direction of the originator: Source/Sink and DFP/UFP. For SOP'/SOP'' messages, this indicates whether the originator was the cable or the DFP/UFP.

Message
This primarily shows the Message Type as declared in the message header. The MessageID field is also shown in brackets ("[1]" indicates a MessageID of 1).

Conclusion

The Transaction Window within the Data Center Software makes it possible for users to view all data transactions on the bus in real, providing insight into various components of their data.

If you have any further questions on this feature and how it can be useful for your debugging efforts, please email us at sales@totalphase.com or request a demo for your application.