ECE Course Outline

ECE4180

Embedded Systems Design (3-3-4)

Prerequisites
See topical outline
Corequisites
None
Catalog Description
Processors, chipsets, busses, and I/O devices for high-end embedded systems. Embedded operating systems; device drivers and applications for embedded systems.
Textbook(s)
Mbed Handbook and Cookbook, ARM Corporation, 2012. (required) (comment: Available free online at http://mbed.org/cookbook)

Eckel, Thinking in C++, Introduction to Standard C++, Volume 2 (2nd edition), Prentice Hall, 2000. ISBN 0139798099, ISBN 9780139798092(optional) (comment: text is available free on line at http://original.jamesthornton.com/eckel/)

Deitel and Deitel, C++, How to Program (9th edition), Prentice Hall, 2011. ISBN 9780133378719(optional)

Hamblen, Introduction to Embedded Systems Using Windows Embedded CE (3rd edition), Microsoft, 2009. (required) (comment: This text is available free on-line at http://users.ece.gatech.edu/~hamblen/wemap3/CDROM_IMAGE/IntroEmbSysIII.pdf)

Topical Outline
Prerequisites: CS 1372 and (ECE 3035 or ECE 3055/3056) 
   or ECE 2031/20X2 and ECE 2035/3035 and (ECE 3040 or ECE 3055/3056) [all courses min C]


1.	Introduction to Embedded Systems (1 week)
   a.	Embedded Products (i.e., Cell Phones, Robots, GPS, Cameras, Transaction Terminals, and Industrial Controllers)
   b.	The Design and Development Process for a new embedded product
   c.	Software Development and Debug Tool Flows

2.	Hardware for Embedded Systems Design (5 Weeks)
   a.	Processors, Chipsets, and Memory
   b.	ARM and X86 ISA
   c.	I/O devices and bus interfaces
   d.	Example Design (i.e. basic parallel I/O port)
   e.	Common Bus Standards (i.e., ISA, PCI, AMBA, PCI Express)
   f.	Common I/O interface Standards (i.e., Parallel, RS-232, SPI, I2C, and USB)
   g.	Analog I/O using A/D and D/A convertors
   h.	Driving high current and high voltage I/O devices (i.e., high-power LEDs, speakers, motors, and solenoids)
   i.	Using PWM to efficiently control external I/O devices (i.e., dimmable lights, speakers, and motor speed control)
   j.	Programmed I/O
   k.	Interrupt driven I/O
   l.	Using DMA for I/O transfers
   m.	Example System Designs (i.e., small 32-bit ARM and X86-based systems)

3.	Software for Embedded Systems Design (4 Weeks)
   a.	Role of an Embedded Operating System
   b.	Hard and Soft Real-time systems 
   c.	Multitasking, Threads, and Synchronization
   d.	Operating Systems used in Embedded Devices (Windows Embedded, Linux, Android)
   e.	Overview of an example RTOS
   f.	Building an OS for a new device
   g.	Application Development using OS APIs for I/O devices and GUIs
   h.	I/O device examples (i.e., A/D, RS-232, cameras, GPS, displays, wired and wireless networks, and touch input)
   i.	BSPs and developing OS Device Drivers for new I/O devices
   j.	Developing Software for Safety Critical Systems

4.	Proposed Project Design Review (1 week)

5.	Design Project Implementation (3 weeks)

6.	Project Demo and Presentation (1week)