11. Mikrokomputery jednoukładowe
Transkrypt
11. Mikrokomputery jednoukładowe
Podstawowe cechy (1) Materiały do wykładu . ⊲ Inne nazwy ⋄ mikrokontroler ⋄ mikroprocesor do zastosowań wbudowanych (ang. embedded) 11. Mikrokomputery jednoukładowe ⊲ Układ mikroprocesorowy mogący działać samodzielnie Marcin Peczarski ⊲ W jednym układzie scalonym przynajmniej Instytut Informatyki Uniwersytet Warszawski ⋄ jednostka centralna ⋄ pamięć programu ⋄ pamięć danych ⋄ układy peryferyjne 14 maja 2008 Podstawowe cechy (2) . ⊲ Mała moc zasilania Podstawowe cechy (3) . ⊲ Szeroki dopuszczalny zakres temperatur pracy, zależnie od przeznaczenia ⋄ typowo 1 mW do 1 W ⋄ komercyjne od 0◦ C do 70◦ C ⋄ „duży” mikroprocesor pobiera zwykle od 30 W do 100 W ⋄ przemysłowe od −25◦ C do 85◦ C lub od −40◦ C do 85◦ C ⊲ Nieduża częstotliwość taktowania ⋄ specjalne od −40◦ C do 125◦ C ⋄ typowo od 1 MHz do 200 MHz ⊲ Powierzchnia układu ⋄ typowo 20 mm2 do 40 mm2 ⋄ możliwe nawet 0, 16 mm2 ⋄ „duży” mikroprocesor to ok. 300 mm2 Zastosowania (1) . ⊲ Sterowniki mikroprocesorowe Zastosowania (2) . ⊲ Zabawki ⋄ układy automatyki ⋄ kolejki elektryczne ⋄ roboty ⊲ Urządzenia przenośne ⋄ elektronika samochodowa ⋄ telefony ⋄ AGD ⋄ odtwarzacze muzyki ⊲ Podzespoły dużych komputerów ⊲ Systemy ochronne i alarmowe – znajdź przykład na MIM! ⋄ sterownik klawiatury ⋄ domofony ⋄ mysz ⋄ urządzenia do kontroli dostępu ⋄ inne układy peryferyjne Zastosowania (3) ⋄ centralki przeciwpożarowe . ⊲ Karty mikroprocesorowe (kontaktowe lub zbliżeniowe) ⋄ SIM Zastosowania (4) ⊲ Sieci sensorowe ⋄ zastosowania militarne ⋄ telefoniczne ⋄ badania kosmiczne ⋄ bankowe (Choć nadal w powszechnym użyciu są karty z paskiem magnetycznym.) ⋄ badania meteorologiczne ⋄ medyczne – informacje o pacjencie ⋄ dokumenty tożsamości ⋄ kontrola dostępu ⋄ bilety komunikacji miejskiej ⋄ kontrola towarów w sklepach (Nie należy mylić z powszechnie obecnie stosowanymi systemami analogowymi.) ⋄ kontrola towarów w sklepach . Jednostka centralna . Pamięć programu . ⊲ Architektury RISC i CISC ⊲ ROM przy bardzo dużych seriach produkcyjnych ⊲ Architektury 8, 16, 32 a nawet 64-bitowe ⊲ PROM, OTPROM przy średnich seriach produkcyjnych ⊲ Często zaadaptowana architektura ogólnego przeznaczenia ⊲ EPROM, EEPROM, FLASH przy małych seriach produkcyjnych i do układów prototypowych ⊲ Często architektura harwardzka ⊲ System operacyjny w ROM, aplikacja ładowana do EEPROM lub FLASH ⊲ Szybka obsługa przerwań sprzętowych ⋄ mało rejestrów ⋄ przełączane banki rejestrów ⊲ Brak lub słabe wsparcie dla wielozadaniowości ⊲ W pełni przewidywalny czas wykonania instrukcji Pamięć danych . Wejścia i wyjścia . ⊲ Wejścia binarne ⊲ Robocza, zwykle SRAM ⋄ blisko jednostki centralnej ⋄ czujniki dwustanowe – otwarty/zamknięty ⋄ zwykle część widziana jako rejestry ⋄ klawiatura ⋄ zgłaszanie przerwania przy zmianie poziomu na wejściu ⊲ Nieulotna, zwykle EEPROM ⊲ Wyjścia binarne ⋄ dane niemogące ulec skasowaniu ⋄ wolniejszy dostęp niż do pamięci roboczej ⋄ włączanie i wyłączanie różnych urządzeń ⋄ często dostęp przez interfejs szeregowy ⋄ proste wyświetlacze ⊲ Wejścia analogowe ⋄ przetwornik analogowo-cyfrowy ⋄ komparator ⋄ czujniki analogowe Układy czasowe . ⊲ Ważne w zastosowaniach czasu rzeczywistego Interfejsy . ⊲ Szeregowe ⋄ UART – Universal Asynchronous Receiver Transmitter ⊲ Cyfrowa kalibracja zegara systemowego ⋄ USART – Universal Synchronous Asynchronous Receiver Transmitter ⊲ Układy licznikowe ⋄ I2 C ⋄ odmierzanie czasu między zdarzeniami ⋄ cykliczne zgłaszanie przerwań ⋄ 1-wire ⋄ generowanie przebiegów o zadanej częstotliwości i współczynniku wypełnienia (np. do sterowania silnikiem) ⋄ USB ⊲ Watchdog ⋄ ... ⋄ wyprowadzanie ze stanu zawieszenia ⊲ UART i USART umożliwiają zrealizowanie jednego z popularnych interfejsów szeregowych: RS 232, RS 422, RS 485. ⋄ nie zwalnia z dbałości o poprawność programu! ⊲ Sterownik wyświetlacza LCD Tryby oszczędzania energii . Języki programowania ⊲ Ważne w układach zasilanych bateryjnie ⊲ Asembler ⊲ Zmniejszenie poboru mocy przez spowolnienie zegara ⊲ C ⊲ Całkowite zatrzymanie zegara ⊲ C++ ⊲ Budzenie zdarzeniem ⊲ ... ⊲ Java . Systemy operacyjne . ⊲ Embedded Linux Najpopularniejsze architektury . ⊲ 8-bitowe ⋄ 8051 – Intel (1980), chyba najczęściej klonowany ⊲ Windows CE ⋄ Z80 – Zilog (1976), sporo klonów ⊲ FreeRTOS ⋄ 68HCxx – oryginalnie Motorola, obecnie Freescale ⋄ PIC – Microchip ⊲ QNX ⋄ AVR – Atmel ⊲ ... ⊲ 32-bitowe ⋄ ARM ⊲ 64-bitowe ⋄ PowerPC – Freescale Dwa przykłady . PIC12CE518 (1) ⊲ Jeden z najprostszych – PIC12CE518 firmy Microchip ⊲ Architektura RISC typu Harward ⊲ Bardziej zaawansowany – AT91SC512384RCT firmy Atmel ⊲ Pamięć . ⋄ programu EPROM, 512 słów 12 bitowych ⋄ rejestry ogólnego przeznaczenia 25 bajtów ⋄ rejestry specjalne i konfiguracyjne 7 bajtów ⋄ 8-bitowy akumulator (rejestr W) ⋄ nieulotna EEPROM, 16 bajtów, przez wewnętrzny interfejs I2 C ⋄ stos, 2 słowa 12 bitowe ⋄ 12-bitowy licznik programu (program counter) PIC12CE518 (2) . ⊲ 8-bitowa jednostka arytmetyczno-logiczna (ALU) PIC12CE518 (3) . ⊲ Wewnętrzny, kalibrowany oscylator ⋄ 4 MHz w normalym trybie pracy (2 mA) ⊲ 8-bitowa wewnętrzna szyna danych ⋄ 32 kHz w trybie małego poboru mocy (< 15 µA) ⊲ 33 instrukcje ⊲ Możliwość przełączenia na zewnętrzne źródło sygnału taktującego ⋄ 12-bitowe kody ⊲ Tryb uśpienia (< 1 µA) ⊲ Dwuetapowy potok instrukcji ⋄ budzenie sygnałem na wejściu binarnym ⋄ pobranie (fetch), wykonanie (execute) ⋄ opróżnianie potoku przy wykonywaniu skoku ⊲ Licznik widziany jako jeden z rejestrów specjalnych ⊲ 8-końcówkowa obudowa ⊲ Watchdog z niezależnym oscylatorem ⋄ maksymalnie 6 wejść/wyjść binarnych, widzianych jako rejestr specjalny AT91SC512384RCT (1) . AT91SC512384RCT (2) ⊲ 32-bitowa architektura RISC typu Princeton (ARM) ⊲ Wewnętrzny zegar do 50 MHz ⊲ Pamięć ⊲ Trzyetapowy potok ⋄ 512 kB ROM ⋄ 384 kB EEPROM, w tym 256 B OTP ⋄ 24 kB RAM ⋄ 32 kB ROM (biblioteka kryptograficzna) ⋄ pobranie (fetch), dekodowanie (decode), wykonanie (execute) ⊲ Tryb małego poboru mocy ⊲ Tryb uśpienia ⊲ Interfejs do zewnętrznej pamięci FLASH ⊲ Interfejsy szeregowe: ISO 7816, SPI, USB, Single Wire ⊲ Dwa zestawy instrukcji ⊲ 2 liczniki ⋄ pełny, 32-bitowe kody, maksymalna wydajność ⋄ zredukowany, 16-bitowe kody, maksymalna gęstość kodu . ⊲ 24-końcówkowa obudowa AT91SC512384RCT (3) . Środowiska uruchomieniowe, konstruktorskie ⊲ Generator liczb losowych ⊲ Kompilator skrośny ⊲ Akcelerator kryptograficzny ⊲ Programator ⋄ RSA, DSA, ECC, Diffie-Hellman, obliczenia w GF . ⊲ Płytka uniwersalna z podstawką pod mikrokontroler ⊲ Sprzętowa implementacja DES i 3DES ⊲ Emulator ⊲ Sprzętowa implementacja CRC16 i CRC32 ⊲ Debugger „w układzie” ⊲ Sprzętowy akcelerator dla Java Card Byte Code Programowanie mikrokontrolerów ⊲ Zintegrowane środowisko programistyczne (IDE) . Karty czipowe ⊲ Monograf w semestrze zimowym 2008/09 ⊲ Chip card, smart card ⊲ Prowadzący: Marcin Engel i Marcin Peczarski ⊲ Karty pamięciowe ⊲ Close To Hardware – będziemy programować bardzo blisko sprzętu! ⋄ ograniczone zastosowania ⊲ Karty mikroprocesorowe ⊲ Zestaw uruchomieniowy z procesorem ATmega16 Karty mikroprocesorowe kontaktowe (1) . ⋄ szerokie zastosowania . Karty mikroprocesorowe kontaktowe (2) . ⊲ Zasilanie z czytnika karty (telefon, bankomat itd.) ⊲ Komunikacja przez interfejs szeregowy VDD RST GND ⋄ ISO 7816 VPP ⊲ Podstawowa częstotliwość taktowania 4,77 MHz ⋄ możliwe przełączenie do ok. 200 MHz CLK RFU I/O RFU Karty mikroprocesorowe zbliżeniowe . Karty mikroprocesorowe . ⊲ Zasilanie za pomocą zmiennego pola magnetycznego wytwarzanego przez czytnik ⊲ Komunikacja przez interfejs radiowy ⊲ Zasięg ⋄ do ok. 10 cm – ISO 14443 ⋄ do ok. 50 cm – ISO 15693 Producent Producent Wydawca Użytkownik półprzewodników kart karty karty 1. generacja system operacyjny dane aplikacja 2. generacja system operacyjny aplikacja dane dane 3. generacja system operacyjny aplikacja dane