Upload
leliem
View
216
Download
3
Embed Size (px)
Citation preview
Mikrokontroleryczyli o czym to będzie...
Mikrokontroler to “cały komputer w kawałku krzemu”, zoptymalizowanypod kątem sterowania różnorakimi urządzeniami. Typowy mikrokontrolerzawiera praktycznie wszystko, co mu jest potrzebne do pracy- tym różni się od zwykłego mikroprocesora.
Mikrokontrolery
Mikrokontroler nie jest...wolnyniektóre mikrokontrolery osiągają częstotliwości w zakresie GHz;prostyoprócz znanych ze “zwykłej” techniki mikroprocesorowej składnikówmikrokontrolery mogą zawierać na przykład przetworniki A/C i C/A,modemy radiowe, kompletne podsystemy sieciowe, kontrolery zasilania...tania przynajmniej nie zawsze jest tani...zawodnymikrokontrolery są projektowane tak, by odznaczać się niezawodnością;
* Jednostka centralna (zwana też procesorem rdzeniowym, rdzeniem, procesorem lub układem wykonawczym) cyklicznie wykonuje instrukcje zawarte w programie mikrokontrolera.* Lista instrukcji dla danego mikrokontrolera jest z góry określona. * Jednostka centralna jest synchronicznym i sekwencyjnym układem cyfrowym.
Jednostka centralna
Ze względu na mapy pamięci
* architektura harwardzka* architektura VonNeumanna
Ze względu na typ listy instrukcji
* RISC (Reduced Instruction Set Computer) – o zredukowanej liczbie instrukcji* CISC (Complex Instruction Set Computer) – z rozbudowaną liczbą instrukcji
Podział mikroprocesorów
Architektura harwardzkacharakteryzuje się zastosowaniem oddzielnych szyn dla danych i programu.
* Magistrale danych i adresówmogą mieć różną szerokość(długość słowa)
Podział mikroprocesorów
Architektura VonNeumannacechuje się jednolitą przestrzenią adresową.
Mapa pamięciukładu serii ST7(ST72215G)
Podział mikroprocesorów
Zawartość pamięci nie zanika wraz z wyłączeniem zasilania
Z pamięci można czytać, ale nie można do niej zapisywać danych. Umieszczenie danych wymaga specjalnego procesu – programowania.
* ROM (Read Only Memory) – programowanie następuje w procesie produkcyjnym mikrokontrolera.* EPROM (Erasable Programmable ROM) – można kasować dotychczasową zawartość promieniowaniem UV i programować za pomocą specjalnego urządzenia.* OTP (One Time Programmable) – można jednorazowo programować za pomocą specjalnego urządzenia.* FLASH (Bulk Erasable NonVolatile Memory) – możliwe jest wielokrotne elektryczne wymazanie zawartości i programowanie, często bezpośrednio w systemie (ISP – In System Programmable)
Podstawowe układy pamięci mikrokontrolera
Zawartość pamięci nie zanika wraz z wyłączeniem zasilania
Z pamięci można zarówno czytać, jak i pisać do niej dane. Często tworzy się specjalne konstrukcje podtrzymujące jej zawartość przy wyłączeniu zasilania urządzenia.
* SRAM (Static Random Access Memory) – pamięci RAM statyczne. Krótkie czasy dostępu, proste w obsłudze przez CPU, drogie.* DRAM (Dynamic Random Access Memory) – wymagają przeprowadzania w określonych odstępach czasu pewnych operacji na pamięci (odświeżanie), w przeciwnym wypadku dane zanikają. Charakteryzują się dużymi pojemnościami, są tanie.
Podstawowe układy pamięci mikrokontrolera
Architektura mikrokontrolera X51
● 8 bitowy procesor optymalizowany pod kątem sterowania● rozbudowane operacje logiczne (również bitowe)● 64 kB przestrzeni adresowej programu● 64 kB przestrzeni adresowej danych● 128 B wewnętrznej pamięci RAM● dwa 16 bitowe liczniki/zegary● dwukierunkowy UART● 6 źródeł przerwań z 5 pozycyjnym wektorem i priorytetami● wewnętrzny zegar systemowy
8051 Pamięć programu8051 Pamięć programu
● Po uruchomieniu procesora wykonywanie programu rozpoczyna się od adresu 0000h
● Adres ma długość 16 bitów. – Zatem 8051 może zaadresować 216 = 64k słów programu.
● Każde słowo ma długość jednego bajtu. ● CPU może wykonywać instrukcje jedynie z pamięci programu.
Lista rozkazówLista rozkazów
● Lista rozkazów (instrukcji) to zestaw wszystkich rozkazów, które jest w stanie wykonać dany procesor..
● Każdy procesor ma własną listę rozkazów.● Rozkazy możemy podzielić na zasadnicze grupy:
– Arytmetyczno logiczne– Przesłania danych– Przeniesienia sterowania – Testowania i porównania (w zasadzie nieobecne w 8051)– Wejścia wyjścia (tylko niektóre procesory; 8051 ich nie ma) – Inne
● Niektóre procesory (szczególnie RISC) mają rozkazy o ujednoliconej długości, inne (w tym 8051) nie.
Kodowanie rozkazówKodowanie rozkazów
● Rozkaz zawiera– informację jaką operację wykonać, – operandy (jeżeli są). – przeznaczenie wyniku (jeżeli jest)
● Część rozkazu zawierająca informację o operacji nazywa się często kodem instrukcji (rozkazu) albo opcode
● Operand może być– wartością natychmiastową, adresem pamięci lub rejestrem. Przeznaczeniem może
być adres pamięci lub rejestr. ● Rozkaz procesora 8051 może mieć długość 1, 2 lub 3 bajtów
Lista rozkazów 8051 Lista rozkazów 8051
ACALL addr11 DIV AB LJMP addr16 RETIADD A,<src> DJNZ <byte>,<rel8> MOV <dest>,<src> RL AADDC A,<src> INC <byte> MOV DPTR,#data16 RLC AAJMP addr11 INC DPTR MOV bit,bit RR AANL <dest>,<src> JB bit,rel8 MOVC A,@A+<base> RRC AANL C,<bit> JBC bit,rel8 MOVX <dest>,<src> SETB bitCJNE <dest>,<src>,rel8 JC rel8 MUL AB SJMP rel8CLR A JMP @A+DPTR NOP SUBB A,<src>CLR bit JNB bit,rel8 ORL <dest>,<src> SWAP ACPL A JNC rel8 ORL C,bit XCH A,<byte>CPL bit JNZ rel8 POP direct XCHD A,@RiDA A JZ rel8 PUSH direct XRL <dest>,<src>
DEC <byte> LCALL addr16 RET
Zwiększanie liczby wejść i wyjść
● Zdarza się, że liczba wyprowadzeń portów mikrokontroleranie wystarcza do naszego zastosowania musimy wtedyodpowiednio zwiększyć ich liczbę. Mamy do dyspozycji:
● Standardowe układy cyfrowe (na przykład CMOS lub TTL)● Specjalizowane “układy rozszerzeń” łączone z szyną procesora● Układy łączone poprzez specjalny interface szeregowy (I2C, SPI, 1Wire)
Lokalne interfejsy szeregowe
● Umożliwiają● ... połączenie sporej liczby układów peryferyjnych● ... przy niewielkiej liczbie użytych linii sterujących● ... przy małej liczbie dodatkowych elementów● ... zwykle nie potrzebują miejsca w przestrzeni adresowej
● Mają też wady● ... niezbędny specjalizowany hardware● ... albo skomplikowane (i wolno działające) oprogramowanie● ... ograniczoną prędkość transmisji danych
Lokalne interfejsy szeregowe
● Najczęściej spotyka się interfejsy● I2C – InterIntegrated Circuits ● ... opracowany przez firmę Philips● SMBus – System Management Bus● ... podobny do I2C, utworzony przez firmę Intel● SPI – Serial Peripherial Interface● ... opracowany przez firmę Motorola● Microwire● ... podobny do SPI● 1Wire● ... opracowany przez firmę Dallas (aktualnie Maxim)
Lokalny interfejs szeregowy I2C
● Zawiera dwie dwukierunkowe linie typu otwarty kolektor:● ... SDA (linia danych)● ... SCL (linia zegara)● Transmisja jest synchroniczna● ... z prędkością maksymalną 3.4Mb/s (typowo 100 kb/s)● ... w trybie masterslave (master steruje transmisją za pomocą SCL)● Każdy układ slave ma swój unikalny identyfikator
Lokalny interfejs szeregowy I2C
● Zwykle system zbudowany jest z jednego mikrokontrolera● ... pracującego jako master● ... oraz szeregu układów slave● Możliwe są jedna bardziej skomplikowane konfiguracje● Każdy z układów slave ma adres unikalny dla typu układów● ... sprzętowo ustalany przez producenta● ... jednakoż użytkownik ma zwykle możliwość wpływu na część adresu● ... za pomocą wyprowadzeń układu scalonego
Lokalny interfejsszeregowy I2C
● W przykładzie obok● ... połączono dwa przetworniki C/A● ... firmy Maxim
Lokalny interfejs szeregowy I2C
● Dane przesyłane są sformatowane w ramki o długości jednego bajtu● Po każdym bajcie następuje potwierdzenie jego odbioru (ACK)● Bajty przesyłane są od bardziej znaczących● Transmisją danych steruje układ master za pomocą linii zegara SCL● Odbiornik może chwilowo wstrzymać nadawanie● ... wymuszając stan niski na linii SCL● Każdą transmisję rozpoczyna sekwencja START, a kończy STOP
Lokalny interfejs szeregowy I2C
● Parametry czasowe:● ... transmisja może odbywać się dowolnie wolno● Maksymalna prędkość transmisji● ... w trybie standard wynosi 100 kb/s● ... w trybie szybkim 400 kb/s● ... w trybie high speed 3.4 Mb/s● W trybie standard pracują wszystkie układy● ... w trybie szybkim tylko niektóre● ... w trybie high speed bardzo nieliczne
Lokalny interfejs szeregowy SMBus
● Jest uproszczeniem interfejsu I2C● ... wprowadza dolny limit czasu operacji (25 ms)● ... minimalną częstotliwość zegara (10 kHz)● ... pracuje z maksymalną częstotliwością zegara 100 kHz● ... istnieje jeszcze parę mało istotnych różnic● Wprowadza też dodatkowe funkcje (alarm, general call)● W praktyce układy z oboma interfejsami dają się łączyć jednocześnie
Lokalny interfejs szeregowy SPI
● Jest to interfejs czteroprzewodowy, synchroniczny● Jeden z układów (zwykle mikrokontroler) pełni rolę master● ... sterując transmisją● Gwarantowana prędkość transmisji wynosi 2.1 Mb/s● Układy nie mają unikalnych identyfikatorów● ... ale dodatkowe wejście wyboru (SS)● ... stan niski na tym wejściu wybiera aktywny układ slave
Lokalny interfejs szeregowy SPI
● Teoretycznie nie ma ograniczeń na liczbę układów● W praktyce ograniczeniem jest suma pojemności montażowych● ... ograniczająca prędkość transmisji
Lokalny interfejsszeregowy SPI
● Co prawda SPI● ... jest prostszy niż I2C● ... ma za to cztery tryby pracy● ... różniące się zboczem zegara, na którym jest próbkowane wejście● ... oraz ustawiane wyjście● Na szczęście mikrokontrolery radzą sobie ze wszystkimi trybami
Lokalny interfejsszeregowy SPI
● Przykład odczytu bajtowej danej z pamięci EEProm z interfejsem SPI● ... (X5323 firmy Xicor)
Lokalny interfejs szeregowy SPI
● Realizacja programowa interfejsu SPI jest prostsza niż I2C● Zestaw istniejących układów jest również obfity● ... choć mniej jest układów specjalizowanych (na przykład TV)● Wykorzystując rozszerzony interfejs SPI● ... firma Atmel stworzyła standard programowania procesora● ... ISP (In System Programming)
Lokalny interfejs szeregowy Microwire
● Został opracowany w firmie National Semiconductor● Jest praktycznie identyczny z SPI pracującym w trybie 0● Masterem jest zawsze mikrokontroler (nie ma on lini SS)● ... interface jest więc w zasadzie trójprzewodowy● Jest popularny
Lokalny interfejs szeregowy 1Wire
● Został opracowany w firmie Dallas (aktualnie Maxim)● Używa jednego przewodu do transmisji w obie strony● ... oraz opcjonalnie zasilania układów (!)● ... linia jest sterowana przez wyjścia z otwartym kolektorem● Transmisja ma prędkość do 16.3kb/s (standard)● ... lub 115.2 kb/s (overdrive)● Do pojedynczej linii można dołączyć wiele układów● Każdy układ (egzemplarz !) ma swój unikalny identyfikator● ... do ich identyfikacji służy specjalna procedura wyszukiwania● ... przeprowadzana przez kontroler,● ... który zawsze pełni rolę nadrzędną (master)
Lokalny interfejs szeregowy 1Wire
● W stanie spoczynkowym linia znajduje się na wysokim poziomie ● Każdy impuls niskiego poziomu o czasie dłuższym niż 480 us● ... jest traktowany jako reset ● ... po którym układy slave● ... zgłaszają swoją obecność● Następnie układ master● ... przeprowadza przeszukiwanie● ... identyfikując układy slave
Lokalny interfejs szeregowy 1Wire
● 1Wire to niewątpliwie interfejs bardzo ciekawy● ... i bardzo zaawansowany technologicznie● Choć układy produkuje praktycznie jedna firma Maxim/Dallas● ... to są wśród nich różne propozycje o uniwersalnym zastosowaniu● ... niestety, nie są tanie● Algorytm wyszukiwania układów jest skomplikowany● ... lecz producent dostarcza źródła gotowych procedur● Interfejs nadaje się do budowy sporych sieci czujników pomiarowych
Lokalny interfejs szeregowy 1WireiButton
● Interfejs 1Wire jest również wykorzystywany w elementach iButton● Są to układy zamknięte w obudowach stalowych● ... i bardzo odporne na wpływy zewnętrzne● Na przykład pamięci (również z szyfrowanym dostępem)● ... mogą być wykorzystywane w szeroko pojętym “security”● Istnieją również autonomiczne (z własnym zasilaniem)● ... układy pomiarowe mierzące temperaturę i wilgotność● ... i magazynujące zmierzone wielkości