The rest of this article describes the tools available to view the CAN
data and assist in analysis for any necessary maintenance and troubleshooting. We will start from the Physical Layer and work our way
up to the Application Layer via the Data Link Layer.
Maintenance and troubleshooting tools
For viewing the integrity of the physical signal of the CAN frame,
an economical solution is use of the PicoScope. If you have a laptop
computer, you have the facility for a low-cost but powerful Oscilloscope. As CAN is a comparatively low bandwidth communication protocol, for viewing CAN frames a lower spec model of PicoScope is quite
suitable. Of course, a two-channel scope is necessary for viewing
CAN_H and CAN_L.
An example oscilloscope view of a CAN frame is shown in Fig. 2.
You can see that there are two electrical traces— CAN High (CAN_H)
and CAN Low (CAN_L). CAN_H is blue and CAN_L is red. Note the
voltage levels showing recessive bits and bus idle (bit level 1) where
CAN_H and CAN_L are both at 2. 5 volts, and dominant bits (bit level
0) where CAN_H and CAN_L transition to 3. 5 volts and 1.5 volts
This differential signaling allows for communication in noisy environments. Note some of the noise spikes within the signals. Because of
the differential signaling, the noise is cancelled out. If you measure the
width of a bit, you will see that it is 4µseconds, which equates to 250
Fig. 2: An example of a CAN frame on an oscilloscope.
result in the reduction of the differential voltage between CAN_H and
Fig. 4 shows what can happen if CAN_H and CAN_L low are
shorted together. Here you can see that the scope trace shows a waveform, but there is no communication.
Fig. 4: CAN_H shorted to CAN_L.
The PicoScope can be essential for spotting problems with the wiring
by observing the physical signal levels of the CAN frame. For example,
referring to Fig. 1, note that there are trunk termination resistors at each
end of the Trunk Line. These are simply two 120Ω resistors connected
between CAN_H and CAN_L. During digital communication, they prevent RF signals from being reflected back from the end, causing interference. If a terminator resistor is missing, the resulting waveform can
appear as shown in Fig. 3. Note the overshoot ringing at the transitions.
This can cause CAN frame errors, interrupting normal communication.
Fig. 3: CAN frame disturbance reflections due to a
Another problem area can occur when there are too many termina-
tion resistors attached to the Trunk Line. This will reduce the overall ter-
mination resistance of the bus, which can cause a reduced performance
of the CAN bus. The resulting oscilloscope trace of this situation will
For viewing CAN frames at the Data Link level, we use the Warwick
X-Analyser for CAN/J1939/NMEA 2000 analysis and testing. Fig. 5
shows the raw CAN data view in the main display. Here can be seen the
CAN frame ID in Hex with its raw CAN data time stamped. Note the
bus statistics area show the bus load, frame count and error frames (if
there are any). The display is static updating each frame ID, but there is
a chronological display option to view each message as it arrives on the
Fig. 5: X-Analyser view of CAN frame.
For the Application Layer, the X-Analyser 3 Professional has the
option to load a NMEA 2000 CAN database to facilitate the display of
the NMEA 2000 Parameter Group Numbers (PGNs) and their respective fields. The PGN describes the content and purpose of the message,
e.g. Speed (PGN 1F503), Fluid Level (PGN 1F211). In Fig. 5, the display shows message names that relate to the PGNs, and in the signals
area there is a selection of fields (signals) chosen for this display. These
are based on the NMEA 2000 standard CAN database supplied with the
There is also an SAE J1939 database embedded in the X-Analyser 3.
This can be useful, as many boats have a combination of both of these
protocols on board, and with a two CAN channel Kvaser interface both
CAN data buses can be viewed simultaneously. A good example of
where this could be useful is where there is a NMEA 2000 to J1939
gateway on board. There are several companies that provide these gateways where the engine controls utilize the J1939 protocol, and we need
to relay that information to the NMEA 2000 bus. Here we can use the
X-Analyser to view both the J1939 and NMEA 2000 CAN data buses at
the same time.