KR20200087557A - 에러 복구 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 상기 마이크로 컨트롤러를 포함하는 배터리 장치 - Google Patents

에러 복구 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 상기 마이크로 컨트롤러를 포함하는 배터리 장치 Download PDF

Info

Publication number
KR20200087557A
KR20200087557A KR1020190003998A KR20190003998A KR20200087557A KR 20200087557 A KR20200087557 A KR 20200087557A KR 1020190003998 A KR1020190003998 A KR 1020190003998A KR 20190003998 A KR20190003998 A KR 20190003998A KR 20200087557 A KR20200087557 A KR 20200087557A
Authority
KR
South Korea
Prior art keywords
application
mcu
key value
flash memory
flash
Prior art date
Application number
KR1020190003998A
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 KR1020190003998A priority Critical patent/KR20200087557A/ko
Priority to EP20738932.1A priority patent/EP3848810A4/en
Priority to US17/279,862 priority patent/US11899951B2/en
Priority to PCT/KR2020/000511 priority patent/WO2020145742A1/ko
Priority to JP2021513394A priority patent/JP7207818B2/ja
Priority to CN202080005416.6A priority patent/CN112771503A/zh
Publication of KR20200087557A publication Critical patent/KR20200087557A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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
    • 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/0751Error or fault detection not based on redundancy
    • 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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • 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/0658Controller construction arrangements
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J7/00Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries
    • H02J7/0063Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries with circuits adapted for supplying loads from the battery
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J9/00Circuit arrangements for emergency or stand-by power supply, e.g. for emergency lighting
    • H02J9/002Circuit arrangements for emergency or stand-by power supply, e.g. for emergency lighting in which a reserve is maintained in an energy source by disconnecting non-critical loads, e.g. maintaining a reserve of charge in a vehicle battery for starting an engine
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator

Abstract

마이크로 컨트롤러 유닛(Micro Controller Unit, MCU)은, 플래시 메모리를 포함하고, 상기 플래시 메모리는, 상기 MCU의 파워-온 시에, 어플리케이션의 키 값을 확인하고, 상기 어플리케이션 키 값이 유효하지 않으면 재프로그래밍이 가능한 모드로 진입할 수 있다.

Description

에러 복구 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 상기 마이크로 컨트롤러를 포함하는 배터리 장치{ERROR RESTORATION METHOD AND MICRO CONTROLLER UNIT USING THE SAME, AND BATTERY DEVICE COMPRSING THE MICRO CONTROLLER UNIT}
본 개시는 에러 복구 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 상기 마이크로 컨트롤러를 포함하는 배터리 장치에 관한 것이다.
어플리케이션 키(application key) 영역을 지울(erase) 때 또는 어플리케이션 키를 기입(write)할 때에 의도치 않은 파워 오프(power off) 등으로 인한 메모리 깨짐 현상이 발생할 수 있다. 그러면, 추후 어플리케이션 키를 읽을 때 발생하는 에러 정정 코드(Error Correction Code, ECC) 에러에 의한 CPU 코어 예외(core exception)가 발생하여 소프트웨어 리셋(software reset)이 발생한다.
이로 인해 초기 파워 온(power on)과 유효 키(valid key)를 확인 하기 위한 어플리케이션 키 영역을 읽는 과정 사이에 무한 반복이 발생한다. 그러면 어플리케이션과 플래시 부트로더(Flash BootLoader, FBL) 모두 수행되지 않은 상황에 빠지게 된다.
플래시 메모리의 에러를 복구할 수 있는 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 마이크로 컨트롤러 유닛을 포함하는 배터리 장치를 제공하고자 한다.
발명의 한 특징에 따른 마이크로 컨트롤러 유닛(Micro Controller Unit, MCU)은, 플래시 메모리를 포함하고, 상기 플래시 메모리는, 상기 MCU의 파워-온 시에, 어플리케이션의 키 값을 확인하고, 상기 어플리케이션 키 값이 유효하지 않으면 재프로그래밍이 가능한 모드로 진입할 수 있다.
상기 플래시 메모리는, 플래시 부트로더(Flash Boot Loader), 어플리케이션(application) 블록, 및 어플리케이션 키 블록을 포함하며, 상기 MCU의 파워-온 시에, 상기 플래시 부트로더가 상기 어플리케이션 키 블록에서 상기 어플리케이션의 키 값을 확인하고, 상기 어플리케이션 키 값이 유효하지 않으면 플래시 부트로더 모드에 진입할 수 있다.
상기 어플리케이션 블록은, 상기 플래시 부트로더 모드에서, 수신된 어플리케이션 데이터를 재프로그래밍할 수 있다.
상기 어플리케이션 키 블록은, 상기 재프로그래밍이 완료된 후 유효한 어플리케이션 키 값을 기입할 수 있다.
상기 플래시 메모리는, 재프로그래밍 요청이 수신되면, 상기 재프로그래밍 요청에 대응하는 어플리케이션의 키 값을 지우고, 상기 모드로 진입할 수 있다.
상기 플래시 메모리는, 상기 모드에서, 수신된 어플리케이션 데이터를 재프로그래밍하고, 어플리케이션 키 값을 기입할 수 있다.
발명의 다른 특징에 따른 플래시 부트로더, 어플리케이션 블록, 및 어플리케이션 키 블록을 포함하는 플래시 메모리를 포함하는 MCU의 에러 복구 방법은, 상기 MCU의 파워-온 시에, 상기 플래시 부트로더가 어플리케이션 키 블록에서 어플리케이션의 키 값을 확인하는 단계, 및 상기 확인 단계에서, 상기 어플리케이션 키 값이 유효하지 않으면 재프로그래밍이 가능하도록 상기 플래시 부트로더에 머무르는 단계를 포함한다.
상기 MCU의 에러 복구 방법은, 수신된 어플리케이션 데이터를 재프로그래밍하는 단계, 및 상기 재프로그래밍이 완료된 후, 어플리케이션 키 값을 기입하는 단계를 더 포함할 수 있다.
상기 MCU의 에러 복구 방법은, 상기 확인 단계에서, 상기 어플리케이션 키 값이 유효하면 대응하는 어플리케이션을 실행하는 단계, 상기 대응하는 어플리케이션 실행 중, 재프로그래밍 요청을 수신하는 단계, 및 상기 재프로그래밍 요청을 수신하면, 상기 대응하는 어플리케이션의 키 값을 지우는 단계를 더 포함할 수 있다.
상기 MCU의 에러 복구 방법은, 상기 어플리케이션 키 값을 지운 후, 상기 플래시 부트로더가 어플리케이션 키 블록에서 어플리케이션의 키 값을 확인하는 단계부터 시작할 수 있다.
본 발명의 다른 특징에 따른 배터리 장치는 전기적으로 연결된 복수의 배터리 셀을 포함하는 배터리 셀 조립체, 배터리 관리를 위한 어플리케이션을 저장한 플래시 메모리를 포함하는 마이크로 컨트롤러 유닛(Micro Controller Unit, MCU), 및 상기 MCU에서 수행되는 어플리케이션에 따라 배터리 관리를 수행하는 배터리 관리 시스템을 포함한다. 상기 플래시 메모리는, 상기 MCU의 파워-온 시에, 어플리케이션의 키 값을 확인하고, 상기 어플리케이션 키 값이 유효하지 않으면 재프로그래밍이 가능한 모드로 진입할 수 있다.
플래시 메모리의 에러를 복구할 수 있는 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 마이크로 컨트롤러 유닛을 포함하는 배터리 장치를 제공한다.
도 1은 일 실시예에 따른 마이크로 컨트롤러유닛을 나타낸 도면이다.
도 2는 일 실시예에 따른 플래시 메모리(2)의 구성을 나타낸 도면이다.
도 3은 일 실시예에 따른 복구 방법을 나타낸 순서도이다.
도 4는 일 실시예에 따른 배터리 장치를 나타낸 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 일 실시예에 따른 마이크로 컨트롤러 유닛을 나타낸 도면이다.
도 1에 도시된 바와 같이, 마이크로 컨트롤러 유닛(Micro Controller Unit, MCU)(1)은 플래시 메모리(2), 프로세서(3), 및 주변 장치(4)를 포함한다.
플래시 메모리(2)는 MCU(1)가 적용되는 장치에 필요한 어플리케이션을 저장하고, 어플리케이션의 소프트웨어를 실행시키고, 요청이 있는 경우 해당 소프트웨어를 재프로그래밍(reprogramming)하며, ECC 에러에 의한 CPU 코어 예외 발생시 에러의 발생 위치가 어플리케이션 키 영역일 경우 어플리케이션 키 영역을 지우고 리셋하여 재프로그래밍이 가능한 상태로 동작할 수 있다.
프로세서(3)는 플래시 메모리(2) 및 주변 장치(4)와 인터페이스를 통해 네트워킹하며 주변 장치(4)를 통해 입력된 정보를 플래시 메모리(2)에 전송할 수 있고, 플래시 메모리(2) 및 주변 장치(4)의 동작을 제어하는 명령(command)을 전송할 수 있다. MCU(1)가 파워-온 되면, 프로세서(3)에 파워-온 신호(P_ON)가 입력되고, 프로세서(3)는 플래시 메모리(2)에 어플리케이션 실행을 위한 명령을 전달할 수 있다.
주변장치(4)는 CAN 통신, UART 통신 등을 위한 통신 모듈을 포함하고, 프로세서(3)에 재프로그래밍 요청 및 재프로그래밍을 위한 소프트웨어 코드를 전 송할 수 있다.
이하, 도 2를 참조하여 일 실시예에 따른 플래시 메모리를 설명한다.
도 2는 일 실시예에 따른 플래시 메모리(2)의 구성을 나타낸 도면이다.
도 2에 도시된 바와 같이, 플래시 메모리(2)는 플래시 부트로더(Flash Boot Loader, FBL)(21), 어플리케이션 블록(22), 및 어플리케이션 키 블록(23)을 포함한다.
FBL(21)에 명령이 머무르는 FBL 모드에서, FBL(21)은 어플리케이션 영역의 소프트웨어를 지우고 재프로그래밍할 수 있다. FBL(21)은 프로세서(3)로부터 전달된 명령에 따라 어플리케이션의 키 값이 유효한지 확인할 수 있다. FBL(21)의 확인 결과, 해당 어플리케이션의 키 값이 유효하지 않은 경우 어플리케이션 블록(22)의 해당 어플리케이션은 실행되지 않고, FBL 모드로 진입한다. FBL(21)은 프로세서(3)에 어플리케이션 키 값이 유효하지 않음을 알릴 수 있다.
FBL(21)에 의해 해당 어플리케이션 키 값이 유효한 것으로 판단되면, 명령에 따라 어플리케이션 블록(22)이 해당 어플리케이션의 영역에 저장된 소프트웨어를 동작시킬 수 있다. 동작 중에, 프로세서(3)로부터 재프로그래밍 요청이 플래시 메모리(2)에 전송되면, 어플리케이션 키 블록(23)은 동작중인 어플리케이션에 대응하는 어플리케이션 키 영역을 지우고 리셋한 후 FBL 모드로 진입한다.
이와 같이, 어플리케이션 키 값이 유효하지 않거나, 재프로그래밍 요청이 있을 경우, 재프로그래밍을 위해 FBL(21)에 명령이 머무르는 상태인 FBL 모드로 진입한다.
FBL(21)은 CAN 통신 또는 UART 통신을 통해 명령에 대응하는 어플리케이션에 대한 데이터를 주변장치(4)를 통해 수신하고, 수신된 데이터를 어플리케이션 블록(22) 영역에 재프로그래밍한다. 수신된 데이터가 재프로그래밍을 통해 어플리케이션 영역에 기입(writing)된 후, 어플리케이션 키 블록(23)은 해당 어플리케이션에 대응하는 영역에 유효한 키 값을 기입(writing)한다. 어플리케이션 키 블록(23)은 기입 후 리셋을 수행하고, 해당 리셋을 통해 어플리케이션 블록(22)이 재프로그래밍된 어플리케이션을 실행할 수 있다.
위와 같은 동작과 함께, FBL(21)은 ECC 에러로 인한 CPU 코어 예외 발생시, ECC 에러나 발생한 위치가 어플리케이션 키 블록(23)일 경우, 해당 어블리케이션 키 값을 지우고 리셋하여 FBL 모드로 진입한다. 즉, 플래시 메모리(2)는 FBL 모드 상태로, 재프로그래밍이 가능한 상황으로 복구된다.
위와 같은 동작을 수행하기 위해서, FBL(21), 어플리케이션 블록(22), 및 어플리케이션 키 블록(23)은 상호간에 필요한 정보를 송수신할 수 있다.
도 3은 일실시예에 따른 복구 방법을 나타낸 순서도이다.
도 3에 도시된 바와 같이, MCU(1)가 파워 온(power-on) 또는 리셋이 될 수 있다(단계 S1).
FBL(21)은 파워-온 후 프로세서(3)의 명령에 따라 실행되어야 할 어플리케이션의 키 값이 유효한지 확인할 수 있다(단계 S2).
단계 S2의 판단 결과, 해당 어플리케이션의 키 값이 유효한 경우, 명령은 FBL(21)에서 어플리케이션 블록(22)으로 이동할 수 있다(단계 S3).
어플리케이션 블록(22)은 명령에 따라 해당 어플리케이션을 실행할 수 있다(단계 S4).
어플리케이션 실행 중, 재프로그래밍 요청이 있는지 판단할 수 있다(단계 S5).
단계 S5의 판단 결과, 프로세서(3)로부터 재프로그래밍 요청이 플래시 메모리(2)로 전송되면, 어플리케이션 키 블록(23)은 해당 어플리케이션의 키 값을 지울 수 있다(단계 S6).
해당 어플리케이션의 키 값이 지워진 후, 소프트 리셋(soft reset)이 수행될 수 있다(단계 S7). 소프트 리셋에 따라 어플리케이션 실행이 중단될 수 있다.
단계 S5의 판단 결과, 재프로그래밍 요청이 없으면, 단계 S4에 따라 어플리케이션 실행이 유지될 수 있다.
단계 S7 이후, 단계 S1에 따라 FBL 모드로 진입하고, 다시 S2 단계부터 실행될 수 있다. 그러면, 어플리케이션 키 값이 유효하지 않으므로 FBL 모드에 진입하여 재프로그래밍이 수행되어 유효한 어플리케이션 키 값이 기입될 수 있다.
단계 S2의 판단 결과, 해당 어플리케이션의 키 값이 유효하지 않은 경우, 명령은 FBL(21)에 머무를(stay) 수 있다(단계 S8). 즉, FBL 모드에 진입한다. 아울러, ECC 에러로 인한 CPU 코어 예외가 발생할 수 있다.
프로세서(3)로부터 재프로그래밍을 위한 데이터가 플래시 메모리(2)에 수신되면, FBL(21)은 어플리케이션 영역을 재프로그래밍할 수 있다(단계 S9).
어플리케이션 블록(22)은 재프로그래밍이 완료되었는지 판단할 수 있다(단계 S10).
단계 S10의 판단 결과, 재프로그래밍이 완료되지 않았다면, 단계 S9의 실행이 유지될 수 있다.
단계 S10의 판단 결과, 재프로그래밍이 완료되었다면, 어플리케이션 키 블록(23)이 유효한 어플리케이션 키 값을 기입할 수 있다(단계 S11).
단계 S11 이후, 소프트 리셋(soft reset)이 수행될 수 있다(단계 S12). 소프트 리셋 이후, 단계 S1에에 따라 FBL 모드로 진입하고, 다시 S2 단계부터 실행될 수 있다.
본 개시의 일 실시예에 따르면, 어플리케이션 키 값의 유효하지 않은 경우 재프로그래밍이 가능한 FBL 모드에 진입함으로써, 종래 기술에서 ECC 에러에 의한 CPU 코어 예외가 발생할 때, 파워-온과 유효 키 값을 읽는 과정 사이에 무한 반복이 발생하는 문제를 해결할 수 있다.
이하, 앞서 설명한 일 실시예에 따른 MCU가 적용된 배터리 장치에 관한 실시예를 설명한다.
도 4는 일 실시예에 따른 배터리 장치를 나타낸 도면이다.
도 4에 도시된 바와 같이, 배터리 장치(100)는 MCU(120)를 포함하고, MCU(120)는 배터리 모니터링 및 관리에 필요한 다수의 어플리케이션을 저장할 수 있다. MCU(120)에서 실행되는 어플리케이션에 따라, 배터리 장치(100)가 구동될 수 있다. 예를 들어, MCU(120)는 배터리 팩의 충전 상태 및 수명을 추정하기 위한 어플리케이션, 배터리 팩 및 배터리 셀의 전류, 전압, 온도 등 상태 정보를 감지하기 위한 어플리케이션 등을 포함할 수 있다.
일 예로, MCU(120)에서 배터리 팩의 충전 상태(State of Charge, SOC)를 추정하기 위한 어플리케이션이 실행되고, 배터리 팩의 충전 상태 추정을 위한 배터리 상태 정보를 감지하기 위한 어플리케이션이 실행될 수 있다.
SOC 추정을 위한 어플리케이션이 동작할 때 일 예를 이하 설명한다.
도 4에 도시된 바와 같이, 배터리 장치(100)는 배터리 관리 시스템(Battery Management System, BMS)(110), MCU(120), 배터리 셀 조립체(130), 및 릴레이(140,150)를 포함한다.
배터리 셀 조립체(130)는 전기적으로 연결되어 있는 복수의 배터리 셀을 포함한다. 소정 개수의 배터리 셀이 직렬 연결되어 배터리 모듈을 구성하고, 소정 개수의 배터리 모듈이 직렬 및 병렬 연결되어 원하는 전력을 공급할 수 있다.
배터리 셀 조립체(130)를 구성하는 복수의 배터리 셀 각각은 BMS(110)와 복수의 배선을 통해 전기적으로 연결되어 있다.
BMS(110)는 복수의 배터리 셀에 대한 정보를 포함한 배터리 장치에 관한 다양한 정보를 취합 및 분석하여 배터리 장치의 충방전, 배터리 셀 밸런싱, 보호 동작 등을 제어할 수 있다.
릴레이(140,150)는 릴레이나 n 채널 타입의 트랜지스터등으로 구현될 수 있고, 배터리 셀 조립체(130)와 외부 장치 사이에 직렬 연결되어 있다. 릴레이(140,150) 각각은 BMS(5)로부터 공급되는 신호에 의해 동작할 수 있다.
MCU(120)는 앞서 설명한 실시예에 따라 구현될 수 있다. MCU(120)에서 어플리케이션이 수행되고, BMS(110)로 어플리케이션에 따른 제어 신호가 전송될 수 있다. 그러면, BMS(110)는 MCU(120)에서 수행되는 어플리케이션에 따라 동작할 수 있다.
예를 들어, MCU(120)에 저장된 복수의 어플리케이션 중 SOC 추정 어플리케이션이 수행되면, BMS(110)는 어플리케이션에 따라 SOC를 추정한다. SOC의 추정 방식은 어플리케이션에 따라 결정된다.
일 예로 SOC 추정 어플리케이션은 제1 배터리 모델링 방식을 이용하여 SOC를 추정할 수 있고(이하, 제1 SOC), 제2 배터리 모델링 방식을 이용할 SOC를 추정할 수 있으며(이하, 제2 SOC), 제1 및 제2 배터리 모델링 방식은 서로 다를 수 있다. 배터리 모델링 방식은 비선형적인 특성을 가지는 배터리의 상태를 추정하기 위해 이용되는 배터리 모델링 방법으로서, 전기 회로 모델(Electrical Circuit Model), 전기 화학 모델(Electrochemical Model), 분석적 모델(Analytical Model) 및 확률적 모델(Stochastic Model) 등이 포함될 수 있다.
구체적으로, BMS(110)는 SOC 추정 어플리케이션에 따라 제1 배터리 모델링 방식으로서 전기 회로 모델을 이용하여 직전 단계에서 추정된 SOC 및 배터리 팩 상태 정보에 포함된 정보에 기초하여 현 단계의 제1 SOC를 추정할 수 있다. 제2 배터리 모델링 방식으로서 전기 화학 모델이 이용될 수 있다.
전기 회로 모델은, 전기 회로로 구현된 등가 회로로 배터리의 입력과 출력 특성을 모델링하는 방법이다. 전기 회로 모델은, SOC 추정을 위한 연산 과정이 비교적 간단하여 연산에 따른 소요 시간이 길지 않고, 연산을 위한 부하가 많이 걸리지 않는다는 장점을 갖는다. 그러나, 이러한 전기 회로 모델의 경우 정확성이 다소 떨어지는 문제가 있다.
반면, 전기 화학 모델은, 배터리 내부에서 발생하는 화학적 작용을 기반으로 배터리의 특성을 모델링하는 방법이다. 이러한 전기 화학 모델의 대표적인 예로서, DFN(Doyle-Fuller-Newman) 모델을 들 수 있다. DFN 모델은, 다공성의 전극 내에 존재하는 리튬 이온 농도의 시공간적인 변화, 전위, 인터칼레이션 키네틱, 고체상과 전해액 상 간의 전류 밀도 등을 모델링할 수 있다. 이러한 전기 화학 모델은, 정확성이 매우 높다는 장점을 갖는다.
BMS(110)는 SOC 추정 어플리케이션에 따라 DFN 모델과 같은 전기 화학 모델을 이용하여 배터리 팩의 상태 정보에 기초한 정확도 높은 SOC 추정값(제2 SOC)을 얻을 수 있다. 그리고, BMS(110)는 SOC 추정 어플리케이션에 따라 이처럼 높은 정확도를 갖는 SOC 추정 결과(제2 SOC)를 입력 파라미터에 반영함으로써, SOC(제1 SOC) 추정의 정확도를 높일 수 있다.
예를 들어, BMS(110)는 SOC 추정 어플리케이션에 따라 제2 SOC값을 직전 단계의 제1 SOC로 인식하고, 수신된 배터리 팩의 상태 정보 및 직전 단계의 제1 SOC를 제1 배터리 모델링 방식에 적용하여 현 단계의 제1 SOC를 추정할 수 있다. 그러면, 제1 SOC 값이 주기적으로 보정되어, 제1 SOC 추정의 오차가 커지는 것을 주기적으로 방지할 수 있으며, 이로 인해 SOC 추정의 정확성을 향상시킬 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
1: 마이크로 컨트롤러 유닛
2: 플래시 메모리
3: 프로세서
4: 주변 장치
100: 배터리 장치
110: 배터리 관리 시스템(Battery Management System, BMS)

Claims (11)

  1. 마이크로 컨트롤러 유닛(Micro Controller Unit, MCU)은,
    플래시 메모리를 포함하고,
    상기 플래시 메모리는,
    상기 MCU의 파워-온 시에, 어플리케이션의 키 값을 확인하고, 상기 어플리케이션 키 값이 유효하지 않으면 재프로그래밍이 가능한 모드로 진입하는 것을 특징으로 하는 MCU.
  2. 제1항에 있어서,
    상기 플래시 메모리는,
    플래시 부트로더(Flash Boot Loader), 어플리케이션(application) 블록, 및 어플리케이션 키 블록을 포함하며,
    상기 MCU의 파워-온 시에, 상기 플래시 부트로더가 상기 어플리케이션 키 블록에서 상기 어플리케이션의 키 값을 확인하고,
    상기 어플리케이션 키 값이 유효하지 않으면 플래시 부트로더 모드에 진입하는 것을 특징으로 하는 MCU.
  3. 제2항에 있어서,
    상기 어플리케이션 블록은,
    상기 플래시 부트로더 모드에서, 수신된 어플리케이션 데이터를 재프로그래밍하는 것을 특징으로 하는 MCU.
  4. 제3항에 있어서,
    상기 어플리케이션 키 블록은,
    상기 재프로그래밍이 완료된 후 유효한 어플리케이션 키 값을 기입하는 것을 특징으로 하는 MCU.
  5. 제1항에 있어서,
    상기 플래시 메모리는,
    재프로그래밍 요청이 수신되면, 상기 재프로그래밍 요청에 대응하는 어플리케이션의 키 값을 지우고, 상기 모드로 진입하는 것을 특징으로 하는 MCU.
  6. 제5항에 있어서,
    상기 플래시 메모리는,
    상기 모드에서, 수신된 어플리케이션 데이터를 재프로그래밍하고, 어플리케이션 키 값을 기입하는 것을 특징으로 하는 MCU.
  7. 플래시 부트로더, 어플리케이션 블록, 및 어플리케이션 키 블록을 포함하는 플래시 메모리를 포함하는 MCU의 에러 복구 방법에 있어서,
    상기 MCU의 파워-온 시에, 상기 플래시 부트로더가 어플리케이션 키 블록에서 어플리케이션의 키 값을 확인하는 단계; 및
    상기 확인 단계에서, 상기 어플리케이션 키 값이 유효하지 않으면 재프로그래밍이 가능하도록 상기 플래시 부트로더에 머무르는 단계를 포함하는 MCU의 에러 복구 방법.
  8. 제7항에 있어서,
    수신된 어플리케이션 데이터를 재프로그래밍하는 단계; 및
    상기 재프로그래밍이 완료된 후, 어플리케이션 키 값을 기입하는 단계를 더 포함하는 MCU의 에러 복구 방법.
  9. 제7항에 있어서,
    상기 확인 단계에서, 상기 어플리케이션 키 값이 유효하면 대응하는 어플리케이션을 실행하는 단계;
    상기 대응하는 어플리케이션 실행 중, 재프로그래밍 요청을 수신하는 단계; 및
    상기 재프로그래밍 요청을 수신하면, 상기 대응하는 어플리케이션의 키 값을 지우는 단계를 더 포함하는 MCU의 에러 복구 방법.
  10. 제9항에 있어서,
    상기 어플리케이션 키 값을 지운 후,
    상기 플래시 부트로더가 어플리케이션 키 블록에서 어플리케이션의 키 값을 확인하는 단계부터 진행되는 것을 특징으로 하는 MCU의 에러 복구 방법.
  11. 전기적으로 연결된 복수의 배터리 셀을 포함하는 배터리 셀 조립체;
    배터리 관리를 위한 어플리케이션을 저장한 플래시 메모리를 포함하는 마이크로 컨트롤러 유닛(Micro Controller Unit, MCU); 및
    상기 MCU에서 수행되는 어플리케이션에 따라 배터리 관리를 수행하는 배터리 관리 시스템을 포함하고,
    상기 플래시 메모리는,
    상기 MCU의 파워-온 시에, 어플리케이션의 키 값을 확인하고, 상기 어플리케이션 키 값이 유효하지 않으면 재프로그래밍이 가능한 모드로 진입하는 것을 특징으로 하는 배터리 장치.
KR1020190003998A 2019-01-11 2019-01-11 에러 복구 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 상기 마이크로 컨트롤러를 포함하는 배터리 장치 KR20200087557A (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020190003998A KR20200087557A (ko) 2019-01-11 2019-01-11 에러 복구 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 상기 마이크로 컨트롤러를 포함하는 배터리 장치
EP20738932.1A EP3848810A4 (en) 2019-01-11 2020-01-10 ERROR CORRECTION PROCESS, MICROCONTROLLER UNIT USING THIS PROCESS, AND BATTERY DEVICE PROVIDED WITH THIS MICROCONTROLLER UNIT
US17/279,862 US11899951B2 (en) 2019-01-11 2020-01-10 Error restoring method, microcontroller unit using the same, and battery device including the microcontroller unit
PCT/KR2020/000511 WO2020145742A1 (ko) 2019-01-11 2020-01-10 에러 복구 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 상기 마이크로 컨트롤러를 포함하는 배터리 장치
JP2021513394A JP7207818B2 (ja) 2019-01-11 2020-01-10 エラー復旧方法、これを用いたマイクロコントローラユニット、および前記マイクロコントローラを含むバッテリ装置
CN202080005416.6A CN112771503A (zh) 2019-01-11 2020-01-10 错误恢复方法、使用该方法的微控制器单元以及包括微控制器单元的电池设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190003998A KR20200087557A (ko) 2019-01-11 2019-01-11 에러 복구 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 상기 마이크로 컨트롤러를 포함하는 배터리 장치

Publications (1)

Publication Number Publication Date
KR20200087557A true KR20200087557A (ko) 2020-07-21

Family

ID=71521830

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190003998A KR20200087557A (ko) 2019-01-11 2019-01-11 에러 복구 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 상기 마이크로 컨트롤러를 포함하는 배터리 장치

Country Status (6)

Country Link
US (1) US11899951B2 (ko)
EP (1) EP3848810A4 (ko)
JP (1) JP7207818B2 (ko)
KR (1) KR20200087557A (ko)
CN (1) CN112771503A (ko)
WO (1) WO2020145742A1 (ko)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676640B2 (en) 2000-01-06 2010-03-09 Super Talent Electronics, Inc. Flash memory controller controlling various flash memory cells
US6349056B1 (en) * 2000-12-28 2002-02-19 Sandisk Corporation Method and structure for efficient data verification operation for non-volatile memories
US6925365B2 (en) * 2002-08-05 2005-08-02 Daimlerchrysler Corporation Flash loader for vehicle electronic control units
US8392762B2 (en) 2008-02-04 2013-03-05 Honeywell International Inc. System and method for detection and prevention of flash corruption
JP5085626B2 (ja) * 2009-10-08 2012-11-28 レノボ・シンガポール・プライベート・リミテッド 電池パック、そのファームウェア更新方法、および電池パックシステム
JP2011164827A (ja) 2010-02-08 2011-08-25 Nippon Avionics Co Ltd フラッシュメモリを備えた電子機器およびフラッシュメモリに格納されたプログラムの更新方法
US8589730B2 (en) * 2010-08-31 2013-11-19 Apple Inc. Handling errors during device bootup from a non-volatile memory
KR101744998B1 (ko) 2011-08-26 2017-06-21 현대자동차주식회사 리프로그래밍 제어모듈 및 이를 이용한 리프로그래밍 시스템 및 방법
US9176800B2 (en) 2011-08-31 2015-11-03 Micron Technology, Inc. Memory refresh methods and apparatuses
JP5597224B2 (ja) 2012-05-11 2014-10-01 株式会社東芝 情報記憶装置およびメモリ異常処理方法
US9280654B1 (en) * 2012-08-17 2016-03-08 Electrochem Solutions, Inc. Battery authentication circuit
KR101515198B1 (ko) 2013-04-10 2015-05-11 주식회사 팬택 모바일 단말의 펌웨어 업그레이드 장치 및 방법
US20150067314A1 (en) * 2013-08-30 2015-03-05 Timothy J. Strauss Secure firmware flash controller
AU2013407292B2 (en) * 2013-12-13 2016-10-27 Razer (Asia-Pacific) Pte. Ltd. Devices, updaters, methods for controlling a device, and methods for controlling an updater
JP2016081341A (ja) 2014-10-17 2016-05-16 株式会社デンソー 電子制御装置
KR101692839B1 (ko) * 2015-06-09 2017-01-05 (주) 비엠지 배터리 원격 제어 시스템

Also Published As

Publication number Publication date
US11899951B2 (en) 2024-02-13
CN112771503A (zh) 2021-05-07
WO2020145742A1 (ko) 2020-07-16
US20220035545A1 (en) 2022-02-03
JP2022501706A (ja) 2022-01-06
JP7207818B2 (ja) 2023-01-18
EP3848810A1 (en) 2021-07-14
EP3848810A4 (en) 2021-12-15

Similar Documents

Publication Publication Date Title
CN101770809B (zh) 用于非易失性存储器掉电后的恢复的方法和系统
CN100428203C (zh) 基于非易失性存储的便携式设备的实现掉电保护的方法
Aouda et al. Incremental checkpointing of program state to NVRAM for transiently-powered systems
CN103761112A (zh) 一种车载多媒体装置及其控制方法
US20210039519A1 (en) Apparatus and application for predicting discharge of battery
US11515578B2 (en) Apparatus and application for predicting performance of battery
JP2015118423A (ja) リフレッシュ装置及び電子機器
US11899951B2 (en) Error restoring method, microcontroller unit using the same, and battery device including the microcontroller unit
CN105486951A (zh) 一种便携式电池管理系统诊断仪及其工作方法
CN114584498A (zh) 网关设备上下电测试方法、装置、设备、系统及产品
WO2019210679A1 (zh) 设备电池及无人机
CN113434086B (zh) 数据存储方法、装置、非易失性存储器件和存储器
JP7205982B2 (ja) メモリ、メモリのエラー復旧方法、およびメモリを含むバッテリ装置
CN115793995A (zh) 一种面向传统MCU中仅有Pflash的数据存储方法
CN115129347A (zh) 一种汽车安全数据的更新方法、装置、设备及产品
CN110865906B (zh) 一种电机初始位置角度存储方法、装置、车辆及存储介质
US20070192645A1 (en) Battery management system chip and data-accessing method of the same
CN112652348B (zh) 一种NAND Flash芯片掉电保护电路及保护方法
CN117149511A (zh) 一种增强抗eft能力的flash控制器及其控制方法
KR102324263B1 (ko) 비휘발성 메모리 업데이트 장치 및 방법
CN110910939B (zh) 存储单元的阈值调整方法、装置、存储设备和存储介质
CN117908655A (zh) 一种数据采集方法、装置及设备
KR20210061099A (ko) 플래시 부트로더 검증 방법, 플래시 메모리, 및 이를 포함하는 배터리 시스템
KR20230054191A (ko) Soc 레벨을 안내하기 위한 배터리 제어 시스템 및 방법
CN112882656A (zh) 一种掉电数据存储方法和掉电数据存储电路

Legal Events

Date Code Title Description
E902 Notification of reason for refusal