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