Embedded Systems Course Proposal

Document Sample
Embedded Systems Course Proposal Powered By Docstoc
					Detailed Syllabus for EECS 124: Introduction to Embedded
Edward A. Lee, Sanjit A. Seshia, and Claire J. Tomlin

This course introduces students to the basics of models, analysis tools, and
control for embedded systems operating in real time. Students learn how to
combine physical processes with computation. The course has a strong
laboratory component, with emphasis on a semester-long sequence of projects.

Topics to be covered include the following:

   1. Models of computation: finite state machines, ordinary differential
      equations, hybrid systems, data flow
   2. Basic analysis, control, and systems simulation: Bisimulations,
      reachability analysis, controller synthesis
   3. Interfacing with the physical world: sensor/actuator modeling and
      calibration, concurrency in dealing with multiple real-time streams,
      handling numerical imprecision in software
   4. Mapping to embedded platforms: real-time operating systems,
      execution time analysis, scheduling, concurrency
   5. Distributed embedded systems: Protocol design, predictable
      networking, security

Targeted students: upper-level undergraduates
Prerequisites: EECS 20, EECS 61C, EECS 70 or Math 55

Project ideas:
There will be two key projects:
   1. LabView project: This project is designed to help students use the lecture
      material in models of computation, basic analysis, simulation and control,
      and sensor modeling and calibration, to get “quick results” in an interesting
      project involving both hardware and software, yet using an inadequate
      model of computation. The project will involve characterizing an off-the-
      shelf accelerometer, and learning how to infer position from the
      accelerometer output. One idea is to mount the accelerometer on a
      bicycle wheel and construct a picture of the resulting trajectory. Can
      involve some basic digital filtering.
   2. Microcontroller project: This project can use the same accelerometer as a
      key sensor in designing a “writing wand”, in which the students will
      eventually design and implement software on a handheld microcontroller
      connected to the wand. Students will learn about implementation issues
      either on an RTOS such as QNX or a direct C-image on bare hardware.
      This project will explore the consequences of choices of model of
      computation. Students are expected to have the wand “write” legibly.
      Additional challenges could include: adding sound to the wand and
       studying the persistence of vision/sound; networking the wands together
       to study distributed real time computing.

An additional project could be:
   3. Software-based: In this project, students will write a few modules that fit
      into a mostly-complete simulator of a large, distributed embedded system.
      They will experiment with concepts in control, communication, modularity,
      verification, security, etc. in the context of an industrial-scale application.
      Examples: Boeing DemoSim, “Airbus-like” code, Flight simulator
      connected to simple autopilot “hardware in the loop”

Syllabus (week-by-week)

  Week, Lecture Number            Topic of Lecture       Milestones        Labs
                                Course introduction;
                                Introduction to Finite
W1, L1
                                state machines
W1, L2                          FSMs                                  Nintendo Wii-
                                                                      like lab intro
                                Ordinary differential
W2, L3
                                equations (ODEs)
W2, L4                          ODEs
W3, L5                          Hybrid systems
W3, L6                          Data flow
                                                                      Writing Wand
W4, L7                          Sensors/Actuators
                                                                      lab intro
W4, L8                          Sensors/Actuators
                                Multiple real-time
W5, L9
                                Bisimulations for
W5, L10
                                Model checking:
W6, L11                         Reachable sets for
                                Reachable sets for
W6, L12
                                Control design for
W7, L13
                                FSMs and ODEs
           Control design for
W7, L14
           FSMs and ODEs
W8, L15
           imprecision in SW
W8, L16
           imprecision in SW
W9, L17    Real-time OS
W9, L18    Real-time OS
           Execution time
W10, L19   analysis, static
W10, L20   Scheduling
W11, L21   Scheduling
W11, L22   Concurrency
W12, L23   Concurrency
W12, L24
           Protocol design for
W13, L25   distributed
           embedded systems
W13, L26   Networking

W14, L27   Security

W14, L28
W15, L29
                                 Final Exam