Learning outcomesOn successful completion of this module students should be able to:
A student who successfully completes the course will be able to:
identify the wide, and increasing, use of small embedded systems in domestic, office, transport and industrial process control applications;
specify the desired behaviour of an embedded system, including its real-time operation and quality requirements;
make a justified selection from appropriate interfaces, both analogue and digital, that are used for input and output in embedded systems;
select a hardware and software design taking account of their joint influence on system performance and dependability;
define required characteristics of multi-tasking software, for use with real-time executive or kernel;
evaluate the strengths and limitations of methods for the design of real-time systems;
design a small real-time system in MASCOT;
discuss the implications and risks of using an embedded system in a safety-related application.
A real-time computer system operates on a timescale that is governed by the application for which it is designed; in other words the computer must not only perform the function for which it is designed but it must do so on a specified timescale. One manufacturer of real-time products uses the appropriate catchphrase "the right answer late is wrong". Examples of real-time systems include washing machine controllers, engine management systems, industrial controllers, avionic systems and many more. All of these are also examples of embedded systems, computer systems that are designed exclusively for a specific application and may not be immediately recognisable as a computer. In all of these cases the computer interacts with the equipment that it monitors and controls via sensors and actuators, in contrast with the I/O facilities typically associated with conventional computers. The course introduces the ideas of real-time embedded systems, the special requirements that they place on the design process and some of the methods used for their design and implementation.
1. Introduction to Real Time Computing: timing constraints, the role of concurrency.
Characteristics of embedded systems. Example applications. [3 lectures]
2. Hardware aspects of embedded systems: processors, microcontrollers, interfacing and interface configuration, analogue signal interfaces and the Nyquist theorem, transducers. [3 lectures]
3. Responding to real-world events: polling, interrupts and interrupt mechanisms, buffering. [2 lectures]
4. Implementation aspects of concurrency; real-time operating systems and kernels. [2 lectures]
5. Approaches to real-time system design. Design methods: MASCOT 3, HOOD and HRT HOOD, RT UML and associated design processes. Hardware/software tradeoff. [5 lectures]
6. Developing real-time systems: development systems, languages for real-time systems development. [3 lectures]
7. Safety and reliability: an introduction to the requirements and techniques for design and implementation of real-time embedded systems for safety critical applications. [2 lectures]
In addition, students are required to read and research the above topics independently of the lectures in order to develop a good understanding of the subject.
** Recommended Text
Jim Cooling (2003) Software Engineering for Real-Time Systems
Addison Wesley 0201596202
** Consult For Futher Information
B.P. Douglass (1999) Real Time UML
Addison Wesley 0201657848
Burns and Wellings (2001) Real Time Systems and Programming Languages
Third. Addison Wesley 0201729881
Peter C. Dibble (2002) Real time Java Platform Programming
Sun Microsystems 0130282618
This module is at CQFW Level 6