Praca Dyplomowa Inżynierska
Praca Dyplomowa Inżynierska
#336988# #/336988# ?>Politechnika Lubelska
Wydział Elektrotechniki i Informatyki
Praca Dyplomowa Inżynierska
Mikroprocesorowy sterownik magistrali IEEE-488 w technologii SCPI
Dyplomant Paweł Pydyś |
Promotor Dr inż Eligiusz Pawłowski |
WNIOSKI
Sterownik oparto na procesorze AVR ATmega32. Rdzeń procesorów z rodziny AVR jest oparty o architekturę RISC. Umożliwia to wydajną pracę, gdyż większość instrukcji jest wykonywana w jednym cyklu zegarowym. Architekturę i zestaw instrukcji zaprojektowano pod kątem stosowania kompilatorów języka C. Kod wynikowy z kompilatora C jest nieznacznie dłuższy i wolniejszy niż równoważny mu kod napisany bezpośrednio w asemblerze. Jednak czas spędzony nad napisaniem i późniejszą weryfikacją jest dużo krótszy w przypadku stosowania języka wysokiego poziomu. Dodatkowo jednostka centralna posiada zintegrowane w jednej obudowie dodatkowe moduły peryferyjne. W projekcie wykorzystano przetwornik ADC, Timer1 w trybie modulatora PWM, Timer0, Timer2, pamięć danych EEPROM i moduł USART. Wykorzystano 44% z dostępnych 32KB wewnętrznej pamięci programu. Pamięć danych jest wykorzystana do przechowywania parametrów sterownika. Działania wymagające natychmiastowej reakcji sterownika są obsługiwane za pomocą przerwań. Do obsługi zmian linii ATN i DAV wykorzystano przerwania zewnętrzne, odpowiednio INT1 i INT0. Takie rozwiązanie sprawia, że sterownik reaguje na warunek przerwania w ciągu 4 cykli zegara.
Sterowanie liniami interfejsu IEEE-488 zrealizowano ze scalonych układów logicznych serii SN74LS. Na polskim rynku dostępne są także układy dedykowane do obsługi linii, jednak
koszt zakupu tych elementów jest wysoki. Wykorzystanie bramek ograniczyło koszty konstrukcji sterownika, lecz powstała konieczność zaprojektowania struktury odpowiedzialnej za prawidłowe relacje pomiędzy liniami interfejsu.
Do sekwencyjnego uruchamiania procedury obsługi wyświetlacza LCD wykorzystało
przerwanie Timer2. Wykorzystanie przerwania ma na celu oszczędność czasu mikrokontrolera,
gdyż nie czeka on bezczynnie na gotowość wyświetlacza. W wykorzystanej wersji połączeń
należy przyjąć, że po określonym czasie LCD wykona instrukcje. Odliczaniem wspomnianego
czasu zajmuje się Timer2, a koniec odliczania sygnalizuje przerwaniem.
Sterownik akceptuje komendy standardu SCPI. Zaimplementowano podsystemy
SOURce, CONFigure i TRIGer. Sterownik rozpoznaje polecenia sekwencyjnie,
przyporządkowując odpowiednią funkcję programu do interpretacji parametrów otrzymanych w
poleceniu. Każdy podsystem jest realizowany oddzielną grupą funkcji.
Rozbudowa sterownika polega na dodaniu nazwy podsystemu w tablicy komend i przypisaniu jej nowej funkcji wykonującej to polecenie. Takie rozwiązanie umożliwia łatwe rozbudowanie sterownika o nowe możliwości i dostosowanie zakresu obsługiwanych komend do dowolnego urządzenia. Zrealizowany sterownik wykorzystano do budowy programowanego zasilacza prądu
stałego. Zbudowany przyrząd generuje napięcie stałe w zakresie od 0 do 24V. Posiada
wbudowane zabezpieczenie przeciążeniowe, oparte na pomiarze prądu obciążenia przez
mikrokontroler. Zasilacz posiada też funkcję ograniczenia prądowego. Można regulować prąd
obciążenia w zakresie 0,1A do 2A, skokowo o 100mA.
Zbudowany układ jest uniwersalnym sterownikiem magistrali IEEE-488, który może
zostać wykorzystany w konstrukcji dowolnego przyrządu pomiarowego. Podczas jego budowy
zostały uwzględnione możliwości rozbudowy układu. Kontynuacja rozwoju projektu zakłada
rozbudowanie sterownika o funkcjonalny moduł nadajnika interfejsu IEEE-488, rozbudowę
zbioru zaimplementowanych komend języka SCPI, a także optymalizację oprogramowania pod
względem szybkości działania i wielkości kodu wynikowego.