General info
Thanks for reading: Microprocessor and microcontroller pages
Microprocessors are essential to many of the products we use every day such as TVs, cars, radios, home appliances and of course, computers. Microprocessors are the core of a computer, but they are used alsoin many other applications (for example embedded devices). The biggest chunk of the digital business comes from processors butprocessors are only 2% of all semiconductors market. Thirty percent of the world's semiconductor sales come from microprocessors, DSPs, microcontrollers, and programmable peripheral chips. A tiny 2% sliver of the market is all that processors contribute, but they generate a whopping 30% of the dough. There is difference how different microcontrollers are sold. In the processor arena, it's the 4-bit microcontrollers that are the cheapest.The small 8-bit chips (little old 8051s and 6805s) are the best-selling type of processor. This kind of smallprocessors are found embedded in a wide varierty of electronics devices, ranging from small gadgets and home equipment control to car electronics.Those small controllers areflying off the shelves at the rate of more than 3 billion new chips per year(more than half of the microprocessor sale per units). But they're not very expensive, so they're less than 15% of the fiscal tonnage.At the opposite end of the scale are-big surprise-32-bit microprocessors. This category includes PC processors like Pentium 4 and Athlon, of course, but also dozens of embedded processors such as PowerPC, 68k, MIPS, and ARM chips. Most (98% or so) 32-bit processors are used in embedded systems, not PCs. ARM-based chips alone do about triple the volume that Intel and AMD peddle to PC makers. PC processors are only 2% of all processors in volume, but PC processors are 50% of all processor sales in money. This means that PC processor makes 15% of all the money made from every type of semiconductor from every company everywhere in the world. The reason for this is that PC processors are expensive (modern Intel CPU can cost $300) and they are sold in large volumes.Taken as a whole, the average price for a microprocessor, microcontroller, or DSP is just over $6. Most microprocessors are much cheaper than that, but then there is always those expensive ones in the market that pull the average price up.That is the the DSP deal? DSP average price is around $6 per chip, but that includes a lot of inexpensive hard-wired modem chips and the like. But the market is not huge, because the world spent less than $5 billion on DSPs on year 2002.So why the huge difference between microprocessors' effect on the economy and their comparatively tiny numbers? That is where programming comes in. The programming gives the functionality to those device. Programming work provides a lot of the value to micprocessor markets.Technically CPU chips aren't any harder to make than DRAM chips. They don't cost more to make - they're just priced that way.When you select one processor for your product, you can't swap out your CPU for just any other processor. There are manyu different microprocessors around. Different microprocessors have different kind of features (some are better for some tasks than some other) and different kind of instruction sets. There are to common classifications of what kind instruction set the processor has:CISC (Complex Instruction Set Computer) means that the processor has a lasge set of instructions that perform complex tasks and RISC (Reduced Instruction Set Computer) means that that the processor has quite small set of instructions that they do less per command (complicated operations are done by combining many simple instructions to perform a complicated task). Some processors are CISC-based (like x86, Z80etc.), while other are RISC-based (like Sparc, ARM, MIPS, PowerPC).What is then a microprocessor ?A common example of a general purpose computer, would be a typical PCclone. The x86 processor in this machine is considered as a general purpose microprocessor, since the machine is typically used forgeneral purpose computing (computing, word processing, web browsing, multimedia etc.).What is then a microcontroller ? A microcontroller is by definition a is a computer on a chip. It includes all the necessary parts (including the memory) allin one IC. You just need to apply the power (and possibly clock signal) to that device and it starts executing the program programmed to it. A microcontroller generally has the main CPU core, ROM/EPROM/EEPROM/FLASH, RAM and some accessry functions (like timers and I/O controllers) allintergated into one chip. The original ideabehind the microcontroller was to limit the capabilities of theCPU itself, allowing a complete computer (memory, I/O, interrupts,etc) to fit on the available silicon real estate. Microcontrollers are typically used where processing power isn't so important. More important are generally compact construction, small size, low power consumption and that those chips are cheap.For example controlling a microwave oven is easily accomplished with the smallest of microcontrollers. There are countless number of small electronic devices which are nowdays based on microcontroller. A modern home can include easily tens or hundreds of microcontrollers, asalmost every modern device which has electronics has a microcontroller (or more than one) inside.A special application that microcontrollers are well suited for isdata logging. Stick one of these chips out in the middle of a cornfield or up in a ballon, and monitor and record environmentalparameters (temperature, humidity, rain, etc). Small size, low powerconsumption, and flexibility make these devices ideal for unattendeddata monitoring and recording. The automotive market is propably the most important single driving force inthe microcontroller market, especially at it's high end. Severalmicrocontroller families are specifically developed for automotive applications. With the continuing process of high scale integration continuing at a dizzyingpace, many standard architecture processors are turning up asmicrocontrollers. Simply (and naively stated) an embedded controller is a controllerthat is embedded in a greater system. A rigid definition isdifficult if not impossible to formulate. You could say that an embedded controller is a controller (orcomputer) that is embedded into some device for some purpose otherthan to provide general purpose computing. Embedded controllers adhere to a philosophy similarto that of microcontrollers, high integration. By including [many]features necessary for the task at hand, an embedded controller(processor) can be a powerful yet cost effective solution. Where a microcontroller [almost by definition] is a computer on achip, an embedded controller might need external components before itis considered a "computer." This is especially true regarding RAM. Embedded processors come in many flavors and varieties. Depending onthe power and features that are needed, you might choose a 4, 8, 16,or 32 bit microcontroller. Standard microprocessors (such as theMotorola 68000 or National 32032) are frequently used as powerfulembedded controllers. In addition, specialized processors areavailable which include features specific for communications,keyboard handling, signal processing, video processing, and othertasks.When talking about embedded processors, you might wonder what is embedded system where those are used. Usually an embedded system is a system whereby the user is not givendirect access to any level of code, they are to treat the entire system as ablack box, press a button and some action occurs."Embedded" has a legalistic definition as "being supplied as a componentpart of a larger system". Most embedded computers don't "look like" computers.Although generally PC's are not defined as embedded systems, however if youremove the case, they can become embedded systems. Foe example many embedded industrial systems are based on PC hardware: a x86 motherboard (different form factor of course) with out some ofthe extra stuff like PCI slots etc, mostly everything is onboard that'sneeded. Embedded programming implies programming a system in which resources are limited, and which may need to run without manual intervention, so all errors need to be handled. Simplest of such kind of error handler just restarts the system if things go wrong. Many embedded systems use watchdog systems to handle errors like software crash (watchdog just resets the system of software stops notifying watchdog timer that is running properly).Real-time just implies that time is a critical factor in any function of theembedded system.Real-time implies a system in which if a single event is missed or over-runsit's time slot the whole system has failed (possibly with disastrousresults), so this must not be allowed to happen. Hard real time is usually taken to mean that any missedtime constraint is a failure. Soft real time is taken to mean that somemissed deadlines are acceptable, or at least won't endanger life, property,or cause loss of money. An automatically controlled airplane is a situation of hard-realtime, if ittakes tooo long for the system to reacht, the plane will crash. PC a game could be considered real-time, if youdon't get the next frame within xx mS then you will not be appreciativebut nobody gets hurt or anything damaged (hence, soft real-time).Some common terms related to the microprocessors and microcontrollers:
- Von-Neuman Architecure: Microcontrollers based on the Von-Neuman architecture have a single "data" bus that is used to fetch both instructions and data. Program instructions and data are stored in a common main memory. When such a controller addresses main memory, it first fetches an instruction, and then it fetches the data to support the instruction (if such data is needed).
- Harvard Architecture: Microcontrollers based on the Harvard Architecture have separate data bus and an instruction bus. This means that data and instructions are stored into separate memories that are accessed separately.
- CISC (Complex Instruction Set Computer): Almost all of today's microcontrollers are based on the CISC concept. The typical CISC microcontroller has well over 80 instructions, many of them very powerful and very specialized for specific control tasks.
- RISC (Reduced Instruction Set Computer): RISC microcontroller has smaller number of commands than CISC microcontroller, and those commanda are generally simple (do less work per command). By implementing fewer instructions, the chip designed is able to dedicate some of the precious silicon real-estate for performance enhancing features. Benefits are uually s amller chip and lower power consumption. The industry trend for microprocessor design is for RISC designs.
- SISC (Specific Instruction Set Computer): SISC microcontroller instruction set is designed for a special application in mind. At the expense of the more general purpose instructions that make the standard microprocessors (8088, 68000) so easy to use, the instruction set was designed for the specific purpose of control (powerful bit manipulation, easy and efficient I/O, and so on).
- CMOS (Complementary Metal Oxide Semiconductor (CMOS): CMOS the name of a common technique used to fabricate most (if not all) of the newer microcontrollers. CMOS based microcontroller requires much less power than ones made with older fabrication techniques, which permits battery operation. CMOS chips also can be fully or near fully static, which means that the clock can be slowed up (or even stopped) putting the chip in sleep mode. CMOS has a quite high immunity to noise (power fluctuations or spikes), althrough it does not like static electricity spikes (unless special protection is included in the chip).
- EEPROM (Electrically Erasable Programmable Read Only Memory): EEPROM is non-volatile memory is generally use for small amounts of memory that hold a limited number of parameters that may have to be changed from time to time. Many microcontrollers have limited amounts of EEPROM on the chip.
- FLASH (EPROM): FLASH is erasable and reprogrammable non-volatile memory. Flash provides a better solution than regular EEPROM when there is a requirement for large amounts of non-volatile program memory. It is both faster and permits more erase/write cycles than EEPROM.
- Field programming/reprogramming: Using nonvolatile memory as a place to store program memory allows the device to be reprogrammed in the field without removing the microcontroller from the system that it controls. Field-programmable microcontrollers are genrally programmable by connecting the programming device to few pins on the microcontroller and doing the programming while the microcontroller is in place in the circuit board.
- OTP (One Time Programmable): An OTP is a PROM (Programmable Read-Only-Memory) device. Once your program is written into the device with a standard EPROM programmer, it can not be erased or modified. A OTP part usually uses standard EPROM, but the package has no window for erasing (package with window is expensive).
- Software protection: Either by encryption or fuse protection, the programmed software is protected against unauthorized snooping (reverse engineering, modifications, piracy, etc.).
- Brownout Protection: The device is held in reset and will remain in reset when Vcc stays below the Brownout voltage. The device will resume execution (from reset) after Vcc has risen above the brownout Voltage.
- Idle/Halt/Wakeup: The device can be placed into IDLE/HALT mode by software control. In both Halt and Idle conditions the state of the microcontroller remains. RAM is not cleared and any outputs are not changed. Normal operation is rested with wakeup (usually interupt) or reset.
- Idle mode: In IDLE mode, all activities are stopped except on-board oscillator circuitry, watchdog logic, clock monitor and idle timer. Power supply requirements on the microcontroller in this mode are typically around 30% of normal power requirements of the microprocessor. Idle mode is exited by a reset, or some other stimulus (such as timer interrupt, serial port, etc.). A special timer/counter (the idle timer) causes the chip to wake up at a regular interval to check if things are OK. The chip then goes back to sleep.
- Halt mode: In Halt mode, all activities are stopped (including timers and counters). The only way to wake up is by a reset or device interrupt (such as an I/O port). The power requirements of the device are minimal.
- UART (Universal Asynchronous Receiver Transmitter): A UART is a serial port adapter for asynchronous serial communications.
- USART (Universal Synchronous/Asynchronous Receiver Transmitter): A USART is a serial port adapter for either asynchronous or synchronous serial communications.
- Synchronous serial port: A synchronous serial port doesn't require start/stop bits and can operate at much higher clock rates than an asynchronous serial port. Used to communicate with high speed devices such as memory servers, display drivers, additional A/D ports, etc. Can also be used to implement a simple microcontroller network.
- SPI (serial peripheral interface): A SPI is a synchronous serial port. This is commonly used by Motorola in their microcontroller. Many peripheral chips (like A/D converters) exist which can be connected to a SPI port.
- SCI (serial communications interface): A SCI is an enhanced UART (asynchronous serial port).
- I2C bus (Inter-Integrated Circuit bus): The I2C bus is a simple 2 wire serial interface developed by Philips. It was developed for 8 bit applications and is widely used in consumer electronics, automotive and industrial applications. In addition to microcontrollers, several peripherals also exist that support the I2C bus.
- MICROWIRE/PLUS: MICROWIRE/PLUS is a serial synchronous bi-directional communications interface. This is used on National Semiconductor Corporation's devices (microcontrollers, A/D converters, display drivers, EEPROMS, etc.).
- CAN (Controller Area Network): CAN is a mutiplexed wiring scheme that was developed jointly by Bosh and Intel for wiring in automobiles. The CAN specification seems to be the one that is being used in industrial control both in North American and Europe.
- J1850: J1850 is the SAE (Society of Automotive Engineers) multiplexed automotive wiring standard that is currently in use in North America.
- A/D (Analog to Digital Conversion): Converts an external analog signal (typically relative to voltage) and converts it to a digital representation. Microcontrollers that have this feature can be used for instrumention, environmental data logging, or any application that lives in an analog world without using an external A/D converter IC for this.
- D/A (Digital to Analog) Converters: This feature takes a Digital number and converts it to a analog output.
- Pulse width modulator: A controllable pulse train is generated at microcontroller output. This is often used as a digital-to-analog conversion technique: A pulse train is generated and regulated with a low-pass filter to generate a voltage proportional to the duty cycle.
- Interrupts: On receipt of an interrupt, the controller suspends its current operation, identifies the interrupting peripheral, then jumps (vectors) to the appropriate interrupt service routine. After this routine is executed, normal program execution continues. Most microcontrollers have at least one external interrupt, which can be edge selectible (rising or falling) or level triggered. Both systems (edge/level) have advantages. Edge - is not time sensitive, but it is susceptible to gitches. Level - must be held high (or low) for a specific duration (which can be a pain - but is not susceptible to glitches).
- Vectored interrupts: When an interrupt occurs, the hardware interrupt handler automatically branches to a specific address depending on what interrupt occurred.
- Watchdog timer: A watchdog timer provides a means of graceful recovery from a system problem. If the program fails to reset the watchdog at some predetermined interval, a hardware reset will be initiated.
- Clock Monitor: A clock monitor can shut the microcontroller down if the input clock is too slow.
- Resident program loader: Loads a program by Initializing program/data memory from either a serial or parallel port. Convenient for prototyping.
- Monitor: A monitor is a program installed in the microcontroller which provides basic development and debug capabilities.