reklama
reklama
reklama
reklama
reklama
reklama
reklama
© kornwa dreamstime.com Technologie | 12 czerwca 2018

Wybór pami臋ci dla systemów wbudowanych OS i aplikacji IoT

Wraz z up艂ywem czasu i rozwojem technologii w臋z艂y sieci IoT staj膮 si臋 coraz bardziej rozbudowane, a wymagania dotycz膮ce przetwarzania danych wzrastaj膮 do poziomu, kt贸ry wymusza u偶ycie wbudowanych system贸w operacyjnych (OS), takich jak Linux, w celu w艂a艣ciwego zarz膮dzania wszystkimi uruchomionymi procesami.
Dodatkowo, im wi臋cej przetwarzania wst臋pnego mo偶na przeprowadzi膰 w zdalnym w臋藕le IoT, tym mniej danych musimy przes艂a膰 z powrotem do centralnego huba, redukuj膮c tym samym obci膮偶enie sieci. Jednym ze sposob贸w na szybsze dzia艂anie IoT jest umieszczenie takiego systemu wraz z kodem aplikacji na jednej karcie pami臋ci Flash microSDHC urz膮dzenia. Nale偶y jednak pami臋ta膰, 偶e wi臋kszo艣膰 takich kart jest zaprojektowana tylko do przechowywania danych, a nie do przechowywania systemu operacyjnego wraz z kodem programu. Poni偶ej opisane zostan膮 rozwi膮zania, kt贸re pozwalaj膮 obej艣膰 te ograniczenia.

Dlaczego warto korzysta膰 z wbudowanego systemu operacyjnego?

Wyj艣ciowo przetestowany wbudowany system operacyjny mo偶e obs艂ugiwa膰 z艂o偶one przetwarzanie wst臋pne, radz膮c sobie w spos贸b bardzo wydajny z wieloma pojedynczymi zadaniami. Mo偶e r贸wnie偶 wykonywa膰 wiele zada艅 w spos贸b przewidywalny. To oczywi艣cie powoduje, 偶e pojawiaj膮 si臋 dodatkowe wymagania dla mikrokontrolera 鈥 szybsze taktowanie i wi臋ksza ilo艣膰 pami臋ci. Zalet膮 dost臋pnego komercyjnie lub open-source gotowego systemu wbudowanego OS jest jego stabilno艣膰 i sprawdzony kod, kt贸ry nie wymaga cz臋stych aktualizacji. Przyk艂adem s膮 dost臋pne wbudowane systemy operacyjne Linux, kt贸re aktualizowane s膮 co kwarta艂, a poprawki bezpiecze艅stwa nawet co p贸艂 roku. Wbudowany system operacyjny i kod aplikacji mog膮 wymaga膰 8 Gb lub wi臋cej przestrzeni na no艣niku, a poniewa偶 system operacyjny jest rzadko aktualizowany, najwygodniejszym sposobem wydaje si臋 przechowywanie systemu operacyjnego na karcie pami臋ci Flash microSDHC, kt贸ra jest r臋cznie aktualizowana (wymieniana) przez technika. Jest to r贸wnie偶 wa偶ne, w przypadku przysz艂ej rozbudowy pami臋ci, poniewa偶 aktualna karta pami臋ci mo偶e zosta膰 艂atwo zast膮piona inn膮 kart膮, na przyk艂ad now膮 o wi臋kszej pojemno艣ci, przy nast臋pnej wizycie technika.


Rysunek 1: Karta pami臋ci microSDHC S-140u Class 10 firmy Swissbit, kt贸ra obs艂uguje pr臋dko艣膰 do 104 MB/s - wystarczaj膮ca, aby uzyska膰 szybki dost臋p do pami臋ci programu.

Przechowywanie gigabajt贸w wbudowanego systemu operacyjnego na karcie pami臋ci Flash microSDHC NAND, kt贸ra jest fizycznie aktualizowana, ma kilka istotnych zalet, w stosunku do pami臋ci Flash aktualizowanej z sieci bezprzewodowej. W sieci bezprzewodowej, w zale偶no艣ci od zastosowanego schematu procesu, aktualizacja 4-gigabitowego lub wi臋kszego systemu wbudowanego mo偶e na tyle obni偶y膰 przepustowo艣膰 sieci bezprzewodowej, 偶e nie b臋dzie mo偶liwe przesy艂anie 偶adnych danych operacyjnych. Aktualizowanie przez sie膰 wymaga r贸wnie偶 karty microSDHC, kt贸ra posiada dwukrotnie wi臋ksz膮 pojemno艣膰 od standardowo u偶ywanej, poniewa偶 konieczne jest jednoczesne zapewnienie wystarczaj膮co du偶o pami臋ci do uruchomienia systemu operacyjnego, jak i przychodz膮cej aktualizacji. Dodatkowo znacznie skraca si臋 偶ywotno艣膰 baterii ze wzgl臋du na d艂ug膮 aktywno艣膰 radiow膮, a tak偶e wi臋kszy pob贸r pr膮du w czasie procesu zapisu. Wbudowany system operacyjny uruchamiany z pami臋ci Flash stawia r贸wnie偶 wy偶sze wymagania kartom microSDHC. Najcz臋stszym zastosowaniem komercyjnym jest u偶ycie karty jako pami臋ci multimedialnej w urz膮dzeniach mobilnych. Podczas gdy b艂臋dy wielu bit贸w w pliku wideo, obrazie lub pliku audio mog膮 pozosta膰 niezauwa偶one dla u偶ytkownika ko艅cowego, to pojedynczy b艂膮d w pliku OS mo偶e spowodowa膰 ca艂kowit膮 awari臋 systemu. Pami臋膰 Flash posiada r贸wnie偶 swoj膮 organiczn膮 d艂ugo艣膰 偶ycia. W ka偶dej specyfikacji wpisana jest pewna ograniczona liczba cykli kasowania / zapisu. Ka偶da operacja zapisu w tablicy pami臋ci zmniejsza jej 偶ywotno艣膰. Kiedy warto艣ci te zbli偶aj膮 si臋 do swojego okre艣lonego limitu, prawdopodobie艅stwo uszkodzenia kom贸rki pami臋ci ro艣nie, a偶 do jej uszkodzenia i braku mo偶liwo艣ci zapisania nowego stanu. Jednym mo偶liwym rozwi膮zaniem, aby temu zapobiec jest tzw. r贸wnowa偶enie zu偶ycia (Wear Leveling). Zamiast zapisywania w tej samej lokalizacji, dane s膮 r贸wnomiernie rozmieszczane w ca艂ej p贸艂przewodnikowej pami臋ci Flash, zapewniaj膮c r贸wnomiern膮 dystrybucj臋 zapis贸w w macierzy pami臋ci.

Jak korygowa膰 b艂臋dy odczytu danych?

Pliki OS s膮 odczytywane znacznie cz臋艣ciej ni偶 pliki danych, czasami nawet w spos贸b ci膮g艂y, co mo偶e prowadzi膰 do powstania b艂臋d贸w w bitach macierzy pami臋ci Flash. Dlatego tak wa偶ne staje si臋 korygowanie b艂臋d贸w. Pami臋膰 Flash u艂o偶ona jest w bloki, a ka偶dy zawiera wiele stron. Bloki s膮 najmniejszymi cz臋艣ciami pami臋ci, kt贸re mo偶na wymaza膰, a strony s膮 najmniejszymi cz臋艣ciami pami臋ci, kt贸re mo偶na odczyta膰 lub zaprogramowa膰. Typowy rozmiar bloku Flash wynosi 256 KB i zawiera 64 strony po 4 KB ka偶dy. Ka偶da strona zawiera r贸wnie偶 dodatkowe 64 bajty u偶ywane do korygowania b艂臋d贸w ECC (Error Correction Code), kasowania licznika oraz wykorzystywane przez mechanizm translacji adres贸w. Podczas odczytywania strony danych, przyk艂adane jest ma艂e napi臋cie odczytu do ca艂ego bloku, do kt贸rego nale偶y strona, nawet je艣li potrzebne jest odczytanie tylko jednego bajtu na stronie. Ze wzgl臋du na budow臋 kom贸rki Flash, powoduje to r贸wnie偶 indukowanie si臋 ma艂ego napi臋cia w otaczaj膮cych stronach tego bloku. Wielokrotne odczytywanie tego samego bajtu, mo偶e nawet spowodowa膰 zaprogramowanie s膮siednich kom贸rek na inn膮 warto艣膰 (programowanie mi臋kkie) lub zak艂贸ci膰 programowanie stron. Podczas gdy wi臋kszo艣膰 kart pami臋ci Flash microSDHC NAND ma jak膮艣 form臋 korekcji b艂臋d贸w, tak aby poprawi膰 b艂臋dy kom贸rek, to mo偶e zdarzy膰 si臋, 偶e liczba b艂臋d贸w spowodowanych przez programowanie mi臋kkie b臋dzie na tyle du偶a, 偶e w pewnym momencie nie b臋dzie mo偶liwa ju偶 ich korekcja. Mikrokontroler odczyta inn膮 warto艣膰 z lokalizacji bitu, powoduj膮c b艂膮d odczytu danych (Read Disturb Error). Karta pami臋ci Flash microSDHC NAND u偶ywana do przechowywania danych nie zbyt cz臋sto wykrywa b艂臋dy odczytu. Ze wzgl臋du na operacje zapisu wykonywane na macierzy pami臋ci Flash, po operacji r贸wnowa偶enia zu偶ycia, miejsca flashowania s膮 przeprogramowane, eliminuj膮c wszelkie efekty mi臋kkiego programowania. Jednak tablica w pami臋ci Flash u偶ywanej dla systemu wbudowanego OS jest tak rzadko programowana, 偶e b艂膮d odczytu mo偶e sta膰 si臋 rzeczywisto艣ci膮. Karty pami臋ci typu SLC (Single-Level Cel) posiadaj膮 mo偶liwo艣膰 miliona odczyt贸w a MLC (Multi-Level Cel) 鈥 100 ty艣, zanim wyst膮pi b艂膮d odczytu. Cz臋sto producenci nie podaj膮 tych danych, uwa偶aj膮c mylnie, 偶e jest to nie zbyt cz臋sto pojawiaj膮cy si臋 b艂膮d.

RDM - metoda eliminacji b艂臋d贸w odczytu

Aby zapobiec b艂臋dom odczytu, firma Swissbit opracowa艂a funkcj臋 o nazwie Read Disturb Management (RDM). Kontroler karty pami臋ci Flash 艣ledzi liczb臋 operacji odczytu dla ka偶dego pojedynczego bloku. Kiedy blok osi膮ga wewn臋trznie okre艣lon膮 liczb臋 operacji odczytu, sterownik przemieszcza dane do nowego bloku, podobnie jak w przypadku metody r贸wnowa偶enia zu偶ycia u偶ywanej w operacjach zapisu. W razie potrzeby, podczas operacji zapisu do nowego bloku, kodowanie korekcyjne (ECC) kontrolera karty koryguje wszelkie uszkodzone dane. System RDM zosta艂 zaimplementowany w karcie SLC Flash microSDHC - SFSD8192N1BM1MT-I-QG-221-STD firmy Swissbit o pr臋dko艣ci UHS-I Class 10. Seria tych kart S-450u, zosta艂a zaprojektowana specjalnie do zastosowa艅 przemys艂owych z wykorzystaniem system贸w wbudowanych. Pojemno艣膰 8 Gb pozwala na zainstalowanie wbudowanego systemu operacyjnego Linux i kodu aplikacji dla wielu z艂o偶onych w臋z艂贸w sieci IoT. W trybie SDR104 pr臋dko艣膰 dost臋pu do danych mo偶e wynie艣膰 do 104 MB / s.

Karta microSDHC jako pami臋膰 programu

Jak wspominano wcze艣niej, karty microSDHC s膮 zazwyczaj u偶ywane tylko do przechowywania danych, wi臋c urz膮dzenia peryferyjne, wi臋kszo艣ci oparte o mikrokontrolery architektury Harvard, obs艂uguj膮 tylko dost臋p do kart microSDHC jako pami臋ci danych. To ogranicza ich wyb贸r. Istniej膮ce rozwi膮zania odczytuj膮 kart臋 microSDHC i 艂aduj膮 pami臋膰 programu do pami臋ci RAM, a nast臋pnie uruchamiaj膮 si臋 z pami臋ci RAM. Uk艂ad nie tylko zwi臋ksza dodatkowy koszt p艂yty, ale tak偶e ogranicza wielko艣膰 programu do ilo艣ci pami臋ci RAM dost臋pnej na p艂ycie komputera PC.

Karty MicroSDHC mog膮 pracowa膰 w trybie magistrali SD lub SPI. Aby po艂膮czy膰 mikrokontroler z kart膮 microSDHC S-450u jako pami臋ci膮 programu, wybrany mikrokontroler musi obs艂ugiwa膰 jeden z dw贸ch protoko艂贸w magistrali microSDHC:

1. Kontroler trybu SD karty SDHC skonfigurowany jako pami臋膰 programu. Mo偶e to by膰 zewn臋trzne urz膮dzenie peryferyjne lub wewn臋trzny sprz臋towy mikrokontroler. Interfejs sk艂ada si臋 z sze艣ciu sygna艂贸w: czterech bit贸w danych (DAT [0-3]), zegara (CLK) i dwukierunkowego sygna艂u CMD (Command / Response). Dane przesy艂ane s膮 przez cztery bity na raz, co gwarantuje du偶膮 szybko艣膰 wykonywania programu. Kontroler hosta lub mikrokontrolera udost臋pnia sygna艂 zegarowy karcie microSDHC.


Rysunek 2: Interfejs karty microSDHC w trybie SD wykorzystuje prosty interfejs sze艣ciu sygna艂贸w, aby zapewni膰 najszybszy dost臋p do pami臋ci.

2. Konfigurowalny interfejs SPI z obs艂ug膮 XIP (eXecute In Place). Wykonanie kodu programu nast臋puje poprzez uzyskanie dost臋pu do karty microSDHC w trybie SPI. Transfer danych nie jest jednak tak szybki jak trybie SD. Pami臋膰 XIP mapuje pami臋膰 karty w przestrzeni pami臋ci programu mikrokontrolera, umo偶liwiaj膮c w ten spos贸b dost臋p do karty microSDHC przez oprogramowanie hosta.

Karta microSDHC w艂膮cza si臋 zawsze w trybie karty SD. Aby wybra膰 tryb SPI, w przeci膮gu pierwszych sze艣ciu cykli zegarowych, zaraz po w艂膮czeniu zasilania, sygna艂 DAT3 musi osi膮gn膮膰 poziom VDD, a jednocze艣nie polecenie RESET (000000b) musi zosta膰 wysy艂ane na kart臋 poprzez obni偶enie poziomu CMD do VSS. W ten spos贸b karta pozostaje w trybie SPI, dop贸ki nie zostanie wy艂膮czona.

Przyk艂adem mikrokontrolera przeznaczonym do w臋z艂贸w Internetu Przedmiot贸w jest uk艂ad MAX32652 firmy Maxim Integrated. Wykorzystuje rdze艅 ARM Cortex-M4 z FPU. Charakteryzuje si臋 ultra niskim poborem mocy. Posiada wbudowany interfejs XIP QSPI, kt贸ry po prawid艂owym skonfigurowaniu jest w stanie wykona膰 kod z karty microSDHC. MAX32652 posiada r贸wnie偶 pe艂ny interfejs SDHC, przeznaczony przede wszystkim do przechowywania danych.

Nale偶y pami臋ta膰, 偶e interfejsy do mikrokontrolera musz膮 by膰 programowymi interfejsami pami臋ci (PMI). Niezale偶nie od zastosowanego protoko艂u lub interfejsu magistrali, mikrokontroler b臋dzie musia艂 zawiera膰 pewien kod inicjalizuj膮cy, aby uruchomi膰 interfejs karty microSDHC.

Bezpieczne gniazda

Jednym z element贸w, cz臋sto pomijanych w procesie projektowania s膮 gniazda kart pami臋ci. W przypadku wymagaj膮cych aplikacji, stopy cyny lub podobnych materia艂贸w kontaktowych mog膮 z czasem traci膰 swoje w艂a艣ciwo艣ci elektryczne i mechaniczne. Z艂ocone pokrycia, chocia偶 dro偶sze, zapewniaj膮 sta艂e po艂膮czenie, kt贸re zachowuje swoj膮 wytrzyma艂o艣膰 mechaniczn膮 w d艂ugim czasie. Przyk艂adem jest z艂膮cze 10101704J6#2A firmy Amphenol przeznaczone dla kart typu UFS (Uniwersalny Flash Storage) oraz microSDHC, kt贸re zapewnia solidne po艂膮czenie dla ka偶dej tego typu karty. Wyposa偶one zosta艂o w styki zapobiegaj膮ce zwarciu, kt贸re uniemo偶liwiaj膮 r贸wnie偶 zablokowanie kart pami臋ci w momencie wk艂adania i wyjmowania.


Rysunek 3. Z艂膮cze 10101704J6#2A firmy Amphenol dla kart pami臋ci typu UFS i microSDHC.



Rysunek 4. Widok karty microSDHC (po lewej) i karty UFS (po prawej). Karta UFS obs艂uguje dwa razy wi臋ksz膮 szybko艣膰 ni偶 microSDHC z r贸偶nicowym, dwukierunkowym przesy艂aniem danych.


Niekt贸re w臋z艂y sieci IoT mog膮 znajdowa膰 si臋 w odleg艂ych lokalizacjach, w kt贸rych Wi-Fi jest niedost臋pne lub niepraktyczne. W takich sytuacjach po艂膮czenie sieciowe mo偶e by膰 realizowane za pomoc膮 sieci GSM. Wymaga to u偶ycia karty SIM abonenta, kt贸ra r贸wnie偶 potrzebuje specjalnego gniazda. Prostym sposobem na zaoszcz臋dzenie miejsca na p艂ycie jest u偶ycie wsp贸lnego gniazda dla microSDHC i karty SIM, takiego jak 1041681620 firmy Molex. Gniazdo to posiada r贸wnie偶 z艂ocone styki gwarantuj膮ce solidne po艂膮czenie w trudnych warunkach oraz kontakty zapobiegaj膮ce zwarciu.


Rysunek 5. Widok karty 1041681620 firmy Molex z mo偶liwo艣ci膮 w艂o偶enia karty SIM i microSDHC.


Pocz膮tkowo karty Flash microSDHC by艂y przeznaczone tylko do przechowywania danych. Obecna ewolucja kart pami臋ci pod膮偶a w kierunku wsparcia unikalnych potrzeb IoT zwi膮zanych z wykorzystaniem system贸w wbudowanych OS i pami臋ci program贸w na tym samym no艣niku. Cz臋艣膰 tych zmian obejmuje tworzenie szybszych pami臋ci Flash, kt贸re mog膮 obs艂ugiwa膰 sta艂e 偶膮dania odczytu oraz powstanie mikrokontroler贸w, kt贸re b臋d膮 mog艂y obs艂ugiwa膰 nowe, niezawodnie interfejsy pami臋ci, redukuj膮c lub eliminuj膮c b艂臋dy odczytu / zapisu danych w pami臋ci Flash.

Artyku艂 opublikowano dzi臋ki uprzejmo艣ci firmy DigiKey

漏 DigiKey
reklama
reklama
Za艂aduj wi臋cej news贸w
December 05 2018 15:01 V11.10.4-1