Embedded System is computer system which perform different task such as sensing, computing, interfacing with different electronics devices , its combination of both software & hardware where software is embedded in hardware which know as firmware.
An embedded system is some combination of computer hardware and software, either fixed in capability or programmable, that is designed for a specific function or for specific functions within a larger system. Industrial machines, agricultural and process industry devices, automobiles, medical equipment, cameras, household appliances, airplanes, vending machines and toys as well as mobile devices are all possible locations for an embedded system.
IOT (internet of things) is also know as embedded system. wireless module , sensing modules , programming module are part of IOT system.
Embedded System Applications:
Application of embedded system is huge from Industrial to commercial even in education. smart cards, computer networking, satellites, telecommunications, digital consumer electronics, missiles,etc. real time application example are as follows traffic monitoring,street light control, plant temperature-humidity control, vehicle tracking. commercial application such as washing machine, smart tv, smart phones, home automation etc.
Life cycle of embedded system design:
- Project Name
- Micro-controller Selection
- Project Block Diagram
- Pin Chart
- Schematic Schematic Verification
- Artwork Verification
- PCB Fabrication
- PCB Population
- Basic Hardware Testing
- RTOS (optional)
- Code template/code bundle
- Application Software
More Challenges in Embedded system design:
An embedded system is deigned to perform a specific task, cutting out the resources it doesn’t need to accomplish its mission. the resources under consideration include:
- Memory (RAM) :
- Code Space (ROM)
- Processor cycles or speed
- Battery Life
- Processor Peripheral
Getting The Code Working:
- Reading datasheet is one the important aspect of embedded system engineer
- Getting into new Processor or Controller, understand its specifications
- Having a good debugging tool
- Good understanding of schematic diagram of evaluation boards
Hands on with Hardware or Evaluation Board:
Evaluation board is one the best way to learn & understand new controller or processor before incorporate into actual system for example st has different evaluation boards series , there are lots of advantages to start development with evaluation boards such as user doesn’t have to wait for prototype board or final development board , he or she can start to implement basic drivers depending upon project requirement, its very easy to design application board with existing eval board circuitry.
Basic guideline for understanding Processor or Controller:
- Reading Datasheets & Reference manual
- Wiki/ forum of Controller/Processor
- Reading application notes
- Hands on with evaluation boards
- one you implement basic drivers for system read datasheets once again it will help you to optimize your drivers code
1. Reliability : Degree to for system, product or component performs specific functioned under specified conditioned for a specified period of time.
2. Maintainability : Degree of effectiveness and efficiency with which a product or system can be modified by the intended maintainers
3. Portability: Degree of effectiveness and efficiency with which a system, product or component can be transferred from one hardware, software or other operational or usage environment to another
4. Performance Efficiency: Performance relative to the amount of resources used under state conditions
5. Security: Degree to which a product or system protects information and data so that person or other products of systems have the degree of data access appropriate to the it type any levels of authorization
List of tools which require to setup embedded system labs:
- Digital multi-meter
- Oscilloscope & logic analyzer
- Screwdriver set
- Tweezers , needles , cable ties
- Magnifying glass
- Soldering station
Embedded system design is very interesting topic which includes hardware design & software design, controller / processor selection guidelines , coding guide lines & its whole life cycle management.
Reference: Making Embedded Systems: Design Patterns for Great Software by elecia white , Embedded system coding reference guide