Bus analyzer

Last updated
A typical bus analyzer: this one has an adaptor pod to allow it to interface to Serial ATA devices. Busanalyzer.jpg
A typical bus analyzer: this one has an adaptor pod to allow it to interface to Serial ATA devices.

A bus analyzer is a type of a protocol analysis tool, used for capturing and analyzing communication data across a specific interface bus, usually embedded in a hardware system. The bus analyzer functionality helps design, test and validation engineers to check, test, debug and validate their designs throughout the design cycles of a hardware-based product. It also helps in later phases of a product life cycle, in examining communication interoperability between systems and between components, and clarifying hardware support concerns. [1]

Contents

A bus analyzer is designed for use with specific parallel or serial bus architectures. Though the term bus analyzer implies a physical communication and interface that is being analyzed, it is sometimes used interchangeably with the term protocol analyzer or Packet Analyzer, and may be used also for analysis tools for Wireless interfaces like wireless LAN (like Wi-Fi), PAN (like Bluetooth, Wireless USB), and other, though these technologies do not have a “Wired” Bus.

The bus analyzer monitors and captures the bus communication data, decodes and analyses it and displays the data and analysis reports to the user. It is essentially a logic analyzer with some additional knowledge of the underlying bus traffic characteristics. One of the key differences between a bus analyzer and a logic analyzer is notably its ability to filter and extract only relevant traffic that occurs on the analyzed bus. Some advanced logic analyzers present data storage qualification options that also allow to filter bus traffic, enabling bus analyzer-like features. [2]

Some key differentiators between bus and logic analyzers are:

1. Cost: Logic analyzers usually carry higher prices than bus analyzers. The converse of this fact is that a logic analyzer can be used with a variety of bus architectures, whereas a bus analyzer is only good with one architecture.
2. Targeted Capabilities and Preformatting of data: A bus analyzer can be designed to provide very specific context for data coming in from the bus. Analyzers for serial buses like USB for example take serial data that arrives as a serial stream of binary 1s and 0s and displays it as logical packets differentiated by chirp, headers, payload etc...
3. Ease of use: While a general purpose logic analyzer, may support multiple busses and interfaces, a bus analyzer is designed for a specific physical interface and usually allows the user to quickly connect the probing hardware to the bus that is tested, saving time and effort.

From a user's perspective, a (greatly) simplified viewpoint may be that developers who want the most complete and most targeted capabilities for a single bus architecture may be best served with a bus analyzer, while users who work with several protocols in parallel may be better served with a Logic Analyzer that is less costly than several different bus analyzers and enables them to learn a single user interface vs several.

Analyzers are now available for virtually all existing computer and embedded bus standards and form factors such as PCI Express, DDR, USB, PCI, CompactPCI, PMC, VMEbus, CANbus and LINbus, etc. Bus analyzers are used in the Avionics industry to analyze MIL-STD-1553, ARINC 429, AFDX, and other avionics databus protocols. Other bus analyzers are also used in the mass storage industry to analyze popular data transfer protocols between computers and drives. These cover popular data buses like NVMe, SATA, SAS, ATA/PI, SCSI, etc. These devices are typically connected in series between the host computer and the target drive, where they 'snoop' traffic on the bus, capture it and present it in human-readable format.

Bus and protocol exerciser

For many bus architectures like PCI Express, PCI, SAS, SATA, and USB, engineers also use a "Bus Exerciser" or “Protocol Exerciser”. Such exercisers can emulate partial or full communication stacks which comply with the specific bus communication standard, thus allowing engineers to surgically control and generate bus traffic to test, debug and validate their designs.

These devices make it possible to also generate bad bus traffic as well as good so that the device error recovery systems can be tested. They are also often used to verify compliance with the standard to ensure interoperability of devices since they can reproduce known scenarios in a repeatable way.

Exercisers are usually used in conjunction with analyzers, so the engineer gets full visibility of the communication data captured on the bus. Some exercisers are designed as stand-alone systems while others are combined into the same systems used for analysis.

PCI Express 2.0 bus exerciser testing an add-in card Summit-Z2-16-Host-Emul-rt-4.gif
PCI Express 2.0 bus exerciser testing an add-in card

See also

Related Research Articles

<span class="mw-page-title-main">Bus (computing)</span> System that transfers data between components within a computer

In computer architecture, a bus is a communication system that transfers data between components inside a computer, or between computers. This expression covers all related hardware components and software, including communication protocols.

<span class="mw-page-title-main">RS-232</span> Standard for serial communication

In telecommunications, RS-232 or Recommended Standard 232 is a standard originally introduced in 1960 for serial communication transmission of data. It formally defines signals connecting between a DTE such as a computer terminal or PC, and a DCE, such as a modem. The standard defines the electrical characteristics and timing of signals, the meaning of signals, and the physical size and pinout of connectors. The current version of the standard is TIA-232-F Interface Between Data Terminal Equipment and Data Circuit-Terminating Equipment Employing Serial Binary Data Interchange, issued in 1997.

<span class="mw-page-title-main">Logic analyzer</span> Electronic test instrument that measures multiple signals from a circuit

A logic analyzer is an electronic instrument that captures and displays multiple logic signals from a digital system or digital circuit. A logic analyzer may convert the captured data into timing diagrams, protocol decodes, state machine traces, opcodes, or may correlate opcodes with source-level software. Logic analyzers have advanced triggering capabilities, and are useful when a user needs to see the timing relationships between many signals in a digital system.

<span class="mw-page-title-main">Embedded system</span> Computer system with a dedicated function

An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. Embedded systems control many devices in common use. In 2009, it was estimated that ninety-eight percent of all microprocessors manufactured were used in embedded systems.

<span class="mw-page-title-main">Packet analyzer</span> Computer network equipment or software that analyzes network traffic

A packet analyzer is a computer program or computer hardware such as a packet capture appliance that can analyze and log traffic that passes over a computer network or part of a network. Packet capture is the process of intercepting and logging traffic. As data streams flow across the network, the analyzer captures each packet and, if needed, decodes the packet's raw data, showing the values of various fields in the packet, and analyzes its content according to the appropriate RFC or other specifications.

<span class="mw-page-title-main">Expansion card</span> Circuit board for connecting to a computer system to add functionality

In computing, an expansion card is a printed circuit board that can be inserted into an electrical connector, or expansion slot on a computer's motherboard to add functionality to a computer system. Sometimes the design of the computer's case and motherboard involves placing most of these slots onto a separate, removable card. Typically such cards are referred to as a riser card in part because they project upward from the board and allow expansion cards to be placed above and parallel to the motherboard.

<span class="mw-page-title-main">System on a chip</span> Micro-electronic component

A system on a chip or system-on-chip is an integrated circuit that integrates most or all components of a computer or other electronic system. These components almost always include on-chip central processing unit (CPU), memory interfaces, input/output devices and interfaces, and secondary storage interfaces, often alongside other components such as radio modems and a graphics processing unit (GPU) – all on a single substrate or microchip. SoCs may contain digital and also analog, mixed-signal and often radio frequency signal processing functions.

<span class="mw-page-title-main">PCI Express</span> Computer expansion bus standard

PCI Express, officially abbreviated as PCIe or PCI-e, is a high-speed serial computer expansion bus standard, designed to replace the older PCI, PCI-X and AGP bus standards. It is the common motherboard interface for personal computers' graphics cards, capture cards, sound cards, hard disk drive host adapters, SSDs, Wi-Fi, and Ethernet hardware connections. PCIe has numerous improvements over the older standards, including higher maximum system bus throughput, lower I/O pin count and smaller physical footprint, better performance scaling for bus devices, a more detailed error detection and reporting mechanism, and native hot-swap functionality. More recent revisions of the PCIe standard provide hardware support for I/O virtualization.

<span class="mw-page-title-main">GPIB</span> General Purpose Interface Bus (GPIB) specification

IEEE 488, also known as HP-IB and generically as GPIB, is a short-range digital communications 8-bit parallel multi-master interface bus specification developed by Hewlett-Packard. It subsequently became the subject of several standards.

<span class="mw-page-title-main">Serial communication</span> Type of data transfer

In telecommunication and data transmission, serial communication is the process of sending data one bit at a time, sequentially, over a communication channel or computer bus. This is in contrast to parallel communication, where several bits are sent as a whole, on a link with several parallel channels.

<span class="mw-page-title-main">Electronic test equipment</span> Testing appliance for electronics systems

Electronic test equipment is used to create signals and capture responses from electronic devices under test (DUTs). In this way, the proper operation of the DUT can be proven or faults in the device can be traced. Use of electronic test equipment is essential to any serious work on electronics systems.

Serial Peripheral Interface (SPI) is a de facto standard for synchronous serial communication, used primarily in embedded systems for short-distance wired communication between integrated circuits.

<span class="mw-page-title-main">1-Wire</span> Device communications bus system

1-Wire is a wired half-duplex serial bus designed by Dallas Semiconductor that provides low-speed (16.3 kbit/s) data communication and supply voltage over a single conductor.

A USB and Firewire Host Controller Interface (UFHC) is a register-level interface that enables a host controller for USB or IEEE 1394 hardware to communicate with a host controller driver in software. The driver software is typically provided with an operating system of a personal computer, but may also be implemented by application-specific devices such as a microcontroller.

JTAG is an industry standard for verifying designs of and testing printed circuit boards after manufacture.

<span class="mw-page-title-main">Data logger</span> Recording device

A data logger is an electronic device that records data over time or about location either with a built-in instrument or sensor or via external instruments and sensors. Increasingly, but not entirely, they are based on a digital processor, and called digital data loggers (DDL). They generally are small, battery-powered, portable, and equipped with a microprocessor, internal memory for data storage, and sensors. Some data loggers interface with a personal computer and use software to activate the data logger and view and analyze the collected data, while others have a local interface device and can be used as a stand-alone device.

<span class="mw-page-title-main">Automatic test equipment</span> Apparatus used in hardware testing that carries out a series of tests automatically

Automatic test equipment or automated test equipment (ATE) is any apparatus that performs tests on a device, known as the device under test (DUT), equipment under test (EUT) or unit under test (UUT), using automation to quickly perform measurements and evaluate the test results. An ATE can be a simple computer-controlled digital multimeter, or a complicated system containing dozens of complex test instruments capable of automatically testing and diagnosing faults in sophisticated electronic packaged parts or on wafer testing, including system on chips and integrated circuits.

<span class="mw-page-title-main">Bus Pirate</span> Microcontroller programmer and debugger

The Bus Pirate is a universal bus interface device designed for programming, debugging, and analyzing microcontrollers and other ICs. It was developed as an open-source hardware and software project.

This glossary of computer hardware terms is a list of definitions of terms and concepts related to computer hardware, i.e. the physical and structural components of computers, architectural issues, and peripheral devices.

WebUSB is a JavaScript application programming interface (API) specification for securely providing access to USB devices from web applications.

References

  1. The basics of bus analyzers
  2. In such a case, it is also sometimes referred to as 'digital bus logger'. This is a kind if data logger that implements a sampling mechanism and a filtering mechanism to extract the traffic that relates to a specific or user-defined protocol. See for example this digital data logger