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