Brug et globalt cellulært radiomodul til hurtigt og sikkert at forbinde IoT-enheder til skyen
Bidraget af DigiKey's European Editors
2023-12-12
For at forbinde bærbare eller eksterne netværksenheder til Internet of Things (IoT), eller for at fjernstyre maskiner ved hjælp af maskine-til-maskine-kommunikation (M2M), er en mobil radioforbindelse til dataudveksling via skyen en god mulighed. Denne mulighed giver dog forhindringer for udvikleren, såsom at bestemme, hvilke trådløse netværk der kan understøtte den krævede datagennemstrømning på verdensplan, og hvilke protokoller det trådløse modem skal kunne håndtere. Systemets skalerbarhed, datasikkerhed, omkostninger, time-to-market og brugerens anskaffelses- og driftsomkostninger skal også tages i betragtning.
Denne artikel forklarer kort, hvad LTE Cat 1 tilbyder udviklere af IoT- og M2M-applikationer. Derefter introduceres radiomoduler fra u-blox's LARA-R6-serie, der giver universelle tilslutningsmuligheder og pålidelig ydeevne. Artiklen afsluttes med at vise, hvordan udviklere kan bruge et evalueringskort (EVB) til nemt at konfigurere og styre modulerne via AT-kommandoer og generere AT-kommandostrenge via biblioteksfunktioner.
LTE Cat 1 sammenlignet med LTE Cat 1bis, LTE Cat M og LTE Cat NB
Mens LTE-mobilradio nu opnår gigabit-transmissionshastigheder, er LPWA-protokoller (laveffekt, bredt område) som LTE Cat 1, LTE Cat 1bis, LTE Cat M og LTE Cat NB designet til at være særligt effektive med hensyn til energiforbrug, netværksressourcer og omkostninger. Det er kritisk vigtigt for IoT-enheder.
Med en kanalbåndbredde på op til 20 megahertz (MHz) i fuld duplex opnår LTE Cat 1 download-datahastigheder på op til 10 megabit per sekund (Mbps) og upload-datahastigheder på op til 5 Mbps. To antenner muliggør modtagerdiversitet (Rx) for bedre ydeevne (tabel 1). LTE Cat 1bis bruger en enkelt antenne.
            
  | 
        
Tabel 1: Sammenligning af LPWA-protokollernes ydeevne. LTE CAT 1 bruger to antenner til Rx-diversitet; LTE Cat 1bis bruger én antenne. (Billedkilde: Wikipedia, Jens Wallmann)
LTE Cat 1-mobilradio til global tilgængelighed
u-blox' LARA-R6-serie består af robuste cellulære radiomoduler designet til radioadgangsteknologien (RAT) LTE Cat 1 FDD (frequency division duplex) og TDD (time division duplex) standarder. De understøtter 3G UMTS/HSPA og 2G GSM/GPRS/EGPRS som en fallback-løsning. Disse moduler er en fremragende løsning til global/multiregional dækning og kommer i en lille LGA-formfaktor, der måler 26 x 24 millimeter (mm).
LARA-R6-modulerne er udstyret med alsidige interfaces, en bred vifte af funktioner og multibånd- og multimodefunktioner og er velegnede til applikationer, der kræver medium datahastighed, problemfri konnektivitet, fremragende dækning og lav latenstid. Sådanne applikationer omfatter sporing af aktiver, telematik, fjernovervågning, alarmcentraler, videoovervågning, forbundet sundhed og POS-terminaler.
Alle moduler understøtter Rx-diversitet for pålidelig ydeevne under vanskelige dækningsforhold, eller når der kræves tale over LTE (VoLTE). Programmører kan udnytte de indlejrede IoT-protokoller (LwM2M, MQTT) og sikkerhedsfunktioner (TLS/DTLS, sikker opdatering og sikker opstart) til at implementere forskellige funktioner, herunder enhedsadministration, fjernstyring af enheder og sikre FOTA-opdateringer (firmware over-the-air).
LARA-R6-serien understøtter LTE Cat 1 i henhold til 3GPP udgivelse 10 og opnår global dækning med tre regionale varianter:
- Modulerne LARA-R6001-00B (data og tale) og LARA-R6001D-00B (kun data) understøtter 18 LTE FDD/TDD-frekvensbånd plus 3G/2G fallback for global konnektivitet.
 - Modulerne LARA-R6401-00B (data og tale) og LARA-R6401D-00B (kun data) giver en ideel LTE Cat 1-løsning til Nordamerika, der understøtter LTE-bånd fra AT&T, FirstNet, Verizon og T-Mobile.
 - Modulerne LARA-R6801-00B (data og tale) og LARA-R6801D-01B (kun data) er designet til installationer i følgende regioner: Europa og Mellemøsten (EMEA), Asien og Stillehavsområdet (APAC), Japan (JP) og Latinamerika (LATAM) (figur 1).
 
Figur 1: Tre regionale varianter af LARA-R6-modulerne dækker hele kloden. (Billedkilde: DigiKey, modificeret af forfatteren)
Et overblik over LARA-R6's særlige egenskaber
LARA-R6-modulerne integrerer en cellulær baseband-processor med eksterne grænseflader, en RF-transceiver med forstærkere og filtre, hukommelse og en strømstyringsenhed (figur 2).
Figur 2: Intern struktur af et LARA-R6-modul. (Billedkilde: 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ørselsprotokoller i den cellulære basebandprocessor kan styres og konfigureres via AT-kommandoer ved hjælp af de eksterne UART- og USB-interfaces.
Protokoller
- Dobbelt stack IPv4 og IPv6
 - Indbygget TCP/IP, UDP/IP, FTP og HTTP
 - Indbygget MQTT og MQTT-SN
 - Indbygget LwM2M
 - eSIM og Bearer uafhængig protokol (BIP)
 
LARA-R6-moduler kræver en forsyningsspænding på 3,1 til 4,5 volt og har et strømforbrug i tomgang på omkring 1,1 milliamperes (mA). I 2G-drift kan individuelle TDMA-tidsslots nå en maksimal sendeeffekt på over 33 decibel i forhold til 1 milliwatt (mW) (dBm) (> 2,0 watt), og alle andre RAT når niveauer på over 24 dBm (> 0,25 watt).
En fremragende antennefølsomhed på mindre end -100 dBm, svarende til signaleffekter på mindre end 0,1 picowatt (pW), muliggør stabile radioforbindelser i udkanten af mobilnetværket.
Evaluering og programmering
Den hurtigste måde at komme i gang med at evaluere og programmere et LARA-R6-modul på er at bruge en R6 EVB (EVK-R6) og et plug-in LARA-R6 adapterkort (ADP-R6) til den tilsvarende region. For eksempel indeholder EVK-R6001-00B til globale applikationer plug-in-adapterkortet ADP-R6001-00B (tale + data) og et GNSS-adapterkort (figur 3).
Figur 3: LARA-R6 EVB (EVK-R6) med et påsat LARA-R6 adapterkort (nederst) og et GNSS-kort (øverst til venstre). (Billedkilde: u-blox)
EVK-R6401-00B-varianten til Nordamerika inkluderer ADP-R6401-00B-adapteren, mens EVK-R6801-00B til EMEA/APAC/JP/LATAM inkluderer ADP-R6801-00B-adapteren. De tre allerede nævnte adapterkort til tale- og datatransmission fås også separat, ligesom der findes versioner til kun datatransmission, herunder ADP-R6401D-00B (Nordamerika) og ADP-R6001D-00B (globalt).
R6-adapterkortet udvider LARA-R6-modulet med to antenner og to MiniUSB-stik. R6 EVB tilføjer et GNSS-modul, en SIM-kortplads, ekstra plug-in-forbindelser, jumpere, kontakter og en strømforsyning til modulets perifere enheder (figur 4).
Figur 4: Funktionelt blokdiagram over R6 EVB med GNSS- og LARA-R6-adaptere tilsluttet. (Billedkilde: u-blox)
Hvert sæt indeholder en EVB med et LTE Cat 1 LARA-R6-adapterkort og et GNSS-modul fra u-blox, et USB-kabel, to LTE-mobilradioantenner, en GPS/GLONASS-antenne og en strømforsyningsenhed.
Idriftsættelse af EVK
Det brugervenlige, kraftfulde EVK-R6-kit fra u-blox forenkler evalueringen af multimode LTE Cat 1 / 3G / 2G mobilmoduler. En Windows-pc med LARA-R6 USB-driveren installeret styrer LARA-R6-modemmet via USB-stikket og forenkler opsætningen af forbindelsen via systemindstillingerne. For at komme i gang skal udvikleren:
- Sætte SIM-kortet i, og tilslutte begge mobilantenner og GNSS-antennen.
 - Omhyggeligt konfigurere jumperne og kontakterne på EVK.
 - Tilslutte forsyningsspændingen, og tænde for hovedafbryderen SW400 på EVB'en.
 - 
    
- For at fungere som et modem med lav datahastighed via "Main UART"-interfacen skal du slutte pc'en til MiniUSB-stikket J501 eller RS232-stikket J500 på EVK'en.
 - For at fungere som et modem med lav datahastighed via "To UART'er" skal du slutte pc'en til det cellulære USB-stik J201 på ADP'en.
 - For at fungere som et modem med høj datahastighed via "Native Cellular USB" skal du tilslutte pc'en til MiniUSB-stikket J105 på ADP'en.
 
 - Tryk på den cellulære tændknap SW302 på EVB'en.
 - Kør et terminalprogram (f.eks. m-center), gå til menuen COM-port setup, vælg den AT-port, der svarer til 4a, 4b eller 4c, og indstil disse værdier: Datahastighed: 115.200 bps; Data bits: 8; Paritet: N; Stopbits: 1.
 
For flere detaljer henvises til EVK-R6_UserGuide_UBX-21035387. Værktøjet m-center hjælper med at evaluere, konfigurere og teste u-blox' cellulære produkter, og det indeholder en AT-kommandoterminal.
Enkel internetforbindelse ved hjælp af en Windows-pc
Ved at tilslutte en Windows-pc til EVK kan brugeren etablere en trådløs internetforbindelse på to måder:
1: En lavhastigheds pakkedataforbindelse: Denne bruger TCP/IP-stakken på Windows-pc'en via UART-interfacet på LARA-R6-modulet. PC'en og EVK'en forbindes i henhold til metode 4a. Udvikleren skal vælge Telefon og modem > Modemmer > Tilføj i Windows Kontrolpanel. Næste trin er at vælge afkrydsningsfeltet "Find ikke mit modem", vælge "Standard 33,6 kbps modem" og tildele en COM-port. Hvis det er nødvendigt, kan udvikleren tilføje Egenskaber > Avanceret > Ekstra initialiseringskommandoer.
2: En højhastigheds pakkedataforbindelse: Dette giver adgang til internettet ved hjælp af TCP/IP-stakken på Windows-pc'en via LARA-R6-modulets indbyggede USB-interface til mobiltelefoner. PC'en og EVK'en forbindes i henhold til metode 4c. Udvikleren skal vælge Netværks- og delingscenter > Opret en ny forbindelse eller et nyt netværk via Windows Kontrolpanel og klikke på "Opret forbindelse til internettet". Det næste trin er at vælge "Dial-up" og en af AT USB-portene. Det sidste trin er at indtaste dial-up-parametre (dial-in-nummer, udbydernavn, bruger-id og adgangskode).
Registrering af SIM-kortet hos mobiloperatøren
Når SIM-kortet og MNO-parametrene er konfigureret, registrerer mobilmodulet sig automatisk på mobilnetværket, når det tændes. Hvis der er et problem, kan registreringen kontrolleres manuelt ved hjælp af AT-kommandoerne vist i Tabel 2.
            
  | 
        
Tabel 2: AT-registreringskommandoer. (Tabelkilde: u-blox, modificeret af forfatteren)
Kommunikation til den eksterne HTTP-server via AT-kommando
GitHub-repository "Firechip_u-blox_LARA-R6_Arduino_Library" indeholder et omfattende bibliotek med AT-kommandoer til LARA-R6-modulerne, skrevet i C++ til Arduino-controllere. Seksten applikationseksempler, herunder ping-tests, registrering, pakkeswitch, SMS, GNSS og IoT-cloud, giver forslag til tilpassede kodestrukturer.
AT-kommandoer kan også sende forespørgsler til en ekstern HTTP-server under en aktiv forbindelse, modtage serverens svar og gemme dette svar gennemsigtigt i det lokale filsystem. De understøttede metoder er HEAD, GET, DELETE, PUT, POST file og POST data.
Lara_R6_Example9 sender tilfældige temperaturer til RemoteHTTP-serveren ThingSpeak.com ved hjælp af HTTP POST eller GET. ThingSpeak er en IoT-analyseplatform fra MathWorks, der hjælper med at samle, visualisere og analysere live datastrømme i skyen. Tabel 3 viser syntaksen for HTTP-kommandoen "POST data".
            
  | 
        
Tabel 3: "POST data" er HTTP-kommando nummer 5 og er formateret som vist. (Tabelkilde: u-blox, modificeret af forfatteren)
Dette eksempel kan programmeres på en Arduino-værtscontroller, som styrer LARA-R6-modulet på et EVK-kort via AT-kommandoer. Derudover kræves der et konfigureret SIM-kort.
Programmøren skal oprette en ThingSpeak-brugerkonto og indstille felt 1 til den tilfældige temperaturmålingsværdi via menupunktet Kanaler > Mine kanaler > Ny kanal. Den tilsvarende "Write API Key" indtastes i hovedprogrammet, "LARA-R6_Example9_ThingSpeak.ino" i variablen myWriteAPIKey.
C++-hovedprogrammet genererer en tilfældig temperaturværdi, danner den skyspecifikke datastreng og kalder biblioteksfunktionen sendHTTPPOSTdata hvert 20. sekund (Listing 1).
Kopi
...
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  }
...
Listing 1: Dette hovedprogram genererer en tilfældig temperaturværdi og kalder biblioteksfunktionen sendHTTPPOSTdata hvert 20. sekund. (Kodekilde: Firechip på Github)
Generer AT-kommandostrengen ved at kalde biblioteksfunktioner
Bibliotekets header "Firechip_u-blox_LARA-R6_Arduino_Library.h" videresender funktionskaldet sendHTTPPOSTdata til biblioteksproceduren "Firechip_u-blox_LARA-R6_Arduino_Library.cpp", hvor den fuldt formaterede AT-kommandostreng genereres og sendes (Listing 2).
Kopi
...
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 }
...
Listing 2: Denne C++-biblioteksprocedure genererer og sender den fuldt formaterede AT-kommandostreng (linje 12). (Kodekilde: Firechip på Github)
Bibliotekets procedure LARA_R6::sendHTTPPOSTdata (Listing 2) bruger de overførte parametre fra funktionskaldet myLARA.sendHTTPPOSTdata() (Listing 1) og yderligere deklarerede variabler fra bibliotekets header til at generere den komplette HTTP-kommandostreng i henhold til Tabel 3. Til sidst sender LARA-R6-modemmet den resulterende AT-kommandostreng til ThingSpeak RemoteHTTP-serveren:
AT+UHTTPC=0,5,"/update","post_response.txt","api_key=PFIOEXW1VF21T7O6&field1=21.54",0
Konklusion
LTE Cat 1 multi-mode radiomoduler fra LARA-R6-serien er effektive og omkostningseffektive til global networking af IoT- og M2M-applikationer med lavt strømforbrug. Som vist har udviklere let adgang til alle grænseflader ved hjælp af EVK og kan nemt konfigurere og styre modulets protokoller og funktioner via AT-kommandoer. Det giver enkle muligheder for at fungere som et pc-modem, sende data til skyen og generere AT-kommandostrenge via biblioteksfunktioner.
            
        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.


