SAE J1708 is a standard used for serial communications between ECUs on a heavy duty vehicle and also between a computer and the vehicle. With respect to Open System Interconnection model (OSI), J1708 defines the physical layer. Common higher layer protocols that operate on top of J1708 are SAE J1587 and SAE J1922. The protocol is maintained by SAE International.
For more information on the topic see also A Brief Introduction to SAE J1708 and J1587.
We at Copperhill Technologies are in the process of developing an SAE J1708 to UART Breakout Board, whose PCB design is already finished (see image above). The size of the board is 1" x 2". The J1708 connection (J1708+ and J1708-) is managed per a two-contact terminal block, while the power supply (5VDC) and UART RX/TX signals are provided through a header pin strip.
SAE J1708 is basically an RS485 hardware interface without the typical 120 ohm termination resistors. In typical applications, a half-duplex RS485 transceiver chip is used to connect to the bus. In order to avoid collisions, J1708 protocol rules dictate that the device must monitor the data bus while transmitting the first byte (MID) of its message.
SAE J1708 uses an RS-485 transceiver that connects the serial transmit data to the enable line of the driver rather than to the data line. This means that the driver is effectively switching directions on every bit. This is similar to the CAN Bus technology, in which one of the bit values is "dominant" and the other is "recessive".
The logic of each node is supposed monitor the recessive bits of the MID byte to determine whether any other node is transmitting a dominant bit at that time. If it detects this condition, the other node has a higher-priority message, and this node should immediately drop out and retry its message later.
So, connecting the UART transmit to the DE instead of the DI pin is the key as shown in the image above (picture borrowed from the SAE J1708 specs).
In addition to the hardware, we will also provide C source code for various embedded systems, such as the Arduino and Raspberry Pi platforms. The code will demonstrate the reception and transmission of SAE J1708 data frames, and a modification for other embedded platforms should be easy to accomplish. A J1708/1587 protocol stack software is in the planning but is currently not on high priority.
We are waiting for the first prototype, and after successful test, we will start the production of the board. The release date we are targeting is roughly July of 2018. For more information on the production progress, please feel free to contact us.
In the 1980s, the tech revolution was kickstarted by a flood of relatively inexpensive, highly programmable computers like the Commodore. Now, a second revolution in computing is beginning with the Raspberry Pi. Learning Computer Architecture with the Raspberry Pi is the premier guide to understanding the components of the most exciting tech product available. Thanks to this [...]
Emsa (formerly Embedded Systems Academy) announced their new product, the CANgine-Berry, an active CAN co-processor module that uses a regular UART communication channel towards the host system. With its independent 32-bit micro-controller, the product can execute CAN protocols with tough timing demands such as CANcrypt or CANopen with response times of under 10 ms. Depending on the [...]
It is important to re-iterate that the Raspberry Pi was originally developed as a low-cost computer system for children. However, the small size plus small price combined with a great performance made the RPi a great solution for all kinds of applications, may it be for home projects or even for industrial and automotive prototyping [...]
CANgineBerry - Active CANcrypt And CANopen Module For Raspberry Pi And Other Embedded Computing Platforms
The CANgineBerry CANopen is an active CAN co-processor module that uses a regular UART communication channel to connect to the host system. With its independent 32-bit microcontroller, the CANgineBerry can easily execute CAN protocols with tough timing demands such as CANcrypt or CANopen with response times of under 10 ms.Depending on the configuration, the CAN communication [...]
Raspberry Pi Home Automation with ArduinoRevolutionize the way you interact with your home and become part of the rapidly growing group of hobbyists and enthusiasts by combining the powerful Raspberry Pi with an Arduino board.Starting with an introduction to the Raspberry Pi and Arduino boards you will set up your very own home automation system [...]
Developed by Bosch, CAN with Flexible Data-Rate (CAN FD) is an extension to the original CAN protocol as specified in ISO 11898-1, which responds to increased bandwidth requirements in automotive networks. CAN FD has the support of semiconductor chip manufacturers and end users alike, with Infineon, NXP, Daimler and GM among the companies behind the new [...]
Python is a widely used high-level programming language for general-purpose programming, created by Guido van Rossum and first released in 1991. An interpreted language, Python has a design philosophy that emphasizes code readability (notably using whitespace indentation to delimit code blocks rather than curly brackets or keywords), and a syntax that allows programmers to express concepts [...]
The Internet of Things (IoT) is the inter-networking of physical devices, vehicles (also referred to as "connected devices" and "smart devices"), buildings, and other items embedded with electronics, software, sensors, actuators, and network connectivity which enable these objects to collect and exchange data.The Internet of Things:Do-It-Yourself at Home Projects for Arduino, Raspberry Pi, and BeagleBone [...]
The PiCAN2 board series we offer through this website provides Controller Area Network (CAN) Bus capabilities for the Raspberry Pi. And while the hardware has turned out to be exceptionally reliable, we receive requests for technical support on a regular basis. However, the vast majority of these inquiries could be prevented by following some basic steps that prevent [...]