KR20180049834A - 차량 제어 프로그램을 복구하는 제어 장치 및 그 방법 - Google Patents

차량 제어 프로그램을 복구하는 제어 장치 및 그 방법 Download PDF

Info

Publication number
KR20180049834A
KR20180049834A KR1020160145545A KR20160145545A KR20180049834A KR 20180049834 A KR20180049834 A KR 20180049834A KR 1020160145545 A KR1020160145545 A KR 1020160145545A KR 20160145545 A KR20160145545 A KR 20160145545A KR 20180049834 A KR20180049834 A KR 20180049834A
Authority
KR
South Korea
Prior art keywords
block
tag value
control program
memory
vehicle control
Prior art date
Application number
KR1020160145545A
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 KR1020160145545A priority Critical patent/KR20180049834A/ko
Publication of KR20180049834A publication Critical patent/KR20180049834A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 차량 제어 프로그램을 복구하는 제어 장치 및 그 방법 에 관한 것으로서, 더욱 상세하게는 차량 제어 프로그램을 블록 단위로 제1 메모리 상에 저장하고, 복구 장치의 제1 요청에 응답하여, 오작동 블록에 대한 제1 태그 값을 생성하는 차량 제어기와 상기 차량 제어 프로그램을 블록 단위로 제2 메모리에 저장하고, 상기 제2 메모리의 블록 단위마다 태그 값을 생성하고, 상기 제1 메모리 상의 블록 중, 상기 차량 제어기의 오작동을 발생시키는 오작동 블록을 감지하고, 상기 생성된 제2 메모리의 블록 단위의 태그 값 중, 상기 오작동 블록에 대응하는 블록의 제2 태그 값을 상기 차량 제어기로부터 제공된 상기 제1 태그 값과 비교하고, 상기 비교 결과에 따라, 상기 차량 제어기의 오작동 블록에 대하여 상기 차량 제어 프로그램의 일 부분에 대한 재설치를 수행하는 복구 장치를 포함하는, 차량 제어 프로그램을 복구하는 제어 장치에 관한 것이다.

Description

차량 제어 프로그램을 복구하는 제어 장치 및 그 방법{Control device for recovering car control program and Method thereof}
본 발명은 차량 제어 프로그램을 복구하기 위한 제어 장치 및 그 방법에 관한 것이다. 보다 자세하게는, 차량 제어기와 연동하여 차량 제어 프로그램을 복구하기 위한 복구 장치가 구비된 제어 장치 및 그 방법에 관한 것이다.
자동차 전장화 추세에 따라 다양한 전자 제어 시스템이 차량에 도입되고 있다. 이러한 전자 제어 시스템은, 차량의 제어기에 의해 제어되는데, 자율 주행, 주행 및 주차 지원, 차량 상태 자동 점검 기능 등, 요구되는 기능이 다양화됨에 따라, 차량에 구비되는 제어기의 종류 및 수량도 다양해지고 있다.
이와 같은 차량 제어기의 종류 및 수량 다양화는 프로그램 오류, 네트워크를 통한 해킹 등의 문제를 유발할 수 있다. 현재, 이 같은 문제가 발생 시, 차량 제어기는 스스로 재부팅하여 문제를 복구하거나, 운전자에게 경고를 주어 문제 해결을 유도한다
그러나, 프로그램의 오류가 심각하거나, 해킹에 의한 훼손 정도가 큰 경우, 차량 제어기가 스스로 재부팅하더라도, 재차 기능 오작동의 문제가 발생할 수 있다. 이는 결국, 주행 안정성에 큰 위협이 되며, 운전자가 별도의 정비를 받아야 되는 불편을 발생시킨다.
그럼에도, 재부팅없이 프로그램을 자동으로 복구할 수 있는 장치 및 방법이 제공되지 않고 있다. 특히, 차량 제어기의 프로그램을 메모리 블록 단위로 검증하여, 오류가 발생한 부분만을 복구시킬 수 있는 장치 및 방법은 제공되지 않고 있다.
한국공개특허 제2013-0079775호
이러한 배경에서, 본 발명의 목적은, 차량 제어기의 재부팅 또는 운전자의 정비소 방문 없이, 자동으로 차량 제어 프로그램을 복구할 수 있는 장치 및 그 방법을 제공하는 것이다.
전술한 목적을 달성하기 위하여, 일 측면에서, 본 발명은, 차량 제어 프로그램을 블록 단위로 복구하는 복구 장치를 제공한다.
구체적으로, 본 발명은, 차량 제어 프로그램에 대한 메모리 블록 단위의 복구를 위해 메모리 블록 별 태그 정보를 생성할 수 있는 복구 장치를 제공한다.
전술한 목적을 달성하기 위하여, 다른 측면에서, 본 발명은, 메모리를 블록 단위로 해시하고, 해시 값을 복구 장치에 제공함으로써, 복구 장치의 차량 제어 프로그램 복구 기능을 지원하는 차량 제어기를 제공한다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 차량 제어 프로그램을 복구하는 제어 장치는, 차량 제어 프로그램을 블록 단위로 제1 메모리 상에 저장하고, 복구 장치의 제1 요청에 응답하여, 오작동 블록에 대한 제1 태그 값을 생성하는 차량 제어기와 상기 차량 제어 프로그램을 블록 단위로 제2 메모리에 저장하고, 상기 제2 메모리의 블록 단위마다 태그 값을 생성하고, 상기 제1 메모리 상의 블록 중, 상기 차량 제어기의 오작동을 발생시키는 오작동 블록을 감지하고, 상기 생성된 제2 메모리의 블록 단위의 태그 값 중, 상기 오작동 블록에 대응하는 블록의 제2 태그 값을 상기 차량 제어기로부터 제공된 상기 제1 태그 값과 비교하고, 상기 비교 결과에 따라, 상기 차량 제어기의 오작동 블록에 대하여 상기 차량 제어 프로그램의 일 부분에 대한 재설치를 수행하는 복구 장치를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 차량 제어 프로그램을 복구하는 방법은, 차량 제어 프로그램을 복구 장치의 메모리 상에 블록 단위로 저장하는 단계와 상기 복구 장치의 메모리의 블록 별로 태그 값을 생성하는 단계와 차량 제어기의 오작동을 감지하고, 상기 오작동이 발생한 상기 차량 제어기의 오작동 블록에 대한 제1 태그 값을 생성하는 단계와 상기 복구 장치의 메모리에 대하여 생성된 태그 값 중 상기 오작동 블록에 대응하는 블록에 대하여 생성된 제2 태그 값을, 상기 생성된 제1 태그 값과 비교하여, 상기 오작동이 발생한 블록에 저장된 상기 차량 제어 프로그램의 일 부분에 대한 무결성을 판단하는 단계와 상기 무결성 판단 결과에 따라, 상기 오작동 블록에 대한 상기 적어도 일 부분의 프로그램에 대한 재설치를 수행하는 단계를 포함할 수 있다.
이상에서 설명한 바와 같이 본 발명에 의하면, 주행 도중 차량 제어 프로그램에 오류가 발생한 경우, 운전자가 정비소를 방문하거나, 프로그램의 재부팅 없이 차량 제어 프로그램을 자동으로 복구할 수 있는 효과가 있다.
또한, 본 발명에 의하면, 메모리 블록 단위의 프로그램 복구를 수행함으로써 프로그램 복구에 소요되는 시간을 최소화할 수 있는 장점이 있다.
또한, 본 발명에 의하면, 프로그램 복구에 있어, 원본 프로그램에 대한 백업 프로그램을 이용하여 오류 부분을 수정할 수 있으므로, 복구되는 프로그램의 신뢰성 및 보안성이 향상되는 효과가 있다.
또한, 본 발명에 의하면, 복구 관련 인증은 복구 장치를 통해서만 수행되고, 차량 제어기는 기존의 제어 기능만을 수행할 수 있으므로, 차량 제어기의 연산 부담을 감소시키는 장점이 있다.
또한, 본 발명에 의하면, 차량 제어 프로그램의 인증 방식이 변경되는 경우, 기존의 차량 제어기 및 차량 제어 프로그램은 유지한 채, 복구 장치만을 변경함으로써, 부품 생산 비용을 절감하는 효과가 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 차량 제어 프로그램 복구 시스템의 구성도이다.
도 2는 본 발명의 다른 실시예에 따른 차량 제어 장치에 구비된 복구 장치의 하드웨어 구성도이다.
도 3은 본 발명의 또 다른 실시예에 따른 차량 제어 프로그램 복구 방법의 순서도이다.
도 4는 본 발명의 몇몇 실시예에서 참조되는, 차량 제어 프로그램의 설치과정을 설명하기 위한 차량 제어 프로그램 복구 시스템의 순서도이다.
도 5는 본 발명의 몇몇 실시예에서 참조되는, 차량 제어기와 복구 장치 사이의 신호 흐름도 이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 차량 제어 프로그램 복구 시스템의 구성도이다. 이하, 도 1를 참조하여, 본 발명의 실시예에 따른 차량 제어 프로그램 복구 시스템(10)의 구성 및 동작에 대하여 구체적으로 설명한다.
도 1을 참조하면, 차량 제어 프로 그램 복구 시스템(10)은 프로그램 주입 장치(30), 센트럴 게이트웨이(Central gateway, 이하, CGW)(50) 및 차량 제어 프로그램을 복구하는 제어 장치(100)를 포함할 수 있다. 이하, 설명의 편의를 위하여, 차량 제어 프로그램을 복구하는 제어 장치(100)는 제어 장치(100)로 약칭하기로 한다. 특히, 도 1에서, 제어 장치(100)가 차량 제어기(110)와 이에 연결된 메모리(116) 및 복구 장치(120)와 이에 연결된 메모리(126)를 포함하여 구성되는 경우가 예로써 도시되었다.
프로그램 주입 장치(30)는, 차량 제어기(110)에 새로운 프로그램을 주입해야 할 필요가 있을 때, 사용되는 장치로서, 차량의 CGW(50)과 유무선 통신이 가능한 컴퓨팅 장치일 수 있다. 프로그램 주입 장치(30)는 프로그램 주입을 위해서 CGW(50)의 보안 인증을 통과한 후, 차량 제어기(110) 및 복구 장치(120) 중 적어도 하나에 접근할 수 있다. 또한, 프로그램 주입 장치(30)는, 차량 제어기(110) 및 복구 장치(120) 중 적어도 하나와 새로운 프로그램의 설치 전, 프로그램에 대한 인증 동작을 수행할 수 있다. 프로그램 인증이 완료되면, 프로그램 주입 장치(30)는, 차량 제어기(110) 및 복구 장치(120) 중 적어도 하나에 인증된 새로운 프로그램을 설치 동작을 수행할 수도 있다.
CGW(50)는 차량 외부에서 차량의 네크워크에 접근하기 위한 게이트웨이로서, 차량의 네트워크에 접근하는 외부 장치에 대한 인증을 수행할 수 있다. 본 명세서에서 CGW(50)는, 차량 내부 게이트웨이로 칭해질 수도 있다.
차량 제어기(110)는 차량의 전반적인 기능 및/또는 차량의 각종 전자 제어 장비를 제어하는 장치이다. 차량 제어기(110)는 메모리(116)를 블록 단위로 구분하고 해시 값을 생성할 수 있으며, 생성된 해시 값을 복구 장치(120)에 제공할 수 있다. 또한, 차량 제어기(110)는 프로그램 주입 장치(30) 또는 복구 장치(120)와 프로그램의 설치 동작을 수행할 수 있다. 구체적으로, 차량 제어기(110)는 차량 제어 프로그램을 블록 단위로 메모리(116) 상에 저장하고, 복구 장치(120)의 요청에 응답하여, 오작동 블록에 대한 태그 값을 생성할 수 있다.
차량 제어기(110)는 메모리 블록 별 프로그램 설치 결과를 복구 장치(120)에 통보할 수 있다.
차량 제어기(110)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), AP(Application Processor), ECU(Electronic Control Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 적어도 하나 포함하여 구성될 수 있다.
복구 장치(120)는 차량 제어 프로그램을 저장하고 차량 제어기(110)를 위해 백업(Back-up)하는 컴퓨팅 장치이다.
프로그램 주입 장치(30)로부터 CGW(50)를 통해 새로운 프로그램을 수신하여 메모리(126)에 블록 단위로 저장할 수 있다. 이때, 프로그램의 저장 이전에, 복구 장치(120)는 프로그램 주입 장치(30)와 프로그램의 서명을 검증함으로써, 프로그램 인증 동작을 수행한다. 특히, 복구 장치(120)는 메모리(126)에 프로그램을 블록 단위로 저장하고, 각 블록마다 태그(127)를 생성할 수 있다.
복구 장치(120)는 차량 제어기(110)에 블록 단위로 프로그램을 주입할 수 있으며, 차량 제어기(110)의 메모리(116)의 블록 별로, 저장된 프로그램에 대한 무결성 판단을 수행할 수도 있다. 이를 위해, 복구 장치(120)는 차량 제어기(110)로부터 수신된 메모리(116)의 각 블록에 대한 해시 값 정보를 기초로, 프로그램을 주입하는 메모리(116)의 블록을 식별할 수 있다. 또한, 무결성 판단을 수행하는 메모리(116)의 블록을 식별할 수도 있다. 복구 장치(120)는 해시 값을 기초로, 메모리(126)의 각 블록과 메모리(116)의 각의 블록 사이의 대응 관계를 생성할 수 있다.
복구 장치(120)는 A라는 프로그램의 각 모듈(또는 로직)인, a1을 메모리(126)의 블록1에 저장한 경우를 예로 들어 설명한다. 복구 장치(120)는, 메모리(116)의 해시 값 정보를 기초로, 메모리(126)의 블록1과 차량 제어기(110)의 메모리(116)의 블록1 사이의 대응 관계를 생성할 수 있다. 이 경우, 블록 장치(120)는 메모리(126)의 블록1에 저장된 a1을 차량 제어기(110)의 메모리(116)의 블록1에 저장할 수 있다.
복구 장치(120)는 적어도 하나의 프로세서를 구비할 수 있다. 다른 실시예에 따르면, 복구 장치(120)는 상기 차량 제어기(110)와 프로세서를 적어도 하나 공유할 수 있다. 즉, 복구 장치(120)는 차량 제어기(110)의 프로세서에 의해 제어될 수도 있다.
이하, 도 2를 참조하여 복구 장치(120)의 각 구성 및 동작에 대하여 자세히 설명한다. 도 2는 본 발명의 다른 실시예에 따른 차량 제어 장치에 구비된 복구 장치의 하드웨어 구성도이다.
도 2를 참조하면, 복구 장치(120)는 하나 이상의 프로세서(121), CGW(50)를 통해 프로그램 주입 장치(30)에 접속하거나, 차량 제어기(110)에 접속을 제공하는 네트워크 인터페이스(122), 프로세서(121)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(123)와, 컴퓨터 프로그램을 저장하는 스토리지(124)를 포함할 수 있다.
프로세서(121)는 복구 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(121)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), ECU(Electronic Control Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(121)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다.
네트워크 인터페이스(122)는 복구 장치(120)의 유무선 네트워크 통신을 지원한다. 또한, 네트워크 인터페이스(122)는 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(122)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 적어도 하나 포함하여 구성될 수 있다.
네트워크 인터페이스(122)는 차량의 네트워크를 통해 도 1에 도시된 CGW(50)통해 프로그램 주입 장치와 데이터를 송수신할 수 있다. 또한, 네트워크 인터페이스(122)는 차량 제어기(110)에 설치될 프로그램을 제공하고, 프로그램의 설치 결과에 대한 정보를 수신할 수 있다.
메모리(123)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(123)는 본 발명의 실시예들에 따른 차량의 제어 프로그램에 대한 복구 방법을 실행하기 위하여 스토리지(124)로부터 하나 이상의 프로그램(125)을 로드할 수 있다. 메모리(123)는 적어도 일부 영역을 블록 단위의 메모리(116) 형태로 구비할 수 있으며, 도 2에서 메모리(123)의 예시로 RAM이 도시되었다.
스토리지(124)는 상기 하나 이상의 프로그램(125) 및 태그 정보(127)를 비임시적으로 저장할 수 있다. 도 2에서 상기 하나 이상의 프로그램(125)의 예시로 프로그램 복구 소프트웨어(125)가 도시되었다.
스토리지(124)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
프로그램 복구 소프트웨어(125)는 프로세서(121)에 의해 각 오퍼레이션이 실행됨으로써 도 3에서 후술할 본 발명의 실시예에 따른 방법이 실행되도록 한다.
또한, 태그 정보(127)는 메모리(126)의 각 블록에 대응되는 정보로서, 각 블록의 식별 및 메모리(116) 블록과의 대응 관계 생성을 위한 정보이다.
한편, 도 1에 대한 설명에서, 복구 장치(120)의 구성으로, 프로세서(121), 네트워크 인터페이스(122), 메모리(123), 스토리지(124) 및 프로그램 복구 소프트웨어(125)가 설명되었으나, 복구 장치(120)는 본 발명이 속한 기술 분야에서 널리 알려진 구성 요소를 추가로 포함하거나, 상기 구성 요소들을 다양하게 응용한 다른 구성요소를 포함하여 구성될 수도 있다.
이하, 상술한 도 1 및 도 2에 대한 설명을 바탕으로, 본 발명의 실시예들을 구체적으로 설명하도록 한다.
도 3은 본 발명의 또 다른 실시예에 따른 차량 제어 프로그램 복구 방법의 순서도이다. 도 4는 본 발명의 몇몇 실시예에서 참조되는, 차량 제어 프로그램의 설치과정을 설명하기 위한 차량 제어 프로그램 복구 시스템의 순서도이다. 또한, 도 5는 본 발명의 몇몇 실시예에서 참조되는, 차량 제어기와 복구 장치 사이의 신호 흐름도 이다.
도 3을 참조하면, 제어 장치(100)는 차량 제어 프로그램을 복구 장치(120)의 메모리(126) 상에 블록 단위로 저장할 수 있다(S10).
이를 위해, 도 4를 참조하면, 프로그램 주입 장치(30)는 차량 접근 보안 인증(S401) 동작을 수행할 수 있다. 구체적으로, 프로그램 주입 장치(30)는 CGW(50)에 네트워크를 통해 인증을 요청한다(S403). CGW(50)에서 진단기를 통해 인증이 수행되면(S405), 인증 정보가 프로그램 주입 장치(30)에 송신된다(S407).
다음으로, 프로그램 주입 장치(30)에서 프로그램 인증 동작을 수행할 수 있다(S411). 프로그램 주입 장치(30)로부터 설치 대상 프로그램이 주입되면(S413), 복구 장치(120)는 프로그램에 대한 인증을 수행하고(S415), 인증 정보를 프로그램 주입 장치(30)에 회신한다. 이에 따라, 프로그램에 대한 인증이 완료된다.
도 3 및 도 4를 참조하면, 복구 장치(120)는 인증된 프로그램을 블록 단위로 메모리(126)의 각 블록에 저장하고, 블록 별로 태그 값을 생성할 수 있다(S20, S420).
다음으로, 도 4를 참조하면, 복구 장치(120)로부터 차량 제어기(110)에 프로그램이 주입될 수 있다(S421). 구체적으로, 프로그램은, 차량 제어기(110)의 메모리(116)의 블록 단위로 저장될 수 있다. 차량 제어기(110)는 기존의 프로그램이 저장되어 있는 경우, 블록 단위로 자동으로 새로운 프로그램을 업데이트할 수 있다(S423). 차량 제어기(110)는 업데이트된 정보를 복구 장치(120)에 제공하고(S425), 복구장치(120)는 프로그램 주입 장치(30)에 업데이트 결과에 대한 정보를 프로그램 주입 장치(30)에 송신할 수도 있다(S427).
한편, 복구 장치(120)는 차량 제어기(110)의 오작동을 감지할 수 있다(S20). 도 3 및 도 5를 참조하면, 복구 장치(120)는 차량 제어기 오작동 확인을 수행할 수 있다(S510). 구체적으로, 복구 장치(120)는 차량 제어기(110)에 정상 동작인지 여부를 체크하는 메시지(S503)를 송신할 수 있다. 차량 제어기(110)는 메시지 수신에 응답하여, 차량 제어기 동작 정보에 대해 회신할 수 있다(S505).
복구 장치(120)가 차량 제어기의 오작동이 감지된 경우를 예로 들어 설명한다. 오작동이 감지된 경우, 복구 장치(120)는 프로그램의 무결성을 판단할 수 있다(S520). 이때, 복구 장치(120)는 메모리의 블록 별로 무결성을 판단할 수 있다.
이에 대하여 구체적으로 설명하면, 복구 장치(120)는 오작동이 발생한 차량 제어기(110)의 메모리(116)의 i블록에 대한 제1 태그 값을 차량 제어기(110)에 요청할 수 있다(S523). 차량 제어기(110)는 요청에 응답하여, i블록에 대한 제1 태그 값을 생성할 수 있다(S525). 즉, 차량 제어 장치(110)는 오작동이 발생한 차량 제어기(110)의 메모리(116)의 i블록에 대한 제1 태그 값을 생성할 수 있다(S30).
차량 제어기(110)는 복구 장치(120)로 생성한 제1 태그 값을 제공한다(S527).
이에 따라, 복구 장치(120)는 제공 받은 i 블록에 대한 제1 태그 값과 단계(S20, S420)에서 생성된 태그 값 중, i 블록에 대응하는 메모리(126)의 블록에 대한 제2태그 값을 비교할 수 있다(S40).
상기 비교 결과, 제1 태그 값과 제2 태그 값이 다른 경우, 복구 장치(120)는 오작동이 발생한 메모리(116)의 오작동 블록(i)에 대한 태그 값을 차량 제어기(110)에 요청할 수 있다. 이러한 요청에 응답하여, 차량 제어기(110)는 오작동이 발생한 차량 제어기(110)의 메모리(116) 상의 오작동 블록(i)에 대한 제1 태그 값을 생성할 수 있다.
단계(S20, S420)에서 복구 장치의 메모리(126)에 대하여 생성된 태그 값 중, 복구 장치(100)는 오작동 블록(i)에 대응하는 블록을 식별할 수 있다. 복구 장치(120)는 차량 제어기(110)로부터 제공된 해시 값을 기초로 생성된, 메모리(116) 및 메모리(126)의 대응 관계를 이용하여 오작동 블록(i)에 대응되는 메모리(126) 상의 블록을 식별할 수 있다.
복구 장치(120)는 식별된 블록에 대한 태그 값인, 제2 태그 값을, 생성된 제1 태그 값과 비교하여, 오작동 블록(i)에 저장된 차량 제어 프로그램의 일 부분에 대한 무결성을 판단할 수 있다.
이 같은 무결성 판단 결과에 따라, 복구 장치(120)는 오작동 블록(i)에 대한 적어도 일 부분의 프로그램에 대한 재설치를 수행할 수 있다(S60).
단계(S60)은, 차량 제어 프로그램에 대한 리프로그래밍(Reprograming) 단계로 이해될 수 있다. 즉, i 블록에 저장되었던, 프로그램의 일부분을 복구 장치(120)의 메모리(126) 상의 식별된 대응 블록에 백업되었던 프로그램의 일부분으로 대체함(S533)으로써, 프로그램의 신뢰성 및 안전성을 보장할 수 있으며, 프로그램 재설치를 일 부분에 대해서만 수행하여 신속한 시간 내에 프로그램 오류 문제를 해결할 수 있다.
차량 제어기(110)는 i 블록에 차량 제어 프로그램의 일 부분에 대한 재설치를 수행하고(S535), 이에 대한 결과를 복구 장치(120)로 송신한다(S537).
반면, 단계(S40)에서, 제1 태그 값 및 제2 태그 값의 비교 결과, 제1 태그 값과 제2 태그 값이 동일한 경우, 제어 장치(100)는 i 블록에 저장된 프로그램의 일 부분의 무결성이 인정되는 것으로 판단한다. 이 경우, 제어 장치(100)는 모든 메모리 블록에 대한 무결성이 판단되었는지 판단할 수 있다(S50). 모든 메모리 블록에 대한 무결성이 판단된 경우, 프로그램의 일부분이 모두 설치되었거나, 차량 제어기(110)의 오작동이 감지 오류일 수 있다. 이 경우, 프로그램 복구 프로세스가 종료된다.
다음으로, 모든 메모리 블록에 대한 무결성이 판단되지 않았다면, 제어 장치(100)는, i=i+1의 다른 블록에 대한 태그 값을 생성할 수 있다(S55).
이에 따라, 제어 장치(100)는 순차적으로 태그 값을 비교할 수 있다(S529).
구체적으로, 복구 장치(120)는 차량 제어기(110)의 메모리(116) 상의 블록 중, i 블록과 다른 블록(i+1)에 대한 오작동 여부를 판단할 수 있다. 다른 블록(i+1)에 대한 오작동이 감지되면, 복구 장치(120) 다른 블록(i+1)에 대한 태그 값을 차량 제어기(110)에 요청할 수 있다. 차량 제어기(110)는 상기 요청에 응답하여 제3 태그 값을 생성할 수 있다.
복구 장치(120)는 다른 블록(i+1)에 대응하는 블록의 제4 태그 값을 상기 제3 태그 값을 비교할 수 있다. 즉, 다른 블록(i+1)은 메모리(116) 상의 블록으로, 블록 장치(120)는 다른 블록(i+1)메모리(126) 상에 이에 대응하는 블록을 식별할 수 있다. 블록 장치(120)는 단계(S20, S420)에서, 생성된 태그 값 중, 식별된 블록의 태그 값인, 제4 태그 값을 식별하고, 이를 제3 태그 값과 비교할 수 있다. 이에 따라, 블록 장치(120)는 다른 블록(i+1)에 저장된 상기 차량 제어 프로그램의 일 부분에 대한 무결성을 판단할 수 있다.
이 같은 무결성 판단 결과, 제3 태그 값 및 상기 제4 태그 값이 다른 경우, 블록 장치(120)는 다른 블록(i+1)에 대응하는 메모리(126) 상의 블록에 저장된 차량 제어 프로그램의 일 부분을 메모리(116) 상의 다른 블록(i+1)에 재설치할 수 있다(S60).

Claims (13)

  1. 차량 제어 프로그램을 블록 단위로 제1 메모리 상에 저장하고, 복구 장치의 제1 요청에 응답하여, 오작동 블록에 대한 제1 태그 값을 생성하는 차량 제어기; 및
    상기 차량 제어 프로그램을 블록 단위로 제2 메모리에 저장하고, 상기 제2 메모리의 블록 단위마다 태그 값을 생성하고, 상기 제1 메모리 상의 블록 중, 상기 차량 제어기의 오작동을 발생시키는 오작동 블록을 감지하고, 상기 생성된 제2 메모리의 블록 단위의 태그 값 중, 상기 오작동 블록에 대응하는 블록의 제2 태그 값을 상기 차량 제어기로부터 제공된 상기 제1 태그 값과 비교하고, 상기 비교 결과에 따라, 상기 차량 제어기의 오작동 블록에 대하여 상기 차량 제어 프로그램의 일 부분에 대한 재설치를 수행하는 복구 장치를 포함하는,
    차량 제어 프로그램을 복구하는 제어 장치.
  2. 제 1 항에 있어서, 상기 복구 장치는,
    상기 비교 결과, 상기 제1 태그 값 및 상기 제2 태그 값이 다른 경우, 상기 오작동 블록에 대응하는 상기 제2 메모리 상의 블록에 저장된 상기 차량 제어 프로그램의 일 부분을 상기 제1 메모리 상의 상기 오작동 블록에 재설치하는,
    차량 제어 프로그램을 복구하는 제어 장치.
  3. 제 1 항에 있어서, 상기 복구 장치는,
    상기 비교 결과, 상기 제1 태그 값 및 상기 제2 태그 값이 같은 경우, 상기 제1 메모리 상의 블록 중, 상기 오작동 블록과 다른 블록에 대한 오작동 여부를 판단하고, 상기 다른 블록에 대한 오작동이 감지되면, 상기 다른 블록에 대한 태그 값의 생성을 상기 차량 제어기에 제2 요청하고,
    상기 차량 제어기는,
    상기 제2 요청에 따라 상기 다른 블록에 대한 제3 태그 값을 생성하는,
    차량 제어 프로그램을 복구하는 제어 장치.
  4. 제 3 항에 있어서, 상기 복구 장치는,
    상기 다른 블록에 대응하는 블록의 제4 태그 값을 상기 차량 제어기로부터 제공된 상기 제3 태그 값과 비교하고, 상기 비교 결과, 상기 제3 태그 값 및 상기 제4 태그 값이 다른 경우, 상기 다른 블록에 대응하는 상기 제2 메모리 상의 블록에 저장된 상기 차량 제어 프로그램의 일 부분을 상기 제1 메모리 상의 상기 다른 블록에 재설치하는,
    차량 제어 프로그램을 복구하는 제어 장치.
  5. 제 1 항, 제 2 항 및 제 4 항 중 어느 한 항에 있어서, 상기 차량 제어기는,
    상기 재설치된 결과를 상기 복구 장치에 제공하는,
    차량 제어 프로그램을 복구하는 제어 장치.
  6. 제 1 항에 있어서, 상기 차량 제어기는,
    상기 제1 메모리의 각 블록 단위에 대한 해시 값을 생성하고, 상기 생성된 해시 값을 상기 복구 장치에 제공하는,
    차량 제어 프로그램을 복구하는 제어 장치.
  7. 제 6 항에 있어서, 상기 복구 장치는,
    상기 차량 제어기로부터 상기 해시 값을 제공받고, 상기 해시 값을 기초로, 상기 오작동 블록에 대응하는 블록을 식별하는,
    차량 제어 프로그램을 복구하는 제어 장치.
  8. 제어 장치에 의해 수행되는 차량 제어 프로그램 복구 방법으로서,
    차량 제어 프로그램을 복구 장치의 메모리 상에 블록 단위로 저장하는 단계;
    상기 복구 장치의 메모리의 블록 별로 태그 값을 생성하는 단계;
    차량 제어기의 오작동을 감지하고, 상기 오작동이 발생한 상기 차량 제어기의 오작동 블록에 대한 제1 태그 값을 생성하는 단계;
    상기 복구 장치의 메모리에 대하여 생성된 태그 값 중 상기 오작동 블록에 대응하는 블록에 대하여 생성된 제2 태그 값을, 상기 생성된 제1 태그 값과 비교하여, 상기 오작동 블록에 저장된 상기 차량 제어 프로그램의 일 부분에 대한 무결성을 판단하는 단계; 및
    상기 무결성 판단 결과에 따라, 상기 오작동 블록에 대한 상기 적어도 일 부분의 프로그램에 대한 재설치를 수행하는 단계를 포함하는,
    차량 제어 프로그램을 복구하는 방법.
  9. 제 8 항에 있어서,
    상기 오작동 블록에 대한 상기 적어도 일 부분의 프로그램에 대한 재설치를 수행하는 단계는,
    상기 무결성 판단 결과, 상기 제1 태그 값 및 상기 제2 태그 값이 다른 경우, 상기 오작동 블록에 대응하는 상기 제2 메모리 상의 블록에 저장된 상기 차량 제어 프로그램의 일 부분을 상기 제1 메모리 상의 상기 오작동 블록에 재설치하는 단계를 포함하는,
    차량 제어 프로그램을 복구하는 방법.
  10. 제 8 항에 있어서,
    상기 오작동 블록에 대한 상기 적어도 일 부분의 프로그램에 대한 재설치를 수행하는 단계는,
    상기 무결성 판단 결과, 상기 제1 태그 값 및 상기 제2 태그 값이 같은 경우, 상기 제1 메모리 상의 블록 중, 상기 오작동 블록과 다른 블록에 대한 오작동 여부를 판단하는 단계; 및
    상기 다른 블록에 대한 오작동이 감지되면, 상기 다른 블록에 대한 제3 태그 값을 생성하는 단계를 포함하는,
    차량 제어 프로그램을 복구하는 방법.
  11. 제 10 항에 있어서,
    상기 다른 블록에 대응하는 블록의 제4 태그 값을 상기 제3 태그 값을 비교하여 상기 오작동이 발생한 다른 블록에 저장된 상기 차량 제어 프로그램의 일 부분에 대한 무결성을 판단하는 단계; 및
    상기 무결성 판단 결과, 상기 제3 태그 값 및 상기 제4 태그 값이 다른 경우, 상기 다른 블록에 대응하는 상기 제2 메모리 상의 블록에 저장된 상기 차량 제어 프로그램의 일 부분을 상기 제1 메모리 상의 상기 다른 블록에 재설치하는 단계를 포함하는,
    차량 제어 프로그램을 복구하는 방법.
  12. 제 8 항에 있어서,
    상기 차량 제어 프로그램을 복구 장치의 메모리 상에 블록 단위로 저장하는 단계는,
    상기 제1 메모리의 각 블록 단위에 대한 해시 값을 생성하는 단계를 포함하는,
    차량 제어 프로그램을 복구하는 방법.
  13. 제 12 항에 있어서,
    상기 무결성을 판단하는 단계는,
    상기 생성된 해시 값을 기초로, 상기 오작동 블록에 대응하는 블록을 식별하는 단계; 및
    상기 차량 제어기의 오작동 블록에 대한 제1 태그 값 및 상기 식별된 블록에 대한 제2 태그 값을 비교함으로써, 상기 무결성을 판단하는 단계를 포함하는,
    차량 제어 프로그램을 복구하는 방법.
KR1020160145545A 2016-11-03 2016-11-03 차량 제어 프로그램을 복구하는 제어 장치 및 그 방법 KR20180049834A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160145545A KR20180049834A (ko) 2016-11-03 2016-11-03 차량 제어 프로그램을 복구하는 제어 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160145545A KR20180049834A (ko) 2016-11-03 2016-11-03 차량 제어 프로그램을 복구하는 제어 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR20180049834A true KR20180049834A (ko) 2018-05-14

Family

ID=62187794

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160145545A KR20180049834A (ko) 2016-11-03 2016-11-03 차량 제어 프로그램을 복구하는 제어 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR20180049834A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102399103B1 (ko) * 2020-11-26 2022-05-18 (주)볼트마이크로 파일 시스템 기반 차량 진단 이벤트 메모리 관리 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110023412A (ko) * 2009-08-31 2011-03-08 고려대학교 산학협력단 실시간 차량 데이터 무결성 보장 장치 및 방법과 이를 이용한 차량용 블랙박스 시스템
KR20120131771A (ko) * 2011-05-26 2012-12-05 권성국 백업 소프트웨어가 저장 된 내장메모리를 구비한 이동 단말
JP2013167937A (ja) * 2012-02-14 2013-08-29 Fujitsu Ltd 情報処理装置、プログラムおよびエラー処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110023412A (ko) * 2009-08-31 2011-03-08 고려대학교 산학협력단 실시간 차량 데이터 무결성 보장 장치 및 방법과 이를 이용한 차량용 블랙박스 시스템
KR20120131771A (ko) * 2011-05-26 2012-12-05 권성국 백업 소프트웨어가 저장 된 내장메모리를 구비한 이동 단말
JP2013167937A (ja) * 2012-02-14 2013-08-29 Fujitsu Ltd 情報処理装置、プログラムおよびエラー処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102399103B1 (ko) * 2020-11-26 2022-05-18 (주)볼트마이크로 파일 시스템 기반 차량 진단 이벤트 메모리 관리 장치 및 방법
WO2022114754A1 (ko) * 2020-11-26 2022-06-02 (주)볼트마이크로 파일 시스템 기반 차량 진단 이벤트 메모리 관리 장치 및 방법

Similar Documents

Publication Publication Date Title
TWI627527B (zh) 基板管理控制器的回復方法及基板管理控制器
US8539472B2 (en) Method and system of updating shared memory
CN109670319B (zh) 一种服务器flash安全管理方法及其系统
EP3293659A1 (en) Network monitoring device, network system and computer-readable medium
CN109923518B (zh) 用于安全关键系统的软件更新机制
US10445503B2 (en) Secure persistent software updates
EP2745228A1 (en) Secure recovery apparatus and method
CN104267713B (zh) 双机热备结构的ato设备的故障检测和切换方法
CN110263590B (zh) 一种车载ecu及其安全防护方法
US9262631B2 (en) Embedded device and control method thereof
US20150019800A1 (en) Firmware Package to Modify Active Firmware
JP6659180B2 (ja) 制御装置および制御方法
CN109324815B (zh) 无人车系统升级的监控方法、装置和设备
EP3895939A1 (en) Electronic control device and security verification method for electronic control device
CN105337995A (zh) 一种智能卡快速个人化方法及系统
CN115220796A (zh) 安全引导设备
CN110865906B (zh) 一种电机初始位置角度存储方法、装置、车辆及存储介质
KR20180049834A (ko) 차량 제어 프로그램을 복구하는 제어 장치 및 그 방법
CN111966071A (zh) 一种车载控制器数据分类、存储及校验方法
CN106444730B (zh) 一种防软件僵死的电子控制单元的诊断方法
CN112925546B (zh) 一种防止车载ecu刷新出错的多级校验方法及系统
CN114115976A (zh) 一种车载控制器软件版本校验方法及系统
US20190102557A1 (en) Control device and control method
CN113051576A (zh) 控制方法和电子设备
CN111726270A (zh) 存储器系统及控制系统

Legal Events

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