Témakör: IoT
Bluetooth IoT-alkalmazások prototípusainak gyors elkészítése
Megjelent: 2021. szeptember 09.
Az intelligens, egymáshoz kapcsolódó termékek iránti kereslet tág lehetőségeket kínál azon fejlesztők számára, akik az ötletekből gyorsan létre tudnak hozni dolgok internete (IoT)-alapú alkalmazásokat. Az energiatakarékos processzorok, a vezeték nélküli csatlakozási lehetőségek és a hardveres perifériák széles skálája szilárd alapot nyújt a megfelelő, alacsony fogyasztású, gyártásra kész fejlesztések megvalósításához.
A termék kialakításának korai szakaszában azonban a fejlesztőknek rugalmas fejlesztési platformra van szükségük az azonos processzorosztályon, csatlakoztathatósági alrendszereken és perifériákon alapuló prototípusok elkészítéséhez. A működő prototípusok gyors elkészítésének és a funkciók egyszerű hozzáadásának lehetősége alapvető fontosságú a tervezési koncepciók korai igazolásához és az egyedi szoftver kifejlesztésének támogatásához.
Ez a cikk bemutatja, hogy a fejlesztők hogyan használhatnak Silicon Labs gyártmányú hardvert és szoftvert speciális, energiatakarékos, csatlakoztatott IoT-eszközök prototípusainak gyors elkészítésére széles választékban rendelkezésre álló készen kapható kiegészítőkártyák felhasználásával.
Gyors prototípus-készítés
Az akkumulátorral táplált, vezeték nélküli IoT-eszközökben rejlő új lehetőségek felkutatásakor a fejlesztők munkája gyakran megrekedhet számos részlet miatt, amely egy működő fejlesztőplatform létrehozásához kell. Integrált alrendszereikkel a korszerű System-on-Chip (SoC – rendszer-chip) alkatrészek képezhetik egy-egy ilyen platform magját, de a fejlesztőknek még mindig egy teljes rendszert kell köréjük építeni.
Ahhoz, hogy az alkatrészek számára megfelelő fejlesztőplatformot tudjanak létrehozni, a fejlesztőknek nemcsak a robusztus teljesítményre és a hosszabb akkumulátor-élettartamra vonatkozó alapvető követelményeknek kell megfelelniük, hanem rugalmasságot is kell biztosítaniuk az egyes alkalmazások egyedi követelményeinek támogatásához. A Silicon Labs BGM220-EK4314A Explorer Kit megfelel az igények ezen kombinációjának, lehetővé téve a fejlesztők számára, hogy a saját fejlesztési platformjuk megépítésével járó részletekkel való foglalkozás helyett az új tervezési koncepciók gyors prototipizálására összpontosítsanak.
Rugalmas gyorsfejlesztő platform
A Bluetooth-alapú alkalmazások fejlesztéséhez olcsó platformot kínáló BGM220-EK4314A Explorer Kit a SiLabs BGM220P Wireless Gecko modulját (BGM220PC22HNA), egy kártyára integrált SEGGER J-Link hibakeresővel, egy nyomógombbal, egy fénykibocsátó diódával (LED) és több bővítési lehetőséggel kombinálja (1. ábra).
1. ábra A SiLabs BGM220-EK4314A Explorer Kit egy olyan kombinációt nyújt a feldolgozási teljesítmény, az energiafogyasztás szabályozása és a konfigurációs rugalmasság terén, amely a prototípusok gyors elkészítéséhez és a különböző perifériás hardverkonfigurációk kiértékeléséhez kell (Kép: Silicon Laboratories)
A BGM220P modul egy teljes körű megoldás a kisméretű, akkumulátorral táplált IoT-eszközök számára. Integrált EFR32BG22 Blue Gecko SoC-modulja rendkívül alacsony energiafogyasztással, Bluetooth beesési szög (AoA) és kilépési szög (AoD)-alapú, és egy méter alatti helymeghatározási pontossággal rendelkezik, amelyek mindegyikére szükség van a népszerű Bluetooth alkalmazások egyre szélesebb körében, beleértve többek között az eszközkövető címkéket, az intelligens ajtózárakat, a fitneszt és sok más területet.
Az önálló rendszerként is működőképes BGM220P modul – EFR32BG22 SoC-t tartalmaz 512 kB flash memóriával, 32 kB RAM memóriával, nagyfrekvenciás (HF) és kisfrekvenciás (LF) kristályokkal (XTAL), valamint egy 2,4 GHz-es illesztőhálózattal és kerámia antennával – a vezeték nélküli kapcsolathoz (2. ábra).
2. ábra A SiLabs önálló rendszerként is működőképes BGM220P modulja az EFR32BG22 Blue Gecko SoC-t kombinálja egy Bluetooth-kompatibilis eszköz megvalósításához szükséges további komponensekkel (Kép: Silicon Laboratories)
Amellett, hogy a modul képes egy önálló host szerepét betölteni kis helyigényű IoT-fejlesztéseknél hálózati társprocesszorként (NCP) is használható egy olyan hostprocesszor számára, amely a modul UART interfészén keresztül csatlakozik. Integrált Bluetooth-stack önálló kialakítások esetén vezeték nélküli szolgáltatások végrehajtását végzi a modulon futó alkalmazások számára, vagy NCP-kialakításokban működve a hosttól kapott parancsokat dolgozza fel.
Energiatakarékos vezeték nélküli SoC
A BGM220P modul EFR32BG22 vezeték nélküli Bluetooth SoC-je 32 bites Arm Cortex-M33 magot, 2,4 GHz-es rádiót, biztonsági, energiagazdálkodási alrendszereket, valamint több időzítőt és interfészopciót tartalmaz. A kifejezetten ultraalacsony fogyasztású, akkumulátorral táplált eszközökhöz tervezett EFR32BG22 SoC több olyan energiagazdálkodási funkciót használ, amelyek akár tíz évig is lehetővé teszik az egy gombelemről történő működtetést.
A mindössze egyetlen külső feszültségforrásról működő SoC a belső tápfeszültségek előállítására a saját beépített energiagazdálkodási egységét használja fel. Működés közben az energiafogyasztás-szabályozó egység vezérli az SoC energiagazdálkodási üzemmódjai (EM) közötti átkapcsolásokat.
Az egyes üzemmódok tovább csökkentik az energiafogyasztást azáltal, hogy egyre kevesebb aktív funkcionális blokk táplálását tartják fenn az SoC aktív üzemmódból (EM0) alvó üzemmódba (EM1), mélyalvó üzemmódba (EM2), leállított üzemmódba (EM3) vagy kikapcsolt üzemmódba (EM4) léptetésével (3. ábra).
3. ábra Az EFR32BG22 SoC energiafogyasztás-szabályozó egysége vezérli az EM0, EM1, EM2, EM3 és EM4 energiagazdálkodási üzemmódok közötti átmeneteket (színkód a kép alján) (Kép: Silicon Laboratories)
Aktív üzemmódban (EM0) 76,8 MHz-en és 3 V-on, a belső DC-DC átalakítót használva az SoC áramfelvétele 27 µA/MHz. Az EM0 a normál működési mód, egyben az egyetlen olyan, amelyben a Cortex M33 processzormag és az összes perifériablokk elérhető.
Minden periféria elérhető alvó üzemmódban (EM1), de kevesebb marad aktív, amikor a rendszer még alacsonyabb fogyasztású üzemmódokba lép. Az alacsonyabb fogyasztású üzemmódokban az aktív órajelek frekvenciájának és a funkcionális blokkok számának csökkentése jelentősen alacsonyabb fogyasztási szinteket eredményez:
- 17 µA/MHz alvó üzemmódban (EM1);
- 1,40 µA mélyalvó üzemmódban (EM2), 32 kB RAM megőrzésével és LFXO-val generált valós idejű órával (RTC);
- 1,05 µA leállított üzemmódban (EM3), 8 kB RAM megőrzésével és az SoC integrált ultraalacsony frekvenciájú, 1 kHz-es ellenállás-kondenzátor (RC) oszcillátorával (ULFRCO) generált RTC-vel;
- 0,17 µA kikapcsolt üzemmódban (EM4).
Egyes akkumulátorral táplált eszközöknek többre van szükségük, mint az, hogy a processzor működjön alacsony fogyasztású üzemmódban. Számos Bluetooth-kompatibilis alkalmazás jellemzően hosszabb ideig kevés vagy semmilyen tevékenységet sem folytat, de a tevékenység újraindulásakor rövid késleltetésű (gyors) válaszkészséget igényel. Valójában, még ha egy alkalmazásnak enyhébb késleltetési követelményei is vannak, a lassú ébredési idő energia pazarlásával jár, mivel a processzor az ébredési folyamat befejezése és az aktív üzemmódba lépés (vagy a nagyobb fogyasztású üzemmódból kisebb fogyasztású üzemmódba lépés befejezése) közben nem végez hasznos munkát.
Az aktív időszakok közötti idő csökkenésével az alacsony fogyasztású alvó üzemmód használata akár kontraproduktívvá is válhat, ha a lassú ébredés vagy a működési üzemmódba való belépési idő több energiát használ fel, mint amennyit a processzor fogyasztana, ha az inaktív időszak alatt magasabb fogyasztású üzemmódban maradna. Emiatt az akkumulátor élettartamának optimalizálásán dolgozó fejlesztők néha magasabb fogyasztású üzemmódban tartják a processzort annál, mint amennyit az alkalmazás feldolgozási igényei megkövetelnek.
Gyorsabb ébredési és belépési idővel rendelkező processzor használatával jobban kihasználhatók a processzor alacsonyabb fogyasztású üzemmódjai. EM1-ben az EFG32BG22 három órajel/1,24 µs alatt ébred fel, amíg a belépési ideje 1,29 µs, ami EM4-ben 8,81 ms-ra, illetve 9,96 µs-ra emelkedik (1. táblázat).
1. táblázat Belépési idők az EFG32BG22 SoC ébredésekor és a működési üzemmódokba való belépésekor (Táblázat: Silicon Labs)
A processzor ébresztésére a tevékenység folytatása céljából használt módszer szintén jelentősen befolyásolhatja az akkumulátor élettartamát. Bár némely alkalmazások – például ipariak – megkövetelik, hogy a rendszerek a szigorú időszakos időzítés biztosítása érdekében lekérdezéses feldolgozást használjanak, a fogyasztói területeken számos alkalmazás egy-egy adott tevékenységre eseményalapú feldolgozás révén reagál. Eseményalapú alkalmazások esetében a lekérdezéses módszerek használata például jelentősen csökkentheti az akkumulátor élettartamát, amikor a processzor többször is feleslegesen ébred fel.
Amint sok érzékelőalapú kialakítás is használja a wake-on-interrupt funkciót arra, hogy elkerülje a processzornak csak az aktivitás ellenőrzése miatti ismételt felébresztését, az EFG32BG22 SoC rádiós alrendszerébe épített wake-on-RF funkció hasonló megszakításvezérelt megközelítést tesz lehetővé. A fejlesztők így alacsonyabb fogyasztású üzemmódban tarthatják a processzort, amíg rádiófrekvenciás (RF) aktivitás nem jelentkezik.
A gyakorlatban az EFG32BG22 vezeték nélküli SoC-t ultraalacsony fogyasztású EM2, EM3 vagy EM4 üzemmódba helyezik, és RF-energia észlelésekor a wake-on-RF képességére támaszkodnak az SoC felébresztéséhez. A csupán a küszöbérték feletti energia érzékelése közben az RFSENSE funkció 131 nA áramot vesz fel. A szelektívebb RFSENSE üzemmód valamivel nagyobb (138 nA) áramfogyasztással jár, de ebben az üzemmódban az RFSENSE szűri a bejövő RF-jeleket, hogy elkerülje az érvényes RF-jel helyett a rádiófrekvenciás zajra való ébredést.
Egyes esetekben az EFG32BG22 SoC-nek egyáltalán nem kell felébresztenie a processzormagot, hogy reagáljon a külső eseményekre: a SiLabs perifériás reflexrendszere (Peripheral Reflex System – PRS) lehetővé teszi, hogy a perifériák a processzormag felébresztése nélkül is reagáljanak az eseményekre, és működni tudjanak. A perifériák közvetlenül kommunikálhatnak egymással, és funkcióik a komplex funkcionalitás biztosítása érdekében kombinálhatók. Az alacsonyabb fogyasztású üzemmódokkal rendelkező PRS-képességek használatával a fejlesztők jelentősen csökkenthetik az energiafogyasztást anélkül, hogy sérülnének a kritikus funkciók, például az érzékelőadatok gyűjtése.
Beépített hibakeresés és egyszerű bővítés
A BGM220 Explorer Kit kártyába építve a BGM220P modul minden olyan energiagazdálkodási és feldolgozási képességet nyújt, mint amelyet az EFR32BG22 SoC is az akkumulátorral táplált Bluetooth fejlesztések számára. Ha gyorsan kell prototípusokat készíteni az új tervezési koncepciók kivizsgálásához, akkor a kártya egyéb funkciói is segítik a fejlesztés felgyorsítását.
A lap USB Micro-B csatlakozóján keresztül elérhető fedélzeti SEGGER J-Link hibakereső lehetővé teszi a kód letöltését és a hibakeresést, valamint egy virtuális COM-portot a gazdakonzol eléréséhez. A hibakereső támogatja a SiLabs csomagkövetési interfész (PTI) képességét is a vezeték nélküli hálózaton keresztül továbbított vagy fogadott csomagok elemzéséhez.
A gyors prototípusgyártáshoz a lap többféle bővítési lehetőséget támogat, ami rugalmasságot biztosít olyan új tervezési ötletek felfedezéséhez, amelyekhez az érzékelők, működtetők, csatlakozási lehetőségek és egyéb perifériák különböző kombinációira van szükség. A több gyártó által kínált mikroBUS bővítőlapok és a Qwiic Connect System hardverek széles választékából merítve a fejlesztők gyorsan konfigurálhatják a fejlesztési platformot az egyes alkalmazásokhoz.
A kártya mikroBUS aljzatába csatlakoztatva egy mikroBUS kártya I2C, SPI vagy UART interfészeken keresztül csatlakozik a BGM220P modulhoz. A Qwiic-csatlakozó biztosítja a Qwiic-rendszer I2C-interfészét egy vagy több Qwiic-kártya csatlakoztatásához legfeljebb körülbelül négy lábnyi (1,22 m) távolságra. A nagyobb távolságokon történő csatlakoztatáshoz a fejlesztők használhatják a SparkFun QwiicBus EndPoint kártyát (COM-16988), amely differenciális jelátvitelt használ az I2C jelintegritás fenntartásához akár 100 lábnyi (30,48 m) távolságon is.
Gyors alkalmazásfejlesztés
A SiLabs gyors bővítési koncepciót kínál az alkalmazási szoftverek fejlesztésére. A vállalat az egyedi fejlesztésekhez szükséges támogatócsomagok, illesztőprogramok, könyvtárak és fejlécek mellett számos mintaalkalmazást kínál a Simplicity Studio fejlesztőkörnyezetébe csomagolva, valamint további projekteket, amelyek a SiLabs GitHub-tárhelyein érhetők el. A fejlesztők a szenzoros alkalmazások fejlesztését a csomagban található hőmérsékleti mintaalkalmazással kezdhetik, amely az EFR32BG22 SoC belső hőmérséklet-érzékelőjét használja adatforrásként.
A szabványos Bluetooth Health Temperature szolgáltatás köré épülő hőmérsékleti alkalmazás a SiLabs szoftverarchitektúrájára épülő általános Bluetooth IoT-alkalmazáson keresztül történő feldolgozási folyamatot mutatja be. Az alkalmazás egy sor inicializálási rutint hív meg a rendszer- és az alkalmazásszolgáltatások számára, amelyek a megszakításkezelőket és a visszahívásokat állítják be. Az inicializálás befejezése után az alkalmazás végtelenített ciklusban várakozik az eseményekre (1. lista).
1. lista A SiLabs Bluetooth mintaalkalmazásai egy általános végrehajtási keretrendszert használnak, amelyben egy végtelenített ciklus teszi lehetővé, hogy a rendszer és az alkalmazás inicializálását követően a visszahívások és az eseménykezelők feldolgozzák a rendszer és az alkalmazás műveleteit
(Kód: Silicon Laboratories)
Ebben az alkalmazásban, amikor az inicializálás során beállított időzítés letelik, egy kapcsolódó visszahívási rutin hőmérsékletmérést végez. Miután a fejlesztők elkészítették az alkalmazást, használhatják a SiLabs EFR Connect alkalmazását – egy általános Bluetooth mobilalkalmazást, amely minden Silicon Labs Bluetooth készlettel és eszközzel működik. Az egyéni alkalmazások keretrendszerének biztosítása mellett az alkalmazás segíti a fejlesztést azáltal, hogy áttekintést nyújt az adott Bluetooth-szolgáltatáshoz, például az ebben a mintaalkalmazásban használt Bluetooth-hőmérőhöz kapcsolódó támogatott jellemzőkről (4. ábra).
4. ábra A SiLabs EFR Connect alkalmazás megjeleníti az alkalmazásban használt Bluetooth szolgáltatások jellemzőit, ami nemcsak a prototípusok fejlesztését gyorsítja fel, hanem keretet biztosít az egyéni alkalmazások fejlesztéséhez is (Kép: Silicon Laboratories)
A Simplicity Studio-ban a fejlesztők számos különböző Bluetooth-alkalmazási példát importálhatnak, amelyek különböző felhasználási forgatókönyveket mutatnak be, beleértve a Qwiic vagy mikroBUS kártyákkal épített terveket, külön-külön vagy kombinálva. Például egy mintaalkalmazás, amely a szabványos Bluetooth Heart Rate (HR) és Bluetooth Pulse Oximeter (SpO2) szolgáltatások használatát mutatja be a MikroElektronika MIKROE-4037 Heart Rate 2 Click mikroBUS kártyával kombinálva, amely a Maxim Integrated MAX86161 bioérzékelőt tartalmazza. A MAX86161 egy teljes, alacsony fogyasztású alrendszert kínál, amely képes pontos HR és SpO2 méréseket biztosítani az I2C interfészen keresztül csatlakoztatott gazdaprocesszor számára. (A MAX86161 használatáról bővebben lásd: Igazi vezeték nélküli fitneszhallgató építése – 1. rész: Szívritmus és SpO2 mérés).
Mivel további meghajtóprogramra és a hőmérséklet-alkalmazásnál igényesebb feldolgozási algoritmusra van szükség, ez az alkalmazás a IoT-eszközök szoftveralkalmazás-architektúrájának összetettebb bemutatását teszi lehetővé (5. ábra).
5. ábra Az olyan mintaprojektek, mint a HR/SpO2 alkalmazás, segítenek felgyorsítani a prototípusok fejlesztését, miközben bemutatják az alacsony fogyasztású Bluetooth-érzékelős alkalmazások tipikus folyamatát
(Kép: Silicon Laboratories)
A fenti hőmérsékleti alkalmazáshoz hasonlóan ez az alkalmazás is egy sor inicializálási rutinra támaszkodik a rendszer és az alkalmazás szolgáltatásainak beállításához. Ha a hőmérsékleti alkalmazásban az app_process_action rutin üres, ez az alkalmazás hozzáad egy, a hrm_loop rutinra vonatkozó hívást az app_process_action rutinon belül. Ez a hrm_loop meghívását eredményezi az 1. listában korábban bemutatott felső szintű végtelenített ciklus minden egyes lépésénél. Ezenkívül egy szoftveres időzítőt is használnak a HR és SpO2 adatok rendszeres frissítésére.
A hrm_loop rutin viszont meghívja a maxm86161_hrm_process-t, amely mintákat vesz a segédfüggvények által karbantartott várólistából, és átadja őket egy mintafeldolgozó rutinnak. Ez viszont meghív egy pár rutint, a maxm86161_hrm_frame_process és a maxm86161_hrm_spo2_frame_process rutinokat, amelyek algoritmusokat hajtanak végre a HR és SpO2 eredmények validálására és generálására. A fejlesztők a korábban említett EFR Connect alkalmazás segítségével tekinthetik meg az eredményeket más szolgáltatási jellemzőkkel együtt.
Egy másik minta-szoftveralkalmazás azt mutatja, hogy a fejlesztők hogyan építhetnek egy olyan összetett alkalmazásra, mint ez a HR/SpO2 alkalmazás, ha bővítik a hardverplatformot. A BGM220-EK4314A Explorer Kit lapka és a SiLabs szoftveres ökoszisztéma használatával a meglévő hardverre és szoftverre való építés viszonylag egyszerű. A SiLabs ezt a megközelítést egy olyan mintaalkalmazással mutatja be, amely a fenti HR/SpO2 alkalmazáshoz használt hardver/szoftver platformot OLED kijelzővel egészíti ki. Ebben a példában egy SparkFun OLED kijelző Qwiic kiegészítő lap (LCD-14532) csatlakozik a lap Qwiic csatlakozójához, míg a MikroElektronika Heart Rate 2 Click kiegészítőlap a helyén marad az előző HR/SpO2 mintaalkalmazásból (6. ábra).
6. ábra A fejlesztők gyorsan hozzáadhatnak funkciókat egy meglévő, a BGM220-EK4314A Explorer Kit kártyára épített fejlesztéshez – itt egy OLED kijelzőt adnak hozzá egy meglévő HR/SpO2 prototípushoz (Kép: Silicon Laboratories)
A HR/SpO2 alkalmazás ezen kibővített változatában a szoftveralkalmazás – az OLED kártyához tartozó illesztőprogram és a támogató szolgáltatások hozzáadásán kívül – nagyrészt változatlan marad. A HR/SpO2 alkalmazás korábban említett szoftveres időzítője a hrm_update_display függvényt hívja meg, amely megjeleníti a HR és SpO2 adatokat (2. lista).
2. lista A készlet és a szoftveres fejlesztőkörnyezet használatával a fejlesztők egy meglévő HR/SpO2 alkalmazást egy kijelzőkártya csatlakoztatásával
(és a hrm_update_display függvényhívás hozzáadásán túl) minimális szoftveres változtatásokkal bővítve kijelzőfunkciókat adhatnak hozzá a meglévő alkalmazás szoftveres időzítőkezelőjéhez (Kód: Silicon Laboratories)
Ez a bővíthető hardver- és szoftvermegközelítés működőképes IoT-alkalmazások gyors létrehozását teszi lehetővé. Mivel mind a hardver, mind a szoftver könnyen hozzáadható vagy eltávolítható, könnyebben megvizsgálhatók az új fejlesztési megoldások, és kiértékelhetők az alternatív konfigurációk.
Összegzés
A népszerű alkalmazások középpontjában találhatók az akkumulátorral táplált Bluetooth-kompatibilis IoT-eszközök, amelyek kulcsfontosságú szerepet játszanak a nagyobb funkcionalitás és a hosszabb élettartam iránti folyamatos fejlesztési igények kielégítésében. A fejlesztők számára ezen egymással ellentétes tulajdonságoknak való megfelelés megköveteli az új fejlesztések gyors kivizsgálásának, illetve az alternatív tervezési koncepciók kiértékelésének képességét. A Silicon Labs fejlesztőkészlete és a hozzá tartozó szoftverek segítségével a fejlesztők gyorsan prototípusokat tudnak készíteni, és szükség szerint adhatnak hozzá ezekhez vagy távolíthatnak el belőlük hardverelemeket, hogy megfeleljenek az adott alkalmazás követelményeinek.