제퍼넷 로고

LwM2M: IoT 장치용 원격 펌웨어 업데이트 설명

시간

LwM2M: IoT 장치용 원격 펌웨어 업데이트 설명
일러스트 : © IoT For All

리소스가 제한된 IoT 장치가 점점 더 많이 배포됨에 따라 FOTA(펌웨어 무선 업데이트)가 점점 더 중요해지고 있습니다. 접근하기 어려운 원격 위치에서 대규모 배포를 운영할 때 물리적 액세스는 종종 비용이 많이 들거나 실현이 불가능하기 때문에 FOTA는 연결된 장치의 수명 동안 버그를 수정하고 보안 취약성을 패치하거나 기능을 추가할 수 있는 방법을 제공합니다. 가벼움 M2M (LwM2M)은 원격 펌웨어 업데이트 프로세스를 자세히 정의합니다. 프로토콜에서 제공하는 표준화된 지침을 따르면 사용하는 장치나 플랫폼에 관계없이 리소스가 제한된 장치의 펌웨어를 원격으로 쉽게 업데이트할 수 있습니다.

"리소스가 제한된 IoT 장치가 점점 더 많이 배포됨에 따라 FOTA(펌웨어 무선 업데이트)가 점점 더 중요해지고 있습니다."

LwM2M으로 펌웨어 업데이트

모든 플랫폼 또는 장치 공급업체는 사용자 정의 FOTA 메커니즘을 개발할 수 있습니다. 푸오타 (펌웨어 업데이트 OTA) 또는 DFU (장치 펌웨어 업그레이드). 장치 펌웨어를 업데이트하는 전 세계적으로 통합된 방법이 없기 때문에 시장에서 다양한 구현을 찾을 수 있습니다.

내장형 개발자는 특정 하드웨어 공급업체 또는 클라우드 서비스 공급자로부터 사용 가능한 라이브러리 중 하나를 가져와서 업데이트 프로세스를 관리할 수 있습니다. 그러나 이러한 구현은 공급업체 또는 플랫폼에 따라 다르며 다른 시스템으로 쉽게 이식할 수 없습니다. 새로운 플랫폼을 채택한다는 것은 일반적으로 FOTA 프로세스를 처음부터 다시 설계하는 것을 의미합니다.

벤더 호환성 문제는 하드웨어에 구애받지 않고 모든 하드웨어 플랫폼에서 구현할 수 있는 LwM2M 표준을 채택함으로써 해결할 수 있습니다. 이 표준은 장치 제조업체, 펌웨어 버전 또는 사용된 하드웨어 플랫폼에 관계없이 장치가 데이터를 보고하는 방법, 서버 명령을 사용하여 원격 구성을 수행하는 방법 및 펌웨어 업데이트를 실행할 수 있는 방법에 대한 명확한 지침을 제공합니다.

펌웨어 업데이트 프로세스

일반적으로 LwM2M 펌웨어 업데이트 프로세스는 XNUMX단계로 구성됩니다.

  1. IoT 장치(LwM2M 클라이언트라고 함)는 다음을 위해 트리거됩니다. 펌웨어 업데이트 프로세스를 시작합니다.
  2. LwM2M 클라이언트 펌웨어를 다운로드합니다 다운로드가 완료되면 LwM2M 서버에 보고합니다.
  3. LwM2M 클라이언트 펌웨어 업데이트를 수행합니다 라는 프로세스를 통해 새 펌웨어의 무결성과 진위 여부를 검증한 후 보안 부트.
  4. 클라이언트는 다음을 시도합니다. 새 펌웨어 실행 상태를 서버에 보고합니다. 성공하면 장치가 새 펌웨어 실행을 시작하고 오류가 발생하면 장치가 이전 펌웨어 버전으로 롤백을 수행합니다.

이 절차는 LwM2M 사양에 자세히 정의되어 있습니다(참조: LwM2M 사양). 장치에 펌웨어 업데이트 기능을 추가하려면 펌웨어 업데이트 개체 /5 업데이트를 수행하고 상태를 보고하기 위한 모든 필수 기능을 포함하는 구현이 필요합니다. 여러 LwM2M 클라이언트는 기본적으로 이 펌웨어 업데이트 개체를 지원합니다.

새 펌웨어 다운로드

할 때는 타이밍이 중요하다 펌웨어 업데이트. 무선 신호 품질이 좋지 않으면 재전송해야 하는 손실된 데이터 패킷으로 인해 낮은 처리량으로 인해 데이터 전송에 많은 시간이 걸릴 수 있습니다. 장치의 라디오 모듈은 오랫동안 연결된 상태여야 하므로 이러한 상황에서 파일을 다운로드하면 배터리가 더 빨리 소모됩니다.

LwM2M 표준은 펌웨어 업데이트를 수행하는 두 가지 방법을 정의하여 서버 또는 클라이언트가 펌웨어 다운로드 프로세스를 시작할 최적의 순간을 결정할 수 있도록 합니다. 두 가지 방법은 PULL 및 PUSH입니다.

PULL

풀 방식으로, 장치는 다운로드할 파일의 위치를 ​​수신하고 여기에서 파일을 가져옵니다. PULL 시나리오에서 LwM2M 서버는 다음과 같은 펌웨어 파일이 포함된 서버의 주소를 장치에 제공합니다. 패키지 URI. 이후 장치는 소위에서 펌웨어를 다운로드합니다. 펌웨어 리포지토리 최대한 빠른 기회에.

푸시

LwM2M 서버는 펌웨어 파일을 장치에 푸시합니다. PUSH 시나리오에서 LwM2M 서버는 이상적으로는 연결 상태에 따라 펌웨어 다운로드를 시작할 시점을 결정합니다. 장치는 이러한 서버 측 의사 결정을 지원하기 위해 무선 신호 강도 및 링크 품질과 같은 정보에 액세스할 수 있어야 합니다. 이러한 리소스는 다음에서 사용할 수 있습니다. LwM2M 연결 모니터링 개체 / 4.

펌웨어 업데이트 개체

FOTA 프로세스는 펌웨어 업데이트 개체 /5. 이 개체는 다음을 사용하여 업데이트 프로세스를 정의합니다. XNUMX 개 주(Resource/5/*/3에 의해 정의됨) 뿐만 아니라 여러 업데이트 결과(Resource/5/*/5로 정의됨) 펌웨어 업데이트 프로세스의 가장 일반적인 결과를 나타냅니다.

펌웨어 업데이트 개체 상태

상태 0: 유휴

펌웨어를 다운로드하기 전과 성공적으로 업데이트한 후 장치는 해당 상태를 유휴 상태로 보고합니다.

상태 1: 다운로드 중

새 펌웨어가 펌웨어 리포지토리에서 클라이언트로 이동 중입니다.

가능한 업데이트 결과 오류:

URI 확인 실패 원인 :
지원되지 않는 패키지 유형(결과 6)
잘못된 URI(결과 7)
지원되지 않는 프로토콜(결과 9)

다음으로 인해 다운로드 실패:
플래시 메모리 부족(결과 2)
RAM 부족(결과 3)
연결 손실(결과 4)
무결성 검사 실패(결과 5)

상태 2: 다운로드됨

펌웨어 다운로드가 완료되고 모든 패킷이 성공적으로 수신됩니다.

상태 3: 업데이트 중

업데이트 리소스가 트리거되면 LwM2M 클라이언트가 펌웨어 업데이트를 시작합니다. 업데이트가 성공적으로 수행되면 상태가 다시 유휴 (상태 0).

가능한 업데이트 결과:
펌웨어 업데이트 실패 (결과 8)
무결성 검사 실패 (결과 5)
펌웨어가 성공적으로 업데이트되었습니다. (결과 1)

상태 0: 유휴

펌웨어를 성공적으로 업데이트한 후 장치는 상태를 다음과 같이 보고합니다. 유휴 및 업데이트 결과는 다음과 같습니다. 펌웨어가 성공적으로 업데이트되었습니다..

필수 장치 업데이트

원격 IoT 장치 업데이트는 IoT 애플리케이션의 장기적인 성공에 필수적입니다. 수년 동안 작동해야 하는 현장에 장치를 배치할 때 소프트웨어 버그 및 보안 취약점이 발견됩니다. 장치에 대한 물리적 액세스를 실현하는 것이 불가능한 경우가 많기 때문에 모든 IoT 배포는 아니더라도 각 배포에 FOTA가 필요합니다.

펌웨어를 원격으로 업데이트하면 몇 가지 심각한 문제가 발생합니다. 장치는 (플래시) 메모리, 배터리 용량 및 사용 가능한 대역폭 측면에서 제약이 있으며 종종 불안정한 클라우드 연결을 사용합니다. LwM2M 표준은 리소스가 제한된 IoT 장치의 펌웨어를 업데이트하는 방법을 제안합니다. 표준화된 상태 및 오류 코드를 사용하는 구조화된 접근 방식을 통해 개발자는 사용하는 하드웨어 공급업체 또는 클라우드 플랫폼에 관계없이 새로운 펌웨어 이미지를 현장의 장치에 안전하게 전송할 수 있습니다.

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?