Transcript
Mikrokontroleryi ich zastosowania
Wstępne uwagi
Wstępny program wykładu:
• Układy sterowania;układy programowalne.• System binarny i heksadecymalny.• Mikroprocesor i mikrokontroler - podobieństwa i różnice.• Charakterystyka przykładowego mikrokontrolera na przykładzie
układu z rodziny HC05 (Motorola/Freescale).• Sposoby pisania programu dla mikrokontrolera, narzędzia
programowe i sprzętowe.• Sprzęganie mikrokontrolera z urządzeniami zewnętrznymi.
Układ sterowania -podstawowe pojęcia
• Układ o stałym algorytmie działania:działanie układu określone jest przezbudowę układu; każdorazowa zmianarealizowanego zadania wymagaprzebudowy całego układu.
WEJ WYJ
"Sztywny"algorytm dzia lania
Układ programowalny• Sposób działania określony jest poprzez
algorytm umieszczony w pamięci układuWEJ WYJ
a lgorytm dz ia lan ia(p rogram )
P AMIĘĆPROGRAMU
Modyfikacja działania U.P.nie wymaga zmiany jegostruktury!
Pierwsze przykłady - krosnamechaniczne (XIX w.);Większe rozpowszechnienie- dopiero po wynalezieniumikroprocesora (lata 70-teXX w.).
System (kod) dziesiętny
Używany w życiu codziennym, podstawą systemu jestliczba 10
Np. 1895 = 1*10^3+8*10^2+9*10^1+5*10^0
Do wyrażenia dowolnej liczby naturalnej potrzeba 10wartości ze zbioru {0,1,2,...,9}.
Liczby zapisane w systemie dziesiętnym często oznaczanesą przyrostkiem DEC.
System bardzo niedogodny do stosowania w technicecyfrowej!
System (kod) binarny(dwójkowy)
Podstawą tego systemu (kodu) jest liczba 2. Liczbyzapisane w systemie binarnym często oznaczane sąprzyrostkiem BIN.
Do wyrażenia dowolnej liczby naturalnej wystarczają 2wartości = 0 oraz 1.
1011BIN=1*2^3+0*2^2*1*2^1+1*2^0 = 11DEC
System łatwy do zastosowania w technice cyfrowej!
Każda z pozycji wewnątrz liczby binarnejnazywana jest bitem; bit może przyjąć wartość 0lub 1. W zapisie liczbowym bit pierwszy od lewejnazywamy najbardziej znaczącym (MSB - MostSignificant Bit) a pierwszy od prawej najmniejznaczącym (LSB - Least Significant Bit).
1010 -> MSB=1, LSB=0.
Inne systemy liczbowe
•Kod szesnastkowy (heksadecymalny) - oznaczenie HEX;podstawą jest liczba 16 (w zapisie dziesiętnym).
•Kod ósemkowy (oktalny) - oznaczenie OCT; podstawą jestliczba 8 [kod rzadko używany].
Niedogodności kodu binarnegoZnaczna długość zapisywanych wyrażeń:
254DEC = 11111101BIN ; przy użyciu n cyfr binarnych (bitów)można zapisać 2^n możliwych wartości.
Np. przy użyciu 8 bitów = 256DEC możliwych wartości.
Z pomocą przychodzi kod szesnastkowy
254DEC = FDHEX
Sposób konwersji BIN->HEX : liczbę binarną dzielimy napaczki po 4 bity, zaczynając od prawej (czyli od LSB);następnie każdą paczkę zamieniamy na liczbę szesnastkowąwedług następującej tabeli:
DEC BIN HEX OCT0 00000000 0 01 00000001 1 12 00000010 2 23 00000011 3 34 00000100 4 45 00000101 5 56 00000110 6 67 00000111 7 78 00001000 8 109 00001001 9 1110 00001010 A 1211 00001011 B 1312 00001100 C 1413 00001101 D 1514 00001110 E 1615 00001111 F 1716 00010000 10 20
„Paczki” 4-bitowe określamy jako „nible” natomiast 8-bitowejako bajty (byte), 16-bitowe jako słowa (word).
W technice mikroprocesorowej wykorzystywany jest główniekod binarny. Wartości 1 przydzielany jest stan wysokinapięcia (stąd oznaczenie H = High), natomiast wartości 0stan niski (L=Low).
Informacje wewnątrz procesora przechowywane są w tzw.rejestrach. Z pewnym przybliżeniem rejestr możnapotraktować jako komórkę specjalizowanej pamięci oustalonej pojemności (liczbie bitów). Liczbę tę nazywamydługością rejestru.
Mikroprocesor i mikrokontroler -- podobieństwa i różnice
MIKROPROCESOR:• duży pobór prądu (>1A)• duża moc obliczeniowa• duża liczba niezbędnych układów
pomocniczych• dość wysoka cena
• MIKROKONTROLER:• niewielki pobór prądu (<10mA)• mała lub średnia moc obliczeniowa• minimalna liczba niezbędnych
elementów pomocniczych• niewielka cena (<1 US$).
Dodatkowe cechy:• możliwość przejścia w stan uśpienia,• sprzętowe zabezpieczenia przed
zawieszeniem się programu(watchdog).
Najważniejsi producenci mikrokontrolerów
• Microchip - procesory rodziny PIC• Philips - procesory rodz. 8051,ARM• Freescale (do 07.2004 jako Motorola) -
rodziny HC05,08,11,16,32...• Atmel - 8051, AVR• Hitachi - Renesas• ST Microelectronics - ST6,ST7...
Uzupełnienie - udział mikrokontrolerów (MCU) w rynku
Rynek elementów półprzewodnikowych w r. 2006 - ok. 246 mld US$
Rynek mikrokontrolerów - ok. 26 mld US$ (przychody ze sprzedaży)
Cechy rynku:
•Ponad 40 producentów MCU
•Ponad 50 oferowanych architektur MCU
•Żadna z architektur nie przekracza 5% udziału w całym rynku
•Proporcje udziału poszczególnych grup zastosowań:
-zast. przemysłowe: 9 mld US$
-zast. konsumenckie: 6 mld US$
-zast. motoryzacyjne: 11 mld US$
Procesory rodziny HC05 -wstępne informacje
Procesor 68HCJ1A - wersja w obudowie DIP
Charakterystyka przykładowego mikrokontrolera na przykładzieukładu z rodziny 68HC05 (Motorola/Freescale):
• Architektura wewnętrzna• Mapa pamięci• Lista rozkazów rodziny 68HC05 - wprowadzenie• Sposoby pisania programu dla mikrokontrolera, narzędzia
programowe i sprzętowe.
Procesor 68HCJ1A - wersja w obudowie DIP
Opis wyprowadzeń:
-Zerowanie procesora , sygnał aktywny w stanieniskim.
- wejście zewnętrznego przerwania niemaskowalnego
-wyprowadzenia zewnętrznego, dwukierunkowegoportu danych (portu A) - 7 bitów
-wyprowadzenia zewnętrznego, dwukierunkowegoportu danych (portu B) - 5 bitów
OSC1,2 -
VCC
VSS
wejścia do podłączenia rezonatora kwarcowego lubceramicznego
Zasilanie +
Zasilanie -
Rejestry CPU
Uproszczony opis pracy procesora - kolejne czynności
•Po resecie - sprawdzenie stanu komórek o adresach 7FEhex oraz7FFhex (wektor resetu)
•Przejście pod adres w pamięci, który zapisany jest w komórkach7FE oraz 7FF
•Pobranie rozkazu
•Zdekodowanie rozkazu
•Wykonanie rozkazu
•Pobranie następnego rozkazu
Lista rozkazów procesora HC05 - grupy instrukcji
• Instrukcje typu rejestr/pamięć• instrukcje typu czytaj-modyfikuj-zapisz• instrukcje skoków i rozgałęzień• instrukcje manipulacji bitami• instrukcje sterujące
Dokładniejsze informacje - dokumentacja procesora.
Charakterystyka przykładowego mikrokontrolera na przykładzie układuz rodziny 68HC05 (Motorola/Freescale) - ciąg dalszy:
• Lista rozkazów rodziny 68HC05 - dokończenie.• Wybrane techniki programowania w asemblerze; metody pisania
programu dla mikrokontrolera, narzędzia programowe i sprzętowe.• Sprzęganie mikrokontrolera z urządzeniami wejścia/wyjścia (I/O);
obsługa sygnałów analogowych i cyfrowych• Wybrane architektury mikrokontrolerów• Programowanie mikrokontrolera w języku wysokiego poziomu -
wprowadzenie• kompatybilność elektromagnetyczna a mikrokontrolery - wybrane
zagadnienia
Lista rozkazów procesora HC05 - grupy instrukcji
• Instrukcje typu rejestr/pamięć• instrukcje typu czytaj-modyfikuj-zapisz• instrukcje skoków i rozgałęzień• instrukcje manipulacji bitami• instrukcje sterujące
Instrukcje rejestr - pamięćPrzetwarzają dane z rejestrów CPU i komórek pamięci. Większość
używa 2 argumentów - jeden z rejestru CPU, drugi z komórkipamięci.
Instrukcje Czytaj-Modyfikuj-ZapiszPrzetwarzają dane z rejestrów CPU lub komórek pamięci. Instrukcja
odczytuje zawartość rejestru, przetwarza ją i wynik zapisuje zpowrotem do rejestru.
Instrukcje skoków i rozgałęzieńUmożliwiają zmianę normalnej kolejności wykonywania rozkazów
wchodzących w skład programu.
Najważniejsze z nich to JMP (Jump = skok bezwarunkowy) oraz JSR (Jump to Subroutine = skok dopodprogramu).
JMP = skok bez zapamiętania adresu powrotu
JSR = skok do podprogramu z zapamiętaniem adresu powrotu. Adres ten przechowywany jest w wydzielonymobszarze pamięci (na stosie procesora). Adres wierzchołka stosu przechowywany jest w rejestrze SP (StackPointer).
Ważne instrukcje - BRCLR oraz BRSET : skok warunkowy wykonywany po sprawdzeniu stanu bitu w obszarzepierwszych 256 bajtów przestrzeni adresowej procesora.
Przykłady zastosowania:
BRSET 4,PORTA, ALARM ; jeśli stan bitu nr 4 portu A (PA4) jest wysoki (PA4=1), to skocz do etykiety ALARM
BRCLR 2,PORTB, KONIEC ; jeśli bit PB2=0 to skocz do etykiety KONIEC.
Przykład zastosowania instrukcji skoku
Org rom
start: lda #$06
sta ddra
lda ddra
jsr czekaj
lda #$01
sta porta
jsr czekaj ;podprogram opóźnienia
petla: inca
sta porta
jsr czekaj
jmp petla
Czekaj: sta $00c0 ; zapamiętaj A w komórce pamięci oadresie 00c0 hex
lda #$80 ; wartość 80hex do akumulat.
Skok: Deca ; zmniejsz zawartość akumulatora o 1.
bpl skok ; jeśli flaga N=0 (tzn. jeśli A>0)
lda $00c0; przywróć zawartość A
rts ; powrót do programu głównego
Instrukcje manipulacji na bitachUmożliwiają zapis lub odczyt dowolnego bitu z obszaru pierwszych256 bajtów przestrzeni adresowej procesora; do tej grupy można
również zaliczyć wybrane instrukcje skoków warunkowych
Przykład zastosowania instrukcji operacji bitowych
BSET 4,PORTA ; ustaw bit nr 4 portu A (PA4) w stan wysoki (PA4=1) bez sprawdzania warunków
BCLR 2,PORTB; skasuj bit PB2 (tzn. PB2=0) bez sprawdzania warunków
Instrukcje tej grupy są bardzo przydatne przysterowaniu pojedynczych wyjść/wejść procesora
Instrukcje sterująceMają wpływ na zawartość rejestrów oraz na sposób pracyprocesora (np. wejście w tryb obniżonego poboru mocy).
Sprzęganie mikrokontrolera zurządzeniami wejścia/wyjścia (I/O);
Podstawowe zagadnienie: jak wprowadzić do procesora (MCU) lubwyprowadzić z niego sygnał sterujący. Pojawiają się tu następująceproblemy:
a) dostosowanie poziomów napięć i prądów sygnałów do wymagańprocesora
b) ochrona przed zakłóceniami oraz ich skutkami.
c) konwersja postaci sygnału (np. z postaci szeregowej na równoległą,zmiana protokołu sygnału).
d) zapewnienie właściwych uwarunkowań czasowych (np. czas reakcji nazdarzenie krytyczne).
Przykład zastosowania - pilot RTV zrealizowany przyużyciu procesora HC05
Źródło - nota aplikacyjna AN463 Freescale Semiconductors
Przy sterowaniu obciążeń indukcyjnych pojawiają się specyficzne problemy -przepięcia mogące uszkodzić porty procesora; ponadto wydajność prądowaportu jest zwykle niewystarczająca np. do załączenia przekaźnika; dlatego
zalecane jest stosowanie tranzystorów pośredniczących i diodantyprzepięciowych; poniżej prosty przykład na bazie procesora atMega128
(moduł Mmnet firmy Propox)
Sterowanie urządzeń mocy - wybrane zagadnieniaPrzy sterowaniu urządzeń zasilanych napięciem 230V AC lub wyższym pojawia się
problem bezpieczeństwa operatora oraz zabezpieczenia mikrokontrolera przeduszkodzeniami. Najlepszym rozwiązaniem jest separacja galwaniczna (oddzielenie
elektryczne urządzeń).
Rozwiązanie 1 - optoizolacja = użycie transoptora
Elementem wykonawczym często jest tyrystor lub triakjego główną zaletą jest brak elementów mechanicznych
i stąd duża trwałość (liczba cykli łączeniowych >108)
Przykład aplikacji - minirobotzadanie nawigacyjne = śledzenie czarnej linii narysowanej na podłożu
Źródło: Seattle Robotics Society
Przykład aplikacji - minirobotzadanie nawigacyjne = śledzenie czarnej linii narysowanej na podłożu
Przy okazji - inne zastosowanie transoptora - czujnik optycznypodłoża
Schemat blokowy układu sterowania
Inne architektury procesorów
Mikrokontrolery AVR (Atmel)
Nowości:
wbudowanyUART (układtransmisjiszeregowej)
ProgramowanieISP (w systemie)
Narzędzie potrzebne do pracy z systemem =programator ISP
Koszt elementów <10 PLN
Układ docelowy do współpracy z programatorem
Procesory AVR -atMega (Atmel)
Nowości:wbudowany
przetwornik A/C
Mocnorozbudowany układczasowy (timery z
możliwościągeneracji PWM).
Dalsze zagadnienia:
• Wybrane architektury mikrokontrolerów - konstrukcjezaawansowane
• Programowanie mikrokontrolera w języku wysokiego poziomu -wprowadzenie
• kompatybilność elektromagnetyczna a mikrokontrolery - wybranezagadnienia - 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 133MHz;
•Dodatkowe bloki wbudowane wstrukturę procesora, np. MMU -Moduł Zarządzania Pamięcią
•Pipelining, czyli jednoczesnaobsługa kilku rozkazów(przetwarzanie potokowe, 3 rozk.)
•Kompatybilność z różnymisystemami operacyjnymi(Embedded Linux, Windows CE,Symbian, Palm OS).
•Zastosowania: drukarki, prostepalmtopy, aparaty cyfrowe,telefony GSM, sprzęt medyczny
Uproszczony schemat blokowy procesora rodziny ARM9
Wybrane cechy:
•Częstotliwość zegara do 250MHz;
•Dodatkowe bloki wbudowane wstrukturę procesora, np. MMU -Moduł Zarządzania Pamięcią
•Pipelining, czyli jednoczesnaobsługa kilku rozkazów(przetwarzanie potokowe, 5 rozk.)
•Kompatybilność z różnymisystemami 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 mocyprzy 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:
•Pełne panowanie nadzasobami procesora
•Możliwość ręcznejoptymalizacji algorytmu
•Mały rozmiar programu(kodu) wynikowego
Wady:
•Mała produktywność pracyprogramisty
•Nieczytelny kod źródłowy
•Bardzo trudneprogramowanie np.złożonych operacjimatematycznych
Porównanie wyglądu kodu (fragmenty)
Asembler:
lda $#0xf5 ; załaduj do A wartość
;f5 hex
sta porta ; zawartość akumulatora
prześlij do portu A
;---------------------------
inc porta
??????? (brak gotowej procedury!)
Język C:
porta=0xf5;
porta++;
y=sin(x);
Programowanie w języku C:
Zalety:
•Szybkość tworzenia programu
•duża przenośność kodu
•łatwe programowanie złożonychalgorytmów
•łatwa obsługa operacji wej/wyj
•wielka liczba dostępnych bibliotek
Wady:
•Nieco większa objętośćkodu źródłowego (przestajebyć to obecnie problemem).
•Dość drogie narzędziaprogramistyczne(ale częstodostępne są wersjedarmowe)
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. II2002
3) Strostroup - Język C++ (dla ambitnych!).
Programowanie w języku C: przykładowe programy dla procesora rodziny8051 (© Krzysztof Kardach & Jacek Majewski)
/**************************************************************************Program zapala lub gasi diody LED dołączone do portu P3 w zależności odstanu 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ówlicznika 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 doportu 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 dlaprocesoró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 Gumstixwww.gumstix.com
Kompatybilność elektromagnetyczna a mikrokontrolery
-wybrane zagadnienia
Literatura:
•Intel - Application Note AP-125
•ST - Application Note AN1015 i inne
Definicja kompatybilnościelektromagnetycznej (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ściEMC
• Niestabilność systemu - np. resetowaniesterownika przy zmianach napięcia zasilania- załączenie innego odbiornika w siecipowoduje zawieszenie programu
• zakłócanie pracy innych urządzeń.
Wszystkie urządzenia sprzedawane w UEmuszą 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ążeniaR1, R2 powoduje przepięcie indukcyjne.
Wyładowania iskrowe• Częste źródło problemów w układach
motoryzacyjnych (układ zapłonowy - wysokienapięcie).
• Występują również w układach zawierającychsilniki komutatorowe (iskrzenia naszczotkach).
• Użycie w takich warunkach sterownikamikroprocesorowego wymaga specjalnychśrodków zaradczych.
Dalsze informacje
• Intel - nota aplikacyjna AP-125
Programowe metody polepszenianiezawodności systemów
mikroprocesorowych• Specjalna konstrukcja programu -
sprawdzanie w pętli, czy nie nastąpiłozakłócenie pracy programu
• Przydatne jest użycie watchdoga (w raziezawieszenia programu w ciągu ms generujesprzętowy sygnał reset).
Dalsze informacje -
• Nota ST Microelectronics = AN1015
top related