1
APN-083 Rev 1
APN-083
CAN Bus Communication
for OEM7 Products
2
Contents
Introduction .................................................................................................................................................. 3
NovAtel CAN Implementation ...................................................................................................................... 4
Message Transmission Over CAN ............................................................................................................. 4
Message Reception and Reassembly ........................................................................................................ 5
Hardware Setup for CAN Communication .................................................................................................... 6
CAN Transceivers, Termination, and Resistors ......................................................................................... 6
CAN Pinouts for OEM7 Receiver Cards ..................................................................................................... 6
CAN Pinouts for OEM7 Enclosure Products .............................................................................................. 7
Sample Setup ............................................................................................................................................ 7
Software Configuration for CAN Communication ......................................................................................... 8
Software Configuration for CAN on OEM6 ............................................................................................... 8
Software Configuration for CAN on OEM7 ............................................................................................... 8
Enabling CAN ......................................................................................................................................... 9
Verifying CAN Communication ........................................................................................................... 10
Requesting NovAtel Messages or Corrections Over CAN ................................................................... 11
Configuring OEM7 CAN to behave as OEM6 CAN ............................................................................... 15
Appendix A: CAN Commands ...................................................................................................................... 16
CAN Command Summary........................................................................................................................ 16
Appendix B: CAN Logs ................................................................................................................................. 17
CAN Log Summary ................................................................................................................................... 17
NMEA2000 Fixed-Format Messages ....................................................................................................... 17
NovAtel Proprietary Fixed-Format Messages ......................................................................................... 18
INSPVACMP ......................................................................................................................................... 18
INSPVASDCMP ..................................................................................................................................... 21
Appendix C: Full Configuration Examples ................................................................................................... 23
Example 1: Configuring the CAN bus to output NMEA2000 messages .................................................. 23
Example 2: Configuring the CAN bus to output NovAtel messages ....................................................... 23
3
Introduction
CAN, which stands for Controller Area Network, is a communication medium becoming increasingly
adopted by all markets. The purpose of CAN is to allow for data exchange between devices using a
multi-master serial data communication model. The main advantage of CAN is that multiple devices can
communicate through two inexpensive wires, that act as a BUS (Referred to as the CANBUS). This
eliminates the need for one-to-one interconnect or dedicated network controllers.
Figure 1: CANBUS Visualization
Figure 1 illustrates an example of a CAN network. Each device is electrically attached to the 2-wire BUS.
BUS architectures like CAN allow devices to share data, without the need for each device to be
specifically designed to work with each other device on the BUS. Each device (or “Node”) on the BUS can
read all transmissions on the BUS.
Each node must identify itself on the BUS. This is what is known as “claiming an address”. Each node
must claim a unique BUS address so the other nodes can communicate. Backup addresses can be set for
the event that an address is already claimed. The system will attempt to use the backup as the next
address.
This document will describe in detail how to install, configure, and use CAN as a communication method
with NovAtel OEM7 products.
4
NovAtel CAN Implementation
NovAtel’s CAN implementation is J1939 based, which is a standard originally built to support heavy duty
vehicles such as large trucks and tractors. For details on the J1939 CAN frame structure, refer to the
J1939 standard.
The NovAtel J1939 transport mechanism emulates a serial port, using CAN protocol as a physical layer.
Standard CAN frames are used, with data fields up to 8 bytes long, 29-bit ID, and PGNs / Addresses
specified per the CCOMCONFIG
command.
NOTE: Detailed Logs and Commands information is available at:
docs.novatel.com/OEM7/Content/Home.htm
Message Transmission Over CAN
NovAtel messages are transmitted over CAN according to the following guidelines:
1. The entire message (Header + CRC + Data) is transported over CAN as-is, with no modifications
2. The message is broken into segments <= 8 bytes, in order for each segment to fit into the
standard 8-byte J1939 frame.
3. When the segment is 8 bytes long, CAN DLC is set to 8.
4. When the segment is < 8 bytes (the last segment in the message could be less than 8 bytes), the
DLC is set to the actual segment length. The remaining bytes in the CAN frame are set to FF.
That is, no CAN frame ever carries data from more than 1 NovAtel message.
5. The segments are transmitted on CAN bus sequentially. There is no retransmission or
acknowledgement, beyond what is specified by the J1939 protocol.
6. There is no guarantee as to the transmission timing of individual J1939 frames comprising
NovAtel message.
7. There is no inter-message padding. That is, all frames carry some form of valid payload.
For example, the following is the result of sending the command “LOG CCOM1 BESTPOSA ONCE” to
a receiver that is properly configured for CAN communication, as recorded by an open source CAN bus
analysis program:
<Time><Tx/Rx><Channel><CAN ID><Type><DLC><DataBytes>
16:06:25:0840 Rx 1 0x1C06111C x 8 23 42 45 53 54 50 4F 53
16:06:25:0843 Rx 1 0x1C06111C x 8 41 2C 43 43 4F 4D 31 2C
16:06:25:0846 Rx 1 0x1C06111C x 8 30 2C 31 39 2E 30 2C 46
16:06:25:0851 Rx 1 0x1C06111C x 8 49 4E 45 53 54 45 45 52
16:06:25:0853 Rx 1 0x1C06111C x 8 49 4E 47 2C 32 30 34 34
16:06:25:0856 Rx 1 0x1C06111C x 8 2C 31 36 36 30 30 33 2E
16:06:25:0859 Rx 1 0x1C06111C x 8 30 30 30 2C 30 32 30 34
16:06:25:0862 Rx 1 0x1C06111C x 8 30 30 32 30 2C 62 31 66
16:06:25:0865 Rx 1 0x1C06111C x 8 36 2C 31 34 37 33 36 3B
16:06:25:0868 Rx 1 0x1C06111C x 8 53 4F 4C 5F 43 4F 4D 50
16:06:25:0871 Rx 1 0x1C06111C x 8 55 54 45 44 2C 53 49 4E
16:06:25:0875 Rx 1 0x1C06111C x 8 47 4C 45 2C 35 31 2E 31
16:06:25:0878 Rx 1 0x1C06111C x 8 35 30 33 38 35 34 31 36
5
16:06:25:0881 Rx 1 0x1C06111C x 8 34 36 2C 2D 31 31 34 2E
16:06:25:0884 Rx 1 0x1C06111C x 8 30 33 30 37 30 34 34 37
16:06:25:0887 Rx 1 0x1C06111C x 8 33 32 31 2C 31 30 39 38
16:06:25:0889 Rx 1 0x1C06111C x 8 2E 31 33 30 31 2C 2D 31
16:06:25:0892 Rx 1 0x1C06111C x 8 37 2E 30 30 30 30 2C 57
16:06:25:0895 Rx 1 0x1C06111C x 8 47 53 38 34 2C 31 2E 30
16:06:25:0899 Rx 1 0x1C06111C x 8 31 34 38 2C 30 2E 38 39
16:06:25:0902 Rx 1 0x1C06111C x 8 37 38 2C 32 2E 33 36 34
16:06:25:0905 Rx 1 0x1C06111C x 8 35 2C 22 22 2C 30 2E 30
16:06:25:0908 Rx 1 0x1C06111C x 8 30 30 2C 30 2E 30 30 30
16:06:25:0910 Rx 1 0x1C06111C x 8 2C 33 35 2C 33 31 2C 33
16:06:25:0913 Rx 1 0x1C06111C x 8 31 2C 33 31 2C 30 30 2C
16:06:25:0916 Rx 1 0x1C06111C x 8 30 36 2C 33 35 2C 33 33
16:06:25:0919 Rx 1 0x1C06111C x 8 2A 63 64 62 66 63 32 34
16:06:25:0921 Rx 1 0x1C06111C x 3 65 0D 0A
This demonstrates how a single message is broken into segments to fit into standard 8-byte CAN frames.
If the data bytes within these messages are converted from Hexadecimal to ASCII, the original BESTPOSA
message can be reconstructed, including the header and CRC:
#BESTPOSA,CCOM1,0,19.0,FINESTEERING,2044,166003.000,02040020,b1f6,147
36;SOL_COMPUTED,SINGLE,51.15038541646,-114.03070447321,1098.1301,-
17.0000,WGS84,1.0148,0.8978,2.3645,"",0.000,0.000,35,31,31,31,00,06,3
5,33*cdbfc24e
Message Reception and Reassembly
NovAtel messages are received and reassembled over CAN as follows:
1. The J1939 frame payload is extracted based on the DLC value.
2. The payloads are buffered the same way reads from a serial port would be buffered.
3. The buffer is parsed per NovAtel BINARY format.
6
Hardware Setup for CAN Communication
CAN uses two wires for communication. These signal lines are referred to as CAN High (CAN+) and CAN
Low (CAN-). The difference between the two lines is known as the voltage differential. The inactive state
between these two lines is 0V. When data is transmitted, the voltage differential is approximately 2.5V.
This voltage differential, similar to a twisted pair differential, is resilient against EMI interference,
electrical fields/spikes, and other noise.
CAN Transceivers, Termination, and Resistors
Both ends of the CAN BUS must be terminated. If is not properly terminated at both ends, then any
signals on the bus get reflected from the ends and interfere with normal communication. When the
ends of the BUS are properly terminated with 120Ω resistors, there are no reflections from the ends of
the bus and all the nodes may communicate as intended.
There are no CAN transceivers on the OEM7 receiver cards. These cards require external CAN
transceivers and proper bus terminations. See Figure 4 for an example of a CAN transceiver circuit. Some
OEM7 enclosure products do include a CAN transceiver, which will be discussed in following sections.
Figure 1: CAN Transceiver
For more information on the CAN transceiver including CAN transceiver components, please refer to:
https://docs.novatel.com/OEM7/Content/Interface_Circuits/CAN_Controller_Ports.htm
CAN Pinouts for OEM7 Receiver Cards
The following table shows the CAN pin designations for OEM7 receiver cards.
OEM719 OEM729 OEM7600 OEM7700 OEM7720
Connector P1701 P1803 P1701 P2001 P1901
CAN1TX 7 10 36 36 36
CAN1RX 6 11 38 38 38
CAN2TX 20 12 37 37 37
CAN2RX 8 13 35 35 35
Table 1: OEM Receiver CAN Pins
7
For complete OEM7 receiver port pinouts, please refer to the following documentation:
https://docs.novatel.com/OEM7/Content/Technical_Specs_Receiver/Technical_Specifications.htm
CAN Pinouts for OEM7 Enclosure Products
NovAtel PwrPak7 enclosure products come with an internal CAN transceiver. However, it still requires
120 Ohm bus terminators to function properly. Standalone OEM7 receiver card products require their
own CAN transceiver, as was discussed in previous sections.
PwrPak7/PwrPak7D
Connector DSUB HD26
CAN1+ (High) 9
CAN1- (Low) 18
Table 2: PwrPak7/PwrPak7D CAN Pins
For complete PwrPak7/PwrPak7D enclosure port pinouts, please refer to the following documentation:
https://docs.novatel.com/OEM7/Content/Technical_Specs_Receiver/PwrPak7_Connectors.htm
Sample Setup
In the below picture, you can see a sample set-up. This includes a 120 Ohm terminator, the wiring
coming from the two CAN lines on the PwrPak7 (CAN+, CAN-), and a Vector CAN interface convertor
which takes the CAN output and converts it to USB to communicate with a PC. There are various third-
party software programs available which can then decode and analyze the CAN output.
On the OEM719, CAN1 is multiplexed with user VARF and EVENT2, so the following commands must
be issued before enabling CAN1:
FREQUENCYOUT DISABLE
MARKCONTROL MARK2 DISABLE