Beschleunigung der Entwicklung für die drahtlose Vernetzung über lange Strecken mit einem LoRaWAN-SiP (System-in-Package)

Von Stephen Evanczuk

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von Digi-Key

Bei Fernerfassungsanwendungen, die kostengünstige, drahtlose Vernetzung mit hoher Reichweite und geringer Leistungsaufnahme erfordern, hat sich die LoRa-Technologie gegen Alternativen wie Bluetooth und Wi-Fi durchgesetzt. Allerdings kämpfen die Entwickler noch mit den Feinheiten des HF-Designs. Die Herausforderung besteht darin, kostengünstig und schnell LoRa-Systeme zu implementieren, mit denen sich Reichweite und Datenraten maximieren lassen, ohne die begrenzten Leistungsbudgets typischer IoT-Systeme zu sprengen.

Zur Beschleunigung der Entwicklung von LoRa-basierten Systemen haben Komponentenanbieter komplette SiP-Module (System-in-Package) und die zugehörige LoRaWAN-Software als sofort einsatzbereite Lösungen für die Vernetzung über lange Strecken entwickelt.

In diesem Artikel wird zunächst kurz das LoRa-Konzept erläutert. Dann werden geeignete Hardware- und Softwarelösungen vorgestellt. Ferner wird beschrieben, wie Entwickler diese für die schnelle Implementierung ihrer Entwürfe nutzen können.

IoT-Netzwerke mit großer Reichweite

LoRa steht für „Long Range“ (große Reichweite) und definiert eine extrem effiziente, kostengünstige, energiesparende, proprietäre Spread-Spectrum-Funktechnik. Weil sie batteriebetriebene Sensoren und andere Anwendungen mit geringer Leistungsaufnahme unterstützt, eignet sie sich besonders gut für IoT-Anwendungen, die außerhalb der WLAN- oder Bluetooth-Reichweite arbeiten. LoRa-basierte Systeme können jahrelang mit einer kleinen Batterie betrieben werden und bieten die zuverlässige Anbindung an sehr große Netzwerke mit einer Ausdehnung von mehreren Kilometern.

LoRaWAN ist eine MAC-Schicht (Media Access Control) über der LoRa-Funkschnittstelle, die den Netzwerkbetrieb definiert und die Datenraten festlegt (in der Regel bis zu 50 Kbit/s) (siehe LoRaWAN, Teil 1: Wie sich 15 km Funkreichweite und eine Batterielebensdauer von 10 Jahren für IoT realisieren lassen). Die LoRaWAN-Architektur arbeitet mit einer sternförmigen Netzwerktopologie und nutzt Gateways, um Datenpakete zwischen mehreren Endgeräten wie IoT-Sensoren und Host-Servern zu übertragen (Abbildung 1). Eine LoRa-Funkanbindung kann separat genutzt werden – mit einer alternativen MAC-Schicht zu LoRaWAN. Die Schnittstelle ist dann aber nicht kompatibel mit der LoRaWAN-Spezifikation.

Bild von der LoRaWAN-Spezifikation

Abbildung 1: Die LoRaWAN-Spezifikation bietet die authentifizierte, verschlüsselte Datenübertragung zwischen Endgeräten und Netzwerkservern unter Verwendung von Gateways zur Überbrückung großer Reichweiten für die Anbindung an Endgeräte und die Weitbereichsvernetzung mit Netzwerk-Hosts in der Cloud oder dedizierten Umgebungen. (Bildquelle: LoRa Alliance)

In dieser Architektur kommunizieren Endgeräte und Host-Server über Gateway-Geräte, die so konfiguriert werden können, dass sie einfach als Kommunikationsbrücken dienen. Für die Kommunikation mit Host-Servern nutzt das Gateway herkömmliche Vernetzungsoptionen wie Wi-Fi, Ethernet oder Mobilfunk. Für die Kommunikation mit Endgeräten bedient sich das Gateway der Fähigkeit der proprietären, physischen Semtech-LoRa-Schicht (PHY), um über Sub-Gigahertz-Bänder eine zuverlässige Vernetzung über große Reichweiten zu realisieren. In beiden Fällen schützt LoRaWAN die Ende-zu-Ende-Kommunikation mit AES-Verschlüsselung unter Verwendung von Netzwerksitzungs- oder Anwendungssitzungsschlüsseln, die während der Herstellung, während der Inbetriebnahme oder per OTA-Aktivierung (Over-the-Air) erzeugt werden können.

In einem LoRaWAN-Netzwerk ist die gesamte Kommunikation mit den Endgeräten bidirektional. Die LoRaWAN-Protokollspezifikation definiert jedoch drei verschiedene Endgeräteklassen, mit denen Entwickler im Grunde einen Kompromiss zwischen Leistungsaufnahme und Reaktionslatenz finden können. Klasse-A-Endgeräte können nur in zwei kurzen Downlink-Empfangsfenstern direkt nach jeder eigenen Übertragung Daten empfangen. Durch Limitierung der aktiven Empfängerzeiten eignen sich Klasse-A-Geräte gut für Geräte mit beschränkter Leistungsaufnahme wie IoT-Sensoren. Klasse B kombiniert Klasse A mit zusätzlichen Empfangsfenstern. Diese Klasse eignet sich für IoT-Aktuatoren, die mit geringerer Latenz auf Host-Anfragen reagieren müssen, selbst wenn dadurch die Rx-Leistungsaufnahme steigt. Klasse-C-Geräte bieten nahezu durchgängig offene Empfangsfenster und eignen sich gut für den Einsatz in LoRaWAN-Gateways.

Die Versuche von Entwicklern, die Sicherheit, Leistungsaufnahme und Vernetzung über große Reichweiten zu optimieren, können sich als zeitaufwendig erweisen, weil bei der Konfiguration der Hardwareplattform und der Softwaresysteme eine Vielzahl von Details zu beachten ist. Hardware und Software von Microchip Technology vereinfacht jedoch die Implementierung von LoRaWAN-Netzwerken, weil sie eine mit nur wenigen Schritten einsatzfertige Lösung für den Einsatz von LoRa-Technologie bietet.

Integrierte Lösung mit niedriger Leistungsaufnahme

Die SiP-Module (System-in-Package) des Typs SAM R34/35 von Microchip kombinieren einen energiesparenden Arm® Cortex®-M0+, einen Semtech-SX1276-Transceiver, Flash, RAM, speziellen LP-RAM (Low Power) und eine Vielzahl der Peripheriegeräte, wie sie für Sensorsysteme normalerweise benötigt werden (Abbildung 2). Neben den frei konfigurierbaren Logikmodulen umfasst der SAM 34/35 einen Mehrkanal-12-Bit-AD-Wandler (analog zu digital), analoge Komparatoren sowie mehrere Module für die serielle Kommunikation, die so programmiert werden können, dass sie I2C, SPI und andere serielle Schnittstellen unterstützen. Die SAM R34- und R35-SiPs unterscheiden sich lediglich darin, dass der R35 keine USB-Schnittstelle bietet, die beim R34 inbegriffen ist. Abgesehen von diesem Unterschied sind die 6 x 6 Millimeter (mm) messenden SAM R34/35-Module in drei verschiedenen Speicherkonfigurationen identisch:

Abbildung vom SiP-Modul SAM R34/R35 von Microchip Technology

Abbildung 2: Das SiP-Modul SAM R34/R35 von Microchip Technology kombiniert einen energiesparenden Prozessorkern des Typs Arm Cortex-M0+, einen Semtech-SX1276-Transceiver, Speicher und mehrere Peripheriegeräte, jedoch beim SAM R35 keinen USB-Anschluss. (Bildquelle: Microchip Technology)

Die SiP-Module wurden speziell für Anwendungen mit geringer Leistungsaufnahme entwickelt und bieten mehrere über Software wählbare Optionen, um die Leistung bei geringerer Funktionsaktivität zu reduzieren. Entwickler können festlegen, dass der SAM R34/R35 auf zwei verschiedenen Leistungsstufen operiert. Auf der höheren Leistungsstufe (PL2) arbeitet der Gerätekern mit der höchsten Spannung. Dadurch kann das Gerät mit hohen Taktraten betrieben werden. Auf der niedrigeren Leistungsstufe (PL0) wird der Spannungspegel des Kerns mit reduzierter Betriebsfrequenz skaliert. Dadurch sinkt die Gesamtleistungsaufnahme.

Auf der gewählten Leistungsstufe können Entwickler das Gerät zudem programmgesteuert in verschiedene Betriebsmodi umschalten. Im Leerlaufmodus nimmt das Modul nur 4,5 Milliampere (mA) auf – bei kurzzeitigen Aufnahmespitzen von bis zu 28 mA beim Tx und 10,3 mA beim Rx. Entwickler können die Leistungsaufnahme des Moduls auf 1,4 Mikroampere (µA) sinken lassen, indem sie das Modul auf Standby setzen. Dadurch werden alle Taktgeber und Funktionen mit Ausnahme derer abgeschaltet, die extra so programmiert sind, dass sie ihre Aktivität aufrechterhalten. Darüber hinaus unterstützen die Module den SleepWalking-Betrieb, in dem ausgewählte Peripheriegeräte unabhängig vom Prozessor auf Ereignisse reagieren, Peripherievorgänge ausführen und den Prozessor bedarfsabhängig aktivieren können. Um die Leistungsaufnahme bei längerer Inaktivität zu reduzieren, können Entwickler das Modul in den Schlafmodus versetzen, in dem nur 790 Nanoampere (nA) benötigt werden. Mikrochip warnt davor, das Gerät aufgrund von Metastabilitätsproblemen infolge einer hohen Impedanz auf dem internen SPI-Bus in den ausgeschalteten Zustand zu versetzen.

Implementierung von Designs

Dank der Integrationsfunktionen der Module sind die Anforderungen an die Hardwareschnittstelle simpel. Außer Entkoppelkondensatoren beim SAM R34/R35 SiP müssen Entwickler nur einen Signalschalter wie den SKY13373 von Skyworks Solutions und die passiven Komponenten ergänzen, die für das Senden und Empfangen der HF-Signalwege benötigt werden (Abbildung 3).

Abbildung vom Modul SAM R34/R35 von Microchip Technology (zum Vergrößern anklicken)

Abbildung 3: Bei einem SAM R34/R35-Modul von Microchip Technology müssen Entwickler neben den für den HF-Signalweg benötigten Komponenten und einem entsprechenden HF-Schalter wie den SKY13373 von Skyworks Solutions nur einige zusätzliche Komponenten ergänzen. (Bildquelle: Microchip Technology)

Selbst diese einfachen zusätzlichen Hardwareanforderungen erübrigen sich bei Verwendung des SAM R34 Xplained Pro-Evaluierungskits DM320111 von Microchip Technology. Mit ihm können Entwickler ohne weitere Zwischenschritte mit der Evaluierung des SAM R34 oder eines erweiterten Hardware-Referenzdesigns für ihre Geräte beginnen.

Zudem beschleunigt Microchip die Softwareentwicklung durch eine Kombination aus Firmware für das SAM R34/R35-Modul und Beispielsoftware, die über die integrierte Entwicklungsumgebung Atmel Studio 7 zur Verfügung gestellt wird. Aufbauend auf dem integrierten LoRa-Transceiver SX1276 von Semtech und PHY bieten die SAM R34/R35-SiPs über ihren integrierten LoRaWAN-Stack von (MLS) von Microchip eine zertifizierte LoRaWAN-Implementierung (Abbildung 4).

Abbildung vom LoRaWAN-Stack (MLS) von Microchip

Abbildung 4: Über einen Satz von APIs (Application Programming Interfaces) bietet der LoRaWAN-Stack (MLS) von Microchip den Entwicklern Firmware-Dienste für MAC, PHY, persistente Speicherung, Energiemanagement und mehr. (Bildquelle: Microchip Technology)

Die MLS-Firmware basiert auf dem Advanced Software Framework (ASF) von Microchip für Gerätetreiber und Kernmodule und bietet APIs für jeden ihrer Dienste, darunter:

  • LoRaWAN MAC zur Bereitstellung der Funktionen der LoRaWAN-MAC-Schicht
  • LoRaWAN Radio Layer (TAL) zur Bereitstellung des Zugangs zum LoRa-Transceiver
  • Persistent Data Server (PDS) zur Bereitstellung einer Dienstschicht zum Flash-Speicher, was die Zugriffszeit und die Zugriffszyklen für das Abrufen von MLS-Parametern reduziert
  • Power Manager Module (PMM) für das Setzen des Prozessors in den Schlafmodus bei Inaktivität
  • Hardware Abstraction Layer (HAL) zur Abschirmung von Code vor Hardwarespezifika
  • Timer-Bibliotheken
  • Scheduler, der den verschiedenen Modulen Prozessorressourcen zuweist

Mithilfe von API-Funktionen können Entwickler jeden Funktionsaspekt des Moduls genau steuern. Um das Modul in den Ruhemodus zu setzen, rufen die Entwickler beispielsweise die PMM-API-Funktion PMM_Sleep() mit einer Anforderungsstruktur auf, die Ruhezeit, Ruhemodus (Leerlauf, Standby, Schlaf oder Aus) sowie eine Beendigungs-Rückruffunktion umfasst (Listing 1). Innerhalb einer Anwendung rufen Entwickler diese Funktion normalerweise nach jeder Aufgabe auf. Die ASF-Distribution von Microchip umfasst beispielsweise eine Beispiel-Endgeräteanwendung, die diesen Ansatz im Rahmen einer Endlosschleife (Listing 2) nutzt. Jede MLS-API bietet ähnliche Eintrittspunkte in MLS-Firmware-Dienste.

Kopieren
/* Structure of sleep request */
typedef struct _PMM_SleepReq_t
{
       /* Sleep time requested to PMM. Unit is milliseconds */
       uint32_t sleepTimeMs;
    /*  Sleep Modes */
       HAL_SleepMode_t sleep_mode;
       /* Callback from sleep request */
       void (*pmmWakeupCallback)(uint32_t sleptDuration);
} PMM_Sleep

Listing 1: Die ASF-Distribution von Microchip (Advanced Software Framework) bietet eine Beispielsoftware, die wichtige Designmuster und Datenstrukturen demonstriert, z. B. folgende, mit der das SAM R34/R35-Modul von Microchip Technology in den Ruhezustand gesetzt wird. (Codequelle: Microchip Technology)

Kopieren
  .
  .
  .
    while (1)
    {
              serial_data_handler();
        SYSTEM_RunTasks();
#ifdef CONF_PMM_ENABLE
        if (false == certAppEnabled)
        {
            if(bandSelected == true)
            {
                PMM_SleepReq_t sleepReq;
                /* Put the application to sleep */
                sleepReq.sleepTimeMs = DEMO_CONF_DEFAULT_APP_SLEEP_TIME_MS;
                sleepReq.pmmWakeupCallback = appWakeup;
                sleepReq.sleep_mode = CONF_PMM_SLEEPMODE_WHEN_IDLE;
                if (CONF_PMM_SLEEPMODE_WHEN_IDLE == SLEEP_MODE_STANDBY)
                {
                    deviceResetsForWakeup = false;
                }
                if (true == LORAWAN_ReadyToSleep(deviceResetsForWakeup))
                {
                    app_resources_uninit();
                    if (PMM_SLEEP_REQ_DENIED == PMM_Sleep(&sleepReq))
                    {
                        HAL_Radio_resources_init();
                        sio2host_init();
                        /*printf("\r\nsleep_not_ok\r\n");*/
                    }
                }
            }
        }
#endif
    }
  .
  .
  .

Listing 2: Microchip-Beispielsoftware veranschaulicht, wie sich ein SAM R34/R35-Modul von Microchip Technology bei Inaktivität mit einigen API-Aufrufen in einen energiesparenden Modus setzen lässt. (Codequelle: Microchip Technology)

Beispielcode, der über Studio 7 oder gesondert über die ASF-Distribution verfügbar ist, bietet eine umfassende Demonstration der Verwendung von MLS-API-Aufrufen bei der Implementierung einer LoRaWAN-Anwendung. Eine Demonstration der Endgeräte-Implementierung veranschaulicht wichtige Operationen auf hoher Ebene, darunter die Initialisierung eines Gerätes durch Abruf zuvor gespeicherter MLS-Attribute und -Parameter vom PDS-persistenten Datenserverdienst (Listing 3). Weitere Beispielsoftware bietet eine Suite mit Testroutinen, die es Entwicklern ermöglicht, detaillierte LoRaWAN-Leistungsmerkmale und die MLS-API-Aufrufe für die Extraktion dieser Werte zu untersuchen. Unter Verwendung der Microchip-Softwarebeispiele in Kombination mit dem Evaluierungskit SAM R34 Xplained Pro können sich Entwickler schnell mit den LoRaWAN-Vorgängen im Allgemeinen und dem Microchip-Firmwaredienst im Speziellen vertraut machen.

Kopieren
/*********************************************************************//**
\brief    Initialization the Demo application
*************************************************************************/
void mote_demo_init(void)
{
    bool status = false;
    /* Initialize the resources */
    resource_init();
       /* Read DEV EUI from EDBG */
       dev_eui_read();
       startReceiving = false;
    /* Initialize the LORAWAN Stack */
    LORAWAN_Init(demo_appdata_callback, demo_joindata_callback);
    printf("\n\n\r*******************************************************\n\r");
    printf("\n\rMicrochip LoRaWAN Stack %s\r\n",STACK_VER);
    printf("\r\nInit - Successful\r\n");
 
    status = PDS_IsRestorable();
    if(status)
    {
        static uint8_t prevBand = 0xFF;
        uint8_t prevChoice = 0xFF;
        PDS_RestoreAll();
        LORAWAN_GetAttr(ISMBAND,NULL,&prevBand);
        for (uint32_t i = 0; i < sizeof(bandTable) -1; i++)
        {
            if(bandTable[i] == prevBand)
            {
                prevChoice = i;
                break;
            }
        }
        memset(rxchar,0,sizeof(rxchar));
        sio2host_rx(rxchar,10);
        printf ("Last configured Regional band %s\r\n",bandStrings[prevChoice]);
        printf("Press any key to change band\r\n Continuing in %s in ", bandStrings[prevChoice]);
 
        SwTimerStart(demoTimerId,MS_TO_US(1000),SW_TIMEOUT_RELATIVE,(void *)demoTimerCb,NULL);
    }
    else
    {
              appTaskState = DEMO_CERT_APP_STATE;
        appPostTask(DISPLAY_TASK_HANDLER);
    }
}

Listing 3: Dieses Snippet aus einer Microchip-Endgeräte-Beispielanwendung veranschaulicht das grundlegende Designmuster im Zusammenhang mit der Initialisierung eines Gerätes, darunter die Wiederherstellung von LoRaWAN-Attributen (PDS_IsRestorable()) vom PDS-persistenten Datenserver (sofern verfügbar). (Codequelle: Microchip Technology)

Fazit

LoRa-Technologie eignet sich besonders für batteriebetriebene IoT-Sensoren mit Bedarf nach Vernetzung mit großer Reichweite. In der Vergangenheit mussten die Entwickler jedoch große Teile der Hardware- und Software-Subsysteme selbst entwickeln. Dank ihrer integrierten Hardware und Firmware entfallen bei den SAM R34/R35-SiP-Modulen von Microchip viele der detaillierten Designanforderungen der früheren Konzepte. Bei Verwendung in Kombination mit LoRaWAN-basierter Hardware und Software von Microchip können Entwickler in kurzer Zeit batteriebetriebene IoT-Geräte und energiesparende Gateways entwickeln, die eine sichere Kommunikation mit Hostservern in der Cloud oder dedizierten Umgebungen über große Reichweite ermöglichen.

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

Über den Autor

Stephen Evanczuk

Stephen Evanczuk hat mehr als 20 Jahre Erfahrung im Schreiben für und über die Elektronikindustrie zu einem breiten Spektrum von Themen wie Hardware, Software, Systeme und Anwendungen einschließlich des IoT. Er promoviertein Neurowissenschaften über neuronale Netzwerke und arbeitete in der Luft- und Raumfahrtindustrie an massiv verteilten sicheren Systemen und Methoden zur Beschleunigung von Algorithmen. Derzeit, wenn er nicht gerade Artikel über Technologie und Ingenieurwesen schreibt, arbeitet er an Anwendungen des tiefen Lernens (Deep Learning) zu Erkennungs- und Empfehlungssystemen.

Über den Verlag

Nordamerikanische Fachredakteure von Digi-Key