From: Kurt Van Dijck <dev.kurt@vandijck-laurijssen.be>
To: John Whitmore <arigead@gmail.com>
Cc: "Menschel.P" <menschel.p@posteo.de>, linux-can@vger.kernel.org
Subject: Re: j1939 (Higher Layer Protocols)
Date: Tue, 10 Nov 2015 11:52:57 +0100 [thread overview]
Message-ID: <20151110105257.GA10664@airbook.eia.lan> (raw)
In-Reply-To: <20151109194823.GA6539@bamboo.electronicsoup>
My contribution inline ...
> >
> > 1.SAE J1939 is on top. Truck and Construction Equipment usage, although
> > US Trucks are mainly J1587 (RS485) with J1708 protocol.
> > 1.1 SAEJ1939 defines its own transport protocol to transmit a PGN longer
> > than 8Bytes.
> > 1.2 Additionally ISO15765 aka "KWP2000 over CAN" defines another
> > transport protocol closely linked to KWP2000(ISO 14230) or the newer
> > UDS(ISO14229).
> > It is basically a wrapper for half-duplex serial communication over CAN.
>
> "Half duplex serial" you could say is all anything built on CAN. Either way
> it's not related to j1939 so it doesn't confuse me. I have my own
> implementation and it's not interfering with anything.
>
> >
> > 2.NMEA2000 is the marine adaption of J1939, agriculture equipment often
> > uses NMEA2000 GPS devices.
> > 2.1 NMEA2000 FAST Packet is another transport protocol for >8Byte
> > messages. I believe that's what you encountered on the boat. I don't
> > know the details.
> >
> > 3.ISOBUS(ISO 11783) is the agriculture adaption of J1939
> > 3.1 Since the devices of the agriculture equipment can be used in
> > multiple combinations, ISOBUS has mechanisms to register new devices to
> > the CAN bus and so on. AFAIK there is no additional transport protocol.
> >
SAE-J1939's transport protocol has been extended by ISO 11783 to support
even bigger packets. This is (both) supported by can-j1939.
SAE-j1939-81 defined dynamic addressing, which is heavily used in
ISO-11783 busses, and I image NMEA2000 will use the same thing when
needed. This is supported by can-j1939.
NMEA2000's fast-packet, as wel as the KWP2000-over-CAN transport are
transport mechanisms that are defined on a per-PGN basis. can-j1939 has
_no_ support for this, i.e. as long as you deliver 8byte pieces to the
kernel, it will work as expected. This means that these transport
mechanisms must be implemented (as for now) in userspace.
As long as the same PGN/SA is not sent from different sockets, no
multiuser problems would occur.
You may already have guessed that I never needed to sent the same PGN/SA
from different sockets yet.
>
> So leaving ISO15765 to one side the other 3 are closely related. Does this
> mean that a Linux implementation of j1939 could be used for my NEMA2000
> requirements?
I guess so.
>
> To be honest I think it's easier for me to look at the ISO-11783 spec and
> reverse engineer the NEMA2000 bits I need. I looked at buying the NEMA2000
> specs but you have to buy them all in a job lot for a lot of money. Can't
> really afford that unfortunately.
The fast-packet thing is really simple, works without flow control.
No worth buying that spec for the transport layers.
You may still need the application level parts, as this is clearly
userspace stuff.
>
> Maybe I could jsut Linux J1939 but that might depend on subtle differences in
> Transport protocol.
Which subtle differences you refer to?
I read SAE-J1939 and ISO11783, and I found no differences.
Can you give an example?
Kurt
next prev parent reply other threads:[~2015-11-10 10:53 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-05 18:08 j1939 (Higher Layer Protocols) John Whitmore
2015-11-05 19:22 ` Menschel.P
2015-11-09 19:48 ` John Whitmore
2015-11-10 10:52 ` Kurt Van Dijck [this message]
2015-11-15 21:59 ` John Whitmore
2015-11-16 13:14 ` Kurt Van Dijck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151110105257.GA10664@airbook.eia.lan \
--to=dev.kurt@vandijck-laurijssen.be \
--cc=arigead@gmail.com \
--cc=linux-can@vger.kernel.org \
--cc=menschel.p@posteo.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.