KR101438978B1 - 리프로그래밍 방법 및 시스템 - Google Patents

리프로그래밍 방법 및 시스템 Download PDF

Info

Publication number
KR101438978B1
KR101438978B1 KR1020120158395A KR20120158395A KR101438978B1 KR 101438978 B1 KR101438978 B1 KR 101438978B1 KR 1020120158395 A KR1020120158395 A KR 1020120158395A KR 20120158395 A KR20120158395 A KR 20120158395A KR 101438978 B1 KR101438978 B1 KR 101438978B1
Authority
KR
South Korea
Prior art keywords
control unit
controller
control
reprogramming
frame
Prior art date
Application number
KR1020120158395A
Other languages
English (en)
Other versions
KR20140087767A (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 KR1020120158395A priority Critical patent/KR101438978B1/ko
Priority to US13/909,689 priority patent/US10033546B2/en
Priority to CN201310250445.0A priority patent/CN103914007B/zh
Publication of KR20140087767A publication Critical patent/KR20140087767A/ko
Application granted granted Critical
Publication of KR101438978B1 publication Critical patent/KR101438978B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • 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/4013Management of data rate on the bus
    • B60K35/80
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • 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/40006Architecture of a communication node
    • H04L12/40013Details regarding a bus controller
    • 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/407Bus networks with decentralised control
    • H04L12/417Bus networks with decentralised control with deterministic access, e.g. token passing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • B60K2360/55
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23295Load program and data for multiple processors
    • 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

Abstract

본 발명은 리프로그래밍 방법 및 그 시스템에 관한 것으로, 본 발명에 따른 리프로그래밍 시스템은, 하나의 CAN 버스로 연결된 제1 제어유닛과 제2 제어유닛, 및 상기 제1 제어유닛의 리프로그래밍 작업을 수행하는 제1 제어기 및 상기 제2 제어유닛의 리프로그래밍 작업을 수행하는 제2 제어기를 포함하는 진단기를 포함하고, 상기 진단기는 상기 제1 제어기 및 상기 제2 제어기 사이에 정보를 공유하며 상기 제1 제어유닛 및 상기 제2 제어유닛에 대한 리프로그래밍 작업을 양방향으로 진행한다.

Description

리프로그래밍 방법 및 시스템{Method and system for reprogramming}
본 발명은 리프로그래밍 방법 및 시스템에 관한 것으로, 복수의 제어유닛에 대해 양방향으로 리프로그래밍하는 기술에 관한 것이다.
차량에는 많은 수의 제어유닛이 내장된다. 이러한 제어유닛은 새로운 버전의 프로그램으로 리프로그래밍을 수행해야 한다.
일반적으로, 리프로그래밍 작업은 CAN(Controller Area Network) 버스를 통해 데이터를 송수신하게 되고, 한번에 하나의 제어유닛에 대해 리프로그래밍을 수행한다. 리프로그램 데이터의 크기가 큰 경우, 예를 들어, 리프로그램 데이터가 7Bytes가 넘는 경우에는 멀티프레임 전송 방법을 이용하여 대상이 되는 제어유닛으로 리프로그램 데이터를 전송될 수 있으며, 한번에 최대 0xFFF 크기의 데이터를 전송할 수 있다.
이러한 리프로그래밍 작업은 한번에 하나의 제어유닛에 대해 리프로그래밍을 수행하기 때문에 전체 제어유닛의 리프로그래밍 작업에 많은 시간 및 비용이 드는 문제가 있다.
본 발명의 목적은, 복수의 제어유닛에 대해 양방향으로 리프로그래밍을 수행하도록 하는 리프로그래밍 방법 및 시스템을 제공함에 있다.
특히, 본 발명의 목적은, 하나의 CAN 버스에 연결된 제어유닛에 대한 리프로그래밍 시 데이터 전송률이 낮은 주기를 활용하여 다른 제어유닛의 리프로그래밍을 진행하도록 함으로써 리프로그래밍에 소요되는 시간이 단축되도록 하는 리프로그래밍 방법 및 시스템을 제공함에 있다.
상기의 목적을 달성하기 위한 본 발명에 따른 리프로그래밍 방법은, 제1 제어기 및 제2 제어기를 포함하는 진단기의 리프로그래밍 방법으로서, 상기 제1 제어기가 제1 제어유닛에 대해 제1 컨트롤 전송 모드로 동작하여 상기 제1 제어유닛의 정보를 수신하는 단계, 상기 제1 제어기가 상기 제1 컨트롤 전송 모드 동작 종료 시, 상기 제1 제어유닛에 대해 제1 데이터 전송 모드로 동작하여 상기 제1 컨트롤 전송 모드에서 수신된 상기 제1 제어유닛의 정보에 따라 상기 제1 제어유닛으로 멀티 리프로그램 데이터를 전송하는 하는 단계, 상기 제1 제어기가 상기 제1 데이터 전송 모드로 동작하는 동안, 상기 제2 제어기가 제2 제어유닛에 대해 제2 컨트롤 전송모드로 동작하여 상기 제2 제어유닛의 정보를 수신하는 단계, 및 상기 제1 제어기가 상기 제1 제어유닛에 대한 제1 데이터 전송 모드 동작 종료 시, 상기 제2 제어기가 상기 제2 제어유닛에 대해 제2 데이터 전송 모드로 동작하여 상기 제2 컨트롤 전송 모드에서 수신된 상기 제2 제어유닛의 정보에 따라 상기 제2 제어유닛으로 멀티 리프로그램 데이터를 전송하는 단계를 포함하는 것을 특징으로 한다.
상기 제2 제어유닛의 정보를 수신하는 단계 이후에, 상기 제2 제어기가 상기 제2 컨트롤 전송 모드 동작 종료 시에도 상기 제1 제어기가 상기 제1 데이터 전송 모드로 동작 중이면, 상기 제1 제어기가 상기 제1 제어유닛에 대한 제1 데이터 전송 모드 동작을 종료할 때까지 상기 제2 제어유닛에 대해 대기 모드로 동작하는 단계를 더 포함하는 것을 특징으로 한다.
상기 제1 제어유닛의 정보를 수신하는 단계는, 상기 제1 제어기가 상기 제1 제어유닛으로 퍼스트 프레임(First frame)을 전송하는 단계, 및 상기 전송된 퍼스트 프레임에 대응하여 상기 제1 제어유닛으로부터 플로우 컨트롤 프레임(Flow control frame)을 수신하는 단계를 포함하는 것을 특징으로 한다.
상기 제2 컨트롤 전송 모드로 동작하는 단계는, 상기 제2 제어기가 상기 제2 제어유닛으로 퍼스트 프레임을 전송하는 단계 및 상기 퍼스트 프레임에 대응하여 상기 제2 제어유닛으로 으로부터 플로우 컨트롤 프레임을 수신하는 단계를 포함하는 것을 특징으로 한다.
여기서, 상기 퍼스트 프레임은 멀티프레임 전송방법을 이용하여 제1 제어유닛에 보낼 데이터 전체 길이인 퍼스트 프레임 데이터 길이(First Frame Data Length)에 대한 정보를 포함하고, 상기 플로우 컨트롤 프레임은 상기 제1 제어유닛 또는 상기 제2 제어유닛의 플로우 상태(Flow status), 중간에 플로우 컨트롤 프레임 없이 컨세큐티브 프레임을 받을 수 있는 최대 블럭 사이즈(Block size) 및 컨세큐티브 프레임 사이의 최소 분리 시간(Minimum Separation Time)에 대한 정보를 포함하는 것을 특징으로 한다.
상기 멀티 리프로그램 데이터를 전송하는 단계는, 분할된 리프로그램 데이터 및 해당 리프로그램 데이터에 대한 시퀀스 번호(Sequence Number)를 포함하는 컨세큐티브 프레임(Consecutive frame)을 연속하여 전송하는 것을 특징으로 한다.
상기 멀티 리프로그램 데이터를 전송하는 단계 이후에, 상기 제1 제어기 또는 상기 제2 제어기가 상기 제1 제어유닛 또는 상기 제2 제어유닛으로부터 다음 멀티 프레임 전송을 요청하는 플로우 컨트롤 프레임을 수신하는 단계를 더 포함하는 것을 특징으로 한다.
한편, 상기의 목적을 달성하기 위한 본 발명에 따른 리프로그래밍 시스템은, 상기에서 서술한 리프로그래밍 방법에 의해 하나의 CAN 버스로 연결된 복수의 제어유닛에 대한 리프로그래밍 작업을 수행한다.
여기서, 상기 리프로그래밍 시스템은, 하나의 CAN 버스로 연결된 제1 제어유닛과 제2 제어유닛, 및 상기 제1 제어유닛의 리프로그래밍 작업을 수행하는 제1 제어기 및 상기 제2 제어유닛의 리프로그래밍 작업을 수행하는 제2 제어기를 포함하는 진단기를 포함한다. 이때, 상기 진단기는, 상기 제1 제어기 및 상기 제2 제어기 사이에 정보를 공유하며 상기 제1 제어유닛 및 상기 제2 제어유닛에 대한 리프로그래밍 작업을 양방향으로 진행하는 것을 특징으로 한다.
본 발명에 따르면, 하나의 CAN 버스에 연결된 제어유닛에 대한 리프로그래밍 시 데이터 전송률이 낮은 주기를 활용하여 다른 제어유닛의 리프로그래밍을 진행함으로써 리프로그래밍에 소요되는 시간이 단축되는 이점이 있다.
또한, 본 발명은 복수의 제어유닛에 대한 리프로그래밍 시간을 단축함으로써 리프로그래밍 작업에 대한 비용을 절감할 수 있는 이점이 있다.
도 1은 본 발명에 따른 리프로그래밍 시스템 구조를 도시한 도이다.
도 2는 도 1의 진단기에서 각 제어유닛에 대한 제어 모드를 나타낸 것이다.
도 3은 본 발명에 따른 리프로그래밍 방법에 대한 동작 흐름을 나타낸 흐름도이다.
도 4는 본 발명에 따른 리프로그래밍 데이터 구조를 나타낸 예시도이다.
도 5는 본 발명에 따른 리프로그래밍 데이터 전송 상태는 나타낸 예시도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 설명하도록 한다.
도 1은 본 발명에 따른 리프로그래밍 시스템 구조를 도시한 도이다.
도 1을 참조하면, 본 발명에 따른 리프로그래밍 시스템은 복수의 제어유닛, 예를 들어, 제어유닛1(21), 제어유닛2(22), ..., 제어유닛N(29) 등과, 복수의 제어유닛에 대한 리프로그래밍을 진행하는 진단기(10)를 포함한다. 여기서, 복수의 제어유닛들과 진단기(10)는 하나의 CAN 버스(5)로 연결되어, CAN 통신을 통해 데이터를 전송한다.
이때, 진단기(10)에는 CAN 버스(5)로 연결된 각 제어유닛에 대한 정보를 저장하고 있다. 진단기(10)는 각 제어유닛의 상태를 진단하며 리프로그래밍이 필요한 제어유닛을 선별하여 리프로그래밍을 진행할 수 있다.
진단기(10)는 각 제어유닛별로 상태를 관리하며, 각 제어유닛에 대한 제어모드는 도 2와 같다. 도 2에 도시된 바와 같이, 진단기는 진단모드(211, 221) 및 리프로그램 모드(213, 223)로 각 제어유닛을 제어한다. 이하의 실시예에서는 설명의 편의를 위해 제어유닛1 및 제어유닛2에 대해 진단기의 제어 동작을 설명하도록 한다.
여기서, 진단기는 각각의 제어유닛에 대응하는 제어기를 포함할 수 있으며, 각 제어기에서 대응하는 제어유닛의 리프로그래밍 동작을 제어할 수 있다. 예를 들어, 진단기는 제어유닛1에 대응하는 제1 제어기(210) 및 제어유닛2에 대응하는 제2 제어기(220)를 포함할 수 있다. 이때, 제1 제어기(210) 및 제2 제어기(220)는 상호간에 정보를 공유하며 각 제어유닛에 대한 리프로그래밍이 수행되도록 한다.
먼저, 제1 제어기(210)는 제어유닛1에 대해 진단 모드(211)로 동작하는 동안, 제어유닛1로부터 전송되는 정보에 근거하여 제어유닛1의 상태를 진단한다. 예를 들어, 제1 제어기(210)는 제어유닛1의 프로그램 버전 정보를 확인할 수 있다. 만일, 제어유닛1의 프로그램 버전 정보가 최신 버전이 아닌 경우에는 리프로그램 모드(213)로 전환하여 제어유닛1에 대한 리프로그래밍을 진행할 수 있다.
마찬가지로, 제2 제어기(220)는 제어유닛2에 대해 진단모드로 동작하는 동안, 제어유닛2로부터 전송되는 정보에 근거하여 제어유닛2의 상태를 진단한다. 예를 들어, 제2 제어기(220)는 제어유닛2의 프로그램 버전 정보를 확인할 수 있으며, 제어유닛2의 프로그램 버전 정보가 최신 버전이 아닌 경우에는 리프로그램 모드(223)로 전환하여 제어유닛2에 대한 리프로그래밍을 진행할 수 있다. 이때, 제2 제어기(220)는 제1 제어기(210)가 제어유닛1에 대한 리프로그램 모드(213) 동작 중에도 제어유닛2에 대해 리프로그램 모드(223)로 동작할 수 있다.
제어유닛1 및 제어유닛2에 대한 리프로그램 모드(213, 223)는 컨트롤 전송 모드(215, 225), 데이터 전송 모드(217, 227) 및 대기 모드(219, 229)로 구분된다. 컨트롤 전송 모드(215, 225)는 진단기에서 리프로그래밍을 수행하기 이전에 리프로그래밍과 관련된 소정의 데이터를 제어유닛으로 전송하고, 해당 제어유닛으로부터 통신상태, 블록 사이즈 및 최소 분리 시간 등의 정보를 수신한다. 여기서, 컨트롤 전송 모드(215, 225)는 다른 제어유닛에 대해 데이터 전송 모드가 진행 중인 경우에도 수행될 수 있다.
데이터 전송 모드(217, 227)는 리프로그램 데이터를 해당 제어유닛으로 전송하며, 이때 리프로그램 데이터는 최대 0xFFF Bytes 정도의 멀티 데이터 형태로 전송된다. 데이터 전송 모드(217, 227)는 다른 제어유닛에 대해 데이터 전송 모드(217, 227)가 진행 중인 경우에는 수행될 수 없다. 이 경우, 다른 제어유닛에 대해 데이터 전송 모드(217, 227)가 종료될 때까지 대기하게 되는데, 이때 대기 모드(219, 229)로 전환되게 된다.
제어유닛1 및 제어유닛2에 대한 리프로그래밍 동작은 도 3을 참조하여 보다 상세히 설명하도록 한다.
상기와 같이 구성되는 본 발명에 따른 리프로그래밍 시스템의 리프로그래밍 방법에 대한 동작 흐름을 보다 상세히 설명하면 다음과 같다.
도 3은 본 발명에 따른 리프로그래밍 방법에 대한 동작 흐름을 나타낸 흐름도이다. 도 3에 도시된 바와 같이, 먼저 진단기(10)는 제어유닛1(21)에 대해 리프로그래밍을 진행하고자 하는 경우에 제어유닛1(21)로 퍼스트 프레임(First Frame)을 전송한다. 여기서, First Frame은 멀티프레임 전송방법을 이용하여 제1 제어유닛에 보낼 데이터 전체 길이인 First Frame Data Length에 대한 정보를 포함한다. 이후, 제어유닛1(21)은 진단기(10)로부터의 First Frame에 대응하여 플로우 컨트롤 프레임(Flow control frame)을 진단기(10)로 전송한다. 여기서, Flow control frame은 제어유닛의 플로우 상태(Flow status), 중간에 플로우 컨트롤 프레임 없이 컨세큐티브 프레임을 받을 수 있는 최대 블럭 사이즈(Block size) 및 컨세큐티브 프레임 사이의 최소 분리 시간(Minimum Separation Time)에 대한 정보를 포함한다.
따라서, 진단기(10)는 제어유닛1(21)로부터 수신한 Flow control frame을 통해 제어유닛1(21)의 상태를 확인하고, 그에 따라 리프로그램 데이터를 멀티 데이터로 분할하여 제어유닛1(21)로 전송한다. 이때, 진단기(10)는 다른 제어유닛, 예를 들어, 제어유닛2(22)에 대해 리프로그래밍을 수행하고 있지 않으므로, 바로 데이터 전송 모드로 전환되어 제어유닛1(21)로 리프로그램 데이터를 전송한다. 여기서, 복수개로 분할된 리프로그램 데이터는 컨세큐티브 프레임(consecutive frame)에 포함되어 전송되며, Consecutive frame은 분할된 리프로그램 데이터 외에 해당 데이터에 대한 시퀀스 번호(Sequence Number)를 포함한다.
한편, 진단기(10)에서 제어유닛1(21)에 대해 데이터 전송 모드로 동작하는 동안, 제어유닛2(22)에 대해 컨트롤 전송 모드로 동작할 수 있다.
즉, First Frame 또는 Flow control frame은 데이터 크기가 작아서, CAN 버스(5)의 통신에 크게 영향을 미치지 않는다. 따라서, 제어유닛1(21)로 리프로그램 데이터를 전송하는 동안에 제어유닛2(22)에 대해 컨트롤 전송 모드로 전환하여 제어유닛2(22)로 First Frame을 전환하고, 제어유닛2(22)로부터 Flow control frame을 수신할 수 있다.
이 경우, 진단기(10)는 이미 제어유닛2(22)에 대해 데이터 전송 모드로 동작하고 있기 때문에, 제어유닛2(22)에 대한 컨트롤 전송 모드 동작이 완료되면, 제어유닛1(21)의 데이터 전송 모드가 종료되기까지 제어유닛2(22)에 대해서는 대기 모드로 전환할 수 있다.
만일, 제어유닛1(21)로 전송되는 일부 리프로그램 데이터의 전송이 완료되어, 제어유닛1(21)로부터 Flow control frame이 수신되면, 진단기(10)는 제어유닛1(21)의 데이터 전송 모드를 종료하고, 컨트롤 전송 모드로 전환할 수 있다. 여기서, Flow control frame은 앞서 제어유닛2(22)로부터 수신한 Flow control frame과 같은 형태를 갖는다.한편, 진단기(10)는 제어유닛1(21)에 대한 데이터 전송 모드가 종료되면, 제어유닛2(22)에 대해 대기 모드에서 데이터 전송 모드로 전환하여 리프로그램 데이터를 전송할 수 있다. 물론, 제어유닛2(22)로 리프로그램 데이터가 전송되는 동안, 제어유닛1(21)에 대해서는 컨트롤 전송 모드로 동작하여 First Frame을 제어유닛1(21)로 송신하거나, 제어유닛1(21)로부터 Flow control frame을 수신할 수 있다.
마찬가지로, 진단기(10)는 이미 제어유닛1(21)에 대해 데이터 전송 모드로 동작하고 있기 때문에, 제어유닛1(21)에 대한 컨트롤 전송 모드 동작이 완료되면, 제어유닛2(22)의 데이터 전송 모드가 종료되기까지 제어유닛1(21)에 대해서는 대기 모드로 전환할 수 있다.
진단기(10)는 상기의 과정을 반복하면서, 제어유닛1(21)과 제어유닛2(22)에 대한 리프로그래밍을 양방향으로 실행할 수 있게 된다.
도 4는 본 발명에 따른 리프로그래밍 데이터 구조를 나타낸 예시도로서, First frame, Consecutive frame 및 Flow control frame의 데이터 구조를 나타낸 것이다. 여기서 각각의 프레임은 8Bytes 크기를 갖는 것으로 한다.
먼저, First frame은 첫 번째 바이트의 High nibble(4bits)에는 First frame의 식별번호인 '0001'이 포함되고, Low nibble(4bits)과 두 번째 바이트에는 멀티프레임 전송방법을 이용하여 보낼 데이터 전체 길이인 First Frame Data Length에 대한 정보가 포함될 수 있다. 즉, First frame의 데이터 길이(FF_DL, First frame data length)는 총 12bits의 크기를 가지며, 따라서 멀티프레임 전송 방법을 이용하여 한번에 최대 0xFFF 크기의 데이터를 전송할 수 있다. 또한, 세 번째 바이트부터 여덟 번째 바이트에는 진단기로부터 제공되는 소정의 데이터가 포함될 수 있다.
Consecutive frame은 첫 번째 바이트의 High nibble(4bits)에는 Consecutive frame의 식별번호인 '0010'이 포함되고, Low nibble(4bits)에는 Consecutive frame의 시퀀스 번호(SN, Sequence Number)가 포함될 수 있다. 또한, 두 번째 바이트부터 여덟 번째 바이트에는 진단기로부터 제공되는 리프로그램 데이터가 포함될 수 있다.
Flow control frame 첫 번째 바이트의 High nibble(4bits)에는 Single frame의 식별번호인 '0011'이 포함되고, Low nibble(4bits)에는 제어유닛의 플로우 상태(FS, Flow Status) 정보가 포함될 수 있다. 또한, 두 번째 바이트에는 제어유닛의 블럭 사이즈(BSm Block Size) 정보가 포함될 수 있다. 여기서, 블럭 사이즈는 각 블럭당 N계층 프로토콜 단위(N_PDU, Protocol Data Unit)의 Consecutive frame의 개수에 의해 결정된다. 또한, 세 번째 바이트에는 최소 분리 시간(STmin, Minimum Separation Time)에 대한 정보가 포함될 수 있다. 또한, 네 번째 바이트부터 여덟 번째 바이트에는 진단기로부터 제공되는 소정의 데이터가 포함될 수 있다.
도 5는 본 발명에 따른 리프로그래밍 데이터 전송 상태는 나타낸 예시도이다. 도 5를 참조하면, A구간에서 진단기는 제어유닛1의 컨트롤 전송 모드로 동작하고, B구간에서 진단기는 제어유닛1의 데이터 전송 모드로 동작하는 한편, 제어유닛2의 컨트롤 전송 모드로 동작한다. 이때, B구간에서 제어유닛2의 컨트롤 전송 모드 동작이 종료되면, 진단기는 B구간이 끝나는 시점까지 제어유닛2의 대기 모드로 동작한다.
한편, C구간에서 진단기는 제어유닛1의 컨트롤 전송 모드로 동작하는 한편, 제어유닛2의 데이터 전송 모드로 동작한다. 이때, C구간에서 제어유닛1의 컨트롤 전송 모드 동작이 종료되면, 진단기는 C구간이 끝나는 시점까지 제어유닛1의 대기 모드로 동작한다.
D구간에서 진단기는 제어유닛1의 데이터 전송 모드로 동작하는 한편, 제어유닛2의 컨트롤 전송 모드로 동작한다.
도 5에 도시된 바와 같이, 진단기는 어느 하나의 제어유닛의 데이터 전송 모드가 실행되는 동안 다른 제어유닛의 컨트롤 전송 모드를 실행함으로써 하나의 CAN 버스를 통해 연결된 복수의 제어유닛에 대한 리프로그래밍을 양방향으로 실행할 수 있게 된다.
이상과 같이 본 발명에 의한 리프로그래밍 방법 및 시스템은 예시된 도면을 참조로 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명은 한정되지 않고, 기술사상이 보호되는 범위 이내에서 응용될 수 있다.
10: 진단기 21, 22, 29: 제어유닛
210: 제1 제어기 211: 진단 모드
213: 리프로그램 모드 215: 컨트롤 전송 모드
217: 데이터 전송 모드 219: 대기 모드
220: 제2 제어기 221: 진단 모드
223: 리프로그램 모드 225: 컨트롤 전송 모드
227: 데이터 전송 모드 229: 대기 모드

Claims (10)

  1. 제1 제어기 및 제2 제어기를 포함하는 진단기의 리프로그래밍 방법으로서,
    상기 제1 제어기가 제1 제어유닛에 대해 제1 컨트롤 전송 모드로 동작하여 상기 제1 제어유닛의 정보를 수신하는 단계;
    상기 제1 제어기가 상기 제1 컨트롤 전송 모드 동작 종료 시, 상기 제1 제어유닛에 대해 제1 데이터 전송 모드로 동작하여 상기 제1 컨트롤 전송 모드에서 수신된 상기 제1 제어유닛의 정보에 따라 상기 제1 제어유닛으로 멀티 리프로그램 데이터를 전송하는 하는 단계;
    상기 제1 제어기가 상기 제1 데이터 전송 모드로 동작하는 동안, 상기 제2 제어기가 제2 제어유닛에 대해 제2 컨트롤 전송모드로 동작하여 상기 제2 제어유닛의 정보를 수신하는 단계; 및
    상기 제1 제어기가 상기 제1 제어유닛에 대한 제1 데이터 전송 모드 동작 종료 시, 상기 제2 제어기가 상기 제2 제어유닛에 대해 제2 데이터 전송 모드로 동작하여 상기 제2 컨트롤 전송 모드에서 수신된 상기 제2 제어유닛의 정보에 따라 상기 제2 제어유닛으로 멀티 리프로그램 데이터를 전송하는 단계를 포함하는 것을 특징으로 하는 리프로그래밍 방법.
  2. 청구항 1에 있어서,
    상기 제2 제어유닛의 정보를 수신하는 단계 이후에, 상기 제2 제어기가,
    상기 제2 컨트롤 전송 모드 동작 종료 시에도 상기 제1 제어기가 상기 제1 데이터 전송 모드로 동작 중이면, 상기 제1 제어기가 상기 제1 제어유닛에 대한 제1 데이터 전송 모드 동작을 종료할 때까지 상기 제2 제어유닛에 대해 대기 모드로 동작하는 단계를 더 포함하는 것을 특징으로 하는 리프로그래밍 방법.
  3. 청구항 1에 있어서,
    상기 제1 제어유닛의 정보를 수신하는 단계는, 상기 제1 제어기가,
    상기 제1 제어유닛으로 퍼스트 프레임(First frame)을 전송하는 단계; 및
    상기 전송된 퍼스트 프레임에 대응하여 상기 제1 제어유닛으로부터 플로우 컨트롤 프레임(Flow control frame)을 수신하는 단계를 포함하는 것을 특징으로 하는 리프로그래밍 방법.
  4. 청구항 3에 있어서,
    상기 퍼스트 프레임은 리프로그래밍에 대한 정보를 포함하고,
    상기 플로우 컨트롤 프레임은 상기 제1 제어유닛의 플로우 상태(Flow status), 블럭 사이즈(Block size) 및 최소 분리 시간(Minimum Separation Time) 중 적어도 하나에 대한 정보를 포함하는 것을 특징으로 하는 리프로그래밍 방법.
  5. 청구항 1에 있어서,
    상기 제2 컨트롤 전송 모드로 동작하는 단계는, 상기 제2 제어기가,
    상기 제2 제어유닛으로 퍼스트 프레임을 전송하는 단계; 및
    상기 퍼스트 프레임에 대응하여 상기 제2 제어유닛으로부터 플로우 컨트롤 프레임을 수신하는 단계를 포함하는 것을 특징으로 하는 리프로그래밍 방법.
  6. 청구항 5에 있어서,
    상기 퍼스트 프레임은 리프로그래밍에 대한 정보를 포함하고,
    상기 플로우 컨트롤 프레임은 상기 제2 제어유닛의 플로우 상태(Flow status), 블럭 사이즈(Block size) 및 최소 분리 시간(Minimum Separation Time) 중 적어도 하나에 대한 정보를 포함하는 것을 특징으로 하는 리프로그래밍 방법.
  7. 청구항 1에 있어서,
    상기 멀티 리프로그램 데이터를 전송하는 단계는,
    분할된 리프로그램 데이터 및 해당 리프로그램 데이터에 대한 시퀀스 번호(Sequence Number)를 포함하는 컨세큐티브 프레임(Consecutive frame)을 연속하여 전송하는 것을 특징으로 하는 리프로그래밍 방법.
  8. 청구항 1에 있어서,
    상기 멀티 리프로그램 데이터를 전송하는 단계 이후에,
    상기 제1 제어기 또는 상기 제2 제어기가, 상기 제1 제어유닛 또는 상기 제2 제어유닛으로부터 다음 멀티 프레임 전송을 요청하는 플로우 컨트롤 프레임을 수신하는 단계를 더 포함하는 것을 특징으로 하는 리프로그래밍 방법.
  9. 청구항 1 내지 청구항 8 중 어느 한 항의 리프로그래밍 방법에 의해 하나의 CAN(Controller Area Network) 버스로 연결된 복수의 제어유닛에 대한 리프로그래밍 작업을 수행하는 리프로그래밍 시스템.
  10. 청구항 9에 있어서,
    하나의 CAN 버스로 연결된 제1 제어유닛과 제2 제어유닛; 및
    상기 제1 제어유닛의 리프로그래밍 작업을 수행하는 제1 제어기 및 상기 제2 제어유닛의 리프로그래밍 작업을 수행하는 제2 제어기를 포함하는 진단기를 포함하고,
    상기 진단기는, 상기 제1 제어기 및 상기 제2 제어기 사이에 정보를 공유하며 상기 제1 제어유닛 및 상기 제2 제어유닛에 대한 리프로그래밍 작업을 양방향으로 진행하는 것을 특징으로 하는 리프로그래밍 시스템.
KR1020120158395A 2012-12-31 2012-12-31 리프로그래밍 방법 및 시스템 KR101438978B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020120158395A KR101438978B1 (ko) 2012-12-31 2012-12-31 리프로그래밍 방법 및 시스템
US13/909,689 US10033546B2 (en) 2012-12-31 2013-06-04 Method and system for reprogramming
CN201310250445.0A CN103914007B (zh) 2012-12-31 2013-06-21 用于程序重调的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120158395A KR101438978B1 (ko) 2012-12-31 2012-12-31 리프로그래밍 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20140087767A KR20140087767A (ko) 2014-07-09
KR101438978B1 true KR101438978B1 (ko) 2014-09-11

Family

ID=51018093

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120158395A KR101438978B1 (ko) 2012-12-31 2012-12-31 리프로그래밍 방법 및 시스템

Country Status (3)

Country Link
US (1) US10033546B2 (ko)
KR (1) KR101438978B1 (ko)
CN (1) CN103914007B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140132063A (ko) * 2013-05-07 2014-11-17 한국전자통신연구원 캔 통신 장치 및 방법
JP2016225791A (ja) 2015-05-29 2016-12-28 株式会社デンソー 車載ネットワークシステム
WO2017168750A1 (ja) * 2016-04-01 2017-10-05 三菱電機株式会社 制御装置、および、制御装置の復帰処理方法
CN106789493B (zh) * 2016-11-16 2020-09-18 广州汽车集团股份有限公司 一种汽车软件刷新控制方法、系统及网关
CN108121326A (zh) * 2017-12-11 2018-06-05 北京经纬恒润科技有限公司 一种故障诊断方法及系统
US10838909B2 (en) * 2018-09-24 2020-11-17 Hewlett Packard Enterprise Development Lp Methods and systems for computing in memory
EP4224801A4 (en) * 2021-12-24 2023-08-09 Launch Tech Co., Ltd. DATA COMMUNICATION METHODS AND APPARATUS, ELECTRONIC DEVICE AND STORAGE MEDIA

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040091925A (ko) * 2003-04-23 2004-11-03 주식회사 케이디티 시스템즈 직렬통신에 의한 프로그래머블 로직 제어장치의 증설시스템과 그 동작방법
KR20050065431A (ko) * 2003-12-25 2005-06-29 마쯔시다덴기산교 가부시키가이샤 정보 처리 장치 및 이를 위한 rom 이미지 생성 장치
KR20060134446A (ko) * 2005-06-22 2006-12-28 주식회사 만도 전자제어유니트의 메모리 프로그램방법
KR20110016139A (ko) * 2009-08-11 2011-02-17 주식회사 케피코 복수개의 제어기의 리프로그래밍 방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100299127B1 (ko) 1998-07-07 2001-09-06 윤종용 비동기 전송모드 교환기의 주제어부 이중화 장치 및 방법
DE10008974B4 (de) 2000-02-25 2005-12-29 Bayerische Motoren Werke Ag Signaturverfahren
US7254811B2 (en) 2003-04-17 2007-08-07 Ntt Docomo, Inc. Update system and method for updating a scanning subsystem in a mobile communication framework
US7139653B2 (en) * 2004-07-15 2006-11-21 International Truck Intellectual Property Company, Llc Common control interface for diverse automated manual transmissions
JP4492470B2 (ja) * 2005-07-20 2010-06-30 株式会社デンソー 車載制御装置のデータ書き換え方法および車載制御装置
JP4692231B2 (ja) * 2005-11-04 2011-06-01 株式会社デンソー 車両用の電子制御装置
US20070185624A1 (en) * 2006-02-07 2007-08-09 General Motors Corporation Method for remote reprogramming of vehicle flash memory
MX2009011047A (es) * 2007-04-13 2010-03-30 Sezmi Corp Interfaz del visualizador para un sistema de distribucion de contenido.
DE102007061724A1 (de) * 2007-12-20 2009-06-25 Robert Bosch Gmbh Verfahren zum Übertragen von Daten in einem zyklusbasierten Kommunikationssystem
WO2009085266A2 (en) 2007-12-21 2009-07-09 Sezmi Corporation System for content delivery
JP5243113B2 (ja) 2008-06-19 2013-07-24 株式会社日立製作所 演算処理装置多重化制御システム
US8762982B1 (en) * 2009-06-22 2014-06-24 Yazaki North America, Inc. Method for programming an instrument cluster
KR20110039066A (ko) 2009-10-09 2011-04-15 주식회사 케피코 복수개의 슬레이브 제어기의 리프로그래밍 방법
KR20110076432A (ko) 2009-12-29 2011-07-06 한국생산기술연구원 Can 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법
JP5717240B2 (ja) * 2010-08-09 2015-05-13 国立大学法人名古屋大学 通信システム及び通信装置
US8751100B2 (en) * 2010-08-13 2014-06-10 Deere & Company Method for performing diagnostics or software maintenance for a vehicle
KR20120071243A (ko) * 2010-12-22 2012-07-02 한국전자통신연구원 차량의 소프트웨어 업데이트 장치 및 그 방법
JP5267598B2 (ja) * 2011-02-25 2013-08-21 トヨタ自動車株式会社 車両制御装置のデータ書き換え支援システム及びデータ書き換え支援方法
EP2797263B1 (en) * 2011-12-22 2017-03-15 Toyota Jidosha Kabushiki Kaisha Communication system and communication method
CN104641597B (zh) * 2012-09-19 2018-04-10 丰田自动车株式会社 通信装置以及通信方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040091925A (ko) * 2003-04-23 2004-11-03 주식회사 케이디티 시스템즈 직렬통신에 의한 프로그래머블 로직 제어장치의 증설시스템과 그 동작방법
KR20050065431A (ko) * 2003-12-25 2005-06-29 마쯔시다덴기산교 가부시키가이샤 정보 처리 장치 및 이를 위한 rom 이미지 생성 장치
KR20060134446A (ko) * 2005-06-22 2006-12-28 주식회사 만도 전자제어유니트의 메모리 프로그램방법
KR20110016139A (ko) * 2009-08-11 2011-02-17 주식회사 케피코 복수개의 제어기의 리프로그래밍 방법

Also Published As

Publication number Publication date
US10033546B2 (en) 2018-07-24
KR20140087767A (ko) 2014-07-09
CN103914007B (zh) 2018-09-21
US20140188253A1 (en) 2014-07-03
CN103914007A (zh) 2014-07-09

Similar Documents

Publication Publication Date Title
KR101438978B1 (ko) 리프로그래밍 방법 및 시스템
JP5175358B2 (ja) Canバスを備える通信システム、およびこのような通信システムを駆動する方法
CN104221449B (zh) 用于实现共存同步蓝牙和lte/wimax传输的方法和装置
CN105744636A (zh) 地面站、无人机及地面站与无人机的通信系统、方法
CN104566865B (zh) 多联机空调及其控制方法
JP2004015558A5 (ko)
CN102339047A (zh) 自动化装置和用于加速处理所选择的过程数据的方法
CN112567696A (zh) 车载通信装置及车载系统
US10466670B2 (en) Field bus module, machine controller, and method for parameterizing a field bus module, in particular a safety-oriented field bus module
CN102012796A (zh) 一种拼接墙控制指令传输方法及其装置
CN104184834A (zh) 文件传输的方法、文件传输的装置和终端
US11929998B2 (en) Control apparatus, in-vehicle communication system, communication control method and program
JP5546500B2 (ja) Fpga搭載装置の遠隔保守システム
CN105353671B (zh) 核电站仪控系统的变量强制和释放装置及方法
JP7407887B2 (ja) 通信装置、通信装置の制御方法、およびプログラム
CN104717109A (zh) 广域网链路模拟测试方法及系统
KR100811452B1 (ko) 피엘시 시스템용 리모트 모듈 및 그 제어방법
JP5769128B2 (ja) フィールド機器
CN113572629A (zh) 消息传输的方法、终端及存储介质
CN105262815A (zh) 基于射频的无线传输方法和系统
CN104917704A (zh) 同一架构中复用10GBase-R PCS和40GBase-R PCS的方法及系统
CN104750021A (zh) 数值控制系统
KR101499516B1 (ko) 복수의 제어기 리프로그래밍 방법 및 그 장치
KR101602225B1 (ko) 차량 리프로그래밍 시스템 및 방법
CN107231417B (zh) 一种低速链路下网络节点间数据同步方法及系统

Legal Events

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

Payment date: 20180829

Year of fee payment: 5