SEK | EUR | USD

Distribuera snabbt en batteridriven Bluetooth 5-certifierad IoT-enhet med flera sensorer

By Stephen Evanczuk

Contributed By Digi-Keys nordamerikanska redaktörer

Utvecklarna står inför en snabbt växande efterfrågan på Bluetooth-kompatibla bärbara multisensorkonstruktioner på många olika marknader, men det har varit svårt att hitta effektiva lösningar. Utöver det grundläggande kravet på ultra-låg effektförbrukning har möjligheten att snabbt prototyputveckla, utvärdera och anpassa dessa konstruktioner i IoT-tillämpningar från enhet till moln blivit väsentlig för att kunna agera snabbt när möjligheter dyker upp.

Den här artikeln beskriver en Bluetooth-processorsystemkrets (SoC) med låg effekt from ON Semiconductor och visar hur SoC:n, eller dess förknippade system-in-package-version (SiP) uppfyller grundläggande krav för batteridrivna konstruktioner. Ett förknippat utvärderingskort och en IoT-utvecklingsmiljö förenklar processen att skapa enhet-till-moln-tillämpningar med flera sensorer avsevärt.

Bluetooth-tillämpningar med låg effekt

Batteridrivna enheter med Bluetooth-kapacitet ger anslutnings- och processningskapacitet i smarta produkttillämpningar inom bärbar träningsteknik, medicinska monitorer, belysning, lås, hemapparater, bilar och mycket annat. Användarförväntningar och konkurrensutmaningar fortsätter att driva behovet av mer heltäckande tillämpningar som drivs av mer precisa data från ett större antal sensorer. Inom vissa områden, såsom industritillämpningar, är funktioner med flera sensorer väsentliga för att känna av rörelser, vibrationer eller stötar, temperatur, fuktnivå eller andra data som krävs för att säkerställa säkert arbete, utrustningsstatus eller grundläggande tillgångshantering.

I användarnas vardag ska enheterna inte bara kunna leverera data tillförlitligt från flera sensorer utan även minska behovet av att behöva byta eller ladda batterier ofta. Det är kritiskt för en lyckad användarupplevelse. Samtidigt måste underliggande lösningar hjälpa till att sänka kostnaden och komplexiteten som ofta förknippas med utvecklingen av batteridrivna Bluetooth-produkter.

En sådan lösning, NCH-RSL10-101WC51-ABG RSL10 SoC från ON Semiconductor uppfyller kraven på drift med ultralåg effekt och erbjuder samtidigt maskinvarugrunden för SiP och utvärderingskort som hjälper till att påskynda utvecklingen av färdiga produkter. Tillsammans med ON Semiconductors programvara för anpassad utveckling eller med Digi-Keys DK IoT Studio för snabb utveckling, gör RSL10-baserade integrerade lösningar det möjligt för utvecklarna att snabbt distribuera och utvärdera flersensortillämpningar med ultralåg effekt.

Inuti en trådlös RSL10 SoC med Bluetooth

RSL10 är en Bluetooth 5-certifierad trådlös SoC som är specialutformad för att uppfylla det växande behovet av konstruktioner med ultralåg effekt inom bärbar teknik, mobila produkter och andra anslutna produkter. Med sin stora uppsättning integrerade delsystem och funktionsblock erbjuder RSL10 en enkretslösning som uppfyller kraven för typiska Bluetooth-kompatibla IoT-enheter och bärbar teknik (figur 1).

Diagram över ON Semiconductor RSL10 SoC (klicka för att förstora)Figur 1: ON Semiconductors RSL10 SoC integrerar processor- och radiosubsystem för att ge en komplett lösning med ultralåg effekt för Bluetooth 5-certifierade enheter. (Bildkälla: ON Semiconductor)

Enhetens huvudsakliga processningsblock inkluderar en Arm® Cortex®-M3-kärna, en egen LPDSP32 32-bitars dubbel digital signalbehandlingskärna (DSP) med Harvard-arkitektur och ett komplett Bluetooth 5-certifierat radiosubsystem – alla med stöd av dedikerade och delade minnesområden. För att skydda kod och data finns ett IP-block med mekanismer för att hindra extern åtkomst till enhetens flashminne, RAM-minne eller kärna. Tillsammans med en fullständig uppsättning av standardseriekringutrustning ger enheten en fyrkanalig analog-till-digitalomvandlare (ADC), universal-IO-enheter (GPIO) och ljudgränssnitt. En uppsättning spänningsregulatorer matar interna enskilda strömsektioner, vilket gör att enheten kan köras med en enkel spänningskälla från 1,1 till 3,3 volt.

Trots att den har stöd för flera 802.15.4 WPAN-protokoll med låg datahastighet, ger RSL10 omfattande Bluetooth-stöd med en kombination av inbyggd maskinvara och programvara. Maskinvarustödet bygger på den integrerade RF-frontänden som integrerar det fysiska Bluetooth-lagret (PHY). Basbandstyrenheten arbetar med RF-frontänden och ger maskinvarustöd för paket- och ramprocessningslager i Bluetooth-protokollstacken. Här finns en liten, inbyggd programvarukärna som erbjuder händelse- och meddelandehanteringstjänster som används för RF-trafikhantering, meddelandeutbyte och timerfunktioner. Slutligen finns ett Bluetooth-bibliotek och förknippade profilbibliotek som körs på Arm Cortex-M3-processorn för att göra hela Bluetooth-stacken för applikationsprogramvara komplett (figur 2).

Diagram över ON Semiconductor RSL10 SoC komplett Bluetooth-stackFigur 2: ON Semiconductor RSL10 SoC tillhandahåller en komplett Bluetooth-stack genom en kombination av programvarukörning i Arm Cortex-M3-kärnan och dedikerad maskinvara inklusive en basbandprocessor och underliggande RF-frontände. (Bildkälla: ON Semiconductor)

Programvarustacken bygger på maskinvarustödet i RF-frontänden och basbandprocessorn, och den kombinerar lägre BLE-protokolltjänstlager inklusive det logiska länkkontroll- och anpassningsprotokollet (L2CAP), ATT (attribut) och SMP (Security Manager Protocol), GAP (Generic Access Profile) som används för att definiera anslutningar och GATT (Generic Attribute Profile) som används för att definiera datautbyten baserat på tjänster och egenskaper.

Tillsammans med den här Bluetooth-protokollstacken ger RSL10-profilbiblioteken stöd för flera standard-Bluetooth-profiler som ofta används i bärbara tillämpningar inklusive hjärtfrekvens, blodsockerövervakning, blodtryck, Rezence trådlös laddningsprofil och människa-maskingränssnitt (HID) samt profiler för plats, löpning och cykling med mera.

Effektiv prestanda

Det kanske viktigaste för konstruktörer är att RSL10 förbrukar relativt lite ström när den tillhandahåller Bluetooth-anslutning vid datahastigheter från 62,5 till 2000 kilobit per sekund (kbps). Toppmottagningsströmmen (Rx) med 1,25 volts matning (VBAT) är 5,6 milliampere (mA) och endast 3,0 mA med VBAT på 3 volt. Toppsändningsströmmen (Tx) med 1,25 volt VBAT är 8,9 mA vid en sändningseffekt på 0 dBm (decibelbelopp referensställt till 1 milliwatt) och endast 4,6 mA med 3 volt VBAT vid 0 dBm sändningseffekt.

RSL10:s energieffektivitet är genomgående i dess arkitektur, vilket demonstreras av dess branschledande certifierade EEMBC ULPMark kärnprofil 1090 (3 volt) och 1260 vid 2,1 volt.

Utvecklare kan dessutom öka effektiviteten genom att selektivt avaktivera maskinvarublock när RSL10 är i fullt körläge eller genom att försätta enheten i lågeffektstandby eller djupt viloläge under perioder när den inte används. Det är värt att notera att RSL10 automatiskt tillämpar dessa effektlägesmekanismer för att hålla en BLE-anslutning mellan sändtagarhändelser. Det innebär att enheten kan utföra Bluetooth-marknadsföring på alla tre Bluetooth-marknadsföringskanaler i 5-sekundersintervall och bara förbruka 1,1 mikroampere (mA).

I standbyläge kan utvecklarna spara effekt under perioder med låg aktivitet från hundratals millisekunder (ms) till bara några millisekunder.

I standbyläge klockar RSL10 grindlogik och minne samt minskar matningsspänningen för att minska läckströmmen, vilket leder till en typisk strömförbrukning på endast 30 mA. Eftersom on-chip-strömkretsarna är aktiva kan enheten återgå till aktiv drift relativt snabbt.

Djupt viloläge erbjuder flera alternativ för att uppnå betydligt lägre strömförbrukning samtidigt som förmågan att svara på externa händelser bibehålls. Vid användning i det här läget med 8 kilobyte (kbyte) RAM-lagring, förbrukar enheten endast 300 nanoampere (nA) med 1,25 volt VBAT eller bara 100 nA med 3 volt VBAT. I det djupaste viloläget förbrukar enheten endast 50 nA vid 1,25 volt (25 nA vid 3 volt VBAT) samtidigt som förmågan att aktiveras som svar på signaler som tas emot på det dedikerade aktiveringsstiftet behålls.

Integrerad design

Med RSL10:s omfattande funktioner kan utvecklarna skapa effektoptimerade konstruktioner utan att kompromissa med prestanda eller Bluetooth-anslutning. Den höga integreringsnivån underlättar maskinvarudesignen. Funktioner som integrerade kondensatorer eliminerar de vanliga kraven på externa kondensatorer med 32-kHz-kristallen för realtidsklockan (RTC) eller med 48 MHz-kristalloscillatorer för RF-frontänden och huvudsystemklockan. Det innebär att RSL10 kräver ett minimalt antal externa komponenter för att göra en konstruktion komplet (figur 3).

Diagram över ON Semiconductors RSL10-konfiguration för drift i buck-lägeFigur 3: Med sin höga integreringsnivå ger ON Semiconductor RSL10 SoC en komplett konstruktion med relativt få externa komponenter vilket visas i den här konfigurationen för drift i buck-läge. (Bildkälla: ON Semiconductor)

Enheten innehåller flera programmerbara spänningsregulatorer som matar digital-, minnes- och RF-frontändesblocken. En laddningspump ger de högre spänningsnivåer som krävs för analoga block och flashminne. Tack vare dessa integrerade effektsystem kan enheten köras med en enda spänningskälla på mellan 1,1 volt och 3,3 volt.

Vid spänningsnivåer under 1,4 volt kan konstruktörerna mata enheten med dess interna low-dropout-regulator (LDO). Över den här nivån hjälper enhetens integrerade buck-omvandlare till att förstärka effektiviteten till kostnaden av en extra induktor. Kretsutformningen för dessa två strömkällekonfigurationer skiljer sig endast i att drift i LDO-läge gör det möjligt att eliminera induktorn mellan VCC- och VDC-stiften, vilket visas i figur 3. ON Semiconductor erbjuder riktlinjer för komponentplacering och fysisk design av kretskort med the RSL10.

Systemdesign med RSL10

För utvecklare som saknar tid eller resurser att bygga dessa maskinvarugränssnitt erbjuder ON Semiconductors NCH-RSL10-101S51-ACG RSL10 SiP ett effektivt alternativ till anpassade maskinvaruimplementeringar för systemdesign. RSL10 SiP mäter 6 x 8 x 1,5 mm och integrerar RSL10 SoC, en radioantenn och hela uppsättningen med nödvändiga komponenter i ett paket. Med RSL10 SiP kan konstruktörerna införa en komplett certifierad Bluetooth-maskinvarulösning med ultralåg effekt i sina konstruktioner och fokusera arbetet på sina specifika maskinvarukrav.

ON Semiconductors RSL10-programvarupaket hjälper på liknande sätt till att fokusera arbetet med programvaruutvecklingen på specifika krav. Med grund i hårdvaruabstraktionslagret Arm Cortex Microcontroller Software Interface Standard (CMSIS) (HAL), erbjuder ON Semiconductors programutvecklingssats RSL10 (SDK) drivrutiner, hjälpmedel och provkod som distribueras i RSL10 CMSIS-paketet (figur 4).

Diagram över ON Semiconductors programvarumiljö RSL10Figur 4: ON Semiconductors RSL10-programvarumiljö erbjuder ett stort utbud tjänster och hjälpmedel i baspaketet, med möjlighet att köpa ytterligare paket med stöd för Bluetooth-meshnätverk och Bluetooth IoT-utveckling. (Bildkälla: ON Semiconductor)

Bland de mer specialiserade tjänsterna i paketet finns Bluetooth-stöd, realtidsoperativsystemet FreeRTOS och FOTA-uppdatering (firmware over-the-air). Dessutom erbjuder ON Semiconductor stöd för mer specialiserade funktioner via separata paket för Bluetooth-meshnätverk och Bluetooth IoT-utveckling (B-IDK). Exempelvis erbjuder B-IDK CMSIS-Pack IoT-relaterade tjänster inklusive sensordrivrutiner, stöd för molnanslutning och relaterade programvaruprov på tillämpningsnivå.

Vid anpassad utveckling läser programvaruutvecklarna helt enkelt in grundpaketen och tillvalspaketen i sina integrerade utvecklingsmiljöer (IDE). RSL10-programvarudistribueringen har stöd för ON Semiconductors egen IDE samt miljöerna Arm Keil µVision och IAR Embedded Workbench. Efter att ha läst in paketen kan utvecklarna utforska provtillämpningar och studera implementeringar av nyckelfunktioner.

BLE-multisensorkort, klart att distribuera

Tillsammans kan RSL10 SiP och and RSL10 SDK påskynda utvecklingen av anpassade Bluetooth-kompatibla enheter som uppfyller de strikta kraven på drift med ultralåg effekt. För vissa tillämpningar saknas dock kanske tid och resurser för att bygga anpassade lösningar eller så krävs det inte.

Till exempel kan industriella flersensormonitorer eller smarta lås och ljusströmställare behöva en liten Bluetooth-aktiverad enhet som kan förlänga batteriets livslängd samtidigt som den levererar data från flera sensortyper. För dessa tillämpningar kan ON Semiconductors utvärderingssats med flera sensorer RSL10-SENSE-GEVK erbjuda en omedelbar maskinvarulösning. Utvärderingssatsens kort är internationellt certifierat och levereras klart att distribueras i tillämpningar med ultralåg effekt.

RSL10-SENSE-GEVK-kortet inkluderar RSL10 SiP, flera sensorer, en ON Semiconductor N24RF64DWPT3G 64 kbyte EEPROM med närfältkommunikation (NFC), en RGB LED och programmerbara knappar. Kortet är runt och mindre än 30 mm i diameter. Detta är endast något större än CR2032-knappcellbatteriet och den flexibla NFC-antennen som ingår i satsen (figur 5).

Bild på ON Semiconductors utvärderingskort RSL10-SENSE-GEVKFigur 5: ON Semiconductors utvärderingskort RSL10-SENSE-GEVK kombinerar en RSL10 SiP med en stor uppsättning sensorer som normalt krävs i bärbar teknik och IoT-enheter. (Bildkälla: ON Semiconductor)

Kortet levereras med förinläst fast programvara för att kunna demonstrera funktionen hos kortets många sensorer, inklusive:

  • Omgivningsljussensor (ON Semiconductor NOA1305)
  • Tröghetsmätare (Bosch Sensortec BHI160) med treaxlad accelerometer och treaxlat gyroskop
  • Treaxlad digital geomagnetisk sensor (Bosch Sensortec BMM150)
  • Miljösensorer (Bosch Sensortec BME680) inklusive gas-, tryck-, fukt- och temperatursensorer
  • Digital mikrofon

För att hjälpa utvecklarna att snabbt utvärdera sensorinsamling och RSL10-prestanda med RSL10-SENSE-GEVK-kortet, tillhandahåller ON Semiconductor en mobilapp, RSL10 Sense and Control, som finns i appbutikerna för Android och iOS.

När den här appen körs på en Bluetooth-kompatibel mobil enhet, gör den det möjligt för utvecklarna att övervaka strömförbrukningen med olika konfigurationer av sensorer, samplingsintervall och cykler och RSL10-effektläge, bland andra parametrar. När den önskade sensorkonfigurationen har ställts in i appen visar appen resultaten i en serie bilder (figur 6).

Bild på ON Semiconductor RSL10 Sense and Control-mobilappFigur 6: ON Semiconductor RSL10 Sense and Control-mobilappen erbjuder en färdig lösning för att utvärdera multisensorprestandan hos RSL10-SENSE-GEVK-utvärderingskortet. (Bildkälla: ON Semiconductor)

Utvecklarna kan visa och modifiera demonstrationskoden med CMSIS-Pack-distributionen och IDE-alternativen som nämndes tidigare. Efter att ha genererat ny fast programvara måste utvecklarna läsa in bilden med en stiftlist med 10 stift med en adapter som Tag-Connect TC2050-IDC-NL. Den här adaptern ingår inte i utvärderingssatsen för flera sensorer RSL10-SENSE-GEVK, men en felsökningsversion av satsen – RSL10-SENSE-DB-GEVK– har en lödd felsökningsplugg med 10 stift och en Segger Microcontroller Systems J-Link LITE Cortex felsökare som kan anslutas till pluggen.

Snabb utveckling med DK IoT Studio

RSL10-SENSE-GEVK utvärderingskort med flera sensorer kan eliminera maskinvaruutveckling för en lång räcka tillämpningar med flera sensorer som kräver längre batterilivslängd. För många av dessa tillämpningar kan ett separat online-utvecklingsverktyg från Digi-Key eliminera behovet av programvarukodning för snabb utveckling av prototyper eller till och med produktionssystem. När DK IoT Studio används tillsammans med utvärderingskortet RSL10-SENSE-GEVK ger det en kodbefriad utvecklingsmetod där utvecklarna snabbt kan distribuera kompletta sensor-till-moln-tillämpningar.

Med hjälp av DK IoT Studios grafiska gränssnitt kan utvecklarna dra och släppa element som representerar ett stort urval av maskinvaru- och programvaruobjekt som används i IoT-tillämpningar. Maskinvaruelementen sträcker sig från individuella GPIO-stift till kompletta sensorenheter, inklusive de som har inkluderas i RSL10-SENSE-GEVK-utvärderingskort. Programvaruelement sträcker dig från typiska lågnivåfunktioner som loopar och villkor, som används i alla program, ända till molntjänstgränssnitt.

Med hjälp av kombinationer av dessa element arbetar utvecklarna på separata flikar i DK IoT Studios grafiska gränssnitt för att definiera operationer som körs i RSL10, i den kompletterande DK IoT Studio-appen samt i molnet, allt utan att skriva någon programvarukod.

Den här metoden bygger på en uppsättning "förmågor" och "händelser" som är förknippade med ett element. Till exempel har den integrerade miljösensorn BME680 en uppsättning funktioner för avläsning av temperatur, tryck och fukt. Andra funktionselement, som ett intervallelement, kan periodvis utlösa händelser som framkallar körning av ett elements förmåga. Det finns även element som representerar Bluetooth-kommunikation med en Bluetooth-kompatibel mobil enhet som en smarttelefon.

Att bygga en tillämpning med den här metoden är enkelt i och med att Digi-Key erbjuder ett antal demonstrationsprojekt för utvärderingskortet RSL10-SENSE-GEVK. I ett demonstrationsprojekt för BME680 utlöser ett intervallelement BME680-sensorns förmåga att läsa av temperatur, tryck och fukt var 1000:e ms. I sin tur sänder förknippade Bluetooth-element för varje sensor dessa sensorvärden till en Bluetooth-enhet (figur 7).

Bild på enhetsfliken i Digi-Key DK IoT Studio (klicka för att förstora)Figur 7: I enhetsfliken i Digi-Key DK IoT Studio kombinerar utvecklarna element för att periodiskt läsa av data från miljösensorn på RSL10-SENSE-GEVK-utvärderingskortet och sänder sensordata via en Bluetooth-anslutning, till en förknippad mobilapp. (Bildkälla: Digi-Key Electronics)

Med applikationsfliken kan utvecklarna bygga ett användargränssnitt i Digi-Key-mobilappen för att visa de data som tagits emot via Bluetooth. I BME680-projektdemonstrationen visar den här applikationen inte bara temperatur, tryck och fukt utan skickar även varje sensorvärde till ett molnelement (figur 8).

Bild på Digi-Key DK IoT Studios applikationsflik (klicka för att förstora)Figur 8: På Digi-Key DK IoT Studio-applikationsflik finns ett utrymme för att visa sensordata i den förknippade mobilappen samt ett fönster där visade data kan genereras och andra funktioner i molbilappen kan utföras som att skicka data till molnet. (Bildkälla: Digi-Key Electronics)

Denna användning av en mellanapp för att förmedla sensordata till en molnapplikation används normalt för att undvika behov av direkta anslutningar från IoT-enheten till molnet. För enheter med inbyggda Wi-Fi-kommunikationsegenskaper kan sensordata givetvis skickas direkt till molnet och DK IoT Studio tillhandahåller Wi-Fi-element och andra funktioner som stöd. I alla fall specificeras molnfunktionerna på molnfliken. I det här fallet lagras temperatur-, tryck och fuktresultaten i molnlagringstjänster som medföljer DK IoT Studio (figur 9).

Bild på DK IoT Studio-molnfliken (klicka för att förstora)Figur 9: På DK IoT Studio-molnfliken definierar utvecklarna molnbaserade operationer som lagring av sensordata i molnlagring. (Bildkälla: Digi-Key Electronics)

Efter att ha definierat enhets-, applikations- och molnroller kan användaren kompilera projektet i DK IoT Studio genom att klicka på kompileringsikonen. Efter kodgenerering kan användaren läsa in den resulterande fasta programvaran i RSL10-SENSE-GEVK. Här slutför ett litet program som körs på användarens system överföringen från DK IoT Studio till utvärderingskortet som ansluts till det systemet. Applikations- och molnkoduppsättningarna sparas automatiskt i DK IoT Studios molnmiljö.

Trots att den här metoden kan eliminera behovet av att utveckla applikationskod, definieras händelserna och förmågorna som förknippas med varje element i en uppsättning programvarurutiner som kallas EEL (Embedded Element Library), som körs i DK IoT Studio-utvecklingsmiljön.

Till exempel anropar BME680-funktionen "Read Temperature" en abstraktion bme680_get_sensor_() som definieras i en BME680 C-språkmodul (lista 1).

BME680_Status_t BME680_GetTempData( float *tempC )

Copy { _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; } 

Lista 1: Under det grafiska gränssnittet för DK IoT Studio, implementerar kod som är förknippad med varje element specifika funktioner, såsom denna funktion som anropas när funktionen "Read Temperature" aktiveras. (Kodkälla: Digi-Key Electronics)

Lågnivårutiner i samma modul implementerar de bitmanipulationsoperationer som krävs för att extrahera önskad data från sensorregister som läses av en rutin på lägre nivå, bme680_get_regs() (lista 2).

Copy 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; } 

Lista 2: Kod förknippad med varje element i DK IoT Studio översätter mer abstrakta funktionsanrop från tjänster på högre nivå till specifika operationer som extrahering av data från miljöns sensorregister. (Kodkälla: Digi-Key Electronics)

Som antytts tidigare, erbjuder elementen metoder som villkor som används rutinmässigt av programvaruutvecklare och metoder som GPIO-kontroll som används rutinmässigt av maskinvaruutvecklare. I DK IoT Studio-miljön erbjuder motsvarande element en enkel dra och släpp-metod för att testa villkor och köra lämpliga åtgärder. Ett annat demonstrationsprojekt visar till exempel hur lysdioden på RSL10-SENSE-GEVK-kortet kan slås på om utgången från kortets omgivningsljussensor överskrider ett angivet värde (figur 10).

Bild på Digi-Key DK IoT StudioFigur 10: DK IoT Studio tillhandahåller element som behövs för att utföra mer abstrakt logik som värdekontroll såväl som lågnivåfunktioner som att ställa in en GPIO som är kopplad till lysdioden på ON Semiconductor RSL10-SENSE-GEVK-utvärderingskortet. (Bildkälla: Digi-Key Electronics)

På molnsidan kan ett liknande test användas för att generera metadata för mobilappen. I det här fallet kan metadata användas i appen för att ställa in en varningssymbol som indikerar ett problem som sensorn detekterar (figur 11).

Bild på DK IoT Studio villkorskontroll för att ställa in statusmetadataFigur 11: DK IoT Studio har stöd för mer sofistikerade åtgärder i molnet och i mobilappen som den här villkorskontrollen för att ställa in statusmetadata för appen och bevara data i molnlagringen. (Bildkälla: Digi-Key Electronics)

Körning av den underliggande koden som ansvarar för att slå på och stänga av lysdioden följer en anropskedja som börjar med anrop av en funktion på högre nivå som är förknippad med den händelsen i den underliggande miljön. Den funktionen, SetPinState, är en funktionspekare som ställs in under initieringen för att peka på en funktion på lägre nivå, ATMO_ONSEMI_GPIO_SetPinState(), som implementerar den nödvändiga funktionen och slutligen anropar en biblioteksfunktion för ON Semiconductor RSL10 SDK, Sys_DIO_Config(), som ställer in det angivna stiftet (lista 3).

Kopiera 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 ); } 

Lista 3: DK IoT Studio erbjuder en uppsättning vanliga abstraktioner som realiseras i servicelager på lägre nivå, vilket implementerar maskinvaruspecifika åtgärder som att ställa in GPIO-bitar. (Kodkälla: Digi-Key Electronics)

Trots sin enkelhet erbjuder DK IoT Studio en mycket flexibel utvecklingsmiljö. Utvecklare kan använda ett elements EEL-kod i befintligt skick eller modifiera den efter behov för sin applikation. Under utvecklingen innehåller DK IoT Studio-enhetsfliken en panel med underliggande högnivåkod som förknippas med elementen som placerats på flikens arbetsyta (se figur 7). För tillämpningar som kräver särskild hantering kan utvecklarna omedelbart modifiera koden i panelen. Andra funktioner som ett funktionselement lägger till en tom funktionsdefinition i koden så att utvecklarna kan komplettera körningen med egenskaper och funktioner som är tillgängliga i miljön.

I praktiken kombinerar DK IoT Studios metod enkelheten i den kodfria dra och släpp-miljön med flexibilitet och prestanda som endast begränsas av mängden minne och processorkapaciteten hos underliggande maskinvaruenheter. Genom att använda den här metoden med RSL10-SENSE-GEVK-kortet kan utvecklarna snabbt distribuera fullt funktionella prototyper med anslutning mellan enhet och moln och stöd för mobilappar.

Slutsats

Nya tillämpningar av multisensorenheter växer fram på olika marknader inklusive konsument-, fordons- och industrimarknaden. För många av dessa tillämpningar är Bluetooth-anslutning och utökad batterilivslängd väsentligt, men samtidigt behöver konstruktörerna det understödjande ekosystem som krävs för att även kunna möta det konstanta kravet på snabbare tid till marknad genom flexibla designmetoder. ON Semiconductors RSL10 SoC, RSL10 SiP och RSL10-SENSE-GEVK-utvärderingskort svarar på dessa utmaningar genom att erbjuda lösningar som klarar kraven på anpassad design, integrerade moduler och kompletta multisensorlösningar. Med dessa maskinvaruplattformar kan utvecklarna implementera anpassade tillämpningar med programvaruutvecklingssatsen RSL10 och förknippade programvarudistributionspaket.

När snabb utveckling av multisensortillämpningar från enhet till moln krävs innebär kombinationen ON Semiconductor RSL10-SENSE-GEVK-utvärderingskort och DK IoT Studio IDE en kraftfull snabbutvecklingsplattform för implementering av multisensorlösningar med ultralåg effekt i kompletta enhet-till-moln-tillämpningar. RSL10-maskinvaran och tillgängliga programvarualternativ erbjuder en mycket flexibel plattform för utveckling och distribuering av certifierade Bluetooth-enheter som kan uppfylla kraven på utökad batterilivslängd.

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 Digi-Key Electronics or official policies of Digi-Key Electronics.

Om skribenten

Stephen Evanczuk

Stephen Evanczuk har arbetat i mer än 20 år med att skriva för och om elektronikbranschen inom många olika områden som maskinvara, programvara, system och applikationer – inklusive sakernas internet. Han har en kandidatexameni neurovetenskap om artificiella neuronnät och har arbetat inom rymdfartsindustrin med mycket distribuerade säkra system och metoder för acceleration av algoritmer. När han inte skriver artiklar om teknik och konstruktion arbetar han med applikationer för djupinlärning för igenkänningssystem och rekommendationssystem.

Om utgivaren

Digi-Keys nordamerikanska redaktörer