česky english Vítejte, dnes je čtvrtek 14. listopad 2024

Není deska jako deska, aneb výběr správné vývojové desky

DPS 4/2017 | Články
Autor: Ankur Tomar, Farnell

Ačkoliv se to může zdát diskutabilní, výběr nejlepší vývojové desky pro určitý projekt by neměl začínat srovnáváním různých desek a hodnocením jejich vlastností a výhod. Při současném množství vývojových desek, které jsou na trhu, mohou být návrháři, a tím spíše pak výrobci a nadšenci, snadno zahlceni bohatostí výběru. Lehce se mohou nechat rozptýlit skvělými novými vlastnostmi a funkcemi, nebo podlehnout pokušení vybrat nejnovější produkt na trhu jen proto, aby měli záminku k jeho vyzkoušení. Z pohledu návrháře se bude „nejlepší“ deska pro daný projekt lišit v závislosti na několika faktorech.

Všichni, tedy inženýři, výrobci i nadšenci, chtějí, aby byl jejich projekt úspěšný, ale jejich zdroje a motivace jsou různé a právě podle nich si svoji desku vyberou. Kvalifikovaní inženýři jsou pod značným tlakem, aby dodali úspěšný produkt, který bude splňovat jasně definované parametry. Jelikož mají od začátku projektu přesně vymezenou požadovanou funkčnost, obvykle vyberou vývojovou desku podle potřebného výkonu, a proto jsou počáteční kritéria desky definována procesorem. V závislosti na aplikačním scénáři hledají vývojáři desku, která dokáže poskytnout potřebný výkon díky tomu, že procesor běží na dostatečně vysoké taktovací frekvenci, má paměť požadovanou pro danou aplikaci a má také všechny další potřebné komponenty, jako jsou grafické procesory atd.

Kvalifikovaní inženýři jsou navíc motivováni časem, protože koncový produkt je zapotřebí vyvinout rychle. Tito vývojáři, pokud to specifikace produktu nevyžaduje jinak, si pravděpodobně vyberou vývojovou desku z typové řady procesorů, s nimiž mají zkušenosti z dřívějška, neboť jim to umožní využít knihovny a vývojové nástroje, které už znají. Při změně typové řady procesoru může být zapotřebí přijmout další zaměstnance, pokud potřebné znalosti nikdo ve firmě nemá. To nějakou dobu trvá, nemluvě o výrazném zvýšení nákladů, nicméně to nakonec může být nejlepší řešení, jestliže to specifikace projektu a produktu vyžadují.

Vedle specifikací procesoru je důležitá také funkčnost desky. Profesionální vývojáři se obvykle rozhodnou vyvinout vlastní hardware, který bude vyhovovat potřebám jejich aplikace, takže open source deska je pro ně atraktivnější volbou, protože je snazší upravovat a měnit hardware podle potřeby.

Obr. 1 Arduino Uno, jedna z vývojových desek dostupných u Farnell

Dostupnost vzorového kódu je pro kvalifikované inženýry, na rozdíl od výrobců a nadšenců, méně důležitá. Díky úrovni svých znalostí a zkušeností si mohou pro své aplikace napsat další kód, proto jim jako základ vlastního systému zpravidla nebude sloužit kód vzorové aplikace. Pokud má však aplikace spouštět konkrétní operační systém, bude vývojář hledat desku s podporou pro tento operační systém, což může vyloučit další alternativy, které by jinak splňovaly jeho požadavky. V neposlední řadě pak profesionální vývojáři posuzují, zda je k dispozici podpora pro programovací jazyk a vývojové nástroje používané ve firmě. Změna vývojových nástrojů může projekt značně prodloužit a také může být zapotřebí pořídit a implementovat nové vývojové nástroje.

Při výběru vývojové desky proto kvalifikovaný inženýr nejprve vybere procesor, potom všechny další požadované funkce, a nakonec se ujistí, že má vyhovující prostředí pro vývoj softwaru. Stejný přístup platí i pro návrháře, ať už navrhují pračky, nebo špičkové řídicí a automatizační systémy.

U výrobců a nadšenců je rozhodování stejně důležité, ti však nejsou pod takovým komerčním ani časovým tlakem. Pro výrobce je výběr desky obtížnější, protože povětšinou mají méně zkušeností a potřebují větší podporu. Výrobci budující startupové firmy se často obracejí na komunitu návrhářů a vývojářů, aby získali představu o životaschopnosti svého výrobku podle obdobných projektů, a při následném výběru vývojové desky posuzují její výkon, možnost optimalizace a cenu.

Výrobci a nadšenci zpravidla volí vývojové desky, které mají silnou komunitu uživatelů, tedy zejména desky, které už jejich kolegové úspěšně použili v obdobných aplikacích. Činí tak proto, že k deskám obvykle získají podporu od komunity, a nikoliv přímo od výrobce desky. Profesionální výrobci přistupují k výběru desky podobně, jim se však často podaří získat podporu od výrobců desky, takže se příliš nezabývají tím, jestli už deska byla použita v obdobných aplikacích. Dalším důležitým faktorem při rozhodování může být pro profesionální výrobce a nadšence dostupnost ovladačů pro periferní zařízení, a to kvůli času a odborným znalostem, které by potřebovali, pokud by kód psali sami.

Obr. 2 Vývojové desky nachází uplatnění v internetu věcí (IoT), Obr. 3 BeagleBone Black 4G, jedna z vývojových desek dostupných u Farnell

Nadšenci se často rozhodují na základě dostupné konektivity a funkčnosti, díky čemuž jsou na tomto trhu velmi oblíbené desky jako Raspberry Pi, k níž je k dispozici široká škála periferií ve formě rozšiřujících modulů (HAT). Oproti tomu profesionální výrobci se při výběru desky obvykle řídí především jejím výkonem, pamětí a optimalizací. Také pořizovací cena je pro nadšence i výrobce důležitým faktorem, ale jak postupem času klesá cena řadičů SBC, nabídka desek je stále rozmanitější.

Podpora konkrétních softwarových vývojových nástrojů není u nekomerčních projektů příliš důležitá, ačkoli dostupnost bezplatných vývojových nástrojů je významným faktorem. To znamená, že mezi výrobci a nadšenci jsou populární například vývojové desky z řady Arduino, neboť mají snadno použitelné vývojové prostředí (IDE).

Internet věcí rozšířil možnosti projektů a rozdmýchal představivost profesionálních výrobců i nadšenců, jelikož díky němu mají více příležitostí pro nové návrhy než kdy dříve. Přestože technologie na pozadí internetu věcí není ničím novým, propojování všech zařízení a rozšířené používání snímačů je novinkou a nikdo nechce stát mimo. Ještě před 10 lety nebyla bezdrátová konektivita a šifrované senzory běžnou součástí života, teď se ale tento propojený ekosystém rozrůstá neuvěřitelnou rychlostí.

Pro návrháře hledající vývojovou desku je to dar, protože všechny funkce potřebné pro velký počet uzlů internetu věcí se vyskytují na malém modulu, a někdy dokonce na jediném čipu. Tím odpadá potřeba navrhovat vše od nuly, takže i vývojáři bez odborných zkušeností s hardwarem mohou vytvářet produkty, aniž by museli navrhovat složité obvody. Volně k dispozici je i software umožňující komunikaci. Výrobcům to značně usnadňuje život, protože tím ušetří čas a mohou se soustředit na funkčnost produktu a vysokou úroveň komunikace mezi moduly na místo toho, aby psali strojový kód, který má spustit například Bluetooth Low Energy (BLE), WiFi nebo svazek TCP/IP.

Nyní už chápeme, že návrháři přistupují k výběru desek jinak v závislosti na potřebách svého projektu. Je zřejmé, že vybrat desku není tak těžké, jak se zprvu zdá, pokud návrhář chápe rozsah projektu. Kvůli měnícím se požadavkům jednotlivých uživatelů je však nezbytné, aby distributoři nabízeli širokou škálu desek, které uspokojí potřeby všech zákazníků.

Některé desky jsou navrženy tak, aby splňovaly požadavky určitých aplikací, a tudíž jsou určeny především pro kvalifikované inženýry. Například Intel tinyTILE je deska s malým výkonem, která měří jen 35 × 26 mm a obsahuje šestiosý combo senzor, takže byla zcela jasně navržena do nositelných a jiných aplikací napájených malou baterií.

Někdy je rozhodnutí o výběru desky obtížnější, zejména při porovnávání typových řad jako Arduino a BeagleBone. Obě jsou to platformy typu open source, které nabízejí řadu procesorů a rozšiřujících desek (přičemž rozšiřující desky Arduino se nazývají „shieldy“, zatímco BeagleBoard.org Foundation používá „capy“). Díky shieldům a capům lze značně zkrátit dobu vývoje. Je možné, že pokud cena a výkon nejsou kritické, například když má výrobce v plánu vyrábět pouze jeden nebo dva systémy nebo když kvalifikovaný inženýr navrhuje obchodní koncept, bude se výběr řídit dostupností správných periferií na standardní rozšiřující kartě.

Obě typové řady, Arduino i BeagleBone, nabízejí open source operační systémy na deskách, open source prostředí IDE a také open source hardware, takže pro desky jsou k dispozici schémata. Kromě toho jsou obě typové řady podporovány mnoha komerčními vývojovými nástroji, proto software pravděpodobně nebude mít na výběr řady výrazný vliv.

I když výkon není součástí specifikací, u desek Arduino bývá menší než u desek BeagleBone. Většina produktů Arduino například používá procesory řady AVR, které nabízejí mnohem nižší výkon než 1GHz procesor ARM používaný na nejnovější desce BeagleBone Black. Kvalifikovaní inženýři se tak budou zprvu rozhodovat podle výkonu, zatímco pro nadšence může být přitažlivější nižší cena produktů Arduino založených na AVR.

Má-li uživatel malé nebo vůbec žádné zkušenosti s některou z typových řad desek a nechce používat konkrétní řadu procesorů, o výběru desky pravděpodobně rozhodne výkon procesoru. A to buďto kvůli potřebnému výkonu, nebo kvůli tomu, jak se vyšší výkon, který je spjatý s řadou BeagleBone, promítne do ceny. Situace není zcela jednoznačná, když některé Arduino desky s procesory RISC běží na několika stech MHz.

I když mají nadšenci, výrobci a inženýři pro výběr desky velmi odlišná kritéria, všichni při jejím výběru postupují logicky. Dobrá zpráva je, že s rostoucím počtem desek na trhu si uživatelé, od nadšenců až po kvalifikované inženýry, budou moci vybírat z přibývajícího počtu výrobků, které budou splňovat jejich konkrétní potřeby.