Using an Oscilloscope to Test Automotive Serial Buses
The quality of automotive serial bus designs becomes crucial as cars get smarter and further integrated. There are more systems and subsystems in your vehicle’s designs requiring multiple serial buses, more hardware, and very thorough testing. And when you are designing a car that is going to be on the same road as your loved ones, safety is paramount. Learn how to fully test your automotive designs, whether it be windshield wiper controls or engine and braking systems, to prevent any malfunction.
If you’re working on automotive serial busses, you probably have a protocol analyzer and an oscilloscope on your lab bench. A protocol analyzer is a great tool for looking at the trace flow of data, but it doesn’t provide much, if any information, on your physical layer. Oscilloscopes are optimized for taking measurements at the application layer because of their ability to characterize analog signals. This blog will focus on the later – using oscilloscopes to debug and characterize the physical layer of your automotive designs.
Serial Buses used in Automotive Designs
Oscilloscopes can decode and trigger on automotive buses like CAN, CAN FD, LIN, FlexRay, SENT, PSI5, user-definable NRZ, and CXPI.
Local Interconnect Network (LIN) is a slower, but affordable serial bus, so it’s usually used to communicate with less critical functions in a car, like controlling the seat and mirror adjustments. Single Edge Nibble Transmission (SENT) is another low-cost bus used in automotive designs. SENT is primarily used to transmit sensor data, like temperature or position, to controllers.
When it comes to vital functions that can heavily impact a passenger’s safety, you’ll control those with Controller Area Network (CAN), Controller Area Network with Flex Data (CAN FD), or FlexRay. These buses are more robust and faster than LIN and SENT. This is particularly helpful as we are trying to add more functionality into our vehicles and therefore need to add more nodes to our communication bus.
How to Test Serial Buses
InfiniiVision oscilloscopes provide hardware-based decoding of automotive serial buses, which provides a real-time update of the decode trace. This is different than the software-based decoding you will find in oscilloscopes from other vendors which result in more lag and less waveform information. You’ll be more likely to capture elusive, problematic events with the combination of hardware decode and InfiniiVision’s update rate of one million waveforms per second.
To decode your automotive signals, follow these simple steps:
- Connect your oscilloscope to your bus with a probe.
- If you are probing a single ended bus like LIN or SENT, a standard 10-1 Passive probe will work great.
- If you are probing a differential bus like CAN or FlexRay, use a 200MHz differential probe. The N2818A is our recommendation.
- Scale your signal and adjust your trigger. The simplest and fastest way to do this is to press "Auto Scale"
- Turn on "Serial" on the front panel of the oscilloscope
- In the touch screen, select the bus you are decoding and if necessary, set the corresponding data rate
- Set up your trigger to find specific events. At this point, the oscilloscope will be triggering on every rising edge
- You can trigger on the packets of the serial bus by selecting the bus type
- You can also trigger on specific events such as errors or specific bit values
- Turn on the lister – this shows you the decode in a table format and highlights any errors
- If you need to capture a long time-span of your signal, turn on segmented memory to view several acquisitions. This will help you quickly find all the errors that are occurring
- Press the "Acquire" button on the front panel, choose the number of segments, and let it run
Below the waveform you can see the time-correlated decode trace – this is the 8-byte data field of each frame. It can be a hassle to look up the corresponding information associated with this hex value. Instead, you can symbolically decode the hex values to see the meaning of each packet right here on the screen. For example, a hex value could correlate to “EngineData” and include it’s associated physical parameters such as temperature or speed. To symbolically decode, import your .dbc file (press the "Save/Recall" button on the scope when your thumb drive is connected). The .dbc file defines your serial bus messages as per your design.
Mask Tests
Because it is so important to ensure automotive systems are working without fail, you can use mask tests to verify your design even further. Mask tests can help you find elusive errors that could be revealed when you look at the signal integrity of your serial bus. You can download industry-standard mask files from Keysight at no charge.
When you recall the mask file on your oscilloscope, it will automatically set up the eye-diagram and the mask test. The eye-diagram shows all the bits overlaid on top of each other. This shows you if the rising and falling edges of your signal are occurring at the correct time.
Learn more about eye diagrams and how they can help test the physical layer of your designs in this video.
The mask test defines a fail zone, shown in grey. Signals should not enter this grey zone. If they do, the signal will turn red and you know that your design fails this test. This allows you to find any timing, noise, or jitter related errors.
Summary
Equipped with these debug and analysis tools, you’re ready to find any errors in your design to ensure you're creating reliable and safe automotive systems. You can test all the buses in your automotive design with the InfiniiVision Automotive software package. This provides serial trigger and decode of CAN, CAN FD, LIN, FlexRay, SENT, PSI5, User-definable NRZ, and clock extension peripheral interface. It also provides advanced analysis including mask test, Frequency Response Analysis, and advanced waveform math.
Download a free trial of the automotive software package along with power measurements, USB 2.0 triggering and analysis, aerospace and defense software, and embedded analysis software here: