E N D
1. CPE-746-JUST-Fall 2006
Quadan & Sawalha Real Time Embedded Systems Done by: Lara Quadan & Lina Sawalha
Supervised by: Dr. Lo’ai Tawalbeh
Computer Engineering Department
Jordan University of Science and Technology
2. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Introduction Computer is entering all facets of life from home electronics to production of different products and material.
Many of the computers are embedded and thus “hidden” for the user.
So it is necessary to know about the control and characteristics of embedded real-time systems to implement reliable ones.
3. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Real-time Systems A real-time system is one in which the correctness of the computations not only depends on their logical correctness, but also on the time at which the result is produced. In other words, a late answer is a wrong answer.
A real-time system consists of tasks under deadline constrains.
Real-time systems maybe distributed systems, consisting of components that are physically distributed. These systems consists of multiple processing units and communication links.
4. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Functional Requirements Data Collection
Sensors
Signals
Alarm
Direct Digital Control
Actuators
Man-machine interaction
5. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Temporal Requirements Tasks may have deadline
Minimal latency jitter
Minimal error detection latency
Timing requirements due to tight software control loops.
Human interface timing requirements
6. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Application Areas Customer electronics:
Cameras
Camcorders
Customer products:
Dish washers
Microwave ovens
Cars:
Anti-lock braking
Engine control
Drive-by-wire
Planes:
Stability
Jet engine
Fly-by-wire
Military:
Weapons
Satellites
Industrial process controllers Computer/Communication products:
Peripherals
Fax machines
Protection & security systems :
Intruder Alarm
Smoke/Gas detection
Robotics
7. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Control Theory A control system is an interconnection of components forming a system configuration that will provide a desired system response.
Types of control :
– Open-loop control: a system that utilizes a device to control the process without feedback. Thus the output has no effect upon the signal to the process.
– Closed-loop control: A system that uses a measurement of the system output through sensors and compares it with the desired output (called feedback system).
8. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Embedded digital controlled systems When a digital controller (microprocessor/Microcontroller) is used in the embedded system to control the plant or process an analog/digital converter (A/D) is required as well as digital/analog converter (D/A) to interface the input/output controller digital signals with the analog signals from the other component in the system.
it is very important to consider the timing for the real-time digital controlled system.
9. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Cruise Control Regulate the speed of a car by adjusting the throttle:
Input by the driver ? sets a speed and car maintains it.
Measures the speed through device connected to the driver shaft.
Hard real-time: driver shaft revolution event.
Soft real-time: driver inputs, throttle adjustments.
10. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Cont. Disturbances: road surface and grade, wind and obstacles.
Input by the driver ? sets a speed and car maintains it.
If the driver give a brake command to the car the cruise control system will be interrupted and the car speed will slow down or be stopped.
11. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Other car embedded systems
12. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Autopilot Objective function: to control the direction
and speed of the plane.
Outputs: actual direction and speed of the plane
Control inputs: path markings and speed.
Disturbances: wind, obstacles.
subsystems: power system,
engines, steering system,
braking system, . . .
13. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Cont.
14. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Robot Vacuum cleaner
15. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Cont. Operating environment:
closed indoor environments
such as rooms.
Controlling System
– Human : turn on and off the robot
– Computer: Sensors: stairs and wall detection (IR sensors).
Controls: robot location through controlling the robot speed and steering to follow the walls.
Actuators: motors and wheels.
16. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Hard Disk Drive Control
17. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Cont.
For DVD
system?
18. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Wireless Sensor Network Embedded System
19. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Cont. Collection of sensor nodes in a field.
Each node collects data and send it to a sink.
The sink aggregates the data and send it to a main processing unit.
Each sensor node can manipulate data using its own embedded microcontroller (microprocessor), transceiver and communication model.
20. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Keck Astronomical Telescope World largest telescope
The main objective is to collect and focus starlight using a large concave mirror.
The shape of the mirror determines the quality of the observed image.
The diameter of the mirror is 10 m.
The mirror is a mosaic of 36 hexagonal small mirrors.
The 36 segments must be aligned so that the resulting mirror has the desired shape
21. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Behind each segment are three actuators applying forces at three points on the segment affecting its orientation.
In the gap between every two adjacent segments a capacitor type sensors measuring the local displacement between segments.
These displacements should be controlled to give the desired shape and direction for the mirror.
22. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Auto-washing machines
23. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Classifications of RT systems Hard vs. Soft systems
Fail-safe vs. Fail operational
Guaranteed-response vs. Best-effort
Resource-adequate vs. Resource-inadequate
Event-triggered vs. Time-triggered
24. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Hard vs. Soft Real Time Systems Hard RTS
A RTS where the tasks have to be
performed not only correctly but also
on time. i.e. a catastrophic system failure can
occur if the system is not responding on time.
E.g., the aircraft turbulence (instability in the atmosphere) controller should respond on time, if not there will be a definite disaster.
Other examples
control systems for space probes and nuclear reactors.
refresh rates for video, or DRAM.
collision alert.
25. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Cont. Soft RTS
A RTS where the tasks have to be
performed as fast as possible, but the tasks
need not be finished within deadlines.
I.e. It may go beyond specified deadlines without catastrophic failures (For example, if the video game is not responding on time, it’s only a delay where the user may not want to wait, but even then nothing awful is going to happen).
26. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Cont. Another e.g.: Laser printer: rated by pages-per-minute, but can take differing times to print a page (depending on the "complexity" of the page) without harming the machine or the customer.
Task execution may also be timed-out: display updates, connection establishment.
Other examples of Soft real time systems:
videoconferencing
stock price quotation systems
airline reservation systems
automatic teller
27. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Characteristics of RTS Response time: - hard real-time applications, milliseconds or less, preclude direct human intervention during normal operation and in critical situations. - Soft real-time and on-line systems are often in the order of seconds.
Peak-load performance: - hard real-time system: the peak-load scenario must be well-defined, guaranteed to meet the specified deadlines in all situations.- soft-real time system, the average performance is important, and a degraded operation in a rarely occurring peak load case is tolerated
Control of Pace: A hard real-time system must remain synchronous with all the state of the environment in all cases. This is in contrast to an on-line system, which can exercise some control over the environment in case it cannot process the offered load.
Safety: Hard real-time systems are often safety critical.
Size of Data files: Hard real-time systems have small data files and real-time databases. Temporal accuracy is often the concern here. Soft real time systems has larger databases so long-term integrity of large data files is the key issues.
28. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Characteristics of RTS Redundancy Type: If an error occurs in a soft real-time system, the computation is rolled back to a previously established checkpoint to initiate a recovery action. In hard real-time systems, recovery is of limited use.
29. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Common Misconceptions Misconceptions about Real-Time Systems
[Stankovic'88]
faster hardware implies all deadlines will be met
real-time computing is merely fast computing
RT systems are low-level coding done using ad-hoc methods.
Fast is relative. More important that system is “fast enough", deterministic and predictable.
Worst-case response times of interest rather than average-case.
Scheduling theory, software design, formal methods and RTOS are changing things.
It is important to note that hard versus soft real-time does not necessarily relate to the length of time available.
30. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Real Time terminologies Synchronous: events occur at predictable times in the flow-of-control.
Asynchronous: interrupts
Multitasking: The process of scheduling and switching the CPU between several tasks, a single CPU switches its attention between several sequential tasks. Multiple is like foreground/background with multiple backgrounds. Multitasking maximizes the utilization of the CPU and also provides for modular constructions of applications.
Task: A task is called a Thread, is a simple program which thinks it has the CPU all to itself. Each task typically is an infinite loop that can be in any one of the three states: RUNNING, READY (-TO-RUN), BLOCKED.
Resource: A resource is any entity used by a task. A resource can thus be an I/O device, such as a printer, a keyboard, or a display, or a variable, a structure, or an array.
31. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Real Time terminologies Shared Resource: A shared resource is a resource that can be used by more than one task. Each task should gain exclusive access to the shared resource to prevent data corruption. This is called Mutual Exclusion. For e.g., a global variable can be used by many tasks, or printer which could be shared by "n" users.
Critical Section of Code: Also called Critical Region, is code that needs to be treated indivisibly; once the section of code starts executing, it must not be interrupted. To ensure this, interrupts are typically disabled before the critical code is executed and enable when the critical code is finished.
Reentrancy: A reentrant function can be used by more than one task without fear of data corruption. a reentrant function can be interrupted at any time and resumed at a later time without loss of data. Reentrant functions either use local variables (i.e. CPU registers or variables on the stack) or protect data when global variables are used.
32. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Operating System Real-time operating systems must provide support for:
Guaranteeing real-time constraints.
Supporting fault tolerance and distribution.
Time constraint resource allocations and
scheduling.
Time constraint end-to-end communications.
33. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Real Time Operating System (RTOS) Fundamental requirements for an RTOS
The OS behavior must be predictable
The OS must be multithreaded and preemptive.
The OS must support thread priority.
The OS must support predictable thread synchronization mechanisms.
Additional Requirements:
The maximum time that device drivers use to process an interrupt, and specific IRQ information relating to those device drivers, must be known.
The interrupt latency (the time from interrupt to task run) must be predictable and compatible with application requirements
34. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Kernel
Is the core program of the Operating System, and determines its behavior
Is responsible for System Resources and for “context switch”.
Also responsible for task scheduling.
In RTOS since the size of the kernel is small, its also referred to as Micro Kernel.
Kernel types
Microkernel - scheduler
Kernel - a microkernel with intertask synchronization
Executive - a kernel that includes privatized memory blocks, I/O services, and other complex issues. Most commercial realtime
kernels are in this category.
Operating system - an executive that also provides generalized user interface, security, file management system, etc.
35. CPE-746-JUST-Fall 2006- Quadan & Sawalha
RTOS Three groups
Small, fast, proprietary kernels
Real-time extensions to commercial operating systems
Research operating systems
Small, fast, proprietary kernels
homegrown
commercial offerings:
QNX, PDOS, pSOS, VCOS, VRTX32, VxWorks
To reduce the run-time overheads incurred by the kernel and to make the system fast, the kernel
has a small size
responds to external interrupts quickly
minimizes intervals during which interrupts are disabled
provides fixed or variable sized partitions for memory
management as well as the ability to lock code and data in memory
provides special sequential files that can accumulate data at a fast rate
36. CPE-746-JUST-Fall 2006- Quadan & Sawalha
RTOS To deal with timing constraints, the kernel
provides bounded execution time for most primitives
maintains a real-time clock
provides primitives to delay processing by a fixed amount of time and to suspend/resume execution
Also, the kernel
performs multitasking and intertask communication and synchronization via standard primitives such as mailboxes, events, signals, and semaphores.
For complex embedded systems, these kernels are inadequate as they are designed to be fast rather than to be predictable in every aspect.
37. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Examples of RTOS Open source:
eCos
Fiasco (L4 clone) [1]
FreeRTOS
Linux as of kernel version 2.6.18
Phoenix-RTOS
Nut/OS [2]
Prex
RTAI
RTEMS
RTLinux
SHaRK [3]
TRON Project
Xenomai [4]
Proprietary:
Ardence RTX - BeOS
ChorusOS - DNIX
DSOS - embOS (Segger)
ITRON
LynxOS - MicroC/OS-II
MQX RTOS [5] - Nucleus
OS-9 - OSE
OSEK/VDX - OSEKtime
PDOS - Phar Lap ETS
PikeOS - Portos
pSOS - QNX
RMX - RSX-11
RT-11 - RTOS-UH
RTXC - Salvo RTOS [6]
SINTRAN III - Symbian OS
ThreadX - VRTX
VxWorks - Windows CE
µnOS - UNIX-RTR
38. CPE-746-JUST-Fall 2006- Quadan & Sawalha
RTLinux Real-Time Linux (now part of FSMLabs Inc.)
that is suitable for Real-Time applications.
Its view is that the application system can be split into two parts
Real-time
Non real-time
With this approach, it splits the applications to run on either the Linux kernel, or a real-time kernel!
39. CPE-746-JUST-Fall 2006- Quadan & Sawalha
RTLinux Between the real and non-real parts communication is performed through FIFOs called RT-FIFOs.
These FIFOs are:
Locked to memory in kernel space.
FIFOs appear as devices to Linux user processes.
Reads and writes are non-blocking and atomic.
40. CPE-746-JUST-Fall 2006- Quadan & Sawalha
RTLinux RTLinux eliminates the problem of the kernel blocking interrupts by replacing HW interrupts by SW emulated interrupts.
Thus, the RT kernel intersects all interrupts!
If an interrupt is to let a RT task execute, then the RT kernel pre-empts any general application and runs the RT task.
Flags are used to emulate interrupt disabling.
41. CPE-746-JUST-Fall 2006- Quadan & Sawalha
VxWorks Monolithic Kernel
Reduced run-time overhead, but increased kernel size compared to Microkernel designs
Supports Real-Time POSIX standards
Common in industry
Mars missions
Honda ASIMO robot
Switches
MRI scanners
Car engine control systems
42. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Software vs. Hardware Hardware
Fast
Power-efficient
Used for performance and security
Software
Flexible
Reusable
43. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Examples on Software Subsystems The software components of an embedded system can be diverse.
Software running on a microprocessor core.
Written in a “High level language”
Cooperative multi-tasking software running on one or more DSP processors
Largely written in Assembly code due to a lack of high quality compilers
An RTOS kernel running on the microprocessor core and/or DSP core
Control Processes running on a microcontroller
User interface modules running on the microprocessor
Devise drivers for interface protocols e.g. TCP/IP, ATM
44. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Software Languages Specifying machine code concisely
Sequential semantics:
Perform this operation
Change system state
Raising abstraction: symbols, expressions, control-flow, functions, objects, templates, garbage collection.
C/C++/Java
Real Time Operating Systems: Adds concurrency, timing control
45. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Hardware Subsystems Microprocessor cores
DSP cores
Field Programmable Gate Arrays (FPGAs)
Application specific integrated circuits
(ASICs)
standard cell/synthesized deigns
custom ICS
Memory
RAM, ROM, PROM, ...
Conten addressable memory (CAM)
Specialized DRAMs, multi-bank memories,
System Bus structures & interfaces
I/O interfaces
Others
46. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Hardware languages Specifying connected gates concisely
Originally targeted at simulation
Discrete event semantics skip idle portions
Mixture of structural and procedural modeling
Hardware Languages:
Verilog
Structural and procedural modeling
Four-valued vectors
Gate and transistor primitives
Less flexible, succinct
VHDL
Structural and procedural modeling
Few built-in types; Powerful type system
Fewer built-in features for hardware modeling
More flexible, verbose
SystemC 1.0, Cynlib: “VHDL/Verilog in C++”
47. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Hardware/Software Codesign Most systems and mixed between hardware and software.
Traditional Design
SW and HW partitioning is decided at an early stage, and designs proceed separately from then onward.
CAD today addresses synthesis problems at a purely hardware level:
efficient techniques for data-path and control synthesis down to silicon.
ECS use diverse (commodity) components
uP, DSP cores, network and bus interfaces, etc.
"New fangled" Codesign
A flexible design strategy, wherein the HW/SW designs proceed in parallel, with feedback and interaction occurring between the two as the design progresses.
Final HW/SW partition/allocation is made after evaluating trade-offs and performance of options.
48. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Examples of mixed hardware-software embedded systems Embedded controllers for reactive real-time applications are implemented as mixed software-hardware systems. These controllers utilize Micro-processors, Micro-controllers and Digital Signal Processors but are neither used nor perceived as computers. Generally, software is used for features and flexibility, while hardware is used for performance. Some examples of applications of embedded controllers are:
Consumer Electronics: microwave ovens, cameras, compact disk players.
Telecommunications: telephone switches, cellular phones.
Automotive: engine controllers, anti-lock brake controllers.
Plant Control: robots, plant monitors.
49. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Embedded System Design Modelling
the system to be designed, and experimenting with algorithms involved;
Refining (or “partitioning”)
the function to be implemented into smaller, interacting pieces;
HW-SW partitioning: Allocating
elements in the refined model to either (1) HW units, or (2) SW running on custom hardware or a general microprocessor.
Scheduling
the times at which the functions are executed.
This is important when several modules in the partition share a single hardware unit.
Mapping (Implementing)
a functional description into (1) software that runs on a processor or (2) a collection of custom, semi-custom, or commodity HW.
50. CPE-746-JUST-Fall 2006- Quadan & Sawalha
Kopetz, H. , Real-Time Systems: Design Principles for Distributed Embedded Applications.
Calton Pu, 1B: RTE Concepts and Examples
A Framework for Hardware-Software Co-Design of Embedded Systems, University of California, Berkeley.
http://www.ics.uci.edu/~rgupta/ics212/w2002/models.pdf
http://www.ics.uci.edu/~rgupta/ics212/w2002/intro.pdf
http://www.cs.unb.ca/courses/cs4405/lectures/real-time.pdf
http://www.ece.cmu.edu/~koopman/des_s99/real_time/#introduction
http://en.wikipedia.org/wiki/
http://www.ics.uci.edu/~rgupta/iec/introduction/ References