BSc (ECS) Embedded System-II Semster 4th

Embedded System-II

Unit I:

Classification of embedded Systems

We can classify embedded systems into different categories w.r.t. size and real time requirement as given below,

Embedded systems

Embedded systems

  • Small scale embedded system
  • Medium scale embedded systems
  • Sophisticated embedded system
  • Real time embedded system
  • Stand alone embedded system
  • Mobile embedded systems
  • Networked Embedded Systems

Small scale embedded system

Normally small scale embedded system is designed by using an 8 bit microcontroller that may even be activated by a battery. For developing embedded software for such system, an editor, assembler or cross assembler are used for specific microcontroller or processor used in the system.

Small scale embedded system

Small scale embedded system

Medium scale embedded systems

The medium scale embedded systems are designed using single or multiple 16 bit or 32 bit microcontroller or digital signal processors (DSP’s) or reduced instruction set computer (RISC’s). These types of embedded systems have both hardware and software complexities. The development tools like real time operating system (RTOS), source code engineering tools, simulator, debugger and integrated development tools are required for such complex software design system. These software tools also provide the solution for the hardware complexities, so assembler is used very rarely.

Medium scale embedded systems

Medium scale embedded systems

Sophisticated embedded system

Sophisticated embedded systems consist of large quantity of  hardware and software complexities hence they may  required scalable processors or configurable processors and programmable logic arrays (PLA’s).They are used for cutting-edge applications that need hardware and software Co-design and  components which have to assemble  in the final system.

Sophisticated embedded system

Sophisticated embedded system

Real time embedded system

Real time embedded system are designed to perform some specific work in specific time. Real time embedded systems are classified into two types such as soft and hard real time systems.

Real time embedded system

Real time embedded system

Stand alone embedded system

These type embedded systems are works in standalone made in which input i.e. electrical signals from sensors or keyword or push button are taken, then processed and produced the desired output to drive another system such as LED or LCD display for displaying some meaningful information to user. Such stand alone embedded systems are used in mp3 players, digital cameras, video game consoles, microwave ovens and temperature measurement systems.

Stand alone embedded system

Stand alone embedded system

Mobile embedded system

Mobile embedded systems are used in portable embedded devices like mobile phones, tablets, digital cameras, iphones, smart phones and personal digital assistants etc. the systems has some limitation such as memory constrains, small in size and lack of good user interface such as keyboard and display.

Mobile embedded system

Mobile embedded system

Networked embedded systems

These types of embedded systems consists of various components such as sensors, controllers, actuators etc. interconnected through a network using TCP/IP or UDP. The networked embedded system built on ASIP’s or general purpose processors.

Networked embedded systems

Networked embedded systems

Skills required for an embedded system designer

Based on my almost 40 years of working in the embedded systems field, these are – IMHO – the minimum “must have” skills/knowledge:

  • A good understanding of digital and small signal analog electronics.
  • Ability to read and understand schematics.
  • Ability to effectively use a Volt/Ohm meter and an Oscilloscope.
  • Ability to perform at least basic electronics debugging/troubleshooting.
  • Competency in at least one assembly language.
  • Competency in the ‘C’ programming language.
  • A good understanding of microprocessor internals (mostly the registers).
  • An understanding of memory regions, and their uses (heap, stack, IVT, code).
  • Working with hexadecimal numbers and hexadecimal math.
  • A very good understanding of boolean math (logic).
  • An excellent knowledge of what interrupts are and how they work in code.
  • An understanding of the different kinds of memory (RAM, ROM, Flash), the differences between them and how they are read, written, accessed.
  • An understanding of multi-tasking (in the embedded world we use the original term “multi-tasking”. The term “multi-threaded” was a term somebody made up later to mean the exact same thing. What others call “threads” we have called “tasks” since the 1970s).
  • Ability to use a debugger to perform at least simple operations such as setting breakpoints, single stepping, examining variable values, examining memory, examining registers – and understanding the when to enable and disable interrupts when single stepping using a debugger.
  • Ability to debug multi-tasking code.
  • The ability to read and understand datasheets, and produce driver code for a given device based on the information contained in its datasheet.
  • Understanding the advantages & disadvantages of using a foreground loop with interrupts vs. using a multi-tasking kernel.
  • Developing code to run under an RTOS (Real Time Operating System), and how to use semaphores, mutexes, queues, inter-task communications.
  • How to develop and debug code for peripherals such as UARTs, A/D & D/A converters, timers, PWM generation from a timer, real-time clocks, etc.
  • How to develop and debug code for communications using RS-232 (and it’s variants), SPI, I2C, and parallel data ports.
  • How to develop and debug code with stacks, queues, linked-lists, and other common data constructs.
  • A good understanding of DMA (Direct Memory Access), and how to implement it for systems which have DMA capability.

Program modeling concepts in embedded system:

Leave a Reply

Your email address will not be published. Required fields are marked *