Obsługa kart pamięciowych SD, cz.1.pdf

(1270 KB) Pobierz
094-096_karty_SD_cz1.indd
KURS
Obsługa kart pamięciowych
SD, część 1
Gromadzenie i przechowywanie
danych jest zadaniem często wyko-
nywanym przez urządzenia mikro-
procesorowe. Jednym z ważniejszych
cech pamięci magazynujących dane
jest odporność na zanik zasilania.
Do niedawna powszechnie stosowano
pamięci RAM z podtrzymaniem ba-
teryjnym. Rozwiązanie to jest nadal
stosowane przy wykorzystaniu pa-
mięci SRAM wykonanych w techno-
logii CMOS. Pobierają one tak mało
prądu, że do podtrzymania zwartości
na wiele miesięcy wystarczy bate-
ria litowa 3 V (np. typu CR2032).
Pamięci SRAM są stosowane, kiedy
bardzo istotny jest czas dostępu do
danych (szczególnie zapisu), nie jest
wymagana duża pojemność i nie ma
potrzeby przenoszenia nośnika z urzą-
dzenia do urządzenia.
Innym chętnie stosowanym roz-
wiązaniem są pamięci typu EEPROM
i Flash. Szczególnie te ostatnie prze-
żywają okres burzliwego rozwoju.
Są wykorzystywane nie tylko do
gromadzenia danych, ale też jako
wielokrotnie zapisywalne pamięci
programu w mikrokontrolerach. Nie
potrzebują napięcia podtrzymującego
i wraz z rozwojem technologii skraca
się czas zapisu danych. Pamięci tego
typu mogą mieć interfejs szeregowy
(np. I 2 C lub SPI). Stosowane są wte-
dy jako pamięci konfiguracyjne, do
przechowywania niewielu, ale za to
istotnych informacji.
Flash–owe karty pamięciowe są od dawna chętnie używane nawet
w aplikacjach amatorskich do trwałego zapisywania danych. Do
tej pory największą popularnością cieszyła się do tego karta typu
MMC, jednak jej nowocześniejsza następczyni – karta SD szybko
zdobywa sobie należne jej zainteresowanie.
Wspomniany już szybki rozwój
technologii produkcji pamięci Flash
umożliwił produkowanie pamięci
o coraz większej pojemności i krótkim
czasie dostępu. Ponieważ nie wyma-
gają one napięcia podtrzymania, to
powstał pomysł, żeby umieścić je
w małej obudowie ze stykami inter-
fejsu komunikacyjnego i zasilania. Tak
powstały karty Compact Flash, MMC
i SD.
Karty SD zostały opracowane
przez 3 firmy: Matsushita Electric
Company, Toshiba Corporation, i San-
Disk Corporation. Są one naturalną
kontynuacją zaprojektowanych wcze-
śniej kart MultiMediaCard – MMC.
Produkowane obecnie karty SD
charakteryzują się dużą prędkością
zapisywania i odczytywania danych,
a ich pojemność sięga 4 GB. Są uży-
wane głównie jako pamięci masowe
w cyfrowych aparatach fotograficz-
nych, kamerach, odtwarzaczach MP3,
komputerach itp.
Karty SD mają wbudowany me-
chanizm korekcji błę-
dów zapisu i odczytu
danych. Ten mecha-
nizm może być porów-
nywany z analogicznym
rozwiązaniem stosowa-
nym w twardych dys-
kach komputerów, ale
zawiera dodatkowe roz-
wiązania niespotykane
w napędach HDD. Po
zapisaniu danych we-
wnętrzny mikrokontro-
ler karty SD przepro-
wadza procedurę wery-
fikacji, czyli odczytuje
zapisane dane i porów-
nuje je z danymi przeznaczonymi do
zapisania. Weryfikacja jest przeprowa-
dzana automatycznie bez udziału ze-
wnętrznego mikrokontrolera – hosta.
W przypadku, gdy zostanie wykryty
błędnie zapisany bit, jest on zapisy-
wany jako bit nadmiarowy bez zmia-
ny wewnętrznego adresowania bloku
danych. Jeżeli jest to konieczne, to
cały blok danych jest przepisywany
w obszar pamięci nadmiarowej. Do-
tyczy to wykrywania błędów spora-
dycznych i jest całkowicie przeźroczy-
ste dla hosta oraz nie zajmuje gwa-
rantowanej pojemności pamięci karty.
Jeśli występują błędy przy odczy-
tywaniu, to wewnętrzne algorytmy
inicjują ponowne odczytanie danych.
Gdy zabiegi te nie dają oczekiwa-
nych rezultatów, to stosowany jest
system korekcji danych ECC. ECC
koryguje błędy odczytu i skorygowa-
ny bit jest zapisywany w pamięci
nadmiarowej, tak by przy następnym
odczytaniu nie stanowił problemu.
Karty SD mogą być wyposażone
w mechanizm ograniczania poboru
energii w czasie bezczynności. Na
przykład karty SanDisk przechodzą
w stan uśpienia, jeżeli po zakończe-
niu komendy przez 5 ms nie zosta-
nie przesłana kolejna
komenda. Karta jest
wybudzania, kiedy host
zacznie wysyłać do
niej komendę.
Standard SD opisuje
dokładnie budowę karty
i protokół wymiany in-
formacji. Karta SD jest
umieszczona w plasti-
kowej obudowie o wy-
miarach 32x24x2,1 mm
pokazanej na rys. 1 .
Z boku obudowy
umieszczono mecha-
niczny przełącznik pro-
tekcji zapisu ( rys. 2 ).
Położenie przełącznika nie jest spraw-
dzane przez układy wewnętrzne karty
i nie powoduje blokowania zapisania
danych, ale tylko zwiera lub roz-
wiera dedykowany styk złącza karty.
Parametry kart CD
– Pojemność do 4 GB pamięci Flash
– Magistrala standardu SDBus lub SPI
– Zakres napięć zasilających 2,0...3,6 V
dla komend inicjalizacji i 2,7...3,6 V dla
pozostałych komend (zapisu odczytu
i kasowania)
– Częstotliwość taktowania danych
0...25 MHz
– Przesyłanie danych z prędkością do
12,5 MB/sec (magistralą SDBus)
– Korekcja zapisu i odczytu błędów pamięci
Flash
– Mechanizm protekcji praw autorskich
– Zabezpieczenie hasłem (dla wybranych
modeli)
– Mechanicznie włączana protekcja zapisu
– Programowo włączana protekcja zapisu
(czasowo i na stałe)
– Detekcja włożenia karty do złącza
– Dodatkowe komendy aplikacji (ACMD)
Rys. 1. Wygląd karty SD
94
Elektronika Praktyczna 12/2007
649300962.361.png 649300962.372.png
KURS
Rys. 2. Przełącznik protekcji zapisu
złoconych pól kontakto-
wych ponumerowanych
od 1 do 9.
Drugą część inter-
fejsu fizycznego stano-
wi standardowe złącze
SD. Każde z pól karty
po włożeniu do złącza
kontaktuje z odpowia-
dającym mu stykiem.
Standardowe złącze kar-
ty SD oprócz wyprowa-
dzeń dziewięciu styków
karty ma 2 dodatkowe wyprowadze-
nia. Wyprowadzenie 10 sygnalizuje
włożenie karty do złącza ( card detect ),
a wyprowadzenie 11 wspomnianą już
protekcję zapisu ( write protect ). Złącza
kart SD są montowane w technologii
montażu powierzchniowego ( rys. 4 ).
Styki karty i złącze SD pozwalają na
fizyczne podłączenie do karty – jest
to interfejs fizyczny.
Interfejs elektryczny definiuje za-
kres napięć zasilających, pobierany
prąd, poziomy logiczne, zależności
czasowe itp. Standardowo karty są
zasilane napięciem +3,3 V, jednak
standard dopuszcza zasilanie innymi
napięciami. Jeżeli karta będzie w cza-
sie zapisu/odczytu danych zasilana
napięciem innym niż zaleca produ-
cent, to może ulec uszkodzeniu lub
dane nie będą prawidłowo zapisywa-
ne lub odczytywane. Każda karta SD
może wykonać sekwencję inicjalizacji
(komendy CMD0,
CMD15, CMD55
i ACMD41) w peł-
nym zakresie na-
pięć zasilających
2,0...3,6 V. W trak-
cie inicjalizacji
można odczytać
z karty zakodo-
wane napięcie
zasilania i w cza-
sie dalszej pracy:
przy zapisywaniu,
kasowaniu i odczy-
tywaniu danych
musi być ustawione takie
napięcie zasilania. Napię-
cie zasilające kartę jest też
często wydrukowane na jej
obudowie.
Do poprawnego restartu
wewnętrznego mikrokontro-
lera konieczne jest, by na-
pięcie zasilania narastało
od 0 V do 2,0 V w czasie
ok. 250 ms. Ten czas jest
tak dobrany, że restart jest
poprawny z większością
układów zasilania z popularnymi sta-
bilizatorami scalonymi.
Ponieważ karta, a co za tym
idzie wewnętrzne układy magistra-
li mogą być zasilane różnymi na-
pięciami, to akceptowane poziomy
logiczne mogą mieć różne wartości.
Wyjściowy stan wysoki ma minimal-
ną wartość VOH=0,75 Vdd. Wyjścio-
wy stan niski VOL ma maksymalną
wartość 0,125 Vdd. Karta na swoich
wejściach akceptuje poziom wysoki
VIH z zakresu 0,625 Vdd...Vdd+0,3 V
i poziom niski VIL z zakresu Vss–
–0,3 V...0,25 Vdd (Vss=0 V).
Złącza kart SD są tak skonstru-
owane, że można wsuwać i wysuwać
z nich kartę bez wyłączania napięcia
zasilającego. Przy wkładaniu karty
najpierw zaczynają kontaktować sty-
ki zasilające kartę, a potem pozosta-
łe styki. Podobne rozwiązanie jest
stosowane w komputerowych kartach
PCMCIA.
Wszystkie linie sygnałowe magi-
strali SDBus i SD SPI powinny być
połączone do plusa zasilania przez
rezystory podciągające ( rys. 5 ). Zapo-
biega to powstawaniu stanów nieusta-
lonych na tych liniach po włożeniu
karty do złącza lub w chwilach, gdy
wewnętrzny interfejs magistrali prze-
chodzi w stan wysokiej impedancji.
Rezystor RWP wymusza stan wysoki
na styku 11 złącza karty sygnalizują-
cym protekcje zapisu. Podobnie styk
10 złącza karty sygnalizujący włoże-
nie karty powinien być podciągnięty
do plusa zasilania.
Z kartą SD można się komuniko-
wać w dwu trybach : SD Bus Mode
i SPI Mode . Tryby różnią się mię-
dzy sobą funkcjami wyprowadzeń
karty (nie dotyczy to zasilania)
i szerokością magistrali. Na rys. 6
pokazano topologię łączenia kart do
magistrali SD Bus. Sygnał zegarowy
i zasilanie są wspólne, ale linie da-
nych i CMD muszą być osobne dla
każdej z kart.
W trakcie inicjalizacji, komendy
są przesyłane do każdej z kart in-
dywidualnie. Można w ten sposób
wykryć, która karta jest włożona
w złącze i przypisać jej logiczny ad-
res. Zapisywane i odczytywane dane
są zawsze przesyłane indywidualnie
do każdej z kart.
W czasie pracy z magistralą SDBus
można dynamicznie konfigurować
liczbę linii danych magistrali każdej
z kart. Po włączeniu zasilania karty
do komunikacji używana jest tylko
linia DAT0 i wszystkie komendy ini-
Stan styku tego może być odczytywa-
ny przez zewnętrzny mikrokontroler
i to on decyduje, czy protekcja zapi-
su jest aktywna czy nie. Kartę łączy
się z hostem przez fizyczny interfejs
składający się ze styków karty i złą-
cza SD. Na rys. 3 pokazano rozkład
styków wyprowadzeń karty. Jest to 9
Rys. 3. Rozkład wyprowadzeń karty
SD
Rys. 4. Złącze karty SD (widok z góry)
Rys. 5. Rezystory podciągające magistrali SDBus
Elektronika Praktyczna 12/2007
95
649300962.383.png 649300962.394.png 649300962.001.png 649300962.012.png 649300962.023.png 649300962.034.png 649300962.045.png 649300962.056.png 649300962.067.png 649300962.078.png 649300962.089.png 649300962.100.png 649300962.111.png 649300962.122.png 649300962.133.png 649300962.144.png 649300962.155.png 649300962.166.png 649300962.177.png 649300962.188.png 649300962.199.png 649300962.210.png 649300962.221.png 649300962.232.png 649300962.243.png 649300962.254.png 649300962.265.png 649300962.276.png 649300962.287.png 649300962.298.png 649300962.309.png 649300962.320.png 649300962.331.png 649300962.342.png 649300962.343.png 649300962.344.png 649300962.345.png 649300962.346.png 649300962.347.png 649300962.348.png 649300962.349.png 649300962.350.png 649300962.351.png 649300962.352.png 649300962.353.png 649300962.354.png 649300962.355.png 649300962.356.png 649300962.357.png 649300962.358.png 649300962.359.png 649300962.360.png 649300962.362.png 649300962.363.png 649300962.364.png 649300962.365.png 649300962.366.png 649300962.367.png 649300962.368.png 649300962.369.png 649300962.370.png 649300962.371.png 649300962.373.png 649300962.374.png 649300962.375.png 649300962.376.png 649300962.377.png 649300962.378.png 649300962.379.png 649300962.380.png 649300962.381.png 649300962.382.png 649300962.384.png 649300962.385.png 649300962.386.png 649300962.387.png 649300962.388.png 649300962.389.png 649300962.390.png 649300962.391.png 649300962.392.png 649300962.393.png 649300962.395.png 649300962.396.png 649300962.397.png 649300962.398.png 649300962.399.png 649300962.400.png 649300962.401.png 649300962.402.png 649300962.403.png 649300962.404.png 649300962.002.png 649300962.003.png 649300962.004.png 649300962.005.png 649300962.006.png 649300962.007.png 649300962.008.png 649300962.009.png 649300962.010.png 649300962.011.png 649300962.013.png 649300962.014.png 649300962.015.png 649300962.016.png 649300962.017.png 649300962.018.png 649300962.019.png 649300962.020.png 649300962.021.png 649300962.022.png 649300962.024.png 649300962.025.png 649300962.026.png 649300962.027.png 649300962.028.png 649300962.029.png 649300962.030.png 649300962.031.png 649300962.032.png 649300962.033.png 649300962.035.png 649300962.036.png 649300962.037.png 649300962.038.png 649300962.039.png 649300962.040.png 649300962.041.png 649300962.042.png 649300962.043.png 649300962.044.png 649300962.046.png 649300962.047.png 649300962.048.png 649300962.049.png 649300962.050.png 649300962.051.png 649300962.052.png 649300962.053.png 649300962.054.png 649300962.055.png 649300962.057.png 649300962.058.png 649300962.059.png 649300962.060.png 649300962.061.png 649300962.062.png 649300962.063.png 649300962.064.png 649300962.065.png 649300962.066.png 649300962.068.png 649300962.069.png 649300962.070.png 649300962.071.png 649300962.072.png 649300962.073.png 649300962.074.png 649300962.075.png 649300962.076.png 649300962.077.png 649300962.079.png 649300962.080.png 649300962.081.png 649300962.082.png 649300962.083.png 649300962.084.png 649300962.085.png 649300962.086.png 649300962.087.png 649300962.088.png 649300962.090.png 649300962.091.png 649300962.092.png 649300962.093.png 649300962.094.png 649300962.095.png 649300962.096.png 649300962.097.png 649300962.098.png 649300962.099.png 649300962.101.png 649300962.102.png 649300962.103.png 649300962.104.png 649300962.105.png 649300962.106.png 649300962.107.png 649300962.108.png 649300962.109.png 649300962.110.png 649300962.112.png 649300962.113.png 649300962.114.png 649300962.115.png 649300962.116.png 649300962.117.png 649300962.118.png 649300962.119.png 649300962.120.png 649300962.121.png 649300962.123.png 649300962.124.png 649300962.125.png 649300962.126.png 649300962.127.png 649300962.128.png 649300962.129.png 649300962.130.png 649300962.131.png 649300962.132.png 649300962.134.png 649300962.135.png 649300962.136.png 649300962.137.png 649300962.138.png 649300962.139.png 649300962.140.png 649300962.141.png 649300962.142.png 649300962.143.png 649300962.145.png 649300962.146.png 649300962.147.png 649300962.148.png 649300962.149.png 649300962.150.png 649300962.151.png 649300962.152.png 649300962.153.png 649300962.154.png 649300962.156.png 649300962.157.png 649300962.158.png 649300962.159.png 649300962.160.png 649300962.161.png 649300962.162.png 649300962.163.png 649300962.164.png 649300962.165.png 649300962.167.png 649300962.168.png 649300962.169.png 649300962.170.png 649300962.171.png 649300962.172.png 649300962.173.png 649300962.174.png 649300962.175.png 649300962.176.png 649300962.178.png 649300962.179.png 649300962.180.png 649300962.181.png 649300962.182.png 649300962.183.png 649300962.184.png 649300962.185.png 649300962.186.png 649300962.187.png 649300962.189.png 649300962.190.png 649300962.191.png 649300962.192.png 649300962.193.png 649300962.194.png 649300962.195.png 649300962.196.png 649300962.197.png 649300962.198.png 649300962.200.png 649300962.201.png 649300962.202.png 649300962.203.png 649300962.204.png 649300962.205.png 649300962.206.png 649300962.207.png 649300962.208.png 649300962.209.png 649300962.211.png 649300962.212.png 649300962.213.png 649300962.214.png 649300962.215.png 649300962.216.png 649300962.217.png 649300962.218.png 649300962.219.png 649300962.220.png 649300962.222.png 649300962.223.png 649300962.224.png 649300962.225.png 649300962.226.png 649300962.227.png 649300962.228.png 649300962.229.png 649300962.230.png 649300962.231.png 649300962.233.png 649300962.234.png 649300962.235.png 649300962.236.png 649300962.237.png 649300962.238.png 649300962.239.png 649300962.240.png 649300962.241.png 649300962.242.png 649300962.244.png 649300962.245.png 649300962.246.png 649300962.247.png 649300962.248.png 649300962.249.png 649300962.250.png 649300962.251.png 649300962.252.png 649300962.253.png 649300962.255.png 649300962.256.png 649300962.257.png 649300962.258.png 649300962.259.png 649300962.260.png 649300962.261.png 649300962.262.png 649300962.263.png 649300962.264.png 649300962.266.png 649300962.267.png 649300962.268.png 649300962.269.png 649300962.270.png 649300962.271.png 649300962.272.png 649300962.273.png 649300962.274.png 649300962.275.png 649300962.277.png 649300962.278.png 649300962.279.png 649300962.280.png 649300962.281.png 649300962.282.png 649300962.283.png 649300962.284.png 649300962.285.png 649300962.286.png 649300962.288.png 649300962.289.png 649300962.290.png 649300962.291.png 649300962.292.png 649300962.293.png 649300962.294.png 649300962.295.png 649300962.296.png 649300962.297.png 649300962.299.png 649300962.300.png 649300962.301.png 649300962.302.png 649300962.303.png 649300962.304.png 649300962.305.png 649300962.306.png 649300962.307.png 649300962.308.png 649300962.310.png 649300962.311.png 649300962.312.png 649300962.313.png 649300962.314.png 649300962.315.png 649300962.316.png 649300962.317.png 649300962.318.png 649300962.319.png 649300962.321.png 649300962.322.png 649300962.323.png 649300962.324.png 649300962.325.png 649300962.326.png 649300962.327.png 649300962.328.png 649300962.329.png 649300962.330.png 649300962.332.png 649300962.333.png 649300962.334.png 649300962.335.png
KURS
Rys. 8. Zależności pomiędzy sygnałem zegarowym,
a danymi wejściowymi i wyjściowymi
Rys. 6. Topologia magistrali SD Bus
w tryb SPI używający
wyprowadzenia numer
7 (linia DAT0) jako li-
nii DO (dane wyjścio-
we SPI). Kiedy inicja-
lizacja jest zakończona,
to host może zmienić
liczbę linii danych
SDBus. Użycie 4 li-
nii danych umożliwia
uzyskanie najwyższej
gwarantowanej przez
producenta prędko-
ści transferu danych.
W tab. 1 zostały zesta-
wione funkcje wypro-
wadzeń karty pracują-
cej w trybie SDBus.
Tr y b S D B u s
mimo, że pozwala na
szybszy transfer jest
skomplikowany w im-
plementacji i dlatego
przewidziano możli-
wość przesyłania da-
nych szeregową ma-
gistralą SPI. Interfejs
SPI jest prosty w im-
plementacji, a poza
tym wiele mikrokon-
trolerów ma wbudo-
wany taki interfejs
sprzętowy.
W trybie SPI do
jednej magistrali zło-
żonej z linii SCLK
(zegar), DO (dane wyjściowe karty),
DI (dane wejściowe karty), można
dołączyć kilka kart ( rys. 7 ). Funkcje
wyprowadzeń karty SD pracującej
w trybie SPI zestawiono w tab. 2.
Magistrala pracuje w układzie MA-
STER – host i SLAVE – karty SD.
Aktywna karta jest wybierana wy-
muszeniem stanu niskiego na jej
linii CS w czasie przesyłania do
niej komendy. CS musi pozostać
w stanie niskim także w trakcie od-
bierania potwierdzeń i odczytywania
danych. Wyjątkiem jest czas, w któ-
rym dane są zapisywane. CS może
przejść wtedy w stan wysoki lub
pozostać w stanie niskim. W trybie
SPI wszystkie linie są jednokierun-
kowe. Nie jest możliwe wysyłanie
komend, kiedy są wysyłane lub od-
bierane dane. Dopuszczona jest tyl-
ko możliwość wysyłania komendy
stopu w trakcie wysyłania/odbiera-
nia danych multisektorowych ( multi
read/write operation ).
Na rys. 8 pokazano taktownie
danych wejściowych i wyjściowych
przez sygnał zegarowy. Dane są
ustalane w czasie, gdy linia zegaro-
wa jest w stanie niskim i przesyłane
przy narastającym zboczu sygnału
zegarowego.
Następna porcja informacji do-
tyczących interfejsu kart pamięcio-
wych SD oraz sposobu ich obsługi
będzie zamieszczona w kolejnych
częściach artykułu.
Tomasz Jabłoński, EP
tomasz.jablonski@ep.com.pl
Rys. 7. Topologia magistrali SD SPI
cjalizacji są przesyłane tą linią. Jest
to podyktowane koniecznością za-
pewnienia możliwości przełączenia
Tab. 2. Wyprowadzenia karty SD
w trybie SPI
Pin Nazwa Linia Opis
1 CS Wejście Chip select – aktywne
zero
2 DI Wejście Data In – wejście
danych
3 GND Zasilanie Masa
4 Vdd Zasilanie Zasilanie +3,3V
5 SCLK Wejście Linia zegarowa
6 GND Zasilanie Masa
7 DO Wyjście Wyjście danych Open
Drain
8 ––– ––– Tryb SPI rezerwa
9 ––– ––– Tryb SPI rezerwa
Tab.1. Wyprowadzenia karty SD w trybie SD Bus
PIN NAZWA
LINIA
OPIS
1 CD/DAT3
Wejście/wyjście Detekcja karty/linia danych D3
2
CMD
Wejście/wyjście Komendy/potwierdzenia
3
GND
Zasilanie
Masa
4
Vdd
Zasilanie
Zasilanie +3,3V
5
SCLK
Wejście
Linia zegarowa
6
GND
zasilanie
Masa
7
DAT0
Wejście/wyjście
linia danych D0
8
DAT0
Wejście/wyjście
linia danych D1
9
DAT0
Wejście/wyjście
linia danych D2
96
Elektronika Praktyczna 12/2007
649300962.336.png 649300962.337.png 649300962.338.png 649300962.339.png 649300962.340.png 649300962.341.png
Zgłoś jeśli naruszono regulamin