Microcontrollers for embedded systems

Microprocessors and microcontrollers are widely used in embedded system products. An embedded system is controlled by its own internal microprocessor (or microcontroller) as opposed to an external controller. Typically. in an embedded system, the microcontroller's ROM is burned with a purpose for specific functions needed for the system. A printer is an example Of an embedded system because the processor inside it performs one task only; namely, getting the data and printing it. Contrast this with a Pentium-based PC (or any x86 PC), which can be used for any number of applications Such as word processor, print server, bank teller terminal, video game player, network server, or Internet terminal. A PC can also load and run software for a variety Of applications. Of course. the reason a PC can perform myriad tasks is that it has RAM memory and an operating system that loads the application software into RAM and lets the CPU run it. In an embedded system, typically only one application software is burned into ROM. An x86 PC contains or is connected to various embedded products such as the keyboard, print- er, modem, disk controller, sound card, CD-ROM driver, mouse, and so on. Each one of these peripherals has a microcontroller inside it that performs only one task. For example, inside every mouse a microcontroller performs the task of finding the mouse 's position and sending it to the PC.

x86 PC embedded applications

Although microcontrollers are the preferred choice for many embedded systems, sometimes a microcontroller is inadequate for the task. For this reason, in recent years many manufacturers of general-purpose microprocessors such as Intel, Freescale Semiconductor (formerly Motorola), and AMD (Advanced Micro Devices, Inc.) have targeted their microprocessors for the high end of the embedded market. Intel and AMD push their x86 processors for both the embedded and desktop PC markets. In the early 1990s, Apple computer began using the PowerPC microprocessors (604, 603, 620, etc.) in place of the 680x0 for the Macintosh. In 2007 Apple switched to the x86 CPU for use in the Mac computers. The PowerPC microprocessor is a joint venture between IBM and Freescale, and is targeted for the high end of the embedded market. It must be noted that when a company targets a general-purpose microprocessor for the embedded market it optimizes the processor used for embedded systems. For this reason these processors are often called high-end embedded processors. Another chip widely used in the high end of the embedded system design is the ARM (Advanced RISC Machine) microprocessor. Very Often the terms embedded processor and microcontroller ae used inter-changeably.
One ofthe most critical needs of an embedded system is to decrease power consumption and space. This can be achieved by integrating more functions into the CPU chip. All the embedded processors based on the x86 and PowerPC 6xx have low power consumption in addition to some forms of I/O, COM port, and ROM, all on a single chip. In high-performance embedded processors. the trend is to integrate more and more functions on the CPU chip and let the designer decide which features to use. This trend is invading PC system design as well. Normally,in designing the PC motherboard we need a CPU plus a chipset containing I/O, a cache controller, aFlash ROM containing BIOS, and finally a secondary cache memory. New designs are emerging in industry. For example, many companies have a chip that contains the entire CPU and all the supporting logic and memory,except for DRAM. In other words, we have the entire computer on a single chip.
Currently, because Of Linux and Windows standardization, many embed- ded systems use x86 PCs. In many cases, using x86 PCs for the high-end embed- ded applications not only saves money but also shortens development time because a vast library of software already exists for the Linux and Windows platforms. The fact that Windows and Linux are widely used and well-understood platforms means that developing a Windows-based or Linux-based embedded product reduces the cost and shortens the development time considerably

Choosing a microcontroller

There are five major 8-bit microcontrollers. They are: Freescale Semiconductor's (formerly Motorola) 68HC08/68HCl 1, Intel's 8051, Atmel's AVR, Zilog's Z8, and PIC from Microchip Technology. Each of the above micro- controllers has a unique instruction set and register set; therefore, they are not compatible with each Other. Programs written for one will not run on the others. There are also 16-bit and 32-bit microcontrollers made by various chip makers. WIth all these different microcontrollers, what criteria do designers consider in choosing one? Three criteria in choosing microcontrollers arc as follows: (l) meeting the computing needs of the task at hand efficiently and cost effectively; (2) availability Of software and hardware development tools such as compilers, assemblers, debuggers, and emulators; and (3) wide availability and reliable sources of the microcontroller. Next, we elaborate on each Of the above criteria.

  1. The first and foremost criterion in choosing a microcontroller is that it must meet the task at hand efficiently and cost effectively. In analyzing the needs of a microcontroller-based project, we must first see whether an 8-bit, 16-bit, or 32-bit microcontroller can best handle the computing needs of the task most effectively. Among other considerations in this category are:

·         Speed. What is the highest speed that the microcontroller supports?

·         Packaging. Does it come in a DIP (dual inline package) or a QFP (quad flat package), or some other packaging format? This is important in terms of space, assembling, and prototyping the end product.

·         Power consumption. This is especially critical for battery-powered products.

·         The amount Of RAM and ROM on the chip.

·         The number of I/O pins and the timer on the chip.

·         Ease of upgrade to higher-performance or lower-power-consumption Versions.

·         Cost per unit. This is important in tenns of the final cost of the product inwhich a microcontroller is used. For example, some microcontrollers cost 50 cents per unit when purchased 100,000 units at a time.

  1. The second criterion in choosing a microcontroller is how easy it is to develop products around it. Key considerations include the availability of an assembler. a debugger, a code-efficient C language compiler, an emulator, technical support, and both in-house and outside expertise. In many cases, third-party vendor (i.e., a supplier other than the chip manufacturer) support for the chip is as good as, if not better than, support from the chip manufacturer.
  2. The third criterion in choosing a microcontroller is its ready availability in needed quantities both now and in the future. For some designers this is even more importanthan the first two criteria. Currently, of the leading 8-bit microcontrollers, the 8051 family has the largest number of diversified (multiple source) suppliers. (Supplier means a producer besides the originator of the microcontroller.) In the case Of the 8051, which was originated by Intel, many companies also currently produce the 8051.