WEBVTT

00:00.090 --> 00:01.050
Verteller: In deze

00:01.050 --> 00:03.720
les gaan we het hebben over embedded systemen.

00:03.720 --> 00:05.610
Als we het nu hebben over een ingebed systeem,

00:05.610 --> 00:07.560
dan is dit een computersysteem dat is ontworpen

00:07.560 --> 00:10.980
om een specifieke en speciale functie uit te voeren.

00:10.980 --> 00:13.260
Als we het hebben over een ingebed systeem,

00:13.260 --> 00:14.490
hebben we het vaak over

00:14.490 --> 00:18.150
dingen die meer te maken hebben met productie of automatisering.

00:18.150 --> 00:19.890
We kunnen dus een microcontroller in

00:19.890 --> 00:22.770
een medisch infuussysteem hebben die maar één taak heeft.

00:22.770 --> 00:24.840
Het is om de hoeveelheid vloeistof te meten

00:24.840 --> 00:27.660
die door die machine en in je infuus gaat, zodat je de patiënt

00:27.660 --> 00:29.520
kunt geven wat hij nodig heeft.

00:29.520 --> 00:30.510
Misschien heb je er nog een

00:30.510 --> 00:33.030
voor een besturingssysteem in een waterzuiveringsinstallatie.

00:33.030 --> 00:34.470
En het is zijn verantwoordelijkheid om ervoor

00:34.470 --> 00:36.870
te zorgen dat het water met een bepaalde snelheid doorstroomt.

00:36.870 --> 00:39.000
En ze gaan kleppen openen of sluiten om ervoor te

00:39.000 --> 00:41.940
zorgen dat we die hoeveelheid stroom door het systeem handhaven.

00:41.940 --> 00:43.307
Dit is het idee van een ingebed systeem.

00:43.307 --> 00:45.840
En het kan een heel, heel eenvoudig apparaat zijn of het

00:45.840 --> 00:47.610
kan volledig complex zijn en een volledig

00:47.610 --> 00:50.550
besturingssysteem hebben zoals Linux of Android dat wordt gebruikt

00:50.550 --> 00:52.890
om dit soort systemen te draaien.

00:52.890 --> 00:54.360
Het hangt er gewoon vanaf.

00:54.360 --> 00:55.770
In deze specifieke les ga ik

00:55.770 --> 00:58.710
me meer richten op de specifieke ingebedde systemen die

00:58.710 --> 01:00.120
een enkele functie hebben en

01:00.120 --> 01:02.400
die hun eigen besturingssysteem of microprocessors

01:02.400 --> 01:05.100
hebben om die functie uit te voeren.

01:05.100 --> 01:07.950
Bij mij thuis heb ik bijvoorbeeld een slimme meter.

01:07.950 --> 01:09.900
Dus als ik naar de zijkant van mijn huis ga, kan

01:09.900 --> 01:11.550
ik naar de elektriciteitsmeter van mijn

01:11.550 --> 01:14.940
huis kijken en die vertelt me hoeveel kilowatt per uur ik gebruik en hoeveel

01:14.940 --> 01:17.010
ik in de loop van de tijd heb gebruikt.

01:17.010 --> 01:19.860
Deze informatie is verbonden met het internet, zodat het energiebedrijf

01:19.860 --> 01:21.120
niet elke maand iemand naar

01:21.120 --> 01:22.680
mijn huis hoeft te sturen om de meterstand

01:22.680 --> 01:24.420
op te nemen.

01:24.420 --> 01:26.730
In plaats daarvan gebeurt het nu allemaal elektronisch.

01:26.730 --> 01:28.620
Ze doen dit met behulp van mobiele

01:28.620 --> 01:30.450
modems en maken via het mobiele netwerk

01:30.450 --> 01:32.640
verbinding met hun hoofdkantoor en hun

01:32.640 --> 01:34.680
servers om de gegevens over ons energieverbruik

01:34.680 --> 01:36.600
in te voeren.

01:36.600 --> 01:37.770
Als je bij jou thuis naar de meterkast

01:37.770 --> 01:40.200
kijkt, heb je waarschijnlijk iets dat er ongeveer hetzelfde uitziet.

01:40.200 --> 01:42.030
Nu worden dit soort embedded systemen beschouwd

01:42.030 --> 01:43.980
als statische omgevingen waar frequente wijzigingen

01:43.980 --> 01:46.530
niet worden gemaakt of toegestaan.

01:46.530 --> 01:48.600
Wanneer heb je bijvoorbeeld voor het laatst de software van

01:48.600 --> 01:50.010
je elektriciteitsmeter geüpgraded?

01:50.010 --> 01:51.210
Dat heb je waarschijnlijk nooit gedaan.

01:51.210 --> 01:53.100
En het energiebedrijf doet het waarschijnlijk

01:53.100 --> 01:54.120
ook niet vaak.

01:54.120 --> 01:56.190
Dat is het idee van deze ingebedde systemen.

01:56.190 --> 01:57.900
Ze zijn een zeer uitgekleed systeem

01:57.900 --> 02:00.870
dat gemaakt is voor één doel en slechts één doel.

02:00.870 --> 02:03.510
En door dat te doen, worden ze veiliger omdat

02:03.510 --> 02:05.490
ze niet veel extra code hebben.

02:05.490 --> 02:06.720
Maar als die originele code niet

02:06.720 --> 02:08.670
in een goede staat op zijn plaats is gemaakt, wordt

02:08.670 --> 02:10.170
het moeilijk om updates uit te voeren

02:10.170 --> 02:11.640
omdat deze dingen niet gemaakt zijn

02:11.640 --> 02:13.860
om regelmatig software-updates te krijgen.

02:13.860 --> 02:14.693
Hierdoor hebben embedded

02:14.693 --> 02:16.980
systemen vaak weinig ondersteuning voor het identificeren

02:16.980 --> 02:19.800
en corrigeren van beveiligingsproblemen.

02:19.800 --> 02:21.120
Je kunt het energiebedrijf niet bellen

02:21.120 --> 02:22.860
en zeggen dat ze je meter moeten veiligstellen.

02:22.860 --> 02:25.050
Dat is gewoon geen onderdeel van wat ze voor je gaan doen.

02:25.050 --> 02:26.400
Ze doen het op hun manier omdat

02:26.400 --> 02:27.840
het hun apparaat is.

02:27.840 --> 02:30.150
En als je een ingebed systeem in je fabriek of in je fabriek

02:30.150 --> 02:32.700
hebt, als je in een productiegebied zit, zul je vaak beperkte

02:32.700 --> 02:35.220
ondersteuning van die fabrikant krijgen.

02:35.220 --> 02:36.540
En dit is dus een gebied waar je

02:36.540 --> 02:38.040
echt al deze apparaten op een apart

02:38.040 --> 02:39.510
netwerk wilt zetten en ze niet terug

02:39.510 --> 02:42.150
wilt verbinden met het internet in het algemeen, waar dit

02:42.150 --> 02:44.970
een groot kwetsbaar gebied voor je zou kunnen zijn.

02:44.970 --> 02:46.410
Als we het nu hebben over ingebedde

02:46.410 --> 02:48.240
systemen, is er een term die PLC heet,

02:48.240 --> 02:51.030
wat een programmeerbare logische controller is.

02:51.030 --> 02:53.310
Dit is een type computer dat is ontworpen voor gebruik

02:53.310 --> 02:55.230
in industriële of buitenomgevingen en dat

02:55.230 --> 02:57.960
onze moderne mechanische systemen kan automatiseren.

02:57.960 --> 02:59.760
Als je nu aan een PLC denkt, wil ik

02:59.760 --> 03:01.680
dat je denkt aan iets als productie

03:01.680 --> 03:03.420
dat een klep opent of sluit om meer

03:03.420 --> 03:05.370
of minder water binnen te laten.

03:05.370 --> 03:07.140
Dat is het idee van een PLC.

03:07.140 --> 03:09.780
Het is een programmeerbare logische controller.

03:09.780 --> 03:12.000
Nu draaien deze PLC's op firmware omdat dit,

03:12.000 --> 03:14.250
nogmaals, ingebedde systemen zijn.

03:14.250 --> 03:16.950
De firmware, software op een chip, kan dus worden gepatcht en geherprogrammeerd

03:16.950 --> 03:18.480
om kwetsbaarheden te verhelpen wanneer

03:18.480 --> 03:20.280
deze zich voordoen.

03:20.280 --> 03:22.620
Maar nogmaals, er is een zeer specifiek proces en er

03:22.620 --> 03:25.230
is meestal beperkte ondersteuning van de fabrikant.

03:25.230 --> 03:26.370
Het is niet zoals Microsoft

03:26.370 --> 03:28.350
die je elke dinsdag een patch geeft.

03:28.350 --> 03:31.140
Met deze PLC's krijg je misschien elke zes maanden, of een

03:31.140 --> 03:32.550
jaar, of twee jaar een patch.

03:32.550 --> 03:35.520
Er zit meestal erg veel tijd tussen de patches.

03:35.520 --> 03:36.960
Het andere waar we het over willen hebben zijn

03:36.960 --> 03:38.550
de besturingssystemen die ze gebruiken.

03:38.550 --> 03:40.740
Dus er is iets dat bekend staat als een RTOS,

03:40.740 --> 03:43.020
wat een real-time besturingssysteem is.

03:43.020 --> 03:45.120
Dit is een type besturingssysteem dat prioriteit

03:45.120 --> 03:48.780
geeft aan het deterministisch uitvoeren van bewerkingen.

03:48.780 --> 03:50.910
En dit zal ons helpen om consistente respons te

03:50.910 --> 03:52.800
garanderen voor tijdkritische taken.

03:52.800 --> 03:53.880
Denk hier eens over na.

03:53.880 --> 03:57.000
Als je iets gebruikt dat een klep in een kerncentrale

03:57.000 --> 03:58.830
moet openen of sluiten, kun je

03:58.830 --> 04:02.040
dat dan op elk moment offline laten gaan?

04:02.040 --> 04:03.240
Waarschijnlijk niet, toch?

04:03.240 --> 04:05.670
Nou, dat is het idee achter het gebruik van een RTOS,

04:05.670 --> 04:07.500
een real-time besturingssysteem.

04:07.500 --> 04:09.420
Dit komt omdat veel van onze embedded

04:09.420 --> 04:12.000
systemen geen reboots of crashes kunnen verdragen

04:12.000 --> 04:13.710
en ze moeten reactietijden hebben

04:13.710 --> 04:16.440
die binnen milliseconden voorspelbaar zijn.

04:16.440 --> 04:17.580
Dus als ik iets bouw dat onderdelen

04:17.580 --> 04:19.860
van een vliegtuig gaat besturen, dat mijn automatische

04:19.860 --> 04:22.080
piloot gaat helpen met vliegen en waarbij de automatische

04:22.080 --> 04:23.910
piloot elke paar milliseconden aanpassingen

04:23.910 --> 04:26.430
moet doen aan de vleugels, dan is dat iets waar we een real-time

04:26.430 --> 04:29.850
besturingssysteem voor willen gebruiken.

04:29.850 --> 04:32.160
Daar kunnen we geen standaard Windows-systeem voor gebruiken.

04:32.160 --> 04:33.990
Hij is gewoon niet snel of krachtig genoeg.

04:33.990 --> 04:36.060
En het is onderhevig aan herstarten of crashen, en het is onderhevig

04:36.060 --> 04:38.250
aan beveiligingspatches en al die andere dingen.

04:38.250 --> 04:40.620
Dus RTOS, als je die term hoort, denk dan aan het

04:40.620 --> 04:42.690
type besturingssysteem dat vaak wordt

04:42.690 --> 04:44.550
gebruikt bij ingebedde systemen, vooral

04:44.550 --> 04:46.560
in kritieke toepassingen.

04:46.560 --> 04:47.700
Een andere manier om dit te doen is door

04:47.700 --> 04:49.740
gebruik te maken van een zogenaamd systeem-op-een-chip.

04:49.740 --> 04:51.810
Dit is een andere vorm van ingebedde systemen.

04:51.810 --> 04:53.910
Dit is waar onze processor de platformfunctionaliteit

04:53.910 --> 04:56.850
van meerdere logische controllers integreert op een enkele

04:56.850 --> 04:58.470
chip.

04:58.470 --> 05:01.860
Dit systeem-op-een-chip kan erg energiezuinig zijn en daarom worden

05:01.860 --> 05:04.290
ze vaak gebruikt voor kleinere apparaten die een ingebed

05:04.290 --> 05:05.790
systeem nodig hebben.

05:05.790 --> 05:06.810
Dus als ik iets moet maken

05:06.810 --> 05:07.860
met een ingebed systeem

05:07.860 --> 05:10.140
dat heel klein is en in mijn broekzak past, dan gebruik

05:10.140 --> 05:12.681
ik meestal zoiets als een systeem-op-een-chip.

05:12.681 --> 05:13.920
Als je zoiets als een Roomba of

05:13.920 --> 05:15.300
robotstofzuiger gebruikt, dan gebruiken

05:15.300 --> 05:18.090
die een soort systeem-op-een-chip mentaliteit omdat ze proberen

05:18.090 --> 05:19.950
al die informatie op een enkele chip te krijgen,

05:19.950 --> 05:21.870
omdat het weer minder ruimte in beslag neemt en

05:21.870 --> 05:24.570
je daardoor meer ruimte overhoudt voor de functionerende onderdelen

05:24.570 --> 05:27.360
die je nodig hebt, zoals de stofzuiger.

05:27.360 --> 05:30.180
Een systeem-op-een-chip is een soort geïntegreerd circuit

05:30.180 --> 05:32.310
dat alle componenten van een computersysteem

05:32.310 --> 05:33.660
op een enkele chip bevat.

05:33.660 --> 05:36.630
Dit omvat je processor, het geheugen, de opslag, de grafische

05:36.630 --> 05:38.670
processor en de randapparatuur, dingen

05:38.670 --> 05:41.370
zoals USB-controllers, stroombeheercircuits en draadloze

05:41.370 --> 05:44.010
radio's voor wifi of Bluetooth.

05:44.010 --> 05:47.160
Een goed voorbeeld van een systeem-op-een-chip is de Raspberry

05:47.160 --> 05:48.990
Pi, die een computer bevat die volledig

05:48.990 --> 05:50.880
bestaat op een enkele chip.

05:50.880 --> 05:52.650
Veel van deze system-on-a-chips

05:52.650 --> 05:54.570
zullen worden ingebouwd in andere

05:54.570 --> 05:58.140
apparaten zoals smart TV's en set top boxes, zoals de Amazon Fire

05:58.140 --> 06:00.750
TV, Roku en Apple TV streamingapparaten.

06:00.750 --> 06:02.970
System-on-a-chip ontwerpen zijn erg populair

06:02.970 --> 06:04.560
geworden vanwege hun lage energieverbruik,

06:04.560 --> 06:07.440
hun goede prestaties en de kleine vormfactor.

06:07.440 --> 06:10.260
Als je bijvoorbeeld een Roku of Fire TV Stick hebt, hebben

06:10.260 --> 06:12.420
die de grootte van een USB-stick.

06:12.420 --> 06:15.450
Toch bieden ze een volledig werkende smart TV-functionaliteit in

06:15.450 --> 06:16.980
elke bestaande televisie en kunnen

06:16.980 --> 06:18.510
ze streaming video verwerken via

06:18.510 --> 06:20.913
een draadloze verbinding met deze apparaten.
