The J1939 Protocol Stack (in ANSI-C) is a complete implementation of the SAE J1939 protocol. By providing all communication mechanisms defined in the SAE J1939 specification the stack allows the developer to focus solely on the implementation of the application.
Beside the proven can4linux driver, the following microcontroller drivers are available:
- Atmel 89c51cc01/02/03
- Atmel AT90CAN32/64/128
- Beck IPC SC1x3
- Freescale MC56F8323
- Freescale MC9S12DG128
- Infineon C166/C167
- Infineon Tricore
- Janz CB-USB
- NEC PD70F3476
- NXP LPC2129
- Silabs C8051F040
- ST Microelectronics ST10F269
- ST Microelectronics STR7
- ST Microelectronics STM32F10x
as well as for the stand-alone CAN-controller:
- Philips SJA1000
- Microchip MCP2510.
An adaption to other target systems can be performed easily within a few days due to the modular structure of the J1939 Protocol Stack based on the OSI layer model.
The ANSI-C compliant J1939 Protocol Stack provides the following features:
- Transmission and reception of application-specific messages
- Pre-filtering of messages according to PGN and source address
- Support for the transport protocols TP-BAM and TP-CM to transmit larger blocks of data
- parallel communication with several consumers
- Support of "Address Claiming" for dynamic address assignment
- Multi-CAN version supports multiple CAN lines
The complete and detailed reference manual and the ready-to-run examples allow a fast access to the J1939 Protocol Stack with a minimum of time.
To integrate the J1939 Protocol Stack into an existing project its files have to be added to the application. The stack can be adopted to the requirements of the application by simple configuration files, which are included in the project. Thereby the required amount of memory can be optimally adjusted to the application. Further required hardware resources for the stack are a CAN interrupt and a cyclic timer interrupt.

- J1939 Protocol Stack with separate driver interface
- CPU/CAN driver
- numerous, immediately compilable examples
- reference manual containing descriptions of all API functions, including parameters and return values
- support by E-Mail and update service free of charge within the support period
The CAN-Analyzer CAN-REport is an efficient and versatile tool for analysis and starting of CAN-based networks like J1939. The J1939 -specific interpretation of CAN messages is provided by a supplementary software module.
This extension interprets and visualizes J1939 messages. Furthermore it provides functions to send J1939 messages by the CAN-REport.
To connect the CAN-REport to the CAN network various PC-CAN interfaces are available for e.g. USB, RS232, PC-Card, PCI and PCI-Express interfaces.
For the
J1939 Protocol Stack a one-off license fee is
charged in form of the purchase price. Further license fees
do not arise from the deployment of the software within the
same company (no runtime licenses).
Handing over the
software and the implementation, respectively, towards a
third party is not allowed.
| 3000/10 |
J1939-SRCLIB-Slave-SL J1939 Developers Kit (Single CAN) in C sourcecode |
| 3000/20 |
J1939-SRCLIB-Slave-ML J1939 Developers Kit (Multi CAN) in C sourcecode |
| 3010/01 | Driver package for Philips SJA1000 |
| 3010/03 | Driver package for Infineon C166/C167 |
| 3010/04 | Driver package for Janz CAN-USB |
| 3010/07 | Driver package for Freescale MC9S12DG128 |
| 3010/10 | Driver package for Atmel 89x51cc0x |
| 3010/20 | Driver package for Microchip MCP2510 |
| 3010/25 | Driver package for STMicroelectronics STR7 |
| 3010/33 | Driver package for Silabs C8051F040 |
| 3010/35 | Driver package for Atmel AT90CANxx |
| 3010/39 | Driver package for NXP LPC2129 |
| 3010/46 | Driver package for BECK IPC SC1x3 |
| 3010/48 | Driver package for Freescale MC56F823 |
| 3010/50 | Driver package for can4linux |
| 3010/93 | Driver package for NEC PD70F3476 |
| 0570/12 | J1939 Stack Integration Support |
| 0580/10 | CAN-REport-W (Windows™) |
| 0580/20 | CAN-REport-L (LINUX™) |
| 0580/12 | CAN-REport J1939 Extension |
Datasheet as PDF