Skip to main content

Érzékelőhálózat kiépítése biztonságos, kis fogyasztású Bluetooth-os elosztóval

Megjelent: 2018. szeptember 13.

Digi key lidA Bluetooth rendszert az okostelefonok és más mobileszközök széles körű támogatása miatt sok helyen használják az ügyfelek és személyes elektronikus készülékeik – egyebek mellett például viselhető vagy orvosi eszközeik – összekapcsolására szolgáló vezeték nélküli technikaként. A Bluetooth 5 megjelenésével a dolgok internetére (Internet of Things – IoT) fejlesztő informatikusok ugyanazokat az előnyöket aknázhatják ki, miközben hosszabb távon meg tudnak felelni az érzékelőhálózatok és a dolgok internetére kapcsolódó egyéb alkalmazások egyre növekvő követelményeinek és az általuk megkövetelt egyre nagyobb adatátviteli sávszélességnek.

 

Ha ezekhez az alkalmazásokhoz szeretnének tervmodelleket készíteni a fejlesztők, akkor a Bluetooth 5-re képes készülékek egyre nagyobb tárházából válogathatnak. Egy teljes rádiós alrendszert és egy processzormagot kombinálva velük, ezek a készülékek képesek a Bluetooth-kommunikációhoz kapcsolódó alacsony szintű tranzakciók végrehajtására. Persze a kis fogyasztás fenntartása és a dolgok internetének hálózatában a biztonságos kapcsolat fenntartása további bonyodalmat jelenthet a Bluetooth ezen alkalmazásokban való használata során.

 

Figure 1

1. ábra A Cypress Semiconductor CYW20719 egy Arm® Cortex®-M4 magot, egy teljes Bluetooth alrendszert és beépített szoftverszolgáltatásokat tartalmaz, amelyek segítségével Bluetooth 5 használatára képes mikrovezérlő egységet (MCU) kínál kis fogyasztású tervmodellekhez (A kép forrása: Cypress Semiconductor)

 

Egyesített megoldás

A Cypress Semiconductor CYW20719 eszközét kifejezetten arra tervezték, hogy megfeleljen a dolgok internetéhez, viselhető készülékekhez, személyi elektronikai eszközökhöz és más kis fogyasztású alkalmazásokhoz tervezett, akkumulátorról vagy szárazelemről táplált, Bluetooth útján összekapcsolt tervmodellek egyre növekvő követelményeinek. Kis fogyasztásával és azzal, hogy támogatja a fejlett Bluetooth 5-funkciókat, köztük az alkalmazkodó frekvenciaugratást is, egy fontos előnyt nyújt az ezekhez az alkalmazásokhoz társuló zsúfolt rádiós környezetben.
Az eszköz tartalmaz egy kis fogyasztású Bluetooth rádiós alrendszert, egy lebegőpontos egységet (FPU) magában foglaló Arm® Cortex®-M4 magot és számos perifériablokkot (1. ábra). Ezenkívül a lapkán elhelyezett biztonsági motor gyorsítja a nyilvános kulcsú titkosítást, és a Bluetooth-műveletek biztonságos voltát segítő kritikus titkosítási funkciókat kínál. Végezetül a lapkán elhelyezett energiagazdálkodó egység (PMU) egy rugalmas mechanizmust kínál a fejlesztők számára, hogy teljesíthessék a Bluetooth-képes készülékektől egyre inkább elvárt nagyon kis fogyasztású működéssel kapcsolatos követelményeket.
A CYW20719 rádiós alrendszer egy teljes 2,4 GHz-en működő rádiós jelátviteli részt tartalmaz adási (Tx) és vételi (Rx) műveletekhez. A vételi jelátviteli útvonal esetében az eszköz gyengíti a sávon kívüli jeleket, amivel -95,5 dBm-es vételi érzékenységet ér el, miközben lehetővé teszi a fejlesztők számára, hogy szükség esetén a lapkán kívüli szűrők nélkül használják az eszközt. Az eszköz adási jelátviteli útvonala tartalmaz egy beépített teljesítményerősítőt (PA), amelyet úgy terveztek, hogy támogassa a beállítható adási jelszinteket -24 dBm-től egészen a maximális +4 dBm-ig. A beépített fizikai réteg (PHY) képességgel együtt az eszköz tartalmaz egy lapkán elhelyezett Bluetooth 5 eszközhozzáférés-vezérlő (MAC) réteget is. Optimalizált adási és vételi jelátviteli útvonalaival az eszköz mindössze 5,9 mA-es adóáramot és 5,6 mA-es vevőáramot (0 dBm-en) használ.

 

Figure 3

2. ábra A Cypress CYW20719 PMU kezeli a szétválasztott fogyasztási területeket, amelyek külön lekapcsolhatók a különböző kis fogyasztású
üzemmódokban, így csökkentve az áramfelvételt a kis fogyasztású tervmodellekben (A kép forrása: Cypress Semiconductor)



A fogyasztás további csökkentése érdekében az eszköz több fogyasztási üzemmódot használ, amelyeket egy beépített energiagazdálkodó egység (PMU) vezérel. A rádiófrekvenciás és digitális fogyasztási területek szétválasztásának támogatására tervezett energiagazdálkodó egységben található egy beépített egyenáramú feszültségszabályozó, egy kis feszültségesésű (LDO) feszültségszabályozó a digitális áramkörökhöz és egy külön kis feszültségesésű feszültségszabályozó a rádiófrekvenciás áramkörökhöz (2. ábra). Ezenkívül az energiagazdálkodó egység tartalmaz még egy különálló megkerülő kis feszültségesésű feszültségszabályozót (BYPLDO), amely automatikusan megkerüli az egyenáramú feszültségszabályozót, hogy táplálja a digitális és rádiófrekvenciás áramköröket, ha az áramforrásként szolgáló akkumulátor vagy a szárazelem feszültsége (VBAT) 2,1 V alá esne.

 

Figure 33

3. ábra Mivel a Cypress CYW20719 az összes kritikus funkciót egyesíti magában, a fejlesztők mindössze néhány további alkatrészt, például a harmonikus összetevők csökkentése érdekében ajánlott sáváteresztő szűrőt hozzáadva tehetik teljessé a hardver összeépítését (A kép forrása: Cypress Semiconductor)

 


Üzem közben az energiagazdálkodó egység a választott fogyasztási üzemmódnak (teljesen aktív üzemmód, tétlen üzemmód és három különböző alvási üzemmód) megfelelően felügyeli a fogyasztási területeket. A legalacsonyabb fogyasztású kikapcsolási, alvási (SDS) üzemmódban az energiagazdálkodó egység kikapcsolja az eszköz minden blokkját, kivéve a be- és kimeneti feszültséget, a valós idejű órát (RTC) és a célorientált kis fogyasztású oszcillátort (LPO), amely az órajelet szolgáltatja egyes blokkok számára és a felébredés időzítéséhez.
A CYW20719 SDS üzemmódban még ezen minimális erőforrások használata esetén is képes a kapcsolatot fenntartani egy korábban párosított másik Bluetooth-készülékkel, a folyamat során kevesebb mint 70 μA áramot felvéve.

 

A rendszer összeépítése

A CYW20719 még rugalmas üzemmódjaival és kiterjedt funkcióival együtt is kíván néhány kiegészítő alkatrészt, hogy megvalósítsa a rendszer-tervmodellen belüli teljes hardver-összeépítést. Mivel a kritikus alkotóelemeket a lapka összeépítve tartalmazza, a fejlesztőknek csak néhány ellenállással, csatolókondenzátorral, egy 2,2 µH-s tekerccsel (például a Murata LQH2MCN2R2M52L típusjelűvel) és egy ferritmaggal (például a Murata BLM15AG601SN1D jelűvel) kell kiegészíteniük (3. ábra). Ezenkívül bölcs dolog egy sáváteresztő szűrőt elhelyezni a CYW20719 és az alkotóelemeket összekapcsoló antenna között a harmonikus összetevők csökkentése érdekében.
Az eszköz ehhez hasonlóan segít egyszerűsíteni a szoftver-összeépítést is a lapkán elhelyezett meglehetősen nagy memóriájával (1 MB gyorsmemória [flash], 512 kB RAM és 2 MB ROM). Míg a gyorsmemória és a RAM az alkalmazásaikhoz való memóriaterületet kínál a fejlesztőknek, a lapkán elhelyezett ROM az eszköz firmware-jének és Bluetooth-profiljának tárolására van fenntartva. A firmware szükség esetén történő javításának támogatására az eszköz javítási RAM-ot biztosít – ez a RAM egy olyan területe, amely a javításvezérlő logikán át kapcsolódik a sínhez (lásd fent az 1. ábrát). Végül az eszközben található egy mindig bekapcsolt (AON) memóriaterület, amely lehetővé teszi, hogy az eszköz adatokat tároljon még az olyan kis fogyasztású üzemmódokban is, mint az SDS, amelyek egyébként kikapcsolják a felejtő memóriát.
Bár a RAM és a lapkán lévő gyorsmemória korlátozott méretűnek tűnhet más csúcstechnikájú eszközökhöz képest, a ROM-ba beépített, kiterjedt szoftvertámogatás a jellegzetes alkalmazások részére rengeteg memóriát biztosít. A Cypress átfogó szoftverkészletet állít be a lapkán elhelyezett ROM-hoz, amely a legalsó hardverabsztrakciós rétegtől (HAL) egészen a WICED (Wireless Internet Connectivity for Embedded Devices, vezeték nélküli internetkapcsolat beágyazott eszközökhöz) környezet alkalmazásprogramozói felületéig (API) terjed (4. ábra).

 

Figure 2

4. ábra A Cypress CYW20719 2 MB-os ROM firmware-je teljes szoftverkészletet kínál, beleértve a valós idejű operációs rendszert, igy csökkentve ezáltal a fejlesztő alkalmazáskódjának bonyolultságát és helyigényét (A kép forrása: Cypress Semiconductor)

 


A ROM a hardverabsztrakciós rétegre alapozva futtat egy valós idejű operációs rendszert, és intéz minden kommunikációt a CYW20719 hardverrel. Ugyanakkor a ROM firmware a Bluetooth szolgáltatási rétegek teljes készletét tartalmazza, beleértve azokat is, amelyek a nélkülözhetetlen Bluetooth általános attribútum profilt (GATT) és általános hozzáférési profilt (GAP) támogatják.
A tipikus alkalmazások esetében a fejlesztői kód a RAM-ból fut, a WICED API-kat használva a valós idejű operációs rendszer (RTOS), a perifériák és más eszközfunkciók elérésére. Bár a RAM-mal szembeni követelmények jelentős mértékben változhatnak, a CYW20719 legtöbb alkalmazáskódja általában rengeteg RAM-ot hagy üresen az adatok és a munkamemória számára. A későbbiekben ismertetett hello_sensor alkalmazás például körülbelül 240 kB RAM-ot hagy szabadon.
A különösen nagy kódbázisú alkalmazások esetében ellenben a fejlesztők kihasználhatják a CYW20719 azon előnyét, hogy képes a lapkán elhelyezett gyorsmemóriában helyben futó (XIP) alkalmazáskódot használni. Itt a WICED környezet a lapkán elhelyezett gyorsmemóriába tölti be a fejlesztő által kijelölt kódrészt és az írásvédett adatrészeket, és csak a fennmaradó részeket helyezi a RAM-ba. Ez a módszer természetesen csökkenti az alkalmazás RAM-beli helyigényét, de kihathat a teljesítményre is. Ennek következtében a fejlesztőknek óvatosaknak kell lenniük az XIP-kódrészek kijelölésekor, és biztosítaniuk kell, hogy azok a funkciók, amelyeknél lényeges a végrehajtási idő, a RAM-ba kerüljenek.

 

Alkalmazásfejlesztés

Bár a CYW20719 egyszerűsíti a tervmodell összeépítését, a biztonságos, kis teljesítményű Bluetooth-alkalmazások létrehozására összpontosító fejlesztők továbbra is jelentős késéseket tapasztalhatnak a hardver kialakítása és az alkalmazásfejlesztés során. A CYW20719 eszközre épülő alkalmazások bemutatására tervezett Cypress CYW920719Q40EVB-01 kiértékelőkészlet a Cypress WICED szoftverkörnyezetet használva kínál referencia-tervmodellt és átfogó fejlesztési platformot a dolgok internetéhez készült Bluetooth 5.0-kompatibilis alkalmazások létrehozására.
A kiértékelőkészlet egy olyan hordozómodulra épül, amely a 3. ábrán látható kialakításban tartalmazza a CYW20719 eszközt, kiegészítve azt a CYW20719 RST_N lábára kötött Torex Semiconductor XC6119N feszültségérzékelővel az alaphelyzetbe állítás végrehajtásához. A hordozómodul a készlet alaplapjára van forrasztva, amelyen az alábbiak találhatók: egy STMicroelectronics LSM9DS1TR 9 tengelyű mozgásérzékelő, egy Murata NCU sorozatú NTC hőellenállás, CYW20719 GPIO portok, egy hibakereső csatlakozó, Arduino-kompatibilis foglalatok a bővítéshez, valamint egyszerű kezelőfelületet biztosító kapcsolók és LED-ek (5. ábra).

 

Figure 5

5. ábra A Cypress CYW920719Q40EVB-01 kiértékelőkészlet egy olyan hordozómodulon helyezi el a CYW20719 eszközt, amelyen több alaplapi részegység képes támogatni a dolgok internetéhez készült tipikus alkalmazásokat (A kép forrása: Cypress Semiconductor)

 


A Cypress mintaszoftvere a CYW20719 eszközt és más részegységeket a dolgok internetének egy sok érzékelőt és egy központi elosztót tartalmazó jellegzetes hálózatában lévő biztonságos Bluetooth-kapcsolat sokrétű szemléltetésére használja (6. ábra). Ezzel a mintaalkalmazással a fejlesztők az érzékelő és az elosztó közti párosítás különféle biztonsági szintjeit mérhetik fel, és kiértékelhetik, hogy milyen hatással vannak ezek a különböző biztonsági szintek az adatcserére.

 

Figure 6

6. ábra A Cypress több CYW920719Q40EVB-01 készlettel és a Cypress WICED fejlesztői környezettel való együttműködésre tervezett mintaalkalmazása a biztonságos Bluetooth-kapcsolatot szemlélteti a dolgok internetének egy jellegzetes alkalmazási mintájában (A kép forrása: Cypress Semiconductor)

 


Az alkalmazás hardverét tekintve a fejlesztők egy külön CYW920719Q40EVB-01 készletet használnak biztonságos elosztóként beállítva, és további készleteket a hálózat egyedi érzékelőiként beállítva. Az egyes készletekhez soros kapcsolaton át kapcsolódó számítógép egy konzolként szolgál a paraméterek beállításához, az adatok megtekintéséhez, a hibakeresési üzenetek kinyomtatásához és a mintaalkalmazással való egyéb kommunikációhoz.

 

lista1

1. lista A Cypress BLE Secure Hub biztonságos elosztóban található hello_sensor projekt részét képező fejlécfájl meghatároz egy enum típust  a különböző jellemzőkhöz (A), amelyet a megfelelő kódmodul arra használ, hogy felépítse a Bluetooth-műveletek által megkövetelt GATT DB adatbázist (A kód forrása: Cypress Semiconductor)

 


A Cypress a mintaalkalmazáshoz tartozó szoftvert a saját WICED fejlesztői környezetéhez tartozó saját CYW20719 BLE Secure Hub biztonságos elosztójának C nyelvű csomagjában helyezte el. Ebben az esetben a csomag két projektet tartalmaz a mintaalkalmazásban lévő két külön szerepkörhöz. A biztonságos központként kijelölt készleten való futásra tervezett egyik projekt (secure_hub) lehetővé teszi, hogy az elosztó több Bluetooth-protokollszerepkört támogasson. Az elosztó szoftvere konkrétan arra van tervezve, hogy engedélyezze a különböző biztonsági szinteken való párosítást az alárendeltként (szolgaként) futó különféle készletekkel.
Az alárendeltként beállított készleteken az érzékelőprojekt (hello_sensor) fut, amelyet arra terveztek, hogy a párosítás során létrehozott biztonsági szinten való adatgyűjtést és kommunikációt szemléltesse. Mindegyik projekthez tartozik néhány fejléc és kódmodul, amelyekre az egyes funkcióknak megfelelő szerepkörök támogatásához van szükség. Ezek között a fájlok között a secure_hub és a hello_sensor projektek mindegyike tartalmaz egy általános attribútumprofil- (GATT-) fejlécet (gatt_db.h) és egy kódfájlt (gatt_db.c).
A Bluetooth protokollban egy GATT adatbázis (DB) nevű keresőtábla szabja meg a Bluetooth-kapcsolat természetét és képességeit, egy előre meghatározott szolgáltatásokat tartalmazó készlet révén, amelyben mindegyik szolgáltatás a támogatott jellemzők egy adott készletét tartalmazza. Például a Bluetooth-specifikáció előre meghatározott GATT-szolgáltatásokat tartalmaz, amelyek a segédprogram-funkcióktól (mint a riasztási értesítés és az eszközinformációk) az alkalmazásspecifikus funkciókig (mint a vérnyomás-, a pulzus- és véroxigénszint-mérő szolgáltatás) terjednek. Az eszköznek a GATT-szolgáltatásoknál alapvetőbb szerepkört betöltő Bluetooth általános hozzáférési profilja (GAP) határozza meg, hogyan hirdeti magát az eszköz, hogy a hálózat észlelhesse, és hogyan hoz létre kapcsolatokat, miután észlelték.
A biztonságos elosztóként és az érzékelőként beállított készletek GAP és a GATT szolgáltatásait a secure_hub projekt és a hello_sensor projektben lévő gatt_db.h fejléc és gatt_db.c kód határozza meg (értelemszerűen). Ezen szemléltető alkalmazás esetében mindegyik projekt egy egyéni GATT szolgáltatást határoz meg a szerepkörének megfelelően. Például a hello_sensor projekt fejléce tartalmaz egy C enum típust, amely a GATT és GAP szolgáltatások kötelező kezelését határozza meg, valamint egy egyéni GATT-meghatározást az érzékelőszolgáltatáshoz (1a lista). Cserébe a projekt gatt_db.c fájl arra használja ezeket a meghatározásokat, hogy felépítse a Bluetooth-protokollban szükséges GATT DB adatbázist (1b lista).
Ezekbe a meghatározásokba beágyazva a GATT érzékelőszolgáltatás szintén meghatározza, hogy az alapját képező szolgáltatásjellemzők olvashatók vagy írhatók-e, értesítést kell-e róluk küldeni, és jelezni kell-e őket (a csatlakoztatott konzolt használva). Például a LED villogását szabályozó jellemző (HANDLE_HSENS_SERVICE_CHAR_BLINK meghatározva az 1a listában és alkalmazva az 1b listában) olyan bitmaszkokat tartalmaz (LEGATTDB_CHAR_PROP_READ | LEGATTDB_CHAR_PROP_WRITE az 1b listában), amelyek azt jelzik, hogy a jellemző olvasható és írható is.
A hello_sensor projekt gatt db.c fájlja azonban egy olyan kóddal ötvözi ezeket a meghatározásokat, amely a jellemzőhöz való biztonságos hozzáférést valósítja meg. Azaz a LED-nek a konzolon a fejlesztő által beírt karakterrel jelzett számú villogtatására való képességet. A mintaalkalmazás céljaira a képességhez való hozzáférés megköveteli, hogy az ezzel az érzékelőkészlettel való kapcsolatot a Bluetooth emberi közbeavatkozással (MITM) történő párosítással hajtsa végre, egy felhasználó által megadott jelszóval, amelyet a párosítás során a konzolon kell beírni.
Általában véve, amikor valamilyen funkció meghívására irányuló kérés történik, a megfelelő kezelő végrehajtja az alkalmazás adott feladatát, figyelembe véve mind a meghatározott jellemzőket, mind a biztonságos hozzáféréssel kapcsolatos követelményeket. A LED-villogtatásos példában, amikor a LED-villogtató funkció végrehajtására vonatkozó kérés megtörténik, az engedélyt megadó és a hozzáférést engedélyező tényleges kód meglehetősen egyszerű.

 

lista2

2. lista A Cypress BLE Secure Hub biztonságoselosztó-alkalmazás ezen kódrészletében a LED-villogtatási jellemző végrehajtására irányuló kérés esetén először sikeresnek kell lennie egy a jogosultságra és a biztonsági engedélyre vonatkozó ellenőrzésnek (kiemelve) (A kód forrása: Cypress Semiconductor)

 


A LED-villogtatási jellemző értékének megváltoztatásához (HANDLE_HSENS_SERVICE_CHAR_BLINK_VAL) a kód egy feltételes utasítást használ, amely jóváhagyja az írási jogosultságot és a hozzáférési engedélyt is (2. lista). Az írási jogosultsághoz a feltételes utasítás összehasonlítja a kért jogosultságot (LEGATTDB_PERM_AUTH_WRITABLE) az eszköz tényleges LED-villogtatási jogosultságának beállításával LED_BLINK_CHAR_PERMISSION (az 1b lista tetején van meghatározva). Az engedélyezéshez a feltételes utasítás ellenőrzi, hogy a jelenlegi, párosított biztonsági szint (paired_security_level) emberi közbeavatkozással való (MITM) párosítással lett-e létrehozva (BTM_SEC_LINK_PAIRED_WITH_MITM) (2. lista).
Az érzékelőprojekthez és az elosztóprojekthez tartozó GATT DB adatbázis-meghatározások és támogató kód használatával ez a mintaalkalmazás biztosítja a fejlesztők számára azokat az alapvető tervezési mintákat, amelyek három különböző biztonsági szinthez társulnak, beleértve a párosítási szintet, az itt leírt, emberi közbeavatkozással (MITM) történő párosítást és a Bluetooth LE Secure biztonságos párosítást. Utóbbi párosítási módszer kínálja a legnagyobb biztonságot az Elliptic Curve Diffie-Hellman (ECDH) (elliptikus görbéken alapuló Diffie-Hellman) kulcscserén alapuló hitelesítési mód felhasználásával. Mivel a CYW20719 beépített biztonsági motorja tartalmaz egy ECDH-gyorsítót is, a fejlesztők a teljesítmény terén való megalkuvás nélkül alkalmazhatják ezt a módszert.

 

Következtetés

A Bluetooth-kompatibilis beépített, vezeték nélküli mikrovezérlő egység (MCU) elérhetősége segített a fejlesztőknek, hogy ezen eszközöket gyorsabban építhessék be az általuk tervezett modellekbe. A biztonságos Bluetooth-hálózatok kialakítása során azonban a fejlesztők több kihívással kerülnek szembe a Bluetooth-kompatibilis szolgáltatások létrehozásakor és az ezen eszközök biztonságos használatára képes alkalmazások írásakor. 

A Cypress CYW20719 Bluetooth mikrovezérlő egységen alapuló Cypress Semiconductor CYW920719Q40EVB-01 készletben található Bluetooth-kiértékelő készlet és WICED fejlesztői környezet átfogó platformot kínál ezen alkalmazások kialakításához. A készleteknek és a WICED környezetnek a Cypress BLE Secure Hub csomaggal együtt történő használatával a fejlesztők gyorsan kiértékelhetik a biztonságos Bluetooth-alkalmazásokat, és gyorsan kibővíthetik azokat olyan egyéni alkalmazásokká, amelyek képesek kihasználni a Bluetooth 5 nagyobb sebességét és működési tartományát.

 

 

Szerző: Rich Miron – Digi-Key Electronics

 

Digi-Key Electronics

Angol / német nyelvű kapcsolat
Hermann W. Reiter
Director, Global Strategic Business Development
Digi-Key Electronics Germany
Tel.: +49 151 6286 5934
E-mail: Ez az e-mail-cím a szpemrobotok elleni védelem alatt áll. Megtekintéséhez engedélyeznie kell a JavaScript használatát.

www.digikey.hu



Még több Digi-Key Electronics