WEBVTT

00:00.090 --> 00:01.050
Narratore: In questa

00:01.050 --> 00:03.720
lezione inizieremo a parlare di alcuni sistemi embedded.

00:03.720 --> 00:05.610
Quando si parla di sistema incorporato,

00:05.610 --> 00:07.560
si intende un sistema informatico progettato

00:07.560 --> 00:10.980
per svolgere una funzione specifica e dedicata.

00:10.980 --> 00:13.260
Spesso, quando si parla di un sistema embedded,

00:13.260 --> 00:14.490
ci si riferisce a cose che

00:14.490 --> 00:18.150
riguardano più il settore della produzione o dell'automazione.

00:18.150 --> 00:19.890
Quindi, in un sistema di flebo medicale,

00:19.890 --> 00:22.770
un microcontrollore potrebbe avere un solo compito.

00:22.770 --> 00:24.840
Serve a misurare il volume di fluido che passa attraverso

00:24.840 --> 00:27.660
la macchina e viene immesso nella flebo, in modo da poter dare al paziente

00:27.660 --> 00:29.520
ciò di cui ha bisogno.

00:29.520 --> 00:30.510
Potreste averne un altro per

00:30.510 --> 00:33.030
un sistema di controllo di un impianto di trattamento delle acque.

00:33.030 --> 00:34.470
E la sua responsabilità è quella di

00:34.470 --> 00:36.870
assicurarsi che l'acqua scorra ad una certa velocità.

00:36.870 --> 00:39.000
E apriranno o chiuderanno le valvole per assicurarsi

00:39.000 --> 00:41.940
di mantenere la quantità di flusso attraverso il sistema.

00:41.940 --> 00:43.307
Questa è l'idea di un sistema incorporato.

00:43.307 --> 00:45.840
Può trattarsi di un dispositivo molto semplice o

00:45.840 --> 00:47.610
di un dispositivo molto complesso

00:47.610 --> 00:50.550
con un sistema operativo completo, come Linux o Android,

00:50.550 --> 00:52.890
per l'esecuzione di questo tipo di sistemi.

00:52.890 --> 00:54.360
Dipende.

00:54.360 --> 00:55.770
Ora, in questa particolare lezione,

00:55.770 --> 00:58.710
mi concentrerò maggiormente sui sistemi embedded specifici

00:58.710 --> 01:00.120
che hanno una singola funzione

01:00.120 --> 01:02.400
e hanno il loro sistema operativo o microprocessore

01:02.400 --> 01:05.100
dedicato per svolgere tale funzione.

01:05.100 --> 01:07.950
Ad esempio, a casa mia ho un contatore intelligente.

01:07.950 --> 01:09.900
Quindi, se vado sul lato della mia casa, posso

01:09.900 --> 01:11.550
guardare il contatore elettrico della

01:11.550 --> 01:14.940
mia abitazione e mi dirà quanti chilowatt all'ora sto utilizzando e quanto

01:14.940 --> 01:17.010
ho consumato nel tempo.

01:17.010 --> 01:19.860
Ora, queste informazioni sono collegate a Internet, in modo che

01:19.860 --> 01:21.120
la società elettrica non debba

01:21.120 --> 01:22.680
mandare qualcuno a casa mia per leggere

01:22.680 --> 01:24.420
il contatore una volta al mese.

01:24.420 --> 01:26.730
Ora, invece, tutto avviene per via elettronica.

01:26.730 --> 01:28.620
Lo fanno utilizzando modem cellulari

01:28.620 --> 01:30.450
e si collegano attraverso la rete

01:30.450 --> 01:32.640
cellulare alla loro sede centrale e ai

01:32.640 --> 01:34.680
loro server per fornire i dati relativi

01:34.680 --> 01:36.600
al consumo di energia.

01:36.600 --> 01:37.770
Se guardate il contatore di casa

01:37.770 --> 01:40.200
vostra, probabilmente avete qualcosa di molto simile.

01:40.200 --> 01:42.030
Ora, questi tipi di sistemi embedded sono

01:42.030 --> 01:43.980
considerati ambienti statici in cui non vengono

01:43.980 --> 01:46.530
apportate o consentite modifiche frequenti.

01:46.530 --> 01:48.600
Quando è stata l'ultima volta che avete aggiornato il software del

01:48.600 --> 01:50.010
vostro contatore elettrico, ad esempio?

01:50.010 --> 01:51.210
Probabilmente non l'avete mai fatto.

01:51.210 --> 01:53.100
E probabilmente nemmeno l'azienda elettrica

01:53.100 --> 01:54.120
lo fa di frequente.

01:54.120 --> 01:56.190
Questa è l'idea di questi sistemi embedded.

01:56.190 --> 01:57.900
Si tratta di un sistema molto spoglio,

01:57.900 --> 02:00.870
realizzato per uno scopo e un solo scopo.

02:00.870 --> 02:03.510
In questo modo, si contribuisce ad aumentare la sicurezza,

02:03.510 --> 02:05.490
perché non c'è molto codice aggiuntivo.

02:05.490 --> 02:06.720
Ma se il codice originale non è stato

02:06.720 --> 02:08.670
realizzato in buono stato, diventa difficile eseguire

02:08.670 --> 02:10.170
gli aggiornamenti, perché questi apparecchi

02:10.170 --> 02:11.640
non sono costruiti per poter ricevere

02:11.640 --> 02:13.860
aggiornamenti software frequenti.

02:13.860 --> 02:14.693
Per questo motivo, i sistemi

02:14.693 --> 02:16.980
embedded spesso dispongono di un supporto molto limitato per

02:16.980 --> 02:19.800
l'identificazione e la correzione dei problemi di sicurezza.

02:19.800 --> 02:21.120
Non si può chiamare la società elettrica e

02:21.120 --> 02:22.860
dirle di venire a mettere in sicurezza il contatore.

02:22.860 --> 02:25.050
Questo non fa parte di ciò che faranno per voi.

02:25.050 --> 02:26.400
Lo faranno nel modo in cui vogliono,

02:26.400 --> 02:27.840
perché è il loro dispositivo.

02:27.840 --> 02:30.150
E spesso se avete un sistema incorporato all'interno della vostra

02:30.150 --> 02:32.700
fabbrica o del vostro stabilimento, se siete in un'area di produzione,

02:32.700 --> 02:35.220
avrete un supporto limitato da parte del produttore.

02:35.220 --> 02:36.540
Si tratta quindi di un'area

02:36.540 --> 02:38.040
in cui è preferibile inserire tutti

02:38.040 --> 02:39.510
i dispositivi in una rete separata

02:39.510 --> 02:42.150
e non collegarli a Internet in generale, che potrebbe rappresentare

02:42.150 --> 02:44.970
una grande area di vulnerabilità.

02:44.970 --> 02:46.410
Ora, quando si parla di sistemi

02:46.410 --> 02:48.240
embedded, esiste un termine chiamato

02:48.240 --> 02:51.030
PLC, che è un controllore logico programmabile.

02:51.030 --> 02:53.310
Si tratta di un tipo di computer progettato per l'impiego

02:53.310 --> 02:55.230
in ambienti industriali o esterni, in grado

02:55.230 --> 02:57.960
di automatizzare i moderni sistemi meccanici.

02:57.960 --> 02:59.760
Quando pensate a un PLC, pensate

02:59.760 --> 03:01.680
a qualcosa di simile alla produzione

03:01.680 --> 03:03.420
che apre o chiude una valvola per

03:03.420 --> 03:05.370
far entrare più o meno acqua.

03:05.370 --> 03:07.140
Questa è l'idea di un PLC.

03:07.140 --> 03:09.780
È un controllore logico programmabile.

03:09.780 --> 03:12.000
Ora, questi PLC funzionano con il firmware perché, ancora

03:12.000 --> 03:14.250
una volta, si tratta di sistemi incorporati.

03:14.250 --> 03:16.950
Quindi il firmware, che è un software su un chip, può essere patchato

03:16.950 --> 03:18.480
e riprogrammato per risolvere le vulnerabilità

03:18.480 --> 03:20.280
quando si verificano.

03:20.280 --> 03:22.620
Ma anche in questo caso si tratta di un processo molto specifico

03:22.620 --> 03:25.230
e il supporto del produttore è solitamente limitato.

03:25.230 --> 03:26.370
Non è come per Microsoft,

03:26.370 --> 03:28.350
che vi darà una patch ogni martedì.

03:28.350 --> 03:31.140
Con questi PLC, è possibile ottenere una patch ogni sei

03:31.140 --> 03:32.550
mesi, o un anno, o due anni.

03:32.550 --> 03:35.520
Di solito, l'intervallo tra una patch e l'altra è molto lungo.

03:35.520 --> 03:36.960
Ora, l'altra cosa di cui vogliamo parlare sono

03:36.960 --> 03:38.550
alcuni dei sistemi operativi che utilizzano.

03:38.550 --> 03:40.740
Esiste quindi una cosa nota come RTOS, ovvero

03:40.740 --> 03:43.020
un sistema operativo in tempo reale.

03:43.020 --> 03:45.120
Si tratta di un tipo di sistema operativo

03:45.120 --> 03:48.780
che privilegia l'esecuzione deterministica delle operazioni.

03:48.780 --> 03:50.910
E questo ci aiuterà a garantire una risposta coerente

03:50.910 --> 03:52.800
per le attività critiche in termini di tempo.

03:52.800 --> 03:53.880
Ora, pensate a questo.

03:53.880 --> 03:57.000
Se state gestendo qualcosa che deve aprire o chiudere una valvola all'interno

03:57.000 --> 03:58.830
di una centrale nucleare, potete avere la

03:58.830 --> 04:02.040
possibilità di metterla offline in qualsiasi momento?

04:02.040 --> 04:03.240
Probabilmente no, giusto?

04:03.240 --> 04:05.670
Ecco, questa è l'idea di utilizzare un RTOS, un

04:05.670 --> 04:07.500
sistema operativo in tempo reale.

04:07.500 --> 04:09.420
Questo perché molti dei nostri sistemi

04:09.420 --> 04:12.000
embedded non possono tollerare riavvii o crash

04:12.000 --> 04:13.710
e devono avere tempi di risposta

04:13.710 --> 04:16.440
prevedibili entro i millisecondi.

04:16.440 --> 04:17.580
Quindi, se sto costruendo

04:17.580 --> 04:19.860
qualcosa che deve far funzionare parti di un aeroplano,

04:19.860 --> 04:22.080
che deve aiutare il mio autopilota a volare, e se l'autopilota

04:22.080 --> 04:23.910
deve effettuare regolazioni sulle ali ogni

04:23.910 --> 04:26.430
paio di millisecondi, beh, questo è qualcosa per cui vorremmo

04:26.430 --> 04:29.850
usare un sistema operativo in tempo reale.

04:29.850 --> 04:32.160
Non possiamo usare un sistema Windows standard per questo.

04:32.160 --> 04:33.990
Non è abbastanza veloce o potente.

04:33.990 --> 04:36.060
È soggetto a riavvii o a crash, a patch

04:36.060 --> 04:38.250
di sicurezza e a tutte le altre cose.

04:38.250 --> 04:40.620
Quindi RTOS, quando sentite questo termine, pensate

04:40.620 --> 04:42.690
a questo tipo di sistema operativo che viene spesso

04:42.690 --> 04:44.550
utilizzato con i sistemi embedded, soprattutto

04:44.550 --> 04:46.560
nelle applicazioni critiche.

04:46.560 --> 04:47.700
Un altro modo per farlo è utilizzare

04:47.700 --> 04:49.740
il cosiddetto system-on-a-chip.

04:49.740 --> 04:51.810
Si tratta di un'altra forma di sistemi incorporati.

04:51.810 --> 04:53.910
In questo caso il nostro processore integra

04:53.910 --> 04:56.850
le funzionalità della piattaforma di più controllori

04:56.850 --> 04:58.470
logici in un unico chip.

04:58.470 --> 05:01.860
Ora, questi system-on-a-chip possono essere molto efficienti dal punto di vista energetico

05:01.860 --> 05:04.290
e quindi vengono spesso utilizzati con dispositivi più piccoli che

05:04.290 --> 05:05.790
devono avere un sistema incorporato.

05:05.790 --> 05:06.810
Quindi, se devo creare qualcosa

05:06.810 --> 05:07.860
che abbia un sistema incorporato

05:07.860 --> 05:10.140
e che sia molto piccolo e possa stare in tasca, di solito

05:10.140 --> 05:12.681
uso qualcosa come un system-on-a-chip.

05:12.681 --> 05:13.920
Se si utilizza qualcosa come

05:13.920 --> 05:15.300
un Roomba o un aspirapolvere robot,

05:15.300 --> 05:18.090
questi utilizzano una mentalità di tipo system-on-a-chip perché

05:18.090 --> 05:19.950
cercano di inserire tutte le informazioni

05:19.950 --> 05:21.870
in un unico chip, perché anche in questo caso

05:21.870 --> 05:24.570
occupa meno spazio e quindi si può lasciare più spazio per le parti

05:24.570 --> 05:27.360
funzionanti necessarie, come l'aspirapolvere.

05:27.360 --> 05:30.180
Per system-on-a-chip si intende un tipo di circuito integrato

05:30.180 --> 05:32.310
che contiene tutti i componenti di un sistema informatico

05:32.310 --> 05:33.660
in un unico chip.

05:33.660 --> 05:36.630
Questo include il processore, la memoria, lo storage, il processore

05:36.630 --> 05:38.670
grafico e le periferiche, come i controller

05:38.670 --> 05:41.370
USB, i circuiti di gestione dell'alimentazione e le radio

05:41.370 --> 05:44.010
wireless per il wifi o il Bluetooth.

05:44.010 --> 05:47.160
Un ottimo esempio di system-on-a-chip è il Raspberry Pi, che

05:47.160 --> 05:48.990
contiene un computer completamente

05:48.990 --> 05:50.880
contenuto in un singolo chip.

05:50.880 --> 05:52.650
Ora, molti di questi system-on-a-chip

05:52.650 --> 05:54.570
saranno integrati in altri dispositivi

05:54.570 --> 05:58.140
come smart TV e set top box, come i dispositivi di streaming Amazon

05:58.140 --> 06:00.750
Fire TV, Roku e Apple TV.

06:00.750 --> 06:02.970
I progetti System-on-a-chip sono diventati molto popolari

06:02.970 --> 06:04.560
grazie al loro basso consumo energetico,

06:04.560 --> 06:07.440
alle prestazioni decenti e al fattore di forma ridotto.

06:07.440 --> 06:10.260
Ad esempio, se si possiede un Roku o un Fire TV Stick, questi

06:10.260 --> 06:12.420
hanno le dimensioni di una chiavetta USB.

06:12.420 --> 06:15.450
Tuttavia, essi forniscono una funzionalità smart TV pienamente funzionante in

06:15.450 --> 06:16.980
qualsiasi televisore esistente e possono

06:16.980 --> 06:18.510
elaborare video in streaming attraverso

06:18.510 --> 06:20.913
una connessione wireless utilizzando questi dispositivi.
