0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaPredstavljamoBrezžični IoT senzorji se povezujejo preko Bluetooth

    Brezžični IoT senzorji se povezujejo preko Bluetooth

    Digi-Key Electronics
    Avtor: Rich Miron
    2017_255_22

    Bolj kot so uporabniki seznanjeni z aplikacijami Internet of Things (IoT), hitreje se morajo razvijalci odzvati na nastajajoče priložnosti s popolnoma funkcionalnimi prototipi, ki lahko potrdijo nove koncepte ali konkurenčne izdelke. Vendar je pri večini razvojnih rešitev IoT potrebno veliko napora, da delujejo pravilno, zlasti z vidika programske opreme.

    Slika 1: Nordic Bluetooth SoftDevice izvaja celoten niz protokolov Bluetooth kot sistemsko programsko opremo, tako da zagotavlja celoten nabor storitev, ne da bi morali razvijalci povezati knjižnico niza protokola s svojo aplikacijo. (Vir slike: Nordic Semiconductor)

    Za pospešitev procesa potrebujejo razvijalci razvojno rešitev za premagovanje številnih obstoječih ovir, ki upočasnjujejo odzivanje na priložnosti za nove aplikacije IoT. Hitri razvojni komplet podjetja Nordic Semiconductor izpolnjuje te zahteve s popolno strojno/programsko rešitvijo za zasnovo brezžičnih modelov senzorjev, povezanih prek povezave Bluetooth.

    V članku bomo razpravljali o zahtevah glede zasnove, predstavili primerno brezžično rešitev Bluetooth in razvijalcem podali navodila za hitro vzpostavitev njenega delovanja.

    Zahteve za brezžično napravo IoT in možnosti rešitve

    Brezžični sistemi senzorjev morajo kot podatkovni vir za aplikacije IoT na visoki ravni izpolnjevati široko paleto kompleksnih zahtev. Med temi zahtevami so pričakovanja o povezljivosti Bluetooth vse večja, skupaj s pričakovanji uporabnikov glede enostavnega spremljanja in nadzora IoT prek aplikacij za pametne telefone. Proizvajalci polprevodnikov so se na to vse večje povpraševanje odzvali z vrsto rešitev, vključno z integriranimi vezji sprejemnikov Bluetooth, moduli in napravami s sistemom na čip (SoC).

    Medtem ko vsaka rešitev obravnava različne razrede aplikacijskih zahtev, se je Bluetooth SoC pojavila kot posebej privlačna rešitev za prenosne in majhne naprave IoT. Z integriranjem komunikacijskega podsistema Bluetooth te naprave ponujajo kombinacijo zmanjšanega BOM-a, majhnega odtisa in minimalne moči, ne da bi to vplivalo na funkcionalnost in zmogljivost.

    Med napravami v tem razredu polprevodnikov Nordic nRF52832 Bluetooth SoC združuje procesorsko jedro in radijski podsistem s fleksibilno programsko arhitekturo, zasnovano za poenostavitev razvoja brezžičnih sistemov.

    Brezžični MCU

    Slika 2: Referenčna zasnova Thingy zagotavlja popolne sheme in prikazuje tehnike zasnove, kot je uporaba merilnika pospeška STMicroelectronics LIS3DH za prebuditev nedejavnega MCU-ja pri gibanju. (Vir slike: Nordic Semiconductor)

    Na osnovi 32-bitnega jedra ARM® Cortex®-M4F ima Nordic nRF52832 vgrajen sprejemnik z 2,4 GHz, ki lahko podpira standardne protokole, vključno z nizko energijo Bluetooth (BLE) in ANT, ter lastniške protokole. Med zunanjimi napravami naprava združuje analogne komparatorje in 8-kanalno programabilno pospešitev 12-bitnega analogno-digitalnega pretvornika (ADC) ter tudi tri števce v realnem času (RTC), 32 GPIO-jev, več modulatorjev kanalov širine impulzov (PWM) in serijske vmesnike.

    Vzorec programabilnega obrobnega medsebojnega povezovanja na čip (PPI) omogoča, da te zunanje naprave sinhronizirajo svojo dejavnost z neposrednim komuniciranjem ali prek neposrednega dostopa do pomnilnika (DMA) brez posredovanja procesorja. Poleg tega naprava med drugim vključuje več blokad strojne opreme za funkcije na visoki ravni, vključno s kvadraturnim dekodiranjem, kripto AES in pospešeno razreševanje naslovov za kripto storitve Bluetooth.

    Naprava porablja 58 μA/MHz, ko deluje iz svojega 512-kilobajtnega Flash pomnilnika ali 51,6 μA/MHz, ko deluje iz svojega 64-megabajtnega RAM-a. Več načinov nizke porabe omogoča razvijalcem, da zmanjšajo porabo energije, ko je aplikacija neaktivna. Naprava na primer porablja le 1,5 μA v stanju mirovanja pri nizki porabi, pri čemer ohranja polno stanje RAM-a in se lahko zbudi pri vsaki aktivnosti. Pravzaprav lahko razvijalci postavijo napravo v poseben pod-način stalne zakasnitve, ki zagotavlja stalen, minimalen čas za prebuditev CPU-ja in odziv podsistema PPI. Z uporabo svojih prilagodljivih načinov delovanja, zunanjih naprav in blokad strojne opreme na čip lahko razvijalci programirajo nRF52832, da izpolnjuje specifične kombinacije zahtev za energijo, zmogljivost in funkcionalnost.

    Komunikacijske storitve

    Slika 3: Zasnova strojne opreme Thingy izkorišča preprost strojni vmesnik, potreben za integrirane senzorje, kot je senzor gibanja TDK InvenSense MPU-9250, vendar doda analogno stikalo NXP NX3DV2567 za izločitev senzorja iz sistema za ohranjanje energije. (Vir slike: Nordic Semiconductor)

    Za vse svoje integrirane zmogljivosti je ena od najznačilnejših lastnosti enote nRF52832 in drugih članov družine Nordic nRF52 njihova arhitektura komunikacijskih storitev. Podjetje Nordic je predstavilo svojo arhitekturo SoftDevice v prejšnjih brezžičnih družinah sistemov SoC kot način za zmanjšanje trenj, s katerimi se soočajo razvijalci pri uporabi nizov komunikacijskih protokolov.

    Izvedena kot sistemska programska oprema, ki jo je mogoče posodobiti, arhitektura SoftDevice poenostavlja razvoj programske opreme z zagotavljanjem preizkušenih slojev storitev, ki jih programerji lahko izkoristijo, ne da bi to vplivalo na njihov razvojni proces. Za aplikacije BLE S132 SoftDevice podjetja Nordic ponuja celoten niz protokolov Bluetooth (slika 1).

    SoftDevice ni le preprost sloj programske opreme, ampak uporablja prefinjen model, ki temelji na prekinitvah in razvijalcem omogoča uporabo storitev SoftDevice brez povezave kode SoftDevice z njihovimi aplikacijami med razvijanjem. Razvijalci preprosto dostopajo do programskega vmesnika aplikacije SoftDevice (API) z uporabo serije nadzornih klicev (SVC), ki so opredeljeni v nizu zaglavnih datotek API jezika C.

    SVC-ji se izvajajo kot prekinitve, ki jih sproži programska oprema, tako da, ko razvijalci pokličejo funkcijo API, upravljalnik prekinitev SoftDevice SVC poišče ustrezno funkcijo SoftDevice in vanjo prenese funkcijske parametre z uporabo povratnih klicev za povrnitev rezultatov. Ta pristop odpravlja potrebo po povezovanju naslovov virov SoftDevice v času izdelave, hkrati pa zagotavlja tudi izvajanje varnostnih storitev.

    Slika 4: Programski paket Thingy razširja komplet za razvoj programske opreme nRF52 podjetja Nordic (SDK) s storitvami na ravni aplikacij in uporabniškimi moduli, zasnovanimi posebej za aplikacijo Thingy. (Vir slike: Nordic Semiconductor)

    Za uresničitev tega modela Nordic povezuje SoftDevice v mehanizme prekinitve spodnje ravni in vire strojne opreme. Prekinitve spodnje ravni postanejo vidne programski opremi SoftDevice, ki uporablja namenski IRQ, da prenese specifične prekinitve aplikacije do aplikacije in sama obravnava preostale prekinitve. Poleg tega SoftDevice v okviru svoje odgovornosti za storitve neposredno dostopa do strojne opreme naprave, vključno z radijskimi in drugimi zunanjimi napravami.

    Da bi se izognili morebitnim težavam za skupne vire strojne opreme, Nordic ponuja funkcijo časovnega zakupa, ki razporeja dodeljevanje sredstev med programsko opremo SoftDevice in aplikacijo v določenih časovnih intervalih. Aplikacije lahko zahtevajo čim zgodnejši časovni zakup ali zakup v določenem času. Kljub osnovni zapletenosti tega mehanizma, API podjetja Nordic zmanjša breme aplikacije na nekaj klicev na visoki ravni. Aplikacija lahko na primer zažene signal z odpiranjem radijske seje (seznam 1) s povratnim klicem (seznam 2) za dejanske oglaševalske operacije. Med vsakim prehodom povratni klic povečuje preprosti tip enum (seznam 3), da prehaja skozi vrsto stanj, dokler se oglaševalski proces ne konča (mode == ADV_DONE), glej seznam 1, 2 in 3.

    Storitve SoftDevice enote nRF52832 in integrirana funkcionalnost strojne opreme zagotavljajo učinkovito osnovo za razvoj brezžičnih senzorskih sistemov z minimalnim številom delov. Vendar pa lahko zaradi zapletenosti teh naprav SoC oblikovalci porabijo veliko časa za pripravo zasnove senzorja, kaj šele za popolno aplikacijo IoT. Komplet senzorjev Thingy:52 IoT NRF6936 podjetja Nordic Semiconductor pomaga razvijalcem, da znatno skrajšajo čas, potreben za razvoj uporabnih senzorskih sistemov, povezanih s tehnologijo Bluetooth.

    Hiter razvoj Thingy

    Komplet Nordic Thingy:52 ponuja hitro prototipno rešitev za brezžične modele senzorjev. S čipom nRF52832 Bluetooth SoC ima komplet vse funkcije in je že ob nakupu pripravljen za uporabo, pri čemer ni potreben razvoj strojne ali sistemske programske opreme za izdelavo rešitve senzorja IoT skupaj s povezano mobilno aplikacijo.

    Plošča nRF6936 med svojimi funkcijami vključuje celoten senzorski paket:

    • barvni senzor Rohm Semiconductor BH1745
    • enzor vlažnosti STMicroelectronics HTS221
    • enzor tlaka STMicroelectronics LPS22HB
    • enzor plina ams CCS811
    • ikrofon MEMS STMicroelectronics MP34DB02
    • enzor inercialne merilne enote (IMU)TDK InvenSense MPU-9250

    Plošča Thingy skupaj z enoto MPU-9250 IMU za popolno sledenje 9-osnega gibanja vključuje ločen namenski senzor gibanja – merilnik pospeška STMicroelectronics LIS3DH za prebuditev sistema pri gibanju. LIS3DH se napaja neposredno iz notranjega regulatorja napetosti, kar zagotavlja, da ohrani napetost ne glede na stanje VDD. Referenčna zasnova vključuje sheme, ki prikazujejo, kako LIS3DH ohranja osamitev s povezavo prek zunanjega vodila I2C, ki je kot del zasnove na voljo za podporo zunanje strojne opreme (slika 2).

    Kot je prikazano na sliki 2, pametni senzorji, ki se uporabljajo pri tej zasnovi, zmanjšujejo kompleksnost, ker zahtevajo preprosto dvožilno povezavo I2C z gostiteljem. S to referenčno zasnovo Nordic prikazuje preprosto metodo, ki minimalno povečanje v zasnovnih odtisih zamenja za znatno zmanjšano porabo energije v obdobjih nizke aktivnosti. Tukaj zasnova združuje nekaj senzorjev z namenskim analognim stikalom NXP NX3DV2567, ki omogoča, da MCU (prek MPU_WR_CTRL) odklopi določen senzor z napajanja, prekinitve MCU in vodila I2C, kadar so pogoji delovanja primerni (slika 3).

    Razvijalci lahko razširijo strojno opremo Thingy z dodajanjem zunanjih naprav. Štirje spojniki podpirajo 4-pinski format Grove, ki razvijalcem omogoča enostavno dodajanje strojne opreme iz širokega nabora razpoložljivih naprav, združljivih s tehnologijo Grove. Dodatna pinska glava 2 x 10 zagotavlja dodatna vrata MCU in vključuje celo štiri vmesne linije. Vsaka od teh linij vključuje Diodes Inc.TranzistorDMN3190LDW N-MOS, ki lahko poganja zunanje komponente, kot so svetleče diode ali majhni enosmerni motorčki. Pravzaprav je število vhodov/izhodov, ki jih oblikovalcem omogoča zasnova Thingy, večje od lastnega pinskega števila GPIO enote nRF52832. Podjetje Nordic je dodalo niz pomnilnikov GPIO Semtech Corp SX1509 za povečanje vhodno/izhodne zmogljivosti zasnove sistema Thingy.

    Zaradi večje zmogljivosti vhodov/izhodov sistema Thingy lahko razvijalci strojne opreme enostavno ustvarjajo prototipe tako, da priključijo zunanje naprave na ploščo. Celovita programska platforma zagotavlja enako enostavnost razvoja tudi razvijalcem programske opreme.

    Programska platforma

    Razvojna platforma Thingy razširja komplet za razvoj programske opreme (SDK) nRF52 z vrsto storitev, ki so potrebne, da se razvijalci aplikacij lahko osredotočijo na postopke na višji ravni namesto na postopke na nižji ravni (slika 4). Paket Thingy ima na primer sloj gonilnikov senzorjev, ki gradijo na SDK-jevih zunanjih gonilnikih in strojnem abstrakcijskem sloju (HAL) za upravljanje operacij, kot so konfiguriranje senzorjev, njihov zagon ali zaustavljanje in pridobivanje podatkov senzorjev.

    Nordic zaključuje verigo IoT od senzorja do mobilne aplikacije z nizom virov za razvoj odjemalcev. Podjetje ponuja ločene odprte shrambe s knjižnicami in vzorčnimi aplikacijami v programih Swift za razvijalce sistema iOS in v programih Java za razvijalce sistema Android. Poleg tega dodatna odprta shramba ponuja knjižnico JavaScript za razvoj spletnih aplikacij, zgrajenih na podlagi knjižnice spletnih komponent Polymer in Web Bluetooth API.

    Slika 5: Spremljevalna aplikacija deluje s sistemom Thingy prek povezave Bluetooth in zagotavlja prikazovanje podatkov senzorjev ter storitve za konfiguracijo sistema Thingy in posodobitev sistemske programske opreme. (Vir slike: Digi-Key)

    Razvijalci lahko hitro preizkusijo delovanje paketa Thingy preprosto s prenosom aplikacije Nordic Thingy iz spletne trgovine Apple App ali Google Play. Razvijalec nato vklopi Thingy, ki deluje prek vgrajene litij-ionske baterije 1440 mAh, ki se napaja prek USB-priključka. Ko aplikacija zazna sistem Thingy in se z njim poveže, omogoča prikaz podatkov senzorjev (slika 5). Aplikacija podpira tudi povezavo z aplikacijo IFTTT, ki omogoča uporabnikom, da ustvarijo oblake na podlagi programčkov z uporabo verige dogodkov IFTTT, ki jih sprožijo podatki sistema Thingy.

    Na podlagi referenčne zasnove Thingy in programske platforme lahko razvijalci hitro razširijo sistem Thingy, da izpolnijo svoje posebne zahteve. Razvijalci lahko prevajajo novo sistemsko programsko opremo Thingy z uporabo Keil μVision ali GCC, ki uporablja orodje GNU za ARM Cortex-M. Sistem Thingy zagotavlja varno brezžično nadgradnjo naprave za nalaganje nove sistemske programske opreme. Standardna aplikacija Thingy vključuje možnost posodabljanja na najnovejšo različico sistemske programske opreme Thingy podjetja Nordic ali prilagojenih paketov sistemske programske opreme, ki so jih ustvarili razvijalci z uporabo odprtokodnega pripomočka, ki ga ponuja Nordic.

    Zaključek

    Na trgu, ki je obremenjen s hitro spreminjajočimi se priložnostmi IoT, se razvijalci hitreje srečujejo z rastočim povpraševanjem po prototipih zapletenih aplikacij. Čeprav jim je na voljo vse večje število razvojnih platform IoT, projekti tečejo prepočasi, saj se inženirji ukvarjajo s kompleksnimi podrobnostmi implementacije, povezane s temi platformami.

    Nordic Thingy:52 poenostavi razvoj IoT s hitro prototipno platformo, ki prikrije kompleksnost zasnove strojne opreme in arhitekture programske opreme. S kompleti Nordic Thingy lahko razvijalci hitro ustvarijo prototipne sisteme z več senzorji prek povezave Bluetooth, in pozneje na referenčni zasnovi Thingy ustvarjajo prilagojene naprave IoT.

    www.digikey.com
    seznam 1 
    Seznam 1: Programski paket Thingy vključuje vzorčne rutine, kot je app_beacon_start, ki prikazujejo interakcije s SoftDevice, da ustvarijo radijsko sejo s specifičnim povratnim klicem (m_timeslot_callback) in zahtevajo najzgodnejši razpoložljivi radijski časovni zakup za prenos signala (m_request_earliest). (Vir kode: Nordic Semiconductor)
    
    void app_beacon_start(void)
    {
     if (m_beacon.is_running || m_beacon.keep_running)
     {
     return;
     }
    
    DEBUG_PRINTF(0, "app_beacon_start:rn");
     m_beacon.keep_running = true;
     m_beacon.is_running = true;
    
    uint32_t err_code = sd_radio_session_open(m_timeslot_callback);
     if ((err_code != NRF_SUCCESS) && (m_beacon.error_handler != NULL))
     {
     m_beacon.error_handler(err_code);
     }
     err_code = m_request_earliest(NRF_RADIO_PRIORITY_NORMAL);
     if ((err_code != NRF_SUCCESS) && (m_beacon.error_handler != NULL))
     {
     m_beacon.error_handler(err_code);
     }
    }

     

    seznam 2 
    Seznam 2: Programski paket Thingy ponuja vzorčno programsko opremo, ki zagotavlja reprezentativne vzorce oblikovanja, kot je uporaba rutine povratnih klicev, ki je prikazana tukaj, da izvede vrsto radijskih operacij za oglaševanje signalov. (Vir kode: Nordic Semiconductor)
    
    static nrf_radio_signal_callback_return_param_t * m_timeslot_callback(uint8_t signal_type)
    {
     static nrf_radio_signal_callback_return_param_t signal_callback_return_param;
     static enum mode_t mode;
    
    signal_callback_return_param.params.request.p_next = NULL;
     signal_callback_return_param.callback_action = NRF_RADIO_SIGNAL_CALLBACK_ACTION_NONE;
    
    switch (signal_type)
     {
     case NRF_RADIO_CALLBACK_SIGNAL_TYPE_START:
    
    m_handle_start();
    
    mode = ADV_INIT;
    mode++;
    break;
    case NRF_RADIO_CALLBACK_SIGNAL_TYPE_RADIO:
    if (NRF_RADIO->EVENTS_DISABLED == 1)
    {
    NRF_RADIO->EVENTS_DISABLED = 0;
    
    m_handle_radio_disabled(mode);
    if (mode == ADV_DONE)
    {
    DEBUG_PRINTF(0, "app_beacon_adv_done:rn");
    NRF_PPI->CHENCLR = (1 << 8);
    if (m_beacon.keep_running)
    {
    signal_callback_return_param.params.request.p_next = m_configure_next_event();
    signal_callback_return_param.callback_action = NRF_RADIO_SIGNAL_CALLBACK
    _ACTION_REQUEST_AND_END;
    }
    else
    {
    signal_callback_return_param.callback_action = NRF_RADIO_SIGNAL_CALLBACK
    _ACTION_END;
    }
    break;
    }
    mode++;
    }
    break;
    default:
    if (m_beacon.error_handler != NULL)
    {
    m_beacon.error_handler(NRF_ERROR_INVALID_STATE);
    }
    break;
    
    }
    return ( &signal_callback_return_param );
    }

     

    seznam 3 
    Seznam 3: Rutina vzorčnega povratnega klica v programskem paketu Thingy uporablja ta tip enum, da vodi sistem skozi niz stopenj med zaporedjem oglaševanja signala. (Vir kode: Nordic Semiconductor)
    
    enum mode_t
    {
     ADV_INIT, /** Initialisation. */
     ADV_RX_CH37, /** Advertising on Rx channel 37. */
     ADV_RX_CH38, /** Advertising on Rx channel 38. */
     ADV_RX_CH39, /** Advertising on Rx channel 39. */
     ADV_DONE /** Done advertising. */
    };