Using the Beagle Protocol Analyzers for Debugging Autonomous Underwater Vehicles

Cornell University Autonomous Underwater Vehicle

Figure 1: The Autonomous Underwater Vehicle

With so many Standards, everything is different

Designing an autonomous underwater vehicle requires the integration of a myriad of circuits and sensors. In designing a passive acoustic array, different synchronous serial protocols are used to connect to the various components. A form of Serial Peripheral Interface (SPI) is used to connect the Analog to Digital Converters (ADCs). The battery monitoring chips return data over SMBus which is built upon the Inter Integrated Circuit (I2C) bus. The ADC used by the depth sensor communicates over SPI.

The Beagle I2C/SPI Protocol Analyzer is able to interface to all of these protocols and allows a single tool to be used for their debugging. This combined functionality makes the Beagle analyzer a powerful and versatile debugging tool.

Beyond the Scope: The Beagle Analyzer in Action

Attempting to debug connections over these interfaces can be tedious and complicated. The classic first approach is to use a digital oscilloscope to read the data going over the bus. While a good digital oscilloscope can be used to debug timing parameters, attempting to decipher messages of any length is very difficult. Using the Beagle I2C/SPI Protocol Analyzer, the data being sent can be monitored and the packet structure easily viewed. Rather than having to piece bit by bit together by hand, the Beagle analyzer allows developers to look at the high level byte representations of the signal. It also excels at providing visibility into long packets, which would be impossible to fit onto the screen of an oscilloscope.

Below is an oscilloscope trace side by side with a screen show of the Beagle Data Center software.

Figure 2: Comparison the Beagle Data Center software output and a digital oscilloscope output.

4 Wire SPI: A Clever Hack

The ADCs used on our passive acoustic array use an interface that is very similar to SPI, except that there are two data lines going in each direction. At first glance it would seem that a tool such as the Beagle analyzer would be unable to help here. However, by connecting both the MOSI and the MISO lines to the two lines going in one direction, the data can be read. Since MOSI and MISO both get clocked together, the two lines can be synchronized.