Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

obrazek

Autor artykułu: mgr Jerzy Wałaszek
Konsultacje: Wojciech Grodowski, mgr inż. Janusz Wałaszek

©2023 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Elementy

Mikrokontrolery

SPIS TREŚCI
Podrozdziały

obrazek

Nieco historii

Technika cyfrowa istnieje już bardzo długo. Pierwsze komputery elektroniczne powstały w czasie trwania II Wojny Światowej. Możesz o tym przeczytać w naszym artykule o komputerach Colossus, które pracowały w angielskim ośrodku łamania niemieckich szyfrów w Bletchley Park.

obrazek
Komputer Colossus

Jeszcze wcześniej, bo w roku 1936 niemiecki inżynier Konrad Zuse skonstruował swój pierwszy komputer mechaniczny Z1, którego architektura przypominała bardzo współczesne komputery.

obrazek
Konrad Zuse obok zrekonstruowanego komputera Z1

Przełom w technice cyfrowej nastąpił w roku 1971, gdy Federico Faggin uruchomił pierwszy na świecie mikroprocesor Intel 4004.

obrazek
Pierwszy na świecie mikroprocesor INTEL 4004

Poprzednio procesory komputerów budowane były z wielu układów scalonych. Mikroprocesor połączył je w jeden układ. W ten sposób zredukowano koszty komputerów oraz zwiększono ich niezawodność (mniej układów oznacza mniejsze prawdopodobieństwo zepsucia się urządzenia). Zmalały również rozmiary komputerów i pobierana przez nie moc – to właśnie dzięki mikroprocesorowi twój komputer mieści się pod biurkiem i nie wymaga do zasilania małej elektrowni. Jak widzisz, same korzyści.

Mikroprocesor wymagał jednak do pracy dodatkowych układów: pamięci na program i dane oraz układy wejścia/wyjścia do komunikacji z otoczeniem:

obrazek

Działający komputer zawierał wiele różnych układów scalonych:

obrazek
Płyta główna komputera ZX-Spectrum z roku 1982

Gdy Intel pracował nad swoim mikroprocesorem w roku 1971, Gary Boone z Texas Instruments stworzył podobny układ, który możemy dzisiaj nazwać pierwszym mikrokontrolerem. Koncepcja mikrokontrolera polega na tym, aby w pojedynczym układzie scalonym umieścić wszystkie niezbędne składniki komputera, tj. procesor do wykonywania obliczeń, pamięć na instrukcje dla procesora oraz przetwarzane dane, oraz układy komunikujące się z otoczeniem.

obrazek

Układ Gary'ego Boone'a spełniał te warunki.

obrazek

Układ otrzymał oznaczenie TMS 1802 NC. Zawierał ponad 5 tys. tranzystorów i udostępniał 3000 bitów na pamięć programu i 128 bitów na pamięć danych. Można go było programować, aby wykonywał różne funkcje. Znalazł zastosowanie w kalkulatorach produkowanych przez Texas Instruments w latach 1971...1974. Sprzedawany był w różnych konfiguracjach do roku 1984. Ogółem sprzedano ponad 100 milionów sztuk.

Firma Intel zauważyła potencjał mikrokontrolerów i w roku 1976 weszła na rynek ze swoim układem Intel 8048, który zapoczątkował całą rodzinę mikrokontrolerów MCS-xx. Parametry tego układu wyglądają dzisiaj skromnie:

obrazek

Producent   Intel
Model   C8748
Zegar   6MHz
Rok produkcji   1976
Obudowa   DIL40
Mikroprocesor   8-bitowy
Pamięć programu   1KB
Pamięć danych   64B

Typowy komputer (np. twój IBM-PC) zbudowany jest w oparciu o tzw. architekturę von Neumana. W modelu tym ta sama pamięć przechowuje instrukcje dla mikroprocesora (czyli program) oraz dane. Ponieważ w latach 70-tych pamięć RAM (czyli taka, której zawartość mikroprocesor może odczytywać i dowolnie zmieniać) była droga i występowały problemy techniczne z umieszczeniem w niej programu oraz zachowaniem tego programu po wyłączeniu zasilania (zwykła pamięć RAM traci całą informację po wyłączeniu), postanowiono w mikrokontrolerach stosować architekturę harwardzką (ang. Harvard architecture). W architekturze harwardzkiej pamięć komputera dzieli się na pamięć programu, z której mikroprocesor pobiera instrukcje do wykonania, oraz pamięć danych RAM. Pamięć programu zwykle ma dużą pojemność, pamięć danych jest niewielka. Pierwsze mikrokontrolery używały pamięci ROM jako pamięci programu. ROM jest pamięcią tylko do odczytu (ang. Read Only Memory). Jej zawartość tworzy się na etapie produkcji układu. Później zawartość tą można jedynie odczytywać, nie można jej zmieniać. Dla mikrokontrolera wykonującego stały program nie jest to żadną wadą. Zaletą pamięci ROM jest to, iż nie traci swej zawartości po wyłączeniu zasilania. Zatem gdy ponownie włączysz zasilanie, mikrokontroler zacznie wykonywać program z pamięci ROM.

Aby umożliwić użytkownikowi wprowadzanie do mikrokontrolera własnego programu, zaczęto je wyposażać w pamięci EPROM (ang. Erasable and Programmable Read-Only Memory – wymazywalna, programowalna pamięć tylko do odczytu) . Pamięć EPROM zachowuje się podobnie do pamięci ROM: nie traci swej zawartości po wyłączeniu zasilania (przynajmniej przez około 10 lat), jednak jej zawartość można wymazać światłem ultrafioletowym (w tym celu w układach z pamięciami EPROM montowano małe okienko, przez które był dostęp do struktury dla światła ultrafioletowego), a następnie ponownie zaprogramować nową zawartością. Pokazany powyżej mikrokontroler posiada dla programu wewnętrzną pamięć EPROM o pojemności 1KB.

Architektura harwardzka jest stosowana w mikrokontrolerach do dnia dzisiejszego.

Kolejnym krokiem w rozwoju mikrokontrolerów było wyposażenie ich w pamięci EEPROM (ang. Electricary Erasible and Programable Read-Only Memory) oraz FLASH. Zwykła pamięć EPROM musi zostać naświetlona światłem ultrafioletowym, aby jej zawartość uległa skasowaniu. Jest to niezbędny krok, jeśli chcemy zapisać w pamięci nowe dane. Pamięć EEPROM może być kasowana elektrycznie bez udziału światła ultrafioletowego. Z kolei pamięć FLASH jest odmianą pamięci EEPROM. Kasowanie i zapis pojedynczej komórki EEPROM jest stosunkowo czasochłonne. W pamięci FLASH kasowane są całe bloki komórek (np. po 512), co znacząco przyspiesza zapis danych w tej pamięci. Po zaprogramowaniu pamięci EEPROM i FLASH utrzymują zawartą w nich informację bez konieczności ciągłego zasilania. Jednak musisz wiedzieć, że każdy zapis nieco niszczy strukturę pamięci i ich żywotność jest ograniczona (FLASH ok. 10 tys. cykli zapisu, EEPROM ok. 100 tys. cykli zapisu). Informacja jest utrzymywana na zasadzie uwięzienia ładunku elektrycznego w komórce pamięci. Zatem komórka jest pewnego rodzaju kondensatorem. Na skutek upływów (mikroskopijnie małych, ale obecnych) i efektów tunelowych zgromadzony ładunek powoli rozpływa się. Czas utrzymywania wynosi około 10 lat (dokładna wartość w danych producenta). Uwzględniając te parametry, możemy nakreślić schemat typowego mikrokontrolera:

obrazek

FLASH   przechowuje program oraz dane stałe
RAM   przechowuje dane, które przetwarza program
EEPROM   przechowuje dane, które muszą być trwale pamiętane, np. opcje konfiguracyjne
MIKROPROCESOR   wykonuje program z pamięci FLASH
UKŁADY WE/WY   tzw. porty wejścia/wyjścia, umożliwiają sterowanie urządzeniami zewnętrznymi oraz komunikację z otoczeniem

Dodatkowo mikrokontrolery wyposażane są w różne dodatkowe układy, np. liczniki do odmierzania upływu czasu, generatory PWM, komparatory analogowe, przetworniki analogowo/cyfrowe, itp.

Pierwsze mikrokontrolery były programowane w języku asemblera, czyli bezpośrednio za pomocą instrukcji sterujących mikroprocesorem. Język asemblera jest bardzo oszczędny i był koniecznością przy małej pamięci programu. Jednak jest on mało czytelny dla człowieka, a przez to trudny w zastosowaniu. Dlatego wkrótce wprowadzono języki BASIC i C. Zalety widoczne są poniżej:

asembler BASIC C
mov b,R1
mov c,R2
add R1,R2
mov R1,a
LET a = b + c
a = b + c;

Mikrokontrolery programuje się przy pomocy dużego komputera PC, na którym zainstalowane jest odpowiednie środowisko programowania.

obrazek

Skompilowany program jest następnie przesyłany do programatora za pomocą którego umieszcza się go w pamięci FLASH mikrokontrolera.

Na początek:  podrozdziału   strony 

Mikrokontrolery AVR

Rynek mikrokontrolerów jest bardzo bogaty, co roku pojawia się na nim dziesiątki milionów układów mikrokontrolerów tworzących wiele rodzin o najróżnorodniejszych właściwościach. Opisanie wszystkich jest zadaniem niemożliwym, dlatego w tym artykule skupiliśmy się jedynie na dwóch popularnych rodzinach: AVR i PIC, a w ramach tych rodzin na kilku układach mikrokontrolerów. Opanowanie nawet jednego mikrokontrolera ułatwia opanowanie pozostałych, ponieważ mikrokontrolery posiadają podobne rozwiązania sprzętowe. Dlatego warto przeczytać zawarte tutaj instrukcje.

Mikrokontrolery AVR tworzą obecnie dużą rodzinę układów o różnych możliwościach. Platformę AVR opracowali dwaj studenci Alf-Egil Bogen i Vegard Wollan. Nazwa AVR pochodzi prawdopodobnie od Alf and Vegard's RISC processor, ale pewności nie ma. W skład mikrokontrolera AVR wchodzą: 8-bitowy procesor RISC (ang. Reduced Instruction Set Computer), pamięci FLASH, RAM i EEPROM, porty we/wy oraz różne dodatkowe urządzenia.

Termin RISC odnosi się do komputerów o zredukowanej liczbie instrukcji. Jeśli procesor posiada w swoim zestawie dużo zaawansowanych instrukcji, to staje się skomplikowany, co wpływa na szybkość dekodowania (rozpoznawania) i wykonywania instrukcji. Zauważono, że niektóre instrukcje są wykonywane bardzo rzadko w programach. Wyrzucono je zatem z list rozkazów, odciążając w ten sposób procesor. Tak powstały komputery RISC. Działają szybciej i sprawniej, większość instrukcji wykonywana jest w jednym cyklu zegarowym.

Chociaż mikroprocesor AVR jest układem 8-bitowym, to instrukcje składają się z 16- lub 32 bitów. Dlatego pamięć programu podzielona jest na słowa 16-bitowe. 1KB pamięci mieści 512 takich słów.

Układy AVR produkowane były od 1994 przez firmę ATMEL, którą w 2016 roku przejęła firma MircoChip, producent konkurencyjnych mikrokontrolerów PIC. Układy AVR stały się bardzo popularne wśród elektroników-amatorów ze względu na niską cenę i niski koszt programatorów oraz znaczną moc obliczeniową. Dodatkowo popularność ich zwiększyła platforma Arduino, w której zastosowano mikrokontrolery AVR jako główne jednostki sterujące.

Podstawową zaletą mikrokontrolerów AVR jest jednolita platforma AVR. Każdy mikrokontroler z tej rodziny posiada podobną budowę wewnętrzną oraz praktycznie identyczny mikroprocesor. Poszczególne modele różnią się dostępnymi modułami we/wy (np. obecność lub brak przetworników analogowo-cyfrowych), funkcjami wyprowadzeń oraz niektórymi rozkazami mikroprocesora (pominięte niektóre z instrukcji, dodatkowe instrukcje lub dodatkowe tryby adresowania, niezbędne przy dużych pamięciach). Takie rozwiązanie znakomicie ułatwia programowanie – wystarczy raz dobrze opanować jeden z nich (np. ATMEGA 8), a z resztą nie będzie większych problemów.

Mikrokontrolery AVR dzielą się na kilka podrodzin:

ATtiny

Są to układy przeznaczone do prostych i bardzo prostych zastosowań. Posiadają od 0,5 do 32KB pamięci FLASH na program, uproszczony zestaw instrukcji (np. brak instrukcji mnożenia, które trzeba wykonywać programowo) i są umieszczane w obudowach o 6...32 wyprowadzeniach.

ATMEGA

Układy przeznaczone do dużych projektów, posiadają od 4 do 256KB pamięci FLASH programu, rozszerzony zestaw instrukcji oraz dużą wydajność. Umieszcza się je w obudowach o 28...100 wyprowadzeniach.

Pełna lista rozkazów maszynowych mikrokontrolerów AVR.

Na początek:  podrozdziału   strony 

Mikrokontrolery PIC

Mikrokontrolery PIC (ang. Peripheral Interface Controller) są alternatywnym rozwiązaniem dla mikrokontrolerów AVR i produkuje je firma MicroChip. Posiadają architekturę harwardzką, co oznacza rozdzielenie pamięci programu i danych. W mikrokontrolerach PIC zastosowano 8-bitowe procesory RISC o zredukowanej liście rozkazów. Oto podstawowe własności tych mikrokontrolerów:

Mikrokontroler PIC może posiadać kilka głównych układów:

Mikrokontrolery PIC podzielone są na cztery duże rodziny układów.

Rodzina podstawowa

PIC10F2xx
PIC12F5xx
PIC16F5x
PIC16F5xx

obrazek obrazek obrazek obrazek

Rodzina średnia

PIC10F3xx
PIC12F6xx
PIC12F7xx
PIC16F6xx
PIC16F7xx
PIC16F8xx
PIC16F9xx

obrazek obrazek obrazek

Rozszerzona rodzina średnia

PIC12F1xxx
PIC16F1xxx

obrazek obrazek

Rodzina wysokiej klasy

PIC18F

obrazek obrazek
Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2023 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.