WEBVTT

00:00.090 --> 00:01.050
Narrator: W tej lekcji

00:01.050 --> 00:03.720
zaczniemy mówić o systemach wbudowanych.

00:03.720 --> 00:05.610
Kiedy mówimy o systemie wbudowanym, jest

00:05.610 --> 00:07.560
to system komputerowy, który został zaprojektowany

00:07.560 --> 00:10.980
do wykonywania określonej i dedykowanej funkcji.

00:10.980 --> 00:13.260
Teraz, kiedy mówimy o systemie wbudowanym,

00:13.260 --> 00:14.490
często mówimy o rzeczach

00:14.490 --> 00:18.150
bardziej w przestrzeni produkcyjnej lub automatyzacji.

00:18.150 --> 00:19.890
Możemy więc mieć mikrokontroler w

00:19.890 --> 00:22.770
systemie kroplówek medycznych, który ma jedno zadanie.

00:22.770 --> 00:24.840
Służy do pomiaru objętości płynu, który przechodzi

00:24.840 --> 00:27.660
przez urządzenie i trafia do kroplówki, dzięki czemu można podać

00:27.660 --> 00:29.520
pacjentowi to, czego potrzebuje.

00:29.520 --> 00:30.510
Inny może dotyczyć

00:30.510 --> 00:33.030
systemu sterowania w stacji uzdatniania wody.

00:33.030 --> 00:34.470
Jego zadaniem jest upewnienie

00:34.470 --> 00:36.870
się, że woda przepływa w określonym tempie.

00:36.870 --> 00:39.000
Będą oni otwierać lub zamykać zawory, aby upewnić

00:39.000 --> 00:41.940
się, że utrzymujemy tę ilość przepływu przez system.

00:41.940 --> 00:43.307
Taka jest idea systemu wbudowanego.

00:43.307 --> 00:45.840
I może to być bardzo, bardzo proste urządzenie lub

00:45.840 --> 00:47.610
może być w pełni złożone i mieć pełny

00:47.610 --> 00:50.550
system operacyjny, taki jak Linux lub Android, używany

00:50.550 --> 00:52.890
do uruchamiania tego typu systemów.

00:52.890 --> 00:54.360
To zależy.

00:54.360 --> 00:55.770
Teraz, w tej konkretnej lekcji,

00:55.770 --> 00:58.710
skupię się bardziej na konkretnych systemach wbudowanych,

00:58.710 --> 01:00.120
które mają jedną funkcję i mają

01:00.120 --> 01:02.400
własny dedykowany system operacyjny lub mikroprocesory

01:02.400 --> 01:05.100
do wykonywania tej funkcji.

01:05.100 --> 01:07.950
Na przykład w moim domu mam inteligentny licznik.

01:07.950 --> 01:09.900
Jeśli więc wyjdę na zewnątrz mojego domu,

01:09.900 --> 01:11.550
mogę spojrzeć na licznik energii

01:11.550 --> 01:14.940
elektrycznej w moim domu, a on powie mi, ile kilowatów na godzinę

01:14.940 --> 01:17.010
zużywam i ile zużywam w czasie.

01:17.010 --> 01:19.860
Teraz te informacje są podłączone do Internetu, dzięki czemu

01:19.860 --> 01:21.120
firma energetyczna nie musi

01:21.120 --> 01:22.680
wysyłać kogoś do mojego domu, aby odczytać

01:22.680 --> 01:24.420
ten licznik raz w miesiącu.

01:24.420 --> 01:26.730
Zamiast tego wszystko odbywa się teraz elektronicznie.

01:26.730 --> 01:28.620
Robią to za pomocą modemów komórkowych

01:28.620 --> 01:30.450
i łączą się przez sieć komórkową z powrotem

01:30.450 --> 01:32.640
przez Internet do swojej siedziby i serwerów,

01:32.640 --> 01:34.680
aby wprowadzić dane o tym, co wykorzystaliśmy

01:34.680 --> 01:36.600
do zużycia energii.

01:36.600 --> 01:37.770
Jeśli spojrzysz na swój licznik

01:37.770 --> 01:40.200
w domu, prawdopodobnie masz coś, co wygląda bardzo podobnie.

01:40.200 --> 01:42.030
Obecnie tego typu systemy wbudowane są

01:42.030 --> 01:43.980
uważane za środowiska statyczne, w których

01:43.980 --> 01:46.530
częste zmiany nie są wprowadzane lub dozwolone.

01:46.530 --> 01:48.600
Kiedy na przykład ostatnio aktualizowałeś oprogramowanie swojego

01:48.600 --> 01:50.010
licznika energii elektrycznej?

01:50.010 --> 01:51.210
Prawdopodobnie nigdy tego nie robiłeś.

01:51.210 --> 01:53.100
Firma energetyczna prawdopodobnie też nie

01:53.100 --> 01:54.120
robi tego zbyt często.

01:54.120 --> 01:56.190
Taka jest idea tych systemów wbudowanych.

01:56.190 --> 01:57.900
Są to bardzo okrojone systemy,

01:57.900 --> 02:00.870
które zostały stworzone w jednym i tylko jednym celu.

02:00.870 --> 02:03.510
Dzięki temu stają się bezpieczniejsze, ponieważ

02:03.510 --> 02:05.490
nie mają dużo dodatkowego kodu.

02:05.490 --> 02:06.720
Ale jeśli ten oryginalny kod

02:06.720 --> 02:08.670
nie został wykonany w dobrym stanie, utrudnia

02:08.670 --> 02:10.170
to aktualizacje, ponieważ te rzeczy

02:10.170 --> 02:11.640
nie są zbudowane tak, aby mogły otrzymywać

02:11.640 --> 02:13.860
częste aktualizacje oprogramowania.

02:13.860 --> 02:14.693
Z tego powodu systemy

02:14.693 --> 02:16.980
wbudowane często mają bardzo niewielkie wsparcie w zakresie

02:16.980 --> 02:19.800
identyfikowania i korygowania błędów bezpieczeństwa.

02:19.800 --> 02:21.120
Nie możesz zadzwonić do firmy energetycznej i

02:21.120 --> 02:22.860
powiedzieć, żeby przyjechali zabezpieczyć twój licznik.

02:22.860 --> 02:25.050
To po prostu nie jest część tego, co zamierzają dla ciebie zrobić.

02:25.050 --> 02:26.400
Zrobią to tak, jak chcą, ponieważ

02:26.400 --> 02:27.840
to ich urządzenie.

02:27.840 --> 02:30.150
I często, jeśli masz system wbudowany w fabryce lub

02:30.150 --> 02:32.700
w zakładzie, jeśli jesteś w obszarze produkcyjnym, będziesz

02:32.700 --> 02:35.220
miał ograniczone wsparcie od tego producenta.

02:35.220 --> 02:36.540
Jest to więc obszar, w którym naprawdę

02:36.540 --> 02:38.040
chcesz przenieść wszystkie te urządzenia

02:38.040 --> 02:39.510
do oddzielnej sieci i nie podłączać

02:39.510 --> 02:42.150
ich z powrotem do Internetu w ogóle, gdzie może to być dla ciebie

02:42.150 --> 02:44.970
duży obszar podatności na ataki.

02:44.970 --> 02:46.410
Kiedy mówimy o systemach wbudowanych,

02:46.410 --> 02:48.240
pojawia się termin PLC, czyli programowalny

02:48.240 --> 02:51.030
sterownik logiczny.

02:51.030 --> 02:53.310
Jest to rodzaj komputera, który został zaprojektowany do

02:53.310 --> 02:55.230
wdrożenia w środowisku przemysłowym lub zewnętrznym

02:55.230 --> 02:57.960
i może zautomatyzować nasze nowoczesne systemy mechaniczne.

02:57.960 --> 02:59.760
Teraz, kiedy myślisz o sterowniku PLC,

02:59.760 --> 03:01.680
chcę, abyś pomyślał o czymś takim jak produkcja,

03:01.680 --> 03:03.420
która otworzy lub zamknie zawór, aby

03:03.420 --> 03:05.370
wpuścić więcej lub mniej wody.

03:05.370 --> 03:07.140
Taka jest idea sterownika PLC.

03:07.140 --> 03:09.780
Jest to programowalny sterownik logiczny.

03:09.780 --> 03:12.000
Te sterowniki PLC działają na oprogramowaniu

03:12.000 --> 03:14.250
układowym, ponieważ są to systemy wbudowane.

03:14.250 --> 03:16.950
Tak więc oprogramowanie układowe, które jest oprogramowaniem na chipie, może

03:16.950 --> 03:18.480
być łatane i przeprogramowywane w celu usunięcia

03:18.480 --> 03:20.280
luk w zabezpieczeniach, gdy się pojawią.

03:20.280 --> 03:22.620
Jest to jednak bardzo specyficzny proces, a wsparcie

03:22.620 --> 03:25.230
ze strony producenta jest zazwyczaj ograniczone.

03:25.230 --> 03:26.370
To nie jest tak, jak w przypadku Microsoftu,

03:26.370 --> 03:28.350
gdzie w każdy wtorek udostępniają łatkę.

03:28.350 --> 03:31.140
W przypadku tych sterowników PLC poprawki mogą pojawiać się co sześć

03:31.140 --> 03:32.550
miesięcy, rok lub dwa lata.

03:32.550 --> 03:35.520
Pomiędzy kolejnymi łatkami mija zazwyczaj bardzo dużo czasu.

03:35.520 --> 03:36.960
Kolejną rzeczą, o której chcemy porozmawiać,

03:36.960 --> 03:38.550
są niektóre z używanych systemów operacyjnych.

03:38.550 --> 03:40.740
Istnieje więc coś takiego jak RTOS, czyli

03:40.740 --> 03:43.020
system operacyjny czasu rzeczywistego.

03:43.020 --> 03:45.120
Jest to rodzaj systemu operacyjnego, w

03:45.120 --> 03:48.780
którym priorytetem jest deterministyczne wykonywanie operacji.

03:48.780 --> 03:50.910
Pomoże nam to zapewnić spójną reakcję

03:50.910 --> 03:52.800
na krytyczne czasowo zadania.

03:52.800 --> 03:53.880
Zastanów się nad tym.

03:53.880 --> 03:57.000
Jeśli uruchamiasz coś, co musi otworzyć lub zamknąć zawór

03:57.000 --> 03:58.830
wewnątrz elektrowni jądrowej, czy

03:58.830 --> 04:02.040
możesz mieć możliwość wyłączenia go w dowolnym momencie?

04:02.040 --> 04:03.240
Prawdopodobnie nie, prawda?

04:03.240 --> 04:05.670
Cóż, to jest pomysł, w którym użylibyśmy RTOS, systemu

04:05.670 --> 04:07.500
operacyjnego czasu rzeczywistego.

04:07.500 --> 04:09.420
Wynika to z faktu, że wiele naszych systemów

04:09.420 --> 04:12.000
wbudowanych zazwyczaj nie toleruje restartów

04:12.000 --> 04:13.710
lub awarii i muszą mieć przewidywalne

04:13.710 --> 04:16.440
czasy reakcji w milisekundach.

04:16.440 --> 04:17.580
Jeśli więc buduję coś,

04:17.580 --> 04:19.860
co będzie obsługiwać części samolotu, co pomoże

04:19.860 --> 04:22.080
mojemu autopilotowi latać, a autopilot musi

04:22.080 --> 04:23.910
dokonywać regulacji na skrzydłach

04:23.910 --> 04:26.430
co kilka milisekund, to jest to coś, do czego chcielibyśmy

04:26.430 --> 04:29.850
użyć systemu operacyjnego czasu rzeczywistego.

04:29.850 --> 04:32.160
Nie możemy użyć do tego standardowego systemu Windows.

04:32.160 --> 04:33.990
Po prostu nie jest wystarczająco szybki i wydajny.

04:33.990 --> 04:36.060
Podlega restartom, awariom, poprawkom

04:36.060 --> 04:38.250
zabezpieczeń i wielu innym rzeczom.

04:38.250 --> 04:40.620
Tak więc RTOS, kiedy słyszysz ten termin, pomyśl o tym jako

04:40.620 --> 04:42.690
o typie systemu operacyjnego, który jest często

04:42.690 --> 04:44.550
używany w systemach wbudowanych, szczególnie

04:44.550 --> 04:46.560
w aplikacjach o znaczeniu krytycznym.

04:46.560 --> 04:47.700
Innym sposobem, w jaki możemy to

04:47.700 --> 04:49.740
zrobić, jest użycie tak zwanego systemu na chipie.

04:49.740 --> 04:51.810
Jest to kolejna forma systemów wbudowanych.

04:51.810 --> 04:53.910
W tym miejscu nasz procesor integruje funkcjonalność

04:53.910 --> 04:56.850
platformy wielu kontrolerów logicznych w jednym układzie

04:56.850 --> 04:58.470
scalonym.

04:58.470 --> 05:01.860
System-on-a-chip może być bardzo energooszczędny i dlatego jest często

05:01.860 --> 05:04.290
używany w mniejszych urządzeniach, które muszą

05:04.290 --> 05:05.790
mieć wbudowany system.

05:05.790 --> 05:06.810
Jeśli więc muszę stworzyć coś,

05:06.810 --> 05:07.860
co będzie miało wbudowany system

05:07.860 --> 05:10.140
i będzie bardzo małe, aby zmieściło się w mojej kieszeni, zwykle

05:10.140 --> 05:12.681
używałbym czegoś takiego jak system-on-a-chip.

05:12.681 --> 05:13.920
Jeśli korzystasz z czegoś takiego

05:13.920 --> 05:15.300
jak Roomba lub robot odkurzający,

05:15.300 --> 05:18.090
używają one mentalności typu system-on-a-chip, ponieważ starają

05:18.090 --> 05:19.950
się umieścić wszystkie te informacje na jednym

05:19.950 --> 05:21.870
chipie, ponieważ zajmuje to mniej miejsca, a

05:21.870 --> 05:24.570
zatem możesz zostawić więcej miejsca na funkcjonujące części,

05:24.570 --> 05:27.360
których potrzebujesz, takie jak odkurzacz.

05:27.360 --> 05:30.180
System-on-a-chip odnosi się do rodzaju układu scalonego, który

05:30.180 --> 05:32.310
zawiera wszystkie komponenty systemu komputerowego

05:32.310 --> 05:33.660
na jednym chipie.

05:33.660 --> 05:36.630
Obejmuje to procesor, pamięć, pamięć masową, procesor graficzny

05:36.630 --> 05:38.670
i urządzenia peryferyjne, takie jak kontrolery

05:38.670 --> 05:41.370
USB, obwody zarządzania energią i radia bezprzewodowe

05:41.370 --> 05:44.010
do Wi-Fi lub Bluetooth.

05:44.010 --> 05:47.160
Doskonałym przykładem systemu na chipie jest Raspberry Pi,

05:47.160 --> 05:48.990
który zawiera w pełni zamknięty komputer

05:48.990 --> 05:50.880
istniejący na jednym chipie.

05:50.880 --> 05:52.650
Teraz wiele z tych układów system-on-a-chip

05:52.650 --> 05:54.570
zostanie wbudowanych w inne urządzenia, takie

05:54.570 --> 05:58.140
jak inteligentne telewizory i dekodery, takie jak Amazon Fire TV, Roku i urządzenia

05:58.140 --> 06:00.750
do przesyłania strumieniowego Apple TV.

06:00.750 --> 06:02.970
Konstrukcje typu system-on-a-chip stały się bardzo

06:02.970 --> 06:04.560
popularne ze względu na niskie zużycie

06:04.560 --> 06:07.440
energii, przyzwoitą wydajność i niewielkie rozmiary.

06:07.440 --> 06:10.260
Na przykład, jeśli masz Roku lub Fire TV Stick,

06:10.260 --> 06:12.420
są one wielkości pendrive'a.

06:12.420 --> 06:15.450
Zapewniają one jednak w pełni działającą funkcję Smart TV w każdym istniejącym

06:15.450 --> 06:16.980
telewizorze i mogą przetwarzać strumieniowe

06:16.980 --> 06:18.510
przesyłanie wideo przez połączenie

06:18.510 --> 06:20.913
bezprzewodowe za pomocą tych urządzeń.
