Credits: 3

Semesters Offered

Summer 2018, Summer 2019, Spring 2021, Spring 2022, Spring 2023, Spring 2024

Learning Objectives

  • Familiarize with the concepts and terminology of embedded systems design flow
  • Understand the embedded system architecture and RTOS fundamentals.
  • Apply the concepts of RTOS for a given application.
  • Develop embedded software to program a microcontroller 
  • Design hardware modules to be used for an embedded system
  • Integrate both hardware and software designs using co-design techniques

Topics Covered

  • Introduction to embedded systems, HW & SW components of embedded systems
  • Signal conditioning, OPAMPs, ADC/DAC
  • Embedded processor architectures
  • FPGA design for embedded Systems
  • Introduction to hardware-software co-design 
  • RTOS (Multitasking, Scheduling, Queue management, Interrupt management, Timers, Mailboxes, Semaphore)
  • Introduction to Embedded Security

Additional Course Information

Prerequisite: ENEE350; and completion of all lower division technical courses in the EE/CE curriculum.
Restriction: Must be in one of the following programs (Engineering: Computer; Engineering: Electrical).

Embedded systems are part of most of the modern technological systems such as Industrial machines, consumer electronics, agricultural and process industry devices, automobiles, medical equipment, cameras, household appliances, airplanes, vending machines and toys, as well as mobile devices. Embedded systems are comprised of hardware, software and firmware. Design methodologies and platforms for real time modern embedded digital systems have been evolving over time. In order to meet the system specifications, many models, tools, and operating systems exist to automate the design space exploration phase. 

In this course, students will be introduced to the fundamental concepts of Real Time Operating System (RTOS), microcontroller based embedded system design, and embedded digital hardware design. Using hands-on experience developed through practical designs, exercises, and projects; we will discuss in detail how to analyze, implement, and synthesize these systems.