ST-FP-LIT-BLEMESH1-Softver-Arhitektura-LOGO

ST FP-LIT-BLEMESH1 Arhitektura softvera

ST-FP-LIT-BLEMESH1-Softver-Arhitektura-PROIZVOD

Uvod

FP-LIT-BLEMESH1 je STM32Cube funkcionalni paket, koji vam omogućava da povežete Bluetooth® Low Energy čvorove na pametni telefon putem Bluetooth® Low Energy, putem odgovarajuće Android™ ili iOS™ aplikacije, da postavite HSL vrijednosti i pošaljete podatke na hardver za osvetljenje koji koristi Bluetooth® Low Energy mrežasti model osvetljenja. Softver vam omogućava da jednostavno kreirate vlastitu aplikaciju za proširenje Bluetooth® mesh mreža (nuđenjem spremne biblioteke mesh jezgra), kompletnog skupa kompatibilnih API-ja i aplikacije za demonstraciju osvjetljenja koja radi na X-NUCLEO-IDB05A2 ili X-NUCLEO-BNRG2A1 i X-NUCLEO-LED12A1 ploče za proširenje povezane na NUCLEO-L476RG razvojnu ploču. Softver radi na STM32 mikrokontroleru i uključuje sve potrebne drajvere za prepoznavanje uređaja na STM32 Nucleo razvojnoj ploči i pločama za proširenje.

POVEZANI LINKOVI
Posjetite ekosistem STM32Cube web stranica na www.st.com za dalje informacije

Akronimi i kratice

Akronim Opis
GATT Generički atribut profile
BSP Paket podrške za ploču
HAL Sloj hardverske apstrakcije
SPI Serijski periferni interfejs
CMSIS Standard softverskog interfejsa Cortex® mikrokontrolera
HSL Osvetljenje zasićenosti nijansi

Tabela 1. Lista akronima

FP-LIT-BLEMESH1 softversko proširenje za STM32Cube

Gotovoview

FP-LIT-BLEMESH1 softverski paket proširuje STM32Cube funkcionalnost. Ključne karakteristike paketa su:

  • Kompletan softver za izgradnju mesh mreže sa Bluetooth® Low Energy čvorovima koji podržavaju Bluetooth® mrežasti model osvjetljenja, definiran u Bluetooth® mesh specifikaciji V1.0.1
  • Vrijednosti nijanse, zasićenosti i svjetline (HSL) koje postavlja STBLEMesh Android i iOS aplikacija koristeći model osvjetljenja mijenjaju RGB vrijednosti X-NUCLEO-LED12A1 LED ploče za proširenje spojene na NUCLEO-L476RG
  • Kompatibilan sa pametnim telefonima koji podržavaju BLE za praćenje i kontrolu višestrukih Bluetooth® Low Energy čvorova, koristeći proxy protokol i naslijeđenu Bluetooth® Low Energy GATT vezu
  • Dvoslojna sigurnost, zahvaljujući 128-bitnoj AES CCM enkripciji i 256-bitnom ECDH protokolu, osiguravajući zaštitu od višestrukih napada, uključujući Replay, Bit-Flipping, Eavesdropping, Man-in-the-Middle i Trashcan
  • Sampimplementacija dostupna na:
    • X-NUCLEO-IDB05A2 i X-NUCLEO-LED12A1 ploče za proširenje povezane na NUCLEO-L476RG razvojnu ploču
    • X-NUCLEO-BNRG2A1 i X-NUCLEO-LED12A1 ploče za proširenje povezane na NUCLEO-L476RG razvojnu ploču
  • Laka prenosivost kroz različite MCU porodice, zahvaljujući STM32Cube
  •  Besplatni, korisnički prilagođeni uslovi licence

Softver funkcionalnog paketa uključuje LED1202, koji je 12-kanalni LED drajver niske struje mirovanja, kada se X-NUCLEO-LED12A1 ploča za proširenje montira na STM32 Nucleo.
Paket je kompatibilan sa STBLEMesh Android/iOS aplikacijom dostupnom u GooglePlay/iTunes prodavnicama, koja se može koristiti za postavljanje informacija i slanje putem Bluetooth® Low Energy. On integriše BlueNRG proizvode sa ugrađenom Bluetooth® Low Energy komunikacijom u moćnu mesh mrežu koja proširuje domet sa stvarnom full-dupleks komunikacijom. Fleksibilnost paketa vam omogućava da napravite vlastitu aplikaciju.

Arhitektura
Softver je baziran na STM32CubeHAL, sloju apstrakcije hardvera za STM32 mikrokontroler. Paket proširuje STM32Cube pružanjem paketa podrške za ploče (BSP) kako bi se omogućio razvoj aplikacija koristeći Bluetooth mesh profile i specifikacije modela.

Softverski slojevi koje aplikativni softver koristi za pristup i korištenje ploča za proširenje su:

  • STM32Cube HAL sloj, koji pruža jednostavan, generički skup više instanci interfejsa za programiranje aplikacija (API) za interakciju sa gornjim slojevima aplikacije, biblioteke i steka. Ima generičke i proširene API-je i direktno je izgrađen oko generičke arhitekture i omogućava uzastopnim slojevima kao što je sloj međuvera da implementiraju funkcije bez potrebe za specifičnim hardverskim konfiguracijama za datu jedinicu mikrokontrolera (MCU). Ova struktura poboljšava ponovnu upotrebu koda biblioteke i garantuje laku prenosivost na drugim uređajima.
  • Sloj paketa podrške za ploču (BSP) podržava sve periferne uređaje na STM32 Nucleo osim MCU-a. Ovaj ograničeni skup API-ja pruža programski interfejs za određene periferne uređaje specifične za ploču kao što su LED, korisničko dugme, itd. Ovaj interfejs takođe pomaže u identifikaciji specifične verzije ploče.ST-FP-LIT-BLEMESH1-Softver-Arhitektura-SLIKA-1

Slika 1. Arhitektura softvera FP-LIT-BLEMESH1

Struktura folderaST-FP-LIT-BLEMESH1-Softver-Arhitektura-SLIKA-2

Slika 2. Struktura foldera paketa FP-LIT-BLEMESH1

Sledeće fascikle su uključene u softverski paket:

  • Dokumentacija: sadrži kompajlirani HTML file generiran iz izvornog koda, koji detaljno opisuje softverske komponente i API-je.
  • Drajveri: sadrži HAL drajvere i drajvere specifične za ploču za svaku podržanu ploču ili hardversku platformu, uključujući komponente na ploči i sloj apstrakcije hardvera nezavisan od proizvođača CMSIS za seriju procesora Arm® Cortex®-M.
  • Middlewares: sadrži biblioteke i protokole koji se odnose na Bluetooth i Bluetooth mesh profile i specifikacije modela.
  • Projekti: sadrži asampAplikacija koja se koristi za ažuriranje HSL vrijednosti RGB svjetla, predviđena za NUCLEO-L476RG platformu sa tri razvojna okruženja, IAR Embedded Workbench for Arm (IAR-EWARM), RealView Komplet za razvoj mikrokontrolera (MDK-ARM-STM32) i STM32CubeIDE.
  • Uslužni programi: sadrži fasciklu STM32L4_MAC koja obezbeđuje eksternu MAC adresu.

API-ji
Detaljne tehničke informacije s punom korisničkom API funkcijom i opisom parametara nalaze se u kompajliranom HTML-u file u folderu “Dokumentacija”.

Sample opis aplikacije Inicijalizacija povratnih poziva aplikacije Direktorij “Projekti” pruža nprampaplikacija pomoću X-NUCLEO-IDB05A2 ili X-NUCLEO-BNRG2A1 i X-NUCLEO-LED12A1 ploča za proširenje sa NUCLEO-L476RG razvojnom pločom.
Projekti spremni za izgradnju dostupni su za više IDE-ova.
Ova aplikacija počinje inicijalizacijom povratnih poziva potrebnih za različite događaje i funkcionalnosti. Povratni pozivi se koriste u biblioteci BlueNRG-Mesh za pozivanje funkcija zasnovanih na specifičnim događajima ili od strane državnog stroja biblioteke mreže.ST-FP-LIT-BLEMESH1-Softver-Arhitektura-SLIKA-3

Model_SIG_cb struktura se koristi za inicijalizaciju SIG modela za implementaciju aplikacije. The BluenrgMesh_SetSIGModelsCbMap(Model_SIG_cb, MODEL_SIG_COUNT); funkcija se koristi za inicijalizaciju različitih povratnih poziva u biblioteci.

Inicijalizacija i glavna aplikacijska petlja

Ova procedura razvija aplikaciju za mesh preko Bluetooth® Low Energy na BlueNRG platformama.

Korak 1. Pozovite InitDevice() API, koji poziva SystemInit() API, da inicijalizirate tablicu vektora uređaja, prioritete prekida i sat.
Korak 2. Pozovite Appli_CheckBdMacAddr() API da provjerite valjanost MAC adrese. Ako MAC adresa nije važeća, firmver je zaglavljen u while(1) petlji i LED neprekidno treperi.
Korak 3. Inicijalizirajte funkcije povratnog poziva hardvera za Bluetooth® Low Energy hardver ažuriranjem MOBLE_USER_BLE_CB_MAP user_ble_cb =.ST-FP-LIT-BLEMESH1-Softver-Arhitektura-SLIKA-4
Korak 4. Da biste se oslonili na sučelje aplikacije za inicijalizaciju Bluetooth® Low Energy radija i konfiguraciju Tx napajanja, inicijalizirajte GATT vezu i povratne pozive za prekid veze za sučelje aplikacije.
Korak 5. Pozovite BluenrgMesh_BleHardwareInitCallBack(&user_ble_cb) da završite inicijalizaciju hardverskih povratnih poziva.
Korak 6. Inicijalizirajte biblioteku BlueNRG-Mesh pozivanjem BluenrgMesh_Init(&BLEMeshlib_Init_params). Ako dođe do greške, poruka (“Nije moguće inicijalizirati BlueNRG-Mesh biblioteku!”) iskače na prozoru terminala, koji je otvoren za VCOM port kreiran USB vezom na ploči. Ova greška čini da LED lampica neprekidno treperi.
Korak 7. Provjerite da li je uređaj osiguran ili ne. Obezbeđeni uređaj ima mrežne ključeve i druge parametre konfigurisane u internoj fleš memoriji. Možete ih provjeriti pomoću BluenrgMesh_IsUnprovisioned() API-ja. Ako čvor nije obezbijeđen, BluenrgMesh_InitUnprovisionedNode() API ga inicijalizira. Ako je uređaj već osiguran, BluenrgMesh_InitprovisionedNode() API pomaže pri inicijalizaciji uređaja.
Korak 8. Ispišite poruke u prozor terminala za čvorove koji se inicijaliziraju. Poruka takođe štampa MAC adresu dodeljenu čvoru.
Korak 9. Inicijalizirajte BlueNRG-Mesh modele koristeći BluenrgMesh_ModelsInit() API.
Korak 10. Da biste inicijalizirali čvor u neobavljeno stanje, držite pritisnuto korisničko dugme. Briše sve mrežne parametre konfigurisane u internoj memoriji uređaja. Nakon što je poništavanje dovršeno, resetirajte ploču.
Korak 11. Inicijalizirajte LED drajvere i GPIO montiran na X-NUCLEO-LED12A1. Aplikacija mora pozvati BluenrgMesh_Process() u while(1) petlji što je češće moguće. Ova funkcija interno poziva BLE_StackTick() za obradu Bluetooth® Low Energy komunikacije. BluenrgMesh_ModelsProcess() (obrada modela) i Appli_Process() API-ji se također pozivaju u while(1) petlji. Bilo koja implementacija aplikacije se izvodi u državnom stroju neblokirajućim funkcijama s čestim pozivima BluenrgMesh_Process().
Korak 12. Provjerite unose korisnika ili dugmad za bilo koju radnju.

GATT čvor za povezivanje/odspajanje
Svaki čvor u mreži može se povezati sa pametnim telefonom preko GATT interfejsa. Kada se ova veza uspostavi, čvor postaje proxy, koji djeluje kao most između komandi mesh mreže i odgovora pametnog telefona.
Možete otkriti vezu s pametnim telefonom i prekid veze putem sljedećih povratnih poziva:

  • Appli_BleGattConnectionCompleteCb;
  • Appli_BleGattDisconnectionCompleteCb;

Oni se inicijaliziraju tokom glavne petlje.
Tokom provizije, uspostavlja se GATT veza sa čvorom koji treba da se obezbedi.
Ako pametni telefon izađe iz opsega proxy čvora, uspostavlja novu vezu sa dostupnim čvorom.

Model rasvjete

  • Specifikacija definira broj svjetlosnih stanja, poruka i modela koji su eksplicitno definirani kao nespecifični u svojoj funkcionalnosti.
  • Postoje različite vrste izvora svjetlosti s različitim mogućnostima. Shodno tome, postoje različiti načini da se izrazi stanje svjetla.
  • Naprednija metoda kontrole svjetla je promjena svjetlosti kontroliranjem stvarnog stanja svjetlosti.
  • Ako je svjetlo podesivo bijelo, moguće je kontrolisati njegovu temperaturu boje kroz svjetlosni CTL.
  • Ako je svjetlo svjetlo koje mijenja boju, moguće je kontrolirati tri dimenzije (nijansu, zasićenost i svjetlinu) kontroliranjem svakog stanja nezavisno.

Slika 3. Tok poruke modela rasvjete

Broj okteta ovisi o parametrima namijenjenim modelu. Oni su različiti za svaki model rasvjete.
Srednji sloj prima poruke iz biblioteke. Zatim provjerava operacijski kod prema različitoj primjeni svjetlosnog modela. Kao bivšiampKod modela lake lakoće, opkod se provjerava u srednjem sloju. Poruka sa definisanim parametrima podataka se zatim prenosi u aplikaciju light lightness.

Vrste poruka su:

  • Postavite potvrđenu poruku, koju šalje klijent da postavite željenu vrijednost za model na serveru. Tada očekuje poruku odgovora od servera.
  • Postavite Nepotvrđenu poruku, koju šalje klijent da postavite željenu vrijednost za model na serveru. Ne očekuje nikakvu odgovornu poruku od servera.
  •  Dobijte poruku koju klijent šalje serveru da dobije stanje modela kao odgovornu poruku sa servera.

Eksterni uslužni programi MAC adrese

  • Fascikla “Utilities” sadrži fasciklu STM32L4_MAC, koja sadrži heksadecimalni file eksterne MAC adrese.
  • Da biste koristili ovu adresu, dekomentirajte makro EXTERNAL_MAC_ADDR_MGMT u mesh_cfg.h file foldera “Middleware”.
  • Firmver demo aplikacije i MAC adresa se trepere nezavisno. Dakle, ne morate ažurirati firmver ako je drugi firmver već flešovan.
  • MAC adresa se treperi prvi put i pri svakom potpunom brisanju čipa.

Vodič za podešavanje sistema

Opis hardvera

STM32 Nucleo

  • STM32 Nucleo razvojne ploče pružaju pristupačan i fleksibilan način za korisnike da testiraju rješenja i naprave prototipove s bilo kojom linijom STM32 mikrokontrolera.
  • Arduino podrška za povezivanje i ST morpho konektori olakšavaju proširenje funkcionalnosti STM32 Nucleo otvorene razvojne platforme sa širokim spektrom specijaliziranih
  • ekspanzione ploče koje možete izabrati.
  • STM32 Nucleo ploča ne zahtijeva posebne sonde jer integriše ST-LINK/V2-1 debugger/programator.
  • STM32 Nucleo ploča dolazi sa sveobuhvatnom STM32 softverskom HAL bibliotekom zajedno sa raznim upakovanim softverom npr.ampdatoteke za različite IDE (IAR EWARM, Keil MDK-ARM,
  • STM32CubeIDE, mbed i GCC/LLVM).
  • Svi korisnici STM32 Nucleo imaju besplatan pristup mbed online resursima (kompajler, C/C++ SDK i zajednica programera) na www.mbed.org kako bi lako izgradili kompletne aplikacije.

Slika 4. STM32 Nucleo ploča

X-NUCLEO-IDB05A2 ploča za proširenje

  • X-NUCLEO-IDB05A2 Bluetooth® Low Energy ploča za proširenje je bazirana na BlueNRG-M0 Bluetooth® Low Energy mrežnom procesorskom modulu.
  • BlueNRG-M0 je kompatibilan s Bluetooth v4.2, ima FCC i IC certifikat (FCC ID: S9NBNRGM0AL; IC: 8976C-BNRGM0AL). Podržava simultane uloge master/slave i može se ponašati kao a
  • Bluetooth® Low Energy senzor i čvorište u isto vrijeme.
  • BlueNRG-M0 pruža kompletnu RF platformu u maloj formi, sa integrisanim radiom, antenom, visokofrekventnim i LPO oscilatorima.
  • X-NUCLEO-IDB05A2 je kompatibilan sa ST morpho (nije montiran) i Arduino UNO R3 rasporedom konektora.
  • X-NUCLEO-IDB05A2 se povezuje sa STM32 mikrokontrolerom preko SPI pina i omogućava promenu podrazumevanog SPI takta, izbora SPI čipa i SPI IRQ zamenom otpornika na ploči za proširenje.

X-NUCLEO-BNRG2A1 ploča za proširenje

  • X-NUCLEO-BNRG2A1 ploča za proširenje pruža Bluetooth® Low Energy povezivanje za programerske aplikacije i može se priključiti na STM32 Nucleo razvojnu ploču (za
  • example, NUCLEO-L476RG sa STM32 mikrokontrolerom ultra male snage) preko njegovih Arduino UNO R3 konektora.
  • Ploča za proširenje ima Bluetooth® v5.2 kompatibilan i FCC certificirani BlueNRG-M2SP modul za aplikativni procesor baziran na ST BlueNRG-2 System-on-Chip. Ovaj SoC upravlja
  • kompletan Bluetooth® Low Energy stack i protokoli na Cortex-M0 jezgri i programabilnoj fleš memoriji, koja može da primi prilagođene aplikacije razvijene pomoću SDK-a. The
  • BlueNRG-M2SP modul podržava master i slave modove, povećane brzine prijenosa s proširenjem dužine podataka (DLE) i AES-128 sigurnosno šifriranje.
  • X-NUCLEO-BNRG2A1 se povezuje sa STM32 Nucleo mikrokontrolerom preko SPI konekcija i GPIO pinova, od kojih se neki mogu konfigurisati preko hardvera.

Slika 6. X-NUCLEO-BNRG2A1 ploča za proširenje

X-NUCLEO-LED12A1 ploča za proširenje

  • X-NUCLEO-LED12A1 LED ploča za proširenje drajvera za STM32 Nucleo sadrži četiri LED1202 uređaja koji mogu pokretati do 48 LED dioda.
  • LED1202 je 12-kanalni LED drajver niske struje mirovanja, koji garantuje mogućnost pokretanja izlaza od 5 V. Svaki kanal je u stanju da obezbedi do 20 mA sa zapreminom u glavitage od 350 mV
  • (tipično) samo.
  • Izlazna struja se može podesiti zasebno za svaki kanal putem 8-bitne analogne i 12-bitne digitalne kontrole zatamnjivanja.
  • X-NUCLEO-LED12A1 ploča za proširenje dolazi sa dodatnom LED panel pločom koja sadrži dvije LED matrice: 6×8 bijelu LED matricu i 4×4 RGB matricu.
  • LED matrice se mogu napajati preko eksternog napajanja, koje je spojeno na J13 konektor, i odabirom pravog puta kroz J15 džamper da se postigne maksimalni sjaj
  • dostupan.

Slika 7. X-NUCLEO-LED12A1 ploča za proširenje

Podešavanje hardvera
Da biste postavili odgovarajuće razvojno okruženje za kreiranje aplikacija za STM32 Nucleo opremljene rasvjetom ili Bluetooth® Low Energy pločom za proširenje, potrebne su vam sljedeće hardverske komponente:

  1.  Jedna STM32 Nucleo razvojna ploča (šifra narudžbe: NUCLEO-L476RG)
  2.  Jedna Bluetooth® Low Energy ploča za proširenje (šifra narudžbe: X-NUCLEO-IDB05A2 ili X-NUCLEO-BNRG2A1)
  3.  Jedna LED ploča za proširenje (šifra narudžbe: X-NUCLEO-LED12A1)
  4.  Jedan USB kabl tipa A do Mini-B za povezivanje STM32 Nucleo sa računarom

Podešavanje softvera
Sljedeće softverske komponente su potrebne za postavljanje odgovarajućeg razvojnog okruženja za kreiranje aplikacija za STM32 Nucleo ploču s Bluetooth® Low Energy i LED ploču za proširenje:

  • FP-LIT-BLEMESH1: STM32Cube funkcionalni paket za IoT čvor s Bluetooth® Low Energy mrežnom vezom i modelom osvjetljenja. Firmver i prateća dokumentacija dostupni su na www.st.com.
  • Razvojni lanac alata i kompajleri. Softver za proširenje STM32Cube podržava tri sljedeća okruženja za odabir:
    •  IAR Embedded Workbench za Arm® (IAR-EWARM) lanac alata + ST-LINK
    • RealView Komplet za razvoj mikrokontrolera (MDK-ARM-STM32) lanac alata + ST-LINK
    • STM32CubeIDE +ST-LINK

Podešavanje sistema
STM32 Nucleo ploča integriše ST-LINK/V2-1 debuger/programator.
Programer može preuzeti ST-LINK/V2-1 USB drajver tako što će potražiti softver STSW-LINK009 na www.st.com.
Možete jednostavno povezati X-NUCLEO-LED12A1 LED ploču za proširenje na STM32 Nucleo preko Arduino UNO R3 konektora za proširenje.

X-NUCLEO-LED12A1 može da se poveže sa eksternim STM32 mikrokontrolerom na STM32 Nucleo koristeći I²C komunikacioni protokol.
Također možete povezati ili X-NUCLEO-IDB05A2 ili X-NUCLEO-BNRG2A1 ploču za proširenje na STM32 Nucleo preko Arduino UNO R3 konektora za proširenje.

Dodatak A Reference

  1.  Mreža preko Bluetooth® Low Energy: STSW-BNRG-Mesh
  2.  Specifikacije Bluetooth mesh mreže: https://www.bluetooth.com/specifications/mesh-specifications
  3.  Specifikacija Bluetooth mrežastog modela: https://www.bluetooth.com/specifications/adopted-specifications

Istorija revizija

VAŽNA OBAVIJEST - MOLIMO PAŽLJIVO PROČITAJTE

  • STMicroelectronics NV i njegove podružnice (“ST”) zadržavaju pravo na izmjene, ispravke, poboljšanja, modifikacije i poboljšanja ST proizvoda i/ili ovog dokumenta u bilo kojem trenutku
  • vrijeme bez najave. Kupci bi trebali dobiti najnovije relevantne informacije o ST proizvodima prije nego što daju narudžbu. ST proizvodi se prodaju u skladu sa ST-ovim odredbama i uslovima prodaje koji su na snazi ​​na adresi
  • vrijeme potvrde narudžbe.
  • Kupci su isključivo odgovorni za izbor, odabir i upotrebu ST proizvoda, a ST ne preuzima odgovornost za pomoć u prijavi ili dizajn proizvoda kupca.
  • ST ovdje ne daje nikakvu licencu, izričitu ili impliciranu, za bilo koje pravo intelektualne svojine.
  • Preprodaja ST proizvoda sa odredbama koje se razlikuju od informacija navedenih ovde poništava svaku garanciju koju ST daje za takav proizvod.
  • ST i ST logo su zaštitni znakovi ST. Za dodatne informacije o ST zaštitnim znakovima, pogledajte www.st.com/trademarks. Svi ostali nazivi proizvoda ili usluga vlasništvo su njihovih vlasnika.
  • Informacije u ovom dokumentu zamjenjuju i zamjenjuju informacije koje su prethodno date u prethodnim verzijama ovog dokumenta.
    2022 STMicroelectronics – Sva prava zadržana

Dokumenti / Resursi

ST FP-LIT-BLEMESH1 Arhitektura softvera [pdf] Korisnički priručnik
UM2992, FP-LIT-BLEMESH1 Arhitektura softvera, FP-LIT-BLEMESH1, Arhitektura softvera, FP-LIT-BLEMESH1 STM32Cube funkcijski paket

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *