Main / CoursesES

ENGR 844 - Embedded Systems - Fall 2008

Instructor: Seapahn Megerian, Ph.D.
San Francisco State University
School of Engineering

ENGR 844 course bulletin

Contact Info and Office Hours:

Email:engr844 at seapahn.us
Office:SCI 170A
Office hours:Tuesdays after lecture and by appointment.

Time and Place

Lecture, Tuesday, 18:10-20:55, Hensill Hall 206

Textbook

none

Capsule Statement of Course Content:

  • Comprehensive study of embedded systems starting from their classification, applications, and standards, to architectures, components, and design practices.
  • Some special focus on examples from cellular phone and networked embedded systems domains.
  • Project driven course to encourage hands-on experimentation with real embedded systems to gain first-hand insights into design and implementation challenges.

Course Description:

This course is designed to present a broad overview of the vast field of embedded systems to an audience with familiarity with computer engineering principles. The preliminary topics covered will include introduction and classification of embedded systems, the application domains, their components, and design cycles. Some coverage of existing standards will be followed by in-depth looks into several real examples, with more focus on examples from cellular phone domains, digital tv, and emerging networked embedded systems. The course will primarily be project driven to encourage a hands-on approach to the topics discussed in class. Although the topics of this class by their nature are broad, no specific prior knowledge will be assumed and the class will be fairly self contained. Thus, the exact coverage of the material and their related background will depend on the backgrounds of the students attending the lectures (i.e. class participation is strongly encouraged!).

Prerequisites

Recommend students to have taken at least undergraduate level courses in digital design (combinational and sequential circuits), system architecture, computer systems fundamentals, and operating systems. Specific algorithms, computer networking, and distributed system knowledge is not required as the course is designed to be self contained in those domains. Background and relevant material will be reviewed as deemed necessary by the instructor.

Grading

5% - Class participation
5% - Preliminary project proposal
40% - Midterm
20% - Final project presentation and demos
30% - Final project report (website)

Tentative Course Schedule:

  1. 08-26: Introductions and course overview
  2. 09-02: Background review (basic concepts, digital design, architecture, ...); Course project assignment
  3. 09-09: Embedded system classifications, applications, and the design cycle
  4. 09-16: Hardware platforms (uC, uP, DSP, FPGA, custom ASIC, ...); Form project groups
  5. 09-23: Memory and storage; Finalize project groups
  6. 09-30: Student presentations - Preliminary (short) project proposals
  7. 10-07: Finish presentations; Networked embedded systems (networking stacks)
  8. 10-14: Distributed and collaborative algorithms (example: distance-vector routing)
  9. 10-21: Communication technologies (Bluetooth, Zigbee, Ethernet, WiFi ...)
  10. 10-28: Midterm review, sample problems, homework solutions
  11. 11-04: Midterm
  12. 11-11: Veterans Day - No class
  13. 11-18: Sensors, sensor networks, and surveillance
  14. 11-25: Fall Recess - No class
  15. 12-02: Project presentations, demos, and discussions
  16. 12-09: Project presentations, demos, and discussions

The sections below will be regularly updated throughout the course so check back often!


Recommended reading list and links

Announcements

  1. Background topics that should already be familiar to you.
  2. Course Project
  3. Hardware slides shown in class on 9/9/08 online here (ch2 and ch3 slides).
  4. Project team selections due before lecture on 9/16/08 (email instructor).
  5. Project team assignments finalized on 9/23/08.
  6. Some course project ideas
  7. Homework 1
  8. Required reading: Formal Models for Embedded System Design
  9. Project preliminary proposal and presentation slides due by 12pm on 9/30/2008.
    • Email PDF of proposal by deadline (1 submission per group).
    • If you must absolutely send large files (over 3MB ?), please put online somewhere and send the link if possible.
    • Format: Strongly suggest starting this as your project webpage.
    • Final report will be required to be in a web page format.
  10. Preliminary project presentations on 9/30/2008. Plan for 10 minute presentation followed by questions.
    • Team orders will be random and some presentations may be delayed till 10/7 if needed.
    • Email PDF file before deadline.
    • Suggested presentation format: Powerpoint, Google Presentations, PDF
  11. See updated Project Guidelines (at the end of the page).
  12. Homework 2
  13. Read about Bellman-Ford and distance vector routing
  14. Watch: Prototype This: Mind Controlled Car
  15. PPT slides on routing (zip file)
  16. Homework 3
  17. Project Reports Due 11:59pm Tuesday December 16, 2008
    • You are submitting 3 things:
      1. Link to your project website (which should have pictures, possibly video, audio, etc).
      2. Project report in PDF format (with a list of team members and contributions on each part of the project).
      3. Your source code, hardware design (if applicable), and other source materials you have created for the project, data you have collected, etc as discussed in class. You should send your files in a compressed archive (such as zip, rar, gzipped tar, 7z, etc)
    • If the files are large, email a link to where they can be downloaded from (strongly encouraged to prevent email problems). If the file gets really large (e.g. over 10MB), email me and we can discuss what to do (send the report separately in that case).
    • Make sure you receive an email acknowledgment from me that I got your submission.
    • One submission per group is fine
    • Include (in your report), the list of team members and contributions (who worked on what parts and how much (%)). This should be something all team members agree on. If there are disagreements, feel free to send me separate lists and describe why you disagree.