Projekt i implementacja systemu obsługi kart chipowych
Transkrypt
Projekt i implementacja systemu obsługi kart chipowych
Projekt i implementacja obsługi systemu kart chipowych Seminarium dyplomowe. Autor: Adam Grześko [email protected] Projekt i implementacja systemu obsługi kart chipowych Promotor: prof. dr hab inż. T. Morzy Seminarium 2004 – PP, SKiSR 1 Projekt i implementacja obsługi systemu kart chipowych Plan prezentacji: ● ● ● ● ● Cel pracy, wykorzystane narzędzia, sprzęt i środowisko pracy, omówienie dotychczasowego rozwiązania, omówienie proponowanego rozwiązania – mikrojądro, krótka wzmianka na temat drugiej części pracy. Seminarium 2004 – PP, SKiSR 2 Projekt i implementacja obsługi systemu kart chipowych Cel pracy Celem pracy jest ulepszenie oraz rozbudowa istniejącego oprogramowania czasu rzeczywistego do obsługi kart chipowych, pracującego na terminalu wyposażonym w mikroprocesor NECV25. Obecny „system” działa w opraciu o model odpytywania (polling-scheme). Modyfikacja polega na adaptacji, reimplementacji i rozbudowie dostarczonego mikrojądra systemu czasu rzeczywistego dla mikroprocesora INTEL 8085 na mikroporcesor NECV25. Adaptowane mikrojądro jest sterowane przerwaniami, co zapewni lepszą wydajność całego systemu. Seminarium 2004 – PP, SKiSR 3 Projekt i implementacja obsługi systemu kart chipowych Wykorzystane narzędzia MS Visual Studio (tylko edytor :> ), ● Borland Turbo C wersja 2.0 (kompatybilny z Intel 80186), ● Turbo link wersja 2.0, ● Turbo assembler wersja 1.01, ● Make 1.0, ● inne narzędzia ładujące kod wykonywalny do terminala. ● Seminarium 2004 – PP, SKiSR 4 Projekt i implementacja obsługi systemu kart chipowych Sprzęt i środowisko pracy Seminarium 2004 – PP, SKiSR 5 Projekt i implementacja obsługi systemu kart chipowych Omówienie dotychczasowego rozwiązania Model systemu oparty o odpytywanie, ● jedna wielka pętla while(1), ● w pętli każde urządzenie (klawiatura, porty szeregowe, czytnik kart ... ) jest odpytywane czy są dane gotowe do przetworzenia, bądz sprawdzane jest czy bufor jest już przetworzony (bufor drukarki, bufor LCD), ● rezultat: jedno wielkie spaghetti, globalna pętla musi być wywoływana co najmniej co 30ms – nieefektywne przetwarzanie danych z urządzeń zewnętrznych, spowolnienie całości do najwolniejszego urządzenia I/O, ● problem z pisaniem oprogramowania: żadna funkcja nie może być blokująca (np. odczyt z klawiatury), trzeba wprowadzać dodatkowe argumenty, pamiętające w którym miejscu zostało przerwane przetwarzanie :\ praktyczny skutek – milion selectów, ifów sprawdzających stan wykonania funkcji... ● Seminarium 2004 – PP, SKiSR 6 Projekt i implementacja obsługi systemu kart chipowych Proponowane rozwiązanie - mikrojądro Struktura blokowa mikrojądra: Application interface Functional Modules interface interface Communication and synchronization primitives Time management interface interface Memory management Input/Output (BIOS) MINOR interface MINOR microkernel NEC V25 Seminarium 2004 – PP, SKiSR 7 Projekt i implementacja obsługi systemu kart chipowych Zadania warstw MINOR – mikrojądro udostępniające dwa typy zadań – zwykłe (przełączanie kontekstu bez wywłaszczania), uprzywilejowane, obsługujące przerwania (przełączanie z wywłaszczaniem oraz nadanie priorytetów przerwaniom), Podstawowy mechanizm komunikacji między zadaniami – pamięć współdzielona zrealizowana na ogólnie dostępnym buforze (zmiennej), Zarządzanie czasem – mechanizm zarządzania wbudowanymi w procesor timerami, Zarządzanie pamięcią – mechanizm pozwalający dynamicznie alokować, dealokować obszary pamięci. Funkcje wejścia/wyjścia (BIOS) – Funkcje obsługujące sprzęt wbudowany w terminal. Seminarium 2004 – PP, SKiSR 8 Projekt i implementacja obsługi systemu kart chipowych Dwa rodzaje zadań wyróżnianych w mikrojądrze Port przerwania 1 Zadania obsługujące przerwania, mogą wywłaszczyć zwykłe zadania, bądź zostać wywłaszczone przez zadania obsługujące przerwania o wyższym priorytecie Port przerwania 2 Zadanie obsługujące przerwanie 2 Zadanie obsługujące przerwanie 1 Port przerwania N Zwykłe zadania, mogące dobrowolnie oddać sterowanie - brak wywłaszczania Aktywne zadanie Seminarium 2004 – PP, SKiSR 9 Projekt i implementacja obsługi systemu kart chipowych Możliwe stany procesów IWAIT() Przerwanie o wyższym priorytecie INTERRUPTED RUNNING WAITING Nadejście przerwania IWAIT() bądź IEXIT() IEXIT() IENTER() DETACH() IWAIT() lub IEXIT() Utorzenie zadania, Setrdy=1 DETACH() lub IENTER() READY RUNNING Nadejście przerwania START() Setrdy=1 lub START() INTERRUPTED STOP() Setrdy=0 Utorzenie zadania, Setrdy=0 SUSPENDED TERMINATED Seminarium 2004 – PP, SKiSR 10 Projekt i implementacja obsługi systemu kart chipowych Podsumowanie: Projektowany system zapewni lepszą wydajność ze względu na sterowanie przerwaniami a także: wprowadzi modularność, ● wyeliminuje kod spaghetti i dodatkowe argumenty funkcji, pamiętające aktualny stan przetwarzania, ● ułatwi programowanie przez wyodrębnione interfejsy mikrojądra, we/wy, zarządzania pamięcią i czasem, ● ułatwi dalszą rozbudowę RTOS, ● zapewni możliwość bezproblemowego przeniesienia całego systemu na inny sprzęt (terminal). ● Seminarium 2004 – PP, SKiSR 11 Projekt i implementacja obsługi systemu kart chipowych Materiały źródłowe: System opreracyjny czasu rzeczywistego TICS REALTIME http://www.concentric.net/~Tics/ A. Silberschatz, J. L. Peterson, P. B. Galvin „Podstawy systemów operacyjnych”, WNT wydanie 2, W-wa 1993 V25/V 35 Family V-Series 16-bit Microcomputers Users's Manual (NEC) i inne manuale firmy NEC. Dokumentacja mikrojądra MINOR dla Intel 8085 i jego kod źródłowy w asemblerze 8085 Obecny kod źródłowy obsługujący urządzenia I/O. Seminarium 2004 – PP, SKiSR 12 Projekt i implementacja obsługi systemu kart chipowych Dziękuję za uwagę. Pytania? Seminarium 2004 – PP, SKiSR 13