Embedded System Design

An embedded system is a circuit that utilizes processors of microcontrollers as part of the design. An embedded system is a computer system with a dedicated function within a larger mechanical or electrical system, often with real-time computing constraints. Embedded product development life cycle consists of three main stages.

Most everyday products that we use like laptops, mobile phones, consumer electronics, automobiles, washing machines, microwave ovens, refrigerators and television uses embedded microcontrollers or processors in them. The importance of embedded systems is that most of its functions are software controlled and can be changed easily without much changes to the hardware.

Analysis

This involves understanding what processes needs to be followed for the product which is to be developed. The detailed inputs, processes, outputs and interfaces of the product is stated at functional level. The activities like documentation, requirements, defining test plan and procedures are also done during this phase of the life cycle.

Design

This involves what approach is to be used to build the product. In this phase, application environment is identified and an overall architecture is created for the product. The detailed design document called the Preliminary Design Document (PDD) is released at the end of this phase.

Development

Development phase transforms the design into a realizable product. The detailed specification generated during the design phase is translated in to hardware and firmware. The different testing like unit testing, integration testing, system testing, user acceptance testing is done.

The development process of an embedded system design starts with requirements analysis and high-level design. Here one or more suitable processor or microcontroller is selected and a plan for development is devised. This includes IO mapping, memory and peripheral mapping, algorithm, flow chart, state machine design etc.

 

The next stage is a development of individual drivers and testing them with hardware. The completed drivers are then included with code with algorithm and functionality implementation and tested thoroughly.