Master Course Syllabus for EE 472 (ABET sheet)

Title: MICROCOMPUTER SYSTEMS

Credits: 5 (4 lecture - 1 lab)

UW Course Catalog Description

Coordinator: James Peckol, Senior Lecturer, Electrical Engineering

Goals: To provide a detailed understanding of the specification, design, implementation, and test of the software side of real time embedded microcomputer systems.

Objectives:

  1. To become fully conversant with the hardware architecture of a microprocessor and its design.
  2. To become fully conversant with the design of a digital system in which the above microprocessor is placed including memory and I/O support devices.
  3. To attain a high level of proficiency with the C language, and apply that knowledge to the solution of a series of programming assignments. Good documentation skills and program design will be expected.
  4. To attain proficiency in the understanding and design of systems subject to real time constraints.
  5. To learn how to use debugging tools to verify proper program execution on a dedicated target system.
  6. To learn how to test a program executing on a dedicated target system.

Textbook:  Embedded Systems - A Contemporary Design Tool - James K. Peckol

Reference:

Prerequisites by Topic:

  1. Digital logic, circuits and systems
  2. Basic programming skills
  3. Concepts of computer design and organization

 

Topics:

  1. Multi-level machines and computer systems (2 lectures)
  2. CPU architecture (3)
  3. Editors/Assemblers/In-Circuit Emulation (1)
  4. Addressing modes; instruction set; translators (2)
  5. Program Design; Basic I/O; keyboards and displays (3)
  6. Modular Programming and high-level programming (6)
  7. Serial communication; Macros (3)
  8. Interrupts and timers (2)
  9. Hardware/instruction timing; System bus (2)
  10. A/D and D/A (2)
  11. Operating Systems; task scheduling; real time constraints (6)
  12. Memories; Discs; DMA (3)
  13. Systems and co-processors; Other microprocessors (3)

Course Structure: An integrated series of lectures and laboratory exercises build on prior knowledge of digital systems while focusing on a particular microprocessor. Reading assignments are supplemented with regular lab assignments which seek to reinforce concepts covered in the lectures and the reading. A significant portion of the lecture time is used to understand the design and operation of the processor and the system in which it is embedded. Four to five progressively more difficult C language programming assignments that seek to teach the student good design and documentation as well as to verify functionality as required in the specifications of the assignment are given. Source level debugging is used by the students to debug their programs. One comprehensive examination is used to verify that the concepts covered in both the lectures and the labs are mastered.

Computer Resources: Extensive use of interactive system for C language program development; use of tools for source level program debug.

Laboratory:

Examples of labs that might be used:

  1. Familiarization with development tools (editor, assembler, linker); introduction to source level program debug.
  2. Programmed I/O (e.g., Freeway Reader Board using display controller).
  3. Modular programming; Interrupts (e.g., Multifunction clock).
  4. A/D and D/A (e.g., Data acquisition and control system).
  5. The use of interrupts and timing (e.g. design and development of a simple real time kernel)

Grading:

There are three laboratory assignments, one final project, and one midterm exam.  The laboratory counts 40%, midterm 30% and the final project 30% of the grade.

Outcome Coverage:

(a)  An ability to apply knowledge of mathematics, science, and engineering.   Four of the five laboratories require the student to assess and analyze the assignment, then apply basic engineering knowledge to either solve the problem or state why (based upon their analysis) they are unable to fully satisfy the requirements. (H)

(b)  An ability to design and conduct experiments, as well as to analyze and interpret data.  A significant component of designing and developing a real world application is ensuring that one's system performs to specification in the intended environment.  Such assurance can only be gained by testing the system in such a context then analyzing the results of those tests.  Such a process is integral to this class and to each of the labs and the final project. (H)

(c)   An ability to design a system, component or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability and sustainability.  Four of the five laboratories assign a particular design problem to be solved. Students will design and implement interrupt service routines, hard real time systems, and solutions to constrained real world problems in the laboratory. The final project brings all of the concepts together through the development of a (simplified) real world project. Each of the design projects provides a high-level requirements specification and a design specification for the problem that must be solved.  For the final project, the students are given only a set of requirements and they must interpret the requirements and implement the design specification. (M)

(d)  An ability to function on multidisciplinary teams.  Although not multidisciplinary since the class is in the student's selected major, the students work as members of 2-3 person teams to execute each of the labs and the final project. (L)

(e)   An ability to identify, formulate and solve engineering problems. Covered by (a-c) above. (M)

(f)    An understanding of professional and ethical responsibilities.  Ethics and professional behavior are strongly stressed throughout the course.  Considered areas include copyrights, national and international patents, licensed material, intellectual property, plagiarism, citing sources for material or idea, and using published algorithms and designs. Projects and lab assignments that do not cite sources as necessary are given failing marks. (M)

(g)   An ability to communicate effectively.  All of the lab projects will require write-ups.  Additionally, each student in a design team must explain their design and the operation of their portion of each project. (M)

(h)  The broad education necessary to understand the impact of engineering solutions in a global, economic, environmental and societal context.  Lecture material routinely stresses the need for designs to consider international markets and the need to satisfy international standards, including those for safety and health. (L)

(i)    A recognition of the need for, and an ability to engage in life-long learning.  Lecture material continually emphasizes that today's technology is transitory and that the students must learn the basics so that these may form a foundation upon which they will build future technologies. (L)

(j)    Knowledge of contemporary issues. (N/A)

(k) An ability to use the techniques, skills and modern engineering tools necessary for engineering practice. The laboratory assignments routinely require the use of contemporary software engineering tools and techniques. (M)

 

Design/Science Content:

This course assumes that the fundamental science knowledge related to digital systems has been acquired in the earlier courses. The design of the CPU, computer system, and software are emphasized with practical hands-on experience gained by solving several open-ended programming assignments. The user interface and ease-of-use of each student's solution are specifically evaluated.

Preparer: James K. Peckol

Last revised: 10/08/2012