LoRaWAN 시스템 인 패키지를 통한 장거리 무선 연결 설계 가속화
DigiKey 북미 편집자 제공
2019-02-27
저비용, 장거리, 저전력 무선 연결이 필요한 원격 감지 응용 분야에서는 LoRa 기술이 Bluetooth와 Wi-Fi 등의 대안보다 나은 성능을 제공한다고 알려져 있습니다. 하지만 개발자는 여전히 일반적인 IoT 시스템에 이용할 수 있는 제한된 전력 예산을 위반하지 않으면서 범위와 데이터 전송률을 극대화하는 LoRa 설계를 비용 효율적이고 신속하게 구현하기 위해 RF 설계의 미묘한 차이에 매달리고 있습니다.
실리콘 공급업체는 LoRa 기반 설계를 가속화하는 완전한 시스템 인 패키지(SiP) 모듈과 관련 LoRaWAN 소프트웨어 스택을 장거리 연결을 위한 드롭인 솔루션에 가깝게 개발했습니다.
이 기사에서는 먼저 LoRa 접근 방식을 설명한 다음 적합한 하드웨어 및 소프트웨어 솔루션을 소개하여 설계자가 어떻게 이를 사용해 더 빠르게 설계를 고안하고 실행할 수 있을지에 대해 다룹니다.
장거리 IoT 네트워크
장거리의 줄임말인 LoRa(short for long-range)는 고도로 효율적인 저비용, 저전력, 전용 확산 스펙트럼 무선 통신을 정의합니다. LoRA는 배터리 작동식 센서와 기타 저전력 응용 제품을 지원하는 기능 덕분에 Wi-Fi 또는 Bluetooth 범위를 벗어나는 거리에서 작동하는 IoT 응용 제품에 적합합니다. LoRa 기반 설계는 수 킬로미터에 걸쳐 펼쳐져 있는 매우 커다란 규모의 네트워크에 안전한 연결을 안정적으로 제공하면서 소형 배터리로 수년간 작동할 수 있습니다.
LoRaWAN은 네트워크 작동 방식을 정의하고 데이터 전송률(일반적으로 최대 50Kbits/초)을 설정하는 LoRa 무선 통신 인터페이스 위에 있는 미디어 액세스 제어(MAC) 계층입니다(LoRaWAN 1부: IoT용 15km의 무선 통신과 10년의 배터리 수명을 확보하는 방법 참조). 방사형 네트워크 토폴로지에서 작동하는 LoRaWAN 광역 네트워크 아키텍처는 게이트웨이를 사용해 IoT 센서 및 호스트 서버 등의 여러 말단 장치 사이에 메시지를 전달합니다(그림 1). LoRa 무선 통신은 LoRaWAN에 대한 대체 MAC 계층을 통해 별도로 사용할 수 있지만 해당 인터페이스는 LoRaWAN 사양과 호환되지 않습니다.

그림 1: LoRaWAN 사양은 게이트웨이를 사용해 말단 장치가 포함된 장거리 연결과 클라우드 또는 전용 환경의 네트워크 호스트가 포함된 광역 연결을 이어줌으로써 말단 장치와 네트워크 서버 사이에 인증된 암호화 통신을 제공합니다. (이미지 출처: LoRa Alliance)
이 아키텍처에서 말단 장치와 호스트 서버는 게이트웨이 장치를 통해 통신하며 이는 단순히 통신 교량의 역할을 하도록 구성될 수 있습니다. 게이트웨이는 호스트 서버와 통신하기 위해 Wi-Fi, 이더넷 또는 셀룰러 등의 기존 연결 옵션을 사용합니다. 말단 장치와 통신하기 위해 게이트웨이는 Semtech 전용 LoRa 물리(PHY)층의 기능에 의존해 기가헤르츠(GHz) 미만의 밴드를 이용해 신뢰할 수 있는 장거리 연결을 달성합니다. 둘 중 어떤 경우이든, LoRaWAN은 네트워크 세션이나 생산 중, 커미셔닝 중 또는 무선(OTA) 활성화를 통해 생성될 수 있는 응용 제품 세션 키를 사용해 AES 암호화로 엔드 투 엔드 통신을 보호합니다.
LoRaWAN 네트워크에서 말단 장치와의 모든 통신은 양방향이지만 LoRaWAN 프로토콜 사양은 개발자가 본질적으로 응답 대기 시간과 전력 소비 사이의 균형을 맞추는 3가지 서로 다른 말단 장치 등급을 제공합니다. A급 말단 장치는 각 전송 후에 짧은 다운링크 수신 창 두 개에서만 수신할 수 있습니다. 활성 수신기 기간을 제한함으로써 A급 장치는 IoT 센서같이 전력이 제한되는 장치에 적합하게 작동합니다. B급은 A급을 추가적인 수신 창과 결합합니다. 따라서 이 등급은 Rx 전력 소비가 늘어나게 되더라도 호스트 요청에 대한 응답 대기 시간을 단축해야 하는 IoT 액추에이터 장치에 적합합니다. 마지막으로 C급 장치는 거의 지속적으로 열려 있는 수신 창을 제공하며 LoRaWAN 게이트웨이에 적합합니다.
LoRaWAN의 보안, 전력 소비 감소 및 장거리 연결을 최적화하는 방안을 모색하는 과정에서 하드웨어 플랫폼과 소프트웨어 시스템을 구성하는 데 필요한 수많은 세부 사항으로 인해 결과가 지연되는 상황에 직면할 수 있습니다. 하지만 Microchip Technology의 하드웨어와 소프트웨어는 LoRaWAN 네트워크 구현을 단순화해 LoRa 기술 배포를 위한 유사 드롭인 솔루션을 제공합니다.
저전력 통합 솔루션
Microchip의 SAM R34/35 시스템 인 패키지(SiP) 모듈은 저전력 Arm® Cortex®-M0+, Semtech의 SX1276 트랜시버, 플래시, RAM, 특수 저전력(LP) RAM 및 센서 시스템에 일반적으로 필요한 유형의 포괄적인 주변 장치 컬렉션을 결합합니다(그림 2). SAM 34/35에는 구성 가능한 맞춤형 논리 모듈과 함께 다중 채널 12비트 아날로그 디지털 컨버터(ADC), 아날로그 비교기를 비롯해 I2C, SPI 및 기타 직렬 인터페이스를 지원하도록 프로그래밍할 수 있는 여러 직렬 통신 모듈이 포함됩니다. SAM R34 및 R35 SiP은 R35가 R34에 포함된 USB 인터페이스를 제공하지 않는다는 점에서만 다릅니다. 그 점을 제외하고, 6mm x 6mm SAM R34/35 모듈은 다음 3가지 메모리 구성에서 동일합니다.
- ATSAMR3xJ16BT-I/7JX(64Kbytes 플래시, 8Kbits SRAM, 4Kbytes 저전력 SRAM 포함)
- ATSAMR3xJ17BT-I/7JX(128Kbytes 플래시, 16Kbits SRAM, 8Kbytes 저전력 SRAM 포함)
- ATSAMR3xJ18BT-I/7JX(256Kbytes 플래시, 32Kbits SRAM, 4Kbytes 저전력 SRAM 포함)

그림 2: Microchip Technology의 SAM R34/R35 시스템 인 패키지 모듈은 저전력 Arm Cortex-M0+ 프로세서 코어, Semtech SX1276 트랜시버, 메모리와 더불어 SAM R35의 USB를 제외한 여러 주변 장치를 결합합니다. (이미지 출처: Microchip Technology)
특별히 저전력 응용 제품을 위해 개발된 SiP 모듈은 기능적 활동이 적은 기간에는 전력 소모를 줄일 수 있도록 선택 가능한 여러 소프트웨어 옵션을 제공합니다. 개발자는 2가지 성능 수준에서 작동하도록 SAM R34/R35를 설정할 수 있습니다. 더 높은 성능 수준인 PL2에서는 장치 코어가 최고의 전압에서 작동하여 장치가 높은 클럭 속도에서 실행될 수 있게 합니다. 더 낮은 성능 수준인 PL0에서는 코어 전압 수준이 감소된 작동 주파수로 조정되어 전체적인 전력 소비가 줄어듭니다.
지정된 성능 수준에서 개발자는 장치가 다른 전력 모드에서 작동하도록 프로그램으로 전환할 수도 있습니다. 이 모듈은 유휴 모드에서 단 4.5mA만을 소비하며 Tx의 경우 단시간의 피크 수요가 28mA, Rx의 경우 10.3mA입니다. 개발자는 모듈을 활동 유지를 위해 특별히 프로그래밍된 기능을 제외하고 모든 시계와 기능을 꺼버리는 대기 모드로 설정해 모듈의 전력 소비를 1.4A로 낮출 수 있습니다. 또한 이 모듈은 선택된 주변 장치가 프로세서의 이벤트에 독립적으로 응답하고 주변 소자 작업을 수행하고 필요한 경우에만 프로세서를 깨울 수 있게 하는 SleepWalking 작업을 지원합니다. 장시간 동안 활동이 없으면 전력 소비를 낮추기 위해 모듈을 절전 모드로 설정할 수 있으며 이 경우 단 790nA만을 소비합니다. Microchip에서는 내부 SPI 버스의 높은 임피던스로 인해 발생하는 준안정 상태 때문에 장치를 끄기 상태로 두기를 꺼려합니다.
설계 구현
모듈의 통합 기능 덕분에 하드웨어 인터페이스 요구 사항은 간단합니다. 개발자는 SAM R34/R35 SiP을 위한 감결합 커패시터 외에 Skyworks Solutions의 SKY13373 같은 신호 스위치와 전송 및 수신 RF 신호 경로를 완료하는 데 필요한 수동 소자 부품만 추가하면 됩니다(그림 3).
그림 3: Microchip Technology의 SAM R34/R35 모듈을 갖춘 개발자에게는 RF 신호 경로와 Skyworks Solutions의 SKY13373 같은 관련 RF 스위치에 필요한 부품 외에 소수의 추가 부품이 필요합니다. (이미지 출처: Microchip Technology)
개발자는 Microchip Technology의 DM320111 SAM R34 Xplained Pro 평가 키트를 사용해 그러한 단순한 추가 하드웨어 요구 사항을 예방할 수 있습니다. 개발자는 키트를 이용해 즉시 SAM R34 평가를 시작하거나 맞춤형 장치를 위해 하드웨어 참조 설계를 확장할 수 있습니다.
또한 Microchip은 Atmel Studio 7 통합 개발 환경에서 사용할 수 있는 샘플 소프트웨어와 SAM R34/R35 모듈 펌웨어의 조합을 통해 소프트웨어 개발 속도를 높일 수 있습니다. 통합 Semtech SX1276 LoRa 트랜시버 및 PHY를 토대로 구축되는 SAM R34/R35 SiP은 내장된 Microchip의 LoRaWAN 스택(MLS)을 통해 인증된 LoRaWAN을 구현합니다(그림 4).

그림 4: Microchip LoRaWAN 스택(MLS)은 일련의 응용 제품 프로그래밍 인터페이스(API)를 통해 개발자에게 MAC, PHY, 영구적 스토리지, 전력 관리 등을 위한 펌웨어 서비스를 제공합니다. (이미지 출처: Microchip Technology)
장치 드라이버와 코어 모듈을 위한 Microchip의 ASF(Advanced Software Framework)를 기반으로 하는 MLS 펌웨어는 다음을 포함한 각 서비스를 위한 응용 제품 프로그래밍 인터페이스(API)를 제공합니다.
- LoRaWAN MAC, LoRaWAN MAC 계층 기능 제공
- LoRaWAN Radio Layer(TAL), LoRa 트랜시버에 대한 액세스 제공
- 영구 데이터 서버(PDS), 플래시 메모리에 서비스 계층을 제공해 MLS 파라미터 검색의 액세스 시간과 액세스 주기를 줄임
- 전력 관리자 모듈(PMM), 비활성 기간에 프로세서를 절전 모드로 전환
- 하드웨어 추출 계층(HAL), 하드웨어 특성으로부터 코드를 보호
- 타이머 라이브러리
- 스케줄러, 프로세서 리소스를 다른 모듈에 할당
개발자는 API 기능을 활용해 모듈 기능의 모든 측면을 세부적으로 제어할 수 있습니다. 예를 들어 모듈을 절전 모드로 전환하기 위해 개발자는 PMM API 함수인 PMM_Sleep()을 호출합니다. 이 함수는 절전 시간, 절전 모드(유휴, 대기, 절전 또는 끄기), 완료 콜백 함수를 포함하는 절전 요청 구조를 가지고 있습니다(목록 1). 응용 제품을 만들 때 개발자는 각 작업 후에 일반적으로 이 함수를 호출합니다. 예를 들어 Microchip의 ASF 분포에는 무한 루프 안에서 이 접근 방식을 사용하는 샘플 말단 장치 응용 제품이 포함됩니다(목록 2). 각 MLS API는 MLS 펌웨어 서비스에 유사한 진입점을 제공합니다.
복사 /* 절전 요청 구조 */ typedef struct _PMM_SleepReq_t { /* PMM에 요청된 절전 시간. 밀리초 단위 */ uint32_t sleepTimeMs; /* 절전 모드 */ HAL_SleepMode_t sleep_mode; /* 절전 요청에서 콜백 */ void (*pmmWakeupCallback)(uint32_t sleptDuration); } PMM_Sleep
목록 1: ASF(Microchip Advanced Software Framework) 분포는 Microchip Technology의 SAM R34/R35 모듈을 절전 모드로 전환하는 데 사용하는 구조와 같은 핵심 설계 패턴과 데이터 구조를 보여주는 샘플 소프트웨어를 제공합니다. (코드 출처: 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 } .
.
.
목록 2: Microchip의 샘플 소프트웨어는 개발자가 몇 가지 API 호출을 사용해 어떻게 Microchip Technology의 SAM R34/R35 모듈을 비활성 기간 중에 저전력 상태로 돌려놓을 수 있는지 보여줍니다. (코드 출처: Microchip Technology)
Studio 7을 통해서나 ASF 배포를 통해 별도로 사용 가능한 샘플 코드는 LoRaWAN 응용 제품을 구현할 때 MLS API 호출을 사용한 설계에 대한 포괄적인 시연을 제공합니다. 말단 장치 구현에 대한 시연은 PDS 영구 데이터 서버 서비스에서 이전에 저장된 MLS 특성과 파라미터를 검색해 장치를 초기화하는 작업을 포함해 중요한 고차원 작업을 보여줍니다(목록 3). 다른 샘플 소프트웨어는 개발자가 상세한 LoRaWAN 성능 특성과 그러한 값을 추출하는 데 사용되는 MLS API 호출을 조사하도록 지원하는 일련의 테스트 루틴을 제공합니다. 개발자는 SAM R34 Xplained Pro 평가 키트와 함께 Microchip의 소프트웨어 샘플을 사용하여 일반적인 LoRaWAN 작업과 특히 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); } }
목록 3: Microchip의 말단 장치 샘플 응용 제품에 대한 이 코드 조각은 PDS 영구 데이터 서버에서 LoRaWAN 특성을 복원(PDS_IsRestorable())하는 과정(사용 가능한 경우)을 비롯해 장치를 초기화하는 과정과 관련된 기본 설계 패턴을 보여줍니다. (코드 출처: Microchip Technology)
결론
LoRa 기술은 특히 배터리 구동식 IoT 센서를 위한 장거리 연결이 필요할 때 적합합니다. 과거에는 개발자가 하드웨어 및 소프트웨어 서브 시스템의 상당 부분을 개발해야 했습니다. 통합 하드웨어 및 펌웨어를 갖춘 Microchip의 SAM R34/R35 SiP 모듈은 초기 접근 방식과 관련된 상세한 설계 요구 사항 중 상당수를 효과적으로 제거할 수 있습니다. Microchip의 LoRaWAN 기반 하드웨어 및 소프트웨어를 함께 사용하면 클라우드나 전용 환경의 호스트 서버와 안전한 장거리 통신을 달성할 수 있는 배터리 구동식 IoT 장치 및 저전력 게이트웨이를 신속하게 구현할 수 있습니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.


