Automotive Ethernet#
Many modern ECUs use Automotive Ethernet instead of CAN.
Automotive Ethernet uses the 100BASE-T1 (also known as the BroadR-Reach) and 1000BASE-T1 specifications which allow for 100mb/s and 1000mb/s full duplex communication over two wires (a single twisted pair, similar to CAN).
It is important to not confuse Aumototive Ethernet with the normal 4-wire 100BASE-T Ethernet, which is found on some gateway ECUs directly connected to the OBD connector, and is used to connect a repair shop tester to the gateway ECU. On the contrary, Automotive Ethernet is not exposed on the OBD connector and is used to create a fast link between two ECUs.
In the 100BASE-T1 and 1000BASE-T1 protocols, only two devices (a master and a slave) are allowed on each link. However, the slower 10BASE-T1 specification supports multiple devices on the same twisted pair, similar to a CAN bus.
An example of a typical UTP interface circuitry/schematic for 1000BASE-T1, IEEE 1000BASE-T1 System Implementation Specification SIG 2024
Automotive ethernet interfaces can be recognized on the hardware from the presence of common mode chokes (similar to CAN) and capacitors in series with each of the two wires. Two 1k resistors in series are often found connecting the two pins of an automotive ethernet pair.
Automotive ethernet connections
There is no standardized connector for automotive ethernet. Most ECUs use normal pins in their cable harness, but some use specialized connectors such as the MATEnet.
To connect to a Automotive Ethernet network, an ECU needs a processor with a normal Ethernet MAC (for example, the MPC5748G has an RMII internet interface) and an Automotive Ethernet PHY, such as TJA1100 or BCM89881.
Instead of a single PHY, gateway ECUs typically use Automotive Ethernet switches, such as the BCM89501. This allows a single ECU to connect to have multiple Automotive Ethernet links (one link is required for every ECU connected to the gateway).
Automotive Ethernet links have a master/slave topology, meaning that one node is configured as a master and one as slave. During the link establishment, the master node sends a sequence of idle symbols in the “(https://www.teledynelecroy.com/doc/100base-t1-ethernet-appnote)[SEND_I]” state, which can be used to recognize, with an oscilloscope, if an ECU is set as a master.
Interfacing with Automotive Ethernet ECUs#
There are 3 options to connect a common PC to an Automotive Ethernet network:
USB to 100/1000BASE-T1 interfaces#
Devices like the Dissecto Hydralink can be used to connect PCs directly to Automotive Ethernet ECUs. These devices consist of a standard Ethernet MAC connected to an Automotive Ethernet PHY. From the perspective of the operating system, these appear as a standard Ethernet network interface, and the additional registers used to configure automotive ethernet parameters (such as master/slave modes) can be accessed using the appropriate driver.
Media Converters#
Media converters can be used to seamlessly connect a 100/1000BASE-T link to a 100/1000BASE-T1 link. This way the PC only needs a standard ethernet interface and cable. The automotive ethernet parameters are configured through dip-switches, and the media converter requires its own power supply.
Using a gateway ECU#
If the gateway ECU of the car has standard ethernet, it can sometimes be used as a replacement for a 100BASE-T1 media converter, but this depends on the configuration of the gateway and on which filtering it operates on the packets.
Quirks of Automotive Ethernet ECUs#
An ECU network inside a car has many differences when compared to a normal computer network. Because the ECUs inside a car are fixed and don’t change over time, there is no need for many of the convenience protocols used for automatically configuring computer networks such as DHCP, ARP
No autonegotiation#
While the 100/1000BASE-T1 protocols do support autonegotiation of speed and master, ECUs are typically configured to have a single operating mode (such as 100BASE-T1 master mode) and do not support autonegotiation, regardless of wether the PHY on the other side of the link does. For this reason, it is important to know what is the configuration of the ECU that one is trying to connect to.
No ARP#
Some ECUs do not implement the ARP protocol. This means that they already know the association of the MAC addresses and IP addresses of the other ECUs in the car. Because of this, when connecting to these ECUs, it will be necessary to manually create ARP entries on the ARP table of the PC that is trying to connect to an ECU.
VLANs#
VLANs are sometimes used for transparent separation of different domains of the car. For example, this is found in cars from the Volkswagen group. When connecting to ECUs that make use of VLANs, use wireshark to see which VLAN is used, and make sure your operating system is configured to send and receive messages in the right VLAN.
IPv6#
Many ECUs of the Volkswagen group do not have an IPv4 implementation at all, and only use IPv6 for communication between ECUs.
No link retries#
Some ECUs only attempt to connect automotive ethernet on startup and, if no link is detected, will stop trying to bring up a link. For this reason, it is necessary to connect an interface to the desired pair before turning on the ECU.