Pracownia Mikroprocesorów
Kierownik pracowni: mgr inż. Andrzej Wawrzak
Pracownia Mikroprocesorów i Procesorów Sygnałowych umożliwia poznanie praktycznych aspektów programowania w języku asemblera oraz w języku C układów zbudowanych w oparciu o mikrokontrolery uniwersalne oraz mikrokontrolery z procesorami sygnałowymi. Laboratorium Mikroprocesorów i Procesorów Sygnałowych prowadzone jest dla następujących kierunków i specjalności: * III rok, V semestr, Automatyka i Robotyka, specjalność: automatyzacja maszyn i urządzeń technologicznych * III rok, V semestr, Automatyka i Robotyka, specjalność systemy mikroprocesorowe * III rok, VI semestr, Fizyka Techniczna , specjalność: miernictwo komputerowe * II rok, IV semestr, Informatyka Stosowana.
Zagadnienia realizowane przez wszystkie grupy zajęciowe obejmują programowanie mikrokontrolerów rodziny AVR w języku asembler:
- Wprowadzenie do środowiska programistycznego AVR Studio 4. Tworzenie projektów, kompilacja i symulacja działania programów. Analiza działania instrukcji języka asemblera mikroprocesora Atmega16 na przykładzie programowych pętli opóźniających.
- Analiza budowy zestawu uruchomieniowego ZL10AVR. Pisanie programów obsługujących cyfrowe porty wejść-wyjść mikroprocesora. Wpisywanie programów wynikowych do pamięci programu mikroprocesora. Analiza bitów bezpiecznikowych.
- Inicjowanie systemu mikroprocesora. Symulacja działania instrukcji operujących na stosie (CALL, RET, PUSH, POP). Tworzenie podprogramów, metody przekazywania parametrów.
- System przerwań w mikrokontrolerze Atmega 16. Procedury obsługi przerwań-wektory przerwań. Napisanie podprogramów inicjalizacji i obsługi przerwań dla układu czasowego. Generowanie impulsów o zadanym czasie z wykorzystaniem napisanych podprogramów.
- Pisanie programów obsługujących przyciski oraz wyświetlacz 8-segmentowy typu LED. Analiza oraz programowa eliminacja błędów wynikających z drgania styków przycisków.
- Instrukcje arytmetyczno logiczne. Pisanie procedur realizujacych wybrane działanie arytmetyczne na liczbach całkowitych 2/4-bajtowych. Testowanie procedur za pomocą symulatora.
- Metody adresowania pamięci w mikrokontrolerach AVR. Wykorzystanie instrukcji adresowania pamięci do napisania wybranych procedur kopiujących i przetwarzających dane umieszczone w tablicach.
- Konfiguracja i obsługa wybranych układów peryferyjnych mikroprocesora Atmega16:
- Układ transmisji szeregowej (USART). Napisanie prostego programu komunikacji pomiędzy układem uruchomieniowym a komputerem PC za pomocą portu RS232,
- Wybrane tryby pracy modułów liczników. Generowanie przebiegów PWM, zliczanie impulsów,
- Moduł przetwornika ADC. Pomiar sygnałów analogowych, konfiguracja przetwornika,
- Procedury zapis i odczytu pamięci EEPROM,
- Opracowanie i wykorzystanie układu Wachdog’a.
Wprowadzenie do programowania mikrokontrolerów w języku C obejmuje programowanie mikrokontrolerów rodziny AVR z wykorzystaniem kompilatora AVR GCC i biblioteki AVR-Libc. Zakres realizacji wymienionych poniżej zagadnień zależny jest od kierunku i specjalności:
- Zakładanie, konfiguracja i kompilacja projektów. Tworzenie i testowanie prostych programów. Analiza plików wynikowych.
- Przegląd biblioteki AVR-Libc, wykorzystanie wybranych funkcji biblioteki w przykładowych programach.
- Specyfika programowania mikrokontrolerów w jezyku C: dostęp do różnych obszarów pamięci, interpretacja modyfikatorów typu, itp.
- Rejestracja podprogramów obsługi przerwań. Pisanie programów wykorzystujących przerwania do układu licznika (timera)
- Pisanie programów wykorzystujących wybrane układy peryferyjne mikroprocesora Atmega16.
Dodatkowe zadania, obejmujące programowanie mikroprocesorów rodziny x86, prowadzone są dla kierunku Automatyka i Robotyka, specjalność: systemy mikroprocesorowe. Wykorzystując narzędzia: emulator QEMU, asembler FASM, debugger MSDEBUG, realizowane są następujące zagadnienia:
- wyznaczanie adresu w trybie rzeczywistym (dana, instrukcja, stos),
- rejestracja podprogramu obsługi przerwania w trybie rzeczywistym,
- programowanie układu czasowego 8254 i kontrolera przerwań 8259,
- start systemu klasy PC, projektowanie/programowanie boot-sektora,
- wykorzystanie przerwań programowych (grafika 0x10 i dysk 0x13),
- wyznaczanie adresu w trybie chronionym (dana, instrukcja, stos),
- rejestracja podprogramu obsługi przerwania w trybie chronionym,
- obsługa karty graficznej (własne procedury w trybie chronionym),
- obsługa wyjątków (dzielenie przez zero, błąd segmentacji),
- technologia MMX (śledzenia działania większości instrukcji przy użycie FASMa) , koprocesor x87 (śledzenie działania wybranych instrukcji).
LITERATURA:
- Paweł Hadam: Projektowanie systemów mikroprocesorowych, Wydawnictwo BTC, Warszawa 2004
- Piotr Metzger: Anatomia PC, wyd. IX, Helion, Gliwice 2004
- Jarosław Doliński: Mikrokontrolery AVR w praktyce, Wydawnictwo BTC, Warszawa 2003
- www.atmel.com – dokumentacja techniczna procesorów AVR, noty aplikacyjne
- www.nongnu.org/avr-libc/user-manual/ – opis biblioteki AVR-Libc