0
\$\begingroup\$

Can anyone tell me what the difference between these two sets of CAN Bus messages? This is from the manual of a Power Drive Unit (PDU) in the Cargo Handling System of a 747F (UPS Freight). This is the only place where the instructions are written as shown in #2. Additionally, Request #2 is the only request I can’t seem to get the intended response or result.

#1. Transmit the PDU Request Message on the CAN Bus as follows:

Arbitration ID: C5A005E  
Data (0-7): 0x 00 00 10 00 00 00 00 00

#2: Transmit the PDU Request Message on the CAN Bus as follows:

Arbitration ID: C5A005E  
Byte 7 through 3: 0x00  
Byte 2: 0×40  
Byte 1: 0x00  
Byte 0: 0×40 

NOTE: Sorry to anyone who cant view images

The following is a screenshot of the instructions for the initial Request for the programmed Part Number. In this step, The PDU responds as intended, with the Part Number, with one exception... the Identifier starts at "00" rather than "01".
Example Response: for PN 4345562

00 34 33 34 35 35 36 32  
01 00 00 00 00 00 00 00  
02 00 00 00 00 00 00 00

enter image description here

Next page: instructions to program the Part Number to the EEPROM, if the recalled PN is not correct. enter image description here

My main question is, what would the reasoning be for writing it as:

Byte 7 through 3: 0x00
Byte 2: 0×40
Byte 1: 0x00
Byte 0: 0×40

-vs-

0x 00 00 10 00 00 00 00 00

UPDATE: CAN messages are transmitted in Little Endian Format.

\$\endgroup\$
13
  • \$\begingroup\$ Data (0-7) implies that the first message starts with byte 0 ... please do not post pictures of text ... doing so exudes people that cannot view pictures \$\endgroup\$
    – jsotola
    Commented Jun 14, 2023 at 20:22
  • \$\begingroup\$ Is this really CANopen? The term "PDU" is from J1939. CANopen has the term PDO. 29 bit identifiers also smells like J1939. \$\endgroup\$
    – Lundin
    Commented Jun 15, 2023 at 6:22
  • \$\begingroup\$ This certainly isn't CANopen. The CANopen CAN-IDs with function code 0 are limited to: 0 (NMT), 1 (global failsafe command), 0x71-0x76 (flying master) and 0x7F (indicate active master). \$\endgroup\$
    – Velvet
    Commented Jun 15, 2023 at 6:45
  • \$\begingroup\$ @Lundin PDU = Power Drive Unit \$\endgroup\$
    – joel cox
    Commented Jun 16, 2023 at 3:56
  • \$\begingroup\$ @joelcox No, it does not mean that in the context of CAN buses. It means Protocol Data Unit, an established term in the J1939 protocol. Best to stay clear of 3 letter abbreviations entirely. \$\endgroup\$
    – Lundin
    Commented Jun 16, 2023 at 6:31

1 Answer 1

1
\$\begingroup\$

It isn't super obvious if the data part of the CAN frame is enumerated as per "first received: byte 0" or as per "first received: byte 7". I don't think the CAN spec is clear here either, so they basically left all implementors of CAN to follow their own whims.

Since the amount of bytes can vary from 0 to 8, it would make sense to enumerate them with byte 0 starting first and "Data (0-7)" implies this too. But I've seen lots of documentation naming the first byte 7 as well.

Conclusion: there is no telling what to do based on the information you are given. The result could either be
40 00 40 00 00 00 00 00 or
00 00 00 00 00 40 00 40
Ask for better documentation.

\$\endgroup\$
3
  • \$\begingroup\$ That actually makes more sense now… there is a note under a different set of 3 EEPROM messages that says “messages shown byte 7 through 0” which I assumed was only referring to those 3, since it base the message identifier “01, 02, 03” after byte 7. I will try this forth thing in the AM and will let you know. \$\endgroup\$
    – joel cox
    Commented Jun 16, 2023 at 4:03
  • \$\begingroup\$ adding a couple images. \$\endgroup\$
    – joel cox
    Commented Jun 16, 2023 at 13:23
  • \$\begingroup\$ I found out that messages are transmitted in Little Endian? \$\endgroup\$
    – joel cox
    Commented Jun 21, 2023 at 16:07

Not the answer you're looking for? Browse other questions tagged or ask your own question.