În contextul unei concurențe acerbe, dezvoltatorii de dispozitive IoT (Internetul Lucrurilor) sunt presați să creeze rapid produse noi și inovatoare, reducând costurile și asigurând, totodată, o comunicație robustă și securizată, cu consum redus de energie. Nodurile terminale IoT inteligente tradiționale includ un microcontroler (MCU) pentru a permite procesarea edge (locală) și un circuit integrat wireless pentru conectivitate. Problemele apar atunci când echipele de proiectare nu dispun de cunoștințele necesare în domeniul RF (radiofrecvență) cu scopul realizării unei soluții eficiente.
Pentru a finaliza, certifica și transfera la timp proiectele lor IoT wireless în producția de serie, proiectanții trebuie să eficientizeze procesul de dezvoltare. O modalitate pentru a spori eficiența procesului de dezvoltare implică utilizarea unui microcontroler cu consum redus de putere prevăzut cu o interfață wireless Bluetooth Low Energy (BLE).
Articolul descrie seria de microcontrolere STM32WBA52 cu consum ultra-redus de putere de la STMicroelectronics și prezintă cum pot dezvoltatorii să utilizeze o placă de evaluare BLE, instrumente de dezvoltare și exemple de aplicații pentru a pune rapid în funcțiune un proiect wireless BLE 5.3. De asemenea, articolul include o privire succintă asupra programării și implementării microcontrolerului.
Microcontroler wireless cu consum redus de putere și nivel de securitate ridicat
Certificată pentru BLE 5.3, seria de microcontrolere STM32WBA52 este o soluție rentabilă prin care dezvoltatorii începători pot implementa rapid comunicații wireless în dispozitivele lor. Bazate pe nucleul Arm® Cortex®-M33 cu frecvență de ceas de 100 megahertzi (MHz) și tehnologie TrustZone, aceste microcontrolere oferă un nivel ridicat de securitate, protejează datele și proprietatea intelectuală (IP), împiedicând pirateria și clonarea dispozitivelor.
În timp ce microcontrolerul wireless STM32WBA52CEU6 are 512 kiloocteți (Kbytes) de memorie flash și 96 Kbytes de memorie RAM statică (SRAM), varianta STM32WBA52CGU6 oferă 1 megabyte (Mbyte) de memorie flash și 128 Kbytes de SRAM. Figura 1 prezintă gama de funcționalități a circuitului integrat (IC) disponibil într-o capsulă UFQFN cu 48-pini. În paranteză fie spus, există un număr maxim de 20 de canale tactile capacitive care permit operarea dispozitivelor etanșate ermetic (fără a fi nevoie de taste mecanice).
Ecosistemul STM32Cube sprijină implementarea și programarea aplicației BLE. Acesta include mediul de dezvoltare STM32CubeIDE, alături de instrumente precum configuratorul de periferice și generatorul de cod STM32CubeMX, testerul de performanță STM32CubeMonitorRF și versiunile desktop și cloud STM32Cube.AI pentru inteligență artificială (AI). Placa de evaluare NUCLEO-WBA52CG, facilitează prototiparea și accelerează validarea cu numeroase exemple de aplicații BLE și cod sursă disponibil gratuit.
Securitatea dispozitivelor și a datelor
Linia de produse STM32WBA52 este conformă cu standardele de securitate IoT Platform Security Arm (PSA) Certified Level 3 și Security Evaluation Standard for IoT Platforms Assurance Level 3 (SESIP3). Protecția cibernetică este îmbunătățită de programul de securitate PSA bazat pe izolare în scopuri de securitate, protecție a memoriei, protecție împotriva manipulării (tamper protection) și pe arhitectura Cortex-M33 a microcontrolerului cu Arm TrustZone. Firmware-ul de încredere pentru Arm Cortex-M (TF-M) respectă standardul industrial PSA Certified Security Framework care include o rădăcină de încredere imuabilă PSA (RoT − Root of Trust), inclusiv pornire securizată și actualizare securizată a firmware-ului (X-CUBE-SBSFU), criptografie, stocare securizată și atestare în timp de execuție.
Elementul radio integrat reduce la minimum lista de materiale (BOM)
Modulul radio integrat ultra-eficient din punct de vedere energetic livrează o putere de ieșire RF de +10 decibeli raportată la 1 miliwatt (mW) (dBm). Acesta permite comunicarea fiabilă pe distanțe scurte (BLE 5.3) și pe distanțe lungi (Long Range) cu viteze de transfer de date de până la 2 megabiți pe secundă (Mbps). Un mod de putere redusă − deep standby − reduce puterea electrică totală atunci când comunicarea radio este activă. Microcontrolerele STM32WBA pot suporta până la 20 de conexiuni simultan.
Performanțele electrice ale modulului radio:
- Emițător-receptor RF de 2,4 gigahertzi (GHz) compatibil cu BLE 5.3
- Sensibilitate RX: -96 dBm (BLE la 1 Mbps)
- Putere de ieșire programabilă, până la +10 dBm în pași de 1 dB
- Balun integrat
Baterie mai mică datorită unui management al puterii foarte eficient
Microcontrolerele STM32WBA52 dispun de numeroase tehnologii de economisire a energiei, inclusiv accesul direct la memorie cu consum redus de putere (LPDMA − Low Power Direct Memory Access) de la STMicroelectronics și stări flexibile de economisire a puterii cu timpi de trezire (wake-up) rapidă. Împreună, aceste caracteristici pot reduce consumul energetic al microcontrolerului cu până la 90%, ceea ce se traduce printr-o baterie semnificativ mai mică sau o durată de viață mai lungă a acesteia.
Performanțele electrice ale FlexPowerControl:
- Alimentare de la 1,71 la 3,6 volți
- 140 nanoamperi (nA) în modul ‘standby’ (16 pini wake-up)
- 200 nA în modul ‘standby’ cu ceas în timp real (RTC)
- 2,4 microamperi (μA) în modul ‘standby’ cu 64 Kbytes SRAM
- 16,3 μA în modul ‘stop’ cu 64 Kbytes SRAM
- 45 μA/MHz în modul ‘run’ la 3,3 volți
- Radio: Rx 7,4 miliamperi (mA) / Tx @ 0 dBm 10,6 mA
În plus, Bluetooth 5.3 oferă o comutare mai rapidă între ciclurile de funcționare cu sarcină redusă și cele cu sarcină ridicată, ceea ce îl face mai eficient din punct de vedere energetic decât versiunile anterioare.
Arhitectura stivei Bluetooth și a pachetelor de date
Microcontrolerele Arm Cortex-M33 cu un singur nucleu din seria STM32WBA52 au fost proiectate pentru dezvoltarea de firmware de aplicații, inclusiv profiluri și servicii pe stiva BLE (controler și gazdă). Microcontrolerele procesează fluxul de date provenit de la modulul RF integrat de la cel mai de jos nivel fizic (PHY) la profilul de atribut generic (GATT) și profilul de acces generic (GAP) (Figura 2). GAP definește și gestionează publicitatea și conexiunea, în timp ce GATT definește și gestionează schimbul de date de intrare/ieșire.
BLE trimite pachete de date cu o structură fixă a secvenței de biți. Lungimea zonei de date a utilizatorului poate varia dinamic de la 27 la 251 de octeți.
Exemple de aplicații BLE
Enciclopedia online, STMicro-Wiki pentru microcontrolerele STM32WBA, conține o serie de exemple de aplicații pentru diferite roluri Bluetooth, inclusiv:
- Reclamă: BLE_Beacon
- Senzor: BLE_HealthThermometer (Termometru medical), BLE_HeartRate (Ritm cardiac)
- Bridge: BLE_SerialCom
- Router: BLE_p2pRouter
- Date: BLE_DataThroughput, BLE_p2pServer & Multi Slave BLE_p2pClient
- RF-Monitor: BLE_TransparentMode,
- Firmware Update Over The Air: BLE_Fuota
În funcție de cât de bine se potrivește cu propriul lor proiect BLE, proiectanții și programatorii de dispozitive pot să încarce pe placa NUCLEO codul binar compilat din directorul proiectului GitHub corespunzător și să pornească conexiunea Bluetooth cu un telefon inteligent sau cu un PC desktop. Aplicația software pentru programarea dispozitivelor STM32 − STM32CubeProg − asigură citirea, scrierea și verificarea memoriei dispozitivului atât prin interfața de depanare, cât și prin interfața bootloader-ului.
Rularea exemplului BLE HTS “Health Thermometer Sensor” (Senzor termometru medical)
HTP (Health Thermometer Profile) este un profil cu consum redus de putere bazat pe GAP definit de SIG (Bluetooth Special Interest Group). Acesta combină un HTC (Health Thermometer Collector) și un HTS (Health Thermometer Sensor) pentru a se conecta și a face schimb de date în diferite aplicații (Figura 3).
Rolul HTS (Health Thermometer Sensor):
- Măsoară temperatura și o expune prin intermediul serviciului “Health Thermometer Service”
- Conține “Device Information Service” pentru a fi identificat de către dispozitivul de la distanță
- Este serverul GATT
Rolul HTC (Health Thermometer Collector):
- Accesează informațiile expuse de “Health Thermometer Sensor” și le poate afișa utilizatorului final sau stoca în memoria nevolatilă pentru o analiză ulterioară
- Este clientul GATT
După ce fișierul binar este introdus în microcontrolerul plăcii NUCLEO, dezvoltatorul trebuie să parcurgă etapele următoare pentru a rula exemplul de aplicație BLE:
Utilizarea aplicației pentru telefonul inteligent
- Instalați ST BLE Toolbox în telefonul inteligent. Aplicația este utilizată pentru a interacționa cu dispozitivele ST BLE și pentru a le depana.
- Porniți placa STM32WBA NUCLEO cu aplicația Health Thermometer activată.
- Porniți Bluetooth (BT) de pe telefon și scanați dispozitivele BT disponibile în aplicație. Selectați Health Thermometer și conectați-vă.
Utilizarea interfeței browserului web
- Asigurați-vă de compatibilitatea browserului:
– pe un desktop PC: Chrome, Edge sau Opera
– pe un telefon inteligent: Chrome Android - Porniți placa STM32WBA NUCLEO cu aplicația Health Thermometer activată.
- Activați Bluetooth pe computer.
- Deschideți pagina web https://applible.github.io/Web_Bluetooth_App_WBA/ în browser.
- Faceți clic pe butonul de conectare din partea de sus a paginii web, apoi selectați HT_xx din lista de dispozitive și faceți clic pe “pair” (asociere). Dispozitivul este acum conectat.
- Faceți clic pe Health Thermometer pentru a afișa interfața.
Tabelul 1 descrie structura serviciilor senzorului Health Thermometer. UUID (Universally Unique Identifier), cu o lungime de 128 de biți, distinge caracteristicile și serviciile specifice.
|
Tabelul 1: Serviciile GATT și UUID-urile acestora pentru “Health Thermometer Sensor” GAP. (Sursa imaginii: STMicroelectronics)
Următoarea secvență JavaScript de pe GitHub arată modul în care interfața browserului web filtrează diferitele caracteristici ale fluxului de date GATT (Listing 1).
Urmărirea proceselor din stiva BLE
NUCLEO-WBA52CG include depanatorul și programatorul în circuit ST-LINK/V3. Placa se conectează cu PC-ul printr-o interfață serială folosind driver-ul STM32 virtual COM. Orice terminal software poate deschide acest port serial de comunicație pentru a afișa mesajele text scurte, generate în codul programului de funcția APP_DBG_MSG.
Este necesar ca în cadrul proiectului să fie activate urmele (traces) în fișierul app_conf.h
#define CFG_DEBUG_APP_TRACE (1)
Alternativ, aplicația pentru telefonul inteligent “SE BLE Toolbox” oferă o funcție de urmărire în tab-ul <Application Log>
Programarea aplicațiilor BLE 5.3
Pentru programarea microcontrolerului STM32WBA52, STM a pregătit STM32CubeWBA-Package, care constă într-un strat de abstractizare hardware (HAL − Hardware Abstraction Layer), interfețe de programare a aplicațiilor (API − Application Programming Interface) de nivel scăzut și stive CMSIS, File System, RTOS, BLE/802.15.4, Thread și Zigbee, precum și exemple care rulează pe plăci STMicroelectronics.
Setările structurii proiectului pentru toate cele trei medii de dezvoltare (IDE), cum ar fi IAR Embedded Workbench for Arm (EWARM), Keil MDK-ARM și STM32CubeIDE, sunt incluse în fiecare exemplu de aplicație NUCLEO-WBA52CG BLE.
În cazul exemplului “Health Thermometer”, doar fișierele specifice din structura de directoare a proiectului (Figura 4, stânga) generează serviciile GATT. Cele două rutine, “Health Thermometer Service” (hts) și “Device Information Service” (dis) din tabelul 1, rulează în paralel (Figura 4, dreapta jos).
Programatorii pot utiliza codul sursă pentru propriile proiecte și îl pot extinde cu propriul conținut GATT în zonele marcate cu USER CODE BEGIN / USER CODE END (Listing 2). Secvența de inițializare din fișierul hts.c generează caracteristica GATT TEMM (Temperature Measurement) asociată cu UUID 0x2A1C.
Cerințe privind componentele externe
Microcontrolerul wireless STM32WBA52 necesită doar câteva componente externe pentru operarea de bază cu funcționalitate Bluetooth. Printre acestea se numără capacitoare pentru sursa de tensiune, un oscilator cu cristal, o antenă imprimată pe placa PCB cu adaptare de impedanță și un filtru de armonici (Figura 5).
Concluzie
Dezvoltatorii de dispozitive IoT wireless trebuie să scurteze ciclurile de proiectare și să reducă costurile pentru a fi competitivi pe o piață care evoluează rapid. Cu toate acestea, proiectarea RF reprezintă o provocare. Microcontrolerul STM32WBA52, cu interfața sa BLE 5.3 integrată, permite dezvoltatorilor să ajungă pe piață rapid și cost-eficient. Stiva BLE preprogramată și mai multe exemple de aplicații BLE alcătuiesc un șablon de programare pentru proiecte personalizate în care conținutul GATT este ușor de inserat.
Autor: Rolf Horn – Inginer de aplicații
Rolf face parte din grupul European de Asistență Tehnică din 2014, având responsabilitatea principală de a răspunde la întrebările venite din partea clienților finali din EMEA referitoare la Dezvoltare și Inginerie. Înainte de Digi-Key, el a lucrat la mai mulți producători din zona semiconductorilor, cu accent pe sistemele embedded ce conțin FPGA-uri, microcontrolere și procesoare pentru aplicații industriale și auto. Rolf este licențiat în inginerie electrică și electronică la Universitatea de Științe Aplicate din Munchen, Bavaria.
DigiKey | https://www.digikey.ro