New Eagle J1939 Library: Difference between revisions

From NewEagleWiki
Jump to navigation Jump to search
Line 95: Line 95:
**VI - Vehicle Identification
**VI - Vehicle Identification
   
   
Single-frame transmitted PGNs: Both library versions support the PGN transmit block which makes it easy to add message transmissions by simply identifying the PGN you wish to transmit. The block automatically provides a list of SPNs contained within the message which can be useful in adding SPN write blocks to the model to populate the message data. The [[New Eagle DBC CAN Networking Toolbox]] can also be used with the J1939 CAN database file (*.dbc) to quickly handle single-frame PGNs.
Single-frame transmitted PGNs: Both library versions support the PGN transmit block which makes it easy to add message transmissions by simply identifying the PGN you wish to transmit. The block automatically provides a list of SPNs contained within the message which can be useful in adding SPN write blocks to the model to populate the message data. The '''[[New Eagle DBC CAN Networking Toolbox]]''' can also be used with the J1939 CAN database file (*.dbc) to quickly handle single-frame PGNs.


[[File:NEJ1939_pgn_transmit.png]]
[[File:NEJ1939_pgn_transmit.png]]

Revision as of 14:31, 9 March 2023

The New Eagle J1939 Protocol Library for OBD (On-Board Diagnostics) or EMD (Engine Management Diagnostics) offers an easy-to-use approach to add J1939 protocol support to any existing or new MotoHawk project. It handles the complex network management and transmission requirements of the J1939 protocol, such as message packing, error handling and coordinated multi-frame message transmission, which allows fast development of a J1939 compatible application.

In addition to application-level messaging defined in J1939-71 which is provided with an easy-to-use SPN/PGN block interface, this library seamlessly interfaces with the MotoHawk OBD Fault Manager behind the scenes to provide diagnostic trouble code messages such as DM1 defined in J1939-73. This blockset has been used successfully in creating a production EPA/CARB OBD-HD compliant engine application.

Current list of supported J1939 messaging

Technical Overview

DM1 Send block

The New Eagle J1939 (OBD/EMD) Library implements the Network Management (J1939-81), Data Link (J1939-21) and Application Diagnostic (J1939-73) layers as described in the J1939 protocol specification. The library's Simulink blocks and code generation provide simple support for the complex features of J1939. The New Eagle J1939 Library includes support for BAMs, RQSTs, ACK/NACK, RTS/CTS, optimized multi-frame PGN transport and address claiming, among other considerations.

The blocks that make up the New Eagle J1939 Libraries use a combination of custom S-functions and existing MotoHawk blocks to allow the user to efficiently add the J1939 protocol to any project. This ensures continued compatibility with future MotoHawk releases and controller families.

The New Eagle J1939 Library uses the J1939 structure of PGNs and SPNs. This makes it simple to integrate into an existing model by allowing the user to define SPNs throughout the model. The library will automatically collect and manage the SPN data required for each PGN message, optimizing speed and memory usage and simplifying the model layout. The separation of SPNs and PGNs greatly simplifies the process of adding support for additional PGNs. It allows the communication functions (PGNs) of the module to be collected in a common location in the Simulink model to simplify network management functions and allows the SPNs to be set near where they are calculated to minimize signal routing in the model.

The J1939 OBD diagnostic messages integrate seamlessly with the MotoHawk OBD Fault Manager blocks to provide access to available fault status and freeze frame data. The OBD custom fields feature of the fault manager is used to define SPN and FMI numbers for each fault and manage the additional information required for J1939 compliance.

J1939 Supported Functions

  • Data Link Layer – SAE J1939-21
  • Application Layer (see Supported PGNs below) – SAE J1939-71 and SAE J1939-73
  • Network Management – SAE J1939-81

Product Options

New Eagle offers the J1939 Library with two levels of Diagnostic Messaging support:

These two levels target different emissions regulation identifiers as shown below. NE-J1939-EMD-LIB provides a low cost entry point to J1939 protocol support. This level provides the common messaging required to interface with instrument clusters including basic fault messages for cluster lights and interface panel fault readout. When its time to target emissions certification, upgrading to NE-J1939-OBD-LIB includes the additional messaging and capability required such as emissions-related DTC codes and extended freeze frame support.

NE-J1939-EMD-LIB

Engine Manufacturers Diagnostics (EMD) Diagnostic Messages (CCR 1971)

  • Diagnostic Messages Support
    • DM1 - All active DTCs and some lamps (MIL, RSL, AWL, Protect)
    • DM2 - Previously active DTCs
    • DM3 - Clear diagnostic information and previously active DTCs
    • DM4 - Freeze frame definition and support (fixed format, DTC and six specified parameters)
    • DM5 - OBD compliance, previously active and active DTC count, monitors supported and their status (diagnostic readiness)
    • DM8 - Test results
    • DM11 - Clear diagnostic information and active/previously active DTCs
    • DM19 - Calibration identification and verification numbers (CAL ID and CVN)

NE-J1939-OBD-LIB

On-Board Diagnostics for Heavy Duty (HD-OBD) Diagnostic Messages (CCR 1971.1)

  • Diagnostic Messages Support
    • DM1 - All active DTCs and some lamps (MIL, RSL, AWL, Protect)
    • DM2 - Previously active DTCs
    • DM3 - Clear diagnostic information and previously active DTCs
    • DM4 - Freeze frame definition and support (fixed format, DTC and six specified parameters)
    • DM5 - OBD compliance, previously active and active DTC count, monitors supported and their status (diagnostic readiness)
    • DM6 - Emission-related pending DTCs
    • DM7 - Commanded test; system, device or component
    • DM8 - Test results
    • DM11 - Clear diagnostic information and active/previously active DTCs
    • DM12 - Emissions-related active DTCs
    • DM19 - Calibration identification and verification numbers (CAL ID and CVN)
    • DM20 - Indicates how often monitors complete compared to vehicle operation.
    • DM21 - Distance since DTCs cleared, minutes accumulated while MIL activated, time since DTCs cleared
    • DM23 - Previously active emission-related DTCs
    • DM24 - SPN support for data stream and expanded freeze frame
    • DM25 - Expanded freeze frame (format allows DTC and manufacturer-specified number parameters)
    • DM26 - Monitors supported and their status for this trip, time since engine start, number of warm-ups since DTC cleared
    • DM28 - Emission-related permanent DTCs
    • DM29 - Number of regulated DTC counts (Pending, Permanent, MIL-On, PMIL-On)
    • DM30 - Test results scaled
    • DM33 - Engine emissions increasing AECDs and associated timers (not required HD EPA)
    • DM34 - Engine emissions Not-to-Exceed status
  • Direct Memory Access
    • DM14 - Memory access request
    • DM15 - Memory access response
    • DM16 - Binary data transfer
  • Validation Scripts

PGN Support

Both versions support the following PGNs.

  • Managed PGNs
    • CBI - Compression/Service Brake Information
    • CI - Component Identification
    • EC1 - Engine Configuration 1
    • ECUID - ECU Identification Information
    • GFTI - Trip Fuel Information (Gaseous)
    • LTFI - Trip Fuel Information (Liquid)
    • SOFT - Software Identification
    • TTI2 - Trip Time Information 2
    • VI - Vehicle Identification

Single-frame transmitted PGNs: Both library versions support the PGN transmit block which makes it easy to add message transmissions by simply identifying the PGN you wish to transmit. The block automatically provides a list of SPNs contained within the message which can be useful in adding SPN write blocks to the model to populate the message data. The New Eagle DBC CAN Networking Toolbox can also be used with the J1939 CAN database file (*.dbc) to quickly handle single-frame PGNs.

Licensing

This product is licensed via the New Eagle License Dongle. Keeping maintenance current allows continued access to updates as the J1939 protocol is revised over time.

Licensing FAQ

Q: I purchased a J1939 Library license but when I try to use it, I get a message (such as the one below) directing me to contact New Eagle Support.

    A: This message indicates that an obsolete version of J1939 Library Toolbox is installed on your computer and/or MATLAB path. Please uninstall and remove from your MATLAB path. Current versions of the J1939 Library integrate with the MATLAB startup and don't require manually adding the library to your path. New Eagle recommends that you use the latest version of J1939 Library to ensure the best compatibility, feature set and stability. Keeping your software maintenance up to date is the best way to assure that you have access to the latest releases and support.

Additional PGN Support

New Eagle is actively expanding supported PGNs in the library all the time. Please contact New Eagle for information on additional PGN message support.  

Future Development

  • J1939 Client-Side Transport Handler
    • Presently, the J1939 Library is focused on transmit aspects. These include parsing requests, transmitting PGNs and managing the network.
    • Further development on the library will establish a framework for requesting, receiving and parsing PGNs from other J1939 nodes.
  • Proprietary PGNs
    • A framework for easily defining proprietary PGN messages and linking them to the library’s network management is under consideration
  • HD-OBD and OBDII for alternative fuel applications

Downloads

Datasheet

This sheet is being edited. Contact sales for recent information.

New Eagle J1939 Datasheet

Library Block Help

New Eagle J1939 Library Block Help

Webstore

NE-J1939-EMD-LIB - New Eagle J1939 Library (EMD)

NE-J1939-OBD-LIB - New Eagle J1939 Library (OBD)