Jste zde

Návrh bateriového multisenzoru s Bluetooth 5 certifikací

Rostoucí poptávka po technologii Bluetooth 5 přináší tlak na výrobce multifunkčních zařízení. Není snadné splnit požadavky na velmi nízkou spotřebu energie a vysoký výkon aplikace s připojením do cloudu. Naštěstí existují hotová řešení, která pomohou rychle postavit prototyp a dostat ho mezi zákazníky.

Tento článek se bude věnovat Bluetooth procesoru (SoC) s ultra nízkou spotřebou energie od  ON Semiconductor. Jeho speciální verze v SIP pouzdře je určen pro bateriová zařízení. Příslušná vývojová deska a dané vývojové prostředí výrazně zjednodušuje proces vývoje multi-senzorových zařízení, která mají připojení ke cloudovým aplikacím.

Nízkoenergetické aplikace s Bluetooth 5

Zařízení, které podporují technologii Bluetooth 5 jsou většinou napájené z baterie. Jedná se o tzv. fitness nositelné přístroje, lékařské monitory, dálkové ovládaní osvětlení, elektronické inteligentní zámky, zařízení pro automobilový průmysl a mnoho dalších. V průmyslových aplikacích je poptávka po multi senzorovém zařízení se senzory pohybu, vibrací či nárazu, dokáže měřit teplotu, vlhkost nebo jiné fyzikální veličiny, které jsou potřebné k zajištění bezpečnosti pracovníků nebo slouží k monitorování stavu zařízení. Tato zařízení musí spolehlivě zpacovávat data z několika senzorů a musí mít nízkou spotřebu elektrické energie, aby nedocházelo k častému dobíjení baterie nebo dokonce k její brzké výměně.

Čip NCH-RSL10-101WC51-ABG SoC od ON Semiconductor splňuje požadavky na velmi nízkou spotřebu energie, a zároveň poskytuje hardwarovou základnu pro SIP, která pomůže urychlit vývoj finálního výrobku. Pro vlastní vývoj se může použít software od ON Semiconductor nebo DK IoT Studio od Digi-Key.

Detaily čipu SoC RSL10

RSL10 je Bluetooth 5 certifikovaný SoC čip navržen speciálně pro nízkoenergetické aplikace. Díky komplexní sadě integrovaných subsystémů a funkčních bloků se RSL10 uplatní v široké škále nositelných zařízení (obrázek 1).

Obrázek 1: On Semiconductor RSL10 SOC zahrnuje procesor a kompletní sadu rozhlasových subsystémů, ultra-nízkou spotřebu a je určen pro Bluetooth 5 certifikované zařízení. (Zdroj obrázku: ON Semiconductor)

SoC RSL10 je postaven na jádru ARM Cortex-M3 a 32bitovém LPDSP32 jádru s duální harvardskou architekturou pro zpracování digitálního signálu (DSP). Součástí jsou také kompletní Bluetooth 5 certifikované radiové submoduly. Pro ochranu kódu a citlivých dat poskytuje IP blok mechanismy pro zabránění vnějšího přístupu k Flash paměti, RAM paměti nebo přímo k jádru. SoC RSL10 poskytuje čtyřkanálový analogově-digitální převodník (ADC), několik GPIO vstupů/výstupů a audio rozhraní. Uvnitř je integrována sada regulátorů napětí, která umožňuje, aby SoC RSL10 mohl být napájen jen z jednoho zdroje napětí, a to v rozmezí od 1,1 V do 3,3 V.

I když je schopen podporovat různé protokoly 802.15.4 (WPAN), RSL10 poskytuje komplexní podporu pro Bluetooth (hardware i software). Integrovaný front end zakončení (RF) zajišťuje fyzickou vrstvu Bluetooth (PHY). Je implementována hardwarová podpora pro zpracování paketů v Bluetooth zásobníku. Vestavěný kernel software poskytuje řízení zpracování zpráv a událostí, které jsou použity v RF komunikaci. Bluetooth knihovna běží na procesoru ARM Cortex-M3, který je schopen splnit celou řadu úkolů v aplikačním software (obrázek 2).

Obrázek 2: ON Semiconductor RSL10 SoC poskytuje plný Bluetooth stack spuštěný v jádru ARM Cortex-M3 a front-end RF zakončení (Zdroj obrázku: ON Semiconductor)

Součástí RSL10 je softwarový balíček, který zajišťuje servisní vrstvy zahrnující Logical link control and adaptation protocol (L2CAP), Atribut Protocol (ATT) a Security Manager Protocol (SMP). Generic Acces Profile (GAP) slouží k definování připojení a Generic Atribut Profile (GATT) slouží k definování výměny dat založené na službách.

K RSL10 jsou k dispozici Bluetooth knihovny pro monitorování srdeční frekvence, monitorování hodnoty glukózy, krevního tlaku, lokalizaci při běhu, cyklistice a mnoho dalších.

Power managment RSL10

Nejdůležitější vlastností RSL10 je, že potřebuje poměrně málo proudu a zároveň poskytuje Bluetooth připojení s přenosovou rychlostí od 62,5 kb/s do 2000 kb/s. Špičkový proud při příjmu (Rx) a napájení 1,25 V (Vbat) je 5,6 mA a 3,0 mA s napětím 3 V. Špičkový proud při vysílání (Tx) a napájení 1,25 V (Vbat) je 8.9 mA při vysílacím výkonu 0 dBm a 4,6 mA s napětím 3V při 0 dBm vysílacího výkonu.

Pro lepší nakládání s energií lze využít několik režimů spánku či klidu. Je možné některé integrované subsystémy vypnout a nechat běžet jen ty, které jsou v daný okamžik nutné pro správný chod aplikace.

Je pozoruhodné, že RSL10 automaticky využívá tyto režimy napájení mezi vysílací a přijímací událostí. Výsledkem je, že zařízení může posílat Bluetooth „advertising“ pakety na všech třech Bluetooth kanálech v 5 sekundových intervalech při spotřebě pouhých 1,1 uA.

Pohotovostní režim poskytuje úsporu energie během doby nízké aktivity, která trvá od stovek ms do několika málo milisekund. V pohotovostním režimu je typická spotřeba 30 mA. V tomto režimu zůstávají „silové“ obvody aktivní, a proto se zařízení může vrátit do provozu poměrně rychle.

Pomocí režimu hlubokého spánku lze dosáhnout výrazně nižší spotřeby energie při zachování schopnosti reagovat na vnější událost. Provoz v tomto režimu s 8 Kbyte záložní RAM pamětí klesne spotřeba na 300 nA při napájení 1,25 V (Vbat) nebo na 100 nA s napájením 3 V (Vbat).

V nejhlubším režimu spánku klesá spotřeba ještě níže a to na 50 nA při napájení 1,25 V (Vbat) a  25 nA při 3 V (Vbat). I v tomto režimu je zachována schopnost probudit se v reakci na signál přijatý na zvláštní pin (wake up pin).

Vše potřebné uvnitř čipu

Vysoká míra integrace pomáhá zjednodušit celý design. Díky integrovaným kondenzátorům se snadno připojí 32 kHz krystal pro hodiny reálného času (RTC) a 48 MHz krystal pro RF front end zakončení. VProto RSL10 vyžaduje minimální počet vnějších komponent (obrázek 3).

Obrázek 3: Díky své vysoké úrovni integrace, RSL10 SoC potřebuje relativně málo vnějších komponent, jak je uvedeno v konfiguraci pro provoz v režimu Buck mode. (Zdroj obrázku: ON Semiconductor)

Čip má integrován několik programovatelných regulátorů napájecího napětí, které nastaví napětí pro digitální bloky, paměti či RF front-end zakončení. Nábojová pumpa (chargé pump) zajišťuje vyšší úroveň napětí pro analogové bloky a Flash paměti. Díky tomu lze RSL10 napájet jen jedním napájecím napětím v rozmezí 1,1 V až 3,3 V.

Při napětí pod 1,4 V je čip napájen z vnitřního Low Drop regulátoru (LDO) a není zapotřebí mít připojený externí induktor. Nad touto úrovní pracuje integrovaný buck převodník, který pomáhá zlepšit výkonnost díky přídavnému induktoru. ON Semiconductor poskytuje detailní pokyny pro umístění externích komponent a fyzický návrh desky.

Implementace RSL10

ON Semiconductor poskytuje modul NCH-RSL10-101S51-ACG RSL10 SiP, který je určen pro okamžitou implementaci do vlastních hardwarových návrhů. Jeho rozměry jsou 6 mm x 8 mm x 1,5 mm a je v něm integrován RSL10 SoC čip, anténa a celý soubor potřebných komponent v jednom balení SiP. ON Semiconductor poskytuje Software Development Kit RSL10 (SDK) knihovnu, která obsahuje ovladače, utility a ukázkový kód RSL10 CMSIS-Pack (obrázek 4).

Obrázek 4: ON Semiconductor RSL10 poskytuje rozsáhlou sadu služeb a utilit ve svém základním balíčku a s dalšími balíčky poskytuje podporu pro Bluetooth Mesh sítě a vývoj Bluetooth IoT aplikací. (Zdroj obrázku: ON Semiconductor)

Balíček obsahuje podporu pro FreeRTOS real-time operační systém (RTOS), firmware over-the-air (FOTA), Bluetooth Mesh sítě a knihovny pro vývoj Bluetooth IoT (B-IDK). Například B-IDK CMSIS-Pack poskytuje IoT služby, včetně ovladačů senzorů a podporu pro připojení ke cloudu. On Semiconductor nabízí vlastní vývojové prostředí IDE, ale bez problémů lze použít Arm Keil μVision a IAR Embedded Workbench. Po importu jednotlivých balíčků si lze prohlédnout ukázkové aplikace a pochopit implementaci klíčových funkcí.

BLE multi-senzorová deska

Poptávka v průmyslu po multi senzorovém zařízení může být uspokojena pomocí desky RSL10-SENSE-GEVK, která obsahuje RSL10 SIP modul, multisenzor, N24RF64DWPT3G 64 Mbyte NFC EEPROM paměť, LED diody RGB a mnoho programovatelných tlačítek. Deska je vyrobena ve tvaru kruhu o průměru 30 mm (obrázek 5).

Obrázek 5: RSL10-SENSE-GEVK obsahuje RSL10 SIP s širokým spektrem senzorů, které jsou typicky používány v nositelných zařízeních. (Zdroj obrázku: ON Semiconductor)

Deska je dodávána s předinstalovaným firmware, který dokáže obsluhovat následující senzory:

  • Snímač okolního světla (ON Semiconductor NOA1305)
  • Inerciální měřicí jednotku ( Bosch Sensortec BHI160 ) s tříosým akcelerometrem, tříosým gyroskopem
  • Tříosý digitální geomagnetický senzor (Bosch Sensortec BMM150 )
  • Enviromentální senzor prostředí (Bosch Sensortec BME680 ), snímání plynu, tlaku, vlhkosti a teploty
  • Digitální mikrofon

ON Semiconductor nabízí mobilní aplikaci RSL10 Sense and Control, která je dostupná přes Android a iOS obchod. Tato aplikace umožňuje monitoring spotřeby energie s různými konfiguracemi senzorů (různé vzorkovací frekvence a cykly, různé režimy čipu RSL10 atd.). Aplikace vše přehledně zobrazuje na displeji telefonu. (obrázek 6).

Obrázek 6: ON Semiconductor mobilní aplikace RSL10 Sense and Control nabízí hotové řešení pro sledování spotřeby energie při různé konfiguraci. (Zdroj obrázku: ON Semiconductor)

Ukázkové příklady, které jsou součástí balíčku CMSIS-Pack lze libovolně prohlížet a upravovat. Po vygenerování nového firmware je nutné nahrát obraz do čipu pomocí 10 pinového jehličkového programátoru s adaptérem Tag-Connect TC2050-IDC-NL. Vývojový kit RSL10-SENSE-GEVK neobsahuje tento adaptér. Ladicí verze RSL10-SENSE-DB-GEVK je opatřena pájeným 10-pinový konektorem pro ladění. Segger Microcontroler Systems J- Link LITE Cortex debugger lze k tomuto konektoru připojit.

Rychlý vývoj pomocí DK IoT Studia

DK IoT Studio umožňuje rychlý vývoj software bez klasického psaní kódu. DK IoT Studio obsahuje širokou škálu hardwarových a softwarových prvků, které se používají v aplikacích typu senzor – cloud. Hardwarové prvky mohou být jednotlivé GPIO piny nebo kompletní senzory, které jsou ve vývojovém kitu  RSL10-SENSE-GEVK. Softwarové prvky mohou představovat funkce na nízké úrovni, jako jsou smyčky a podmínky nebo komplikované cloudové služby.

Pomocí metody drag and drop lze vytvořit kombinaci těchto prvků, která bude reprezentovat operace probíhající v RSL10 čipu a v Cloudu. To vše bez nutnosti psaní softwarového kódu. Například integrovaný enviromentální senzor BME680 obsahuje sadu schopností (abilities) pro čtení teploty, tlaku a vlhkosti. Další funkční prvky se použijí pro nastavení intervalu čtení či předání údajů do mobilního zařízení pomocí Bluetooth.

Vytváření aplikace tímto postupem je jednoduché. Digi-Key poskytuje řadu demonstračních projektů pro vývojový kit RSL10-SENSE-GEVK. Například v ukázkovém projektu BME680 se spustí funkce pro čtení teploty, tlaku a vlhkosti každých 1000 ms. Aktuální načtená data se přenesou do mobilní aplikace pomocí Bluetooth komunikace (obrázek 7).

Obrázek 7: Grafické rozhraní DK IoT Studia umožňuje graficky znázornit chování RSL110 čipu a přidružených perferií. Například pravidelně číst data ze snímače a přenášet je přes Bluetooth do mobilní aplikace (Zdroj obrázku: Digi-Key Electronics)

Karta Aplikace umožňuje vytvářet uživatelské rozhraní v Digi-Key mobilní aplikaci pro zobrazování dat přijatých přes Bluetooth. V demo projektu BME680 tato aplikace zobrazuje teplotu, tlak, vlhkost a posílá hodnoty z každého měření do Cloudu (obrázek 8).

Obrázek 8: Pomocí karty Aplikace v DK IoT Studiu lze konfigurovat vzhled zobrazení dat ze senzorů v mobilní aplikaci. Lze také nastavit, aby hodnoty z každého měření se posílali přímo do Cloudu (Zdroj obrázku: Digi-Key Electronics)

Pomocí DK IoT Studia lze konfigurovat WiFi nastavení daného zařízení a také v záložce Cloud definovat cloudové operace. V tomto případě jsou hodnoty o teplotě, tlaku a vlhkosti uloženy v cloudovém uložišti. (obrázek 9).

Obrázek 9: Na kartě Cloud lze definovat cloudové operace jako je ukládání dat senzorů v cloudovém uložišti. (Zdroj obrázku: Digi-Key Electronics)

Po dokončení „nákresu“ chování zařízení, aplikace a cloudu klikneme ne ikonu kompilace. Po vygenerování kódu lze výsledný firmware nahrát do vývojového ktitu RSL10-SENSE-GEVK. Kód pro aplikaci a cloud jsou automaticky ukládány do prostředí DK IoT Studio Cloud.

Události a schopnosti (abilities) jsou spojené s každým prvkem a jsou k dispozici v knihovně Embedded Element library (EEL), kterou nalezneme ve vývojovém prostředí DK IoT Studio.

Například pro BME680 existuje rutina „Read Temperature“, která vyvolá abstrakci bme680_get_sensor_ () definovanou v modulu BME680 C-language (Výpis 1).

BME680_Status_t BME680_GetTempData (float * tempC)
{
       _BME680_StartMeasurement();
 
       struct bme680_field_data data;
       int8_t retval = bme680_get_sensor_data( &data, &_BME680_DriverConfig );
 
       if ( retval != 0 )
       {
              ATMO_PLATFORM_DebugPrint( "Error getting sensor data! %d\r\n", retval );
              *tempC = 0;
       }
       else
       {
              *tempC = data.temperature / 100.0;
       }
 
       _BME680_Sleep();
       return BME680_Status_Success;
}

Výpis 1: Základem grafického rozhraní DK IoT Studio je kód spojený s každým prvkem specifické funkce jako je funkce „Read Temperature“. (Code zdroj: Digi-Key Electronics)

Nízkoúrovňové rutiny definují bitové operace potřebné k získání požadovaných dat z registrů jednotlivých snímačů například bme680_get_regs ().

static int8_t read_field_data( struct bme680_field_data *data, struct bme680_dev *dev )
{
       int8_t rslt;
       uint8_t buff[BME680_FIELD_LENGTH] = { 0 };
       uint8_t gas_range;
       uint32_t adc_temp;
       uint32_t adc_pres;
       uint16_t adc_hum;
       uint16_t adc_gas_res;
       uint8_t tries = 10;
 
       rslt = null_ptr_check( dev );
 
       do
       {
              if ( rslt == BME680_OK )
              {
                     rslt = bme680_get_regs( ( ( uint8_t ) ( BME680_FIELD0_ADDR ) ), buff, ( uint16_t ) BME680_FIELD_LENGTH,
                                             dev );
 
                     data->status = buff[0] & BME680_NEW_DATA_MSK;
                     data->gas_index = buff[0] & BME680_GAS_INDEX_MSK;
                     data->meas_index = buff[1];
 
                     adc_pres = ( uint32_t ) ( ( ( uint32_t ) buff[2] * 4096 ) | ( ( uint32_t ) buff[3] * 16 )
                                               | ( ( uint32_t ) buff[4] / 16 ) );
                     adc_temp = ( uint32_t ) ( ( ( uint32_t ) buff[5] * 4096 ) | ( ( uint32_t ) buff[6] * 16 )
                                               | ( ( uint32_t ) buff[7] / 16 ) );
                     adc_hum = ( uint16_t ) ( ( ( uint32_t ) buff[8] * 256 ) | ( uint32_t ) buff[9] );
                     adc_gas_res = ( uint16_t ) ( ( uint32_t ) buff[13] * 4 | ( ( ( uint32_t ) buff[14] ) / 64 ) );
                     gas_range = buff[14] & BME680_GAS_RANGE_MSK;
 
                     data->status |= buff[14] & BME680_GASM_VALID_MSK;
                     data->status |= buff[14] & BME680_HEAT_STAB_MSK;
 
                     if ( data->status & BME680_NEW_DATA_MSK )
                     {
                           data->temperature = calc_temperature( adc_temp, dev );
                           data->pressure = calc_pressure( adc_pres, dev );
                           data->humidity = calc_humidity( adc_hum, dev );
                           data->gas_resistance = calc_gas_resistance( adc_gas_res, gas_range, dev );
                            break;
                     }
 
                     dev->delay_ms( BME680_POLL_PERIOD_MS );
              }
 
              tries--;
       }
       while ( tries );
 
       if ( !tries )
       {
              rslt = BME680_W_NO_NEW_DATA;
       }
 
       return rslt;
}

Výpis 2: Kód spojený s každým prvkem v DK IoT Studiu volá funkce z vyšší úrovně, aby provedli čtení dat z registrů jednotlivých snímačů.  (Code zdroj: Digi-Key Electronics)

V prostředí DK IoT Studio se lehce definují také podmínky. Například, že se LED na RSL10-SENSE-GEVK může zapnout v případě, že výstup ze senzoru okolního osvětlení překročí určitou stanovenou mez (obrázek 10).

Obrázek 10: DK IoT Studio obsahuje prvky potřebné k vytvoření podmínek jako je nastavení GPIO v závislosti na hodnotě vyčtené ze senzoru okolního osvětlení. (Zdroj obrázku: Digi-Key Electronics)

Na straně cloudu lze generovat metadata pro mobilní aplikace. Například nastavit na mobilní aplikaci upozornění označující problém detekované senzorem – hodnota překročila stanovenou mez (Obrázek 11).

Obrázek 11: DK IoT Studio podporuje složitější operace v cloudu i v mobilní aplikaci. (Zdroj obrázku: Digi-Key Electronics)

Funkce SetPinState je ukazatel funkce na funkci nižší úrovně. ATMO_ONSEMI_GPIO_SetPinState () implementuje požadované funkce a nakonec volá funkci Sys_DIO_Config (), která nastaví daný pin ( Výpis 3).


ATMO_GPIO_Status_t ATMO_GPIO_SetPinState( ATMO_DriverInstanceHandle_t instance, ATMO_GPIO_Device_Pin_t pin,
        ATMO_GPIO_PinState_t state )
{
       if ( !( instance < numberOfGPIODriverInstance ) )
       {
              return ATMO_GPIO_Status_Invalid;
       }
 
       return gpioInstances[instance]->SetPinState( gpioInstancesData[instance], pin, state );
}
Výpis 3: DK IoT Studio poskytuje sadu běžných funkcí nižší úrovně jako je například nastavení GPIO pinů (Code zdroj: Digi-Key Electronics)
 

Závěr

ON Semiconductor nabízí RSL10 SoC, RSL10 SiP a RSL10-SENSE-GEVK, které vyhovují požadavkům pro kompletní úsporné multi-senzorové řešení. K hotovému hardware patří také silná podpora software v podobě RSL10 SDK knihovny. Semiconductor nabízí DK IoT Studio, které pomocí metody drag and drop umožňuje definovat chování daného zařízení bez nutnosti psaní kódu. Pomocí tohoto studia lze modifikovat vzhled a funkčnost mobilní aplikace, určit cloudové operace a definovat podmínky pro nízko úrovňové chování (nastaveni GPIO). Jednoduše řečeno vytvořit plnohodnotnou aplikaci typu senzor to cloud.

Článek vyšel v originále "Rapidly Deploy a Battery-Powered Bluetooth 5 Certified Multi-Sensor IoT Device" na webu DigiKey.com, autorem je Stephen Evanczuk.

Přílohy: 
PřílohaVelikost
PDF icon rsl10-d.pdf152.61 KB
Hodnocení článku: