The harness(es) plugged into a modern ECU generally provide:
- power (battery voltage)
- data (CAN to rest of vehicle)
- data (potentially high-bandwidth like MOST, etc.)
- sensory inputs for that ECU's function (i.e. O2 sensors, etc.)
- actuator outputs for that ECU's function (i.e. motor outputs, etc.)
CAN is generally implemented by the MCU inside the ECU + a CAN transceiver IC. The most popular MCUs for use in automotive have 1-2 CAN controllers available as a peripheral on the MCU. Sensory inputs are conditioned and fed into the ECU (may be analog, may be digital, could be LIN, etc.). Acutator outputs (say a motor for door locks or similar) are driven by the MCU through some output stage and fed to a connector.
Any other sideband signals required for that ECU's function will also be present on the connectors.