Skocz do zawartości

Ścieżka rozwoju dla przyszłego architekta embedded. Szukam dwóch książek.


Pomocna odpowiedź

Dzięki za pomoc! Niestety nie do końca o to mi chodziło. Nie szukam książek o programowaniu, ani stricte o hardware. Chcę się nauczyć projektować ogólny zamysł projektu. Czyli przykładowo jeżeli mam do zaprojektowania smart home, to na początku rozrysowuję sobie jak to ma działać (np. Najpierw przez Wi-Fi device_1 odbiera sygnał, przesyła komendę command_1 do device_2 i device_3. Każde z device przesyła do device_1 raporty czy ruch np. rolet został wykonany. device_1 zbiera te dane i wysyła przez Wi-Fi na telefon powiadomienie. Tutaj trzeba też ustalić, jak będą się komunikowały device. Wi-Fi odpada, więc może przez Bluetooth, które ma taki plus, że można połączyć wiele urządzeń, a może skorzystamy z ESP–NOW, jeżeli mamy taką możliwość. Zależy oczywiście to od różnych parametrów, ponieważ jedne systemy mają lepsze szyfrowanie, a inne działają na większą odległość jak LoRa.), a potem analizuję problemy jakie mogą tu wystąpić (tak jak mówiłem, przeciążenie procesora, brak zasięgu i szum z czujników). Do tego potrzebna mi jest wiedza z software i hardware. Jak na razie znalazłem te 3 książki:

1. SOFTWARE
Tytuł:
Programowanie współbieżne. Systemy czasu rzeczywistego
Autor: Paweł Majdzik
Wydawnictwo: Wydawnictwo Politechniki Poznańskiej
Rola: Odpowiada za czystą logikę, współbieżność zadań, priorytety procesów oraz mechanizmy synchronizacji (semafory, muteksy).

2. HARDWARE
Tytuł:
Organizacja i architektura systemu komputerowego (Wydanie XI, Tom 1 i Tom 2)
Autor: William Stallings
Wydawnictwo: Wydawnictwo Naukowe PWN
Rola: Odpowiada za zrozumienie sprzętu jako logicznych bloków funkcjonalnych, struktur magistral, obsługi przerwań oraz hierarchii pamięci cache i RAM.

3. METODOLOGIA PROJEKTOWANIA I DIAGRAMÓW (SYSML / UML)
Tytuł:
Język inżynierii systemów SysML. Architektura i zastosowania. Profile UML 2.x w praktyce
Autorzy: Stanisław Wrycza, Bartosz Marcinkowski
Wydawnictwo: Helion
Rola: Odpowiada za uniwersalny język graficzny, modelowanie maszyn stanów, powiązań między komponentami (SPI/UART) oraz scenariuszy awaryjnych bez pisania kodu.

Co myślicie o tym wyborze? Wybrałem te książki, ponieważ one mają największą wartość naukową, nie są popularnonaukowe. Mówią też bardzo konkretnie, co podchodzi pod mój gust.




Uwaga: Mam pełną świadomość, że te trzy pozycje nie wyczerpują dziedziny architektury embedded (nie pokrywają np. protokołów sieciowych, magistral przemysłowych czy projektowania układów elektronicznych). Traktuję ten zestaw wyłącznie jako pierwszy etap – zbudowanie fundamentu pod kątem systemów czasu rzeczywistego, logiki cyfrowej oraz modelowania w SysML. Literaturę specjalistyczną z kolejnych obszarów będę dobierał w następnej kolejności.

Książki zawierają wiedzę, i bardzo dobrze mieć tę wiedzę. Z drugiej strony nakładają na oczy końskie okulary. Poza tym systemy wbudowane służą do realizacji czegoś większego, na przykład robota koszącego (co jest bardzo poważnym projektem - trzeba rozwiązać wiele zagadnień, w tym sterowanie kołami, nożami, reagować na zderzenia, przeszkody - w tym pojawiające się losowo, nawigację - wyznaczanie położenia, kierunku ruchu). Jak widać, problem jest znacznie poważniejszy - trzeba wiedzieć, co i jak się chce osiągnąć (omijając po drodze mnóstwo przeszkód, od fizyki po finanse). Jak widać, sama wiedza jak konstruować systemy wbudowane, to tylko niewielka część wiedzy wymaganej dla projektatna systemów wbudowanych. Z Twojego wpisu wynika, że chcesz stosować metodologię "upside-down". Dobra metodologia, ale ma tendencję do wyprowadzania w maliny - im niżej, tym większe problemy z implementacją pomysłu. Druga metodologia to "downside-up". Równie dobra - składanie projektu z działających klocków, ale także ma tendencję do wyprowadzania w maliny - otrzymujemy działający produkt realizujący nie to, co jest potrzebne. W praktyce łączy się obie metodologie. W Twoim przypadku oprócz zdobywania wiedzy (Jesteś w najlepszym okresie życia aby to uczynić) zainteresuj się kursem Arduino II poz. 9. Jest tam pokazane, jak skonstruować wielozadaniową pętlę główną programu (w każdym systemie komputerowym jest pętla główna) i jak obsługiwać zdarzenia zewnętrzne. Na początek rozbuduj przykład do obsługi portu COM tak, aby z zewnątrz (stacja robocza) odczytać stan przycisku i zmienić częstotliwość migania diody. Obsługa COM to podstawa do komunikacji w systemach wbudowanych - najbardziej uniwersalna - umożliwia np. obsługa radia.  I2C i SPI również wchodzą w grę - np komunikacja z peryferiami. Wszystko to jest opisane w kursach FORBOT.  Jeśli połączysz się z PC-tem, to spróbuj budować przyrządy pomiarowe: miernik uniwersalny, oscyloskop, generator sygnału. Tu zetkniesz się z typowymi problemami: zasilanie (np napięcie ujemne), mechanika (jak to fizycznie połączyć - płytka stykowa nie jest dobra na dłuższą metę), zmiana zakresów.  Jedyne, czego w kursach Forbota nie ma - to jak połączyć wszysko w całość. 

  • Lubię! 1

@Teodor26 Systemy wbudowane których szukasz są indywidualnymi rozwiązaniami projektanta. Jeżeli chcesz taki system zbudować to jesteś skazany na hardware który chcesz użyć. Czyli musisz poznać działanie podzespołów by je połączyć w działającą całość. Projekt który wymyślisz musi uwzględnić specyfikację elementów. Zacznij od Arduino. Naucz się podstaw. Zrób parę prototypów i sprawdź jak działają. Kodowania musisz się nauczyć. Narzędzia dają tylko możliwość stworzenia przycisku ale jego działanie musisz ogarnąć kodem i tego nie ominiesz. Chodzenie na skróty nic nie da. Jak nie wiesz jaka książka jest dobra to kup i ja przeczytaj. Albo napisz co konkretnie chcesz zrobić.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...