KR102068121B1 - 원격지 제어 디바이스의 펌웨어 업데이트시 시뮬레이션을 통해 펌웨어의 기능검증을 수행하는 펌웨어 관리 방법 - Google Patents

원격지 제어 디바이스의 펌웨어 업데이트시 시뮬레이션을 통해 펌웨어의 기능검증을 수행하는 펌웨어 관리 방법 Download PDF

Info

Publication number
KR102068121B1
KR102068121B1 KR1020190027512A KR20190027512A KR102068121B1 KR 102068121 B1 KR102068121 B1 KR 102068121B1 KR 1020190027512 A KR1020190027512 A KR 1020190027512A KR 20190027512 A KR20190027512 A KR 20190027512A KR 102068121 B1 KR102068121 B1 KR 102068121B1
Authority
KR
South Korea
Prior art keywords
firmware
control device
version
update
latest version
Prior art date
Application number
KR1020190027512A
Other languages
English (en)
Inventor
김두환
최성태
김민준
강성민
김정우
박승호
김기쁨
Original Assignee
(주)케이디티콘트롤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)케이디티콘트롤 filed Critical (주)케이디티콘트롤
Priority to KR1020190027512A priority Critical patent/KR102068121B1/ko
Application granted granted Critical
Publication of KR102068121B1 publication Critical patent/KR102068121B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

본 발명은 시뮬레이터를 이용한 원격지 디바이스의 펌웨어 관리 방법으로서, 버전 정보 요청 단계, 버전 정보 전송 단계, 데이터 파일 요청 단계, 데이터 파일 전송 단계, 전송에러 확인 단계, 시뮬레이션 프로그램으로 최신버전 펌웨어의 기능을 시뮬레이션 테스트하는 기능 테스트 단계, 제어 디바이스는 상기 최신버전 펌웨어가 상기 시뮬레이션 프로그램에 의해 정상적으로 작동되면 상기 시뮬레이션 프로그램을 종료하고, 최신버전 펌웨어를 펌웨어 메모리부로 전송하여 업데이트를 수행한 후 업데이트 성공메시지를 상기 버전관리 서버로 전송하는 펌웨어 업데이트 단계를 포함한다. 본 발명에 의하면 원격지에 존재하는 제어 디바이스의 펌웨어를 최신버전으로 업데이트하기 전에 기능 테스트를 수행함으로서 업데이트 과정에서 장애 발생시 오류 원인을 판별하여 기기의 고장 유무를 판단할 수 있는 효과가 있다. 또한 기능 테스트를 수행하는 동안에는 음식물 쓰레기 처리장치와 같은 외부 장치가 실제로 구동하지 않도록 설정할 수 있도록 함으로서 외부 장치를 사용하는 사용자가 놀라거나 장치에 이상이 있는 것으로 오인하는 것을 방지할 수 있는 효과가 있다.

Description

원격지 제어 디바이스의 펌웨어 업데이트시 시뮬레이션을 통해 펌웨어의 기능검증을 수행하는 펌웨어 관리 방법 {A Method Of Firmware Management Using Simulation within Remote Device}
본 발명은 원격지 디바이스의 펌웨어 관리 방법에 관한 것으로, 더욱 상세하게는 여러 개의 원격지에 있는 디바이스의 펌웨어에 대하여 업데이트와 같은 관리를 함에 있어서 디바이스 상에서 시뮬레이션 프로그램을 이용한 펌웨어 기능검증을 통해 펌웨어 동작의 안정성을 확보하는 원격지 제어 디바이스의 펌웨어 업데이트시 시뮬레이션을 통해 펌웨어의 기능검증을 수행하는 펌웨어 관리 방법에 관한 것이다.
일반적으로 어떤 장치를 제어하기 위해서는 제어 디바이스가 필요하다. 제어 디바이스는 통상 펌웨어라고 불리는 프로그램에 의하여 동작되고 보통 EPROM 과 같은 읽기전용 메모리에 저장되고 구동된다. 이러한 펌웨어는 종종 업데이트가 필요한 경우가 생기는데 보통은 사용자 또는 관리자가 직접 제어 디바이스에 접속하여 프로그램을 업데이트 시킬 수가 있다. 한편 제어 디바이스가 원격지에 있고 사용자가 기기 사용에 익숙하지 않은 경우에는 펌웨어를 업데이트시키는 것이 문제된다. 관리자가 일일이 방문하여 업데이트를 시켜야 하지만 시간과 비용이 문제될 수 있다.
음식물 쓰레기 처리장치는 사용자가 가정에서 투입한 음식물 쓰레기를 분해하고 음식물 쓰레기를 음식물 쓰레기 처리장으로 배출하는 장치이다. 음식물 쓰레기 처리장치의 구성요소 중에서 제어 디바이스는 음식물 쓰레기 처리장치의 구성요소인 모터, 밸브와 같은 장치들을 제어한다. 음식물 쓰레기 처리장치는 사용자가 음식물 쓰레기를 음식물 쓰레기 처리장치에 투입하였을 때 음식물 쓰레기를 이송하기 쉽도록 모터와 연결된 분쇄기를 작동하거나 음식물 쓰레기장으로 이송하기 위해 진공을 이용한 압력 제어 또는 밸브 제어와 같은 기능들을 수행한다. 제어 디바이스에는 펌웨어가 탑재되어 이러한 기능들을 제어할 수 있는데 기능 개선을 위해 주기적 또는 비주기적으로 펌웨어 업데이트가 필요하다. 가정의 사용자는 비전문가로서 펌웨어 업데이트를 직접 수행하는 것이 곤란한 경우가 많고 아파트와 같이 다수의 음식물 쓰레기 처리장치가 산재해 있는 경우에는 일일이 방문하여 펌웨어 업데이트를 수행하는 것도 시간적 비용적으로 문제가 된다.
여러 원격지에 산재된 제어 디바이스에 탑재되는 펌웨어의 업데이트 관리를 원격에서 수행하려면 펌웨어 버전관리를 수행할 수 있는 버전관리 서버가 필요하고, 업데이트 과정에서 발생할 수 있는 장애를 제거하기 위하여 펌웨어 전송 오류 검출 및 유효성에 대한 검증도 필요하다.
종래기술의 펌웨어 업데이트 서버에 따르면 단순히 펌웨어 모듈의 요청에 따라 펌웨어 업데이트 데이터를 송신하는 정도의 기능에 불과하여 원격지에 존재하는 다수의 제어 디바이스에 대한 펌웨어 업데이트 여부 및 업데이트 장애 발생 여부를 개별적으로 관리할 수 있는 방안이 필요하다. 또한 업데이트 할 시 통신 오류 혹은 펌웨어 자체의 오류로 인한 디바이스 장애시 이를 해결하기 위해서 직접 사람이 디바이스 장치를 초기화 하는 방법 밖에 없었으나 펌웨어의 안정성을 확보하기 위하여는 펌웨어 업데이트 전에 사전 유효성 검증을 통하여 장애 발생 포인트를 사전 검출함과 아울러 업데이트 과정에서 장애 발생시 각각의 장애 포인트들이 펌웨어의 오류로 인한 것인지 아니면 디바이스 자체의 오류로 인한 것인지를 판별하여 기기의 고장 유무를 판단할 수 있는 방안이 필요하다.
제어 디바이스가 음식물 쓰레기 처리장치를 제어하는 경우 개선된 펌웨어 기능에 대한 검증을 제어 디바이스 상에서 실제로 기능 테스트를 수행할 경우 음식물 쓰레기 처리장치가 실제로 동작하게 되고, 이러한 상황은 주변의 사용자를 놀라게 할 수 있으며 실제 작동이 요구되는 상황이 아닌 데도 동작됨으로써 전력 낭비가 발생할 수 있다. 따라서 제어 디바이스에서 펌웨어를 업데이트하기 전에 제어 디바이스 상에서 시뮬레이션을 수행하되 외부 장치 구동 없이 수행할 수 있는 펌웨어 관리 방안이 요구된다.
특허문헌 1: 대한민국 등록특허공보 제10-1703240호
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로, 본 발명의 목적은 원격지에 존재하는 제어 디바이스의 펌웨어를 업데이트하기 전에 디바이스 상에서 기능 오류 등을 검증하기 위한 기능 테스트를 수행함으로서 업데이트 과정에서 장애 발생시 각각의 장애 포인트들이 펌웨어의 오류로 인한 것인지 아니면 디바이스 자체의 오류로 인한 것인지를 판별하여 기기의 고장 유무를 판단할 수 있는 원격지 제어 디바이스의 펌웨어 관리 방법을 제공하는 것이다. 또한 원격지 제어 디바이스의 펌웨어를 시뮬레이션하여 기능 테스트를 수행하는 동안에는 음식물 쓰레기 처리장치와 같은 외부 장치가 실제로 구동하지 않도록 설정할 수 있도록 함으로서, 실제적인 테스트를 수행하되 외부 장치는 동작하지 않도록 함으로서 장치를 사용하는 사용자가 놀라거나 장치에 이상이 있는 것으로 오인하는 것을 방지하기 위한 원격지 제어 디바이스의 펌웨어 관리 방법을 제공하는 것이다.
상술한 과제를 해결하기 위하여 본 발명은 원격지 제어 디바이스의 펌웨어 업데이트시 시뮬레이션을 통해 펌웨어의 기능검증을 수행하는 펌웨어 관리 방법에 있어서, 상기 제어 디바이스가 펌웨어의 업데이트 수행 여부를 결정하기 위하여 최신 버전 정보를 버전관리 서버에 요청하는 버전 정보 요청 단계; 상기 버전관리 서버가 상기 제어 디바이스로 상기 펌웨어의 최신 버전 정보를 전송하는 버전 정보 전송 단계; 상기 제어 디바이스는 구동중인 펌웨어의 버전 정보와 전송받은 상기 최신 버전 정보를 비교하여 구동중인 펌웨어의 업데이트가 필요한 경우 상기 버전관리 서버로 최신 버전 펌웨어 업데이트에 필요한 데이터 파일의 전송을 요청하는 데이터 파일 요청 단계; 상기 버전관리 서버는 상기 최신 버전 펌웨어 데이터 파일과, 펌웨어를 제어 디바이스 상에서 기능 테스트할 수 있는 시뮬레이션 프로그램 데이터 파일과, 변경된 기능정보 데이터 파일과, 전송되는 데이터 파일의 전송에러를 검증하기 위한 해쉬값을 포함하는 보안정보를 상기 제어 디바이스로 전송하는 데이터 파일 전송 단계; 상기 제어 디바이스가 상기 버전관리 서버에서 전송받은 상기 보안정보의 해쉬값과 전송받은 데이터 파일들로부터 생성되는 해쉬값을 비교하여 전송에러 유무를 확인하는 전송에러 확인 단계; 상기 제어 디바이스는 해쉬값 비교결과 에러가 없는 경우 데이터 파일들로부터 최신버전 펌웨어와, 시뮬레이션 프로그램과, 변경된 기능정보를 탑재하고 시뮬레이션 프로그램으로 최신버전 펌웨어의 기능을 시뮬레이션 테스트하는 기능 테스트 단계; 상기 제어 디바이스는 상기 최신버전 펌웨어가 상기 시뮬레이션 프로그램에 의해 정상적으로 작동되면 상기 시뮬레이션 프로그램을 종료하고, 최신버전 펌웨어를 펌웨어 메모리부로 전송하여 업데이트를 수행한 후 업데이트 성공메시지를 상기 관리서버로 전송하는 펌웨어 업데이트 단계;를 포함한다.
상기 제어 디바이스는, 상기 최신버전 펌웨어를 테스트하기 위해 상기 시뮬레이션 프로그램을 저장하고 구동하는 시뮬레이션 구동부; 상기 시뮬레이션 프로그램 구동시 외부 장치를 제어하기 위한 제어 출력 단자의 연결 방향을 외부 장치 단자 측으로부터 시뮬레이션 모드 단자 측로 절체시키기 위한 출력 단자 절체 스위치부; 상기 버전관리 서버로부터 전송받은 최신버전 펌웨어를 시뮬레이션하기 위해 임시 저장하는 시뮬레이션 펌웨어 메모리부; 상기 제어 디바이스에서 현재 구동중인 펌웨어를 저장하는 펌웨어 메모리부; 및 상기 제어 디바이스를 제어하는 제어부;를 포함한다.
상기 제어부는 시뮬레이션 프로그램으로 최신버전 펌웨어를 테스트하는 동안에는 제어 출력이 외부 장치를 구동하지 못하도록 상기 출력 단자 절체 스위치부를 동작시켜 제어 출력 단자의 연결 방향을 외부 장치 단자 측에서 시뮬레이션 모드 단자 측으로 절체하는 것을 특징으로 한다.
본 발명에 따르면 원격지에 존재하는 제어 디바이스의 펌웨어를 최신버전으로 업데이트하기 전에 디바이스 상에서 기능 오류 등을 검증하기 위한 기능 테스트를 수행함으로서 업데이트 과정에서 장애 발생시 각각의 장애 포인트들이 펌웨어의 오류로 인한 것인지 아니면 디바이스 자체의 오류로 인한 것인지를 판별하여 기기의 고장 유무를 판단할 수 있는 효과가 있다. 또한 원격지 제어 디바이스의 펌웨어를 시뮬레이션하여 기능 테스트를 수행하는 동안에는 음식물 쓰레기 처리장치와 같은 외부 장치가 실제로 구동하지 않도록 설정할 수 있도록 함으로서, 실제적인 테스트를 수행하되 외부 장치는 동작하지 않도록 함으로서 장치를 사용하는 사용자가 놀라거나 장치에 이상이 있는 것으로 오인하는 것을 방지할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 원격지 제어 디바이스의 펌웨어 관리 방법을 설명하기 위한 시스템의 전체적인 구성도이다.
도 2는 본 발명의 일 실시예에 따른 원격지 제어 디바이스의 펌웨어 관리 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 제어 디바이스의 구성도이다.
도 4는 본 발명의 일 실시예에 따른 출력 단자 절체 스위치부의 구성도이다.
본 명세서에서 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "사이에"와 "바로~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서 "포함하다" 또는 "가지다" 등의 용어를 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 따른 원격지 제어 디바이스의 펌웨어 관리 방법에 관하여 살펴보기로 한다.
도 1은 본 발명의 일 실시예에 따른 원격지 제어 디바이스의 펌웨어 관리 방법을 설명하기 위한 시스템의 전체적인 구성도이다.
도 1을 참조하면 본 발명의 일 실시예에 따른 전체적인 시스템은 관리실 또는 중앙제어실에 위치하며 원격지의 제어 디바이스들과 통신망을 통하여 연결되는 버전관리 서버와, 원격지에 위치하며 외부 장치와 연결되어 외부 장치를 제어하는 제어 디바이스와, 제어 디바이스로부터 제어 출력을 받아 동작하는 외부장치로 구성된다.
제어 디바이스와 외부 장치는 아파트 각 가정과 같이 여러 개소에 위치할 수 있다. 외부 장치는 본 발명에서는 구체적인 도시를 하지는 않았지만 음식물 쓰레기 처리 장치와 같은 가정용 편의 장치일 수 있으나 이에 한정되는 것은 아니며, 냉장고, 셋톱박스 등 다양한 장치가 될 수 있다. 제어 디바이스는 편의상 도면에서는 외부장치 하나에만 연결 되는 것으로 도시되었으나, 여러 개의 외부장치가 하나의 제어 디바이스에 연결 될 수 있으며 이러한 정도의 설계변경은 통상의 기술자에게 통상적인 사항에 불과하므로 상세한 설명은 생략한다. 제어 디바이스에는 외부 장치를 제어하기 위한 펌웨어가 탑재되는데 펌웨어는 외부 장치를 기능별로 제어하기 위한 프로그램을 통칭하는 용어이다. 펌웨어는 기능 개선 등의 필요에 따라 업데이트를 해야 할 경우가 발생할 수 있다. 이를 위해 제어 디바이스는 주기적으로 버전관리 서버로 펌웨어의 최신 버전 정보를 문의할 필요가 있다.
버전관리 서버는 원격지에 위치한 제어 디바이스의 펌웨어에 대한 최신 버전 정보와 최신버전 펌웨어와 시뮬레이션 프로그램 및 개선된 기능 정보 등의 데이터 파일을 보관하고 있다. 또한 각각의 제어 디바이스로부터 펌웨어 업데이트 완료 정보를 보관하고 있어서 각 제어 디바이스의 펌웨어의 현재 버전을 관리한다. 필요에 따라서는 업데이트가 있음을 통신망을 통하여 제어 디바이스로 알려 업데이트를 수행할 수 있도록 구성될 수도 있다. 통신망은 유선 또는 무선 아니면 유무선 복합망으로 구성될 수 있다.
도 2은 본 발명의 일 실시예에 따른 원격지 제어 디바이스의 펌웨어 관리 방법을 설명하기 위한 흐름도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 원격지 제어 디바이스의 펌웨어 관리 방법은 버전정보 요청 단계, 버전정보 전송 단계, 데이터 파일 요청 단계, 데이터 파일 전송단계, 전송에러 확인 단계, 기능 테스트 단계 및 펌웨어 업데이트 단계를 포함한다.
버전 정보 요청 단계에서 제어 디바이스는 펌웨어의 업데이트 수행 여부를 결정하기 위하여 최신 버전 정보를 버전관리 서버에 요청한다. 요청은 주기적으로 이루어질 수 있으며, 필요에 따라 버전관리 서버의 통지에 의하여 실행될 수도 있다.
버전 정보가 요청되면 버전관리 서버는 버전 정보 전송 단계에서 제어 디바이스로 펌웨어의 최신 버전 정보를 전송하게 된다.
데이터 파일 요청 단계에서 제어 디바이스는 구동중인 펌웨어의 버전 정보와 전송받은 상기 최신 버전 정보를 비교하여 구동중인 펌웨어의 업데이트가 필요한 경우 상기 버전관리 서버로 최신 버전 펌웨어 업데이트에 필요한 데이터 파일의 전송을 요청한다.
데이터 파일 전송 단계에서 버전관리 서버는 상기 최신 버전 펌웨어 데이터 파일과, 펌웨어를 제어 디바이스 상에서 기능 테스트할 수 있는 시뮬레이션 프로그램 데이터 파일과, 변경된 기능정보 데이터 파일과, 전송되는 데이터 파일의 전송에러를 검증하기 위한 해쉬값을 포함하는 보안정보를 상기 제어 디바이스로 전송한다. 전송되는 데이터 파일에는 최신버전 펌웨어외에도 해당 버전에서 개선된 기능에 대한 정보인 변경된 기능정보와 아울러 변경된 기능을 제어 디바이스 상에서 테스트할 수 있는 시뮬레이션 프로그램도 포함된다. 시뮬레이션 프로그램은 제어 디바이스에서 최신버전 펌웨어를 업데이트하기 전에 테스트를 수행하며 펌웨어의 제어기능 전체를 테스트하거나 개선된 기능만을 테스트할 수 있도록 구성된다. 또한 버전관리 서버는 데이터 파일 전송 중에 발생할 수 있는 전송오류 등에 대응하기 위하여 전체 데이터 파일에 대하여 계산된 해쉬값을 포함하는 보안정보도 제어 디바이스로 전송한다.
전송에러 확인 단계에서 제어 디바이스는 상기 버전관리 서버에서 전송받은 상기 보안정보의 해쉬값과 전송받은 데이터 파일들로부터 생성되는 해쉬값을 비교하여 전송에러 유무를 확인한다. 이 과정에서 전송에러가 발생하였다면 제어 디바이스는 버전관리 서버로 재전송을 요청하는 등의 조치를 취할 수 있다.
제어 디바이스는 해쉬값 비교결과 에러가 없는 경우 기능 테스트 단계를 수행한다. 기능 테스트 단계에서 제어 디바이스는 데이터 파일들로부터 최신버전 펌웨어와, 시뮬레이션 프로그램과, 변경된 기능정보를 탑재하고 시뮬레이션 프로그램으로 최신버전 펌웨어의 기능을 시뮬레이션 테스트한다.
도 3을 참조하면, 제어 디바이스는 펌웨어 메모리부와, 시뮬레이션 구동부와, 시뮬레이션 펌웨어 메모리부와, 출력 단자 절체 스위치부 및 제어부를 포함한다.
펌웨어 메모리부는 제어 디바이스에서 현재 구동중인 펌웨어를 저장한다. 펌웨어 메모리부는 EEPROM으로 구성될 수 있으나 이에 한정되는 것은 아니며 플래쉬 메모리 등 필요에 따라 다양한 종류의 메모리가 사용될 수 있다. 시뮬레이션 구동부는 최신버전 펌웨어를 테스트하기 위해 상기 시뮬레이션 프로그램을 저장하고 구동한다. 시뮬레이션 프로그램은 최신버전 펌웨어의 전체적인 기능을 실제로 동작시켜 테스트할 수 있으며 필요에 따라 개선된 기능만 테스트할 수도 있다.
시뮬레이션 펌웨어 메모리부는 버전관리 서버로부터 전송받은 최신버전 펌웨어를 시뮬레이션하기 위해 임시 저장한다.
제어부는 제어 디바이스 전체를 관리하고 제어하는 기능을 수행하는데 펌웨어 업데이트 전에 시뮬레이션 테스트가 필요한지 여부를 판단하여 시뮬레이션 시작 여부를 결정하게 된다. 제어부는 시뮬레이션 테스트가 시작되면 현재 구동중인 펌웨어를 중지시키고 시뮬레이션 펌웨어 메모리부의 펌웨어로 동작하도록 제어하게 된다. 또한 시뮬레이션 테스트가 시작되면 제어부는 출력 단자 절체 스위치부를 동작시켜 상기 시뮬레이션 프로그램 구동시 외부 장치를 제어하기 위한 제어 출력 단자의 연결 방향을 외부 장치 단자 측으로부터 시뮬레이션 모드 단자 측로 절체시킨다. 제어부의 각 구성요소들은 하나의 PCB 기판에 형성될 수 있다. 특히 출력 단자 절체 스위치부는 물리적인 스위치로 구성될 수 있으며 이는 외부 장치와 제어 디바이스를 전기적으로 완전히 분리시킬 수 있도록 한다.
도 4를 참조하면 출력 단자 절체 스위치부에서 평상시 제어 디바이스의 제어출력 단자는 외부 장치 단자와 연결된 상태에 있다. 이 상태에서 제어 디바이스의 제어 출력은 외부 장치로 전달되며 외부 장치는 실제 작동을 수행하게 된다. 제어 출력은 여러 개의 출력으로 구성될 수 있으며 출력 단자 절체 스위치부는 동시에 여러 개의 제어 출력을 절체하거나 개별적으로 절체 여부를 제어할 수 있도록 구성될 수 있다.
제어 디바이스는 시뮬레이션 프로그램을 구동하여 최신버전 펌웨어를 테스트하는 동안에는 제어 출력이 외부 장치를 구동하지 못하도록 상기 출력 단자 절체 스위치부를 동작시켜 제어 출력 단자의 연결 방향을 외부 장치 단자 측에서 시뮬레이션 모드 단자 측으로 절체하도록 제어한다. 이에 따라 외부 장치를 실제로 작동시키지 않고도 최신버전 펌웨어를 업데이트 하기 전에 실제적인 테스트를 수행할 수 있으며 이를 통해 최신버전 펌웨어의 프로그램상의 오류 또는 제어 디바이스의 하드웨어 상의 문제를 파악할 수 있다.
상기 제어 디바이스는 상기 최신버전 펌웨어가 상기 시뮬레이션 프로그램에 의해 정상적으로 작동되면 상기 시뮬레이션 프로그램을 종료하고 펌웨어 업데이트 단계를 수행한다. 업데이트는 최신버전 펌웨어를 펌웨어 메모리부로 전송하는 것으로 이루어지며 최신버전 펌웨어가 펌웨어 메모리부에 탑재가 완료되면 제어 디바이스는 재부팅 과정을 거쳐 업데이트 과정을 종료하고 상기 버전관리 서버로 업데이트 성공메시지를 전송한다.
외부 장치는 도면에 도시되지는 않았지만 음식물 쓰레기 처리 장치와 같은 가정용 편의장치일 수 있다. 음식물 쓰레기 처리 장치는 제어 디바이스를 포함하여 구성될 수 있고 도 1과 같이 제어 디바이스와 분리되어 구성될 수도 있다. 제어 디바이스는 상기 음식물 쓰레기 처리 장치의 분쇄기, 밸브와 같은 하드웨어의 상태를 파악하고 제어한다. 상기 제어부를 통해 음식물 쓰레기를 음식물 쓰레기 처리장으로 보내거나 음식물 쓰레기를 분해하는 장치들을 작동시킨다. 외부 장치에는 디스플레이부(미도시)가 포함될 수 있으며 제어 디바이스는 시뮬레이션 테스트가 수행 중에는 펌웨어 업데이트 중임을 표시할 수 있다. 또한, 상기 디스플레이부는 상기 제어 디바이스에서 파악한 오류상태를 표시할 수도 있다.
이상으로 본 발명에 따른 시뮬레이터를 이용한 원격지 제어 디바이스의 펌웨어 관리 방법에 대한 바람직한 실시 예에 관하여 설명하였다.
전술된 실시 예는 모든 면에서 예시적인 것이며, 한정적인 것이 아닌 것으로 이해되어야 하며, 본 발명의 범위는 전술된 상세한 설명보다는 후술 될 특허청구범위에 의하여 나타내어질 것이다. 그리고 이 특허청구범위의 의미 및 범위는 물론, 그 등가 개념으로부터 도출되는 모든 변경 및 변형 가능한 형태가 본 발명의 범주에 포함되는 것으로 해석되어야 한다.

Claims (3)

  1. 원격지 제어 디바이스의 펌웨어 업데이트시 시뮬레이션을 통해 펌웨어의 기능검증을 수행하는 펌웨어 관리 방법에 있어서,
    상기 제어 디바이스가 펌웨어의 업데이트 수행 여부를 결정하기 위하여 최신 버전 정보를 버전관리 서버에 요청하는 버전 정보 요청 단계;
    상기 버전관리 서버가 상기 제어 디바이스로 상기 펌웨어의 최신 버전 정보를 전송하는 버전 정보 전송 단계;
    상기 제어 디바이스는 구동중인 펌웨어의 버전 정보와 전송받은 상기 최신 버전 정보를 비교하여 구동중인 펌웨어의 업데이트가 필요한 경우 상기 버전관리 서버로 최신 버전 펌웨어 업데이트에 필요한 데이터 파일의 전송을 요청하는 데이터 파일 요청 단계;
    상기 버전관리 서버는 상기 최신 버전 펌웨어 데이터 파일과, 펌웨어를 제어 디바이스 상에서 기능 테스트할 수 있는 시뮬레이션 프로그램 데이터 파일과, 변경된 기능정보 데이터 파일과, 전송되는 데이터 파일의 전송에러를 검증하기 위한 해쉬값을 포함하는 보안정보를 상기 제어 디바이스로 전송하는 데이터 파일 전송 단계;
    상기 제어 디바이스가 상기 버전관리 서버에서 전송받은 상기 보안정보의 해쉬값과 전송받은 데이터 파일들로부터 생성되는 해쉬값을 비교하여 전송에러 유무를 확인하는 전송에러 확인 단계;
    상기 제어 디바이스는 해쉬값 비교결과 에러가 없는 경우 데이터 파일들로부터 최신버전 펌웨어와, 시뮬레이션 프로그램과, 변경된 기능정보를 탑재하고 시뮬레이션 프로그램으로 최신버전 펌웨어의 기능을 시뮬레이션 테스트하는 기능 테스트 단계;
    상기 제어 디바이스는 상기 최신버전 펌웨어가 상기 시뮬레이션 프로그램에 의해 정상적으로 작동되면 상기 시뮬레이션 프로그램을 종료하고, 최신버전 펌웨어를 펌웨어 메모리부로 전송하여 업데이트를 수행한 후 업데이트 성공메시지를 상기 버전관리 서버로 전송하는 펌웨어 업데이트 단계;를 포함하고,
    상기 제어 디바이스는,
    상기 제어 디바이스에서 현재 구동중인 펌웨어를 저장하는 펌웨어 메모리부;
    상기 최신버전 펌웨어를 테스트하기 위해 상기 시뮬레이션 프로그램을 저장하고 구동하는 시뮬레이션 구동부;
    상기 버전관리 서버로부터 전송받은 최신버전 펌웨어를 시뮬레이션하기 위해 임시 저장하는 시뮬레이션 펌웨어 메모리부;
    외부 장치와 제어 디바이스를 전기적으로 완전히 분리시킬 수 있도록 물리적인 스위치로 구성되며, 상기 시뮬레이션 프로그램 구동시 외부 장치를 제어하기 위한 제어 출력 단자의 연결 방향을 외부 장치 단자 측으로부터 시뮬레이션 모드 단자 측로 절체시키기 위한 출력 단자 절체 스위치부; 및
    상기 제어 디바이스를 제어하는 제어부;를 포함하며,
    외부 장치에는 디스플레이부가 포함되어 시뮬레이션 테스트가 수행 중에는 펌웨어 업데이트 중임을 표시하거나 제어 디바이스에서 파악한 오류상태를 표시하는 것을 특징으로 하는 원격지 제어 디바이스의 펌웨어 업데이트시 시뮬레이션을 통해 펌웨어의 기능검증을 수행하는 펌웨어 관리 방법.
  2. 청구항 1에 있어서,
    상기 제어부는 시뮬레이션 프로그램으로 최신버전 펌웨어를 테스트하는 동안에는 제어 출력이 외부 장치를 구동하지 못하도록 상기 출력 단자 절체 스위치부를 동작시켜 제어 출력 단자의 연결 방향을 외부 장치 단자 측에서 시뮬레이션 모드 단자 측으로 절체하는 것을 특징으로 하는 시뮬레이터를 이용한 원격지 제어 디바이스의 펌웨어 관리 방법.
  3. 청구항 1에 있어서,
    상기 버전관리 서버는 각 제어 디바이스의 펌웨어의 현재 버전을 관리하고 업데이트가 필요한 경우 업데이트가 있음을 통신망을 통하여 제어 디바이스로 알려 업데이트를 수행하도록 하는 것을 특징으로 하는 시뮬레이터를 이용한 원격지 제어 디바이스의 펌웨어 관리 방법.
KR1020190027512A 2019-03-11 2019-03-11 원격지 제어 디바이스의 펌웨어 업데이트시 시뮬레이션을 통해 펌웨어의 기능검증을 수행하는 펌웨어 관리 방법 KR102068121B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190027512A KR102068121B1 (ko) 2019-03-11 2019-03-11 원격지 제어 디바이스의 펌웨어 업데이트시 시뮬레이션을 통해 펌웨어의 기능검증을 수행하는 펌웨어 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190027512A KR102068121B1 (ko) 2019-03-11 2019-03-11 원격지 제어 디바이스의 펌웨어 업데이트시 시뮬레이션을 통해 펌웨어의 기능검증을 수행하는 펌웨어 관리 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020180122304A Division KR101960724B1 (ko) 2018-10-15 2018-10-15 시뮬레이터를 이용한 원격지 디바이스의 펌웨어 관리 방법

Publications (1)

Publication Number Publication Date
KR102068121B1 true KR102068121B1 (ko) 2020-01-20

Family

ID=69368021

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190027512A KR102068121B1 (ko) 2019-03-11 2019-03-11 원격지 제어 디바이스의 펌웨어 업데이트시 시뮬레이션을 통해 펌웨어의 기능검증을 수행하는 펌웨어 관리 방법

Country Status (1)

Country Link
KR (1) KR102068121B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220046843A (ko) * 2020-10-08 2022-04-15 주식회사 엑스게이트 취약점 탐지 방법 및 취약점 탐지 시스템
WO2023068817A1 (ko) * 2021-10-19 2023-04-27 (주)클로버추얼패션 렌더링 결과 테스트 방법 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060087841A (ko) * 2005-01-31 2006-08-03 삼성전자주식회사 펌웨어 파일 정보를 관리하는 장치, 펌웨어 파일 정보를이용하여 펌웨어를 업데이트하는 장치, 및 그 방법
KR20120117504A (ko) * 2011-04-15 2012-10-24 삼성전자주식회사 통신 시스템 및 그 통신 시스템에서 소프트웨어 업데이트 방법
KR101703240B1 (ko) 2015-12-01 2017-02-06 주식회사 멈스 음식물 쓰레기 처리장치의 펌웨어 업데이트 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060087841A (ko) * 2005-01-31 2006-08-03 삼성전자주식회사 펌웨어 파일 정보를 관리하는 장치, 펌웨어 파일 정보를이용하여 펌웨어를 업데이트하는 장치, 및 그 방법
KR20120117504A (ko) * 2011-04-15 2012-10-24 삼성전자주식회사 통신 시스템 및 그 통신 시스템에서 소프트웨어 업데이트 방법
KR101703240B1 (ko) 2015-12-01 2017-02-06 주식회사 멈스 음식물 쓰레기 처리장치의 펌웨어 업데이트 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220046843A (ko) * 2020-10-08 2022-04-15 주식회사 엑스게이트 취약점 탐지 방법 및 취약점 탐지 시스템
KR102439928B1 (ko) * 2020-10-08 2022-09-05 주식회사 엑스게이트 취약점 탐지 방법 및 취약점 탐지 시스템
WO2023068817A1 (ko) * 2021-10-19 2023-04-27 (주)클로버추얼패션 렌더링 결과 테스트 방법 및 장치

Similar Documents

Publication Publication Date Title
US10545469B2 (en) Systems and methods for self provisioning building equipment
US9239718B2 (en) System for field upgrading of firmware in multiple units
US9021462B2 (en) Systems and methods for provisioning equipment
CN106249704B (zh) 基于完整性控制工业企业系统中端点的通信的方法和装置
US11836686B2 (en) Feedback based automated maintenance system
US20030051235A1 (en) Method and apparatus for verifying and analyzing computer software installation
CN106648781B (zh) 通信设备远程固件升级方法及系统
US9477456B2 (en) Method for installing and simultaneously updating operating system software
KR102068121B1 (ko) 원격지 제어 디바이스의 펌웨어 업데이트시 시뮬레이션을 통해 펌웨어의 기능검증을 수행하는 펌웨어 관리 방법
CN105635108A (zh) 具有应用包分类器的防火墙
JP2011118658A (ja) フィールドバスシステム
KR101960724B1 (ko) 시뮬레이터를 이용한 원격지 디바이스의 펌웨어 관리 방법
CN111290351A (zh) 一种驱动器管理方法、系统、计算机设备及存储介质
CN108920171A (zh) 固件更新方法及装置、电子设备
US20130116804A1 (en) Method for automatically transferring a configuration of an automation device during replacement of an automation device
US10237131B2 (en) Communication adapter and program update method for communication adapter
JP2007249748A (ja) バージョン管理機能を有するネットワーク機器
JP2006302174A (ja) 端末機能更新システム
JP3738706B2 (ja) 装置内バージョン統一方式
US11442720B2 (en) Communication adapter and program update method for communication adapter
TWI585587B (zh) A display management system, a server device, and a programmable display control method
JP2009232282A (ja) ネットワークシステム
CN113094251A (zh) 嵌入式系统测试方法、装置、计算机设备和存储介质
JP2009177466A (ja) ネットワーク接続機器の保持情報更新システム
KR20200112137A (ko) Plc 시스템의 펌웨어 관리 장치 및 방법과, 그 plc 시스템

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant