Serwis Edukacyjny w I-LO w Tarnowie ![]() Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Autor artykułu: mgr Jerzy Wałaszek |
©2023 mgr Jerzy Wałaszek |
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 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:
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.
Skompilowany program jest następnie przesyłany do programatora za pomocą którego umieszcza się go w pamięci FLASH mikrokontrolera.
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:
Mikrokontroler PIC może posiadać kilka głównych układów:
Mikrokontrolery PIC podzielone są na cztery duże rodziny układów.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
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.