45
Mikrokontrolery w systemach pomiarowo-sterujących

Mikrokontrolery - mif.pg.gda.pl · PDF fileMikrokontrolery czyli o czym to będzie... Mikrokontroler to “cały komputer w kawałku krzemu”, zoptymalizowany pod kątem sterowania

  • Upload
    leliem

  • View
    216

  • Download
    3

Embed Size (px)

Citation preview

Mikrokontroleryw systemach pomiarowo­sterujących

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ą;

Standardowa architektura mikrokontrolera

* 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 Von­Neumanna

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 Von­Neumannacechuje 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 Non­Volatile 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

Architekturamikrokontrolera X51

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

ArchitekturamikrokontroleraX51

ArchitekturamikrokontroleraX51(wyprowadzenia)

Architektura mikrokontrolera X51(obszary adresowe)

Pamięćprogramu

PamięćRAM

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, 1­Wire)

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 – Inter­Integrated 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● 1­Wire● ... 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 master­slave (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

LokalnyinterfejsszeregowyI2C

Przykład sterownikawyświetlacza LEDi klawiatury

LokalnyinterfejsszeregowyI2C

System procesora telewizyjnegoSAA56XX firmy Philips

Lokalny interfejs szeregowy I2C

Szeregowe układy pamięci

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 1­Wire

● 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 1­Wire

● 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 1­Wire

● Zapis przez mastera bitu “1” do rejestru wejściowego slave  

Lokalny interfejs szeregowy 1­Wire

● Zapis przez mastera bitu “0” do rejestru wejściowego slave

Lokalny interfejs szeregowy 1­Wire

● Odczyt przez mastera bitu ze slave

Lokalny interfejs szeregowy 1­Wire

● Do budowy interface 1­Wire można wykorzystać dwa bity we/wy 

Lokalny interfejs szeregowy 1­Wire

● 1­Wire 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 1­WireiButton

● Interfejs 1­Wire 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