Lines Matching full:can
11 for diagnostic communication on CAN. It is widely used in the automotive
15 ISO-TP can be used both on CAN CC (aka Classical CAN) and CAN FD (CAN with
17 CAN network using SAE J1939 as data link layer (however, this is not a
38 Three different addressing formats can be employed:
40 * "normal" : each address is represented simply by a CAN ID.
42 * "extended": each address is represented by a CAN ID plus the first byte of
43 the CAN payload; both the CAN ID and the byte inside the payload shall be
46 * "mixed": each address is represented by a CAN ID plus the first byte of
47 the CAN payload; the CAN ID is different between two addresses, but the
53 When transmitting data using the ISO-TP protocol, the payload can either fit
54 inside one single CAN message or not, also considering the overhead the protocol
60 data block (``blocksize``) and the minimum time between the single CAN messages
70 As with others CAN protocols, the ISO-TP stack support is built into the
71 Linux network subsystem for the CAN bus, aka. Linux-CAN or SocketCAN, and
77 To use the ISO-TP stack, ``#include <linux/can/isotp.h>`` shall be used. A
78 socket can then be created using the ``PF_CAN`` protocol family, the
87 bind the socket to the desired CAN interface; to do so:
89 * a TX CAN ID shall be specified as part of the sockaddr supplied to the call
92 * a RX CAN ID shall also be specified, unless broadcast flags have been set
95 Once bound to an interface, the socket can be read from and written to using
103 of the data payload exceeds the MTU of the underlying CAN bus).
122 * ``can_addr.tp.rx_id`` specifies the receive (RX) CAN ID and will be used as
125 * ``can_addr.tp.tx_id`` specifies the transmit (TX) CAN ID
130 When creating an ISO-TP socket, reasonable defaults are set. Some options can
136 General socket options can be passed using the ``CAN_ISOTP_OPTS`` optname:
181 (that is, transport mechanism can only be incoming or outgoing at the same
226 Flow Control (FC) options can be passed using the ``CAN_ISOTP_RECV_FC`` optname
246 * ``stmin``: minimum separation time provided in flow control frames; can
258 Link Layer (LL) options can be passed using the ``CAN_ISOTP_LL_OPTS`` optname:
275 * ``mtu``: generated and accepted CAN frame type, can be equal to ``CAN_MTU``
276 for classical CAN frames or ``CANFD_MTU`` for CAN FD frames.
278 * ``tx_dl``: maximum payload length for transmitted frames, can have one value
279 among: 8, 12, 16, 20, 24, 32, 48, 64. Values above 8 only apply to CAN FD
283 Only applies to CAN FD traffic (i.e.: ``mtu = CANFD_MTU``).
288 The transmission minimum separation time (stmin) can be forced using the
301 The reception minimum separation time (stmin) can be forced using the
324 * no support is present for sending "wait frames": whether a PDU can be fully
379 /* Data can now be received using read(s, ...) and sent using write(s, ...) */
384 More complete (and complex) examples can be found inside the ``isotp*`` userland
385 tools, distributed as part of the ``can-utils`` utilities at:
386 https://github.com/linux-can/can-utils