| Prev: Using the Total Phase Data Center Application | Table of Contents | Next: USB Monitoring |
The Data Center application has a common interface regardless of what protocol is being captured. This section describes those common features. Details that are specific to each protocol can be found in the protocol-specific sections below.
The Transaction window (Figure 25) displays all the transactions that were captured on a serial bus in real time, as well as bus events or capture meta-information such as when the capture began or ended. Each discrete message on the bus will appear as a single record, or transaction, in the Transaction window. When a transaction is selected in the Transaction window, 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.
The transaction table provides the following information that is common among all protocols:
Index
The transaction index number. The first record of the first capture is considered index 0.
Timestamp
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 zero.
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. To change the timestamp precision of the Transaction window, open the context menu over the table and select the desired precision from the Timestamp Resolution menu. The timestamp of the transaction is displayed in nanosecond precision in the Info pane.
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. See Table 1 for the possible error codes.
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. |
In addition, there are error code values specific to USB transactions listed in Table 6.
Record
A description of the transaction.
Data
The bytes in the transaction.
There are also additional protocol specific features for the Transaction window which provide high level information about the data captured. Specific information about these features can be found in their respective sections in this manual.
Each column in the Transaction window can be hidden by right clicking the column’s header and selecting the appropriate option in the context menu. Additionally, columns can be resized and reordered to create a custom layout for each lens.
Right clicking in the Transaction window will bring up a context menu with the following options.
Time 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. To denote that a transaction other than the Capture started event is set as the time reference, the timestamps for the entire session are colored. Also, the time reference is set on a capture session basis since the timestamps for each session are independent.
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.
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. This does not affect any record in other branches or records that are parents of the selected record. Holding the Ctrl key while double clicking a record has the same effect.
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. When a capture is running, comments can only be appended to the end of the capture buffer. When a capture is not running, comments can be inserted into the capture buffer as a top level record. This means that comments cannot be inserted in the middle of a transaction tree. Once a comment has been inserted, it can be modified or removed only when the capture is not running.
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.
Next to the “Delta time”, the “Transferred length” will be shown along with the bandwidth. The “Transferred length” is the number of data bytes (i.e. the summation of the length field inclusively) between the selected transaction and the hovered transaction. The corresponding data bandwidth for this range is displayed in parenthesis. Be aware that due to the way transactions may be ordered, the reported bandwidth is an approximate value. Also note that the data payload information is only displayed when the selected and hovered transactions are at the same level in the same branch.
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.
The Details window provides lower level detailed information about a specific transaction. There are two types of panes available. A Data pane is available for all protocols, and a Timing pane is available for SPI and I2C captures. The way the data is displayed in these modes will depend on the protocol type.
Additional protocol specific viewing modes may be available and are documented in their respective sections.
The Data pane (Figure 26) provides a way for the user to examine the raw bytes of a transaction, regardless of the protocol specific structure of the data. By default, the Data pane is configured to show the data in hexadecimal and ASCII format. Right clicking in the Data pane will bring up a context menu that allows the user to configure the view by adding additional panes and adjusting the size, grouping, and radix of each pane.
When a pane is configured to display the data in ASCII format, a “.” is used if the equivalent ASCII character is a non-printing character. Also, when a sequence of bytes is highlighted in one pane, the corresponding byte representation of the same data in the other panes is also highlighted. This allows the user to easily translate between the different representations of the data.
Please see the protocol specific sections later in this document for more protocol-related features.
The Timing pane of the Details window (Figure 27) provides bit-level timing for the data of I2C and SPI transactions. Each byte of the transaction appears as a row in this pane. All the bytes from the transaction will be displayed in this pane, including start and stop conditions.
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 depending on the protocol, the bit order may be MSB or LSB. You can determine the bit order by looking at the column label. The text in the label will indicate if the data is MSB (b7…b0) or LSB (b0…b7).
In the case of the I2C protocol, the timing mode displays 9 bits per line. The ninth bit is the ACK/NACK bit.
In the case of the SPI protocol, the timing mode displays both MOSI and MISO. The MOSI line is displayed in red and the MISO line is blue.
Please see the protocol specific sections later in this document for more details.
The Command Line window gives the user another method to interact with the Data Center application. All operations that can be done by pointing and clicking throughout the application can also be done via the command line. When an operation is performed in the application, its corresponding command line command is echoed in the command line output and added to the command line history. The user can use the arrow keys in the command line input box to scroll back through the command line history and edit or repeat previous commands.
To view all available commands, type help into the command line. Type help COMMAND to see help specific to a particular command.
When the command line input is in focus, pressing the escape key once will clear the command line input box, and double pressing the escape key will clear the command line output and history.
The command line uses the Python syntax and behaves similarly to the command line found in the Python interpreter. This means that local variables can be defined and control structures can be used as well. The arguments passed to the Data Center application commands are generally singleton values (such as integers, strings, or True/False), lists, or dictionaries. For more information on Python syntax and data structures, see http://www.python.org.
The Bus pane of the Navigator window shows the devices that have been detected on the serial bus being monitored. For I2C and USB, the devices are distinguished by the addresses. When an SPI bus is monitored, all the traffic is lumped into one device per capture since the Beagle can only monitor one slave select at a time. Clicking on a device in the bus tree will reveal more detailed information regarding that device. For additional information on what is displayed for each protocol, see the protocol specific sections later in this document.
The Filter pane (Figure 30) in the Navigator window allows the user to non-destructively filter the data shown in the Transaction window.
The general filter fields are described below. Information on applying filters can be found in Section 4.7.
The general set of filters available (Figure 30) for the all the protocols include:
An integer range that filters the transactions based on a minimum and maximum index number.
An integer range that filters the transactions based on a minimum and maximum length.
An integer range that filters the transactions based on a minimum and maximum duration in nanoseconds.
A list of codes (as defined in Tables 1 and 6) that filters the transactions based on whether the transaction contains any of the codes.
The codes must be in a list with no characters between each codes. For example, filtering for transactions that are unexpected or that have timed out would require the Errors field to contain “UT”.
Using an asterisk (*) by itself will cause the filter to match any transaction that has an error.
A case-insensitive string pattern that filters the transactions based on the text in the Record or Data column. Any raw data that is shown in the Data column will not be examined when running this filter. Use the data filter to filter the raw data.
There are 4 special characters defined in Table 2 that may be used in the pattern.
Value |
Name |
Meaning |
? |
Placeholder |
One character of any value. |
* |
Wildcard |
Zero or more characters of any value. |
^ |
Start Anchor |
Pattern must match at the beginning of the string. Only valid when put at the beginning of a pattern. |
$ |
End Anchor |
Pattern must match at the end of the string. Only valid when put at the end of a pattern. |
See Table 3 for examples of text patterns.
Example |
Result |
in |
Matches “IN” |
^in |
Matches “IN” |
config*n |
Matches “Set Configuration” |
config*n$ |
Matches “Set Configuration” |
get*descriptor |
Matches “Get String Descriptor” |
s???t |
Matches “Start” |
A data pattern that filters the transactions based on the data contained in the transaction. The pattern may be specified as either a hexadecimal pattern or an ASCII pattern. Data patterns may contain the same special characters used in text patterns described in Table 2.
When an ASCII pattern is used, the pattern is case-insensitive and applied to the raw data as it is shown in the ASCII portion of the hex editor found in the Details window. The syntax of ASCII patterns is the same as text patterns (Table 3).
When a hexadecimal pattern is used, each byte, or special character, must be separated with spaces. See Table 4 for examples of hexadecimal data patterns.
Example |
Meaning |
1 2 3 |
Must contain the sequence of 01 02 03 somewhere in data. |
^ 1 ? 2 FF |
Must have 01, 02, and FF in the first, third and fourth byte positions, respectively. |
0 ff $ |
Must end with 00 FF. |
^ ? c0 ? $ |
Must be exactly three bytes long and have the value C0 as the second byte. |
^ ? ? a5 * 20 $ |
Must have A5 in the third byte and end with 20. |
Checking this box will force any non-matching parents of a matching record to show as a soft match (Section 5.5).
Figure 31 shows what the Transaction window would look like after filtering for just DATA packets in a USB capture when the Show parent if child matches option is enabled. The parent of each of the DATA packets is shown as a soft match.
Unchecking the Show parent if child matches option hides the non-matching parents. Any record that no longer has a visible parent will have a dot placed to the left of the icon in the Record column. Figure 32 shows an example of this situation.
A soft match is a record that doesn’t match the applied filter, but one of its children, or its parent, matches. A soft match is displayed with its icon and text grayed out to distinguish it from records that are full matches.
Be definition, all children of a matched record will be shown. If a child also matches the filter, it is a full match, otherwise it is a soft match. Similarly, the parents (up to the top level) of a matched record are soft matches if they don’t match the filter, or they are full matches if they do. The user can disable the parents from showing using the Show parent if child matches filter (Section 5.5).
The Info pane (Figure 33), located in the Navigator window, shows detailed information about the record that is selected. The information may include:
A description of the type of record and how it used in the protocol.
The data represented in tabular form with fields parsed for convenience. There may be rows in a table that are hidden. To reveal hidden rows, use the +/- button to the left of the table title. The user may also change the format of the data shown with the radix button in the upper right corner of each table. The radix options are: decimal, hexadecimal, binary, and auto. “Auto” indicates that the format was chosen to be the most common or natural radix of the expressed field. It may be any one of the other modes based on what is appropriate for the data in that table row.
A description of the error codes.
| Prev: Using the Total Phase Data Center Application | Table of Contents | Next: USB Monitoring |
|
|
|
|
© 2010 Total Phase, Inc. All rights reserved. Terms of Use | Privacy Notice | Site Map |
HOME | PRODUCTS | SOLUTIONS | SALES | SUPPORT | BLOG | COMPANY | CONTACT |