ECE 560 Embedded System Architectures
3 Credit Hours
(previously offered as ECE 592)
This course will teach you how to:
- Architect and design embedded systems for different application domains
- Create multithreaded software with and without a real-time kernel Offload processing to hardware peripherals and direct memory access controllers
- Interface with touch display panels, SD flash storage and wireless networks
- Develop embedded systems effectively using industry methods
It will help you apply what you may have learned in other courses, such as performing digital signal processing on streaming data, applying digital control systems to power conversion, LED lighting and motor control, and interfacing with analog and digital sensors and other devices.
Prerequisite
C or better in ECE 306 Introduction to Embedded Systems or equivalent course or experience with programming a microcontroller and its peripherals in C.
Course Objectives
This course will teach you how to:
- Architect and design embedded systems for different application domains
- Create multithreaded software with and without a real-time kernel
- Offload processing to hardware peripherals and direct memory access controllers
- Interface with touch display panels, SD flash storage and wireless networks
- Develop embedded systems effectively using industry methods
These skills are in high demand for the embedded systems industry. There will be occasional guest lectures by speakers from the embedded systems industry.
The target platform features a modern microcontroller (Kinetis KL25Z MCU with ARM Cortex-M0+ core) and expansion board (Color LCD with touchscreen, audio, microSD, etc.). This is also used in ECE 461/561 (Embedded System Optimization).
- Introduction to Cortex-M0+ Core and Kinetis KL25Z Peripherals
- Multithreaded System Design
- Schedulers, interrupts and state machines
- Data buffering
- Preemptive real-time kernel (CMSIS-RTOS RTX)
- Basic real-time analysis
- Hardware: Leveraging autonomy of peripherals
- Peripheral triggering and DMA
- Special peripheral features
- Embedded Software Engineering Concepts
- Software development life cycle models
- Debugability, maintainability, testability, traceability, scalability
- Application Architectures
- Control Systems
- SMPS power conversion (e.g. buck converter, constant current LED driver)
- Mechatronics
- Networking (wired, wireless) and packet processing
- Graphical user interfaces (e.g. color LCD touch screen)
- Streaming Data
- Digital signal processing, communications
- Interfacing with mass storage (e.g. microSD card)
- Dependable Systems and Functional Safety
- Software failures
- Hardware failures
- Control Systems
Course Requirements
Midterm exam and final exam.
Programming projects (four or five)
No homework.
Textbook
Optional reference textbook for 592-603:
Alexander Dean, Embedded Systems Fundamentals with ARM Cortex-M based Microcontrollers: A Practical Approach, ARM Education Media, 1st Edition, ISBN 978-1-911531-03-6