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