ECE 592-603 Embedded Systems Architectures
 

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. 3 credit hours.

 
   

• Prerequisite
 

C or better in ECE 306 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

• 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


• Computer and Internet Requirements
 

NCSU and Engineering Online have recommended minimum specifications for computers. For details, click here.


• Instructor
 

Dr. Alexander Dean, Associate Professor
Electrical & Computer Engineering
Engineering Building II (EB2) 2004C, Box 7911
NCSU Campus
Raleigh, NC 27695


Phone:
919-513-4021
Fax: 919-513-7075
Email: agdean@eos.ncsu.edu