Che cos'è un Sistema Real-time?
È un sistema che GARANTISCE la una risposta in
TEMPI CERTI, indipendentemente dalle condizioni.
Ossia, per certe applicazioni NON è accettabile una
prestazione incerta. (non e' quin di questioone di sole
prestazioni o effciienza).
Es.: pilota automatico di un aereo.
Es.: telemetria di dati in sistemi votati alla distruzione.
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
1
Che cos'è un Sistema Embedded?
È un sistema che contiene un elaboratore programmabile
utilizzato a “scatola chiusa” dall'utente.
Es.: controllo delle frecce direzionali di una autovettura.
A causa delle diverse legislazioni una casa
automobilistica che fabbrica un tipo di vettura DEVE
avere la possibilità tramite una operazione
SOFTWARE (riprogrammazione) di utilizzare la stessa
vettura di base in diversi paesi).
Sistemi con microcontrollore:
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
FLESSIBILI
2
Sistemi Event-triggered
Sono sistemi attivati da un evento esterno.
L'evento esterno produce in
un IMPULSO ELETTRICO.
qualche modo
Come fa il “sistema” a riconoscere che
questo “EVENTO” ha un significato
particolare e che occorre attivare una
procedura?
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
3
Sistemi Event - triggered
Un evento e' visto da un microprocessore
come un INTERRUPT.
Ossia: il microprocessore riceve un segnale
hardware.
A seguito dell'INTERRUPT nel sistema
operativo viene eseguita una routine di
servizio (Interrupt Service Routine) ISR
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
4
Sistemi Event-triggered
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
5
Sistemi Event-triggered
1) Il sistema esegue una funzione F1;
2) arriva l'interrupt servitio dalla ISR1;
3) Il sistema gestisce l'interrupt (ossia F1
viene sospesa);
4) Il sistema riprende ad eseguire F1 al
tempo T2.
5) inizia la esecuzione della funzione F2;
6) arriva l'interrupt ISR2;
7) F2 viene sospesa fino alla fine della
gestione dell'interrupt IRS2.
8) F2 riprende l'esecuzione.
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
6
Sistemi Event-triggered
CASO: ISR2 arriva PRIMA che ISR1 sia completato.....
Ma avendo una priorità più elevata va bene.....
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
7
Sistemi Event-triggered
PROBLEMA: ISR2 arriva PRIMA che ISR1 sia completato.....
Avendo una priorità uguale DEVE aspettare che ISR1 sia completata...
Potrebbe addirittura essere ignorata in alcuni casi....
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
8
Sistemi Event-triggered
PROBLEMA: ISR2 arriva PRIMA che ISR1 sia completato.....
Avendo una priorità inferiore DEVE aspettare che ISR1 sia completata...
Potrebbe addirittura essere ignorata in alcuni casi....
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
9
Sistemi Event-triggered
PROBLEMA: il sistema ha un comportamento NON
ben definito.
L'incertezza deriva dal fatto che a seconda di quando si
attivano i trigger esterni, la risposta del sistema
dipenderà da quello che sta accadendo in quel momento,
E se il sistema e' ragionevolmente complesso
(diversi input) la gestione di tutte le possibilità
DIVERGE molto ragidamente.
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
10
Sistemi Time -triggered
Sono sistemi gestiti esclusivemente da uno
scheduler interno che chiama l'esecuzione
delle varie funzioni a tempi o intervalli di
tempo PRECISI.
Non dipendendo da eventi esterni, è
possibile eliminare le incertezze nella
sovrapposizione di eventi e di situazioni.
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
11
Il Superciclo
È il sistema più semplice ed efficiente una
sequenza di azioni, purchè non si richiedan
o precisioni temporali troppo elevate:
void main(void)
{
inizializza_X();
while(1)
{
esegui_X();
}
}
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
12
Il Superciclo
- è semplice
- è efficiente (il tempo di CPU è tutto
dedicato alla esecuzione delle funzioni)
- è portabile
- scarsa precisione temporale;
- utilizzo totale della CPU.
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
13
Lo Scheduler coercitivo
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
14
Lo Scheduler coercitivo
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
15
Lo Scheduler cooperativo
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
16
Lo Scheduler cooperativo
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
17
Lo Scheduler ibrido
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
18
Lo Scheduler ibrido
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
19
Programmare Cooperativamente
TASSATIVO:
ogni task (funzione) si impegna a restituire il
controllo entro una durata temporale prefissata
(“tick”)
==> programmare con molta cura prevedendo
tutti i possibili casi.
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
20
Programmare Cooperativamente
ESEMPIO:
Lettura di un ADC....
Il dispositivo ha un registro di controllo (ADCCTRL)
che segnala la fine della conversione con un bit:
ADCDONE.
while ((ADCCTRL & ADCDONE) == 0) { ; }
Attende che l'ADC segnali la fine della conversione.
INAFFIDABILE.
Ditemi perchè.....
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
21
Programmare Cooperativamente
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
22
Programmare Cooperativamente
SOLUZIONE POSSIBILE:
Il TIMEOUT di ciclo
Controllo addizionale sul numero massimo di volte che
il ciclo può essere eseguito.
unsigned int Timeout_Loop = 100;
while ((ADCCTRL & ADCDONE) == 0) &&
(--Timeout_Loop !=0))
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
{ ; }
23
Programmare Cooperativamente
SOLUZIONE POSSIBILE 2:
Il TIMEOUT di ciclo
Possibile disabilitazione del timeout se si ha un simulatore
Hardware):
unsigned int Timeout_Loop = 100;
while ((ADCCTRL & ADCDONE) == 0) &&
(--Timeout_Loop !=0))
{
Timeout_Loop--;
/* Timeout_Loop = 0; */
}
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
24
Programmare Cooperativamente
Calibrazione e documentazione:
Quanto vale un ciclo da 100 passi?
Ogni microcontrollare ha i suoi valori (dipende dal clock
interno).
Per un 8051 con clock a 12 MHz:
1ms = 100;
10ms = 1000;
500 ms = 50000;
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
25
Programmare Cooperativamente
TIMEOUT HARDWARE:
Se vogliamo una elevata precisione nei timeout, occorre
usare uno dei timer interni del 8051:
Es:
Preload = 65535 – 12MHz/(12x1000) = 64535 = 0xFC17
Questo e' il valore iniziale che deve essere caricato
nel timer, in modo che dopo 1000 microsecondi il timer
raggiunga il valore massimo ed emetta un segnale di
overflow.
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
26
Programmare Cooperativamente
WATCHDOG:
Temporizzatori di “ultima istanza” che devono essere
resettati ad intervalli regolari.
se vanno in overflow, allora il microprocessore subisce
un RESET di sistema e riparte dalla configurazione iniziale.
Problema: sono delicati da profettare ed implementare,
proprio perche' sono ultimativi, non devono entrare in
funzione troppo frequentemente.
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
27
Microcontrollore SAB-501
Registri per
funzioni speciali
4 porte I/O
a 8-bit
2+1 timer
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
28
Microcontrollore SAB-501
Porte di I/O:
4 porte I/O
a 8-bit
2+1 timer
E+*,
.
)
3*
*
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
29
Microcontrollore SAB-501
Timer:
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
30
Microcontrollore SAB-501
Timer 0 e 1:
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
31
Microcontrollore SAB-501
Timer 0 e 1:
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
32
Microcontrollore SAB-501
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
33
Microcontrollore SAB-501
Timer 2:
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
34
Microcontrollore SAB-501
Timer 2: Modalità selezionata da 4 bit del registro T2CON
(indirizzo 0xC8)
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
35
Microcontrollore SAB-501
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
36
Microcontrollore SAB-501
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
37
Microcontrollore SAB-501
L. Servoli - Corso Fisica dei
Dispositivi Elettronici
38
Scarica

Lezione 19