Schnelle Bereitstellung batteriebetriebener Multisensor-IoT-Geräte mit Zertifizierung für Bluetooth 5
Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey
2019-11-13
Entwickler sehen sich in den unterschiedlichsten Branchen mit einer schnell wachsenden Nachfrage nach Bluetooth-fähigen, portablen Multisensor-Designs konfrontiert, wobei die Suche nach einer effektiven Lösung jedoch stets mit Herausforderungen verbunden ist. Neben der grundlegenden Voraussetzung eines extrem niedrigen Strombedarfs sind die schnelle Prototyperstellung, Bewertung und Anpassung für diese Designs in Device-zu-Cloud-IoT-Anwendungen mittlerweile unerlässlich geworden, um die Vorteile schnelllebiger Möglichkeiten nutzen zu können.
Dieser Artikel beschreibt ein SoC (System-on-Chip) mit Bluetooth-Prozessor und extrem niedrigem Strombedarf von ON Semiconductor und zeigt, wie das SoC bzw. seine zugehörige SiP-Version (System-in-Package) den grundlegenden Voraussetzungen für batteriebetriebene Designs gerecht wird. Weiter vereinfacht wird die Erstellung von Device-zu-Cloud-Anwendungen mit mehreren Sensoren durch eine Evaluierungskarte und eine IoT-Entwicklungsumgebung.
Stromsparende Bluetooth-Anwendungen
Bluetooth-fähige, batteriebetriebene Geräte sorgen für die nötige Konnektivität und Verarbeitungsleistung in intelligenten Produktanwendungen wie Fitness-Wearables, medizinischen Monitoren, Beleuchtungssystemen, Verriegelungen, Küchengeräten, Automobilen und vielen mehr. Benutzererwartungen und Konkurrenzdruck führen zu einem größeren Bedarf an umfassenderen Anwendungen, die von immer mehr Sensoren mit immer präziseren Daten versorgt werden wollen. In manchen Bereichen, z. B. in industriellen Anwendungen, spielt die Multisensorik eine entscheidende Rolle, um Bewegungen, Vibrationen, Erschütterungen, Temperaturen, den Feuchtigkeitsgrad oder andere Daten zu erfassen, die benötigt werden, um die Sicherheit der Mitarbeiter, die Funktionsfähigkeit der Geräte oder die grundlegende Ressourcenverwaltung zu gewährleisten.
Bei der täglichen Arbeit der Benutzer müssen diese Geräte nicht nur zuverlässig die Daten mehrerer Sensoren bereitstellen, sondern auch das häufige Auswechseln oder Aufladen von Batterien reduzieren. Für eine zufriedenstellende Benutzererfahrung ist das unabdingbar. Dabei müssen die zugrunde liegenden Lösungen zur Senkung der Kosten und zur Verringerung der Komplexität beitragen, die im Zusammenhang mit batteriebetriebenen Bluetooth-Produkten üblicherweise Thema sind.
Eine solche Lösung, das RSL10-SoC NCH-RSL10-101WC51-ABG von ON Semiconductor, erfüllt die Anforderungen für einen extrem energieeffizienten Betrieb und bietet außerdem die Hardwarebasis für SiP und Evaluierungsboards, die zur Beschleunigung der Entwicklung von Endprodukten beitragen. In Kombination mit Software von ON Semiconductor zur Entwicklung eigener Lösungen oder mit DK IoT Studio von DigiKey ermöglichen RSL10-basierte integrierte Lösungen Entwicklern die rasche Bereitstellung und Evaluierung von Multisensor-Anwendungen mit extrem niedrigem Strombedarf.
Das drahtlose RSL10-SoC mit Bluetooth-Zertifizierung
Das RSL10 ist ein drahtloses SoC mit Bluetooth-5-Zertifizierung, das speziell für den wachsenden Bedarf an extrem energiesparenden Designs in Wearables, mobilen sowie anderen vernetzten Produkten entwickelt wurde. Mit seiner großen Anzahl an integrierten Subsystemen und Funktionsblöcken stellt das RSL10 eine Einzelchip-Lösung dar, die den Anforderungen typischer Bluetooth-fähiger IoT-Geräte und -Wearables gewachsen ist (Abbildung 1).
Abbildung 1: Das RSL10-SoC von ON Semiconductor umfasst Prozessor und Funksubsysteme und stellt somit eine vollständige Lösung für Bluetooth-5-zertifizierte Geräte mit ultraniedriger Energieaufnahme dar. (Bildquelle: ON Semiconductor)
Die Hauptverarbeitungsblöcke des SoC umfassen einen Arm®-Cortex®-M3-Kern, einen proprietären digitalen Signalprozessor (DSP) LPDSP32 mit 32-Bit-Dualcore-Harvard-Architektur sowie ein komplettes Funksubsystem mit Bluetooth-5-Zertifizierung – alles mit Unterstützung durch dedizierte und freigegebene Speicherbereiche. Zum Schutz von Code und Daten verhindern die Mechanismen eines IP-Blocks den externen Zugriff auf On-Chip-Flash, RAM oder Kern. Neben einer Vielzahl standardmäßiger serieller Peripheriebausteine bietet das SoC einen Analog/Digital-Wandler (ADC) mit vier Kanälen, GPIOs (General Purpose Input Outputs) sowie Audioschnittstellen. Mehrere Spannungsregler versorgen individuell interne Leistungsdomänen, sodass die SoC-Komponente über eine einzelne Spannungsquelle mit 1,1 Volt bis 3,3 Volt betrieben werden kann.
Obwohl es verschiedene Protokolle für LR-WPANs (Low-Rate Wireless Personal Area Networks) gemäß dem Standard 802.15.4 unterstützt, bietet das RSL10 durch eine Kombination aus integrierter Hardware und Software umfassende Bluetooth-Unterstützung. Die Hardwareunterstützung baut auf dem Hochfrequenz-Frontend auf, das die physische Schicht (PHY) für Bluetooth implementiert. Beim Arbeiten mit dem HF-Frontend stellt der Basisband-Controller die Hardwareunterstützung für die Paket- und Frame-Verarbeitungsschichten des Bluetooth-Protokollstapels bereit. In diesem Fall übernimmt ein integrierter Software-Kernel die Ereignis- und Nachrichtenverarbeitung für das HF-Verkehrsmanagement, den Nachrichtenaustausch und die Timerfunktion. Eine Bluetooth-Bibliothek und die zugehörigen Profilbibliotheken werden auf dem Arm-Cortex-M3-Prozessor ausgeführt, um den Bluetooth-Stapel für die Anwendungssoftware zu vervollständigen (Abbildung 2).
Abbildung 2: Das RSL10-SoC von ON Semiconductor bietet über eine Kombination aus Software, die im Arm-Cortex-M3-Kern ausgeführt wird, und dedizierter Hardware inklusive eines Basisband-Controllers und dem zugrunde liegenden HF-Frontend einen vollständigen Bluetooth-Stapel. (Bildquelle: ON Semiconductor)
Aufbauend auf die Hardwareunterstützung im HF-Frontend und Basisband-Controller vereint der Softwarestapel die unteren Serviceschichten des BLE-Protokolls (Bluetooth Low Energy). Hierzu zählen das Logical Link Control and Adaptation Protocol (L2CAP), das Attribute Protocol (ATT), das Security Manager Protokoll (SMP) sowie das Generic Access Profile (GAP), das zur Definition von Verbindungen verwendet wird, und das Generic Attribute Profile (GATT), das zur Definition des Datenaustauschs basierend auf Services und Merkmalen dient.
Neben diesem Bluetooth-Protokollstapel unterstützen die RSL10-Profilbibliotheken mehrere Bluetooth-Standardprofile, die häufig in Wearable-Anwendungen (z. B. Überwachung von Herzfrequenz, Blutzucker und Blutdruck) zum Einsatz kommen, das Rezence-Profil für drahtloses Laden und das HID-Profil (Human Interface Device) sowie Profile für unter anderem Standort, Ausführung und Zyklen.
Effiziente Leistung
Der vielleicht wichtigste Punkt für Entwickler ist, dass das RSL10 relativ wenig Strom verbraucht und dennoch Bluetooth-Konnektivität mit Datenraten von 62,5 bis 2000 Kilobit pro Sekunde (kbps) bietet. Der Spitzenstrom beim Empfangen (Rx) mit einer 1,25-Volt-Spannungsquelle (VBAT) beträgt 5,6 Milliampere (mA) und lediglich 3,0 mA mit einer VBAT von 3 Volt. Der Spitzenstrom beim Senden (Tx) mit einer 1,25-Volt-VBAT beträgt 8,9 mA bei einer Sendeleistung von 0 dBm (Dezibel bezogen auf ein Milliwatt) und nur 4,6 mA mit einer 3-Volt-VBAT bei einer Sendeleistung von 0 dBm.
Die Energieeffizienz des RSL10 zieht sich durch seine gesamte Architektur, was auch seine branchenführenden, nach dem ULPMark-CP (Core Profile) des EEMBC zertifizierten Ergebnisse von 1090 (3 Volt) und 1260 bei 2,1 Volt belegen.
Entwickler können die Effizienz noch weiter verbessern, indem sie Hardwareblöcke selektiv deaktivieren, während sich das RSL10 im vollen Betriebsmodus befindet, oder indem sie die Komponente während Ruheperioden in den Low-Power-Standby- oder den Deep-Sleep-Modus versetzen. Bemerkenswert ist, dass das RSL10 diese Mechanismen automatisch anwendet, um zwischen Sende- und Empfangsvorgängen eine BLE-Verbindung aufrechtzuerhalten. Somit ist über alle drei Advertising-Kanäle in 5-Sekunden-Intervallen Bluetooth-Advertising möglich, wobei das SoC lediglich 1,1 Mikroampere (mA) verbraucht.
Der Standby-Modus bietet den Entwicklern eine Option, um während Zeiträumen mit geringer Aktivität, die von mehreren hundert Millisekunden (ms) bis hin zu nur wenigen Millisekunden lang sein können, Strom zu sparen.
Im Standby-Modus wendet das RSL10 Clock-Gating auf Logik und Speicher an und verringert ihre Versorgungsspannung, um den Leckstrom zu senken, woraus eine typische Leistungsaufnahme von lediglich 30 mA resultiert. Da die On-Chip-Leistungskreise aktiv bleiben, kann die Komponente relativ schnell wieder in den aktiven Betrieb zurückkehren.
Der Deep-Sleep-Modus bietet mehrere Optionen, um die Leistungsaufnahme erheblich zu senken, während weiterhin auf externe Ereignisse reagiert werden kann. Beim Betrieb in diesem Modus mit einer RAM-Erhaltung von 8 Kilobyte (KB) verbraucht die Komponente lediglich 300 Nanoampere (nA) mit einer 1,25-Volt-VBAT bzw. nur 100 nA mit einer 3-Volt-VBAT. Im tiefsten Ruhemodus liegt der Stromverbrauch des SoC bei nur 50 nA mit einer 1,25-Volt-VBAT (25 nA mit einer 3-Volt-VBAT), wobei es bei eingehenden Signalen weiterhin über seinen dedizierten WAKEUP-Pin aufgeweckt werden kann.
Integriertes Design
Der enorme Funktionsumfang des RSL10 ermöglicht Entwicklern die Erstellung leistungsoptimierter Systeme, ohne Kompromisse bei der Leistung oder der Bluetooth-Konnektivität eingehen zu müssen. Sein hohes Maß an Integration trägt zur Vereinfachung des Hardwaredesigns bei. Features wie integrierte Kondensatoren machen die üblicherweise erforderlichen externen Kondensatoren überflüssig durch den 32-kHz-Quarz für die Echtzeituhr oder den 48-MHz-Quarzoszillator für das HF-Frontend und die Hauptsystemuhr. Das RSL10 benötigt dadurch eine minimale Anzahl externer Komponenten, um ein Design zu vervollständigen (Abbildung 3).
Abbildung 3: Durch sein hohes Maß an Integration bietet das RSL10-SoC von ON Semiconductor ein vollständiges Design mit relativ wenig externen Komponenten, wie diese Konfiguration für den Betrieb im Abwärtsmodus zeigt. (Bildquelle: ON Semiconductor)
Die Komponente integriert mehrere programmierbare Spannungsregler zur Versorgung der digitalen, der Speicher- und der HF-Frontend-Blöcke. Eine Ladepumpe stellt höhere Spannungspegel zur Verfügung, die für die analogen Blöcke und den Flash-Speicher benötigt werden. Dank dieser integrierten Stromversorgungssysteme kann die Komponente über eine einzelne Spannungsversorgung zwischen 1,1 Volt und 3,3 Volt versorgt werden.
Bei Spannungspegeln unter 1,4 Volt können Entwickler die Komponente über ihren internen Low-Dropout-Regler (LDO) versorgen. Oberhalb dieses Pegels trägt der integrierte Abwärtswandler der Komponente auf Kosten eines zusätzlichen Induktors zur Verbesserung der Effizienz bei. Das Schaltungsdesign für diese zwei Spannungsquellenkonfigurationen unterscheidet sich lediglich dahingehend, dass beim Betrieb im LDO-Modus kein zusätzlicher Induktor zwischen den VCC- und VDC-Pins erforderlich ist (siehe Abbildung 3). ON Semiconductor stellt Richtlinien zur Komponentenplatzierung und zum physischen Design von Leiterplatten mit dem RSL10 zur Verfügung.
Systementwicklung mit dem RSL10
Für Entwickler, die nicht über die Zeit oder die Ressourcen zur Entwicklung dieser Hardwareschnittstellen verfügen, stellt das RSL10-SiP NCH-RSL10-101S51-ACG von ON Semiconductor bei der Systementwicklung eine effiziente Alternative zu eigenen Hardwareimplementierungen dar. Beim 6 Millimeter (mm) x 8 mm x 1,5 mm großen RSL10-SiP sind das RSL10-SoC, eine Funkantenne sowie sämtliche erforderlichen Komponenten in ein einziges Gehäuse integriert. Mit dem RSL10-SiP können Entwickler eine vollständige zertifizierte Ultra-Low-Power-Bluetooth-Hardwarelösung in ihre Designs integrieren und ihre Anstrengungen auf die kundenspezifischen Hardwareanforderungen konzentrieren.
Auf ähnliche Weise tragen die Softwarepakete von ON Semiconductor für das RSL10 dazu bei, dass man sich auch bei der Softwareentwicklung auf die kundenspezifischen Anforderungen konzentrieren kann. Aufbauend auf der Hardwareabstraktionsschicht (HAL, Hardware Abstraction Layer) Arm Cortex Microcontroller Software Interface Standard (CMSIS) stellt das RSL10-Softwareentwicklungskit (SDK, Software Development Kit) Treiber, Dienstprogramme und Beispielcode zur Verfügung, die über das RSL10 CMSIS-Pack verteilt werden (Abbildung 4).
Abbildung 4: Die RSL10-Softwareumgebung von ON Semiconductor stellt in ihrem Basispaket umfangreiche Services und Dienstprogramme zur Verfügung. Zusätzliche Pakete bieten Unterstützung für Bluetooth-Maschennetzwerke und die Bluetooth-IoT-Entwicklung. (Bildquelle: ON Semiconductor)
Neben seinen spezielleren Services umfasst dieses Paket Bluetooth-Unterstützung, das Echtzeit-Betriebssystem (RTOS, Real-Time Operating System) FreeRTOS und ein Dienstprogramm für FOTA-Updates (Firmware Over-The-Air). Des Weiteren unterstützt On Semiconductor mit separaten Paketen für Bluetooth-Maschennetzwerke und für die Bluetooth-IoT-Entwicklung (B-IDK) auch speziellere Funktionen. So bietet beispielsweise das B-IDK CMSIS-Pack IoT-bezogene Services wie Sensortreiber, Unterstützung für Cloud-Konnektivität und entsprechende Softwarebeispiele auf Anwendungsebene.
Für die kundenspezifische Entwicklung können Softwareentwickler die Basispakete und die optionalen Pakete ganz einfach in ihre integrierte Entwicklungsumgebung laden. Die RSL10-Softwaredistribution unterstützt die eigene IDE von ON Semiconductor sowie die Umgebungen Arm Keil µVision und IAR Embedded Workbench. Nach dem Laden der Pakete können sich die Entwickler mit den Beispielanwendungen beschäftigen und die Implementierung wichtiger Funktionen studieren.
Sofort einsatzbereite BLE-Multi-Sensor-Platine
Gemeinsam können das RSL10-SiP und das RSL10-SDK die Entwicklung eigener Bluetooth-fähiger Geräte beschleunigen, die den strengen Anforderungen für den Ultra-Low-Power-Betrieb gerecht werden. Für manche Anwendungen stehen die nötige Zeit und die Ressourcen zur Entwicklung kundenspezifischer Lösungen jedoch eventuell nicht zur Verfügung oder sind unter Umständen nicht einmal erforderlich.
Eventuell benötigen beispielsweise industrielle Multi-Sensor-Monitore oder intelligente Schlösser und Lichtschalter eine kleine Bluetooth-fähige Komponente, mit der die Batterielebensdauer verlängert und gleichzeitig die Daten unterschiedlicher Sensortypen bereitgestellt werden können. Für diese Anwendungen kann das Multi-Sensor-Entwicklungskit RSL10-SENSE-GEVK von ON Semiconductor eine unmittelbare Hardwarelösung darstellen. Die international zertifizierte Platine dieses Entwicklungskits kann sofort in Ultra-Low-Power-Anwendungen zum Einsatz kommen.
Die Platine RSL10-SENSE-GEVK umfasst ein RSL10-SiP, mehrere Sensoren, ein 64-KB-EEPROM N24RF64DWPT3G von ON Semiconductor für die Nahfeldkommunikation (NFC, Near Field Communication), eine RGB-LED und programmierbare Tasten. Die Platine nimmt eine kreisförmige Fläche mit einem Durchmesser unter 30 mm ein. Damit ist sie nur geringfügig größer als die Knopfzelle CR2032 und die flexible NFC-Antenne, die im Kit enthalten sind (Abbildung 5).
Abbildung 5: Die Evaluierungskarte RSL10-SENSE-GEVK von ON Semiconductor kombiniert ein RSL10-SiP mit einer breiten Palette an Sensoren, die üblicherweise für Wearables und IoT-Geräte benötigt werden. (Bildquelle: ON Semiconductor)
Auf der Karte ist eine Firmware vorinstalliert, um den Betrieb der verschiedenen Sensoren der Karte zu demonstrieren. Hierbei handelt es sich unter anderem um folgende Sensoren:
- Umgebungslichtsensor (NOA1305 von ON Semiconductor)
- Trägheitsmesseinheit (BHI160 von Bosch Sensortec) mit 3-Achsen-Beschleunigungsmesser und 3-Achsen-Gyroskop
- Digitaler geomagnetischer Sensor mit drei Achsen (BMM150 von Bosch Sensortec)
- Umgebungssensoren (BME680 von Bosch Sensortec) inklusive Sensoren für Gas-, Druck-, Feuchtigkeits- und Temperaturmessungen
- Digitale Mikrofone
Damit Entwickler die Datenerfassung der Sensoren und die RSL10-Performance mit der Evaluierungskarte RSL10-SENSE-GEVK schnell bewerten können, stellt ON Semiconductor mit RSL10 Sense and Control eine mobile App zur Verfügung, die über die App-Stores für Android und iOS heruntergeladen werden kann.
Bei Ausführung auf einem Bluetooth-fähigen Mobilgerät ermöglicht diese App Entwicklern unter anderem die Überwachung des Stromverbrauchs für verschiedene Sensorkonfigurationen, Abtastintervalle und -zyklen sowie den RSL10-Energiesparmodus. Nach dem Festlegen der gewünschten Sensorkonfiguration in der App zeigt diese die Ergebnisse in verschiedenen Bereichen an (Abbildung 6).
Abbildung 6: Die mobile App RSL10 Sense and Control von ON Semiconductor ermöglicht die Bewertung der Multi-Sensor-Performance der Evaluierungskarte RSL10-SENSE-GEVK. (Bildquelle: ON Semiconductor)
Entwickler können den Demo-Code der weiter oben erwähnten CMSIS-Pack-Distribution und die IDE-Optionen anzeigen und ändern. Nach dem Erzeugen einer neuen Firmware müssen die Entwickler das Image über die 10-polige Steckleiste mit einem Adapter wie beispielsweise dem Tag-Connect TC2050-IDC-NL laden. Obwohl dieser Adapter dem Multi-Sensor-Evaluierungskit RSL10-SENSE-GEVK nicht beiliegt, bietet eine Debug-Version des Kits – das RSL10-SENSE-DB-GEVK – einen aufgelöteten 10-poligen Debug-Stecker sowie einen J-Link LITE Cortex-Debugger von Segger Microcontroller Systems, um eine Verbindung zu diesem Stecker herzustellen.
Schnelle Entwicklung mit DK IoT Studio
Die Multi-Sensor-Evaluierungskarte RSL10-SENSE-GEVK kann die Hardwareentwicklung für zahlreiche Multi-Sensor-Anwendungen überflüssig machen, die eine längere Batterielebensdauer erfordern. Für viele dieser Anwendungen ermöglicht ein separates Online-Entwicklungswerkzeug von DigiKey die rasche Entwicklung von Prototypen oder sogar Produktionssystemen, ohne dass hierfür eine Software-Codierung erforderlich ist. In Kombination mit der Evaluierungskarte RSL10-SENSE-GEVK bietet DK IoT Studio einen codefreien Entwicklungsansatz, der Entwicklern die schnelle Bereitstellung vollständiger Sensor-to-Cloud-Anwendungen ermöglicht.
Auf der grafischen Benutzeroberfläche von DK IoT Studio stellen Entwickler per Drag-and-Drop Elemente zusammen, die für die verschiedensten Hardware- und Softwareobjekte stehen, die in IoT-Anwendungen zum Einsatz kommen. Die Hardwareelemente reichen dabei von einzelnen GPIO-Pins bis hin zu vollständigen Sensorkomponenten, inklusive der auf der Evaluierungskarte RSL10-SENSE-GEVK bereits vorhandenen. Bei den Softwareelementen handelt es sich um typische Low-Level-Funktionen wie Schleifen und Bedingungen, die in jedem Programm vorkommen, bis hin zu Schnittstellen für Cloud-Dienste.
Mit Kombinationen aus diesen Elementen arbeiten die Entwickler auf separaten Registerkarten der grafischen Benutzeroberfläche von DK IoT Studio, um Abläufe zu definieren, die auf der RSL10, in der zugehörigen DK IoT Studio-App und in der Cloud ausgeführt werden – alles, ohne hierfür Softwarecode schreiben zu müssen.
Dieser Ansatz baut auf einer Reihe von „Fähigkeiten“ und „Ereignissen“ auf, die mit jedem Element verknüpft sind. Der integrierte Umgebungssensor BME680 etwa bietet eine Reihe von Fähigkeiten zum Erfassen von Temperatur, Druck und Feuchtigkeit. Andere Funktionselemente, z. B. ein Intervallelement, ermöglichen das regelmäßige Auslösen von Ereignissen, die das Ausführen der Fähigkeit eines Elements verursachen. Wiederum andere repräsentieren die Bluetooth-Kommunikation mit einem Bluetooth-fähigen Mobilgerät wie beispielsweise einem Smartphone.
Die Entwicklung einer Anwendung nach diesem Ansatz ist unkompliziert, da DigiKey für die Evaluierungskarte RSL10-SENSE-GEVK eine Reihe von Demonstrationsprojekten bereitstellt. Beispielsweise löst in einem BME680-Demonstrationsprojekt ein Intervallelement die Fähigkeit des Sensors BME680 aus, alle 1000 ms die Temperatur, den Druck und die Feuchtigkeit zu erfassen. Entsprechende Bluetooth-Elemente für die einzelnen Sensorausgänge wiederum verursachen die Übertragung dieser Sensormesswerte an ein Bluetooth-Gerät (Abbildung 7).
Abbildung 7: Auf der Registerkarte für eine Komponente in DK IoT Studio von DigiKey kombinieren Entwickler Elemente, um regelmäßig die Daten vom Umgebungssensor auf der Evaluierungskarte RSL10-SENSE-GEVK abzurufen und die Sensordaten über eine Bluetooth-Verbindung an eine zugehörige mobile App zu übertragen. (Bildquelle: DigiKey)
Die Registerkarte „Application“ ermöglicht den Entwicklern den Aufbau einer Benutzeroberfläche in der mobilen App von DigiKey zur Anzeige der per Bluetooth empfangenen Daten. Im BME680-Demonstrationsprojekt zeigt diese Anwendung nicht nur Temperatur, Druck und Feuchtigkeit an, sondern sendet die Messwerte der einzelnen Sensoren auch an ein Cloud-Element (Abbildung 8).
Abbildung 8: Die Registerkarte „Application“ in DK IoT Studio von DigiKey stellt eine Leinwand zur Anzeige von Sensordaten in der zugehörigen mobilen App sowie einen Bereich zur Erzeugung der angezeigten Daten und zur Durchführung anderer Vorgänge in der mobilen App zur Verfügung (z. B. das Senden von Daten in die Cloud). (Bildquelle: DigiKey)
Diese Verwendung einer zwischengeschalteten App zur Weiterleitung von Sensordaten an eine Cloud-Anwendung ist häufig anzutreffen, damit direkte Verbindungen vom IoT-Gerät zur Cloud vermieden werden können. Bei Geräten mit integrierter Wi-Fi-Kommunikation können Sensordaten selbstverständlich auch direkt in die Cloud gesendet werden und in DK IoT Studio finden sich auch Wi-Fi- sowie weitere Elemente, die diesen Ansatz unterstützen. In beiden Fällen werden Cloud-Vorgänge jedoch auf der Registerkarte „Cloud“ angegeben. In diesem Fall werden die für Temperatur, Druck und Feuchtigkeit gemessenen Werte in Cloud-Diensten zur Datenspeicherung gespeichert, die mit DK IoT Studio zur Verfügung gestellt werden (Abbildung 9).
Abbildung 9: Auf der Registerkarte „Cloud“ in DK IoT Studio definieren Entwickler cloud-basierte Vorgänge wie das Speichern von Sensordaten in Cloud-Speichern. (Bildquelle: DigiKey)
Nach Fertigstellung der Definition von Komponente, Anwendung und Cloud-Rollen kann der Benutzer das Projekt in DK IoT Studio kompilieren, indem er auf die Schaltfläche „Compile“ klickt. Nach dem Erzeugen des Codes kann der Benutzer die fertige Firmware in die RSL10-SENSE-GEVK laden. Hier schließt ein kleines Hilfsprogramm, das auf dem System des Benutzers ausgeführt wird, die Übertragung von DK IoT Studio zur mit diesem System verbundenen Evaluierungskarte ab. Die Code-Sätze für Anwendung und Cloud werden automatisch in der Cloud-Umgebung von DK IoT Studio gespeichert.
Obwohl mit diesem Ansatz die Entwicklung von Anwendungscode entfallen kann, werden die Ereignisse und Fähigkeiten zu jedem Element in einer Reihe von Softwareroutinen – der sogenannten Embedded Element Library (EEL) – gespeichert, die in der Entwicklungsumgebung von DK IoT Studio ausgeführt wird.
So ruft beispielsweise die Funktion „Read Temperature“ des Umgebungssensors BME680 eine Abstraktion bme680_get_sensor_() auf, die in einem in C programmierten BME680-Modul definiert ist (Listing 1).
BME680_Status_t BME680_GetTempData( float *tempC )
Kopieren
{
_BME680_StartMeasurement();
struct bme680_field_data data;
int8_t retval = bme680_get_sensor_data( &data, &_BME680_DriverConfig );
if ( retval != 0 )
{
ATMO_PLATFORM_DebugPrint( "Error getting sensor data! %d\r\n", retval );
*tempC = 0;
}
else
{
*tempC = data.temperature / 100.0;
}
_BME680_Sleep();
return BME680_Status_Success;
}
Listing 1: Für die grafische Benutzeroberfläche von DK IoT Studio implementiert mit den einzelnen Elementen verknüpfter Code spezielle Funktionen, so etwa diese Funktion, die immer dann aufgerufen wird, wenn die Fähigkeit „Read Temperature“ ausgelöst wird. (Codequelle: DigiKey)
Low-Level-Routinen in demselben Modul implementieren die erforderlichen Bit-Manipulationen, um die gewünschten Daten aus Sensorregistern zu extrahieren, die von einer Subroutine bme680_get_regs() gelesen werden (Listing 2).
Kopieren
static int8_t read_field_data( struct bme680_field_data *data, struct bme680_dev *dev )
{
int8_t rslt;
uint8_t buff[BME680_FIELD_LENGTH] = { 0 };
uint8_t gas_range;
uint32_t adc_temp;
uint32_t adc_pres;
uint16_t adc_hum;
uint16_t adc_gas_res;
uint8_t tries = 10;
rslt = null_ptr_check( dev );
do
{
if ( rslt == BME680_OK )
{
rslt = bme680_get_regs( ( ( uint8_t ) ( BME680_FIELD0_ADDR ) ), buff, ( uint16_t ) BME680_FIELD_LENGTH,
dev );
data->status = buff[0] & BME680_NEW_DATA_MSK;
data->gas_index = buff[0] & BME680_GAS_INDEX_MSK;
data->meas_index = buff[1];
adc_pres = ( uint32_t ) ( ( ( uint32_t ) buff[2] * 4096 ) | ( ( uint32_t ) buff[3] * 16 )
| ( ( uint32_t ) buff[4] / 16 ) );
adc_temp = ( uint32_t ) ( ( ( uint32_t ) buff[5] * 4096 ) | ( ( uint32_t ) buff[6] * 16 )
| ( ( uint32_t ) buff[7] / 16 ) );
adc_hum = ( uint16_t ) ( ( ( uint32_t ) buff[8] * 256 ) | ( uint32_t ) buff[9] );
adc_gas_res = ( uint16_t ) ( ( uint32_t ) buff[13] * 4 | ( ( ( uint32_t ) buff[14] ) / 64 ) );
gas_range = buff[14] & BME680_GAS_RANGE_MSK;
data->status |= buff[14] & BME680_GASM_VALID_MSK;
data->status |= buff[14] & BME680_HEAT_STAB_MSK;
if ( data->status & BME680_NEW_DATA_MSK )
{
data->temperature = calc_temperature( adc_temp, dev );
data->pressure = calc_pressure( adc_pres, dev );
data->humidity = calc_humidity( adc_hum, dev );
data->gas_resistance = calc_gas_resistance( adc_gas_res, gas_range, dev );
break;
}
dev->delay_ms( BME680_POLL_PERIOD_MS );
}
tries--;
}
while ( tries );
if ( !tries )
{
rslt = BME680_W_NO_NEW_DATA;
}
return rslt;
}
Listing 2: Code, der mit den einzelnen Elementen in DK IoT Studio verknüpft ist, übersetzt abstraktere Funktionsaufrufe von übergeordneten Diensten in spezielle Vorgänge wie beispielsweise die Extraktion von Daten aus den Sensorregistern der Umgebung. (Codequelle: DigiKey)
Wie bereits angedeutet, bieten Elemente Methoden wie Bedingungen, die routinemäßig von Softwareentwicklern verwendet werden, und Methoden wie GPIO-Steuerung, die routinemäßig von Hardwareentwicklern verwendet werden In der Umgebung von DK IoT Studio bieten entsprechende Elemente einen einfachen Drag-and-Drop-Ansatz zur Prüfung von Bedingungen und zur Ausführung entsprechender Aktionen. Beispielsweise zeigt ein anderes Demonstrationsprojekt, wie die LED an der Evaluierungskarte RSL10-SENSE-GEVK eingeschaltet werden kann, falls der Ausgang des Umgebungslichtsensors der Karte einen bestimmten Wert überschreitet (Abbildung 10).
Abbildung 10: DK IoT Studio stellt Elemente zur Verfügung, die zur Durchführung von abstrakterer Logik (z. B. das Überprüfen von Werten) sowie von Low-Level-Vorgängen (z. B. das Festlegen eines mit der LED an der Evaluierungskarte RSL10-SENSE-GEVK von ON Semiconductor verknüpften GPIO) verwendet werden. (Bildquelle: DigiKey)
Auf der Cloud-Seite kann eine ähnliche Prüfung verwendet werden, um Metadaten für die mobile App zu generieren. In diesem Fall können die Metadaten in der App verwendet werden, um ein Alarmsymbol festzulegen, das ein vom Sensor erkanntes Problem anzeigt (Abbildung 11).
Abbildung 11: DK IoT Studio unterstützt ausgefeiltere Vorgänge in der Cloud und in der mobilen App, so etwa diese Bedingungsprüfung zur Festlegung von Status-Metadaten für die App und die Beibehaltung der Daten im Cloud-Speicher. (Bildquelle: DigiKey)
Die Ausführung des zugrunde liegenden Codes für das Umschalten der LED folgt einer Reihe von Aufrufen, die mit dem Aufruf einer übergeordneten Funktion beginnt, die mit diesem Ereignis in der zugrunde liegenden Umgebung verknüpft ist. Diese Funktion – SetPinState – ist ein während der Initialisierung festgelegter Funktionszeiger, der auf eine untergeordnete Funktion – ATMO_ONSEMI_GPIO_SetPinState() – zeigt, von der die erforderliche Funktionalität implementiert wird, die schlussendlich eine RSL10-SDK-Bibliotheksfunktion – Sys_DIO_Config() – von ON Semiconductor aufruft, die den angegebenen Pin festlegt (Listing 3).
Kopieren
ATMO_GPIO_Status_t ATMO_GPIO_SetPinState( ATMO_DriverInstanceHandle_t instance, ATMO_GPIO_Device_Pin_t pin,
ATMO_GPIO_PinState_t state )
{
if ( !( instance < numberOfGPIODriverInstance ) )
{
return ATMO_GPIO_Status_Invalid;
}
return gpioInstances[instance]->SetPinState( gpioInstancesData[instance], pin, state );
}
Listing 3: DK IoT Studio stellt eine Reihe gebräuchlicher Abstraktionen zur Verfügung, die in tiefer liegenden Serviceschichten realisiert werden und die hardwarespezifische Vorgänge wie das Festlegen von GPIO-Bits implementieren. (Codequelle: DigiKey)
Für seine Benutzerfreundlichkeit bietet DK IoT Studio eine überaus flexible Entwicklungsumgebung. Entwickler können auf den vorhandenen EEL-Code eines Elements vertrauen oder ihn entsprechend den Anforderungen ihrer Anwendung bearbeiten. Während der Entwicklung bietet die Registerkarte für eine Komponente in DK IoT Studio einen Bereich mit zugrunde liegendem Hochsprachen-Code, der mit den auf der Leinwand der Registerkarte platzierten Elementen verknüpft ist (siehe Abbildung 7). Für Anwendungen, die eine spezielle Behandlung erfordern, können die Entwickler den Code unmittelbar in diesem Bereich bearbeiten. Andere Fähigkeiten, z. B. ein „Funktionselement“, fügen dem Code eine leere Funktionsdefinition hinzu, die es den Entwicklern ermöglicht, die Ausführung um in der Umgebung vorhandene Funktionen zu ergänzen.
In der Praxis kombiniert der Ansatz von DK IoT Studio die Einfachheit der codefreien Drag-and-Drop-Entwicklung mit einer Flexibilität und Performance, die lediglich durch die zur Verfügung stehende Speichermenge und die Leistungsfähigkeit des Prozessors der zugrunde liegenden Hardwarekomponenten eingeschränkt werden. Mit diesem Ansatz und der Entwicklungskarte RSL10-SENSE-GEVK können Entwickler im Handumdrehen voll funktionsfähige Prototypen mit Gerät-zu-Cloud-Konnektivität und Unterstützung durch eine mobile App bereitstellen.
Fazit
Unterschiedliche Branchen wie Heimelektronik, Automobilbau und Industrie bringen immer neue Anwendungsmöglichkeiten für Multisensor-Komponenten hervor. Für viele dieser Anwendungen sind Bluetooth-Konnektivität und eine lange Batterielebensdauer von entscheidender Bedeutung. Dennoch benötigen die Entwickler außerdem das unterstützende Ökosystem, um mit flexiblen Designansätzen auf den fortwährenden Druck durch immer kürzere Markteinführungszeiten reagieren zu können. Um derartige Herausforderungen zu meistern, bieten das RSL10-SoC, das RSL10-SiP und die Evaluierungskarte RSL10-SENSE-GEVK von ON Semiconductor eine Reihe von Lösungen, die den Anforderungen hinsichtlich kundenspezifischem Design, integrierten Modulen bzw. vollständigen Multisensor-Lösungen gerecht werden. Mit diesen Hardwareplattformen können die Entwickler kundenspezifische Anwendungen implementieren, indem sie das RSL10-Softwareentwicklungskit und die zugehörigen Software-Distribution-Pakete verwenden.
Für die schnelle Entwicklung von Gerät-zu-Cloud-Anwendungen mit mehreren Sensoren bietet die Kombination aus der Evaluierungskarte RSL10-SENSE-GEVK von ON Semiconductor und der IDE von DK IoT Studio eine leistungsstarke Entwicklungsplattform zur schnellen Implementierung von Ultra-Low-Power-Lösungen mit mehreren Sensoren in vollständigen Gerät-zu-Cloud-Anwendungen. Gemeinsam bieten die RSL10-Hardware und die verfügbaren Softwareoptionen eine überaus flexible Plattform zur Entwicklung und Bereitstellung zertifizierter Bluetooth-Geräte, die den Anforderungen an eine lange Batterielebensdauer gerecht werden.

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.