Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Systemy Wbudowane Cykl życia produktu / technologii Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Na podstawie: Valvano J.W.: Embedded Systems: Introduction to Arm® Cortex(TM)-M Microcontrollers, Jonathan W.Valvano 2013 i inne
Czas życia produktu 01-2014 Zygmunt Kubiak
Czas życia produktu 01-2014 Zygmunt Kubiak
Cykl popularności układy logiczne Czas życia produktu Cykl popularności układy logiczne 01-2014 Zygmunt Kubiak
Czas życia produktu Schematy blokowe Specyfikacje Analiza problemu Projekt Rozwój Testowanie Wdrożenie Wymagania Ograniczenia Specyfikacje Schematy blokowe Grafy przepływu danych Sprzęt Program Gotowy Nowe wymagania Nowe ograniczenia 01-2014 Zygmunt Kubiak
Czas życia produktu Schematy blokowe Specyfikacje Analiza problemu Projekt Rozwój Testowanie Wdrożenie Wymagania Ograniczenia Specyfikacje Schematy blokowe Grafy przepływu danych Sprzęt Program Gotowy Nowe wymagania Nowe ograniczenia 01-2014 Zygmunt Kubiak
Czas życia projektu Faza analizy Podczas fazy analizy, odkrywane są wymagania i ograniczenia dla proponowanego systemu. Wywiad wśród potencjalnych klientów i ewentualnie zatrudnieni konsultanci pozwoli na zebranie krytycznych informacji. Wymaganie jest to specyficzny parametr, który system musi spełniać. Rozpoczyna się od przepisywania wymagań systemowych, które są zwykle napisane w formie ogólnej, na listę szczegółowych specyfikacji. Ogólnie rzecz biorąc, specyfikacje są szczegółowymi parametrami opisującymi w jaki sposób system powinien pracować. Na przykład, urządzenie powinno mieścić się w kieszeni, należy określić dokładne wymiary i ciężar urządzenia. 01-2014 Zygmunt Kubiak
Na przykład, należy zbudować sterownik silnika. Czas życia projektu Faza analizy Na przykład, należy zbudować sterownik silnika. Podczas fazy analizy, chcemy ustalić oczywiste dane, takie jak zakres, stabilność, dokładność i czas odpowiedzi. Powinny być również spełnione wymagania, takie jak waga, gabaryty, żywotność baterii, długość „życia”, łatwość obsługi, czytelność wyświetlacza i niezawodność. Często zdarza się, że poprawiając jeden parametr, pogarsza się inny (-e). Podczas projektowania produktu inżynier musi uwzględniać sztukę kompromisu. 01-2014 Zygmunt Kubiak
Czas życia projektu Faza analizy Ograniczenia wynikają ze środowiska, w którym system musi działać. Mogą to być takie czynniki jak koszty, bezpieczeństwo, kompatybilność z innymi produktami, wykorzystanie poszczególnych części elektronicznych i mechanicznych, interfejsów z innymi urządzeniami i wyposażeniem testującym, oraz plan uruchamiania. W fazie analizy projektu często uwzględnia się następujące parametry: Bezpieczeństwo: zagrożenia dla ludzi lub środowiska Dokładność: różnica między przewidywanym a rzeczywistym parametrem 01-2014 Zygmunt Kubiak
Rozdzielczość: najmniejsza zmiana, która może być wiarygodnie wykryta Czas życia projektu Faza analizy Rozdzielczość: najmniejsza zmiana, która może być wiarygodnie wykryta Czas reakcji: czas pomiędzy podaniem wymuszenia a odpowiedzią Pasmo: ilość informacji przetwarzanych na czas Testowalność: łatwość, z jaką prawidłowe działanie urządzenia można sprawdzić Kompatybilność: zgodność urządzenia do istniejących standardów Średni czas międzyawaryjny: niezawodność urządzenia , czas życia produktu Rozmiar i waga 01-2014 Zygmunt Kubiak
Zasilanie: ilość energii potrzebna do działania systemu Czas życia projektu Faza analizy Zasilanie: ilość energii potrzebna do działania systemu Jednorazowe koszty inżynieryjne (koszt NRE): jednorazowy koszt projektowania i badań Koszt jednostkowy : koszt potrzebny do wytworzenia jednostki produktu Czasu prototypowania: czas potrzebny na zaprojektowanie, budowę i testowanie modelu systemu Czasu wdrożenia: czas potrzebny do dostarczenia produktu do klienta Czynniki ludzkie: stopień, w jakim klienci lubią / doceniają produkt 01-2014 Zygmunt Kubiak
Czas życia projektu Faza analizy Istnieje norma IEEE 830-1998 definiująca szablon wymagań. Głównym celem dokumentu wymagań jest tworzenie porozumienia między projektantem i klientów, przez opis co system robi. Umowa ta może stać się prawnie wiążącym kontraktem. Należy przygotować dokument tak, aby był łatwe do odczytania i zrozumienia przez innych. Dokument powinien być jednoznaczny, kompletny, sprawdzalny i modyfikowalny. 1. Przegląd 1.1. Cele: Dlaczego robimy ten projekt? Jaki jest cel? 1.2. Proces: Jak projekt będzie opracowany? 1.3. Role i obowiązki: Kto co zrobi? Kim są klienci? 01-2014 Zygmunt Kubiak
Czas życia projektu Faza analizy 1.4. Interakcje z istniejącymi systemami: Jak to będzie pasować? 1.5. Terminologia: Zdefiniuj sformułowania użyte w dokumencie 1.6. Bezpieczeństwo : Jak zarządzać własnością intelektualną? 2. Opis funkcji 2.1. Funkcjonalność: Co urządzenie dokładnie będzie robić? 2.2. Zakres: Podział na fazy i określenie co zostanie dostarczone w każdej fazie. 2.3. Prototypy: Jak pokazać postępy? 01-2014 Zygmunt Kubiak
Czas życia projektu Faza analizy 2.4. Wydajność : W jaki sposób określić i jak zmierzyć? 2.5. Użyteczność : Opisać interfejsy. Najlepiej ilościowo, jeśli to możliwe. 2.6. Bezpieczeństwo : Wyjaśnij wszelkie wymogi bezpieczeństwa oraz w jaki sposób będą mierzone. 3. Elementy usługi 3.1. Raporty : Jak system opisany? 3.2. Audyty : Jak klienci oceniają postępy? 3.3. Wyniki : Jakie są rezultaty? Skąd wiemy, że zostały osiągnięte. 01-2014 Zygmunt Kubiak
Czas życia produktu Schematy blokowe Specyfikacje Analiza problemu Projekt Rozwój Testowanie Wdrożenie Wymagania Ograniczenia Specyfikacje Schematy blokowe Grafy przepływu danych Sprzęt Program Gotowy Nowe wymagania Nowe ograniczenia 01-2014 Zygmunt Kubiak
Projekt jest podzielony na moduły lub komponenty podrzędne. Czas życia projektu Faza projektu W fazie projektu tworzony jest model koncepcyjny systemu sprzętu / oprogramowania. Projekt jest podzielony na moduły lub komponenty podrzędne. Podczas tej fazy, szacujemy koszt, harmonogram i oczekiwaną wydajność systemu. W tym momencie możemy zdecydować, czy projekt ma wystarczająco wysoki potencjał zysku. 01-2014 Zygmunt Kubiak
Strzałki wskazują kierunek od źródła do miejsca przeznaczenia. Czas życia projektu Faza projektu Diagram przepływu danych jest schematem blokowym systemu, pokazującym przepływ informacji. Strzałki wskazują kierunek od źródła do miejsca przeznaczenia. Prostokąty reprezentują komponenty sprzętowe, a owale są modułami oprogramowania. Wykresów przepływu danych używamy w projekcie wysokiego poziomu, ponieważ opisują one ogólne działanie systemu bez szczegółów. 01-2014 Zygmunt Kubiak
Czas życia projektu Faza projektu Na tym etapie należy uwzględniać takie kwestie jak bezpieczeństwo (np. pierwszej ustawy Robotyki Isaaca Asimova : „Robot nie może skrzywdzić człowieka, ani przez zaniechanie działania dopuścić aby istota ludzka poniosła szkodę") i testowanie (np. musimy zweryfikować działanie systemu). 01-2014 Zygmunt Kubiak
Faza projektu - przykład: Czas życia projektu Faza projektu - przykład: Na rysunku pokazano diagram przepływu danych dla prostego układu pomiaru położenia. Czujnik zamienia pozycję w wartość oporności elektrycznej. Układ analogowy przekształca opór w wartość napięcia z przedziału od 0 do +3 V, wymaganego przez ADC. ADC przekształca napięcie analogowe do próbki cyfrowe. Mikrokontroler, przy użyciu ADC i timera, zbiera próbki i przetwarza wyniki pomiarów. Wewnątrz mikrokontrolera napięcia i położenia są reprezentowane w postaci liczb stałoprzecinkowych. Dane są przekazywane do sterownika wyświetlacza OLED (ang. Organic Light Emitting Diode) w postaci ciągów znaków ASCII. 01-2014 Zygmunt Kubiak
Faza projektu - przykład: Czas życia projektu Faza projektu - przykład: 01-2014 Zygmunt Kubiak
Faza projektu - przykład: Czas życia projektu Faza projektu - przykład: Wstępny projekt zawiera ogólną strukturę systemu, podstawowe sygnały I/O, struktury danych oraz ogólny schemat oprogramowania. Na tym etapie nie ma prostego i bezpośredniego związku między systemami sprzętu /oprogramowania i modelem koncepcyjnym, opracowanym w projekcie wysokiego poziomu. Następnie należy zbudować makiety części mechanicznych (złącza, obudowy, kable itp.) oraz interfejs oprogramowania użytkownika. Zaawansowane systemy CAD 3-D mogą tworzyć realistyczne obrazy naszego systemu. Szczegółowe projekty sprzętowe muszą zawierać rysunki mechaniczne. 01-2014 Zygmunt Kubiak
Faza projektu - przykład: Czas życia projektu Faza projektu - przykład: Dobrym pomysłem jest uwzględnienie różnych dostawców podzespołów. Diagram powiązań (ang. call graph) ilustruje relacje między modułami programu. Zagadnienia bezpieczeństwa i testowania należy ponownie podjąć na niższych poziomach projektu. 01-2014 Zygmunt Kubiak
Faza projektu - przykład: Czas życia projektu Faza projektu - przykład: Na rysunku pokazano diagram powiązań dla prostego układu pomiaru położenia. Prostokąty reprezentują komponenty sprzętowe a owale pokazują moduły oprogramowania. Strzałka wskazuje kierunek od podprogramu wywołującego do modułu wywoływanego. Porty I/O są podzielone na grupy i umieszczone w dolnej części wykresu. Diagramu ogólny, zawiera tylko moduły sprzętowe / oprogramowania na wysokim poziomie abstrakcji. 01-2014 Zygmunt Kubiak
Faza projektu - przykład: Czas życia projektu Faza projektu - przykład: !Uwaga: Jeśli moduł A wywołuje moduł B, a B zwraca dane, to wykres przepływu danych pokaże strzałkę z B do A, ale wykres powiązań pokaże strzałkę z A do B. Zwykle sprzęt jest bierny i oprogramowanie inicjuje komunikację sprzętu/oprogramowania, ale możliwe jest użycie przerwania sprzętowego do uruchomienia określonych modułów programowych. 01-2014 Zygmunt Kubiak
Faza projektu - przykład: Czas życia projektu Faza projektu - przykład: W tym systemie, sprzęt czasowy uruchamia oprogramowanie ADC do zbierania próbek. Podprogram obsługi przerwania timera (ISR) dostaje kolejną próbkę z oprogramowania ADC, przekształca ją na pozycję i wyświetla wynik, wywołując oprogramowanie interfejsu OLED . Dwukierunkowa strzałka między ISR i sprzętem, oznacza wyzwalanie sprzętowego przerwania a także dostęp oprogramowania do sprzętu. 01-2014 Zygmunt Kubiak
Czas życia produktu Schematy blokowe Specyfikacje Analiza problemu Projekt Rozwój Testowanie Wdrożenie Wymagania Ograniczenia Specyfikacje Schematy blokowe Grafy przepływu danych Sprzęt Program Gotowy Nowe wymagania Nowe ograniczenia 01-2014 Zygmunt Kubiak
Czas życia projektu Faza rozwoju Kolejny etap polega na opracowaniu implementacji. Zaletą projektu tworzonego „od góry do dołu” jest to, że wdrożenie składowych może następować równocześnie. W początkowej fazie, to jest dość skuteczne, aby wspomagać się symulacją w realizacji sprzętu/ programu. Główną zaletą jest to, że symulacja zapewnia dużą szybkość pozyskania wyników produktu końcowego w porównaniu ze skonstruowaniem fizycznego urządzenia z rzeczywistych elementów. 01-2014 Zygmunt Kubiak
Czas życia projektu Faza rozwoju Szybkie prototypowanie jest ważne we wczesnych etapach rozwoju produktu. Pozwala to na przeanalizowanie większej liczby wstępnych rozwiązań projektu, co z kolei prowadzi do bardziej skomplikowanego urządzenia. 01-2014 Zygmunt Kubiak
Czas życia produktu Schematy blokowe Specyfikacje Analiza problemu Projekt Rozwój Testowanie Wdrożenie Wymagania Ograniczenia Specyfikacje Schematy blokowe Grafy przepływu danych Sprzęt Program Gotowy Nowe wymagania Nowe ograniczenia 01-2014 Zygmunt Kubiak
Nie oznacza to, że urządzenie będzie poprawnie działać. Czas życia projektu Faza testowania Najnowsze programowe i sprzętowe rozwiązania technologiczne wniosły znaczący wpływ dla rozwoju oprogramowania dla systemów wbudowanych. Najprostszym sposobem uruchamiania mikrokontrolerów jest użycie cross-assemblera lub cross-kompilatora do konwersji kodu źródłowego do postaci kodu maszynowego dla systemu docelowego. Po usunięciu błędów formalnych uzyskuje się w wyniku kompilacji kod maszynowy, który może być ładowany do urządzenia docelowego. Nie oznacza to, że urządzenie będzie poprawnie działać. 01-2014 Zygmunt Kubiak
Czas życia projektu Faza testowania Debugowanie systemów wbudowanych tą prostą metodą jest bardzo trudne z dwóch powodów. Po pierwsze, w systemie wbudowanym brakuje zwykłej klawiatury i wyświetlacza, które pomagają nam, gdy debugowaniu standardowego oprogramowania. Po drugie, w systemach wbudowanych występują, w czasie rzeczywistym, złożone interakcje między sprzętem i oprogramowaniem. Te interakcje uniemożliwiają przetestowanie oprogramowania korzystając z pracy krokowej oraz drukowania stanów. 01-2014 Zygmunt Kubiak
Czas życia projektu Faza testowania Postęp technologiczny spowodował, że w procesie projektowania systemów wbudowanych uwzględnia się symulację. Ze względu na wysokie koszty i długi czas wymagany do stworzenia prototypów sprzętu, wiele badań wstępnych jest wykonywanych za pomocą symulacji sprzętu / oprogramowania. Symulator jest aplikacją programową, która uwzględnia modele zachowań systemu sprzętu / oprogramowania. Jeśli zarówno sprzęt jak i oprogramowanie zewnętrzne symulowane są razem, to chociaż czas symulowany jest wolniejszy niż czas rzeczywisty, to jednak interakcje sprzętu / oprogramowania mogą być badane ( w przybliżeniu) w czasie rzeczywistym. 01-2014 Zygmunt Kubiak
Czas życia projektu Faza testowania Podczas fazy testowania , możemy ocenić wydajność naszego systemu. Po pierwsze, debugowanie i sprawdzania poprawności systemu podstawowych funkcji. Następnie używamy dokładne pomiary w celu optymalizacji wydajności, takie jak wydajność pamięci statycznej (wymagania), dynamiczną wydajność (szybkość realizacji), dokładność (różnica między oczekiwanym prawdy i zmierzone) i stabilności (konsekwentnego działania.) 01-2014 Zygmunt Kubiak
Czas życia produktu Schematy blokowe Specyfikacje Analiza problemu Projekt Rozwój Testowanie Wdrożenie Wymagania Ograniczenia Specyfikacje Schematy blokowe Grafy przepływu danych Sprzęt Program Gotowy Nowe wymagania Nowe ograniczenia 01-2014 Zygmunt Kubiak
Czas życia projektu Faza wdrażania Konserwacja/utrzymanie jest procesem korygowania błędów, dodawania nowych funkcji, optymalizacji dla szybkości wykonania i wielkości programu, przenoszenia do nowych komputerów lub systemów operacyjnych i rekonfiguracji systemu, aby rozwiązać podobny problem. Żaden system nie jest statyczny. Klienci mogą zmienić lub dodać wymogi lub ograniczenia. Produkt powinien być opłacalny a projektant prawdopodobnie będzie chciał dostosować każdy system do indywidualnych potrzeb każdego klienta. Konserwacja nie jest oddzielną fazą, ale pociąga za sobą dodatkowe pętle na całym cyklu życia. 01-2014 Zygmunt Kubiak
Czas życia produktu Schematy blokowe Specyfikacje Analiza problemu Projekt Rozwój Testowanie Wdrożenie Wymagania Ograniczenia Specyfikacje Schematy blokowe Grafy przepływu danych Sprzęt Program Gotowy Nowe wymagania Nowe ograniczenia 01-2014 Zygmunt Kubiak
Odwrotnym podejściem jest projektowanie oddolne Czas życia projektu Rysunek opisuje projekt top-down jako proces cykliczny, począwszy od zdefiniowania problemu, a kończąc na rozwiązaniu. Odwrotnym podejściem jest projektowanie oddolne Wiele innowacji rozpoczyna się od pomysłu, "co jeśli ...?" W projekcie oddolnym, zaczyna się od projektowania, budowy i testowania komponentów niskiego poziomu. Projekty niskiego poziomu może być rozwijane równolegle. Oddolny projekt może być nieefektywny, ponieważ niektóre podzespoły mogą być zaprojektowane, zbudowane i przetestowane, ale nigdy nie były/będą używane. 01-2014 Zygmunt Kubiak
Proces projektowania oddolnego sprzyja kreatywnym pomysłom Czas życia projektu Różne elementy projektu są rozwijane równolegle dając w efekcie system bardziej złożony. Dopiero gdy system jest całkowicie zbudowany i przetestowany sposób można zdefiniować ogólną specyfikację systemu. Proces projektowania oddolnego sprzyja kreatywnym pomysłom Pozwala również na szybkie zbadanie wykonalności pomysłu. Jeśli ktoś w pełni rozumie zakres problemu i zakres potencjalnych rozwiązań, a następnie przejdzie do projektowania odgórnego to najszybciej osiągnie skuteczne rozwiązanie. Z drugiej strony, jeśli ktoś nie rozumie problemu lub zakresu jego rozwiązań, oddolne podejście pozwala rozpoznanie problemu. 01-2014 Zygmunt Kubiak
Dziękuję Zygmunt Kubiak 09-2006