Commit b7d3c0e5 authored by Yegor Yefremov's avatar Yegor Yefremov Committed by Marc Kleine-Budde

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: default avatarYegor Yefremov <yegorslists@googlemail.com>
Link: https://lore.kernel.org/r/20201104155730.25196-1-yegorslists@googlemail.com
[mkl: removed trailing whitespace]
Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent 4082c502
...@@ -69,18 +69,56 @@ J1939 concepts ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment