KR101019822B1 - 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법 및 장치 - Google Patents

무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법 및 장치 Download PDF

Info

Publication number
KR101019822B1
KR101019822B1 KR1020080122223A KR20080122223A KR101019822B1 KR 101019822 B1 KR101019822 B1 KR 101019822B1 KR 1020080122223 A KR1020080122223 A KR 1020080122223A KR 20080122223 A KR20080122223 A KR 20080122223A KR 101019822 B1 KR101019822 B1 KR 101019822B1
Authority
KR
South Korea
Prior art keywords
image
update
delta
encoded
program
Prior art date
Application number
KR1020080122223A
Other languages
English (en)
Other versions
KR20100063869A (ko
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 KR1020080122223A priority Critical patent/KR101019822B1/ko
Publication of KR20100063869A publication Critical patent/KR20100063869A/ko
Application granted granted Critical
Publication of KR101019822B1 publication Critical patent/KR101019822B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

코드 뱅킹(Code Banking) 기능 및 델타 이미지 업데이트 기법에 기반하여 무선 센서 네트워크에서 센서 노드의 소프트웨어를 업데이트하는 방법 및 장치가 개시된다. 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법은, 적어도 하나의 타겟 노드의 현재 프로그램 이미지와 업데이트 프로그램 이미지를 비교하여 미리 정하여진 기준에 따라 델타 이미지 인코딩 여부를 결정하는 단계와, 결정에 따라 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 제공하는 단계 및 제공된 이미지가 인코딩된 델타 업데이트 이미지인 경우에는 디코딩하여 상기 적어도 하나의 타겟 노드의 내부 메모리에 기록하고, 제공된 이미지가 인코딩되지 않은 프로그램 이미지인 경우에는 디코딩 없이 적어도 하나의 타겟 노드의 상기 내부 메모리에 기록하는 단계를 포함한다. 따라서 무선 센서 네트워크 상에서 소프트웨어 업데이트를 수행함에 있어서 코드 뱅킹 기능을 이용하여 필요한 부분만 업데이트 하고, 델타 이미지 업데이트 기법을 사용함으로써 이미지 전송 상 소모되는 에너지 및 대역폭의 이용량을 감소시킬 수 있다.
무선 센서 네트워크, WSN, 센서 노드, 소프트웨어 업데이트, 무선 업데이트

Description

무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법 및 장치{METHOD AND APPARATUS FOR SENSOR NODE SOFTWARE UPDATE IN WIRELESS SENSOR NETWORK}
본 발명은 무선 센서 네트워크에 관한 것으로서, 더욱 상세하게는 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법 및 장치에 관한 것이다.
무선 센서 네트워크(Wireless Sensor Network, WSN)는 유비쿼터스 컴퓨팅 구현을 위한 초경량, 저전력 특성을 가진 다수의 센서들로 구성된 무선 네트워크로서, 센서로 센싱이 가능하고 수집된 정보를 가공하는 프로세서가 탑재되어 있으며 수집된 정보를 전송하는 소형 무선 송수신 장치인 센서 노드(Sensor Node)와, 이를 수집하여 외부로 내보내는 싱크 노드(Sink Node)로 구성된다. 특히, 센서 노드(Seonsor Node)는 환경, 물리계에서 센싱된 정보 또는 센서에 관련된 특정 이벤트를 무선 통신 기술을 기반으로 하여 전달하거나 컴퓨팅을 행하는 센서, 프로세서, 통신소자로 구성되는 초경량 시스템이다.
센서 노드는 저전력의 배터리 전원 기기이므로, 1980년에 발표된 8비트 마이크로컨트롤러인 인텔 8051 등의 MCS 51 계열의 MCU(Microcontroller Unit)가 널리 채용되고 있다. MCS 51 계열의 MCU는 메모리 어드레싱 영역이 64KB로 제한되어 있어서 프로그램 크기가 이를 초과하는 경우를 위하여 코드 뱅킹(Code Banking) 기능을 지원하고 있다. MCS 51 계열의 코드 뱅킹은 전체 내부 플래시 메모리를 어드레싱 가능한 크기인 32KB의 뱅크들로 나누고 실행 이미지를 각 뱅크에 적절히 분할하여 저장한다.
도 1은 인텔 8051 MCU의 뱅킹 구조를 나타내는 개념도이다. 도 1을 참조하면, 뱅크 0은 항상 어드레싱 가능한 영역에 맵핑되는 뱅크로써, 뱅크 스위칭(Bank Switching)에 필요한 점핑 테이블(Jumping Table) 등을 포함하게 된다. 또한, 센서 노드 부팅 시 초기 설정 값으로 뱅크 0과 뱅크 1이 64KB 어드레싱 영역에 맵핑되며, 나머지 뱅크들은 함수 호출 등에 의한 필요시마다 뱅크 1과 교체되며 동작하게 된다.
무선 센서 네트워크의 보급에 따라, 무선 센서 네트워크에서의 무선 기반 소프트웨어 업데이트 기능은 노드 상에서 동작하는 소프트웨어의 버그 수정이나 네트워크를 구성하는 일부 노드 또는 전체 노드의 작업 변경 또는 보안상의 문제 등을 해결하기 위해 반드시 필요한 기능이 되었다. 특히 소프트웨어 업데이트 시 상술한 코드 뱅킹 기능을 사용함으로써 뱅크 별 이미지들이 서로 독립적일 경우 뱅크 별 이미지 업데이트가 가능하다.
현재 무선 기반 소프트웨어 업데이트 기법들은 여러 가지가 존재하는데 이들 중 기존 이미지와 업데이트 될 새로운 이미지 사이에 차이가 있는 부분만 업데이트 하는 방법을 델타 업데이트(Delta Update) 기법이라 하며, 이를 이용하면 이미지 전송 시 대역폭 이용 및 전송에 따르는 에너지 사용량을 크게 줄일 수 있다. 대표적인 델타 이미지 기반 업데이트 기법으로 Incremental 기법 등이 있다. 델타 업데이트 기법의 세부 사항은 참고 문헌을 참조하여 파악될 수 있으므로 이하 설명은 생략한다(J. Koshy and R. Pandey, "Remote Incremental Linking for Energy-Efficient Reprogramming of Sensor Networks," Proc. EWSN 2005).
또한 델타 이미지 업데이트는 델타 이미지를 업데이트 대상이 되는 타겟 노드에 신뢰성 있게 전송가능 하여야 하며, 타겟 노드측에 수신된 델타 이미지는 업데이트 할 새로운 이미지로 디코딩하여 노드 상의 내부 플래시 메모리로 복사하여야 하는데, 이러한 업데이트 과정이 비정상적으로 이루어지면 해당 노드는 동작하지 않거나 오동작하게 된다.
따라서 본 발명의 제1 목적은 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법을 제공하는 것이다.
그리고 본 발명의 제2 목적은 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법을 수행하는 디지털 처리 장치에 의해 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체를 제공하는 것이다.
또한 본 발명의 제3 목적은 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 장치를 제공하는 것이다.
상술한 본 발명의 제1 목적을 달성하기 위한 본 발명의 일 측면에 따른 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법은, 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법에 있어서, 적어도 하나의 타겟 노드의 현재 프로그램 이미지와 업데이트 프로그램 이미지를 비교하여 미리 정하여진 기준에 따라 델타 이미지 인코딩 여부를 결정하는 단계와, 상기 결정에 따라 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 제공하는 단계 및 제공된 이미지가 상기 인코딩된 델타 업데이트 이미지인 경우에는 상기 인코딩된 델타 업데이트 이미지를 디코딩하여 상기 적어도 하나의 타겟 노드의 내부 메모리에 기록하고, 제공된 이미지가 상기 인코딩되지 않은 프로그램 이미지인 경 우에는 상기 인코딩되지 않은 프로그램 이미지를 디코딩 없이 상기 적어도 하나의 타겟 노드의 상기 내부 메모리에 기록하는 단계를 포함한다.
상기 인코딩된 델타 업데이트 이미지 및 상기 인코딩되지 않은 프로그램 이미지는 코드 뱅킹(Code Banking)을 지원하는 메모리 뱅크 단위의 이미지일 수 있다.
상기 결정에 따라 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 제공하는 단계는 상기 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 오버 더 에어(Over-the-Air) 프로그래밍 프로토콜을 이용하여 제공할 수 있다.
상기 센서 노드 소프트웨어 업데이트 방법은, 상기 결정에 따라 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 제공하는 단계 후에, 제공된 이미지의 무결성에 대한 피드백을 제공 받고, 상기 제공된 이미지의 무결성이 깨진 경우 상기 제공된 이미지의 적어도 일부를 다시 제공할 수 있다.
상기 결정에 따라 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 제공하는 단계는 델타 복구 이미지를 추가로 제공하고, 상기 센서 노드 소프트웨어 업데이트 방법은, 제공된 이미지가 상기 인코딩된 델타 업데이트 이미지인 경우에는 상기 인코딩된 델타 업데이트 이미지를 디코딩하여 상기 적어도 하나의 타겟 노드의 내부 메모리에 기록하고, 제공된 이미지가 상기 인코딩되지 않은 프로그램 이미지인 경우에는 상기 인코딩되지 않은 프로그램 이미지를 디코딩 없이 상기 적어도 하나의 타겟 노드의 상기 내부 메모리에 기록하는 단계 후에, 상기 인코딩된 델타 업데이트 이미지 및 상기 인코딩되지 않은 프로그램 이미지 중 어느 하나를 상기 적어도 하나의 타겟 노드의 상기 내부 메모리에 기록 실패하는 경우에 제공된 델타 복구 이미지를 디코딩하여 상기 내부 메모리에 기록하는 단계를 더 포함할 수 있다.
상기 센서 노드 소프트웨어 업데이트 방법은 MCS 51 계열의 MCU(Microcontroller Unit)를 이용하여 수행될 수 있다.
상술한 본 발명의 제2 목적을 달성하기 위한 본 발명의 다른 일 측면에 따른 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법을 수행하는 디지털 처리 장치에 의해 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체는, 적어도 하나의 타겟 노드의 현재 프로그램 이미지와 업데이트 프로그램 이미지를 비교하여 델타 이미지 인코딩 여부를 결정하는 단계와, 상기 결정에 따라 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 제공하는 단계 및 제공된 이미지가 상기 인코딩된 델타 업데이트 이미지인 경우에는 상기 인코딩된 델타 업데이트 이미지를 디코딩하여 상기 적어도 하나의 타겟 노드의 내부 메모리에 기록하고, 제공된 이미지가 상기 인코딩되지 않은 프로그램 이미지인 경우에는 상기 인코딩되지 않은 프로그램 이미지를 디코딩 없이 상기 적어도 하나의 타겟 노드의 상기 내부 메모리에 기록하는 단계를 수행하는 프로그램을 기록한다.
상술한 본 발명의 제3 목적을 달성하기 위한 본 발명의 또 다른 측면에 따른 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 장치는, 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 장치에 있어서, 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 제공하는 업데이트 관리부 및 제공된 이미지를 무선 네트워크를 통하여 적어도 하나의 타겟 노드에 제공하는 싱크 노드를 구비한다.
상기 인코딩된 델타 업데이트 이미지 및 상기 인코딩되지 않은 프로그램 이미지는 코드 뱅킹(Code Banking)을 지원하는 메모리 뱅크 단위의 이미지일 수 있다.
상기 업데이트 관리부는, 상기 적어도 하나의 타겟 노드의 프로그램 이미지를 저장하는 데이터베이스와, 상기 적어도 하나의 타겟 노드의 현재 프로그램 이미지와 업데이트 프로그램 이미지를 비교하여 미리 정하여진 기준에 따라 델타 이미지 인코딩 여부를 결정하는 관리 모듈 및 상기 결정 결과 델타 이미지 인코딩을 하는 경우에는 상기 적어도 하나의 타겟 노드의 현재 프로그램 이미지 및 상기 업데이트 프로그램 이미지를 이용하여 상기 인코딩된 델타 업데이트 이미지를 상기 싱크 노드에 제공하고, 상기 결정 결과 델타 이미지 인코딩을 하지 않는 경우에는 상기 업데이트 프로그램 이미지를 상기 인코딩되지 않은 프로그램 이미지로서 상기 싱크 노드에 제공하는 델타 이미지 인코딩 모듈을 구비할 수 있다.
상기 업데이트 관리부는 델타 복구 이미지를 추가로 제공하고, 상기 싱크 노드는 제공된 델타 복구 이미지를 상기 적어도 하나의 타겟 노드에 제공할 수 있다.
상기 업데이트 관리부는 개인용 컴퓨터(Personal Computer, PC) 및 워크스테이션(Workstation) 중 어느 하나일 수 있다.
상기 싱크 노드는, 제공된 이미지를 오버 더 에어(Over-the-Air) 프로그래밍 프로토콜을 이용하여 상기 적어도 하나의 타겟 노드에 제공하는 제1 송수신부를 구비할 수 있다.
상기 제1 송수신부는, 상기 적어도 하나의 타겟 노드로부터 상기 제공된 이미지의 무결성에 대한 피드백을 제공 받고, 상기 제공된 이미지의 무결성이 깨진 경우 상기 제공된 이미지의 적어도 일부를 상기 적어도 하나의 타겟 노드에 다시 제공할 수 있다.
상술한 본 발명의 제3 목적을 달성하기 위한 본 발명의 또 다른 측면에 따른 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 장치는, 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 장치에 있어서, 외부 장치로부터 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 무선 네트워크를 통하여 제공 받는 제2 송수신부와, 상기 제2 송수신부로부터 제공된 이미지를 저장하는 외부 메모리 및 저장된 이미지가 인코딩된 델타 업데이트 이미지인 경우에는 상기 저장된 인코딩된 델타 업데이트 이미지를 디코딩하여 내부 메모리에 기록하고, 상기 저장된 이미지가 인코딩되지 않은 프로그램 이미지인 경우에는 상기 저장된 인코딩되지 않은 프로그램 이미지를 디코딩 없이 상기 내부 메모리에 기록하는 실행 모듈을 구비한다.
상기 인코딩된 델타 업데이트 이미지 및 상기 인코딩되지 않은 프로그램 이 미지는 코드 뱅킹(Code Banking)을 지원하는 메모리 뱅크 단위의 이미지일 수 있다.
상기 실행 모듈은 상기 저장된 이미지가 인코딩된 델타 업데이트 이미지인 경우에 상기 저장된 인코딩된 델타 업데이트 이미지를 디코딩하여 인코딩되지 않은 프로그램 이미지로서 다시 상기 외부 메모리에 기록하는 디코딩 모듈 및 상기 외부 메모리에 저장된 인코딩되지 않은 프로그램 이미지를 상기 내부 메모리에 기록하는 부트로더(Bootloader)를 구비할 수 있다.
상기 제2 송수신부는 상기 외부 장치로부터 델타 복구 이미지를 추가로 제공 받아 상기 외부 메모리에 저장하고, 상기 실행 모듈은, 상기 인코딩된 델타 업데이트 이미지 및 상기 인코딩되지 않은 프로그램 이미지 중 어느 하나를 상기 내부 메모리에 기록 실패하는 경우에 제공된 델타 복구 이미지를 디코딩하여 상기 내부 메모리에 기록할 수 있다.
상기 제2 송수신부는 상기 외부 장치로부터 상기 인코딩된 델타 업데이트 이미지 및 상기 인코딩되지 않은 프로그램 이미지 중 어느 하나를 오버 더 에어(Over-the-Air) 프로그래밍 프로토콜을 이용하여 제공 받을 수 있다.
상기 외부 메모리는 인코딩된 델타 이미지를 저장하는 영역 및 인코딩되지 않은 프로그램 이미지를 저장하는 영역을 포함할 수 있다.
상기 센서 노드 소프트웨어 업데이트 장치는, 제공된 이미지의 무결성을 판단하고, 상기 제공된 이미지의 무결성이 깨진 경우 상기 제2 송수신부를 경유하여 상기 외부 장치에 상기 제공된 이미지의 적어도 일부를 재요청하는 수신 검증 모듈 을 더 구비할 수 있다.
상기 센서 노드 소프트웨어 업데이트 장치는 MCS 51 계열의 MCU(Microcontroller Unit)를 구비할 수 있다.
상술한 본 발명의 제3 목적을 달성하기 위한 본 발명의 또 다른 측면에 따른 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 시스템은, 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 시스템에 있어서, 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나와, 인코딩된 델타 복구 이미지를 제공하는 업데이트 관리부와, 제공된 이미지를 오버 더 에어(Over-the-Air) 프로그래밍 프로토콜을 이용하여 적어도 하나의 타겟 노드에 제공하는 싱크 노드 및 상기 싱크 노드로부터 제공된 이미지를 외부 메모리에 저장하고, 저장된 이미지가 인코딩된 델타 업데이트 이미지인 경우에는 상기 저장된 인코딩된 델타 업데이트 이미지를 디코딩하여 내부 메모리에 기록하며, 상기 저장된 이미지가 인코딩되지 않은 프로그램 이미지인 경우에는 상기 저장된 인코딩되지 않은 프로그램 이미지를 디코딩 없이 상기 내부 메모리에 기록하고, 상기 인코딩된 델타 업데이트 이미지 및 상기 인코딩되지 않은 프로그램 이미지 중 어느 하나를 상기 내부 메모리에 기록 실패하는 경우에 제공된 델타 복구 이미지를 디코딩하여 상기 내부 메모리에 기록하는 타겟 노드를 구비한다.
상기와 같은 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법 및 장치에 따르면, 무선 센서 네트워크 상에서 소프트웨어 업데이트를 수행함에 있 어서 코드 뱅킹 기능을 이용하여 뱅크별로 업데이트하므로, 전체 실행 이미지에 대한 업데이트 없이 필요한 부분만 업데이트 할 수 있다.
그리고 무선 센서 네트워크 상에서 소프트웨어 업데이트를 수행함에 있어서 델타 이미지 기반 업데이트 방법을 사용함으로써 이미지 전송 상 소모되는 에너지 및 대역폭의 이용량을 감소시킬 수 있다.
또한 업데이트 중 싱크 노드나 타겟 노드에서 일어날 수 있는 예상치 못한 상황 발생으로 업데이트가 중단되었을 시 타겟 노드를 원 상태로 복구할 수 있게 함으로써 무선 센서 네트워크의 소프트웨어 업데이트 환경을 보다 안전하게 할 수 있다.
나아가, 무선 센서 네트워크상의 소프트웨어 업데이트 분야 어플리케이션에 적용 가능하며, 특히 잦은 소프트웨어 업데이트가 이루어지는 무선 센서 네트워크 교육용 어플리케이션 분야에 활용 가능하다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있 지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 2는 본 발명의 일 실시예에 따른 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법의 순서를 나타내는 흐름도이다. 이하에서는, 상기 센서 노드 소프트웨어 업데이트 방법이 MCS 51 계열의 MCU(Microcontroller Unit)에서 지원하는 코드 뱅킹(Code Banking) 기능을 이용하여 메모리 뱅크 별로 수행된다고 가정하고 설명한다.
우선, 무선 센서 네트워크(Wireless Sensor Network, WSN) 내의 센서 노드(Sensor Node) 또는 타겟 노드(Target Node) 등의 노드(Node)를 업데이트하기 위하여 뱅크 별 업데이트 프로그램 이미지를 선택한다(S312). 상기 업데이트 프로그램 이미지는 상술한 코드 뱅킹(Code Banking) 기능을 지원하는 메모리 뱅크 단위의 이미지일 수 있다. 즉, 타겟 노드의 내부 메모리 뱅크 별 또는 외부 메모리 뱅크 별로 업데이트가 수행될 수 있다. 예를 들어, 코드 뱅킹(Code Banking) 기능은 상 술한 바와 같이 인텔 8051을 포함하는 MCS 51 계열의 MCU(Microcontroller Unit)에서 지원된다.
타겟 노드의 프로그램 이미지는 개인용 컴퓨터(Personal Computer, PC) 또는 워크스테이션(Workstation)의 형태로 구현되는 서버(Server)에 저장될 수 있다. 상기 서버는 무선 센서 네트워크 상의 타겟 노드의 프로그램 이미지 바이너리 파일 및 프로그램 이미지 버전 정보를 저장하는 데이터베이스(Database)와, 상기 데이터베이스에 저장된 정보에 기초하여 업데이트 프로그램 이미지를 선택하고 델타 이미지를 인코딩하는 중앙 처리 장치(Central Processing Unit, CPU)를 구비할 수 있다.
다음으로 전송의 효율을 위하여 선택된 업데이트 프로그램 이미지와 타겟 노드의 현재 프로그램 이미지 간의 뱅크 별 차이점을 분석하고(S314) 차이가 있는 뱅크 코드, 즉 차이가 있는 뱅크 업데이트 이미지를 선택한다(S316). 다시 말해서, 센서 노드 소프트웨어 업데이트 방법은 뱅크 별로 수행되므로, 예를 들어, 상기 업데이트 프로그램 이미지와 상기 타겟 노드의 현재 프로그램 이미지가 총 4개의 뱅크 이미지로 구성되고, 상기 4개 중 1개의 뱅크 이미지만이 차이가 있는 경우에는 차이가 있는 1개의 뱅크 이미지만이 실제 업데이트 대상이 되는 것이다.
다음으로 상기 뱅크 별 차이점 분석 결과를 이용하여 델타 업데이트 이미지를 인코딩할 것인지 여부를 미리 정하여진 기준에 따라 판단한다(S318). 상기 미리 정하여진 기준이란 상기 타겟 노드의 현재 프로그램 이미지와 상기 업데이트 프로그램 이미지의 유사도에 따른 인코딩 이미지 전송량이 될 수 있다. 예를 들어, 전 송량 측정에서 델타 이미지 전송량은 업데이트 프로그램 이미지와 타겟 노드의 현재 프로그램 이미지 사이의 다른 부분의 전송량(a), 인코딩 시 추가되는 코드의 전송량(b) 및 업데이트 중단 시 복구를 위한 델타 복구 이미지의 전송량(c)의 합(d = a + b + c)으로 정리할 수 있고, 상기 전송량의 합(d)이 업데이트 프로그램 이미지의 전송량보다 작은 경우가 상기 델타 업데이트 이미지를 인코딩하는 경우가 된다.
만약 업데이트 이미지를 델타 이미지로 인코딩하여 전송하는 것이 효율적이라고 판단되면, 상기 업데이트 프로그램 이미지와 상기 타겟 노드의 기존 프로그램 이미지 간에 서로 다른 부분인 델타 업데이트 이미지를 인코딩한다(S322). 추가로 정상적인 업데이트가 되지 않는 경우에 대비하여 업데이트 전의 상태로 타겟 노드를 복구할 수 있는 델타 복구 이미지도 함께 인코딩한다(S323). 만약 인코딩이 필요 없다고 판단될 경우에는 상기 델타 업데이트 이미지 인코딩 과정(S322)은 생략된다. 델타 업데이트 기법의 세부 사항 및 상기 미리 정하여진 기준은 참고 문헌을 참조하여 용이하게 파악될 수 있으므로 이하 설명을 생략한다(J. Koshy and R. Pandey, "Remote Incremental Linking for Energy-Efficient Reprogramming of Sensor Networks," Proc. EWSN 2005).
다음으로 업데이트 이미지 및 상기 델타 복구 이미지를 싱크 노드(Sink Node)로 전송한다(S324). 상기 업데이트 이미지는 상기 인코딩 과정(S322)을 거친 경우의 상기 델타 업데이트 이미지 및 상기 인코딩 과정(S322)을 거치지 않은 경우의 상기 업데이트 프로그램 이미지 중 어느 하나를 의미한다.
다음으로 상기 싱크 노드는 오버 더 에어(Over-the-Air) 프로그래밍 프로토 콜을 통해 상기 업데이트 이미지 및 상기 델타 복구 이미지를 타겟 노드로 전송한다(S326). 오버 더 에어 프로그래밍 프로토콜은 일반적으로 무선 센서 네트워크상에서 무선 매체를 통하여 센서 노드 또는 타겟 노드 상에 동작하는 프로그램을 업데이트하기 위한 통신 프로토콜을 의미한다. 본 발명에서의 오버 더 에어 프로그래밍 프로토콜은, 업데이트 이미지를 패킷화하여 송신하고, 수신된 패킷에서 이미지를 추출하며, 전송이 올바르게 이루어졌는지 검증하여 이미지 재전송을 요청하는 통신 프로토콜이라면 제한 없이 이용될 수 있다.
다음으로 타겟 노드는 업데이트 이미지 및 델타 복구 이미지를 수신하고(S328), 정상적인 수신이 이루어졌는지 검증하여(S332) 정상적인 수신이 아닌 경우에는 재전송이 이루어진다. 상기 재전송 과정은 싱크 노드로 재전송하는 단계(S324)부터, 또는 도 2에 도시되지 않았지만 싱크 노드에서 타겟 노드로 재전송하는 단계(S326)부터 수행될 수 있다. 정상적인 수신 여부 검증 및 재전송은 상술한 바와 같이 오버 더 에어 프로그래밍 프로토콜에 의하여 지원되는데, 통상적으로 전송한 이미지 또는 데이터 패킷의 무결성(Integrity)에 대한 NAK(Negative Acknowledgement), Re-Transmission Request 등의 형태를 가지는 피드백(Feedback)을 받고, 상기 전송한 이미지 또는 데이터 패킷의 무결성이 깨진 경우(데이터 패킷의 CRC 값 오류, 패리티(Parity) 값 오류, 서명 인증(Signature Verification) 오류 등의 경우) 상기 전송한 이미지 또는 데이터 패킷의 적어도 일부를 재전송하게 된다.
타겟 노드에서 이미지 수신이 정상적으로 이루어진 경우에는 상기 수신된 이 미지가 인코딩된 델타 업데이트 이미지 인지, 인코딩되지 않은 업데이트 프로그램 이미지인지를 판단한다(S334). 상기 수신된 이미지의 종류는, 상기 타겟 노드에서 이미지를 수신하는 단계(S328)에서 싱크 노드로부터 패킷을 수신 받을 때 각 패킷에 포함된 전송 제어 문자를 이용하여 판단될 수 있다.
만약 상기 수신된 이미지가 인코딩된 델타 업데이트 이미지로 판단(S334)되는 경우를 이하 설명한다. 우선 상기 델타 업데이트 이미지 및 상기 델타 복구 이미지를 외부 메모리의 인코딩된 델타 이미지 저장 영역에 저장한다(S336). 그리고 상기 인코딩된 델타 업데이트 이미지를 내부 메모리에 있는 현재 실행 이미지에 기초하여 디코딩하여 상기 외부 메모리의 새로운 프로그램 이미지 저장 영역 또는 상기 외부 메모리의 인코딩되지 않은 프로그램 이미지 저장 영역에 새로운 프로그램 이미지로서 저장한다(S338). 델타 이미지의 디코딩의 세부 사항은 참고 문헌을 참조하여 용이하게 파악될 수 있으므로 이하 설명을 생략한다(J. Koshy and R. Pandey, "Remote Incremental Linking for Energy-Efficient Reprogramming of Sensor Networks," Proc. EWSN 2005). 그 후, 상기 델타 업데이트 이미지의 디코딩이 정상적으로 이루어졌는지 판단하여(S342), 정상적인 디코딩이 된 경우에는 상기 외부 메모리의 새로운 프로그램 이미지 저장 영역 또는 상기 외부 메모리의 인코딩되지 않은 프로그램 이미지 저장 영역에 저장된 상기 새로운 프로그램 이미지를 내부 메모리의 실행 이미지 저장 영역으로 복사한다(S344). 상기 복사 기능은 디코딩 모듈, 부트로더(Bootloader) 또는 디코딩 모듈의 기능을 수행하는 부트로더에 의해 수행될 수 있다.
만약 상기 수신된 이미지가 인코딩되지 않은 업데이트 프로그램 이미지로 판단(S334)되는 경우를 이하 설명한다. 우선 상기 업데이트 프로그램 이미지를 외부 메모리의 새로운 프로그램 이미지 저장 영역 또는 외부 메모리의 인코딩되지 않은 프로그램 이미지 저장 영역에 새로운 프로그램 이미지로서 저장하고, 상기 델타 복구 이미지는 외부 메모리의 인코딩된 델타 이미지 저장 영역에 저장한다(S339). 그리고 상기 외부 메모리의 새로운 프로그램 이미지 저장 영역 또는 상기 외부 메모리의 인코딩되지 않은 프로그램 이미지 저장 영역에 저장된 상기 새로운 프로그램 이미지를 내부 메모리의 실행 이미지 저장 영역으로 복사한다(S344). 상기 복사 기능은 디코딩 모듈, 부트로더(Bootloader) 또는 디코딩 모듈의 기능을 수행하는 부트로더에 의해 수행될 수 있다.
상기 복사(S344)가 끝나면 정상적으로 업데이트가 되었는지 확인하고(S346), 싱크 노드 또는 타겟 노드에서 예상치 못한 상황의 발생으로 업데이트가 중단되어 정상적으로 완료되지 않았으면 상기 외부 메모리의 인코딩된 델타 이미지 영역에 저장(S336, S339)했었던 상기 델타 복구 이미지를 디코딩하여 상기 외부 메모리의 새로운 프로그램 이미지 저장 영역 또는 상기 외부 메모리의 인코딩되지 않은 프로그램 이미지 저장 영역에 저장하고(S347) 상술한 단계(S342, S344, S346)를 수행함으로서 업데이트 이전의 상태로 내부 메모리의 실행 이미지 저장 영역을 복구한다.
업데이트가 정상적으로 이루어진 것으로 판단되면(S346), 디코딩 모듈 또는 부트로더에서 타겟 노드를 재부팅시킴으로써(S348) 타겟 노드 소프트웨어 업데이트과정이 종료된다.
비정상적인 업데이트 시나리오에 있어서 가능한 대응 방법을 이하 설명한다.
첫째, 이미지가 싱크 노드를 통해서 타겟 노드로 전송될 때 전송 상의 이상으로 타겟 노드에서 정상적인 수신이 이루어지지 않은 경우, 오버 더 에어 프로그래밍 프로토콜에서 수신 이미지를 검증하고, 이미지 재전송 요청을 함으로써 해결 될 수 있다.
둘째, 싱크 노드에서 이상 상태 발생으로 타겟 노드의 업데이트 대상 뱅크들 중 일부 뱅크의 이미지만 수신되어 업데이트된 후 더 이상의 업데이트 이미지 수신이 없으면, 타겟 노드는 일정 기간 동안 다음 뱅크의 이미지 수신을 기다리고, 일정 기간 동안 추가적인 뱅크 이미지 수신이 이루어지지 않으면 델타 복구 이미지를 이용하여 변경된 메모리 뱅크를 기존 상태로 복구함으로써 타겟 노드의 정상적인 동작을 보장할 수 있다.
셋째, 업데이트 중 타겟 노드에서 일시적인 전원 미공급 등의 이상 상태가 발생하여 재부팅이 되는 경우, 타겟 노드는 부팅 과정에서 업데이트 상태 플래그 (Update Status Flag) 등의 방법을 이용하여 업데이트 완료 여부를 검사하고, 업데이트가 완료 되지 않은 경우 직전 업데이트 이후의 부분부터 업데이트를 재개할 수 있다. 만일 업데이트를 재개할 수 없는 경우는 델타 복구 이미지를 이용하여 업데이트된 메모리 뱅크를 기존 상태로 복구함으로써 타겟 노드의 정상적인 동작을 보장할 수 있다.
넷째, 내부 메모리 또는 외부 메모리가 쓰기 방지(Write Protect)가 되어 있어 업데이트를 진행할 수 없는 경우에는 타겟 노드에서 싱크 노드 또는 서버로 이 와 같은 정보를 포함하는 피드백 정보를 송신하여 사용자의 적절한 조치가 이루어지게 할 수 있다.
도 3은 본 발명의 다른 실시예에 따른 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 장치의 구성을 나타내는 블록도이다. 이하에서는, 상기 센서 노드 소프트웨어 업데이트 장치가 MCS 51 계열의 MCU(Microcontroller Unit)에서 지원하는 코드 뱅킹(Code Banking) 기능을 이용하여 메모리 뱅크 별로 업데이트 기능을 수행한다고 가정하고 설명한다.
도 3을 참조하면, 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 장치는 크게 베이스 스테이션(Base Statin, 100)과 타겟 노드(Target Node, 200)로 나눌 수 있다.
상기 베이스 스테이션(100)은 업데이트 관리부(110) 및 싱크 노드(120)를 구비한다. 상기 업데이트 관리부(110)는 개인용 컴퓨터(Personal Computer, PC) 및 워크스테이션(Workstation) 중 어느 하나일 수 있다.
상기 업데이트 관리부(110)는 상기 타겟 노드(200)의 프로그램 업데이트를 위하여 인코딩된 델타 업데이트 이미지(Encoded Delta Image) 또는 인코딩되지 않은 프로그램 이미지(Non-Encoded Program Image)와, 델타 복구 이미지(Recovery Image)를 상기 싱크 노드(120)에 제공한다.
상기 업데이트 관리부(110)는 데이터베이스(Database, 112), 관리 모듈(Management Interface, 114) 및 델타 이미지 인코딩 모듈(Delta Image Encoding Module, 116)을 구비할 수 있다.
구체적으로, 상기 데이터베이스(112)는 무선 센서 네트워크상의 타겟 노드(200)의 프로그램 이미지 및 프로그램 버전 정보를 저장하고, 상기 관리 모듈(114)은 상기 데이터베이스(112)에 저장된 타겟 노드(200)의 현재 프로그램 이미지 및 업데이트 프로그램 이미지와 프로그램 버전 정보를 기초로 델타 이미지 인코딩을 할 것인지 여부를 미리 정하여진 기준에 따라 결정한다. 상기 관리 모듈(114)이 타겟 노드(200)의 현재 프로그램 이미지와 업데이트 프로그램 이미지를 비교하여 델타 이미지 인코딩 여부를 결정하는 기능에 대하여는 상기 도 2에 도시된 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법의 순서 중 델타 업데이트 이미지를 인코딩할 것인지 여부를 판단하는 단계(S318)를 참조하여 설명한 바와 동일하게 이해될 수 있으므로 용이한 이해와 중복된 내용의 혼동을 회피하기 위해 이하 설명은 생략키로 한다.
상기 관리 모듈(114)이 델타 이미지 인코딩을 하는 것으로 결정하는 경우에 상기 델타 이미지 인코딩 모듈(116)은 업데이트 프로그램 이미지와 타겟 노드(200)의 현재 프로그램 이미지를 이용하여 인코딩된 델타 업데이트 이미지를 생성하여 업데이트 이미지로서 상기 싱크 노드(120)에 제공한다. 반면에 상기 관리 모듈(114)이 델타 이미지 인코딩을 하지 않는 것으로 결정하는 경우에는 상기 델타 이미지 인코딩 모듈(116)은 델타 이미지 인코딩 없이 상기 업데이트 프로그램 이미지를 그대로 업데이트 이미지로서 상기 싱크 노드(120)에 제공한다. 상기 관리 모듈(114)의 델타 이미지 인코딩 결정과 별도로, 상기 델타 이미지 인코딩 모듈(116) 은 정상적인 업데이트가 되지 않는 경우에 대비하여 업데이트 전의 상태로 상기 타겟 노드(200)를 복구할 수 있는 델타 복구 이미지를 인코딩한다.
상기 델타 이미지 인코딩 기능에 대하여는 상기 도 2에 도시된 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법의 순서 중 델타 업데이트 이미지를 인코딩하는 단계(S322). 델타 복구 이미지를 인코딩하는 단계(S323)를 참조하여 설명한 바와 동일하게 이해될 수 있으므로 용이한 이해와 중복된 내용의 혼동을 회피하기 위해 이하 설명은 생략키로 한다.
상기 싱크 노드(120)는 상기 업데이트 관리부(110)로부터 상기 업데이트 이미지(상기 인코딩된 델타 업데이트 이미지 또는 인코딩되지 않은 업데이트 프로그램 이미지)와, 상기 델타 복구 이미지를 제공 받고, 상기 제공 받은 이미지를 오버 더 에어 프로그래밍 프로토콜을 통하여 적어도 하나의 타겟 노드(200)에 제공한다. 도 3에 도시되지 않았지만, 상기 싱크 노드(120)는 상기 업데이트 관리부(110)로부터 제공 받은 이미지를 저장하는 저장부를 구비할 수 있다.
상기 싱크 노드(120)는 오버 더 에어 프로그래밍 프로토콜을 이용하여 상기 타겟 노드(200)에 이미지, 이미지 데이터 패킷(Image Data Packet) 또는 제어 패킷(Control Packet)를 송신하는 제1 송수신부(122)를 구비할 수 있다. 상기 제1 송수신부(122)는 상기 타겟 노드(200)로부터 송신한 상기 이미지, 이미지 데이터 패킷 또는 제어 패킷의 무결성에 대한 피드백을 수신하고, 상기 이미지, 이미지 데이터 패킷 또는 제어 패킷의 무결성이 깨진 경우 송신한 상기 이미지, 이미지 데이터 패킷 또는 제어 패킷의 적어도 일부를 상기 타겟 노드(200)에 다시 송신할 수 있 다. 상기 무결성 여부는 CRC 값 확인, 패리티 값 확인, 서명 검증 등의 방법에 의해 확인될 수 있다.
상기 오버 더 에어 프로그래밍 프로토콜에 대하여는 상기 도 2에 도시된 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법의 순서 중 오버 더 에어(Over-the-Air) 프로그래밍 프로토콜을 통해 상기 업데이트 이미지 및 상기 델타 복구 이미지를 타겟 노드로 전송하는 단계(S326)를 참조하여 설명한 바와 동일하게 이해될 수 있으므로 용이한 이해와 중복된 내용의 혼동을 회피하기 위해 이하 설명은 생략키로 한다.
상기 업데이트 관리부(110) 및 상기 싱크 노드(120)는 개인용 컴퓨터 또는 워크스테이션 등의 일체로서 구현될 수 있다.
상기 타겟 노드(200)는 센서 노드(Sensor Node)를 의미하며, 센서 노드는 상술한 바와 같이 환경, 물리계에서 센싱된 정보 또는 센서에 관련된 특정 이벤트를 무선 통신 기술 기반으로 하여 전달하거나 컴퓨팅을 행하는 센서, 프로세서, 통신소자로 구성되는 장치이다.
상기 타겟 노드(200)는 제2 송수신부(210), 수신 검증 모듈(220), 외부 메모리(230) 및 내부 메모리(240)를 구비한다.
상기 제2 송수신부(210)는 오버 더 에어 프로그래밍 프로토콜을 통하여 상기 싱크 노드(120)로부터 상기 업데이트 이미지 및 상기 델타 복구 이미지를 수신한다.
상기 수신 검증 모듈(220)은 상기 제2 송수신부(210)가 수신한 상기 업데이 트 이미지 및 상기 델타 복구 이미지의 무결성을 검증한다.
구체적으로 상기 수신 검증 모듈(220)의 수신 이미지 검증 과정은 다음과 같다. 첫째, 상기 베이스 스테이션(100) 내지 상기 싱크 노드(120)는 업데이트될 해당 뱅크의 업데이트 이미지를 패킷화하여 각 패킷을 타겟 노드(200)로 전송한다. 상기 패킷화란 업데이트 이미지를 페이로드(Pay Load) 크기에 맞게 분할하고, 이 분할된 각각의 업데이트 이미지 데이터에 업데이트를 위한 통신 제어 문자를 붙이는 과정을 말한다. 상기 베이스 스테이션(100) 내지 상기 싱크 노드(120)는 상기 전송에 앞서서 전송할 상기 업데이트 이미지의 CRC 값을 미리 계산해서 유지한다. 둘째, 상기 타겟 노드(200)는 패킷이 수신될 때마다 각 패킷 내의 CRC 필드 값을 합한 값을 유지한다. 셋째, 상기 베이스 스테이션(100) 내지 상기 싱크 노드(120)가 해당 뱅크의 패킷을 전부 송신하면, 상기 타겟 노드(200)로 CRC 요청을 한다. 넷째, 타겟 노드(200)는 CRC 요청을 받으면 타겟 노드(200)가 유지하고 있는, 상기 둘째 단계에서 계산된, CRC 값을 상기 베이스 스테이션(100) 내지 상기 싱크 노드(120)로 송신한다. 다섯째, 상기 베이스 스테이션(100) 내지 상기 싱크 노드(120)는 상기 타겟 노드(200)로부터 수신된 CRC 값을 상기 베이스 스테이션(100) 내지 상기 싱크 노드(120)가 가지고 있는, 상기 첫째 단계에서 계산된, CRC 값과 비교한 후 결과(전송 성공 또는 전송 실패)를 상기 타겟 노드(200)로 송신한다. 여섯째, 상기 타겟 노드(200)는 상기 베이스 스테이션(100) 내지 상기 싱크 노드(120)로부터 수신된 결과에 따라 해당 뱅크의 이미지를 재전송 요청할 것인지 결정한다.
상기 외부 메모리(230) 및 상기 내부 메모리(240)에 대하여는 도 4를 참조하여 이하에서 설명한다.
도 4는 본 발명의 다른 실시예에 따른 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 장치의 내부 메모리 및 외부 메모리의 내부 구조도이다. 이하에서는, 상기 센서 노드 소프트웨어 업데이트 장치가 MCS 51 계열의 MCU(Microcontroller Unit)에서 지원하는 코드 뱅킹(Code Banking) 기능을 이용하여 메모리 뱅크 별로 업데이트 기능을 수행한다고 가정하고 설명한다.
도 4를 참조하면, 상기 외부 메모리(230)는 상기 제2 송수신부(210)로부터 제공된 이미지를 저장하는데, 새로운 프로그램 이미지가 저장되는 인코딩되지 않은 프로그램 이미지 영역(New Program Image Area, 232a)과, 인코딩된 델타 업데이트 이미지(Encoded Delta Image, 234a)와 델타 복구 이미지(Recovery Image, 234b)가 저장되는 인코딩된 델타 이미지 영역(Encoded Image Area, 234)을 포함한다. 상기 외부 메모리(230)는 플래시 메모리일 수 있다.
상기 내부 메모리(240)는 부트로더(248b), 디코딩 모듈(248a) 및 상기 타겟 노드(200)의 실행 코드가 포함된 이미지(242a, 244a, 246a)를 저장한다. 예를 들어, 도 4를 참조하면, 상기 내부 메모리(240)는 32KB 단위의 뱅크로 나뉘고, 가장 마지막 뱅크 영역(248)에 디코딩 모듈(248a)과 부트로더(248b)가 위치하며, 나머지 뱅크 영역(242, 244, 246)에는 실행 이미지가 나뉘어서 위치하게 된다. 프로그램 업데이트(이미지 업데이트) 시 상기 디코딩 모듈(248a) 및 상기 부트로더(248b)가 위치하는 뱅크 영역(248)은 업데이트에서 제외되며 나머지 실행 이미지만 업데이트의 대상이 된다. COMMON 이미지(242a)는 프로그램 업데이트(이미지 업데이트)에 필요한 통신 프로토콜인 오버 더 에어 프로그래밍 프로토콜을 포함하고 항상 어드레싱 영역에 맵핑되고, 나머지 뱅크 이미지 영역(244a, 246a)은 함수 호출 등 해당 뱅크 내에 포함된 코드가 호출되는 경우에만 뱅크 스위칭 되어 동작하게 된다. 상기 내부 메모리(240)는 플래시 메모리일 수 있다.
상기 디코딩 모듈(248a)은 상기 외부 메모리(230)에 저장된 이미지가 인코딩된 델타 업데이트 이미지(234a)인 경우에는 상기 저장된 인코딩된 델타 업데이트 이미지(234a)를 디코딩하여 상기 내부 메모리(240) 내의 뱅크 영역 중 상기 디코딩 모듈(248a) 및 상기 부트로더(248b)가 위치하는 뱅크 영역(248)을 제외한 뱅크 영역(242, 244, 246)에 기록한다. 상기 디코딩 모듈(248a)은 상기 외부 메모리(230, 232)에 저장된 이미지가 인코딩되지 않은 프로그램 이미지(232a)인 경우에는 상기 저장된 인코딩되지 않은 프로그램 이미지(232a)를 디코딩 없이 상기 내부 메모리(240) 내의 뱅크 영역 중 상기 디코딩 모듈(248a) 및 상기 부트로더(248b)가 위치하는 뱅크 영역(248)을 제외한 뱅크 영역(242, 244, 246)에 기록한다.
상기 디코딩 모듈(248a)은, 상기 인코딩된 델타 업데이트 이미지 또는 상기 인코딩되지 않은 프로그램 이미지로 상기 내부 메모리(242, 244, 246)를 업데이트하는 기능, 또는 상기 인코딩된 델타 업데이트 이미지 또는 상기 인코딩되지 않은 프로그램 이미지를 상기 내부 메모리(242, 244, 246)에 기록하는 기능을 수행하는데 실패하는 경우에는 상기 외부 메모리(230)의 인코딩된 델타 이미지 영역(234)에 저장된 델타 복구 이미지(234a)를 디코딩하여 상기 내부 메모리(242, 244, 246)에 기록할 수 있다.
상기 부트로더(248b)는 상기 타겟 노드(200)의 하드웨어를 초기화하는 펌웨어(Firmware) 또는 로우레벨 소프트웨어(Low-Level Software) 모듈을 의미한다. 상기 부트로더(248b)는 이미지 업데이트 과정에서 변경되지 않으며, 상기 외부 메모리(230, 232)에 저장된 새로운 프로그램 이미지(232a)를 상기 내부 메모리(240)의 실행 이미지 저장 영역(242, 244, 246)에 복사하는 기능 및 상기 타겟 노드(200)를 재부팅하는 기능을 수행할 수 있다.
도 3 및 도 4에 도시되지는 않았지만, 상기 디코딩 모듈(248a) 및 상기 부트로더(248b)는 하나의 실행 모듈(Execution Module)에 포함될 수 있다. 이 경우, 상기 디코딩 모듈(248a)은 상기 외부 메모리(230)에 저장된 이미지가 인코딩된 델타 업데이트 이미지(234a)인 경우에는 상기 저장된 인코딩된 델타 업데이트 이미지(234a)를 디코딩하여 다시 상기 외부 메모리(230)의 인코딩되지 않은 프로그램 이미지 영역(232)에 저장한다. 다시 말해서, 상기 외부 메모리(230)의 인코딩되지 않은 프로그램 이미지 영역(232)에는, 상기 제2 송수신부(210)가 수신한 시점부터 이미 인코딩되지 않은 프로그램 이미지가 저장되거나, 또는 상기 제2 송수신부(210)가 수신한 시점에는 인코딩된 델타 업데이트 이미지였으나 그 후에 상기 디코딩 모듈(248a)에 의하여 디코딩된 이미지가 저장된다. 그리고 상기 부트로더(248b)는 상기 외부 메모리(230)의 인코딩되지 않은 프로그램 이미지 영역(232)에 저장된 이미지(232a)를 상기 내부 메모리(240) 내의 뱅크 영역 중 상기 디코딩 모듈(248a) 및 상기 부트로더(248b)가 위치하는 뱅크 영역(248)을 제외한 뱅크 영역(242, 244, 246)에 기록 내지 복사한다.
이상 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
도 1은 인텔 8051 MCU의 뱅킹 구조를 나타내는 개념도이다.
도 2는 본 발명의 일 실시예에 따른 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법의 순서를 나타내는 흐름도이다.
도 3은 본 발명의 다른 실시예에 따른 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 장치의 구성을 나타내는 블록도이다.
도 4는 본 발명의 다른 실시예에 따른 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 장치의 내부 메모리 및 외부 메모리의 내부 구조도이다.
* 도면의 주요부분에 대한 부호의 설명 *
100 : 베이스 스테이션 110 : 업데이트 관리부
114 : 관리 모듈 116 : 델타 이미지 인코딩 모듈
120 : 싱크 노드 122 : 제1 송수신부
200 : 타겟 노드 210 : 제2 송수신부
220 : 수신 검증 모듈 230 : 외부 메모리
240 : 내부 메모리

Claims (23)

  1. 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법에 있어서,
    데이터 베이스로부터 적어도 하나의 타겟 노드의 현재 프로그램 이미지를 수신하고, 상기 데이터 베이스로부터 수신된 현재 프로그램 이미자와 업데이트 프로그램 이미지를 비교하여 미리 결정된 기준에 따라 델타 이미지 인코딩 여부를 결정하는 단계;
    관리 모듈의 상기 결정에 따라 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 싱크 노드로 제공하는 단계; 및
    델타 이미지 인코딩 모듈로부터 제공된 이미지가 상기 인코딩된 델타 업데이트 이미지인 경우에는 상기 인코딩된 델타 업데이트 이미지를 디코딩하여 상기 적어도 하나의 타겟 노드의 내부 메모리에 기록하고, 상기 델타 이미지 인코딩 모듈로부터 제공된 이미지가 상기 인코딩되지 않은 프로그램 이미지인 경우에는 상기 인코딩되지 않은 프로그램 이미지를 디코딩 없이 상기 적어도 하나의 타겟 노드의 상기 내부 메모리에 기록하는 단계를 포함하는 센서 노드 소프트웨어 업데이트 방법.
  2. 제1항에 있어서, 상기 인코딩된 델타 업데이트 이미지 및 상기 인코딩되지 않은 프로그램 이미지는,
    코드 뱅킹(Code Banking)을 지원하는 메모리 뱅크 단위의 이미지인 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 방법.
  3. 제1항에 있어서, 상기 관리 모듈의 결정에 따라 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 싱크 노드로 제공하는 단계는,
    상기 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 오버 더 에어(Over-the-Air) 프로그래밍 프로토콜을 이용하여 상기 싱크 노드로 제공하는 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 방법.
  4. 제1항에 있어서, 상기 센서 노드 소프트웨어 업데이트 방법은
    상기 결정에 따라 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 제공하는 단계 후에,
    제공된 이미지의 변환 여부에 대한 피드백을 제공 받고, 상기 제공된 피드백이 데이터 패킷의 CRC 값 오류, 패리티 값 오류 및 서명 인증 오류 중 어느 하나일 경우 상기 제공된 이미지의 적어도 일부를 다시 제공하는 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 방법.
  5. 제1항에 있어서, 상기 관리 모듈의 결정에 따라 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 싱크 노드로 제공하는 단계는,
    델타 복구 이미지를 추가로 제공하고,
    상기 센서 노드 소프트웨어 업데이트 방법은,
    제공된 이미지가 상기 인코딩된 델타 업데이트 이미지인 경우에는 상기 인코딩된 델타 업데이트 이미지를 디코딩하여 상기 적어도 하나의 타겟 노드의 내부 메모리에 기록하고, 제공된 이미지가 상기 인코딩되지 않은 프로그램 이미지인 경우에는 상기 인코딩되지 않은 프로그램 이미지를 디코딩 없이 상기 적어도 하나의 타겟 노드의 상기 내부 메모리에 기록하는 단계 후에,
    상기 인코딩된 델타 업데이트 이미지 및 상기 인코딩되지 않은 프로그램 이미지 중 어느 하나를 상기 적어도 하나의 타겟 노드의 상기 내부 메모리에 기록 실패하는 경우에 제공된 델타 복구 이미지를 디코딩하여 상기 내부 메모리에 기록하는 단계를 더 포함하는 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 방법.
  6. 제1항에 있어서, 상기 싱크 노드로 제공하는 단계는,
    상기 코딩 뱅킹을 지원하는 MCS 51 계열의 MCU(Microcontroller Unit)를 이용하여 수행되는 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 방법.
  7. 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법을 수행하는 디지털 처리 장치에 의해 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서,
    데이터 베이스로부터 적어도 하나의 타겟 노드의 현재 프로그램 이미지를 수신하고, 상기 데이터 베이스로부터 수신된 현재 프로그램 이미지와 업데이트 프로그램 이미지를 비교하여 미리 결정된 기준에 따라 델타 이미지 인코딩 여부를 결정하는 단계;
    관리 모듈의 상기 결정에 따라 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 싱크 노드로 제공하는 단계; 및
    델타 이미지 인코딩 모듈로부터 제공된 이미지가 상기 인코딩된 델타 업데이트 이미지인 경우에는 상기 인코딩된 델타 업데이트 이미지를 디코딩하여 상기 적어도 하나의 타겟 노드의 내부 메모리에 기록하고, 상기 델타 이미지 인코딩 모듈로부터 제공된 이미지가 상기 인코딩되지 않은 프로그램 이미지인 경우에는 상기 인코딩되지 않은 프로그램 이미지를 디코딩 없이 상기 적어도 하나의 타겟 노드의 상기 내부 메모리에 기록하는 단계를 수행하는 프로그램을 기록한 기록 매체.
  8. 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 장치에 있어서,
    인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 싱크 노드로 제공하는 업데이트 관리부; 및
    상기 업데이트 관리부로부터 제공된 이미지를 무선 네트워크를 통하여 적어도 하나의 타겟 노드에 제공하는 싱크 노드를 구비하는 센서 노드 소프트웨어 업데이트 장치.
  9. 제8항에 있어서, 상기 인코딩된 델타 업데이트 이미지 및 상기 인코딩되지 않은 프로그램 이미지는,
    코드 뱅킹(Code Banking)을 지원하는 메모리 뱅크 단위의 이미지인 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 장치.
  10. 제8항에 있어서, 상기 업데이트 관리부는,
    상기 적어도 하나의 타겟 노드의 프로그램 이미지를 저장하는 데이터베이스;
    상기 데이터베이스로부터 적어도 하나의 타겟 노드의 현재 프로그램 이미지를 수신하고, 상기 데이터베이스로부터 수신된 현재 프로그램 이미지와 업데이트 프로그램 이미지를 비교하여 미리 결정된 기준에 따라 델타 이미지 인코딩 여부를 결정하는 관리 모듈; 및
    상기 관리모듈의 결정 결과 델타 이미지 인코딩을 하는 경우에는 상기 적어도 하나의 타겟 노드의 현재 프로그램 이미지 및 상기 업데이트 프로그램 이미지를 이용하여 상기 인코딩된 델타 업데이트 이미지를 상기 싱크 노드에 제공하고, 상기 결정 결과 델타 이미지 인코딩을 하지 않는 경우에는 상기 업데이트 프로그램 이미지를 상기 인코딩되지 않은 프로그램 이미지로서 상기 싱크 노드에 제공하는 델타 이미지 인코딩 모듈을 구비하는 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 장치.
  11. 제8항에 있어서,
    상기 업데이트 관리부는 델타 복구 이미지를 추가로 상기 싱크 노드로 제공하고,
    상기 싱크 노드는 상기 업데이트 관리부로부터 제공된 델타 복구 이미지를 상기 적어도 하나의 타겟 노드에 제공하는 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 장치.
  12. 제8항에 있어서, 상기 업데이트 관리부는 개인용 컴퓨터(Personal Computer, PC) 및 워크스테이션(Workstation) 중 어느 하나인 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 장치.
  13. 제8항에 있어서, 상기 싱크 노드는,
    상기 업데이트 관리부로부터 제공된 이미지를 오버 더 에어(Over-the-Air) 프로그래밍 프로토콜을 이용하여 상기 적어도 하나의 타겟 노드에 제공하는 제1 송수신부를 구비하는 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 장치.
  14. 제13항에 있어서, 상기 제1 송수신부는,
    상기 적어도 하나의 타겟 노드로부터 상기 제공된 이미지의 변환 여부에 대한 피드백을 제공 받고, 상기 제공된 피드백이 데이터 패킷의 CRC 값 오류, 패리티 값 오류 및 서명 인증 오류 중 어느 하나일 경우 상기 제공된 이미지의 적어도 일부를 상기 적어도 하나의 타겟 노드에 다시 제공하는 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 장치.
  15. 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 장치에 있어서,
    외부 장치로부터 인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나를 무선 네트워크를 통하여 제공 받는 제2 송수신부;
    상기 제2 송수신부로부터 제공된 이미지를 저장하는 외부 메모리; 및
    상기 외부 메모리에 저장된 이미지가 인코딩된 델타 업데이트 이미지인 경우에는 상기 외부 메모리에 저장된 인코딩된 델타 업데이트 이미지를 디코딩하여 내부 메모리에 기록하고, 상기 외부 메모리에 저장된 이미지가 인코딩되지 않은 프로그램 이미지인 경우에는 상기 저장된 인코딩되지 않은 프로그램 이미지를 디코딩 없이 상기 내부 메모리에 기록하는 실행 모듈을 구비하는 센서 노드 소프트웨어 업데이트 장치.
  16. 제15항에 있어서, 상기 인코딩된 델타 업데이트 이미지 및 상기 인코딩되지 않은 프로그램 이미지는,
    코드 뱅킹(Code Banking)을 지원하는 메모리 뱅크 단위의 이미지인 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 장치.
  17. 제15항에 있어서, 상기 실행 모듈은,
    상기 외부 메모리에 저장된 이미지가 인코딩된 델타 업데이트 이미지인 경우에 상기 저장된 인코딩된 델타 업데이트 이미지를 디코딩하여 인코딩되지 않은 프로그램 이미지로서 다시 상기 외부 메모리에 기록하는 디코딩 모듈; 및
    상기 외부 메모리에 저장된 인코딩되지 않은 프로그램 이미지를 상기 내부 메모리에 기록하는 부트로더(Bootloader)를 구비하는 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 장치.
  18. 제15항에 있어서, 상기 제2 송수신부는,
    상기 외부 장치로부터 델타 복구 이미지를 추가로 제공 받아 상기 외부 메모리에 저장하고,
    상기 실행 모듈은,
    상기 인코딩된 델타 업데이트 이미지 및 상기 인코딩되지 않은 프로그램 이미지 중 어느 하나를 상기 내부 메모리에 기록 실패하는 경우에 제공된 델타 복구 이미지를 디코딩하여 상기 내부 메모리에 기록하는 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 장치.
  19. 제15항에 있어서, 상기 제2 송수신부는,
    상기 외부 장치로부터 상기 인코딩된 델타 업데이트 이미지 및 상기 인코딩되지 않은 프로그램 이미지 중 어느 하나를 오버 더 에어(Over-the-Air) 프로그래밍 프로토콜을 이용하여 제공 받는 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 장치.
  20. 제15항에 있어서, 상기 외부 메모리는,
    상기 인코딩된 델타 이미지를 저장하는 영역 및 상기 인코딩되지 않은 프로그램 이미지를 저장하는 영역을 포함하는 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 장치.
  21. 제15항에 있어서, 상기 센서 노드 소프트웨어 업데이트 장치는,
    상기 제2 송수신부로부터 제공된 이미지의 변환 여부를 판단하고, 상기 판단 결과가 데이터 패킷의 CRC 값 오류, 패리티 값 오류 및 서명 인증 오류 중 어느 하나일 경우, 상기 제2 송수신부를 경유하여 상기 외부 장치에 상기 제공된 이미지의 적어도 일부를 재요청하는 수신 검증 모듈을 더 구비하는 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 장치.
  22. 제16항에 있어서, 상기 코드 뱅킹은,
    MCS 51 계열의 MCU(Microcontroller Unit)로부터 지원 되는 것을 특징으로 하는 센서 노드 소프트웨어 업데이트 장치.
  23. 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 시스템에 있어서,
    인코딩된 델타 업데이트 이미지 및 인코딩되지 않은 프로그램 이미지 중 어느 하나와, 인코딩된 델타 복구 이미지를 싱크 노드로 제공하는 업데이트 관리부;
    상기 업데이트 관리부로부터 제공된 이미지를 오버 더 에어(Over-the-Air) 프로그래밍 프로토콜을 이용하여 적어도 하나의 타겟 노드에 제공하는 싱크 노드; 및
    상기 싱크 노드로부터 제공된 이미지를 외부 메모리에 저장하고, 상기 외부 메모리에 저장된 이미지가 인코딩된 델타 업데이트 이미지인 경우에는 상기 저장된 인코딩된 델타 업데이트 이미지를 디코딩하여 내부 메모리에 기록하며, 상기 외부 메모리에 저장된 이미지가 인코딩되지 않은 프로그램 이미지인 경우에는 상기 저장된 인코딩되지 않은 프로그램 이미지를 디코딩 없이 상기 내부 메모리에 기록하고, 상기 인코딩된 델타 업데이트 이미지 및 상기 인코딩되지 않은 프로그램 이미지 중 어느 하나를 상기 내부 메모리에 기록 실패하는 경우에 제공된 델타 복구 이미지를 디코딩하여 상기 내부 메모리에 기록하는 타겟 노드를 구비하는 센서 노드 소프트웨어 시스템.
KR1020080122223A 2008-12-04 2008-12-04 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법 및 장치 KR101019822B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080122223A KR101019822B1 (ko) 2008-12-04 2008-12-04 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080122223A KR101019822B1 (ko) 2008-12-04 2008-12-04 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20100063869A KR20100063869A (ko) 2010-06-14
KR101019822B1 true KR101019822B1 (ko) 2011-03-04

Family

ID=42363631

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080122223A KR101019822B1 (ko) 2008-12-04 2008-12-04 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101019822B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101383691B1 (ko) 2010-10-25 2014-04-09 한국전자통신연구원 무선 메쉬 네트워크에서의 협력적 무선 펌웨어 업데이트 장치 및 방법
KR101401378B1 (ko) 2010-10-26 2014-05-30 한국전자통신연구원 가상 머신의 라이브 마이그레이션에서 가상 연결성 유지를 위한 호스트 시스템, 원격 장치 서버 및 이를 이용한 연결성 유지 방법
KR102129245B1 (ko) * 2018-07-05 2020-07-02 주식회사 코아칩스 센서 프로토콜을 업데이트하기 위한 방법 및 시스템
KR102159875B1 (ko) * 2019-01-09 2020-09-24 주식회사 코아칩스 통합 센서 프로토콜 업데이트 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040071063A (ko) * 2003-02-05 2004-08-11 삼성전자주식회사 무선 단말에 있어서 델타 파일에 따른 무선(ota)소프트웨어 업그레이드 시스템 및 방법
KR20050106846A (ko) * 2004-05-06 2005-11-11 삼성전자주식회사 휴대단말기 펌웨어를 업그레이드하기 위한 장치와 방법
KR20070018093A (ko) * 2004-06-10 2007-02-13 삼성전자주식회사 무선 네트워크에서의 오버-더-에어 업그레이드용 델타파일의 효율적 생성 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040071063A (ko) * 2003-02-05 2004-08-11 삼성전자주식회사 무선 단말에 있어서 델타 파일에 따른 무선(ota)소프트웨어 업그레이드 시스템 및 방법
KR20050106846A (ko) * 2004-05-06 2005-11-11 삼성전자주식회사 휴대단말기 펌웨어를 업그레이드하기 위한 장치와 방법
KR20070018093A (ko) * 2004-06-10 2007-02-13 삼성전자주식회사 무선 네트워크에서의 오버-더-에어 업그레이드용 델타파일의 효율적 생성 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Decoding Code on a Sensor Node", Springer, Lecture Notes In Computer Science; Vol. 5067, Proceedings of the 4th IEEE international conference on Distributed Computing in Sensor Systems, 2008.06.07

Also Published As

Publication number Publication date
KR20100063869A (ko) 2010-06-14

Similar Documents

Publication Publication Date Title
JP5517089B2 (ja) ソリッドステートデバイス内のオブジェクト指向メモリ
US10007574B2 (en) Memory controller utilizing an error coding dispersal function
TWI409821B (zh) 解碼方法、編碼方法及啟動控制系統
CA2414281C (en) System and method for updating and distributing information
US20030182414A1 (en) System and method for updating and distributing information
JP2018085122A (ja) 持続性記憶装置を管理する方法およびシステム、ならびに非一時的コンピュータ読み取り可能媒体
KR101019822B1 (ko) 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법 및 장치
US10732887B2 (en) Cable modem and operating method thereof
JP2002244933A (ja) チェックサムを異なるメモリ位置へ動的に移動させるシステムおよび方法
US20090198878A1 (en) Information processing system and information processing method
JP2002251331A (ja) データを回復するためにチェックサムを利用するシステムおよび方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131231

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee