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.
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.
The Transaction Window provides the following information that applies to all supported protocols:
IndexThe transaction index number. The first record of the first capture is considered index 0.
TimestampBy 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. |
A description of the transaction.
DataThe bytes in the transaction.
Right-clicking in the Transaction window will bring up a context menu with the following options:
Export Binary DataExport the selected records data to a file. The data that is exported is the same as that shown in the Details pane.
Quick FiltersSeveral commonly used filters are accessible though the quick filters menu. Only filters relevant to the currently selected record are available for use.
Timestamp ReferenceBy 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 ViewWhen enabled, the timestamp column will display the delta time from the start of the previous transaction to the start of the current transaction.
EoR ReferenceBy 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 ResolutionThe resolution of the timestamp can be set to milliseconds (ms), microseconds (µs), or nanoseconds (ns). Optionally, hours can also be shown.
Expand/Collapse AllExpand or collapse all the transactions in the Transaction Window.
Fully Expand/Collapse BranchExpand or collapse the entire branch below the selected record.
Expand All to LevelExpand all transactions to the level of the selected record.
CommentsComments allow the user to insert a record into the capture stream that contains arbitrary text.
Log Sync Packet TimeCalculate the latency of the current packet over the USB hub and log results into the Hub Latency View.
Batch Log Sync Packet TimeCalculate latencies over the USB hub for several eligible packets starting with the current and log results into the Hub Latency View.
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.
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. |
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.
DataIn the I2C Data column, NACK'ed bytes are followed by an asterisk (*) to differentiate them from ACK'ed bytes.
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.
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 |
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. |
The device being addressed represented as a decimal value.
EpThe endpoint being addressed represented as a decimal value.
DataFor 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.
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. |
The bitrate of the CAN bus in kHz.
IDThe 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).
DLCDLC (Data Length Code) is the specified number of bytes transmitted in a single CAN packet.
DataThe data payload for CAN packets, and a textual description for CAN events, errors, and capture events.
The USB PD specification revision of the message, as indicated within the message header
CCThe CC line (CC1 or CC2) internal to the analyzer on which the packet was received.
RoleThe 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.
MessageThis 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).
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.