KR101334017B1 - 차량 네트워크의 메시지 무결성 체크 시스템 및 방법 - Google Patents

차량 네트워크의 메시지 무결성 체크 시스템 및 방법 Download PDF

Info

Publication number
KR101334017B1
KR101334017B1 KR1020120070829A KR20120070829A KR101334017B1 KR 101334017 B1 KR101334017 B1 KR 101334017B1 KR 1020120070829 A KR1020120070829 A KR 1020120070829A KR 20120070829 A KR20120070829 A KR 20120070829A KR 101334017 B1 KR101334017 B1 KR 101334017B1
Authority
KR
South Korea
Prior art keywords
message
checksum
count
ecu
value
Prior art date
Application number
KR1020120070829A
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 KR1020120070829A priority Critical patent/KR101334017B1/ko
Application granted granted Critical
Publication of KR101334017B1 publication Critical patent/KR101334017B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • 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

  • Small-Scale Networks (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

각 ECU 간에 전송되는 메시지의 무결성 체크를 위한 체크섬 체크방법과 롤링카운트 체크방법을 결합할 수 있도록 메시지가 전송될 때마다 메시지 내에서 체크섬이 위치한 메시지 맵의 N번 바이트를 N+1번째 바이트로 위치 이동시킴으로써 메시지에서 무결성 체크를 위해 사용되는 비트를 감소시킬 수 있어 정해진 비트(예를 들면 64 bit)의 메시지에 보다 많은 정보를 담아 전송할 수 있는 차량 네트워크의 메시지 무결성 체크 시스템 및 방법을 개시한다.

Description

차량 네트워크의 메시지 무결성 체크 시스템 및 방법{APPARATUS OF CHECKING A VALIDITY OF MESSAGE ON NETWORK FOR A VEHICLE AND METHOD OF THEREOF}
본 발명은 차량 네트워크의 메시지 무결성 체크 시스템 및 방법에 관한 것으로, 보다 상세하게는 캔(Controller Area Network ; CAN) 프로토콜을 사용하는 차량 네트워크에서 메시지의 무결성을 체크하는 장치 및 방법에 관한 것이다.
일반적으로, CAN은 차량용 네트워크를 위해 고안된 시리얼 통신 네트워크의 통신 방식이다. 장점으로는 2개의 선으로 차량 내의 여러 개의 전자제어장치(ECU)를 병렬로 연결하여 ECU 상호간의 정보 교환을 우선순위대로 처리할 수 있으며, 네트워크상의 모든 디바이스는 전송되는 모든 메시지를 확인할 수 있으며, 해당 메시지를 필터링 되어야 할지 여부를 결정할 수 있다.
ECU 간에는 정보 교환을 위해 메시지를 주고받는 데, 이러한 메시지는 중도에 그 일부가 손실될 수 있다. 이러한 이유로, 특정 ECU에서 송신된 메시지를 수신한 타 ECU는 유효하지 않은 데이터를 처리함으로 인해 동작상에 문제가 발생할 수 있다.
따라서 수신된 메시지에 대한 무결성 체크가 필요하다.
기존에는 이러한 메시지의 무결성 체크를 위하여 롤링카운트(Rolling count) 체크방법과 체크섬(checksum) 체크방법이 사용된다.
롤링카운트 체크방법은 메시지 내부의 데이터 필드의 n 비트(n-bit)의 값을 메시지 전송될 때마다 1씩 증가시켜 수신자로 하여금 메시지가 빠짐없이 수신되었는지를 확인하는 방법이다.
체크섬 체크방법은 메시지 전송시 지정된 계산공식으로 계산한 체크섬 값을 메시지 내부의 데이터 필드에 포함하여 전송함으로써 수신자로 하여금 이 체크섬 값을 체크하는 것에 의해 신호의 왜곡을 알 수 있게 하는 방법이다.
위 두 가지 방식은 모두 무결성을 판단하는 방법으로 롤링카운트와 체크섬이 메시지 내부의 데이터 필드의 8 bytes 중 n 번째 바이트의 고정된 위치를 가진다. 예를 들면, 그 크기는 대략 체크섬이 8 bit, 롤링카운트가 4 bit이다. 이로 인해 한 개의 메시지의 최대 전송 가능한 데이터 량은 이 12 bit를 제외한 52 bit로 줄어들게 된다.
따라서 기존에는 차량 내의 ECU의 증가와 신호 증가에 따른 메시지 증가로 인해 CAN 버스의 부하가 포화되는 현상이 발생한다.
본 발명의 일 측면은 각 ECU 간에 전송되는 메시지의 무결성 체크를 위한 체크섬 체크방법과 롤링카운트 체크방법을 결합하여 메시지에서 무결성 체크를 위해 사용되는 비트를 감소시킬 수 있는 차량 네트워크의 메시지 무결성 체크 시스템 및 방법을 제공한다.
이를 위해 본 발명의 일 측면에 따른 차량 네트워크의 메시지 무결성 체크 시스템은 복수의 ECU가 캔 통신 가능하도록 연결된 차량 네트워크에서 상기 복수의 ECU 간에 송수신되는 메시지의 데이터 필드에 포함된 체크섬값을 확인하여 상기 메시지의 무결성을 체크하는 시스템에 있어서, 상기 메시지 전송시 상기 데이터 필드에서 상기 체크섬값의 저장위치를 변경시키고, 상기 체크섬값의 저장위치가 변경된 메시지를 전송하는 송신 ECU; 상기 송신 ECU로부터 전송된 상기 메시지를 수신하고, 상기 메시지의 수신횟수를 근거로 하여 상기 수신된 메시지의 데이터 필드에서 상기 체크섬값이 저장된 위치를 추정하고, 상기 추정된 위치에 상기 체크섬값의 존재여부에 따라 체크섬의 정상여부 및 상기 송신 ECU로부터의 메시지 수신횟수에 기반한 롤링카운트 정상여부를 판단하고, 상기 판단된 롤링카운트 및 체크섬의 정상여부에 따라 상기 메시지의 무결성 여부를 판단하는 수신 ECU;를 포함한다.
여기서, 상기 데이터 필드는 복수의 바이트 필드를 포함하고, 상기 송신 ECU는 상기 메시지를 전송할 때마다 상기 체크섬값의 저장위치를 N 번째 바이트 필드에서 N+1 번째 바이트 필드로 변경시키는 것을 포함한다.
여기서, 상기 수신 ECU는, 상기 체크섬값이 상기 추정된 위치에 존재하면 상기 롤링카운트 및 체크섬이 정상인 것으로 판단하여 상기 수신된 메시지를 정상으로 판단하고, 상기 체크섬값이 상기 추정된 위치가 아닌 다른 위치에 존재하면 상기 롤링카운트에 대한 에러카운트를 +1 증가시키고, +1 증가된 롤링카운트 에러카운트값이 제1 기준카운트값이상이면 상기 롤링카운트 에러로 판단하여 상기 수신된 메시지를 비정상으로 판단하고, 상기 체크섬값이 상기 추정된 위치는 물론 다른 위치에도 존재하지 않으면 상기 체크섬에 대한 에러카운트를 +1 증가시키고, +1 증가된 체크섬 에러카운트값이 제2 기준카운트값이상이면 상기 체크섬 에러로 판단하여 상기 수신된 메시지를 비정상으로 판단하는 것을 포함한다.
본 발명의 다른 측면에 따른 차량 네트워크의 메시지 무결성 체크방법은 복수의 ECU가 캔 통신 가능하도록 연결된 차량 네트워크에서 상기 복수의 ECU 간에 송수신되는 메시지의 데이터 필드에 포함된 체크섬값을 확인하여 상기 메시지의 무결성을 체크하는 방법에 있어서, 송신 ECU가, 상기 메시지 전송시 복수의 바이트 필드를 가진 데이터 필드에서 상기 체크섬값의 저장위치를 N 번째 바이트 필드에서 N+1 번째 바이트 필드로 변경시키고; 상기 체크섬값의 저장위치가 변경된 메시지를 전송하고; 수신 ECU가, 상기 송신 ECU로부터 전송된 상기 메시지를 수신하고; 상기 송신 ECU로부터 상기 메시지를 수신한 횟수를 근거로 하여 상기 데이터 필드의 복수의 바이트 필드 중에서 상기 체크섬값이 저장된 바이트 필드를 추정하고; 상기 추정된 바이트 필드에 상기 체크섬값의 존재여부에 따라 체크섬의 정상여부 및 상기 송신 ECU로부터의 메시지 수신횟수에 기반한 롤링카운트 정상여부를 판단하고; 상기 판단된 롤링카운트 및 체크섬의 정상여부에 따라 상기 메시지의 무결성 여부를 판단하는; 것을 포함한다.
여기서, 상기 체크섬 및 롤링카운트 정상여부 판단은, 상기 수신 ECU가, 상기 체크섬값이 상기 추정된 바이트 필드에 존재하면 상기 롤링카운트 및 체크섬이 정상인 것으로 판단하고, 상기 체크섬값이 상기 추정된 바이트 필드가 아닌 다른 바이트 필드에 존재하면 상기 롤링카운트에 대한 에러카운트를 +1 증가시키고, +1 증가된 롤링카운트 에러카운트값이 제1 기준카운트값이상이면 상기 롤링카운트 에러로 판단하고, 상기 체크섬값이 상기 추정된 바이트 필드는 물론 다른 바이트 필드에도 존재하지 않으면, 상기 체크섬에 대한 에러카운트를 +1 증가시키고, +1 증가된 체크섬 에러카운트값이 제2 기준카운트값이상이면 상기 체크섬 에러로 판단하는 것을 포함한다.
이상에서 설명한 본 발명의 일 측면에 따르면, 각 ECU 간에 메시지가 전송될 때마다 메시지 내에서 체크섬이 위치한 데이터 필드의 N번째 바이트를 N+1번째 바이트로 위치 이동시킴으로써 메시지에서 무결성 체크를 위해 사용되는 비트를 감소시킬 수 있어 정해진 비트(예를 들면 64 bit)의 메시지에 보다 많은 정보를 담아 전송할 수 있다.
도 1은 본 발명의 일실시예에 따른 차량 네트워크의 메시지 무결성 체크 시스템이 적용되는 고속 CAN 통신 네트워크 토폴로지를 보인 도면이다.
도 2는 도 1에 도시된 ECU의 구성을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 차량 네트워크의 메시지 무결성 체크 시스템에서 ECU간에 전송되는 메시지의 프레임의 구조를 보인 도면이다.
도 4는 본 발명의 일실시예에 따른 차량 네트워크의 메시지 무결성 체크 시스템에서 메시지가 전송될 때마다 체크섬값이 다른 바이트 필드로 위치 이동하는 것을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 차량 네트워크의 메시지 무결성 체크 시스템에서 메시지 전송횟수가 증가할수록 데이터 필드 내의 바이트 필드에서의 체크섬값의 위치변화를 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 따른 차량 네트워크의 메시지 무결성 체크 시스템의 송신 ECU가 수신 ECU에 메시지를 전송하는 것을 설명하기 위한 제어흐름도이다.
도 7은 본 발명의 일실시예에 따른 차량 네트워크의 메시지 무결성 체크 시스템의 수신 ECU가 송신 ECU로부터 수신된 메시지를 확인하여 롤링카운트 체크와 체크섬 체크하는 것을 설명하기 위한 제어흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대해 설명한다.
도 1은 본 발명의 일실시예에 따른 차량 네트워크의 메시지 무결성 체크방법이 적용되는 고속 CAN 통신 네트워크 토폴로지를 보인 도면이다.
도 1에 도시된 바와 같이, 고속 CAN 통신 네트워크 토폴로지는 고속 CAN 버스(10)에 연결된 여러 개의 전자제어장치(ECU1~ECU10)(20-29)를 포함한다.
각 ECU는 상호 간에 통신이 가능하도록 고속 CAN 프로토콜을 기반으로 메시지 송수신하는 등의 네트워킹이 이루어진다.
고속 CAN 통신 네트워크 토폴로지의 양측 단에는 종단저항(RL)이 마련되어 있고, 각 ECU(20-29)간에는 CAN 프로토콜을 사용하며 통신한다. CAN 버스(10) 상에 있는 각 ECU(20-29)는 주기적 혹은 이벤트 방식으로 CAN 메시지를 송수신한다.
도 2는 도 1에 각 ECU의 구성을 설명하기 위한 도면이다. 여기서, 설명의 편의상 ECU1(20)을 대상으로 설명한다.
도 2에 도시된 바와 같이, ECU(20)는 ROM(30), CPU(31), RAM(32), 입출력부(33), 통신모듈(34)을 포함한다.
ROM(30)에는 어플리케이션 및 분산 제어 플랫폼과 관련되는 프로그램이 저장된다.
CPU(31)는 ROM(30)에 저장된 프로그램을 실행한다.
RAM(32)은 CPU(31)의 프로그램 실행시 작업 영역으로서 사용된다.
입출력부(33)는 각종 검출신호가 입력되고, CPU(31)가 어플리케이션 프로그램을 수행함으로 인해 생성되는 각종 제어신호가 출력된다.
통신모듈(34)은 외부의 CAN 고속버스(10)에 접속되어 다른 ECU와 고속 CAN 통신을 실시한다.
상기한 CPU(31)는 각 ECU 간에 전송되는 메시지의 무결성 체크를 위한 체크섬 체크방법과 롤링카운트 체크방법을 결합함으로써 무결성 체크를 위해 사용되는 비트가 감소된 메시지를 생성하여 다른 CPU에 전송하도록 제어하고, ROM(30)에 저장된 메시지 무결성 체크 프로그램을 로딩하여 다른 ECU의 CPU로부터 전송된 메시지의 무결성 체크 동작을 수행한다.
이하에서는 설명의 편의상 ECU1(20)가 주기적으로 송신을 하고, ECU2(21)가 주기적으로 메시지를 수신한다고 가정한다,
도 3은 본 발명의 일실시예에 따른 차량 네트워크의 메시지 무결성 체크 시스템에서 ECU간에 전송되는 메시지 프레임의 구조를 보인 도면이다.
도 3에 도시된 바와 같이, 메시지 프레임은 SOF(Start of Frame) 필드(40), 중재(Arbitration) 필드(41), 제어(Control) 필드(42), 데이터(Data) 필드(43), CRC(Cyclic Redundancy Check) 필드(44), ACK(Acknowledgement) 필드(45) 및 EOF(End of Frame) 필드(46) 등으로 구성되어 있다.
SOF 필드(40)는 한 개의 'd' 비트로 구성되며, 모든 노드들은 처음 전송을 시작하는 노드의 SOF에 의해 만들어지는 '리딩 에지(leading egde)'에서 동기화된다.
중재 필드(41)는 11 bits의 식별자(identifier)와 1 bit의 RTR(remote transmission request) 비트로 구성되는데, 둘 이상의 스테이션에서 동시에 메시지를 전송할 때 발생하는 메시지간의 충돌은 식별자 비트를 비교함으로써 해결한다.
제어 필드(42)는 6 bits로 구성되는데, IDE(identifier extension) 비트는 표준 프레임(IDE = 'd' 비트)과 확장 프레임(IDE = 'r' 비트)을 구별한다. r0 비트는 예비 비트로 두고, 나머지 4 bits는 DLC(data length code)로서 데이터 필드의 데이터 길이를 알려주는 코드이다.
CRC 필드(44)는 에러 체크를 위해 15 bits의 CRC와 'r' 비트로 표시되는 1 bit의 CRC 구획문자로 구성된다.
Ack 필드(45)는 1 bit 의 ACK 슬롯과 1 bit 의 ACK 구획문자로 구성되는데, 메시지리르 올바르게 받은 수신 스테이션이 ACK 필드를 받는 바로 그 순간에 ACK 슬롯의 비트 값을 'r' 에서 'd' 로 세팅하게 된다. 만약, 2 비트 모두 'r' 비트가 검출되면 데이터 전송이 올바르게 이루어지지 않았음을 의미한다.
EOF 필드(46)는 7 bits 의 'r' 로 구성되고, 메시지의 전송이 끝났음을 알린다.
한편, 데이터 필드(43)는 전송 노드인 ECU에서 수신 노드인 ECU로 데이터를 운반하는 필드로서 최대 8 bytes까지의 데이터 길이를 가진다. 이 데이터 필드(43)는 8개의 1byte 필드(43a-43h)로 이루어지며, 이 중 하나의 1byte 필드는 체크섬 필드로 사용된다.
상술한 바와 같이, 차량에 장착되는 각 ECU 간 CAN 통신에서 ECU의 고장이나 CAN 통신 라인의 단선이나, 잡음으로 인해 통신상에 오류가 발생할 수 있다. 메시지의 송/수신 도중에 오류(비트 에러, 폼 에러 등)가 발생하면 재전송 혹은 수신 신호의 무시가 이루어진다. 이와 같이 CAN 버스(10)를 통한 메시지의 송/수신에서 ECU의 고장 혹은 CAN 통신 라인의 단선 혹은 잡음에 의하여 메시지의 송/수신에 오류가 발생할 수 있다.
따라서 임의의 ECU에서 다른 ECU로 CAN 버스(10)을 사용하여 CAN 메시지를 송수신할 때 CAN 메시지의 무결성에 대한 확인이 필요하다. 최근 전자 기술의 발달로 차량에는 무수히 많은 ECU들이 존재하며 이러한 ECU들은 CAN 프로토콜을 사용하여 서로 통신을 한다. 이러한 CAN 통신을 함에 있어 CAN 버스(10) 상에 노이즈 및 특정 ECU의 고장에 의해 차량이 오작동할 수 있다. 따라서 CAN 메시지의 무결성은 지켜져야 하며, 수신된 메시지가 정상적인 데이터 메시지인지 아니면 비정상적인 메시지인지를 확인하여 시스템이 비정상 작동이 되지 않도록 하여야 한다.
비록 CAN 프로토콜 자체 내에 오류 검증을 위한 CRC 및 Ack 기능 등이 있으나, 차량 네트워크에는 수많은 ECU들이 존재하므로, 이러한 많은 ECU들이 CAN 메시지를 주고받을 때 CAN 버스 상에서 노이즈 등에 의하여 CAN 메시지에 변형이 일어나는 등, 여러 가지 이유로 통신 오류가 발생할 수 있으며, 이러한 오류로 인하여 CAN 메시지 수신시 잘못된 메시지를 수신할 수 있어, CAN 프로토콜의 상위 계층인 응용 프로그램 계층에서 2차적으로 오류를 다시 한번 검증하는 과정이 필요하다. 따라서 CAN 메시지에 대한 무결성 체크가 필요하다.
기존에는 CAN 메시지에 대한 무결성 체크를 위하여 롤링카운트 체크방법과 체크섬 체크방법을 함께 사용하고 있다. 따라서 각 ECU 간에 송수신하는 메시지 프레임의 데이터 필드에는 롤링카운트 체크를 위한 롤링카운트 필드와 체크섬 체크를 위한 체크섬 필드가 포함된다. 이 롤링카운트 필드와 체크섬 필드는 데이터 필드의 고정된 필드에 배치된다. 예를 들면, 대략 체크섬 필드는 8 bit, 롤링카운트 필드는 4 bit의 크기를 가진다. 이로 인해 한 개의 메시지의 최대 전송 가능한 데이터 량은 이 12 bit를 제외한 52 bit로 줄어들게 된다. 이로 인해, 메시지 증가할수록 CAN 버스의 부하가 포화되는 현상이 발생한다.
따라서 본 발명의 일실시예에 따른 차량 네트워크의 메시지 무결성 체크 시스템은 송신 ECU에서 메시지를 전송할 때마다 메시지 내에서 체크섬이 위치한 데이터 필드의 N 번째 바이트 필드를 N+1 번째 바이트 필드로 위치 이동시켜 전송하고, 이 메시지를 수신한 수신 ECU에서 수신된 메시지의 데이터 필드의 체크섬의 존재여부 및 이 체크섬이 위치한 바이트 필드의 위치를 체크한다. 이에 따라, 각 ECU 간에 전송되는 메시지의 무결성 체크를 위한 체크섬 체크방법과 롤링카운트 체크방법을 결합하는 방식으로 각 ECU 간에 송수신되는 메시지에서 무결성 체크를 위해 사용되는 비트를 감소시킬 수 있어 정해진 비트(예를 들면 64 bit)의 메시지에 보다 많은 정보를 담아 전송할 수 있다.
이하에서는 각 ECU 간에 전송되는 메시지의 무결성 체크를 위한 체크섬 체크방법과 롤링카운트 체크방법을 결합하여 메시지에서 무결성 체크를 위해 사용되는 비트를 감소시키는 것을 보다 자세히 설명한다.
도 4는 본 발명의 일실시예에 따른 차량 네트워크의 메시지 무결성 체크 시스템에서 메시지가 전송될 때마다 체크섬 값이 다른 바이트 필드로 위치 이동하는 것을 설명하기 위한 도면이다. 도 5는 본 발명의 일실시예에 따른 차량 네트워크의 메시지 무결성 체크 시스템에서 메시지 전송횟수가 증가할수록 데이터 필드 내의 바이트 필드에서의 체크섬값의 위치변화를 설명하기 위한 도면이다.
도 4 및 도 5에 도시된 바와 같이, 송신 ECU는 메시지를 1회 전송할 때마다 N 번째 바이트 필드에 위치한 체크섬값을 N+1 번째 바이트 필드로 위치 이동시키고, 체크섬값이 N+1 번째 바이트 필드에 저장된 메시지를 수신 ECU에 전송한다. 예를 들면, 송신 ECU는 메시지를 2번째 전송할 때는 N+1 번째 바이트 필드에 위치한 체크섬값을 N+2 번째 바이트 필드로 위치 이동한 후 전송한다. 또한, 메시지를 3번째 전송할 때는 N+2 번째 바이트 필드에 위치한 체크섬값을 N+3 번째 바이트 필드로 위치 이동한 후 전송한다. 이러한 방식으로 메시지가 전송될 때마다 체크섬값을 각 바이트 필드로 순환시키며 이동시킨 후 전송한다.
수신 ECU는 메시지 수신시 체크섬 비트의 존재여부를 체크하는 것에 의해 체크섬 에러여부를 판단하고, 체크섬 비트가 몇 번째 바이트 필드에 위치하는지를 체크하는 것에 의해 롤링카운트 에러여부를 판단한다.
예를 들면, 수신 ECU는 송신 ECU로부터 최초 메시지 수신시 수신된 메시지의 데이터 필드 내부의 복수의 바이트 필드 중 체크섬이 N번째 바이트 필드에 존재하는지를 판단한다.
만약, N번째 바이트 필드에 체크섬이 존재하면, 수신 ECU는 체크섬과 롤링카운트 모두 정상인 것으로 판단할 수 있어 수신된 메시지가 정상적인 메시지인 것으로 판단한다. 물론, 송신된 메시지의 체크섬과 수신된 메시지의 체크섬이 일치하는 경우 체크섬이 정상인 것으로 판단한다.
한편, N번째 바이트 필드에 체크섬이 존재하지 않으면, 롤링카운트 에러 카운트를 +1 증가시키고, 체크섬이 다른 바이트 필드에 존재하는지를 판단한다. 체크섬이 다른 바이트 필드에 존재하면 체크섬은 정상적인 것으로 판단한다. 하지만, 체크섬이 다른 바이트 필드에도 존재하지 않으면 체크섬 에러 카운트를 +1 증가시킨다.
한편, 롤링카운트 에러 카운트와 체크섬 에러 카운트 중 어느 하나라도 +1 증가된 경우에는 송신 ECU에 메시지의 재전송을 요청한다. 이러한 요청에 따라 송신 ECU는 2번째 메시지 전송이므로, N번째 바이트 필드에 저장된 체크섬을 N+1 번째 바이트 필드로 옮겨 저장한 후 이 메시지를 수신 ECU에 전송한다. 이때, 수신 ECU는 N+1 번째 바이트 필드에 체크섬이 존재하는지 아니면 다른 바이트 필드에 체크섬이 존재하는지를 다시 판단하는 식으로 롤링카운트와 체크섬을 다시 체크한다.
도 6은 본 발명의 일실시예에 따른 차량 네트워크의 메시지 무결성 체크 시스템의 송신 ECU가 수신 ECU에 메시지를 전송하는 것을 설명하기 위한 제어흐름도이다.
도 6을 살펴보면, 먼저, 송신 ECU는 메시지를 전송하기 위하여 20ms 주기 경과하였는지를 판단한다(100). 만약, 20ms 주기가 경과하지 않았으면, 메시지 전송을 금지하고(110), 작동모드 100으로 리턴한다.
한편, 20ms 주기가 경과하였으면, 송신 ECU는 전송할 메시지의 데이터 필드의 해당 바이트 필드에 저장된 체크섬값을 해당 바이트 필드에서 지우고, 다른 바이트 필드에 저장하는 방식으로 체크섬값을 이동시킨다(120). 즉, 체크섬값이 N번째 바이트 필드에 있었다면, 그 체크섬값을 N+1번째 바이트 필드로 이동 저장한다.
체크섬값을 이동시킨 후 송신 ECU는 체크섬값이 위치 이동된 메시지를 수신 ECU에 전송한다(130).
상기한 송신 ECU는 메시지를 1회 전송할 때마다 체크섬값을 현재의 바이트 필드에서 그 다음번 바이트 필드로 위치 이동시키고, 체크섬이 위치 이동된 메시지를 전송한다.
도 7은 본 발명의 일실시예에 따른 차량 네트워크의 메시지 무결성 체크 시스템의 수신 ECU가 송신 ECU로부터 수신된 메시지를 확인하여 롤링카운트 체크와 체크섬 체크하는 것을 설명하기 위한 제어흐름도이다.
도 7을 살펴보면, 수신 ECU는 송신 ECU로부터 메시지가 수신되었는지를 판단한다(200).
메시지 수신시 수신 ECU는 메시지의 데이터필드 내의 바이트 필드들 중에서 체크섬이 존재할 바이트 필드를 추정한다(210). 예를 들면, 송신 ECU로부터 수신된 최초 메시지인 경우에는 N번째 바이트 필드에 체크섬이 저장되어 있을 것이므로, 수신 ECU는 N번째 바이트 필드를 체크섬이 존재할 바이트 필드로 추정하고, 2번째 메시진 경우에는 N+1번?? 바이트 필드를 체크섬이 존재할 바이트 필드로 추정하는 방식으로 메시지 횟수와 체크섬이 존재할 바이트 필드를 관련시켜 체크섬이 존재할 바이트 필드를 추정한다.
체크섬이 존재할 바이트 필드 추정 후 수신 ECU는 추정된 바이트 필드에 체크섬이 존재하는지를 판단한다(220). 예를 들면, 8 bits의 체크섬을 사용하는 경우 데이터를 8 bits씩 나누어 8진수로 표현한 다음 그 합을 계산하여 8로 나눈 나머지에 해당되는 값을 체크섬값으로 사용된다. 그 추정된 바이트 필드에 그러한 체크섬값을 가지는 체크섬 정보가 저장되어 있는지를 확인하는 것에 의해 체크섬의 존재여부를 판단한다.
만약, 작동모드 220의 판단결과 추정된 바이트 필드에 체크섬값이 존재하면 수신 ECU는 수신된 메시지가 정상 메시지인 것으로 판단하여 수신된 메시지에 대응하는 처리작업을 수행한다(230).
한편, 작동모드 220의 판단결과 추정된 바이트 필드에 체크섬값이 존재하지 않으면, 수신 ECU는 다른 바이트 필드에 체크섬값이 존재하는지를 판단한다(240).
만약, 작동모드 220의 판단결과 체크섬값이 다른 바이트 필드에 존재하면, 수신 ECU는 롤링카운트 에러카운트를 +1 증가시킨다(250).
그리고, 수신 ECU는 +1 증가된 롤링카운트 에러카운트값(RCEC)과 미리 설정된 값(RCEC_ref)를 비교하여 RCEC가 RCEC_ref 이상인지를 판단하고(260), RCEC가 RCEC_ref 이상이면 롤링카운트 에러를 경고한다(270). 이 미리 설정된 값(RCEC_ref)은 롤링카운트 에러 판단을 위한 기준값이다. 한편, 작동모드 260의 판단결과 RCEC가 RCEC_ref 미만이면 작동모드 200으로 리턴한다.
한편, 작동모드 200의 판단결과 체크섬값이 다른 바이트 필드에도 존재하지 않으면, 수신 ECU는 체크섬 에러카운트를 +1 증가시킨다(280).
그리고, 수신 ECU는 +1 증가된 체크섬 에러카운트값(CEC)과 미리 설정된 값(CEC_ref)를 비교하여 CEC가 CEC_ref 이상인지를 판단하고(290), CEC가 CEC_ref 이상이면 체크섬 에러를 경고한다(300). 이 미리 설정된 값(CEC_ref)은 체크섬 에러 판단을 위한 기준값이다. 한편, 작동모드 260의 판단결과 CEC가 CEC_ref 미만이면 작동모드 200으로 리턴한다.
참고로, 롤링카운트 에러 카운트와 체크섬 에러 카운트 중 어느 하나라도 +1 증가된 경우에는 수신 ECU가 송신 ECU에 메시지의 재전송을 요청할 수 있다. 이러한 요청에 따라 송신 ECU는 2번째 메시지 전송이므로, N번째 바이트 필드에 저장된 체크섬을 N+1 번째 바이트 필드로 옮겨 저장한 후 이 메시지를 수신 ECU에 전송한다. 이때, 수신 ECU는 N+1 번째 바이트 필드에 체크섬이 존재하는지 아니면 다른 바이트 필드에 체크섬이 존재하는지를 다시 판단하는 식으로 롤링카운트와 체크섬을 다시 체크한다.
20-29 : ECU1-ECU10 30 : ROM
31 : CPU 32 : RAM
33 : 입출력부 34 : 통신모듈
40 : SOF 필드 41 : 중재 필드
42 : 제어 필드 43 : 데이터 필드
44 : CRC 필드 45 : Ack 필드
46 : EOF 필드

Claims (5)

  1. 복수의 ECU가 캔 통신 가능하도록 연결된 차량 네트워크에서 상기 복수의 ECU 간에 송수신되는 메시지의 데이터 필드에 포함된 체크섬값을 확인하여 상기 메시지의 무결성을 체크하는 시스템에 있어서,
    상기 메시지 전송시 상기 데이터 필드에서 상기 체크섬값의 저장위치를 변경시키고, 상기 체크섬값의 저장위치가 변경된 메시지를 전송하는 송신 ECU;
    상기 송신 ECU로부터 전송된 상기 메시지를 수신하고, 상기 메시지의 수신횟수를 근거로 하여 상기 수신된 메시지의 데이터 필드에서 상기 체크섬값이 저장된 위치를 추정하고, 상기 추정된 위치에 상기 체크섬값의 존재여부에 따라 체크섬의 정상여부 및 상기 송신 ECU로부터의 메시지 수신횟수에 기반한 롤링카운트 정상여부를 판단하고, 상기 판단된 롤링카운트 및 체크섬의 정상여부에 따라 상기 메시지의 무결성 여부를 판단하는 수신 ECU;를 포함하는 차량 네트워크의 메시지 무결성 체크 시스템.
  2. 제1항에 있어서,
    상기 데이터 필드는 복수의 바이트 필드를 포함하고,
    상기 송신 ECU는 상기 메시지를 전송할 때마다 상기 체크섬값의 저장위치를 N 번째 바이트 필드에서 N+1 번째 바이트 필드로 변경시키는 것을 포함하는 차량 네트워크의 메시지 무결성 체크 시스템.
  3. 제2항에 있어서,
    상기 수신 ECU는,
    상기 체크섬값이 상기 추정된 위치에 존재하면 상기 롤링카운트 및 체크섬이 정상인 것으로 판단하여 상기 수신된 메시지를 정상으로 판단하고,
    상기 체크섬값이 상기 추정된 위치가 아닌 다른 위치에 존재하면 상기 롤링카운트에 대한 에러카운트를 +1 증가시키고, +1 증가된 롤링카운트 에러카운트값이 제1 기준카운트값이상이면 상기 롤링카운트 에러로 판단하여 상기 수신된 메시지를 비정상으로 판단하고,
    상기 체크섬값이 상기 추정된 위치는 물론 다른 위치에도 존재하지 않으면 상기 체크섬에 대한 에러카운트를 +1 증가시키고, +1 증가된 체크섬 에러카운트값이 제2 기준카운트값이상이면 상기 체크섬 에러로 판단하여 상기 수신된 메시지를 비정상으로 판단하는 것을 포함하는 차량 네트워크의 메시지 무결성 체크 시스템.
  4. 복수의 ECU가 캔 통신 가능하도록 연결된 차량 네트워크에서 상기 복수의 ECU 간에 송수신되는 메시지의 데이터 필드에 포함된 체크섬값을 확인하여 상기 메시지의 무결성을 체크하는 방법에 있어서,
    송신 ECU가,
    상기 메시지 전송시 복수의 바이트 필드를 가진 데이터 필드에서 상기 체크섬값의 저장위치를 N 번째 바이트 필드에서 N+1 번째 바이트 필드로 변경시키고;
    상기 체크섬값의 저장위치가 변경된 메시지를 전송하고;
    수신 ECU가,
    상기 송신 ECU로부터 전송된 상기 메시지를 수신하고;
    상기 송신 ECU로부터 상기 메시지를 수신한 횟수를 근거로 하여 상기 데이터 필드의 복수의 바이트 필드 중에서 상기 체크섬값이 저장된 바이트 필드를 추정하고;
    상기 추정된 바이트 필드에 상기 체크섬값의 존재여부에 따라 체크섬의 정상여부 및 상기 송신 ECU로부터의 메시지 수신횟수에 기반한 롤링카운트 정상여부를 판단하고;
    상기 판단된 롤링카운트 및 체크섬의 정상여부에 따라 상기 메시지의 무결성 여부를 판단하는; 것을 포함하는 차량 네트워크의 메시지 무결성 체크방법.
  5. 제4항에 있어서,
    상기 체크섬 및 롤링카운트 정상여부 판단은,
    상기 수신 ECU가,
    상기 체크섬값이 상기 추정된 바이트 필드에 존재하면 상기 롤링카운트 및 체크섬이 정상인 것으로 판단하고,
    상기 체크섬값이 상기 추정된 바이트 필드가 아닌 다른 바이트 필드에 존재하면 상기 롤링카운트에 대한 에러카운트를 +1 증가시키고, +1 증가된 롤링카운트 에러카운트값이 제1 기준카운트값이상이면 상기 롤링카운트 에러로 판단하고,
    상기 체크섬값이 상기 추정된 바이트 필드는 물론 다른 바이트 필드에도 존재하지 않으면, 상기 체크섬에 대한 에러카운트를 +1 증가시키고, +1 증가된 체크섬 에러카운트값이 제2 기준카운트값이상이면 상기 체크섬 에러로 판단하는 것을 포함하는 차량 네트워크의 메시지 무결성 체크방법.
KR1020120070829A 2012-06-29 2012-06-29 차량 네트워크의 메시지 무결성 체크 시스템 및 방법 KR101334017B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120070829A KR101334017B1 (ko) 2012-06-29 2012-06-29 차량 네트워크의 메시지 무결성 체크 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120070829A KR101334017B1 (ko) 2012-06-29 2012-06-29 차량 네트워크의 메시지 무결성 체크 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101334017B1 true KR101334017B1 (ko) 2013-12-12

Family

ID=49986810

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120070829A KR101334017B1 (ko) 2012-06-29 2012-06-29 차량 네트워크의 메시지 무결성 체크 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101334017B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101623305B1 (ko) * 2015-04-10 2016-05-23 주식회사 만도 정보 검사 장치 및 방법과 정보 검사 장치를 포함하는 정보 처리 시스템
KR101651077B1 (ko) * 2015-03-31 2016-08-26 주식회사 와이즈오토모티브 이더넷 기반의 차량용 유무선 네트워크를 이용한 하이브리드 고장 극복 시스템 및 그 방법
KR101721035B1 (ko) * 2016-01-07 2017-03-30 고려대학교 산학협력단 차량 침입 탐지 장치 및 방법
KR20180029846A (ko) * 2016-09-13 2018-03-21 현대자동차주식회사 차량 네트워크에서 asil에 기초한 통신 방법 및 장치
WO2018067227A1 (en) * 2016-10-07 2018-04-12 Hrl Laboratories, Llc System for anomaly detection on can bus data with sparse and low rank decomposition of transfer entropy matrix
KR102248287B1 (ko) 2019-12-23 2021-05-06 고려대학교 산학협력단 차량의 내부 네트워크 노드의 위치 추정 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014697A1 (en) * 2000-12-15 2003-01-16 Bryan Hornung System and method for dynamically moving checksums to different memory locations
KR20080018534A (ko) * 2006-08-24 2008-02-28 현대모비스 주식회사 차량의 서스펜션 ecu 프로그램의 튜닝장치
KR20080107046A (ko) * 2007-06-05 2008-12-10 현대자동차주식회사 캔통신 에러 검출 및 대처방법
US20090271779A1 (en) * 2008-04-25 2009-10-29 Vmware, Inc. Updating a file using differences and file format therefor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014697A1 (en) * 2000-12-15 2003-01-16 Bryan Hornung System and method for dynamically moving checksums to different memory locations
KR20080018534A (ko) * 2006-08-24 2008-02-28 현대모비스 주식회사 차량의 서스펜션 ecu 프로그램의 튜닝장치
KR20080107046A (ko) * 2007-06-05 2008-12-10 현대자동차주식회사 캔통신 에러 검출 및 대처방법
US20090271779A1 (en) * 2008-04-25 2009-10-29 Vmware, Inc. Updating a file using differences and file format therefor

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101651077B1 (ko) * 2015-03-31 2016-08-26 주식회사 와이즈오토모티브 이더넷 기반의 차량용 유무선 네트워크를 이용한 하이브리드 고장 극복 시스템 및 그 방법
KR101623305B1 (ko) * 2015-04-10 2016-05-23 주식회사 만도 정보 검사 장치 및 방법과 정보 검사 장치를 포함하는 정보 처리 시스템
KR101721035B1 (ko) * 2016-01-07 2017-03-30 고려대학교 산학협력단 차량 침입 탐지 장치 및 방법
KR20180029846A (ko) * 2016-09-13 2018-03-21 현대자동차주식회사 차량 네트워크에서 asil에 기초한 통신 방법 및 장치
KR102352527B1 (ko) * 2016-09-13 2022-01-19 현대자동차주식회사 차량 네트워크에서 asil에 기초한 통신 방법 및 장치
WO2018067227A1 (en) * 2016-10-07 2018-04-12 Hrl Laboratories, Llc System for anomaly detection on can bus data with sparse and low rank decomposition of transfer entropy matrix
US10484411B1 (en) 2016-10-07 2019-11-19 Hrl Laboratories, Llc System for anomaly detection on CAN bus data with sparse and low rank decomposition of transfer entropy matrix
KR102248287B1 (ko) 2019-12-23 2021-05-06 고려대학교 산학협력단 차량의 내부 네트워크 노드의 위치 추정 장치 및 방법

Similar Documents

Publication Publication Date Title
US10986008B2 (en) Abnormality detection in an on-board network system
US10693905B2 (en) Invalidity detection electronic control unit, in-vehicle network system, and communication method
US10530606B2 (en) Method for transmitting data via a serial communication bus, bus interface, and computer program
KR101334017B1 (ko) 차량 네트워크의 메시지 무결성 체크 시스템 및 방법
US11296965B2 (en) Abnormality detection in an on-board network system
US10713106B2 (en) Communication device, communication method and non-transitory storage medium
KR101519793B1 (ko) 차량용 네트워크 시스템 및 이 시스템 내 이종 통신 제어기의 데이터 전송 방법
RU2596582C2 (ru) Способ и устройство для адаптируемой к размерам памяти последовательной передачи данных
CN103620573B (zh) 用于匹配串行总线系统中的数据传输安全性的方法和设备
US7640480B2 (en) Detection of errors in the communication of data
US9531750B2 (en) Spoofing detection
US20150124839A1 (en) Method of Packaging and Unpackaging Packet and Appartuses Using the Same
US20200021611A1 (en) Fraud detection method, fraud detection device, and recording medium
KR102471960B1 (ko) 차량용 can 통신 보안 장치 및 방법
US20230048058A1 (en) Anomaly determination method, anomaly determination device, and recording medium
CN112015161A (zh) 车辆诊断通信装置和方法以及包括该装置的系统
US20060187932A1 (en) Method and system for transmitting telegrams
JP3770053B2 (ja) 車両用ネットワークの通信復帰判定方法
US10541830B2 (en) Serial communication system
Cook et al. Controller area network (can)
CN108632242B (zh) 通信装置及接收装置
KR101704300B1 (ko) Can 메시지 송수신 방법 및 이를 실행하는 시스템
US20230327907A1 (en) Relay device, communication network system, and communication control method
KR101068744B1 (ko) Can 프로토콜을 사용한 데이터 통신에서 데이터 메시지에 대한 무결성 확인 방법
KR102595722B1 (ko) 통신 네트워크, 이에 연결된 노드를 식별하는 방법 및 장치

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: 20160927

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170922

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180920

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 7