Bluetooth 5.3 -teknologian lisääminen IoT-reunaratkaisuihin nopeasti ja kustannustehokkaasti

Kirjoittaja Jens Wallmann

Julkaisija DigiKey's European Editors

Hellittämätön kilpailu painostaa esineiden internetin (IoT) laitekehittäjiä luomaan nopeasti uusia ja innovatiivisia tuotteita vähentäen samalla kustannuksia sekä varmistamaan luotettavan, vähävirtaisen ja turvallisen viestinnän. Perinteisiin älykkäisiin IoT-päätepisteisiin kuuluu reunaprosessoinnin mahdollistava mikrokontrolleri (MCU) ja langaton mikropiiri yhdistettävyyttä varten. Ongelmia syntyy, kun suunnittelutiimistä puuttuu toimivan ratkaisun edellyttämä tietämys radiotaajuuksista.

Kehittäjien on tehostettava kehitysprosessejaan, jotta he voivat saada langattomat IoT-laitteensa valmiiksi, sertifioiduiksi ja massatuotantoon ajoissa. Yksi tapa tehostaa kehitysprosessia on käyttää vähävirtaista mikrokontrolleria, joka tarjoaa integroidun langattoman Bluetooth Low Energy (BLE) ‑rajapinnan.

Tässä artikkelissa esitellään STM32WBA52-mikrokontrollerisarja STMicroelectronics-yritykseltä ja kerrotaan, miten kehittäjät voivat käyttää BLE-evaluointikortteja, kehitystyökaluja ja esimerkkisovelluksia langattoman BLE 5.3 ‑laitteen nopeaan suunnitteluun. Mukana on lyhyt katsaus ohjelmointiin ja mikrokontrollerin johdotukseen.

Tehoa säästävä langaton ja erittäin turvallinen mikrokontrolleri

BLE 5.3 ‑sertifioitu STM32WBA52-mikrokontrollerisarja on kustannustehokas ratkaisu, jonka avulla aloittelevat kehittäjät voivat nopeasti toteuttaa langattoman viestinnän laitteisiinsa. Nämä mikrokontrollerit perustuvat Arm® Cortex®-M33 ‑ytimeen 100 MHz:n kellotaajuudella ja TrustZone-teknologialla ja ovat erittäin turvallisia, suojelevat tietoja ja immateriaalioikeuksia (IP) sekä estävät hakkeroinnin ja laitteen kloonauksen.

Langattomassa STM32WBA52CEU6-mikrokontrollerissa on 512 kt flash-muistia ja 96 kt staattista RAM-muistia (SRAM), kun taas STM32WBA52CGU6-versiossa on 1 Mt flash-muistia ja 128 kt SRAM-muistia. Kuvassa 1 esitetään mikropiirin toiminnallisuus 48 UFQFN ‑kotelossa. Huomionarvoista on, että jopa 20 kapasitiivista kosketuskanavaa mahdollistaa laitteen käytön hermeettisesti tiiviissä laitteissa (ilman mekaanisia näppäimiä).

Lohkokaavio STMicroelectronics STM32WBA52 -piirin toiminnallisuudestaKuva 1: Lohkokaavio STM32WBA52-piirin toiminnallisuudesta näyttää integroidun BLE 5.3 ‑radion, flash- ja SRAM-muistin sekä turvallisuustuen. (Kuvan lähde: STMicroelectronics)

Laaja STM32Cube-ekosysteemi tukee BLE-sovelluksen toteutusta ja ohjelmointia. Se sisältää STM32CubeIDE-kehitysympäristön sekä sellaisia työkaluja kuten STM32CubeMX-oheislaitekonfiguraattorin ja ‑koodigeneraattorin, STM32CubeMonitorRF-suorituskykytesterin sekä STM32Cube.AI:n työpöytä- ja pilviversiot tekoälyä varten. Näihin sopiva evaluointikortti NUCLEO-WBA52CG yksinkertaistaa prototyyppikehitystä ja nopeuttaa validointia useiden BLE-esimerkkisovelluksien ja vapaasti saatavilla olevan lähdekoodin ansiosta.

Laite- ja tietoturva

STM32WBA52-tuoteperhe täyttää PSA-sertifioinnin tason 3 ja SESIP3-standardin IoT-tietoturvavaatimukset. Kyberturvallisuutta tehostaa PSA-tietoturvaohjelma, joka perustuu suojauseristykseen, muistisuojaukseen, väärinkäyttösuojaukseen ja mikrokontrollerin Arm TrustZone ‑arkkitehtuuria käyttävään Cortex-M33-ytimeen. Arm Cortex-M:n luotettu laiteohjelmisto (TF-M) noudattaa alan standardin PSA Certified Security Frameworkin vaatimuksia. Se tarjoaa PSA RoT-tuen (Root of Trust), mukaan lukien suojattu käynnistys ja suojattu laiteohjelmiston päivitys (X-CUBE-SBSFU), salaus, turvallinen tallennus ja suorituksenaikainen vahvistus.

Integroitu radio minimoi komponenttikustannukset

Integroitu erittäin vähävirtainen radiomoduuli tuottaa +10 desibeliä suhteessa 1 mW:n (dBm) RF-lähtötehoon. Se mahdollistaa luotettavan tiedonsiirron lyhyillä etäisyyksillä (BLE 5.3) ja pitkillä etäisyyksillä (Long Range) jopa 2 Mbps:n tiedonsiirtonopeuksilla. Syvään valmiustilaan menevä virransäästötila vähentää yleistä virrankulutusta radioviestinnän aikana. STM32WBA-mikrokontrollerit voivat tukea jopa kahtakymmentä samanaikaista yhteyttä.

Radiomoduulin sähköiset suoritusarvot:

  • 2,4 GHz:n RF-lähetin-vastaanotin BLE 5.3 -tuella
  • RX-herkkyys: −96 dBm (BLE nopeudella 1 Mbps)
  • Ohjelmoitava lähtöteho, jopa +10 dBm 1 dB:n askelin
  • Integroitu symmetrointimuuntaja

Pienempi akku erittäin tehokkaan energianhallinnan ansiosta

STM32WBA52-mikrokontrollereissa on monia energiaa säästäviä teknologioita, kuten STMicroelectronicsin LPDMA-ominaisuus, ja joustavat virransäästötilat nopealla heräämisellä. Yhdessä nämä ominaisuudet voivat vähentää mikrokontrollerin virrankulutusta jopa 90 %, mikä tarkoittaa merkittävästi pienempää akkua tai pidempää akun kestoa.

FlexPowerControlin sähköiset suoritusarvot:

  • 1,71–3,6 voltin virtalähde
  • 140 nA:n valmiustila (16 herätysnastaa)
  • 200 nA:n valmiustila, reaaliaikainen kello (RTC)
  • 2,4 μA:n valmiustila, 64 kt SRAM-muistia
  • 16,3 μA:n pysäytystila, 64 kt SRAM-muistia
  • 45 μA/MHz:n toimintatila 3,3 voltin jännitteellä
  • Radio: Vastaanotto 7,4 mA / lähetys 0 dBm:llä 10,6 mA

Lisäksi Bluetooth 5.3 tarjoaa nopeamman vaihdon matalan ja korkean käyttöjakson välillä, mikä tekee siitä aiempia versioita energiatehokkaamman.

Bluetooth-pinon ja datapakettien arkkitehtuuri

STM32WBA52-piirin yksiytimiset Arm Cortex-M33 ‑mikrokontrollerit on suunniteltu sovellusten laiteohjelmistojen kehittämiseen, mukaan lukien BLE-pinon profiilit ja palvelut (ohjain ja isäntä). Mikrokontrollerit prosessoivat datavirran integroidusta RF-moduulista alimmalla fyysisellä kerroksella (PHY) GATT-profiiliin ja GAP-profiiliin (kuva 2). GAP määrittelee ja hallitsee mainostamista ja yhteyttä, kun taas GATT määrittelee ja hallitsee tiedonsiirtoa sisään/ulos.

Kuva: Mikrokontrollerit prosessoivat datavirran radion PHY-kerroksesta GATT- ja GAP-kerroksiinKuva 2: Mikrokontrollerit prosessoivat datavirran radion PHY-kerroksesta GATT- ja GAP-kerroksiin. (Kuvan lähde: STMicroelectronics)

BLE lähettää datapaketteja, jotka on määritelty bittijonon kiinteäksi kehysrakenteeksi. Käyttäjätieto-osan pituus voi vaihdella dynaamisesti 27 ja 251 tavun välillä.

BLE-esimerkkisovelluksia

Verkkotietosanakirja STMicro-Wiki STM32WBA-mikrokontrollereille sisältää useita esimerkkisovelluksia erilaisille Bluetooth-rooleille, kuten:

  • Mainostaminen: BLE_Beacon
  • Anturi: BLE_HealthThermometer, BLE_HeartRate
  • Silta: BLE_SerialCom
  • Reititin: BLE_p2pRouter
  • Data: BLE_DataThroughput, BLE_p2pServer ja Multi Slave BLE_p2pClient
  • RF-seuranta: BLE_TransparentMode,
  • Laiteohjelmiston langaton päivitys: BLE_Fuota

Laitesuunnittelijat ja ohjelmoijat voivat kirjoittaa BLE-projektiinsa sopivan käännetyn binääriohjelman vastaavasta GitHub-projektihakemistosta NUCLEO-kortille ja muodostaa Bluetooth-yhteyden älypuhelimeen tai pöytätietokoneeseen. Tähän tarvittava ohjelmisto STM32CubeProg tarjoaa laitteen muistin lukemisen, kirjoittamisen ja varmennuksen sekä virheenkorjausrajapinnan että käynnistyslataajan rajapinnan kautta.

BLE-esimerkin "Health Thermometer Sensor" (terveyslämpömittarin anturi) käyttö

Health Thermometer Profile (HTP, terveyslämpömittariprofiili) on Bluetooth Special Interest Groupin (SIG) määrittämä GAP-pohjainen vähävirtainen profiili. Siihen kuuluvat Health Thermometer Collector (terveyslämpömittarin kerääjä) ja Health Thermometer Sensor (terveyslämpömittarin anturi), jotka muodostavat yhteyden toisiinsa ja vaihtavat tietoja erilaisissa käyttökohteissa (kuva 3).

Kuva BLE-tiedonsiirrosta NUCLEO-kortin ja älypuhelimen välillä (suurenna napsauttamalla)Kuva 3: BLE-tiedonsiirto NUCLEO-kortin (anturi/palvelin) ja älypuhelimen (kerääjä/asiakas) välillä. (Kuvan lähde: STMicroelectronics)

Health Thermometer Sensor (anturi)

  • mittaa lämpötilan ja asettaa sen saataville Health Thermometer Service -palvelun kautta
  • sisältää etälaitteen tunnistaman laitetietopalvelun
  • toimii GATT-palvelimena

Health Thermometer Collector (kerääjä)

  • käyttää Health Thermometer Sensor -anturin tarjoamia tietoja ja voi näyttää ne loppukäyttäjälle tai tallentaa ne pysyvään muistiin myöhempää analysointia varten
  • toimii GATT-asiakkaana

Kun Health Thermometer -binääritiedosto on kirjoitettu NUCLEO-kortin mikrokontrolleriin, kehittäjän on noudatettava seuraavia vaiheita BLE-esimerkkisovelluksen ajamiseksi:

Älypuhelinsovelluksen käyttö

  1. Asenna ST BLE Toolbox älypuhelimeen. Sovellusta käytetään vuorovaikutukseen ST BLE ‑laitteiden kanssa ja vianetsintään.
  2. Kytke virta STM32WBA NUCLEO ‑korttiin, johon on kirjoitettu Health Thermometer -sovellus.
  3. Kytke älypuhelimen Bluetooth (BT) päälle ja skannaa sovelluksessa käytettävissä olevat BT-laitteet. Valitse Health Thermometer ja yhdistä.

Verkkoselainliittymän käyttö

  1. Varmista selaimen yhteensopivuus:
    • pöytätietokoneella: Chrome, Edge tai Opera
    • älypuhelinlaitteella: Chrome Android
  2. Kytke virta STM32WBA NUCLEO ‑korttiin, johon on kirjoitettu Health Thermometer -sovellus.
  3. Aktivoi Bluetooth tietokoneessa.
  4. Avaa selaimessa verkkosivu https://applible.github.io/Web_Bluetooth_App_WBA/.
  5. Napsauta verkkosivun yläosassa olevaa yhdistämispainiketta (Connect), valitse sitten laiteluettelosta HT_xx ja napsauta sitten Muodosta pari (Pair). Laite on nyt yhdistetty.
  6. Näytä käyttöliittymä napsauttamalla painiketta Health Thermometer.

Taulukossa 1 kuvataan Health Thermometer Sensor -palveluiden rakenne. 128-bittiset UUID-tunnukset yksilöivät eri ominaisuudet ja palvelut.

Palvelu Ominaisuus Toiminto UUID Koko
Health Termometer Service (terveyslämpömittaripalvelu) 0x1809
Lämpötilan mittaus Tarjoaminen 0x2A1C 13
Lämpötilatyyppi Luku 0x2A1D 1
Lämpötilan väliarvo Ilmoitus 0x2A1E 13
Mittausväli Luku, kirjoitus, tarjoaminen 0x2A21 2
Device Information Service (laitetietopalvelu) 0x180A
Valmistajan nimi merkkijono Luku 0x2A29 32
Mallinumero merkkijono Luku 0x2A24 32
Järjestelmän tunnus Luku 0x2A23 8

Taulukko 1: GATT-palvelut ja niiden UUID-tunnukset Health Thermometer Sensor GAP-kerrokselle. (Kuvan lähde: STMicroelectronics)

Seuraava JavaScript-koodi GitHub-palvelusta näyttää, miten verkkoselaimen rajapinta suodattaa erilaiset vastaanotetun GATT-datan ominaisuudet (listaus 1).

Kopioi
[...]

// 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..");
    }
  });

[...]

Listaus 1: Tämä JavaScript-koodi suodattaa erilaiset GATT-datan ominaisuudet taulukon 1 mukaisesti. (Listauksen lähde: GitHub, STMicroelectronics)

BLE-pinon prosessien jäljittäminen

NUCLEO-WBA52CG tarjoaa piirinsisäinen ST-LINK/V3‑virheenkorjaus- ja ohjelmointilaitteen, joka tukee virtuaalista STM32-COM-porttiajuria tiedonsiirtoon tietokoneen kanssa sarjaliitännän kautta. Mikä tahansa pääteohjelma voi avata tämän sarjaliikenneportin näyttääkseen koodissa funktiolla APP_DBG_MSG luodut lyhyet tekstimuotoiset viestit.

Jäljitys on otettava käyttöön projektin sisältämässä tiedostossa app_conf.h

#define CFG_DEBUG_APP_TRACE   (1)

Vaihtoehtoisesti älypuhelinsovellus SE BLE Toolbox tarjoaa jäljitystoiminnon välilehdellä <Application Log>.

BLE 5.3 ‑sovellusten ohjelmointi

STM on koonnut STM32CubeWBA-paketin STM32WBA52-mikrokontrollerien ohjelmointia varten. Se koostuu laitteiston abstrahointikerroksesta (HAL), matalan tason sovellusrajapinnoista (API) ja CMSIS-, tiedostojärjestelmä-, RTOS-, BLE/802.15.4-, Thread- ja Zigbee-pinoista sekä STMicroelectronicsin korteilla ajettavista esimerkeistä.

Kukin NUCLEO-WBA52CG BLE ‑esimerkkisovellus sisältää projektirakennemääritykset kaikille kolmelle kehitysympäristölle (IDE), kuten IAR Embedded Workbench for Arm (EWARM), Keil MDK-ARM ja STM32CubeIDE.

Health Thermometer -esimerkissä vain tietyt projektihakemiston tiedostot (kehystettyinä vasemmalla kuvassa 4) generoivat GATT-palvelut. Kaksi taulukon 1 rutiinia, ”Health Thermometer Service” (hts) ja ”Device Information Service” (dis), ovat suorituksessa rinnakkain (alaoikealla kuvassa 4).

Kaavio: ohjelmoijat voivat lisätä omaa GATT-sisältöänsä kehystettyihin kooditiedostoihin (suurenna napsauttamalla)Kuva 4: Ohjelmoijat voivat lisätä omaa GATT-sisältöänsä kehystettyihin kooditiedostoihin (vasemmalla); nämä tiedostot generoivat GATT-palvelut (oikealla). (Kuvan lähde: STMicroelectronics)

Ohjelmoijat voivat käyttää lähdekoodia omissa projekteissaan ja laajentaa sitä omalla GATT-sisällöllään kohdissa, jotka ovat tekstien USER CODE BEGIN / USER CODE END sisällä (listaus 2). Tiedoston hts.c alustussekvenssi generoi GATT-ominaisuuden Temperature Measurement (TEMM), jonka UUID on 0x2A1C.

Kopioi
[...]
 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 */

 [...]
 }
[...]

Listaus 2: Alustussekvenssi tiedostosta hts.c generoi GATT-ominaisuuden TEMM. (Kuvan lähde: GitHub, STMicroelectronics)

Ulkoisten komponenttien vaatimukset

Langaton STM32WBA52-mikrokontrolleri vaatii vain muutamia ulkoisia komponentteja Bluetooth-perustoiminnallisuutta varten. Näitä ovat kondensaattorit jännitteensyöttöä varten, kideoskillaattori, piirilevyantenni impedanssinsovituksella ja harmoninen suodatin (kuva 5).

Kaaviossa STMicroelectronics STM32WBA52-piirin RF-liitin (suurenna napsauttamalla)Kuva 5: Bluetoothia käytettäessä STM32WBA52-piirin RF-liitin kytketään impedanssisovitusverkkoon, harmoniseen suodattimeen ja antenniin. (Kuvan lähde: STMicroelectronics)

Yhteenveto

Langattomien IoT-laitteiden kehittäjien on nopeutettava suunnittelua ja laskettava kustannuksia kilpaillakseen nopeasti kehittyvillä markkinoilla. Radiosuunnittelu on kuitenkin haastavaa. STM32WBA52-mikrokontrollerin integroidun BLE 5.3 ‑rajapinnan ansiosta kehittäjät voivat päästä markkinoille nopeasti ja kustannustehokkaasti. Esiohjelmoitu BLE-pino ja useat BLE-esimerkkisovellukset muodostavat ohjelmointimallin räätälöidyille projekteille, joihin GATT-sisältö on helppo lisätä.

DigiKey logo

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.

Tietoja kirjoittajasta

Jens Wallmann

Jens Wallmann

Jens Wallmann is a freelancing editor and contributes to electronics publications, both print and online. As an electrical engineer (communications engineering) and a trained industrial electronic engineer he has more than 25 years in electronics development with a focus on measuring technology, automotive electronics, process industry and Radio Frequency.

Tietoja tästä julkaisijasta

DigiKey's European Editors