Embedded System Design

ECEN 4613/5613 Fall 2006

Lectures: Wednesday Evenings, 5:00pm-7:30pm, ECEE 1B28
Instructor: Professor Linden McClure, Department of Electrical and Computer Engineering
E-mail and Office: Linden.McClure@Colorado.EDU, ECEE 1B32A, 970-898-0946
Instructor Office Hours: Wednesdays 7:30pm-8:30pm and by appointment; alternating Saturdays 11:30-3
Course Web Site:
http://ece.colorado.edu/~mcclurel/index.html

TAs: Sayantan Bhattacharya, TBD

TA Office Hours: TBD weekdays, evenings, weekends, and by appointment

http://ece.colorado.edu/~mcclurel/office_hours.html

Course Description

In this class, the fundamentals of embedded system hardware and firmware design will be explored. Issues such as embedded processor selection, hardware/firmware partitioning, glue logic, circuit design, circuit layout, circuit debugging, development tools, firmware architecture, firmware design, and firmware debugging will be discussed. The Intel 8051, a very popular microcontroller, will be studied. The architecture and instruction set of the microcontroller will be discussed, and a wirewrapped microcontroller board will be built and debugged by each student. The course will culminate with a significant final project which will extend the base microcontroller board completed earlier in the course. Learning may be supplemented with periodic guest lectures by embedded systems engineers from industry. Depending on the interests of the students, other topics may be covered.

Required Background

Knowledge of microprocessor architecture and assembly language, microprocessor peripherals, digital design, and the C programming language is a prerequisite for this course. The corresponding CU-Boulder courses are ECEN 2120, ECEN 3100, and CSCI 1300. Although not listed as formal prerequisites, circuits/electronics (ECEN 3250) and computer organization (ECEN 4593) are highly recommended. An understanding of compilers, assemblers, linkers, operating systems, analog design, diodes, transistors, and electromagnetic fields and waves will be useful. Refer to the course FAQ for more information.

Course Context

Embedded systems are involved in almost every facet of modern life. Cell phones, pagers, PDAs, answering machines, microwave ovens, televisions, VCRs, CD/DVD players, video game consoles, GPS devices, network routers, fax machines, cameras, music synthesizers, planes, spacecraft, boats, and cars all contain embedded processors. Late model cars may contain as many as 65 embedded microprocessors, controlling such tasks as antilock braking, climate control, engine control, audio system control, airbag deployment, etc. Logic analyzers and digital storage oscilloscopes utilize embedded processors to support real-time operation. Even PCs, which are designed around powerful CPUs such as the Intel Pentium 4, contain embedded systems. Floppy and hard disk drives, CD-RW and DVD-ROM drives, and external peripherals such as printers, scanners, and other SCSI, USB, or IEEE 1394 devices all contain embedded processors. During 1998, microprocessor manufacturers sold on the order of 100 million processors for use as computer CPUs. In comparison, during the same time frame, microprocessor manufacturers sold more than 3 billion embedded processors, primarily consisting of 32-bit, 16-bit, 8-bit, and 4-bit devices. The tremendous number of applications for embedded computing has given rise to high demand for engineers with experience in designing and implementing embedded systems. This course will give students hands-on experience and opportunities for experimentation in this exciting field.

Course Mechanics

This course is meant to be a hands-on type course, giving students a chance to hear and read about embedded system topics, and then put those concepts to work by developing and debugging embedded system hardware and firmware. Student participation in active discussions of the course topics will be expected. Lecture periods will include a short break sometime in the middle. The course grade will be based on class attendance and participation, lab assignments, quizzes, teamwork, and an embedded system term project. Four structured lab assignments will be given. Lectures will be closely integrated with the lab assignments and will be organized to provide students with the information necessary to successfully complete each assignment. Students may work independently or in groups of up to three on the term project. Team members will be expected to share the workload equally. Various homework assignments will be given to guide students through the course material, but most of these will be optional. The instructor and TAs will be available to help students during office hours, by appointment, and by e-mail. Students with questions should send e-mail to the TAs and the instructor to ensure the quickest response time. All e-mail correspondence related to this class should include the text "ESDF06" and a specific subject as the subject line of the message, so that e-mail may be filtered automatically. Course information and documents will be available on the course web site throughout the semester.

Course Organization

The course has several goals. First, it will expose students to the field of embedded systems, and will provide a knowledge foundation which will enable students to pursue subsequent courses in real-time embedded systems software and computer design. Students will become familiar with the associated technical vocabulary and will learn about potential career opportunities in the field of embedded system design. Second, students will have the opportunity to develop an embedded system from the ground up, starting with electronic components and data sheets, and progressing through construction of hardware and implementation of firmware. This will provide students with an opportunity to gain a thorough understanding of the phases of embedded system development and familiarity with hardware and software development and debugging tools. Third, students will be given the opportunity to develop design skills, through well-bounded design assignments as well as open-ended design assignments. Fourth, students will have the opportunity to learn how information gained in multiple other core engineering classes comes together to be applied to real-world design. Fifth, students will be given an opportunity to experience embedded system design in a manner similar to that practiced in industry, and will gain knowledge beneficial for obtaining a job in this field.

The course will be structured around several key lab assignments and the final project. During the first part of the course, students will focus primarily on basic embedded system concepts, and will develop a basic hardware platform consisting of an 8051 microcontroller family derivative and supporting circuitry. At the same time, students will become exposed to the 8051 instruction set, and learn how to use a cross assembler and simulator to develop code. During the middle of the course, students will focus more on firmware concepts, and will develop code in assembly and C to control the basic hardware. In addition, during this period students will add additional hardware elements to their boards, and will develop the firmware to control this new hardware. During the final weeks of the course, students will focus on significant projects, and will proceed through design, development, documentation, and presentation of their work. Although the course is scheduled for Wednesday evenings, lectures may not be given on all of these days during the semester; instead, one to three class periods may be used to provide students with additional time to work on their development assignments. In order to give students perspective from multiple viewpoints, class discussions on several topics will be pursued. Guest speakers may discuss embedded systems topics during the semester.

Tentative Syllabus

Note: The following syllabus is tentative, and is provided to give insight into the types of topics to be discussed during the semester. However, not all topics will be discussed in the order given or on the dates shown. Adjustments will be made as the course progresses.

Week 1: August 30

Week 2: September 6

Week 3: September 13

Week 4: September 20 (Finish Lab #1 this week)

Week 5: September 27

Week 6: October 4 (Finish Lab #2 this week)

Week 7: October 11

Week 8: October 18

Week 9: October 25 (Finish Lab #3 this week)

Week 10: November 1

Week 11: November 8 (Finish Lab #4 this week)

Week 12: November 15

Week 13: November 22 (Fall Break, Thanksgiving Vacation)

Week 14: November 29

Week 15: December 6

Week 16: December 13

Week 17: No Final Exam

Lab Assignment Overview

Signature

Due Date

Submission

Deadline

Lab #1: Basic microcontroller hardware, 8051 assembly, simulator.

9/23/2006

9/27/2006

Lab #2: Decode logic, EPROM, basic user I/O, timer ISRs and assembly.

10/07/2006

10/11/2006

Lab #3: SRAM, RS-232, monitor/debugger, assembly, intro to 8051 C.

10/28/2006

11/01/2006

Lab #4: EEPROM, LCD, and C programming.

11/11/2006

11/15/2006

Final Project/Lab #5: Student's choice.

12/13/2006

12/13/2006

Lab assignments will be scored on a basis of 100 points each. Assignments which are not completed (signatures obtained) by the Due Date will be late and will receive at least a 5 point deduction. Assignments which are not submitted by the Deadline date will receive additional deductions. The final project may not be submitted late.

Course Requirements

Academic Accommodations

Students with disabilities who qualify for academic accommodations must provide a letter from Disability Services (DS) and discuss specific needs with the professor as soon as possible, preferably during the first two weeks of class. DS determines accommodations based on documented disabilities (303-492-8671, Willard 322, http://www.colorado.edu/disabilityservices). Other accommodations may be made in accordance with CU policies (http://www.colorado.edu/policies/index.html). It is the student's responsibility to notify the instructor of anticipated conflicts as early in the semester as possible so that there is adequate time to make necessary arrangements.

Religious Observances

Campus policy regarding religious observances requires that faculty make every effort to reasonably and fairly deal with all students who, because of religious obligations, have conflicts with scheduled exams, assignments or required attendance. In this class, notify the professor of anticipated conflicts as early in the semester as possible so that there is adequate time to make necessary arrangements. See policy details at http://www.colorado.edu/policies/fac_relig.html

Honor Code

All students of the University of Colorado at Boulder are responsible for knowing and adhering to the academic integrity policy of this institution. Violations of this policy may include: cheating, plagiarism, aid of academic dishonesty, fabrication, lying, bribery, and threatening behavior. All incidents of academic misconduct shall be reported to the Honor Code Council (honor@colorado.edu; 303-725-2273). Students who are found to be in violation of the academic integrity policy will be subject to both academic sanctions from the faculty member and non-academic sanctions (including but not limited to university probation, suspension, or expulsion). Additional information on the Honor Code can be found at http://www.colorado.edu/policies/honor.html and at http://www.colorado.edu/academics/honorcode/

Classroom Behavior

Students and faculty each have responsibility for maintaining an appropriate learning environment. Students who fail to adhere to behavioral standards may be subject to discipline. Faculty have the professional responsibility to treat students with understanding, dignity and respect, to guide classroom discussion and to set reasonable limits on the manner in which students express opinions. Professional courtesy and sensitivity are especially important with respect to individuals and topics dealing with
differences of race, culture, religion, politics, sexual orientation, gender variance, and nationalities. Class rosters are provided to the instructor with the student's legal name. I will gladly honor your request to address you by an alternate name or gender pronoun. Please advise me of this preference early in the semester so that I may make appropriate changes to my records. See policies at
http://www.colorado.edu/policies/classbehavior.html and at http://www.colorado.edu/studentaffairs/judicialaffairs/code.html#student_code

Discrimination and Harassment

The University of Colorado at Boulder policies on Discrimination and Harassment, Sexual Harassment, and Amorous Relationships apply to all students, staff and faculty. Any student, staff or faculty member who believes s/he has been the subject of discrimination or harassment based upon race, color, national origin, sex, age, disability, religion, sexual orientation, or veteran status should contact the Office of Discrimination and Harassment (ODH) at 303-492-2127 or the Office of Judicial Affairs at 303-492-5550. Information about the ODH and the campus resources available to assist individuals regarding discrimination or harassment can be obtained at:

http://www.colorado.edu/odh

http://www.colorado.edu/policies/discrimination.html

http://www.cu.edu/policies/Personnel/sexharass.html

Grading

Expectations for students will be high. Student performance in this class will be compared to student performance across ECE undergraduate and graduate classes. A grade of 'A' will be reserved for students who have delivered outstanding work and who have clearly demonstrated a superior mastery of the course material. The majority of each student's course grade will be determined by the quality of the hardware and firmware assignments and the final project completed by the student during the semester. The rough weighting of each course element is shown below:

4% Lab #1

17% Lab #2

17% Lab #3

17% Lab #4

25% Final Project

13% Quizzes, Lab Practical, PDR

7% Class Participation, Attitude, Teamwork, Effort/Subjective, Homework

The normal CU grading standards as shown below will be applied to this class.

A

Superior, outstanding

A-

B+

B

Above average

B-

C+

C

Average, has adequately met course requirements

C-

D+

D

Below average

D-

Minimum passing grade

F

Fail, has not met course requirements

References

The course will be taught using technical application notes, data books, and technical articles. For those students who desire additional references, a list is provided below. In addition, a tremendous amount of useful information can be found on the Internet. Documentation and links to useful web sites will be available on the course web site. A copy of the following books will be on reserve for the class in the Engineering Library on the CU-Boulder campus.