Serwis Edukacyjny
Nauczycieli
w I-LO w Tarnowie

Do strony głównej I LO w Tarnowie

Materiały dla uczniów liceum

  Wyjście       Spis treści       Poprzedni       Następny  

©2018 mgr Jerzy Wałaszek
I LO w Tarnowie

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

 

 

Elementy

Mikrokontrolery

 

 

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.


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.

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.

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:

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


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.

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

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:

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 działanie. 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ę tych 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:

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 elementy, 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, przez to trudny w zastosowaniu. Dlatego wkrótce wprowadzono języki BASIC i C. Zalety 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.

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

 

Mikrokontrolery AVR

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 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.

ATXMEGA

Układy do bardzo dużych projektów, posiadają od 16 do 384KB pamięci FLASH na program, rozszerzoną wydajność i rozszerzony zestaw instrukcji. Umieszczane są w obudowach o 44-64-100 wyprowadzeniach.

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

 

Mikrokontrolery PIC

xxx

 

Inne mikrokontrolery

xxx

 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2018 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.