COE 306: Introduction to Embedded Systems

Catalog Description

Introduction to Embedded Systems. Microcontroller Hardware. ARM Processor. CPU Programming. Memory and I/O. Interfacing: Parallel and Serial Communication. A/D and D/A conversion Embedded system design methodologies. Specifications. Designing robust software for embedded systems. RTOS features.

Prerequisite: COE 301 and COE 203

Instructor

Dr. Ahmad Khayyat. Office: 22/150. Phone: 8234. Email: akhayyat@kfupm.edu.sa. Website: http://www.ccse.kfupm.edu.sa/~akhayyat

Office Hours

Sunday, Tuesday, Thursday 9 AM – 11 AM.

Course Website

https://blackboard.kfupm.edu.sa/

Textbook

Wayne Wolf, “Computers as Components: Principles of Embedded Computing System Design”, Third Edition, Morgan Kaufmann, 2012.

Course Learning Outcomes

  1. Ability to apply knowledge of mathematics and science to design an embedded system using state-of-the-art microcontroller subsystems.

  2. Ability to design a microcontroller-based embedded system to meet given specifications.

  3. Ability to troubleshoot, debug, and test a microcontroller-based embedded system using learned debugging techniques and tools.

  4. Ability to identify, formulate, and solve engineering problems in microcontroller-based embedded systems design.

Grading Policy

Assignments 10%
Quizzes 10%
Exam I 15% Sun. March 9, 2014, 6:30 PM
Exam II 15% Mon. April 21, 2014, 6:30 PM
Lab and project 20%
Final Exam 30% Sun. May 18, 2014, 7 PM
  • Attendance will be taken regularly. For each missed 3 classes, a penalty of 0.5 will be deducted.
  • Excuses for officially authorized absences must be presented no later than one week following resumption of class attendance.
  • Late assignments will be accepted but you will be penalized 10% for each late day.
  • A student caught cheating in any of the assignments will get 0 out of 10%. Any identical solutions are considered cheating.
  • No makeup will be made for missing Quizzes or Exams.

Course Topics

Week 1: Introduction to Embedded Systems

Introduction to Embedded Systems; Requirements Analysis; Specifications; Design methodologies overview; Formalism.

Weeks 2 and 3: Microcontroller Organization

Structure of Microcontrollers, CPU, Memory and I/O Structure, Various Microcontrollers, ARM, PIC, and TI DSPs.

Weeks 4 and 5: CPU and Bus Systems

I/O and Memory mapping, Addressing modes, Interrupts and Traps, Bus protocols, DMA, System Bus Configurations, the AMBA and AHB Buses, Memory devices: RAM, ROM, SDRAM, Flash, Basic I/O Interfaces.

Weeks 6 through 9: Interfacing

Parallel Ports, LEDs, Pushbutton, Keypad, 7-Segment Display, LCD Display, Touchscreen, Timers and Counters, Serial Interface: UART RS-232, RS-422, RS-485, SPI, I2C, Synchronous, A/D and D/A conversion, Audio I2S, PWM, Input Capture, Servo and DC Motor Control, Networked Embedded Systems: Ethernet, WiFi and ZigBee.

Weeks 10 and 11: Embedded Programming Techniques

C-language primer, State machines, Streams, Circular buffers, Queues, Models of programs, Program Optimization, Using Compilers, Power-aware programming, Multitasking, Scheduling and Introduction to RTOS.

Week 12: Development and Debugging

Development Environment, Hardware/Software Debugging Techniques, Performance Analysis, The use of hardware debugging modules: ICE, JTAG, Scopes, Multimeters and Logic Analyzers, Verification and Tests, Testplan.

Week 13: Multiprocessor Embedded Systems

CPU and Hardware Acceleration, Mutiprocessor Performance Analysis, Using FPGAs, Case Study Consumer Electronics Architecture: Cell Phone, Digital Camera, Audio Player, DVD Player.

Week 14: System Design Techniques

Design Methodologies and Flows, Requirements Analysis, Specifications Description, System Analysis and Architecture Design, Quality Assurance.

Lab Topics

  • Development environment: hardware and software
  • General purpose input/output (GPIO)
  • Interrupts
  • Serial communication
  • Analog-to-digital and digital-to-analog conversion
  • Real-time clock
  • External memory