Článek popisuje, proč je výhodné umístit operační systém i kód aplikace na paměťovou kartu microSDHC. Následně vysvětluje možnosti poškození paměťových karet a jaký vliv má toto poškození na operační systém. Ukážeme si, jak inovativní řešení flash paměti dokáže předcházet poškození karet. Tím se použití karet stává mnohem spolehlivější a efektivnější.
Proč používat vestavěný operační systém
IoT aplikace slouží k měření dat, které se následně přenesou do nadřazeného systému k podrobnějšímu zpracování a analýze. Pokud koncový bod dokáže provést částečnou analýzu naměřených dat, nemusí se tolik dat přenášet bezdrátovou formou do nadřazeného systému. Tím ušetříme drahocennou energii baterie a nebudeme zbytečně zatěžovat komunikační linku. K tomu je potřeba, aby koncový bod byl vybaven mikrokontrolérem s dostatečným výkonem a operačním systémem, který dokáže tyto složité operace provádět. Samozřejmě to přináší vyšší požadavky na použitý mikrokontrolér jako je vyšší rychlost hodin a více programové paměti.
Komerční nebo otevřený zdrojový kód vestavěného operačního systému může mít výhodu předem otestovaného kódu, který zřídka potřebuje aktualizaci. Například dostupné vestavěné operační systémy Linux mohou být aktualizovány pouze čtvrtletně nebo pouze kvůli záchranné bezpečnostní záplatě. Vestavěný operační systém a požadovaný kód aplikace mohou vyžadovat až 8 GB paměti, a protože operační systém je zřídka aktualizován, může být pohodlnější ho ukládat na paměťovou kartu microSDHC, která je ručně (fyzicky) aktualizována technikem. Technik při aktualizaci snadno nahradí stávající kartu o velikosti 4 Gbyte rychlejší a větší kartou (obrázek 1).
Obrázek 1: Paměťová karta microSDHC S-140u třídy 10, která podporuje rychlosti až 104 MByte / s, dostatečně rychlá pro vysokorychlostní přístup k programové paměti. (Zdroj obrázku: Swissbit)
Uložení gigabajtů vestavěného operačního systému na paměťovou kartu microSDHC NAND flash, která je aktualizována fyzicky výměnou má několik výhod oproti paměti flash aktualizované přes bezdrátovou síť. V bezdrátové síti může aktualizace 4 GB vestavěného operačního systému vytížit komunikaci natolik, že může docházet k problémům při sběru potřebných dat. Navíc doba potřebná k aktualizaci je značná a pokud je zařízení bateriové tak tato aktualizace nepřichází v úvahu. Bezdrátová aktualizace vyžaduje také kartu microSDHC, která je dvakrát větší než běžná velikost, neboť potřebuje dostatek místa pro uložení nového operačního systému. Až se dokončí přenos aktualizovaného systému zahájí se samotný upgrade v zařízení. Než se upgrade dokončí musí se stále zálohovat stávající systém a v případě výpadku energie se zařízení restartuje do původního operačního systému.
Nejběžnější komerční využití karet je multimediální ukládání pro mobilní zařízení. Zatímco vícenásobné bitové chyby ve videu nebo ve zvukovém souboru si běžný uživatel nemusí všimnout, chyba jednoho bitu v kritickém místě operačního systému může způsobit úplné selhání celého systému.
Flash paměť nemá neomezenou životnost. Každá operace zápisu do paměti flash snižuje životnost buňky. Každá specifikace paměti polovodičových pamětí uvádí omezený počet cyklů mazání / zápisu. Jakmile se paměťová buňka blíží této hranici, je více a více pravděpodobné, že nepřijme nový stav. K zabránění poškození paměťové buňky způsobené zápisem se nazývá tzv. rovnoměrné opotřebení. Namísto zápisu na stejné místo, jsou zápisy rovnoměrně rozloženy po celém paměťovém poli polovodiče. Tím se zajistí rovnoměrné rozdělení zápisů v paměti flash. Mikrokontrolér sice zapisuje do stejného místa, ovladač flash paměti mapuje toto uložení na různá místa v paměti.
Jak dochází k chybám při čtení
Soubory operačního systému se mnohem častěji čtou než uložená data. V některých případech mohou být základní soubory čteny neustále, a to může způsobit bitové chyby. Flash paměť je uspořádána do bloků a každý blok obsahuje několik stránek. Bloky jsou nejmenšími částmi paměti, které lze vymazat, zatímco stránky jsou nejmenšími částmi paměti, které lze číst nebo naprogramovat. Běžná velikost bloku je 256 KBytů a obsahuje 64 stran po 4 Kb. Každá stránka také obsahuje dalších 64 bajtů, které se používají pro opravný kód chyb (ECC) a pro uložení počtu mazání či logiku k překladu fyzické informace.
Během operace rychlého čtení stránky dat se na celý blok, ke kterému stránka patří, použije malé čtecí napětí, i když se čte pouze jeden bajt na stránce. Toto malé napětí se dostává také do okolních stránek v bloku. To může přenést elektrony do buněčných izolačních vrstev, podobně jako při programování buňky, což je označováno jako "měkké programování". Opakované použití malého čtecího napětí na stejném bloku může eventuálně narušit programování(zápis) stránek, které čteny vůbec nebyly. Časem to může vést až ke změně stavu sousedních buněk na jinou hodnotu.
Zatímco většina NAND flash microSDHC karet má nějakou formu opravy chyb, počet chyb způsobených měkkým programováním může být tak vysoký, že může dosáhnout kritické úrovně, která již nemůže být opravena, což má za následek, že mikrokontrolér čte jinou hodnotu a tím dojde k selhání sytému.
Tyto bitové chyby se označují jako chyby při čtení (read disturb error). Single level cell (SLC) karty mají kritickou hranici jeden milion čtení a paměťové karty multi levels cell (MLC) mají hranici 100 000 čtení, než dojde k chybě při čtení. Pro flash paměti je chyba poruchy při čtení považována za tak vzácnou, že tyto údaje nejsou ani uvedeny v technických listech.
Použijte RDM, abyste zabránili chybám při čtení
Aby nedošlo k chybám při čtení, společnost Swissbit vyvinula funkci nazvanou Read disturb Management(RDM). Řídicí jednotka flash karty sleduje počet čtecích operací pro každý blok. Když blok dosáhne interně definovaného počtu operací čtení, řadič přesune data do nového bloku, podobně jako při rovnoměrném rozložení opotřebení použitém pro zápis. Je-li to nutné, tak během zápisu do nového bloku korekce chyb (ECC) opraví poškozená data. RDM je implementována v paměťové kartě microSDHC SBSD8192N1BM1MT-I-QG-221-STD 8 Gbyte S-450u UHS-I třídy 10. Je navržen speciálně pro průmyslové aplikace využívající embedded OS. S-450u má dostatek místa pro vestavěný operační systém Linux i kód aplikace. V režimu SDR104 podporuje S-104u datový přístup o rychlosti až 104 Mbytes / s.
Spuštění operačního systému na kartě microSDHC
Jak bylo zmíněno dříve, karty microSDHC se obvykle používají pouze jako datová paměť. Takže většina mikrokontrolérů s Harvard architekturou podporují přístup pouze k mikroSDHC kartám jako k datové paměti. Stávající řešení spočívá v přečtení karty microSDHC a přesunutí dat do paměti RAM, kde se potom spustí daný kód. Nejen že čip RAM přináší další náklady na velikost desky, ale program je omezen na velikosti paměti RAM. Karty MicroSDHC jsou schopny pracovat v režimu SD nebo režimu SPI.
Pro propojení mikrokontroléru s kartou microSDHC S-450u jako programové paměti, vybraný mikrokontrolér musí podporovat jeden ze dvou protokolů sběrnice microSDHC:
SD režim
Rozhraní se skládá ze šesti signálů: čtyř bitů dat (DAT [0-3]), hodin (CLK) a obousměrného signálu Command / Response (CMD). Data jsou přenášena současně čtyřmi bity a poskytují nejrychlejší rychlost provádění programu. Hostitelský řadič nebo mikrořadič poskytuje hodiny pro kartu microSDHC.
Obrázek 2: Připojení ke kartě microSDHC pomocí režimu SD používá (Zdroj obrázku: Digi-Key Electronics)
Konfigurovatelné rozhraní SPI s podporou eXecute In Place (XIP)
To umožňuje spouštět kód z karty tím, že přistupuje ke kartě microSDHC přes rozhraní SPI a poskytuje rychlý přenos dat. XIP mapuje paměť karty do programového paměťového prostoru mikrokontroléru, aby přístup ke kartě microSDHC byl transparetní z pohledu firmwaru hostitele.
Karta microSDHC se nejsříve spustí v režimu SD. Chcete-li zvolit režim SPI, tak na prvních šest impulzů hodinového signálů po zapnutí musí být signál DAT3 na úrovni VDD, zatímco současně je na kartu odeslán příkaz RESET (000000b) pomoci přivedeni Vss napětí na pin CMD. Poté zůstane karta v režimu SPI, dokud nebude vypnutá.
Mikrokontrolér MAX32652 Arm Cortex-M4F od firmy Maxim Integrated je mikroprocesor s nízkým výkonem určený pro koncové body IoT. Je vybaven rozhraním QSPI XIP přímo na čipu. Díky tomu je schopen spouštět kód přímo z karty microSDHC. Mikrokontrolér MAX32652 také disponuje úplným rozhraním SDHC.
Bezpečné vložení karty
Socket pro průmyslovou kartu microSDHC je často přehlížena. U drsných aplikací se může plech nebo podobný kontaktní materiály v průběhu času poškodit nebo ztratit svou pevnost v tahu. Zlaté kontakty, přestože stojí pár peněz navíc, jsou ceněny tím, že poskytují pevné kontaktní spojení, které udržuje svou pevnost v tahu v průběhu času.
Univerzální paměťové médium (UFS) 10101704J6 # 2A a konektor / zásuvka microSDHC společnosti Amphenol ICC poskytují pevné spojení pro libovolnou microSDHC kartu (obrázek 3). Tato zásuvka je vybavena systémem, který zabraňuje zaseknutí paměťových karet během vkládání a vytahování.
Obrázek 3: Konektor / zásuvka karty 10101704J6 # 2A UFS, který podporuje microSDHC karty nové generace UFS s rychlostí přenosu dat až 6 Gbytes / s. (Zdroj obrázku: Amfenol)
Tento zásuvný modul také podporuje nový formát UFS (Universal Flash Storage), který má podobný tvar jako mikroSDHC, ale má jinou kontaktní stopu (obrázek 4). Karta UFS podporuje dvojnásobnou rychlost microSDHC s obousměrným přenosem dat.
Obrázek 4: karta microSDHC nalevo a nová karta UFS vpravo. Karta UFS podporuje dvojnásobnou rychlost microSDHC s diferenčním obousměrným přenosem dat. (Zdroj obrázku: Digi-Key Electronics)
Některé koncové body IoT mohou být ve vzdálených lokalitách, kde je Wi-Fi nedostupná nebo nepraktická. V těchto situacích lze síť vytvořit prostřednictvím bezdrátového mobilního datového připojení. To vyžaduje použití SIM karty, která musí být také uložena v příslušném socketu. Jednoduchým způsobem, jak ušetřit prostor na desce, je použití kombinace socketu pro microSDHC a SIM karty, jako je duální socket 1041681620 od Molexu (obrázek 5). Tato zásuvka obsahuje zlaté kontakty pro pevné spojení v drsných prostředích.
Obr. 5: Duální socket 1041681620 pro SIM kartu a karty microSDHC výrazně snižují prostor na desce a zabraňují chybám při vkládání a stažení. (Zdroj obrázku: Molex)
Závěr
Zatímco paměťové karty microSDHC byly použity pro ukládání dat, nyní se vylepšily, aby podporovaly jedinečné potřeby pro vestavěné operační systémy. Součástí této evoluce je i vývoj rychlejších pamětí, které podporují nepřetržité čtení. Taky mikrokontroléry se vyvíjejí tak, aby podporovaly nová paměťová rozhraní, která mohou spolehlivě spouštět kód přímo z externí karty microSDHC a současně redukovat nebo eliminovat chyby na paměťové kartě.