SWBwyklad8d


SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 1
Mikroprocesory 礟 i mikrokontrolery 礐 -
wyk艂ad 8
Adam Szmigielski
aszmigie@pjwstk.edu.pl
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 2
Maszyny licz膮ce - rys historyczny
" naci臋cia na drewnie, znaki na 艣cianach
" pierwszy kalendarz - Stonehenge (obecnie Salisbury, Anglia) skonstruowany
ok. 2800 r. pne.
" calculi - kamyczki do liczenia u staro偶ytnych Rzymian
" abacus - pierwsze liczyd艂a (600-500 pne - Egipt lub Chiny)
" 650 r. - Hindusi odkrywaj膮 numeryczne zero - pocz膮tek oblicze艅 pisanych.
" 1100 r. - pierwsza tabliczka mno偶enia na pi艣mie
" 1612 - Szkot John Napier (1550-1617) odkrywa logarytmy i u偶ywa kropki
dziesi臋tnej (wynalezionej w Holandii)
" 1617 - narz臋dzie pomagaj膮ce w mno偶eniu -  kostki Napiera
" 1622 - William Oughtred (1574-1660) tworzy suwak logarytmiczny.
" 1623 - Wilhelm Schickard (1592-1635) skonstruowa艂 czterodzia艂aniowy
kalkulator-zegar.
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 3
" 1642 - Blaise Pascal (1623-1662) tworzy  Pascalene - 5-cio cyfrow膮
maszyn臋 do dodawania, uznan膮 za pierwsz膮 maszyn臋 licz膮c膮.
" Gottfriend Wilhelm von Leibniz (1646-1716) buduje czterodzia艂aniow膮
maszyn臋 licz膮c膮
" 1822 - Charles Babbage (1792-1871) rozpocz膮艂 budow臋 maszyny do
oblicze艅 nawigacyjnych.
" 1842 - Ada Augusta King (c贸rka Lorda Byrona) pierwsz膮 programistk膮
(u偶y艂a maszyny Babbage a)
" 1854 - George Bool opracowuje rachunek logiczny,
" 1903 - Nicola Tesla patentuje elektryczne bramki logiczne
" 1935-1938 - Konrad Zuse (1910- 1995) buduje Z1 - pierwszy komputer na
przekaznikach (system dw贸jkowy).
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 4
Komputer wsp贸艂czesny
" 1937 - Alan Turing (1912-1954) rozwija teori臋 maszyny uniwersalnej
(wykonuj膮cej algorytmy)
" 1941 - Zuse tworzy Z3 z wykorzystaniem arytmetyki zmiennoprzecinkowej
" 1943 - Colossus - komputer deszyfruj膮cy
" 1944 - Howard Aiken (1900-1973) i in偶ynierowie z IBM buduj膮 Harvard
Mark
" 1945 - John von Neumann publikuje ide臋  maszyny z Princeton
" 1943-1946 ENIAC - pierwszy komputer na lampach (Uniwersytet
Pensylwania)
" 1948 - EDSAC komputer oparty na idei von Neumanna (Cambridge)
" 1949 - EDVAC - komputer uniwersalny von Neumanna
" 1950 - ACE - komputer zbudowany wed艂ug projektu Turinga
" 1951 - UNIVAC - pierwszy komercyjnie sprzedawany komputer
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 5
" 1954 - IBM 704 - pierwszy komputer z systemem operacyjnym
" 1963 - DEC PDP-5 - pierwszy minikomputer
" 1964 - komputery trzeciej generacji na obwodach scalonych
" 1971 - Intel 4004 - pierwszy mikroprocesor
" 1972 - Cray Research - pierwsze superkomputery
" 1974 - procesor Intel 8080
" 1975 - komputer osobisty Altair - 256 bajt贸w pami臋ci
" 1981 - pocz膮tek ery komputer贸w osobistych - pierwszy IBM PC
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 6
Algorytm i maszyna Turinga
Opis formalny - {Q, 艁, , q0, F }, gdzie:
" Q - zbi贸r stan贸w maszyny,
" 艁 - alfabet (zbi贸r symboli) ta艣my,
"  - funkcja przej艣cia:
 : Q 艁 - Q 艁 {R, L, N}
R, L, N odpowiadaj膮 kierunkowi przemieszczenia si臋 czytnika na ta艣mie.
" q0 - pocz膮tkowy stan,
" F - zbi贸r ko艅cowych stan贸w.
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 7
Komputer von Neumanna - 1945
Elementy sk艂adowe komputera von Neumanna:
" procesor z ALU
" pami臋膰 komputera (zawieraj膮ca dane i program)
" urz膮dzenia wej艣cia/wyj艣cia
Cechy komputera von Neumanna:
" sko艅czona lista rozkaz贸w,
" mo偶liwo艣膰 wprowadzenia programu i jego przechowywanie w pami臋ci (tak
jak dane),
" sekwencyjne odczytywanie instrukcji z pami臋ci i ich wykonywanie.
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 8
Architektura harwardzka
" Pami臋膰 danych programu jest oddzielona od pami臋ci rozkaz贸w
(inaczej ni偶 w architekturze von Neumanna).
" Prostsza, w stosunku do architektury von Neumanna, budowa ma
wi臋ksz膮 szybko艣膰 dzia艂ania - wykorzystuje si臋 w procesorach
sygna艂owych oraz przy dost臋pie procesora do pami臋ci cache.
" Architektura harwardzka jest obecnie powszechnie stosowana w
mikrokomputerach jednouk艂adowych (program w pami臋ci ROM (ang.
Read Only Memory), dane w RAM (Random Access Memory).
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 9
Architektura procesora vs organizacja
Rysunek 1: Architektura procesora - funkcjonalna
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 10
ALU i uk艂ad steruj膮cy
Rysunek 2: A i B - dane; R - wyj艣cie; F - wyb贸r operacji; D - status wyj艣cia
" Jednostka Arytmetyczno-Logiczna (ang. Arithmetic Logic Unit, ALU) uk艂ad
kombinacyjny, wykonuj膮cy na danych w rejestrach operacje arytmetyczne
(np. suma, r贸偶nica) oraz logiczne (np. OR, AND),
" Uk艂ad steruj膮cy - dekoduje rozkazy i steruje jego wykonaniem.
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 11
Rejestry procesorze
" Akumulator A, ACC - rejestr bezpo艣rednio wsp贸艂pracuj膮cy z ALU
" Wskaznik stosu SP - wskazuje koniec stosu (wyr贸偶nionego obszaru
pami臋ci)
" Licznik rozkaz贸w PC - adres kom贸rki pami臋ci programu z nast臋pnym
rozkazem do wykonania
" Rejestr rozkaz贸w - zawiera kod rozkazu wykonywanego rozkazu
" Rejestr flag - zawiera flagi (znaczniki bitowe) ustawiane w zale偶no艣ci
od wyniku wykonanej operacji (np. nadmiar, zero, bit parzysto艣ci)
" rejestry og贸lnego przeznaczenia - robocze
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 12
Magistrale systemu -procesorowego
" magistrala adresowa - przesy艂a adres (wybiera kom贸rk臋 pami臋ci lub
urz膮dzenie we/wy),
" magistrala danych - przesy艂a dane mi臋dzy 礟 a pami臋ci膮 lub urz膮dzenie
we/wy),
" magistrala systemowa - zawiera sygna艂y steruj膮ce.
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 13
Wielko艣膰 rejestru i s艂owo maszynowe
S艂owo maszynowe jest ilo艣膰 informacji, przetwarzanej w jednym rozkazie,
tj.
" odpowiada wielko艣ci rejestra (wyra偶onej w bitach),
" zazwyczaj jest wielokrotno艣ci膮 bajta,
" odpowiada szeroko艣ci magistrali danych.
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 14
Cykl rozkazowy
Format rozkazu:
kod rozkazu argumenty rozkazu
Cykl rozkazu:
" pobranie kodu rozkazu - pobranie do rejestru rozkazu kodu rozkazu.
Kody rozkaz贸w przechowywane s膮 w pami臋ci tak jak dane
(architektura von Neumanna)
" zdekodowanie rozkazu - interpretacja wczytanego kodu rozkazu
(zazwyczaj bajtu) jako polecenia z listy rozkaz贸w procesora
" wykonanie rozkazu - wczytanie kolejnych argument贸w rozkazu, w
zale偶no艣ci od konkretnego rozkazu wykonanie ci膮gu operacji przez
uk艂ad steruj膮cy. Zapisanie wyniku w pami臋ci zewn臋trznej lub
rejestrze procesora
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 15
Cechy architektury CISC
CISC (ang. Complex Instruction Set Computers)  nazwa architektury
mikroprocesor贸w o nast臋puj膮cych cechach:
" Wyst臋powanie z艂o偶onych, specjalistycznych rozkaz贸w (instrukcji) -
wymagaj膮 od kilku do kilkunastu cykli maszynowych (zmienna liczba cykli),
" Szeroka gama tryb贸w adresowania (skomplikowana konstrukcja dekoder贸w
adresu),
" Stosunkowo d艂uga listy rozkaz贸w procesora.
Wady architektury CISC:
" zbyt d艂uga lista rozkaz贸w - cz臋艣膰 z nich jest rzadko u偶ywana,
" zbyt du偶o czasu traci si臋 na operacje przepisania z pami臋ci do rejestr贸w i
odwrotnie,
" og贸lnie ma艂a efektywno艣膰 w obliczeniach numerycznych.
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 16
Cechy architektury RISC
RISC (ang. Reduced Instruction Set Computers) - nazwa architektury
mikroprocesor贸w o nast臋puj膮cych cechach:
" Zredukowana liczba rozkaz贸w do niezb臋dnego minimum
" Redukcja tryb贸w adresowania, dzi臋ki czemu kody rozkaz贸w s膮 prostsze,
bardziej zunifikowane, (upraszcza dekoder rozkaz贸w).
" Ograniczenie komunikacji pomi臋dzy pami臋ci膮, a procesorem.
" Przetwarzanie potokowe (ang. pipelining) - r贸wnoleg艂e wykonywanie
rozkaz贸w.
Obecnie popularne procesory z punktu widzenia programisty s膮 widziane jako
CISC, ale ich rdze艅 jest RISC-owy. Rozkazy CISC s膮 rozbijane na mikrorozkazy
(ang. microops), kt贸re s膮 nast臋pnie wykonywane przez RISC-owy blok
wykonawczy.
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 17
Mikrokontrolery
Mikrokontroler - komputer zrealizowany w postaci pojedynczego uk艂adu
scalonego, zawieraj膮cego jednostk臋 centraln膮 (CPU), pami臋膰 RAM, na
og贸艂, pami臋膰 programu oraz rozbudowane uk艂ady wej艣cia-wyj艣cia.
Okre艣lenie mikrokontroler pochodzi od g艂贸wnego obszaru zastosowa艅,
jakim jest sterowanie urz膮dzeniami elektronicznymi.
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 18
Budowa mikrokontroler贸w
Typowy mikrokontroler zawiera:
" Jednostk臋 obliczeniow膮 (ALU) - przewa偶nie 8-bitow膮,
" Pami臋膰 danych (RAM),
" Pami臋膰 programu,
" Uniwersalne porty wej艣cia - cz臋艣膰 tych port贸w mo偶e pe艂ni膰 alternatywne
funkcje, wybierane programowo,
" Kontrolery transmisji szeregowej lub r贸wnoleg艂ej (UART, SPI, I2C, USB,
CAN, itp.),
" Przetworniki analogowo-cyfrowe lub cyfrowo-analogowe,
" timery,
" Uk艂ad kontroli poprawnej pracy (watchdog)
" wewn臋trzne czujniki wielko艣ci nieelektrycznych (np. temperatury)
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 19
Taktowanie mikrokontroler贸w
Zegar systemowy mikrokontrolera mo偶e by膰 taktowany:
" zewn臋trznym sygna艂em taktuj膮cym (rozwi膮zanie cz臋sto stosowane w du偶ych
uk艂adach wymagaj膮cych synchronicznej wsp贸艂pracy wielu jednostek),
" w艂asnym generatorem, wymagaj膮cym pod艂膮czenia zewn臋trznych element贸w
ustalaj膮cych cz臋stotliwo艣膰 taktowania (najcz臋艣ciej jest to rezonator
kwarcowy i dwa kondensatory),
" wewn臋trznym uk艂adem taktuj膮cym, nie wymagaj膮cym pod艂膮czania
dodatkowych element贸w
Zegary wsp贸艂czesnych mikrokontroler贸w osi膮gaj膮 cz臋stotliwo艣ci do kilkuset
MHz, jednak w wi臋kszo艣ci zastosowa艅 taktowanie mo偶e by膰 znacznie wolniejsze.
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 20
J臋zyki programowania 礟
" J臋zyki wysokiego rz臋du (np. VB, C, Java)
" Asembler
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 21
Sposoby programowania 礐
Pami臋ci programu ROM mo偶na programowa膰 na trzy sposoby:
1. High voltage Programming czyli spos贸b programowania
wprowadzony ponad 15lat temu do programowania pami臋ci EPROM
za pomoc膮 sygna艂贸w 12V - wymaga programatora.
2. ISP (In-System Programmable) kt贸re nie wymaga wyjmowania
pami臋ci z systemu w kt贸rym pracuje.
3. Bootloader - po resecie 礐 uruchamiany jest program znajduj膮cy si臋
w sekcji Bootloadera, kt贸ry poprzez 艂膮cze (np. port szeregowy) 艂膮czy
si臋 z komputerem nadrz臋dnym, pobiera kod programu i umieszcza go
w przeznaczonej do tego obszarze pami臋ci ROM.
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 22
Przegl膮d obecnych mikrokontroler贸w
Do najbardziej popularnych mikrokontroler贸w nale偶膮:
1. Niekwestionowany standard dla rynku masowego narzuci艂a firma Intel, kt贸ra
wprowadzi艂a na rynek mikrokontroler 8051,
2. Bardzo popularne s膮 r贸wnie偶 mikrokontrolery AVR firmy Atmel - w oparciu o
nie b臋d膮 prowadzona zaj臋cia laboratoryjne,
3. PIC firmy Microchip Technology,
4. inne.
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 23
Bascom-AVR
" Wygl膮d g艂贸wnego okna programu Bascom-AVR
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 24
Sprz臋t obs艂ugiwany przez Bascom-AVR
" Sprz臋t zintegrowany w uk艂adzie scalonym
 Timery (TIMER0 i TIMER1)i liczniki,
 Rejestry wewn臋trzne,
 Port A i B,
 Watchdog,
" obs艂uga zewn臋trznych urz膮dze艅
 LCD
 UART - mo偶liwo艣膰 emulator terminala
 I2C
 1 WIRE protocol
 SPI protocol w tym In System Programming (ISP).
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 25
J臋zyk programowania u偶ywany w Bascom-AVR
" BASIC
" Assembler
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 26
Basic - znaki i operatory
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 27
Symulator w Bascom-AVR
SWB - Mikroprocesory 礟 i mikrokontrolery 礐 - wyk艂ad 8a z 28
Zadania na 膰wiczenia
1. Napisz program, kt贸ry poprzez 艂膮cze szeregowe, odczytywa膰 b臋dzie
a
wci艣ni臋ty klawisz oraz wy艣le go na konsol臋 wraz jego kodem ASCII ,
2. Napisz funkcj臋, kt贸ra b臋dzie oczekiwa膰 przez okres pi臋ciu sekund na
wci艣ni臋cie klawisza. Je艣li w tym okresie klawisz zostanie wci艣ni臋ty powinna
zwr贸ci膰 jego kod ASCII, w przeciwnym przypadku 0. Funkcj臋 nale偶y
wywo艂ywa膰, wypisuj膮c na konsol臋 wci艣ni臋ty klawisz albo informacj臋 o nie
b
wci艣ni臋tym klawiszu ,
3. Napisz program, wykorzystuj膮cy funkcj臋 z poprzedniego punktu, kt贸ry
b臋dzie klasyfikowa膰 wci艣ni臋ty klawisz jako: liter臋  A (ma艂膮 lub du偶膮) lub
cyfr臋. Je艣li odczytany klawisz nie jest liter膮  A albo cyfr膮 nale偶y wypisa膰
c
odpowiednie komunikaty .
a
z wykorzystaniem funkcji Print, Waitkey,Chr oraz p臋tli Loop.
b
z wykorzystaniem funkcji Waitms, Ischarwaiting oraz p臋tli For. Funkcj臋 nale偶y zadekla-
rowa膰 z wykorzystaniem s艂owa kluczowego Function oraz u偶y膰 zmiennych lokalnych Local.
c
z wykorzystaniem funkcji Select.


Wyszukiwarka

Podobne podstrony:
SWBwyklad15d
SWBwyklad5d
SWBwyklad9d
SWBwyklad7d
SWBwyklad11d
SWBwyklad10
SWBwyklad1d
SWBwyklad4d
SWBwyklad3d
SWBwyklad11
SWBwyklad8d
SWBwyklad8d
SWBwyklad7d
SWBwyklad6d
SWBwyklad2d

wi臋cej podobnych podstron