Hlasový výstup elektronického systému COP Sezimovo Ústí



Podobné dokumenty
Uživatelský manuál. KNXgw232

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Autor: Bc. Miroslav Světlík. Škola: Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice, Benešovo náměstí 1, příspěvková organizace

PŘÍLOHY. PRESTO USB programátor

ETC Embedded Technology Club setkání 3, 3B zahájení třetího ročníku

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Praktické úlohy- 2.oblast zaměření

FLASH PAM TI. David Richter Ing. Karel Kubata

Vestavné systémy BI-VES Přednáška 5

VELKOKAPACITNÍ PAMĚŤOVÉ ZAŘÍZENÍ PRO OBVODY FPGA

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Shrnutí Obecné Operační systém Microsoft Windows 7 Ultimate Centrální procesor

EduKitBeta Uživatelská příručka

Vestavné systémy. BI-VES Přednáška 8. Ing. Miroslav Skrbek, Ph.D.

Rozhraní mikrořadiče, SPI, IIC bus,..

IPZ laboratoře. Analýza komunikace na sběrnici USB L305. Cvičící: Straka Martin, Šimek Václav, Kaštil Jan. Cvičení 2

Karty externích médií Uživatelská příručka

Uživatelská příručka

ELEKTRONICKÉ DATOVÉ NOSIČE

Převodník Ethernet ARINC 429

Uživatelský manuál. KNX232e / KNX232e1k

Deska sběru chyb a událostí

Integrovaná střední škola, Sokolnice 496

Měřicí systémy. Obsah. Systémy složené z autonomních měřicích přístrojů a modulů Sériová rozhraní. Sériová rozhraní - pokračování 1

Základní deska (motherboard, mainboard)

ELEKTRONICKÁ ČASOMÍRA

Vzdálené ovládání po rozvodné síti 230V

DIGI Timer 8 8 kanálové stopky se záznamem dat

Počítač jako elektronické, Číslicové zařízení

Obsah. Kapitola 1 Skříně počítačů 15. Kapitola 2 Základní deska (mainboard) 19. Kapitola 3 Napájecí zdroj 25. Úvod 11

Karty externích médií Uživatelská příručka

Uživatelská příručka

Karty externích médií

Karty externích médií

Identifikátor materiálu: ICT-1-11

KAPITOLA 1 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ

Paměti Flash. Paměti Flash. Základní charakteristiky

BDVR 2.5. Návod na použití

DS-450dvrGPS Displej s navigací a kamerou (černou skříňkou) ve zpětném zrcátku

Informační a komunikační technologie

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Uživatelský manuál. KNXgal. řízení zabezpečovacích ústředen. Galaxy ze sběrnice KNX. napájeno ze sběrnice KNX. indikace komunikace na KNX

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií

Historie. Děrné štítky

Lekce 7 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

2.10 Vnější paměti. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Karty externích médií Uživatelská příručka

Paměti Rambus DRAM (RDRAM) Paměti Flash Paměti SGRAM

PK Design. Uživatelský manuál. Modul USB-FT245BM v2.2. Přídavný modul modulárního vývojového systému MVS. Verze dokumentu 1.0 (7. 11.

Uživatelský manuál. KNXgal

CA21 PŘÍRUČKA UŽIVATELE

Universální CNC stolní vrtačka

EduKit84. Výuková deska s programátorem pro mikrokontroléry PIC16F84A firmy Microchip. Uživatelská příručka

Karty externích médií

Středoškolská odborná činnost

NB Sweex Internal USB 2.0 Card Reader 16-in-1

Konektory a Kabely. Aneb zařízení integrovaná do základní desky a konektory a kabeláž pro připojení externích zařízení

Programovatelný časový spínač 1s 68h řízený jednočip. mikroprocesorem v3.0a

Manuál přípravku FPGA University Board (FUB)

Dell Studio XPS 8100: Komplexní specifikace

Osobní počítač. Zpracoval: ict Aktualizace:

DUM č. 6 v sadě. 31. Inf-7 Technické vybavení počítačů

Microchip. PICmicro Microcontrollers

PIC PROGRAMÁTOR Milan Obrtlílk 4. ročník SŠPH Uh. Hradiště

Rozšiřovací modul RS-485/RS-232. pro HLM-3xx. Technická dokumentace

Vstupní jednotka E10 Návod na použití

Karty externích médií

MBus Explorer MULTI. Uživatelský manuál V. 1.1

VINCULUM VNC1L-A. Semestrální práce z 31SCS Josef Kubiš

Karty externích médií

GENERÁTOR HLASOVÝCH ZPRÁV INT-VMG. 1. Vlastnosti. 2. Specifikace. 3. Popis činnosti

Zařízení pro měření teploty, atmosférického tlaku a nadmořské výšky

Modul LCD displeje se čtyřmi tlačítky. Milan Horkel

Principy komunikace s adaptéry periferních zařízení (PZ)

FULL HD kamera do auta s GPS a gyroskopem

BDVR HD IR. Návod na použití

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Karty externích médií

Vestavné systémy. BI-VES Přednáška 9. Ing. Miroslav Skrbek, Ph.D.

Informatika teorie. Vladimír Hradecký

NAPOJENÍ ZAŘÍZENÍ S KOMUNIKACÍ BELIMO MP-BUS NA SÍŤ AUTOMATŮ MICROPEL

IPZ laboratoře Struktura pevného disku L305 Cvičení 1 Cvičící:

Technické prostředky počítačové techniky

Metody připojování periferií BI-MPP Přednáška 1

ZOBRAZOVACÍ JEDNOTKA

Návrh konstrukce odchovny 2. dil

FULL HD kamera do auta s gyroskopem a možností GPS

uz80 Embedded Board ver. 1.0 uz80 Vestavná Řídící Deska ver. 1.0

MSA PLUS Elektrosvařovací jednotky

KTS 5XX NOVÉ GENERACE UVEDENÍ NA TRH

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Elegantní brýle se skrytou HD kamerou

Karty externích médií Uživatelská příručka

Palubní kamera s FULL HD

VÝVOJOVÁ DESKA PRO JEDNOČIPOVÝ MIKROPOČÍTAČ PIC 16F88 A. ZADÁNÍ FUNKCE A ELEKTRICKÉ PARAMETRY: vstupní napětí: U IN AC = 12 V (např.

SuperCom. Stavebnice PROMOS Line 2. Technický manuál

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Návod pro použití snímače tlaku s rozhraním IO-Link

Profilová část maturitní zkoušky 2014/2015

Úvod do mobilní robotiky AIL028

Transkript:

Hlasový výstup elektronického systému COP Sezimovo Ústí Vyšší odborná škola, Střední škola, Centrum odborné přípravy 2008 Žákovský projekt Petr Čaloun student 4. ročníku oboru Elektrotechnika

Anotace Práce se zabývá problematikou hlasového výstupu elektronického systému. V dnešní době je poměrně běžné, že elektronické zařízení, například robot, komunikuje s uživatelem lidským hlasem. Robot má v paměti nahrána slova nebo celé věty a na pokyn řídícího systému je postupně přehrává. Pokud by měl robot umět říkat jednotlivá písmena, je možné datové soubory ukládat do běžných mikroprocesorových pamětí. Při použití slov a vět je nutné použití externí paměti, například harddisk, SD kartu atd. Hlavní úlohou je navrhnout elektronické zařízení pro zvukový výstup, ovládané pomocí sériového rozhraní RS232C, například z PC. Zařízení vyčítá data odpovídající jednotlivým slovům z velkokapacitního paměťového média tvořeného SD kartou o velikosti 512 MB. Formátování dat na SD kartě odpovídá způsobu práce daty s FAT 16 a je možné ji editovat pod OS Windows jako externí HD. Dalším úkolem je vytvořit program pro PIC, který bude komunikovat s SD kartou a generovat zvukový signál na základě vyčtených dat. Po zaslání čísla souboru po sériové lince COM zařízení přehraje příslušný záznam. Délka záznamu může být od 0,1 sekundy až do 12,8 sekund. Zařízení se může použít pro roboty a další inteligentní systémy využívající lidského hlasu pro komunikaci s uživatelem. Po rozšíření nebo změně sady slov je možné zařízení použít všude tam, kde se používá hlasový výstup, tedy výstražné systémy, prodejní automaty, zabezpečovací ústředny, bankomaty a další. Annotation Work is dealing with problematic of voice output of electrical system. In modern age it is quite common for electrical device, for example robot, to communicate with user in human voice.robot has saved words or sentences in his memory and when ordered by pocessing unit, he plays them. In order for him to say single letters, it is necessary for data files to be saved in common microprocessor memories. When using words and sentences, it is necessary to use external memory, for example hard-drive, SD-card etc. Main task it to suggest electrical device for audio output controled by serial interface RS232C, for example for PC. Device reproaches data corresponding with words from high-density memory media made by SD card with size of 512 MB. Format of data at SD card corresponds with way of data works with FAT16 and it is possible to edit under OS Windows as external Hard Drive. Next task is to create program for PIC which will communicate with SD card and generate sound signal based on calculated data. After sending number of file by serial line COM device will play according record. Lenght of record can change from 0,1 seconds to 12,8 seconds. Device can be used for robots and for other inteligent systems using human voice for communication with users. After extension or change of the set of words it is possible for device to be used everywhere, where voice output is used, like warning systems, selling machines, security centrals, cashmachines atc. i

VYŠŠÍ ODBORNÁ ŠKOLA STŘEDNÍ ŠKOLA CENTRUM ODBORNÉ PŘÍPRAVY SEZIMOVO ÚSTÍ Dne: Schvalují: Výtisk č.: Počet listů: ZADÁNÍ ŽÁKOVSKÉHO PROJEKTU 1. Číslo zadání 2. Název a charakter práce (obor) Jednotka hlasového výstupu s PIC a SD kartou ovládaná pomocí COM ET4B-01/078 3a. Zadavatel a konzultant 3b. Jazyková a stylistická Mgr. Vandová Ludmila úprava Mgr. Zůbková Marie 3c. Cizojazyčné texty a anotace: 5. Řešitel (jméno, příjmení, třída, datum nar.) Obor: Elektrotechnika - konstruování s PIC Ing. Čebiš Vladimír 4. Vedoucí projektu (závěrečné práce) Ing. Čebiš Vladimír Petr Čaloun ET4B nar. 8. 9. 1988 6. Charakteristika zadávané práce projektu 1. Navrhnout a zkonstruovat hardware jednotky hlasového výstupu s PIC a SD kartou 2. Navrhnout komunikační protokol komunikující se školní robotickou sítí RoboCOP 3. Vytvořit software pro PIC umožňující vyčítání dat z SD karty, kompatibilního s FAT 16 4. Vytvořit vzorová hlasová data na PC disponující minimálně 100 slovy a předvést funkčnost 7. Požadovaný termín odevzdání 30. 03. 2008 (Pokračování na druhé straně) 8. Předpokládaný termín 9. Další formy hodnocení obhajoby projektu u maturitní 1. Odborný předmět zkoušky 2. Obhajoba u maturity 3. Český jazyk Květen 2008 4. Cizí jazyk ii

10. Požaduje se předložit 1. Zpracovaný projekt podle zadání COP v tištěné podobě včetně české a cizojazyčné anotace v rozsahu jedné strany A4 (25 35 řádek) 2. Prototyp jednotky a předvést funkčnost 3. Zpracovaný projekt podle zadání COP na CD (v PDF, Word a zdrojové soubory) 4. Zpracovanou prezentaci projektu na CD (Power Point) 5. Grafické ztvárnění projektu formou plakátu velikosti A3 (v PDF a tištěné podobě) 11. Materiální zajištění (předpokládané náklady a podíl úhrady) - Práce bude zpracována převážně v rámci výuky předmětu Praxe-konstruování s PIC - Náklady na součástky zajistí škola (cca 500,-Kč) - K dispozici je veškeré potřebné technické vybavení, včetně software školy - Tisk práce zajistí žák na své náklady 12. Zpracoval Ing. Čebiš Vladimír 13. Zadání převzal Čaloun Petr Datum 20. 10. 2007 Podpis Datum 23. 10. 2007 Podpis iii

Poděkování Žákovský projekt byl zpracován v rámci řádného ukončení 4. ročníku maturitního studia Elektrotechnika konstruování s PIC. Vedoucím práce byl Ing. Vladimír Čebiš, kterému tímto děkuji za odborné konzultace a cenné rady týkající se struktury i obsahu práce. V Sezimově Ústí 20. dubna 2008 Petr Čaloun iv

Obsah 1. ÚVOD...1 1.1 Téma a širší vymezení problematiky...1 1.2 Cíl projektu...1 2. ANALÝZA INFORMAČNÍCH ZDROJŮ...2 2.1 Popis technologie a principů...2 2.1.1 Technologie Flash...2 2.1.2 Paměťová karta...2 2.1.3 Jednočipový mikropočítač PIC...3 2.1.4 Rozhraní USART...3 2.1.5 SPI protokol...4 2.2 Školní povelová síť RoboCOP...4 2.3 Používaná řešení v technické praxi...5 2.4 Manuály a odborné publikace ke stažení...5 2.5 Internetové stránky s podobnou tématikou...5 2.6 Historie...6 2.6.1 Projekty na naší škole...6 2.6.2 Přehled paměťových karet a jejich vývoj...6 2.6.2.1 Časové uspořádání nejrozšířenějších karet...6 2.6.2.2 Postupný vývoj jednotlivých karet...6 2.6.2.3 Karty pod lupou...7 3. TEORETICKÝ ROZBOR...9 3.1 Uvedení do problematiky...9 3.2 Možná řešení...9 3.2.1 Výběr karty...9 3.2.1.1 Společné vlastnosti karet...9 3.2.2 Komunikační protokol...10 3.3 Použitá metodika...10 3.4 Princip zvoleného řešení...10 3.4.1 Komunikační protokol SPI...11 3.4.2 Inicializační proces karty...11 3.4.3 Formát zasílaných příkazů...14 3.4.3.1 Důležité příkazy...15 3.4.4 Formát přijímaných odpovědí...15 3.4.5 Data Response Token...16 3.4.6 Datové tokeny při zápisu a čtení...16 3.4.7 Data Error Token...17 3.4.8 Vyčítání dat z FAT tabulky...17 3.5 Rozměry, architektura a napájení SD karty...19 4. POPISNÁ ČÁST...21 4.1 Schéma zapojení...21 4.1.1 Popis schématu...22 4.2 Seznam součástek...22 4.3 Osazovací výkres...23 4.4 Fotografie hotového výrobku...24 4.5 Motiv plošného spoje...24 4.6 Vývojový diagram řídícího programu...25 4.7 Popis vstupních, výstupních a ovládacích bloků...26 v

4.8 Návod pro obsluhu...26 4.9 Návod pro stavbu, oživení a servis...26 5. ZÁVĚR...27 5.1 Shrnutí a zhodnocení výsledků...27 5.2 Doporučení pro další využití a rozšíření...27 DODATEK A...28 A.1 Seznam literatury...28 A.2 Seznam použitého zařízení a softwaru...28 A.3 Přílohy...29 DODATEK B...30 B.1 Zkratky a termíny...30 vi

Seznam obrázků Obrázek 2-1: Výhody Flash paměti... 2 Obrázek 2-2: Paměťové karty... 2 Obrázek 2-3: USART... 3 Obrázek 2-4: Protokol SPI... 4 Obrázek 2-5: Komunikační protokol sítě RoboCOP... 4 Obrázek 2-6: Síť RoboCOP... 5 Obrázek 2-7: Paměťové karty SD... 8 Obrázek 3-1: Označení pinů... 10 Obrázek 3-2: Časování sběrnice SPI... 11 Obrázek 3-3: Zaslání osmdesáti hodinových taktů... 11 Obrázek 3-4: Zaslání CMD0... 12 Obrázek 3-5: Zaslání CMD8... 12 Obrázek 3-6: Zaslání ACMD41... 13 Obrázek 3-7: Zaslání CMD58... 13 Obrázek 3-8: Inicializační cyklus SPI módu... 14 Obrázek 3-9: Část Boot sektoru... 17 Obrázek 3-10: Kořenový adresář... 18 Obrázek 3-11: FAT tabulka... 18 Obrázek 3-12: Fyzické rozměry SD karty... 19 Obrázek 3-13: Architektura SD karty... 20 Obrázek 4-1: Schéma zapojení... 21 Obrázek 4-2: Osazovací výkres... 23 Obrázek 4-3: Hotový výrobek... 24 Obrázek 4-4: Motiv plošného spoje 1:1... 24 Obrázek 4-5: Vývojový diagram... 25 vii

Seznam tabulek Tabulka 2-1: Postupný vývoj karet... 6 Tabulka 3-1: Vlastnosti SD a MMC karty... 9 Tabulka 3-2: Význam pinů... 10 Tabulka 3-3: Formát příkazů... 14 Tabulka 3-4: Důležité příkazy... 12 Tabulka 3-5: Formát odpovědi typu R1... 13 Tabulka 3-6: Formát odpovědi typu R2... 16 Tabulky 3-7: Formát odpovědi typu R7... 16 Tabulka 3-8: Data Response Token... 16 Tabulka 3-9: Datové tokeny při zápisu a čtení... 16 Tabulka 3-10: Data Error Token... 17 Tabulka 3-11: Struktura paměti... 17 Tabulka 3-12: Struktura Boot sektoru... 17 Tabulka 3-13: Vzorce pro výpočet důležitých adres v paměťovém prostoru... 18 Tabulka 3-14: Struktura Kořenového adresáře... 18 Tabulka 3-15: Pracovní podmínky SD karty... 20 Tabulka 4-1: Seznam součástek... 22 viii

1. Úvod 1.1 Téma a širší vymezení problematiky Práce se zabývá hlasovým výstupem elektronického systému s SD kartou. Toto zařízení má sloužit ke komunikaci s uživatelem pomocí lidského hlasu. Stále více se tento způsob komunikace uplatňuje u všech moderních zařízení a nahrazuje tak psaný text. Toto zařízení má široké využití a je možné ho použít všude tam, kde je zapotřebí sdělit uživateli jakoukoli informaci. 1.2 Cíl projektu Cílem projektu je sestrojit zařízení, které bude přehrávat uložená slova či věty z SD karty. Zařízení bude ovládané prostřednictvím PC pomocí rozhraní COM. Je také zapotřebí vytvořit protokol a ovládání pro tuto komunikaci. Dalším cílem je vytvořit program pro PIC, který bude komunikovat s SD kartou a převádět data z digitální podoby na zvukový signál. 1

2. Analýza informačních zdrojů 2.1 Popis technologie a principů 2.1.1 Technologie Flash Zařízení používá pro ukládání dat SD kartu, která je založena na technologii Flash. Tato technologie je zvláštním druhem paměti EEPROM a zahrnuje v sobě výhody několika druhů pamětí. Výhodou je náhodná přístupnost a programovatelnost paměti po jednotlivých blocích. Lze ji programovat již zabudovanou v zařízení s použitím minima pomocných obvodů. Po odpojení napájení jsou data zachována. Je to zařízení typu Solid State, které je zcela bez pohyblivých částí. Tyto paměti jsou rozměrově malé a odolné vůči vnějšímu prostředí. Používají se technologie NOR, NAND nebo nano FLASH. Obrázek 2-1: Výhody Flash paměti 2.1.2 Paměťová karta Toto zařízení, které slouží k úschově dat, se vyrábí v různých velikostech, typech a verzích. Hlavními rysy jsou malé rozměry, velká kapacita, malá spotřeba a nízká cena. Podrobněji se paměťovými kartami zabývám v oddílu 2.5.2. Obrázek 2-2: Paměťové karty 2

2.1.3 Jednočipový mikropočítač PIC Tyto mikropočítače se vyznačují hlavně tím, že jsou kompletně integrovány do jednoho pouzdra a pro činnost potřebují pouze napájení. Používají se k řízení vestavěných systémů. V nabídce jsou 8 bitové až 32 bitové mikropočítače PIC. Jsou rozděleny do několika rodin, například PIC16 MCU nebo PIC18 MCU. Liší se od sebe zejména velikostí pamětí, použitou technologií, počtem pinů, rychlostí CPU nebo podporovanými moduly. 2.1.4 Rozhraní USART USART je synchronní a asynchronní sériové rozhraní, které se využívá pro komunikaci mezi přístroji. Pro komunikaci jsou zapotřebí jen tři vodiče z devíti, a to Tx, Rx a GND. Následující obrázek 2-3 zobrazuje zapojení USARTu pro komunikaci mezi mikroprocesorem a počítačem. Obrázek 2-3: USART 3

2.1.5 SPI protokol SPI je sériové periferní rozhraní, které se používá ke komunikaci mezi mikroprocesory a ostatními integrovanými obvody. Komunikace je realizována pomocí společné sběrnice. Jsou zde použity čtyři vodiče. Vodič CS aktivuje zařízení typu slave a s hodinovým signálem na vývodu CLK se spustí komunikace mezi vývody SPI a SDI. Na následujícím obrázku 2-3 je jedno z možných zapojení SPI rozhraní. Obrázek 2-4: Protokol SPI 2.2 Školní povelová síť RoboCOP Architektura sítě je založena na spojení master slave. To znamená, že master, jako řídící zařízení, ovládá ostatní zařízení typu slave, která jsou mu podřízena. Standardně je v síti jedno zařízení typu master a určitý počet zařízení typu slave, který závisí na technických možnostech sítě. Typickým zařízením master je PC, slave může reprezentovat například sedmi-segmentový displej. Zařízení typu master jsou osazena vidlicí a zařízení typu slave jsou osazena zásuvkou. Komunikace je založena na odeslání adresového bytu a pak jednoho až sedmi datových bytů. Adresový a datový byte odlišuje nejvyšší bit, jak znázorňuje následující obrázek. Obrázek 2-5: Komunikační protokol sítě RoboCOP 4

Obrázek 2-6: Síť RoboCOP 2.3 Používaná řešení v technické praxi V praxi se pro ukládání a následnou reprodukci zvuku setkáváme s integrovanými EEPROM či FLASH paměťmi, které se nacházejí přímo na základní desce. Princip práce s těmito paměťmi je však obdobný. V praxi se dává přednost spíše menším rozměrům a malé poruchovosti zařízení. Proto se také využívá více těchto pamětí, namísto velkých a mechanicky náchylných Hard-disků. 2.4 Manuály a odborné publikace ke stažení Hlavním zdrojem informací byl manuál vydaný od SD Card Association [6]. Dalším zdrojem byly publikace vydané firmou Microchip [3-5]. Poslední část tvoří odborné publikace, jejichž odkazy jsou uvedeny na stránkách tohoto projektu [1]. Převážná většina podobných publikací však nešla využít, protože jsou zaměřeny pouze na kartu MMC. 2.5 Internetové stránky s podobnou tématikou Podobná zařízení, která jsou vytvořena spíše pro vývoj než jako koncový produkt, jsou nabízena k zakoupení na zahraničních internetových stránkách spolu s programem pro jejich ovládání. Jejich a další odkazy jsou také umístěny na stránkách projektu [1]. 5

2.6 Historie 2.6.1 Projekty na naší škole Na naší škole se již delší dobu vytváří povelová síť RoboCOP. Tato síť je řízena jedním hlavním masterem, například počítačem, a je schopna ovládat dalších 128 zařízení podporujících tento protokol. Již byla vytvořena řada zařízení, která mohou komunikovat s touto sítí. 2.6.2 Přehled paměťových karet a jejich vývoj 2.6.2.1 Časové uspořádání nejrozšířenějších karet 1990 - PCMCIA 1994 - Compact Flash (CF) 1995 - Smart Media (SM) 1997 - MultiMediaCard (MMC) 1998 - Memory Stick (MS) 1999 - Secure Digital (SD) 2002 - xd - Picture Card 2.6.2.2 Postupný vývoj jednotlivých karet Compact Flash (CF) 1994 Compact Flash (CFII) 1998 Smart Media (SM) 1995 MultiMediaCard (MMC) 1997 Reduced Size MultimediaCard (RS-MMC) 2003 MultiMediaCard mobile (MMCmobile, DV-RS-MMC) 2005 MultiMediaCard plus (MMCplus) 2005 MultiMediaCard micro (MMCmicro) 2005 Memory Stick (MS) 1998 Memory Stick Duo (MSD) 2001 Memory Stick PRO (MSP) 2003 Memory Stick PRO Duo (MSPD) 2003 Memory Stick Micro M2 (M2) 2006 Memory Stick PRO-HG Duo (MSPDX) 2006 Secure Digital (SD) 1999 Secure Digital Card mini (minisd) 2003 Secure Digital Card micro (microsd) 2005 Secure Digital High Kapacity (SDHC, SD2) 2006 Secure Digital High Kapacity mini (minisdhc) 2007 Secure Digital High Kapacity micro (microsdhc) 2007 xd - Picture Card (xd) 2002 xd cards M 2005 xd cards H 2005 Tabulka 2-1: Postupný vývoj karet 6

2.6.2.3 Karty pod lupou Prvním představitelem paměťových karet jsou karty nazývané CompactFlash, které vznikly v roce 1994. Tento typ byl poprvé specifikován a vyroben firmou SanDisk. Pro přenos dat je zde využíváno paralelní komunikace SATA (serialata). Compact Flash karty se rozdělují na dva typy, a to na CF I, které mají šířku 3.3 mm, a CF II, které disponují šířkou 5mm. Specifikovány jsou rychlosti karet CF, CF2.0 (CF+/CF High Speed), CF3.0 a CF4.0. Posléze vznikla také asociace s názvem Compact Flash Associaton (CFA), která dohlíží na vývoj a dodržování standardů. Druhým typem paměťové karty vyráběné v roce 1995 a představené firmou Toshibou je karta s názvem Smart Media. Její prvotní název byl Solid State Floppy Disk Card (SSFDC). Formát této karty je založen na ATA a DOS file standardu. SM karta je dostupná v kapacitách od 2 do 128MB. Používala se hlavně v kamerách. Dnes ji můžeme vidět v počítačích, které v sobě mají zabudovaný příslušný slot. Za jejího nástupce se pokládá xd karta, není však kompatibilní s SM kartou. Dalším nováčkem na trhu v roce 1997 byla MultiMediaCard, jejímž tvůrcem byly firmy Siemens AG a SanDisk. Tato karta je ještě menší a pevnější než karta SM. MMC-čka jsou také kompatibilní se slotem pro SD karty, pokud má daný přístroj příslušný firmware. Tato karta se dnes dodává s maximální kapacitou 8GB. V dalších letech následovalo ještě pět typů této karty, které se liší především svou velikostí (e-mmc), kapacitou a přenosovou rychlostí. V roce 1998 přišla na trh karta s názvem Memory Stick od firmy Sony. Tato karta byla delší a tlustší než předcházející, to ji ale přidalo na odolnosti. V následujících letech byly vytvořeny další menší typy této karty, které se využívají převážně u výrobků firmy Sony. Rok 1999 byl rokem karty Secure Digital vyrobené pod štítkem firmy Matsushita, Sandisk a Toshiba. V podstatě je to vylepšená MMC karta, jen o něco širší. Vyznačuje se vyšší přenosovou rychlostí, podporou ochrany digitálních nahrávek a podobně jako u MS karet má ochranu proti přepsání. Také jako u většiny jiných karet vývoj pokračoval dál a vznikly další typy s menšími rozměry a větší kapacitou. V poslední době přibyl typ SDIO. V případě, že nějaké zařízení, například PDA, disponuje SD slotem a firmwarem pro SDIO karty, tak můžete připojit do tohoto slotu také bluetooth, scanner či GPS a spoustu jiných zařízení. Poslední karta nazývaná xd nebo také Picture card přišla v roce 2002. U jejího zrodu stály společnosti Olympus a Fujifilm. Pro tyto společnosti je vyrábí Toshiba Corporation a Samsung Electronics. Rozměrově jsou menší než standardní velikost ostatních karet, dnes již však nejsou nejmenším paměťovým médiem na trhu díky stálému vývoji ostatních typů karet. xd karta je patentovaný formát, stejně tak jako karta Memory Stick. Chybí tak veřejná dokumentace či popis provedení. To však neplatí pro formáty SD, MMC či CompactFlash. 7

Obrázek 2-7: Paměťové karty SD 8

3. Teoretický rozbor 3.1 Uvedení do problematiky Abychom mohli komunikovat s SD kartou potřebujeme k tomu vhodný mikroprocesor, který podporuje protokol karty. Zároveň musí podporovat modul UART pro komunikaci s počítačem, PWM pro přehrání zvuku a jeho taktovací frekvence musí být nejméně 20MHz. 3.2 Možná řešení 3.2.1 Výběr karty V úvahu přicházejí tři typy karet, a to CF, SD nebo MMC. Karta CF je však příliš velká a není kompatibilní s jiným typem karty, proto se zaměříme pouze na kartu SD a MMC, které mohou mít společný slot. 3.2.1.1 Společné vlastnosti karet SPI Protokol Výběr módu Ochrana při přenosu dat Čtecí/zapisovací operace a časování Mazací a zapisovací Protect Management Čtení CID/CSD registru Resetovací sekvence Hodinový signál Rozdělení paměťového pole Formát příkazu/odpovědi Vlastnost Secure Digital Card Multimedia Card Rozměry [mm] 32 24 2.1 32 24 1.5 DRM Ano ano Čip kontrolér Ano Ano Ochranný přepínač proti přepsání Ano Ne Max. velikost paměti, MB 32768 8192 Teoretická max. velikost paměti 128 GB 128 GB Max. rychlost čtení, MBytes/s 20 20 Max. rychlost zápisu, MBytes/s 20 20 Počet čtení/zápisů 1 2,000,000 2,000,000 Technologie NAND NAND Operační napětí 3.3 3.3 Controller chip Ano Ano Počet pinů 2 9 7 (1) Hodnota se může lišit podle výrobce. (2) Záleží na typu karty, viz obrázek 2-7. Tabulka 3-1: Vlastnosti SD a MMC karty 9

3.2.2 Komunikační protokol Jsou dva možné způsoby, jak řídit kartu. První je pomocí protokolu SD, který využívá paralelní nebo sériovou komunikaci. Druhý způsob je pomocí protokolu SPI, využívající sériovou komunikaci. Pin SD Mód SPI Mód Název Popis Název Popis 1 CD/DAT3 Detekce karty / Datový vodič [Bit 3] CS Výběr čipu 2 CMD Příkaz / Odpověď DI Vstupní data 3 VSS1 Uzemnění VSS1 Uzemnění 4 VDD Napájecí napětí VDD Napájecí napětí 5 CLK Hodinový signál SCLK Hodinový signál 6 VSS2 Uzemnění VSS2 Uzemnění 7 DAT0 Datový vodič [Bit 0] DO Výstupní data 8 DAT1 Datový vodič [Bit 1] rezervováno 9 DAT2 Datový vodič [Bit 2] rezervováno Tabulka 3-2: Význam pinů Obrázek 3-1: Označení pinů 3.3 Použitá metodika Pro tento projekt jsem se rozhodl použít kartu SD, protože její slot podporuje také kartu MMC. Jako komunikační protokol jsem si vybral protokol SPI, který podporuje také mikroprocesor PIC. 3.4 Princip zvoleného řešení Hlavní část zařízení tvoří mikropočítač PIC 16F887, který vše řídí. Nedílnou součástí je také paměťová karta typu SD, sloužící pro ukládání zvukových souborů. Mikropočítač se stará o komunikaci mezi počítačem a paměťovou kartou. Dále má za úkol převádět získaná data z SD karty na zvukový signál pomocí modulu PWM. Díky tomuto modulu zařízení disponuje audio výstupem. Poslední částí zařízení je MAX232 pro převod logických úrovní. 10

3.4.1 Komunikační protokol SPI Tento komunikační protokol využívá celkem tří vodičů a navíc jeden k výběru karty. Obrázek 3-2: Časování sběrnice SPI 3.4.2 Inicializační proces karty Karta má simplicitně nastaven SD mód. Pro přechod do SPI módu musíme na signál CS přivést neaktivní úroveň. Poté provedeme 80 hodinových taktů na sběrnici SPI. Obrázek 3-3: Zaslání osmdesáti hodinových taktů 11

Následuje nastavení CS signálu na aktivní úroveň. První příkaz, který zasíláme, je CMD0, poté se dostáváme do SPI módu. Tento příkaz již nelze opakovat, pouze po zavedení nové inicializace. Hodnota odpovědi musí být 0x01, jiná hodnota indikuje chybu. Obrázek 3-4: Zaslání CMD0 Následuje nově přidaný příkaz CMD8, který zjišťuje podporu multiple voltage ranges a kontroluje podporu napájecího napětí. Pokud dostaneme správnou odpověď, znamená to, že vložená karta je verze číslo 2. či pozdější. Špatná odpověď může znamenat starší verzi SD karty či MMC kartu. Obrázek 3-5: Zaslání CMD8 Po získání správné odpovědi můžeme zaslat příkaz CMD58 pro získání OCR, tento příkaz však není povinný. Další příkaz je ACMD41, který se opakuje do té doby, dokud nedostaneme odpověď 0x00. 12

Obrázek 3-6: Zaslání ACMD41 Poté již musíme odeslat CMD58 pro získání CCS bitu. Tento bit nám říká, jestli vložená karta je typu High Capacity či Standard Capacity. Obrázek 3-7: Zaslání CMD58 Po získání odpovědi je dokončena inicializace SD karty. Doposud byl hodinový signál nastaven do frekvence 400KHz. Nyní můžeme nastavit frekvenci na maximum. Po inicializaci se většinou posílá příkaz CMD16, který nastaví délku datového bloku, se kterým budeme číst a zapisovat data. Na následujícím obrázku je zobrazen vývojový diagram celé inicializace. 13

Obrázek 3-8: Inicializační cyklus SPI módu 3.4.3 Formát zasílaných příkazů Každý zasílaný příkaz má délku 6 bajtů. Následující tabulka zobrazuje jeho strukturu. Pozice bitu 47 46 [45:40] [39:8] [7:1] 0 Šířka (bitů) 1 1 6 32 7 1 Hodnota 0 1 X X X 1 Popis start bit stálý bit číslo příkazu argument CRC7 stop bit Tabulka 3-3: Formát příkazů Každý příkaz začíná start bitem a poté následuje vysílací bit. Další bity, kromě stop bitu, jsou různé. Příkazy mohou být kontrolovány CRC součtem, tuto funkci jsem však nepoužil. Příklad zaslání příkazu pro vyčtení sektoru: CMD17 (argument=3d000h) --> 01 010001 00000000000000111101000000000000 1001010 1 Pro zaslání jakéhokoli příkazu ACMD se musí nejprve odeslat příkaz CMD55. Příklad zaslání příkazu ACMD41: CMD55 (argument=0h) --> 01 110111 00000000000000000000000000000000 1001010 1 ACMD41(argument=FF00000h) --> 01 110111 00001111111100000000000000000000 1001010 1 14

3.4.3.1 Důležité příkazy Příkaz Argument Typ Zkratka Popis CMD0 Žádný R1 GO_IDLE_STATE CMD8 [31:12] Reservované bity [11:8] Napájecí napětí (VHS) R7 SEND_IF_COND Resetuje kartu a nastane klidový stav Pošle stav rozhraní SD karty CMD16 [31:0] Délka bloku R1 SET_BLOCKLEN Nastaví velikost bloku dat CMD17 [31:0] Adresa dat R1 READ_SINGLE_BLOCK Přečte blok o velikosti podle CMD16 CMD24 [31:0] Adresa dat R1 WRITE_BLOCK Zapíše blok o velikosti podle CMD16 CMD55 Žádný R1 APP_CMD Další příkaz bude ACMDxx CMD58 Žádný R3 READ_OCR Přečte registr OCR ACMD41 Žádný R1 SD_SEND_OP_COND Aktivuje inicializační proces karty Tabulka 3-4: Důležité příkazy 3.4.4 Formát přijímaných odpovědí Response R1 je obsažen ve všech odpovědích a je rozdělen na Response R1A a R1B. R1A je popsán v následující tabulce. Response R1B je stejný až na nultý bit, který může být v tomto případě proměnný. Nulová hodnota indikuje stále probíhající inicializaci a jednička indikuje připravenost pro další příkaz. Bajt Bit Chyba Definice 7 Start bit Nastaven vždy v 0 6 Chyba parametru Parametr příkazu byl mimo rozsah 1 5 Chyba adresy Nezarovnaná adresa vzhledem k délce komunikačního bloku 4 Chyba Erase Sequence Nastala chyba při sekvenci příkazů mazání 3 Chyba CRC během komunikace Špatný součet CRC při posledním příkazu 2 Chybný příkaz Byl přijat neexistující příkaz 1 Reset mazání Mazání nebylo dokončeno 0 Idle stav Karta je v idle stavu a provádí se inicializace Tabulka 3-5: Formát odpovědi typu R1 15

Response R2 má dva bajty a je odpovědí na příkaz CMD13. První bajt je stejný jako response R1 a za ním následuje bajt, který je popsaný v následující tabulce. Bajt Bit Chyba Definice 7 Mimo rozsah Parametr byl mimo rozsah nebo se host pokoušel změnit ROM 6 Chyba parametru mazání Chybný výběr, sektor nebo skupina pro mazání 5 Porušení ochrany zápisu Příkaz se pokoušel zapisovat do chráněného bloku 1 4 ECC karty selhalo Byl použit kód opravy chyb, který selhal 3 Chyba karty Chyba vnitřního kontroléru karty 2 Neznámá chyba Během operace se vyskytla neznámá chyba 1 Ochrana zápisu Tento bit je nastaven při pokusu o zapisování do chráněného sektoru 0 Karta je zamčena Bit indikující zamknutou kartu Tabulka 3-6: Formát odpovědi typu R2 Response R3 je odeslán na příkaz CMD58. Začíná prvním bajtem stejným jako R1 a poté následují 4 bajty obsahující OCR. Response R5 a R6 jsou rezervovány pro SDIO karty. Response R7 je odpověď pro příkaz CMD8. Začíná response R1, další bajty jsou popsány v následující tabulce. Bajt Bit Definice 1 31-28 Verze příkazu 1-3 27-12 Rezervované bity 3 11-8 Voltage accepted 4 7-0 Check patter Tabulky 3-7: Formát odpovědi typu R7 3.4.5 Data Response Token Každý datový blok zapsaný na kartu je kontrolován pomocí Data response token. Je dlouhý jeden bajt a má následující strukturu. Bit Definice 7-5 Nepoužito hodnota XXX 4 Stálý bit s hodnotou 0 010 - Data přijata a v pořádku zapsána 3-1 101 - Data byla odmítnuta kvůli chybě CRC 110 - Data byla odmítnuta kvůli chybě zápisu 0 Stálý bit s hodnotou 1 Tabulka 3-8: Data Response Token 3.4.6 Datové tokeny při zápisu a čtení Příkazy čtení a zápisu jsou spojeny s datovými tokeny, přes které data přijímáme či vysíláme. Mají následující formát. Bajt Definice 1 Začátek bloku s hodnotou 0xFE 2-513 Uživatelská data 514-515 CRC součet Tabulka 3-9: Datové tokeny při zápisu a čtení 16

3.4.7 Data Error Token Pokud selže čtení dat z paměti a karta není schopna je vyčíst, tak pošle data error token. Tato odpověď má 1 bajt a je popsána v následující tabulce. Bit Definice 7-4 Nulové hodnoty 3 Parametr byl mimo rozsah nebo se host pokoušel změnit ROM 2 Byl použit kód opravy chyb, který selhal 1 Chyba vnitřního kontroléru karty 0 Během operace se vyskytla neznámá chyba Tabulka 3-10: Data Error Token 3.4.8 Vyčítání dat z FAT tabulky Následující tabulka zobrazuje strukturu paměti. Popis Master Boot rekord Nevyužité místo Boot sektor Nevyužité místo Alokační tabulka 1 Alokační tabulka 2 Kořenový adresář Datová oblast Tabulka 3-11: Struktura paměti Pro vyčítání dat si musíme nejdříve vypočítat několik hodnot, které nám udávají, na jaké adrese začíná boot sektor, první FAT tabulka, kořenový adresář a další důležité části paměti. První část paměti zaujímá Master Boot Record. Obsahuje informace o oddílech paměti. Pokud přečteme nultou adresu paměťové karty, zjistíme, že již čteme boot sektor, ve kterém se nacházejí všechny potřebné hodnoty. Tyto části jsou zobrazené v následující tabulce. Ofset Délka Popis Bh 2B Velikost sektorů v bajtech Dh 1B Počet sektorů na klůstr Eh 2B Počet sektorů mezi boot record a FAT1 10h 1B Počet alokačních tabulek FAT 11h 2B Počet vstupů do kořenového adresáře 16h 1B Počet sektorů v jedné FAT Tabulka 3-12: Struktura Boot sektoru Obrázek 3-9: Část Boot sektoru 17

Pro procházení obsahu uložených souborů musíme nejprve vypočítat začátek první FAT a následně začátek root adresáře. Poslední vzorec je na výpočet začátku datové oblasti. Výpočet Vzorec Výpočet FAT1 Adresa boot + velikost sektoru * počet rezervovaných sektorů Výpočet root adresáře Začátek FAT1 + velikost sektoru * počet sektoru ve FAT * počet FAT Výpočet adresy dat Začátek kořenovéh oadresáře + počet vstupů do root * 32 Tabulka 3-13: Vzorce pro výpočet důležitých adres v paměťovém prostoru Každý soubor či adresář má v kořenovém adresáři 32 bajtů. Důležité části jsou zobrazeny v následující tabulce. Ofset Délka Popis 0h 8B Název položky +8h 3B Přípona položky +Bh 1B Atribut souboru +1Ah 2B První cluster souboru nebo adresáře +1Ch 4B Délka souboru Tabulka 3-14: Struktura Kořenového adresáře Na obrázku 3-9 je zobrazen jeden soubor v kořenovém adresáři. Obrázek 3-10: Kořenový adresář FAT tabulka obsahuje adresy clusterů, které se nacházejí v datové oblasti paměťové karty. Pokud bychom chtěli přehrát soubor BET, musíme přečíst adresu prvního clusteru, která je uložena v kořenovém adresáři. V tomto případě je to druhý cluster. Následně vyčteme adresu, která je uložena na druhém clusteru ve FAT tabulce. Takto bychom pokračovali dokud by jsme nenarazili na hodnotu 0xFFFF. Tato hodnota znamená konec souboru. Následující obrázek zobrazuje FAT tabulku. Všimněte si, že adresy na sebe navazují, pokud to tak je znamená to, že soubor není fragmentovaný. Pokud by byly clustery různě rozmístěné znamenalo by to, že soubor je fragmentovaný. Obrázek 3-11: FAT tabulka 18

3.5 Rozměry, architektura a napájení SD karty Obrázek 3-12: Fyzické rozměry SD karty 19