Embedded system is software control hardware. Generally it can be defined as “a system that has embedded software and computer hardware, which makes it a system dedicated for an application or specific part of an application or product or a part of a larger system”. According to the set of rules or program this system can organize, work and do one or more task. Let’s consider a ticket machine as an example, were the hardware includes battery, beautiful dial pad, chassis and strap. Based on the embedded program entered into the machine it will work.
Refer Embedded Systems in Automobiles... to get a view about the growth of embedded systems in automobile industry.....
Generally, an embedded system is characterized by complex algorithms; complex graphic user interfaces (GUIs), other user interfaces and at last dedicated functions. Embedded system has wide range of applications. Some of the areas of application are satellites, missiles, smart cards, telecommunications, computer networking, digital consumer electronics and automotive. According to the level of application of embedded system it can be classified into three types.
First one is a Small scale embedded system. This type of embedded system consists of 8-bit or 16-bit microcontroller. Its hardware and software complexities are very small according to other type of embedded system. Assembler and cross assembler, an integrated development environment (ISE) tool specific to the microcontroller or processor used and an editor are the main programing tools used for the software development in small scale embedded system. Even it can work by using battery mode.
The examples of small scale embedded systems are chocolate vending machine, washing machine, cooking system, multitasking toys, keyboard controller, MMI and network access cards, CD drive or hard disk drive controller, Fax machine, photocopy or printer machine, Remote controller of TV, Telephone with memory, display and other sophisticated features, Electronic data acquisition and supervisory control system, Electronic instrument such as an industrial process controller, Electronics smart weight display system, Spectrum analyzer, Bio medical system such as an ECG LCD display cum recorder, a blood cell recorder cum analyzer, and patient monitor system.
Second one is Medium scale embedded system. These embedded systems are constructed by using one or more 16-bit or 32-bit microcontrollers, DSPs or RISCs. Medium scale embedded systems has both hardware and software complexities. C/C++/Visual C++/Java, RTOS, simulator, debugger, Source code engineering tool are the main tools used for medium scale embedded system software development.
In computer networking; system router, a front end processor in a server, a switch, a bridge, a hub and a gate way are the applications for multi- scale embedded system. For internet applications, there are so many application systems; Administration and maintenance router (IOAMR) in a distributed network, mail client card to store email and personal addresses and smart connector to a modem or server. Video game and music system, bank ATM, credit card transaction, signal tracking system, automatic signal tracker, target tracker, mobile communication SIM card, numeric pager, cellular phone and a personal information manager using frame buffers in handheld devices are some other well-known applications of it.
Third one is sophisticated embedded system. Sophisticated embedded systems have more number of software and hardware, and its complexity is very high. Development tools for these are very less because of high cost; in some cases a compiler or a rectangular compiler is used for development. This level of application consist of mobile smart phones and computing systems, mobile computer, Embedded system for wireless LAN, video, interactive video, etc.
An embedded system consists of three main components.They are hardware, software and memory. Here the hardware is similar to the computer hardware. This hardware is controlled by software. The software is embedded into flash memory or ROM. Usually these systems don’t have any other external storage devices like CD or hard disk. It embeds main application software and embeds RTOS (Real Time Operating System) that controls the application software running on hardware and access all the task according to their priority.
Three constraints for constructing an embedded system are; Available system memory, available processor speed and the need to limit power dissipation when running a system continuously.
Components of Embedded System Hardware
Embedded Hardware Units
Power Source: Most of the embedded systems have their own power supply. But some systems like Graphic Accelerator and Network Interphase Card (NIC) are getting power supply from PC; they don’t have their own power supply. Some other systems are powered by using charging pump. There are four power units in embedded system to operate. They are 5.0 V ± 0.25 V, 3.3 V ± 0.3 V, 2.0 V ± 0.2 V and 1.5 V ± 0.2 V.
Clock Oscillator circuit and clocking circuit: Clock is an important unit of any embedded system, which control the time for executing an instruction. Every processor should have a clock oscillator circuit.
System Timer: Scheduling various tasks is the main function of a system timer or Real time Clock (RTC). This Real time clock periodically ticks and generates system interrupts, and then these routines perform the routine information. This Real time clock or system timer helps to identify the software controlled delays and time-outs. The clock also helps to drives the timers for various counting and timing needs in a system.
Reset Circuit: In a reset circuit, reset means a processor start the processing of instruction from a starting address; this address is one that is set by default in the processor. Reset circuit activate for a few clock cycles and then deactivate. When a program proceeds from a default beginning address, the reset pin active and then deactivate.
Memory: Memories are used to store the data temporarily or permanently. Various form of system memories are,
- Internal RAM at microcontroller. Memory space about 256 or 512 byte
- External RAM in most system used for storing when the programme is running and storing the stack.
- Memory stick stores high definition data like videos, photos, songs after a suitable format compression.
- EEROM or Flash storing non-volatile results of processing. EEROM is nothing but Electrically Erasable Read Only Memory.
- Cache stores copies of instructions and data in advance.
IO Port is nothing but Input Output port. This is used to collect data from the input devices and give data to the output devices. An embedded system connect to the another external physical devices and system through parallel or series IO port.
DAC and ADC: DAC is nothing but Digital to Analog Convertor, this used to convert digital 8 or 10 or 12 bit to the analog output. Analog signal is with respect to the reference voltage. ADC is nothing but Analog to Digital convertor, which converts analog input to digital output.
Display is an output devices, which consist of LCD, LED and Touch screen. Through this parts display the status or messages
Keypad/Keyboard: It is an input device. Keypads consist of 32 keys and keyboards consist of 104 keys. These devices are connected serially or parallel to the system through the ports.
Interrupt Handler: An interrupt handling system is a mechanism for executing ISRs in case of interrupt from the system, physical devices, software instructions and software exceptions
Software Tools Used in Embedded System
Editor: It is used to enter C codes or assembly mnemonics by using keyboard of the PC. Editor allows entry, insert, addition, deletion, appending previously written lines or files. Editor creates a source file that stores edited file.
Interpreter: it translates the code by expression-by-expression to machine executable codes.
Compiler: It creates a file called object file. Compiler includes codes, functions, and expression from the library routine.
Assembler: Assembler for translating assembly mnemonics in to instructions or binary opcodes. This executable file is called binary file.
Cross Assembler: Cross assembler is used to convert object code or executable code for a processor to other processors executable codes. This code is needed in the final development system.
Simulator: It simulates all functions in the embedded system, additional memory and peripheral. It also simulates the processes that will execute when the codes of a particular processor execute.
Source-code engineering software: It is for source code comprehension, navigation and browsing, editing, debugging, configuring and compiling.
Trace Scope: It helps to tracing the changes in modules with the time on X-axis.
Integrated Development Environment: It is a development software and hardware environment, which consists of simulators with editors, assembler, RTOS, debuggers, compiler, stethoscope, tracer, emulators and logic analyzer.
Prototyper: During the development stage, it simulates and does source code engineering including compiling, debugging, browsing and summarizing the complete status system of the final target system.
Locator: Locator is the final step of an embedded system software designing. This uses the cross compiler output and memory allocation map and then provides the locator program output as a hex-file.
Design Process in Embedded System
To design an embedded system Top-to-down design approach is the most favored approach. Top-to-down design means, first we have to collect abstraction of the process and then abstraction the details are created. The followings are the steps in Top-to-down design approach.
Requirements: This section deals with the analysis and definition of requirements that are needed for the system construction. After validating the requirements development process start.
Specification: Designer needs specification for hardware that are used in embedded system. Hardware means peripherals, devices, processor etc. And also need data types and processing specifications, expected system behaviour specifications, expected life cycle specification.
Architecture: Architecture consists of software and hardware construction. Software architecture is more difficult. Software architecture consists of three layers. First layer is an architectural design. Here a design for system architecture is developed. Second layer is data design. Here appropriate design of data structure and database for the system. Third layer consist of interface design. Here deals with the design for system integration.
Components: Components of hardware, processes, interfaces and algorithms. Common hardware components are processor, Memory RAM, ROM, Internal and external flash, port and busses in the system.
System Integration: Built components are integrated in the system. At this stage each components and its interface system is integrated after design stage.