KR20110076432A - Can 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법 - Google Patents

Can 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법 Download PDF

Info

Publication number
KR20110076432A
KR20110076432A KR1020090133134A KR20090133134A KR20110076432A KR 20110076432 A KR20110076432 A KR 20110076432A KR 1020090133134 A KR1020090133134 A KR 1020090133134A KR 20090133134 A KR20090133134 A KR 20090133134A KR 20110076432 A KR20110076432 A KR 20110076432A
Authority
KR
South Korea
Prior art keywords
update
controller
firmware
data
master controller
Prior art date
Application number
KR1020090133134A
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 KR1020090133134A priority Critical patent/KR20110076432A/ko
Publication of KR20110076432A publication Critical patent/KR20110076432A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 CAN 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법에 관한 것으로서, 펌웨어 업데이트 프로그램 데이터와 펌웨어를 업데이트하기 위한 명령을 전송하고, 업데이트 상태 정보를 수신하는 마스터 컨트롤러와, 마스터 컨트롤러에 CAN(Controller Area Network) 직렬 버스를 통해 연결되어 펌웨어 업데이트 프로그램 데이타와 펌웨어를 업데이트하기 위한 명령을 수신하고, 업데이트 상태 정보를 마스터 컨트롤러로 전송하는 슬레이브 컨트롤러를 포함한다. 본 발명을 이용하면 산업용 기기 또는 로봇시스템에서 사용하는 컨트롤러 보드의 업데이트 시 CAN 통신에 연결된 산업용 기기 또는 로봇시스템을 분해하지 않고 CAN 마스터 컨트롤러에서 개선된 프로그램을 다수의 CAN 슬레이브 컨트롤러 보드에 동시에 프로그램 업데이트가 가능하여, 빠른 시간이내 개선된 프로그램을 업데이트할 수 있어 전체 시스템의 안정에 소요되는 시간을 단축시킬 수 있다.
CAN, 펌웨어, 업그레이드

Description

CAN 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법{SYSTEM FOR UPGRADING MULTI-PROGRAM BY USING CAN COMMUNICATION AND METHOD THEREOF}
본 발명은 CAN 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법에 관한 것으로서, 더 상세하게는, 마스터 컨트롤러와, 마스터 컨트롤러에 CAN(Controller Area Network) 직렬 버스를 통해 연결되는 슬레이브 컨트롤러를 포함하는 CAN 통신을 이용한 다중 프로그램 업데이트 시스템 및 이 시스템을 이용한 다중 프로그램 업데이트 방법에 관한 것이다.
로봇과 같은 산업용 장비는 수 많은 부품으로 구성되며, 이 부품들은 각 부품을 제어하는 컨트롤러를 포함한다. 또한, 각 컨트롤러는 일반적으로 부품 동작 제어를 위한 펌웨어를 포함한다. 이러한 펌웨어는 펌웨어에 문제가 생기거나 펌웨어의 성능향상을 위해 업데이트될 필요가 있다.
산업용 장비가 아닌 모바일 기기 또는 컴퓨터 시스템에서 프로그램 버그나 개선이 필요로 할 때 기존 프로그램을 업데이트 할 수 있는 방법이 있다. 대부분 특정 파일 형식으로 업데이트 하거나 네트웍 통신 또는 USB 통신 UART 통신을 이용하여 프로그램을 업데이트하고 있다.
한국 공개 특허 2003-0073824는 직렬 버스(USB) 포트를 이용하여 컴퓨터 등의 시스템의 펌웨어를 업그레이드하는 방법을 개시하고 있으며, 한국 공개 특허 2003-0010986은 휴대용 기기의 펌웨어를 업그레이드시켜 소프트웨어적으로 새로운 기능을 추가시킬 수 있는 펌웨어 업그레이드 시스템 및 방법을 개시하고 있다. 또한 기록 매체 재생 장치를 이용한 주변 기기 펌웨어 업그레이드 방법이 한국 공개 특허 2003-0070717에 개시되어 있다.
하지만, 위 종래 기술의 통신 방법은 산업용기기나 로봇에서는 적합하지 않다. 산업용 기기 또는 로봇에서는 컨트롤러 제어를 위한 일반적인 통신인 CAN 통신을 이용한다. CAN은 다중통신 (Multi Master Communication) 방식을 위한 고속 응용 시스템에 적합하여 로봇 등의 산업용 기기에서 많이 사용되어 왔다. 그러나 CAN 통신 이용은 센서 값을 읽거나 장치를 구동시키는 간단한 제어 위주로만 쓰여 왔다.
기존의 방식에서는 기기에 문제가 생기거나, 컨트롤러 보드 프로그램 내용을 보완할 것이 있으면 컨트롤러 보드를 기기에서 분해하여 J-tag/Uart/usb 등의 통신을 이용하여 해당 프로그램을 입력한 후 다시 기기에 컨트롤러 보드를 장착하는 과정을 거치게 되었으나, 이러한 과정 중 여러 문제가 발생하여 컨트롤러 보드 파손을 야기하거나 기기를 분해해야만 프로그램 업데이트가 가능하여 시간 및 공간적인 제약이 많이 따른다.
로봇이나 산업용 장비는 제품이 조립되고 나면 다시 재조립하려면 여러 문제가 발생할 수 있으며, 이에 산업용 장비나 로봇에서는 재조립을 고려한 설계를 하 고 있지만 재조립을 고려한 설계는 비대해져 공간적인 제약이 많이 따른다.
본 발명은 상기 종래 기술의 문제점을 해결하기 위하여 창출된 것으로, CAN 통신과 연결된 마스터에서 프로그램 업데이트가 필요한 슬레이브 컨트롤러에 업데이트할 새로운 프로그램을 업데이트 할 수 있게 함으로써 기기에서 컨트롤러 보드를 분해하는 과정이 사라지며 컨트롤러 보드 파손을 방지하고, 또한 분해 과정이 사라짐으로써 시간 및 공간적인 비용을 최소화할 수 있는 CAN 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법을 제공하는데 목적이 있다.
상기 목적을 달성하기 위해, 본 발명에 따른 CAN 통신을 이용한 다중 프로그램 업데이트 시스템은 펌웨어 업데이트 프로그램 데이터와 펌웨어를 업데이트하기 위한 명령을 전송하고, 업데이트 상태 정보를 수신하는 마스터 컨트롤러와, 마스터 컨트롤러에 CAN(Controller Area Network) 직렬 버스를 통해 연결되어 펌웨어 업데이트 프로그램 데이타와 펌웨어를 업데이트하기 위한 명령을 수신하고, 업데이트 상태 정보를 마스터 컨트롤러로 전송하는 슬레이브 컨트롤러를 포함하는 것을 특징으로 한다.
여기서 상기 CAN 통신 시스템은 2 가닥의 꼬임선 (Twist Pair Wire)으로 연결되어 반이중 통신 (Half Duplex) 방식의 통신을 수행하도록 구성될 수 있다.
여기서, 상기 마스터 컨트롤러는 펌웨어 업데이트 프로그램이 저장된 호스트 컴퓨터와 상호 연결을 위한 인터페이스를 갖는다. 이 때, 이러한 호스트 컴퓨터와 의 인터페이스는 유선, 또는 무선 인터페이스일 수 있다.
또한, 본 발명에 따른 CAN 통신을 이용한 다중 프로그램 업데이트 방법은, 마스터 컨트롤러와 상기 마스터 컨트롤러에 CAN 통신을 통하여 연결된 슬레이브 컨트롤러를 구비한 CAN 통신을 이용하며, (a) 상기 마스터 컨트롤러가 상기 슬레이브 컨트롤러로부터 펌웨어 버전 정보를 획득하는 단계, (b) 상기 펌웨어가 업그레이드가 필요한 펌웨어 버전인지 확인하여 펌웨어 버전이 업데이트할 버전 보다 낮은 경우에 신규 버전으로 업데이트하기 위해 해당 슬레이브 컨트롤러에 펌웨어를 업데이트하겠다는 명령을 전송하는 단계, (c) 상기 슬레이브 컨트롤러가 펌웨어 업데이트 가능 여부를 상기 마스터 컨트롤러에 다시 전송하여 업데이트 가능 여부를 확인해 주는 단계, (d) 상기 마스터 컨트롤러가 업데이트할 데이타를 상기 슬레이브 컨트롤러에 전송하고 상기 슬레이브 컨트롤러는 상기 업데이트 데이타를 수신하는 단계, (e) 상기 업데이트 데이타의 수신이 완료되면, 수신된 데이타의 유효성을 확인하는 단계, (f) 상기 데이타의 유효성이 확인되면, 상기 슬레이브 컨트롤러의 플래쉬 메모리의 기존 데이타를 삭제하며, 삭제 완료 후 새로 수신된 데이타를 슬레이브 컨트롤러 플래쉬 메모리에 쓰기 시작 하는 단계, (g) 상기 쓰기 동작이 마무리되면 수신된 데이타와 기록된 데이타가 일치하는지 확인 작업을 수행하며, 확인이 완료되면 쓰기 완료 신호를 상기 마스터 컨트롤러에 전송하는 단계, (h) 상기 마스터 컨트롤러로부터 모든 업데이트 데이타를 수신할 때까지 상기 (d)~(g) 과정을 반복하는 단계, (i) 펌웨어의 업데이트가 완료되면, 업데이트 완료 정보를 상기 슬레이브 컨트롤러에서 상기 마스터 컨트롤러로 전송하는 단계, (j) 상기 업데이트 완 료 정보가 수신되면 상기 마스터 컨트롤러는 완료 명령과 함께 상기 슬레이브 컨트롤러를 재시작 할 수 있는 명령를 전송하는 단계, 및 (k) 상기 슬레이브 컨트롤러에 재시작 명령이 수신되면 상기 슬레이브 컨트롤러는 시스템을 재시작 시키는 단계를 포함하는 것을 특징으로 한다.
여기서, 상기 단계 (d)~(g)의 일련의 과정에 의한 다수의 슬레이브 컨트롤러에 대한 프로그램 업데이트는 순차적으로 또는 동시에 수행될 수 있다.
본 발명에 따른 CAN 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법을 이용함으로써, 산업용 기기 또는 로봇시스템에서 사용하는 컨트롤러 보드에 프로그램 이상 및 개선점이 발견되어 컨트롤러 보드 프로그램을 업데이트 하여야 할 경우, 산업용 기기 또는 로봇시스템에서 분해하여 전용 툴을 이용하여 프로그램을 업데이트 하거나, CAN 통신에 연결된 산업용 기기 또는 로봇시스템을 분해하지 않고 CAN 마스터 컨트롤러에서 개선된 프로그램을 다수의 CAN 슬레이브 컨트롤러 보드에 동시에 프로그램 업데이트가 가능하여 빠른 시간이내 개선된 프로그램을 업데이트 할 수 있어 전체 시스템의 안정에 소요되는 시간을 단축시킬 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.
도 1에 도시된 것과 같이, 본 발명에 따른 CAN 통신을 이용한 다중 프로그램 업데이트 시스템은, 펌웨어 업데이트 프로그램 데이터와 펌웨어를 업데이트하기 위한 명령을 전송하고, 업데이트 상태 정보를 수신하는 마스터 컨트롤러(110)와, 마 스터 컨트롤러(110)에 CAN(Controller Area Network) 직렬 버스를 통해 연결되어 펌웨어 업데이트 프로그램 데이타와 펌웨어를 업데이트하기 위한 명령을 수신하고, 업데이트 상태 정보를 상기 마스터 컨트롤러(110)로 전송하는 슬레이브 컨트롤러(120a~120c)를 포함한다.
여러 컨트롤러와 연결이 될 수 있는 CAN 통신이 필요로 하면 CAN 통신은 최신 규약인 2.0A/B 형식을 따른다. 각 컨트롤러는 네트워크 상에서 각각의 노드 (컨트롤러)를 식별할 수 있도록 각 노드 마다 11 비트 또는 29 비트의 유일한 식별자를 가지고 있으며 CAN과 통신할 수 있는 CAN 컨트롤러를 포함한다.
여기서, 상기 CAN 버스는 컨트롤러 사이에서 통신망을 형성하며 2 가닥의 꼬임선 (Twist Pair Wire)으로 연결되어 반이중 통신 (Half Duplex) 방식의 통신을 수행하도록 구성될 수 있다. 이러한 방식의 CAN은 반이중 통신 (Half Duplex) 방식으로 짧은 메시지를 사용하는 고속 응용 시스템에 적당하며 본 발명의 시스템과 같이 작은 용량의 슬레이브 컨트롤러 용량으로 인해 작은 데이타를 반복적으로 통신하는데 특히 유용하다.
CAN 메시지에 있는 식별자(ID)의 길이에 따라 두 가지 모드로 구분되는데, 이러한 CAN 버스는 11 비트 식별자를 가지는 표준 CAN (버전 2.0A) 이거나 29 비트 식별자를 가지는 확장 CAN (버전 2.0B) 일 수 있으며 이들은 서로 혼용되어 사용될 수 있다.
또한, 본 발명에 따른 CAN 통신을 이용한 다중 프로그램 업데이트 시스템에서, 상기 마스터 컨트롤러(110)는 펌웨어 업데이트 프로그램이 저장된 호스트 컴퓨 터(100)와 상호 연결을 위한 인터페이스를 가지는 것을 특징으로 한다. 이 때, 이러한 호스트 컴퓨터(100)와의 인터페이스는 유선, 또는 무선 인터페이스일 수 있다.
도 2는 본 발명에 따른 CAN 통신을 이용한 다중 프로그램 업데이트 방법을 보여주는 흐름도이다.
도 2를 참조하면, 본 발명에 따른 CAN 통신을 이용한 다중 프로그램 업데이트 방법은, 마스터 컨트롤러(110)와 상기 마스터 컨트롤러(110)에 CAN 통신을 통하여 연결된 슬레이브 컨트롤러(120a~120c)를 구비한 CAN 통신을 이용하며, 마스터 컨트롤러가 슬레이브 컨트롤러로부터 펌웨어 버전 정보를 획득하는 단계 (S202), 상기 펌웨어가 업그레이드가 필요한 펌웨어 버전인지 확인하여 펌웨어 버전이 업데이트할 버전 보다 낮은 경우에 신규 버전으로 업데이트하기 위해 해당 슬레이브 컨트롤러에 펌웨어를 업데이트하겠다는 명령을 전송하는 단계 (S203, S205), 상기 슬레이브 컨트롤러(120a~120c)가 펌웨어 업데이트 가능 여부를 상기 마스터 컨트롤러에 다시 전송하여 업데이트 가능 여부를 확인해 주는 단계 (S206), 상기 마스터 컨트롤러가 업데이트할 데이타를 상기 슬레이브 컨트롤러에 전송하고 상기 슬레이브 컨트롤러는 상기 업데이트 데이타를 수신하는 단계 (S208), 상기 업데이트 데이타의 수신이 완료되면, 수신된 데이타의 유효성을 확인하는 단계 (S209), 상기 데이타의 유효성이 확인되면, 상기 슬레이브 컨트롤러(120a~120c)의 플래쉬 메모리의 기존 데이타를 삭제하며 (S210), 삭제 완료 후 새로 수신된 데이타를 슬레이브 컨트롤러의 플래쉬 메모리에 쓰기 시작 하는 단계 (S211), 상기 쓰기 동작이 마무리 되면 수신된 데이타와 기록된 데이타가 일치하는지 확인 작업을 수행하며 (S212), 확인이 완료되면 쓰기 완료 신호를 상기 마스터 컨트롤러(110)에 전송하는 단계 (S213), 상기 마스터 컨트롤러(110)로부터 모든 업데이트 데이타를 수신할 때까지 상기 단계 S208~S213 과정을 반복하는 단계, 펌웨어의 업데이트가 완료되면, 업데이트 완료 정보를 상기 슬레이브 컨트롤러(120a~120c)에서 상기 마스터 컨트롤러(110)로 전송하는 단계 (S215), 상기 업데이트 완료 정보가 수신되면 상기 마스터 컨트롤러(110)는 완료 명령과 함께 상기 슬레이브 컨트롤러(120a~120c)를 재시작 할 수 있는 명령를 전송하는 단계 (S216), 및 (k) 상기 슬레이브 컨트롤러에 재시작 명령이 수신되면 상기 슬레이브 컨트롤러는 시스템을 재시작 시키는 단계를 포함한다.
여기서, 각 단계를 더 상세히 설명하면, 먼저 마스터 컨트롤러(110)는 슬레이브 컨트롤러(120a~120c)의 펌웨어가 업데이트가 필요한 상태인지를 확인하기 위해 슬레이브 컨트롤러(120a~120c)의 펌웨어 버전을 확인한다(S202). 슬레이브 컨트롤러(120a~120c)의 펌웨어 버전이 업데이트하고자 하는 펌웨어 버전보다 낮은 경우에는 슬레이브 컨트롤러(120a~120c)의 펌웨어를 업데이트하기 위한 명령을 슬레이브 컨트롤러(120a~120c)에 전송한다(S203, S205). 업데이트 진행은 명령과 데이타가 분리되어 진행되며 해당 슬레이브 컨트롤러에 펌웨어를 업데이트하겠다는 명령을 보내게 된다. 슬레이브 컨트롤러(120a~120c)는 업데이트 명령을 받은 후, 컨트롤러의 업데이트가 가능한 상태인지의 정보를 마스터 컨트롤러(110)에 전송한다. 슬레이브 컨트롤러(120a~120c)가 업데이트 가능한 상태인 경우, 마스터 컨트롤 러(110)는 업데이트할 데이타를 슬레이브 컨트롤러(120a~120c)에 전송하고 슬레이브 컨트롤러(120a~120c)는 업데이트 데이타를 수신한다(S208). 도 3에서 보는 바와 같이 슬레이브 컨트롤러(120a~120c)의 메모리는 업데이트를 수행하고 데이타의 유효성을 확인하는 업데이트 프로그램 부분과 실제 업데이트되는 프로그램 데이타가 저장되는 업데이트 프로그램 데이타 부분으로 구분된다. 슬레이브 컨트롤러(120a~120c)의 업데이트 프로그램은 슬레이브 컨트롤러(120a~120c)에 내장되어 있거나 마스터 컨트롤러(110)로부터 다운로드될 수 있다. 슬레이브 컨트롤러(120a~120c)의 메모리 용량은 일반적으로 업데이트되는 프로그램 데이타의 용량보다 작으므로 컨트롤러를 업데이트하는 작업은 여러 번으로 나누어 수행되게 된다.
즉, 모바일 기기나 컴퓨터 시스템에서 펌웨어를 업데이트 하고자 할 경우 업데이트 할 프로그램을 RAM영역에 모두 저장하고 난 이후 한번에 프로그램을 업데이트하는데 반해, 산업용 기기의 경우 대부분 프로그램 진행시 많은 메모리 용량이 필요하여 메모리 용량이 업데이트 하고자 하는 펌웨어보다 훨씬 용량이 많다. 하지만 산업용 기기나 로봇 시스템에 사용하는 컨트롤러는 메모리 용량이 최대 64KByte 정도로 매우 적어 한번에 업데이트 할 프로그램을 메모리에 저장하여 처리 할 수 없다. 따라서 특정 용량 만큼 수신이 되면 프로그램을 업데이트하며, 이 과정을 반복하여 전체 프로그램 업데이트를 진행한다. 수신된 데이타가 유효한 데이타인지 매번 확인과정이 있으며 전체를 프로그램을 업데이트 한 이후 확인 과정을 거쳐 프로그램 업데이트가 최종 적용되도록 한다.
마스터 컨트롤러()110로부터의 업데이트 데이타의 수신이 완료되면 업데이트 프로그램은 수신된 데이타의 유효성을 확인하고 (S209), 데이타의 유효성이 확인되면 슬레이브 컨트롤러(120a~120c)의 플래쉬 메모리의 기존 데이타를 삭제하며 (S210), 삭제 완료 후 새로 수신된 데이타를 슬레이브 컨트롤러 플래쉬 메모리에 쓰기 시작한다 (S211). 쓰기 동작이 마무리되면 수신된 데이타와 기록된 데이타가 일치하는지 확인 작업을 수행하며 (S212), 확인이 완료되면 쓰기 완료 신호를 상기 마스터 컨트롤러(110)에 전송한다(S213).
이러한 과정은 모든 업데이트 프로그램 데이타가 수신될 때까지 반복된다.
슬레이브 컨트롤러(120a~120c)의 펌웨어 업데이트가 완료되면, 업데이트 완료 정보를 슬레이브 컨트롤러(120a~120c)에서 상기 마스터 컨트롤러(110)로 전송하며 (S215), 마스터 컨트롤러(110)는 업데이트 완료 정보가 수신되면 완료 명령과 함께 슬레이브 컨트롤러(120a~120c)를 재시작 할 수 있는 명령을 전송한다.
상기 슬레이브 컨트롤러(120a~120c)에 재시작 명령이 수신되면 상기 슬레이브 컨트롤러(120a~120c)는 시스템을 재시작 시킨다(S216).
본 발명에 따른 CAN 통신을 이용한 다중 프로그램 업데이트 방법에 있어서, 다수의 슬레이브 컨트롤러(120a~120c)에 대한 프로그램 업데이트는 순차적으로 또는 동시에 행하여 질 수 있다.
다수의 슬레이브 컨트롤러(120a~120c)에 대한 업데이트를 순차적으로 행하는 경우에, 각 슬레이브 컨트롤러에 대한 업데이트 순위를 정한 후, 하나의 슬레이브 컨트롤러에 대한 업데이트가 완료된 후에 다음 슬레이브 컨트롤러의 업데이트를 수 행한다.
다수의 슬레이브 컨트롤러(120a~120c)에 대한 업데이트를 동시에 행하는 경우에, 마스터 컨트롤러(110)는 각 슬레이브 컨트롤러의 식별자를 구분하여 업데이트 명령을 연속적으로 전송하며 하나의 슬레이브 컨트롤러에서 업데이트가 수행되는 동안 다른 슬레이브 컨트롤러로 업데이트 데이타를 전송하게 된다. 이에 따라 각 슬레이브 컨트롤러는 독립적으로 업데이트 작업을 수행할 수 있다.
도 1은 본 발명에 따른 CAN 통신을 이용한 다중 프로그램 업데이트 시스템을 보여주는 블록도이다.
도 2는 본 발명에 따른 CAN 통신을 이용한 다중 프로그램 업데이트 방법을 보여주는 흐름도이다.
도 3은 슬레이브 컨트롤러의 메모리가 업데이트를 수행하는 업데이트 프로그램 부분과 업데이트될 프로그램 데이타를 수록하는 부분으로 분리되는 것을 도시하는 블록도이다.

Claims (7)

  1. 펌웨어 업데이트 프로그램 데이터와 펌웨어를 업데이트하기 위한 명령을 전송하고, 업데이트 상태 정보를 수신하는 마스터 컨트롤러와,
    상기 마스터 컨트롤러에 CAN(Controller Area Network) 직렬 버스를 통해 연결되어 상기 펌웨어 업데이트 프로그램 데이타와 펌웨어를 업데이트하기 위한 명령을 수신하고, 업데이트 상태 정보를 상기 마스터 컨트롤러로 전송하는 슬레이브 컨트롤러를 포함하는 것을 특징으로 하는 CAN 통신을 이용한 다중 프로그램 업데이트 시스템.
  2. 제 1항에 있어서, 상기 CAN 통신 시스템은 2 가닥의 꼬임선 (Twist Pair Wire)으로 연결되어 반이중 통신 (Half Duplex) 방식의 통신을 수행하는 것을 특징으로 하는 CAN 통신을 이용한 다중 프로그램 업데이트 시스템.
  3. 제 2항에 있어서, 상기 마스터 컨트롤러는 펌웨어 업데이트 프로그램이 저장된 호스트 컴퓨터와 상호 연결을 위한 인터페이스를 가지는 것을 특징으로 하는 CAN 통신을 이용한 다중 프로그램 업데이트 시스템.
  4. 제 3항에 있어서, 상기 호스트 컴퓨터와의 상기 인터페이스는 무선 인터페이스인 것을 특징으로 하는 CAN 통신을 이용한 다중 프로그램 업데이트 시스템.
  5. 마스터 컨트롤러와 상기 마스터 컨트롤러에 CAN 통신을 통하여 연결된 슬레이브 컨트롤러를 구비한 CAN 통신에 의한 다중 프로그램 업데이트 시스템을 이용한 CAN 통신을 이용한 다중 프로그램 업데이트 방법으로서,
    (a) 상기 마스터 컨트롤러가 상기 슬레이브 컨트롤러로부터 펌웨어 버전 정보를 획득하는 단계;
    (b) 상기 펌웨어가 업그레이드가 필요한 펌웨어 버전인지 확인하여 펌웨어 버전이 업데이트할 버전 보다 낮은 경우에 신규 버전으로 업데이트하기 위해 해당 슬레이브 컨트롤러에 펌웨어를 업데이트하겠다는 명령을 전송하는 단계;
    (c) 상기 슬레이브 컨트롤러가 펌웨어 업데이트 가능 여부를 상기 마스터 컨트롤러에 다시 전송하여 업데이트 가능 여부를 확인해 주는 단계;
    (d) 상기 마스터 컨트롤러가 업데이트할 데이타를 상기 슬레이브 컨트롤러에 전송하고 상기 슬레이브 컨트롤러는 상기 업데이트 데이타를 수신하는 단계;
    (e) 상기 업데이트 데이타의 수신이 완료되면, 수신된 데이타의 유효성을 확인하는 단계;
    (f) 상기 데이타의 유효성이 확인되면, 상기 슬레이브 컨트롤러의 플래쉬 메모리의 기존 데이타를 삭제하며, 삭제 완료 후 새로 수신된 데이타를 슬레이브 컨트롤러 플래쉬 메모리에 쓰기 시작 하는 단계;
    (g) 상기 쓰기 동작이 마무리되면 수신된 데이타와 기록된 데이타가 일치하는지 확인 작업을 수행하며, 확인이 완료되면 쓰기 완료 신호를 상기 마스터 컨트 롤러에 전송하는 단계;
    (h) 상기 마스터 컨트롤러로부터 모든 업데이트 데이타를 수신할 때까지 상기 (d)~(g) 과정을 반복하는 단계;
    (i) 펌웨어의 업데이트가 완료되면, 업데이트 완료 정보를 상기 슬레이브 컨트롤러에서 상기 마스터 컨트롤러로 전송하는 단계;
    (j) 상기 업데이트 완료 정보가 수신되면 상기 마스터 컨트롤러는 완료 명령과 함께 상기 슬레이브 컨트롤러를 재시작 할 수 있는 명령를 전송하는 단계; 및
    (k) 상기 슬레이브 컨트롤러에 재시작 명령이 수신되면 상기 슬레이브 컨트롤러는 시스템을 재시작 시키는 단계를 포함하는 CAN 통신을 이용한 다중 프로그램 업데이트 방법.
  6. 제 5항에 있어서, 상기 단계 (d)~(g)의 일련의 과정에 의한 다수의 슬레이브 컨트롤러에 대한 프로그램 업데이트를 순차적으로 행하는 것을 특징으로 하는 CAN 통신을 이용한 다중 프로그램 업데이트 방법.
  7. 제 5항에 있어서, 상기 단계 (d)~(g)의 일련의 과정에 의한 다수의 슬레이브 컨트롤러에 대한 프로그램 업데이트를 동시에 행하는 것을 특징으로 하는 CAN 통신을 이용한 다중 프로그램 업데이트 방법.
KR1020090133134A 2009-12-29 2009-12-29 Can 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법 KR20110076432A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090133134A KR20110076432A (ko) 2009-12-29 2009-12-29 Can 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090133134A KR20110076432A (ko) 2009-12-29 2009-12-29 Can 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20110076432A true KR20110076432A (ko) 2011-07-06

Family

ID=44916333

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090133134A KR20110076432A (ko) 2009-12-29 2009-12-29 Can 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20110076432A (ko)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101335206B1 (ko) * 2011-09-19 2013-11-29 에스케이씨앤씨 주식회사 원격 검침 시스템 및 그의 펌웨어 업데이트 방법
KR101401006B1 (ko) * 2012-09-03 2014-05-29 주식회사 시큐아이 고가용성 시스템에서 소프트웨어 업데이트를 수행하기 위한 방법 및 장치
KR101436135B1 (ko) * 2012-08-13 2014-09-01 인터콘시스템스 주식회사 하부장치에 대한 소프트웨어 업데이트 장치
KR20150017558A (ko) * 2013-08-07 2015-02-17 현대모비스 주식회사 차량 모듈의 nvr 데이터 오류에 의한 오동작 방지 장치 및 방법
KR101527779B1 (ko) * 2014-01-13 2015-06-10 현대자동차주식회사 효율적인 차량용 리프로그래밍 장치 및 그 제어방법
CN106154875A (zh) * 2015-05-27 2016-11-23 宁夏巨能机器人***有限公司 一种用于关节机器人与上位机的通讯装置及其通讯方法
CN108304202A (zh) * 2017-12-20 2018-07-20 珠海派诺科技股份有限公司 一种基于总线的多仪表固件升级方法及装置
US10033546B2 (en) 2012-12-31 2018-07-24 Hyundai Motor Company Method and system for reprogramming
US10365917B2 (en) 2016-06-22 2019-07-30 Hyundai Motor Company Method and apparatus for controlling electronic device of vehicle
KR102064684B1 (ko) * 2018-09-21 2020-01-08 한국산업기술대학교산학협력단 Can 통신을 이용한 프로그램 업데이트의 기밀성을 보장하기 위한 데이터 통신 방법
CN113407472A (zh) * 2021-06-29 2021-09-17 南京南瑞继保工程技术有限公司 一种嵌入式装置及其程序并行下载方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101335206B1 (ko) * 2011-09-19 2013-11-29 에스케이씨앤씨 주식회사 원격 검침 시스템 및 그의 펌웨어 업데이트 방법
KR101436135B1 (ko) * 2012-08-13 2014-09-01 인터콘시스템스 주식회사 하부장치에 대한 소프트웨어 업데이트 장치
KR101401006B1 (ko) * 2012-09-03 2014-05-29 주식회사 시큐아이 고가용성 시스템에서 소프트웨어 업데이트를 수행하기 위한 방법 및 장치
US10033546B2 (en) 2012-12-31 2018-07-24 Hyundai Motor Company Method and system for reprogramming
KR20150017558A (ko) * 2013-08-07 2015-02-17 현대모비스 주식회사 차량 모듈의 nvr 데이터 오류에 의한 오동작 방지 장치 및 방법
KR101527779B1 (ko) * 2014-01-13 2015-06-10 현대자동차주식회사 효율적인 차량용 리프로그래밍 장치 및 그 제어방법
CN104773120A (zh) * 2014-01-13 2015-07-15 现代自动车株式会社 用于高效重新编程的车内设备及其控制方法
CN106154875A (zh) * 2015-05-27 2016-11-23 宁夏巨能机器人***有限公司 一种用于关节机器人与上位机的通讯装置及其通讯方法
CN106154875B (zh) * 2015-05-27 2019-01-01 宁夏巨能机器人***有限公司 一种用于关节机器人与上位机的通讯装置及其通讯方法
US10365917B2 (en) 2016-06-22 2019-07-30 Hyundai Motor Company Method and apparatus for controlling electronic device of vehicle
CN108304202A (zh) * 2017-12-20 2018-07-20 珠海派诺科技股份有限公司 一种基于总线的多仪表固件升级方法及装置
CN108304202B (zh) * 2017-12-20 2022-04-08 珠海派诺科技股份有限公司 一种基于总线的多仪表固件升级方法及装置
KR102064684B1 (ko) * 2018-09-21 2020-01-08 한국산업기술대학교산학협력단 Can 통신을 이용한 프로그램 업데이트의 기밀성을 보장하기 위한 데이터 통신 방법
CN113407472A (zh) * 2021-06-29 2021-09-17 南京南瑞继保工程技术有限公司 一种嵌入式装置及其程序并行下载方法

Similar Documents

Publication Publication Date Title
KR20110076432A (ko) Can 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법
CN104579719B (zh) 一种固件的升级方法和***、上位机和光模块
KR101906823B1 (ko) 멀티 모듈 컴파일 시스템 및 멀티 모듈 컴파일 방법, 그리고 컴파일러 프로그램을 갖는 컴퓨터 판독가능 저장매체
CN107066300B (zh) 一种存储设备的固件升级方法和存储设备
JP5039428B2 (ja) プログラマブルコントローラ及びplcシステム
CN104468235A (zh) 一种基于iap的可配置全网络远程节点固件升级***及装置
KR20170104306A (ko) 모듈 시스템 및 모듈기반 로봇 시스템, 그리고 모듈 시스템의 업데이트 방법
CN114237676B (zh) 一种fpga逻辑更新方法、装置、设备及可读存储介质
CN110750285B (zh) 固件升级方法、装置、计算机设备和存储介质
WO2021136200A1 (zh) 引导程序的加载方法、存储介质及嵌入式终端
CN105094877A (zh) 一种固件升级的方法和主机端装置及***
US9465599B2 (en) Method, device and system for installing terminal software
WO2016033941A1 (zh) Boot在线升级装置及方法
US20220307717A1 (en) Installation position confirmation support system, server, program, and method
JP2012093961A (ja) 制御装置及び方法、並びにプログラム書込システム
US20240086175A1 (en) Update control system, update control method, non-transitory storage medium, and in-vehicle control device
CN110134423B (zh) 固件的更新方法、装置及计算机可读存储介质
CN114640584B (zh) 模块升级方法和***
CN110442074B (zh) 可编程逻辑控制器程序的处理装置
CN113342385A (zh) 软件升级方法及装置、空调控制面板
CN109254936B (zh) ***数据传输队列结构体的方法和装置
CN112771497A (zh) 设备升级的方法、装置及存储介质
JP2015072531A (ja) テスト支援方法、テスト支援装置およびプログラム
CN106548311B (zh) 库存管理设定***
CN111414176B (zh) 程序烧录方法、装置、电子设备以及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application