Embedded Linux pro ukládání dat

Pavel

Embedded Linux pro ukládání dat
« kdy: 18. 08. 2011, 14:16:17 »
Zdravím všechny!

Potřebuju postavit krabičku, která by dokázala přes seriový port načítat naměřené hodnoty, které by ukládala tak, aby nedošlo ke ztrátě dat ani po vypnutí proudu. Krabička musí mít minimální spotřebu, aby mohla jet na baterii (ideálně autobaterii), neboť bude umístěná daleko od nejbližšího zdroje elektřiny.

Poraďte prosím pozitivní/negativní zkušenosti s
- HW (hotová deska, procesor, apod.)
- SW (jaký embedded linux použít)

Věřím, že mezi čtenáři roota se najdou borci, kteří na tomto mají hojné zkušenosti.

Díky
« Poslední změna: 18. 08. 2011, 17:43:16 od Petr Krčmář »


Fremen

Re: Embedded linux
« Odpověď #1 kdy: 18. 08. 2011, 14:36:57 »
Pro inspiraci hotové zařízení:
http://www.acmesystems.it/?id=FOXG20

Lukage

Re: Embedded linux
« Odpověď #2 kdy: 18. 08. 2011, 15:02:23 »
Na to je embedded linux jak kanón na vrabce. Na vyčítání dat po sériové lince a jejich ukládání bohatě stačí cokoliv např. s ATMegou s připojenou SD kartou přes SPI a aplikací napsanou na míru v C.

Komunikace přes UART a SPI je jednoduchá, pro filesystémy je dostupných dost knihoven...

Pro echt malou spotřebu bych použil procesory typu MSP430xxxx, jinak linuxová embedded deska bude žrát vždy podstatně více (DDR, FLASH, výkonný procesor, podpůrné obvody, řadiče atd.) než cokoliv na malém uP.

RDa

Re: Embedded linux
« Odpověď #3 kdy: 18. 08. 2011, 16:53:19 »
Souhlasim s predchozim pisatelem - ATmega je idealni reseni na tyto aplikace, klidne se zapisem na SD kartu, rozdil v spotrebe oproti MSP bude minimalni, protoze procesor jde hodne dobre uspat pokud se ne vyzaduje kontinualni cinnost..

Pokud si to tazatel chce udelat sam, mozna bude zajimave zacit napr. Arduinem a pozdeji si udelat specificky tistak.. (arduino pak jde vyuzit jako programator).

Lenin POWER!

  • ****
  • 434
  • Nekecat a delat!
    • Zobrazit profil
    • Tribut Leninovi
    • E-mail
Re: Embedded linux
« Odpověď #4 kdy: 18. 08. 2011, 17:59:52 »
neni hezky jak se systemy co jsou zadara - linux a android postupne procpaly do naproste vetsiny embedded zarizeni? Dneska DVD/satelitni/DVB prehravac co nebezi pod linuxem snad ani uz neexistuje. Akorat wireless krabicky obcas jedou pod free/open bsd, nema tak zprasene wifi jako linux.

RMS si tak splnil svuj sen kteremu venoval cely zivot - dnes si muzeme pustit tu onu dulezitou aplikaci - transmission-bt v mnoha zarizenich. Tady si to borci pousti i v digitalni barevne kopirce, kam doinstalovali vetsi disky a skladuji tam warez "aby to SW audit nenasel".


Pavel

Re: Embedded Linux pro ukládání dat
« Odpověď #5 kdy: 18. 08. 2011, 18:54:16 »
Díky za tip na ATmega. Vypadá to hezky, je spousta dokumentace, vývojové kity i IDE, ale taky to vypadá na hodně dlouhé studium, než se člověk k něčemu rozumnému dopracuje.

Momentálně by mi připadalo o hodně jednodušší jít přes embedded linux. Sice za cenu vyšší spotřeby, ale zato rychleji k cíli. Dá někdo dobrý tip?

Zajímalo by mě taky, kolik tak člověk ušetří na spotřebě. Vzhledem k tomu, že potřebuju non-stop měření, tak mě nezajímá, že jde systém uspat. U ATmega píšou 0.25mA a 1.8V (minimálně). Jak na tom bude nějaký linux-friendly HW? Máte někdo zkušenost s ARM a uClinux?

Lukage

Re: Embedded Linux pro ukládání dat
« Odpověď #6 kdy: 18. 08. 2011, 19:54:39 »
Jít přes embedded linux jednodušší rozhodně není. Pokud vezmu například zařízení založené na ATMega se zápisem na SD, tak program v ANSI C se dá napsat za chvilku a s minimálním použitím datasheetu (nastavení UARTu a SPI je na pár řádků, použití knihovny od CHaNa na FAT je brutálně jednoduché).

Oproti tomu porovnám například systém např. s AT91SAM9260 (ARM s připojenou externí SDRAM a NAND flash). Tam je potřeba nejdřív upravit/napsat celý znova first-stage bootloader tak, aby bylo vůbec možno zavést U-Boot z flash. Potom si připravíte zdrojáky U-Bootu tak, aby bootloader správně nastavil HW procesoru, SDRAM kontroléru a NAND flash kontroléru tak, aby vůbec bylo možné linux zavést. Tohle budete opakovat s nastavením kernelu, a to jsem se ještě nedostal ke kompilaci userspace pro ARM. Potřebujete správně nakonfigurovat a upravit uClinux tak, aby to fungovalo. A pak si možná, velmi komplikovaně, připojíte přes AT91 SPI paměťovou SD kartu, a bude Vám přes AT91 USART fungovat i ta sériovka. Což zase neřeší nastavení ovládací konzole linuxu alespoň přes debug UART. I pro člověka zoceleného X platformami dokáží některá úskalí pořádně potrápit. Počítáte-li, že distribuce pro tyto systémy existují, tak ano - ale buď jsou tyto buildrooty placené, nebo jsou jen pro velmi specifickou platformu.

Moje rada zní - jděte na to jednoduše. Kupte si Arduino založené na AVR (i když já ho prostě nesnáším, je to zase jeden projekt, který programátora embedded hardware abstrahuje právě od hardware, vývojář zařízení by měl minimálně spolutvořit alespoň schéma zapojení na základě znalosti cílové aplikace, schopnosti procesoru, možnosti a různorodosti jeho zapojení tak, aby řešení bylo maximálně efektivní). Tam nebudete řešit úskalí zavedení, spuštění a udržení stability embedded linuxu.

To Lenin: Je to super že je všude linux, je jenom velká škoda, že úpravy kódu ať už U-Bootu nebo jádra nejsou commitována do komunitních repozitářů u velké spousty platforem. Chce-li pak člověk vytvářet zařízení založené na nějakém takovém SoCu, tak si musí hodně věcí udělat sám nebo to pokoutně hledat v šílených balících zdrojových kódů u výrobce. DOkumentace populárních SoCů běžících na linuxu je taky hodně bídná. Atheros, Broadcom, Realtek. Z těch vymlátit datasheet, to je kolikrát unikum. Neodeberete-li alespoň 100000 kusů procesorů, tak vám ani neukážou ani co to umí.

Lenin POWER!

  • ****
  • 434
  • Nekecat a delat!
    • Zobrazit profil
    • Tribut Leninovi
    • E-mail
Re: Embedded Linux pro ukládání dat
« Odpověď #7 kdy: 18. 08. 2011, 22:02:48 »
To, ze temer zadna deska nefunguje s tim linux devel kitem co k tomu vyrobce dodava, to je bezna vec. Ocekava ze ten kdo si ty zarizeni stavi ma kompetentni lidi jinak by si to koupil uz hotovy.

Uvedomte si ze lidi z produkce delaji to co se jim vyplati. Proc by posilali svuj kod do komunitnich repozitaru kdyz za to nedostanou zaplaceno. My to taky nedelame, zbytecna ztrata casu. Ze se s vama nechce vyrobce bavit kdyz pro nej nemate zajimavou nabidku? Takovej ten zivot uz je, nabidnete jim prachy nebo facebook kredity.

RDa

Re: Embedded Linux pro ukládání dat
« Odpověď #8 kdy: 19. 08. 2011, 10:15:33 »
Zajímalo by mě taky, kolik tak člověk ušetří na spotřebě. Vzhledem k tomu, že potřebuju non-stop měření, tak mě nezajímá, že jde systém uspat. U ATmega píšou 0.25mA a 1.8V (minimálně). Jak na tom bude nějaký linux-friendly HW? Máte někdo zkušenost s ARM a uClinux?

Pavle, vzhledem k tomu ze mas vstup na seriovem portu, coz je v nejhorsim pripade 9600 Bd, tj. 960 Byte/s, tak na zpracovani bajtu mas pri 16MHz celkem 16666 instrukci (v pripade hodnoty delsi nez byte patricne vice instrukci). A protoze jakykoliv zapis na uloziste tolik instrukci zdaleka nepotrebuje, je mozne procesor uspat (do uA spotreby). Rekneme ze se ti to povede udelat na 1mA v prumeru. Oproti 1A v reseni s Linuxem, coz je pomer 1:1000.

Kdyztak zanech na sebe mejl..

Lukage

Re: Embedded Linux pro ukládání dat
« Odpověď #9 kdy: 19. 08. 2011, 10:26:34 »
Jistě, když po někom chceme 1000 ušmudlaných chipů, tak to holt není nějaká extra raketa, která by měla výrobce vytrhnout. Ale pohybujeme se na rootu, a bavíme se o open source software. Pokud si výrobce vezme kompletní jádro, GNU překladače a software a nad ním vystaví svou aplikaci, mohl, a podotýkám MOHL by něco komunitě vrátit alespoň v podobě ovladače na svůj hardware. Proč to některým jde, a některým ne, ponechám stranou.

Váš příměr typu proč by posílali kód do komunitních repozitářů, když za to nedostali zaplaceno je mimo. Ušetřili si tak obrovské penzum sil a prostředků. Vezměte si televizi Samsung. Bootuje linux, používá OS bootloader, OS linux kernel, OS userspace utility, filesystémy, OS kodeky - kompletní ffdshow ušetří sakra hodně práce, OS téměř vše. Pouze nakreslili uživatelské menu a slepili to všechno do jednoho ELF programu a napsali pár ovladačů. Nikde už ale nenajdete jeden blbý zdroják od použitého chipsetu tuneru nebo LCD kontroléru, který by jinému vývojáři ušetřil taky spoustu práce. Pokud se bude pouze brát, tak to OS může rovnou zabalit.

Re: Embedded Linux pro ukládání dat
« Odpověď #10 kdy: 19. 08. 2011, 12:40:56 »
Já používam http://wifi.aspa.cz/alix-3d3-lx800-256-mb-usb-vga-audio-z85466/
v case http://wifi.aspa.cz/kryt-k-alix-3d3-1x-lan-2x-rev-sma-1x-usb-1-x-vga-2-x-audio-z93682/
do toho cf kartu a  voyage linux (což je debian squeezee) . Má to COM USB LAN 2x minipci slot na CF vga se kterou jede linux , audio které používam jako internet radio player.
Spotřeba 5-6w , napájení 12v (třeba autobaterie)

Re: Embedded Linux pro ukládání dat
« Odpověď #11 kdy: 19. 08. 2011, 14:15:01 »
Vezměte si televizi Samsung. Bootuje linux, používá OS bootloader, OS linux kernel, OS userspace utility, filesystémy, OS kodeky - kompletní ffdshow ušetří sakra hodně práce, OS téměř vše. Pouze nakreslili uživatelské menu a slepili to všechno do jednoho ELF programu a napsali pár ovladačů. Nikde už ale nenajdete jeden blbý zdroják od použitého chipsetu tuneru nebo LCD kontroléru, který by jinému vývojáři ušetřil taky spoustu práce. Pokud se bude pouze brát, tak to OS může rovnou zabalit.
Jo, holt to tak vypadá když na sebe narazí charita a vzájemnost (GPL) s tvrdým byznysem. Navíc často jsou specifikace k některým chipsetům pro takováto zařízení po NDA a zveřejnění by bylo jejím porušením. Já vím, věděli to dopředu a měli se podle toho zachovat a vzít zodpovědně jinou platformu než GPL based. Ale oni si našli cestičku, kterou GPL neporuší a současně nemusí zveřejňovat citlivé části.
Vím, morálně to smrdí ale právně je to v pořádku.
Co s tím? Změni GPL na restriktivnější aby Linux vyvíjela jen partička nadšenců ve svém volném čase? Protože ostatní by utekli třeba k BSD...
Upřímně, nevím co s tím.

Re: Embedded Linux pro ukládání dat
« Odpověď #12 kdy: 19. 08. 2011, 14:32:55 »
Já používam http://wifi.aspa.cz/alix-3d3-lx800-256-mb-usb-vga-audio-z85466/
v case http://wifi.aspa.cz/kryt-k-alix-3d3-1x-lan-2x-rev-sma-1x-usb-1-x-vga-2-x-audio-z93682/
do toho cf kartu a  voyage linux (což je debian squeezee) . Má to COM USB LAN 2x minipci slot na CF vga se kterou jede linux , audio které používam jako internet radio player.
Spotřeba 5-6w , napájení 12v (třeba autobaterie)

Alix a voyage linux můžu taky doporučit, byl jsem na něj před dvěma lety nasměrován tady na fóru roota. Na www.pcengines.ch mají různé verze s USB a COM porty. Při malé zátěži je spotřeba hluboko pod 5 W včetně WiFi karty. Zatím uptime 4 měsíce a data z přístrojů odesílám přes WiFi a zároveň ukládám na CF kartu; maximální spokojenost. Snad jediná výhrada: systémové hodiny jsou zatraceně nepřesné (měl jsem v ruce zatím dva exempláře). Pokud potřebuješ měření vztáhnout k přesnému času, ntp nebo GPS je nutnost.

Re: Embedded Linux pro ukládání dat
« Odpověď #13 kdy: 19. 08. 2011, 14:41:43 »
Zdravím všechny!

Potřebuju postavit krabičku...
Vypadá to na první pohled jako velmi jednoduchá aplikace. Chápu to tak, že po startu se box dokola dotazuje po sériáku nějakým protokolem na data. Když dostane odpověď, uloží ji. To dělá do té doby, dokud není paměťové médium plné (možná má začít přepisovat nejstarší) a nebo nedojde k odpojení napájení. K obsahu paměťového média je potřeba mít možnost přistoupit.

Než odpovím tak se budu hodně ptát:
- Kolik kusů?
- Jak jsi na tom s rozpočtem pro vývoj a následně pro materiál?
- Je to pro tvé použití a nebo pro komerční nasazení (tvé a nebo to někomu dodáváš)?
- Dá se očekávat v budoucnu nějaký požadavek na rozšíření funkcionality?
- Musíš splnit nějaké certifikace (EMC, bezpečnost, ...)?
- S jakými embedded paltformami máš už zkušenost?
- O jakém cca množství dat se tu bavíme?
- Jak chceš k datům přistupovat (Off-line nebo on-line? Přes jaké rozhraní? Sériová linka? Vyjímatelná SD karta? LAN? Wifi? USB Mass storage)?

Tom22

Re: Embedded Linux pro ukládání dat
« Odpověď #14 kdy: 20. 08. 2011, 01:26:51 »
Asi bych se taky přimluvil pro ATmega,
pokud by ovšem byl striktně požadavek na Linux, tak tohle by asi bylo zajímavé:
http://sites.google.com/site/bifferboard/
Procesor je prý klon 486SX  :) a je to taková docela malá krabička s eth a usb.
Cca před rokem jsem to koupil a zkoušel, ale podařilo se mi to odpálit záměnou napájecího adaptéru (možná by to šlo i opravit, ale čoud jsem viděl i cítil    ;)  )
Zkoušel jsem na tom určitě seriák i připojení flashky a komunikovalo to dobře, použil jsem dodanou OpenWRT distribuci.
Spotřeba prý ~1W ale neměřil jsem to.