Real-time Architectures for Automotive Systems
This course provides a general introduction to real-time systems in the automotive domain, with several examples illustrating typical problems. We pick one leading example: a pre-crash system with sensing and actuation distributed over two ECU's. We work bottom up and use the leading example to identify typical challenges in real-time system design and introduce solutions to adress them.
The course is a master level course and aims at providing
- Knowledge: Insight in the architecture of real-time systems and the relation of this architecture to extra-functional requirements such as performance, dependability and predictability. Position of the architecture in the design process. An understanding of the concepts of real-time systems, through several existing examples.
- Skills: The ability to access the literature on this topic and to evaluate a given architecture. Experience with developing a simple real-time application on an automotive platform.
The material we present is coming from several sources: books and articles. We do not require a single text book, though much of the material is based on the contents of two or three books, mainly [Burns, 2009]. Together with the lectures we will provide articles for reference and obligatory reading.
News
Goals
After this course you should be able to:
- explain and apply the fundamental concepts and terminology of real-time systems in the automotive domain,
- explain and address the fundamental problems of real-time systems,
- analyze real-time systems designs,
- design and implement a real-time system (at least partially), and
- identify and assess the relevant literature and research trends of real-time systems.
Program
There are two hours of lecture per week. You are expected to study the material to a large extent by yourself. The material placed below may change, until the moment it has been presented.
-
Week 0: Cars in context
Slides
-
Week 1: Introduction to real-time systems in the automotive domain
Slides,
Slides,
Exercises,
- Week 2: Microcontrollers and introduction to multitasking
Slides,
Slides,
Exercises,
Jitter and Drift
- Week 3: Multitasking: interrupt handling, preemption and atomicity
Slides,
Exercises,
- Week 4: Real-time operating system: uC/OS-II
Slides,
Exercises,
- Week 5: Multitasking: task synchronization (mutexes)
Slides,
Exercises,
Exercises
- Week 6: Real-time analysis
Slides,
Exercises
- Week 7: Communication
Slides,
Exercises
- Week 8: Controlling a car
Exercises
References
- A. Burns, A. Wellings, "Real-Time Systems and Programming Languages", 4th Edition, 2009
- N. Wirth, "Algorithms and Data Structures", 1985
- Mike Holenderski, A very brief introduction to programming in C
- edX: Introduction to Computer Science
- J. Labrosse, "MicroC/OS-II: The Real-Time Kernel", 2nd Edition, 2002 (Chapter 16)
- N. Navet, F. Simonot-Lion, "Automotive Embedded Systems Handbook", CRC Press, 2009
- G. Leen, D. Hefferenan, "Expanding automotive electronics systems", Computer, 35(1), 2002
- Patriot missile defense, Software problem led to system failure at Dharhan, Saudi Arabia, GAO report IMTEC 92-26, US Government Accounting Office.
- U. Keskin, "In-Vehicle Communication Networks: A Literature Survey", TU/e CS-Report 09-10, 2009
- P. Kruchten, "Architectural Blueprints - The 4+1 View Model of Software Architecture", Software 12 (6), 1995
- D. Kalinsky Associates, "A Survey of Task Schedulers"
- D. Kalinsky Associates, "Mutexes Battle Priority Inversions"
- Freescale HCS12 Reference Manual
- Freescale MC9S12XF512 Manual
- Freescale EVB9S12XF512E Manual
- Freescale EVB9S12XF512E Website