Bruke en global mobilradiomodul til å raskt og sikkert koble IoT-enheter til skyen

Av Jens Wallmann

Bidrag fra DigiKey's European Editors

For å koble bærbare eller eksterne nettverksenheter til tingenes Internett (IoT), eller for å styre maskiner eksternt ved hjelp av maskin-til-maskin-kommunikasjon (M2M), er mobil radiotilkobling for datautveksling via skyen et godt alternativ. Dette alternativet gir imidlertid noen utfordringer for utvikleren, for eksempel når det gjelder å fastsette hvilke trådløse nettverk som kan støtte den nødvendige datagjennomstrømningen over hele verden og hvilke protokoller det trådløse modemet må være i stand til å håndtere. Det må også tas hensyn til systemets skalerbarhet, datasikkerhet, kostnader, tiden det tar å få det endelige produktet ut på markedet, samt brukerens anskaffelses- og driftskostnader.

Denne artikkelen forklarer kort hva LTE Cat 1 tilbyr utviklere av IoT- og M2M-konstruksjoner. Den introduserer deretter radiomoduler fra u-blox LARA-R6-serien som gir universell konnektivitet og pålitelig ytelse. Artikkelen avsluttes med å vise hvordan utviklere kan bruke et evalueringskort (EVB – evaluation board) for å enkelt konfigurere og styre modulene via AT-kommandoer og generere AT-kommandostrenger via bibliotekfunksjoner.

LTE Cat 1 sammenlignet med LTE Cat 1bis, LTE Cat M og LTE Cat NB

Selv om LTE-mobilradio nå oppnår gigabit-overføringshastigheter, er LPWA-protokoller (LPWA – low-power, wide-area) som LTE Cat 1, LTE Cat 1bis, LTE Cat M og LTE Cat NB utviklet for å være spesielt effektive når det gjelder energiforbruk, nettverksressurser og kostnader. Dette er svært viktig for IoT-enheter.

Med en båndbredde på opptil 20 megahertz (MHz) i full dupleks, oppnår LTE Cat 1 nedlastingsdatahastigheter på opptil 10 megabit per sekund (Mb/s) og opplastingsdatahastigheter på opptil 5 Mb/s. To antenner aktiverer antifading (diversity) for mottakeren (Rx) for å gi bedre ytelse (tabell 1). LTE Cat 1bis bruker én antenne.

LTE Cat1/Cat 1bis LTE Cat M1 LTE Cat NB1
3GPP-utgivelse Utgivelse 8 Utgivelse 13 Utgivelse 13
Spisshastighet for nedlink 10 Mb/s 1 Mb/s 26 kb/s
Spisshastighet for opplink 5 Mb/s 1 Mb/s 66 kb/s (fler-tone)
16,9 kb/s (én-tone)
Latenstid 50 ms til 100 ms 10 ms til 15 ms 1,6 s til 10 s
Antall antenner 2 (LTE Cat 1)
1 (LTE Cat 1bis)
1 1
Dupleks-modus Full dupleks Full eller halv dupleks Halv dupleks
Mottaksbåndbredde for enhet 1,4 MHz to 20 MHz 1,4 180 kHz

Tabell 1: Ytelsessammenligning av LPWA-protokoller. LTE CAT 1 bruker to antenner for Rx-antifading. LTE Cat 1bis bruker én antenne. (Bildekilde: Wikipedia, Jens Wallmann)

LTE Cat 1-mobilradio for global tilgjengelighet

u-blox LARA-R6-serien består av robuste mobilradiomoduler som er konstruert for standardene RAT (Radio Access Technology – radiotilgang-teknologi) LTE Cat 1 FDD (Frequency Division Duplex – frekvensdeling-dupleks) og TDD (Time Division Duplex – tidsdeling-dupleks). De støtter 3G UMTS/HSPA og 2G GSM/GPRS/EGPRS som reserveløsning. Disse modulene er en utmerket løsning for global/multiregional dekning, og de kommer i en liten LGA-formfaktor som måler 26 x 24 millimeter (mm).

LARA-R6-modulene er utstyrt med allsidige grensesnitt, et bredt utvalg av funksjoner og flerbånds- og flermoduskapasitet, og de er egnet for konstruksjoner som krever middels datahastighet, sømløs konnektivitet, utmerket dekning og lav latenstid. Slike konstruksjoner inkluderer sporing av eiendeler, telematikk, ekstern overvåking, alarmsentre, videoovervåking, tilkoblet helse og terminaler for kassesystemer.

Alle moduler støtter Rx-antifading for å gi pålitelig ytelse under vanskelige dekningsforhold eller når tale over LTE (VoLTE) er nødvendig. Programmerere kan dra nytte av de integrerte IoT-protokollene (LwM2M, MQTT) og sikkerhetsfunksjonene (TLS/DTLS, sikker oppdatering og sikker oppstart) for å implementere ulike funksjoner, for eksempel enhetsadministrasjon, ekstern enhetsstyring og sikre trådløse fastvareoppdateringer (FOTA – firmware over-the-air).

LARA-R6-serien støtter LTE Cat 1 i henhold til 3GPP utgivelse 10, og oppnår global dekning med tre regionale varianter:

  • Modulene LARA-R6001-00B (data og tale) og LARA-R6001D-00B (kun data) støtter 18 LTE FDD/TDD-frekvensbånd pluss 3G/2G-reserve for global konnektivitet.
  • Modulene LARA-R6401-00B (data og tale) og LARA-R6401D-00B (kun data) er en ideell LTE Cat 1-løsning for Nord-Amerika, og støtter LTE-bånd fra AT&T, FirstNet, Verizon og T-Mobile.
  • Modulene LARA-R6801-00B (data og tale) og LARA-R6801D-01B (kun data) er utviklet for distribusjon i følgende regioner: Europa og Midtøsten (EMEA), Asia og Stillehavsområdet (APAC), Japan (JP) og Latin-Amerika (LATAM) (figur 1).

Kart over regionale varianter av LARA-R6-moduleneFigur 1: Tre regionale varianter av LARA-R6-modulene dekker kloden. (Bildekilde: DigiKey, modifisert av skribent)

Kjapp oversikt over spesialfunksjonene i LARA-R6

LARA-R6-moduler integrerer en basebåndprosessor for mobiltelefoni med eksterne grensesnitt, en RF-transceiver med forsterkere og filtre, minne og en strømstyringsenhet (figur 2).

Skjema over intern struktur for en u-blox LARA-R6-modul (klikk for å forstørre)Figur 2: Intern struktur i en LARA-R6-modul. (Bildekilde: u-blox)

RF-transceiveren fungerer i frekvensbåndene 700 MHz, 800 MHz, 850 MHz, 900 MHz, 1,7 GHz, 1,8 GHz, 1,9 GHz, 2,1 GHz og 2,6 GHz. Alle dataoverføringsprotokoller i basebåndprosessoren for mobiltelefoni kan styres og konfigureres med AT-kommandoer via de eksterne UART- og USB-grensesnittene.

Protokoller

  • Dobbeltstakk IPv4 og IPv6
  • Integrert TCP/IP, UDP/IP, FTP og HTTP
  • Integrert MQTT og MQTT-SN
  • Integrert LwM2M
  • eSIM og BIP (Bearer Independent Protocol)

LARA-R6-moduler krever en forsyningsspenning på 3,1 til 4,5 volt og har et blindstrømforbruk på rundt 1,1 milliampere (mA). I 2G-drift kan individuelle TDMA-tidsluker nå maksimal overføringseffekt på over 33 desibel, referert til som 1 milliwatt (mW) (dBm) (> 2,0 watt), og alle andre RAT-nivåer når over 24 dBm (> 0,25 watt).

En utmerket antennefølsomhet på mindre enn –100 dBm, som tilsvarer signaleffekter på mindre enn 0,1 pikowatt (pW), muliggjør stabile radiotilkoblinger på inngangspunktet (edge) av mobilnettverket.

Evaluering og programmering

Den raskeste måten å begynne å evaluere og programmere en LARA-R6-modul på, er å bruke en R6 EVB (EVK-R6) og et innpluggbart LARA-R6-adapterkort (ADP-R6) for den korresponderende regionen. For eksempel inkluderer EVK-R6001-00B for globale konstruksjoner det innpluggbare adapterkortet ADP-R6001-00B (tale + data) og et GNSS-adapterkort (figur 3).

Bilde av u-blox LARA-R6 EVB (EVK-R6) med et tilkoblet LARA-R6-adapterkort (klikk for å forstørre)Figur 3: LARA-R6 EVB (EVK-R6) med et tilknyttet LARA-R6-adapterkort (nederst) og et GNSS-kort (øverst til venstre). (Bildekilde: u-blox)

EVK-R6401-00B-varianten for Nord-Amerika inkluderer ADP-R6401-00B-adapteren, mens EVK-R6801-00B for EMEA/APAC/JP/LATAM inkluderer ADP-R6801-00B-adapteren. De tre adapterkortene som allerede er nevnt for tale- og dataoverføring, er også tilgjengelige separat, i likhet med versjoner kun for dataoverføring, inkludert ADP-R6401D-00B (Nord-Amerika) og ADP-R6001D-00B (globalt).

R6-adapterkortet utvider LARA-R6-modulen med to antenner og to MiniUSB-kontakter. R6 EVB legger til en GNSS-modul, et SIM-kortspor, ekstra innpluggbare tilkoblinger, forbindelseskabler, brytere og en strømforsyning til modulens eksterne enheter (figur 4).

Funksjonell blokkobling over u-blox R6 EVB med GNSS og LARA-R6-adaptere koblet til (klikk for å forstørre)Figur 4: Funksjonelt blokkskjema over R6 EVB med GNSS og LARA-R6-adaptere koblet til. (Bildekilde: u-blox)

Hvert sett inneholder en EVB med et tilkoblet LTE Cat 1 LARA-R6-adapterkort og en GNSS-modul fra u-blox, en USB-kabel, to LTE-mobilradioantenner, en GPS/GLONASS-antenne og en strømforsyning.

Idriftssetting av EVK

Det brukervennlige, kraftige EVK-R6-settet fra u-blox forenkler evalueringen av LTE Cat 1-/3G-/2G-mobilmoduler med flermodus. En Windows-PC som har LARA-R6 USB-driveren installert styrer LARA-R6-modemet via USB-kontakten og forenkler tilkoblingsoppsettet via systeminnstillingene. For å komme i gang må utvikleren gjøre følgende:

  1. Sett inn SIM-kortet og koble til både mobilantenner og GNSS-antennen.
  2. Konfigurer forsiktig forbindelseskablene og bryterne på EVK-en.
  3. Påfør forsyningsspenningen og slå på SW400-hovedbryteren på EVB-en.
    1. For å oppnå drift som et modem med lav datahastighet via det primære UART-grensesnittet (Main UART), kobler du PC-en til MiniUSB-kontakten J501 eller RS232-kontakten J500 på EVK-en.
    2. For drift som modem med lav datahastighet via to UART-er (Two UARTs), kobler du PC-en til J201-grensesnittet for mobiltelefoni med USB-kontakt på ADP-en.
    3. For drift som modem med høy datahastighet via integrert USB for mobiltelefoni (Native Cellular USB), kobler du PC-en til MiniUSB-kontakten J105 på ADP-en.
  4. Trykk på Mobiltelefoni PÅ-knappen (Cellular Power-On) SW302 på EVB-en.
  5. Kjør en terminalprogramvare (for eksempel m-center), gå til COM-portens konfigurasjonsmeny, velg AT-porten som korresponderer med 4a, 4b eller 4c, og angi disse verdiene: datahastighet: 115 200 bps; databits: 8; paritet: N; stoppbits: 1.

Hvis du vil ha mer informasjon, kan du se EVK-R6_UserGuide_UBX-21035387. m-center-verktøyet hjelper til med å evaluere, konfigurere og teste u-blox-mobilprodukter, og det kommer med en AT-kommandoterminal.

Enkel Internett-tilkobling med en Windows-PC

Ved å koble en Windows-PC til EVK-en, kan brukeren etablere en trådløs Internett-tilkobling på to måter:

1: En pakkedatatilkobling med lav hastighet: Denne bruker TCP/IP-stakken til Windows-PC-en via UART-grensesnittet til LARA-R6-modulen. PC-en og EVK-en er koblet til i henhold til metode 4a. Utvikleren må velge Telefon og modem > Modemer > Legg til ved å bruke Windows-styringspanelet. Det neste trinnet er å merke av i avmerkingsboksen «Ikke detekter modemet mitt», velge «Standard 33,6 kb/s modem» og tildele en COM-port. Hvis det er nødvendig, kan utvikleren legge til Egenskaper > Avansert > Ekstra initialiseringskommandoer.

2: En pakkedatatilkobling med høy hastighet: Denne får tilgang til Internett ved å bruke TCP/IP-stakken til Windows-PC-en via USB-grensesnittet for mobiltelefoni som er integrert i LARA-R6-modulen. PC-en og EVK-en er koblet til i henhold til metode 4c. Utvikleren må velge Nettverk og delingssenter > Angi ny tilkobling eller et nytt nettverk via Windows-styringspanelet, og klikke på «Koble til Internett». Det neste trinnet er å velge «Oppringning» (Dial-up) og en av AT USB-portene. Det siste trinnet er å angi oppringingsparametere (innringingsnummer, leverandørnavn, bruker-ID og passord).

Registrering av SIM-kortet hos mobiloperatøren

Når SIM-kortet og MNO-parameteren er konfigurert, registrerer mobilmodulen seg automatisk på mobilnettverket etter at den er slått på. Hvis det er et problem, kan registreringen kontrolleres manuelt ved hjelp av AT-kommandoene som er vist i tabell 2.

Kommando sendt av DTE (bruker) DCE-respons (modul) Beskrivelse
AT+CREG? +CREG: 0,1 OK Bekreft nettverksregistreringen.
AT+COPS=0 OK Registrer bare modulen på nettverket hvis den automatiske registreringen mislyktes (AT+CREG? returnerer 0,0).
AT+COPS? +COPS: 0,0,"I TIM",7 OK Les operatørens navn og radiotilgangsteknologi (RAT).

Tabell 2: AT-registreringskommandoer. (Bildekilde: u-blox, modifisert av skribent)

Kommunikasjon til ekstern HTTP-server via AT-kommando

GitHub-arkivet «Firechip_u-blox_LARA-R6_Arduino_Library» inneholder et omfattende bibliotek med AT-kommandoer for LARA-R6-modulene, skrevet i C++ for Arduino-styringene. Seksten eksempler, deriblant ping-tester, registrering, pakkesvitsj (packet switch), SMS, GNSS og IoT-sky, gir forslag til egendefinerte kodestrukturer.

AT-kommandoer kan også sende forespørsler til en ekstern HTTP-server under en aktiv tilkobling, motta serverresponsen og lagre denne responsen transparent i det lokale filsystemet. De støttede metodene er HEAD, GET, DELETE, PUT, POST fil og POST data.

Lara_R6_Example9 sender tilfeldige temperaturer til RemoteHTTP-Server ThingSpeak.com ved å bruke HTTP POST eller GET. ThingSpeak er en IoT-analysetjeneste fra MathWorks som bidrar til å samle, visualisere og analysere sanntidsdatastrømmer i skyen. Tabell 3 viser syntaksen til HTTP-kommandoen «POST-data».

Type Syntaks Respons Eksempel
Angi (set) AT+UHTTPC=<profile_id>,5,
<path>,<filename>,<data>,
<HTTP_content_type>
[,<user_defined_content_type>]
OK AT+UHTTPC=0,5,"/path/file.html", "responseFilename","data",0 OK

Tabell 3: «POST-data» er HTTP-kommando nummer 5 og er formatert som vist. (Bildekilde: u-blox, modifisert av skribent)

Dette eksemplet kan programmeres på en Arduino-vertsstyring, som styrer LARA-R6-modulen på et EVK-kort via AT-kommandoer. I tillegg kreves et konfigurert SIM-kort.

Programmereren må opprette en ThingSpeak-brukerkonto og angi felt 1 for den tilfeldige temperaturmålingsverdien via menyelementet Kanaler > Mine kanaler > Ny kanal. Den korresponderende «Skriv API-nøkkel» legges inn i hovedprogrammet, «LARA-R6_Example9_ThingSpeak.ino» i variabelen myWriteAPIKey.

C++-hovedprogrammet genererer en tilfeldig temperaturverdi, danner den skyspesifikke datastrengen og kaller bibliotekfunksjonen sendHTTPPOSTdata hvert 20. sekund (liste 1).

Kopier
...
1  String myWriteAPIKey = "PFIOEXW1VF21T7O6"; // Change this to your API key
2  String serverName = "api.thingspeak.com"; // Domain Name for HTTP POST/GET
3  [...]

4  void loop() 5  { 6    // Create a random temperature between 20 and 30  7    float temperature = ((float)random(2000,3000)) / 100.0; 8 9 10   // Send data using HTTP POST 11   String httpRequestData = "api_key=" + myWriteAPIKey + "&field1=" +
                                
String(temperature); 12 13   Serial.print(F("POSTing a temperature of ")); 14   Serial.print(String(temperature)); 15   Serial.println(F(" to ThingSpeak")); 16        17   // Send HTTP POST request to /update. The reponse will be written to
        post_response.txt in the LARA's file system
18   myLARA.sendHTTPPOSTdata(0, "/update", "post_response.txt", httpRequestData,
                             LARA_R6_HTTP_CONTENT_APPLICATION_X_WWW);
19 20 21   // Send data using HTTP GET 22      ==> see original code on Github 23 24   for (int i = 0; i < 20000; i++) // Wait for 20 seconds    25   { 26     myLARA.poll(); // Keep processing data from the LARA so we can catch
                            the HTTP command result
27     delay(1); 28   } 29  } ...

Liste 1: Dette hovedprogrammet genererer en tilfeldig temperaturverdi og kaller bibliotekfunksjonen sendHTTPPOSTdata hvert 20. sekund. (Kodekilde: Firechip på Github)

Generer AT-kommandostrengen som kaller bibliotekfunksjoner

Bibliotektopptekst «Firechip_u-blox_LARA-R6_Arduino_Library.h» videresender funksjonskallet sendHTTPPOSTdata til biblioteksprosedyren «Firechip_u-blox_LARA-R6_Arduino_Library.cpp», der den fullt formaterte AT-kommandostrengen genereres og sendes (liste 2).

Kopier
...
1  LARA_R6_error_t LARA_R6::sendHTTPPOSTdata(int profile, String path, 
                              String responseFilename, String data, 
                              LARA_R6_http_content_types_t httpContentType)
2  { 3    LARA_R6_error_t err; 4    char *command; 5 6    if (profile >= LARA_R6_NUM_HTTP_PROFILES) 7     return LARA_R6_ERROR_ERROR; 8 9    command = lara_r6_calloc_char(strlen(LARA_R6_HTTP_COMMAND) + 24 +
                                  path.
length() + responseFilename.length()
                                  + data.
length()); 10   if (command == nullptr) 11     return LARA_R6_ERROR_OUT_OF_MEMORY; 12   sprintf(command, "%s=%d,%d,\"%s\",\"%s\",\"%s\",%d",
             LARA_R6_HTTP_COMMAND, profile, LARA_R6_HTTP_COMMAND_POST_DATA,
             path.
c_str(), responseFilename.c_str(), data.c_str(),
             httpContentType);
13 14   err = sendCommandWithResponse(command, LARA_R6_RESPONSE_OK_OR_ERROR,
                                 
nullptr, LARA_R6_STANDARD_RESPONSE_TIMEOUT); 15 16   free(command); 17   return err; 18 } ...

Liste 2: Denne C++-bibliotekprosedyren genererer og sender den fullt formaterte AT-kommandostrengen (linje 12). (Kodekilde: Firechip på Github)

Bibliotekprosedyren LARA_R6::sendHTTPPOSTdata (liste 2) bruker de godkjente parametrene til funksjonskallet myLARA.sendHTTPPOSTdata() (liste 1) og ekstra deklarerte variabler fra bibliotektoppteksten til å generere den fullstendige HTTP-kommandostrengen i henhold til tabell 3. Til slutt sender LARA-R6-modemet den resulterende AT-kommandostrengen til ThingSpeak RemoteHTTP-serveren:

AT+UHTTPC=0,5,"/update","post_response.txt","api_key=PFIOEXW1VF21T7O6&field1=21.54",0

Konklusjon

LTE Cat 1-radiomoduler i flermodus fra LARA-R6-serien er effektive og kostnadseffektive for det globale nettverket av IoT- og M2M-konstruksjoner med lavt strømforbruk. Som vist har utviklere lett tilgang til alle grensesnitt gjennom EVK, og kan enkelt konfigurere og styre modulens protokoller og funksjoner via AT-kommandoer. Dette gir enkle alternativer når det gjelder å fungere som et PC-modem, sende data til skyen og generere AT-kommandostrenger via bibliotekfunksjoner.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Om skribenten

Jens Wallmann

Jens Wallmann

Jens Wallmann is a freelancing editor and contributes to electronics publications, both print and online. As an electrical engineer (communications engineering) and a trained industrial electronic engineer he has more than 25 years in electronics development with a focus on measuring technology, automotive electronics, process industry and Radio Frequency.

Om denne utgiveren

DigiKey's European Editors