Embedded Systems Laboratory
Embedded Systems Laboratory is an advanced course offered
within the context of our Computer Science Degree Program. It is a
practical course focused on the development of embedded systems
based on microcontrollers and programmable logic devices. A set
of books and manuals (see Literature
bellow) gives technical support to the course, while a set of
hardware kits (see laboratory bellow)
yields a platform for the practical exercises carried out along the course.
Requisites
The requisites for this course are Computer Organization and
Digital Systems.
Program (72 hours)
Topic |
Notes |
Hours |
1 - Introduction |
|
3 |
1.1 - Historic Perspective |
|
|
1.2 - Architectural overview |
|
|
2 - Embedded System Development |
|
12 |
2.1 - Design principles |
|
|
2.2 - Real-time constraints |
|
|
2.3 - Implementation techniques |
|
|
2.4 - Testing, emulation and debugging
techniques |
|
|
3 - I/O Basics |
|
9 |
3.1 - I/O ports |
|
|
3.2 - Interrupt handling |
|
|
3.3 - PIO |
|
|
3.4 - DMA |
|
|
4 - Timers, Counters and Clocks |
|
6 |
4.1 - Timers and counters |
|
|
4.2 - Watchdog |
|
|
4.3 - Real-time clock |
|
|
5 - A/D Programming |
|
9 |
5.1 - Sensors (A -> D) |
|
|
5.2 - Actuators (D -> A) |
|
|
6 - Introduction to Real-time Systems |
|
9 |
7 - Programmable Logic |
|
21 |
7.1 - Programmable logic devices |
|
|
7.2 - Hardware description languages |
|
|
7.3 - System on Chip |
|
|
8 - High-level synthesis |
|
6 |
9 - Discussion |
|
3 |
Evaluation
Students will have their skills to develop dedicated computing
systems improved and evaluated through class exercises.
- Led blinking
- Light keyboard
- Light keyboard the hard way
- Debugging challenge
- J-Tag debugging
- Digital voltimeter
- Noise generator
- Real-time Operating System
- Simple calculator
- RTL Counter
- RTL Priority Queue
- SoC implementation (optional)
- HLS of a FIR
- Edward A. Lee and Sanjit A. Seshia,
Introduction to Embedded Systems: a Cyber-Physical Systems Approach,
http://LeeSeshia.org, 2011.
- Peter Marwedel,
Embedded System Design,
2nd ed., Springer, 2011.
- Waine Wolf,
Computers as Components - Principles of Embedded Computing System Design,
Morgan Kaufmann, 2008.
- Bruce Powel Douglass,
Design Patterns for Embedded Systems in C: An Embedded Software Engineering Toolkit,
Elsevier, 2011.
- M. Tim Jones,
Anatomy of Real-time Linux Architectures
IBM, 2008.
- Peter J. Ashenden,
The Designer's Guide to VHDL,
Morgan Kaufmann, 2nd ed., 2002.
- Qing Li and Caroline Yao,
Real-time Concepts for Embedded Systems,
CMP, 2003.
- Steve Heath,
Embedded Systems Design,
Newnes, 2003.
- Microcontroller's Manuals, User Guides and Data sheets.
Students will have the following kits available for class
exercises: Altera Flex and Stratix (NIOS), Analog Devices Blackfin,
ARM (7TDMI, CortexMx, CortexA8, CortexA9, EPOSMote and Raspberry
PI), Atmel AVR8 (including Arduino), Hitachi H8, IBM PowerPC 405,
Intel XScale, Intel x86/Quark (including Galileo), SPARC (Leon),
Motorola HCxx, Xilinx Spartan3, Virtex2 (p,u-Blaze), Virtex2Pro
(PowerPC), Virtex4FX (PowerPC), Virtex4SX (DSP), Virtex6 and
Zynq.
Useful Tools
AVR on Unix
AVR on Windows
Programmable logic tools
- We are currently working with Xilinx, Calypto, and Mentor Graphics tools. Information about installation and licensing will be given on class.
Useful Docs
Editions