
In 1969, there was absolutely nothing electronic about a car except for the radio, and that was pure analog circuitry as well. Forty years later the radio alone can have as many as two or three embedded microcontrollers in it. The rest of the car is chock full of microcontrollers. Embedded microcontroller designs are so well done that they quite often perform much better and more reliably than the analog functions they replaced.
There are two sides to embedded microcontroller-based module development in automotive applications. The first aspect to address is the hardware. The microcontroller needs to be protected from the nasty electronic environment automotive electronics engineers all know and love. Microcontrollers are CMOS beasts, inherently susceptible to electrical trash that can enter either through the supply or through the I/O. The automotive electrical environment throws stuff at a module that is not normally seen in, say, a washing machine application. Subduing this electrical environment is not impossible; it just takes thought and money.
Conversely, control modules must also protect the environment from the electromagnetic noise generated by the microcontroller banging all those bits around at such high frequencies. Microcontrollers, being CMOS, have minute current spikes every time a bit changes state. Get enough of these current spikes clocking together and it generates some EMI (electromagnetic interferences) that can interfere with other stuff outside the module (like the radio).
The level of acceptable noise is regulated by module-level EMC standards that must be adhered to. These standards are set up by OEMs to keep modules from interfering with each other. Most module-level noise is generated by the switching of higher current outputs, say, PWM-ing a lamp load, for instance. But noise from a micro can exit the module at any pin because micro noise is both conducted and radiated into the circuit board. To both shunt micro noise and protect against ESD (electrostatic discharge), small (typically 0.01uF) caps are placed at each pin of the connector.
This does an effective job of shunting microcontroller noise as well as suppressing the standard human body model ESD event.
Power supplies used for micros can range from the basic shunt regulator (eg. a resistor, capacitor, and Zener diode, etc) to the complex. Engine controller voltage regulators, for example, can contain a buck regulator, a boost regulator, several linear regulators, low-voltage detectors, and several voltage trackers as well as other higher level functions.
Some circuits that interface with the engine control module microcontroller are off board from the engine control module. In many cases this requires the engine control module to provide buffered or protected supplies to these external modules to keep the main microcontroller stable.
Watchdog circuits keep tabs on the micro in case the code decides to branch off for unknown parts. The simplest form requires that the microcontroller to work within a specific frequency range. If the micro doesn't do this, then the watchdog forces a reset, and things start over.
Watchdogs are really needed in most embedded automotive applications because there is never enough time or ability to test for absolutely everything the code will experience in the vehicle. No code is flawless. The trick is to design modules and write code such that when flaws show up they are undetectable or self correcting.
Embedded microcontrollers use on-board memory to store the program code. Quite often OEMs require it to be Flash memory to keep the code flexible during the product life cycle. Occasionally, stuff shows up that wasn't thought of during the development. As a result, the modules that are already in cars may need reprogramming. Unfortunately, Flash memory has a niggley little problem with dropping bits on occasion. If one bit gets dropped out (goes from a "1" to a "0") in the execution code, anything can happen.