EE-474

EE 474 / CSE474

Title: Introduction to Embedded Systems

Credits: 4 (4 hours lecture, 1 hour recitation)

Course Catalog Entry:

CSE 474/ EE 474 Intro Embedded Systems (4)
An introductory course in the specification, design, development, and test of real time embedded system software. Use of a modern embedded microcomputer or microcontroller as a target environment for a series of laboratory projects and a comprehensive final project. Prerequisite: CSE 143.

Coordinator: Shwetak Patel, Associate Professor, Computer Science and Engineering / 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:

To learn and gain facility with the embedded systems development cycle and the tools supporting such development.

To learn the importance of and methods for designing and developing safe, reliable, and fault tolerant embedded systems.

To attain proficiency in the development of a high quality, well annotated, multifile software package.

To attain proficiency in the understanding and design of systems subject to real-time constraints.

To attain proficiency with the development of drivers for basic analog and digital peripheral devices.

To learn how to use debugging tools to verify proper program execution on a dedicated target system.

To learn how to test a program executing on a dedicated target system.

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

 

Reference:

Development board reference guide(s).

 

The Joy of C Miller, Lawrence H. and Quilici, Alexander E. John Wiley 1997.

 

C A Reference Manual – Harbison , Samuel P. and Steele Jr., Guy L.,Prentice Hall 5th edition.

 

Prerequisites by Topic:

Basic programming skills

Topics:

Software design and abstraction

Software development life cycle

Introduction to the concepts of Assembly language

Control and Control Flow

Tasks, Control, and Scheduling

Inter-Task Communications

Operating Systems Basics

Memory Management

Basic Digital Signal Processing techniques- digital filters, FFTs

System Performance and Optimization

Safety, Reliability, Fault Tolerance, and Test

System Testing

Ethics: societal and ethical impacts of developing embedded systems for consumer products, including safety, privacy, security, and reliability

Advanced Topics in Embedded Systems

Note: recitation will be used for a TA-led introduction and support on writing C programs. Recitation is optional, but strongly recommended for students without prior C programming experience.

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:

Familiarization with development tools (editor, cross compiler, assembler, linker); introduction to source level program debug.

The design and development of multifile programs.

Develop drivers for I/O protocol(s).

Modular programming; Interrupts (e.g., Multifunction clock).

A/D and D/A (e.g., Data acquisition and control system).

The use of interrupts and timing (e.g. design and development of a simple real time kernel)

Grading:

Course grades are based on laboratory assignments, a final project, and a midterm exam.

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.  Students will discuss the societal and ethical impacts of developing embedded systems for consumer products, including safety, privacy, security, and reliability. Also considered are issues such as copyrights, national and international patents, licensed material, intellectual property, plagiarism, citing sources for material or idea, and using published algorithms and designs. (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)

Preparer: James K. Peckol, Shwetak Patel, Bruce Hemingway

Last revised: 03/24/15