L. Servoli - Corso Fisica dei Dispositivi Elettronici
1
Uno scheduler deve avere implementate almeno leseguenti funzionalità:
1) Inizializzatore: preparazione delle strutture dati necessarie. Inizializzazione hardware (Timer2).
2) Avviatore: fa partire il processo di scheduling.
3) Inseritore task: inserisce nella lista delle task la funzione da eseguire con la possibilita' di specificareun ritardo iniziale e la durata del periodo di esecuzione.
4) Distruttore Task: rimuove una task dalla lista.
Le funzioni di uno scheduler
L. Servoli - Corso Fisica dei Dispositivi Elettronici
2
5) Esecutore task: fa eseguire la task pronta per l'esecuzione. Una volta completata lascia il processore In modalita' “idle”.
6) Standby: mette il microprocessore in “idle”.
7) descrittore stato: riporta lo stato del microprocessore e delle sue pariferiche hardware.
8) Codice di errore: meccanismo per registrare il codice di errore relativo all'ultima operazione eseguita dal microprocessore.
Le funzioni di uno scheduler
L. Servoli - Corso Fisica dei Dispositivi Elettronici
3
E adesso implementate.......... :)
Le funzioni di uno scheduler
L. Servoli - Corso Fisica dei Dispositivi Elettronici
4
Esempio di I/O specializzato:
Pulse Rate Sensing (PRS)..
Ossia:
Come si possono contare impulsi rettangolari da perifericaesterna?
L. Servoli - Corso Fisica dei Dispositivi Elettronici
5
Esempio di I/O specializzato:
Soluzione Hardware:
Se si ha un TIMER/CONTATORE a disposizione, si possono contare i fronti di discesa del segnale rettangolaresenza dover utilizzare nessuna altra istruzione.
L. Servoli - Corso Fisica dei Dispositivi Elettronici
6
Esempio di I/O specializzato:
Funzionamento:
La coppia di registri TH0, TL0 viene incrementata ogni volta che si ha una transizione 1-> 0 sul pin T0.Per garantire una misura accurata i valori sul pin devonorimanere costanti per almeno due cicli, il che per un 8051standard, con clock a 12 Mhz, corrisponde a 0.500 Mhzdi frequenza massima misurabile.
(ricordate: 1 ciclo macchina = 12 colpi di clock).
L. Servoli - Corso Fisica dei Dispositivi Elettronici
7
Esempio di I/O specializzato:
Funzionamento: TASK:
A livello si TASK occorre crearne una che faccia le seguentiOperazioni:
1. a intervalli regolari legga il contatore;2. trasferisca il valore letto in un buffer o in una variabile globale;3. azzeri il contatore per far ripartire una nuova lettura.
N.B.: l'analisi dei dati verrà fatta o da una seconda task o dal programma principale.
L. Servoli - Corso Fisica dei Dispositivi Elettronici
8
Esempio di I/O specializzato:
Funzionamento: Implementazione delle decisioni:
Sulla base dell'analisi dei dati e la loro interpretazioneuna decisione sul da farsi viene presa o dal programma principale o da una TASK.
L'esecuzione di eventuali azioni può di nuovo esseredemandata al programma principale o ad un'altra TASK.
Importante: è necessario l'accesso ESCLUSIVO ad un Timer
L. Servoli - Corso Fisica dei Dispositivi Elettronici
9
Esempio di I/O specializzato:
Soluzione Software: (frequenza massima: 500 Hz)
Se NON si ha un TIMER/CONTATORE a disposizione, si possono utilizzare tecniche software:
1. un TASK che controlla lo stato di un PIN di I/O;2. quando c'è una transizione tra due controlli viene incrementato un contatore software;3. un altro TASK schedulato su periodi più lunghi esegue la raccolta dati e la loro analisi;4. il main o un altro TASK deciderà cosa fare e quali azioni far eseguire.
L. Servoli - Corso Fisica dei Dispositivi Elettronici
10
Esempio di I/O specializzato:
L. Servoli - Corso Fisica dei Dispositivi Elettronici
11
Esempio di I/O specializzato:
Pulse Rate Modulation (PRM)..
Ossia:
Come si possono generare impulsi rettangolari a frequenzavariabile in uscita?
L. Servoli - Corso Fisica dei Dispositivi Elettronici
12
Esempio di I/O specializzato:
T = periodo dell'onda (x+y);
x = intervallo in cui il segnale è nello stato “1”;
y = intervallo in cui il segnale è nello stato “0”;
Inoltre. f = 1/T = frequenza dell'onda; Duty Cycle: DC = x/(x+y) * 100%
L. Servoli - Corso Fisica dei Dispositivi Elettronici
13
Esempio di I/O specializzato:
T = periodo dell'onda (x+y);
x = intervallo in cui il segnale è nello stato “1”;
y = intervallo in cui il segnale è nello stato “0”;
Inoltre. f = 1/T = frequenza dell'onda; Duty Cycle: DC = x/(x+y) * 100%
L. Servoli - Corso Fisica dei Dispositivi Elettronici
14
Esempio di I/O specializzato:
Soluzione Hardware: (massima frequenza: 3.0 MHz)
Se si ha un TIMER/CONTATORE tipo Timer2 a disposizione, si può generare un treno di impulsi rettangolari con DT=50%dal pin T2 (P1.0) .
1. porre a 0 il bit 2. porre a 1 il bit 3. il bit fa partire il Timer 2.
La frequenza è:
L. Servoli - Corso Fisica dei Dispositivi Elettronici
15
Esempio di I/O specializzato:
Soluzione Software:
Se NON si ha un timer tipo Timer2 a disposizione,
L. Servoli - Corso Fisica dei Dispositivi Elettronici
16
Esempio di I/O specializzato:
Soluzione Software: TASK FLASHLED();
L. Servoli - Corso Fisica dei Dispositivi Elettronici
17
Esempio di I/O specializzato:
Soluzione Software: Ciclo con frequenza variabile:
Variabile Globale
L. Servoli - Corso Fisica dei Dispositivi Elettronici
18
Esempio di I/O specializzato:
Pulse Width Modulation (PWM)..
Ossia: Come si possono generare impulsi a frequenza variabile che codifichino una ampiezza in uscita? (è un tipo di modulazione analogica in cui l'informazione è codificata sotto forma di durata nel tempo di ciascun impulso di un segnale)
L. Servoli - Corso Fisica dei Dispositivi Elettronici
19
Esempio di I/O specializzato:
Il segnale medio dipende essenzialmente dal Duty Cycle:
L. Servoli - Corso Fisica dei Dispositivi Elettronici
20
Esempio di I/O specializzato:
L. Servoli - Corso Fisica dei Dispositivi Elettronici
21
Esempio di I/O specializzato:
Period = costante questa volta;
PWM = variabile;
L. Servoli - Corso Fisica dei Dispositivi Elettronici
22
Esempio di I/O specializzato:
L. Servoli - Corso Fisica dei Dispositivi Elettronici
23
Esempio di I/O specializzato:
Nuovo approccio apparentemente più veloce.
L. Servoli - Corso Fisica dei Dispositivi Elettronici
24
Esempio di I/O specializzato:
Top Related