| CSCI P545 Embedded & Real-Time Computing | Thu Sep 24 12:57:06 EDT 2009 [SDJ] |
| Field Testing Status | |||
| oct 30 14:30 | GO | Wednesday: we will test today starting at 1:00pm. We will probably test again on Friday this week. | [NWS] |
| References | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Please Note:Embedded system design requires a broad background, encompassing both system engineering and "domain expertise." This course is designed to accomodate students with varied interests and goals. See Background Requirements below. However, the higher aim of the course laboratory is to develop a configurable platform for collaborative research in systems, sensor networks (especially vision), and congnitive science (especially machine learning and human-robot interaction). Or contact the instructor about other participation options. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The course assumes a basic fluency in ``systems'' concepts/terminology and senior-level programming competency. Additional background in diverse areas such as networks, distributed computing, hardware, etc., is desirable but not required.
Much of the programming involves interaction with the underlying operating system through system calls. Exposure comparable to that of the Operating Systems (P436) is adequate preparation. Specific OS facilities used include: sockets, signals, time, timers, and a few others.
Embedded systems are typically made up of both software and hardware components. This course focuses on software aspects. However, if a sufficient number of hardware students are enrolled, opportunities will be created to work in that realm, most likely using FPGA and micro-controller technologies, as taught in P442.
| | Architectures and Applications [1]. Digital control; "smart" electronics; sensor arrays; multimedia; networking components; instrumentation; heterogeneous systems; system-on-chip. Networks: ad hoc, common-carrier, hierarchical etc. |
| | Terminology and Tradeoffs [2]. Reactive systems, event models; periodicity; throughput, latency, jitter, slack; polling and sampling; modes and configurability; resilience; hard-time and soft-time constraints. Worst-case and expected-case analysis. |
| | Tools and technologies [6] Tools, design flows, libraries and packages, instrumentation, documentation. |
| | Time [3]. Physical and logical; resolution, precision, accuracy; global and distributed synchronization. Clock synchronization algorithms, agreement protocols. |
| | Resiliency [3] Faults, errors and failures; failure rates, transient failure; fault models; fault containment; fault tolerance and agreement; recovery. |
| | Communication [4] Time division, carrier sense, collision-detect, etc. OSA model. Representative standards (e.g. IP, FlexRay, CAN, WiFi, ad hoc). Buffer network analysis. |
| | Real-Time Operating Systems [6] Threads, tasks, processes periodicity. Scheduling parameters, static and dynamic heuristics; Thread integration, priorities and preemption. Models and instances of memory/file management. |
| | Methods [2] Process-oriented design; synchronous and asynchronous abstractions; message based, image based, data-flow, etc. Design flow, simulation. Requirements, specification, implementation. |
| | Testing. [3] Unit, component, integration testing; Testing frameworks, simulation. Instrumentation and measurement; Validation and verification; Formal analysis: models, tools. Safety aspects: classification, certification, documentation. |
| | Sensors [4]. Statistical models, resolution, filters; feature synthesis and fusion. |
| | Components [4] Device handling, point-to-point protocols (e.g. USB, Firewire); Platform computers, microcontrollers, FPGAs and software cores; Codesign, incorporating hardware, configurability and reconfigurability. |
Later in the course, the choice of language and system is left to the student. At higher levels, one goal is to "mount" existing software systems for experimentation in ERTS. For students who are interested in exploring embedded systems at lower implementation levels, knowledge of C, and familiarity with Linux system calls is needed. For students interested in real-time operating system (RTOS) aspects, copies of the QNX RTOS are available.
The course project includes a substantial,
The primary components in evaluating projects are (1) field testing for functionality and (2) documentation the work, which includes a presentation.
The laboratory platform is a golf car modified for computer control. Previous classes have developed basic solutions for:
Initially, the class is given a software framework for controlling steering, acceleration and breaking, as well as sensors for GPS, proximate object detection, and rudimentary vision. Classroom lectures explain and explore the implementation of the framework as student groups develop solutions to the navigation problems in a cumulative series of lab assignments, such as:
It is important for participants to understand that, as they develop and test their implementations of higher functionality, they are also contributing to the on-going design and enhancement of the laboratory platform by reporting on its empirical performance in comparison to design assumptions on which their software development is based.