KR102273410B1 - Ecu를 리프로그래밍 하기 위한 장치, 시스템 및 방법 - Google Patents

Ecu를 리프로그래밍 하기 위한 장치, 시스템 및 방법 Download PDF

Info

Publication number
KR102273410B1
KR102273410B1 KR1020200003535A KR20200003535A KR102273410B1 KR 102273410 B1 KR102273410 B1 KR 102273410B1 KR 1020200003535 A KR1020200003535 A KR 1020200003535A KR 20200003535 A KR20200003535 A KR 20200003535A KR 102273410 B1 KR102273410 B1 KR 102273410B1
Authority
KR
South Korea
Prior art keywords
ecu
storage medium
frame
temporary storage
frames
Prior art date
Application number
KR1020200003535A
Other languages
English (en)
Other versions
KR102273410B9 (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 KR1020200003535A priority Critical patent/KR102273410B1/ko
Priority to US17/134,900 priority patent/US11983518B2/en
Application granted granted Critical
Publication of KR102273410B1 publication Critical patent/KR102273410B1/ko
Publication of KR102273410B9 publication Critical patent/KR102273410B9/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40143Bus networks involving priority mechanisms
    • H04L12/4015Bus networks involving priority mechanisms by scheduling the transmission of messages at the communication node
    • 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/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40143Bus networks involving priority mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Small-Scale Networks (AREA)

Abstract

ECU를 리프로그래밍 하기 위한 시스템이 개시된다. 본 발명에 따른 ECU를 리프로그래밍 하기 위한 시스템은 임시 저장 매체에 우선적으로 CAN(Controller Area Network) 프레임을 저장해 두었다가, 임시 저장 매체가 일정한 용량을 수신하면 주 저장 매체에 CAN 프레임을 전달하여, 리프로그래밍에 걸리는 시간을 최소화한다. 본 발명에 따른 ECU를 리프로그래밍 하기 위한 시스템은 인공 지능(Artificial Intelligence) 모듈, 로봇, 증강 현실(Augmented Reality, AR) 장치, 가상 현실(virtual reality, VR) 장치, 5G 서비스와 관련된 장치 등과 연계될 수 있다.

Description

ECU를 리프로그래밍 하기 위한 장치, 시스템 및 방법{A DEVICE, SYSTEM AND A METHOD FOR REPROGRAMING ELECTRONIC CONTROL UNIT}
본 발명은 ECU(Electronic Control Unit, 자동차 제어기)를 리프로그래밍 하기 위한 장치, 시스템 및 방법에 관한 것이다.
최근, 자동차의 고급화 및 자동차 제어기가 다기능화 됨에 따라, ECU(Electronic Control Unit, 자동차 제어기)의 소프트웨어의 크기가 급증하고 있다.
한편, 리프로그래밍(Reprogramming)은 자동차용 소프트웨어를 ECU에 다운로드 하는 것을 의미하며, 자동차용 소프트웨어의 크기가 커짐에 따라 리프로그래밍 시간은 이에 비례하여 길어지게 되었다.
리프로그래밍 시간이 길어지면, 자동차를 제작하는데 걸리는 시간이 길어지게 되고, 엔지니어들은 늘어난 제작 시간에 의해 업무의 효율이 떨어질 수 있으며, 전반적으로 자동차의 생산량이 저하된다.
이에 따라, ECU에 대한 리프로그래밍을 보다 신속하게 처리할 수 있는 리프로그래밍 장치 또는 방법에 대한 요구가 증가하고 있다.
본 발명은 전술한 필요성 및/또는 문제점을 해결하는 것을 목적으로 한다.
본 발명에 따른 ECU를 리프로그래밍 하기 위한 장치, 시스템 및 방법은 임시 저장 매체에 우선적으로 CAN(Controller Area Network) 프레임을 저장해 두었다가, 임시 저장 매체가 일정한 용량을 수신하면 최종 저장 매체에 CAN 프레임을 전달하여, 리프로그래밍에 걸리는 시간을 최소화한다.
본 발명의 일 실시예에 따른 ECU를 리프로그래밍하기 위한 장치는, 메인 PC와 연결되는 메인 노드, 제1 ECU와 연결되는 서브 노드,상기 메인 노드의 통신 환경을 설정하는 메인 노드 관리부, 상기 서브 노드의 통신 환경을 설정하는 서브 노드 관리부 및 상기 메인 노드를 통해 상기 제1 ECU를 리프로그래밍하기 위한 제1 데이터를 포함하는 제1 프레임을 수신하면, 상기 제1 프레임을 복수의 제2 프레임들로 변환하는 CAN 프레임 생성부를 포함하며, 상기 CAN 프레임 생성부는, 상기 복수의 제2 프레임들에 포함된 개별 제2 프레임들을 순차적으로 일정한 시간 간격에 따라, 상기 제1 ECU에 포함된 제1 임시 저장 매체로 전송한다.
상기 CAN 프레임 생성부는, 상기 제1 임시 저장 매체의 저장 공간이 모두 찬 경우, 상기 제1 임시 저장 매체로의 제2 프레임 전송을 중단하며, 제2 ECU에 포함된 제2 임시 저장 매체에 상기 개별 제2 프레임들을 순차적으로 일정한 시간 간격에 따라 전송할 수 있다.
상기 CAN 프레임 생성부는, 상기 제1 ECU로부터 제1 신호를 수신하면, 상기 제2 임시 저장 매체로의 제2 프레임 전송을 중단하고, 상기 제1 임시 저장 매체로의 제2 프레임 전송이 중단되기 전에 상기 제1 임시 저장 매체로 전송되었던 상기 제2 프레임들을 제외하고, 상기 제1 임시 저장 매체로 전송될 제2 프레임들을 순차적으로 일정 시간 간격에 따라 다시 상기 제1 임시 저장 매체로 전송하며, 상기 제1 신호는 상기 제1 임시 저장 매체의 저장 공간이 확보되었음을 나타내는 신호일 수 있다.
상기 CAN 프레임 생성부는, 상기 제1 ECU에 보낼 제2 프레임들을 모두 전송하면, 상기 제2 임시 저장 매체로의 제2 프레임 전송을 재개하며, 상기 제2 임시 저장 매체로의 제2 프레임 전송이 중단되기 전에 상기 제2 임시 저장 매체로 전송되었던 상기 제2 프레임들을 제외하고, 상기 제2 임시 저장 매체로 전송될 제2 프레임들을 순차적으로 일정 시간 간격에 따라 다시 상기 제2 임시 저장 매체로 전송할 수 있다.
본 발명의 다른 실시 예에 따른 ECU를 리프로그래밍하기 위한 시스템은 ECU를 리프로그래밍하기 위한 제1 데이터를 포함하는 제1 프레임을 생성하는 진단부(diagnostic unit), 상기 진단부로부터 상기 제1 프레임을 수신하고, 상기 제1 프레임을 복수의 제2 프레임들로 변환하는 게이트웨이(gateway) 및 개별적으로 임시 저장 매체를 가지고 있으며, 상기 게이트웨이로부터 상기 제2 프레임들을 수신하여 1차적으로 상기 임시 저장 매체에 저장하는 적어도 복수의 ECU들을 포함하며, 상기 게이트웨이는 상기 복수의 제2 프레임들에 포함된 개별 제2 프레임들을 순차적으로 일정한 시간 간격에 따라 개별 ECU로 전송한다.
상기 게이트웨이는, 상기 임시 저장 매체의 용량을 일정 크기로 나눈 것에 비례하여 상기 일정한 시간 간격을 설정할 수 있다.
상기 임시 저장 매체는 램(RAM)일 수 있다.
상기 복수의 ECU들은 제1 ECU 및 제2 ECU를 포함하고, 상기 제1 ECU는 제1 임시 저장 매체 및 제1 주 저장 매체를 더 포함하며, 상기 제2 ECU는 제2 임시 저장 매체 및 제2 주 저장 매체를 더 포함하고, 상기 게이트웨이는, 상기 제1 ECU에 우선적으로 개별 제2 프레임들을 전송할 수 있다.
상기 게이트웨이는, 상기 제1 ECU로부터 제1 신호를 수신하면, 상기 제2 ECU로의 제2 프레임 전송을 중단하고, 상기 제1 ECU로의 제2 프레임 전송이 중단되기 전에 상기 제1 ECU로 전송되었던 상기 제2 프레임들을 제외하고, 상기 제1 ECU로 전송될 제2 프레임들을 순차적으로 일정 시간 간격에 따라 다시 상기 제1 ECU로 전송하며, 상기 제1 ECU는 중단 이후 수신되는 제2 프레임들을 제1 임시 저장 매체에 저장하고, 상기 제2 ECU는, 상기 제2 프레임의 전송이 중단되면, 상기 제2 임시 저장 매체에 저장된 제2 프레임들을 상기 제2 주 저장 매체로 이동시켜, 상기 제2 임시 저장 매체의 저장 공간을 확보하고, 상기 제1 신호는 상기 제1 임시 저장 매체의 저장 공간이 확보되었음을 나타내는 신호일 수 있다.
상기 게이트웨이는, 상기 제1 임시 저장 매체의 저장 공간이 모두 찬 경우, 상기 제1 ECU로의 제2 프레임 전송을 중단하며, 상기 제2 ECU로 상기 개별 제2 프레임들을 순차적으로 일정한 시간 간격에 따라 전송하며, 상기 제1 ECU는, 상기 제2 프레임의 전송이 중단되면, 상기 제1 임시 저장 매체에 저장된 제2 프레임들을 상기 제1 주 저장 매체로 이동시켜, 상기 제1 임시 저장 매체의 저장 공간을 확보할 수 있다.
상기 게이트웨이는 상기 제1 ECU에 보낼 제2 프레임들을 모두 전송하면, 상기 제2 ECU로의 제2 프레임 전송을 재개하며, 상기 제2 ECU로의 제2 프레임 전송이 중단되기 전에 상기 제2 ECU로 전송되었던 상기 제2 프레임들을 제외하고, 상기 제2 ECU로 전송될 제2 프레임들을 순차적으로 일정 시간 간격에 따라 다시 상기 제2 ECU로 전송하고, 상기 제2 ECU는 중단 이후 수신되는 제2 프레임들을 제2 임시 저장 매체에 저장할 수 있다.
본 발명의 다른 실시 예예 따라 ECU를 리프로그래밍하기 위한 시스템을 사용하여 상기 ECU를 리프로그래밍하는 방법은, 게이트웨이가 진단부로부터 제1 프레임을 수신하는 단계, 상기 게이트웨이가 상기 제1 프레임을 복수의 제2 프레임들로 변환하는 단계, 상기 게이트웨이가 일정한 시간 간격에 따라 순차적으로 상기 제2 프레임들을 제1 ECU로 전송하는 단계, 상기 제1 ECU가 순차적으로 수신된 제2 프레임들을 수신하여 1차적으로 제1 임시 저장 매체에 저장하는 단계 및 상기 제1 ECU가 상기 제1 임시 저장 매체에 저장된 제2 프레임들을 제1 주 저장 매체로 이동시켜 저장하는 단계를 포함하며, 상기 제1 프레임은 ECU를 리프로그래밍하기 위한 제1 데이터를 포함하는 이더넷 프레임이고, 상기 제2 프레임은 CAN 프레임인, ECU를 리프로그래밍하기 위한 방법이다.
상기 제1 ECU가 순차적으로 수신된 제2 프레임들을 수신하여 1차적으로 제1 임시 저장 매체에 저장하는 단계는, 상기 제2 프레임을 저장하기 위한 상기 제1 임시 저장 매체의 저장 공간이 부족한 경우, 상기 게이트웨이는 상기 제1 ECU에 상기 제2 프레임을 전송하는 것을 중단하는 단계 및 상기 게이트웨이가 제2 ECU에 상기 제2 프레임을 전송하는 것을 시작하는 단계를 더 포함할 수 있다.
상기 제1 ECU가 상기 제1 임시 저장 매체에 저장된 제2 프레임들을 제1 주 저장 매체로 이동시켜 저장하는 단계는, 상기 제1 ECU가 상기 제1 임시 저장 매체에 저장된 제2 프레임들을 제1 주 저장 매체로 이동시켜 상기 제1 임시 저장 매체의 저장 공간을 모두 확보한 경우, 상기 게이트웨이로 제1 신호를 전송하는 단계, 상기 게이트웨이가 제2 ECU에 상기 제2 프레임을 전송하는 것을 중단하는 단계 및 상기 게이트웨이가 상기 제1 ECU로의 제2 프레임 전송이 중단되기 전에 상기 제1 ECU로 전송되었던 상기 제2 프레임들을 제외하고, 상기 제1 ECU로 전송될 제2 프레임들을 순차적으로 일정 시간 간격에 따라 다시 상기 제1 ECU로 전송하는 단계를 더 포함하며, 상기 제1 신호는 상기 제1 임시 저장 매체의 저장 공간이 확보되었음을 나타내는 신호일 수 있다.
본 발명에 따른 ECU를 리프로그래밍 하기 위한 장치, 시스템 및 방법은 리프로그래밍에 걸리는 시간을 감소시키므로, 자동차 제작 시간을 줄일 수 있으며, 동시에 엔지니어들의 업무 효율을 높이고, 결과적으로 자동차 생산량을 높일 수 있다.
도 1은 본 발명의 일 실시 예에 따른 ECU를 리프로그래밍 하기 위한 시스템의 구성을 나타내는 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 ECU를 리프로그래밍 하기 위한 장치(100)의 블록도이다.
도 3은 본 방법의 일 실시예에 따른 리프로그래밍 시스템을 사용하여 ECU를 리프로그래밍하는 방법을 나타낸 순서도이다.
도 4는 본 발명의 일 실시 예에 따른 게이트웨이(100)가 제1 ECU(201)에 제2 프레임을 전송하는 것을 나타내는 도면이다.
도 5는 본 발명의 다른 실시 예에 따른 시스템(1)이 임시 저장 매체에 저장 공간을 확보하는 방법을 나타내는 순서도이다.
도 6은 도 6은 제1 ECU(201)가 게이트웨이(100)로 제1 신호를 전송하는 과정(S1401)을 나타내는 도면이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하에서 도면들을 참조하여 본 발명에 따른 ECU를 리프로그래밍 하기 위한 장치, 시스템 및 방법을 설명하기에 앞서서, 본 발명에서 사용되는 CAN(Controller Area Network)이라는 용어에 대하여 간략히 설명한다.
CAN(Controller Area Network)은 CAN 또는 CAN 통신이라고 지칭할 수 있으며, 자동차 내에서 호스트 컴퓨터 없이 마이크로 콘트롤러나 장치들이 서로 통신하기 위해 설계된 표준 통신 규격이다. CAN 통신은 메시지 기반 프로토콜이며 최근에는 차량뿐만 아니라 산업용 자동화기기나 의료용 장비에서도 종종 사용되고 있다. Controller Area Network(CAN)는 각 제어기들 간의 통신을 위해 주로 사용되는 non-host 버스 방식의 메시지 기반 네트워크 프로토콜이다.
CAN-데이터 버스(CAN bus)는 주로 자동차 안전시스템, 편의사양 시스템들의 ECU들 간의 데이터 전송 그리고 정보/통신 시스템 및 엔터테인먼트 시스템의 제어 등에 사용된다. CAN은 꼬여 있거나 또는 피복에 의해 차폐되어 있는 2가닥 데이터 배선을 통해 데이터를 전송한다.
CAN은 마스터/슬레이브 시스템에서 다수의 ECU가 마스터(master) 기능을 수행하는 멀티-마스터(multi-master) 원리에 따라 작동한다.
(1) CAN 데이터 버스(CAN bus)의 특징
① CAN 데이터 버스 등급 B와 등급 C로 구별된다.
② 최대 데이터 전송률은 등급 B에서는 125kBd, 등급 C에서는 1MBd이다.
③ CAN 데이터 버스 시스템은 2개의 배선을 이용하여 데이터를 전송한다.
④ CAN 등급 B는 단일배선 적응능력이 있다.
⑤ CAN 등급 C는 단일배선 적응능력이 없다.
단일 배선 적응능력(suitability against single line)이란 CAN 데이터 버스 시스템에서 배선 하나가 단선 또는 단락되어도 나머지 1개의 배선이 통신능력을 정확하게 그대로 유지하는 것을 말한다. 그러나 버스 시스템이 단일배선 모드로 바뀌면, 간섭 저항성은 더 이상 보장되지 않는다. 경우에 따라서는 기능장애가 발생할 수도 있다.
(2) CAN 데이터 버스(CAN bus)의 구성
CAN 데이터 버스 시스템은 최소한 2개의 노드(node), CAN-low 배선, CAN-high 배선, 그리고 최소한 2개의 터미널 저항(terminal resistor)으로 구성된다.
노드(nodes)는 버스 시스템을 구성하는 다수의 스테이션(예: ECU)을 의미한다.
CAN 버스 노드의 내부구조는 LIN-버스 노드의 내부구조와 동일하다. 데이터 전송률을 더 빠르게 하고, LIN-데이터 버스에서와는 다른 전압수준을 버스 배선에 인가하기 위해서 고품질 컨트롤러 및 트랜시버를 사용한다.
② 버스 배선(CAN-high, CAN-low)
노드의 트랜시버에 의해 CAN-high 배선에 우성 수준(Udom)이 형성되면, 이 배선의 전압은 상승한다. 동시에 CAN-low 배선의 전압은 하강한다. 이때의 논리값은 ‘0’이다. 두 배선은 서로 꼬여 있거나 또는 와이어-메쉬(wire mesh)에 의해 차폐되어 있다.
스위칭할 때마다 두 CAN-배선에서 생성되는 자장은, 전압이 서로 반대방향으로 변화하기 때문에 상쇄된다. 따라서 두 배선은 외부에 대해서는 전자적(electro-magnetical, 電磁的)으로 중성이며, 어떠한 외부 간섭도 일으키지 않는다. 즉, 간섭에 대한 저항성이 보장된다.
③ 터미널 저항(terminal resistors: Abschlusswiderstand)
터미널 저항은 CAN-high 배선과 CAN-low 배선 사이의 회로를 연결한다. 이를 통해 CAN-버스 배선에서 반사(reflection)가 발생되는 것을 방지한다. 터미널 저항은 주로 노드(node)에 설치되어 있다.
터미널 저항이 없는 CAN-버스 배선은, 특히 CAN 등급 C 시스템에서는 기능적인 고장의 원인이 될 수 있다. 따라서 고장의 경우에는 반드시 터미널 저항을 먼저 점검해야 한다.
CAN 등급 C 시스템에서는 저항측정기를 이용하여 CAN-배선의 접점에서 터미널 저항을 테스트할 수 있다.
(3) CAN의 작동원리
① 멀티-마스터(multi-master) 원리
버스 배선을 통해 정보를 송/수신하고 있는 중이 아니라면, 멀티-마스터 원리에 따라 각 노드(예: ECU)는 버스 배선에 메시지를 전송할 수 있다. 다수의 ECU가 동시에 메시지를 전송하고자 할 경우는, 중재(arbitration)를 통해 가장 중요한 메시지를 가장 먼저 전송한다.
② 중재(仲裁; arbitration)
하나의 자원에 대하여 복수의 프로세스나 이용자가 행한, 경합하는 요구를 감시하고 관리, 중재하는 과정(process)을 말한다.
다수의 ECU가 동시에 메시지를 전송하고자 할 때, 데이터 버스 배선으로의 접근을 통제한다. 메시지의 중요도(우선순위)는 식별자(ID)에 의해 정의된다. 식별자(ID)가 낮으면 낮을수록, 우선순위는 더 높다. 중재를 조정(調停; arbitration)이라고도 한다.
이하에서는 도 1을 참조하여, 본 발명의 일 실시 예에 따른 ECU를 리프로그래밍 하기 위한 시스템(1)에 대하여 구체적으로 설명한다. 도 1은 본 발명의 일 실시 예에 따른 ECU를 리프로그래밍 하기 위한 시스템의 구성을 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 ECU를 리프로그래밍하기 위한 시스템(1)(이하, '리프로그래밍 시스템'이라고 칭한다.)은 메인 PC(10), 복수의 ECU들(20) 및 게이트웨이(100)를 포함한다.
메인 PC(10)는 개별 ECU의 리프로그래밍 여부를 식별하는 진단부(diagnostic unit) 역할을 담당할 수 있으며, 따라서 메인 PC(10)는 진단부(diagnostic unit)라고 지칭될 수 있다. 진단부(Diagnostic Unit)(100)에서는 리프로그래밍 데이터가 담긴 제1 프레임을 생성하고, 이를 게이트웨이(Gateway)(100)에 송신할 수 있다. 여기서, 제1 프레임은 리프로그래밍 데이터가 담긴 이더넷(Ethernet) 프레임이다.
복수의 ECU들(20)은 예시적으로 제1 ECU(201) 및 제2 ECU(202)를 포함할 수 있다. 도 1을 참조하면, 복수의 ECU들(20)은 N개의 ECU를 포함하도록 구성될 수 있다. 다만, 이하에서는 설명의 편의를 위해, 제1 ECU(201) 및 제2 ECU(202)가 복수의 ECU들(20)에 포함되는 것을 예로 하여 설명한다.
한편, 도 1에 도시된 바와 같이, 제1 ECU(201)는 제1 임시 저장 매체(2011) 및 제1 주 저장 매체(2012)를 더 포함하고, 제2 ECU(202)는 제2 임시 저장 매체(2021) 및 제2 주 저장 매체(2022)를 더 포함할 수 있다.
한편, 복수의 ECU들(20)은 메인 PC(10)와 동일한 환경으로 동작할 수 있으며, 복수의 ECU들(20) 각각은 서로의 리프로그래밍을 지원하는 역할을 수행할 수 있다.
예를 들어, 제1 ECU(ECU_1, 201), 제2 ECU(ECU_2, 202), ..., 제N ECU(ECU_N)들 중 제1 ECU(ECU_1, 201)가 리프로그래밍 도중, 리프로그래밍 데이터를 더 이상 수신하지 못할 경우, 제1 ECU(ECU_1, 201) 대신 제2 ECU(ECU_2, 202)가 리프로그래밍 데이터를 수신하여 리프로그래밍 프로세스를 시작할 수 있다.
한편, 게이트웨이(100)는 리프로그래밍 장치(100)라고 지칭될 수 있으며, 각각의 ECU(201, 202)와 연결되어 리프로그래밍을 지원하기 위해, 해당 ECU에 대응되는 서로 다른 복수의 통신 노드들을 포함한다.
도 1에 도시된 바와 같이, 게이트웨이(100)는 메인 PC(10)에 대응하는 메인 노드_A(101)를 포함할 수 있고, 제1 ECU(ECU_1, 201) 및 제2 ECU(ECU_2, 202)에 대응하는 복수의 서브 노드들(110)을 포함할 수 있다. 이러한 복수의 서브 노드들(100)은 제1 ECU(ECU_1, 201)에 대응하기 위한 서브 노드_1(1101) 및 제2 ECU(ECU_2, 202)에 대응하기 위한 서브 노드_2(1102)를 포함할 수 있다.
그리고, 본 발명에서 리프로그래밍 장치(100)에 해당하는 게이트웨이(100)는 메인 노드_A(101), 서브 노드_1(1101) 및 서브 노드_2(1102)들의 통신 인터페이스를 통해, 메인 PC(10), 제1 ECU(ECU_1, 201) 및 제2 ECU(ECU_2, 202)와 각각 신호를 송수신할 수 있다.
게이트웨이(100)는 메인 PC(10)로부터 이더넷 프레임인 제1 프레임을 메인 노드_A(101)를 통해 수신하고, 복수의 서브 노드들(110)을 통해 제1 프레임을 CAN 프레임인 제2 프레임으로 변환, 생성 및 출력할 수 있다.
이를 위해서, 메인 노드_A(101), 서브 노드_1(1101) 및 서브 노드_2(1102)들은 모두 각각 CAN 통신 방식을 지원한다. 이때, 메인 노드_A(101) 및 서브 노드들(110)은 서로 다른 통신라인, 즉, 서로 다른 CAN 버스(CAN bus)를 통해 각각 메인 PC(10), 제1 ECU(ECU_1, 201) 및 제2 ECU(ECU_2, 202)와 연결된다.
따라서, 복수의 서브 노드들(110)은 서로 충돌하지 않으면서, 각각의 ECU(20), 예를 들어, 서브 노드_1(1101) 및 서브 노드_2(1102)와 연결되고, 각각의 ECU(20)를 통해 CAN 프레임을 출력할 수 있다.
특히, 메인 PC(10)는 게이트웨이(100)를 통해 하나의 ECU(20)와 연결되었다고 인식할 수 있으며, 리프로그래밍 데이터를 포함하는 제1 프레임을 CAN 프레임인 제2 프레임으로 변환하여, 서브 노드들(20)에 연결된 CAN 버스를 통해 복수의 ECU들(20)로 각각 전송할 수 있다.
또한, CAN 프레임인 제2 프레임은 리프로그래밍 장치(100)에 의해 메인 노드_A(101)로도 출력될 수 있으며, 결과적으로 리프로그래밍 장치(100)에 의해 메인 PC(10)로부터의 CAN 프레임이 생성되어 개별 ECU로 전송되는 것과 동일한 효과가 발생한다.
즉, 리프로그래밍 장치(100)는 메인 PC(10)와 복수의 ECU(20)가 CAN_BUS 상에서 각각 일대일(1:1)로 연결된 것과 같은 환경을 구현할 수 있다.
도 2를 참조하여, 본 실시 예에 따른 리프로그래밍 장치(100)의 구체적인 구성을 설명하도록 한다. 도 2는 본 발명의 일 실시 예에 따른 ECU를 리프로그래밍 하기 위한 장치(100)의 블록도이다.
도 2에 도시된 바와 같이, 본 발명에 따른 ECU를 리프로그래밍 하기 위한 장치(100)(이하에서는, 리프로그래밍 장치라고 지칭한다)는 제어부(160), 인터페이스부(170), 통신부(180), 저장부(190), 메인 노드 관리부(120), 서브 노드 관리부(130) 및 CAN 프레임 생성부(140)를 포함한다.
제어부(160)는 리프로그래밍 장치(100)에 포함된 각 구성의 동작을 제어한다.
인터페이스부(170)는 관리자로부터의 제어명령을 입력받을 수 있도록 구성되며, 키보드와 마우스 같은 입력 장치부터 터치스크린과 같은 인터페이스 장치를 포함하도록 구성될 수 있다. 관리자는 인터페이스부(170)를 통해 리프로그래밍 대상이 되는 복수의 ECU(20)를 관리할 수 있다.
예를 들어, 인터페이스부(170)는 메인 노드_A(101), 서브 노드_1(1101) 및 서브 노드_2(1102)들 각각의 통신환경을 설정하기 위한 정보를 관리자로부터 입력 받을 수 있다. 또한, 인터페이스부(170)는 리프로그래밍 장치(100)의 동작 상태를 출력하거나, 리프로그래밍 결과를 관리자에게 제공할 수도 있다.
통신부(180)는 메인 노드_A(101)와 메인 PC(10) 사이의 신호 송수신을 위한 통신 인터페이스를 제공하는 제1 통신부(181)와, 서브 노드_1(1101) 및 서브 노드_2(1102)들과 각각 그에 대응하는 제1 ECU(201) 및 제2 ECU(202)들 사이의 신호 송수신을 위한 통신 인터페이스를 제공하는 제2 통신부(182)를 포함한다.
본 실시 예에 따른 제1 통신부(181)와 제2 통신부(182)는 CAN 통신 방식의 통신 인터페이스를 제공할 수 있으며, 제1 통신부(181)와 제2 통신부(182)는 서로 다른 CAN 버스로 연결된다.
한편, 제2 통신부(182)는 복수의 통신 모듈(미도시)을 포함할 수 있고, 복수의 통신 모듈은 복수의 ECU(20)와 일대일(1:1)로 대응되도록 연결될 수 있다. 또한, 제2 통신부(182)는 복수의 통신 모듈에 의해 형성되는 서로 다른 CAN 버스를 통해 제1 ECU(201) 및 제2 ECU(202)와 각각 연결될 수 있다.
예를 들어, 제1 통신부(181)는 도 1에 도시된 CAN_BUS_A를 통해 메인 PC(10)와 데이터 통신 가능하도록 연결되고, 제2 통신부(182)는 도 1에 도시된 CAN_BUS_1 및 CAN_BUS_2를 통해 제1 ECU(201) 및 제2 ECU(202) 각각과 데이터 통신 가능하게 연결된다.
저장부(190)는 메인 노드(101) 및 서브 노드들(110)에 대한 정보를 저장하는 역할을 한다. 예를 들어, 저장부(190)는 메인 노드(101) 및 서브 노드들(110) 각각에 대한 노드 번호, 해당 노드와 연결되는 CAN 버스 정보 등을 저장할 수 있으며, 각 노드와 연결되는 메인 PC(10) 또는 각 ECU 별 통신 노드 정보 등을 저장할 수 있다.
또한, 메인 노드 관리부(120)는 메인 노드(101)의 통신 환경을 설정하고, 메인 노드(101)를 통해 메인 PC(10)와 송수신 하는 신호들을 관리한다. 따라서, 메인 노드 관리부(120)는 메인 노드(101)의 통신 프로토콜 정보, 메인 노드(101)와 연결되는 메인 PC(10)의 통신 노드 정보, CAN_BUS_A의 정보 등을 관리할 수 있다.
서브 노드 관리부(130)는 메인 PC(10)로부터 복수의 ECU(20)에 각각 대응하는 서브 노드들(110)의 통신 환경을 설정하고, 서브 노드들(110)을 통해, 복수의 ECU(20)와 송수신하는 신호들을 관리한다. 따라서, 서브 노드 관리부(130)는 서브 노드들(110)의 통신 프로토콜 정보, 각각의 서브 노드들(110)과 연결되는 ECU(20)의 통신 노드 정보 및 그에 대응하는 CAN_BUS 정보 등을 관리할 수 있다.
CAN 프레임 생성부(140)는 메인 노드(101)를 통해 메인 PC(10)로부터 ECU의 리프로그래밍 데이터를 포함하는 제1 프레임 즉, 이더넷 프레임을 수신하면, 이를 복수의 제2 프레임들 즉, 복수의 CAN 프레임들로 변환한다.
또한, CAN 프레임 생성부(140)는 수신한 제1 프레임을 각각의 서브 노드들(110)에 출력되도록 할 수 있다. 또한, CAN 프레임 생성부(140)는 각 서브 노드(110)와 연결된 CAN 버스(CAN_BUS)를 통해, 변환된 제2 프레임들을 순서대로 일정한 시간 간격을 두고, ECU(20)로 전송한다. 여기서 전송 대상이 되는 ECU가 복수일 경우, ECU의 순서에 따라 제2 프레임을 전송한다.
예를 들어, 제1 프레임을 변환하여 생성된 CAN 프레임, 즉 제2 프레임이 100개 생성되었다고 가정하고, 제1 ECU(201) 및 제2 ECU(202)가 존재한다고 가정할 경우, CAN 프레임 생성부(140)는 1번 제2 프레임부터 100번 제2 프레임까지 순차적으로 제2 프레임을 전송한다. 그리고, CAN 프레임 생성부(140)는 우선적으로 제1 ECU(201)에 제2 프레임들을 전송하고, 제1 ECU(201)에 대한 제2 프레임 전송이 완료되면, 제2 ECU(202)에 대하여 제2 프레임을 전송하도록 구성될 수 있다.
또한, 개별 제2 프레임의 전송 간격을 결정하는 일정한 시간 간격은, 각각의 ECU(20)가 포함하고 있는 임시 저장 매체의 용량을 일정 크기로 나눈 것에 비례하여 시간 간격을 설정할 수 있다.
예를 들어, 제1 ECU(201)가 포함하는 제1 임시 저장 매체(2011)의 크기가 200MB 일 경우, 이를 50으로 나누어 4초 마다 개별 제2 프레임이 게이트웨이(100)로부터 제1 ECU(201)로 전송되도록 설정할 수도 있다.
따라서, 복수의 ECU(20)는 연결된 각 서브 노드(110)로부터 전송되는 CAN 프레임에 포함된 리프로그래밍 데이터를 이용하여 리프로그래밍을 수행할 수 있다.
한편, CAN 프레임 생성부(140)는 각 서브 노드(110)를 통해 각 ECU(20)로 전송한 CAN 프레임에 대응하는 응답 프레임 또는 응답 메시지를 ECU(20)로부터 수신할 수 있다. 이 경우, 게이트웨이(100)는 수신된 응답 프레임 또는 응답 메시지부터 복수의 ECU(20)에 대한 리프로그래밍 수행 결과를 확인한다. 이때, CAN 프레임 생성부(140)는 각 ECU(20)의 리프로그래밍 수행 결과를 포함하는 응답 프레임 또는 응답 메시지를 메인 노드(101)로 출력할 수도 있다.
또한, CAN 프레임 생성부(140)는 복수의 ECU(20)에 대한 리프로그래밍 수행 결과를 취합한 하나의 응답 프레임 또는 응답 메시지를 메인 노드(101)로 출력할 수도 있고, 각 ECU(20)에 대한 리프로그래밍 수행 결과를 포함하는 각각의 응답 프레임 또는 응답 메시지를 메인 노드(101)로 출력할 수도 있다.
또한, CAN 프레임 생성부(140)는 응답 프레임 또는 응답 메시지를 분석하여, 리프로그래밍을 수행한 결과, 리프로그래밍에 실패한 ECU가 존재한다고 판단한 경우, 리프로그래밍 수행 결과에 리프로그래밍에 실패한 ECU의 통신 노드 정보를 포함하여 메인 노드(101)로 출력할 수 있다. 이 때, 리프로그래밍에 실패한 ECU의 통신 노드 정보는 해당 통신 노드를 식별할 수 있는 통신 노드 번호 등의 정보가 포함될 수 있다. 다만, 복수의 노드들은 모두 동일한 목적으로 생성된 ECU이기 때문에 동일한 통신 노드 ID를 가질 수 있으므로, 통신 노드ID 정보는 제외될 수 있다.
한편, 임시 저장 매체는 램(RAM)으로 구성될 수 있으며, 주 저장 매체는 플레쉬 메모리(Flash memory)로 구성될 수 있다.
본 발명에 따른 임시 저장 매체는 CAN 프레임인 제2 프레임을 우선적으로 저장해두는 임시 저장소이며, 제2 프레임들의 저장에 의해 임시 저장 매체의 저장 공간이 가득찬 경우, 임시 저장 매체에 저장된 제2 프레임들을 주 저장 매체로 옮겨 저장한다. 주 저장 매체에 변환 생성된 제2 프레임들이 모두 저장되면, ECU를 리프로그래밍하는 과정이 완료된다.
또한, 본 발명에 따른 시스템(1)은 제1 ECU(201)에 대하여 우선적으로 제2 프레임 전송을 시작하므로, 제1 ECU(201)에 포함된 제1 임시 저장 매체(2011)의 저장 공간이 모두 찬 경우, 시스템(1)은 제1 ECU(201)로의 제2 프레임 전송이 중단되도록 게이트웨이(100)를 제어한다. 아니면, 게이트웨이(100)가 제1 임시 저장 매체(2011)의 저장 공간에 대한 정보를 미리 알고 있는 경우, 제1 임시 저장 매체(2011)의 저장 공간이 일정 수준 이상을 넘어서면, 제1 ECU(201)로의 제2 프레임 전송을 스스로 중단할 수 있다.
그리고, 제2 프레임 전송이 중단되면, 제1 ECU(201)는 제1 임시 저장 매체(2011)에 저장된 제2 프레임들을 제1 주 저장 매체(2012)로 이동시켜, 제1 임시 저장 매체(2011)의 저장 공간을 확보할 수 있다.
아울러, 게이트웨이(100)는 제1 ECU(201)로의 제2 프레임 전송을 중단하고, 제2 ECU(202)로 제2 프레임을 순차적으로 전송할 수 있다.
만약, 게이트웨이(100)가 제2 프레임을 제2 ECU(202)로 전송하는 도중에, 제1 ECU(201)로부터 제1 신호를 수신하면, 제2 ECU(202)로의 제2 프레임 전송을 중단할 수 있다.
제1 신호는 제1 임시 저장 매체(2011)의 저장 공간이 확보되었음을 나타내는 신호이며, 게이트웨이(100)에 대한 리프로그래밍 데이터 재전송 요청 신호이다.
이 경우, 게이트웨이(100)는 복수의 제2 프레임들 중 제1 ECU(201)로의 제2 프레임 전송이 중단되기 전까지 제1 ECU(201)로 전송되었던 제2 프레임들을 제외하고, 순서에 따라 제1 ECU(201)로 전송될 제2 프레임들을 순차적으로 설정된 시간 간격에 따라 다시 제1 ECU(201)로 전송한다.
그리고, 제1 ECU(201)는 중단 이후 수신되는 제2 프레임들을 다시 제1 임시 저장 매체(2011)에 저장하고, 이후, 제1 임시 저장 매체(2011)에 저장된 제2 프레임들을 제1 주 저장 매체(2012)로 옮겨 저장하여 제1 ECU(201)에 대한 리프로그래밍 과정을 완료할 수 있다.
또한, 제2 ECU(202)는 게이트웨이(100)로부터 제2 프레임의 전송이 중단되면, 제2 임시 저장 매체(2021)에 저장된 제2 프레임들을 제2 주 저장 매체(2022)로 이동시켜, 제2 임시 저장 매체(2022)의 저장 공간을 확보한다.
만약, 게이트웨이(100)가 제1 ECU(201)에 보낼 제2 프레임들을 모두 전송하면, 제2 ECU(202)로의 제2 프레임 전송을 재개할 수 있다. 그리고, 게이트웨이(100)는 복수의 제2 프레임들 중 제2 ECU(202)로의 제2 프레임 전송이 중단되기 전까지 제2 ECU(202)로 전송되었던 제2 프레임들을 제외하고, 순서에 따라 제2 ECU(202)로 추가 전송될 제2 프레임들을 순차적으로 미리 설정된 시간 간격에 따라 다시 제2 ECU(202)로 전송한다.
그리고, 제2 ECU(202)는 중단 이후 수신되는 제2 프레임들을 다시 제2 임시 저장 매체(2021)에 저장하고, 이후, 제2 임시 저장 매체(2021)에 저장된 제2 프레임들을 제2 주 저장 매체(2022)로 옮겨 저장하여 제2 ECU(202)에 대한 리프로그래밍 과정을 완료할 수 있다.
이하에서는, 도 3 및 도 4를 참조하여, 본 방법의 일 실시예에 따른 리프로그래밍 시스템을 사용하여 ECU를 리프로그래밍하는 방법에 대하여 구체적으로 설명한다.
우선, 도 3은 본 방법의 일 실시예에 따른 리프로그래밍 시스템을 사용하여 ECU를 리프로그래밍하는 방법을 나타낸 순서도이다. 도 3을 참조하면, 진단부(Diagnostic Unit)(10)로부터, 리프로그래밍 데이터가 담긴 이더넷(Ethernet) 프레임, 즉 제1 프레임을 생성하여 이를 게이트웨이(Gateway) (100)에 먼저 송신한다(S100).
제1 프레임을 수신한 게이트웨이(100)는 제1 프레임을 다수의 CAN 프레임 즉, 복수의 제2 프레임들로 변환하여(S110), 제2 프레임을 일정한 시간 간격에 따라 순차적으로 리프로그래밍이 필요하다고 판단된 하나의 ECU(20)에게 우선적으로 보내준다(S120). 상술한 바와 같이, 리프로그래밍이 필요하다고 판단된 ECU(20)는 제1 ECU(201) 및 제2 ECU(202)를 포함한다고 예시할 수 있다.
이 때, 게이트웨이(100)가 하나의 ECU(20)에 CAN 프레임을 보내는 간격은 시간 간격 또는 'Time_Interval'로 지칭할 수 있다. 도 4를 참조하면, 게이트웨이(100)가 하나의 ECU(20)에 CAN 프레임을 보내는 과정의 예시를 확인할 수 있다. 도 4는 본 발명의 일 실시 예에 따른 게이트웨이(100)가 제1 ECU(201)에 제2 프레임을 전송하는 것을 나타내는 도면이다.
도 4를 참조하면, 게이트웨이(100)는 일정한 'Time_Interval'에 따라 CAN 프레임을 하나씩 제1 ECU(201)로 전송한다(S120).
이 때, 'Time_Interval'을 정하는 기준은 ECU(20)에서 수신받을 수 있는 제2 프레임의 용량 한계치에 비례하여 정해질 수 있다. 하지만, 이에 제한되는 것은 아니다.
한편, 계속하여 도 4를 참조하면, 제1 ECU(201)에서 개별 CAN 프레임을 수신 받을 때, 제1 임시 저장 매체(2011)인 램(RAM)에 개별 CAN 프레임을 먼저 저장한다(S130). 램(RAM)은 최종적으로 리프로그래밍 데이터를 저장하는 메모리가 아니며, 중간 과정으로 잠시 리프로그래밍 데이터가 머무는 메모리이다.
본 실시 예에서 이 램(RAM)을 사용하는 이유는 주 저장 매체인 플레시 메모리(Flash memory)보다 저장하는 속도가 훨씬 빠르기 때문에, ECU의 리프로그래밍에 전체적으로 소요되는 시간을 단축시킬 수 있기 때문이다.
따라서, 본 실시 예에 따른'Time_Interval'은 종래에 비하여 짧게 설정될 수 있다. 한편, 제1 임시 저장 매체(2011)인 램(RAM)에 리프로그래밍 데이터가 전부 들어온 후에, 제1 ECU(201)는 리프로그래밍 데이터를 포함하는 제2 프레임을 램(RAM)에서 플레시 메모리(Flash memory)로 전달한다(S140).
특히, 본 실시 예에서, 게이트웨이(100)는 제1 ECU(201)가 제2 프레임을 램(RAM)에서 플레시 메모리(Flash memory)로 전달하는 단계에서 대기할 필요없이, 다른 ECU(20)인 제2 ECU(202)에게 리프로그래밍 데이터인 제2 프레임을 전송 시작하면 되므로, 종래의 ECU 리프로그래밍 방법에 비하여 리프로그래밍 시간을 대폭 단축시킬 수 있다.
한편, 임시 저장 매체인 램(RAM)은 플레시 메모리(Flash memory)보다 저장 공간이 일반적으로 작으므로, 리프로그래밍 데이터가 너무 방대할 경우, 다른 리프로그래밍 방법이 필요하다. 따라서, 이하에서는, 도 5 및 도 6을 참조하여 상술한 경우와 같이 리프로그래밍 데이터가 너무 방대하고, 이를 저장할 공간이 램(RAM)에게 충분하지 않은 경우, ECU를 리프로그래밍하는 방법에 대하여 설명한다.
우선 도 5를 참조하면, 임시 저장 매체에 저장 공간이 부족한 경우, 본 발명의 다른 실시 예에 따른 시스템(1)이 ECU를 리프로그래밍하는 방법을 확인할 수 있다. 도 5는 본 발명의 다른 실시 예에 따른 시스템(1)이 임시 저장 매체에 저장 공간을 확보하는 방법을 나타내는 순서도이다.
도 5를 참조하면, 본 발명의 다른 실시 예에 따른 ECU를 리프로그래밍하는 방법은 S130 단계가 추가적인 단계를 더 포함할 수 있다.
S130단계에서, 제1 ECU(201)가 제2 프레임을 순차적으로 제1 임시 저장 매체(2011)에 저장하다가, 제1 임시 저장 매체의 저장 공간이 부족하면, 게이트웨이(100)는 이를 감지할 수 있다. 그리고, 게이트웨이(100)는 제1 ECU(201)에 제2 프레임을 전송하는 것을 중단할 수 있다(S1301).
동시에, 제1 ECU(201)는 리프로그래밍 데이터를 포함하는 제2 프레임을 램(RAM)에서 플레시 메모리(Flash memory)로 전달할 수 있다(S140).
또한, 게이트웨이(100)는 제2 ECU(202)에 제2 프레임을 전송할 수 있다(S1302).
이후, 제1 ECU(201)가 제1 임시 저장 매체(2011)에 저장된 제2 프레임들을 제1 주 저장 매체(2012)로 이동시켜 제1 임시 저장 매체(2011)의 저장 공간을 모두 확보한 경우, 게이트웨이(100)로 제1 신호를 전송할 수 있다(S1401).
제1 신호는 상술한 바와 같이, 제1 임시 저장 매체(2011)의 저장 공간이 확보되었음을 나타내는 신호이며, 게이트웨이(100)에 대한 리프로그래밍 데이터 재전송 요청 신호이다.
도 6을 참조하면, 제1 ECU(201)가 게이트웨이(100)로 제1 신호를 전송하는 과정(S1401)을 좀 더 구체적으로 확인할 수 있다. 도 6은 제1 ECU(201)가 게이트웨이(100)로 제1 신호를 전송하는 과정(S1401)을 나타내는 도면이다.
도 6에 도시된 바와 같이, S130단계에서, 제1 ECU(201)는 제1 임시 저장 매체(2011)의 저장 공간이 한계치에 이를 때까지 제2 프레임을 제1 임시 저장 매체(2011)에 저장한다.
이후, 게이트웨이(100)는 제1 ECU(201)에 제2 프레임을 전송하는 것을 중단 (S1301)함과 동시에, 게이트웨이(100)는 제2 ECU(202)에 제2 프레임을 전송하고(S1302), 제1 ECU(201)는 리프로그래밍 데이터를 포함하는 제2 프레임을 램(RAM)에서 플레시 메모리(Flash memory)로 전달할 수 있다(S140).
한편, S140 단계는 도 5에 도시된 바와 같이, 몇 가지 과정을 더 포함할 수 있으며, 제1 ECU(201)가 제1 임시 저장 매체(2011)에 저장된 제2 프레임들을 제1 주 저장 매체(2012)로 이동시켜 제1 임시 저장 매체(2011)의 저장 공간을 모두 확보한 경우, 게이트웨이(100)로 제1 신호를 전송하는 단계(S1401)를 포함한다.
게이트웨이(100)는 제1 신호를 수신하여 제2 ECU(202)에 제2 프레임을 전송하는 것을 중단(S1402)함과 동시에, 제1 ECU(201)로의 제2 프레임 전송을 재개할 수 있다(S1403). 이 경우, 게이트웨이(100)는 복수의 제2 프레임들 중 제1 ECU(201)로의 제2 프레임 전송이 중단되기 전까지 제1 ECU(201)로 전송되었던 제2 프레임들을 제외하고, 순서에 따라 제1 ECU(201)로 추가 전송될 제2 프레임들을 순차적으로 일정 시간 간격에 따라 다시 제1 ECU(201)로 전송할 수 있다(S1403).
즉, 본 실시 예에서는, 램(RAM)이 허용할 수 있는 용량까지 제2 프레임을 수신하여 저장한다면, 램(RAM) 크기 및 제2 프레임의 크기를 미리 알고 있는 게이트웨이(100)는 해당 ECU(20)로부터 제1 신호가 올 때까지 더 이상 리프로그래밍 데이터인 제2 데이터를 보내지 않도록 구성된다.
이후, ECU가 리프로그래밍을 재시작해달라는 메시지이진 제1 신호를 게이트웨이(100)가 수신하면, 게이트웨이(100)는 전송이 중단된 리프로그래밍 데이터를 ECU에 제2 프레임 형태로 다시 보낸다.
한편, ECU는 재시작 메시지인 제1 신호를 보내기 전까지 램(RAM)에서 플레쉬 메모리(Flash memory)로 리프로그래밍 데이터를 전부 옮겨, 램(RAM)이 중단된 리프로그래밍 데이터를 받을 준비를 하는 것이다.
그리고 본 실시 예예서는 ECU에 대한 리프로그래밍 데이터의 재전송이 시작된 이후, 램(RAM)의 가장 처음 주소부터 리프로그래밍 데이터를 덮어쓴다.
그리고, ECU가 마지막 리프로그래밍 데이터를 수신하면, 램(RAM)에 남아있는 리프로그래밍 데이터를 모두 플레쉬 메모리(Flash memory)로 옮긴다. 그리고, 게이트웨이(Gateway)는 다른 ECU에게 리프로그래밍 데이터를 전달한다.
본 발명에 따른 ECU를 리프로그래밍 하기 위한 장치, 시스템 및 방법은 리프로그래밍 데이터 전송 및 저장에 걸리는 시간이 줄어들어 복수의 ECU를 전체적으로 리프로그래밍하는 시간이 대폭 감소된다.
본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀 질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
120: 메인 노드 관리부
130: 서브 노드 관리부
140: CAN 프레임 생성부
160: 제어부
170: 인터페이스부
180: 통신부
190: 저장부

Claims (14)

  1. 메인 PC와 연결되는 메인 노드;
    제1 ECU와 연결되는 서브 노드;
    상기 메인 노드의 통신 환경을 설정하는 메인 노드 관리부;
    상기 서브 노드의 통신 환경을 설정하는 서브 노드 관리부; 및
    상기 메인 노드를 통해 상기 제1 ECU를 리프로그래밍하기 위한 제1 데이터를 포함하는 제1 프레임을 수신하면, 상기 제1 프레임을 복수의 제2 프레임들로 변환하는 CAN 프레임 생성부를 포함하며,
    상기 CAN 프레임 생성부는,
    상기 복수의 제2 프레임들에 포함된 개별 제2 프레임들을 순차적으로 일정한 시간 간격에 따라 상기 제1 ECU에 포함된 제1 임시 저장 매체로 전송하고,
    상기 제1 임시 저장 매체의 저장 공간이 모두 찬 경우, 상기 제1 임시 저장 매체로의 제2 프레임 전송을 중단하며,
    제2 ECU에 포함된 제2 임시 저장 매체에 상기 개별 제2 프레임들을 순차적으로 일정한 시간 간격에 따라 전송하는, ECU를 리프로그래밍하기 위한 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 CAN 프레임 생성부는,
    상기 제1 ECU로부터 제1 신호를 수신하면, 상기 제2 임시 저장 매체로의 제2 프레임 전송을 중단하고,
    상기 제1 임시 저장 매체로의 제2 프레임 전송이 중단되기 전에 상기 제1 임시 저장 매체로 전송되었던 상기 제2 프레임들을 제외하고, 상기 제1 임시 저장 매체로 전송될 제2 프레임들을 순차적으로 일정 시간 간격에 따라 다시 상기 제1 임시 저장 매체로 전송하며,
    상기 제1 신호는 상기 제1 임시 저장 매체의 저장 공간이 확보되었음을 나타내는 신호인, ECU를 리프로그래밍하기 위한 장치.
  4. 제3항에 있어서,
    상기 CAN 프레임 생성부는,
    상기 제1 ECU에 보낼 제2 프레임들을 모두 전송하면, 상기 제2 임시 저장 매체로의 제2 프레임 전송을 재개하며,
    상기 제2 임시 저장 매체로의 제2 프레임 전송이 중단되기 전에 상기 제2 임시 저장 매체로 전송되었던 상기 제2 프레임들을 제외하고, 상기 제2 임시 저장 매체로 전송될 제2 프레임들을 순차적으로 일정 시간 간격에 따라 다시 상기 제2 임시 저장 매체로 전송하는, ECU를 리프로그래밍하기 위한 장치.
  5. ECU를 리프로그래밍하기 위한 제1 데이터를 포함하는 제1 프레임을 생성하는 진단부(diagnostic unit);
    상기 진단부로부터 상기 제1 프레임을 수신하고, 상기 제1 프레임을 복수의 제2 프레임들로 변환하는 게이트웨이(gateway); 및
    개별적으로 임시 저장 매체를 가지고 있으며, 상기 게이트웨이로부터 상기 제2 프레임들을 수신하여 1차적으로 상기 임시 저장 매체에 저장하는 적어도 복수의 ECU들을 포함하며,
    상기 게이트웨이는,
    상기 복수의 제2 프레임들에 포함된 개별 제2 프레임들을 순차적으로 일정한 시간 간격에 따라 개별 ECU로 전송하고,
    상기 임시 저장 매체의 용량을 일정 크기로 나눈 것에 비례하여 상기 일정한 시간 간격을 설정하는, ECU를 리프로그래밍하기 위한 시스템.
  6. 삭제
  7. 제5항에 있어서,
    상기 임시 저장 매체는 램(RAM)인, ECU를 리프로그래밍하기 위한 시스템.
  8. 제5항에 있어서,
    상기 복수의 ECU들은 제1 ECU 및 제2 ECU를 포함하고,
    상기 제1 ECU는 제1 임시 저장 매체 및 제1 주 저장 매체를 더 포함하며,
    상기 제2 ECU는 제2 임시 저장 매체 및 제2 주 저장 매체를 더 포함하고,
    상기 게이트웨이는,
    상기 제1 ECU에 우선적으로 개별 제2 프레임들을 전송하는, ECU를 리프로그래밍하기 위한 시스템.
  9. 제8항에 있어서,
    상기 게이트웨이는,
    상기 제1 ECU로부터 제1 신호를 수신하면, 상기 제2 ECU로의 제2 프레임 전송을 중단하고,
    상기 제1 ECU로의 제2 프레임 전송이 중단되기 전에 상기 제1 ECU로 전송되었던 상기 제2 프레임들을 제외하고, 상기 제1 ECU로 전송될 제2 프레임들을 순차적으로 일정 시간 간격에 따라 다시 상기 제1 ECU로 전송하며,
    상기 제1 ECU는 중단 이후 수신되는 제2 프레임들을 제1 임시 저장 매체에 저장하고,
    상기 제2 ECU는,
    상기 제2 프레임의 전송이 중단되면, 상기 제2 임시 저장 매체에 저장된 제2 프레임들을 상기 제2 주 저장 매체로 이동시켜, 상기 제2 임시 저장 매체의 저장 공간을 확보하고,
    상기 제1 신호는 상기 제1 임시 저장 매체의 저장 공간이 확보되었음을 나타내는 신호인, ECU를 리프로그래밍하기 위한 시스템.
  10. 제8항에 있어서,
    상기 게이트웨이는,
    상기 제1 임시 저장 매체의 저장 공간이 모두 찬 경우, 상기 제1 ECU로의 제2 프레임 전송을 중단하며, 상기 제2 ECU로 상기 개별 제2 프레임들을 순차적으로 일정한 시간 간격에 따라 전송하며,
    상기 제1 ECU는,
    상기 제2 프레임의 전송이 중단되면, 상기 제1 임시 저장 매체에 저장된 제2 프레임들을 상기 제1 주 저장 매체로 이동시켜, 상기 제1 임시 저장 매체의 저장 공간을 확보하는, ECU를 리프로그래밍하기 위한 시스템.
  11. 제10항에 있어서,
    상기 게이트웨이는,
    상기 제1 ECU에 보낼 제2 프레임들을 모두 전송하면, 상기 제2 ECU로의 제2 프레임 전송을 재개하며,
    상기 제2 ECU로의 제2 프레임 전송이 중단되기 전에 상기 제2 ECU로 전송되었던 상기 제2 프레임들을 제외하고, 상기 제2 ECU로 전송될 제2 프레임들을 순차적으로 일정 시간 간격에 따라 다시 상기 제2 ECU로 전송하고,
    상기 제2 ECU는 중단 이후 수신되는 제2 프레임들을 제2 임시 저장 매체에 저장하는, ECU를 리프로그래밍하기 위한 시스템.
  12. ECU를 리프로그래밍하기 위한 시스템을 사용하여 상기 ECU를 리프로그래밍하는 방법에 있어서,
    게이트웨이가 진단부로부터 제1 프레임을 수신하는 단계;
    상기 게이트웨이가 상기 제1 프레임을 복수의 제2 프레임들로 변환하는 단계;
    상기 게이트웨이가 일정한 시간 간격에 따라 순차적으로 상기 제2 프레임들을 제1 ECU로 전송하는 단계;
    상기 제1 ECU가 순차적으로 수신된 제2 프레임들을 수신하여 1차적으로 제1 임시 저장 매체에 저장하는 단계; 및
    상기 제1 ECU가 상기 제1 임시 저장 매체에 저장된 제2 프레임들을 제1 주 저장 매체로 이동시켜 저장하는 단계를 포함하며,
    상기 제1 프레임은 ECU를 리프로그래밍하기 위한 제1 데이터를 포함하는 이더넷 프레임이고,
    상기 제2 프레임은 CAN 프레임이고,
    상기 제1 ECU가 순차적으로 수신된 제2 프레임들을 수신하여 1차적으로 제1 임시 저장 매체에 저장하는 단계는,
    상기 제2 프레임을 저장하기 위한 상기 제1 임시 저장 매체의 저장 공간이 부족한 경우, 상기 게이트웨이는 상기 제1 ECU에 상기 제2 프레임을 전송하는 것을 중단하는 단계; 및
    상기 게이트웨이가 제2 ECU에 상기 제2 프레임을 전송하는 것을 시작하는 단계를 포함하는, ECU를 리프로그래밍하기 위한 방법.
  13. 삭제
  14. 제12항에 있어서,
    상기 제1 ECU가 상기 제1 임시 저장 매체에 저장된 제2 프레임들을 제1 주 저장 매체로 이동시켜 저장하는 단계는,
    상기 제1 ECU가 상기 제1 임시 저장 매체에 저장된 제2 프레임들을 제1 주 저장 매체로 이동시켜 상기 제1 임시 저장 매체의 저장 공간을 모두 확보한 경우, 상기 게이트웨이로 제1 신호를 전송하는 단계;
    상기 게이트웨이가 제2 ECU에 상기 제2 프레임을 전송하는 것을 중단하는 단계; 및
    상기 게이트웨이가 상기 제1 ECU로의 제2 프레임 전송이 중단되기 전에 상기 제1 ECU로 전송되었던 상기 제2 프레임들을 제외하고, 상기 제1 ECU로 전송될 제2 프레임들을 순차적으로 일정 시간 간격에 따라 다시 상기 제1 ECU로 전송하는 단계를 더 포함하며,
    상기 제1 신호는 상기 제1 임시 저장 매체의 저장 공간이 확보되었음을 나타내는 신호인, ECU를 리프로그래밍하기 위한 방법.
KR1020200003535A 2020-01-10 2020-01-10 Ecu를 리프로그래밍 하기 위한 장치, 시스템 및 방법 KR102273410B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200003535A KR102273410B1 (ko) 2020-01-10 2020-01-10 Ecu를 리프로그래밍 하기 위한 장치, 시스템 및 방법
US17/134,900 US11983518B2 (en) 2020-01-10 2020-12-28 Device, system and a method for reprograming electronic control unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200003535A KR102273410B1 (ko) 2020-01-10 2020-01-10 Ecu를 리프로그래밍 하기 위한 장치, 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR102273410B1 true KR102273410B1 (ko) 2021-07-06
KR102273410B9 KR102273410B9 (ko) 2023-02-27

Family

ID=76763546

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200003535A KR102273410B1 (ko) 2020-01-10 2020-01-10 Ecu를 리프로그래밍 하기 위한 장치, 시스템 및 방법

Country Status (2)

Country Link
US (1) US11983518B2 (ko)
KR (1) KR102273410B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024000354A1 (zh) * 2022-06-30 2024-01-04 华为技术有限公司 一种节点升级方法以及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130046903A (ko) * 2011-10-28 2013-05-08 주식회사 현대케피코 복수의 ecu에 대한 리프로그래밍 장치 및 그 방법
KR20170127585A (ko) * 2016-05-11 2017-11-22 한국해양대학교 산학협력단 해양 관측 부이를 위한 데이터 수집 및 모니터링 방법 및 시스템

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3835969B2 (ja) * 2000-04-13 2006-10-18 本田技研工業株式会社 車両制御装置のための書き換えシステム
US7424587B2 (en) * 2006-05-23 2008-09-09 Dataram, Inc. Methods for managing data writes and reads to a hybrid solid-state disk drive
JP4926648B2 (ja) * 2006-10-27 2012-05-09 富士通セミコンダクター株式会社 車載ゲートウェイ装置
JP6962697B2 (ja) * 2016-05-27 2021-11-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America ネットワークハブ、転送方法及び車載ネットワークシステム
CN108401491B (zh) * 2016-12-06 2021-08-10 松下电器(美国)知识产权公司 信息处理方法、信息处理系统以及程序
JP2019096200A (ja) * 2017-11-27 2019-06-20 株式会社デンソーテン 書き換え確認装置、書き換え確認方法及び書き換え確認コンピュータプログラム
KR102513941B1 (ko) * 2018-06-19 2023-03-27 현대자동차주식회사 자율 주행 제어 장치, 그를 가지는 차량 및 그 제어 방법
JP7147721B2 (ja) * 2019-09-05 2022-10-05 トヨタ自動車株式会社 車載通信装置及び通信方法
JP6973465B2 (ja) * 2019-11-28 2021-12-01 株式会社オートネットワーク技術研究所 車載中継装置、プログラム及び中継方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130046903A (ko) * 2011-10-28 2013-05-08 주식회사 현대케피코 복수의 ecu에 대한 리프로그래밍 장치 및 그 방법
KR20170127585A (ko) * 2016-05-11 2017-11-22 한국해양대학교 산학협력단 해양 관측 부이를 위한 데이터 수집 및 모니터링 방법 및 시스템

Also Published As

Publication number Publication date
US20210216294A1 (en) 2021-07-15
US11983518B2 (en) 2024-05-14
KR102273410B9 (ko) 2023-02-27

Similar Documents

Publication Publication Date Title
US9917725B2 (en) Automotive neural network
US10454692B2 (en) Method for supplying power in network and apparatus therefor
CN105591853B (zh) Lin通信中的灵活调度方法和装置
Talbot et al. Comparision of fieldbus systems can, ttcan, flexray and lin in passenger vehicles
US10594587B2 (en) Operation method of communication node for diagnosing vehicle network
US10673986B2 (en) Operation method of communication node for selective wake-up in vehicle network
CN105119793A (zh) 一种传感器网络can总线帧格式的标识符分配方法
CN112235127B (zh) 节点故障上报方法、装置、终端设备及存储介质
CN107453895B (zh) 用于配置通信路径的方法和构成车辆网络的第一通信节点
CN111913846A (zh) 用于车辆的重新编程装置、其重新编程方法以及包括该装置的车辆
CN115357926B (zh) 基于SoC芯片的AXI总线协议访问权限控制方法及装置
CN112217704A (zh) 收发器与微控制器间的通信
CN113406946A (zh) 汽车诊断方法及装置、汽车诊断设备
KR102273410B1 (ko) Ecu를 리프로그래밍 하기 위한 장치, 시스템 및 방법
KR20100020253A (ko) 차량 네트워크에서의 메시지 전송 상태 진단 장치
JP6410914B1 (ja) シリアル通信システム
CN112367236B (zh) Lin总线的数据调度方法及系统
US11337184B2 (en) Method and apparatus for transmitting and receiving data stream performed in vehicle network
Hafeez et al. State of the art survey on comparison of can, flexray, lin protocol and simulation of lin protocol
US20190305983A1 (en) Method and apparatus for configuring backup path in vehicle network
Marques et al. Efficient transient error recovery in FlexRay using the dynamic segment
KR100583811B1 (ko) 휴머노이드 로봇에 대한 캔 메시지의 식별자 인가방법 및캔 메시지의 전송 중재 방법
CN111555946A (zh) 总线系统的用户站和在总线系统中的数据传输的方法
Seo et al. A reliable gateway for in-vehicle networks
US20230291605A1 (en) Apparatus

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]