Blog
Recent Posts
SAE J1939 to USB Gateway For PCs (Linux, Windows) And Embedded Systems
Posted by
onOur jCOM.J1939.USB gateway board allows any host device, such as a PC or Embedded System, with a USB COM port to monitor SAE J1939 data traffic and communicate with the SAE J1939 vehicle network.
It supports the full SAE J1939 protocol according to J1939/81 Network Management (Address Claiming) and J1939/21 Transport Protocol (TP). It is also supported by an extensive programming interface for Windows and Linux/Ubuntu/Fedora applications, including full C/C++/C# source code for short time-to-market developments.
The strength of the board lies in the fact that the entire SAE J1939 protocol, including all timing requirements, is stored on-chip, thus taking the burden off the host system. The board uses a USB COM port for communication with the host system, i.e. all data transfer is handled through a standard COM port access. The communication protocol between the board and the host system is well documented and thus allows porting to any computer system with a USB connection. Working source code libraries exist for Windows (C# under Visual Studio 2102/2013), Linux and its derivatives (C++ developed using Code::Blocks), and Raspberry Pi (C using the standard gcc compiler).
In addition, the gateway is supported by our jCOM1939 Monitor, an SAE J1939 Monitoring, Analyzer and ECU Simulation software under Windows.
Our jCOM1939 Monitor Software is the perfect tool to monitor, analyze, and simulate SAE J1939 data traffic. The system combines our jCOM.J1939.USB that functions as an SAE J1939 to USB (with UART option) gateway. A comprehensive and easy-to-use, easy-to-understand Windows software displays not only SAE J1939 data traffic; it also allows to scan the network, simulate an ECU (incl. full node address negotiation features), and respond to data request messages.
jCOM.J1939.USB General Features:
- Full SAE J1939 Protocol on chip
- Virtually OS independent
- Easily adaptable; just access the COM port
- Works with PCs, Raspberry Pi, BeagleBone, Teensy, Arduino
- Protocol is well documented
- C source code available
- Windows tool: jCOM1939 Monitor
- Power applied through USB port
- Operating Range: 0...70 C
- Board dimensions (W x L ): 52 x 78 ; 2.05" x 3.07"
Supported SAE J1939 Features Include:
- Hardware is fully SAE J1939/1x compliant
- Switchable termination resistor
- SAE J1939/21 - Data Link Layer
- SAE J1939/81 - Network Management
- Setup of Preferred Node Address
- Adjustable Node Address Negotiation Range
- Message Filters
- Full Network Communication incl. Transport Protocol
- Design Tx Messages Incl. Transmission Rate
- Configuration of Request Responses
- Configuration of Request Messages
- Network Scanner (Creates a list of all nodes in the network)
This book, written by a leading expert in the field of Controller Area Network (CAN) technologies, represents the perfect guide to implementing an SAE J1939 protocol stack for embedded systems.
The book is filled with numerous C/C++ code examples and valuable documentation of the resulting J1939 vehicle network data traffic. It explains in great detail the inner workings of the protocol through designing and transmitting J1939 data frames, receiving and processing J1939 data frames, and simulating J1939 ECUs (Electronic Control Units). Other Arduino sketches (software projects) include a J1939 network scanner, and a simple SAE J1939 to USB Gateway application with associated Windows GUI (Visual Studio C# project).
The collection of sketches is concluded by the ARD1939 project, a fully functional SAE J1939 protocol stack for the Arduino Uno and Mega 2560. As an added value, the included proof of concept explains (by means of code examples and bus traffic recordings) the details of the Transport Protocol (TP) according to SAE J1939/21 (BAM Session, RTS/CTS Session) and the Address Claim Procedure according to SAE J1939/81.
In combination with the low-cost and high-level user-friendliness approach of the Arduino environment, this book represents the ideal platform to learning and implementing embedded applications with the SAE J1939 protocol stack.