900 likes | 1.58k Views
REAL-TIME SYSTEMS. Reny Sebastian, SEG, ER&DCI, TVM. Sessions. Introduction to Real-Time Concepts. 2. Real-Time Operating Systems. 3. Case Study. . Session 1. Introduction to Real-Time Concepts. Real-Time System. Definition
E N D
REAL-TIME SYSTEMS Reny Sebastian, SEG, ER&DCI, TVM Real-Time Systems
Sessions Introduction to Real-Time Concepts. 2. Real-Time Operating Systems. 3. Case Study. Real-Time Systems
Session 1 Introduction to Real-Time Concepts. Real-Time Systems
Real-Time System • Definition A real-time system (defined by IEEE) is a system whose correctness includes its response time as well as its functional correctness. In other words, in a real-time system, it not only matters that the answers are correct, but it matters when the answers are produced. A Late Answer is a Wrong Answer! Real-Time Systems
Real-Time Systems - Categories 1. Hard Real-Time Systems 2. Soft Real-Time Systems Real-Time Systems
Hard Real-Time Systems • Hard real-time means that the system (i.e., the entire system including OS, middleware, application, HW, communications, etc.) must be designed to GUARANTEE that response requirements are met. • Hard Real-Time doesn’t mean fast execution. Real-Time Systems
Examples • Electronic Engines • Automotive and Flight Control Systems • Medical Systems • Industrial Control Systems • Robotics Real-Time Systems
Soft-Real Time Systems Soft real-time is exactly the same as hard real-time in its infrastructure requirements, but it is not necessary for system success that EVERY time constraint be met. Real-Time Systems
Example • Telecommunication Systems • Internet Video • ATM Real-Time Systems
The Real-Time Spectrum Real-Time Systems
Real-Time Design Issues • How many things are under control? • How “hard” are the timing constraints? • Will there be user interaction? • What is the mix of synchronous vs. asynchronous threads of control? Real-Time Systems
Real-Time Design Approaches • There are two primary techniques used in real-time designs - Super- loops One program running -Multitasking Many programs running, taking turns Real-Time Systems
Super-Loops • Also called Foreground/Background Systems • There is a background loop that is always running anytime an ISR isn’t executing • The CPU is always busy • Can be taken to the extreme of an idle loop and all of the work being done in the ISRs Real-Time Systems
Super-Loop Background Foreground ISR Time ISR ISR Real-Time Systems
Multi-Tasking Operation • With multi- tasking, multiple tasks or threads compete for the CPU based on a scheduling policy • This scheduling policy is implemented in the Kernel • The tasks give up the CPU: -Voluntarily: cooperative multi- tasking Developer determined via system call - Involuntarily: preemptive multi- tasking Process scheduling algorithm Real-Time Systems
Multi-Tasking Real-Time Systems
Session 2 Real-Time Operating Systems Real-Time Systems
What Is An RTOS? • A Real- Time Operating System is software that allows a program to: – Communicate with peripherals and other tasks – React in a deterministic way to external events – Share the CPU and resources in a rigidly established manner between competing threads of execution Real-Time Systems
Commercial RTOSs • VxWorks • pSOS System • QNX • Nucleus • Windows CE • MircoC/OS-II Real-Time Systems
Commercial RTOS Shortcomings • Can be very expen$ive • High, per- seat costs • Royalties • Access to source Real-Time Systems
Free RTOSs • Embedded Linux • Real-Time Linux • RTAI • RTEMS • eCOS Real-Time Systems
Multi-Tasking Revisited • Multitasking is the process of scheduling and switching the CPU between several tasks • Maximizes the utilization of the CPU • Facilitates modular construction of applications • Simplifies the design of application programs Real-Time Systems
Task • A task (thread) is a simple program that thinks it has the CPU all to itself. • A Real-Time application consists of several tasks executing concurrently. • Each task is assigned a priority, its own set of CPU registers, and its own stack area. Real-Time Systems
Task States Waiting Dormant Ready Running ISR Real-Time Systems
Context Switch • Occurs when a Multi-Tasking kernel decides to run a different task. • Steps involved in a context switch 1.Save current task’s context(CPU registers) in the current tasks context storage area(it’s stack) 2.Restore the new task’s context from it’s storage area(it’s stack). 3.Resume execution of the new task’s code. Real-Time Systems
Multiple Tasks TASK 1 TASK 2 TASK n Stack Stack Stack Task Control Block Task Control Block Task Control Block Status Status Status SP SP SP Priority Priority Priority MEMORY CPU Registers CPU SP Real-Time Systems
Kernel • Definition Kernel is the part of the multi-tasking system responsible for the management of tasks and communication between tasks. • Services - Context switching - Inter task communication services(Semaphore management, mail boxes, queues, time delays, etc.) Real-Time Systems
Scheduler • Scheduler is the part of the kernel responsible for determining which task will run next • Most real-time kernels are priority based • Each task is assigned a priority based on its importance • The priority of each task is application specific • Control is always given to the highest priority task ready to run. Real-Time Systems
Kernel There are two types of priority based kernels • Non-Preemptive Kernel • Preemptive Kernel Real-Time Systems
Non-Preemptive Kernel • Require that each task does something to explicitly give up the control of the CPU • Also called cooperative multitasking • ISR always returns to the interrupted task • Advantages - Low interrupt latency - It can use Non-Reentrant functions • Disadvantages - Responsiveness is very law • Very few kernels are non-preemptive Real-Time Systems
Non-Preemptive Kernel Low Priority Task ISR ISR makes the higher priority task ready Time High Priority Task Low-priority task relinquishes the CPU Real-Time Systems
Preemptive Kernel • It is used when system responsiveness is important. • High priority task ready to run is always given control of the CPU • Most real-time kernels are preemptive. • Application code using a preemptive kernel should not use non-reentrant functions or an appropriate mutual exclusion method should be applied to prevent data corruption. Real-Time Systems
Preemptive Kernel Low Priority Task ISR High Priority Task ISR makes high priority task ready Time Real-Time Systems
Reentrancy • A reentrant function can be interrupted at any time and resumed at a later time without loss of data. • It either uses local variables or protects data when global variables are used. • It can be used by more than one task without fear of data corruption. Real-Time Systems
Mutual Exclusion • Mutual Exclusion is used to ensure the exclusive access to a shared resource without data corruption. • Common Methods are • Disabling interrupts • Disabling scheduling • Using Semaphores Real-Time Systems
Intertask Communication • Common Inter task Communication methods are 1. Message Queues 2. Mail Boxes 3. Semaphores Real-Time Systems
Session 3 Case Study TETRA Mobile Real-Time Systems
Tetra Air Interface • Tetra Systems use TDMA protocol. • TDMA defines time slots of duration 14.167 ms • A TDMA Frame contains 4 time slots • Each time slot is a physical channel which may be used for signaling or traffic. • There is an offset of two time slots between uplink and downlink slots. Real-Time Systems
TDMA Structure Real-Time Systems
What is the real-time requirement? 1 2 3 4 1 2 3 4 1 2 3 4 8.46 ms for uC 6.65 msfor DSP Offset of 2 slots Total Processing Time (15.11 ms) Real-Time Systems
Hardware Architecture • Texas TMS320VC5472 (Orion Processor) Processor • External RAM 8 MB SDRAM • Flash Memory 8 MB Real-Time Systems
Orion Processor Integrates • A DSP subsystem based on the TMS320C54x architecture and a • RISC microcontroller subsystem based on the AR7TDMI core. Real-Time Systems
DSP Subsystem Includes • TMS320C54X DSP Core • 74K X 16 Bit internal SRAM • ARM Port Interface • Two multi channel buffered serial ports(McBSPs) • Timer • DMA • Programmable wait-state generator • External Memory Interface Real-Time Systems
MCU Subsystem • ARM7TDMI Core • Memory interface for external SRAM, Flash, ROM and SDRAM. • On-chip 16K-byte zero wait-state SRAM. • General purpose I/Os (GPIOS), including support for an 8x8 keyboard. • Three Timers(Two generic, one watchdog) • Two UARTs • Interrupt Handler Subsystem Real-Time Systems
API Interface Orion DSP Subsystem ARM7TDMI API Memory API Interface TMS320C54x Real-Time Systems
Software Architecture The software is split up into five major components • DSP • MMI (Man Machine Interface) • PEI (Peripheral Equipment Interface) • Protocol Stack • RTOS (uC/OS-II) Real-Time Systems
Software Architecture Real-Time Systems
ARM Software Architecture Real-Time Systems
uC/OS-II uC/OS-II is a real-time operating system developed by Jean J. Labrosse. Characteristics • Preemptive • Multi-tasking • Romable • Scalable Real-Time Systems
uCOS-II • Maximum number of Tasks is 64 • Task priority levels can be 4 –56 • Task priority should be unique. • Supports fixed block memory management. • Supports Inter task communication methods such as Message Queues, Mail Boxes etc. Real-Time Systems