Pracownia Mikroprocesorów i Procesorów Sygnałowych

Pracownie: Podstaw Automatyki | Transmisji danych | Układów Programowalnych | Mikroprocesorów | Maszyn i Robotów | Maszyn Elektrycznych i Układów Napędowych | Komputerowych Systemów Sterowania | Rozproszonych Systemów Sterowania


 Pracownia Mikroprocesorów i Procesorów Sygnałowych

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:

1. 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.

2. 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.

3. Inicjowanie systemu mikroprocesora. Symulacja działania instrukcji operujących na stosie (CALL, RET, PUSH, POP). Tworzenie podprogramów, metody przekazywania parametrów.

4. 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.

5. 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.

6. Instrukcje arytmetyczno logiczne. Pisanie procedur realizujacych wybrane działanie arytmetyczne na liczbach całkowitych 2/4-bajtowych. Testowanie procedur za pomocą symulatora.

7. 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.

8. 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:

1. Zakładanie, konfiguracja i kompilacja projektów. Tworzenie i testowanie prostych programów. Analiza plików wynikowych.

2. Przegląd biblioteki AVR-Libc, wykorzystanie wybranych funkcji biblioteki w przykładowych programach.

3. Specyfika programowania mikrokontrolerów w jezyku C: dostęp do różnych obszarów pamięci, interpretacja modyfikatorów typu, itp.

4. Rejestracja podprogramów obsługi przerwań. Pisanie programów wykorzystujących przerwania do układu licznika (timera)

5. 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:

1. Paweł Hadam: Projektowanie systemów mikroprocesorowych, Wydawnictwo BTC, Warszawa 2004

2. Piotr Metzger: Anatomia PC, wyd. IX, Helion, Gliwice 2004

3. Jarosław Doliński: Mikrokontrolery AVR w praktyce, Wydawnictwo BTC, Warszawa 2003

4. www.atmel.com - dokumentacja techniczna procesorów AVR, noty aplikacyjne

5. www.nongnu.org/avr-libc/user-manual/ - opis biblioteki AVR-Libc