Sulautetuissa suunnitteluissa on tullut aika siirtyä 8- ja 16-bittisistä ohjaimista 32-bittisiin. Sen myötä saadaan lisää suorituskykyä, parempi energiatehokkuus ja tiheämpi koodi. 32-bittisyyteen liittyvät virhekäsitykset on syytä korjata.
Artikkelin ovat kirjoittaneet Ankur Tomar ja Anthony Huereca. Ankur on teknisen markkinoinnin johtaja Farnell element 14:ssa ja Anthony komponenttijakelun teknisistä resursseista vastaava johtaja Freescale. |
Element14-yhteisö on nyt tukenut suunnittelijoita kahdeksan vuoden ajan. Tuona aikana mikro-ohjainten markkinoilla on käynnistynyt muutos, kun teknologian edistyminen ja 32-bittisten arkkitehtuurien lanseeraaminen on tuonut kehittäjille mahdollisuuden viedä suunnittelunsa pidemmälle kuin koskaan aikaisemmin.
Iso osa maailman sulautetuista laitteista operoi vanhoilla 8- ja 16-bittisillä mikro-ohjaimilla. Monet sulautettujen järjestelmien suunnittelijat kasvoivat näiden vanhempien arkkitehtuurin parissa ja niiden alhainen hinta, pieni virrankulutus ja arkkitehtuurin yksinkertaisuus ovat pitäneet suosion korkeana vaikka 32-bittisyys on tullut tarjolle. Kun 32-bittisten laitteiden suosio kasvaa, lisääntyy myös tarve kouluttaa suunnittelijoita uusien arkkitehtuurien eroista, hyödyistä ja mahdollisuuksista.
Jokaisen uuden projektin yhteydessä kysymykset lisääntyvät: Mitä menetän, jos pysyttelen 8-bittisissä? Mitä 32-bittinen arkkitehtuuri minulle oikeasti tuo lisää? Ja mitkä 32-bittiset ohjaimet hallitsevat nyt sulautettujen ohjaimien myyntitilastoja, onko tullut aika siirtyä ennen kuin jään kehityksestä jälkeen?
Onneksi tällä alalla innovointi ei koskaan pääty. Freescalen, Atmelin, NXP:n ja muiden ohjaimista löytyvän ARM Cortex-M0+-ytimen myötä 32-bittiset prosessorit ovat päässeet tasolle, jossa ne vastaavat vanhojen 8- ja 16-bittisten ohjaimien vahvuuksiin, ja tuovat lisäksi paljon etuja jotka tekevät päivittämisen hyvin houkuttelevaksi. Cortex-M0+-ydin suunniteltiin nimenomaan tekemään 32-bittiseen siirtymisestä houkuttelevampaa kuin aikaisemmin. Sen avulla kehittäjä voi viedä projektinsa uudelle tasolle.
Miksi 32-bittinen
Jos insinööriopiskelijalta kysyy, miksi 8-bittisestä pitäisi siirtyä 32-bittiseen, saa nopean vastauksen: Bittejä on neljä kertaa enemmän, ja enemmän on aina parempi! Todellisuudessa asia ei ole aivan näin yksinkertainen, mutta 32-bittisten mikro-ohjainten käyttämiseen on paljon järkisyitä, myös "perinteisissä" 8- ja 16-bittisissä projekteissa.
SUUREMPI SUORITUSKYKY: 32-bittiseen siirtyminen voi kasvattaa suorituskyvyn 2-40-kertaiseksi megahertsiä kohti nykyisiin 8- ja 16-bittisiin arkkitehtuureihin verrattuna. 32-bittinen laskenta on paljon nopeampaa, yhden kellojakson 32-bittinen kertolasku samoin. Tämä avaa käyttöön uusia mahdollisuuksia ohjelmistopinojen (USB, bluetooth, jne.), RTOSien, edistyneiden käyttöliittymien ja monen muun myötä. Lisäksi sovelluksen keskeisille ominaisuuksille jää vielä paljon laskentatehoa.
ENERGIATEHOKKUUS: Cortex-M0+-ydin on myös erittäin tehokas. 8- tai 16-bittisiin kilpailijoihin verrattuna se saa kaksinkertaisesti pisteitä Coremark/mA -testissä. Tämän tehokkaan ytimen avulla järjestelmä voi käyttää vähemmän energiaa suorittamalla tehtävänsä loppuun nopeammin, ja menemällä takaisin sleep-tilaan. Myös sleep-tiloissa virrantarve on hämmästyttävän alhainen, jopa alle yhden mikroampeerin Freescale Kinetis L -ohjaimen syvimmässä unitilassa, joita on kaikkiaan yhdeksän. Älykkäästi suunnitteltujen oheislaitemoduulien avulla Kinetis-piireissä voidaan tehdä paljon enemmän prosessoriydintä herättämättä, mikä säästää vielä enemmän tehoa.
LISÄÄNTYNYT KOODIN TIHEYS: Voi tuntua oudolta, että 32-bittinen prosessori johtaisin koodin pienempään kokoon. Cortex-Mo+-ydi käyttää Thunb-2-käskyjä, joista monet vievät flashilla vain 16 bittiä. Kannattaa myös muistaa, että monet käskyt 8-bittisillä prossoreilla ovat pidempiä kuin 8 bittiä. Lisäksi monissa sovelluksissa 8-bittisten käskyjen tavut voidaan korvata yhdellä käskyllä 32-bittisessä mikro-ohjaimessa, kuten esimerkiksi 16-bittisessä kertolaskussa.
Tuloksena on, että koodintiheyttä voidaan merkittävästi parantaa siirtymällä 32-bittisiin Thumb-2-käskyihin.
SKAALAUTUVUUS: Enää ei tietyn valmistajan tiettyyn arkkitehtuuriin sidottu assembly-kieli 8-bittisessä maailmassa rajoita projektin ja suorituskykyvaatimusten muuttuessa. Painopisteen siirtyminen C-kieleen 32-bittisissä lyhentää kehitykseen ja vianetsintään kuluvaa aikaa, ja tekee koodin kääntämisen uusille piireille helpommaksi. 32-bittisten ARM-ohjainten levitessä joka puolella maailmaa ohjelmistoekosysteemi on valtava, ja kasvaa edelleen.
Mutta mutta... tämä kaikki kuulostaa hienolta, mutta tarvitsen pientä kokoa, alhaista hintaa ja helppokäyttöisyyttä, jonka 8/16-bittiset ohjaimet antavat sovellukseeni. Onneksi kaikki on muuttunut 32-bittisissä mikro-ohjaimissa.
KOKO: Freescalen Kinetis KLO3-perheestä löytyy piirejä jopa 1,6 x 2 millin koossa, mikä on maailman pienin ARM-mikro-ohjain. 32 bitin suorituskyky mahtuu hyvin pieneen tilaan.
KUSTANNUS: Kun piirien hinnat alkavat 49 sentistä (USD), 32-bittisten käyttö on järkevää myös sovelluksissa joissa hinta oli aiemmin rajoittava tekijä. Ja koska koodintiheys on suurempi, tarvitaan vähemmän flash-muistia.
KOMPLEKSISUUS: Ehkä hieman yllättäen 32-bittinen arkkitehtuuri voi joissakin suhteissa olla yksinkertaisempi. 32-bittisen osoiteavaruuden myötä ei ole tarvetta sivuttamiselle (paging) ja muistipaikkoihin voidaan osoittaa suoraan. Cortex-M0+-arkkitehtuurissa on täysiverinen keskeytysohjain, mikä yksinkertaistaa keskeytysten hallintaa. Kun kuvaan lisätään jälkipuskuri helpompaan debuggaukseen ja vain 56 käskyä niille, jotka haluavat jatkaa assemblyn käyttöä, hyppy 32-bittiseen kompleksisuuteen on enemmänkin pieni askel.
Kehittäminen 32-bittisillä
Yksi 32-bittisen ARM-ytimen käyttämisen suurimpia etuja on se valtava määrä ohjelmistoja ja laitteistoja, joka arkkitehtuurille on tarjolla. Esimerkiksi yhteensopivia kääntäjiä ja debuggereita on valtavasti. Raudan ja ohjelmiston uudelleenkäytöstä tulee helpompaa, kun projektit skaalautuvat ytimien - kuten Cortex-M0+:n ja tehokkaaman Cortex-M4:n - välillä. Freescalen Kinetis-ohjainperheen satojen sirujen nasta- ja moduuliyhteensopivuuden myötä liikkuminen ylös ja alaspäin suorituskyvyssä ja flashin määrässä on hyvin helppoa.
Freescale vie 32-bittisyyden mahdollisuuden vieläkin pidemmälle Processor Expert -ohjelmistonmallinnustyökalullaan ja MQX-Lite -reaaliaikakäyttöjärjestelmällään (RTOS), sillä niiden avulla uusien 32-bittisten projektien kimppuun pääsee pikavauhtia. Processor Expert on ilmainen, graafisella käyttöliittymällä varustettu GUI-työkalu, joka lyhentää koodingenerointiin ja kustomoitujen ajurien kehitykseen kuluvaa aikaa merkittävästi.
MQX-Lite RTOS on suositun MQX-RTOSin yksinkertaistettu versio, joka on suunniteltu erityisesti alle neljän kilotavun muistilla varustetuille mikro-ohjaimille. RTOS-ajurit saadaan Processor Expert -mallinnustyökalusta. Koska se perustuu MQX-RTOSiin, päivittäminen myöhemmin tehokkaampiin ohjaimiin on helppoa. MQX-Lite tulee ilmaiseksi Processor Expertin mukana, ja USB-väylän sisältäville laitteille tarjolla on ilmainen USB-protokollapino.
Seuraava askel
Kun nyt haluat kokeilla 32-bittisyyden mahdollisuuksia, mistä aloitat?
Onneksi on olemassa iso joukko kortteja, jotka toimivat erinomaisina 32-bittisinä evalointialustoina. Ne voi lisäksi ostaa pitsaa halvemmalla. FRDM-KL05Z sopii täydellisesti varpaiden kastamiseen 32-bittiseen maailmaan ja on yhteensopiva Freescalen 8-bittisten S08-piirien kanssa. FRDM-KL26Z lisää USB:n ja edistyneempiä oheislaitemoduuleja, ja FRDM-KL46Z vie kaiken vielä pidemmälle USB- ja LCD-tuellaan. Ja jos 5 voltin IO ja sähköinen kestävyys ovat sovelluksesi kannalta kriittisiä ominaisuuksia, FRDM-KE02 on juuri oikea kortti sinulle.
Kaikilla näillä minttukaramellirasian kokoisilla korteilla on Cortex-M0+-ydin ja niillä voi hyödyntää Processor Expert -työkalua, MQX-Lite -reaaliaikakäyttöjärjestelmää, ilmaisia USB-pinoja, ja paljon muuta. Ja koska kortille on valmiiksi istutettu OpenSDA-debuggauspiiristö, yksinkertainen USB-kaapeli tuo kaiken tarvittavan debuggausta, sarjaliikennettä ja flash-ohjelmointia varten.
Kaikki kortit, kuten Freescalen koko Freedom-kehitysalustojen tuoteryhmä, ovat Arduino-yhteensopivia ja tuovat helpon pääsyn digitaalisiin ja analogisiin IO-pinneihin. MEMS Sensors Evaluation Kit on hyvä esimerkki siitä, mihin kaikkeen alustalla kykenee. Siinä Freescalen FRDM-KL25Z -kehitysalustaan on yhdistetty MEMS Sensor Evaluation -paketti, jonka myötä Kinetis L -mikro-ohjaimilla päästään kiinni valikoimaan huipputason antureita.
Läpi koko oppimisprosessin on tärkeää pitää yhteyttä muihin suunnittelijoihin ja tässä element14-yhteisö tuo arvokasta tukea. Usein saatavilla on toinen suunnittelija, joka on jo löytänyt ratkaisuun käsillä olevaan ongelmaasi. Juuri tällaisessa online-yhteisö voi olla erinomainen resurssi.
32-bittinen tulevaisuus
Teknologian kehitys ei koskaan pääty ja 32-bittisten mikro-ohjainten yleistyminen sulautetuissa sovelluksissa vain kiihtyy. Elemetn14-yhteisössä me tuemme kehittäjiä suunnittelun jokaisessa vaiheessa kehitysalutoista prototyyppeihin ja tuotantoon varmistaaksemme, että suunnittelijat tuntevat olonsa varmoiksi valitessaan siirtymisen uudempaan 32-bittiseen arkkitehtuuriin. Paremman suorituskyvyn, erinomaisen energiatehokkuuden ja tiheämmän koodin takia nyt on aika ottaa ensimmäinen askel kohti parempaa ja kirkkaampaa 32-bittistä tulevaisuutta.