mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-28 17:41:50 +00:00
can: j1939: add tables for the CAN identifier and its fields
Use table markup to show the structure of the CAN identifier, PGN, PDU1, and PDU2 formats. Also add introductory sentence. Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com> Link: https://lore.kernel.org/r/20201104155730.25196-1-yegorslists@googlemail.com [mkl: removed trailing whitespace] Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
parent
4082c502bf
commit
b7d3c0e593
1 changed files with 42 additions and 4 deletions
|
@ -69,18 +69,56 @@ J1939 concepts
|
||||||
PGN
|
PGN
|
||||||
---
|
---
|
||||||
|
|
||||||
|
The J1939 protocol uses the 29-bit CAN identifier with the following structure:
|
||||||
|
|
||||||
|
============ ============== ====================
|
||||||
|
29 bit CAN-ID
|
||||||
|
--------------------------------------------------
|
||||||
|
Bit positions within the CAN-ID
|
||||||
|
--------------------------------------------------
|
||||||
|
28 ... 26 25 ... 8 7 ... 0
|
||||||
|
============ ============== ====================
|
||||||
|
Priority PGN SA (Source Address)
|
||||||
|
============ ============== ====================
|
||||||
|
|
||||||
The PGN (Parameter Group Number) is a number to identify a packet. The PGN
|
The PGN (Parameter Group Number) is a number to identify a packet. The PGN
|
||||||
is composed as follows:
|
is composed as follows:
|
||||||
1 bit : Reserved Bit
|
|
||||||
1 bit : Data Page
|
============ ============== ================= =================
|
||||||
8 bits : PF (PDU Format)
|
PGN
|
||||||
8 bits : PS (PDU Specific)
|
------------------------------------------------------------------
|
||||||
|
Bit positions within the CAN-ID
|
||||||
|
------------------------------------------------------------------
|
||||||
|
25 24 23 ... 16 15 ... 8
|
||||||
|
============ ============== ================= =================
|
||||||
|
R (Reserved) DP (Data Page) PF (PDU Format) PS (PDU Specific)
|
||||||
|
============ ============== ================= =================
|
||||||
|
|
||||||
In J1939-21 distinction is made between PDU1 format (where PF < 240) and PDU2
|
In J1939-21 distinction is made between PDU1 format (where PF < 240) and PDU2
|
||||||
format (where PF >= 240). Furthermore, when using the PDU2 format, the PS-field
|
format (where PF >= 240). Furthermore, when using the PDU2 format, the PS-field
|
||||||
contains a so-called Group Extension, which is part of the PGN. When using PDU2
|
contains a so-called Group Extension, which is part of the PGN. When using PDU2
|
||||||
format, the Group Extension is set in the PS-field.
|
format, the Group Extension is set in the PS-field.
|
||||||
|
|
||||||
|
============== ========================
|
||||||
|
PDU1 Format (specific) (peer to peer)
|
||||||
|
----------------------------------------
|
||||||
|
Bit positions within the CAN-ID
|
||||||
|
----------------------------------------
|
||||||
|
23 ... 16 15 ... 8
|
||||||
|
============== ========================
|
||||||
|
00h ... EFh DA (Destination address)
|
||||||
|
============== ========================
|
||||||
|
|
||||||
|
============== ========================
|
||||||
|
PDU2 Format (global) (broadcast)
|
||||||
|
----------------------------------------
|
||||||
|
Bit positions within the CAN-ID
|
||||||
|
----------------------------------------
|
||||||
|
23 ... 16 15 ... 8
|
||||||
|
============== ========================
|
||||||
|
F0h ... FFh GE (Group Extenstion)
|
||||||
|
============== ========================
|
||||||
|
|
||||||
On the other hand, when using PDU1 format, the PS-field contains a so-called
|
On the other hand, when using PDU1 format, the PS-field contains a so-called
|
||||||
Destination Address, which is _not_ part of the PGN. When communicating a PGN
|
Destination Address, which is _not_ part of the PGN. When communicating a PGN
|
||||||
from user space to kernel (or vice versa) and PDU2 format is used, the PS-field
|
from user space to kernel (or vice versa) and PDU2 format is used, the PS-field
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue