Software Products

NMEA 2000
Protocol Stack

Our NMEA 2000 protocol stack was designed by Simma Software, a nationally recognized CAN expert, to meet the demanding needs of the high speed Controller Area Network (CAN). The NMEA 2000 source code uses a high performance modular design and has a simple API. Benchmarks have shown the stack to be 800% more efficient than other commercially available NMEA 2000 software solutions. The software protocol stack is well documented and has been used in more than a quarter of a milliion embedded systems.

Our NMEA 2000 software package handles reception and transmission of standard single frame and multi-frame (i.e. Transport Protocol) NMEA 2000 messages. Also, the ssNMEA2000 software package handles address claim arbitration specified by the network management layer. If you have questions about our NMEA 2000 software, please see our NMEA 2000 Protocol Stack FAQ for possible answers.

NMEA 2000 Protocol Stack Details:

  • Fast Packet support
  • PGN List Group functions
  • Complex Data Request
  • Product Informatin support
  • MISRA C compliant
  • ANSI C source code
  • Use with or without an RTOS
  • Use with 8, 16, 32, or 64-bit CPU
  • ssNMEA2000 reference manual

NMEA 2000


This article is intended to give engineers a brief overview of the NMEA 2000 protocol. For details on the specification itself, please visit the International Marine Electronics Association (NMEA).

NMEA 2000 is a replacement for the NMEA 0183 network which has been used in the marine industry on pleasure craft, tankers, submarines, yachts, and cargo ships for the past 20 years. Today NMEA 2000 is used as the standard communications bus for marine equipement.

NMEA 2000 Overview

NMEA 2000 is a high level communications protocol, which operates on a Controller Area Network (CAN) bus. NMEA 2000 specifies exactly how information (e.g. engine RPM) is exchanged between electronic control units (ECUs) on a network.

It defines the data’s priority, size, scaling, and offset. For example, NMEA 2000 specifies engine RPM to have a default priority of 3, to have a size of 16-bits, a resolution of 0.125 rpm/bit, and an offset of 0.

The standard goes on to define many other aspects, including message timeouts, how large messages are fragmented and reassembled, the network speed, the physical layer, and how applications acquire network addresses.

NMEA 2000


Our real-time NMEA 2000 protocol stack is completely platform independent and written in the ANSI C programming language. It is the CAN device driver, ssCAN, that is target specific and incorporates the details for a given microcontroller.

Together ssNMEA2000 and ssCAN form a complete ported system allowing customers to be up and running almost immediately. Our ssCAN device driver has been ported to over 40 different microcontrollers. Below is the list of available ports. Please contact us if you are interested in a port or device driver for a hardware platform that is not listed.

See our full list of available ports.

Texas Instruments
  • Texas Instruments RM4x (DCAN)
  • Texas Instruments LM3Sx
  • Texas Instruments TMS470x
  • Texas Instruments TMS470Mx
  • Texas Instruments TMS570x
  • Texas Instruments Tiva TM4C
  • Texas Instruments F28M35xx
  • Texas Instruments TMS320F280x
  • Texas Instruments TMS320F281x
  • Texas Instruments TMS320F282x
  • Texas Instruments TMS320F283x
  • Texas Instruments AM3x – Sitara
  • Texas Instruments DM8x – DaVinci
  • Texas Instruments MSPM0
  • Texas Instruments MSPM0G
  • STMicro ST7
  • STMicro ST10
  • STMicro STR7
  • STMicro STM8
  • STMicro STM32L4x
  • STMicro STM32G0x
  • STMicro STM32G4x
  • STMicro STM32F0x
  • STMicro STM32F1x
  • STMicro STM32F2x
  • STMicro STM32F3x
  • STMicro STM32F4x
  • STMicro STM32F7x
  • Microchip PIC18
  • Microchip PIC24
  • Microchip PIC32
  • Microchip dsPIC30
  • Microchip dsPIC33
  • Microchip MCP2515
  • NXP LPC11xx
  • NXP LPC17xx
  • NXP LPC21xx
  • NXP LPC23xx
  • NXP SJA1000
  • NXP HCS08
  • NXP HCS12
  • NXP HCS12X
  • NXP MC68xxx
  • NXP MCF5xxx
  • NXP MPC5xxx
  • NXP Kinetis Kxx
  • Linux
  • Windows XP/7/Embedded
  • Atmel SAM7
  • Atmel AT90
  • Infineon C16x
  • Infineon TriCore
  • Intel 82527
  • Silicon Labs C8051
  • Xilinx LogiCORE AXI (axi_can)

Talk to us

Please contact us if you are interested in a port or device driver for a hardware platform that is not listed.

Experience Summary






Device Drivers




& DSPs


Real Time Operating Systems

Our Customers

Customer Logos

Our Partners

TI Partner Logo Infineon Partner Logo Microchip Partner Logo ST Partner Logo NXP Partner Logo
    Your Cart
    Your cart is emptyReturn to Store