Homepage GitHub

Automotive COTS L3 Ethernet router with IGMP and TSN support

There is no such thing out there, is there?

The best I could find is a die-hard DIY option based on an L2 switch IC like Microchip’s KSZ8567 (or similar) or NXP’s SJA1105 family. Being L2 devices, they are unable to manage IGMP (or any other protocol for that matter) at L3 and above (makes sense).

KSZ8567, for instance, captures IGMP packets and forwards them to the host port, where there is expected to be a computing device (an MCU perhaps) responsible for managing the IGMP state machine at L3. SJA1105 doesn’t really mention IGMP in its documentation at all, which is also fair for an L2 solution.

I am perhaps missing something here, so any tips would be welcome.

Not sure how IGMP works with the TSN suite but if you are interested in how bandwidth allocation is handled take a look at 802.1Qcc-2018

I came across this chip from Broadcom. The BCM8956X appears to cover your requirements.

Interesting. At a first glance it seems rather similar to the Microchip option, but it’s hard to tell. I filled out the info request form to give it a closer look.

I don’t expect TSN and IGMP to manage the same traffic, these are independent requirements.

I’ve been looking at AVB/TSN since you first mentioned it a rather long time ago and I wish we could dedicate some attention to it. Recent advances on the Ethernet side of things in UAV might create a good opportunity to prioritize this.

Perhaps we can ask @iain.galloway to donate a couple SJA1110 eval kits to the UAVCAN effort?

Similarly, if there’s anyone that is willing to do actual UAVCAN v1 experiments using 802.3cg I’d be willing to buy the dev kits for that.

1 Like

“IEEE AVB protocol stack (IEEE 802.1AS Time Synchronization and IEEE 802.1Qat SRP)” is pretty thin information. Some of the most interesting parts of the TSN standards are as new as 2020 (e.g. 802.1AS-2020 supporting redundant gPTP time domains) so you have to dive deep into these parts to see what they really mean by “AVB” or “TSN”. Anything that is older than 2018 is probably missing critical features for high-criticality networks.

These standards started to support audio and video but it wasn’t until the 2012 renaming and refocus of the AVB task force that reliability was properly considered (i.e. audio and video care about timing but not as much about reliability at the level that, say, a drive-by-wire system cares)

What would be the scenario over Ethernet? Would it be UAVCAN packets over Ethernet, or MAVLINK packets? I see numerous CAN to Ethernet bridges too. Will this require adding a TCP/IP stack to Ardupilot? Is it just CAN over Ethernet?

There are two configurations using Ethernet that are interesting.

  1. UC1/UDP/TSN is a good, light-weight replacement for systems that would otherwise consider DDS.
  2. UC1/UDP/[CAN OR 802.3cg] is a really compelling story for both heterogenous redundancy (aka “dissimilarity”) and as a migration strategy for automotive systems that are evolving away from CAN and towards automotive ethernet.

For all these cases UC1 provides a stable application layer on the network allowing the platform to evolve independently. Basically, this is what I think the future could look like:

UC1-tsn

1 Like

This is very sensible but I would prefer to avoid making TSN a hard requirement to avoid losing a significant portion of non-critical/soft-real-time/experimental systems that can tolerate the conventional IGMP multicast. So far I don’t see any problem with making the transport compatible with either TSN or traditional multicast by means of a simple switch without altering the UDP packet format.

This is not really related to CAN at all (and certainly not related to MAVLink which is a separate application-layer protocol). You may be missing this context:

TCP/IP is currently not leveraged by UAVCAN and there are no plans to change that at the moment.

I understand. I just looked to see if I could use a Matek H743 board, but all of the RMII ports are tied up.

1 Like

@pavel.kirienko there will be a development board out soon with 50x80mm size based on NXP’s SJA1110 havin 6 100base-T1 (automotive 2 wire ethernet) , one 100base-TX on RJ45 and one 1000base-TX on a iX connector.

I’m using it on all of my test drones to connect the FMUK66 to the NavQ companion as well as to the T1 802.11p D2X data modem since a while.

1 Like

Cool. Should we expect native support of 802.1Qcc as well?

@pavel.kirienko
The SJA1110 EVB likely supports this type of development.
Once software is arranged and tested, it could be moved to the MR-T1ETH8 application example board that @dk7xe.g mentioned.

https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/wired-communications-middleware-for-nxp-microcontrollers:WIRED-COMM-MIDDLEWARE#avb-tsn

The TSN package provides:

  • gPTP stack (IEEE 802.1AS-2011)
  • Enhancements for scheduled traffic API’s (IEEE 802.1Q-2018, section 8.6.8.4)
  • Frame preemption API’s (IEEE 802.1Qbu-2016 and IEEE 802.3br-2016)
  • Multiple VLAN reservation protocol (MVRP) stack (IEEE 802.1Q-2018, section 11)
  • Stream reservation protocol (SRP) stack (IEEE 802.1Q-2018, section 35)
  • Layer 2 socket API
  • gPTP based clock and timer API’s
  • OS abstraction layer
1 Like

This is the MR-T1ETH8 board using the SJA1110 the NXP Mobile Robotics team is preparing. 6x T1, 1x Gigabit on IX Industrial connector, 1x 100BaseT on RJ45, Secure element on board with NFC for potential provisioning keys into a system.

It is fully built and tested, just need to get it through the process to have it available to sell.
image

2 Likes