Not so long ago cars and trucks were rather straightforward. Pretty much everything was mechanical, ignition systems had distributors, fuel systems had carburetors and suspensions had springs and dampers. The speedometer and odometer were driven by a cable that was twisted by a gear in the transmission. On the other hand, modern cars and trucks could not function without without software, and lots of it.

The average car today contains about $2,000 worth of software. Electronic control units and the software they contain manages virtually everything including the engine, transmission, windows, brakes, lights and more. When electronics first starting appearing in cars most of the systems functioned independently of each other. Cars today feature controller area networks that allow the systems to talk to each other and share information. The speedometer is driven by a servo that gets speed information from the controller for the anti-lock brakes. Even the audio systems use speed information from the brake controller to adjust the volume at higher speeds.

All the extra functionality that we have in our cars now means vastly more complex control software and far more interactions. While software used to be put in ROM on older systems, new systems use flash so that they can be updated when problems are discovered and more problems than ever are software related. As we move toward more complex drive-trains and vehicle to vehicle communications in the future even more software will be required.

[Source: MotorAuthority]