Rychlé a cenově efektivně přidávání rozhraní Bluetooth 5.3 do návrhů Edge IoT
Contributed By DigiKey's European Editors
2023-11-29
Neúprosná konkurence vyvíjí tlak na vývojáře zařízení pro internet věcí (IoT), aby rychle představili nové a inovativní produkty a zároveň snížili náklady a zajistili robustní, nízkoenergetickou a bezpečnou komunikaci. Tradiční inteligentní koncové uzly IoT obsahují mikrokontrolérovou jednotku (MCU), která umožňuje zpracování na okraji, a bezdrátový IO pro připojení. Pokud konstrukční týmy postrádají dovednosti v oblasti radiofrekvenčních systémů (RF) potřebné pro efektivní řešení, nastávají problémy.
Aby vývojáři mohli dokončit, certifikovat a přesunout své návrhy bezdrátového internetu věcí (IoT) do hromadné výroby včas, musí zefektivnit proces vývoje. Jedním ze způsobů, jak zvýšit efektivitu vývojového procesu, je použití nízkoenergetické jednotky MCU s integrovaným bezdrátovým rozhraním Bluetooth Low Energy (BLE).
Tento článek představuje jednotky MCU řady STM32WBA52 od společnosti STMicroelectronics a ukazuje, jak mohou vývojáři používat vyhodnocovací desku rozhraní BLE, vývojové nástroje a příklady aplikací k rychlému zprovoznění a spuštění bezdrátového návrhu BLE 5.3. Součástí je krátký úvod do programování a zapojení jednotky MCU.
Úsporná bezdrátová jednotky MCU s vysokou úrovní zabezpečení
Jednotky MCU řady STM32WBA52 certifikované pro rozhraní BLE 5.3 představují cenově efektivní řešení umožňující začínajícím vývojářům rychlé rozšíření daných zařízení o bezdrátovou komunikaci. Tyto mikrokontroléry založené na jádru Arm® Cortex®-M33 s taktovací frekvencí 100 MHz a technologií TrustZone poskytují vysokou úroveň zabezpečení, chrání data a duševní vlastnictví (IP) a zabraňují hackování a klonování zařízení.
Zatímco bezdrátová jednotka MCU STM32WBA52CEU6 obsahuje 512 kilobajtů (kB) paměti flash a 96 kB statické paměti RAM (SRAM), varianta STM32WBA52CGU6 nabízí 1 megabajt (MB) paměti flash a 128 kB paměti SRAM. Obrázek 1 ukazuje funkční rozsah IO v pouzdru 48 UFQFN. Mimochodem, k ovládání hermeticky uzavřených zařízení (bez potřeby mechanických tlačítek) je k dispozici až 20 kapacitních dotykových kanálů.
Obrázek 1: funkční blokové schéma jednotky STM32WBA52 znázorňuje integrovaný radiový modul BLE 5.3, paměti flash a SRAM a podporu zabezpečení. (Zdroj obrázku: STMicroelectronics)
Bohatý ekosystém STM32Cube podporuje implementaci a programování aplikace rozhraní BLE. Zahrnuje vývojové prostředí STM32CubeIDE, jakož i nástroje jako konfigurátor periferií a generátor kódu STM32CubeMX, tester výkonu STM32CubeMonitorRF a desktopové a cloudové verze STM32Cube.AI pro umělou inteligenci (AI). Odpovídající vyhodnocovací deska NUCLEO-WBA52CG zjednodušuje prototypování a urychluje ověřování pomocí mnoha ukázkových aplikací BLE a volně dostupného zdrojového kódu.
Zabezpečení zařízení a dat
Produktová řada STM32WBA52 vyhovuje bezpečnostním standardům IoT Platform Security Arm (PSA) Certified Level 3 a Security Evaluation Standard for IoT Platforms Assurance Level 3 (SESIP3). Kybernetická ochrana je vylepšena bezpečnostním programem PSA založeným na bezpečnostní izolaci, ochraně paměti, ochraně proti neoprávněným zásahům a jádru Cortex-M33 jednotky MCU s architekturou Arm TrustZone. Důvěryhodný firmware pro Arm Cortex-M (TF-M) vyhovuje průmyslovému certifikátu PSA Certified Security Framework s neměnným kořenem důvěryhodnosti (RoT) PSA včetně zabezpečeného spouštění a zabezpečené aktualizace firmwaru (X-CUBE-SBSFU), kryptografie, zabezpečeného úložiště a atestace za běhu.
Integrovaný radiový modul minimalizuje požadavky na seznam součástí
Integrovaný radiový modul s ultra nízkou spotřebou poskytuje RF výstupní výkon +10 dB vztažených na 1 mW (dBm). Tento modul podporuje spolehlivou komunikaci na krátké BLE 5.3) i dlouhé vzdálenosti (Long Range) s rychlostí přenosu dat až 2 Mbps. Režim nízké spotřeby energie v hloubkovém pohotovostním režimu snižuje celkový odběr elektrické energie v době, kdy je aktivní radiová komunikace. Jednotky MCU STM32WBA mohou podporovat až 20 současných připojení.
Elektrické vlastnosti radiového modulu:
- 2,4GHz RF transceiver podporující rozhraní BLE 5.3
- Citlivost RX: -96 dBm (BLE při 1 Mbps)
- Programovatelný výstupní výkon až +10 dBm v krocích po 1 dB
- Integrovaný symetrizační člen
Menší baterie díky vysoce účinnému řízení spotřeby energie
Jednotky MCU STM32WBA52 nabízejí mnoho technologií na úsporu energie, včetně nízkoenergetického přímého přístupu do paměti (LPDMA) od společnosti STMicroelectronics a flexibilních úsporných režimů s krátkou dobou probuzení. Tyto funkce mohou společně snížit spotřebu energie jednotky MCU až o 90 %, což vede k výrazně menším rozměrům baterie nebo k její delší životnosti.
Elektrické vlastnosti systémuFlexPowerControl:
- Napájecí napětí 1,71 až 3,6 V
- 140 nA v pohotovostním režimu (16 probouzecích pinů)
- 200 nA v pohotovostním režimu s hodinami reálného času (RTC)
- 2,4 μA v pohotovostním režimu s 64 kB paměti SRAM
- 16,3 μA v režimu stop s 64 kB paměti SRAM
- 45 μA/MHz při 3,3 V v provozním režimu
- Radiový modul: Rx 7,4 mA / Tx 10,6 mA při 0 dBm
Modul Bluetooth 5.3 navíc nabízí rychlejší přepínání mezi nízkým a vysokým pracovním cyklem, díky čemuž nabízí vyšší energetickou účinnost než předchozí verze.
Architektura zásobníku Bluetooth a datových paketů
Jednojádrové MCU Arm Cortex-M33 v STM32WBA52 jsou navrženy pro vývoj aplikačního firmwaru, včetně profilů a služeb na BLE stacku (řadič a hostitel). Jednotky MCU zpracovávají datový tok z integrovaného RF modulu na nejnižší fyzické vrstvě (PHY) do generického profilu atributů (GATT) a generického přístupového profilu (GAP) (obrázek 2). Profil GAP definuje a spravuje reklamu a připojení, zatímco profil GATT definuje a spravuje výměnu vstupních/výstupních dat.
Obrázek 2: jednotky MCU zpracovávají datový tok z rádiové fyzické vrstvy PHY do profilů GATT a GAP. (Zdroj obrázku: STMicroelectronics)
Rozhraní BLE odesílá datové pakety definované jako pevná rámcová struktura bitové sekvence. Délka oblasti uživatelských dat se může dynamicky měnit od 27 do 251 bajtů.
Příklady aplikací BLE
Online encyklopedie STMicro-Wiki obsahuje u jednotky MCU STM32WBA několik příkladů aplikací pro různé role Bluetooth včetně následujících:
- Advert: BLE_Beacon
- Senzor: BLE_HealthThermometer,BLE_HeartRate
- Můstek: BLE_SerialCom
- Router: BLE_p2pRouter
- Data: BLE_DataThroughput, BLE_p2pServer & Multi Slave BLE_p2pClient
- RF-Monitor: BLE_TransparentMode,
- Bezdrátová aktualizace firmwaru: BLE_Fuota
Konstruktéři zařízení a programátoři mohou v souladu s vlastním projektem BLE flashovat zkompilovaný binární soubor z odpovídajícího adresáře projektu GitHub na desku NUCLEO a spustit připojení Bluetooth k chytrému telefonu nebo stolnímu počítači. Požadovaný programátorský software STM32CubeProg poskytuje čtení, zápis a ověřování paměti zařízení prostřednictvím rozhraní ladění i spouštěcího zavaděče.
Spuštění příkladu BLE „Snímač zdravotního teploměru“
Profil zdravotního teploměru (HTP) je nízkoenergetický profil založený na profilu GAP definovaném skupinou Bluetooth Special Interest Group (SIG). Tento profil kombinuje kolektor a snímač zdravotního teploměru pro připojení a výměnu dat v různých aplikacích (obrázek 3).
Obrázek 3: komunikace mezi deskou NUCLEO jako senzorem/serverem a chytrým telefonem jako kolektorem/klientem pomocí rozhraní BLE. (Zdroj obrázku: STMicroelectronics)
Snímač zdravotního teploměru:
- Tento snímač měří a předává teplotu prostřednictvím služby Health Thermometer Service
- Obsahuje službu Device Information Service určenou k identifikaci vzdáleným zařízením
- Jedná se o server profilu GATT
Kolektor zdravotního teploměru:
- Kolektor přistupuje k informacím předávaným snímačem zdravotního teploměru a může je zobrazit koncovému uživateli nebo uložit do energeticky nezávislé paměti pro pozdější analýzu.
- Jedná se o klienta profilu GATT
Jakmile bude binární soubor zdravotního teploměru flashován do jednotky MCU na desce NUCLEO, vývojář spustí příklad aplikace BLE podle následujících kroků:
Pomocí aplikace pro chytrý telefon
- Nainstalujte do chytrého telefonu aplikaci ST BLE Toolbox. Aplikace se používá k interakci a ladění zařízení ST BLE.
- Zapněte desku STM32WBA NUCLEO s flashovanou aplikací zdravotního teploměru.
- V chytrém telefonu zapněte Bluetooth (BT) a prohledejte BT zařízení dostupná v aplikaci. Vyberte položku Health Thermometer a připojte se.
Pomocí rozhraní webového prohlížeče
- Zajistěte kompatibilitu prohlížeče:
- ve stolním počítači: Chrome, Edge nebo Opera
- v chytrém zařízení: Chrome Android
- Zapněte desku STM32WBA NUCLEO s flashovanou aplikací zdravotního teploměru.
- Aktivujte Bluetooth v počítači.
- V prohlížeči otevřete webovou stránku https://applible.github.io/Web_Bluetooth_App_WBA/.
- V horní části webové stránky klikněte na tlačítko Připojit, poté v seznamu zařízení vyberte položku HT_xx a klikněte na tlačítko Spárovat. Zařízení je nyní připojeno.
- Kliknutím na položku Health Thermometer zobrazíte rozhraní.
V tabulce 1 je uveden popis struktury služeb Health Thermometer Sensor. 128bitový univerzální unikátní identifikátor (UUID) rozlišuje jednotlivé charakteristiky a služby.
|
Tabulka 1: Služby GATT a jejich UUID pro profil GAP „Health Thermometer Sensor“. (Zdroj obrázku: STMicroelectronics)
Následující sekvence jazyka JavaScript z projektu GitHub ukazuje, jak rozhraní webového prohlížeče filtruje různé charakteristiky datové propustnosti profilu GATT (výpis 1).
Kopírovat
[...]
// Filtering the different datathroughput characteristics
props.allCharacteristics.map(element => {
switch (element.characteristic.uuid) {
case "00002a1c-0000-1000-8000-00805f9b34fb":
IndicateCharacteristic = element; // Temperature Measurement (TEMM)
IndicateCharacteristic.characteristic.startNotifications();
IndicateCharacteristic.characteristic.oncharacteristicvaluechanged =
temperatureMeasurement;
break;
case "00002a1d-0000-1000-8000-00805f9b34fb":
ReadCharacteristic = element; // Temperature Type
readTemperatureType();
break;
case "00002a1e-0000-1000-8000-00805f9b34fb":
NotifyCharacteristic = element; //Immediate Temperature
NotifyCharacteristic.characteristic.startNotifications();
NotifyCharacteristic.characteristic.oncharacteristicvaluechanged = notifHandler;
break;
case "00002a21-0000-1000-8000-00805f9b34fb":
ReadWriteIndicateCharacteristic = element; // Measurement Interval
readMeasurementInterval();
break;
default:
console.log("# No characteristics found..");
}
});
[...]
Výpis 1: Tato sekvence jazyka JavaScript filtruje různé charakteristiky datové propustnosti profilu GATT z tabulky 1. (Zdroj výpisu: GitHub, STMicroelectronics)
Sledování procesů zásobníku BLE
Vyhodnocovací deska NUCLEO-WBA52CG obsahuje in-circuit debugger a programátor ST-LINK/V3 podporující řadič virtuálního COM portu STM32 pro komunikaci s počítačem přes sériové rozhraní. Tento sériový komunikační port lze otevřít libovolným softwarovým terminálem, který zobrazí krátké textové zprávy generované v kódu funkcí APP_DBG_MSG.
Trasování v rámci projektu musí být povoleno v souboru app_conf.h
#define CFG_DEBUG_APP_TRACE (1)
Aplikace pro chytré telefony „SE BLE Toolbox“ alternativně nabízí funkci sledování na kartě <Application Log>.
Programování aplikací rozhraní BLE 5.3
Pro programování jednotek MCU STM32WBA52 sestavila společnost STM balíček STM32CubeWBA složený z hardwarové abstraktní vrstvy (HAL), nízkovrstvých aplikačních programovacích rozhraní (API) a nástrojů CMSIS, systému souborů, operačního systému RTOS, BLE/802.15.4, vrstev protokolů Thread a Zigbee, jakož i z příkladů běžících na deskách STMicroelectronics.
Součástí každého příkladu aplikace NUCLEO-WBA52CG BLE jsou nastavení struktury projektu pro všechna tři vývojová prostředí (IDE), například IAR Embedded Workbench pro Arm (EWARM), Keil MDK-ARM a STM32CubeIDE.
V případě příkladu Health Thermometer generují služby profilu GATT pouze specifické soubory ze stromu adresářů projektu (rámeček na obrázku 4 vlevo). Dvě rutiny, „Health Thermometer Service“ (hts) a „Device Information Service“ (dis) z tabulky 1, běží paralelně (vpravo dole na obrázku 4).
Obrázek 4: programátoři mohou přidávat vlastní obsah profilu GATT do souborů s rámcovým kódem (vlevo); tyto soubory generují služby GATT (vpravo). (Zdroj obrázku: STMicroelectronics)
Programátoři mohou použít zdrojový kód pro své vlastní projekty a rozšířit jej o vlastní obsah profilu GATT v oblastech označených USER CODE BEGIN / USER CODE END (výpis 2). Inicializační sekvence ze souboru hts.c generuje GATT charakteristiku měření teploty (TEMM) nesoucí kód UUID 0x2A1C.
Kopírovat
[...]
void HTS_Init(void)
{
[...]
/* TEMM, Temperature Measurement */
uuid.Char_UUID_16 = 0x2a1c;
ret = aci_gatt_add_char(HTS_Context.HtsSvcHdle,
UUID_TYPE_16,
(Char_UUID_t *) &uuid,
SizeTemm,
CHAR_PROP_INDICATE,
ATTR_PERMISSION_NONE,
GATT_DONT_NOTIFY_EVENTS,
0x10,
CHAR_VALUE_LEN_VARIABLE,
&(HTS_Context.TemmCharHdle));
if (ret != BLE_STATUS_SUCCESS)
{
APP_DBG_MSG(" Fail : aci_gatt_add_char command : TEMM, error code: 0x%2X\n", ret);
}
else
{
APP_DBG_MSG(" Success: aci_gatt_add_char command : TEMM\n");
}
/* USER CODE BEGIN SVCCTL_InitService2Char1 */
/* USER CODE END SVCCTL_InitService2Char1 */
[...]
}
[...]
Výpis 2: Inicializační sekvence ze souboru hts.c generuje GATT charakteristiku měření teploty (TEMM). (Zdroj obrázku: GitHub, STMicroelectronics)
Požadavky na externí součásti
Bezdrátová jednotka MCU STM32WBA52 vyžaduje pro základní provoz s funkcí Bluetooth pouze několik externích součástí. Patří mezi ně kondenzátory pro napájení, krystalový oscilátor, anténa na desce plošných spojů (PCB) s impedančním přizpůsobením a filtr harmonických složek (obrázek 5).
Obrázek 5: u rozhraní Bluetooth je RF svorka obvodu STM32WBA52 připojena k impedanční přizpůsobovací síti, k harmonickému filtru a k anténě. (Zdroj obrázku: STMicroelectronics)
Závěr
Vývojáři bezdrátových zařízení IoT potřebují zkrátit cykly návrhu a snížit náklady, aby mohli konkurovat na rychle se vyvíjejícím trhu. Konstrukce RF zařízení je však náročná. Jednotka MCU STM32WBA52 s integrovaným rozhraním BLE 5.3 umožňuje vývojářům rychlý a levný vstup na trh. Předprogramovaný zásobník BLE a několik příkladů aplikací s rozhraním BLE tvoří šablonu programování pro vlastní projekty, do kterých lze snadno vkládat obsah profilu GATT.

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 DigiKey or official policies of DigiKey.