Gyors prototípusfejlesztés 32 bites MCU-alkalmazásokhoz
Az ötlettől a gyártásra kész végtermékig vezető út egyik legtöbb időt felemésztő szakasza a működő modell, a prototípus fizikai megvalósítása. A rendszertervezés során tömbvázlatot készítünk sokszor tipikus feladatokat végrehajtó blokkokból, és ha ezek a blokkok készen, működő, letesztelt állapotban – és ami a legfontosabb: egymással kompatibilis interfészekkel – megvásárolhatók, az ötlet használhatóságát tesztelő működő modell hardverfejlesztés nélkül, percek alatt összeállítható.
Mikrovezérlő-termékeinek kiegészítéseként a Microchip hardver- és szoftverfejlesztést támogató eszközöket is forgalmaz. A mikrovezérlő-eszközcsalád ezeken keresztül mutat be mintaalkalmazásokat és kínál prototípusfejlesztő eszközöket az ipari és technológiai szektor számára az olyan végtermék-tulajdonságok megvalósításához, mint – egyebek közt – a kommunikációs képesség, a kis energiafogyasztás, vagy a funkcionális biztonság. A hardver- és szoftverfejlesztő eszközök lehetővé teszik számunkra, hogy gyorsan létrehozhassunk működő prototípusokat anélkül, hogy azok NyÁK-lapját a valóságban is megterveztük volna.
Ennek a hardver-fejlesztőeszköz-kínálatnak a részeként ajánlja a Microchip a Curiosity Nano Development Board- és a Curiosity Development Board-család eszközeinek választékát. A Curiosity Nano Development Kit termékek alacsony árfekvésű, kis méretű fejlesztőkészletek, amelyek a kártyára telepítve tartalmazzák a hibakereső és programozó képességeket is. Ezek egy Nano Base Board elnevezésű „alaplapon” vannak elhelyezve, és a Click Board gyűjtőnevű, változatos összetételű perifériális bővítőkártya-választékból és más professzionális bővítőkártyákból kiválasztott rendszerelemekkel egészíthetők ki szenzorokkal, érintésérzékeny humán interfészekkel, megjelenítőkkel vagy más kapcsolattartásra szolgáló interfészekkel, amelyek bármely adott alkalmazás kidolgozásához felhasználhatók. Ezek a nanokészletek úgy vannak kialakítva, hogy a Microchip 8, 16 és 32 bites mikrovezérlő-családjainak bármelyikével együttműködhessenek, ezáltal tehát bármilyen mikrovezérlő-alkalmazáshoz „skálázható” kialakítást tegyenek lehetővé.
A Curiosity Development Board eszközök néhány járulékos képességet is hordoznak a kártyára építve, mint például az audiocsatlakozó, a grafikus interfész és csatlakozó, vagy az internetkapcsolat megvalósításához szükséges csatlakozók. A Mikroe1-csatlakozókon kívül fel vannak szerelve XPRO2-csatlakozókkal is, míg néhány Curiosity Board-eszköz Arduino-csatlakozókkal is, amelyek révén az Arduino-kártyarendszerrel együttműködve is használhatók alkalmazások megvalósítására.
A hardvert kiegészítő szoftvereszközök
A szoftverfejlesztő platformok területén a Microchip négy fő eszközt kínál. Az első és legfontosabb az MPLAB® X IDE, egy integrált fejlesztőkörnyezet, amely az összes Microchip digitális jelvezérlő3- és mikrokontroller-termékeihez használható beágyazott alkalmazások fejlesztésére.
Egy másik szoftvereszközcsalád az MPLAB XC Compiler megnevezésű fordítóprogram, amely segítségével a magas szintű C vagy C++ forráskódot az aktuálisan használt mikrovezérlő gépikód-szintű (assembly) nyelvére fordítja le.
Ugyancsak fontos szoftvereszköz az MPLAB Harmony szoftverfejlesztő keretrendszer. Ez része a Microchip nagyobb MPLAB X ökoszisztémájának, amely beágyazott alkalmazások fejlesztését támogatja a Microchip 32 bites mikrovezérlőivel. A Harmony szoftverkészlet tartalmaz néhány bemutatóalkalmazást, amely érzékelteti, hogyan kell hozzáfogni az alkalmazás- és prototípusfejlesztéshez, továbbá rétegelt felépítésű és moduláris programkönyvtárakat kínál ezekhez. Tartalmaz ezenkívül perifériális könyvtárakat is, amelyek interfészként szolgálnak a hardverregiszter-hozzáféréshez, valamint közbenső szintű (middleware) könyvtárakat, absztrakt felépítésű perifériameghajtó (driver) programokat és operációsrendszer-szolgáltatások kódjait is.
Léteznek továbbá grafikus fejlesztőeszközök is, amelyek lehetővé teszik a fejlesztő számára projektek létrehozását, és a kódgenerálást grafikus felhasználói interfészen keresztül.
Mindez megtalálható és letölthető a GitHub-platform segítségével, a teljes MPLAB Harmony v3 szoftverfejlesztő keretrendszert is beleértve. A grafikus fejlesztőeszközök egyike az MCC, a Microchip kódkonfiguráló szoftvere, amely most már támogatja a 32 bites mikrovezérlőket is, és ezzel olyan általánosan használható eszközt ad a termékfejlesztő kezébe, amely az összes mikrovezérlő-család tagjain egységesen használható. Ezzel az eszközzel a felhasználó konfigurálhatja a programkódját, projekteket hozhat létre, és a szoftverkönyvtár elemeit használó programkódot is generálhat.
A továbbiakban vázolunk három fejlesztési mintaprojektet, de előtte még áttekintünk bizonyos erőforrásokat, amelyek hasznosak lehetnek ezekben a példaprojektekben. Az első az MPLAB Harmony Reference Apps nevű szoftvercsomag, amely a GitHub-on (https://github.com) megtalálható „szoftvergyűjtemények” (közismert nevükön repository-k) egyikéből letölthető. Ez a repository számos „önmagában futó” alkalmazást tartalmaz, amelyek a 32 bites mikrokontrollerek képességeit és alkalmazási lehetőségeit mutatják be. A referenciaalkalmazásaik a kezdőlépéseket demonstráló egyszerű megoldásoktól a sokkal összetettebb és szolgáltatások sokaságát megvalósító alkalmazásokig terjednek, és többek között bemutatják a MikroElektronika Click Board fejlesztőkártyák és az XPRO-kártyák használatát is. A referenciaalkalmazások részeként megtalálható egy demonstrációs alkalmazás a MikroElektronika Click Board eszközeihez, amely azt is bemutatja, hogyan kell ezeket kezelni a Harmony fejlesztői keretszoftver alatt.
Példák a gyors prototípusfejlesztésre
Az első példa egy ventilátornak a szobahőmérséklettől függő vezérlését valósítja meg az 1. ábrán látható módon.
1. ábra
A ventilátor alacsony, közepes és magas fordulatszámon futhat, az aktuális fokozat kiválasztása a szobahőmérséklet alapján történik. A példánkban PIC32CM MC00 Curiosity Nano értékelőkészletet használunk, amelyben egy Cortex M0+mikrovezérlő egy tűzfalfunkciót ellátó eszközön keresztül kapcsolódik a MikroElektronika Click Board I2C-csatlakozófelületéhez. Két Click Boardot használunk, az egyik a Weather Click, a másik a Fan Click. Az előbbi a környezet hőmérsékletét, légnyomását és nedvességtartalmát méri (amelyből a mintaalkalmazás csak a hőmérsékletadatot használja – A szerk. megj.), az utóbbi pedig a ventilátor forgási sebességét vezérli. A két Click Board I2C-interfészen keresztül csatlakozik a mikrokontrollerhez, amelyhez azonban csak egy I2C-portot használ fel, mivel mindkét Click Board ehhez csatlakozik, és az eltérő perifériacímek különböztetik meg őket. Az alkalmazás először alapállapotba vezérli, „inicializálja” ezeket a Click Boardokat, majd a Weather-modulból az I2C-buszon keresztül kiolvassa a környezet hőmérsékletét. A hőmérsékleti adatot összehasonlítja a kívánt értékkel, és ha a hőmérséklet meghaladja a 25 °C-t, továbbá, ha a közepes fordulatszám alkalmazását a felhasználó is elfogadja, ennek megfelelően állítja be a ventilátor működési fokozatát. Ehhez hasonlóan kezeli a ventilátor bekapcsolására, kikapcsolására vagy más sebességfokozaton történő futtatására irányuló felhasználói igényeket is.
A második példaprojekt (2. ábra) egy személy szívfrekvenciájának figyelésére szolgáló készülék prototípusának létrehozására irányul, amely segítséget nyújthat akár az alvási mintázatok elemzéséhez, vagy a fizikai teljesítőképesség megfigyeléséhez változatos sporttevékenységek közben is. A példában egy Cortex M4 mikrokontrollert tartalmazó SAM E51 Curiosity Nano kártyát használunk a vezérlőfunkciót ellátó alaplapként, amelyhez egy Heart Rate Click Board megnevezésű szívmonitor-perifériakártyát és egy eINK Bundle Click Board kijelzőmodult illesztünk. A Heart Rate 9 Click Board önállóan méri a szívfrekvenciát, és soros, UART-interfészen át továbbítja azt a központi mikrovezérlő-modulhoz. Az eINK Click Board egy kis energiafogyasztású megjelenítővel egészíti ki a rendszert, amely a mikrokontrollerhez SPI-interfészen keresztül csatlakozik.
Miután ezek a modulok inicializálva lettek, és az eINK Click kijelzőn az alapállapotú megjelenítési kép látható, a felhasználó egy gomb megnyomásával indítja a mérést, majd az ujját a szívfrekvencia-érzékelőre helyezi. A mikrovezérlő a pulzusjelet beolvassa, és annak frekvenciáját a kisfogyasztású kijelzőn megjeleníti.
2. ábra
A harmadik példaprojekt első része (3. ábra) az első projektnek egy kiegészítése, amelyben megjelenítési képességgel ruházzuk fel a szobahőmérséklet-alapú vezérléssel ellátott ventilátort. A rendszervázlaton a pontozott határvonalú négyszög jelzi azt az eINK Click Bundle modult, amit az első példa blokkdiagramjához adtunk hozzá. Az alkalmazás folyamata változatlan marad. Ha már megmértük az aktuális hőmérséklet-adatot, a ventilátor továbbra is az alacsony, közepes vagy magas fordulatszámok valamelyikében működik, miközben a mért hőmérséklet és a ventilátor beállított sebességfokozata olvasható le a kis energiafogyasztású megjelenítőről. Ennek a projektnek a következő fázisa (4. ábra) vezetékmentes adattovábbítási képességgel ruházza fel a rendszert, lehetőséget adva a felhasználónak ahhoz, hogy egy BLE4-alapú Android okostelefonnal vezérelhesse a működést: képes legyen utasításokat adni a ventilátornak, hogy ki- és bekapcsolhassa, vagy hőmérséklet-alapú vezérléssel futtathassa azt.
A harmadik példaprojekt első és második fázisa egyaránt beintegrálható valamilyen okos háztartási rendszerbe is, teljes távvezérlési és -megjelenítési képességgel.
3. ábra
4. ábra
Alkalmazásfejlesztés
Úgy véljük, hasznos lenne áttekinteni azt a három lépést (5. ábra), amit az alkalmazásfejlesztés során célszerű követni.
5. ábra
Az első lépés egy projekt létrehozása az MPLAB X IDE integrált fejlesztőkörnyezetben a kiválasztott mikrovezérlőre, például a SAM E51-re az MCC segítségével. Ezután konfigurálnunk kell az órajelet, a perifériákat és a megfelelő csatlakozópontokat. Ha egy már létező példaalkalmazást kívánunk továbbfejleszteni, nem szükséges új projektet létrehozni, helyette egyszerűen megnyitjuk a már meglévőt az MPLAB X IDE fejlesztőkörnyezetben.
A második lépés az alkalmazáskód létrehozása. Ezt megelőzően célszerű áttekinteni a létező MikroElektronika Click Board példaalkalmazásokat. Ezekben a példákban felhasználunk bizonyos rutinokat, amelyek be tudják építeni a Click kártyák funkcionalitásait a célul kitűzött alkalmazásba. Ezeket lényegében csak hozzá kell adni a végterméktől elvárt képességeket megvalósító alkalmazáshoz.
A harmadik lépés már az alkalmazás futtatását és a kimenetek kiértékelését is magába foglalja. Ehhez el kell indítani az MBD5 (Microchip Bluetooth Data) néven ismert mobilalkalmazást, és amikor az a Bluetooth-hozzáférés engedélyezését kéri, azt meg kell adni. A „BLE UART” ikon megérintése után megmutatja azoknak az eszközöknek a típusát, amelyeket képes felismerni. Válasszuk a BM70 letapogatási módot, amely felsorolja az összes elérhető BLE-alapú eszközt. Keressük meg ezek közt a transzparens UART-bemutatóeszközt, és ha látjuk ezt, meg lehet szakítani a keresési folyamatot és az ikonjának megérintésével elindíthatjuk a transzparens UART demóprogramot. Ezután az alkalmazás kapcsolatot létesít az eszközzel, és engedélyezi az adatkommunikáció útvonalát. Miután az adatátvitel ikonra kattintottunk, engedélyeznünk kell az adatátvitelt. Ezután egy olyan képernyőre jutunk, ahol beírhatjuk a készülék vezérléséhez szükséges parancsokat: ki- vagy bekapcsolhatjuk a ventilátort, vagy egy adott sebességfokozattal működtethetjük. Ezeket a parancsokat szöveges üzeneteken keresztül érjük el. Ha például ki szeretné kapcsolni a ventilátort, akkor írja be a „BLE control fan off” parancsot, és kattintson a küldés (SEND) gombra. Ha a hőmérsékletfüggő üzemmódot kívánja futtatni, írja be a „temp control” parancsot, majd miután azt a SEND gomb megnyomásával elküldte a ventilátornak, az a szoba hőmérsékletének figyelembevételével működik tovább. A hőmérsékletet úgy is változtathatja, hogy az ujját az érzékelőre helyezi, és a ventilátor ennek megfelelően választ sebességfokozatot az alacsony, közepes vagy magas sebességfokozatok közül a szoba hőmérséklete alapján.
Az MPLAB Harmony szoftverfejlesztő platform
A Microchip ajánlatában szerepel jó néhány erőforrás az alkalmazásfejlesztés támogatására, mint például a grafikus és audió programcsomagok, titkosító könyvtárak és egyebek.
Végezetül megemlítjük, hogy a gyors hardver-prototípusfejlesztést szolgáló Curiosity és Curiosity Nano kártyacsaládokon túl a Microchip néhány még átfogóbb szolgáltatást nyújtó hardverplatformot is kínál, mint az Xplained Pro XPLORE-sorozatú, vagy akár a Curiosity-család Ultra-sorozatú fejlesztőkártyái.
Szerzők: Syed Thaseemuddin – fejlesztőmérnök és
Shridhar Channagiri – termékmarketing vezető, Microchip Technology Inc.
További információ: http://www.microchip.com/harmony
Jegyzetek
1 A MikroElektronika szerb cég által a szabványosítás szándékával kifejlesztett csatlakozórendszer, amely széles körű, gyártófüggetlen elterjedése esetén a beágyazott alkalmazások kényelmesebb, gyorsabb és költséghatékonyabb megvalósítását teszi lehetővé. (A szerk. megj.)
2 De facto szabvány mobilkommunikációs eszközök csatlakoztatására. (A szerk. megj.)
3 A DSC (Digital Signal Controller – digitális jelvezérlő) egyszerű „szorzatösszegző-típusú” jelfeldolgozási műveletek gyors végrehajtására optimalizált célprocesszor (DSP), amely a mikrokontrollerekhez hasonlóan kiegészítő hardverképességekkel van felszerelve. (A szerk. megj.)
4 BLE: Bluetooth Low Energy, a Bluetooth vezetékmentes adatátviteli szabvány része, amely 3 ms-on belül képes a kapcsolat létrehozására akár 100 m (vagy az adatátviteli sebesség lecsökkentése árán 200 m) hatótávolságig. (A ford. megj.)