1 / 38

Che cos'è un Sistema Real-time?

Che cos'è un Sistema Real-time?. È un sistema che GARANTISCE la una risposta in TEMPI CERTI , i ndipendentemente dalle condizioni. Ossia, per certe applicazioni NON è accettabile una prestazione incerta. (non e' quin di questioone di sole prestazioni o effciienza).

ganesa
Download Presentation

Che cos'è un Sistema Real-time?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. L. Servoli - Corso Fisica dei Dispositivi Elettronici 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.

  2. L. Servoli - Corso Fisica dei Dispositivi Elettronici 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: FLESSIBILI

  3. L. Servoli - Corso Fisica dei Dispositivi Elettronici Sistemi Event-triggered Sono sistemi attivati da un evento esterno. L'evento esterno produce in qualche modo un IMPULSO ELETTRICO. Come fa il “sistema” a riconoscere che questo “EVENTO” ha un significato particolare e che occorre attivare una procedura?

  4. L. Servoli - Corso Fisica dei Dispositivi Elettronici 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

  5. L. Servoli - Corso Fisica dei Dispositivi Elettronici Sistemi Event-triggered

  6. L. Servoli - Corso Fisica dei Dispositivi Elettronici Sistemi Event-triggered 1) Il sistema esegue una funzione F1; 2) arriva l'interrupt servitio dallaISR1; 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.

  7. L. Servoli - Corso Fisica dei Dispositivi Elettronici Sistemi Event-triggered CASO: ISR2 arriva PRIMA che ISR1 sia completato..... Ma avendo una priorità più elevata va bene.....

  8. L. Servoli - Corso Fisica dei Dispositivi Elettronici 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....

  9. L. Servoli - Corso Fisica dei Dispositivi Elettronici 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....

  10. L. Servoli - Corso Fisica dei Dispositivi Elettronici 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.

  11. L. Servoli - Corso Fisica dei Dispositivi Elettronici 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.

  12. L. Servoli - Corso Fisica dei Dispositivi Elettronici 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(); } }

  13. L. Servoli - Corso Fisica dei Dispositivi Elettronici Il Superciclo - è semplice - è efficiente (il tempo di CPU è tutto dedicato alla esecuzione delle funzioni) - è portabile - scarsa precisione temporale; - utilizzo totale della CPU.

  14. L. Servoli - Corso Fisica dei Dispositivi Elettronici Lo Scheduler coercitivo

  15. L. Servoli - Corso Fisica dei Dispositivi Elettronici Lo Scheduler coercitivo

  16. L. Servoli - Corso Fisica dei Dispositivi Elettronici Lo Scheduler cooperativo

  17. L. Servoli - Corso Fisica dei Dispositivi Elettronici Lo Scheduler cooperativo

  18. L. Servoli - Corso Fisica dei Dispositivi Elettronici Lo Scheduler ibrido

  19. L. Servoli - Corso Fisica dei Dispositivi Elettronici Lo Scheduler ibrido

  20. L. Servoli - Corso Fisica dei Dispositivi Elettronici 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.

  21. L. Servoli - Corso Fisica dei Dispositivi Elettronici 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è.....

  22. L. Servoli - Corso Fisica dei Dispositivi Elettronici Programmare Cooperativamente

  23. L. Servoli - Corso Fisica dei Dispositivi Elettronici 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)) { ; }

  24. L. Servoli - Corso Fisica dei Dispositivi Elettronici 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; */ }

  25. L. Servoli - Corso Fisica dei Dispositivi Elettronici 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;

  26. L. Servoli - Corso Fisica dei Dispositivi Elettronici 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.

  27. L. Servoli - Corso Fisica dei Dispositivi Elettronici 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.

  28. L. Servoli - Corso Fisica dei Dispositivi Elettronici Microcontrollore SAB-501 Registri per funzioni speciali 4 porte I/O a 8-bit 2+1 timer

  29. L. Servoli - Corso Fisica dei Dispositivi Elettronici Microcontrollore SAB-501 Porte di I/O: 4 porte I/O a 8-bit 􀀀􀀀 􀀀 E+*, . ) 3* * 3, 3< 37 $ ! ! , 7 / * ! $ . ( C . ; - 3* 3, 3< 37 2+1 timer

  30. L. Servoli - Corso Fisica dei Dispositivi Elettronici Microcontrollore SAB-501 Timer:

  31. L. Servoli - Corso Fisica dei Dispositivi Elettronici Microcontrollore SAB-501 Timer 0 e 1:

  32. L. Servoli - Corso Fisica dei Dispositivi Elettronici Microcontrollore SAB-501 Timer 0 e 1:

  33. L. Servoli - Corso Fisica dei Dispositivi Elettronici Microcontrollore SAB-501

  34. L. Servoli - Corso Fisica dei Dispositivi Elettronici Microcontrollore SAB-501 Timer 2:

  35. L. Servoli - Corso Fisica dei Dispositivi Elettronici Microcontrollore SAB-501 Timer 2: Modalità selezionata da 4 bit del registro T2CON (indirizzo 0xC8)

  36. L. Servoli - Corso Fisica dei Dispositivi Elettronici Microcontrollore SAB-501

  37. L. Servoli - Corso Fisica dei Dispositivi Elettronici Microcontrollore SAB-501

  38. L. Servoli - Corso Fisica dei Dispositivi Elettronici Microcontrollore SAB-501

More Related