Vernetzte IoT-Anwendungen durch eine neue Art von Wireless-MCUs und Drahtlosmodulen

Von Europäische Herausgeber

Zur Verfügung gestellt von Europäische Fachredakteure von DigiKey

Jedes auf dem Internet of Things (IoT) basierende Geschäftsmodell erfordert eine zuverlässige und sichere drahtlose Kommunikation von der riesigen Anzahl an Edge-Knoten bis hin zu den Cloud-basierten Analysen und Steuerungsanwendungen. Dem mit dem Design von Mikrocontroller-basierten Sensoren und Aktuatoren konfrontierten Entwickler stehen eine Vielzahl von MCU-Entwicklungsplattformen und Toolchains zur Verfügung. In der Vergangenheit war die Bereitstellung der drahtlosen Kommunikation nicht so einfach. Angesichts regionaler Zulassungen für Drahtlossysteme, der Notwendigkeit, eigene validierte Drahtlosprotokoll-Stacks zu verwenden und zu erstellen, sowie der Komplexität der HF-Technik greifen Konstrukteure häufig auf vorzertifizierte Drahtlosmodule zurück, statt sich der Herausforderung zu stellen, ein eigenes diskretes Design zu entwickeln.

Eine neue Art von Wireless-MCUs und Modulen, für die kein zusätzlicher MCU-Host erforderlich ist, wird nunmehr sowohl den Anforderungen in Bezug auf Wireless-Konnektivität als auch den relativ geringen Computing-Anforderungen von IoT-Edge-Knoten gerecht. Diese eigenständigen Geräte und Module ohne Host tragen zur Beschleunigung und Vereinfachung des gesamten Designprozesses bei. Es ist jedoch nicht nur die Verfügbarkeit eines geeigneten Moduls, das die Bedürfnisse der Entwickler befriedigt. In modernen Produktentwicklungsumgebungen hat ein Entwickler von Embedded-Systemen nicht die Zeit, sich von Grund auf in den vollen Funktionsumfang des Moduls einzuarbeiten. Die Verfügbarkeit von Softwaretreibern, Code-Snippets und Evaluierungsplattformen ist in zunehmendem Maße ebenso wichtig wie die Funktionen des Geräts. Je schneller ein Entwickler die Kommunikation zwischen Gerät und Cloud herstellen kann, desto schneller kann es auf den Markt gebracht und ein kommerzieller Erfolg werden.

Ein Beispiel für eine Wireless-MCU, die alle Punkte erfüllt, ist die CC3200 SimpleLink™-Serie von Texas Instruments. Ergänzt werden die SimpleLink-Geräte durch ein vollständiges Ökosystem an Evaluierungskarten, Codebeispielen und ein umfassendes SDK. Die in verschiedenen Gehäusgrößen erhältliche CC3200 verfügt über einen 80 MHz ARM® Cortex®-M4-Mikrocontroller mit einem Wi-Fi-Netzwerkprozessor-Subsystem mit 802.11 b/g/n. Dieses zweite Subsystem verfügt über einen eigenen dedizierten ARM MCU-Kern, der die Anwendungs-MCU um alle WiFi-Kommunikations-Stacks entlastet.

Blockschaltbild der Texas Instruments CC3200-Hardware – Überblick

Abbildung 1: Blockschaltbild zum Überblick über die CC3200 Hardware.

Die für Batterie-basierte IoT-Designs optimierte CC3200 bietet zahlreiche weiter Funktionen wie etwa Batteriemanagementfunktionen und eine Vielzahl an Peripherieschnittstellen einschließlich GPIO, UART, SPI, PWM und einen 12-Bit-ADC mit 8 Kanälen. Die Hauptfunktionen sind in Abbildung 1 dargestellt. Mit 256 KB RAM verfügt die CC3200 außerdem über eine Hardware-Verschlüsselungs-Engine mit 256 Bit zur schnellen AES-, DES- und 3DES-Verschlüsselung sowie über SHA2- und MD5-Authentifizierung. Durch ihr eigenes Subsystem zur Energieverwaltung mit integrierten DC/DC-Wandlern eignet sie sich nicht nur für viele verschiedene Versorgungsspannungen, sondern auch zur Steuerung der Modi mit geringem Stromverbrauch, wobei sie beim geringsten Stromverbrauch in den Hibernate-Modus schaltet und das RTC weiterhin läuft. In diesem Modus verbraucht die CC3200 weniger als 4 μA.

Bild der eingebetteten Software der CC3200 von Texas Instruments – Überblick

Abbildung 2: Überblick über die eingebettete Software der CC3200.

In Abbildung 2 sind die Funktionen der eingebetteten Software der CC3200 zu sehen. Das Wi-Fi-Subsystem unterstützt Stations-, Access-Point- und Wi-Fi-Direct-Modi, die Sicherheitsmodi WPA2 Personal und Enterprise sowie WPS 2.0. TCP/IP-, TLS/SSL- und HTTP-Server-Stacks sind auf dem Chip integriert.

Der volle Funktionsumfang der CC3200 ist in Abbildung 3 zu sehen. Sie zeigt die GPIO und die Peripherieschnittstellen, die Energieverwaltung und die relativ geringe Anzahl an zusätzlich erforderlichen passiven Komponenten.

Funktionsblockschaltbild der CC3200 von Texas Instruments (klicken für Vollbild)

Abbildung 3: Funktionsblockschaltbild der CC3200.

Wie durchdacht an das Design der CC3200 herangegangen wurde lässt sich erkennen, wenn man das Pin-Multiplexing der Komponente genauer betrachtet. Pin-Multiplexing ist eine beliebte Möglichkeit, um eine große Anzahl an Peripherieschnittstellenfunktionen auf der kleinstmöglichen Gehäusegröße unterzubringen. Mit Pin-Multiplexing ist es möglich, den Peripheriesatz bestimmten Pins zuzuordnen. Möglich wird Pin-Multiplexing durch eine Kombination von Hardwarekonfiguration und Registersteuerung. Alle Details dieses Prozesses sowie die verfügbaren Zuordnungsoptionen sind im Datenblatt zur TI CC3200 dokumentiert. Als Hilfe für den Designprozess hat TI für verschiedene Anwendungsszenarien eine Tabelle mit empfohlenen Konfigurationen für das Pin-Multiplexing erstellt (Abbildung 4). So lässt sich das Design bereits frühzeitig auf eine Vielzahl von Anwendungen abstimmen, indem der Peripheriesatz und die verfügbare Pinbelegung in vollem Umfang genutzt wird.

Empfohlene Pinbelegungen für die CC3200 – Beispiele(1)
  Systeme zur Heimsicherung, High-End-Spielzeuge Wi-Fi-Audio ++ Industrial Sensor-Tag Systeme zur Heimsicherung, Spielzeuge Wi-Fi-Audio ++ Industrial Wi-Fi-Remote mit 7x7-Tastenfeld und Audio Sensorgesteuertes Türschloss, Feuermelder, Spielzeuge ohne Kamera Industrielle Unterhaltungselektronik Industrielle Hausgeräte, industrielle Stecker „Industrielle Hausgeräte“ GPIOs
Extern mit 32 kHz(2) Extern mit 32 kHz(2)               Externer TCXO mit 40 MHz (-40 bis 85 °C)  
Cam + I2S (Tx oder Rx) + I2C + SPI + SWD + UART-Tx + (App-Logger) 2 GPIO + 1 PWM + *4 überlagerter Wakeup aus Ruhezustand I2S (Tx oder Rx) + 1-Kanal ADC + 1x 4-Draht UART + 1x 2-Draht UART + 1 Bit SD-Karte + SPI + I2C + SWD + 3 GPIO + 1 PWM + 1 GPIO mit Wakeup aus Ruhezustand I2S (Tx oder Rx) + 2-Kanal ADC + 2-Draht UART + SPI + I2C + SWD + 2 PMW + 6 GPIO + 3 GPIO mit Wakeup aus Ruhezustand Cam + I2S (Tx oder Rx) + I2C + SWD + UART-Tx + (App-Logger) 4 GPIO + 1 PWM + *4 überlagerter Wakeup aus Ruhezustand I2S (Tx und Rx) + 1-Kanal ADC + 1x 2-Draht UART + 1 Bit SD-Karte + SPI + I2C + SWD + 4 GPIO + 1 PWM + 1 GPIO mit Wakeup aus Ruhezustand I2S (Tx und Rx) + 1-Kanal ADC + UART (nur Tx) I2C + SWD + 15 GPIO + 1 PWM + 1 GPIO mit Wakeup aus Ruhezustand I2S (Tx und Rx) + 2-Kanal ADC + 2-Draht UART + SPI + I2C + 3 PMW + 3 GPIO mit Wakeup aus Ruhezustand + 5 GPIO SWD + 4-Kanal ADC + 1x 4-Draht UART + 1x 2-Draht UART + SPI + I2C + SWD + 1 PWM + 6 GPIO + 1 GPIO mit Wakeup aus Ruhezustand aktiviert für ext. TCXO mit 40 MHz 3-Kanal ADC + 2-Draht UART + SPI + I2C + SWD + 3 PWM + 9 GPIO + 2 GPIO mit Wakeup aus Ruhezustand 2-Kanal ADC + 5-Draht UART + I2C + SWD + 3 PWM + 11 GPIO + 2 GPIO mit Wakeup aus Ruhezustand  
Pin-Nummer Pinbelegung Nr. 11 Pinbelegung Nr. 10 Pinbelegung Nr. 9 Pinbelegung Nr. 8 Pinbelegung Nr. 7 Pinbelegung Nr. 6 Pinbelegung Nr. 5 Pinbelegung Nr. 4 Pinbelegung Nr. 3 Pinbelegung Nr. 2 Pinbelegung Nr. 1

Abbildung 4: Empfohlene Konfigurationen für das Pin-Multiplexing für die CC3200.

Wenn Sie die Komponente CC3200 in Ihre Anwendung integrieren möchten, stehen Ihnene hierfür zahlreiche Entwicklungsoptionen zur Verfügung. Neben dem Design einer eigenen Platine für die Anwendung könnten Sie sich für das kompakte CC3200-Modul entscheiden, das eine abgeschirmte CC3200, zugehörige passive Komponenten, Kristalle und eine Chip-Antenne umfasst und lediglich 20,5 mm x 17,5 mm x 1,5 mm misst.

Beim Prototyping des CC3200-Moduls unterstützt Sie die CC3200 LaunchPad XL Evaluierungskarte (Abbildung 5). Die Karte, die über USB direkt mit einem PC verbunden werden kann und JTAG-Emulation für die Flash-Programmierung bietet, verfügt über eine Auswahl an Benutzer-LEDs und -Drucktasten, einen Beschleunigungsmesser und einen Temperatursensor.

Bild der CC3200 LaunchPad XL Evaluierungskarte von Texas Instruments

Abbildung 5: Die CC3200 LaunchPad XL Evaluierungskarte.

TI stellt für die SimpleLink-Familie diverse Ressourcen zur Verfügung, unter anderem Produktseiten, eine Wiki zur Softwareentwicklung und Informationsseiten zu den Partnern beim Cloud-Ökosystem. Das SDK zu SimpleLink kann über die Wiki heruntergeladen werden und enthält zahlreiche Beispielanwendungen, Quellcode für Anwendungen und technische Informationen. TI empfiehlt eine Reihe von in der Branche anerkannten IDEs zur Verwendung mit dem SDK, und zwar Code Composer Studio von TI selbst sowie IAR Workbench. Include- und Header-Dateien sowie GCC make-Skripts und weitere Bibliotheksfunktionen. Die Codebeispiele sind umfassend dokumentiert inklusive einer Beschreibung der Anwendung, wichtiger konfigurierbarer Parameter und der Funktionsweise. Für jedes Beispiel sind Quellcode und Header-Dateien in C enthalten. Ein Beispiel demonstriert die Kommunikation der CC3200 mit der Website „openweahtermap.org“, um von dort das Wetter für eine bestimmte Stadt abzurufen und auf einem angeschlossenen Hyperterminal anzuzeigen.  Die Ausgabe für dieses Beispiel ist in Abbildung 6 zu sehen.

Bild der Anwendung CC3200 Get Weather

Abbildung 6: Die Ausgabe der Anwendung CC3200 Get Weather.

Weitere Codebeispiele behandeln die Implementierung einer MQTT-Client-/Server-Anwendung, eine E-Mail-Demo sowie ein sensorbasiertes Design, die den Hibernate-Modus in vollem Umfang nutzt.

Die Anwendungsbeispiele im SDK der CC3200 konzentrieren sich auf die Verwendung von C/C++. Es stehen jedoch genügend andere Optionen zur Verfügung. Einer dieser Alternativen ist MicroPython. MicroPython basiert auf der interpretierten Programmiersprache Python 3. Sie ist das Resultat einer erfolgreichen Kickstarter-Kampagne und ist zur Verwendung für Mikrocontroller optimiert. Eine netzwerkfähige Version von MicroPython, die die Komponente CC3200 vollständig unterstützt, kann auf dieser Website heruntergeladen werden.

Der CC3200 SimpleLink-Ansatz zur Bereitstellung von WiFi-Kommunikation und einem Anwendungsprozessor erfährt am IoT-Markt breite Unterstützung. Ein entsprechendes Beispiel von IBM ist die Verbindung einer CC3200 LaunchPad-Karte mit der Watson-IoT-Foundation-Platform unter Verwendung von MQTT. Weitere Partner bei Cloud-Plattformen sind Temboo und Xively.

Eine weitere Familie vorzertifizierter, eigenständiger WiFi-Module ist die Serie Bluegiga WF121 von Silicon Labs (Abbildung 7). Wie die CC3200 auch umfasst sie zwei Hauptbestandteile, und zwar einen 32-Bit-Mikrocontroller aus der Serie PIC32 von Microchip mit 80 MHz und einen dem 802.11 b/g/n-Standard entsprechenden 2,4-GHz-Sender. Alle Details zu dieser Serie zusammen mit Leitfäden und Anwendungsbeispielen finden Sie hier.  

Bild des Moduls Silicon Labs Bluegiga WF121

Abbildung 7: Ein Bild des Moduls Silicon Labs Bluegiga WF121.

Die Kommunikation zwischen Host und Wireless-Transceiver erfolgt über UART, USB oder SPI (siehe Abbildung 8). Die Softwarearchitektur ist in der Abbildung ebenfalls dargestellt. Obwohl zur Programmierung von Anwendungen für den Mikrocontroller die BGLib ANSI-C-Host-Bibliothek verwendet werden kann, ist es ebenfalls möglich, die Skriptsprache BGScript von Bluegiga zu verwenden. Die auf einer BASIC-artigen Programmierstruktur basierende Sprache stellt eine einfache und schnell zu erlernende Möglichkeit zur Erstellung ziemlich komplexer und leistungsstarker Anwendungen dar. Die Sprache bietet Befehle und Funktionen zur Einrichtung und Verwaltung von Drahtlosverbindungen, Sicherheitslösungen, Datenübertragungen und Interaktionen mit den verfügbaren Peripheriegeräten, GPIO, SPI, I2 usw.

Bild der Softwareumgebung Silicon Labs Bluegiga

Abbildung 8: Die Softwareumgebung Bluegiga.

BGScript kann auch für die gesamte eigenständige Bluegiga-Modulfamilie verwendet werden, einschließlich derer mit Bluetooth-Konnektivität. Abbildung 9 zeigt ein kurzes Codebeispiel in BGScript, mit dem der ADC des Moduls ausgelesen wird.

Bild eines Beispiels in BGScript zum Auslesen des ADC

Abbildung 9: Das Bild eines Beispiels in BGScript zum Auslesen des ADC.

Die Bluegiga DKWF121 ist eine Evaluierungskarte für das Prototyping eigenständiger WiFi-Designs, die das WF121-Modul verwenden. Die Karte bietet alle vefügbaren Pinbelegungen des Moduls, wodurch sie problemlos mit Versuchsdesigns verbunden werden kann. Alle GPIO-Pins befinden sich auf Pads um einen großflächigen Prototyping-Bereich herum. Eine hilfreiche Katalogseite mit allen einführenden Informationen zum DKWF121 finden Sie online auf der Website von DigiKey.

Wie bereits erwähnt umfasst die Bluegiga-Familie auch eigenständige Bluetooth-Module wie etwa das BLE113. Die Anwendungsentwicklung mit der Sprache BGScript, die für kleine batteriebetriebene Anwendungen und Zubehör vorgesehen ist, stellt eine extrem bequeme und benutzerfreundliche Möglichkeit zur Herstellung einer Verbindung und zur Datenübertragung dar. Die Bluegiga-Produktreihe erfreut sich bei IoT-Entwicklern und in der Hersteller-Community großer Beliebtheit, was dazu geführt hat, dass auch Bibliotheken zur Unterstützung anderer Entwicklungssprachen wie bglib für Node.js und bgapi_py für Python zur Verfügung stehen. Abbildung 10 zeigt, wie einfach mit der Node.js-Bibliothek die separaten Variablen eingehender Bluetooth-Daten analysiert werden können.

Bild zur Analyse eingehender Bluetooth-Daten

Abbildung 10: Analyse eingehender Bluetooth-Daten mit der BGLib-Bibliothek für Node.js auf dem Bluegiga BLE113-Modul.

Die Verwendung eines vorzertifizierten Moduls beschleunigt das Design einer IoT-Anwendung erheblich, doch mit einem eigenständigen Drahtlosmodul können sowohl der gesamte Designprozess weiter vereinfacht als auch die insgesamten Stückkosten gesenkt werden. Entwicklern von Embedded-Systemen, die sich mit diesem Ansatz beschäftigen, wird empfohlen, nicht nur die Hardware zu begutachten, sondern sich auch mit der Vielzahl an Softwaretools, der Flexibilität bezüglich der Programmiersprache und den verfügbaren Anwendungsbeispielen zu befassen. Dieser Ansatz ermöglicht die schnelle Markteinführung eigenständiger IoT-Geräte und schont Design-Ressourcen und Budget.

 
DigiKey logo

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.

Über den Autor

Europäische Herausgeber

Über den Verlag

Europäische Fachredakteure von DigiKey