KR20050024901A - 캔 통신을 이용한 제어기 프로그램 설치방법 - Google Patents

캔 통신을 이용한 제어기 프로그램 설치방법 Download PDF

Info

Publication number
KR20050024901A
KR20050024901A KR1020030062135A KR20030062135A KR20050024901A KR 20050024901 A KR20050024901 A KR 20050024901A KR 1020030062135 A KR1020030062135 A KR 1020030062135A KR 20030062135 A KR20030062135 A KR 20030062135A KR 20050024901 A KR20050024901 A KR 20050024901A
Authority
KR
South Korea
Prior art keywords
program
object code
information
controller
code file
Prior art date
Application number
KR1020030062135A
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 KR1020030062135A priority Critical patent/KR20050024901A/ko
Publication of KR20050024901A publication Critical patent/KR20050024901A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

전기 자동차에서 MCU의 제어 프로그램을 플래시 메모리에 프로그래밍 함에 있어 제어 프로그램의 오브젝트 코드를 해석하여 각 세그먼트 단위로 분해한 후 CAN 버스를 통해 전송하도록 함으로써 고속의 데이터 전송과 MCU의 실차 장착상태에서 프로그래밍이 수행되도록 하는 것으로,
PC 단말기와 제어기를 CAN 버스로 접속된 상태에서 프로그램 셋업 모드가 설정되는지를 판단하는 과정과, 프로그램 셋업 모드가 설정되면 제어기에 설정하기 위한 프로그램의 오브젝트 코드 파일을 해석하여 그에 대한 정보를 제어기에 전송하는 과정과, 쓰기 허락 명령의 수신에 따라 해석된 오브젝트 코드 파일을 세그먼트 단위로 분해하여 전송하는 과정 및, 제어기는 세그먼트 단위로 분해되어 수신되는 프로그램 데이터를 상기 오브젝트 코드 파일의 해석 정보에 따라 플래시 메모리의 각 섹터에 기록하는 과정을 포함하는 것을 특징으로 한다.

Description

캔 통신을 이용한 제어기 프로그램 설치방법{PROGRAM SETUP METHOD OF MOTOR CONTROL UNIT ON ELECTRIC VEHICLE USING CAN COMMUNICATION}
본 발명은 전기자동차에서 모터 제어기(Motor Control Unit ; 이하 'MCU' 라 한다.)에 제어 프로그램을 설치하는 방법에 관한 것으로, 더 상세하게는 MCU의 제어 프로그램을 플래시 메모리(Flash Memory)에 프로그래밍 함에 있어 제어 프로그램의 오브젝트 코드(Object Code)를 해석하여 각 세그먼트 단위로 CAN 버스를 통해 전송하도록 함으로써 고속의 데이터 전송과 MCU의 실차 장착상태에서 프로그래밍이 수행되도록 하는 캔 통신을 이용한 제어기 프로그램 설치방법에 관한 것이다.
일반적으로 전기 자동차에서 운전자의 주행 의지와 차량의 상태 조건에 따라 모터의 구동 토크 및 속도 등을 전반적으로 제어하는 MCU는 각종 동작의 제어에 필요한 제어 알고리즘을 플래시 메모리에 저장하는 방법으로 설계하여 향후 제어 알고리즘의 업그레이드를 손쉽게 수행할 수 있다.
플래시 메모리는 EEPROM의 일종으로, 일반적인 EEPROM과는 달리 블록 단위로 프로그래밍 할 수 있으며, RAM(Random Access Memory)과 ROM(Read Only Memory)의 중간적인 성격을 갖는다.
따라서, 플래시 메모리의 경우 평상시에는 ROM의 역할을 수행하지만 필요에 따라 내부 데이터를 다른 것으로 써 넣는 것이 가능하다.
종래에 MCU내의 플래시 메모리에 제어 프로그램을 프로그래밍하기 위해서는 고가의 플래시 메모리 프로그래밍 툴(Tool)을 이용하였다.
하지만, 이러한 프로그래밍 툴을 이용한다 할지라도 실제로 플래시 메모리의 모든 영역을 지우고 다시 프로그래밍 하므로 제어 프로그램을 기록하는데 많은 시간이 걸리는 단점이 있다.
또한, 차량 MCU를 분리한 다음 프로그래밍 툴이 설치되어 있는 PC 단말기가 있는 곳으로 가져와서 제어 프로그램을 프로그래밍 해야만 하므로 MCU의 개발시 필수적인 프로그램을 수정하여 적용하는데 있어 많은 제약과 어려움이 수반되며, 이로 인하여 프로그램의 개발에 많은 시간과 인력이 소비되는 문제점이 발생한다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 발명한 것으로, 그 목적은 MCU의 제어 프로그램을 플래시 메모리에 프로그래밍 함에 있어 제어 프로그램의 오브젝트 코드를 해석하여 각 세그먼트 단위로 CAN 버스를 통해 전송하도록 함으로써 고속의 데이터 전송으로 프로그램밍 시간을 단축하도록 한 것이다.
또한, MCU의 실차 장착상태에서 별도의 통신 라인을 적용하지 않고, 차량내의 CAN 버스를 통한 프로그래밍으로 프로그램의 수정 적용이 편리하여, 프로그램의 개발 시간을 단축할 수 있도록 한 것이다.
또한, 고가의 플래시 메모리 프로그래밍 툴을 적용하지 않아 개발 원가를 절감하도록 한 것이다.
상기와 같은 목적을 실현하기 위한 본 발명은 PC 단말기와 제어기를 CAN 버스로 접속된 상태에서 프로그램 셋업 모드가 설정되는지를 판단하는 과정과; 프로그램 셋업 모드가 설정되면 제어기에 설정하기 위한 프로그램의 오브젝트 코드 파일을 해석하여 그에 대한 정보를 제어기에 전송하는 과정과; 쓰기 허락 명령의 수신에 따라 해석된 오브젝트 코드 파일을 세그먼트 단위로 분해하여 전송하는 과정 및; 제어기는 세그먼트 단위로 분해되어 수신되는 프로그램 데이터를 상기 오브젝트 코드 파일의 해석 정보에 따라 플래시 메모리의 각 섹터에 기록하는 과정을 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 일 실시예를 상세하게 설명하면 다음과 같다.
본 발명에서 CAN 통신을 이용하여 제어기에 대한 제어 프로그램을 프로그래밍하기 위해서는 첨부된 도 1 및 도 2에서 알 수 있는 바와 같이, MCU의 플래시 메모리에 프로그래밍할 제어 프로그램이 설정되는 PC 단말기(10)와 MCU(20)를 CAN 버스로 접속한다(S101).
이후, 프로그램 셋업 모드가 설정되는지의 여부를 검출하여(S102), 프로그램 셋업 모드가 설정되지 않은 상태이면 상기 S101의 과정으로 리턴하여 프로그램 셋업 모드의 설정을 검출하고, 프로그램 셋업 모드가 설정되면 PC 단말기(10)내의 운용 프로세스는 프로그래밍을 위한 제어 프로그램에서 오브젝트 코드 파일을 해석한다(S103).
오브젝트 코드 파일의 해석이 완료되면, 이를 세그먼트 단위로 분해한 후(S104) 첨부된 도 3과 같은 CAN 메시지 형식으로 가공하여 접속된 CAN 버스를 통해 MCU(20)측에 전송한다(S105).
이때, 전송되는 CAN 메시지의 명령어(Command)는 첨부된 도 4와 같은 구조의 형식으로 이루어진다.
도 4에서 각 항목은 바이트(Byte) 단위이며, 세그먼트 인덱스(Segment Index)는 전송할 오브젝트 데이터의 번호를 의미한다.
또한 오프셋(Offset)은 MCU(20)내의 플래시 메모리에 쓰여질 베이스 어드레스(Base Address)를 지정하며, 플래그(Flag)는 전송 상태를 표시하는 것으로 전송시 에러 발생 여부를 나타낸다.
따라서, MCU(20)내의 플래시 메모리는 CAN 버스를 통해 전송되는 CAN 메시지의 저장으로 프로그램을 셋업한다(S106).
상기한 프로그래밍 과정에서 프로그래밍 명령 송수신 절차에 대하여 첨부된 도 5를 참조하여 설명하면 다음과 같다.
도 5에서 원문자 뒤의 cmd는 명령어의 형식에서 설정된 명령어의 번호를 지칭하는 것으로, 프로그램 설치에 사용되는 명령어의 번호는 100,1,2,3,4,5,6 의 7가지를 사용하며, 이 명령어의 번호 이후에 오는 항목들이 각 명령어 형식에 기록되는 데이터의 내용이다.
먼저, PC 단말기(10)는 MCU(20)측에 프로그램 셋업 초기화 조건 확인을 위한 명령어 100(① cmd 100)을 전송하여 현재 PC 단말기(10)와 MCU(20)간의 상태가 프로그램 CAN 메시지의 전송이 가능한 상태, 즉 프로그램 셋업 초기화가 설정되어 있는지를 확인한다(A1).
이때, MCU(20)로부터 프로그램 셋업 초기화 조건 확인에 대한 명령어 100(① cmd 100)이 응답으로 검출되면(A2), PC 단말기(10)는 도 4의 명령어 형식에서 명령어 1(④ cmd 1)을 통해 오브젝트 코드 파일의 해석으로부터 분해된 세그먼트의 총수(segment number)에 대한 정보를 MCU(20)측에 전달한다(A3).
이후, 명령어 2(② cmd 2)를 통해 전송되는 오브젝트 코드의 번호(segment index)와 이 오브젝트 코드에 해당하는 데이터를 기록할 베이스 어드레스에 대한 정보를 전송하고(A4), 명령어 3(② cmd 3)을 통해 오브젝트 코드의 번호(segment index) 및 오브젝트 코드의 크기(size)를 분해된 세그먼트의 총 수 만큼 순서대로 전송한다(A5).
상한 A1-A5의 동작 수행에 따라 MCU(20)로부터 명령어 1(① cmd 1)을 통해 MCU(20)내의 플래시 메모리에 프로그램 데이터의 쓰기를 허용하는 정보가 PC 단말기(10)에 접수되면(A6), PC 단말기(10)는 명령서 4(④ cmd 4)를 통해 오브젝트 코드의 번호(segment index)를 전송하고(A7), 이어서 명령서 5(③ cmd 5)를 통해 기록할 오브젝트 코드 데이터를 7바이트인 세그먼트 단위로 분할하여 MCU(20)에 전송한다(A8)(A9).
상기한 바와 같이 오브젝트 코드 데이터가 세그먼트 단위로 분할되어 MCU(20)에 수신되면 MCU(20)내의 플래시 메모리에 쓰기가 수행되며, 전송된 데이터의 쓰기에 대한 성공 여부에 대한 정보가 명령어 3(⑤ cmd 3)으로 PC 단말기(10)에 전송한다(A10).
이때, PC 단말기(10)는 명령어 3(⑤ cmd 3)의 플래그(flag)에 설정된 정보와 세그먼트 인덱스(segment index)의 정보를 분석하여 전송된 데이터의 쓰기가 실패한 것으로 판단되면, 직전에 전송한 데이터를 전술한 바와 같은 동작의 반복으로 수행하고, 정상적인 쓰기가 수행된 것으로 판단되면 다음 오브젝트 코드에 대하여 세그먼트 단위로 분할하여 전송하는 동작을 반복한다.
이후, 명령어 2(① cmd 2)를 통해 전송된 모든 데이터에 대하여 쓰기 완료에 대한 정보가 MCU(20)로부터 PC 단말기(10)에 검출되면, 프로그램 설치에 대한 동작을 종료한다(A11).
이상에서 설명한 바와 같이 본 발명은 제어기에 대한 제어 프로그램을 플래시 메모리에 프로그래밍 함에 있어 CAN 버스를 이용함으로써 프로그래밍 시간이 단축되고, 제어기의 실차 장착상태에서 제어 프로그램의 설정으로 실차 대상의 시험으로 제어기 및 프로그램의 개발 시간을 단축하며, 고가의 플래시 메모리 프로그래밍 툴을 사용하지 않아도 되므로 개발비를 절감되며, CAN 통신이 연결되는 모든 제어기에 대하여 범용적으로 적용한다.
도 1은 본 발명에 따른 프로그램 설치용 PC 단말기와 MCU의 CAN 통신 연결을 도시한 도면.
도 2는 본 발명에 따라 제어기 프로그램 설치에 대한 흐름도.
도 3은 본 발명에 따른 CAN 통신을 이용한 제어기 프로그램 설치에서 CAN 메시지의 형식을 정의한 도면.
도 4는 본 발명에 따른 CAN 통신을 이용한 제어기 프로그램 설치에서 명령어 형식을 정의한 도면.
도 5는 본 발명에 따른 CAN 통신을 이용한 제어기 프로그램 설치에서 프로그램 설치 프로토콜에 대한 흐름도.

Claims (6)

  1. PC 단말기와 제어기를 CAN 버스로 접속된 상태에서 프로그램 셋업 모드가 설정되는지를 판단하는 과정과;
    프로그램 셋업 모드가 설정되면 제어기에 설정하기 위한 프로그램의 오브젝트 코드 파일을 해석하여 그에 대한 정보를 제어기에 전송하는 과정과;
    쓰기 허락 명령의 수신에 따라 해석된 오브젝트 코드 파일을 세그먼트 단위로 분해하여 전송하는 과정 및;
    제어기는 세그먼트 단위로 분해되어 수신되는 프로그램 데이터를 상기 오브젝트 코드 파일의 해석 정보에 따라 플래시 메모리의 각 섹터에 기록하는 과정을 포함하는 것을 특징으로 하는 캔 통신을 이용한 제어기 프로그램 설치방법.
  2. 제1항에 있어서,
    상기 PC 단말기와 제어기는 정의된 CAN 통신 규약으로 상호 통신하여 제어 프로그램을 플래시 메모리에 실시간으로 프로그래밍 하는 것을 특징으로 하는 캔 통신을 이용한 제어기 프로그램 설치방법.
  3. 제1항에 있어서,
    상기 오브젝트 코드 파일을 해석으로 전송되는 정보는 전송할 세그먼트의 총수와, 오브젝트 데이터의 번호, 세그먼트에 해당하는 데이터를 기록할 베이스 어드레스, 세그먼크의 크기에 대한 정보를 포함하는 것을 특징으로 하는 캔 통신을 이용한 제어기 프로그램 설치방법.
  4. 제1항에 있어서,
    상기 쓰기 허락 명령의 수신에 따라 세그먼트 단위로 분해되는 오브젝트 코드 파일은 7바이트 단위로 전송되는 것을 특징으로 하는 캔 통신을 이용한 제어기 프로그램 설치방법.
  5. 제1항에 있어서,
    상기 PC 단말기는 MCU로부터 수신되는 플래그 정보에 포함된 기록 완료 여부의 정보에 따라 분해된 오브젝트 코드 파일의 반복 전송 혹은 연장 전송을 수행하는 것을 특징으로 하는 캔 통신을 이용한 제어기 프로그램 설치방법.
  6. PC 단말기와 제어기는 설정된 명령어의 상호 교환을 통해 프로그램 데이터의 전송이 가능한 상태인지를 판단하는 과정과;
    프로그램 데이터의 상호 교환이 가능한 상태이면 PC 단말기는 프로그램 데이터의 오브젝트 코드 파일을 해석하여 전송할 세그먼트의 총 수에 대한 정보를 제이기에 전송하는 과정과;
    세그먼트의 번호와 이 세그먼트에 해당하는 데이터를 기록할 베이스 어드레스 정보, 세그먼트 크기 정보를 세그먼트 총 수 만큼 순서대로 전송하는 과정과;
    제어기로부터 쓰기 허용 정보가 수신되면 기록할 오브젝트 코드 파일을 7바이트의 세그먼트 단위로 분해하여 전송하는 과정과;
    제어기에서 수신되는 플래그 정보가 정상적인 기록 완료로 판단되면 이후의 데이터를 상술한 과정에 따라 반복 전송하고, 정상적인 기록 실패로 판단되면 이전 전송 데이터를 재 전송하는 과정 및;
    모든 프로그램 데이터의 전송 완료 후 기록 완료에 대한 응답 정보가 수신되면 프로그램의 설정 동작을 종료하는 과정을 포함하는 것을 특징으로 하는 캔 통신을 이용한 제어기 프로그램 설치방법.
KR1020030062135A 2003-09-05 2003-09-05 캔 통신을 이용한 제어기 프로그램 설치방법 KR20050024901A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030062135A KR20050024901A (ko) 2003-09-05 2003-09-05 캔 통신을 이용한 제어기 프로그램 설치방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030062135A KR20050024901A (ko) 2003-09-05 2003-09-05 캔 통신을 이용한 제어기 프로그램 설치방법

Publications (1)

Publication Number Publication Date
KR20050024901A true KR20050024901A (ko) 2005-03-11

Family

ID=37231965

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030062135A KR20050024901A (ko) 2003-09-05 2003-09-05 캔 통신을 이용한 제어기 프로그램 설치방법

Country Status (1)

Country Link
KR (1) KR20050024901A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224362A (zh) * 2015-09-18 2016-01-06 深圳市新产业生物医学工程股份有限公司 上位机对下位机进行程序升级的方法及系统
CN111930656A (zh) * 2020-08-11 2020-11-13 东风电子科技股份有限公司 基于Labview实现车辆VIN码刷写校验的系统及其方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224362A (zh) * 2015-09-18 2016-01-06 深圳市新产业生物医学工程股份有限公司 上位机对下位机进行程序升级的方法及系统
CN111930656A (zh) * 2020-08-11 2020-11-13 东风电子科技股份有限公司 基于Labview实现车辆VIN码刷写校验的系统及其方法

Similar Documents

Publication Publication Date Title
US5799168A (en) Standardized flash controller
CN101110039B (zh) 终端设备自安装及自启动系统及方法
CN101454746B (zh) 一种以多功能存储卡通讯的方法
CN102968114A (zh) 一种支持多协议的生产线终端刷写设备以及采用该设备进行刷写的方法
CN111488165B (zh) 车辆ecu通过脚本升级的方法及其系统
CN110297608B (zh) 数据的处理方法、装置和存储介质
KR20170076106A (ko) 제어회로 및 제어회로를 포함하는 메모리 장치
CN112947961A (zh) 基于可视化图形配置的车辆刷写方法及设备
WO2022116515A1 (zh) 免拆板ecu跨厂家刷写系统及方法
CN106126465B (zh) 一种数据传输方法及装置
CN111190629A (zh) 一种嵌入式终端升级软件包及其解析方法
CN112181460B (zh) 程序固件升级方法、装置、电子设备及存储介质
KR20050024901A (ko) 캔 통신을 이용한 제어기 프로그램 설치방법
JP3068353U (ja) 印刷機の制御のための装置
CN101655707A (zh) 上位机对电动车控制器参数的配置方法
CN115562655A (zh) 基于bms的对象字典访问方法、系统、电子设备、存储介质
CN115599424A (zh) 一种采用cpu远程更新fpga固件的方法
CN110362526B (zh) Spi从机设备、存储和适配方法及计算机存储介质
CN111371799B (zh) Mctp控制器收发数据的控制方法、装置及设备
CN114594752B (zh) 一种拖拉机控制单元软件刷写方法及存储介质
CN101561760A (zh) 接口卡固件升级方法
US20090300223A1 (en) Method for communication between an electronic device and a target input/output device in a secure digital input/output card through a secure digital interface, and system for implementing the same
US20030149829A1 (en) Implicit addressing sequential media drive with intervening converter simulating explicit addressing to host applications
CN112099812B (zh) Flash物料的识别、标识方法、系统、设备及介质
CN116884470B (zh) 存储产品测试方法和系统、电子设备、存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application