Close Menu

Embedded Systems

Semester 1

The goal of this course is to provide students with an understanding of the inner workings of embedded system solutions and the underlining technology, which include the development of circuits and embedded software programs. It exposes students to the structure and component of embedded controllers and the tools necessary for the development of embedded systems solutions. Students will also be exposed to the design and implementation processes of embedded system solutions. In addition students will develop the skills necessary to construct circuits and design algorithms to interface devices such as modem, GPS receivers, LCD and other input/output devices with a microcontroller based embedded system.

The learning experience is enhanced with computer-based exercises and assignments. The assignments will include: (1) a take home problem solving questions design to test student understanding of the theory; and (2) a report in the form of an IEEE paper structure on a survey of the state-of-the-art in embedded systems designs. The intent is to expose the student to high level technical publications

Syllabus: 
  • Embedded Systems Overview: Introduction and Background; Embedded Systems; Processors in Embedded Systems; Other Hardware Units; Exemplary Embedded Systems; Embedded System-On-Chip (SOC) and in VLSI Circuits.
  • Microcontroller Overview: Basic Layout; Components; Memory and Register; Instruction Set; AVR 8-Bits Microcontrollers.
  • Assembly Programming & Simulation: Assembly Language Structure; Branch, Call and time delay loops; AVR Studio: Editor, Assembler, Simulator, Debugger and Hex Programmer; Simulation of Written Code; STK500 Hardware: Description and Operation; Actual Microcontroller Programming.
  • Digital & Analog Capabilities: Digital Input/Output Capabilities, Configuration and Operation of I/O Ports; Digital I/O Port Programming; Analog Input/Output Capabilities; Configuration and Operation of I/O Pins/Ports; Analog-to-Digital Conversion; Analog Peripheral Programming.
  • Interrupt Subsystem: Introduction to concept of Interrupts; Configuration and Operation of Interrupts Sources; External and Internal Interrupts Capabilities; Interrupts Control Flow; Interrupt Vectors and Vector Table; Interrupt Programming.
  • Timing Subsystem: Introduction to timer/counters 8/16-Bits Timers; Configuration and Operation of Timers; Timers Modes of Operation: Counter, Input Capture, Output Compare and Pulse Width Modulation; Watch Dog Timer; Timer Programming.
  • Serial Communication Subsystem: Parallel vs. Serial Communication; UART and USART; Operation and Configuration; Serial Communication 325 Protocol: Framing, Parity, etc.; RS232 Serial Ports Layout (DB25 and DB9); RS232 Standard Line Drivers; Serial Programming.
  • C Language for Embedded Systems: Introduction to Embedded C; C Language vs. Assembly Language; Introduction to the WinAVR C Compiler; C Structure; Pre-processor Commands; C Types, Operators and Expression; C Control Flow (For, While, If/Else, Switch, etc. Control Structure.); Function and Program Structure.
  • Operating Parameters & Interfacing: Operating Parameters; Interfacing Input Devices, Switches including de-bounce circuit, Keypad and Keypad Drivers, etc. Keypad Programming; Interfacing Output Devices, LCD, LED, etc.; LCD Interface Programming; Motor Control, DC Motors, Stepper Motors and Their Drivers, Servo Motors and Their Drivers; Motor Control Programming; Isolators, Optical and Other Isolators; Power Supply and Regulation, Oscillators and Clocks; Interfacing GPS Receivers; GPS NEMA Standard; Interface GSM Modems; Modem AT Commands.
  • Design & Development: Design Plans (Project Specifications, etc.); Sourcing and Selection of Controllers and Components; Designing Circuits; Flowcharts and Programs; Implementation and Packaging; Documentation.
Undergrad/Postgrad: 
Undergraduate
Evaluation: 
  • Final Written Examination (2 hours) 60%
  • Course Work: 40%
    • In-course Test (1 hour) 20%
    • Assignments 20%
Learning Objectives: 

At the end of this course students should be able to:

  • identify devices built around embedded system technology.
  • list the components which makes up microcontrollers.
  • describe and explain the operation of each microcontroller component.
  • write and explain simple assembly language programs.
  • write and explain simple embedded C language programs.
  • write and simulate microcontroller programs using software development tools.
  • program embedded controllers using hardware tools.
  • interface different input devices with an embedded controller.
  • interface different output devices with an embedded controller.
  • interface different motors, including dc motor, stepper motor and servo motor, with a      microcontroller.
  • interface serial devices, such as GPS receivers and GSM modems, with a microcontroller.
  • design and construct simple hardware circuits to test and debug developed embedded codes.
  • design and implement simple embedded system solutions.
PHYS1421 - Electricity and Magnetism OR ELNG1101 - Physics for Engineers and ECSE1109 - Programming for Engineers I OR Equivalent and ELET1405 - Practices in Basic Electronics

Text Book:

AVR Microcontroller and Embedded Systems: Using Assembly and C (Pearson Custom Electronics Technology) Muhammad Ali Mazidi, Sarmad Naimi, Sepehr Naimi

Recommended Readings:

  • Embedded C Programming And The Atmel AVR,2nd Edition, by Richard H. Barnett, Sarah Cox, and Larry O'Cull:Delmar Cengage Learning, 2006
  • Atmel AVR Microcontroller Primer: Programming and Interfacing, by Steven F. Barrett and Daniel J. Pack: Morgan & Claypool Publishers, 2008
  • Embedded Systems: Architecture, Programming and Design,by Raj Kamal, McGraw Hill, 2008.

Online Resources:

Course Code: 
ELET2450
Credits: 
3 Credits
Level: 
Level 2
Top of Page