Mikrokontrolery i ich zastosowania. Wstępne uwagi



Podobne dokumenty
Mikrokontrolery w mechatronice. Wykład 4

Mikrokontrolery w mechatronice. Wstępne uwagi

WYKORZYSTANIE MIKROKONTROLERÓW KŁ ZSP W pracy wykorzystano materiały autorstwa. Rafała Frąckiewicza. z firmy PAM w Jeleniej Górze

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

MIKROKONTROLERY I MIKROPROCESORY

2. Architektura mikrokontrolerów PIC16F8x... 13

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

WPROWADZENIE Mikrosterownik mikrokontrolery

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Wstęp Architektura... 13

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

Metody obsługi zdarzeń

Szkolenia specjalistyczne

Systemy wbudowane. Wprowadzenie. Struktura. Mikrokontrolery AVR. Wprowadzenie do programowania w C

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Układy zegarowe w systemie mikroprocesorowym

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Mikrokontrolery AVR Wprowadzenie

SYSTEMY MIKROPROCESOROWE W AUTOMATYCE. Projekt bariery świetlnej.

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

Systemy wbudowane Mikrokontrolery

System czasu rzeczywistego

Programowanie w językach asemblera i C

Porty wejścia/wyjścia w układach mikroprocesorowych i w mikrokontrolerach

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

1.2. Architektura rdzenia ARM Cortex-M3...16

Instytut Teleinformatyki

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Architektura komputerów

Przerwania, polling, timery - wykład 9

Organizacja typowego mikroprocesora

Systemy mikroprocesorowe. Literatura podręcznikowa. Przedmioty związane. Przykłady systemów wbudowanych. Pojęcie systemu wbudowanego embedded system

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Budowa i zasada działania komputera. dr Artur Bartoszewski

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

Logiczny model komputera i działanie procesora. Część 1.

E-TRONIX Sterownik Uniwersalny SU 1.2

Opracował: Jan Front

Architektura mikroprocesorów TEO 2009/2010

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

1. Wstęp Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE Rdzeń mikrokontrolerów ST7FLITE... 15

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Programowanie mikrokontrolerów. 8 listopada 2007

Wykład 2. Mikrokontrolery z rdzeniami ARM

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Mikroprocesory i Mikrosterowniki

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

Komunikacja w mikrokontrolerach Laboratorium

Przykładowe pytania DSP 1

Programowanie mikrokontrolerów AVR

Mikroprocesory i Mikrosterowniki

Wyjścia analogowe w sterownikach, regulatorach

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Architektura mikrokontrolera MCS51

LEKCJA TEMAT: Współczesne procesory.

Programowanie sterowników PLC wprowadzenie

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Architektura mikrokontrolera MCS51

KAmduino UNO. Płytka rozwojowa z mikrokontrolerem ATmega328P, kompatybilna z Arduino UNO

Techniki mikroprocesorowe i systemy wbudowane

Wejścia logiczne w regulatorach, sterownikach przemysłowych

Wstęp do informatyki- wykład 1

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Mikroprocesory i mikrosterowniki

System mikroprocesorowy i peryferia. Dariusz Chaberski

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Mikrokontroler ATmega32. Język symboliczny

PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM PROJEKTOWANIA ZINTEGROWANEGO

Systemy Wbudowane. Założenia i cele przedmiotu: Określenie przedmiotów wprowadzających wraz z wymaganiami wstępnymi: Opis form zajęć

Układy czasowo-licznikowe w systemach mikroprocesorowych

Systemy Wbudowane. Arduino dołączanie urządzeń Wersja Arduino więcej portów I/O. Układy serii 74. Układy serii 74xx a seria 40xx

KAmduino UNO. Rev Źródło:

Mikrokontroler AVR ATmega32 - wykład 9

MiniModbus 4DO. Moduł rozszerzający 4 wyjścia cyfrowe. Wyprodukowano dla. Instrukcja użytkownika

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Opis efektów kształcenia dla modułu zajęć

Wbudowane układy peryferyjne cz. 1 Wykład 7

Mikroprocesor Operacje wejścia / wyjścia

Struktura i działanie jednostki centralnej

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

dokument DOK wersja 1.0

ARCHITEKTURA PROCESORA,

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Porty wejścia/wyjścia w układach mikroprocesorowych i w mikrokontrolerach

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

Język FBD w systemie Concept

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

Instytut Teleinformatyki

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

imei Instytut Metrologii, Elektroniki i Informatyki

SYSTEMY LICZBOWE 275,538 =

SAIA PROGRAMOWALNY STEROWNIK PLC

Systemy wbudowane. Paweł Pełczyński

Transkrypt:

Mikrokontrolery i 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 przez budowę układu; każdorazowa zmiana realizowanego zadania wymaga przebudowy całego układu. WEJ WYJ "Sztywn y" algorytm dzia lania

Układ programowalny Sposób działania określony jest poprzez algorytm umieszczony w pamięci układu WEJ WYJ Modyfikacja działania U.P. nie wymaga zmiany jego struktury! algorytm dzia lania (p rog ra m ) PAMIĘĆ PROGRAMU Pierwsze przykłady - krosna mechaniczne (XIX w.); Większe rozpowszechnienie - dopiero po wynalezieniu mikroprocesora (lata 70-te XX w.).

System (kod) dziesiętny Używany w życiu codziennym, podstawą systemu jest liczba 10 Np. 1895 = 1*10^3+8*10^2+9*10^1+5*10^0 Do wyrażenia dowolnej liczby naturalnej potrzeba 10 wartości ze zbioru {0,1,2,...,9}. Liczby zapisane w systemie dziesiętnym często oznaczane są przyrostkiem DEC. System bardzo niedogodny do stosowania w technice cyfrowej!

System (kod) binarny (dwójkowy) Podstawą tego systemu (kodu) jest liczba 2. Liczby zapisane w systemie binarnym często oznaczane są przyrostkiem BIN. Do wyrażenia dowolnej liczby naturalnej wystarczają 2 wartoś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 binarnej nazywana jest bitem; bit może przyjąć wartość 0 lub 1. W zapisie liczbowym bit pierwszy od lewej nazywamy najbardziej znaczącym (MSB - Most Significant Bit) a pierwszy od prawej najmniej znaczą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ą jest liczba 8 [kod rzadko używany].

Niedogodności kodu binarnego Znaczna 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 na paczki 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 OCT 0 00000000 0 0 1 00000001 1 1 2 00000010 2 2 3 00000011 3 3 4 00000100 4 4 5 00000101 5 5 6 00000110 6 6 7 00000111 7 7 8 00001000 8 10 9 00001001 9 11 10 00001010 A 12 11 00001011 B 13 12 00001100 C 14 13 00001101 D 15 14 00001110 E 16 15 00001111 F 17 16 00010000 10 20

Paczki 4-bitowe określamy jako nible natomiast 8-bitowe jako bajty (byte), 16-bitowe jako słowa (word). W technice mikroprocesorowej wykorzystywany jest głównie kod binarny. Wartości 1 przydzielany jest stan wysoki napięcia (stąd oznaczenie H = High), natomiast wartości 0 stan niski (L=Low). Informacje wewnątrz procesora przechowywane są w tzw. rejestrach. Z pewnym przybliżeniem rejestr można potraktować jako komórkę specjalizowanej pamięci o ustalonej pojemności (liczbie bitów). Liczbę tę nazywamy dł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ładzie ukł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 stanie niskim. - wejście zewnętrznego przerwania niemaskowalnego -wyprowadzenia zewnętrznego, dwukierunkowego portu danych (portu A) - 7 bitów -wyprowadzenia zewnętrznego, dwukierunkowego portu danych (portu B) - 5 bitów

OSC1,2 - wejścia do podłączenia rezonatora kwarcowego lub ceramicznego VCC Zasilanie + VSS Zasilanie -

Rejestry CPU

Uproszczony opis pracy procesora - kolejne czynności Po resecie - sprawdzenie stanu komórek o adresach 7FEhex oraz 7FFhex (wektor resetu) Przejście pod adres w pamięci, który zapisany jest w komórkach 7FE 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ładu z 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órki pamięci.

Instrukcje Czytaj-Modyfikuj-Zapisz Przetwarzają dane z rejestrów CPU lub komórek pamięci. Instrukcja odczytuje zawartość rejestru, przetwarza ją i wynik zapisuje z powrotem 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 do podprogramu). JMP = skok bez zapamiętania adresu powrotu JSR = skok do podprogramu z zapamiętaniem adresu powrotu. Adres ten przechowywany jest w wydzielonym obszarze pamięci (na stosie procesora). Adres wierzchołka stosu przechowywany jest w rejestrze SP (Stack Pointer). Ważne instrukcje - BRCLR oraz BRSET : skok warunkowy wykonywany po sprawdzeniu stanu bitu w obszarze pierwszych 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 o adresie 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 bitach Umożliwiają zapis lub odczyt dowolnego bitu z obszaru pierwszych 256 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 przy sterowaniu pojedynczych wyjść/wejść procesora

Instrukcje sterujące Mają wpływ na zawartość rejestrów oraz na sposób pracy procesora (np. wejście w tryb obniżonego poboru mocy).

Sprzęganie mikrokontrolera z urządzeniami wejścia/wyjścia (I/O); Podstawowe zagadnienie: jak wprowadzić do procesora (MCU) lub wyprowadzić z niego sygnał sterujący. Pojawiają się tu następujące problemy: 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 na zdarzenie krytyczne).

Przykład zastosowania - pilot RTV zrealizowany przy uż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ądowa portu jest zwykle niewystarczająca np. do załączenia przekaźnika; dlatego zalecane jest stosowanie tranzystorów pośredniczących i diod antyprzepięciowych; poniżej prosty przykład na bazie procesora atmega128 (moduł Mmnet firmy Propox)

Sterowanie urządzeń mocy - wybrane zagadnienia Przy sterowaniu urządzeń zasilanych napięciem 230V AC lub wyższym pojawia się problem bezpieczeństwa operatora oraz zabezpieczenia mikrokontrolera przed uszkodzeniami. Najlepszym rozwiązaniem jest separacja galwaniczna (oddzielenie elektryczne urządzeń). Rozwiązanie 1 - optoizolacja = użycie transoptora

Elementem wykonawczym często jest tyrystor lub triak jego główną zaletą jest brak elementów mechanicznych i stąd duża trwałość (liczba cykli łączeniowych >10 8 )

Przykład aplikacji - minirobot zadanie nawigacyjne = śledzenie czarnej linii narysowanej na podłożu Źródło: Seattle Robotics Society

Przykład aplikacji - minirobot zadanie nawigacyjne = śledzenie czarnej linii narysowanej na podłożu

Przy okazji - inne zastosowanie transoptora - czujnik optyczny podłoża

Schemat blokowy układu sterowania

Inne architektury procesorów

Mikrokontrolery AVR (Atmel) Nowości: wbudowany UART (układ transmisji szeregowej) Programowanie ISP (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 Mocno rozbudowany układ czasowy (timery z możliwością generacji PWM).

Dalsze zagadnienia: 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: Pełne panowanie nad zasobami procesora Możliwość ręcznej optymalizacji algorytmu Mały rozmiar programu (kodu) wynikowego Wady: Mała produktywność pracy programisty Nieczytelny kod źródłowy 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ść ;f5 hex sta porta ; zawartość akumulatora prześlij do portu A ;--------------------------- inc porta porta=0xf5; 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