IoT-eszközök gyors és költséghatékony bővítése Bluetooth 5.3 kapcsolattal
Contributed By DigiKey's European Editors
2023-11-29
Rendületlen a verseny a tárgyak internetére (IoT) csatlakozó eszközök fejlesztése terén, ami megköveteli, hogy a fejlesztők folyamatosan új és innovatív termékekkel álljanak elő rövid idők alatt, ugyanakkor csökkentsék a költségeket és biztosítsák a megbízható, alacsony energiafogyasztású és biztonságos kommunikációt. A hagyományos intelligens IoT végpontok egy mikrovezérlőt (MCU-t) tartalmaznak, amely a peremhálózati adatfeldolgozás végrehajtására szolgál, valamint egy vezeték nélküli kommunikációs IC-t az összekapcsolhatósághoz. Problémák akkor merülnek fel, ha a fejlesztői csapatok nem rendelkeznek a hatékony megoldások létrehozásához szükséges rádiófrekvenciás ismeretekkel.
A fejlesztőknek hatékony fejlesztési folyamatra van szükségük ahhoz, hogy a vezeték nélküli kommunikációra képes IoT-eszközeiket időben befejezhessék, a megfelelő szervezetek által tanúsíttathassák és sorozatgyártásba helyezhessék. Egy módszer, amellyel a fejlesztési folyamat hatékonysága növelhető, ha beépített Bluetooth Low Energy (BLE) vezeték nélküli kommunikációs interfésszel rendelkező, alacsony fogyasztású mikrovezérlőket használnak.
Ez a cikk az STMicroelectronics ultraalacsony fogyasztású STM32WBA52 mikrovezérlő sorozatát, valamint azt mutatja be, hogyan használhatják a fejlesztők a BLE fejlesztői kártyát, a fejlesztőeszközöket és az alkalmazási példákat vezeték nélküli BLE 5.3 kapcsolattal ellátott konstrukciók gyors üzembe helyezéséhez. Rövid áttekintést nyújt a programozásról és a mikrovezérlő bekötéséről.
Energiatakarékos, magas biztonsági fokozatú vezeték nélküli kapcsolatra képes mikrovezérlő
A BLE 5.3 szabványnak tanúsítottan megfelelő STM32WBA52 mikrovezérlő sorozat egy költséghatékony megoldás, amely lehetővé teszi a kezdő fejlesztők számára, hogy eszközeiket gyorsan vezeték nélküli kommunikációval bővítsék. A 100 MHz-es órajelű Arm® Cortex®-M33 magon és a TrustZone technológián alapuló mikrovezérlők magas szintű biztonságot nyújtanak, védik az adatokat és a szellemi tulajdont, valamint megakadályozzák a hackeléseket és az eszközklónozást.
Míg az STM32WBA52CEU6 vezeték nélküli mikrovezérlő 512 kbyte flashmemóriával és 96 kbyte statikus RAM-mal (SRAM) rendelkezik, addig az STM32WBA52CGU6 változat már 1 Mbyte flashmemóriát és 128 kbyte SRAM-ot kínál. Az 1. ábrán a 48-UFQFN tokozású IC funkcionális képességei láthatók. Érdemes megemlíteni, hogy 20 csatorna is rendelkezésre áll kapacitív érintőképernyős konstrukcióhoz, ami lehetővé teszi hermetikusan zárt eszközök kialakítását (nincs szükség mechanikus gombokra).
1. ábra: Az STM32WBA52 funkcionális blokkdiagramján látható az integrált BLE 5.3 rádió, a flash és az SRAM memóriák, valamint a különböző támogatott biztonsági funkciók (kép: STMicroelectronics)
Rendelkezésre áll a gazdag STM32Cube ökoszisztéma, amely BLE-rendszerek megvalósítására és programozására alkalmas. Tartalmazza az STM32CubeIDE fejlesztőkörnyezetet, valamint más eszközöket is, például az STM32CubeMX perifériakonfigurátort és kódgenerátort, az STM32CubeMonitorRF teljesítménytesztelőt, valamint az STM32Cube.AI asztali és felhőalapú mesterséges intelligencia verzióját. A hozzá párosítható fejlesztői kártya, a NUCLEO-WBA52CG leegyszerűsíti a prototípusok készítését és a számos BLE mintaalkalmazással és szabadon elérhető forráskóddal felgyorsítja a validálást.
Eszköz- és adatbiztonság
Az STM32WBA52 termékcsalád megfelel a Platform Security Arm (PSA) Certified Level 3 és a Security Evaluation Standard for IoT Platforms Assurance Level 3 (SESIP3) biztonsági IoT-szabványoknak. A kibervédelmet a biztonsági izoláción, a memóriavédelmen, a manipulálás elleni védelmen és a mikrovezérlők Cortex-M33-as, Arm TrustZone architektúrával ellátott Cortex-M33-as egységén alapuló PSA biztonsági programja fokozza. A Trusted Firmware for Arm Cortex-M (TF-M) megfelel az iparági szabványnak, a PSA szerinti Security Frameworknek, a PSA-nak megfelelően megváltoztathatatlan Root of Trustnak (RoT), beleértve a biztonságos indítást és a biztonságos firmware-frissítést (X-CUBE-SBSFU), a kriptográfiát, a biztonságos tárolást és a futásidejű hitelesítést (run-time attestation).
BOM csökkentése integrált rádióval
Az ultra-alacsony teljesítményű integrált rádiós modul +10 dBm rádiófrekvenciás kimeneti teljesítményt nyújt. Megbízható kommunikációt tesz lehetővé rövid (BLE 5.3) és nagy távolságokon (Long Range), akár 2 Mbps adatátviteli sebességgel. Egy készenléti, rendkívül alacsony fogyasztású üzemmódnak köszönhetően a teljes elektromos teljesítmény aktív rádiókommunikáció esetén is alacsonyan tartható. Az STM32WBA mikrovezérlők akár 20 egyidejű kapcsolatot is támogatnak.
A rádiómodul elektromos jellemzői:
- BLE 5.3 szabványt támogató 2,4 GHz-es RF adó-vevő
- RX érzékenység: -96 dBm (BLE 1 Mbps sebességen)
- Programozható kimeneti teljesítmény: +10 dBm-ig 1 dB-es lépésekben
- Integrált balun
Kisebb akkumulátor a rendkívül hatékony energiahasználatnak köszönhetően
Az STM32WBA52 mikrovezérlőkben számos energiatakarékossági technológia található, köztük az STMicroelectronics Low Power Direct Memory Access (LPDMA) rendszere, valamint rugalmas energiatakarékossági állapotok gyors ébredési időkkel. Ezek a funkciók együttesen akár 90%-kal is csökkenthetik a mikrovezérlő energiafogyasztását, ami lehetőséget ad jelentősen kisebb méretű akkumulátor használatára, illetve a régi esetén hosszabb akkumulátor-élettartamot jelent.
A FlexPowerControl elektromos jellemzői:
- 1,71-3,6 voltos tápfeszültség
- 140 nA-es készenléti üzemmód (16 ébresztő láb)
- 200 nA-es készenléti üzemmód valós idejű órával (RTC)
- 2,4 μA-es készenléti üzemmód 64 kB SRAM-mal
- 16,3 μA-es stop üzemmód 64 kB SRAM-mal
- 45 μA/MHz-es futtatási üzemmód 3,3 volton
- Rádió: Rx 7,4 mA; Tx / 0 dBm, 10,6 mA
A Bluetooth 5.3 emellett az aktív ciklusidőre nézve gyorsabban képes váltani az alacsony és a magas kitöltési tényezős működés között, így energiatakarékosabb, mint a korábbi verziók.
A Bluetooth stack és az adatcsomagok felépítése
Az STM32WBA52-ben lévő egymagos Arm Cortex-M33 mikrovezérlőket az alkalmazásszintű firmwarek fejlesztésére tervezték, beleértve a BLE stack (vezérlő és host) profiljait és szolgáltatásait. A mikrovezérlők az integrált rádiófrekvenciás modulból kapott adatfolyamot dolgozzák fel a legalacsonyabb fizikai réteg (PHY) szintjén, és azt átalakítják a GATT (generic attribute profile) és a GAP (generic access profile) rétegek számára (2. ábra). A GAP definiálja a hirdetést és szabályozza a kapcsolatok kezelését, míg a GATT határozza meg és teszi lehetővé a be- és kimenő adatcserét.
2. ábra: A mikrovezérlők végzik a fizikai réteg rádiófrekvenciás adatainak feldolgozását és azok átalakítását a GATT és a GAP rétegek számára (kép: STMicroelectronics)
A BLE olyan adatcsomagokat küld, amelyek egy bitsorozatból álló rögzített keretszerkezetként vannak definiálva. A felhasználói adatterület hossza dinamikusan változhat 27 és 251 bájt között.
Példák a BLE alkalmazására
Az STM32WBA mikrovezérlők online enciklopédiája, az STMicro-Wiki számos alkalmazási példát tartalmaz a Bluetooth különböző használatára, többek között a következőket:
- Hirdető: BLE_Beacon
- Érzékelő: BLE_HealthThermometer, BLE_HeartRate
- Híd: BLE_SerialCom
- Router: BLE_p2pRouter
- Adatok: BLE_DataThroughput, BLE_p2pServer & Multi Slave BLE_p2pClient
- Rádiófrekvenciás figyelő: BLE_TransparentMode,
- Over The Air firmware frissítés: BLE_Fuota
A saját BLE-projektjüknek megfelelően az eszköztervezők és programozók a megfelelő GitHub projektkönyvtárból lefordított bináris fájlt ráprogramozhatják a NUCLEO kártyára, és Bluetoothon keresztül kapcsolatba léphetnek egy okostelefonnal vagy asztali számítógéppel. A szükséges programozó szoftverrel, az STM32CubeProg-gal az eszköz memóriája olvasható, írható és ellenőrizhető mind a hibakeresési, mind a bootloader interfészen keresztül.
A „Health Thermometer Sensor” BLE példa alkalmazás futtatása
Az egészségügyi hőmérőkhöz készült Health Thermometer Profile (HTP) a Bluetooth Special Interest Group (SIG) által definiált GAP-alapú, alacsony energiaigényű profil. Egy Health Thermometer Collectort (gyűjtőt) és egy Health Thermometer Sensor (érzékelőt) egyesít a különböző alkalmazási esetekhez való csatlakoztathatósághoz és adatcseréhez (3. ábra).
3. ábra: BLE-kommunikáció az érzékelő/szerver szerepét betöltő NUCLEO kártya és egy gyűjtő/kliens okostelefon között (kép: STMicroelectronics)
A Health Thermometer Sensor:
- Méri a hőmérsékletet, és a Health Thermometer Service szolgáltatáson keresztül közzéteszi azt
- Tartalmazza a távoli eszköz által azonosítandó eszközinformációs szolgáltatást (Device Information Service)
- Ő a GATT szerver
A Health Thermometer Collector:
- Hozzáfér a Health Thermometer Sensor által közzétett információkhoz, és megjelenítheti azokat a végfelhasználó számára, vagy későbbi elemzés céljából tárolhatja a nem felejtő memóriában
- Ő a GATT kliens
A Health Thermometer bináris fájljának a NUCLEO mikrovezérlőbe való beírását követően a fejlesztőnek a következő lépéseket kell végrehajtania a BLE-alkalmazási példa futtatásához:
Okostelefonos alkalmazás használata
- Telepítse az ST BLE Toolbox-ot egy okostelefonra. Az alkalmazás az ST BLE eszközökkel való interakcióra és hibakeresésre szolgál.
- Kapcsolja be a Health Thermometer alkalmazással felprogramozott STM32WBA NUCLEO kártyát.
- Kapcsolja be az okostelefon Bluetooth (BT) funkcióját, és keresse meg az alkalmazáson belül az elérhető BT-eszközöket. Válassza ki a Health Thermometert és csatlakozzon.
Webböngésző felület használata
- Győződjön meg róla, hogy a böngésző kompatibilis az alkalmazással:
- asztali számítógép esetén Chrome, Edge vagy Opera
- okostelefon esetén Chrome Android
- Kapcsolja be a Health Thermometer alkalmazással felprogramozott STM32WBA NUCLEO kártyát.
- Aktiválja a Bluetooth funkciót a számítógépen.
- Nyissa meg a https://applible.github.io/Web_Bluetooth_App_WBA/ weboldalt a böngészőben.
- Kattintson a weblap tetején található Connect gombra, majd válassza ki a HT_xx készüléket az eszközlistában, és kattintson a Pair gombra. A készülék most már csatlakoztatva van.
- Kattintson a Health Thermometer lehetőségre a felület megjelenítéséhez.
Az 1. táblázatban a Health Thermometer Sensor szolgáltatásainak felépítése látható. Az egyes jellemzők és szolgáltatások megkülönböztetésére a 128 bites UUID-azonosító szolgál.
|
1. táblázat: GATT-szolgáltatások és UUID-azonosítóik a „Health Thermometer Sensor” GAP-hez (kép: STMicroelectronics)
A GitHub-ról származó következő JavaScript kód azt mutatja be, hogyan szűri ki a webböngésző felülete a különböző GATT-elemek adatáteresztőképesség-jellemzőit (1. kód).
Másolás
[...]
// 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..");
}
});
[...]
1. kód: Ez a JavaScript kód kiszűri az 1. táblázatban lévő különböző GATT-elemek adatátviteli jellemzőit (kód: GitHub, STMicroelectronics)
A BLE stack folyamatainak nyomon követése
A NUCLEO-WBA52CG beágyazottan tartalmazza az ST-LINK/V3 áramkörön belüli hibakeresőt és programozót, és támogatja az STM32 virtuális COM port vezérlőt a PC-vel való kommunikációhoz soros interfészen keresztül. Ezt a soros kommunikációs portot bármelyik szoftverterminál meg tudja nyitni, hogy megjelenítse a program APP_DBG_MSG funkciója által generált rövid szöveges üzeneteket.
A projektben lévő nyomvonalakat az app_conf.h fájlban kell engedélyezni.
#define CFG_DEBUG_APP_TRACE (1)
Alternatívaként használható az „SE BLE Toolbox” okostelefonos alkalmazás, amely az <Application Log> lapon nyomon követési funkciót kínál.
BLE 5.3 alkalmazások programozása
Az STM32WBA52 mikrovezérlők programozásához az STM a saját összeállítású STM32CubeWBA-Package csomagot kínálja, amely egy hardverabsztrakciós rétegből (HAL), alacsony szintű alkalmazásprogramozási interfészekből (API-k) és CMSIS-ből, fájlrendszerből, valós idejű operációs rendszerből (RTOS), BLE/802.15.4, Thread és Zigbee stackekből, valamint STMicroelectronics kártyákon futó példákból áll.
A NUCLEO-WBA52CG BLE alkalmazási példa tartalmazza mindhárom fejlesztői környezet (IAR Embedded Workbench for Arm (EWARM), Keil MDK-ARM és STM32CubeIDE) esetén szükséges projektstruktúra-beállításokat.
Az egészségügyi hőmérő példája esetében a projekt könyvtárfájából (a 4. ábra bal oldali kerete) csak bizonyos fájlok generálják a GATT-szolgáltatásokat. Az 1 táblázatban látható két rutin, a „Health Thermometer Service” (hts) és a „Device Information Service” (dis) párhuzamosan fut (jobbra lent a 4. ábrán).
4. ábra: A programozók saját GATT-tartalommal egészíthetik ki a keretezett programfájlokat (balra); ezek a fájlok generálják a GATT-szolgáltatásokat (jobbra) (kép: STMicroelectronics)
A programozók felhasználhatják a forráskódot saját projektjeikhez, és saját GATT-tartalmat írhatnak a USER CODE BEGIN / USER CODE END (2. kód) közötti részbe. A hts.c fájlból származó inicializálási szekvencia létrehozza a 0x2A1C UUID azonosítós GATT hőmérsékletmérést (TEMM).
Másolás
[...]
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 */
[...]
}
[...]
2. kód: A hts.c fájl inicializálási szekvenciája generálja a TEMM GATT-jellemzőt (kép: GitHub, STMicroelectronics)
Külső alkatrészekre vonatkozó követelmények
Az STM32WBA52 vezeték nélküli mikrovezérlő számára csak néhány külső alkatrészt kell biztosítani az alapvető Bluetooth-funkciós működéshez. Ezek közé tartoznak a feszültségellátás kondenzátorai, egy kristályoszcillátor, egy impedancia-illesztett NyÁK-antenna és egy felharmonikus szűrő (5. ábra).
5. ábra: Bluetooth-kapcsolathoz az STM32WBA52 rádiófrekvenciás felülete egy impedancia-illesztett hálózathoz, egy felharmonikus szűrőhöz és egy antennához csatlakozik (kép: STMicroelectronics)
Összegzés
A vezeték nélküli IoT-eszközök fejlesztőinek rövidíteniük kell a tervezési ciklusokat és csökkenteniük a költségeket, hogy versenyképesek legyenek a gyorsan fejlődő piacon. Rádiófrekvenciás konstrukciók tervezése során azonban problémák merülhetnek fel. Az integrált BLE 5.3 interfészével az STM32WBA52 mikrovezérlő lehetővé teszi a fejlesztők számára, hogy eszközeiket gyorsan és költséghatékonyan piacra juttassák. Az előre programozott BLE stack és számos BLE-alkalmazási példa egy programozási keretrendszert nyújt az egyéni projektekhez, amelyekbe a GATT-tartalmak könnyen beilleszthetők.
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.




