Der Benchmark-Test IoTMark-BLE erfordert die Erstellung verschiedener Routinen (Timer/RTC, Powermanagement, UART, I2C, BLE) für das DUT, wobei die BLE-Schnittstelle den größten Aufwand erfordert.
Jeder Hersteller handhabt die BLE-Kommunikation anders, sodass man insbesondere hierfür die Unterstützung durch die Halbleiterhersteller gut gebrauchen könnte. Denn sie sollten eigentlich am besten wissen, wie ihre Controller optimal programmiert werden. Eine nicht optimale Programmierung hat einen direkten Einfluss auf die Energieaufnahme des DUT und somit auch auf das Benchmark-Ergebnis.
Als Grundlage für die Programmierung (Portierung) dient eine von EEMBC gelieferte Vorlage (Template), bestehend aus mehreren C-Routinen im »monitor«- oder »profile«-Verzeichnis (Bild 6), bei denen die leeren Funktionskörper mit den für die jeweilige Funktion notwendigen Mikrocontroller-spezifischen Instruktionen zu füllen sind.
Die Portierung in der Übersicht:
Je nach Mikrocontroller, Entwicklungsumgebung, Dokumentation und vom Hersteller zur Verfügung gestellter Software (API) ist die Programmierung mehr oder weniger aufwendig. Am einfachsten funktionierte es mit dem PSoC4 BLE von Cypress anhand der Entwicklungsumgebung PSoC Creator 4.1. Einen Wehrmutstropfen gab es hier allerdings auch, denn für I2C mussten Low-Level-Funktionen verwendet werden, weil der vorgefertigte I2C-Peripherieblock nicht funktionieren wollte, was an einer fehlerhaften API-Funktion liegt. Mit der neusten API-Version sollte dieses Problem aber behoben sein.
Die Implementierung von Peripherieblöcken wird im PSoC Creator durch einen Designer (TopDesign.cysch) grafisch unterstützt, indem die gewünschte Peripherie-Einheit auf die Oberfläche gezogen wird. Durch einen Doppelklick auf die jeweilige Einheit erscheint dann das dazugehörige Einstellungsfenster, das die hierzu notwendigen Informationen und Einstellungsmöglichkeiten bietet. Neben typischen Peripherieblöcken wie UART, GPIO oder I2C stehen auch verschiedene spezielle Funktionen für die grafische Konfigurierung zur Verfügung, etwa für das GATT-Profil (Bild 7) oder die GAP-Einstellungen, die für das BLE-Interface benötigt werden. Das GATT-Profil kann somit wie ein (komplexerer) Peripherieblock angesehen werden, was die Programmierung maßgeblich vereinfacht.
Der Autor dank Filip Hölter, Nikolai Koert und Jan Burmeister für ihre Mitarbeit an diesem Elektronik-Projekt zum Benchmark IoTMark-BLE des EEMBC.
Literatur
[1] Dembowski, K.: EEMBC-Benchmarks in der Praxis. Elektronik 2018, H. 4, S. 32 – 41, www.elektroniknet.de/elektronik/halbleiter/eembc-benchmarks-in-der-praxis-150857.html.
[2] PSoC 4 Bluetooth Low Energy (BLE) 4.1 Compliant Pioneer Kit, Cypress, www.cypress.com/documentation/development-kitsboards/cy8ckit-042-ble-bluetooth-low-energy-ble-pioneer-kit.
[3] TC35678FSG Ultra-Low Current Single-Chip Controller for Bluetooth Low Energy (4.2) With Built-In Flash ROM, Toshiba, https://toshiba.semicon-storage.com/eu/product/wireless-communication/bluetooth/tc35678.html.
[4] RSL10-002GEVB: Radio SoC evaluation board, version 1 (QFN based), On Semiconductor, www.onsemi.com/PowerSolution/evalBoard.do?id=RSL10-002GEVB.
[5] Blue Gecko BGM113 Bluetooth Low Energy Module, Silicon Labs, www.silabs.com/products/wireless/bluetooth/bluetooth-low-energy-modules/bgm113-bluetooth-low-energy-module.
[6] IoTMark-BLE an EEMBC Benchmark, www.eembc.org/iotmark/.
Der Autor
Klaus Dembowski
ist Wissenschaftlicher Angestellter im Institut für Mikrosystemtechnik an der Technischen Universität Hamburg. Sein Zuständigkeitsbereich beinhaltet die Entwicklung von Hard- und Software für Mikrosysteme mit dem Schwerpunkt Anwendungen von Energy Harvesting.
Er wurde 2011 und 2017 von der Redaktion der Elektronik für seine Fachaufsätze »Sensornetze mit energiesparender Funktechnik« und »Funkelektroden zur Messung bioelektrischer Signale: EKG ohne Kabel« als »Autor des Jahres« ausgezeichnet.
dembowski@tuhh.de