63
dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 Wykład 3: Mikrokontrolery kart elektronicznych

Wykład 3: Mikrokontrolery kart elektronicznychb3ad%203.pdf · RNG, generator and CRC coprocessor Wyraźnie widoczne pięć wyprowadzeńdo podłączenia styków modułu Procesory

Embed Size (px)

Citation preview

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