[발명의 명칭] 데이터 무결성 검증 및 복구 기능을 가진 배터리 관리 시스템Battery Management System Having Function  of Data Integration Verification and Restoration 본 발명은 배터리 관리를 위해 사용되는 배터리 관리 시스템(Battery Management System: BMS)에서 데이터의 무결성을 검증하고 데이터를 복구하는 것과 관련된 기술이다.  배터리는 휴대폰, 랩탑 컴퓨터, 스마트 폰, 스마트 패드 등의 모바일 디바이스뿐만 아니라 전기로 구동되는 자동차(EV, HEV, PHEV)나 대용량 전력 저장 장치(ESS) 등의 분야로까지 그 용도가 급속도로 확산되고 있다. 배터리는 배터리 관리 시스템과 결합된다. 배터리 관리 시스템은, 배터리의 동작을 전반적으로 제어한다. 배터리 관리 시스템은 하드웨어적 관점에서, 메모리 디바이스, 마이크로프로세서, I/O 인터페이스, 통신 인터페이스, 전압 측정 회로와 같은 측정 요소, 셀 밸런싱 회로, 온도 센서, 전류 센서, 전류 흐름을 개폐하기 위한 릴레이 스위치, 전계효과트랜지스터(FET) 등의 반도체 스위치 등을 포함한다. 배터리 관리 시스템은, 기능적 관점에서, 배터리의 전압, 전류 및 온도 측정; 과충전 및 과방전 제어; 충전 상태(State Of Charge; SOC) 및 건강 상태(State Of Health; SOH)의 추정; 셀 전압의 균등화; 릴레이 스위치와 같은 디바이스의 성능 진단; 다른 제어 디바이스와의 데이터 통신 등의 기능을 수행한다. 마이크로프로세서는 상기 기능 별로 프로그램된 복수의 응용 모듈을 실행한다. 응용 모듈들 중 일부 모듈은 배터리의 전압, 전류, 온도, 충전 상태, 건강 상태 등의 데이터를 주기적으로 생성하고 메모리 디바이스에 저장한다. 메모리 디바이스에 저장된 배터리 관리 데이터들은 배터리가 장착된 로드 장치의 제어 디바이스로 제공되거나 다른 응용 모듈에 의해 참조된다. 예를 들어, 전압 측정 기능을 하는 응용 모듈은 배터리의 전압을 주기적으로 측정하여 전압 데이터를 메모리 디바이스에 저장한다. 한편, 충전 상태를 추정하는 응용 모듈은 메모리 디바이스에 저장된 전압 데이터를 활용하여 배터리의 충전 상태를 주기적으로 추정하고 충전 상태 데이터를 메모리 디바이스에 저장한다. 본 명세서에서 응용 모듈에 의해 주기적으로 생성되는 데이터는 배터리 관리 데이터라고 명명한다. 전압 데이터나 충전 상태 데이터가 대표적이다. 메모리 디바이스에는 배터리 관리 데이터가 저장되는 공간이 할당된다. 또한, 새로 생성된 배터리 관리 데이터는 기존 데이터가 저장되어 있는 공간에 덮어 쓰여진다. 즉, 메모리 디바이스에 저장된 배터리 관리 데이터는 주기적으로 갱신된다. 한편, 메모리 디바이스에 저장된 배터리 관리 데이터는 변조되어 있거나 오류를 포함할 수 있다. 데이터의 변조나 오류는 응용 모듈들 상호간의 충돌, 응용 모듈의 오동작, 응용 모듈에 포함된 버그, 외부 침입자에 의한 데이터 조작 등에 의해 발생한다. 따라서, 메모리 디바이스에 저장된 기존 배터리 관리 데이터를 갱신할 때 기존에 저장되어 있던 데이터의 무결성을 검증하고 문제가 발견되면 데이터를 복구할 수 있는 방안이 필요하다.  [발명의 개요]  [해결하려는 과제] 본 발명은 위와 같은 종래 기술의 배경하에 창안된 것으로서, 메모리 디바이스에 저장된 배터리 관리 데이터의 무결성을 검증하고 검증 결과 문제점이 발견되면 배터리 관리 데이터를 복구할 수 있는 배터리 관리 시스템을 제공하는데 그 목적이 있다.  [과제의 해결 수단] 상기 기술적 과제를 달성하기 위한 본 발명에 따른 배터리 관리 시스템은, 메모리 디바이스와 읽기 및 쓰기 인터페이스를 형성하는 메모리 추상화 모듈과 I/O 인터페이스를 통해 측정 요소와 인터페이스를 형성하는 I/O 추상화 모듈이 포함된 베이직 계층; 상기 베이직 계층 상에 적층된 RTE(Run Time Environment) 계층; 및 상기 RTE 계층 위에 적층된 응용 계층을 포함하는 배터리 관리 프로그램과, 배터리 관리 데이터의 원본, 백업본 및 체크섬이 저장되는 메모리 디바이스; 및 상기 메모리 디바이스에 접근하여 배터리 관리 프로그램을 실행하는 마이크로프로세서를 포함하고, 상기 응용 계층은 상기 RTE 계층을 통해 상기 I/O 추상화 모듈로부터 배터리에 대한 측정 값을 반환 받아 신규 배터리 관리 데이터를 생성하는 적어도 하나의 응용 모듈을 포함하고, 상기 응용 모듈은 상기 RTE 계층을 통해 상기 메모리 추상화 모듈로부터 메모리 디바이스에 저장된 기존 배터리 관리 데이터의 원본 및 체크섬을 받환 받고, 상기 기존 배터리 관리 데이터의 원본에 대한 체크섬을 재생성하고, 상기 반환받은 체크섬과 상기 재생성된 체크섬이 일치하면, 상기 RTE 계층을 통해 메모리 추상화 모듈을 호출하여 메모리 디바이스에 저장된 상기 기존 배터리 관리 데이터의 원본을 상기 신규 배터리 관리 데이터의 원본으로 덮어 쓰기 하도록 구성될 수 있다. 바람직하게, 상기 응용 모듈은, 상기 신규 배터리 관리 데이터의 체크섬을 새로 생성하고, RTE 계층을 통해 메모리 추상화 모듈을 호출하여 상기 메모리 디바이스에 저장된 기존 배터리 관리 데이터의 백업본과 체크섬을 신규 배터리 관리 데이터의 백업본 및 새로 생성된 체크섬으로 덮어 쓰기 하도록 구성될 수 있다. 바람직하게, 상기 응용 모듈은, 상기 반환받은 체크섬과 상기 재생성된 체크섬이 일치하지 않으면, RTE 계층을 통해 메모리 추상화 모듈을 호출하여 메모리 디바이스에 저장된 기존 배터리 데이터의 원본을 백업본으로 덮어 쓰기 함으로써 원본을 복원하도록 구성될 수 있다. 바람직하게, 상기 응용 모듈은, 상기 반환받은 체크섬과 상기 재생성된 체크섬이 일치하지 않으면, 상기 RTE 계층을 통해 메모리 추상화 모듈을 호출하여 메모리 디바이스에 저장된 기존 배터리 관리 데이터의 백업본을 반환받고, 상기 반환받은 원본과 백업본 사이에 XOR 연산을 수행하여 백업본과 차이를 보이는 원본의 데이터 비트를 식별하도록 구성될 수 있다. 바람직하게, 상기 응용 모듈은, 상기 RTE 계층을 통해 메모리 추상화 모듈을 호출하여 상기 식별된 데이터 비트를 메모리 디바이스에 할당된 로그 저장 영역에 저장하도록 구성될 수 있다. 바람직하게, 상기 응용 모듈은, 반환 받은 체크섬이 null 이면, 상기 신규 배터리 관리 데이터에 대한 체크섬을 생성하고, 상기 RTE 계층을 통해 메모리 추상화 모듈을 호출하여 상기 신규 배터리 관리 데이터의 원본, 백업본 및 체크섬을 메모리 디바이스에 쓰도록 요청할 수 있다. 바람직하게, 상기 배터리 관리 데이터는 배터리의 전압, 전류, 온도, 충전 상태, 출력 및 건강 상태 중 적어도 하나를 포함할 수 있다. 상기 기술적 과제를 달성하기 위한 본 발명의 다른 측면에 따른 배터리 관리 시스템은, 메모리 디바이스와 읽기 및 쓰기 인터페이스를 형성하는 메모리 추상화 모듈과 I/O 인터페이스를 통해 측정 요소와 인터페이스를 형성하는 I/O 추상화 모듈이 포함된 베이직 계층; 상기 베이직 계층 상에 적층된 RTE(Run Time Environment) 계층; 및 상기 RTE 계층 위에 적층된 응용 계층을 포함하는 배터리 관리 프로그램과, 배터리 관리 데이터의 원본, 백업본 및 체크섬이 저장되는 메모리 디바이스; 및 상기 메모리 디바이스에 접근하여 배터리 관리 프로그램을 실행하는 마이크로프로세서를 포함하고, 상기 응용 계층은 상기 RTE 계층을 통해 상기 I/O 추상화 모듈로부터 배터리에 대한 측정 값을 반환 받아 신규 배터리 관리 데이터를 생성하는 적어도 하나의 응용 모듈을 포함하고, 상기 응용 계층 또는 상기 베이직 계층은 메모리 디바이스에 저장된 배터리 관리 데이터의 무결성을 검증하거나 복구하는 검증 복구 모듈을 포함한다. 바람직하게, 상기 응용 모듈은 상기 신규 배터리 관리 데이터를 생성한 후 상기 RTE 계층을 통해 상기 검증 복구 모듈을 호출하여 상기 메모리 디바이스에 저장된 배터리 관리 데이터의 무결성 검증을 요청한다. 바람직하게, 상기 검증 복구 모듈은, 상기 RTE 계층을 통해 또는 직접 상기 메모리 추상화 모듈을 호출하여 메모리 디바이스에 저장된 기존 배터리 관리 데이터의 원본 및 체크섬을 받환 받고, 상기 기존 배터리 관리 데이터의 원본에 대한 체크섬을 재생성하고, 상기 반환받은 체크섬과 상기 재생성된 체크섬이 일치하는지 여부를 나타내는 검증 결과를 상기 RTE 계층을 통해 상기 응용 모듈로 반환한다. 바람직하게, 상기 응용 모듈은, 반환된 검증 결과가 무결성이 검증되었음을 나타내는 메시지를 포함하면, RTE 계층을 통해 메모리 추상화 모듈을 호출하여 메모리 디바이스에 저장된 상기 기존 배터리 관리 데이터의 원본, 백업본 및 체크섬을 상기 신규 배터리 관리 데이터의 원본, 백업본 및 체크섬으로 덮어 쓰기 하도록 구성될 수 있다.  [발명의 효과] 본 발명에 따르면, 메모리 디바이스에 저장된 배터리 관리 데이터를 갱신할 때 기존에 저장되어 있는 배터리 관리 데이터의 무결성을 검증하고 복구할 수 있다. 이로써, 오류가 있는 배터리 관리 데이터가 참조되거나 전송되는 것을 방지함으로써 배터리 관리 시스템의 신뢰성을 향상시킬 수 있다.  [도면의 간단한 설명] 본 명세서에 첨부되는 다음의 도면들은 본 발명의 한 실시예를 예시하는 것이며, 후술하는 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다. 도 1은 배터리가 하이브리드 타입의 자동차에 탑재되었을 때 본 발명의 실시예에 따른 배터리 관리 시스템이 어떠한 연결 구조를 가지는지를 보여주는 블록도이다. 도 2는 본 발명의 바람직한 실시예에 따른 배터리 관리 프로그램의 아키텍쳐를 나타낸 블록 다이어그램이다. 도 3은 본 발명의 실시예에 따라 메모리 디바이스에 할당된 원본 저장 영역, 백업 저장 영역 및 체크섬 저장 영역을 예시한 도면이다. 도 4는 본 발명의 실시예에 따라 배터리 관리 데이터의 무결성 검증과 데이터 복원 과정을 순차적으로 도시한 순서도이다.  [발명을 실시하기 위한 구체적인 내용] 이하, 첨부된 도면을 참조하여 본 발명의 실시예를 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 출원을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 발명시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. 도 1은 배터리가 하이브리드 타입의 자동차에 탑재되었을 때 본 발명의 실시예에 따른 배터리 관리 시스템이 어떠한 연결 구조를 가지는지를 보여주는 블록도이다. 도 1을 참조하면, 자동차(1)는 배터리(2), 배터리 관리 시스템(3), ECU(Electronic Control Unit, 4), 인버터(5) 및 모터(6)를 포함하여 구성될 수 있다. 여기서, 본 발명은 배터리(2)와 배터리 관리 시스템(3)이 탑재되는 부하 장치의 종류에 의해 한정되지 않는다는 것을 이해하여야 한다. 배터리(2)는 모터(6)에 구동력을 제공하여 자동차(1)를 구동시키는 전기 에너지원이다. 배터리(2)는 인버터(5)를 통해서 충전 전력을 받아들이거나 방전 전력을 제공할 수 있다. 배터리(2)의 종류는 특별히 한정되지 않으며, 예컨대 리튬 이온 전지, 리튬 폴리머 전지, 니켈 카드뮴 전지, 니켈 수소 전지, 니켈 아연 전지 등으로 구성할 수 있다. 배터리(2)는 복수의 전지 셀이 직렬 또는 병렬로 연결되어 있는 팩으로 형성된다. 그리고 이러한 팩이 하나 이상 구비되어 배터리(2)를 형성할 수도 있다. 배터리 관리 시스템(3)은 배터리(2)의 전압, 전류, 온도 등을 모니터한다. 또한, 배터리(2)의 충전 상태(State Of Charge; SOC), 건강 상태(State Of Health; SOH), 출력 등 배터리(2)의 상태 정보를 추정한다. 또한, 배터리(2)의 전압이 설계 전압 범위를 벗어나면 배터리(2)의 충전 또는 방전을 중단시킨다. 또한, ECU(4)가 요청한 배터리 관리 데이터를 ECU(4) 측으로 전송한다. 배터리 관리 시스템(3)은 이러한 기능 이외에도 다른 부가적인 기능들도 수행할 수 있다. ECU(4)는 자동차(1)의 상태를 제어하는 전자 제어 장치이다. 예컨대, 엑셀레이터(accelerator)의 조작, 브레이크(break)의 조작, 자동차(1) 속도 등의 정보에 기초하여 주행 토크를 결정하고, 모터(6)의 출력이 주행 토크에 맞도록 모터(6)를 제어한다. ECU(4)는 또한 배터리 관리 시스템(3)으로부터 전달받은 배터리(2)의 전압, 전류, 온도, SOC, SOH 등의 상태 정보에 부합하게 배터리(2)가 충전 또는 방전될 수 있도록 인버터(5)에 제어 신호를 인가한다. 인버터(5)는 ECU(4)의 제어 신호에 기초하여 배터리(2)를 충전 또는 방전시킨다. 모터(6)는 배터리(2)의 전기 에너지를 이용하여 ECU(4)로부터 전달되는 제어 정보(예컨대, 토크 정보)에 기초하여 자동차(1)를 구동한다. 자동차(1)는 배터리(2)의 전기 에너지를 이용하여 구동되므로 배터리(2)와 모터(6)는 전기 회로를 통해 연결될 수 있다. 배터리 관리 시스템(3)은 크게 하드웨어와 프로그램을 포함한다. 하드웨어는, 적어도, 마이크로프로세서; 메모리 디바이스; 외부의 제어 디바이스와 통신을 수행하기 위한 통신 인터페이스; 배터리(2)의 전압, 전류 또는 온도를 지시하는 전압 신호를 출력하는 측정 요소를 포함한다. 메모리 디바이스는 배터리 관리 프로그램이 저장되어 있는 영역을 포함하고, 마이크로프로세서는 메모리 디바이스에 엑세스하여 배터리 관리 프로그램을 실행한다. 도 2는 배터리 관리 프로그램의 논리적 계층 구조를 보여주는 블록도이다. 배터리 관리 프로그램(10)은, 계층적 관점에서, 복수의 추상화 모듈(20)과 운영 체제(OS)를 포함하는 베이직 계층(BW)과, 상기 베이직 계층(BW) 위에서 런타임 환경을 제공하는 RTE(Run Time Environment) 계층(30)과, 상기 RTE 계층(30) 위에서 실행되는 복수의 응용 모듈이 포함되는 응용 계층(40)을 포함한다. 바람직하게, 추상화 모듈(20)은 시스템 추상화 모듈(21), 통신 추상화 모듈(22), I/O 추상화 모듈(23) 및 메모리 추상화 모듈(24)을 포함한다. 시스템 추상화 모듈(21)은, 에러 메니저, 워치 독, 운영체제(OS)의 시스템 라이브러리 함수 등과 같이 배터리 관리 프로그램(10)의 모든 계층에서 공통적으로 사용될 수 있는 추상화 모듈이다. 통신 추상화 모듈(22)은 CAN(Controller Area Network), LIN(Local Interconnect Network), FlexRay 등과 같은 통신이나 응용 계층(40)에서 실행되는 서로 다른 응용 모듈 사이의 통신을 위한 네트워크 인터페이스 제공 등을 담당하는 추상화 모듈이다. I/O 추상화 모듈(23)은 배터리(2)의 전압, 전류, 온도 등을 측정하는 측정 요소와의 인터페이스를 형성하는 추상화 모듈이다. 메모리 추상화 모듈(24)은 플래쉬 메모리나 EEPROM과 같은 메모리 디바이스와 읽기, 쓰기를 위한 인터페이스를 형성하는 추상화 모듈이다. 바람직하게, 응용 계층(40)은 실행 관리 모듈(41) 및 적어도 하나의 응용 모듈(42)을 포함한다. 실행 관리 모듈(41)는 미리 설정된 시점에 RTE 계층(30)을 통해 응용 모듈(42)을 호출하여 실행하는 모듈이다. 실행 관리 모듈(41)은 RTE 계층(30)을 통해 응용 모듈(42)의 실행을 호출할 수 있는 프로그램 인터페이스를 포함할 수 있다. 응용 모듈(42)은 배터리 관리 시스템(3)의 기능을 구현한다. 응용 모듈(42)은 배터리 관리 시스템(3)의 기능 별로 독립적으로 구비될 수 있다. 응용 모듈(42)은 주기적으로 배터리 관리 데이터를 생성한다. 또한 응용 모듈(42)은 도 3에 도시된 바와 같이 메모리 디바이스(50)에 미리 할당된 원본 저장 영역(51), 백업 저장 영역(52) 및 체크섬 저장 영역(53)에 각각 배터리 관리 데이터의 원본(A), 백업본(B) 및 체크섬(C)을 덮어쓰기 한다. 일 예에서, 원본 저장 영역(51), 백업 저장 영역(52) 및 체크섬 저장 영역(53)은 배터리 관리 프로그램(10)의 구동이 시작될 때 할당될 수 있다. 배터리 관리 데이터는 배터리(2)의 전압, 전류, 온도, 충전 상태, 출력 및 건강 상태 중 적어도 하나를 포함할 수 있다. 응용 모듈(42)의 수는 하나로 제한되지 않으며, 배터리 관리 시스템(3)이 수행하는 기능에 따라서 그 수는 얼마든지 변경될 수 있다. 응용 모듈(42)은 원본 저장 영역(51), 백업 저장 영역(52) 및 체크섬 저장 영역(53)에 저장된 기존 데이터를 새로운 데이터로 덮어쓸 때 원본 저장 영역(51)에 저장된 배터리 관리 데이터의 원본에 대한 무결성을 검증하고 문제가 확인되면 데이터의 복구를 진행한다. 데이터의 덮어 쓰기는 응용 모듈(42) 이외의 다른 응용 모듈에 의해 진행되는 것도 가능하다. 도 4는 응용 모듈(42)이 본 발명의 실시예에 따라 데이터의 덮어쓰기를 진행하기 전에 데이터의 무결성을 검증하고 무결성이 소실된 데이터를 복구하는 과정을 보여주는 순서도이다. 먼저, 단계 S10에서, 실행 관리 모듈(41)이 미리 설정된 스케쥴에 따라 RTE 계층(30)을 통해 응용 모듈(42)을 실행한다. 단계 S10 이후에 단계 S20이 진행된다. 단계 20에서, 응용 모듈(42)은 신규 배터리 관리 데이터를 생성한다. 일 예로, 응용 모듈(42)은 배터리(2)의 현재 전압을 신규 배터리 관리 데이터로서 생성할 수 있다. 즉, 응용 모듈(42)은 RTE 계층(30)을 통해 I/O 추상화 모듈(23)을 호출하여 배터리(2)의 전압 값을 요구한다. 그러면, I/O 추상화 모듈(23)은 전압 측정 회로와 연결된 I/O 인터페이스를 통해 아날로그 신호로 입력된 후 디지털 값으로 변환되어 마이크로프로세서의 레지스터에 저장된 전압 값을 RTE 계층(30)을 통해 응용 모듈(42)로 반환한다. 그러면, 응용 모듈(42)은 배터리(2)의 전압을 배터리 관리 데이터로서 생성할 수 있다. 단계 S20 이후에 단계 S30이 진행된다. 단계 S30에서, 응용 모듈(42)은 RTE 계층(140)을 통해 메모리 추상화 모듈(24)을 호출하여 원본 저장 영역(51), 백업 저장 영역(52) 및 체크섬 저장 영역(53)에 저장된 기존 배터리 관리 데이터의 원본, 백업본 및 기존 체크섬의 반환을 요청한다. 그러면, 메모리 추상화 모듈(24)은 원본 저장 영역(51), 백업 저장 영역(52) 및 체크섬 저장 영역(53)에 저장된 기존 배터리 관리 데이터의 원본(A), 백업본(B) 및 체크섬(C)을 읽어서 RTE 계층(30)을 통해 응용 모듈(42)로 반환한다. 단계 S30 이후에 단계 S40이 진행된다. 단계 S40에서, 응용 모듈(42)은 반환 받은 기존 배터리 관리 데이터의 원본에 대한 체크섬을 생성하고, 생성된 체크섬과 반환 받은 체크섬을 서로 비교한다. 체크섬은 원본 데이터의 비트 합산 값일 수 있다. 또는, 체크섬은 원본 데이터에 대해 해쉬 알고리즘을 적용한 값일 수 있다. 또는, 체크섬은 원본 데이터에 대해 기존에 알려진 다른 체크섬 알고리즘을 적용한 값일 수 있다. 체크섬의 계산 방식은 당업계에 잘 알려져 있으므로 자세한 설명은 생략한다. 만약 2개의 체크섬이 일치하면 응용 모듈(42)은 기존 배터리 관리 데이터의 원본에 무결성이 있는 것으로 판별하고 단계 S50을 진행한다. 단계 S50에서, 응용 모듈(42)은 신규 배터리 관리 데이터에 대한 신규 체크섬을 계산하고, RTE 계층(30)을 통해 메모리 추상화 모듈(24)을 호출하여 신규 배터리 데이터의 원본, 백업본 및 체크섬을 원본 저장 영역(51), 백업 저장 영역(52) 및 체크섬 저장 영역(53)에 덮어 쓸 것을 요청한다. 그러면, 메모리 추상화 모듈(24)은 신규 배터리 관리 데이터의 원본, 백업본 및 체크섬을 각각 원본 저장 영역(51), 백업 저장 영역(52) 및 체크섬 저장 영역(53)에 덮어 쓴다. 단계 S50이 완료되면, 응용 모듈(42)은 배터리 관리 데이터의 생성 및 갱신 과정을 종료한다. 한편, 2개의 체크섬이 일치하지 않으면, 응용 모듈(42)은 원본 저장 영역(51)에 저장된 기존 배터리 관리 데이터의 원본(A)에 무결성이 없는 것으로 판별하고 단계 S60을 진행한다. 단계 S60에서, 응용 모듈(42)은 RTE 계층(30)을 통해 메모리 추상화 모듈(24)을 호출하여 원본 저장 영역(51)에 저장된 데이터를 백업본 저장 영역(52)에 저장된 데이터로 덮어 쓰도록 요청한다. 이로써, 무결성이 없는 기존 배터리 관리 데이터의 원본이 복구된다. 단계 S60 이후에 단계 S70이 진행된다. 단계 S70에서, 응용 모듈(42)은 RTE 계층(30)을 통해 메모리 추상화 모듈(24)을 호출하여 신규 배터리 데이터의 원본, 백업본 및 체크섬을 원본 저장 영역(51), 백업 저장 영역(52) 및 체크섬 저장 영역(53)에 덮어 쓸 것을 요청한다. 그러면, 메모리 추상화 모듈(24)은 신규 배터리 관리 데이터의 원본, 백업본 및 체크섬을 원본 저장 영역(51), 백업 저장 영역(52)  및 체크섬 저장 영역(53)에 덮어 쓴다. 덮어 쓰기가 완료되면, 응용 모듈(42)은 배터리 관리 데이터의 생성 및 갱신 프로세스를 종료한다. 한편, 기존 배터리 관리 데이터의 원본에 무결성이 없는 경우, 응용 모듈(42)은 단계 S30에서 반환 받은 기존 배터리 관리 데이터의 원본과 백업본에 대해 XOR 연산을 수행하여 백업본과 차이가 있는 원본 데이터의 비트를 식별할 수 있다. 또한, 응용 모듈(42)은 RTE 계층(30)을 통해 메모리 추상화 모듈(24)을 호출하여 미리 할당된 로그 저장 영역에 식별된 비트 정보를 저장하도록 요청할 수 있다. 그러면, 메모리 추상화 모듈(24)은 로그 저장 영역에 로그를 저장하고, 저장 완료 메시지를 RTE 계층(30)을 통해 응용 모듈(42)로 반환할 수 있다. 로그 저장 영역에 저장된 로그는 배터리 관리 데이터의 원본에 대한 무결성이 손상되는 원인을 분석하는데 활용 가능하다. 한편, 단계 S30에 있어서, 반환 받은 체크섬이 null 이면, 응용 모듈(42)은 메모리 디바이스에 배터리 관리 데이터가 저장되지 않은 것으로 판별할 수 있다. 이 경우, 응용 모듈(42)은 RTE 계층(30)을 통해 메모리 추상화 모듈(24)을 호출하여 신규 배터리 관리 데이터의 원본, 백업본 및 체크섬을 원본 저장 영역(51), 백업 저장 영역(52) 및 체크섬 저장 영역(53)에 저장할 것을 요청할 수 있다. 그러면, 메모리 추상화 모듈(24)은 신규 배터리 관리 데이터의 원본, 백업본 및 체크섬을 원본 저장 영역(51), 백업 저장 영역(52) 및 체크섬 저장 영역(53)에 저장하고 저장 완료 메시지를 RTE 계층을 통해 응용 모듈(42)로 반환할 수 있다. 본 발명에 있어서, 데이터의 무결성을 검증하고 오류가 있는 데이터를 백업본으로 복구하는 기능만을 담당하는 검증 복구 모듈이 별도로 설계될 수 있다. 그러한 경우, 응용 모듈(42)은 신규 배터리 관리 데이터의 원본, 백업본 및 체크섬을 메모리 디바이스에 저장하기 전에 RTE 계층(30)을 통해 검증 복구 모듈을 호출하여 메모리 디바이스에 저장된 원본 데이터이 검증을 요구하고 다시 RTE 계층을 통해 검증 결과를 받환 받을 수 있다. 만약, 반환 메시지가 무결성이 검증되었음을 나타내는 메시지를 포함하면, 응용 모듈(42)은 단계 S50을 동일하게 진행하여 메모리 디바이스에 저장된 기존 배터리 관리 데이터의 원본, 백업본 및 체크섬을 신규 배터리 관리 데이터의 원본, 백업본 및 체크섬으로 덮어쓰기 한다. 반면, 반환 메시지가 원본 데이터의 무결성이 없음을 나타내는 메시지를 포함하면, 응용 모듈(42)은 단계 S60 및 S70을 동일하게 진행하여 기존 배터리 관리 데이터의 원본을 백업본으로 복구한 후 메모리 디바이스에 저장된 기존 배터리 관리 데이터의 원본, 백업본 및 체크섬을 신규 배터리 관리 데이터의 원본, 백업본 및 체크섬으로 덮어쓰기 한다. 검증 복구 모듈은 베이직 계층(BW)이나 응용 계층(40)에 포함될 수 있다. 데이터의 무결성 검증과 복구 과정에 안전성을 부여하기 위해, 검증 복구 모듈은 베이직 계층(BW)에 포함되는 것이 보다 바람직하다. 하지만 본 발명이 이에 한하는 것은 아니다. 본 발명에 있어서, 응용 모듈(42)은 컴퓨터가 읽을 수 있는 코드 체계로 작성되어 컴퓨터가 읽을 수 있는 기록매체에 수록될 수 있다. 바람직하게, 기록매체는, 배터리 관리 시스템(3)에 포함된 마이크로프로세서가 접근 가능한 메모리 디바이스일 수 잇다. 또한, 기록매체는 배터리 관리 시스템(3) 또는 다른 컴퓨터에 포함된 마이크로프로세서에 의해 접근이 가능한 것이라면 그 종류에 특별한 제한이 없다. 일 예로서, 기록매체는 ROM, RAM, 레지스터, 플래쉬 메모리, CD-ROM, 자기 테이프, 하드 디스크, 플로피디스크 및 광 데이터 기록장치를 포함하는 군에서 선택된 적어도 하나 이상을 포함한다. 또한, 응용 모듈(42)을 구성하는 코드 체계는 캐리어 신호로 변조되어 특정한 시점에 통신 캐리어에 포함될 수 있고, 네트워크로 연결된 컴퓨터에 분산되어 저장되고 실행될 수 있다. 본 발명의 다양한 실시 양태를 설명함에 있어서, '~모듈'이라고 명명된 구성 요소들은 물리적으로 구분되는 요소들이라고 하기 보다 기능적으로 구분되는 요소들로 이해되어야 한다. 따라서 각각의 구성요소는 다른 구성요소와 선택적으로 통합되거나 각각의 구성요소가 제어 로직(들)의 효율적인 실행을 위해 서브 구성요소들로 분할될 수 있다. 하지만 구성요소들이 통합 또는 분할되더라도 기능의 동일성이 인정될 수 있다면 통합 또는 분할된 구성요소들도 본 발명의 범위 내에 있다고 해석되어야 함은 당업자에게 자명하다. 이상에서 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.