EECE4534: Microprocessor-Based Design
Embedded systems are omnipresent in our
environment, e.g. implementing
media players, cell phones, or realizing complex control systems in a
car. The
majority of embedded systems use one or more microprocessors for
control and
data processing, which is assisted by some generic or specialized
hardware. A successful
computer engineer needs to be well versed in both software and hardware
aspects
to master the design and implementation of such complex embedded
systems.
This course (EECE
4534) will introduce you to practical microprocessor-based system
design
issues, such as system specification, understanding hardware
capabilities (e.g.
embedded processor organization; addressing modes; memory hierarchy;
parallel
and serial bus protocols), hardware/software co-design aspects,
mastering hardware/software
interfaces and the design of device drivers.
The course is tightly integrated with the
mandatory
laboratory (EECE 4535) in which you
have the opportunity to practically realize the theoretic aspects of
the lecture.
The lab has two parts. The first portion gradually introduces you to
embedded systems
through a set of ready made exercises (e.g. light dimmer, controlling a
servo
motor, voice recorder, real-time voice transmission). These exercises
require you
to design, construct, and debug hardware and software (C and some
assembly) that
runs on a common embedded platform using the BlackFin
BF527 microprocessor. The second portion of the lab allows you to
explore a
project of your own choosing within a team. Each team will specify,
design and
implement a complete embedded system, integrating hardware and software.
Topics:
- Embedded systems characteristics and challenges
- Systematic design process
- From specification to implementation
- System specification (Models of Computation)
- Embedded processor organization
- Addressing modes
- Memory hierarchy
- Communication architecture
- Parallel busses
- Serial busses (RS232, I2C, SPI)
- Hardware/Software Interface
- Interface design
- Electrical characteristics and buffering
- Device drivers
- Interrupt handling
- Exception handling
- Peripherals
- Timer
- Sensors (e.g.D/A, A/D)
- Direct Memory Access (DMA)
- Embedded system programming (C, assembly)
- Real-time processing
Prerequisites