J1939 Protocol Stack

Save as PDF


  • All SAE J1939 communication mechanisms supported (except bridge function)
  • Full support for the transport protocols (“TP-BAM” / “TP-CM”) to transmit larger blocks of data
  • Quick software development due to convenient functions: e.g. sending PGN data automatically done by transport protocol when necessary, callback functions for incoming requests, …
  • Automatic handling of address claiming procedures by callback functions: all four address configuration types possible. (“Self Configurable”, “Service Configurable”, etc.)
  • Pre-filtering of messages according to PGN and source address
  • Parallel communication with several ECUs
  • Support of cyclic transmission of PGN data
  • Support for multiple physical CAN ports
  • Support for multiple logical devices on the same physical CAN port
  • Source code license also available
  • Easy adaptation to other target systems due to modular structure of the J1939 protocol with well defined abstraction layers
  • Written in ANSI-C without endianess and CPU dependency
  • Many settings can be adapted to the requirements of the application and the available hardware resources by simple configuration files at compile time


  • Object license
    • Operating system: Windows, RTX, Linux, QNX or VxWorks
    • esd CAN module, supporting 29-bit CAN-ID (NTCAN-API compatible), e.g. CAN-USB/400, CAN-USB/2, CAN-PCIe/200, CAN-PCIe/402 (PCI-Express interface), CAN-PCI/402 (PCI interface), CPCI-402 (CPCI interface), ...
  • Source code license
    • Embedded CPU with CAN controller and a timer
    • CAN implementation: own, or as additional service by esd (Available for e.g. NXP LPC2292, Fujitsu MB90543, others on request)


  • CANreal monitor and simulation tool
    • Display and recording of CAN message frames with high resolution time stamps
    • Protocol interpreter e.g. for J1939 (optional)
    • Supports message ID filtering
    • Multiple instances of the software on the same or different channels can run at the same time
    • Supports transmission of user defined CAN message frames
    • Supported operating system: Windows
  • J1939 DSM (device simulation and monitor) program
    • Simulates a J1939 ECU
    • Multiple instances of the software on the same or different channels can run at the same time
    • Monitors complete PGN traffic on the bus
    • Tx messages can be set up for cyclic transmission or for transmission on request only
    • Transmission of PGN can be triggered manually
    • Manually sending of requests
    • Log shows all user interaction and anomalies in the J1939 protocol parsing
    • Supported operating system: Windows, Linux (as GTK+ application)

Starter kit

  • USB CAN-Controller (esd CAN USB/2) with driver license
  • J1939 Stack object license (library) with examples
  • CANreal Monitor and Simulation Tool
  • J1939 DSM (Device Simulation and Monitor) Program