L. Servoli - Corso Fisica dei Dispositivi Elettronici 1 Uno scheduler deve avere implementate almeno le seguenti 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 specificare un 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 periferica esterna?
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 rettangolare senza dover utilizzare nessuna altra istruzione. 3 $ " " 8, 1 ) 8
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 devono rimanere costanti per almeno due cicli, il che per un 8051 standard, con clock a 12 Mhz, corrisponde a Mhz di 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 seguenti Operazioni: 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 interpretazione una decisione sul da farsi viene presa o dal programma principale o da una TASK. L'esecuzione di eventuali azioni può di nuovo essere demandata 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 frequenza variabile 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: