KR101603547B1 - 차량제어기 캘리브레이션 메모리 제어 방법 및 장치 - Google Patents

차량제어기 캘리브레이션 메모리 제어 방법 및 장치 Download PDF

Info

Publication number
KR101603547B1
KR101603547B1 KR1020140153652A KR20140153652A KR101603547B1 KR 101603547 B1 KR101603547 B1 KR 101603547B1 KR 1020140153652 A KR1020140153652 A KR 1020140153652A KR 20140153652 A KR20140153652 A KR 20140153652A KR 101603547 B1 KR101603547 B1 KR 101603547B1
Authority
KR
South Korea
Prior art keywords
sub
page
command
data
allocated
Prior art date
Application number
KR1020140153652A
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 KR1020140153652A priority Critical patent/KR101603547B1/ko
Priority to US14/639,095 priority patent/US10152282B2/en
Priority to DE102015204990.6A priority patent/DE102015204990B4/de
Priority to CN201510202072.9A priority patent/CN106155918B/zh
Application granted granted Critical
Publication of KR101603547B1 publication Critical patent/KR101603547B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • 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
    • 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
    • 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

Abstract

본 발명은 차량 제어기에서의 캘리브레이션을 위한 메모리 제어 방법 및 그를 위한 장치에 관한 것이다. 본 발명의 일 실시예에 따른 외부 캘리브레이션 장치와 연동되는 차량 제어기에서의 캘리브레이션 메모리 제어 방법은 상기 외부 캘리브레이션 장치로부터 다운로드 명령을 수신하는 단계와 상기 다운로드 명령에 대응되는 서브 레퍼런스 페이지를 확인하는 단계와 상기 확인된 서브 레퍼런스 페이지에 대응되는 서브 작업 페이지가 할당되었는지 여부를 확인하는 단계와 상기 확인 결과, 상기 서브 작업 페이지가 할당되지 않은 경우, 상기 확인된 서브 레퍼런스 페이지에 대응되는 서브 작업 페이지를 RAM 영역에 할당하는 단계와 상기 할당된 서브 작업 페이지에 상기 확인된 서브 레퍼런스 페이지에 저장된 데이터를 복사하는 단계를 포함할 수 있다. 따라서, 본 발명은 보다 한정된 메모리 자원을 캘리브레이션을 위해 효과적으로 사용할 수 있는 장점이 있다.

Description

차량제어기 캘리브레이션 메모리 제어 방법 및 장치{Calibration Memory Controlling Method and Apparatus for Vehicle Controller}
본 발명은 차량제어기 캘리브레이션 메모리 제어 방법 및 장치에 관한 것으로서, 상세하게, 차량 CCP(Can Calibration Protocol)을 통해 데이터 캘리브레이션 시 멀티페이지 캘리브레이션 알고리즘을 이용하여 캘리브레이션 메모리 공간을 확장하는 것이 가능한 차량제어기에서의 캘리브레이션 메모리 제어 방법 및 그를 위한 장치에 관한 것이다.
양산 차량의 사양은 같은 차종이라도 옵션 및 지역 등에 따라 변경 될 수 있고, 차량 제어기(ECU: Electric Control Unit)의 개발은 실제 차량의 개발과 병렬적으로 진행된다. 따라서, 차량의 제어 프로그램은 추후에 실제 차량과 시뮬레이션 간의 차이를 교정(Calibration)할 수 있도록 많은 제어 인자들을 변수화하여 갖는다. 여기서, 차량의 제어 프로그램상에서 추후 변경 가능한 제어 인자를 Calibration 변수(Calibration Variable)라 한다.
차량 개발자는 개발 과정 및 시험 단계에서 다양한 사양에 대응하는 최적화된 제어 인자들을 결정하기 위해 캘리브레이션을 수행한다.
따라서, 차량 개발자는 해당 차종 및 모델에 따른 제어 인자의 정확한 결정 시점을 개발 초기 단계가 아닌 실제 차량이 준비된 시점으로 미뤄 목표하는 성능의 차량을 개발할 수 있다.
이러한 변수들 중에는 차량의 사양에 따라 값이 정확하게 결정 되는 인자가 있는 반면, 최적의 값을 찾기 위해 실제 차량 동작 중 값을 조정하여 변경 해야 하는 인자도 있다.
차량 동작 중 실시간으로 Calibration 되야 하는 데이터들을 위해서 제어기와 외부 Calibration 도구는 표준화된 Calibration 프로토콜을 사용한다. 이 중 가장 대표적인 Protocol로는 CCP(Can Calibration Protocol), XCP(Extended Calibration Protocol)가 있다.
차량의 제어 개발 과정에서 다양한 목표 성능을 달성하기 위하여 차량 제어기 상에는 다량의 제어인자, 맵 등이 존재한다. 차량의 주행 중 이러한 데이터를 변경하여 차량의 최적화된 성능을 개발할 수 있도록 CCP라는 통신 프로토콜이 사용된다.
하지만, 차량 제어기상에 존재하는 제어인자, 맵 등의 양이 증가함에 따라 요구되는 메모리의 양도 증가하게 되며, 실제 개발과정에서 요구되는 메모리의 양이 사용 가능한 메모리의 양보다 많아 Calibration을 수행할 수 없는 경우가 빈번히 발생되고 있는 실정이다.
차량의 제어 프로그램 데이터는 차량 제어기에 전원이 공급되지 않을 때에도 보존되어야 하므로 비 휘발성 메모리인 플래시 메모리에 저장된다. 도 1의 Table 1(차량 제어기 별 프로그램 및 RAM 크기)에 보여지는 바와 같이, 차량 제어기의 경우 제어기 프로그램의 크기에 비해 내부 RAM의 크기가 작으므로 차량의 제어 프로그램을 RAM에 로딩하지 않고 플래시 메모리 상에서 구동하게 된다.
하지만, 플래시 메모리는 현재 저장된 값을 바로 변경할 수 없고, 반드시 기존 내용을 삭제한 후 새로운 값을 저장하여야 하므로 실시간으로 데이터를 Calibration하는 경우에는 적합하지 않다.
따라서, 종래의 차량 제어기는 도 2에 도시된 바와 같이, 제어 인자의 값을 자유로이 변경하기 위해 플래시 메모리의 데이터(Reference 페이지)를 동일한 크기의 RAM 공간(Working 페이지)에 복사하고, 마이크로 프로세서의 주소 변환(Address Translation)기능을 활용하여 적절한 페이지가 참조 되도록 설계되어 있다.
이 때, Working 페이지를 위해 Calibration 데이터 크기의 공간을 마이크로 프로세서 내부 RAM에 할당 하기에는 내부 메모리의 여유 공간이 부족한 경우가 많이 발생되며, 이에 따라, 양산되는 차량 제어기에는 정상적인 Calibration을 위한 용량이 큰 외부 메모리가 추가로 장착되고 있는 실정이다.
양산용 차량 제어기에 Calibration을 위한 외부 메모리가 추가 장착되는 경우, 차량 제어기의 원가가 상승하는 문제가 있다. 또한 차량 제어기의 개발 과정에서 Calibration 데이터의 크기가 증가되어 메모리가 부족해지는 경우, Calibration 변수가 조정되어야 하는 불편함이 발생될 수 있다.
특히, 마이크로 프로세서의 선정 과정에서 불가피하게 외부 버스가 없는 프로세서를 사용하게 되는 경우에는 Calibration을 위한 외부메모리 사용이 불가할 수도 있다.
본 발명은 상술한 종래 기술의 문제점을 해결하기 위해 고안된 것으로, 본 발명의 목적은 차량제어기에서의 캘리브레이션 메모리 확장을 위한 메모리 제어 방법 및 그를 위한 장치를 제공하는 것이다.
본 발명의 다른 목적은 외부 캘리브레이션 요청에 따라 동적으로 Working 페이지를 할당함으로써, 실제 캘리브레이션을 위해 사용 가능한 메모리를 확장하는 것이 가능한 차량 제어기에서의 캘리브레이션 메모리 제어 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 레퍼런스 페이지와 작업 페이지의 대응 관계를 1대1의 대응 관계가 아닌 M개의 서브 레퍼런스 페이지와 N개의 서브 작업 페이지의 대응 관계로 바꾸고, 오직 사용 중인 페이지 만을 RAM 영역에 할당 하는 방식을 사용함으로써, 가용한 RAM의 용량이 전체 캘리브레이션 데이터의 크기보다 작더라도 캘리브레이션을 수행할 수 있는 차량 제어기에서의 캘리브레이션 메모리 제어 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 차량 제어기에 캘리브레이션을 위한 외부 메모리가 요구되지 않는 차량 제어기에서의 캘리브레이션 메모리 제어 방법을 제공하는 것이다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명은 차량 제어기에서의 캘리브레이션을 위한 메모리 제어 방법 및 그를 위한 장치에 관한 것이다.
본 발명의 일 실시예에 따른 외부 캘리브레이션 장치와 연동되는 차량 제어기에서의 캘리브레이션 메모리 제어 방법은 상기 외부 캘리브레이션 장치로부터 다운로드 명령을 수신하는 단계와 상기 다운로드 명령에 대응되는 서브 레퍼런스 페이지를 확인하는 단계와 상기 확인된 서브 레퍼런스 페이지에 대응되는 서브 작업 페이지가 할당되었는지 여부를 확인하는 단계와 상기 확인 결과, 상기 서브 작업 페이지가 할당되지 않은 경우, 상기 확인된 서브 레퍼런스 페이지에 대응되는 서브 작업 페이지를 RAM 영역에 할당하는 단계와 상기 할당된 서브 작업 페이지에 상기 확인된 서브 레퍼런스 페이지에 저장된 데이터를 복사하는 단계를 포함할 수 있다.
이때, 상기 데이터 복사가 완료되면, 상기 다운로드 명령에 포함된 데이터 블록을 상기 할당된 서브 작업 페이지의 일측에 저장하는 단계를 더 포함할 수 있다.
여기서, 상기 데이터 복사는 상기 차량 제어기에 탑재된 스케쥴러(Scheduler)의 유휴 시간 동안 수행될 수 있다.
또한, 상기 유휴 시간 동안의 상기 데이터 복사는 상기 서브 작업 페이지의 크기와 같거나 작은 단위로 수행될 수 있다.
또한, 상기 차량 제어기 초기화 시 레퍼런스 페이지가 M개의 서브 레퍼런스 페이지로 분할되며, 상기 분할된 각각의 서브 레퍼런스 페이지가 가상의 서브 작업 페이지와 일대일 대응되도록 설정될 수 있다.
여기서, 상기 RAM 영역에 할당되지 않은 상기 서브 작업 페이지는 상기 일대일 대응되도록 설정된 서브 레퍼런스 페이지를 참조할 수 있다.
또한, 상기 RAM 영역에 할당된 서브 작업 페이지는 상기 다운로드 명령에 의해 변경 가능하도록 제어할 수 있다.
또한, 상기 RAM 영역의 크기는 전체 레퍼런스 페이지 크기보다 작을 수 있다.
또한, 상기 외부 캘리브레이션 장치로부터 다운로드 명령을 제외한 명령이 수신되면 해당 명령을 즉시 수행할 수 있다.
또한, 상기 다운로드 명령에 포함된 데이터 블록이 소정 기준치를 초과하면 Parameter out of range 응답 메시지를 상기 외부 캘리브레이션 장치에 전송할 수 있다.
또한, 상기 확인된 서브 레퍼런스 페이지에 대응되는 서브 작업 페이지가 이미 할당된 경우, 상기 다운로드 명령에 포함된 데이터 블록을 상기 이미 할당된 서브 작업 페이지에 저장할 수 있다.
또한, 이미 처리중인 다운로드 명령이 존재하는지를 확인하는 단계를 더 포함하되, 상기 이미 처리중인 다운로드 명령이 존재하면, Command Processor Busy 응답 메시지를 상기 외부 캘리브레이션 장치에 전송할 수 있다.
또한, 상기 데이터 복사가 완료될 때까지 상기 다운로드 명령에 포함된 데이터 블록을 미리 지정된 버퍼 메모리에 저장하는 단계를 더 포함할 수 있다.
또한, CAN(Controller Area Network) 통신을 통해 상기 다운로드 명령이 수신될 수 있다.
본 발명의 다른 일 실시예는 상기한 캘리브레이션 메모리 제어 방법들 중 어느 한 항에 기재된 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
본 발명의 또 다른 일 실시예에 따른 외부 캘리브레이션 장치와 연동되는 차량 제어기는 상기 외부 캘리브레이션 장치로부터 다운로드 명령을 수신하는 수단과 상기 다운로드 명령에 대응되는 서브 레퍼런스 페이지를 확인하는 수단과 상기 확인된 서브 레퍼런스 페이지에 대응되는 서브 작업 페이지가 할당되었는지 여부를 확인하는 수단과 상기 확인 결과, 상기 서브 작업 페이지가 할당되지 않은 경우, 상기 확인된 서브 레퍼런스 페이지에 대응되는 상기 서브 작업 페이지를 RAM 영역에 할당하는 수단과 상기 할당된 서브 작업 페이지에 상기 확인된 서브 레퍼런스 페이지에 저장된 데이터를 복사하는 수단을 포함할 수 있다.
이때, 상기 데이터 복사가 완료되면, 상기 다운로드 명령에 포함된 데이터 블록을 상기 할당된 서브 작업 페이지의 일측에 저장하는 수단을 더 포함할 수 있다.
또한, 상기 차량 제어기에 탑재된 스케쥴러(Scheduler)의 유휴 시간 동안 상기 데이터가 복사될 수 있다.
또한, 상기 유휴 시간 동안 상기 서브 작업 페이지의 크기와 같거나 작은 단위로 상기 데이터가 복사될 수 있다.
또한, 상기 차량 제어기 초기화 시 레퍼런스 페이지가 M개의 서브 레퍼런스 페이지로 분할되며, 상기 분할된 각각의 서브 레퍼런스 페이지가 가상의 서브 작업 페이지와 일대일 대응되도록 설정하는 수단을 더 포함할 수 있다.
또한, 상기 RAM 영역에 할당되지 않은 상기 서브 작업 페이지는 상기 일대일 대응되도록 설정된 서브 레퍼런스 페이지를 참조할 수 있다.
또한, 상기 RAM 영역에 할당된 서브 작업 페이지는 상기 다운로드 명령에 의해 변경 가능할 수 있다.
또한, 상기 RAM 영역의 크기는 전체 레퍼런스 페이지 크기보다 작을 수 있다.
또한, 상기 외부 캘리브레이션 장치로부터 다운로드 명령을 제외한 명령이 수신되면 해당 명령을 즉시 수행할 수 있다.
또한, 상기 다운로드 명령에 포함된 데이터 블록이 소정 기준치를 초과하면 Parameter out of range 응답 메시지를 상기 외부 캘리브레이션 장치에 전송할 수 있다.
또한, 상기 확인된 서브 레퍼런스 페이지에 대응되는 서브 작업 페이지가 이미 할당된 경우, 상기 다운로드 명령에 포함된 데이터 블록을 상기 이미 할당된 서브 작업 페이지에 저장할 수 있다.
또한, 이미 처리중인 다운로드 명령이 존재하는지를 확인하는 수단을 더 포함하되, 상기 이미 처리중인 다운로드 명령이 존재하면, Command Processor Busy 응답 메시지를 상기 외부 캘리브레이션 장치에 전송할 수 있다.
또한, 상기 데이터 복사가 완료될 때까지 상기 다운로드 명령에 포함된 데이터 블록을 미리 지정된 버퍼 메모리에 저장할 수 있다.
또한, CAN(Controller Area Network) 통신을 통해 상기 다운로드 명령을 수신할 수 있다.
상기 본 발명의 양태들은 본 발명의 바람직한 실시예들 중 일부에 불과하며, 본원 발명의 기술적 특징들이 반영된 다양한 실시예들이 당해 기술분야의 통상적인 지식을 가진 자에 의해 이하 상술할 본 발명의 상세한 설명을 기반으로 도출되고 이해될 수 있다.
본 발명에 따른 방법 및 장치에 대한 효과에 대해 설명하면 다음과 같다.
첫째, 본 발명은 차량제어기에서의 캘리브레이션 메모리 확장을 위한 메모리 제어 방법 및 그를 위한 장치를 제공하는 장점이 있다.
둘째, 본 발명은 외부 캘리브레이션 요청에 따라 동적으로 Working 페이지를 할당함으로써, 실제 캘리브레이션을 위해 사용 가능한 메모리를 확장하는 것이 가능한 차량 제어기에서의 캘리브레이션 메모리 제어 방법을 제공하는 장점이 있다.
셋째, 본 발명은 차량 제어기에 캘리브레이션을 위해 외부 메모리를 사용하지 않고 마이크로 프로세서 내부 메모리를 사용함으로써 차량 제어기의 원가를 절감할 수 있는 장점이 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
이하에 첨부되는 도면들은 본 발명에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 본 발명에 대한 실시예들을 제공한다. 다만, 본 발명의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시예로 구성될 수 있다.
도 1은 차량 제어기 별 프로그램 및 RAM 크기의 예를 설명하기 위한 도면이다.
도 2는 종래 기술에 따른 차량 제어기에서의 캘리브레이션을 위한 메모리 할당 방법을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 멀티 페이지 캘리브레이션 알고리즘(Multi Page Calibration Algorithm)이 탑재된 차량 제어기의 구조이다.
도 4는 본 발명의 일 실시예에 따른 멀티 페이지 캘리브레이션 알고리즘(Multi Page Calibration Algorithm)의 Working 페이지와 Reference 페이지 사이의 관계를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 차량 제어기에서의 캘리브레이션을 위한 주소 변환 방법을 설명하기 위한 도면이다.
도 6은 본 발명에 적용되는 CAN 캘리브레이션 프로토콜의 동작을 설명하기 위한 도면이다.
도 7은 본 발명에 적용 가능한 마이크로 프로세서 별 TLB 개수를 보여주는 테이블이다.
도 8은 본 발명과 종래 기술의 캘리브레이션 데이터 복사 방법을 비교하기 위한 테이블이다.
도 9는 본 발명에 따른 차량 제어기에서의 캘리브레이션을 위한 RAM 영역 할당 방법을 설명하기 위한 순서도이다.
이하, 본 발명의 실시예들이 적용되는 장치 및 다양한 방법들에 대하여 도면을 참조하여 보다 상세하게 설명한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성 요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 3은 본 발명의 일 실시예에 따른 멀티 페이지 캘리브레이션 알고리즘(Multi Page Calibration Algorithm)이 탑재된 차량 제어기의 구조이다.
도 3을 참조하면, 차량 제어기(ECU:Electic Control Unit, 310)는 CAN(Controller Area Network)을 통해 외부 캘리브레이션 장치(320)과 연동될 수 있다.
차량 제어기(310)는 CAN 캘리브레이션 프로토콜 모듈(CCP(CAN Calibration Protocol) Module, 311) 및 캘리브레이션 메모리 관리 모듈(Calibration Memory Management Module, 312)를 포함하여 구성될 수 있다.
CCP 모듈(311)은 CAN 통신을 통해 외부 캘리브레이션 장치(320)와 CCP 메시지를 송수신할 수 있다. CCP 모듈(311)에 의해 수신된 CCP 메시지는 캘리브레이션 메모리 관리 모듈(312)에 전달되며, 캘리브레이션 메모리 관리 모듈(312)은 CCP 메시지에 따라 동적으로 캘리브레이션에 사용될 메모리를 할당한다.
특히, 캘리브레이션 메모리 관리 모듈(312)은 레퍼런스 페이지(Reference Page, 313)와 작업 페이지(Working Page, 314)를 각각 임의의 M개의 서브 레퍼런스 페이지와 M개의 서브 작업 페이지로 나누고, 외부 캘리브레이션 장치(320)의 요청에 따라 동적으로 레퍼런스 페이지(313)를 위한 작업 페이지(314)를 할당한다.
이때, 작업 페이지(314)에는 레퍼런스 페이지(313)상에 기록된 데이터 중 현재 캘리브레이션을 위한 필요한 데이터가 선택되며, 선택된 데이터가 작업 페이지(314)에 복사된다. 여기서, 캘리브레이션 메모리 관리 모듈(312)은 레퍼런스 페이지(313)상의 어떤 서브 레퍼런스 페이지(313)가 작업 페이지(314)상의 어떤 서브 작업 페이지에 대응되는지에 대한 관계 정보-즉, 주소 매핑 정보-를 유지할 수 있다.
상기한 작업 페이지 생성 작업이 진행되는 동안, 캘리브레이션 메모리 관리 모듈(312)의 상태는 Busy 상태를 유지하며, 상기 작업 페이지 생성 작업이 완료되면 외부 캘리브레이션 장치(320)로부터 수신되는 CCP 메시지를 처리한다.
따라서, 본 발명에 따른 캘리브레이션 메모리 할당 방법은 레퍼런스 페이지 영역과 작업 페이지 영역이 M:M의 관계로 매핑하나 그 중 N(N<M)개만 실제 메모리-예를 들면, RAM-에 할당되므로 필요한 메모리의 크기가 레퍼런스 페이지의 크기보다 작을 수 있다.
도 4는 본 발명의 다른 일 실시예에 따른 멀티 페이지 캘리브레이션 알고리즘(Multi Page Calibration Algorithm)의 작업 페이지와 레퍼런스 페이지 사이의 관계를 설명하기 위한 도면이다.
차량 제어기의 가용한 RAM 크기보다 더 많은 캘리브레이션 데이터를 사용하기 위해서는 사용자가 현재 사용하는 캘리브레이션 데이터만을 RAM상에 동적으로 할당해주는 알고리즘이 필요하다.
본 발명에 따른 멀티 페이지 캘리브레이션 알고리즘(Multi Page Calibration Algorithm)은 도 4에 도시된 바와 같이, 차량 제어기 내에 캘리브레이션 메모리 관리 모듈(400)을 추가하여 레퍼런스 페이지(410)와 작업 페이지(420)의 대응 관계를 각각 M 개의 서브 페이지 간의 대응 관계로 바꾸고, 캘리브레이션 데이터를 위한 RAM(430) 영역을 N개의 서브 페이지를 위한 공간으로 분할한다.
이 때, 가용한 RAM(430)의 크기가 레퍼런스 페이지(410)의 크기보다 작으므로 RAM(430) 영역의 서브 페이지 수 N 은 M보다 작은 값이 된다. CCP 모듈(450)이 인식하는 작업 페이지(420)의 크기를 레퍼런스 페이지(410)의 크기와 동일하게 만들기 위해 캘리브레이션 메모리 관리 모듈(400)은 작업 페이지(420)에 포함된 서브 작업 페이지 중 RAM(430) 영역에 할당되지 않은 서브 작업 페이지가 대응 관계에 있는 서브 레퍼런스 페이지를 참조하도록 전체 작업 페이지(420)를 구성한다.
예를 들어, 도 4를 참조하면, 레퍼런스 페이지(410)와 작업 페이지(420)에 포함된 서브 페이지의 개수가 8-즉, M=8-이고, RAM(430) 영역에 포함된 서브 페이지의 개수가 6-즉, N=6-이라 가정하자. 또한, 임의의 서브 작업 페이지와 RAM(430)상의 해당 서브 작업 페이지에 대응되어 할당된 서브 페이지 사이의 관계를 (서브 작업 페이지 번호, RAM 서브 페이지 번호)와 같이 표기하기로 한다.
이 경우, 도 4에 도시된 작업 페이지(420)와 RAM(430) 사이의 메모리 할당 관계는:
(W1,M2), (W4,M1), (W6,M6)
와 같이 표기될 수 있다.
RAM(430)에 할당되지 않은 서브 작업 페이지는 서브 레퍼런스 페이지에 할당되며, 이 관계 또한 (서브 작업 페이지 번호, 서브 레퍼런스 페이지 번호)와 같이 표기하기로 한다.
이 경우, 도 4에 도시된 작업 페이지(420)와 레퍼런스 페이지(410) 사이의 메모리 할당 관계는:
(W2,R2), (W3,R3), (W5,R5), (W7,R7), (W8,R8)
와 같이 표기될 수 있다.
따라서 CCP 모듈(450)이 인식하는 전체 작업 페이지(450)는 아래의 서브 페이지들로 구성된다.
(M2, R2, R3, M1, R5, M6, R7, R8)
상기한 레퍼런스 페이지(410), 작업 페이지(420) 및 RAM(430) 사이의 서브 페이지 매핑 관계는 캘리브레이션 메모리 관리 모듈(400)에 의해 추상화되므로 CCP 모듈(450)은 작업 페이지(420)의 크기가 레퍼런스 페이지(410) 크기와 동일하고, 서로 1:1 대응 관계인 것만을 인식한다. 따라서, CCP 모듈(450)에 의해 인식되는 메모리 영역은 도면 번호 460 점선 내부와 같다. 또한, CCP 모듈(450)은 레퍼런스 페이지(410)와 작업 페이지(420)가 복수의 서브 페이지로 구성되어 있음을 인지하지 못하므로, 서브 페이지의 구현 내용을 고려할 필요가 없다.
도 5는 본 발명의 일 실시예에 따른 차량 제어기에서의 캘리브레이션을 위한 주소 변환 방법을 설명하기 위한 도면이다.
차량 제어 프로그램은 차량 제어기상에서 별도 로더(loader) 구동이 없이 실행되고, 변수들에 대한 주소 값은 롬 생성 과정 중 링킹 단계에서 절대 주소(Absolute Address) 값이 할당된다. 차량 제어 프로그램의 캘리브레이션 데이터는 링킹 시 레퍼런스 페이지 영역에 할당된다. 따라서, 차량 제어 프로그램은 캘리브레이션 데이터를 불러오거나 저장(Load/Store)할 때 레퍼런스 페이지 내의 주소 값을 사용하게 된다.
즉, 차량 제어 프로그램 코드에서 캘리브레이션 데이터를 불러오거나 저장 하기 위해서는 단순히 레퍼런스 페이지에 할당 된 작업 페이지의 변수 값을 변경하는 것 만으로는 충분하지 않으며, 코드에서 참조하는 데이터의 주소 또한 레퍼런스 페이지 내의 주소가 아닌 작업 페이지 영역 내의 주소로 변환되어야 한다.
마이크로 프로세서는 멀티 프로그래밍, 프로세스 간 메모리 공유 및 보호, 지연 로딩 등을 지원하기 위해 주소 변환 기능을 사용하며, 이 때 마이크로 프로세서에 의해서 생성되는 주소를 논리 메모리 주소(Logical Address), 메모리의 주소 레지스터에 사용되는 주소를 물리 주소(Physical Address)라 한다.
마이크로 프로세서가 Load, Store 명령 등을 통해 메모리 영역을 참조할 때, 본 발명에 따른 캘리브레이션 메모리 관리 모듈(400)은 도 5에 도시된 바와 같이 마이크로 프로세서의 논리 주소를 실제 메모리의 물리 주소로 변환하여 준다.
따라서, 캘리브레이션 데이터의 참조에 사용되는 논리 주소는 레퍼런스 페이지의 주소이다. 캘리브레이션 메모리 관리 모듈(400)의 주소 변환 기능을 통해 서브 레퍼런스 페이지 영역의 논리 주소 값이 서브 작업 페이지 영역의 주소 값으로 변환된다. 이를 통해, 레퍼런스 페이지와 작업 페이지 간의 주소 매핑 관계가 구현될 수 있다.
또한, 캘리브레이션 메모리 관리 모듈(400)은 외부 캘리브레이션 장치(320)의 요청에 따라 작업 페이지가 변경되어야 하는 경우, 해당 논리 주소를 대응되는 RAM 영역의 물리 주소로 변환함으로써 해당 논리 주소에 대응되는 캘리브레이션 데이터의 값을 변경하고 차량의 제어 프로그램에 반영되도록 제어할 수 있다.
도 6은 본 발명에 적용되는 CAN 캘리브레이션 프로토콜의 동작을 설명하기 위한 도면이다.
Can Calibration Protocol(CCP)은 CANape, INCA 등과 같은 Master 모듈과 CAN 통신을 사용하여 차량 제어기로부터 데이터를 획득하거나 차량 제어기상의 특정 제어 인자 및 프로그래밍 코드를 EEPROM 또는 FLASH 메모리에(로) 읽거나 쓰기 위한 표준 통신 규약이다. 차량 제어기의 캘리브레이션을 위한 외부 캘리브레이션 장치(CCP Master, 610)와 차량 제어기(CCP Slave, 650)는 Master-Slave 관계로 동작된다.
Master인 외부 캘리브레이션 장치(610)의 CCP 구동부(CCP Driver, 611)는 Slave인 차량 제어기(650)의 명령 처리부(Command Processor, 651)에게 CRO(Command Receive Object, 620) 메시지를 통해 명령 및 관련 인자들을 전달하고, Slave인 차량 제어기(650)의 명령 처리부(651)는 해당 명령을 수행한 후, DTO(Data Transmission Object, 630) 메시지를 통해 해당 명령에 대응되는 결과를 생성하여 Master인 외부 캘리브레이션 장치(610)의 CCP 구동부(611)에 전송한다. 여기서, DTO(630) 메시지는 Slave(650)가 Master(610)에게 명령에 대한 응답 메시지(Command Return Message) 또는 이벤트 메시지 또는 데이터 획득 메시지(Data Acquisition Message)를 전송하기 위해 사용되는 메시지를 의미한다.
만약, Master(610)로부터 수신된 제어 명령에 따라 Slave가 주기적 또는 빠르게 데이터를 Master(610)에 전송해야 하는 경우, Slave(650)의 데이터 획득 처리부(Data Acquisition Processor, 652)는 DTO(640) 메시지를 통해 획득된 데이터를 Master(610)에 전송할 수도 있다.
CCP는 차량 제어기의 데이터 획득과 수정을 위해 필수 명령어 11개와 구현 여부의 선택이 가능한 명령어 17개로 구성 되어 있다. 이 중 Calibration 데이터 값을 변경하기 위해 사용되는 명령어는 DNLOAD, DNLOAD_6이며, SET MTA(Memory Transfer Address) 명령으로 사용될 주소 값을 전달한다. 여기서, Master(610)가 Slave(650)에 전송하는 SET MTA 메시지에는 전송 주소 위치(Transfer Address Locations(Pointers))를 식별하기 위한 MTA Number가 포함된다. 특히, 레퍼런스 페이지와 작업 페이지 간의 전환은 SELECT CAL PAGE 명령을 통해 이루어진다.
CCP 모듈(311)을 차량 제어기(310)상에서 구동되는 가상의 프로세서로 생각하면, DNLOAD 명령은 논리 주소를 통한 캘리브레이션 데이터의 Store 혹은 Write 명령으로 생각할 수 있다. 따라서 DNLOAD 명령에서 사용하는 서브 레퍼런스 페이지의 논리 주소가 해당 영역에 할당 된 서브 작업 페이지의 물리 주소로 변경되도록 캘리브레이션 메모리 관리 모듈(312)의 주소 변환 기능을 활용하면 본 발명에 따른 Multi Page Calibration Algorithm이 구현될 수 있다.
도 7은 본 발명에 적용 가능한 마이크로 프로세서 별 TLB 개수를 보여주는 테이블이다.
논리 주소를 물리 주소로 변환하기 위해서는 논리 주소와 물리 주소간의 대응 관계 정보를 갖는 데이터 구조가 필요하며 이를 페이지 테이블(Page Table)이라고 한다.
그러나, 32bit 마이크로 프로세서의 논리 주소 영역을 4KB 페이지로 나눌 경우 페이지 테이블의 항목이 100만 개가 넘어가므로, RAM 용량의 제약이 큰 차량용 제어기에서는 TLB(Translation Lookaside Buffer)만을 활용하거나 TLB-miss 예외 처리를 활용하는 것이 바람직하다.
TLB는 가장 최근에 사용된 주소 변환 정보를 기억해두기 위한 일종의 캐시 메모리이다. 페이지 테이블의 정보를 사용해 주소 변환을 행할 때 페이지 테이블의 정보를 TLB에 저장해둘 수 있다.
이렇게 저장된 TLB는 다음 주소 변환 시에 우선적으로 사용 된다. 차량 제어기에서 사용하는 모든 영역에 대한 주소 변환이 TLB를 통해 이루어지도록 하면 별도의 페이지 테이블을 생성할 필요가 없다.
도 7을 참조하면, 환경차 제어기에 탑재되는 마이크로 프로세서 별 TLB 항목(Entry) 개수를 보여준다.
TLB 항목 중 플래시 메모리, S-RAM, Memory Mapped-IO 등을 위해 이미 할당된 항목을 제외한 나머지 항목은 본 발명에 따른 Multi Page Calibration Algorithm을 수행하기 위한 주소 변환에 사용될 수 있다. 이때, 주소 변환은 논리 주소 값을 통해 이루어지므로 페이징에 필요한 TLB 항목의 개수는 M개이며, 추가로 서브 레퍼런스 페이지와 서브 작업 페이지 간의 데이터 복사를 위해 1개의 TLB 항목이 더 사용될 수 있다.
즉, 각 서브 페이지의 크기를 동일하게 사용할 경우, 각각의 서브 레퍼런스 페이지와 서브 작업 페이지 사이의 대응 관계마다 하나의 TLB 항목이 필요하다.
따라서, M개의 TLB 항목을 통해 주소 변환할 수 있는 영역의 크기-이하, 주소 변환 영역 크기이라 명함-는 M과 서브 페이지의 크기의 곱으로 계산될 수 있다. 계산된 주소 변환 영역 크기는 전체 레퍼런스 페이지의 크기에 해당된다.
도 8은 본 발명과 종래 기술의 캘리브레이션 데이터 복사 방법을 비교하기 위한 테이블이다.
Multi Page Calibration Algorithm에서는 RAM 영역이 특정 서브 작업 페이지에 할당되기 전까지 해당 RAM 영역에 어느 서브 작업 페이지가 할당되었는지 알 수 없다. 즉, 기존의 일반적인 방법처럼 차량 제어기의 초기화 단계에서 레퍼런스 페이지의 데이터를 RAM 영역(작업 페이지)에 복사할 수 없다.
따라서, 데이터의 복사는 해당 서브 페이지에 대한 변경 요청 이후에 수행될 수 있으며, 데이터 복사가 진행되는 동안에는 해당 RAM 영역의 주소 변환을 위한 데이터 복사 전용 TLB 항목이 사용될 수 있다.
일반적으로, 서브 페이지의 크기가 커질 수록 데이터 복사에 필요한 시간이 길어진다. 본 발명의 일 실시예에 따른 데이터의 복사는 스케쥴러(Scheduler)의 유휴 시간(Idle Task) 동안 서브 페이지의 크기와 같거나 더 작은 크기 단위로 이루어질 수 있다. 이를 통해, 차량 제어기의 응답 지연은 최소화될 수 있다.
데이터 복사가 진행되는 동안에도 차량의 제어는 정상적으로 이루어져야 한다. 데이터 복사가 완료될 때까지 해당 RAM 영역에는 기 설정된 초기값 또는 쓰레기 값(Garbage Value)이 존재할 수 있으므로, 데이터 복사가 완료될 때까지 쓰레기 값이 사용되지 않도록 제어되어야만 한다.
따라서, 데이터 복사가 완료되기 전까지는 서브 작업 페이지 주소가 서브 레퍼런스 페이지 주소로 변환되어 레퍼런스 페이지에 기록된 데이터가 사용되며, 해당 RAM 영역에 데이터 복사가 완료된 이후에는 RAM 영역의 해당 서브 작업 페이지에 기록된 데이터가 사용될 수 있다.
서브 레퍼런스 페이지에 대응되는 RAM 영역의 할당은 CCP의 DNLOAD 명령에 의해 개시된다. 이때, 차량 제어기(650)상에서의 DNLOAD 명령 수행은 RAM 영역에 해당 데이터 복사가 완료된 후에 이루어져야 한다. 이 때, 데이터 복사는 차량 제어기(650)의 유휴 시간에 이루어지므로 데이터 복사가 완료될 때까지 DNLOAD 명령에 의해 전달된 데이터를 보관하여야 하며 이를 위한 버퍼 메모리가 요구된다.
만약, 이전 DNLOAD 명령에 따라 버퍼 메모리와 TLB 자원이 이미 사용되고 있는 상태에서 새로운 DNLOAD 명령이 수신된 경우, 차량 제어기(650)의 명령 처리부(651)는 자원 할당이 불가능한 바쁜(Busy) 상태임을 알리는 Commnand Processor Busy 메시지를 외부 캘리브레이션 장치(610)에 전송할 수 있다.
도 8의 Table. 3은 기존 방식과 본 발명에 따른 Multi Page Calibration Algorithm의 사이의 주요 차이점을 보여준다.
Table. 3을 참조하면, 레퍼런스 페이지에서 작업 페이지로의 데이터 복사 시점에 있어서, 기존 기술은 차량 제어기의 초기화 단계에서 이루어지나, 본 발명은 서브 페이지 할당 요청에 따라 이루어진다.
또한, 레퍼런스 페이지에서 작업 페이지로의 데이터 복사 영역에 있어서, 기존 기술은 레퍼런스 페이지 영역 전체를 작업 페이지에 복사하나, 본 발명은 서브 페이지 단위로 데이터 복사가 이루어진다.
또한, 레퍼런스 페이지에서 작업 페이지로의 데이터 복사 단위에 있어서, 기존 기술은 레퍼런스 페이지 영역 전체를 한번에 복사하나, 본 발명은 제어기의 유휴 시간에 서브 페이지 크기 이하로 복사가 이루어진다.
도 9는 본 발명에 따른 차량 제어기에서의 캘리브레이션을 위한 RAM 영역 할당 방법을 설명하기 위한 순서도이다.
도 9를 참조하면, 차량 제어기(650)는 외부 캘리브레이션 장치(610)로부터 CCP 메시지가 수신되면, DNLOAD 명령인지 여부를 확인한다(S901 내지 S903).
확인 결과, DNLOAD 명령이면, 차량 제어기(650)는 기 수신된 SET MTA 명령에 따라 설정된 MTA0(Memory Transfer Address Number 0)의 시작 주소를 기반으로 현재 MTA0 주소가 DNLOAD 명령에 포함된 데이터 블록을 저장할 수 있는 유효한 주소인지 여부를 확인한다(S905). 일 예로, DNLOAD 명령에 포함된 데이터 블록의 크기가 5바이트를 초과하는 경우, 차량 제어기(650)는 Parameter out of range 응답 메시지를 생성하여 외부 캘리브레이션 장치(610)에 전송할 수 있다(S925).
반면, 상기한 905 단계의 확인 결과, 유효한 주소이면, 차량 제어기(650)는 DNLOAD 명령에 포함된 데이터 블록을 해당 메모리 영역에 버퍼링하고, 다운로드 요청된 MTA0에 기반하여 가상의 서브 레퍼런스 페이지 번호를 확인할 수 있다.
연이어, 차량 제어기(650)는 현재 처리중인 DNLOAD 명령이 있는지 확인한다(S907).
확인 결과, 현재 처리중인 DNLOAD 명령이 존재하면, 차량 제어기(650)는 Command Processor Busy 응답 메시지를 생성하여 외부 캘리브레이션 장치(610)에 전송한다(S927).
상기한 907 단계의 확인 결과, 현재 처리중인 DNLOAD 명령이 존재하지 않는 경우, 상기 확인된 서브 레퍼런스 페이지에 대응하여 서브 작업 페이지가 할당되지 않았는지 확인한다(S909).
확인 결과, 서브 작업 페이지가 할당되지 않은 경우, 차량 제어기(650)는 상기 확인된 서브 레퍼런스 페이지에 대응되는 서브 작업 페이지를 RAM에 할당 가능한지 여부를 확인한다(S911). 여기서, 확인 결과, RAM에 할당 가능하지 않은 경우, 차량 제어기(650)는 cal. data init. Request 응답 메시지를 외부 캘리브레이션 장치(610)에 전송할 수 있다(S929).
상기 911 단계의 확인 결과, RAM에 할당 가능하면, 차량 제어기(650)는 상기 확인된 서브 레퍼런스 페이지에 대응되는 서브 작업 페이지를 RAM에 할당한다(S913).
연이어, 차량 제어기(650)는 상기 확인된 서브 레퍼런스 페이지에 저장된 데이터를 할당된 서브 작업 페이지에 복사한다(S915).
이 때, 차량 제어기(650)는 유휴 시간 동안 데이터 복사를 수행하며, 데이터 복사가 완료되면, 상기 버퍼링된 데이터 블록을 독출하여 DNLOAD 명령을 수행한다(S917 내지 S919).
이 후, DNLOAD 명령이 정상적으로 수행 완료되면, 차량 제어기(650)는 DNLOAD 명령이 정상적으로 수행되었음을 알리는 No Error 메시지를 외부 캘리브레이션 장치(610)에 전송한다(S921).
상기한 909 단계에서, 상기 확인된 서브 레퍼런스 페이지에 대응되는 서브 작업 페이지가 이미 할당된 경우, 차량 제어기(650)는 상기 버퍼링된 데이터 블록을 독출하여 DNLOAD 명령을 수행할 수 있다.
상기한 바와 같이, 차량 제어기(650)가 초기화 될 때 각 서브 레퍼런스 페이지 대응되는 서브 작업 페이지는 서브 레퍼런스 페이지 자신으로 설정된다. 외부 캘리브레이션 장치(650)의 DNLOAD 명령에 따라 서브 작업 페이지의 내용이 변경되어야 하는 경우, 차량 제어기(650)는 서브 작업 페이지에 RAM 영역이 할당되었는지 여부를 확인하고, 확인 결과에 따라 해당 서브 작업 페이지에 대응되는 RAM 영역을 할당할 수 있다.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다.
따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
320: 외부 캘리브레이션 장치 400: 캘리브레이션 메모리 관리 모듈
410: 레퍼런스 페이지 420: 작업 페이지
430: RAM 450: CCP 모듈
470: 차량 제어기

Claims (28)

  1. 외부 캘리브레이션 장치와 연동되는 차량 제어기에서의 캘리브레이션 메모리 제어 방법에 있어서,
    상기 외부 캘리브레이션 장치로부터 다운로드 명령을 수신하는 단계;
    상기 다운로드 명령에 대응되는 서브 레퍼런스 페이지를 확인하는 단계;
    상기 확인된 서브 레퍼런스 페이지에 대응되는 서브 작업 페이지가 할당되었는지 여부를 확인하는 단계;
    상기 확인 결과, 상기 서브 작업 페이지가 할당되지 않은 경우, 상기 확인된 서브 레퍼런스 페이지에 대응되는 서브 작업 페이지를 RAM 영역에 할당하는 단계;
    상기 할당된 서브 작업 페이지에 상기 확인된 서브 레퍼런스 페이지에 저장된 데이터를 복사하는 단계; 및
    상기 데이터 복사가 완료되면, 상기 다운로드 명령에 포함된 데이터 블록을 상기 할당된 서브 작업 페이지의 일측에 저장하는 단계
    를 포함하는, 캘리브레이션 메모리 제어 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 데이터 복사는 상기 차량 제어기에 탑재된 스케쥴러(Scheduler)의 유휴 시간 동안 수행되는, 캘리브레이션 메모리 제어 방법.
  4. 제3항에 있어서,
    상기 유휴 시간 동안의 상기 데이터 복사는 상기 서브 작업 페이지의 크기와 같거나 작은 단위로 수행되는 특징으로 하는, 캘리브레이션 메모리 제어 방법.
  5. 제1항에 있어서,
    상기 차량 제어기 초기화 시 레퍼런스 페이지가 M개의 서브 레퍼런스 페이지로 분할되며, 상기 분할된 각각의 서브 레퍼런스 페이지가 가상의 서브 작업 페이지와 일대일 대응되도록 설정되는, 캘리브레이션 메모리 제어 방법.
  6. 제5항에 있어서,
    상기 RAM 영역에 할당되지 않은 상기 서브 작업 페이지는 상기 일대일 대응되도록 설정된 서브 레퍼런스 페이지를 참조하는, 캘리브레이션 메모리 제어 방법.
  7. 제1항에 있어서,
    상기 RAM 영역의 크기는 전체 레퍼런스 페이지 크기보다 작은 것을 특징으로 하는, 캘리브레이션 메모리 제어 방법.
  8. 제1항에 있어서,
    상기 외부 캘리브레이션 장치로부터 다운로드 명령을 제외한 명령이 수신되면 해당 명령을 즉시 수행하는, 캘리브레이션 메모리 제어 방법.
  9. 제1항에 있어서,
    상기 다운로드 명령에 포함된 데이터 블록이 소정 기준치를 초과하면 Parameter out of range 응답 메시지를 상기 외부 캘리브레이션 장치에 전송하는, 캘리브레이션 메모리 제어 방법.
  10. 제1항에 있어서,
    상기 확인된 서브 레퍼런스 페이지에 대응되는 서브 작업 페이지가 이미 할당된 경우, 상기 다운로드 명령에 포함된 데이터 블록을 상기 이미 할당된 서브 작업 페이지에 저장하는, 캘리브레이션 메모리 제어 방법.
  11. 제1항에 있어서,
    이미 처리중인 다운로드 명령이 존재하는지를 확인하는 단계를 더 포함하되, 상기 이미 처리중인 다운로드 명령이 존재하면, Command Processor Busy 응답 메시지를 상기 외부 캘리브레이션 장치에 전송하는, 캘리브레이션 메모리 제어 방법.
  12. 제1항에 있어서,
    상기 데이터 복사가 완료될 때까지 상기 다운로드 명령에 포함된 데이터 블록을 미리 지정된 버퍼 메모리에 저장하는 단계를 더 포함하는, 캘리브레이션 메모리 제어 방법.
  13. 제1항에 있어서,
    CAN(Controller Area Network) 통신을 통해 상기 다운로드 명령이 수신되는, 캘리브레이션 메모리 제어 방법.
  14. 제 1항, 제3항 내지 제13항 중 어느 한 항에 기재된 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  15. 외부 캘리브레이션 장치와 연동되는 차량 제어기에 있어서,
    상기 외부 캘리브레이션 장치로부터 다운로드 명령을 수신하는 수단;
    상기 다운로드 명령에 대응되는 서브 레퍼런스 페이지를 확인하는 수단;
    상기 확인된 서브 레퍼런스 페이지에 대응되는 서브 작업 페이지가 할당되었는지 여부를 확인하는 수단;
    상기 확인 결과, 상기 서브 작업 페이지가 할당되지 않은 경우, 상기 확인된 서브 레퍼런스 페이지에 대응되는 상기 서브 작업 페이지를 RAM 영역에 할당하는 수단;
    상기 할당된 서브 작업 페이지에 상기 확인된 서브 레퍼런스 페이지에 저장된 데이터를 복사하는 수단; 및
    상기 데이터 복사가 완료되면, 상기 다운로드 명령에 포함된 데이터 블록을 상기 할당된 서브 작업 페이지의 일측에 저장하는 수단
    을 포함하는, 차량 제어기.
  16. 삭제
  17. 제15항에 있어서,
    상기 차량 제어기에 탑재된 스케쥴러(Scheduler)의 유휴 시간 동안 상기 데이터를 복사하는, 차량 제어기.
  18. 제17항에 있어서,
    상기 유휴 시간 동안 상기 서브 작업 페이지의 크기와 같거나 작은 단위로 상기 데이터를 복사하는, 차량 제어기.
  19. 제15항에 있어서,
    상기 차량 제어기 초기화 시 레퍼런스 페이지가 M개의 서브 레퍼런스 페이지로 분할되며, 상기 분할된 각각의 서브 레퍼런스 페이지가 가상의 서브 작업 페이지와 일대일 대응되도록 설정하는 수단을 더 포함하는, 차량 제어기.
  20. 제19항에 있어서,
    상기 RAM 영역에 할당되지 않은 상기 서브 작업 페이지는 상기 일대일 대응되도록 설정된 서브 레퍼런스 페이지를 참조하는, 차량 제어기.
  21. 제15항에 있어서,
    상기 RAM 영역에 할당된 서브 작업 페이지는 상기 다운로드 명령에 의해 변경 가능한 것을 특징으로 하는, 차량 제어기.
  22. 제15항에 있어서,
    상기 RAM 영역의 크기는 전체 레퍼런스 페이지 크기보다 작은 것을 특징으로 하는, 차량 제어기.
  23. 제15항에 있어서,
    상기 외부 캘리브레이션 장치로부터 다운로드 명령을 제외한 명령이 수신되면 해당 명령을 즉시 수행하는, 차량 제어기.
  24. 제15항에 있어서,
    상기 다운로드 명령에 포함된 데이터 블록이 소정 기준치를 초과하면 Parameter out of range 응답 메시지를 상기 외부 캘리브레이션 장치에 전송하는, 차량 제어기.
  25. 제15항에 있어서,
    상기 확인된 서브 레퍼런스 페이지에 대응되는 서브 작업 페이지가 이미 할당된 경우, 상기 다운로드 명령에 포함된 데이터 블록을 상기 이미 할당된 서브 작업 페이지에 저장하는, 차량 제어기.
  26. 제15항에 있어서,
    이미 처리중인 다운로드 명령이 존재하는지를 확인하는 수단을 더 포함하되, 상기 이미 처리중인 다운로드 명령이 존재하면, Command Processor Busy 응답 메시지를 상기 외부 캘리브레이션 장치에 전송하는, 차량 제어기.
  27. 제15항에 있어서,
    상기 데이터 복사가 완료될 때까지 상기 다운로드 명령에 포함된 데이터 블록을 미리 지정된 버퍼 메모리에 저장하는, 차량 제어기.
  28. 제15항에 있어서,
    CAN(Controller Area Network) 통신을 통해 상기 다운로드 명령을 수신하는, 차량 제어기.
KR1020140153652A 2014-11-06 2014-11-06 차량제어기 캘리브레이션 메모리 제어 방법 및 장치 KR101603547B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020140153652A KR101603547B1 (ko) 2014-11-06 2014-11-06 차량제어기 캘리브레이션 메모리 제어 방법 및 장치
US14/639,095 US10152282B2 (en) 2014-11-06 2015-03-04 Calibration memory control method and apparatus of electronic control unit
DE102015204990.6A DE102015204990B4 (de) 2014-11-06 2015-03-19 Kalibrationsspeichersteuerverfahren und Vorrichtung einer elektronischen Steuereinheit
CN201510202072.9A CN106155918B (zh) 2014-11-06 2015-04-24 电子控制单元的校准存储器控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140153652A KR101603547B1 (ko) 2014-11-06 2014-11-06 차량제어기 캘리브레이션 메모리 제어 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101603547B1 true KR101603547B1 (ko) 2016-03-15

Family

ID=55542326

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140153652A KR101603547B1 (ko) 2014-11-06 2014-11-06 차량제어기 캘리브레이션 메모리 제어 방법 및 장치

Country Status (4)

Country Link
US (1) US10152282B2 (ko)
KR (1) KR101603547B1 (ko)
CN (1) CN106155918B (ko)
DE (1) DE102015204990B4 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102153403B1 (ko) * 2019-07-30 2020-09-09 현대오트론 주식회사 데이터 캘리브레이션을 위한 제어 장치, 메모리 디바이스 및 제어 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3094105B1 (fr) * 2019-03-22 2021-02-12 Psa Automobiles Sa Procédé et dispositif de dimensionnement d’une mémoire d’un calculateur
CN110166337A (zh) * 2019-05-06 2019-08-23 万向钱潮股份有限公司 一种基于ccp协议的标定通信方法
CN110515373B (zh) * 2019-09-29 2020-12-22 潍柴动力股份有限公司 Ecu数据刷写的方法及装置
CN113805559A (zh) * 2020-06-17 2021-12-17 北京新能源汽车股份有限公司 一种控制参数处理方法、装置及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005296A (ja) * 2002-06-03 2004-01-08 Motorola Inc 電子制御装置
KR20110018605A (ko) * 2009-08-18 2011-02-24 삼성전자주식회사 자동 백업기능을 갖는 저장장치
KR20120058878A (ko) * 2010-11-30 2012-06-08 주식회사 케피코 차량용 린 통신 모듈을 이용한 캘리브레이션 툴 제어장치 및 그 제어방법
KR20130117077A (ko) * 2012-04-17 2013-10-25 (주)테너지 차량용 전자 제어 장치의 동작 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505105B2 (en) * 2001-01-05 2003-01-07 Delphi Technologies, Inc. Electronic control unit calibration
JP2003131885A (ja) 2001-10-24 2003-05-09 Denso Corp 車載電子制御装置のプログラム書込システム
JP3997948B2 (ja) 2003-05-22 2007-10-24 トヨタ自動車株式会社 車両識別コード記憶装置
JP2007240436A (ja) * 2006-03-10 2007-09-20 Denso Corp 車両診断システム
JP4609381B2 (ja) * 2006-06-14 2011-01-12 株式会社デンソー 異常監視用プログラム、記録媒体及び電子装置
US8041529B2 (en) * 2007-02-09 2011-10-18 Robert Bosch Gmbh Changing parameters in a tested system using virtual working pages
JP5045307B2 (ja) 2007-08-27 2012-10-10 トヨタ自動車株式会社 マルチコアシステム、電子制御ユニット、モータecu、制御システム、命令実行方法
US20090319744A1 (en) * 2008-06-20 2009-12-24 Mediatek Inc. Digital Television, Memory Controller, and Method for Controlling Access of a Memory Device
CN101369153A (zh) * 2008-08-13 2009-02-18 奇瑞汽车股份有限公司 汽车电子控制器软件can线烧写的控制方法
JP2011100416A (ja) 2009-11-09 2011-05-19 Denso Corp 車載電子制御装置およびメモリ制御方法
CN202049387U (zh) * 2010-11-10 2011-11-23 联合汽车电子有限公司 Ecu中ccp标定装置
KR101685587B1 (ko) 2010-12-20 2016-12-12 콘티넨탈 오토모티브 시스템 주식회사 메모리의 크기 감지 방법 및 이에 적용되는 장치
JP5644707B2 (ja) 2011-07-20 2014-12-24 株式会社デンソー 電子制御装置及び制御システム
JP5547701B2 (ja) * 2011-09-21 2014-07-16 日立オートモティブシステムズ株式会社 自動車用電子制御装置
KR20150076846A (ko) * 2013-12-27 2015-07-07 기아자동차주식회사 전자제어유닛의 데이터 수집 시스템 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005296A (ja) * 2002-06-03 2004-01-08 Motorola Inc 電子制御装置
KR20110018605A (ko) * 2009-08-18 2011-02-24 삼성전자주식회사 자동 백업기능을 갖는 저장장치
KR20120058878A (ko) * 2010-11-30 2012-06-08 주식회사 케피코 차량용 린 통신 모듈을 이용한 캘리브레이션 툴 제어장치 및 그 제어방법
KR20130117077A (ko) * 2012-04-17 2013-10-25 (주)테너지 차량용 전자 제어 장치의 동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102153403B1 (ko) * 2019-07-30 2020-09-09 현대오트론 주식회사 데이터 캘리브레이션을 위한 제어 장치, 메모리 디바이스 및 제어 방법

Also Published As

Publication number Publication date
CN106155918A (zh) 2016-11-23
DE102015204990A1 (de) 2016-05-12
CN106155918B (zh) 2020-02-11
US10152282B2 (en) 2018-12-11
DE102015204990B4 (de) 2021-04-01
US20160133304A1 (en) 2016-05-12

Similar Documents

Publication Publication Date Title
KR101603547B1 (ko) 차량제어기 캘리브레이션 메모리 제어 방법 및 장치
US8788787B2 (en) Systems, methods and architecture for facilitating software access to acceleration technology
US10078453B1 (en) Storage system, computer program product, and method for managing a hybrid memory device system
CN1869915B (zh) 提供读取操作硬件加速的存储卡
US11334283B2 (en) Method for providing application data of at least one application executable on a control unit of a vehicle, method for calibrating a control unit, control unit and evaluation unit
US20080002469A1 (en) Non-volatile memory
US20170269870A1 (en) Memory controller, nonvolatile storage device, nonvolatile storage system, and memory control method
CN112445729B (zh) 操作地址确定方法、PCIe系统、电子设备及存储介质
CN105094691A (zh) 一种数据操作的方法、设备和系统
CN105094742A (zh) 一种写数据的方法和设备
CN116737117A (zh) 基于Autosar架构的模型开发方法
CN109086006B (zh) 一种数据读取的方法以及相关装置
US10042648B2 (en) Memory system, electric device, and information processing device
EP3819771B1 (en) Data processing method and device, apparatus, and system
EP3238075A1 (en) Method for accessing a number of slave devices with registers by a master device over a network
JP5417303B2 (ja) 仮想計算機システム及びそのインストール方法
CN105868129B (zh) 嵌入式系统标定时工作页和参考页切换方法
CN112905234B (zh) 处理装置与其数据存取方法
KR101575258B1 (ko) 차량 데이터 제어 방법 및 그 장치
JP7072697B1 (ja) 電子制御装置、電子制御装置の試験装置、及び電子制御装置の試験方法
CHEN et al. USB Memory Design for Network Control Node Based on DSP
CN107688543B (zh) 一种基于eeprom的数据管理方法及装置
CN112367206A (zh) 配置数据处理方法、装置和系统
CN116974979A (zh) 在嵌入式存储器上部署文件系统的方法、系统和电路
KR101665667B1 (ko) 낸드 플래시 메모리 제어장치

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190227

Year of fee payment: 4