Prezentacja do wykladu 4 w PDF
Transkrypt
Prezentacja do wykladu 4 w PDF
Mikrokontrolery w mechatronice Wykład 4 Program wykładu nr 4: • Wybrane architektury mikrokontrolerów - konstrukcje zaawansowane • Programowanie mikrokontrolera w języku wysokiego poziomu wprowadzenie • kompatybilność elektromagnetyczna a mikrokontrolery - wybrane zagadnienia - ciąg dalszy • systemy operacyjne czasu rzeczywistego - wprowadzenie Procesory rodziny ARM • Opracowanie - firma ARM (Wielka Brytania) www.arm.com • brak własnej produkcji, udostępnianie na zasadach licencyjnych innym producentom (obecnie ponad 40 firm). • Oferowane jest kilka rodzin procesorów, najbardziej popularne są procesory rodziny ARM7 oraz ARM9. Uproszczony schemat blokowy procesora rodziny ARM7 Wybrane cechy: •Częstotliwość zegara do 133 MHz; •Dodatkowe bloki wbudowane w strukturę procesora, np. MMU Moduł Zarządzania Pamięcią •Pipelining, czyli jednoczesna obsługa kilku rozkazów (przetwarzanie potokowe, 3 rozk.) •Kompatybilność z różnymi systemami operacyjnymi (Embedded Linux, Windows CE, Symbian, Palm OS). •Zastosowania: drukarki, proste palmtopy, aparaty cyfrowe, telefony GSM, sprzęt medyczny Uproszczony schemat blokowy procesora rodziny ARM9 Wybrane cechy: •Częstotliwość zegara do 250 MHz; •Dodatkowe bloki wbudowane w strukturę procesora, np. MMU Moduł Zarządzania Pamięcią •Pipelining, czyli jednoczesna obsługa kilku rozkazów (przetwarzanie potokowe, 5 rozk.) •Kompatybilność z różnymi systemami operacyjnymi (Embedded Linux, Windows CE, Symbian, Palm OS). •Zastosowania: konsole do gier, zaawans. palmtopy, telefony 3G, routery sieciowe Dalszy rozwój rodziny rdzeni procesorów ARM (mapa drogowa) Dalszy rozwój technologii, zmniejszenie zużycia mocy: np. dla ARM11 - pobór mocy przy Ucc=1,2V nie przekracza 0.4 mW/MHz; dla f=500 MHz P<=0,2W Spokrewnione/ bazujące na ARM rodziny - Intel XScale Programowanie mikrokontrolerów w języku wysokiego poziomu wprowadzenie Programowanie w języku asemblera: Zalety: Wady: •Pełne panowanie nad zasobami procesora •Mała produktywność pracy programisty •Możliwość ręcznej optymalizacji algorytmu •Nieczytelny kod źródłowy •Mały rozmiar programu (kodu) wynikowego •Bardzo trudne programowanie np. złożonych operacji matematycznych Porównanie wyglądu kodu (fragmenty) Asembler: Język C: lda $#0xf5 ; załaduj do A wartość porta=0xf5; ;f5 hex sta porta ; zawartość akumulatora prześlij do portu A ;--------------------------inc porta porta++; ??????? (brak gotowej procedury!) y=sin(x); Programowanie w języku C: Zalety: •Szybkość tworzenia programu •duża przenośność kodu •łatwe programowanie złożonych algorytmów •łatwa obsługa operacji wej/wyj •wielka liczba dostępnych bibliotek Wady: •Nieco większa objętość kodu źródłowego (przestaje być to obecnie problemem). •Dość drogie narzędzia programistyczne(ale często dostępne są wersje darmowe) Programowanie w języku C - przykładowa literatura: 1) Kernighan , Ritchie - Język C; wyd. WNT 1985+wznow. 2) Kardach, Majewski - Mikrokontrolery jednoukładowe 8051; programowanie w języku C w przykładach, Wyd. PWr 1995, wyd. II 2002 3) Strostroup - Język C++ (dla ambitnych!). Programowanie w języku C: przykładowe programy dla procesora rodziny 8051 (© Krzysztof Kardach & Jacek Majewski) /************************************************************************** Program zapala lub gasi diody LED dołączone do portu P3 w zależności od stanu przycisków P1 (gdy przycisk wciśnięty to odpowiednia dioda świeci). **************************************************************************/ sfr P1= 0x90; /* definicja adresu portu P1 */ sfr P3= 0xB0; /* definicja adresu portu P2 */ void main(void) { data char i; while (1) { i=P3; /* odczyt stanu portu P3 i kopiowanie tego stanu do zmiennej i */ P1=i; /* kopiowanie stanu zmiennej i do portu P1 */ } } /************************************************************************** Ćwiczenie 2 Program symuluje działanie 8-bitowego licznika binarnego. Ekspozycja stanów licznika odbywa się na diodach LED (DDS) dołączonych do portu P1. **************************************************************************/ #include <io51.h> /* zbiór definiujący adresy rejestrów procesora 8051 */ void main(void) { int i; while (1) { P1++; /* zwiększanie zawartości portu P3 for(i=0;i<0x7fff;i++){}; /* opóźnienie czasowe } } */ */ /************************************************************************** Ćwiczenie 3 Program symuluje działanie 8-bitowego licznika binarnego. Ekspozycja stanu licznika prezentowana jest na diodach LED, dołączonych do portu P1 (DDS). Program wywołuje podprogram opóźnienia czasowego - Delay. **************************************************************************/ #include <io51.h> /* zbiór definiujący adresy rejestrów procesora 8051 */ #define SPEED 0x7fff /* definicja stałej */ void Delay(int time) /* podprogram opóźnienia czasowego */ { int i; for(i=0;i<time;i++){}; /* opóźnienie czasowe */ } void main(void) { char k; while (1) { P1=~--k; /* zmniejszanie zawartości portu P1 */ /* negacja zapewnia świecenie diody gdy odpowiedni bit portu P1 jest w stanie 1 (high) */ Delay(SPEED); } } Przykładowe narzędzie - kompilator ICC-AVR firmy ImageCraft dla procesorów AVR: Wybór opcji kompilatora: Wybór opcji programatora: Przydatne narzędzie : AVR Calc (kalkulator konfiguracyjny) Perspektywy rozwoju Rozwiązania Embedded Linux - minimoduł firmy Gumstix www.gumstix.com Kompatybilność elektromagnetyczna a mikrokontrolery -wybrane zagadnienia Literatura: •Intel - Application Note AP-125 •ST - Application Note AN1015 i inne Definicja kompatybilności elektromagnetycznej (EMC) • Odpornośc na zakłócenia przedostające się z zewnątrz do układu • Niski poziom zakłóceń generowanych Badania EMC - norma ISO/IEC 61000 Objawy niekompatybilności EMC • Niestabilność systemu - np. resetowanie sterownika przy zmianach napięcia zasilania - załączenie innego odbiornika w sieci powoduje zawieszenie programu • zakłócanie pracy innych urządzeń. Wszystkie urządzenia sprzedawane w UE muszą spełniać wymagania dot. EMC Należy odróżniać EMS od EMC Przykładowe źródła zakłóceń • Impulsy zakłócające z obwodu zasilania • Wyładowanie elektrostatyczne w obudowę urządzenia Model zastępczy obwodu zasilania - wyłączenie obciążenia R1, R2 powoduje przepięcie indukcyjne. Wyładowania iskrowe • Częste źródło problemów w układach motoryzacyjnych (układ zapłonowy - wysokie napięcie). • Występują również w układach zawierających silniki komutatorowe (iskrzenia na szczotkach). • Użycie w takich warunkach sterownika mikroprocesorowego wymaga specjalnych środków zaradczych. Dalsze informacje • Intel - nota aplikacyjna AP-125 Programowe metody polepszenia niezawodności systemów mikroprocesorowych • Specjalna konstrukcja programu sprawdzanie w pętli, czy nie nastąpiło zakłócenie pracy programu • Przydatne jest użycie watchdoga (w razie zawieszenia programu w ciągu ms generuje sprzętowy sygnał reset). Dalsze informacje • Nota ST Microelectronics = AN1015