Open search

NMEA 2000

Three stacks – one CAN driver

Warwick Control provides a protocol stack for the marine industry’s NMEA 2000. This incorporates the NMEA Fast Packets Protocol to handle the fast packet messages as required by the standard.

The stack comes with the same CAN driver or Hardware Abstraction Layer as the CANopen and J1939 stacks (Photo: Warwick Control)

The protocol stack interfaces with the target hardware through what is called the Hardware Abstraction Layer (HAL). The HAL API (application programming interface) is the Kvaser CAN interface API and is the same for CANopen, J1939, and NMEA 2000 protocol stacks. It contains 15 functions for talking to the CAN controller. However, depending upon the sophistication of the requirements, it is possible that only five functions need to be implemented. HALs are available from Warwick Control for many micro-controllers and CAN controllers which include: Atmel AVR, Microchip dsPIC33, STM32, Renesas M16c, and Kvaser CAN interfaces.

The protocol stack is delivered with a HAL for the Kvaser CAN interface, which can be used as a “reference design” so that users can see how to write the HAL for their target CAN controller. HALs can be custom developed by Warwick Control. The protocol stack comes with a package of utilities: CAN/J1939/NMEA2000/CANopen protocol analyzer – this can send and receive CAN and higher layer protocol information, connecting to the CAN network via a Kvaser CAN to USB PC interface. The stack is configurable so it can be tailored for small and large targets. Simulation of the stack is possible on a PC with a virtual CAN driver meaning that NMEA 2000 application software can be developed before target hardware is available.

Users can run the development on the PC without the target hardware or a CAN interface using a virtual CAN channel on the company’s CAN/J1939 analyzer software X-Analyser.


Publish date

Warwick Control