Three stacks, one CAN driver!
SAE J1939 Stack Overview
The J1939 Protocol Stack for embedded systems is a complete implementation of the SAE J1939 protocol. It has been thoroughly tested and it is in use today in many heavy-duty automotive and industrial applications and commercial real-time operating systems. By handling the low-level details of J1939 network communication, the Protocol Stack allows the developer to focus solely on implementing the application. It therefore reduces the time and expense of your J1939 implementation.
The stack’s functionality can be grouped into the major areas of Data Link Layer including Transport Protocol processing and Network Management including Address Claim. These areas are common for all J1939 applications. In general the stack supports the following from parts 21 and 81 of the J1939 specification and is the ideal basis to start your J1939 development. It also supported the Extended Transport Protocol from the ISO11783 protocol
CAN Driver Support
The Protocol Stack interfaces with the target hardware through what is called the Hardware Abstraction Layer (HAL). The HAL API is the Kvaser CAN interface API and is the same for CANopen, J1939 and NMEA2000 Protocol Stacks. It contains just 15 functions for talking to the CAN controller. However depending upon the sophistication of your requirements, it is possible that only 5 functions need to be implemented.
HALs are available from Warwick Control for many microcontrollers and CAN controllers which include:
- Atmel AVR,
- Microchip dsPIC33,
- Renesas M16c, uC and
- Kvaser CAN interfaces â€“ USB, PCI, PCI-X, Ethernet, Wi-Fi interfaces
The Protocol Stack is delivered with a HAL for the Kvaser CAN interface and this can be used as a reference design so that you can see how to write the HAL for your target CAN controller.
HALs can be custom developed by Warwick Control. Contact Warwick Control with details of the Microcontroller and C compiler that you want to use.
Software Development Utilities
The Protocol Stack from Warwick Control is unique in that it comes with a package of utilities that help you develop your application:
- CAN/J1939/NMEA2000/CANopen bus protocol analyser “ this can send and receive CAN and higher layer protocol information, connecting to the CAN bus via a Kvaser CAN to USB PC interface
- Signal Interaction Layer (SIL) Generator, a C code generator that takes signal information such as Suspect Parameter Numbers (SPNs) that are defined in a CAN database and automatically generates a set of signal read and write functions on a click of the mouse (as defined in J1939/71)
- CAN Database Documentation Tool takes a CAN database and automatically generates a CAN specification on a click of a mouse
- CAN Database Comparison Tool helps you compare changes between two revisions of a CAN database
Scope of Delivery
- C Source Code for Protocol Stack
- C Source Code for HALs for Kvaser interfaces and SocketCAN for Linux
- User documentation
- Kvaser Leaf Light CAN to USB interface
- X-Analyser Professional CAN/J1939/NMEA2000/CANopen bus analyser software
- Protocol software development utilities SIL Generator, CAN Database Documentation Tool,
- One time license fee with no further royalties for your project
- 90 days email support
- Same CAN driver or Hardware Abstraction Layer (HAL) can be used for J1939, CANopen and NMEA2000 protocol stacks
- One time license fee which is subsequently royalty free
- Many microcontrollers supported
- Stack is very configurable so can be tailored for small and large targets
- Kvaser CAN API is supported so Kvaser CAN hardware for PCs and embedded PCs are supported
- Simulation of the protocol stack is possible on a PC with a virtual CAN driver meaning that J1939 application software can be developed before target hardware is available. It can also be connected to X-Analyser via the virtual Kvaser CAN driver allowing enhanced debugging.
- After the initial license fee there are no further royalties
- 90 days email support is included in the purchase