KR102629768B1 - 비트 스트림 프로세서 및 이를 포함하는 can 컨트롤러, can 통신 에러 처리 방법 - Google Patents

비트 스트림 프로세서 및 이를 포함하는 can 컨트롤러, can 통신 에러 처리 방법 Download PDF

Info

Publication number
KR102629768B1
KR102629768B1 KR1020210090939A KR20210090939A KR102629768B1 KR 102629768 B1 KR102629768 B1 KR 102629768B1 KR 1020210090939 A KR1020210090939 A KR 1020210090939A KR 20210090939 A KR20210090939 A KR 20210090939A KR 102629768 B1 KR102629768 B1 KR 102629768B1
Authority
KR
South Korea
Prior art keywords
controller
bit
arbitration field
error
stream processor
Prior art date
Application number
KR1020210090939A
Other languages
English (en)
Other versions
KR20230010872A (ko
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 KR1020210090939A priority Critical patent/KR102629768B1/ko
Publication of KR20230010872A publication Critical patent/KR20230010872A/ko
Application granted granted Critical
Publication of KR102629768B1 publication Critical patent/KR102629768B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • 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
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40071Packet processing; Packet format
    • 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
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40084Bus arbitration
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Multimedia (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 비트 스트림 프로세서 및 이를 포함하는 CAN 컨트롤러, CAN 통신 에러 처리 방법에 관한 것으로서, 본 실시예의 비트 스트림 프로세서는 CAN(Controller Area Network) 컨트롤러의 에러 처리를 수행하는 비트 스트림 프로세서(Bit Stream Processor)로서, Rx 인터페이스; 및 상기 Rx 인터페이스를 통해 수신된 CAN 데이터 프레임의 중재 필드(Arbitration Field) 내 ID(Identifier) 비트 및 상기 CAN 컨트롤러가 할당된 제어기의 고유 ID 비트 간의 비교 결과와, 상기 중재 필드 내 RTR(Remote Transmission Request) 비트에 기초하여 상기 중재 필드의 에러를 검출하는 처리 모듈;을 포함하는 것을 특징으로 한다.

Description

비트 스트림 프로세서 및 이를 포함하는 CAN 컨트롤러, CAN 통신 에러 처리 방법{BIT STREAM PROCESSOR AND CAN CONTROLLER COMPRISING THE SAME, METHOD FOR PROCESSING ERROR OF CAN COMMUNICATION}
본 발명은 비트 스트림 프로세서 및 이를 포함하는 CAN 컨트롤러, CAN 통신 에러 처리 방법에 관한 것으로서, CAN 통신 프로토콜에서 에러 검출 및 에러 처리를 수행하는 비트 스트림 프로세서와 이를 포함하는 캔 컨트롤러, CAN 통신 에러 처리 방법에 관한 것이다.
CAN 통신과 관련된 국제 표준 규격 ISO 11898-1은 CAN 통신의 신뢰성 확보를 위한 5가지 에러 검출 방식(Bit Error, Stuff Error, Form Error, ACK Error, CRC Error)을 규정한다. CAN 버스 상에서 상기의 에러를 검출한 노드(ECU)는 6개의 우성 비트(dominant bit)로 구성된 에러 플래그를 포함하는 에러 프레임을 CAN 트랜시버를 통해 CAN 버스로 송신하며, 에러 플래그는 Stuff 규칙에 어긋나게 되기 때문에 수신 노드에서는 에러 프레임이 CAN 버스에 송신된 이후의 CAN 데이터 프레임을 수신하지 않도록 동작된다. 이와 같은 에러 검출 및 에러 처리 동작은 CAN 컨트롤러(CAN Protocol Controller 또는 CAN IP)의 비트 스트림 프로세서(Bit Stream Processor)에 의해 수행된다.
한편, CAN 네트워크 상에서 송수신되는 악의의(malicious) CAN 데이터 프레임으로 인해 제어기의 오동작이 야기되는 CAN 통신 보안 문제가 지속적으로 발생하고 있으나, 국제 표준 규격 ISO 11898-1에는 이러한 통신 보안을 방지하기 위한 에러 검출 방식이 규정되어 있지 않은 한계가 있다. CAN 통신 보안 확보를 위해 HSM(Hardware Security Module) 등을 이용하여 CAN 통신 데이터 필드에 암호화 키를 삽입하는 방식으로 데이터를 암호화하는 방안이 시도되고 있지만, CAN 통신 데이터 필드의 일부를 암호화 영역으로 별도 할당할 경우 데이터 영역이 감소하고 기존에 사용하던 CAN 데이터 할당 내용을 변경해야 문제점이 존재한다. 특히, 차량의 경우 CAN bus load가 50% 이하를 유지할 것이 권고되고 있어, 암호화 키를 사용할 경우 위 권고 사항을 충족시키기 어려운 문제가 있다.
본 발명의 일 측면에 따른 목적은 CAN 네트워크 상에서 송수신되는 악의의(malicious) CAN 데이터 프레임을 CAN 통신 에러로서 검출하여 CAN 통신 보안을 향상시킬 수 있는 비트 스트림 프로세서 및 이를 포함하는 CAN 컨트롤러, CAN 통신 에러 처리 방법를 제공하는 것이다.
본 발명의 일 측면에 따른 비트 스트림 프로세서는 CAN(Controller Area Network) 컨트롤러의 에러 처리를 수행하는 비트 스트림 프로세서(Bit Stream Processor)로서, Rx 인터페이스; 및 상기 Rx 인터페이스를 통해 수신된 CAN 데이터 프레임의 중재 필드(Arbitration Field) 내 ID(Identifier) 비트 및 상기 CAN 컨트롤러가 할당된 제어기의 고유 ID 비트 간의 비교 결과와, 상기 중재 필드 내 RTR(Remote Transmission Request) 비트에 기초하여 상기 중재 필드의 에러를 검출하는 처리 모듈;을 포함하는 것을 특징으로 한다.
본 발명에 있어 상기 처리 모듈은, 상기 중재 필드 내 ID 비트 및 상기 제어기의 고유 ID 비트가 동일하고, 상기 중재 필드 내 RTR 비트가 우성(dominant)에 해당하는 값을 갖는 경우를 상기 중재 필드의 에러로 검출하는 것을 특징으로 한다.
본 발명은 Tx 인터페이스;를 더 포함하고, 상기 처리 모듈은, 상기 중재 필드의 에러가 검출된 경우 CAN 프로토콜에 따라 미리 정의된 에러 프레임을 상기 Tx 인터페이스를 통해 송신하는 것을 특징으로 한다.
본 발명에 있어 상기 중재 필드의 에러는, 상기 Rx 인터페이스를 통해 수신된 CAN 데이터 프레임이 악의의(malicious) CAN 데이터 프레임에 해당함을 지표하는 것을 특징으로 한다.
본 발명의 일 측면에 따른 비트 스트림 프로세서는 Rx 인터페이스; 상기 Rx 인터페이스를 통해 수신되는, 상기 CAN 컨트롤러가 할당된 제어기의 하나 이상의 고유 ID 비트를 각각 저장하는 하나 이상의 ID 레지스터; 상기 Rx 인터페이스를 통해 수신되는 CAN 데이터 프레임 내 중재 필드의 비트를 저장하는 입력 레지스터; 상기 하나 이상의 ID 레지스터에 각각 저장된 상기 하나 이상의 고유 ID 비트, 및 상기 입력 레지스터에 저장된 중재 필드 내 ID 비트를 비교하는 비교 모듈; 및 상기 비교 모듈에 의한 비교 결과와, 상기 입력 레지스터에 저장된 중재 필드 내 RTR 비트에 기초하여 상기 중재 필드의 에러를 검출하는 처리 모듈;을 포함하는 것을 특징으로 한다.
본 발명은 상기 Rx 인터페이스를 통해 수신되는 상기 제어기의 하나 이상의 고유 ID 비트를 ID 선택 신호에 따라 상기 하나 이상의 ID 레지스터에 각각 순차적으로 저장시키는 멀티플렉서;를 더 포함하는 것을 특징으로 한다.
본 발명의 일 측면에 따른 CAN 통신 에러 처리 방법은, CAN 컨트롤러의 비트 스트림 프로세서에 의해 수행되며, 상기 방법은 CAN 데이터 프레임을 수신하는 단계; 상기 수신된 CAN 데이터 프레임의 중재 필드 내 ID 비트 및 상기 CAN 컨트롤러가 할당된 제어기의 고유 ID 비트를 비교하는 단계; 및 상기 비교의 결과와 상기 중재 필드 내 RTR 비트에 기초하여 상기 중재 필드의 에러를 검출하는 단계;를 포함하는 것을 특징으로 한다.
본 발명의 일 측면에 따르면, 본 발명은 CAN 트랜시버를 통해 현재 수신된 CAN 데이터 프레임의 중재 필드 내 ID 비트 및 CAN 컨트롤러가 할당된 제어기의 고유 ID 비트 간의 비교 결과와, 상기의 중재 필드 내 RTR 비트에 기초하여 CAN 네트워크 상에서 송수신되는 악의의(malicious) CAN 데이터 프레임을 검출하고 그에 대한 에러 처리를 수행함으로써 CAN 통신 보안을 향상시킬 수 있다.
도 1은 본 실시예에 따른 CAN 컨트롤러의 실장 구조를 보인 블록도이다.
도 2는 국제 표준 규격 ISO 11898-1(CAN 2.0A Protocol)에 따른 CAN 데이터 프레임의 구조도이다.
도 3은 본 실시예에 따른 CAN 컨트롤러의 구성을 보인 블록도이다.
도 4는 본 실시예에 따른 비트 스트림 프로세서의 구성을 보인 블록도이다.
도 5는 본 실시예에 따른 비트 스트림 프로세서에서 중재 에러를 검출하는 방식을 보인 예시도이다.
도 6은 본 실시예에 따른 CAN 통신 에러 처리 방법을 보인 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 비트 스트림 프로세서 및 이를 포함하는 CAN 컨트롤러, CAN 통신 에러 처리 방법의 일 실시예를 설명한다. 이 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 실시예에 따른 CAN 컨트롤러의 실장 구조를 보인 블록도이고, 도 2는 국제 표준 규격 ISO 11898-1(CAN 2.0A Protocol)에 따른 CAN 데이터 프레임의 구조도이며, 도 3은 본 실시예에 따른 CAN 컨트롤러의 구성을 보인 블록도이고, 도 4는 본 실시예에 따른 비트 스트림 프로세서의 구성을 보인 블록도이며, 도 5는 본 실시예에 따른 비트 스트림 프로세서에서 중재 에러를 검출하는 방식을 보인 예시도이다.
도 1에 도시된 것과 같이 본 실시예의 CAN 컨트롤러(100)는 제어기(10)(예: 차량의 ECU(Electronic Control Unit))에 실장된다. 제어기(10)는 CAN 컨트롤러(100), 내부 버스(200) 및 마이크로프로세서(300)를 포함하며, 제어기(10) 내에서 CAN 컨트롤러(100) 및 마이크로프로세서(300)는 내부 버스(200)를 통해 데이터를 송수신한다. CAN 네크워크 상에서 제어기(10)는 복수 개 마련될 수 있으며, CAN 트랜시버(Transceiver)(400) 및 CAN 버스를 통해 상호 CAN 데이터 프레임으로 송수신하도록 구성될 수 있다. 국제 표준 규격 ISO 11898-1에 따라 각 제어기(10)가 송수신하는 CAN 데이터 프레임은 도 2에 도시된 것과 같이 SOF 필드(Start Of Frame Field), 중재 필드(Arbitration Field), 컨트롤 필드(Control Field), 데이터 필드(Data Field), CRC 필드(Cyclic Redundancy Check Field), ACK 필드(Acknowledge Field), EOF 필드(End Of Frame Field) 및 INT 필드(Intermission Field)를 포함하도록 구성되며, 그에 대한 Description은 하기 표 1을 참조한다.
CAN 2.0A Protocol (11 Bit Identifier)
Bits Field Description
1 SOF Start of Frame
11 ID Identifier
1 RTR Remote Transmission Request
1 R1 Reserved Bit
1 RO Reserved Bit
4 DLC Data Length Code
0-64 Data Data Bytes
16 CRC Error Identification Code
2 ACK Acknowledge
7 EOF End of Frame
3 INT Intermission
도 2 및 위 표 1은 CAN 프로토콜 중 CAN 2.0A Protocol(Standard)을 예시로서 나타내었으나, 본 실시예는 29 bit의 중재 필드 내 ID 비트를 갖는 CAN 2.0B Protocol, 11 bit의 중재 필드 내 ID 비트를 갖는 CAN-FD Standard Protocol, 또는 29 bit의 중재 필드 내 ID 비트를 갖는 CAN-FD Extended Protocol에도 동일하게 적용될 수 있다.
도 3에 도시된 것과 같이 CAN 컨트롤러(100)는 클럭 생성 프로세서(Baud Rate Presclaer)(110), 비트 타이밍 로직(Bit Timing Logic)(120) 및 비트 스트림 프로세서(Bit Stream Processor)(130)를 포함한다. 클럭 생성 프로세서(110)는 시스템 클럭을 카운트하여 단위 클럭(tq, time quantum clock)을 생성하도록 동작한다. 비트 타이밍 로직(120)은 클럭 생성 프로세서(110)에 의해 생성된 단위 클럭을 기반으로 CAN의 비트 타이밍에 맞게 동기화를 수행하고, Rx 포트(P_Rx) 및 Tx 포트(P_Tx)를 통해 CAN 버스와 CAN 컨트롤러(100) 간의 데이터 송수신을 수행하도록 동작한다. 비트 스트림 프로세서(130)는 비트 타이밍 로직(120)으로부터 Rx 인터페이스(I_Rx)를 통해 수신된 CAN 데이터 프레임의 비트(Sample Bit)를 처리하고 다음 전송될 비트 레벨(Tx Bit)을 결정하여 Tx 인터페이스(I_Tx)를 통해 비트 타이밍 로직(120)에 전송하며, CRC 계산과 스터핑(stuffing), 디스터핑(destuffing), 에러 처리(에러의 검출과 검출된 에러의 후속 처리를 포함하는 것으로 정의한다)를 수행하도록 동작한다. 클럭 생성 프로세서(110), 비트 타이밍 로직(120) 및 비트 스트림 프로세서(130)의 동작은 주지된 것이므로 구체적인 동작 설명은 생략한다.
앞서 언급한 것과 같이, 국제 표준 규격 ISO 11898-1은 CAN 통신의 신뢰성 확보를 위한 5가지 에러 검출 방식(Bit Error, Stuff Error, Form Error, ACK Error, CRC Error)을 규정하고 있으나, CAN 네트워크 상에서 송수신되는 악의의(malicious) CAN 데이터 프레임을 검출하고 처리하는 방식은 ISO 11898-1에 규정되어 있지 않은 한계가 있다. 본 실시예에서는 CAN 네트워크 상에서 송수신되는 악의의 CAN 데이터 프레임을 검출하는 방안을 제시하며, 위 방안은 CAN 트랜시버(400)를 통해 현재 CAN 데이터 프레임의 중재 필드를 활용하는 점에서, 악의의 CAN 데이터 프레임이 검출된 에러를 중재 필드의 에러, 또는 중재 에러(Arbitration Error)로 명명하기로 한다. 즉, 중재 필드의 에러는 현재 수신된 CAN 데이터 프레임이 악의의 CAN 데이터 프레임에 해당함을 지표한다.
이하에서는 중재 에러를 검출하는 방식에 대하여 비트 스트림 프로세서(130)의 동작을 중심으로 구체적으로 설명한다.
도 4를 참조하면, 본 실시예의 비트 스트림 프로세서(130)는 Rx 인터페이스(I_Rx), Tx 인터페이스(I_Tx), 멀티플렉서(MUX), 하나 이상의 ID 레지스터(ID_REG), 입력 레지스터(INPUT_REG), 비교 모듈(COMP) 및 처리 모듈(PROC)을 포함한다.
Rx 인터페이스(I_Rx) 및 Tx 인터페이스(I_Tx)는 비트 스트림 프로세서(130)의 입출력 인터페이스로 기능한다. 즉, 비트 스트림 프로세서(130)는 Rx 인터페이스(I_Rx)를 통해 비트 타이밍 로직(120) 및 마이크로프로세서(300)로부터 데이터를 수신하고, Tx 인터페이스(I_Tx)를 통해 비트 타이밍 로직(120) 및 마이크로프로세서(300)로 데이터를 송신한다.
멀티플렉서(MUX)는 마이크로프로세서(300)로부터 Rx 인터페이스(I_Rx)를 통해 수신되는 제어기(즉, CAN 컨트롤러(100)가 할당된(실장된) 제어기)의 하나 이상의 고유 ID 비트(ID_SET)를 ID 선택 신호(ID_SEL)에 따라 하나 이상의 ID 레지스터(ID_REG)에 각각 순차적으로 저장시킨다. 제어기의 고유 ID 비트가 제1 내지 제3 고유 ID 비트(ID_SET1-ID_SET3)를 가지고 ID 레지스터가 제1 내지 제3 ID 레지스터(ID_REG1-ID_REG3)를 갖는 예시에서, ID 선택 신호(ID_SEL)는 0, 1, 2의 값(Binary 값을 가질 수 있다)을 갖는 상태로 마이크로프로세서(300)로부터 Rx 인터페이스(I_Rx)를 통해 멀티플렉서(MUX)로 입력될 수 있으며, 이에 따라 멀티플렉서(MUX)는 각 ID 선택 신호(ID_SEL)가 입력될 때마다 제1 내지 제3 고유 ID 비트(ID_SET1-ID_SET3)를 제1 내지 제3 ID 레지스터(ID_REG1-ID_REG3)에 각각 저장시킨다. 상기 동작은 제어기의 파워 온 시 수행되는 초기화 동작에 포함될 수 있다.
입력 레지스터(INPUT_REG)에는 CAN 버스로부터 CAN 트랜시버(400), 비트 타이밍 로직(120)을 거쳐 Rx 인터페이스(I_Rx)를 통해 수신되는 CAN 데이터 프레임 내 중재 필드의 비트가 저장된다(중재 필드의 비트와 함께 SOF 필드의 비트도 입력 레지스터(INPUT_REG)에 저장될 수 있다).
비교 모듈(COMP)은 하나 이상의 ID 레지스터(ID_REG)에 각각 저장된 하나 이상의 고유 ID 비트(ID_SET), 및 입력 레지스터(INPUT_REG)에 저장된 중재 필드 내 ID 비트(ID_IN)를 비교하며, 즉 제어기의 하나 이상의 고유 ID 비트(ID_SET) 중, 현재 수신된 CAN 데이터 프레임의 중재 필드 내 ID 비트(ID_IN)와 동일한 ID 비트가 존재하는지 여부를 확인한다.
처리 모듈(PROC)은 비교 모듈(COMP)에 의한 비교 결과와, 입력 레지스터(INPUT_REG)에 저장된 중재 필드 내 RTR 비트(RTR_IN)(즉, CAN 버스로부터 현재 수신된 CAN 데이터 프레임의 중재 필드 내 RTR 비트)에 기초하여 중재 필드의 에러를 검출한다. 이때, 처리 모듈(PROC)은 각 ID 레지스터(ID_REG)에 각각 저장된 하나 이상의 고유 ID 비트(ID_SET), 및 입력 레지스터(INPUT_REG)에 저장된 중재 필드 내 ID 비트(ID_IN)가 동일하고(즉, 제어기의 하나 이상의 고유 ID 비트(ID_SET) 중, 현재 수신된 CAN 데이터 프레임의 중재 필드 내 ID 비트(ID_IN)와 동일한 ID 비트가 존재하는 경우), 입력 레지스터(INPUT_REG)에 저장된 중재 필드 내 RTR 비트(RTR_IN)가 우성(dominant)에 해당하는 값('0'의 값)을 갖으면(즉, CAN 버스로부터 현재 수신된 CAN 데이터 프레임의 중재 필드 내 RTR 비트(RTR_IN)가 우성에 해당하는 값을 갖는 경우) 위 경우를 중재 필드의 에러로서 검출한다.
구체적인 예시로서 제1 및 제2 제어기에 제1 및 제2 CAN 컨트롤러가 각각 실장된 경우를 상정한다. 제1 제어기가 제1 CAN 컨트롤러를 통해 제2 제어기로 데이터의 송신을 요청할 때, 국제 표준 규격 ISO 11898-1에 따르면 제1 제어기는 제2 제어기의 고유 ID 비트를 중재 필드의 ID 비트에 설정하고 RTR 비트의 값을 열성(recessive)에 해당하는 값('1'의 값)으로 설정하여 CAN 데이터 프레임을 CAN 버스에 송신한다. 이에 따라, 제2 제어기는 해당 CAN 데이터 프레임의 중재 필드 내 ID 비트가 자신의 고유 ID 비트와 동일함과 열성의 RTR 비트 값을 확인하여 요청받은 데이터를 제1 제어기로 송신한다. 제2 제어기가 데이터를 송신할 때, 제2 제어기는 자신의 고유 ID 비트를 중재 필드의 ID 비트에 설정하고 RTR 비트의 값을 우성에 해당하는 값('0'의 값)으로 설정하여 CAN 데이터 프레임을 송신하게 된다. 즉, CAN 데이트 프레임의 중재 필드 내 RTR 비트는 데이터의 요청 시 우성의 값, 데이터의 송신 시 열성의 값으로 설정된다.
위와 같은 국제 표준 규격 ISO 11898-1에 따르면, 제1 제어기가 중재 필드의 ID 비트에 제2 제어기의 고유 ID 비트를 설정하여 CAN 데이트 프레임을 송신할 때 중재 필드의 RTR 비트는 열성에 해당하는 값을 가져야 하는 제약이 존재하게 된다. 즉, 제1 제어기가 중재 필드의 ID 비트에 제2 제어기의 고유 ID 비트를 설정하고 중재 필드의 RTR 비트를 우성에 해당하는 값으로 설정하여 CAN 데이트 프레임을 송신하는 상황은, 제1 제어기가 데이터를 요청하는 것이 아닌, 제2 제어기가 데이터를 송신하는 것으로 모사되므로, 타 제어기의 입장에서 제1 제어기는 제2 제어기의 기능을 탈취한 악의의(malicious) 제어기가 된다.
위와 같은 CAN 통신 보안의 위협을 제거하기 위해, 처리 모듈(PROC)은 도 5에 예시로서 도시된 것과 같이 제어기(ECU1)(대상 제어기로 표기한다)의 하나 이상의 고유 ID 비트(ID: 1, 2, 3) 중, 현재 수신된 CAN 데이터 프레임의 중재 필드 내 ID 비트(ID: 2)와 동일한 ID 비트가 존재하는 경우로서, 현재 수신된 CAN 데이터 프레임의 중재 필드 내 RTR 비트가 우성에 해당하는 값을 갖는 경우(RTR: 0), 현재 수신된 CAN 데이터 프레임은 대상 제어기(ECU1)의 기능을 탈취한 악의의 제어기(malicious ECU)로부터 송신된 악의의 CAN 데이터 프레임에 해당하는 것으로 판단하여 위 경우를 중재 필드의 에러(즉, 중재 에러)로서 검출한다. 중재 에러가 검출되면 처리 모듈(PROC)은 CAN 프로토콜에 따라 미리 정의된 에러 프레임(즉, 6개의 우성 비트(dominant bit, '000000')로 구성된 에러 플래그를 포함하는 에러 프레임)을 Tx 인터페이스(I_Tx)를 통해 송신한다. 송신된 에러 프레임은 비트 타이밍 로직(120) 및 CAN 트랜시버(400)를 거쳐 CAN 버스에 실리게 되며, 이에 따라 모든 제어기는 에러 프레임이 CAN 버스에 실린 이후의 CAN 데이터 프레임을 수신하지 않도록 동작하게 된다.
도 6은 본 실시예에 따른 CAN 통신 에러 처리 방법을 보인 흐름도이다. 도 6을 참조하여 본 실시예에 따른 CAN 통신 에러 처리 방법을 설명하며, 전술한 내용과 중복되는 구성에 대한 구체적인 설명은 생략하고 그 시계열적 구성을 중심으로 설명한다.
먼저, 비트 스트림 프로세서(130)는 Rx 인터페이스(I_Rx)를 통해 CAN 데이터 프레임을 수신한다(S100). S100 단계에서 수신되는 CAN 데이터 프레임은 CAN 버스 및 CAN 트랜시버(400)를 통해 CAN 컨트롤러(100) 레벨에서 수신된 CAN 데이터 프레임이 비트 타이밍 로직(120)에 의해 단위 클럭에 대하여 타이밍 동기화가 이루어진 데이터 프레임에 해당한다.
이어서, 비트 스트림 프로세서(130)는 S100 단계에서 수신된 CAN 데이터 프레임의 중재 필드 내 ID 비트 및 CAN 컨트롤러(100)가 할당된 제어기의 고유 ID 비트를 비교한다(S200).
이어서, 비트 스트림 프로세서(130)는 S200 단계에서의 비교 결과와 S100 단계에서 수신된 CAN 데이터 프레임의 중재 필드 내 RTR 비트에 기초하여 중재 필드의 에러를 검출한다(S300). S300 단계에서, 비트 스트림 프로세서(130)는 상기한 중재 필드 내 ID 비트 및 제어기의 고유 ID 비트가 동일하고, 중재 필드 내 RTR 비트가 우성에 해당하는 값을 갖는 경우를 중재 필드의 에러로 검출한다. 중재 필드의 에러는 S100 단계에서 수신된 CAN 데이터 프레임이 악의의 CAN 데이터 프레임에 해당함을 지표한다.
S300 단계에서 에러가 검출된 경우, 비트 스트림 프로세서(130)는 CAN 프로토콜에 따라 미리 정의된 에러 프레임을 Tx 인터페이스(I_Tx) 모듈을 통해 송신한다(S400).
이와 같이 본 실시예는 CAN 트랜시버(400)를 통해 현재 수신된 CAN 데이터 프레임의 중재 필드 내 ID 비트 및 CAN 컨트롤러가 할당된 제어기의 고유 ID 비트 간의 비교 결과와, 상기의 중재 필드 내 RTR 비트에 기초하여 CAN 네트워크 상에서 송수신되는 악의의(malicious) CAN 데이터 프레임을 검출하고 그에 대한 에러 처리를 수행함으로써 CAN 통신 보안을 향상시킬 수 있다.
본 명세서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시 예에 따르면, 모듈은 ASIC(Application-Specific Integrated Circuit)의 형태로 구현될 수 있다. 또한 본 명세서에서 설명된 구현은, 예컨대, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림 또는 신호로 구현될 수 있다. 단일 형태의 구현의 맥락에서만 논의(예컨대, 방법으로서만 논의)되었더라도, 논의된 특징의 구현은 또한 다른 형태(예컨대, 장치 또는 프로그램)로도 구현될 수 있다. 장치는 적절한 하드웨어, 소프트웨어 및 펌웨어 등으로 구현될 수 있다. 방법은, 예컨대, 컴퓨터, 마이크로프로세서, 집적 회로 또는 프로그래밍 가능한 로직 디바이스 등을 포함하는 프로세싱 디바이스를 일반적으로 지칭하는 프로세서 등과 같은 장치에서 구현될 수 있다.
이상으로 본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 기술적 보호범위는 아래의 특허청구범위에 의해서 정하여져야 할 것이다.
10: 제어기
100: CAN 컨트롤러
110: 클럭 생성 프로세서
120: 비트 타이밍 로직
130: 비트 스트림 프로세서
I_Rx: Rx 인터페이스
I_Tx: Tx 인터페이스
MUX: 멀티플렉서
ID_REG: ID 레지스터
INPUT_REG: 입력 레지스터
COMP: 비교 모듈
PROC: 처리 모듈
200: 내부 버스
300: 마이크로프로세서
400: CAN 트랜시버

Claims (9)

  1. CAN(Controller Area Network) 컨트롤러의 에러 처리를 수행하는 비트 스트림 프로세서(Bit Stream Processor)로서,
    Rx 인터페이스; 및
    상기 Rx 인터페이스를 통해 수신된 CAN 데이터 프레임의 중재 필드(Arbitration Field) 내 ID(Identifier) 비트 및 상기 CAN 컨트롤러가 할당된 제어기의 고유 ID 비트 간의 비교 결과와, 상기 중재 필드 내 RTR(Remote Transmission Request) 비트에 기초하여 상기 중재 필드의 에러를 검출하는 처리 모듈;
    을 포함하고,
    상기 중재 필드의 에러는, 상기 Rx 인터페이스를 통해 수신된 CAN 데이터 프레임이 악의의(malicious) CAN 데이터 프레임에 해당함을 지표하는 것을 특징으로 하는 비트 스트림 프로세서.
  2. 제1항에 있어서,
    상기 처리 모듈은, 상기 중재 필드 내 ID 비트 및 상기 제어기의 고유 ID 비트가 동일하고, 상기 중재 필드 내 RTR 비트가 우성(dominant)에 해당하는 값을 갖는 경우를 상기 중재 필드의 에러로 검출하는 것을 특징으로 하는 비트 스트림 프로세서.
  3. 제1항에 있어서,
    Tx 인터페이스;를 더 포함하고,
    상기 처리 모듈은, 상기 중재 필드의 에러가 검출된 경우 CAN 프로토콜에 따라 미리 정의된 에러 프레임을 상기 Tx 인터페이스를 통해 송신하는 것을 특징으로 하는 비트 스트림 프로세서.
  4. 삭제
  5. 제1항에 있어서,
    상기 CAN 컨트롤러는, CAN 2.0A Protocol, CAN 2.0B Protocol, CAN-FD Standard Protocol, 및 CAN-FD Extended Protocol 중 어느 하나의 프로토콜에 따르는 것을 특징으로 하는 비트 스트림 프로세서.
  6. CAN 컨트롤러의 에러 처리를 수행하는 비트 스트림 프로세서로서,
    Rx 인터페이스;
    상기 Rx 인터페이스를 통해 수신되는, 상기 CAN 컨트롤러가 할당된 제어기의 하나 이상의 고유 ID 비트를 각각 저장하는 하나 이상의 ID 레지스터;
    상기 Rx 인터페이스를 통해 수신되는 CAN 데이터 프레임 내 중재 필드의 비트를 저장하는 입력 레지스터;
    상기 하나 이상의 ID 레지스터에 각각 저장된 상기 하나 이상의 고유 ID 비트, 및 상기 입력 레지스터에 저장된 중재 필드 내 ID 비트를 비교하는 비교 모듈; 및
    상기 비교 모듈에 의한 비교 결과와, 상기 입력 레지스터에 저장된 중재 필드 내 RTR 비트에 기초하여 상기 중재 필드의 에러를 검출하는 처리 모듈;
    을 포함하고,
    상기 중재 필드의 에러는, 상기 Rx 인터페이스를 통해 수신된 CAN 데이터 프레임이 악의의(malicious) CAN 데이터 프레임에 해당함을 지표하는 것을 특징으로 하는 비트 스트림 프로세서.
  7. 제6항에 있어서,
    상기 Rx 인터페이스를 통해 수신되는 상기 제어기의 하나 이상의 고유 ID 비트를 ID 선택 신호에 따라 상기 하나 이상의 ID 레지스터에 각각 순차적으로 저장시키는 멀티플렉서;를 더 포함하는 것을 특징으로 하는 비트 스트림 프로세서.
  8. 제1항 또는 제6항에 따른 비트 스트림 프로세서를 포함하는 CAN 컨트롤러.
  9. CAN 컨트롤러의 비트 스트림 프로세서에 의해 수행되는 CAN 통신 에러 처리 방법으로서,
    CAN 데이터 프레임을 수신하는 단계;
    상기 수신된 CAN 데이터 프레임의 중재 필드 내 ID 비트 및 상기 CAN 컨트롤러가 할당된 제어기의 고유 ID 비트를 비교하는 단계; 및
    상기 비교의 결과와 상기 중재 필드 내 RTR 비트에 기초하여 상기 중재 필드의 에러를 검출하는 단계;
    를 포함하고,
    상기 중재 필드의 에러는, 상기 수신된 CAN 데이터 프레임이 악의의(malicious) CAN 데이터 프레임에 해당함을 지표하는 것을 특징으로 하는, CAN 통신 에러 처리 방법.
KR1020210090939A 2021-07-12 2021-07-12 비트 스트림 프로세서 및 이를 포함하는 can 컨트롤러, can 통신 에러 처리 방법 KR102629768B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210090939A KR102629768B1 (ko) 2021-07-12 2021-07-12 비트 스트림 프로세서 및 이를 포함하는 can 컨트롤러, can 통신 에러 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210090939A KR102629768B1 (ko) 2021-07-12 2021-07-12 비트 스트림 프로세서 및 이를 포함하는 can 컨트롤러, can 통신 에러 처리 방법

Publications (2)

Publication Number Publication Date
KR20230010872A KR20230010872A (ko) 2023-01-20
KR102629768B1 true KR102629768B1 (ko) 2024-01-26

Family

ID=85108509

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210090939A KR102629768B1 (ko) 2021-07-12 2021-07-12 비트 스트림 프로세서 및 이를 포함하는 can 컨트롤러, can 통신 에러 처리 방법

Country Status (1)

Country Link
KR (1) KR102629768B1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011080476A1 (de) * 2011-08-05 2013-02-07 Robert Bosch Gmbh Verfahren und Vorrichtung zur Verbesserung der Datenübertragungssicherheit in einer seriellen Datenübertragung mit flexibler Nachrichtengröße

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Steve Corrigan, 'Introduction to the Controller Area Network (CAN),' texas instrument, (2002.12.31.)*

Also Published As

Publication number Publication date
KR20230010872A (ko) 2023-01-20

Similar Documents

Publication Publication Date Title
US11595422B2 (en) Method for preventing electronic control unit from executing process based on malicious frame transmitted to bus
RU2676236C1 (ru) Устройство мониторинга сети и компьютерный программный продукт
KR102045254B1 (ko) 유연한 메시지 크기로 직렬 데이터 전송 시 데이터 전송 안전성을 개선하기 위한 방법 및 장치
US6697366B1 (en) Ethernet memory management system and methods for operation thereof
KR102011528B1 (ko) 유연한 메시지 크기 및 가변 비트 길이로 직렬 데이터 전송을 하기 위한 방법 및 장치
US8732453B2 (en) Secure acknowledgment device for one-way data transfer system
KR20200007972A (ko) 제어기 영역 네트워크 버스 기반 보안 통신 방법, 장치 및 시스템
US7821919B2 (en) Data processing apparatus and data processing method
JP6814549B2 (ja) 演算装置、認証システム、認証方法
US20150134672A1 (en) Data Copy Management Apparatus and Data Copy Method Thereof
US20170300444A1 (en) Message Translator
KR20220068323A (ko) 차량용 can 통신 보안 장치 및 방법
US20140107863A1 (en) Vehicle Control Device, Vehicle Control System
KR101001074B1 (ko) 버스 상에 데이터를 전송하기 위한 방법
US7961614B2 (en) Information processing device, information processing method, and recording medium for reducing consumption of memory capacity
KR102629768B1 (ko) 비트 스트림 프로세서 및 이를 포함하는 can 컨트롤러, can 통신 에러 처리 방법
US7181675B2 (en) System and method for checksum offloading
EP3572962A1 (en) Multi-master security circuit
EP4160991A1 (en) Communication method and apparatus based on dual channel and rssp-i, and electronic device and storage medium
JP2016100842A (ja) 通信制御装置、通信制御方法、および、通信制御プログラム
CN112637151B (zh) 数据消息的传输方法、终端设备、服务器及存储介质
US20090138786A1 (en) Communication control apparatus, communication control method, and communication control program
CN115378756B (zh) 监控控制器域网络(can)xl节点
US11991022B2 (en) Monitoring controller area network (CAN) XL nodes
KR102595722B1 (ko) 통신 네트워크, 이에 연결된 노드를 식별하는 방법 및 장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant