Questions tagged [j1939]

CAN bus standard SAE J1939 is the recommended practice used for communication and diagnostics among vehicle components. Originating in the car and heavy-duty truck industry in the United States, it is now widely used in other parts of the world.

From the Wikipedia page on SAE J1939:

SAE J1939 defines five layers in the seven-layer OSI network model, and this includes the Controller Area Network (CAN) ISO 11898 specification (using only the 29-bit/"extended" identifier) for the physical and data-link layers. Under J1939/11 and J1939/15, the data rate is specified as 250 kbit/s, with J1939/14 specifying 500 kbit/s. The session and presentation layers are not part of the specification. The later use of CAN FD is currently discussed.

All J1939 packets, except for the request packet, contain eight bytes of data and a standard header which contains an index called Parameter Group Number (PGN), which is embedded in the message's 29-bit identifier. A PGN identifies a message's function and associated data. J1939 attempts to define standard PGNs to encompass a wide range of automotive, agricultural, marine and off-road vehicle purposes. A range of PGNs (00FF0016 through 00FFFF16, inclusive) is reserved for proprietary use. PGNs define the data which is made up of a variable number of Suspect Parameter Number (SPN) elements defined for unique data.

48 questions
1
vote
1 answer

How to intercept J1939 CAN messages?

I'm building a HIL/SIL test with Simulink, which tests the Vehicle Control Unit(VCU) from a vehicle. This VCU talks with a Power Distribution Module(PDM) over a J1939 CAN network. The PDM handles the in- and outputs from switches and to actuators…
Bart
  • 261
  • 3
  • 14
1
vote
0 answers

Dump of BAMs (Broadcast Announcement Message) with canutils

Good morning, I'm a embedded linux developer and I'm trying to dump J1939 CAN sentences on a iMX6 based board. I tried saving RAW canbus messages on a file using the command candump can0 -L > /tmp/fms_canbus and everything works fine with NON…
Giox79
  • 124
  • 11
1
vote
2 answers

Convert string to bytes

I have a J1939 CAN raw string in the following format: CAN:0B00FEE99CF002000CEF02000B00FEE81A9A9F60FFFFB8570B00FEE042522500425225000B00FEE5E0530100C89F0400 This string contains a few CAN messages that are broken up into 3 parts, for example 0B…
Ko Ga
  • 856
  • 15
  • 25
1
vote
1 answer

What manufacturer code must I use in J1939?

I'm developing a product connected to a CAN bus with the J1939 protocol. In address claiming process, it is supposed to be mandatory to send the NAME of my product, which includes, among other data, a manufacturer code. This manufacturer code is 11…
naggety
  • 166
  • 1
  • 10
1
vote
1 answer

SAE J1939 Standards Collection -- How much is necessary?

I'm developing an application that will be communicating with a vehicle via J1939. My plan is to purchase a J1939 stack, so I'm reasonably certain that I won't need to get the standards for the Physical Layer or the Data Link Layer, but I'd like to…
Brian
  • 53
  • 5
0
votes
0 answers

How to make extract_bus_logging in asammdf decode raw can data of length longer than 8?

I have an MF4 file with raw can data and want to decode this to get the physical values. It seems like the decoding of all signals with length 8 (as defined in the dbc file) is working as expected. However, I have a segment in the dbc file that…
0
votes
0 answers

Why are two CAN-TP messages with the same source address not transmitting simultaneously?

Unable to gateway two CAN-TP messages of same source address from one channel to another at the same time I was trying to gateway two CAN-TP messages which have the same source address from channel 1 to channel 2. Message 1 is a diagnostic message,…
jo3932
  • 1
0
votes
2 answers

Can you differentiate J1939 from UDS from an unknown message on CANbus

I'm working on a CAN sniffer/logger for and will connect to ECUs that may send out CANopen, J1939 or UDS. Most often two or even all of them in one session (For what I have understood this is not recommended but this is the case). I know CANopen…
Svalan
  • 33
  • 4
0
votes
0 answers

Can the default priority be changed in J1939 from SAE?

As per SAE document for J1939 the default priority is specified but can the default priority be changed. Will it have any impact if the default priority is changed?
0
votes
0 answers

Is there a J1939 PGN for a load bank

I am designing an HMI for a diesel generator set that uses J1939. This generator set has a load bank that is operated by a PLC. I want to have the PLC put the load bank status onto the J1939 bus. I'm looking through J1939 but I can't find a PGN for…
Matt
  • 31
  • 1
  • 3
0
votes
0 answers

Asammdf GUI not recognizing ID column as IDs (for CAN/J1939 IDs)

I'm trying to load this MF4 (MDF) file into asammdf GUI to extract its signals. The MF4 was created with Python using J1939 data extracted from a vehicle. The MF4 loads correctly into asammdf GUI, and in the Bus Logging tab I've loaded a DBC…
0
votes
0 answers

Can connection abort in J1939 for any request be destination specific?

When any one requests to vehicle with PGN 0xEA00 in J1939 what are the possible reason for connection abort 0x255 in connection manager? And will this connection manager be destination specific? -> Detailed reason for COnnection abort -> If…
0
votes
1 answer

Timing range from request to response in J1939

Generally a request is sent via 0xEB00 and response is capured by 0xEC00 (Response more than 8 bytes) in J1939,what is the range for the response from request? Example:- 0.00 - 0xEB00 - EC FE 00 xx.xx - 0xEC00 - xx xx xx xx xx EC FE 00. What can be…
0
votes
1 answer

Questions about addresses in SAE J1939 bus

I am developing a program to read and request parameters from a bus with J1939. I know that in order to request PGNs I need to have an address, which is claimed in the address claim procedure. I have some questions about this. First, do the node…
0
votes
1 answer

Looking for an example of a OBD-II complete data frame

I'm developing an OBD-II reader where I want to query requests to read PID parameters with a stm32 processor. I already understand what should go on the data field, but the ID is giving me a headache. As I have read, one must send 0x7DF to broadcast…