| |||||||||||
| GO | TEST | ERTS | PUBLIC | ABOUT | TOPICS | ||||||
| What's NEW — Look here regularly for postings | |||||||||||||||||||||||||||
| 1 oct |
| ||||||||||
| 1 oct |
| ||||||||||
| 22 sep |
| ||||||||||
| 11 sep |
| ||||||||||
| 2 aug |
|
| E&RTS Course |
| The term embedded system refers to purpose-specific software executing in a dedicated setting. Some examples are: cellular telephony, network routing devices, consumer electronics, robots, digital avionics, automotive systems, and ``smart'' cards, to name a few. This is an advanced, project-oriented course in which classroom topics are explored through in-depth experiences in a substantial laboratory project. |
| E&RTS Laboratory (See also the ERTS public page [HTM]) |
The P545 laboratory is a computer controlled golf car. The main project
in this course is designing, implementing, and testing a system for
autonomous navigation. In the Fall 2007 semester, students implemented
unimpeded GPS navigation, by which the vehicle follows a list of
GPS waypoints [HTM] on a flat surface. For the
Fall semseter, the project centers on obstacle avoidance: vision
and other sensors added enabling the vehicle to detect and steer around
objects it encounters in the path of travel.
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 options for course participation. |
Course Information
| Course:
| CSCI P545: Embedded & Real-Time Systems
| Instructor:
|
Steven D. Johnson
(sjohnson)
| Laboratory:
|
Bryce Himebaugh (primary lab instructor) | Caleb Hess Meetings:
| Lecture: 9:30 - 10:45PM MW, LH115
| Lab: 2:00 - 5:00PM F, LH008. NOTE: Conditions permitting lab meetings take place at the ERTS test field in the parking area north of Assembly Hall. Textbook:
|
None required. Lecture notes and articles are posted through this
page. Many of the lecture topics derive from material in H. Kopetz's
book, Real-Time Systems: Design Principles for Distributed Embedded
Applications (Kluwer Academic Publishers, 1997). See also the
list of recommended readings below.
| | |
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.
Other textbooks on real-time programming include:
| | 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. |
The core laboratory network operates under QNX, which is similar to Unix but has extensions for real-time applications. QNX has its own development and deployment environment.
The course project includes a substantial,
The primary components in evaluating projects are (1) field testing for functionality and (2) documentation the work, which may include a presentation.
The laboratory platform is a golf car modified for computer control. The project goal for the Spring 2007 semester was implementing an autonomous navigation system using the Global Positioning System (GPS) to follow a pre-determined course [HTM]. The Fall 2008 class will refine and enhance the GPS following system to include tactical guidance for obstacle avoidance.
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.