Fieldbus & CANopen SAE J1939 PGN / SPN CAN & CAN FD

J1939 Stack

Description

The J1939 protocol stack is a complete, portable ANSI-C implementation of SAE J1939 for heavy-duty on- and off-highway vehicles and machinery. It gives an ECU the full J1939 communication layer over CAN — parameter groups, multi-packet transport, address claiming and diagnostics — behind a clean, MISRA-C-friendly API to build on. For functional-safety designs, a dedicated J1939 Safety Stack is available separately.

What the J1939 protocol stack covers

The stack handles Parameter Groups (PGNs) and Suspect Parameter Numbers (SPNs), cyclic transmit and receive, single-frame and multi-packet transport (BAM broadcast and CMDT/TP connection mode, up to 1785 bytes), and full network address claiming so your ECU takes and defends its 8-bit address automatically. Diagnostic messages (DM1, DM2 and related DMs) expose active and previously-active trouble codes (DTCs), lamp status and freeze frames per the J1939-73 application layer. Message timeout supervision and clean per-layer APIs — data link, network management, application and diagnostics — round out the implementation.

Telematics, FMS and fleet data

Because it decodes the standard J1939 parameter set, the J1939 protocol stack is well suited to telematics, data-logging and remote-diagnostics products. It can read the FMS (Fleet Management System) standard signals — vehicle and wheel-based speed, engine speed and hours, fuel level and total fuel used, coolant temperature, axle weight, PTO status, tachograph data and the vehicle identification number — and hand them to your application or cloud back-end in a usable form. Combined with GPS or sensor data, that turns a gateway or data logger into a single source of fleet insight.

Portable and hardware-independent

Delivered as a ready-to-integrate binary with a thin hardware abstraction layer, the J1939 protocol stack runs on any MCU, any RTOS or bare metal, with no third-party dependencies. It works over classic CAN and CAN FD across the standard J1939 bit rates, and is engineered for deterministic, real-time behaviour on the resource-constrained controllers used in vehicles and mobile machinery. It also coexists with a CANopen stack when a device has to speak both protocols on one network.

Where the J1939 protocol stack fits

You’ll find the J1939 protocol stack in engine and after-treatment controllers, transmissions, telematics and display units, body and chassis controllers, and off-highway machinery ECUs. It fits trucks, buses, agricultural and construction equipment, marine and power-generation systems — and, through the related J1939 derivatives, agricultural ISOBUS (ISO 11783), marine NMEA 2000 and tractor-trailer (ISO 11992) designs — anywhere SAE J1939 is the vehicle network.

About the J1939 protocol

SAE J1939 is the standard the commercial-vehicle industry uses for robust, plug-and-play communication between electronic control units (ECUs) over CAN. Up to 254 ECUs can share a network; each message uses the 29-bit extended CAN identifier, carrying an 18-bit Parameter Group Number (PGN) that identifies the data, while transport protocols move payloads beyond the 8-byte CAN limit up to 1785 bytes. Standard bit rates are 250 kbit/s and 500 kbit/s, and the newer SAE J1939-22 (J1939 FD) extends the model to CAN FD and 64-byte frames. The specification is layered across SAE J1939-21 (data link and transport), J1939-71 (vehicle application), J1939-73 (diagnostics) and J1939-81 (network management), with the Digital Annex (J1939DA) cataloguing every PGN and signal.

Standards and conformance

The J1939 protocol stack follows the SAE J1939 family — J1939-21 (transport), J1939-71 (application parameters), J1939-73 (diagnostics) and J1939-81 (network management / address claiming) — and is ready for CAN FD as SAE J1939-22 (J1939 FD) adoption grows. It ships as a ready-to-integrate binary with a documented API and a sample application, and is supported by the engineers who wrote it.

Key Benefits

  • Talk J1939 on the hardware you already have Runs on any CAN 2.0B controller with low hardware dependency and a minimal footprint, so you add J1939 without moving to a bigger MCU.
  • On the bus in days, not weeks A documented API and a configurable PGN database let your team map signals and get communicating fast, with our engineers on hand when you need them.
  • One stack for single- or multi-bus designs Mono- and multi-channel variants cover everything from a single gateway to a multi-bus controller, with the same integration either way.
  • Grows into diagnostics and telematics Runs alongside ISO-TP/UDS diagnostics and FMS fleet data collection — one supplier, one architecture, as your product roadmap expands.

Key Features

  • Complete SAE J1939 stack (J1939-21, -71, -73, -81)
  • PGN/SPN messaging with cyclic transmit and receive
  • Multi-packet transport: BAM (broadcast) and CMDT/TP (connection mode)
  • Address claiming with dynamic 8-bit node address
  • DM diagnostics (DM1/DM2, DTCs) and FMS parameter decoding
  • Classic CAN 2.0B and CAN FD; runs on any MCU/RTOS, delivered as target binary

Complete Feature Set

Protocol Features

  • Address claiming (dynamic/static)
  • NAME management
  • PGN transmission and reception Transport protocol (TP/BAM)
  • Request handling Network management

Diagnostic Features

  • DM1 - Active diagnostic codes
  • DM2 - Previously active codes
  • DM3 - Clear/reset codes
  • DM13 - Stop/start broadcast SPN and FMI management
  • Lamp status control

Technical Specifications

J1939 Compliance

J1939 Compliance
Parameter Value
J1939-21 Data Link Layer
J1939-71 Vehicle Application Layer
J1939-73 Diagnostics

Datasheet

Enter your details to download the J1939 Stack datasheet (PDF).

Frequently Asked Questions

Is J1939 Stack certified for functional safety?

ISIT-Neperis safety stacks are SIL3 / PLe assessed by certification body and are delivered with the documentation your own certification requires. Contact us for the exact certification status and evidence package for J1939 Stack.

Which microcontrollers and RTOS does J1939 Stack support?

The stack is built with low hardware dependency: it runs on any MCU and any RTOS through a thin hardware abstraction layer. There is no vendor lock-in, and changing hardware does not require re-certifying the core.

How can I evaluate or get a quote for J1939 Stack?

Use the Request Quote button on this page to reach our engineers. We can discuss your requirements, provide a quote, and arrange an evaluation.

Interested in this product?

Request a customized quote and our team will get back to you.

Request Quote