ROBT305 – Embedded Systems

Fall 2017 Semester

Course Instructor: Dr. Almas Shintemirov  

Class Times:   Tuesdays, Thursdays 12.00 – 1.15 pm

Prerequisite:  ROBT206 – Microcontrollers with Laboratory

Course Overview
Embedded systems control everything from space robot rovers to home electronics. Any system that responds at the pace of relevant events has real-time requirements and constraints whether the timescale is short like the airbag controls for an automobile or longer like the flight scheduling system for an airline. This course introduces underlying scientific and engineering principles behind embedded real-time systems. The course covers the software aspects of embedded processor architectures, along with advanced topics such as real-time operating system design and analysis. Students can expect to learn how to program with the embedded architecture and apply real-time principles that are used to drive critical embedded systems like robotics, automobiles, avionics, medical equipment, etc. Topics covered include embedded architectures; concurrency; real-time principles (multi-tasking, scheduling, synchronization), etc.  Through a series of practical exercises and a final project with state-of-the-art system-in-chip microprocessor boards students will acquire skills in the design/implementation of core embedded functionality using Linux based C programming tools and libraries. 

Course Textbooks

  • Real-Time Embedded Systems: Open-Source Operating Systems Perspective by I. C. Bertolotti and G. Manduchi, 2012
  • Logic and Computer Design Fundamentals by M.M. Mano and C.R. Kime, 4th edition, 2014
  • Exploring BeagleBone: Tools and Techniques for Building 

    with Embedded Linux by D. Molloy, 2014

  • Operating System Concepts by A. Silberschatz, P. Baer Galvin and G. Gagne, 9th edition, 2012

Course Topics

– Embedded Systems Hardware:  Simple CPU Architecture, RISC and CISC architectures, Pipelining, Interrupts, I/O interface, Direct Memory Access, Analog-Digital Conversion;
– Operating systems, Multithreading, Real-Time Systems;
– Intertask Communication and Process Synchronization: Mutex, Semaphores, Monitors
– Deadlocks, Task Priority Inversion; 
– Embedded Linux, POSIX Pthreads library programming practice
– Cyclic Task Scheduling, Preemptive Task Scheduling (Round-Robin);
– Real-Time Scheduling: Rate Monotonic, Earlest Deadline First Scheduling;

Selected Final Projects

Task: Design an embedded PWM control system for a Dagu Rover mobile robot chassis with DC motors and encoders using a 2 -channel motor driver board and a BeagleBone Black board. Implement servo (PID position) and/or joystick based robot controls.