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