EMBEDDED SYSTEMS ABSTRACT: Embedded system encompasses a variety of hardware and software components, which perform specific functions in host systems. Embedded systems have become increasingly digital with a non-digital periphery and therefore, both hardware and software co-design is relevant. Majority of computers are used in such systems to distinguish them from standard main frames, workstations and pc’s. Advances in microelectronics have made possible applications that would have been impossible without an embedded system design. Embedded system applications have virtually entered every sphere of our lives embedded systems cover a broad of products that generalization is difficult.
INTRODUCTION: An embedded system is a microprocessor- based system that is incorporated into a device to monitor and control the functions of the components of the device. They are used in many devices. Developments in microelectronics, processor speeds and memory elements have resulted in power embedded systems with a number of applications. This paper seeks differences between embedded computer design and desktop design, which also presents design challenges.
DEFINITION: An embedded system is a type of computer system or computing device, which performs a dedicated function and/or is designed for use with a specific embedded software application.
1 Email: [email protected]
FEATURES OF EMBEDDED SYSTEMS: SAFETY AND RELIABILITY: Embedded systems must be very reliable as they perform critical functions. In mission- critical applications such as aircraft flight control, severe personal injury or equipment damage could result from the failure of embedded computer. Hence embedded system programmers should take into considerations all possibilities and write programs that do not fail.
RESPONSIVNESS: Embedded systems should response to the events as soon as possible. For example, a patient monitory system should process the patient’s heart signals quickly and immediately notify if any abnormity in the signals is detected
2 Email: [email protected]
SPECIALISED HARDWARE: Embedded systems are used for performing special functions using specified hardware such that embedded systems that monitor and analyses audio signals used signal processor.
LOW COST: Due to its extensive use its cost is low.
ROBUSTES: Embedded systems must robust as they operate in harsh environment. They should endure vibrations, power supply fluctuations and excessive heat.
Structure of typical embedded system:
3 Email: [email protected]
An embedded system encompasses the CPU as well as many other resources such as sensors, A/D, D/A conversions, ASIC (Application Specific Integrated Chips), software program, memory, power cooling machines. In addition to the CPU and memory hierarchy, there are a variety of interfaces that enable the system to measure, manipulate, and otherwise interact with the external environment. An embedded system encompasses the CPU as well as many other resources such as sensors, A/D, D/A conversions, ASIC (Application Specific Integrated Chips), software program, memory, power cooling machines. In addition to the CPU and memory hierarchy, there are a variety of interfaces that enable the system to measure, manipulate, and otherwise interact with the external environment. Some differences with desktop computing may be: The human interface may be as simple as a flashing light or as complicated as real-time robotic vision. The diagnostic port may be used for diagnosing the system that is being controlled -- not just for diagnosing the computer. Special-purpose field programmable (FPGA), application specific (ASIC), or even non-digital hardware may be used to increase performance or safety. Software often has a fixed function, and is specific to the application. In addition to the emphasis on interaction with the external world, embedded systems also provide functionality specific to their applications. Instead of executing spreadsheets, word processing and engineering analysis, embedded systems typically execute control laws, finite state machines, and signal processing algorithms. They must often detect and react to faults in both the computing and surrounding electromechanical systems, and must manipulate application-specific user interface devices.
4 Email: [email protected]
Visit: www.geocities.com/chinna_chetan05/forfriends.html In high-end embedded systems, the tools used for desktop computer design are invaluable. However, many embedded systems both large and small must meet additional requirements that are beyond the scope of what is typically handled by design automation. These additional needs fall into the categories of special computer design requirements, system-level requirements, life-cycle support issues, business model compatibility, and design culture issues.
Design Requirements: The rise of a new class of networked embedded systems that includes digital copies, intelligent hubs and telephony servers are creating a stringent new requirement for embedded system design, while the primary requirement is still to develop systems of high performance and low cost, increasingly system must also be network savvy. Embedded systems must guarantee real time operation reactive to external events, conform to size and weight limits, budget power and cooling consumption, satisfy safety and reliability requirements, and meet tight cost targets.
EMBEDDED SYSTEMS AND REAL TIME SYSTEMS: Embedded systems are confused with real-time systems. A real time system is one in which the correctness of the computations not only depends on the accuracy of the result, but also on the time when the result is produced. Figure 1 shows the relationship between embedded and real time systems.
Depending on time strictness they are classified into two types
5 Email: [email protected]
Visit: www.geocities.com/chinna_chetan05/forfriends.html Hard RTOS are the RTOS that should complete the given function within a stipulated time constraint. The failure of doing so is treated as the failure of the entire system. So these are deterministic. Soft RTOS are not as strict as hard RTOS. The failure of doing given work is pardonable, providing it will not affect the entire system performance.
Features of RTOS: Real Time Operating Systems (RTOS) are used to schedule functions in complex systems. An RTOS helps to schedule and execute functions based on priority in a predictable manner. An RTOS may be doing some simple function to complex functions with many decision loops & interrupts. In brief or simple words it can be treated as content switcher
COMPONENTS OF AN EMBEDDED SYSTEM: Embedded systems have the following components.
PROCESSOR: A processor fetches instructions from the memory unit and executes the instructions. An instruction consists of an instruction code and the operands on which the instruction should act upon. The format of instruction code and operands of a processor is defined by the processor’s instruction set. Each type of processor has its own instruction set. Performance of the system can be improved by dedicated processors, which implement algorithms in hardware using building blocks such as hardware counters and multipliers.
6 Email: [email protected]
Visit: www.geocities.com/chinna_chetan05/forfriends.html Some embedded processors have special fuzzy logic instructions. This is because inputs to an embedded system are sometimes better represented as fuzzy variables. For instance, the mathematical model for a control system may not exist or may involve expensive computing power. Fuzzy logic can be employed for such control systems to provide a cost-effective solution.
MEMORY: The memory unit in an embedded system should have low access time and high density. (A memory chip- has greater density if it can store more bits in the same amount of space. Memory in an embedded system consists of ROM and RAM .The contents of ROM are non-volatile while RAM is volatile. ROM stores the program code while RAM is used to store transient input or output data. Embedded systems generally do not possess secondary storage devices such as magnetic disks. As programs of embedded systems are small there is no need of virtual storage.
PERIPHERALS: Peripherals are input and output devices connected to the serial and parallel ports of the embedded system. Serial port transfers one bit at a time between the peripheral and the microprocessor. Parallel ports transfer an entire word consisting of many bits simultaneously between the peripheral and the microprocessor. Programmable interface devices that act as an interface between microprocessor with peripherals provide flexibility since they can be programmed to perform I/O on different peripherals. The microprocessor monitors the inputs from peripherals and performs actions when certain events occur. For instance, when sensors indicate the level of water in the washtub of a washing machine is above the present level, the microprocessor starts the wash cycle.
7 Email: [email protected]
Controlling physical systems: The usual reason for embedding a computer is to interact with the environment, often by monitoring and controlling external machinery. In order to do this, analog inputs and outputs must be transformed to and from digital signal levels. Additionally, significant current loads may need to be switched in order to operate motors, light fixtures, and other actuators. All these requirements can lead to a large computer circuit board dominated by non-digital components. In some systems "smart" sensors and actuators may be used to off-load interface hardware from the central embedded computer. This brings the additional advantage of reducing the amount of system wiring and number of connector contacts by employing an embedded network rather than a bundle of analog wires. However, this change brings with it an additional computer design problem of partitioning the computations among distributed computers in the face of an inexpensive network with modest bandwidth capabilities
HARDWARE TIMERS: The clock pulses of the microprocessor periodically update hardware timers. The timers count the clock pulses and interrupt the processor at regular intervals of time to perform periodic tasks.
POWER MANAGEMENT: A less pervasive system-level issue, but one that is still common, is a need for power management to either minimize heat production or conserve battery power. The main and basic requirement is its, power consumption capacity. It generally includes:
8 Email: [email protected]
Visit: www.geocities.com/chinna_chetan05/forfriends.html Fully operational mode: Here, the given clock pulse is propagated to the entire processor and all the functional units are available to execute instructions. Stand-by mode: Here the processor actually executes the instructions but still the stored information is available. Ex: DRAM. Clock-off mode: Here the entire system is to be restarted. The time taken will be nearly as long as for initial start up.
SOFTWARE: Due to the absence of secondary storage devices in an embedded system, program code and constant data reside in the ROM. During execution of the program, storage space for variables is allocated in the RAM. The program should execute continuously and should be capable of handling all possible exceptional conditions. Hence the programs generally do not call the function exit. Real-time embedded systems possess a Real Time Operating System (RTOS). The RTOS consists of a scheduler that manages the execution of multiple tasks in the embedded systems. Unlike operating systems for the desktop computers where scheduling deadlines are not critical, an RTOS should schedule tasks and interrupt service routines such that they are completed within their deadlines.
Address Bus Data Bus Control Bus CPU
Functional diagram of a typical embedded system 9 Email: [email protected]
CLASSIFICATION: Embedded systems are divided into autonomous, real-time, networked, and mobile categories. Autonomous systems function in standalone mode. Many embedded systems used for process control in manufacturing units and automobiles fall under this category. In process control systems the inputs originate from transducers that convert a physical quantity, such as temperature, into an electric signal. The system output controls the device. In standalone systems, the deadlines or response times are not critical. An airconditioner can be set to turn on when the temperature reaches a certain level. Measuring instruments and CD players are examples of autonomous systems. Real time systems are required to carry out specific tasks in a specified amount of time. These systems are extensively used to carry out time critical tasks in process control. For instance, a boiler plant must open the valves if the pressure exceeds a particular threshold. If the job is not carried out in the stipulated time, a catastrophe may result. Networks of embedded systems monitor plant parameters, such as temperature, pressure, and humidity, and send the data over the network to a centralized system for online monitoring. A network-enabled web camera monitoring the plant floor transmits its video output to remote controlling organization. Mobile gadgets need to store databases locally in their memory. These gadgets imbibe powerful computing and communication capabilities to perform real time as well as non-real time tasks and handle multimedia applications. The gadgets embed powerful processor and OS, and a lot of money with minimal power consumption behavior that can be fairly easily changed.
10 Email: [email protected]
Types of Embedded Devices: According to their computing capacity, there are 4 types of devices: •
Signal processing system (1 GLOPS)
Machine critical control system (10-100 MIPS)
Distributed control system (1-10 MIPS)
Small consumer electronic system(100,000 IPS)
EMBEDDED SOFTWARE DEVELOPMENT (under LINUX): Programmers who write programs for desktop computers do their work on the same kind of computer on which their application will run. A programmer developing a program to run on a Linux machine edits the program, compiles it and debugs it on a Linux machine. This approach cannot be used for embedded system. For example, the absence of a keyboard in the embedded system rules out editing a program in the embedded system. So, most of the programming work for an embedded system, which includes writing, compiling, assembling and linking the program, is done on a general purpose computer called a host that had all the required programming tools. The final executable consisting of machine code is then transferred to the embedded system. Programs are written on the host in a high level language (such as C) or assembly language of the target system’s processor. The program files written in the high level language are compiled on the host using a cross-compiler to obtain the corresponding object files. The assembly language files are assembled on the host using a crossassembler to obtain the object files. The object files produced by cross-compilers and cross-assemblers contain instructions that are understood by the target’s processor (native compilers and assemblers on the other hand produce object files containing instructions that are understood by the host’s processor).
11 Email: [email protected]
Visit: www.geocities.com/chinna_chetan05/forfriends.html The object files are linked using a specialized linker called locator to obtain the executable code. This executable code is stored in the ROM. Since the program code already resides in memory, there is no need for a loader in an embedded system. In personal computers, on the other hand, the loader has to transfer the program code from the magnetic disk to memory to execute the program. The binary code obtained by translating an assembly language program (using an assembler) is smaller and runs faster than the binary code obtained by translating a high level language program (using a compiler) since the assembly language gives the programmer complete control over the functioning of a processor. The advantage of using a high level language is that a program written in a high level language is easier to understand and maintain than a program written in assembly language. Hence timecritical applications are written in assembly language while complex applications are written in a high level language
SIMULATOR: A simulator is software tool that runs on the host and simulates the behavior of the target’s processor and memory. The simulator knows the target processor’s architecture and instruction set. The program to be tested is read by the simulator and as instructions are executed the simulator keeps track of the values of the target processor ‘s registers and the target’s memory. Simulators provide single step and breakpoint facilities to debug the program. Simulators cannot be used if the embedded system uses special hardware that cannot be simulated and the only way to test the program is to execute it on the target. Although simulators do not run at the same speed as the target microprocessor, they provide details from which the time taken to execute the code on the target microprocessor can be determined. For instance, the simulator can report the number of target microprocessor’s bus cycles taken to execute the code. Multiplying this value with the time taken for one bus cycle gives the actual time taken by the target microprocessor to execute the code. 12 Email: [email protected]
EMULATOR: An emulator is a hardware tool that helps in testing and debugging the program on the target. The target’s processor is removed from the circuit and the emulator is connected in its place. The emulator drives the signals in the circuit in the same way as the target’s processor and hence the emulator appears to be the processor to all other components of the embedded system. Emulators also provide features such as single step and breakpoints to debug the program.
Applications: 1.Automatic vending machine: These are very simple machines with simple functions such as dispenses cool drinks. It has to collect the money from the customer based on the project selected, dispense the product and balance money if any.
2. In printers: Here the embedded system controls your printer. This system has to execute more complex functions like checking for paper availability, printer-ink, open door, paper jam, communication with host computer data integrity etc., are few of them.
3.Automobiles like cars: Most of the embedded systems in automobiles are rugged in nature as most of these systems are made of single chip. Their compact profiles enable them to fit easily under the cramped hood of a car. Embedded systems can be used to implement features ranging from adjustment of the suspension to suit road conditions and the octane content in the fuel to Anti- lock Breaking Systems (ABS). Right from brakes to automatic fraction control to air bags (and fuel/air mixture controls). Here may be unto 30-50 embedded systems with in present day car. 13 Email: [email protected]
4.Smart House: Homes of the future will employ embedded technology devices to become intelligent & ‘smart’, i.e., the house that recognizes your fingerprints and opens the front door automatically. A smart house is essentially a network of smart devices, which could be a fridge that checks your food supplies and places orders to replenish them, TV that controls ON/OFF automatically on your absence, microwave oven that can send a message for you saying that the cake you kept is baked or any of the numerous domestic appliances that we use at home. They will be able to optimize themselves or report maintenance problems to technicians using built-in management functions. They will also be connected to Internet in most cases, which are possible in near future. Now we can envisage a “smart house” where the electronic systems interact each other to make your life more & more comfortable.
5.Wired Wearable: Embedded systems have a small footprint and consume
very little power, which
makes the ideal for wearable computing applications. A very amazing application of IBM is already on the prototype of a mobile phone that can be worn as jeweler. The components of the phone will be distributed among different pieces of jeweler earring, necklace, ring and bracelet. The earrings will have embedded speakers and will act as the receiver. The necklace will have embedded microphones that will act as the mouthpiece users can talk into. LEDs will flash to indicate an incoming call. A video graphics array (VGA) will be built into the bracelet, which will display the name & phone number of the caller. It also integrates the keypad and dialing functions in it. 14 Email: [email protected]
Visit: www.geocities.com/chinna_chetan05/forfriends.html Out standing Applications of embedded systems: •
Nuclear power plants and power generation units.
Satellite, rocket and missile launching /Tracking.
Robotics and Artificial Intelligence.
Medical and Instrumentation Electronics.
CHALLENGES FOR SYSTEM DEVELOPERS: In an embedded system, assigning functions to hardware and software is a vital consideration. Hardware implementation has the advantage that the task execution is faster than in software implementation. On the flip side, the hardware chip occupies space, costs money, and consumes power. Porting a readily available OS to the processor or writing embedded software without any OS embedded into the system are the main challenges. Developing, testing, and debugging input/output interfaces in embedded systems are even more challenging. Embedded systems need to offer high performance at low power. These should meet the basic functional requirements of the device: A hand held PC must execute with an OS and a basic set of applications, a gaming gadget must facilitate games, and a phone must provide basic telephony and so on.
DESIGN CHALLENGES: Worst case design analyses without undue pessimism in the face of hardware with statistical performance characteristics (e.g., cache memory) •
Non-rectangular, non-planar geometries
Packaging and integration of digital, analogs
Low-cost reliability with minimal redundancy. g, and power circuits to red
Accurate thermal modeling.
15 Email: [email protected]
Visit: www.geocities.com/chinna_chetan05/forfriends.html •
De-rating components differently for each design, depending on operating environment. Use size Variable "design margin" to permit tradeoff between product robustness and aggressive cost optimization. Software- and I/O-driven hardware synthesis (as opposed to hardware-driven software compilation/synthesis).
Cheap, available systems using unreliable components.
Electronic vs. non-electronic design tradeoffs.
Distributed system tradeoffs among analog, power, mechanical, network, and digital hardware plus software.
Ultra-low power design for long-term battery operation.
A problem can be more easily tested and maintained by breaking down the problem to be solved into individual, easily comprehensible tasks.
The modular approach allows reusability of individual tasks in other projects.
Since the real time and multi-tasking problems are already solved the time required for creating programs and testing is considerably reduced
FUTURE DEVELOPMENTS: A refrigerator that tells you the expiry date of the yogurt, a micro oven that helps you to view different recipes that can be cooked and even gives ideas on serving, a future home that is completely wired with the ability to control every appliance from almost any where. All this may seem incredible today, but it won’t be too long before such appliances are produced for mass usage. In future it is possible to have an embedded Internet that connects different embedded systems on a single network.
16 Email: [email protected]
CONCLUSION: Embedded systems have requirements that differ significantly from generalpurpose computers. The main goal of an embedded system developer is to design a lowest cost system that performs the desired tasks without failing. While the hardware approach improves performance, the software approach provides flexibility. Recent developments in hardware-software co-design permit tradeoffs between hardware and software for cost-effective embedded systemseveson, Safe ware: system safety and computers, Addison-Wesle, 1994. One of the recent developments in embedded system technology is networking of the devices so their services are available through LAN, WAN, Internet. To conclude one day man will be embedded in embedded technology. “Embedded systems have virtually entered every sphere of our lives”
BIBLIOGRAPHY: 1. Fudamentals of embedded software by DANIAL W.LOUIS. 2. An embedded software primer by DAVID E.SIMON. 3. Daniel D. Gajski, Frank Vahid, Sanjiv Narayan & Jie Gong, Specification And Design of Embedded Systems,
17 Email: [email protected]
18 Email: [email protected]