Detailed Syllabus for EECS 124: Introduction to Embedded Systems Edward A. Lee, Sanjit A. Seshia, and Claire J. Tomlin Description: 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-theshelf 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 W1, L1 Course introduction; Introduction to Finite state machines (FSMs) W1, L2 FSMs W2, L3 Ordinary differential equations (ODEs) W2, L4 ODEs W3, L5 Hybrid systems W3, L6 Data flow W4, L7 Sensors/Actuators W4, L8 Sensors/Actuators W5, L9 Multiple real-time streams W5, L10 Bisimulations for FSMs W6, L11 Model checking: Reachable sets for FSMs W6, L12 Reachable sets for ODEs W7, L13 Control design for FSMs and ODEs Milestones Labs Labview Nintendo Wiilike lab intro Writing Wand lab intro W7, L14 Control design for FSMs and ODEs W8, L15 Numerical imprecision in SW W8, L16 Numerical imprecision in SW W9, L17 Real-time OS W9, L18 Real-time OS W10, L19 Execution time analysis, static analysis W10, L20 Scheduling W11, L21 Scheduling W11, L22 Concurrency W12, L23 Concurrency W12, L24 W13, L25 Protocol design for distributed embedded systems W13, L26 Networking W14, L27 Security W14, L28 W15, L29 Final Exam