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

Podobne dokumenty