ST-FP-LIT-BLEMESH1-Software-Architecture-LOGO

ST FP-LIT-BLEMESH1 Softwarová architektura

ST-FP-LIT-BLEMESH1-Software-Architecture-PRODUCT

Zavedení

FP-LIT-BLEMESH1 je funkční balíček STM32Cube, který vám umožní připojit uzly Bluetooth® Low Energy k chytrému telefonu přes Bluetooth® Low Energy, prostřednictvím vhodné aplikace pro Android™ nebo iOS™, nastavit hodnoty HSL a odeslat data do osvětlovací hardware využívající síťový model osvětlení Bluetooth® Low Energy. Tento software vám umožní snadno vytvořit vlastní aplikaci pro rozšiřování mesh sítí Bluetooth® (nabízením knihovny mesh jádra připravené k použití), kompletní sadu kompatibilních rozhraní API a ukázkovou aplikaci osvětlení běžící buď na X-NUCLEO-IDB05A2 nebo Rozšiřující desky X-NUCLEO-BNRG2A1 a X-NUCLEO-LED12A1 připojené k vývojové desce NUCLEO-L476RG. Software běží na mikrokontroléru STM32 a obsahuje všechny potřebné ovladače k ​​rozpoznání zařízení na vývojové desce STM32 Nucleo a rozšiřujících deskách.

SOUVISEJÍCÍ ODKAZY
Navštivte ekosystém STM32Cube web na stránce www.st.com pro další informace

Zkratky a zkratky

Akronym Popis
GATT Obecný atribut profile
BSP Balíček podpory desky
HAL Vrstva abstrakce hardwaru
SPI Sériové periferní rozhraní
CMSIS Standardní softwarové rozhraní mikrokontroléru Cortex®
HSL Osvětlení sytosti odstínu

Tabulka 1. Seznam zkratek

Rozšíření softwaru FP-LIT-BLEMESH1 pro STM32Cube

Nadview

Softwarový balík FP-LIT-BLEMESH1 rozšiřuje funkčnost STM32Cube. Klíčové vlastnosti balíčku jsou:

  • Kompletní software pro vybudování mesh sítě s uzly Bluetooth® Low Energy podporující model osvětlení Bluetooth® mesh, definovaný ve specifikaci Bluetooth® mesh V1.0.1
  • Hodnoty odstínu, sytosti a světlosti (HSL) nastavené aplikací STBLEMesh pro Android a iOS pomocí modelu osvětlení mění hodnoty RGB rozšiřující desky X-NUCLEO-LED12A1 LED připojené k NUCLEO-L476RG
  • Kompatibilní se smartphony s podporou BLE pro sledování a ovládání více uzlů Bluetooth® Low Energy pomocí protokolu proxy a staršího připojení Bluetooth® Low Energy GATT
  • Dvouvrstvé zabezpečení díky 128bitovému šifrování AES CCM a 256bitovému protokolu ECDH, které zajišťuje ochranu před vícenásobnými útoky, včetně přehrávání, přepínání bitů, odposlechu, muže ve středu a koše
  • Sampimplementace dostupná na:
    • rozšiřující desky X-NUCLEO-IDB05A2 a X-NUCLEO-LED12A1 připojené k vývojové desce NUCLEO-L476RG
    • rozšiřující desky X-NUCLEO-BNRG2A1 a X-NUCLEO-LED12A1 připojené k vývojové desce NUCLEO-L476RG
  • Snadná přenositelnost mezi různými rodinami MCU díky STM32Cube
  •  Bezplatné, uživatelsky přívětivé licenční podmínky

Software funkčního balíčku zahrnuje LED1202, což je 12kanálový ovladač LED s nízkým klidovým proudem, když je rozšiřující deska X-NUCLEO-LED12A1 namontována na STM32 Nucleo.
Balíček je kompatibilní s aplikací STBLEMesh pro Android/iOS dostupnou v obchodech GooglePlay/iTunes, kterou lze použít k nastavení informací a jejich odeslání přes Bluetooth® Low Energy. Integruje produkty BlueNRG s integrovanou komunikací Bluetooth® Low Energy ve výkonné, dosah rozšiřující mesh síti se skutečnou plně duplexní komunikací. Flexibilita balíčku vám umožňuje vytvořit si vlastní aplikaci.

Architektura
Software je založen na STM32CubeHAL, hardwarové abstraktní vrstvě pro mikrokontrolér STM32. Balíček rozšiřuje STM32Cube o balíček podpory desky (BSP), který umožňuje vývoj aplikací využívajících Bluetooth mesh profile a specifikace modelu.

Softwarové vrstvy používané aplikačním softwarem pro přístup a použití rozšiřujících desek jsou:

  • vrstva STM32Cube HAL, která poskytuje jednoduchou, generickou, víceinstanční sadu aplikačních programovacích rozhraní (API) pro interakci s vyššími vrstvami aplikací, knihoven a zásobníků. Má obecná a rozšiřující rozhraní API a je přímo postavena na obecné architektuře a umožňuje po sobě jdoucím vrstvám, jako je vrstva middlewaru, implementovat funkce bez nutnosti specifických hardwarových konfigurací pro danou mikrokontrolérovou jednotku (MCU). Tato struktura zlepšuje znovupoužitelnost kódu knihovny a zaručuje snadnou přenositelnost na jiná zařízení.
  • vrstva balíčku podpory desky (BSP) podporuje všechna periferní zařízení na STM32 Nucleo kromě MCU. Tato omezená sada API poskytuje programovací rozhraní pro určité periferie specifické pro desku, jako je LED, uživatelské tlačítko atd. Toto rozhraní také pomáhá při identifikaci konkrétní verze desky.ST-FP-LIT-BLEMESH1-Software-Architecture-FIG-1

Obrázek 1. Softwarová architektura FP-LIT-BLEMESH1

Struktura složekST-FP-LIT-BLEMESH1-Software-Architecture-FIG-2

Obrázek 2. Struktura složek balíčku FP-LIT-BLEMESH1

V softwarovém balíčku jsou zahrnuty následující složky:

  • Dokumentace: obsahuje zkompilovaný HTML file generované ze zdrojového kódu, který podrobně popisuje softwarové komponenty a API.
  • Ovladače: obsahuje ovladače HAL a ovladače specifické pro desky pro každou podporovanou desku nebo hardwarovou platformu, včetně komponent na desce a vrstvy abstrakce hardwaru nezávislé na dodavateli CMSIS pro řadu procesorů Arm® Cortex®-M.
  • Middlewares: obsahuje knihovny a protokoly související s Bluetooth a Bluetooth mesh profile a specifikace modelu.
  • Projekty: obsahuje asampAplikace používaná k aktualizaci hodnoty HSL světel RGB, poskytovaná pro platformu NUCLEO-L476RG se třemi vývojovými prostředími, IAR Embedded Workbench for Arm (IAR-EWARM), RealView Microcontroller Development Kit (MDK-ARM-STM32) a STM32CubeIDE.
  • Utilities: obsahuje složku STM32L4_MAC, která poskytuje externí MAC adresu.

API
Podrobné technické informace s plnou funkcí uživatelského API a popisem parametrů jsou v kompilovaném HTML file ve složce „Dokumentace“.

Samppopis aplikace Inicializace zpětných volání aplikace Adresář „Projekty“ poskytuje příkladampAplikace pomocí rozšiřujících desek X-NUCLEO-IDB05A2 nebo X-NUCLEO-BNRG2A1 a X-NUCLEO-LED12A1 s vývojovou deskou NUCLEO-L476RG.
Projekty připravené k sestavení jsou k dispozici pro více IDE.
Tato aplikace začíná inicializací zpětných volání požadovaných pro různé události a funkce. Zpětná volání se používají v knihovně BlueNRG-Mesh k volání funkcí na základě konkrétních událostí nebo stavovým strojem knihovny mesh.ST-FP-LIT-BLEMESH1-Software-Architecture-FIG-3

Struktura Model_SIG_cb se používá k inicializaci modelů SIG pro implementaci aplikace. The BluenrgMesh_SetSIGModelsCbMap(Model_SIG_cb, MODEL_SIG_COUNT); Funkce se používá k inicializaci různých zpětných volání v knihovně.

Inicializace a hlavní aplikační smyčka

Tento postup vyvíjí aplikaci pro mesh přes Bluetooth® Low Energy na platformách BlueNRG.

Krok 1. Voláním rozhraní InitDevice() API, které volá rozhraní API SystemInit() inicializuje vektorovou tabulku zařízení, priority přerušení a hodiny.
Krok 2. Zavolejte API Appli_CheckBdMacAddr() a zkontrolujte platnost adresy MAC. Pokud MAC adresa není platná, firmware uvízne ve smyčce while(1) a LED nepřetržitě bliká.
Krok 3. Inicializujte hardwarové funkce zpětného volání pro hardware Bluetooth® Low Energy aktualizací MOBLE_USER_BLE_CB_MAP user_ble_cb =.ST-FP-LIT-BLEMESH1-Software-Architecture-FIG-4
Krok 4. Chcete-li se spolehnout na aplikační rozhraní pro inicializaci rádia Bluetooth® Low Energy a konfiguraci napájení Tx, inicializujte zpětná volání GATT připojení a odpojení pro aplikační rozhraní.
Krok 5. Zavolejte BluenrgMesh_BleHardwareInitCallBack(&user_ble_cb) pro dokončení inicializace hardwarových zpětných volání.
Krok 6. Inicializujte knihovnu BlueNRG-Mesh voláním BluenrgMesh_Init(&BLEMeshlib_Init_params). Pokud dojde k chybě, v okně terminálu, které se otevřelo pro port VCOM vytvořený připojením USB desky, vyskočí zpráva („Nelze inicializovat knihovnu BlueNRG-Mesh!“). Tato chyba způsobí, že LED dioda nepřetržitě bliká.
Krok 7. Zkontrolujte, zda bylo zařízení zřízeno nebo ne. Poskytované zařízení má síťové klíče a další parametry nakonfigurované v interní paměti flash. Můžete je zkontrolovat pomocí rozhraní API BluenrgMesh_IsUnprovisioned(). Pokud uzel není zajištěn, rozhraní API BluenrgMesh_InitUnprovisionedNode() jej inicializuje. Pokud je zařízení již zřízeno, rozhraní API BluenrgMesh_InitprovisionedNode() pomůže zařízení inicializovat.
Krok 8. Vytiskněte zprávy do okna terminálu pro uzly, které jsou inicializovány. Zpráva také vytiskne MAC adresu přiřazenou uzlu.
Krok 9. Inicializujte modely BlueNRG-Mesh pomocí API BluenrgMesh_ModelsInit().
Krok 10. Chcete-li inicializovat uzel do stavu bez zajištění, podržte uživatelské tlačítko. Vymaže všechny síťové parametry nakonfigurované ve vnitřní paměti zařízení. Jakmile je zrušení zajišťování dokončeno, resetujte desku.
Krok 11. Inicializujte ovladače LED a GPIO namontované na X-NUCLEO-LED12A1. Aplikace musí volat BluenrgMesh_Process() ve smyčce while(1) tak často, jak je to možné. Tato funkce interně volá BLE_StackTick() za účelem zpracování komunikace Bluetooth® Low Energy. Rozhraní API BluenrgMesh_ModelsProcess() (zpracování modelu) a Appli_Process() jsou také volány ve smyčce while(1). Jakákoli implementace aplikace je prováděna ve stavovém stroji neblokujícími funkcemi s častými voláními BluenrgMesh_Process().
Krok 12. Zkontrolujte uživatelské vstupy nebo tlačítka pro provedení jakékoli akce.

uzel připojení/odpojení GATT
Každý uzel v síti se může připojit k chytrému telefonu přes rozhraní GATT. Když je toto spojení navázáno, uzel se stane proxy, který funguje jako most mezi příkazy sítě mesh a odpověďmi smartphonu.
Připojení a odpojení smartphonu můžete zjistit pomocí následujících zpětných volání:

  • Appli_BleGattConnectionCompleteCb;
  • Appli_BleGattDisconnectionCompleteCb;

Ty jsou inicializovány během hlavní smyčky.
Během zřizování se naváže spojení GATT s uzlem, který je třeba zřídit.
Pokud se smartphone přesune mimo rozsah uzlu proxy, naváže nové spojení s dostupným uzlem.

Model osvětlení

  • Specifikace definuje počet světelných stavů, zpráv a modelů, které jsou explicitně definovány jako nespecifické ve své funkčnosti.
  • Existují různé typy světelných zdrojů s různými schopnostmi. V souladu s tím existují různé způsoby, jak vyjádřit stav světla.
  • Pokročilejší způsob ovládání světla je změna svítivosti ovládáním aktuálního stavu svítivosti světla.
  • Pokud je světlo laditelné bílé, je možné ovládat jeho barevnou teplotu pomocí světla CTL.
  • Pokud je světlo světlem měnícím barvu, je možné ovládat tři rozměry (odstín, sytost a světlost) ovládáním každého stavu nezávisle.

Obrázek 3. Tok zpráv modelu osvětlení

Počet oktetů závisí na parametrech vyhrazených pro daný model. Pro každý model osvětlení jsou jiné.
Střední vrstva přijímá zprávy z knihovny. Poté zkontroluje operační kód podle různé aplikace světelného modelu. Jako example modelu světelnosti se operační kód kontroluje ve střední vrstvě. Zpráva s definovanými datovými parametry je následně přenesena do aplikace světelnosti.

Typy zpráv jsou:

  • Nastavit zprávu Acknowledged odeslanou klientem pro nastavení požadované hodnoty modelu na serveru. Poté očekává odpověď od serveru.
  • Nastavit zprávu Unacknowledged odeslanou klientem pro nastavení požadované hodnoty modelu na serveru. Neočekává žádnou odpověď od serveru.
  •  Získat zprávu odeslanou klientem na server, aby získal stav modelu jako odpověď ze serveru.

Externí nástroje pro MAC adresy

  • Složka „Utilities“ obsahuje složku STM32L4_MAC, která poskytuje hex file externí MAC adresy.
  • Chcete-li použít tuto adresu, odkomentujte makro EXTERNAL_MAC_ADDR_MGMT v souboru mesh_cfg.h file složky „Middleware“.
  • Firmware demo aplikace a MAC adresa blikají nezávisle. Firmware tedy nemusíte aktualizovat, pokud již byl flashován jiný firmware.
  • MAC adresa blikne poprvé a při každém úplném vymazání čipu.

Průvodce nastavením systému

Popis hardwaru

STM32 Nucleo

  • Vývojové desky STM32 Nucleo poskytují uživatelům cenově dostupný a flexibilní způsob testování řešení a vytváření prototypů s jakoukoli řadou mikrokontrolérů STM32.
  • Podpora konektivity Arduino a morfo konektory ST usnadňují rozšíření funkčnosti otevřené vývojové platformy STM32 Nucleo o širokou škálu specializovaných
  • rozšiřující desky na výběr.
  • Deska STM32 Nucleo nevyžaduje samostatné sondy, protože integruje debugger/programátor ST-LINK/V2-1.
  • Deska STM32 Nucleo je dodávána s komplexní softwarovou knihovnou STM32 HAL spolu s různým baleným softwarem např.ampsoubory pro různá IDE (IAR EWARM, Keil MDK-ARM,
  • STM32CubeIDE, mbed a GCC/LLVM).
  • Všichni uživatelé STM32 Nucleo mají bezplatný přístup k online zdrojům mbed (kompilátor, C/C++ SDK a vývojářská komunita) na www.mbed.org, aby mohli snadno vytvářet kompletní aplikace.

Obrázek 4. Deska STM32 Nucleo

Rozšiřující deska X-NUCLEO-IDB05A2

  • Rozšiřující deska X-NUCLEO-IDB05A2 Bluetooth® Low Energy je založena na modulu síťového procesoru BlueNRG-M0 Bluetooth® Low Energy.
  • BlueNRG-M0 je kompatibilní s Bluetooth v4.2, má certifikaci FCC a IC (FCC ID: S9NBNRGM0AL; IC: 8976C-BNRGM0AL). Podporuje simultánní role master/slave a může se chovat jako a
  • Bluetooth® Low Energy senzor a rozbočovač zároveň.
  • BlueNRG-M0 poskytuje kompletní RF platformu v malém provedení s integrovaným rádiem, anténou, vysokofrekvenčními a LPO oscilátory.
  • X-NUCLEO-IDB05A2 je kompatibilní s uspořádáním konektorů ST morpho (nenamontované) a Arduino UNO R3.
  • X-NUCLEO-IDB05A2 se propojuje s mikrokontrolérem STM32 přes pin SPI a umožňuje změnu výchozích hodin SPI, výběru čipu SPI a IRQ výměnou odporu na rozšiřující desce.

Rozšiřující deska X-NUCLEO-BNRG2A1

  • Rozšiřující deska X-NUCLEO-BNRG2A1 poskytuje konektivitu Bluetooth® Low Energy pro vývojářské aplikace a lze ji připojit k vývojové desce STM32 Nucleo (např.
  • exampNUCLEO-L476RG s mikrokontrolérem STM32 s extrémně nízkou spotřebou) prostřednictvím konektorů Arduino UNO R3.
  • Rozšiřující deska obsahuje modul aplikačního procesoru BlueNRG-M5.2SP kompatibilní s Bluetooth® v2 a certifikovaný FCC na bázi ST BlueNRG-2 System-on-Chip. Tento SoC řídí
  • kompletní Bluetooth® Low Energy stack a protokoly na jeho jádru Cortex-M0 a programovatelné flash paměti, které mohou pojmout vlastní aplikace vyvinuté pomocí SDK. The
  • Modul BlueNRG-M2SP podporuje režimy master a slave, zvýšené přenosové rychlosti s prodloužením délky dat (DLE) a bezpečnostní šifrování AES-128.
  • X-NUCLEO-BNRG2A1 se propojuje s mikrokontrolérem STM32 Nucleo prostřednictvím připojení SPI a pinů GPIO, z nichž některé lze konfigurovat prostřednictvím hardwaru.

Obrázek 6. Rozšiřující deska X-NUCLEO-BNRG2A1

Rozšiřující deska X-NUCLEO-LED12A1

  • Rozšiřující deska ovladače LED X-NUCLEO-LED12A1 pro STM32 Nucleo obsahuje čtyři zařízení LED1202, která mohou řídit až 48 LED.
  • LED1202 je 12kanálový LED budič s nízkým klidovým proudem, který zaručuje 5V výstupní schopnost buzení. Každý kanál je schopen poskytnout až 20 mA se světlou výškou objtage 350 mV
  • pouze (typické).
  • Výstupní proud lze nastavit samostatně pro každý kanál pomocí 8bitového analogového a 12bitového digitálního ovládání stmívání.
  • Rozšiřující deska X-NUCLEO-LED12A1 se dodává s přídavnou panelovou deskou LED, která obsahuje dvě matice LED: matici 6×8 bílých LED a matici 4×4 RGB.
  • LED matice lze napájet přes externí napájecí zdroj, který se připojí na konektor J13, a výběrem správné cesty přes propojku J15 pro dosažení maximální svítivosti
  • k dispozici.

Obrázek 7. Rozšiřující deska X-NUCLEO-LED12A1

Nastavení hardwaru
K nastavení vhodného vývojového prostředí pro tvorbu aplikací pro STM32 Nucleo vybavené osvětlením nebo rozšiřující deskou Bluetooth® Low Energy potřebujete následující hardwarové komponenty:

  1.  Jedna vývojová deska STM32 Nucleo (objednací kód: NUCLEO-L476RG)
  2.  Jedna rozšiřující deska Bluetooth® Low Energy (objednací kód: X-NUCLEO-IDB05A2 nebo X-NUCLEO-BNRG2A1)
  3.  Jedna rozšiřující deska LED (objednací kód: X-NUCLEO-LED12A1)
  4.  Jeden USB kabel USB typu A až Mini-B pro připojení STM32 Nucleo k počítači

Nastavení softwaru
Pro nastavení vhodného vývojového prostředí pro vytvoření aplikací pro desku STM32 Nucleo s Bluetooth® Low Energy a rozšiřující desku LED jsou nutné následující softwarové komponenty:

  • FP-LIT-BLEMESH1: funkční balíček STM32Cube pro uzel IoT s Bluetooth® Low Energy mesh konektivitou a modelem osvětlení. Firmware a související dokumentace jsou k dispozici na www.st.com.
  • Vývojový nástrojový řetězec a kompilátory. Rozšiřující software STM32Cube podporuje tři následující prostředí, ze kterých si můžete vybrat:
    •  IAR Embedded Workbench for Arm® (IAR-EWARM) toolchain + ST-LINK
    • NemovitýView Sada nástrojů pro vývoj mikrokontroléru (MDK-ARM-STM32) + ST-LINK
    • STM32CubeIDE + ST-LINK

Nastavení systému
Deska STM32 Nucleo integruje debugger/programátor ST-LINK/V2-1.
Vývojář si může stáhnout ovladač ST-LINK/V2-1 USB vyhledáním softwaru STSW-LINK009 na www.st.com.
Rozšiřující desku X-NUCLEO-LED12A1 LED snadno připojíte k STM32 Nucleo přes rozšiřující konektor Arduino UNO R3.

X-NUCLEO-LED12A1 se může propojit s externím mikrokontrolérem STM32 na STM32 Nucleo pomocí komunikačního protokolu I²C.
K STM05 Nucleo můžete také připojit buď rozšiřující desku X-NUCLEO-IDB2A2 nebo X-NUCLEO-BNRG1A32 přes rozšiřující konektor Arduino UNO R3.

Příloha A Reference

  1.  Mesh over Bluetooth® Low Energy: STSW-BNRG-Mesh
  2.  Specifikace sítě Bluetooth mesh: https://www.bluetooth.com/specifications/mesh-specifications
  3.  Specifikace modelu Bluetooth mesh: https://www.bluetooth.com/specifications/adopted-specifications

Historie revizí

DŮLEŽITÉ UPOZORNĚNÍ - PŘEČTĚTE SI POZORNĚ

  • STMicroelectronics NV a její dceřiné společnosti („ST“) si vyhrazují právo kdykoli provádět změny, opravy, vylepšení, úpravy a vylepšení produktů ST a/nebo tohoto dokumentu.
  • čas bez upozornění. Kupující by měli před zadáním objednávky získat nejnovější relevantní informace o produktech ST. Produkty ST jsou prodávány v souladu s obchodními podmínkami ST platnými na adrese
  • čas potvrzení objednávky.
  • Za výběr, výběr a používání produktů ST nese výhradní odpovědnost kupující a společnost ST nepřebírá žádnou odpovědnost za pomoc s aplikací ani za design produktů kupujících.
  • Společnost ST zde neuděluje žádnou výslovnou ani předpokládanou licenci k právu duševního vlastnictví.
  • Další prodej produktů ST s ustanoveními odlišnými od informací uvedených v tomto dokumentu ruší jakoukoli záruku poskytnutou společností ST na takový produkt.
  • ST a logo ST jsou ochranné známky společnosti ST. Další informace o ochranných známkách ST naleznete na adrese www.st.com/trademarks. Všechny ostatní názvy produktů nebo služeb jsou majetkem jejich příslušných vlastníků.
  • Informace v tomto dokumentu nahrazují a nahrazují informace dříve uvedené v předchozích verzích tohoto dokumentu.
    2022 STMicroelectronics – Všechna práva vyhrazena

Dokumenty / zdroje

ST FP-LIT-BLEMESH1 Softwarová architektura [pdfUživatelská příručka
UM2992, FP-LIT-BLEMESH1 Software Architecture, FP-LIT-BLEMESH1, Software Architecture, FP-LIT-BLEMESH1 STM32Cube Function Pack

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *