Prototypujte rychle aplikace IoT s Bluetooth pomocí vývojové sady a běžně dostupných doplňkových desek

By Stephen Evanczuk

Contributed By DigiKey's North American Editors

Poptávka po inteligentních připojených produktech nabízí široké příležitosti pro vývojáře, kteří jsou schopni rychle proměnit koncepty ve fungující aplikace internetu věcí (IoT). Dostupnost energeticky účinných procesorů, možnosti bezdrátového připojení a široká škála hardwarových periferií nabízí robustní základ pro implementaci vhodných návrhů s nízkou spotřebou a připravených k výrobě.

V rané fázi definování produktu však vývojáři potřebují flexibilní vývojovou platformu pro sestavování rychlých prototypů založených na stejné třídě procesorů, subsystémů konektivity a periferií. Schopnost rychle sestavit fungující prototypy a přidávat snadno funkce je nezbytná pro včasné ověření konceptu a pro podporu vývoje vlastního softwaru.

V tomto článku si ukážeme, jak mohou vývojáři používat hardware a software společnosti Silicon Labs k rychlému vytvoření specializovaných energeticky účinných připojených prototypů zařízení IoT pomocí širokého výběru snadno dostupných doplňkových desek.

Umožnění rychlého prototypování

Při zkoumání nových možností bezdrátových zařízení IoT napájených pomocí baterií se vývojáři mohou ocitnout ztraceni v množství detailů, které jsou součástí vytváření fungující vývojové platformy. Díky svým integrovaným subsystémům mohou jádro takové platformy poskytnout vyspělá zařízení systému na čipu („system-on-chip“, SoC), ale vývojáři kolem nich přesto potřebují vybudovat kompletní systém.

K vybudování vhodné vývojové platformy pro tato zařízení potřebují vývojáři nejen splnit základní požadavky na robustní výkon a prodlouženou výdrž baterie, ale musí také vybudovat flexibilitu pro podporu specifických požadavků jednotlivých aplikací. Průzkumná souprava BGM220-EK4314A společnosti Silicon Labs splňuje tuto kombinaci potřeb a umožňuje vývojářům soustředit se spíše na rychlé prototypování nových designových konceptů spíše než na řešení detailů při budování vlastní vývojové platformy.

Flexibilní platforma pro rychlý vývoj

Průzkumná souprava BGM220-EK4314A, která nabízí nízkonákladovou platformu pro vývoj aplikací založených na technologii Bluetooth, kombinuje bezdrátový modul Gecko BGM220P společnosti SiLabs (BGM220PC22HNA), vestavěný debugger SEGGER J-Link, tlačítko, světelnou diodu (LED) a několik možností rozšíření (obrázek 1).

Obrázek průzkumné soupravy BGM220-EK4314A společnosti SiLabsObrázek 1: Průzkumná souprava BGM220-EK4314A společnosti SiLabs poskytuje kombinaci výkonu zpracování, správy energie a flexibility konfigurace potřebné k rychlému vytváření prototypů a vyhodnocování různých konfigurací periferního hardwaru. (Zdroj obrázku: společnost Silicon Labs)

Modul BGM220P slouží jako kompletní řešení pro malá zařízení IoT napájená bateriemi. Jeho integrovaný systém Blue Gecko SoC EFR32BG22 se vyznačuje ultra nízkou spotřebou energie, funkcemi úhlu dopadu signálu (AoA) a úhlu odchozího signálu (AoD) Bluetooth a přesností určení polohy na méně než jeden metr – to vše je zapotřebí u rostoucí řady oblíbených aplikací Bluetooth, včetně čipů pro sledování majetku, chytrých dveřních zámků, fitness a dalšího.

Modul BGM220P, který je schopen fungovat jako samostatný systém, kombinuje SoC EFR32BG22 s 512 kB paměti flash, 32 kB paměti RAM, vysokofrekvenčními (HF) a nízkofrekvenčními (LF) krystaly (XTAL) a 2,4 GHz odpovídající sítě a keramickou anténou pro bezdrátové připojení (obrázek 2).

Schéma modulu BGM220P společnosti SiLabsObrázek 2: Modul BGM220P společnosti SiLabs, který může sloužit jako samostatný systém, kombinuje systém Blue Gecko SoC EFR32BG22 s dalšími komponenty potřebnými k implementaci zařízení s podporou Bluetooth. (Zdroj obrázku: společnost Silicon Labs)

Kromě schopnosti sloužit jako samostatný hostitel pro malé IoT návrhy může modul sloužit také jako síťový koprocesor (NCP) pro hostitelský procesor připojený přes rozhraní UART modulu. Jeho integrovaný zásobník Bluetooth provádí bezdrátové služby pro aplikace běžící na modulu v samostatných provedeních nebo zpracovává příkazy přijaté od hostitele, když běží v provedeních NCP.

Energeticky efektivní bezdrátové SoC

Bezdrátový čip SoC Bluetooth EFR32BG22 modulu BGM220P integruje 32bitové jádro Cortex-M33 Arm, 2,4 GHz rádiové frekvence, subsystémy pro zabezpečení, správu energie a několik časovačů a možností rozhraní. Model SoC EFR32BG22, vytvořený speciálně pro návrhy s napájením na baterie a s ultra nízkou spotřebou energie, využívá několik funkcí pro správu energie, které umožňují provoz knoflíkové baterie až po deset let.

SoC funguje z jediného externího zdroje napětí a využívá svou interní jednotku pro správu energie ke generování interních napájecích napětí. Během provozu řídí přechody mezi pěti energetickými režimy (EM) SoC jednotka správy energie. Každý režim dále snižuje spotřebu energie tím, že udržuje postupně méně aktivních funkčních bloků, protože SoC přechází z aktivního režimu (EM0) do režimu spánku (EM1), režimu hlubokého spánku (EM2), režimu zastavení (EM3) nebo režimu vypnutí (EM4) (obrázek 3).

Schéma SoC EFR32BG22 společnosti (kliknutím obrázek zvětšíte)Obrázek 3: Jednotka pro správu energie SoC EFR32BG22 řídí přechody mezi energetickými režimy EM0, EM1, EM2, EM3 a EM4 (barevný kód ve spodní části obrázku). (Zdroj obrázku: společnost Silicon Labs)

V aktivním režimu (EM0) při 76,8 MHz a 3 voltech čerpá SoC pomocí svého interního převodníku DC/DC 27 μA/MHz. EM0 je normální provozní režim a je jediný, kde je k dispozici jádro procesoru Cortex M33 a všechny periferní bloky.

Všechny periferie jsou k dispozici v režimu spánku (EM1). Jakmile systém přejde do režimů s ještě nižší spotřebou energie, zbývá ještě méně aktivních periférií. V režimech s nižším výkonem vede snížení aktivních taktů a funkčních bloků k výrazně nižším úrovním spotřeby energie:

  • 17 μA/MHz v režimu spánku (EM1)
  • 1,40 μA v režimu hlubokého spánku (EM2) s retencí RAM 32 kB a hodinami reálného času (RTC) běžícími z LFXO
  • 1,05 μA v režimu zastavení (EM3) s retencí RAM 8 kB a spuštěním RTC z integrovaného oscilátoru rezistor-kondenzátor (RC) s ultra nízkou frekvencí 1 kHz (ULFRCO) čipu SoC
  • 0,17 μA v režimu vypnutí (EM4)

Některá zařízení napájená bateriemi potřebují více než možnost spouštět procesor v provozních režimech s nízkou spotřebou. Mnoho aplikací podporujících technologii Bluetooth obvykle vykazuje delší období s malou nebo žádnou aktivitou, ale při obnovení aktivity vyžaduje odezvu s nízkou latencí. I když má aplikace mírnější požadavky na latenci, pomalý čas probouzení ve skutečnosti plýtvá energií, protože procesor neprovádí žádnou užitečnou práci, neboť dokončí proces probuzení a přejde do aktivního režimu (nebo dokončí proces přechodu z režimu vyšší spotřeby do režimu nižší spotřeby).

Jak se doba mezi aktivními obdobími zmenšuje, může se použití režimu spánku s nízkou spotřebou stát dokonce kontraproduktivní, když doba pomalého probuzení nebo přechodu do režimu s jinou spotřebou energie spotřebovává víc energie, než by se spotřebovalo, pokud by procesor zůstal během neaktivního období v režimu vyšší spotřeby. Výsledkem je, že vývojáři, kteří pracují na optimalizaci výdrže baterie, budou někdy udržovat procesor v režimu vyšší spotřeby, než jaký vyžadují potřeby zpracovávání aplikace.

Díky použití procesoru s rychlejšími časy probouzení a přechodů mohou vývojáři plněji využívat režimy procesoru s nižší spotřebou energie. V režimu EM1 se model EFG32BG22 probouzí ve třech taktech / 1,24 µs a jeho doba přechodu je 1,29 µs. Tyto hodnoty v režimu EM4 stoupají na 8,81 ms, resp. 9,96 µs (tabulka 1).

Režim spotřeby energie Probuzení (spuštění z paměti RAM/flash) Přechod (spouštění z paměti flash)
EM1 3 takty / 1,24 μs 1,29 μs
EM2 5,15/13,22 μs 5,23 μs
EM3 5,15/13,21 μs 5,23 μs
EM4 8,81 ms (pouze paměť flash) 9,96 μs

Tabulka 1: Doby probouzení a přechodu do režimu napájení pro SoC EFG32BG22. (Zdroj obrázku: společnost Silicon Labs)

Metoda použitá k probuzení procesoru při obnovení aktivity může také významně ovlivnit výdrž baterie. Ačkoli některé aplikace – například průmyslové – vyžadují, aby systémy používaly zpracovávání s dotazováním kvůli přísnému periodickému načasování, mnoho aplikací ve spotřebitelských oblastech používá zpracovávání založené na událostech v reakci na konkrétní aktivitu. Použití metod dotazování pro aplikace založené na událostech může například výrazně snížit výdrž baterie, když se procesor opakovaně zbytečně probouzí.

Stejně jako mnoho návrhů založených na senzorech používá funkci probuzení při přerušení, aby se zabránilo opakovanému probouzení procesoru jen kvůli kontrole aktivity. Funkce probuzení při RF zabudovaná do rádiového subsystému SoC EFG32BG22 umožňuje podobný přístup založený na přerušení. Toto řešenní umožňuje vývojářům udržovat procesor v režimu nižší spotřeby energie, dokud nedojde k vysokofrekvenční (RF) aktivitě.

V praxi uvedou vývojáři bezdrátový SoC EFG32BG22 do režimu EM2, EM3 nebo EM4 s velmi nízkou spotřebou a spoléhají se na schopnost SoC probuzení při RF, dojde-li k detekci vysokofrekvenční energie. Při jednoduché detekci energie nad určitou prahovou hodnotou spotřebuje funkce RFSENSE 131 nA. Selektivnější režim RFSENSE odebírá o něco vyšší proud při 138 nA, ale v tomto režimu RFSENSE filtruje příchozí RF signály, aby se zabránilo probuzení při RF šumu namísto platného RF signálu.

V některých případech nemusí SoC EFG32BG22 vůbec potřebovat probudit jádro procesoru, aby reagoval na externí události: Periferní reflexní systém („Peripheral Reflex System“, PRS) společnosti SiLabs umožňuje periferním zařízením reagovat na události a pracovat bez probuzení jádra procesoru. Periferní zařízení mohou navzájem komunikovat přímo a jejich funkce lze kombinovat tak, aby byla výsledkem komplexní funkce. Využitím funkcí PRS v režimech s nízkou spotřebou energie mohou vývojáři podstatně snížit spotřebu energie bez kompromisů v kritických funkcích, jako je získávání dat ze senzorů.

Integrované ladění a snadné rozšiřování

Modul BGM220P, zabudovaný do desky průzkumné soupravy BGM220, přináší kompletní sadu funkcí pro správu a zpracování energie SoC EFR32BG22 do návrhů Bluetooth napájených bateriemi. Je-li zapotřebí vytvářet prototypy rychle, aby bylo možné prozkoumat nové koncepty designu, pomohou urychlit vývoj další funkce desky.

Vestavěný Debugger J-Link společnosti SEGGER umožňuje posouzením přes konektor desky USB Micro B stahování a ladění kódu a nabízí také virtuální port COM pro přístup k hostitelské konzole. Debugger také podporuje funkci rozhraní pro sledování paketů (PTI) společnosti SiLabs pro analýzu paketů odesílaných nebo přijímaných přes bezdrátovou síť.

Podpora desky pro mnoho možností rozšíření nabízí k rychlému prototypování flexibilitu prozkoumávat nové nápady k návrhům, které vyžadují různé kombinace senzorů, aktuátorů, možností připojení a dalších periferií. Výběrem ze široké škály dostupných možností doplňkových desek mikroBUS a hardwaru aQwiic Connect System od více dodavatelů, mohou vývojáři rychle nakonfigurovat vývojovou platformu pro každou aplikaci.

Po připojení do zásuvky mikroBUS desky se deska mikroBUS připojí k modulu BGM220P přes rozhraní I2C, SPI nebo UART. Konektor Qwiic poskytuje rozhraní I2C systému Qwiic pro připojení jedné nebo více desek Qwiic na vzdálenost až přibližně čtyři stopy (1,2 metru). K připojení na delší vzdálenosti mohou vývojáři použít desku QwiicBus EndPoint společnosti SparkFun (COM-16988), která používá diferenciální signalizaci k udržení integrity signálu I2C na vzdálenost až přibližně 100 stop (30 metrů).

Rychlý vývoj aplikací

Společnost SiLabs využívá k vývoji aplikačního softwaru koncept rychlého rozšíření. Spolu s balíčky fixačních čepů desek, ovladači, knihovnami a záhlavími pro vlastní vývoj nabízí společnost několik ukázkových aplikací, které jsou součástí vývojového prostředí Simplicity Studio stejně jako další projekty, které jsou k dispozici v úložištích GitHub společnosti SiLabs. Ve skutečnosti mohou vývojáři začít zkoumat vývoj aplikací senzorů pomocí dodávané ukázkové teplotní aplikace, která jako zdroj dat používá interní teplotní senzor SoC EFR32BG22.

Teplotní aplikace založená na standardní službě Bluetooth Health Temperature nabízí okamžitou ukázku toku zpracování prostřednictvím obecné aplikace IoT Bluetooth postavené na softwarové architektuře společnosti SiLabs. Aplikace volá řadu inicializačních rutin pro systémové služby a aplikační služby, které nastavují obslužné rutiny a zpětná volání přerušení. Po dokončení inicializace se aplikace nastaví do nekonečné smyčky čekající na události (zápis 1).

Kopírovat
int main(void)
{
  // Initialize Silicon Labs device, system, service(s) and protocol stack(s).
  // Note that if the kernel is present, processing task(s) will be created by
  // this call.
  sl_system_init();



  // Initialize the application. For example, create periodic timer(s) or
  // task(s) if the kernel is present.
  app_init();



#if defined(SL_CATALOG_KERNEL_PRESENT)
  // Start the kernel. Task(s) created in app_init() will start running.
  sl_system_kernel_start();
#else // SL_CATALOG_KERNEL_PRESENT
  while (1) {
    // Do not remove this call: Silicon Labs components process action routine
    // must be called from the super loop.
    sl_system_process_action();



    // Application process.
    app_process_action();



#if defined(SL_CATALOG_POWER_MANAGER_PRESENT)
    // Let the CPU go to sleep if the system allows it.
    sl_power_manager_sleep();
#endif
  }
#endif // SL_CATALOG_KERNEL_PRESENT
}
Zápis 1: Ukázkové aplikace Bluetooth společnosti SiLabs používají obecný rámec spouštění, kde nekonečná smyčka umožňuje zpětným zavoláním a obslužným rutinám událostí zpracovat systémové a aplikační akce po inicializaci. (Zdroj kódu: společnost Silicon Labs)

Zatímco v této aplikaci probíhá odpočítávání časovače nastaveného během inicializace, přidružená rutina zpětného volání provádí měření teploty. Jakmile vývojáři vytvoří aplikaci a osadí desku pamětí flash, mohou používat aplikaci EFR Connect společnosti SiLabs – obecnou mobilní aplikaci Bluetooth, která funguje se všemi soupravami a zařízeními Bluetooth společnosti Silicon Labs. Spolu s poskytováním rámce pro vlastní aplikace pomáhá aplikace vývoji tím, že poskytuje pohled na podporované charakteristiky spojené se službou Bluetooth, jako je služba Bluetooth Health Thermometer používaná v této ukázkové aplikaci (obrázek 4).

Obrázek aplikace EFR Connect společnosti SiLabsObrázek 4: Aplikace EFR Connect společnosti SiLabs zobrazuje vlastnosti služeb Bluetooth používaných v aplikaci a nejen urychluje vývoj prototypu, ale také poskytuje rámec pro vývoj vlastních aplikací. (Zdroj obrázku: společnost Silicon Labs)

Do prostředí Simplicity Studio mohou vývojáři importovat řadu různých příkladů aplikací Bluetooth, které ukazují různé scénáře použití, včetně návrhů postavených na deskách Qwiic nebo mikroBUS, samostatně nebo v kombinaci. Například ukázkovou aplikaci, která demonstruje používání standardních služeb Bluetooth Heart Rate (HR) a Bluetooth Pulse Oximeter (SpO2) v kombinaci s deskou Heart Rate 2 Click mikroBUS MIKROE-4037 společnosti MikroElektronika s biosenzorem MAX86161 společnosti Maxim Integrated. Senzor MAX86161 poskytuje kompletní subsystém s nízkou spotřebou energie schopný poskytovat přesná měření HR a SpO2 pro hostitelský procesor připojený prostřednictvím jeho rozhraní I2C. (Další informace o používání modelu MAX86161 najdete v částiVybudujte skutečný bezdrátový fitness náramek - část 1: Měření srdeční frekvence a SpO2 ).

Díky své potřebě dalšího ovladače a náročnějšímu algoritmu zpracování než v teplotní aplikaci poskytuje tato aplikace složitější ukázku architektury softwarové aplikace zařízení IoT (obrázek 5).

Schéma aplikace HR/SpO2Obrázek 5: Ukázkové projekty, jako je aplikace HR/SpO2, pomáhají urychlit vývoj prototypů a ukazují typický procesní tok pro aplikace Bluetooth se senzory a nízkou spotřebou energie. (Zdroj obrázku: společnost Silicon Labs)

Stejně jako u výše uvedené teplotní aplikace se tato aplikace při nastavení systému a aplikačních služeb spoléhá na řadu inicializačních rutin. Pokud je rutina app_process_action v teplotní aplikaci prázdná, přidá tato aplikace volání rutiny hrm_loop do aplikace app_process_action. To má za následek volání hrm_loop při každém průchodu nekonečnou smyčkou nejvyšší úrovně zobrazenou výše v zápisu 1. Kromě toho se k periodické aktualizaci dat HR a SpO2 používá softwarový časovač.

Rutina hrm_loop následně volá rutinu maxm86161_hrm_process, která vytáhne vzorky z fronty udržované pomocnými funkcemi a předá je rutině ukázkového procesu. Ta následně volá dvojici rutin, maxm86161_hrm_frame_process a maxm86161_hrm_spo2_frame_process, které provádějí algoritmy k ověření a generování výsledků HR a SpO2. Vývojáři mohou zobrazit výsledky spolu s dalšími charakteristikami služeb pomocí výše zmíněné aplikace EFR Connect.

Další ukázková softwarová aplikace ukazuje, jak mohou vývojáři při rozšiřování své hardwarové platformy stavět na komplexní aplikaci, jako je tato aplikace HR/SpO2. Díky desce průzkumné soupravy BGM220-EK4314A a softwarovému ekosystému společnosti SiLabs je sestavování na stávajícím hardwaru a softwaru relativně jednoduché. Společnost SiLabs demonstruje tento přístup pomocí ukázkové aplikace, která přidává displej OLED k hardwarové/softwarové platformě používané pro výše uvedenou aplikaci HR/SpO2. V tomto příkladu je ke konektoru desky Qwiic připevněna doplňková deska s displejem OLED společnosti SparkFun (LCD-14532), zatímco doplňková deska Heart Rate 2 Click společnosti MikroElektronika zůstává na místě z předchozí ukázkové aplikace HR/SpO2 (obrázek 6).

Obrázek desky průzkumné soupravy BGM220-EK4314A s displejem OLED společnosti Silicon LabsObrázek 6: Vývojáři mohou rychle přidávat funkce ke stávajícímu designu postavenému na desce průzkumné soupravy BGM220-EK4314A – zde je ke stávajícímu prototypu HR/SpO2 přidán displej OLED. (Zdroj obrázku: společnost Silicon Labs)

Kromě přidání ovladače a podpůrných služeb pro desku OLED zůstává softwarová aplikace pro tuto rozšířenou verzi aplikace HR/SpO2 do značné míry stejná. Softwarový časovač zmíněný výše u aplikace HR/SpO2 přidává volání funkce hrm_update_display, která zobrazuje data HR a SpO2 (zápis 2).

Kopírovat
    /* Software Timer event */
    case sl_bt_evt_system_soft_timer_id:
      /* Check which software timer handle is in question */
      if (evt->data.evt_system_soft_timer.handle == HEART_RATE_TIMER) {
        heart_rate_send_new_data(connection_handle);
        break;
      }
 
      if (evt->data.evt_system_soft_timer.handle == PULSE_OXIMETER_TIMER) {
        pulse_oximeter_send_new_data(connection_handle);
        break;
      }
 
      if (evt->data.evt_system_soft_timer.handle == DISPLAY_TIMER) {
        hrm_update_display();
        break;
      }
      break;
Zápis 2: Pomocí soupravy a softwarového ekosystému mohou vývojáři přidat funkci zobrazení k existující aplikaci HR/SpO2 připojením zobrazovací desky a provedením minimálních softwarových změn kromě přidání volání funkce hrm_update_display do obslužné rutiny softwarového časovače stávající aplikace. (Zdroj kódu: společnost Silicon Labs)

Tento rozšiřitelný hardwarový a softwarový přístup umožňuje vývojářům rychle sestavovat fungující aplikace IoT. Protože hardware i software lze snadno přidávat nebo odebírat, mohou vývojáři snáze prozkoumat nová řešení návrhů a vyhodnocovat alternativní konfigurace.

Závěr

Zařízení IoT s podporou Bluetooth a napájené bateriemi jsou jádrem oblíbených aplikací a poskytují klíčový faktor pro splnění přetrvávající poptávky po větší funkčnosti a delší životnosti. Od vývojářů vyžaduje efektivní splnění těchto protichůdných požadavků schopnost rychle prozkoumávat nové návrhy a vyhodnocovat alternativní koncepty návrhu. Pomocí vývojové sady a souvisejícího softwaru od společnosti Silicon Labs mohou vývojáři rychle vytvářet prototypy a podle potřeby přidávat a odebírat hardware, aby vyhověli specifickým požadavkům aplikace.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this author

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk has more than 20 years of experience writing for and about the electronics industry on a wide range of topics including hardware, software, systems, and applications including the IoT. He received his Ph.D. in neuroscience on neuronal networks and worked in the aerospace industry on massively distributed secure systems and algorithm acceleration methods. Currently, when he's not writing articles on technology and engineering, he's working on applications of deep learning to recognition and recommendation systems.

About this publisher

DigiKey's North American Editors