CS 587 (same as EE-587) - Microcomputer Systems Design
Credits: 3
Course Description
A course in the design of microcomputer systems for hardware engineers which includes the following topics: use of uncommitted logic arrays in instruction set design; hardware support for operating systems and programming languages; customizing microcomputers for specific execution environments; and control of concurrency.
Prereq: EE 581 and EE 583, or consent of instructor. Engineering standing.
Needed Skills
Students need a basic ability to program in a high-level programming language such as C, C++, or Java. Knowledge of digital logic is assumed.
Learning Outcomes
EE 587 is a 'hands-on' course where we will use the latest microcontrollers to implement embedded systems. Lectures will cover the theory behind microcontroller architecture, programming, and interfacing and lab projects will back up that theory with actual implementations using microcontrollers. Students will be expected to spend a considerable amount of time outside of lecture, in the lab (or elsewhere) experimenting with a microcontroller development board and building an embedded system.
Measures
Students who fulfill the requirements for this course will have demonstrated:
1. An ability to write programs for a microcontroller in a high-level language.
2. An ability to interface a microcontroller to a variety of devices.
3. An understanding of the development of embedded systems controlled by modern microcontrollers and the capabilities and limitations of such systems.
CAC Categories
|
Topic |
Core |
Advanced |
|
Math
Fundamentals |
0 |
0 |
|
Data
Structures |
0 |
0 |
|
Algorithms
& Software Design |
1 |
0 |
|
Computer
Organization and Architecture |
35 |
0 |
|
Concepts
of Programming Languages |
6 |
0 |
|
Social
and ethical issues |
0 |
0 |
|
Total |
42 |
0 |
Math Fundamentals: none
Data Structures: none
Algorithms and Software (1): Core (1): timing diagrams (1).
Computer Organization and Architecture (35): Core (35): The Intel 8051 family of microcontrollers (6), Cygnal 8051 microcontrollers, The Cygnal Evaluation board and Interfacing the board to your circuits (4), the Cygnal integrated development environment (2), 8051 timers, interrupts, and real-time processing (10), sensor types (5), wireless interfaces for embedded systems (8).
Concepts of Programming Languages (6): Core (6): Assembly language programming for the 8051 (4). C programming of a basic chip using the Keil C compiler (2).
Social and Ethical Issues: none
Oral Communication (presentations)
Students give oral status reports several times during the semester. An oral final project presentation is required.
Written Communication
Homework assignments are required as is formal documentation of the final project.
Coverage
Theoretical Content: 15%
Timing diagrams, instruction sets, interrupts, real-time processing.
Problem Analysis: 35%
Architectures, Inter 8051 architecture, timing, sensors, and embedded systems.
Solution Design: 50%
Individual project designs and implementations.
Student Evaluation and Feedback
Students are evaluated on their work (homeworks, programs, exams). Students receive back their homework, programs, and exams. These papers are marked to indicate problems and they point out correct or better solutions. Problems that turn out to be especially difficult are discussed in class during lectures or during recitations.
Course Evaluation Questions
The course has helped me to:
37. Gain the ability to write programs for a microcontroller in assembly language.
38. Gain the ability to write programs for a microcontroller in a high-level language.
39. Know how to interface a microcontroller to a variety of devices.
40. Understand the uses and limitations of embedded systems.
Possible Textbook
The 8051 Microcontroller and Embedded Systems,
M. A. Mazidi, J. G.
Mazidi, Prentice Hall, 2000 (ISBN: 0-13-861022-3).