NeoIDM FOTA(Firmware over the air) ⑴ - 개요 : 네이버 블로그 (naver.com)
[ 연재 포스팅 ]
NeoIDM FOTA(Firmware over the air)에 대해서 아래 순서로 연재할 예정입니다.
1. NeoIDM FOTA ⑴- 개요
2. NeoIDM FOTA ⑵ - FOTA Campaign
3. NeoIDM FOTA ⑶ - Lwm2m firmware updates object 와 Update mechanism
NeoIDM FOTA(Firmware Over The Air) - ⑴ 개요
NeoIDM FOTA에 대해 알아보기 전에, FOTA가 무엇인지 먼저 말씀드리겠습니다.
FOTA(Firmware over the air)란?
무선 네트워크(Over the air)를 통해서, 디바이스의 Firmware(펌웨어)와 특정 데이터를 다운로드하여 업데이트하는 것입니다.
업데이트 방식에 따라 Full updates와 Incremental updates로 구분할 수 있습니다.
▶▶ Full Updates
디바이스의 이전 상태에 관련해서, 새로운 펌웨어(firmware)로 전체를 재 설치(reinstall) 하는 방식입니다.
따라서, 디바이스는 전체 펌웨어(firmware)를 다운로드하여 저장할 수 있는 공간을 제공하여야 합니다.
▶▶ Incremental Updates
기존(origin) firmware와 새로운(target) 펌웨어(firmware)와의 차이점(diff 또는 delta)만을 다운로드하여 업데이트하는 방식입니다. Full updates 방식에 비해, 작은 저장 공간을 사용하는 장점이 있습니다.
차이점으로 업데이트하는 방식이기 때문에 diff를 생성하고, 이를 이용하여 새로운 버전으로 업데이트하는 프로그램들이 추가로 필요합니다.
Diff를 생성하는 program을 diff generator, 새로운 버전으로 update 하는 program을 updates agent라 합니다.
│ FOTA 종류 │
Full Updates
|
Incremental Updates
|
|
방식
|
새로운 펌웨어로 전체를 재 설치(reinstall) 하는 방식.
|
차이점(diff 또는 delta)만을 다운로드하여 업데이트하는 방식.
|
유의사항
|
디바이스는 전체 firmware를 다운로드하여, 저장할 수 있는 공간을 제공해야 함.
|
diff를 생성하고, 이를 이용해서 새로운 버전으로 업데이트하는 프로그램들이 추가로 필요.
|
NeoIDM FOTA의 작업 흐름(workflow)과 구성 요소
FOTA를 서비스하기 위해서는 diff를 생성, 관리 및 디바이스로 배포하는 기능을 하는 서버의 역할과 diff를 다운로드하고, 업데이트를 수행하는 디바이스의 역할이 필요합니다.
FOTA 서비스의 구성 요소와 전체 작업 흐름(workflow)은 아래 [그림 1]과 같습니다.
│ NeoIDM의 전체 작업 흐름(workflow)│
[그림 1] NeoIDM FOTA Work Flow
│ NeoIDM의 구성요소 │
서버
|
디바이스
|
||
*NeoIDM
Diff Generator
|
디바이스의 펌웨어(firmware) 버전 간 diff를 생성
|
NeoIDM
Client
|
LwM2M 프로토콜을 사용하여, diff를 다운로드하고, 업데이트 진행 상태 및 결과를 서버에 보고
|
NeoIDM FOTA Campaign
|
업데이트 대상이 되는 디바이스를 선정하고 업데이트 수행 기간 등을 설정
|
*NeoIDM
Updates Agent
|
diff를 사용하여 디바이스 업데이트를 수행.
|
NeoIDM
Server
|
LwM2M 프로토콜을 사용하여 디바이스로 diff 다운로드 및 업데이트 실행 명령을 전달.
업데이트 결과를 수집하여
통계 처리 등을 수행.
|
NeoIDM Diff Generator와 Updates Agent
이어서 Incremental updates의 핵심 구성 요소인 Diff generator와 Updates agent에 대해서 좀 더 알아보겠습니다.
우선 업데이트 대상이 되는 디바이스 펌웨어(firmware) 데이터는 저장 형태에 따라
File system과 Flash memory system으로 구분할 수 있습니다.
File system의 디바이스는 파일들이 업데이트의 대상이 되고,
Flash memory system의 디바이스는 Flash memory의 Block data가 업데이트 대상이 됩니다.
File system과 Flash memory system가 모두 있는 디바이스는 각각 방식에 따라 system을 업데이트해서 적용합니다.
다만, NeoIDM Diff Generator는 Windows 또는 Linux OS의 환경의 Server에서 동작하며
NeoIDM Updates Agent는 디바이스 내에서 동작합니다.
File System을 위한 Diff Generator & Updates Agent
File System에 대한 diff를 생성할 수 있습니다.
[그림 2]는 origin version과 target version의 차이점을 나타냅니다.
- Diff Generator는 파일 추가, 삭제, 속성 등의 차이점을 추출합니다.
- Updates Agent는 diff를 사용하여, 파일 추가, 삭제, 속성 변경 등의 작업을 수행합니다.
[그림 2] 버전 간 file system 비교
Flash memory system을 위한 Diff Generator & Updates Agent
Flash memory system에 대한 diff를 생성할 수 있습니다.
[그림 3]은 origin version과 target version의 차이점을 나타냅니다.
- Diff Generator는 flash memory의 차이점을 특정 크기(block) 단위로 추출합니다.
- Updates Agent는 이를 이용하여, 특정 크기(block) 단위로 업데이트를 수행합니다.
[그림 3] 버전 간 Flash Memory 비교
다음 포스팅에서는 NeoIDM FOTA 연재를 통해서 NeoIDM FOTA Campaign, Lwm2m firmware updates object 와 update mechanism에 대해서 알아보겠습니다.
'경로 및 정보' 카테고리의 다른 글
Toyota’s global supplier management network (0) | 2023.02.08 |
---|---|
LIN 개요 (0) | 2023.02.07 |
[자동차SW블로그] 차량용 진단 프로토콜 UDS를 이용한 차량 진단 방법 및 Reprogramming 진행 과정 (0) | 2023.02.06 |
자동차 보안기술 (0) | 2023.02.06 |
HKMC 용어 경로 (0) | 2023.02.03 |