Consider the following set of words: microprocessor, microcontroller, processor, digital signal processor, mixed signal processor. In one sense, they are all the same thing - an ASIC that fetches and executes instructions based on input from some user program. These devices do not have a fixed function, but rather are controlled by software. Each of them share certain architecural features that have been developed since Intel created the first "microprocessor" in 1971.
In the three decades since the invention of the first microprocessor, there has been tremendous development and innovation in this field of engineering. Each of the terms used at the start of this section are correct names for a microprocessor, but they all have different application spaces and fetures. This still leaves us with the question, "What is a microcontroller?"
In truth, this is a bit difficut to pin down, due to the ever-evolving nature of the semiconductor industry. Consider that what we would call today's average microcontroller is oders of magnitude more powerful than the computer used in the Apollo Lunar Module . We can make some generalizations, however, that can help us characterize a microcontroller. Typically, these devices reside at what is the "low-end" of computing. This does not, however, mean that microcontrollers are useless. For embedded systems design, microcontrollers are usually an ideal choice. The following list shows some qualities that define all microprocessors, along with how they specifically define microcontrollers.
- Cost : The cost of the part. Microcontrollers are usually very cheap, sometimes even less than $1 each.
- Speed : The frequency (speed) of the system clock, often stated in megahertz (MHz) or gigahertz (GHz). Microcontrollers are typically slow, less than 20MHz.
- Power : The power dissapation of a system, measured in Watts . Microcontrollers are almost always "low-power."
- Bits : This usually means the number of bits that can be processed at one time by each instruction (e.g. 8-bit, 16-bit, 32-bit, etc...). Microcontrollers are almost always 8-bit or maybe 16-bit devices.
- Memory : Most processors have some amount of storage on the device for data and program instructions. In computing systems, memory is often hierarchical, so on-chip memory can serve different purposes. Microcontrollers typically have a limited amount of memory, less than 1MByte total.
- Input/Output (I/O) : All processors have some means of getting data in and out of the chip. In the physical sense, this relates to metal pins on the part package which are used to connect to other circuitry in the system. Microcontrollers usually have just a few I/O pins, as few as 8 or as many as 100. Larger processors, such as the ones founds in a typical PC, will typically have hundreds of pins.
Some common processor charateristics
Texas instruments msp430f169 16-bit microcontroller
As a last excercise, it is useful to compare different types of processors to see the tremendous amount of variety available. The following table shows a selection of modern processors and some numbers related to the features listed above. It is clear that there are tradeoffs to be made in choosing the right part for the design at hand, and part of being a good engineer is being able to do this well.
Processor | Manufacturer | Cost | Speed | Power | Bits | On-Chip Memory | Off-Chip Memory | Package Pins |
---|---|---|---|---|---|---|---|---|
MSP430F169 | Texas Instruments | $1 - $10 | 8 MHz | ~5 mW | 16-bit | 1 - 62 KByte | N/A | 20-100 |
Pentium II | Intel | ~$65 | 333 MHz | ~25 W | 32-bit | 548 KByte | 4 GByte | 615 |
TMS320C6416 | Texas Instruments | ~$300 | 700 MHz | ~1.5 W | 16/32-bit | 1 MByte | 1.28 GByte | 532 |
PowerPC 970 | IBM | N/A | 1.8 GHz | ~42 W | 64-bit | 608 KByte | 8 GByte | 576 |