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