VUTBR FEKT UAMT SE2 http://www.vutr.cz Prezentace SE2 Přpojení paměťové karty MMC k mkropočítač RCM3200 Tomáš Kreuzweser kreuzweser@kn.vutr.cz 1/10 P
Úvod Paměťové karty MultmedaCard jsou dnes praktcky nejlevnější a nejrozšířenější polovodčovou pamětí na trhu a proto je nasnadě je využít v různých embeded systémech, jako levné paměťové médum. V mé semestrální prác jsem dostal za úkol tuto paměťovou kartu přpojt k modulu Rabbt RCM3200 a vytvořt ovladače pro některý z běžně používaných souborových systémů. Jako souborový systém jsem s zvoll systém FAT, protože je běžně použtelný ve všech operačních systémech, používá se ve většně embeded zařízení a je relatvně jednoduchý. 2/10 P
Postup řešení úkolu Návrh prototypové desky Před návrhem desky plošných spojů bylo třeba prostudovat fremní materály frmy SanDsk, Rabbt semconductor a zapojení nejrůznějších pomocných součástek. Tuto desku lze rozdělt na tyto základní část: Blok napájení 3,3V je zapotřebí ka napájení modulu RCM3200 a MMC karty. Realzován je pomocí unverzálního stablzátoru LM317, krerý je cenově parametry velm výhodný. Blok napájení 5V je také řešen stablzátorem LM317. Řídící modul RCM3200 K prototypové desce je přípojen pomocí dvou 34-pnových konektorů s roztečí 2 mm. Tato rozteč je poměrně nepříjemná, protože je založená na metrckém systému a nemá žádný společný násobek s palcovým rozměry ostatních součástek. 3/10 P
Rozhraní RS232 a RS485 jsou osazeny IO převodníky frmy MAXIM a vyvedeny na pnové konektory. Rozhraní pro CF kartu využívá 50-pnový konektor, který je umístěn na spodní straně desky. Rozhraní pro MMC kartu je vyvedeno na pnové konektory. Výstup pro LCD dsplay nebyl navržen přílš šťastně pomocí 4-btové sběrnce. Pro plhodnotné využtí by bylo třeba LCD dsplay vybavt ještě spínacím tranzstorem. Sgnalzační LED dody Zelená doda sgnalzuje zapnuté napájení. Červená je pro určena pro testování. V mém případě svítí př čtení nebo zápsu na MMC. Blok dalších dgtálních vstupů / výstupů Slouží k přípojení dalších testovacích LED dod, tlačítek a podobně. Možné vylepšení pro další verz: Odstrant blok LCD dsplaye vzhledem k propracovanost ladícího systému v DynamcC je tento blok naprosto zbytečný. Odstrant blok napájení 5 V je zapotřebí k napájení LCD dsplaye a sérových rozhraní. 4/10 P
Př nahrazení IO převodníků 3,3 V ekvvalenty a odstranění bloku LCD by 5 V rozhraní nebylo zapotřebí. Rozšířt počet sgnalzačních LED dod 5/10 P
Návrh softwarové část Kvůl lepší přenostelnost, pohodlnějšímu a rychlejšímu vývoj jsem se softwarovou část rozhodl dělat jako cross-platform aplkac, kterou je možné přeložt na procesoru Z180 (Rabbt RCM3200) na počítač PC. V prvím případě program pracuje přímo MMC kartou. Na PC pracuje s mage souborem. Přetíženy jsou jednak funkce pro prác s MMC a jednak funkce pro prác s pamětí. Rozlšení platformy je řešeno pomocí nterních preprocesorových drektv překladače. Toto řešení ma tř výhody: 1. Rychlejší vývoj na PC komplace programu je mnohem rychlejší a zkomplovaný program není třeba nkam nahrávat. 2. Pohodlnější vývoj na PC na PC exstuje mnoho nástrojů na ladění programu (GDB, LINT...) a je možné přímo testovat funkčnost FAT funkcí přímo v OS. 3. Jednoduchá portace na jný hardware Stačí aby pro danou platformu byl k dspozc překladač jazyka ANSI C a přepsat platformně závslé funkce. 6/10 P
Tvorba software pro prác s MMC Tyto funkce pro svoj funkc používají hotové funkce SPI rozhraní z knhovny sp.lb. Zajšťují čtení a záps bloku na MMC kartu, čtení jednotlvých regstrů a kontrolu CRC součtů. Základní funkce: nt MMC Int(vod); vod MMC Info(vod); vod MMC Ext(vod); Další funkce: nt MMC Read CSD(CSD *csd); nt MMC Read CID(CID *cd); unsgned long MMC Get Dsk sze from CSD(vod); Podpůrné funkce: V mých zdrojových textech mají prefx MMC nebo MMC podle jednoduchost (a vhodnost) použtí pro vývojáře. Vzhedem k jejch množství je zde neuvádím. 7/10 P
Tvorba software pro prác s FAT Slouží ke čtení, zápsu, vytváření, mazání, přejmenování, přesouvání a kopírování souborů/adresářů na souborových systémech FAT16 a FAT32. Pro prác s FAT, sledování řetězů FAT, se záznamy ROOT adresáře, se záznamy klasckého adresáře. Osahuje funkce pro dlouhé názvy souborů a adresářů, hledání volných clusterů, startclusterů, pro prác s LABELem, funkce pro zjštování nejrůznějších nformací z MBR, z FSI a podobně. Je jch velký počet a proto uvedu jen některé příklady: Základní funkce: nt FAT Int(vod); vod FAT Info(vod); vod FAT Ext(vod); Alternatvy ke std. funkcím: nt fndfrst(char *cesta, ffblk *ffblk); nt fndnext(ffblk *ffblk); RFILE rfopen(char *cesta, char mode); nt rfgetc(rfile *stream); 8/10 P
vod rfclose(rfile *stream); Testovací funkce: vod dr(char *cesta); vod cat(char *cesta); unsgned long getfreespace(vod); User-frendly nterface k jným funkcím (skupnám funkcí): char *Get Label(vod); nt create dr(char *path, char *name); nt create fle(char *path, char *name); Pomocné funkce: V mých zdrojových textech mají prefx FAT nebo FAT podle jednoduchost (a vhodnost) použtí pro vývojáře. Vzhedem k jejch množství je zde neuvádím. Přdání funkcí pro prác v OS Tyto funkce zatím nejsou mpementovány. 9/10 P
Ukázkový příklad Slouží k demonstrac možností této knhovny v kombnac s mkropočítačem Rabbt RCM3200. 10/10 P