글로벌 셀룰러 무선 통신 모듈을 사용하여 IoT 장치를 클라우드에 빠르고 안전하게 연결

작성자: Jens Wallmann

DigiKey 유럽 편집자 제공

휴대용 또는 원격 네트워크 종단 장치를 사물 인터넷(IoT)에 연결하거나, 사물 지능 통신(M2M)을 사용하여 기계를 원격으로 제어하려면 클라우드를 통한 데이터 교환용 모바일 무선 통신 연결을 선택하는 것이 좋습니다. 하지만 이는 전 세계적으로 필요한 데이터를 지원할 수 있는 무선 네트워크, 무선 모뎀이 처리해야 하는 프로토콜 등을 결정해야 하는 어려운 과제를 개발자에게 안겨줍니다. 시스템 확장성, 데이터 보안, 비용, 출시 시간, 사용자가 부담하는 구입 및 운영 비용도 고려해야 합니다.

이 기사에서는 LTE Cat 1이 IoT 및 M2M 응용 제품 개발자에게 제공하는 사항을 간략하게 설명합니다. 그런 다음 범용 연결과 안정적인 성능을 제공하는 u-bloxLARA-R6 계열 무선 통신 모듈을 소개합니다. 마지막으로 개발자가 평가 기판(EVB)을 사용하여 AT 명령을 통해 모듈을 쉽게 구성 및 제어하고 라이브러리 기능을 통해 AT 명령 문자열을 생성할 수 있는 방법을 보여줍니다.

LTE Cat 1과 LTE Cat 1bis, LTE Cat M 및 LTE Cat NB 비교

LTE 셀룰러 무선 통신은 현재 기가비트 전송 속도를 달성하고 있지만, LTE Cat 1, LTE Cat 1bis, LTE Cat M, LTE Cat NB와 같은 저전력 광역(LPWA) 프로토콜은 에너지 소비, 네트워크 리소스, 비용의 측면에서 특히 효율적이도록 설계되었습니다. 이는 IoT 장치의 경우 특히 중요합니다.

전이중으로 최대 20MHz 채널 대역폭을 제공하는 LTE Cat 1은 최대 10Mbps 데이터 다운로드 속도와 최대 5Mbps 데이터 업로드 속도를 달성합니다. 두 안테나로 수신기(Rx) 다이버시티를 지원하여 성능을 개선할 수 있습니다(표 1). LTE Cat 1bis에서는 단일 안테나를 사용합니다.

LTE Cat1/Cat 1bis LTE Cat M1 LTE Cat NB1
3GPP 릴리스 릴리스 8 릴리스 13 릴리스 13
다운링크 최대 속도 10Mpbs 1Mbps 26kbps
업링크 최대 속도 5Mbps 1Mbps 66kbps(다중 신호음)
16.9kbps(단일 신호음)
대기 시간 50ms ~ 100ms 10ms ~ 15ms 1.6s ~ 10s
안테나 개수 2(LTE Cat 1)
1(LTE Cat 1bis)
1 1
듀플렉스 모드 전이중 전이중 또는 반이중 반이중
장치 수신 대역폭 1.4MHz ~ 20MHz 1.4kHz 180kHz

표 1: LPWA 프로토콜의 성능 비교. LTE CAT 1은 Rx 다이버시티를 위해 안테나를 두 개 사용하고, LTE Cat 1bis는 안테나를 한 개 사용합니다. (이미지 출처: Wikipedia, Jens Wallmann)

전 세계 공급을 위한 LTE Cat 1 모바일 무선 통신

u-blox의 LARA-R6 계열은 무선 통신 액세스 기술(RAT) LTE Cat 1 주파수 분할 듀플렉서(FDD) 및 시간 분할 듀플렉서(TDD) 표준에 따라 설계된 강력한 셀룰러 무선 통신 모듈로 구성됩니다. 이 계열은 3G UMTS/HSPA 및 2G GSM/GPRS/EGPRS를 폴백 솔루션으로 지원합니다. 이러한 모듈은 글로벌/다중 지역 적용 범위에 탁월한 솔루션이며 26mm x 24mm 크기의 소형 LGA 폼 팩터로 제공됩니다.

다목적 인터페이스, 다양한 기능, 다대역, 다중 모드 기능이 탑재된 LARA-R6 모듈은 중간 데이터 속도, 원활한 연결, 우수한 적용 범위 및 짧은 대기 시간이 필요한 응용 분야에 적합합니다. 이러한 응용 분야에는 자산 추적, 텔레매틱스, 원격 모니터링, 영상 감시, 연결된 건강 장치, 판매 시점 관리 단자 등이 있습니다.

모든 모듈은 까다로운 커버리지 조건이나 VoLTE(Voice over LTE)가 필요한 경우에 안정적인 성능을 위해 Rx 다이버시티를 지원합니다. 프로그래머는 내장형 IoT 프로토콜(LwM2M, MQTT) 및 보안 기능(TLS/DTLS, 보안 업데이트/보안 부팅)을 활용하여 장치 관리, 원격 장치 제어, 보안 펌웨어 무선(FOTA) 업데이트를 비롯한 다양한 기능을 구현할 수 있습니다.

LARA-R6 계열은 3GPP 릴리스 10에 따라 LTE Cat 1을 지원하고 다음과 같은 세 지역 버전으로 글로벌 적용 범위를 실현합니다.

  • LARA-R6001-00B(데이터 및 음성) 및 LARA-R6001D-00B(데이터 전용) 모듈은 글로벌 연결을 위해 18개 LTE FDD/TDD 주파수 대역과 3G/2G 폴백을 지원합니다.
  • LARA-R6401-00B(데이터 및 음성) 및 LARA-R6401D-00B(데이터 전용) 모듈은 AT&T, FirstNet, Verizon 및 T-Mobile의 LTE 대역을 지원하여 북미 지역에 적합한 LTE Cat 1 솔루션을 제공합니다.
  • LARA-R6801-00B(데이터 및 음성) 및 LARA-R6801D-01B(데이터 전용) 모듈은 유럽 및 중동(EMEA), 아시아 태평양(APAC), 일본(JP), 남미(LATAM) 지역에 배포하도록 설계되었습니다(그림 1).

LARA-R6 모듈의 지역 버전 맵그림 1: LARA-R6 모듈의 세 지역 버전은 전 세계를 포괄합니다. (이미지 출처: DigiKey, 저자에 의해 수정됨)

LARA-R6 특징 요약

LARA-R6 모듈은 셀룰러 기저대역 프로세서를 외부 인터페이스와 통합하고, RF 트랜시버를 증폭기, 필터, 메모리 및 전력 관리 장치와 통합합니다(그림 2).

u-blox의 LARA-R6 모듈 내부 구조 구성도(확대하려면 클릭)그림 2: LARA-R6 모듈의 내부 구조. (이미지 출처: u-blox)

RF 트랜시버는 700MHz, 800MHz, 850MHz, 900MHz, 1.7GHz, 1.8GHz, 1.9GHz, 2.1GHz, 2.6GHz 주파수 대역에서 작동합니다. 셀룰러 기저대역 프로세서의 모든 데이터 전송 프로토콜은 외부 UART 및 USB 인터페이스를 사용하여 AT 명령을 통해 제어 및 구성할 수 있습니다.

프로토콜

  • 이중 스택 IPv4 및 IPv6
  • 내장형 TCP/IP, UDP/IP, FTP 및 HTTP
  • 내장형 MQTT 및 MQTT-SN
  • 내장형 LwM2M
  • eSIM 및 BIP(Bearer Independent Protocol)

LARA-R6 모듈은 3.1V ~ 4.5V 공급 전압이 필요하며 약 1.1mA의 유휴 전류를 소비합니다. 2G 작동에서 개별 TDMA 시간 슬롯은 1mW 기준 33dB 이상(dBm)(2.0와트 초과)의 최대 전송 전력에 도달할 수 있으며, 모든 다른 RAT는 24dBm 이상(0.25와트 초과) 수준에 도달할 수 있습니다.

0.1pW 미만의 신호 전력에 해당하는 -100dBm 미만의 우수한 안테나 감도로 인해 모바일 네트워크의 가장자리에서도 안정적인 무선 통신 연결을 지원합니다.

평가 및 프로그래밍

LARA-R6 모듈 평가 및 프로그래밍을 시작하는 가장 빠른 방법은 해당 지역에 적합한 R6 EVB (EVK-R6) 및 플러그인 LARA-R6 어댑터 기판(ADP-R6)을 사용하는 것입니다. 예를 들어 글로벌 응용 분야를 위한 EVK-R6001-00B에는 ADP-R6001-00B(음성 + 데이터) 플러그인 어댑터 기판과 GNSS 어댑터 기판이 포함되어 있습니다(그림 3).

LARA-R6 어댑터 기판이 부착된 u-blox의 LARA-R6 EVB (EVK-R6) 이미지(확대하려면 클릭)그림 3: LARA-R6 어댑터 기판(아래쪽) 및 GNSS 기판(왼쪽 상단)이 부착된 LARA-R6 EVB (EVK-R6). (이미지 출처: u-blox)

북미용 EVK-R6401-00B 버전에는 ADP-R6401-00B 어댑터가 포함되어 있고, EMEA/APAC/JP/LATAM용 EVK-R6801-00B에는 ADP-R6801-00B 어댑터가 포함되어 있습니다. 앞서 언급한 음성 및 데이터 전송용 세 어댑터 기판을 별도로 구매할 수 있으며, ADP-R6401D-00B(북미) 및 ADP-R6001D-00B(글로벌)를 포함한 데이터 전송 전용 기판도 별도로 구매할 수 있습니다.

R6 어댑터 기판은 두 안테나와 두 MiniUSB 커넥터로 LARA-R6 모듈을 확장합니다. R6 EVB는 GNSS 모듈, SIM 카드 슬롯, 추가 플러그인 연결, 점퍼, 스위치, 전원 공급 장치를 모듈 주변 장치에 추가합니다(그림 4).

GNSS 및 LARA-R6 어댑터가 연결된 u-blox의 R6 EVB 기능별 제품 구성도(확대하려면 클릭)그림 4: GNSS 및 LARA-R6 어댑터가 연결된 R6 EVB의 기능별 제품 구성도. (이미지 출처: u-blox)

각 키트에는 u-blox의 LTE Cat 1 LARA-R6 어댑터 기판 및 GNSS 모듈이 부착된 EVB 1개, USB 케이블 1개, LTE 모바일 무선 통신 안테나 1개, GPS/GLONASS 안테나 1개, 전원 공급 장치 1개가 포함되어 있습니다.

EVK 커미셔닝

사용이 간편하고 강력한 u-blox의 EVK-R6 키트는 다중 모드 LTE Cat 1/3G/2G 셀룰러 모듈 평가를 간소화합니다. LARA-R6 USB 드라이버가 설치된 Windows PC에서는 USB 커넥터를 통해 LARA-R6 모뎀을 제어하고 시스템 설정을 통해 연결 설정을 간소화합니다. 시작하기 위해 개발자는 다음과 같이 해야 합니다.

  1. SIM 카드를 삽입하고 셀룰러 안테나와 GNSS 안테나를 모두 연결합니다.
  2. EVK의 점퍼 및 스위치를 주의해서 구성합니다.
  3. 공급 전압을 적용하고 EVB의 기본 스위치 SW400을 켭니다.
    1. '기본 UART' 인터페이스를 통해 저속 데이터 전송 모뎀으로 작동하려면 PC를 EVK의 MiniUSB 잭 J501 또는 RS232 잭 J500에 연결합니다.
    2. '두 UART'를 통해 저속 데이터 전송 모뎀으로 작동하려면 PC를 ADP의 셀룰러 USB 잭 J201 인터페이스에 연결합니다.
    3. '기본 셀룰러 USB'를 통해 고속 데이터 전송 모뎀으로 작동하려면 PC를 ADP의 MiniUSB 잭 J105에 연결합니다.
  4. EVB의 셀룰러 전원 켜기 버튼 SW302를 누릅니다.
  5. 단자 응용 소프트웨어(예: m-center)를 실행하고 COM 포트 설정 메뉴로 이동하여 4a, 4b 또는 4c에 해당하는 AT 포트를 선택하고 다음 값을 설정합니다. 데이터 속도: 115,200bps, 데이터 비트: 8, 패리티: N, 정지 비트: 1.

자세한 내용은 EVK-R6_UserGuide_UBX-21035387을 참조하십시오. m-center 도구는 u-blox 셀룰러 제품을 평가, 구성, 테스트할 수 있도록 도와주며, AT 명령 단자를 포함합니다.

Windows PC를 사용한 간단한 인터넷 연결

Windows PC를 EVK에 연결하여 두 가지 방법으로 무선 인터넷 연결을 설정할 수 있습니다.

1: 저속 패킷 데이터 연결: LARA-R6 모듈의 UART 인터페이스를 통해 Windows PC의 TCP/IP 스택을 사용합니다. PC와 EVK가 4a 방법에 따라 연결됩니다. 개발자는 Windows 제어판을 사용하여 전화 및 모뎀 > 모뎀 > 추가를 선택해야 합니다. 다음 단계에서는 '모뎀을 검색하지 않고 목록에서 선택' 확인란을 선택하고 '표준 33.6kbps 모뎀'을 선택한 다음 COM 포트를 할당합니다. 필요한 경우 개발자는 속성 > 고급 > 추가 초기화 명령을 추가할 수 있습니다.

2: 고속 패킷 데이터 연결: LARA-R6 모듈의 셀룰러 기본 USB 인터페이스를 통해 Windows PC의 TCP/IP 스택을 사용하여 인터넷에 액세스합니다. PC와 EVK가 4c 방법에 따라 연결됩니다. 개발자는 Windows 제어판을 통해 네트워크 및 공유 센터 > 새 연결 또는 네트워크 설정을 선택하고 '인터넷에 연결'을 클릭해야 합니다. 다음 단계에서는 '전화 접속' 및 AT USB 포트 중 하나를 선택합니다. 마지막 단계에서는 전화 접속 파라미터(전화 접속 번호, 제공업체 이름, 사용자 ID, 비밀번호)를 입력합니다.

모바일 운영자에 SIM 카드 등록

SIM 카드 및 MNO 파라미터를 구성한 후 전원을 켜면 셀룰러 모듈이 셀룰러 네트워크에 자동으로 등록됩니다. 문제가 있는 경우 표 2에 표시된 AT 명령을 사용하여 등록을 수동으로 확인할 수 있습니다.

DTE에 의해 전송되는 명령(사용자) DCE 응답(모듈) 제품 요약
AT+CREG? +CREG: 0,1 OK 네트워크 등록을 확인합니다.
AT+COPS=0 OK 자동 등록이 실패한 경우에만 네트워크에 모듈을 등록합니다(AT+CREG?가 0,0을 반환하는 경우).
AT+COPS? +COPS: 0,0,"I TIM",7 OK 운영자 이름 및 무선 통신 액세스 기술(RAT)을 읽습니다.

표 2: AT 등록 명령. (표 출처: u-blox, 작성자에 의해 수정됨)

AT 명령을 통해 원격 HTTP 서버와 통신

GitHub 리포지토리 'Firechip_u-blox_LARA-R6_Arduino_Library'에는 Arduino 컨트롤러를 위해 C++로 작성된 LARA-R6 모듈을 위한 포괄적인 AT 명령 라이브러리가 포함되어 있습니다. ping 테스트, 등록, 패킷 스위치, SMS, GNSS, IoT 클라우드를 포함한 16개 응용 제품 예에서 맞춤형 코드 구조를 제안합니다.

또한 AT 명령을 통해 활성 연결 중에 원격 HTTP 서버에 요청을 보내고, 서버 응답을 수신하고, 해당 응답을 로컬 파일 시스템에 투명하게 저장할 수 있습니다. 지원되는 메서드는 HEAD, GET, DELETE, PUT, POST 파일 및 POST 데이터입니다.

Lara_R6_Example9는 HTTP POST 또는 GET을 사용하여 RemoteHTTP-Server ThingSpeak.com에 온도를 무작위 전송합니다. ThingSpeak는 클라우드에서 실시간 데이터 스트림을 집계하고, 시각화하며 분석하도록 도와주는 MathWorks의 IoT 분석 플랫폼 서비스입니다. 표 3은 HTTP 명령 'POST data'의 구문을 보여줍니다.

유형 구문 응답 예시
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

표 3: 'POST data'는 HTTP 명령 번호 5이며 형식이 표시된 대로 지정됩니다. (표 출처: u-blox, 작성자에 의해 수정됨)

AT 명령을 통해 EVK 기판에서 LARA-R6 모듈을 제어하는 Arduino 호스트 컨트롤러에서 이 예시를 프로그래밍할 수 있으며 구성된 SIM 카드가 필요합니다.

프로그래머는 ThingSpeak 사용자 계정을 만들고 채널 > 내 채널 > 새 채널 메뉴 항목을 통해 무작위 온도 측정 값에 대한 필드 1을 설정해야 합니다. 해당 'Write API Key'는 기본 프로그램 'LARA-R6_Example9_ThingSpeak.ino'에 myWriteAPIKey 변수로 입력됩니다.

C++ 기본 프로그램은 무작위 온도 값을 생성하고, 클라우드별 데이터 문자열을 형성하고, sendHTTPPOSTdata 라이브러리 함수를 20초마다 호출합니다(목록 1).

복사
...
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  } ...

목록 1: 이 기본 프로그램은 무작위 온도 값을 생성하고 sendHTTPPOSTdata 라이브러리 함수를 20초마다 호출합니다. (코드 출처: Firechip on Github)

라이브러리 함수를 호출하여 AT 명령 문자열 생성

'Firechip_u-blox_LARA-R6_Arduino_Library.h' 라이브러리 헤더는 sendHTTPPOSTdata 함수 호출을 'Firechip_u-blox_LARA-R6_Arduino_Library.cpp' 라이브러리 절차에 전송합니다. 여기서는 형식이 완전히 지정된 AT 명령 문자열이 생성되어 전송됩니다(목록 2).

복사
...
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 } ...

목록 2: 이 C++ 라이브러리 절차에서는 형식이 완전히 지정된 AT 명령 문자열을 생성하고 전송합니다(라인 12). (코드 출처: Firechip on Github)

LARA_R6::sendHTTPPOSTdata 라이브러리 절차(목록 2)에서는 myLARA.sendHTTPPOSTdata() 함수 호출(목록 1)의 전달된 파라미터와 라이브러리 헤더에서 추가적으로 선언된 변수를 사용하여 표 3에 따라 전체 HTTP 명령 문자열을 생성합니다. 마지막으로 LARA-R6 모뎀은 결과 AT 명령 문자열을 ThingSpeak RemoteHTTP 서버에 전송합니다.

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

결론

저전력 IoT 및 M2M 응용 분야의 글로벌 네트워킹의 경우 LARA-R6 계열의 LTE Cat 1 다중 모드 무선 통신 모듈이 효과적이고 비용 효율적입니다. 위에서 살펴본 바와 같이 개발자는 EVK를 사용하여 모든 인터페이스에 즉시 액세스하고 AT 명령을 통해 모듈의 프로토콜과 기능을 쉽게 구성 및 제어할 수 있습니다. 이를 통해 PC 모뎀으로 작동하고, 클라우드에 데이터를 전송하고, 라이브러리 함수를 통해 AT 명령 문자열을 생성할 수 있는 간단한 옵션을 제공합니다.

DigiKey logo

면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.

작성자 정보

Jens Wallmann

Jens Wallmann

Jens Wallmann은 인쇄 및 온라인 전자 출판물에 기고하는 프리랜서 편집자로 활동하고 있습니다. 전기 엔지니어(통신 공학)이자 숙련된 산업 전자 엔지니어인 그는 측정 기술, 자동차 전자 장치, 공정 산업 및 무선 주파수를 전공으로, 전자 장비 개발 분야에서 25년 이상의 경력을 보유하고 있습니다.

게시자 정보

DigiKey 유럽 편집자