Re: [PATCH v2 2/4] can: fixed-transceiver: Add documentation for CAN fixed transceiver bindings
From: Oliver Hartkopp <socketcan@hartkopp.net>
Date: 2017-07-28 18:34:04
Also in:
linux-can, linux-devicetree, lkml
Hi Kurt, On 07/28/2017 03:02 PM, Kurt Van Dijck wrote:
quoted
quoted
The word 'max-arbitration-bitrate' makes the difference very clear.I think you are mixing up ISO layer 1 and ISO layer 2.In order to provide higher data throughput without putting extra limits on transceiver & wire, the requirement for the round-trip delay to be within 1 bittime has been eliminated, but only for the data phase when arbitration is over. So layer 2 (CAN FD) has been adapted to circumvent the layer 1 (transceiver + wire) limitations. In fact, the round-trip delay requirement never actually did matter for plain CAN during data bits either. CAN FD just makes use of that, but is therefore incompatible on the wire. I forgot the precise wording, but this is the principle that Bosch explained on the CAN conference in Nurnberg several years ago, or at least this is how I remembered it :-)
I just checked an example for a CAN FD qualified transceiver http://www.nxp.com/products/automotive-products/energy-power-management/can-transceivers/high-speed-can-transceiver-with-standby-mode:TJA1044 where it states: The TJA1044T is specified for data rates up to 1 Mbit/s. Pending the release of ISO11898-2:2016 including CAN FD and SAE-J2284-4/5, additional timing parameters defining loop delay symmetry are specified for the TJA1044GT and TJA1044GTK. This implementation enables reliable communication in the CAN FD fast phase at data rates up to 5 Mbit/s. and TJA1044GT/TJA1044GTK - Timing guaranteed for data rates up to 5 Mbit/s - Improved TXD to RXD propagation delay of 210 ns
I haven't followed the developments of transceivers, but with the above principle in mind, it's obvious that any transceiver allows higher bitrates during the data segment because the TX-to-RX line delay must not scale with the bitrate. In reality, maybe not all transceivers will mention this in their datasheet. So whether you call it 'max-arbitration-bitrate' & 'max-data-bitrate' or 'max-bitrate' & 'max-data-bitrate' does not really matter (I prefer 1st) but you will one day need 2 bitrates.
The question to me is whether it is right option to specify two bitrates OR to specify one maximum bitrate and provide a property that a CAN FD capable propagation delay is available. E.g. max-bitrate max-data-bitrate or max-bitrate canfd-capable // CAN FD capable propagation delay available I assume the optimized propagation delay is 'always on' as the transceiver is not able to detect which kind of bits it is processing. That's why I think providing two bitrates leads to a wrong view on the transceiver. Regards, Oliver