We would like to propose a slight modification to the UAVCAN specification that would allow it to work over CAN-FD:
Figure 1 – Elimination of the Tail-Array Optimization (TAO) for DLCs Greater-Than Eight
In the UAVCAN specification, section » 3.0 Data Structure Description Language » Data serialization » Serialized data format » Dynamic Arrays, we propose the following change (lines added indicated by the +++, all other lines are existing and provided for context)
The transport layer provides a data length for every received data transfer (with an 8-bit resolution); thus, in some
cases, the array length information would be redundant as it can be inferred from the overall transfer length reported
by the transport layer. Elimination of the dynamic array length field is called tail array optimization, and it can be
done if all the conditions below are satisfied:
1. The minimum bit length of an item type is not less than 8 bits - because the transport layer reports the transfer
length with an 8-bit resolution.
2. The array is the last field in the top-level data structure - because, otherwise, a much more complicated logic
would be required to derive the length.
+++ 3. The array does not run past the 7th byte in the message - because dlc values greater-than 8 do not have an 8-bit resolution.
We believe this one change would allow the standard to work without further modifications on a CAN-FD bus. We furthermore expect this change to be backwards compatible for CAN 2.0 busses.
Please let us know if this googlegroup is an appropriate and adequate means to request a modification to the core standard.
Sincerely,
- Scott A Dixon
+++ 3. The array start nor the maximum end (start + max-length) run past the 7th byte in a frame - because dlc values
greater-than 8 do not have an 8-bit resolution.
--
You received this message because you are subscribed to the Google Groups "UAVCAN" group.
To unsubscribe from this group and stop receiving emails from it, send an email to uavcan+unsubscribe@googlegroups.com.
To post to this group, send email to uav...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/uavcan/17532341-422d-4c82-98e1-5b8b795265ba%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to uavcan+un...@googlegroups.com.
To post to this group, send email to uav...@googlegroups.com.
An additional problem that falls out of using FD-frames is where to put the tail byte. We'd like to propose that the standard require the tail byte to be on a DLC boundary for FD messages. For example (see image) for a 9-byte message the tail byte would be located in the 11th byte (i.e. DLC=12) with the 9th and 10th bytes being ignored; similarly, for a 50 byte message the tail byte would be the 63rd byte (i.e. DLC=64) with the 50th - 62nd bytes being ignored; etc.
We also propose that the standard specify: unused bytes in FD messages are ignored. Implementations can put any data pattern in these bytes without breaking compatibility with any other UAVCAN implementation.
To unsubscribe from this group and stop receiving emails from it, send an email to uavcan+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/uavcan/d02fc755-8183-4167-aa0c-1e8f4307b78a%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/uavcan/14e4e48e-1e66-42f2-8b51-202a77fd4406%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/uavcan/CAD6GmdARUeRKMNCzWmWdEquTNoF8KSjJdS2AyTMOZu__Qai_XA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/uavcan/165d518c-7307-4e32-bf6b-356717991beb%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/uavcan/db7707c0-ee45-4011-ab4f-88272ab56079%40googlegroups.com.
Just to be clear, this means after data and padding bytes, right?
To view this discussion on the web visit https://groups.google.com/d/msgid/uavcan/acdd0c41-1024-4877-8633-747f4d0af0de%40googlegroups.com.
...
To view this discussion on the web visit https://groups.google.com/d/msgid/uavcan/21aed668-9e92-43c3-b0ab-e38f1aa5e345%40googlegroups.com.