2J1939 Training Vocabulary: Datalink: Term used to describe how devices communicate with each other also referred to as a network.Bit: One binary value. A “1” or “0”Byte: 8 bits put together. Ex: “ ”Bit Field: Number of bits which are grouped togetherCAN Data Frame: Series of ordered bit fields
3J1939 Training Vocabulary (cont.) Cyclic Redundancy Check (CRC): Error control mechanism used to detect when a message was corrupted during transimission.Data Field: 0-64 bit field in the CAN data frame which contains the actual data such as oil pressure or coolant temperature as defined in J1939/71 standard.
4J1939 Training Vocabulary (cont.) Destination Address: Address of who is suppose to receive the message. (not included in all J1939 messages)Global Address is 255 or FF hexDevice: Any physical component which listens to or sends information out on the J1939 datalink.Electronic Control Unit: same as a device
5J1939 Training Vocabulary (cont.) End of Frame: 7 bit field which marks the end of a CAN frameExtended Frame: A CAN frame which contains a 29 bit identifier as defined in the CAN2.0B standard.Note: J1939 allows both 11bit and 29 bit Identifers to coexist on the same network.Frame: A series of data bits making up a complete message. The frame contains several bit fields
6J1939 Frame End of Frame Bit ACK Field 8 bytes of actual data CRC Start ofFrame BitACKFieldHeader# of bytes8 bytes of actual dataCRCPriority #PDU FormatSource Address4 bitsrepresentingnumbers0-15typically 8Actual data you aretrying to sendUsedforErrorChecking
7J1939 Training Vocabulary (cont.) Message: One or more CAN data frames which transfer a complete piece of information to other devices on the datalink.Multipacket Message: Messages which require multiple CAN data frames. These are handled by the “transport protocol”.Protocol: A protocol is the “language” of how to communicate between devices.
8J1939 Training Vocabulary (cont.) Parameter Group Number (PGN): a 24 bit identifier used to identify a message which contains a particular group of parameters.Parameter Group: A collection of parameters that are conveyed in a J1939 message.PDU1 Format: Format used when specifying a destination address
9J1939 Training Vocabulary (cont.) PDU2 Format: Format used when broadcasting information.Priority: The highest priority is zero. Lowest priority is seven.Source Address: Address of who is sending the message on the datalink.Start of Frame: Bit used to indicate the start of a CAN frame.Source address must be part of every J1939 message.
10J1939 Training Vocabulary (Cont.) Suspect Parameter Number (SPN): The particular element which is having a problem. This is used in the fault codes to tell us which part is having a problem. (Sensor, ECM, etc..)Failure Mode Identifer (FMI): Used to say how a particular SPN has failed.Need copy of wiring diagram back.
12Physical Transmission Media OSI Network ModelLayerNumber7654321ApplicationApplicationPresentationPresentationSessionSessionTransportTransportNetworkNetworkData LinkData LinkPhysicalPhysicalPhysical Transmission Media
13OSI Network Model Physical Layer Data Link Layer Network Layer Translates bits to waveforms required by electrical interfaceData Link LayerAdds “header” and “trailer” to message for determining if errors occurred in message transmission, start and end of frame, etc...Network LayerAdds or looks at who sent the message and where the message goingTransport LayerBreaks and reassembles large messages into smaller messages for sending over the networkSession LayerHandles access rights … may not want everyone to see all data
14OSI Network Model Presentation Layer Application Layer Data encryption, data compression, etc...Application LayerWhatever is left over from other layers….
15OSI Network ModelMost protocols do not specify each layer of the OSI model. J1939 does not specify each layer of the model.Currently the following layers are given specific documents in the J1939 standard Layer 1 -- J1939/11 Layer 2 -- J1939/21 Layer 3 -- J1939/31 Layer 7 -- J1939/71 & /73J1939 / first number past the slash indicates the roughly what layer of the OSI model the specification is addressing. The second number tells you which version of the layer you are working with. For example, there are 5 different physical layers for J1939; therefore, we have /11, /12, /13, /14, ./15 standards.
16J1939 Training What can I monitor? What must I monitor to remove the indicator lights?Where do I find out how to interpret the messages?Example of reading oil pressure
17All Module Information J1939 TrainingAll Module InformationRequestOnlyDataBroadcastData
18J1939 Training What can I monitor? Sensor parameters such as coolant temperature, oil pressure, etc…Engine Fault CodesCalibrations for AHD on CD-ROMs for March 2002 or beyond have battery voltage problem fixed.
19J1939 Training What must I monitor to remove the indicator lights? All fault code SPNs (suspect parameter number and FMIs (failure mode indicator) must be displayed.
20J1939 Training Where do I find out how to interpret the messages? Parameter data messages are found in the J1939/71 standard. Find the PGN first then look up the individual parameter definitions.Fault Code (Diagnostic) messages are found in the J1939/73 standard. You will also need to use the wiring diagram, or AEB for the specific engine to understand what Cummins fault code goes with a SPN / FMI pair.
21J1939 Control What can the customer control? Engine speed can be controlled via the J1939 datalink.Fan Clutch
22J1939 Training High Speed datalinks Reflections & Terminations TopologyTroubleshooting
23J1939 Training Reflections & Terminations Terminations are required to minimize reflections on the datalink (demo)J1939/11 requires two 120ohm terminations for the datalink.EA options for QSX/QSM only use one 120ohm termination due to the short length between the ECM and the service datalink connection.ICAD Database has more detailed informationQSX EA option 1039 and QSM options 2036 / 2037
24J1939 Training Circuit block diagram Most of our modules use the Intel Serial Communcations Controller ( CM500, CENSE, CM550, CM570, etc...)Example circuits shown in J1939/11 specificationInsideECMOutsideECMMicro( )CAN transciever is 82C51 (Phillips)SerialCommunicationsControllerESDProtectionCircuitCANTransceiver
25J1939 Topology Length of Backbone: .1 - 40m Length of Stub: 0 - 1m Maximum number of nodes: 30Terminations : 120ΩMinimum Spacing: 0.1 mNote: Do not equallyspace the node connectionson the backboneStub120Ώ120ΏBackbone
26J1939 Addressing Dynamic Addressing Each ECM on the network takes on an address at startup. The specific address may be different from startup to startup.Cummins does not support dynamic addressing; therefore, make sure each device on the datalink has a unique address.NO DYNAMIC ADDRESSING
27J1939 Troubleshooting Troubleshooting First check the termination resistors.Measure resistance between CAN_H and CAN_L.Resistance should be approximately 60 ohms. If you have a small backbone like in the EA options, this may be closer to 120 ohms.Check for frame errorsUsing CANalyzer or other tool, monitor the J1939 datalink to see if any frame errors are recorded.
28J1939 Troubleshooting Troubleshooting (cont.) Monitor broadcast parameters using CANalyzerFor multiplexed parameters, verify that the OEM / DOEM is sending the correct source address in the message.Unplug other devices from the datalink so only the PC and ECM are on the network.
29J1939 Tools Tools Protocol analyzer Must have a protocol analyzer to develop a datalink interface.Must have the J1939 standard unless customer already has good familiarity with CAN 2.0B protocol.
30J1939 ToolsCANalyzerIn North America contact: Vector CANtech Inc (248) Matt PalmerOutside America contact: Lother FelbingerApproximate Cost: Software: $2, Hardware: $1,185
31J1939 ToolsJproCummins owned distributors: Software available through engineering tools (see intranet site: etools.ctg.cummins.com) Hardware available through Industrial Communication Technologies.North America: call (978)Outside North America:Appoximate costs: $910Non Cummins owned distributors: Software is NOT available through engineering tools. Recommend CANalyzerJpro support from manufacturer ends 12/01.
32J1939 Tools J1939 specification Quick Check II available 4th Qtr 2001 Can be ordered online at for $ USD for non-SAE members and $ USD for SAE members.QUICK CHECK II DOES NOT HELP WITH FRAME ERROS. ONLY THE PARAMETERS QUICK CHECK HAS DEFINED ARE SELECTABLE.
34J1939 Frame End of Frame Bit ACK Field 8 bytes of actual data CRC Start ofFrame BitACKFieldHeader# of bytes8 bytes of actual dataCRCPriority #PDU FormatSource Address4 bitsrepresentingnumbers0-15typically 8Actual data you aretrying to sendUsedforErrorChecking
35J1939 29 bit Identifier S O F Identifier 11 bits S R I D E CAN ExtendedFrame FormatSOFIdentifier11 bitsSRIDEIdentifier Extension18 bitsRTPriorityPDU Format6 bits (MSB)J1939Frame FormatSRIDEP FPDU SpecificDestination Address,Group Ext, orProprietarySOFRDPSourceAddressRTSRR - Substitute Remote Request bitIDE - Identifier Extention bitThese are both part of the CAN datalink layer and are not described in the J1939 documents.321876543218765432187654321J1939 Framebit position11121314151617181922122324252627282933132312345689CAN 29 bitID position2827262524232212191817161514131211987654321
36J1939 29 bit Identifier Header Breakdown (29 bits) 1 8 F E D F 0 2 ReservedData PagePDU# = 2403 bitsPriorityNumberPDU Format (PF)PDU Specific (PS)Contains DestinationAddress if PF <239Source Address
37J1939 Data Message Interpretation Looking at data messages on the CANalyzer FEDF02x Rx d 8 7D E0 2E 7D FF FF FF FFtimeCANSerialInput #RxorTX# ofDataBytes8 bytes of data representedin hexadecimal29 bit header
38J1939 Data Message Interpretation Example from J1939/71 SpecificationSection in specificationwhich tells you how tointerpret the actual data field
39J1939 Data Message Interpretation On CANalyzer:CF00300x Rx d 8 7D E0 2E 7D FF FF FF FF0 C FReservedData Page3 bitsPriorityNumberPDU Format (PF)PDU Specific (PS)Contains DestinationAddress if PF <239Source Address
40J1939 Data Message Interpretation Conversion Formula:Accelerator Pedal Position % = Raw Counts * Resolution + offsetData Byte 2 which representsthe accelerator pedal positionExample:From CANalyzer:CF00300x Rx d 8 7D E0 2E 7D FF FF FF FFCalculate Raw Counts First:Raw Counts = E0 hex = binary = 224 decimalNote: You can use the Scientific calculator under Accessories in Win9X or Win NT to convert from hex to decimal.Accelerator Pedal Position % = 224 * = 89.6%
41J1939 Data Message Interpretation Example from J1939/71 Specification
42J1939 Data Message Interpretation Conversion Formula:Engine Coolant Temperature = Raw Counts * Resolution + offsetExample:DataByte 1From CANalyzer:CFEEE00x Rx d 8 7D E0 2E 7D FF FF FF FFCalculate Raw Counts First:Raw Counts = 7D hex = binary = 125 decimalNote: You can use the Scientific calculator under Accessories in Win9X or Win NT to convertfrom hex to decimalEngine Coolant Temperature = 125 * = 85 deg C
43J1939 Fault Code Interpretation J1939 has several different messages which contain diagnostic (fault) code information.DM1 - Active Fault CodesDM2 - Inactive Fault CodesDM3 - Clear Inactive Fault CodesTypically customers will use the DM1 message to detect when a fault code has gone active.
44J1939 Fault Code Interpretation The DM1 message can be interpreted in one of two ways depending on which Cummins product you are working on.HHP: QSK19 - QSKV60 use version 1All others: QSB - QSX use version 4Check byte 6 bit 8 to determine which SPN Conversion Method is to be usedbyte 6 bit 8 = 0 = version 4byte 6 bit 8 = 1 = version 1
45J1939 Fault Code Interpretation DM1 message8 bytes of data are arranged as follows:Byte 1: bits 8-7 Malfunction Indicator Lamp Statusbits 6-5 Red Stop Lamp Statusbits 4-3 Amber Warning Lamp Statusbits 2-1 Protect Lamp StatusEach lamp takes two bits to indicate lamp state00 - lamp is OFF01 - lamp is ON
46J1939 Wait to Start Lamp is NOT found in the DM1 message! PGN ( 00FEE4h ) Shutdown message byte 4 bits 2,1Broadcast once per secondother three lamps are part of the DM1 message
47J1939 Fault Code Interpretation DM1 byte 2All 8 bits are reserved for future SAE use.OEMs should ignore all 8 bits in this byte.DM1 byte 3 (for QSX, QSM, QSB,QSC, QSL9 only)Contains the 8 lowest order bits for the SPN (Suspect Parameter Number).Must combine this with byte 4 and part of byte 5 to get the 19 bit SPN number.
48J1939 Fault Code Interpretation DM1 byte 3 (for QSK, QSKV, QST only)Contains the 8 highest order bits for the SPN (Suspect Parameter Number).Must combine this with byte 4 and part of byte 5 to get the 19 bit SPN number.
49J1939 Fault Code Interpretation DM1 byte 4 (for QSX, QSM, QSB,QSC, QSL9 only)Middle 8 bits of the SPNDM1 byte 5 (for QSX, QSM, QSB,QSC, QSL9 only)Contains the 3 most significant bits of the SPN, plus the FMI (Failure Mode Identifier)Together the SPN and FMI map to the Cummins Fault Code.
50J1939 Fault Code Interpretation DM1 byte 4 (for QSK, QSKV, QST only)Middle 8 bits of the SPNDM1 byte 5 (for QSK, QSKV, QST only)Contains the 3 least significant bits of the SPN, plus the FMI (Failure Mode Identifier)Together the SPN and FMI map to the Cummins Fault Code.
53J1939 Fault Code Interpretation SPNCummins Fault CodeFMIExample:Fault Code SPN FMINote: Cummins has some SPN / FMI combinations which point to two different fault codes. Usually the fault codes are related such as low oil pressure (FC143) and very low oil pressure (FC415).
54J1939 Fault Code Interpretation FMI codesFMI Code Description0 Data Valid but above Normal Operating Range1 Data Valid but below Normal Operating Range2 Data Erratic, Intermittent or Incorrect3 Voltage above Normal or Shorted to High Source4 Voltage below Normal or Shorted to Low Source5 Current below Normal or Open Circuit6 Current above Normal or Grounded Circuit7 Mechanical System Not Responding or out of adjustment8 Abnormal frequency or pulse width or period9 Abnormal Update Rate10 Abnormal Rate of Change11 Root Cause Not Know12 Bad Intelligent Device or Component13 Out of Calibration14 Special Instructions15 Data Valid But Above Normal Operating Range (Least Severe Level)16 Data Valid But Above Normal Operating Range (Moderate Sever Level)17 Data Valid But Below Normal Operating Range (Least Severe Level)18 Data Valid But Below Normal Operating Range (Moderate Severe Level)
55J1939 Transport Message Transport Messages Used when data exceeds the 8 byte limitUsually needed during fault code message transmission.Multipacket messageCurrently only the BAM (Broadcast Announce Message) part of the J1939 transport layer used by our products.
56J1939 Transport Message Transport Protocol TP.BAM Used when more than one fault codes are activeMust be implemented to read fault codesFirst step is to send a TP.CM (Connection Message) with the connection mode being BAM.Next a series of TP.DT (Data Transfer) messages will be sent. These messages contain the actual data.See detailed example hand out
57J1939 MultiplexingMultiplexing is used to send information from an external device to the engine control module via the J1939 datalink.The engine control module must know the address of the device which is sending the information.Typically only the throttle has been multiplexed on industrial applications.
58Increased Multiplexing Capability Purpose: Control additional features over the J1939New multiplexing capability:Diagnostic SwitchIdle Increment / DecrementAlternate Low Idle SwitchMultiunit Sync On/Off SwitchAlternate Torque SelectAlternate Droop SelectAuxiliary Governor Switch
59New Multiplex Capability (cont.) ISC Switches 1, 2, and 3Variable ISCRemote Accelerator (Throttle)Remote Accelerator SwitchHydraulic TemperatureA/C High Pressure Fan SwitchNew Broadcast parametersFan Drive StateEstimated Percent Fan Speed
60New Multiplex Capability TimingQSB/QSC/QSL9: Production June 2003QSK19/45/60: Unknown
61J1939 Multiplexing Example Example from J1939/71 SpecificationSection in specificationwhich tells you how tointerpret the actual data fieldOn CANalyzer:CF00303x Tx d 8 7D E0 2E 7D FF FF FF FF
62J1939 Multiplexing Example Note the source address is set to 03. This means device 03 is sending a message on the J1939 datalink.The ECM must be calibrated to recognize the throttle from this address or the throttle will not work.On CANalyzer:CF00303x Tx d 8 7D E0 2E 7D FF FF FF FF
63J1939 Multiplexing Some reasons why the J1939 throttle will not work: Datalink is not functioning.Calibration set to incorrect throttle source address .Customer’s device sending throttle request under the wrong addressCustomer’s device not sending throttle request at allThrottle request is not fast enough and ECM is timing out.
64J1939 MultiplexingSome speed control has been done via the TSC1 message. (QSK products mostly.)Not recommended unless no other option availableThe TSC1 message has three control modesSpeed Control -- Device tells the engine what speed to operate at (typically use this mode)Torque Control -- Device tells the engine to control torque to a specific valueSpeed / Torque Limit Control -- Specify a speed / torque pair which act as the limits.If we get too many messages too fast, we would have time out problems (which feels like a cutout) or the service tools will not be able to connect reliably to the ECM.
65J1939 TSC1 Speed Control Example Address of device sending TSC1 speed control requestC000003x Tx d 8 01 A0 41 FF FF FF FF FFByte 1: indicates speed control mode by settingbits 2,1 to a value of 01Byte 2, 3: 41 A0 - specifies and engine speed of 2100 rpmCalculating the desired engine speed:2100 rpm * 1 count / .125rpm = counts = 41 A0 hexNote: The TSC1 message is broadcast every 10 ms when TSC1 iscommanding the engine speed.
66More Multiplexing Examples ISC Switches 1, 2, and 3Turn on ISC118FDCA20x Tx d 8 F1 FF FF FF FF FF FF FFTurn off ISC118FDCA20x Tx d 8 F0 FF FF FF FF FF FF FFVariable ISCTurn on Variable ISC setpoint 318FDCA20x Tx d 8 F6 FF FF FF FF FF FF FFTurn off Variable ISC setpoint 3Remote Accelerator (Throttle)Send remote throttle18F00320x Tx d 8 FF FF FF 0F FF FF FF FF18F00120x Tx d 8 FF FF FF 01 FF FF FF FFMust send both remote throttle switch and position messages
67More Multiplexing Examples Remote Accelerator SwitchTurn on remote throttle switch18F00120x Tx d 8 FF FF FF 01 FF FF FF FFTurn off remote throttle switch18F00120x Tx d 8 FF FF FF 00 FF FF FF FFHydraulic TemperatureHydraulic Temperature gets into the ECM via OEM temperature 218FE6820x Tx d 8 F0 FF FF FF FF FF FF FFA/C High Pressure Fan SwitchTurn on AC pressure switch18FEE420x Tx d 8 FF FF F1 FF FF FF FF FFTurn off AC pressure switch18FEE420x Tx d 8 FF FF F0 FF FF FF FF FF
68More Multiplexing Examples Diagnostic SwitchTurn on diagnostic switch18FEF120x Tx d 8 FF FF FF FF FF FF FF DFTurn off diagnostic switch18FEE420x Tx d 8 FF FF FF FF FF FF FF CFIdle Increment / DecrementTurn on increment switch18FEE420x Tx d 8 FF FF FF FF FF FF FF F7Turn off increment switch18FEE420x Tx d 8 FF FF FF FF FF FF FF F3Alternate Low Idle SwitchTurn on low idle switch18FDCB20x Tx d 8 DF FF FF FF FF FF FF FFTurn off low idle switch18FDCB20x Tx d 8 CF FF FF FF FF FF FF FF
70More Multiplexing Examples Alternate Droop SelectTurn on Alternate Droop 118FDCB20x Tx d 8 FF FF F1 FF FF FF FF FFTurn on Alternate Droop 218FDCB20x Tx d 8 FF FF F2 FF FF FF FF FFNo Alternate Droop18FDCB20x Tx d 8 FF FF F0 FF FF FF FF FFAuxiliary Governor SwitchTurn on Aux Gov switch18FDCB20x Tx d 8 FD FF FF FF FF FF FF FFTurn off Aux Gov switch18FDCB20x Tx d 8 FC FF FF FF FF FF FF FF
71J1939 Training - Miscellaneous What about J1939/15?J1939/15 is a physical interface which requires only a two wire twisted pair.It is less noise immune than J1939/11We do not recommend this standard, but the module can interface with it.
72J Requested PGNSeveral PGNs are described in AEB as on request.On Request PGNs require another device on the J1939 to ask for the specific PGN.Requesting a PGN is done via PGN 59904The reply to the request is to send out the requested PGN per the definition in J1939/7118EA0000x Tx d 8 E5 FE 00 FF FF FF FF FFNote: PGN is byte swapped!