Wszyscy wiedzą, że łatwo jest opracować dowód koncepcji urządzenia osadzonego na rasbperry pi lub nawet na komputerze PC, chociaż jeśli chodzi o wybór mikroprocesora dla swojego produktu, trudno jest mieć pewność, że wybór pozwoli na działanie koncepcji optymalnie.
Obecnie mam projekt przesyłania strumieniowego multimediów z powodzeniem działający na Raspberry Pi, chociaż pi jest zbyt duże i nieporęczne, aby mogło być odpowiednie jako urządzenie końcowe. Stwierdzono również, że urządzenie końcowe jest niestandardowe. Trudno mi znaleźć zaufanie do procesorów, których mogę użyć.
Jaki jest dobry proces, aby dowiedzieć się, czy procesor ma wystarczającą moc, aby uruchomić moją aplikację?
Zasadniczo moje wymagania to:
- Host USB lub wbudowany stos TCP / IP do działania WiFi
- Protokół mediów I2S / PCM
- I2C do konfiguracji urządzeń peryferyjnych
Znalezienie wiórów o tych właściwościach jest bardzo proste. To nie może być prostsze. Problem polega na tym, aby stwierdzić, czy układ jest wystarczająco szybki, przetwarzający i operacyjny.
Spojrzałem dość często na LPC4337 i wydaje mi się, że byłby odpowiedni, chociaż środowisko programistyczne sprawia mi sporo kłopotów, dlatego wciąż się rozglądam, co doprowadziło mnie do CC3200 z Texas Instruments , chociaż ten kontroler działa tylko z częstotliwością 80 MHz i nie jestem pewien, czy będzie on wystarczająco mocny do strumieniowego przesyłania multimediów w czasie rzeczywistym.
Jakie są kroki, aby upewnić się, że procesor jest wystarczająco szybki dla mojej aplikacji? Na przykład, skąd mam wiedzieć, czy procesor 80 MHz będzie wystarczająco dobry, czy też potrzebuję czegoś rzędu 204 MHz lub więcej?
Odpowiedzi:
To zależy od tego, jak pewny siebie musisz być. Pracuję w przemyśle kosmicznym i zwykle osiąga się to poprzez tak zwane „budżety procesora, pamięci RAM i ROM”. Budżet, bez względu na to, czy kosztuje masę mocy, czy cokolwiek innego, rozkłada proces na elementy możliwe do zarządzania, które można skwantyfikować i zsumować, aby uzyskać ogólne zapotrzebowanie. Następnie bierzesz czynnik bezpieczeństwa, który zależy od dojrzałości twojego projektu, zmniejszając się z czasem, aby uwzględnić wzrost popytu. Na początku w dużej mierze opiera się na doświadczeniu, a następnie jest udoskonalany w miarę wybierania technologii.
Powyższe jest niezwykle trudne do dokładnego ustalenia, kiedy uruchamiają się harmonogramy, gdy tylko masz wątki (chyba że wątki są przydzielane ręcznie do rdzeni) i systemów operacyjnych. Powinny być łatwe do zarządzania dla prostych kodów mikrokontrolera, ale czy warto to dla twojej aplikacji?
To tylko mój udział: chociaż projektuję zintegrowane systemy, nie odpowiadałem za te konkretne budżety (które są dla mnie wkładem), a tak naprawdę bardzo interesują mnie historie ekspertów na ten temat.
Dodatek: W przypadku systemów czasu rzeczywistego zwykle łatwiej jest ocenić adekwatność systemu do zadania poprzez maksymalny czas próbkowania, który zależy od opóźnień / opóźnień w transmisji informacji w całym przepływie pracy oraz maksymalnego czasu potrzebnego próbka zadania.
źródło
avrdude
może dostarczyć oszacowanie ilości pamięci RAM zajętej przez zmienne globalne, ale musisz uruchomić ją z opcją suchego uruchamiania, ponieważ jest to zasadniczo narzędzie do przesyłania.Mam zamiar uprościć twoje pytanie: „Jak sprawdzić, czy mikroprocesor jest wystarczająco szybki ”?
Musisz zidentyfikować proces / procedurę, która wymaga najszybszego czasu wykonania. Jeśli twój procesor może wykonać instrukcje wymagane w danym czasie lub krócej, jest wystarczająco szybki.
Spójrzmy na przykład: Twoim najszybszym wymaganiem jest przetworzenie utraty zasilania ; wymaga to wykonania 10 000 instrukcji w 10 milisekund. Będziesz potrzebował procesora z co najmniej 1 MIP. Aby przekonwertować to na „MHz”, musisz znać liczbę cykli zegara na instrukcję (cci). Załóżmy, że jest to 10 cci, twój procesor musiałby pracować z częstotliwością 10 MHz lub szybszą.
źródło
Jeśli szukasz obniżenia kosztu BOM, czasami producenci Shenzhen mają zaskakujące oferty. Jeden przykład: Allwinner A10 ma większą moc obliczeniową i opcje połączeń niż Raspberry Pi, ale prawdopodobnie będzie tańszy, jeśli zostanie użyty w twoim projekcie. Jeśli patrzysz na tę samą cenę co Pi, Allwinner A31s jest 6-8 razy mocniejszy.
źródło