Odpowiedzi na pytania są różne w zależności od celu końcowego. Jeśli potrzebujesz garści tych urządzeń lub mniej, powinieneś ułatwić projektowanie i nie martwić się kosztami części. Jeśli masz zamiar zrobić ich tysiąc lub więcej, warto przeanalizować swoje wymagania i zmniejszyć koszty sprzętu.
Małe ilości
Jeśli robisz jednorazowy lub niewielki ciąg tych urządzeń, to wysiłki związane z programowaniem zwiększą koszty poszczególnych artykułów i powinieneś skoncentrować się na tym, co będzie najłatwiejsze / najszybsze dla ciebie, a nie na kosztach / wielkość mikroelektroniki.
Ogólnie kapsułkowanie może zmniejszyć złożoność, zwiększając wydajność. Jeśli masz jakieś trudne wymagania w czasie rzeczywistym, takie jak sterowanie BLDC, pętle PID itp., Może być szybsze korzystanie z oddzielnych kontrolerów specjalnie do zadań, które komunikują się z kontrolerami, w których utrzymujesz interfejs użytkownika i inne nierealne zadania czasowe.
W takim przypadku odpowiedź na twoje pytania brzmi:
Czy podejście „wszystko w jednym” jest dobrym pomysłem, gdy trzeba wykonywać wiele zadań wielozadaniowych, czy lepiej jest segmentować i izolować, oraz
Skala lekko przechyla się w kierunku segmentacji i izolacji. Głównym powodem jest to, że debugowanie systemu czasu rzeczywistego może być bardzo czasochłonne, a utrzymywanie takich zadań na własnym procesorze ogranicza zmienne, które należy mierzyć lub kontrolować podczas próby znalezienia przyczyny nieprawidłowego działania.
Jak intuicyjnie dowiedzieć się, czy mikrokontroler, na który patrzę, ma wystarczającą moc obliczeniową, aby wykonać to, czego potrzebuję, na podstawie mojej listy zadań?
W tym przypadku różnica kosztów między 32-bitowym procesorem z dużą ilością zasobów a 8-bitowym procesorem z ograniczonymi zasobami jest niewielka w stosunku do ilości czasu, który zamierzasz poświęcić na prace programistyczne. Nie ma powodu, aby próbować dowiedzieć się, ile mocy potrzebujesz - po prostu zdobądź największy procesor, który według Ciebie możesz opracować i z niego korzystać. Jeśli w pewnym momencie konieczne będzie zoptymalizowanie projektu, stosunkowo łatwo jest zmierzyć faktyczne zużycie zasobów procesora, a następnie wybierz procesor będący leasingodawcą, który może obsłużyć faktyczne obciążenie. Do tego czasu używaj największego i nie martw się o znalezienie „najlepszego dopasowania”.
Produkcja masowa
Jeśli planujesz wykonać wiele z tych urządzeń, dokładna analiza przyniesie znaczne oszczędności. Mówiąc ogólnie, większy mikrokontroler będzie kosztował mniej niż dwa mikrokontrolery zdolne do zastąpienia pojedynczego mikrokontrolera, choć z pewnością istnieją wyjątki w zależności od konkretnych wymaganych zadań. Przy tych ilościach koszt sprzętu prawdopodobnie będzie znacznie większy niż koszt rozwoju, więc powinieneś spodziewać się, że poświęcisz więcej czasu na analizę swoich wymagań i wykonanie rozwoju, niż gdybyś robił tylko kilka.
Czy podejście „wszystko w jednym” jest dobrym pomysłem, gdy trzeba wykonywać wiele zadań wielozadaniowych, czy lepiej jest segmentować i izolować?
Podejście kompleksowe będzie generalnie tańsze przez cały czas trwania projektu niż wiele procesorów. Będzie to wymagało więcej czasu na opracowanie i debugowanie, aby upewnić się, że różne zadania nie powodują konfliktów, ale rygorystyczne projektowanie oprogramowania ograniczy to prawie tak samo, jak posiadanie osobnego sprzętu.
Jak intuicyjnie dowiedzieć się, czy mikrokontroler, na który patrzę, ma wystarczającą moc obliczeniową, aby wykonać to, czego potrzebuję, na podstawie mojej listy zadań?
Musisz zrozumieć zadania, które chcesz wykonać, i ile zasobów biorą. Załóżmy, że następujące są prawdziwe:
Twoje procedury BLDC PI będą zużywać X cykli czasu procesora 100 razy na sekundę i każde z nich potrzebuje około 50 bajtów pamięci RAM do działania, 16 bajtów pamięci EEPROM do strojenia i 1k flashowania dla kodu. Każdy z nich potrzebuje 3 szesnastobitowych urządzeń peryferyjnych PWM w mikrokontrolerze. Może być konieczne określenie jittera, który będzie miał określone wymagania dotyczące opóźnienia przerwań.
Twoje procedury USB i szeregowe będą zużywać Y cykli czasu procesora według potrzeb, 2k RAM, 64 bajty EEPROM i 8k flash. Będzie wymagał USB i szeregowych urządzeń peryferyjnych.
Twój interfejs GUI zużywa 30 cykli zasilania procesora 30 razy na sekundę i potrzebuje 2k pamięci RAM, 128 bajtów pamięci EEPROM i 10k pamięci flash. Wykorzysta 19 I / O do komunikacji z wyświetlaczem LCD, przyciskami, pokrętłami itp.
Podczas pierwszego uruchomienia może być trudno zrozumieć, czym właściwie są X, Y, Z, a to się nieco zmieni w zależności od architektury procesora. Jednak powinieneś być w stanie zrozumieć, w ramach szacunku ballpark, ile pamięci RAM, eepromu i flasha będzie potrzebować twój projekt i jakich urządzeń peryferyjnych potrzebujesz. Możesz wybrać rodzinę procesorów, która spełnia wymagania dotyczące pamięci i urządzeń peryferyjnych oraz oferuje szeroki zakres opcji wydajności w obrębie tej rodziny. W tym momencie do programowania możesz po prostu użyć najmocniejszego procesora w rodzinie. Po wdrożeniu projektu możesz łatwo przenieść rodzinę pod względem mocy do opcji tańszej bez zmiany środowiska projektowania lub programowania.
Po wykonaniu wystarczającej liczby tych projektów będziesz mógł lepiej oszacować X, Y i Z. Dowiesz się, że procedury BLDC PI, choć często uruchamiane, są dość małe i wymagają bardzo niewielu cykli. Procedury USB i szeregowe wymagają wielu cykli, ale występują rzadko. Interfejs użytkownika często wymaga kilku cykli, aby znaleźć zmiany, ale na przykład będzie wymagał wielu cykli, aby zaktualizować wyświetlacz.