Jste zde

Rychlá implementace technologie LoRaWAN

Vzdálené senzorové aplikace vyžadují levné bezdrátové připojení s dlouhým dosahem a nízkou spotřebou energie. Tyto podmínky více splňuje technologie LoRa, než Bluetooth či Wifi. Jak technologii LoRa implementovat do zařízení, abychom získali větší dosah a rychlost přenosu?

Pro rychlý vývoj zařízení s technologií LoRa je vhodné použít hotové řešení v podobě kompletního modulu (SIP). Součástí je bohatá softwarová knihovna s podporou LoRaWAN pro rychlý vývoj požadovaného software.

IoT sítě s dlouhým dosahem

LoRa, je síť s rozprostřeným spektrem, která se vyznačuje nízkou spotřebou a dlouhým dosahem. Je přímo určena pro senzory napájené z baterií a je obzvláště vhodná pro aplikace pracující na vzdálenost mimo možnosti Wi-Fi nebo Bluetooth. Zařízení s technologií LoRa jsou schopny vydržet mnoho let i s malou baterií a spolehlivě zajišťují bezpečné připojení k velmi velkým sítím na kilometry daleko.

LoRaWAN definuje komunikační protokol a síťovou architekturu systému, zatímco fyzická vrstva LoRa umožňuje komunikační spojení na velkou vzdálenost. Protokol a síťová architektura mají největší vliv na životnost baterie, kapacitu sítě, kvalitu služeb a bezpečnost. (více informací získáte v článku: LoRaWAN Part 1: How to Get 15 km Wireless and 10-Year Battery Life for IoT). LoRaWAN pracuje v topologii typu hvězda. Využívá brány pro přenos zpráv mezi koncovými zařízeními (například IoT senzory) a hostitelským serverem (Obrázek 1).

Obrázek 1: Specifikace LoRaWAN poskytuje ověřenou, šifrovanou komunikaci mezi koncovými zařízeními a síťovými servery, které mohou posílat data do cloudu k logování či detailní analýze. (Zdroj obrázku: Aliance LoRa)

V této architektuře koncová zařízení a hostitelské servery komunikují prostřednictvím bran, která mohou být konfigurovány jako komunikační mosty. Brány používají pro komunikaci s hostitelskými servery Wi-Fi, Ethernet nebo mobilní sítě. Pro komunikaci s koncovými zařízeními (senzory) brána používá fyzickou vrstvu (PHY) od společnosti Semtech, která je spolehlivá a umožňuje komunikaci na dlouhé vzdálenosti kvůli tomu že pracuje v pásmu subGHz.  LoRaWAN chrání koncovou komunikaci šifrováním AES pomocí klíčů síťové relace nebo aplikační relace, které jsou vytvořeny během výroby, během uvedení do provozu nebo prostřednictvím OTA (over-the-air).

V síti LoRaWAN je veškerá komunikace s koncovými zařízeními obousměrná. Specifikace protokolu LoRaWAN definuje tři různé třídy koncových zařízení, které umožňují vyrovnat spotřebu energie s latencí odezvy.

  • Koncová zařízení třídy A mohou přijímat pouze během dvou krátkých oken pro příjem dat. Tato třída je vhodná pro zařízení s velmi nízkou spotřebou jako jsou například IoT senzory.
  • Třída B je třída A, které se přidá navíc přijímací okna. Tato třída je vhodná pro zařízení IoT se sníženou latencí i za cenu zvýšené spotřeby při příjmu.
  • Zařízení třídy C poskytují téměř nepřetržité přijímací okno a jsou vhodná pro použití v branách LoRaWAN.

S cílem optimalizovat zabezpečení LoRaWAN musí vývojáři najít kompromis mezi spotřebou a dosahem. Nicméně hardware a software od Microchip Technology zjednodušuje implementaci sítě LoRaWAN a poskytuje řešení pro nasazení technologie LoRa.

Integrované řešení s nízkou spotřebou

Modul  SAM R34/35 od firmy Microchip obsahuje nízkoenergetický Arm Cortex-M0 + a SX1276 transceiver, paměti Flash, RAM a speciální RAM s nízkou spotřebou (LP) a rozsáhlou sbírku periferií, které jsou potřebné v senzorových systémech (obrázek 2). Kromě vlastních konfigurovatelných logických modulů obsahuje multikanálový 12bitový analogově-digitální převodník (ADC), analogové komparátory a multifunkční sériové rozhraní, které mohou být naprogramovány jako I2C, SPI a jiné.

SAM R34 a R35 SiP se liší pouze tím, že R34 má v sobě integrováno rozhraní USB. Rozměry jsou stejné pro oba typy -  6 x 6 mm.

SAM R34 / 35 existuje ve třech různých konfiguracích paměti:

 

Obrázek 2: Technologie Microchip Technologie SAM R34 / R35 v systému kombinuje nízkoenergetické jádro procesoru Arm Cortex-M0 +, transceiver Semtech SX1276, paměť a potřebné periferie (Zdroj obrázku: Microchip Technology)

Moduly SiP jsou navržené speciálně pro Low-Power aplikace a poskytují více možností při optimalizaci spotřeby. SAM R34 / R35 lze nastavit tak, aby pracoval na dvou různých úrovních výkonu. Na vyšší výkonové úrovni PL2 pracuje jádro zařízení s nejvyšším napětím, což umožňuje zařízení pracovat při vysokých rychlostech hodin. Na nižší výkonové úrovni PL0 je základní úroveň napětí zmenšena a zároveň je zmenšena pracovní frekvence, což snižuje celkovou spotřebu energie.

Na zvolené úrovni výkonu můžeme také programově přepnout zařízení do různých režimů spánku. V klidovém režimu spotřebovává modul pouze 4,5 mA s krátkými periodami špičkové spotřeby, dosahující 28 mA pro Tx a 10,3 mA pro Rx. Lze snížit spotřebu až na 1,4 µA zvolením pohotovostního režimu, který vypne všechny hodiny a funkce kromě těch, které jsou specificky naprogramovány pro udržení jejich aktivity. Moduly navíc podporují operaci SleepWalking, která umožňuje vybraným periferiím reagovat na události nezávisle na procesoru. To znamená provádět periferní operace a probouzet procesor pouze v případě potřeby. Pro snížení výkonu během delší nečinnosti lze modul uvést do režimu hlubokého spánku, který spotřebovává pouze 790 nA.

Implementace

Implementace SAM R34/R35 SiP je jednoduchá, jelikož moduly potřebují pouze oddělovací kondenzátory a signální přepínače například SKY13373 od Skyworks Solutions a pasivní komponenty potřebné pro dokončení přenosových a přijímacích RF signálových cest (obrázek 3).

Obrázek 3: Doporučené schéma implementace SAM R34 / R35. Je potřeba několik dalších komponent, například RF přepínač SKY13373 od Skyworks Solutions. (Zdroj obrázku: Microchip Technology)

Vývojový kit DM320111 SAM R34 Xplained Pro od Microchip Technology je hotový hardware se všemi přídavnými součástkami, který je ihned připraven k použití. Díky tomuto kitu si lze okamžitě vyzkoušet SAM R34 a začít programovat vlastní aplikace ještě dříve, než bude k dispozici vlastní hardwarové řešení.

Microchip pomáhá urychlit vývoj softwaru prostřednictvím ukázkového firmwaru a softwaru, který je k dispozici s integrovaným vývojovým prostředím Atmel Studio 7. Díky integrovanému Semtech SX1276 LoRa transceiveru, fyzické vrstvy PHY a Microchip LoRaWAN Stack (MLS) (Obrázek 4) je implementace SAM R34 / R35 SiP certifikována.

Obrázek 4: Prostřednictvím API rozhraní poskytuje Microchip LoRaWAN Stack (MLS) funkce  pro MAC, PHY, ukládání, správu napájení a další. (Zdroj obrázku: Microchip Technology)

Firmware MLS je založený na Microchip Advanced Software Framework (ASF), který poskytuje drivery k jednotlivým sub-modulům, a tím poskytuje API rozhraní pro každou z jeho služeb:

  • LoRaWAN MAC poskytuje funkce vrstvy LoRaWAN MAC
  • LoRaWAN Radio Layer (TAL) poskytuje přístup k přijímači LoRa
  • Perzistentní datový server (PDS) poskytuje servisní vrstvu pro paměť Flash, což snižuje čas pro načítání parametrů služby MLS.
  • Modul Power Manager Module (PMM) obsahuje funkce pro uvedení procesoru do režimu spánku během neaktivních období
  • Hardwarová abstrakční vrstva (HAL) chrání kód před hardwarovými specifiky
  • Knihovny časovače
  • Plánovač, který přiděluje čas pro každý sub-modul, kdy má vykonávat svoji funkci

 

Pomocí funkcí API máme dokonalou kontrolu nad všemi funkcemi jednotlivých sub-modulů. Potřebujeme-li uvést celý modul do režimu spánku, stačí zavolat funkci PMM API, PMM_Sleep () se strukturou, kde je definována doba spánku, režim spánku (idle, standby, sleep, or off)) a funkce zpětného volání. (Výpis 1). V rámci aplikace by vývojáři obvykle zavolali tuto funkci po každém vykonaném úkolu, aby se modul uvedl do režimu spánku a snížila se tak celková spotřeba. ASF pracuje v nekonečné smyčce a volá požadované funkce  v předem definovaných časech (Výpis 2). Každé rozhraní MLS API poskytuje vstupní body pro funkce ve firmwaru MLS.

  .
  .
  .
/* 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
 
Výpis 1: Microchip Advanced Software Framework (ASF) poskytuje ukázkový software, který demonstruje klíčové vzory a datové struktury, jako je tato struktura používaná při uvádění modulu Microchip Technology SAM R34 / R35 do režimu spánku. (Zdroj kódu: Microchip Technology)

    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
    }
  .
  .
  .
 
Výpis 2: Ukázkový software demonstruje, jak mohou vývojáři používat několik volání API k návratu modulu Microchip Technology SAM R34 / R35 do režimu spánku během neaktivních období. (Zdroj kódu: Microchip Technology)

 

Ukázkový kód je dostupný prostřednictvím aplikace Atmel Studio 7 nebo samostatně prostřednictvím distribuce ASF, která poskytuje komplexní ukázku použití volání MLS API. Ukázka demonstruje důležité High level operace, včetně inicializace zařízení načtením dříve uložených MLS atributů a parametrů ze služby perzistentních datových serverů PDS (Výpis 3).

Další ukázkový software poskytuje sadu testovacích rutin, které umožňují zkoumat podrobné výkonnostní charakteristiky LoRaWAN. Pomocí vzorového softwaru Microchip v kombinaci s vývojovým kitem SAM R34 Xplained Pro mohou vývojáři rychle získat zkušenosti s operacemi LoRaWAN a zejména s firmwarem Microchip.

/*********************************************************************//**
\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);
    }
}
 
Výpis 3: Tento úryvek z ukázkové aplikace  Microchip ukazuje základní vzor spojený s inicializací zařízení, včetně obnovení atributů LoRaWAN, pokud jsou dostupné (PDS_IsRestorable ()) z perzistentního datového serveru PDS. (Zdroj kódu: Microchip Technology)

 

Závěr

Technologie LoRa je obzvláště vhodná pro dálkové připojení senzorů napájených bateriemi. V minulosti byl vývoj hardware i software zdlouhavý. Moduly Microchip SAM R34 / R35 SiP s integrovaným transceiverem LoRa a firmwarem účinně eliminují problémy s implementací LoRaWAN. Díky Microchip LoRaWAN podpoře lze rychle vytvořit IoT zařízení, které jsou schopny dosáhnout dlouhodobé bezpečné komunikace s hostitelskými servery a přenést data do cloudu k potřebné analýze.

Článek vyšel v originále "Accelerate Long-Range Wireless Connectivity Design with a LoRaWAN System-in-Package"  na webu DigiKey.com, autorem je Stephen Evanczuk

 

Hodnocení článku: