Systemy RT i embedded Wykład 8 Mikrokontrolery i procesory ...
Wykład 3: Mikrokontrolery kart elektronicznychb3ad%203.pdf · RNG, generator and CRC coprocessor...
Transcript of Wykład 3: Mikrokontrolery kart elektronicznychb3ad%203.pdf · RNG, generator and CRC coprocessor...
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
Wykład 3: Mikrokontrolery kart elektronicznych
2dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
Wprowadzenie
Technologia półprzewodnikowa
Typy procesorów
Typy pamięci
Pozostałe elementy
Plan
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 2
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 3
WPROWADZENIE
Architektura, funkcjonalność, bezpieczeństwo i dostępność
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
3dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
4dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
WPROWADZENIE
Mikrokontroler najważniejszym elementem karty z
informatycznego punktu widzenia
Mikrokontroler ma architekturę komputera
Główne elementy funkcjonalne karty to:
• CPU, magistrale danych i adresowa, pamięć (RAM, ROM, EEPROM,
flash), port we/wy
Możliwe bardziej rozbudowane jednostki wyposażone w
dodatkowe elementy
Wyposażenie mikrokontrolera w system operacyjny daje
możliwość tworzenia prostych aplikacji
Obecnie wytwarzane w technologiach półprzewodnikowych od
0,18m do 90nm
Nie są standardowymi, powszechnie dostępnymi
komponentami o wielu zastosowaniach
Wprowadzenie
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 4
5dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
WPROWADZENIE
Układ elementów
w prostym
mikrokontrolerze
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 5
buses
bonding pads
bonding pads
I/O CPU NPU RAM
ROM
EEPROM
charge pump
6dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
WPROWADZENIE
Jednostki funkcjonalne
zaawansowanego mikrokontrolera
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 6
flash
RAM
CPU
interruptreset
ROMEEPROMclock
generator
SWP
mass
memory
USB
MMC
contactless
timers
UART
MMU
detectorsCRC
RSA/ECAES
power
manager
DES/TDESRNG
elementy obowiązkowe elementy opcjonalne
7dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
WPROWADZENIE
Fotografia prostego mikrokontrolera I
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 7
- ROM - EEPROM - CPU+NPU - RAM
wycofany z produkcji model
PC 83 C 852 (Philips/NXP)
rozmiar 22,3 mm2
183 000 tranzystorów
8dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
WPROWADZENIE
Fotografia prostego mikrokontrolera II
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 8
- EEPROM - PROM - CPU - RAM
wycofany z produkcji model ST 16623 (ST Microelectronics)
9dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
WPROWADZENIE
Główny koszt produkcji związany jest z
rozmiarem obszaru, jaki zajmuje mikrokontroler
na waflu krzemowym
Obniżanie kosztów przez minimalizację obszaru
zajmowanego przez mikrokontroler
Inną drogą do zmniejszenia kosztów jest
przeprojektowanie mikrokontrolera tak, aby jego
elementy posiadały tylko te funkcjonalności,
które będą miały zastosowanie w kartach
elektronicznych
Koszty produkcji
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 9
10dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
WPROWADZENIE
Wszystkie elementy mikrokontrolera musząbyć specjalnie zaprojektowane, ze względu
na konieczność upakowania w jednym chipie i
napięcie zasilania 1,8 do 5V
Karta musi być wyposażona w pamięć
EEPROM lub flash
Wymagania dotyczące biernych i aktywnych
zabezpieczeń chipu wymagają stosowania
specjalnie zaprojektowanych układów
Funkcjonalności i bezpieczeństwo
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 10
11dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
WPROWADZENIE
Nie może być zbyt duży ze względu na
delikatność płytki półprzewodnikowej
Nawet mikropęknięcie powoduje bezużyteczność
uszkodzonego chipu
Producenci zalecają ograniczenie rozmiaru do
25 mm2, a kształtu jak najbardziej zbliżonego do
kwadratu
Typowe mikrokontrolery obecnie produkowane
zajmują obszar nie większy niż 10 mm2
Obszar zajmowany przez chip
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 11
12dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
WPROWADZENIE
Typowy podział obszaru chipu
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 12
Typ elementu Obszar
CPU, NPU 20%
ROM 10%
EEPROM 45%
RAM 15%
pozostałe 10%
13dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
WPROWADZENIE
Niektórzy producenci stosują politykębezpieczeństwa, wg której mikrokontrolery nie sąpowszechnie dostępne, co utrudnia analizęsprzętowej strony chipu dla potencjalnych hakerów
Z drugiej strony powszechnie dostępne
programowalne karty elektroniczne (np. Java Card)
są w opozycji do tego podejścia
Ponadto ograniczenie liczby producentów sprawia,
że jest to środowisko zależne od dostawców,
jakiekolwiek zawirowania w planach dostaw lub
polityce cenowej dostawcy pociąga za sobązaburzenia poziomu produkcji mikrokontrolerów
Dostępność
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 13
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 14
TECHNOLOGIE
PÓŁPRZEWONIKOWE
Wpływ technologii na rozwój mikrokontrolerów
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
14dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
15dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TECHNOLOGIE PÓŁPRZEWODNIKOWE
1
96
5 –
Praw
o M
oore’a
(nadal aktualn
e)
Historia
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 15
memory size technology
10 nm
50 nm
0,5 m
100 nm
1 m
5 m
10 m
1985 201520102005200019951990
0,1 kB
1 kB
10 kB
100 kB
1MB
10 MB
RAM
technology
EEPROMROM
16dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TECHNOLOGIE PÓŁPRZEWODNIKOWE
Malejące rozmiary struktur
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 16
SLE 44C80 / 1m / 21,7mm2
SLE 44C80S / 0,8m / 10mm2
0,5 m
0,35 m
0,13 m
Wszystkie struktury mają tę samą funkcjonalność
Koszt wytwarzania układu maleje w przybliżeniu proporcjonalnie
do rozmiaru obszaru zajmowanego przez chip
Koszty połączeń elektrycznych i wykonania modułu nie zależą od
kosztów wytwarzania chipu
17dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TECHNOLOGIE PÓŁPRZEWODNIKOWE
Od 0,13m przez 0,11m do 90nm
Redukcja rozmiaru do 80% i 55%
Zmiana rozmiaru umożliwia zwiększenie
funkcjonalności przy niemal niezmiennej cenie
Wzrost gęstości integracji powoduje skrócenie
odległości pomiędzy przewodnikami → obniżenie
napięcia zasilania od 1,5V do 1,2V
Aby mikrokontroler karty mógł pracować przy
takich napięciach konieczny jest konwerter
napięcia (oryginalne 5V, 3V oraz 1,8V)
Postęp technologiczny
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 17
18dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TECHNOLOGIE PÓŁPRZEWODNIKOWE
Rozmiary komórek pamięci
w zależności od technologii
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 18
Technologia Typ pamięci Rozmiar
0,18 m0,15 m0,13 m0,13 m0,13 m0,13 m0,13 m0,11 m90 nm90 nm90 nm90 nm90 nm
EEPROMEEPROMEEPROMROMRAMtypowe napięcie rdzeniatypowy rozmiar waflaEEPROMNOR flashROMRAMtypowe napięcie rdzeniatypowy rozmiar wafla
5 m2
3 m2
1,3 m2
0,29 m2
3,5 m2
1,5 V8 cali, czasami 6 cali0,9 m2
0,228 m2
0,2 m2
1,3 m2
1,2 V8 cali, rzadko 12 cali
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 19
TYPY PROCESORÓW
Procesory 8, 16 i 32 bitowe
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
19dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
20dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PROCESORÓW
Projektowanie procesorów inwestycją zbyt
drogą, prowadzącą do powstania nieznanego
jeszcze produktu, dla którego dopiero trzeba
będzie opracować oprogramowanie
Potrzebny produkt pewny, dobrze znany, z
dobrym zapleczem w postaci
oprogramowania
Procesor nie musi być reprezentantem
najnowszych osiągnięć w tej dziedzinie
Motywacja
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 20
21dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PROCESORÓW
Najtańsze rozwiązania stosowane w kartach
elektronicznych
Pamięć 50 do 100 kB
Architektura CISC
Bardzo duża liczba instrukcji
Zbiór instrukcji bazujący na instrukcjach procesora Intel
8051, z nielicznymi rozszerzeniami poszczególnych
producentów dotyczącymi głównie adresowania pamięci
rozszerzonej
Adresy 16 bitowe (do 64 kB)
Rozszerzenia pozwalające ominąć barierę 64 kB i
przełączanie na różne banki pamięci, niepraktyczne ze
względu na liczne wady tego rozwiązania
Procesory 8-bitowe
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 21
22dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PROCESORÓW
SLE 66CX160S
rozmiar 21 mm2, fabricated in
technologia 0.6-μm
ROM 32 kB
EEPROM 16 kB
RAM 1280 B
Po lewej:
• koprocesor
• elementy peryferyjne: timer,
RNG, generator and CRC
coprocessor
Wyraźnie widoczne pięć
wyprowadzeń do podłączenia
styków modułu
Procesory 8-bitowe - przykład
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 22
23dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PROCESORÓW
Rodziny produktów:
• Intel 80251
• Renesas H8
• Renesas AE4
• Philips/NXP XA
• Samsung CALM
• Infineon SLE 7
Architektura CISC
Tylko H8 w architekturze RISC
Procesory 16-bitowe
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 23
24dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PROCESORÓW
Procesory 16-bitowe - przykład
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 24
SLE 76CF3601P
technologia 0.13-μm
flash 360 kB
RAM 8 kB
Koprocesor dla
algorytmów
kryptograficznych
Triple DES i AES
25dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PROCESORÓW
Najbardziej zaawansowane obecnie rozwiązania
Najbliższa przyszłość w obszarze kart
elektronicznych motywowana:
• koniecznością obsługi obszarów pamięci poza limitem
64 kB
• interpretowanymi systemami operacyjnymi (np. Java
Card)
Rodziny procesorów:
• Infineon SLE 8
• Renesas AE5
• ARM 7 oraz ARM Cortex
Procesory 32-bitowe
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 25
26dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PROCESORÓW
Procesory 32-bitowe - przykład
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 26
SLE 88CX720P
technologia 0.22-μm
ROM 240 kB
EEPROM 80 kB
RAM 8 kB
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 27
TYPY PAMIĘCI
ROM, EPROM, EEPROM, flash, RAM, FRAM
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
27dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
28dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Podział pamięci stosowanych w KE
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 28
Typy pamięci
pamięć nietrwała
pamięć trwała
RAM
ROM
EEPROM
flash
29dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Podstawowe charakterystyki zapis/odczyt
dla różnych typów pamięci
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 29
Typ pamięci Liczba cykli zapis/kasowanie Czas zapisu komórki
ROM 0
flash 10 000 – 100 000 10 s
EEPROM 100 000 – 1 000 000 2-10 ms
FRAM 1010 100 ns
RAM 70 ns
30dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Najwięcej miejsca zajmują komórki pamięci RAM i
EEPROM
Karty o wielu zastosowaniach wymagają bardziej
rozbudowanego systemu operacyjnego i większej pamięci
ROM
Wyprodukowanie układu z trzema typami pamięci na
płytce jest technologicznie trudne
Komórka pamięci RAM zajmuje 4 razy więcej miejsca niżkomórka pamięci EEPROM, a ta z kolei 4 razy więcej niżkomórka pamięci ROM
Dobrą alternatywą dla pamięci ROM i EEPROM jest
pamięć flash
Informacje
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 30
31dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Względny rozmiar komórki pamięci
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 31
1 1,1
6,5
1
4,5
12,5ROM
EEPROM
RAM
ROM
RAM
flash
0,54 1,14 1,87
0,45 0,47 1,14
technologia
0,13m
technologia
90nm
Inne wartości:
przeciętna gr.
włosa 40m
graniczna
rozdzielczość
ludzkiego wzroku
40m
wielkość bakterii
0,4-2 m
42,6 m rozmiar
punktu przy
rozdzielczości
druku 600 dpi
32dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Pamięć tylko do odczytu
Zawartość pamięci
zaprogramowana sprzętowo
(procesy litograficzne) na etapie
produkcji
Zawartość:
• większość systemu operacyjnego
• funkcje testujące i diagnostyczne
Zawartość wspólna dla całej serii
produkcyjnej
ROM (read-only memory)
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 32
33dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Fotografia pamięci ROM
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 33
ok. 1000 ok. 11 200
34dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Typ pamięci stosowany we wczesnych
rozwiązaniach
Zawartość pamięci może być usunięta
wyłącznie w świetle UV (nieprzydatne w KE)
Efekt tylko jeden cykl programowania
Sporadycznie używana do zapisu unikalnego
numeru seryjnego karty
EPROM (erasable read-only memory)
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 34
35dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Przeznaczenie: dane i programy, które muszą być
od czasu do czasu modyfikowane lub usuwane
Działa „podobnie” jak dysk twardy
Komórka jest małym kondensatorem wspartym
odpowiednią logiką odczytu
W „czystym” stanie wszystkie bity ustawione na 1
(naładowany kondensator), programowanie
wyłącznie do stanu „0”, aby przeprogramować
jeden bit z 0 w 1 konieczne jest usunięcie
wszystkich danych
EEPROM (electrically erasable read-
only memory)
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 35
36dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Fotografia pamięci EEPROM
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 36
ok. 1000 ok. 4000
37dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Pseudokod programu
zapisującego stronę pamięci EEPROM
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 37
38dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Organizacja pamięci EEPROM i flash
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 38
Nie jest liniowa jak ROM i EPROM, ale stronicowana
Typowy rozmiar strony 8, 32, 64 i 128B
Sektory grupują strony, typowy rozmiar to 2 do 8 kB
Zawartość sektora może być usunięta w jednej operacji, ale
nie może być zapisana w ten sposób
Zawartość strony może być zarówno usunięta, jak i zapisana
w jednej operacji
Typowy cykl zapisu/usunięcia zawartości jednej strony wynosi
2,5 ms
39dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Przekrój struktury komórki EEPROM
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 39
Zasada działania jak tranzystor MOSFET, dodatkowa bramka tzw. pływająca, która może byd naładowana (rozładowana) przy zastosowaniu efektu tunelowego, przewodzenie kanału pomiędzy źródłem a drenem uzależnione od stanu naładowania tej bramki
40dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Ładowanie komórki EEPROM
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 40
• wysokie dodatnie napięcie jest przykładane do bramki sterującej• powstaje duża różnica potencjałów pomiędzy bramką pływającą a podłożem, w efekcie elektrony przenikają przez warstwę tlenkową z prądem rzędu pA• na bramce pływającej gromadzi się ładunek ujemny, tworząc wysokie napięcie progowe pomiędzy źródłem a drenem uniemożliwiając efekt przewodzenia• nagromadzenie ujemnego ładunku na bramce pływającej odpowiada zapisaniu komórki pamięci
41dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Charge pump – zasada działania
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 41
• napięcie potrzebne do naładowania komórki EEPROM: 17V na bramce sterującej i 12V na bramce pływającej• konieczne jest wzmocnienie napięcia zasilającego kartę (5V) przy użyciu tzw. charge pump • napięcie na wyjściu 25V (po ustabilizowaniu ok. 17V)
42dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Rozładowywanie komórki EEPROM
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 42
• ujemny potencjał przykładany do bramki sterującej• elektrony wracają z bramki pływającej do podłoża• maleje napięcie progowe pomiędzy źródłem a drenem, umożliwiając przewodzenie
43dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Stan do jakiego przechodzi pamięć EEPROM
po rozładowaniu na skutek:
• wysokiej temperatury
• promieniowania X
• promieniowania UV
Bezpieczny stan EEPROM
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 43
44dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Nieograniczona liczba cykli odczytu, ograniczona do 100
tys. (do 1 mln) liczba cykli zapisu
Żywotność zależy od jakości tlenkowej warstwy
tunelowej
Kolejne cykle zapisu sprawiają, że część elektronów,
która przeszła z podłoża do warstwy tunelowej już do
niej nie wraca
Po osiągnięciu pewnej liczby elektronów, które utknęły w
warstwie tunelowej niemożliwe jest dalsze prawidłowe
funkcjonowanie pamięci
Użytkowanie karty w optymalnych warunkach (temp.
pokojowa, idealne napięcie zasilania) żywotność karty
może być 10 – 50 razy większa
Zużywanie pamięci EEPROM
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 44
45dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Krzywa samoczynnego rozładowania
pamięci EEPROM
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 45
• producenci dają gwarancję 10 lat, potem należy przeprogramowad pamięd
46dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Właściwie flash EEPROM
Funkcjonalność i struktura półprzewodnikowa
podobna do EEPROM
Różnice:
• mniejsza odległość między bramką pływającą a podłożem
• zapis wykorzystujący technikę „hot electron injection”
(usuwanie techniką tunelową jak w EEPROM)
• czas zapisu 30 s (EEPROM 2,5 ms)
• napięcie programowania 12 V (EEPROM 17 V)
Pamięć flash
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 46
47dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Dwie technologie NOR i NAND
NOR:
• możliwy odczyt pojedynczych komórek
• duży rozmiar
NAND:
• mniejszy rozmiar
• odczyt blokami (2 do 64kB)
Komórki typu SLC (single-level cell) - jednobitowe lub MLC (multilevel
cell) – wielobitowe (obecnie do 4 bitów)
Pamięci flash zastępują pamięci ROM skracając czas produkcji
Problemy z produkcją mikrokontrolerów z pamięcią EEPROM i flash w
tym samym chipie: EEPROM zastępowany flashem z małym
rozmiarem strony (32B) a ROM z większym (64 lub 256B)
Na kartach tylko mała pamięć ROM z boot loaderem
Pamięć flash c.d.
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 47
48dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Technologia NOR
Komórki SLC
Gwarancja trwałości zapisu 10 lat i 100 000
cykli
Rozmiar pamięci 8 do 128 B
W niektórych rozwiązaniach rozmiar pamięci 1
do 2 MB i rozmiarem strony do 64 kB, który
wpływa na ograniczenie obszaru zajmowanego
przez szyny adresową i sterowania tak, że
całość zajmuje nie więcej niż 25 mm2
Pamięć flash w KE stan obecny
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 48
49dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Przeznaczenie:
• dane przechowywane i/lub modyfikowane podczas
sesji
Wymaga zasilania (jego brak powoduje, że stan
pamięci jest nieokreślony)
Komórka zbudowana z kilku tranzystorów,
połączonych w taki sposób, że działają jak
bistabilny flip-flop
Zawsze jest to statyczna wersja pamięci
(SRAM)
RAM (random-access memory)
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 49
50dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Jest pamięcią trwałą
Struktura komórki podobna do komórki EEPROM, ale
zawierająca materiał ferroelektryczny
Jeden z najlepszych typów pamięci dla KE:
• napięcie zasilania dla programowania tylko 5V
• bardzo krótki czas zapisu 100ns
• bardzo duża liczba cykli zapisu 1010
• rozmiar zbliżony do rozmiaru EEPROM
Wady:
• destrukcyjna operacja odczytu (niezbędna natychmiastowa
operacja ponownego zapisu)
• skomplikowany proces technologiczny i mało jeszcze popularne
materiały sprawiają, że tylko nieliczni producenci mają w swojej
ofercie mikrokontrolery z pamięcią FRAM
FRAM (ferroelectric random-access
memory)
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 50
51dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
TYPY PAMIĘCI
Fotografia pamięci FRAM
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 51
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 52
POZOSTAŁE ELEMENTY
Interfejsy we/wy, zegar, CRC, RNG, DMA, MMU, akcelerator
Javy, koprocesory, kryptografia
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
52dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
53dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
POZOSTAŁE ELEMENTY
Nie wszystkie wymogi specyficzne dla kart
elektronicznych mogą być spełnione przez
standardowy sprzęt mikrokontrolera, ani teżprzez oprogramowanie
Dodatkowe komponenty sprzętowe
mikrokontrolera w dużym stopniu zależą od
docelowego zastosowania
Część tych komponentów dotyczy kwestii
bezpieczeństwa
Motywacja
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 53
54dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
POZOSTAŁE ELEMENTY
Komunikacja pomiędzy KE a otoczeniem za pośrednictwem
dwukierunkowego portu szeregowego i protokołu T=0 lub T=1
Początkowo cała transmisja zarządzana wyłącznie przez system
operacyjny:
• brak wsparcia sprzętowego
• źródło błędów transmisji
• ograniczona prędkość transmisji (ok. 115 kbit/s przy zegarze 3,5 MHz
Zastosowanie UART uniezależnia od procesora transmisję na niższej
warstwie
W najprostszych rozwiązaniach transmisja pojedynczych bajtów, w
lepszych po kilka bajtów, w najbardziej zaawansowanych bezpośrednio
z/do DMA
Początkowo nie stosowane ze względu na rozmiar dodatkowego
układu (implementacja protokołu w ROM zajmowała mniej miejsca)
Obecnie stosowane powszechnie
Komunikacja T=0 lub T=1
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 54
55dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
POZOSTAŁE ELEMENTY
Interfejs USB pozwala na transmisję danych do/z
terminala protokołem USB
Taktowanie często wymaga zewnętrznego zegara
Dodatkowy sprzęt w tym przypadku jest odpowiedzialny
za prawidłowe działanie interfejsu USB:
• Low Speed (1,5 Mbit/s) lub Full Speed (12 MB/s)
• kontrola CRC
• kodowanie i dekodowanie NRZI
• itp.
Na ogół dostarczane ze sterownikami i ich kodem
źródłówym
Komunikacja przez USB
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 55
56dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
POZOSTAŁE ELEMENTY
Interfejs MMC (MultiMediaCard) pierwotnie
zaprojektowany jako niedrogi interfejs dla kart
pamięci NAND flash
Dwie linie sterujące i 1, 2 lub 8 (rzadko) linii
danych
Możliwość bezpośredniego zapisu do określonych
obszarów pamięci (możliwość stosowania jak
karty pamięci)
Na ogół dostarczane z kodem źródłowym
przykładowej implementacji sterownika, aby
ułatwić implementację w systemie operacyjnym
Komunikacja przez MMC
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 56
57dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
POZOSTAŁE ELEMENTY
Karta SIM z interfejsem MMC z 8
liniami danych
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 57
58dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
POZOSTAŁE ELEMENTY
Interfejs SWP (Single Wire Protocol) może być używany
w telefonach komórkowych do komunikacji pomiędzy SIM
a sterownikiem NFC równocześnie z protokołem T=0
Transmisja cyfrowa:
• wysyłanie – modulacja napięciowa
• odbiór – modulacja prądowa
Full duplex
Każda ramka z sumą kontrolną CRC
Typowa konfiguracja:
• 4 32-bajtowe bufory nadawcze
• 4 32-bajtowe bufory odbiorcze
Cały protokół zaimplementowany sprzętowo
Komunikacja przez SWP
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 58
59dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
POZOSTAŁE ELEMENTY
Dwuprzewodowa magistrala
Przykładowe zastosowania:
• wyświetlacz w super kartach
• dodatkowa pamięć
Implementacja sprzętowa, według której
działa jak I2C bus master
Komunikacja przez I2C
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 59
60dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
POZOSTAŁE ELEMENTY
Dwuprzewodowa magistrala
Przykładowe zastosowania:
• wyświetlacz w super kartach
• dodatkowa pamięć
Implementacja sprzętowa, według której
działa jak I2C bus master
Komunikacja przez I2C
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 60
61dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
POZOSTAŁE ELEMENTY
Połączony przez konfigurowalny sterownik z
wewnętrznym zegarem procesora lub UART-u
Zakres 16-bitowy lub 32-bitowy (rzadko)
Mogą zliczać impulsy zegara bez udziału procesora
Mogą zliczać od pewnej wartości w dół, a po
osiągnięciu zera wygenerować przerwanie (np. do
wykrywania timeoutów)
Często jeden z timerów pełni rolę watchdoga (układ
alarmujący), który po doliczeniu do zera resetuje
procesor
Timer i watchdog
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 61
62dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
POZOSTAŁE ELEMENTY
RNG – Random number generator
Zastosowania: generowanie kluczy,
uwierzytelnianie kart i terminali
Ze względów bezpieczeństwa nie może to być
programowy generator liczb pseudolosowych
Czynniki zewnętrzne (np. temperatura, napięcie
zasilania), o ile mają wpływ na generowane
liczby, to ten wpływ nie powinien być łatwy do
odczytania
Generator liczb losowych
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 62
63dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
PROGRAMOWANIE KART ELEKTRONICZNYCH – WYKŁAD 3
POZOSTAŁE ELEMENTY
Zegar i mnożniki częstotliwości
DMA
Układ zarządzania pamięcią MMU
Akcelerator Javy
Koprocesor dla symetrycznych algorytmów kryptograficznych
Koprocesor dla asymetrycznych algorytmów kryptograficznych
System wykrywania i korekcji błędów pamięci stałej
Interfejs pamięci masowej
Moduł wieloukładowy
VSI (Systemy integracji pionowej)
Pozostałe elementy
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 63