Sulautettujen laitteiden kehitykseen on olemassa laaja valikoima valmiita korttimoduuleja, mutta milloin valita valmis kortti ja milloin suunnitella kaikki alusta asti itse? Ja pitääkö valita ARM- vai x86-arkkitehtuuri?
Artikkelin on kirjoittanut Tobias Zilly, joka työskentelee Rutronikilla tallennus-, näyttö- ja korttituotteiden myyntipäällikkönä. Tobias aloitti uransa sähköteknikkona. Rutronikin palvelukseen hän tuli 2007 ja nykyisessä tehtävässään hän on työskennellyt vuodesta 2012 alkaen. |
Pitäisikö nykyään valta toiminnoiltaan optimoitu peruskortti ja siihen liitettävät lisämoduulit vai suunnitella koko ratkaisu täysin itse? Tämä on vaikeampi kysymys kuin koskaan aikaisemmin. Markkinoilta löytyy sekä x86- että ARM-moduuliratkaisuja, joilla kaikilla on omat erityiset etunsa ja vaatimuksensa.
Täysin omat kehityshankkeet – prosessoreja myöten – ovat paljon monimutkaisempia ja siksi paljon laajempia ja kalliimpia hankkeita kuin korttimoduulit, jotka on suunniteltu tukemaan erilaisia moduuleja. Yleensä muutaman kerroksen kortti riittää tuomaan moduulien vaatimat liitännät, mikä yksinkertaistaa suunnittelua ja alentaa kustannuksia.
Räätälöidyt suunnittelut
Jos valitaan täysin räätälöity suunnittelu, tärkeään rooliin nousevat sovellusten koko ja monimutkaisuus, mutta myös vaadittavien liitäntöjen sijoittelu, määrä ja tyyppi. Päätös suosia erikoisliittimiä on usein kriittinen koko järjestelmän suunnittelun ja johdotusten hallinnan kannalta. Myös valitulle prosessoritekniikalle ja sen suorituskyvylle asettuu hyvin monimutkaisia vaatimuksia. Nämä edellyttävät erikoisliitäntöjen tai vaatimuksista riippuvaisia teholähteitä, jotka myös pitää optimoida kulloistenkin vaatimusten mukaan.
Koska näin pitkälle räätälöidyt korttiprojektit on yleensä suunniteltu yhtä sovellusta varten, ne voidaan kustannusten suhteen optimoida hyvin aikaisin, joka suunnitteluvaiheessa. Mikäli tarkoitus on kattaa mahdollisimman paljon sovelluksia, mikä vaatii monia eri liitäntöjä, tämä optimointi on mahdollista vain rajoitetusti.
Toisaalta räätälöidyn ratkaisun kehityskustannukset ovat erityisen korkeita. Vaaditaan paljon aikaa ja erikoistunutta osaamista erityisesti prosessoreissa ja sen liitännöissä, CPU:n käynnistämisessä laitteistossa ja ohjelmistossa, käynnistyslataimissa ja laiteajureissa. Pitää varmistaa kaikkien tarvittavien komponenttien saanti ja niiden eliniän päättyminen pitää ottaa huomioon jo suunnitteluvaiheessa. Tarvitaan myös erittäin monimutkaisia PCB-suunnittelutyökaluja impedanssin valvontatyökaluineen ja monikerroskorttien suunnittelun työkaluineen. Ilmaiset työkalut eivät nykyään enää riitä. Sen jälkeen kun protopiirit on suunniteltu ja valmistettu testaukseen, ne pitää analysoida mittauslaitteilla, kuten spektri-, USB- ja CAN-analysaattoreilla, sekä ARM-DS5-debuggaustyökaluilla ja/tai DSTREAM-laitteistolla. Sovellusvaatimuksista riippuen voidaan edellisten lisäksi tarvita erikoistestilaitteita. Mikäli kortit aiotaan valmistaa itse, tarvitaan myös pintoliitosrobotteja, jotka kykenevät käsittelemään ainakin liitinnastoitukseltaan 0,5-millisiä BGA-koteloita.
Näin tiukat vaatimukset oikeuttavat oman kehitystyön taloudellisesti vain, mikäli tuotantomäärät ovat suuremmat. Riippuen kokonaisratkaisun saavutettavasta hintatasosta puhutaan yleensä tuhansien volyymeistä.
Moduulipohjaiset suunnittelut
Täysin kustomoituihin suunnitteluihin verrattuna moduulipohjaiset sunnittelut päätyvät markkinoille nopeammin. Tuotteiden saatavuus on suhteellisen pitkä – 7-10 vuotta prosessoriarkkitehtuurista riippuen – ja päivityksiä voi tehdä myös vaihtamalla moduuleja peruskortilla. Esimerkiksi lisää suorituskykyä saadaan vaihtamalla Inteli Core i3 -moduuli Intel Core i7 -moduuliin. Olettaen että molemmat moduulit ovat x86-pohjaisia, ohjelmistoon tarvitaan vain pieniä muutoksia, jos niitäkään. Moduulin valmistaja antaa suunnittelutukea peruskortin kehityksessä ja apua ongelmien kuten sijoittelun kanssa. Tämä osoittaa, kuinka paljon lähestymistavassa yhdistyy maksimaalinen joustavuus laajaan tuotevaihteluun.
Moduulipohjainen suunnittelu onnistuu paljon alhaisimmilla vaatimuksilla kuin täysin kustomoitu ratkaisu, koska useimmat kriittiset järjestelmät kuten nopeat väylät ja prosessoriliitännät toteutetaan kokonaan moduulein. Asiakkaan ei näin tarvitse tehdä töitä niiden parissa. Yleiset liitännät kuten ethernet, USB, GART-grafiikkaliitäntä, videoliitännät ja monet muut voidaan toteuttaa suhteellisen pienellä työmäärällä.
Avainominaisuuksien ja kustannusten arviointi mahdollisissa toteutuksissa on helpompaa, mikäli suunnittelijalla on tietty tietämys markkinasta. Käyttöjärjestelmien ja binääriajurien toimintaan liittyvä osaaminen on sen sijaan täysin keskeistä.
Nämä tekevät yksinkertaisemman peruskortin kehityskustannuksista huomattavasti alhaisemmat kuin täysin räätälöidyissä suunnitteluissa.
X86 vai ARM?
Mikäli päätetään käyttää moduulipohjaista ratkaisua, on tehtävä päätös siitä mitä alustaa käytetään. X86-pohjaiset ratkaisut tunnetaan hyvin esimerkiksi COM Express- ja Qseven-standardien kautta. Erityisesti COM Express on ollut suosittu vuosia ja sen markkinaosuus on suuri. Standardointi takaa sen, että perusratkaisu voidaan päivittää uusimpiin teknologioihin pitän aikaa vaihtamalla moduulit.
X86-alueen standardimoduulit hyötyvät erityisen laajasta korttientarjonnasta koko piirisarjojen elinkaaren ajan. Niitä on joustavaa sekä ylös- että alaspäin. Suuri markkinaosuus todistaa jo itsessään niiden suuresta luotettavuudesta ja siitä, että suunnitteluosaamista on tarjolla paljon. Jokaista moduulityyppiä valmistaa useampi yritys ja yleensä standardin sisällä tuotteet ovat nastoitukseltaan yhteensopivia. Standardin ansiosta moduuleja voi verrata toisiinsa jo suunnitteluvaiheessa, mikä helpottaa asiakkaan valintaprosessia.
ARM-leirin standardimoduulit eivät millään tapaa häviä vertailussa x86-ratkaisuihin verrattuna. Tarjolla on valtava, tuotteen koko elinkaaren kattava tuotevalikoima sekä useita päivitysvaihtoehtoja. ARM-korteilla on myös suuri markkinaosuus, mikä todistaa niiden luotettavuuden puolesta.
Qseven- ja SMARC-standardeissa on erilaiset kokoonpanot ja niihin liittyvät BSP-paketit (board support packages) ajureineen. Vaikka kortit standardien sisällä ovat mekaanisesti vaihdettavia, ohjelmistotuki vaihtelee valmistajien välillä suuresti. Yleisesti ottaen tarjolla on vain muutama erilainen järjestelmäpiiri, joiden pitkäaikainen saatavuus on taattu. Tämä rajoittaa korttien joustavuutta x86-kortteihin verrattuna merkittävästi.
Epästandardit ARM-moduulit
Standardiratkaisujen ulkopuolelta markkinoilta löytyy monia asiakaskohtaisia ARM-pohjaisia moduuleja. Kuluttajille ja opiskelijoille suunnitellut Raspberry Pi -kortin lisäksi on olemassa ammattitason teollisuus- ja lääketieteellisiin projekteihin suunnitteltuja kortteja, joissa tuotteen elinkaari on keskimääräistä pidempi. Esimerkiksi ARM-spesialisti F&S takaa jopa 15 vuoden saatavuuden omalle Freescale-pohjaiselle efusA9-moduulilleen. Joustavuus taataan päivitysmahdollisuudella ylös- ja alaspäin suorituskyvyn, liitäntävaatimusten ja kulloisenkin tuoteperheen mukaisesti.
Eri valmistajilta tulevat moduulit eivät kuitenkaan ole keskenään yhteensopivia, eivät sähköisesti, mekaanisesti eivätkä ohjelmistoiltaan. Parhaimmillaan valmistajan tuotteet tietyn tuoteperheen sisällä ovat sähköisesti ja mekaanisesti yhteensopivia. Ammattitason ARM-pohjaisten moduulien valmistajat toimittavat itse BSP-paketit ja ajurit useimmille käyttöjärjestelmille ja ne myös tarjoavat tukea laite- ja ohjelmistosuunnitteluun.
Oli ratkaisu sitten kehitetty kokonaan talon sisällä tai tehty peruskortin ja lukuisten lisämoduuleista varaa, kaikille vaatimuksille löytyy oikea ratkaisu. Kaikkiin vaihtoehtoihin pätee yksi sääntö: ne vaativat optimointiosaamista kulloisenkin sovelluksen vaatimusten mukaisesti, mit ei saa aliarvioida. Jos suoraan hyllyltä tulevat korttitietokoneeseen tai standardiemolevyyn erustuva ratkaisu riittää, sitä kannattaa ilman muuta harkita. Valitsi asiakas lopulta minkä ratkaisun tahansa, Rutronik on valmiina tukemaan suunnittelua komponenteilla ja pitkälle integroiduilla valmiilla ratkaisuilla.