KR102472404B1 - 차량용 can 메시지의 수신량 증대 장치 및 방법 - Google Patents

차량용 can 메시지의 수신량 증대 장치 및 방법 Download PDF

Info

Publication number
KR102472404B1
KR102472404B1 KR1020200170112A KR20200170112A KR102472404B1 KR 102472404 B1 KR102472404 B1 KR 102472404B1 KR 1020200170112 A KR1020200170112 A KR 1020200170112A KR 20200170112 A KR20200170112 A KR 20200170112A KR 102472404 B1 KR102472404 B1 KR 102472404B1
Authority
KR
South Korea
Prior art keywords
messages
received
mailbox
field
ids
Prior art date
Application number
KR1020200170112A
Other languages
English (en)
Other versions
KR20220080872A (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 KR1020200170112A priority Critical patent/KR102472404B1/ko
Publication of KR20220080872A publication Critical patent/KR20220080872A/ko
Application granted granted Critical
Publication of KR102472404B1 publication Critical patent/KR102472404B1/ko

Links

Images

Classifications

    • 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/40143Bus networks involving priority mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/212Monitoring or handling of messages using filtering or selective blocking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/42Mailbox-related aspects, e.g. synchronisation of mailboxes
    • 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
    • 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/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명은 차량용 CAN 메시지의 수신량 증대 장치에 관한 것으로, CAN(Controller Area Network) 버스를 통해 수신되는 CAN 메시지 중 지정된 아이디의 CAN 메시지만 걸러서 순차로 수신하는 CAN 메시지 수신 처리부; 상기 CAN 메시지 수신 처리부를 통해 걸러서 수신하고자 하는 아이디들을 설정하는 필터부; 상기 순차로 수신되는 CAN 메시지를 저장하는 메일 박스; 상기 CAN 메시지가 수신되어 메일 박스에 저장되는 즉시 해당 CAN 메시지를 인출하여 버퍼부에 저장하는 데이터 처리부; 및 상기 메일 박스의 개수 보다 많은 개수의 CAN 메시지를 수신할 수 있도록 하기 위하여, 상기 CAN 메시지 수신 처리부와 상기 데이터 처리부를 제어하여, 지정된 복수의 아이디에 동일한 메일 박스를 중복 할당하고, 상기 메일 박스에 대응하는 상기 필터부의 지정된 엘리먼트에 지정된 복수의 아이디를 중복 설정하는 제어부;를 포함한다.

Description

차량용 CAN 메시지의 수신량 증대 장치 및 방법{APPARATUS FOR INCREASING RECEPTION AMOUNT OF CAN MESSAGE OF VEHICLE AND METHOD THEREOF}
본 발명은 차량용 CAN 메시지의 수신량 증대 장치 및 방법에 관한 것으로, 보다 상세하게는 차량의 전자제어장치(ECU : Electronic Control Unit)에서 지원하는 메일 박스보다 많은 개수의 CAN(Controller Area Network) 메시지를 수신할 수 있도록 하는, 차량용 CAN 메시지의 수신량 증대 장치 및 방법에 관한 것이다.
일반적으로 차량의 시스템이 자동화됨에 따라, 차량 내부 제어기들 간의 통신 또한 빈번하게 이뤄지고 있으며, 차량 내부 통신을 위해서 CAN(Controller Area Network) 통신이 일반적으로 이용된다.
즉, 자동차 내부의 전자제어시스템은 엔진제어기, 변속기제어기, 브레이크제어기, 및 에어백제어기 등 수 십여 개의 전자제어장치(ECU : Electronic Control Unit)들로 구성되어 있다. 이러한 복수의 전자제어장치들 간의 통신은 CAN 통신을 사용한다.
일반적으로 CAN 통신은 중재 기능이 존재하기 때문에 2가닥의 꼬임선을 이용하여 복수의 전자제어장치(ECU)가 병렬로 연결되어 통신이 가능하도록 한다.
기본적으로, CAN 프로토콜 방식의 메시지 통신에 따르면, 네트워크는 복수의 노드(예 : 복수의 ECU에 각기 포함된 CAN 컨트롤러)와 공통의 CAN 버스로 구성되고, 각 노드는 브로드캐스팅 방식으로 메시지를 전송하고, 각 노드가 필요한 메시지를 선택하여 수신한다. 즉, 모든 CAN 컨트롤러(또는 노드)는 CAN 버스(BUS)를 공통으로 사용하여 메시지를 송수신한다.
또한, 각 CAN 컨트롤러(또는 노드)는 전송할 메시지들을 네트워크 상 모든 노드(예 : 복수의 ECU에 각기 포함된 CAN 컨트롤러)들에게 브로드캐스트 방식으로 전송한다. 그리고 메시지 식별자에 의한 자체적인 중재 기능을 제공한다. 구체적으로, 각 CAN 컨트롤러(또는 노드)는 메시지의 아이디(ID, 식별자)를 인식하여, 브로트캐스팅 된 메시지들 중에서 필요한 메시지만 걸러서 수신한다.
이 때 기존에 상기 CAN 메시지들은 아이디별로 1:1로 매칭된 메일 박스(MB)에 저장되었는데, 상기 CAN 컨트롤러에서 제공하는 메일 박스의 개수가 하드웨어적으로 한정되어 있기 때문에 전자제어장치(ECU)에서 수신할 수 있는 CAN 메시지의 개수도 제한될 수 밖에 없었다.
그러나 최근 차량에 포함되는 전자제어 시스템(예 : ABS(Anti-Break System), 에어백(Air-Bag), 순향 제어 시스템(VCC) 등)이 증가함에 따라, 전자제어장치(ECU)의 개수가 증가되고 있으며, 이에 따라 전자제어장치(ECU)간 공유 데이터도 증가됨에 따라, 전자제어장치(ECU)에서 수신해야 되는 CAN 메시지의 개수가 기존 하드웨어적으로 한정된 메일 박스(MB)의 개수보다 증가하게 되었다.
따라서 기존에 하드웨어적으로 한정된 메일 박스(MB)의 개수 이상의 CAN 메시지를 수신하기 위한 기술이 필요한 상황이다.
본 발명의 배경기술은 대한민국 공개특허 10-2017-0030514호(2019.03.22. 공개, 차량 네트워크 공격 신호 차단 장치 및 방법)에 개시되어 있다.
본 발명의 일 측면에 따르면, 본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 차량의 전자제어장치(ECU)에서 지원하는 메일 박스보다 많은 개수의 CAN 메시지를 수신할 수 있도록 하는, 차량용 CAN 메시지의 수신량 증대 장치 및 방법을 제공하는 데 그 목적이 있다.
본 발명의 일 측면에 따른 차량용 CAN 메시지의 수신량 증대 장치는, CAN(Controller Area Network) 버스를 통해 수신되는 CAN 메시지 중 지정된 아이디의 CAN 메시지만 걸러서 순차로 수신하는 CAN 메시지 수신 처리부; 상기 CAN 메시지 수신 처리부를 통해 걸러서 수신하고자 하는 아이디들을 설정하는 필터부; 상기 순차로 수신되는 CAN 메시지를 저장하는 메일 박스; 상기 CAN 메시지가 수신되어 메일 박스에 저장되는 즉시 해당 CAN 메시지를 인출하여 버퍼부에 저장하는 데이터 처리부; 및 상기 메일 박스의 개수 보다 많은 개수의 CAN 메시지를 수신할 수 있도록 하기 위하여, 상기 CAN 메시지 수신 처리부와 상기 데이터 처리부를 제어하여, 지정된 복수의 아이디에 동일한 메일 박스를 중복 할당하고, 상기 메일 박스에 대응하는 상기 필터부의 지정된 엘리먼트에 지정된 복수의 아이디를 중복 설정하는 제어부;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 상기 CAN 메시지가 수신되거나 상기 메일 박스에 저장될 경우, 이를 인터럽트 신호에 의해 감지하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 전자제어장치(ECU)의 MCU(Micro Control Unit)나 CAN 컨트롤러로 구현될 수 있으며, 상기 CAN 메시지 수신 처리부나 상기 데이터 처리부와 통합된 형태로 구현될 수 있음을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 전체 수신 CAN 메시지의 아이디를 지정된 순서로 정렬시키고, 상기 지정된 순서로 정렬시킨 전체 수신 CAN 메시지의 아이디들 간의 차이(ID_Diff) 값을 산출하며, 상기 전체 수신 CAN 메시지의 아이디들 간의 차이(ID_Diff) 값을 바탕으로 상기 전체 수신 CAN 메시지의 아이디들을 지정된 순서로 정렬한 후 인덱스(Index)를 부여한 테이블을 생성하는 것을 특징으로 한다.
본 발명에 있어서, 상기 테이블은, 인덱스(Index) 필드, 차이(ID_Diff) 값 필드, 제1 아이디 필드(ID[1]), 및 제2 아이디 필드(ID[2])를 포함하며, 상기 제1 아이디 필드의 아이디와 상기 제2 아이디 필드의 아이디는, 상기 제어부가 상기 차이(ID_Diff) 값을 산출하기 위하여 비교했던 대상 아이디인 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 메일 박스의 총 개수(MB_Max)와 수신 CAN 메시지의 총 개수(Rx_Max)를 비교하여, 상기 메일 박스의 총 개수 보다 수신 CAN 메시지의 총 개수가 더 많은 경우, 상기 테이블을 참조하여, 현재 인덱스의 제1 아이디 필드(ID[1])의 아이디와 이전 인덱스의 제2 아이디 필드의 아이디가 동일한지 비교하고, 현재 인덱스의 제1 아이디 필드의 아이디와 이전 인덱스의 제2 아이디 필드의 아이디가 동일하지 않은 경우, 현재 제1 아이디 필드의 아이디 또는 제2 아이디 필드의 아이디에 메일 박스가 할당되었는지 체크하여, 현재 제1 아이디 필드의 아이디 또는 제2 아이디 필드의 아이디에 메일 박스가 할당되지 않았을 경우, 상기 제1 아이디 필드의 아이디와 제2 아이디 필드의 아이디에 동일한 넘버의 메일 박스를 할당하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 메일 박스를 할당하면, 메일 박스 넘버(MB #n)를 1 증가시키고, 총 메일 박스 개수(MB_Max)는 1 감소시키며, 상기 메일 박스를 할당 한 수신 CAN 메시지의 개수(Rx Msg) 만큼 수신 CAN 메시지의 총 개수(Rx_Max)를 1 감소시키고, 인덱스는 1 증가시키는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 현재 인덱스의 제1 아이디 필드의 아이디와 이전 인덱스의 제2 아이디 필드의 아이디가 동일한 경우, 현재 인덱스의 제2 아이디 필드의 아이디에 이전 넘버의 메일 박스를 할당한 후, 상기 메일 박스를 할당 한 수신 CAN 메시지의 개수(Rx Msg) 만큼 수신 CAN 메시지의 총 개수(Rx_Max)를 1 감소시키고, 인덱스는 1 증가시키는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 현재 제1 아이디 필드의 아이디 또는 제2 아이디 필드의 아이디에 메일 박스가 이미 할당되어 있을 경우, 새로운 메일 박스를 할당하지 않으므로, 상기 메일 박스 넘버 총 개수 및 수신 CAN 메시지의 총 개수는 변하지 않고 유지시키며, 인덱스만 1 증가시키는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 상기 메일 박스의 총 개수(MB_Max) 보다 수신 CAN 메시지의 총 개수(Rx_Max)가 더 많지 않을 경우, 미 할당된 수신 CAN 메시지의 아이디에 현재 메일 박스 넘버부터 순차적으로 할당하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 필터부의 지정된 엘리먼트에 복수의 아이디를 중복 설정하여, 상기 복수의 아이디에 동일한 메일 박스를 중복 부여하는 경우, 상기 동일한 메일 박스 넘버가 부여된 아이디들을 확인하고, 상기 필터부가 마스킹 비트 설정이 가능한지 체크하며, 상기 마스킹 비트 설정이 가능하지 않은 경우 아이디의 범위 설정 방식으로 복수의 아이디를 하나의 엘리먼트에 중복 설정하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 상기 필터부의 마스킹 비트 설정이 가능한 경우, 상기 동일한 메일 박스가 부여되는 복수의 아이디들을 오아(OR) 비트 연산하여 대표 아이디를 산출하고, 상기 동일한 메일 박스가 부여되는 복수의 아이디들을 배타적 부정 논리합(XNOR) 비트 연산하여 마스팅 비트를 산출하여 상기 필터부에 설정하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, CAN 메시지가 수신되면 발생되는 인터럽트 신호에 따라 즉시 아이디별 CAN 메시지가 저장된 메일 박스를 확인하고, 상기 아이디별 지정된 메일 박스에 저장된 CAN 메시지를 인출하여 상기 버퍼부의 아이디별 지정된 버퍼에 저장하는 것을 특징으로 한다.
본 발명의 다른 측면에 따른 차량용 CAN 메시지의 수신량 증대 방법은, 제어부가 CAN(Controller Area Network) 버스를 통해 수신되는 CAN 메시지 중 지정된 아이디의 CAN 메시지만 걸러서 순차로 수신하는 단계; 상기 제어부가 상기 걸러서 수신하고자 하는 CAN 메시지의 아이디들을 필터부에 설정하는 단계; 상기 제어부가 순차로 수신되는 CAN 메시지를 메일 박스에 저장하는 단계; 상기 제어부가 상기 CAN 메시지가 수신되어 메일 박스에 저장되는 즉시 해당 CAN 메시지를 인출하여 버퍼부에 저장하는 단계; 및 상기 제어부가 상기 메일 박스의 개수 보다 많은 개수의 CAN 메시지를 수신하기 위하여, 지정된 복수의 아이디에 동일한 메일 박스를 중복 할당하고, 상기 메일 박스에 대응하는 상기 필터부의 지정된 엘리먼트에 지정된 복수의 아이디를 중복 설정하는 단계;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 메일 박스의 개수 보다 많은 개수의 CAN 메시지를 수신하기 위하여, 상기 제어부는, 전체 수신 CAN 메시지의 아이디를 지정된 순서로 정렬시키고, 상기 지정된 순서로 정렬시킨 전체 수신 CAN 메시지의 아이디들 간의 차이(ID_Diff) 값을 산출하며, 상기 전체 수신 CAN 메시지의 아이디들 간의 차이(ID_Diff) 값을 바탕으로 상기 전체 수신 CAN 메시지의 아이디들을 지정된 순서로 정렬한 후 인덱스(Index)를 부여한 테이블을 생성하는 단계;를 더 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 메일 박스의 총 개수(MB_Max)와 수신 CAN 메시지의 총 개수(Rx_Max)를 비교하여, 상기 메일 박스의 총 개수 보다 수신 CAN 메시지의 총 개수가 더 많은 경우, 상기 제어부는, 상기 테이블을 참조하여, 현재 인덱스의 제1 아이디 필드(ID[1])의 아이디와 이전 인덱스의 제2 아이디 필드의 아이디가 동일한지 비교하고, 현재 인덱스의 제1 아이디 필드의 아이디와 이전 인덱스의 제2 아이디 필드의 아이디가 동일하지 않은 경우, 현재 제1 아이디 필드의 아이디 또는 제2 아이디 필드의 아이디에 메일 박스가 할당되었는지 체크하여, 현재 제1 아이디 필드의 아이디 또는 제2 아이디 필드의 아이디에 메일 박스가 할당되지 않았을 경우, 상기 제1 아이디 필드의 아이디와 제2 아이디 필드의 아이디에 동일한 넘버의 메일 박스를 할당하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제1 아이디 필드의 아이디와 제2 아이디 필드의 아이디에 동일한 넘버의 메일 박스를 할당하면, 상기 제어부는, 메일 박스 넘버(MB #n)를 1 증가시키고, 총 메일 박스 개수(MB_Max)는 1 감소시키며, 상기 메일 박스를 할당 한 수신 CAN 메시지의 개수(Rx Msg) 만큼 수신 CAN 메시지의 총 개수(Rx_Max)를 1 감소시키고, 인덱스는 1 증가시키는 것을 특징으로 한다.
본 발명에 있어서, 상기 현재 인덱스의 제1 아이디 필드의 아이디와 이전 인덱스의 제2 아이디 필드의 아이디가 동일한 경우, 상기 제어부는, 현재 인덱스의 제2 아이디 필드의 아이디에 이전 넘버의 메일 박스를 할당한 후, 상기 메일 박스를 할당 한 수신 CAN 메시지의 개수(Rx Msg) 만큼 수신 CAN 메시지의 총 개수(Rx_Max)를 1 감소시키고, 인덱스는 1 증가시키는 것을 특징으로 한다.
본 발명에 있어서, 상기 현재 제1 아이디 필드의 아이디 또는 제2 아이디 필드의 아이디에 메일 박스가 이미 할당되어 있을 경우, 상기 제어부는, 새로운 메일 박스를 할당하지 않으므로, 상기 메일 박스 넘버 총 개수 및 수신 CAN 메시지의 총 개수는 변하지 않고 유지시키며, 인덱스만 1 증가시키는 것을 특징으로 한다.
본 발명에 있어서, 상기 메일 박스의 총 개수(MB_Max) 보다 수신 CAN 메시지의 총 개수(Rx_Max)가 더 많지 않을 경우, 상기 제어부는, 미 할당된 수신 CAN 메시지의 아이디에 현재 메일 박스 넘버부터 순차적으로 할당하는 것을 특징으로 한다.
본 발명에 있어서, 상기 필터부의 지정된 엘리먼트에 복수의 아이디를 중복 설정하여, 상기 복수의 아이디에 동일한 메일 박스를 중복 부여하는 경우, 상기 제어부가, 상기 동일한 메일 박스 넘버가 부여된 아이디들을 확인하고, 상기 필터부가 마스킹 비트 설정이 가능한지 체크하며, 상기 마스킹 비트 설정이 가능하지 않은 경우 아이디의 범위 설정 방식으로 복수의 아이디를 하나의 엘리먼트에 중복 설정하는 단계;를 더 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 필터부의 마스킹 비트 설정이 가능한 경우, 상기 제어부가, 상기 동일한 메일 박스가 부여되는 복수의 아이디들을 오아(OR) 비트 연산하여 대표 아이디를 산출하고, 상기 동일한 메일 박스가 부여되는 복수의 아이디들을 배타적 부정 논리합(XNOR) 비트 연산하여 마스팅 비트를 산출하여 상기 필터부에 설정하는 단계;를 더 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 CAN 메시지가 수신될 경우, 상기 제어부가, 인터럽트 신호에 따라 즉시 아이디별 CAN 메시지가 저장된 메일 박스를 확인하고, 상기 아이디별 지정된 메일 박스에 저장된 CAN 메시지를 인출하여 상기 버퍼부의 아이디별 지정된 버퍼에 저장하는 단계;를 더 포함하는 것을 특징으로 한다.
본 발명의 일 측면에 따르면, 본 발명은 차량의 전자제어장치(ECU)에서 지원하는 메일 박스보다 많은 개수의 CAN 메시지를 수신할 수 있도록 한다.
도 1은 본 발명의 일 실시예에 따른 차량용 CAN 메시지의 수신량 증대 장치의 개략적인 구성을 보인 예시도.
도 2는 본 발명의 일 실시예에 따른 차량용 CAN 메시지의 수신량 증대 방법을 설명하기 위한 흐름도.
도 3 내지 도 7은 상기 도 2에 있어서, 복수의 엘리먼트 중 일부 지정된 엘리먼트에 복수의 아이디를 중복 설정하는 방법을 설명하기 위한 예시도.
도 8은 상기 도 1에 있어서, 필터부의 아이디 설정 방법을 설명하기 위한 흐름도.
도 9는 상기 도 8에 있어서, 필터부의 아이디 설정 방법을 설명하기 위한 예시도.
도 10은 상기 도 2에 있어서, 차량용 CAN 메시지의 수신량 증대 방법을 설명하기 위한 흐름도.
이하, 첨부된 도면을 참조하여 본 발명에 따른 차량용 CAN 메시지의 수신량 증대 장치 및 방법의 일 실시예를 설명한다.
이 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 차량용 CAN 메시지의 수신량 증대 장치의 개략적인 구성을 보인 예시도이다.
도 1에 도시된 바와 같이, 본 실시예에 따른 차량용 CAN 메시지의 수신량 증대 장치는, CAN 메시지 수신 처리부(110), 필터부(120), 메일 박스(130), 데이터 처리부(140), 버퍼부(150), 및 제어부(160)를 포함한다.
상기 CAN 메시지 수신 처리부(110)는 CAN 버스를 통해 수신되는 CAN 메시지 중 지정된 아이디의 CAN 메시지만 걸러서 순차로 수신한다.
이 대 상기 CAN 메시지 수신 처리부(110)를 통해 걸러서 수신하고자 하는 아이디(즉, 지정된 유효 아이디)들은 상기 필터부(120)에 미리 설정된다.
상기 필터부(120)는 지정된 아이디가 각기 설정되는 복수의 엘리먼트(예 : element 0 ~ element 63)를 포함한다.
본 실시예에서 상기 필터부(120)의 각 엘리먼트(예 : element 0 ~ element 63)에는 복수의 아이디가 중복되어 설정될 수 있다.
이에 따라 상기 CAN 메시지 수신 처리부(110)는 CAN 버스를 통해 수신되는 CAN 메시지 중, 상기 필터부(120)의 각 엘리먼트에 설정된 아이디와 동일한 아이디를 갖는 CAN 메시지가 수신될 경우, 해당 CAN 메시지의 프레임 정보(예 : ID, DLC, Data 필드 정보, 등)를 상기 메일 박스(130)에 저장한다.
이 때 상기 메일 박스(130)는 상기 필터부(120)의 엘리먼트와 1:1로 매칭되며, 따라서 상기 메일 박스(130)의 개수(예 : MB 0 ~ MB 63)와 상기 필터부(120)의 의 엘리먼트의 개수(예 : element 0 ~ element 63)는 동일하다.
이에 상기 전자제어장치(ECU)는 어플리케이션 영역에서 상기 수신된 CAN 메시지의 데이터가 필요할 경우, 상기 메일 박스(130)의 데이터 영역에 접근하여 해당 데이터를 가져갈 수 있다. 그런데 이미 상술한 바와 같이, 기존에는 수신할 CAN 메시지의 개수(즉, 아이디가 다른 CAN 메시지의 개수)가 상기 메일 박스(130)의 개수(예 : MB 0 ~ MB 63)로 제한되는 문제점이 있었다.
이에 따라 본 실시예에서는 상기 메일 박스(130)의 개수(예 : MB 0 ~ MB 63)가 제한되어 있을 경우, 상기 필터부(120)의 복수의 엘리먼트(예 : element 0 ~ element 63) 중 일부 지정된 엘리먼트에 복수의 아이디를 중복 설정하여, 상기 지정된 엘리먼트(즉, 상기 복수의 아이디가 중복하여 설정된 엘리먼트)(예 : element 30)에 1:1로 대응하는 메일 박스(예 : MB 30)에 상기 복수의 아이디를 갖는 CAN 메시지들을 저장하는 공용 공간으로 사용하게 한다.
그런데 만약 상기와 같이 하나의 메일 박스(예 : MB 30)에 상기 복수의 아이디 중 어느 하나의 아이디를 갖는 CAN 메시지가 저장되고, 곧바로 상기 복수의 아이디 중 다른 하나의 아이디를 갖는 CAN 메시지가 수신되어 저장될 경우, 먼저 저장된 CAN 메시지가 삭제될 수 있다.
따라서 본 실시예에서는, 상기 데이터 처리부(140)를 통해, 상기 복수의 아이디를 갖는 CAN 메시지들이 저장되는 메일 박스(예 : MB 30)에 CAN 메시지가 저장되는 즉시(또는 상기 CAN 메시지 수신 처리부를 통해 CAN 메시지가 수신되는 즉시), 이를 인터럽트 방식으로 감지하여, 상기 메일 박스(예 : MB 30)에 저장된 CAN 메시지를 인출하여, 상기 버퍼부(150)의 지정된 버퍼에 저장(예 : CAN 메시지의 아이디가 30인 경우 buffer 30에 저장)한다.
이에 상기 전자제어장치(ECU)의 어플리케이션 영역에서 상기 수신된 CAN 메시지의 데이터가 필요할 경우, 상기 버퍼부(150)의 해당 버퍼(예 : CAN 메시지의 아이디가 30인 경우 해당 CAN 메시지가 저장된 buffer 30)에 접근하여 해당 데이터를 가져갈 수 있다.
상기 제어부(160)는 상기 CAN 메시지 수신 처리부(110)를 제어하여 지정된 아이디의 CAN 메시지만 걸러서 순차로 수신하게 하고, 또한 제한된 메일 박스(130)의 개수 보다 많은 개수의 CAN 메시지를 수신할 수 있도록 하기 위하여, 상기 복수의 엘리먼트(예 : element 0 ~ element 63) 중 일부 지정된 엘리먼트에 복수의 아이디를 중복 설정하게 한다.
또한 상기 제어부(160)는 상기 데이터 처리부(140)를 제어하여, 상기 CAN 메시지가 수신되거나 저장되는 즉시 이를 인터럽트 방식으로 감지하고, 해당 CAN 메시지가 저장된 메일 박스에서 해당 CAN 메시지를 인출하여, 지정된 버퍼(예 : CAN 메시지의 아이디에 대응하는 지정된 버퍼)에 저장하게 한다.
이 때 상기 제어부(160)는 상기 전자제어장치(ECU)의 MCU(Micro Control Unit)나 CAN 컨트롤러로 구현될 수 있으며, 상기 CAN 메시지 수신 처리부(110)나 상기 데이터 처리부(140)와 통합된 형태로 구현될 수도 있다.
도 2는 본 발명의 일 실시예에 따른 차량용 CAN 메시지의 수신량 증대 방법을 설명하기 위한 흐름도이고, 도 3 내지 도 7은 상기 도 2에 있어서, 복수의 엘리먼트 중 일부 지정된 엘리먼트에 복수의 아이디를 중복 설정하는 방법을 설명하기 위한 예시도이다.
이하, 상기 제어부(160)가 상기 CAN 메시지 수신 처리부(110)를 제어하여, 상기 복수의 엘리먼트 중 일부 지정된 엘리먼트에 복수의 아이디를 중복 설정하는 방법에 대해서, 도 2 내지 도 8을 참조하여 설명한다.
다만 설명의 편의를 위하여, 상기 필터부(120)에서 유효 아이디가 설정되는 엘리먼트와 이에 1:1로 대응되는 메일 박스(130)의 개수는 16개(MB_Max = 16)인 것으로 가정하고, 수신되는 CAN 메시지의 개수는 이보다 많은 20개(Rx_Max)인 것으로 가정하여 설명한다.
도 2를 참조하면, 상기 제어부(160)는 전체 수신 CAN 메시지의 아이디를 지정된 순서로 정렬시킨다(S101).
예컨대 도 3의 (a)에 도시된 바와 같이, 전체 수신 CAN 메시지들(Rx_Max)의 아이디 리스트가 설정되어 있다고 가정할 때, 상기 제어부(160)는, 상기 도 3의 (a)에 도시된 바와 같은 CAN 메시지들의 아이디 리스트를, 도 3의 (b)에 도시된 바와 같이, 지정된 순서(예 : 내림차순)으로 정렬시킨다.
또한 상기 제어부(160)는 상기 지정된 순서(예 : 내림차순)로 정렬시킨 전체 수신 CAN 메시지의 아이디들 간의 차이(ID_Diff)를 산출한다(S102)(도 3의 (c) 참조).
예컨대 도 3의 (c)에 도시된 바와 같이, 리스트에서 가장 하위에 기재되어 있는 아이디(예 : Ox0050)와 바로 위에 기재되어 있는 아이디(예 : 0x0051)간의 차이(ID_Diff)는 1이고, 리스트의 가장 하위에서 두 번째에 기재되어 있는 아이디(예 : 0x0051)와 그 바로 위에 기재되어 있는 아이디(예 : 0x0052)간의 차이(ID_Diff)는 1이며, 리스트의 가장 하위에서 세 번째에 기재되어 있는 아이디(0x0052)와 그 바로 위에 기재되어 있는 아이디(0x0060)간의 차이(ID_Diff)는 14이다.
상기 지정된 순서(예 : 내림차순)로 정렬시킨 전체 수신 CAN 메시지의 아이디들 간의 차이(ID_Diff)를 산출한 후, 상기 제어부(160)는 상기 전체 수신 CAN 메시지의 아이디들 간의 차이(ID_Diff) 값을 바탕으로 지정된 순서(예 : 오름차순)으로 정렬된 테이블을 작성(생성)한 후, 상기 지정된 순서(예 : 오름차순)에 따라 인덱스(Index)를 부여한다(도 3의 (d) 참조).
예컨대 도 3의 (d)를 참조하면, 상기 전체 수신 CAN 메시지의 아이디들 간의 차이(ID_Diff) 값이 가장 작은 아이디(예 : 0x0050)가 리스트(또는 테이블)의 제1 아이디 필드(ID[1])의 가장 상위(즉, 인덱스 0인 위치)에 기재되고, 그 아래의 인덱스에 상기 차이(ID_Diff) 값이 큰 아이디(예 : 0x0051, 0x0417, 0x0414, 등) 순으로 순차 정렬되어 기재된다.
이 때 상기 차이(ID_Diff) 값이 동일한 아이디(예 : (0x0050, 0x0051), (0x0414, 0x0411) 등)인 경우, 도 3의 (c)에 도시된 테이블(또는 리스트)에 정렬된 순서(예 : 내림차순)에 따라 순차로 기재된다.
그리고 도 3의 (d)에서 제2 아이디 필드(ID[2])에는, 상기 도 3의 (c)에서 상기 제1 아이디 필드(ID]1])의 아이디와 비교하여 차이(ID_Diff) 값을 산출했던 대상 아이디가 기재된다.
예컨대 상기 도 3의 (c)에서, 인덱스 0인 제1 아이디 필드(ID[1])의 아이디(0x0050)와 비교하여 차이(ID_Diff) 값을 산출했던 대상 아이디(0x0051)가 제2 아이디 필드(ID[2])에 기재되고, 인덱스 1인 제1 아이디 필드(ID[1])의 아이디(0x0051)와 비교하여 차이(ID_Diff) 값을 산출했던 대상 아이디(0x0052)가 제2 아이디 필드(ID[2])에 기재되며, 이와 마찬가지 방식으로 인덱스 2인 제1 아이디 필드(ID[1])의 아이디(0x0417)와 비교하여 차이(ID_Diff) 값을 산출했던 대상 아이디(0x0419)가 제2 아이디 필드(ID[2])에 기재된다.
이에 따라 상기 제어부(160)는 메일 박스(130)의 총 개수(즉, 사용 가능한 메일 박스의 최대 개수, MB_Max)와 수신 메시지의 총 개수(즉, CAN 메시지를 수신할 수 있도록 설정된 아이디의 총 개수, Rx_Max)를 비교한다(S104).
상기 비교(S104) 결과, 물리적으로 제한된 메일 박스(130)의 총 개수(예 : MB_Max = 16) 보다 수신되는 CAN 메시지(즉, CAN 메시지를 수신할 수 있도록 설정된 아이디)의 총 개수(Rx_Max = 20)가 더 많은 경우(S104의 예), 상기 제어부(160)는, 도 3의 (d)에 도시된 테이블을 참조하여, 현재 인덱스(예 : 인덱스 1)의 제1 아이디 필드(ID[1])의 아이디(0x0051)와 이전 인덱스(예 : 인덱스 0)의 제2 아이디 필드(ID[2])의 아이디(예 : 0x0051)가 동일한지 비교한다(S105).
예컨대 상기 제어부(160)는, 현재 인덱스가 1인 경우 현재 인덱스(예 : 인덱스 1)의 제1 아이디 필드(ID[1])의 아이디(0x0051)와 이전 인덱스(예 : 인덱스 0)의 제2 아이디 필드(ID[2])의 아이디(예 : 0x0051)가 동일한지 비교하고, 또한 현재 인덱스가 2인 경우 현재 인덱스(예 : 인덱스 2)의 제1 아이디 필드(ID[1])의 아이디(0x0417)와 이전 인덱스(예 : 인덱스 1)의 제2 아이디 필드(ID[2])의 아이디(예 : 0x0052)가 동일한지 비교하며, 이와 마찬가지 방식으로 현재 인덱스가 3인 경우 현재 인덱스(예 : 인덱스 3)의 제1 아이디 필드(ID[1])의 아이디(0x0414)와 이전 인덱스(예 : 인덱스 2)의 제2 아이디 필드(ID[2])의 아이디(예 : 0x0419)가 동일한지 비교한다.
상기 비교(S105) 결과, 현재 인덱스(예 : 인덱스 2)의 제1 아이디 필드(ID[1])의 아이디(0x0417)와 이전 인덱스(예 : 인덱스 1)의 제2 아이디 필드(ID[2])의 아이디(예 : 0x0052)가 동일하지 않은 경우(S105의 아니오), 상기 제어부(160)는 현재 제1 아이디 필드(ID[1])의 아이디 또는 제2 아이디 필드(ID[2])의 아이디에 메일 박스가 부여(할당)되었는지 체크한다(S107)(도 4 참조).
이 때 최초에는 현재 제1 아이디 필드(ID[1])의 아이디 또는 제2 아이디 필드(ID[2])의 아이디에 메일 박스가 부여(할당)되지 않았을 것이므로, 상기 체크(S107) 결과, 현재 제1 아이디 필드(ID[1])의 아이디 또는 제2 아이디 필드(ID[2])의 아이디에 메일 박스가 부여(할당)되지 않았을 경우(S107의 아니오), 상기 제어부(160)는 제1 아이디 필드(ID[1])의 아이디와 제2 아이디 필드(ID[2])의 아이디에 동일한 넘버(예 : MB #n)의 메일 박스를 부여(할당)한다(S108).
예컨대 최초에 상기 메일 박스 넘버(예 : MB #n)는 0이 된다(예 : MB 0).
그리고 상기 제어부(160)는 메일 박스 넘버(예 : MB #n)를 1 증가시키고(예 : MB #n + 1), 반면 총 메일 박스 개수(예 : MB_Max)는 1 감소시킨다(예 : MB_Max - 1)(S109).
또한 상기 제어부(160)는 상기 메일 박스 넘버(예 : MB #n)를 부여(할당)한 수신 메시지의 개수(즉, CAN 메시지를 수신할 수 있도록 설정된 아이디의 개수, Rx Msg) 만큼 수신 메시지의 총 개수(Rx_Max)를 1 감소시키고, 인덱스는 1 증가시킨다(S110).
즉, 상기 제어부(160)는 상기 도 3의 (d)에 도시된 테이블에 기재된 모든 아이디에 대하여 메일 박스 넘버(예 : MB #n)를 부여(할당)하는 작업을 실시하는 것이다.
한편, 상기 비교(S105) 결과, 현재 인덱스(예 : 인덱스 1)의 제1 아이디 필드(ID[1])의 아이디(0x0051)와 이전 인덱스(예 : 인덱스 0)의 제2 아이디 필드(ID[2])의 아이디(예 : 0x0051)가 동일한 경우(S105의 예), 상기 제어부(160)는 현재 인덱스(예 : 인덱스 1)의 제2 아이디 필드(ID[2])의 아이디(예 : 0x0052)에 이전 넘버(예 : S109 단계에서 "MB #n + 1"상태이므로, "-1"을 한 메일 박스 넘버)의 메일 박스를 부여(할당)한다(S106)(도 5 참조).
그리고 상기 제어부(160)는 상기 메일 박스 넘버(예 : MB #n)를 부여(할당)한 수신 메시지의 개수(즉, CAN 메시지를 수신할 수 있도록 설정된 아이디의 개수, Rx Msg) 만큼 수신 메시지의 총 개수(Rx_Max)를 1 감소시키고, 인덱스는 1 증가시킨다(S110).
한편 상기 체크(S107) 결과, 현재 제1 아이디 필드(ID[1])의 아이디 또는 제2 아이디 필드(ID[2])의 아이디에 메일 박스가 이미 부여(할당)되어 있을 경우(S107의 예), 상기 제어부(160)는 새로운 메일 박스 넘버(예 : MB #n)를 부여(할당)하지 않으므로, 상기 메일 박스 넘버 총 개수(예 : MB_Max는 14 유지) 및 수신 메시지의 총 개수(예 : Rx_Max는 15 유지)는 변하지 않고 유지시키며, 인덱스만 1 증가시킨다(S110)(도 6 참조).
한편 상기 비교(S104) 결과, 물리적으로 제한된 메일 박스(130)의 총 개수(MB_Max) 보다 수신되는 CAN 메시지(즉, CAN 메시지를 수신할 수 있도록 설정된 아이디)의 총 개수(Rx_Max)가 더 많지 않을 경우(S104의 아니오)(즉, 메일 박스를 공동으로 사용할 복수의 아이디에 대한 메일 박스의 할당이 완료될 경우), 상기 제어부(160)는, 미 할당된 수신 CAN 메시지의 아이디에 현재 메일 박스 넘버(예 : MB #n)부터 순차적으로 할당한다(S111)(도 7 참조).
상기와 같이 본 실시예는 제한된 메일 박스(130)의 개수 보다 많은 개수의 CAN 메시지를 수신할 경우, 복수의 엘리먼트 중 일부 지정된 엘리먼트에 복수의 아이디를 우선적으로 중복 설정하고(즉, 복수의 메일 박스(MB) 중 일부 지정된 메일 박스를 복수의 아이디에 중복 설정하고), 나머지 메일 박스(MB)는 나머지 아이디에 1:1로 설정을 완료한다.
도 8은 상기 도 1에 있어서, 필터부의 아이디 설정 방법을 설명하기 위한 흐름도이고, 도 9는 상기 도 8에 있어서, 필터부의 아이디 설정 방법을 설명하기 위한 예시도이다.
도 8을 참조하면, 필터부의 일부 지정된 엘리먼트에 복수의 아이디를 중복 설정하는 경우(즉, 일부 지정된 메일 박스에 복수의 아이디를 중복 설정하는 경우), 상기 제어부(160)는 동일한 메일 박스 넘버가 부여된 아이디들을 확인한다(S201).
또한 상기 제어부(160)는 필터의 마스킹 비트 설정이 가능한지 체크한다(S202).
예컨대 CAN 컨트롤러는 종류에 따라서 필터부에 아이디를 설정하는 방식이 다르기 때문에, 본 실시예에서 상기 제어부(160)는 대표 아이디와 마스킹 비트 설정 방식으로 복수의 아이디를 하나의 엘리먼트(또는 하나의 메일 박스)에 중복 설정할 수 있는지, 아니면 아이디의 범위(예 : 최상위 우선순위의 ID와 최하위 우선순위의 ID 사이의 범위) 설정 방식으로 복수의 아이디를 하나의 엘리먼트(또는 하나의 메일 박스)에 중복 설정할 수 있는지를 체크한다.
따라서 상기 체크(S202) 결과, 필터의 마스킹 비트 설정이 가능하지 않은 경우(즉, 대표 아이디와 마스킹 비트 설정 방식으로 복수의 아이디를 하나의 엘리먼트(또는 하나의 메일 박스)에 중복 설정할 수 없는 경우)(S202의 아니오), 상기 제어부(160)는 아이디의 범위(예 : 최상위 우선순위의 ID와 최하위 우선순위의 ID 사이의 범위) 설정 방식으로 복수의 아이디를 하나의 엘리먼트(또는 하나의 메일 박스)에 중복 설정한다(S207).
예컨대 도 9를 참조하면, 필터부(120)의 일부 지정된 엘리먼트(또는 일부 지정된 메일 박스)(예 : MB 2)에 복수의 아이디(예 : 0x0411, 0x0414)를 중복 설정하는 경우, 상기 제어부(160)는 최상위 우선순위의 ID(예 : 0x0414)와 최하위 우선순위의 ID(예 : 0x0411) 사이의 범위로 아이디를 설정하여, 상기 범위에 포함되는 아이디의 CAN 메시지가 수신되면 동일한 넘버의 메일 박스에 저장한다.
한편 상기 체크(S202) 결과, 필터의 마스킹 비트 설정이 가능한 경우(즉, 대표 아이디와 마스킹 비트 설정 방식으로 복수의 아이디를 하나의 엘리먼트(또는 하나의 메일 박스)에 중복 설정할 수 있는 경우)(S202의 예), 상기 제어부(160)는 동일한 메일 박스 넘버가 부여되는 복수(또는 그룹)의 아이디들에 대한 대표 ID를 산출하기 위하여, 상기 동일한 메일 박스 넘버가 부여되는 복수(또는 그룹)의 아이디들을 오아(OR) 비트 연산을 수행한다(S203).
예컨대 도 9에서, 메일 박스 넘버가 1로 동일한 그룹의 아이디들(예 : 0x0419, 0x0417)의 오아(OR) 비트 연산을 수행하면 "0x41F"가 산출되며, 상기 그룹의 아이디들의 오아(OR) 비트 연산을 수행하여 산출된 값을 대표 아이디로 설정한다(S204).
또한 상기 제어부(160)는 마스킹 비트를 설정하기 위하여, 상기 동일한 메일 박스 넘버가 부여되는 복수(또는 그룹)의 아이디들을 배타적 부정 논리합(XNOR) 비트 연산을 수행한다(S205).
예컨대 도 9에서, 메일 박스 넘버가 1로 동일한 그룹 아이디들(예 : 0x0419, 0x0417)의 배타적 부정 논리합(XNOR) 비트 연산을 수행하면 "0xFF1"이 산출되며, 상기 그룹 아이디들의 배타적 부정 논리합(XNOR) 비트 연산을 수행하여 산출된 값을 필터의 마스킹 비트로 설정한다(S206).
상기와 같이 필터부(120)에 대표 아이디와 마스킹 비트가 설정된 후 CAN 메시지가 수신될 경우, 상기 제어부(160)(또는 상기 CAN 메시지 수신 처리부(110))는 해당 CAN 메시지의 아이디가 상기 대표 아이디와 마스킹 비트의 조합을 만족하는 경우에만 이를 수신하여 지정된 넘버의 메일 박스에 저장한다.
도 10은 상기 도 2에 있어서, 차량용 CAN 메시지의 수신량 증대 방법을 설명하기 위한 흐름도이다.
이하, 도 10을 참조하여, 상기 제어부(160)가 상기 데이터 처리부(140)를 제어하여, CAN 메시지가 저장된 메일 박스에서 해당 CAN 메시지를 인출하여, 지정된 버퍼(예 : CAN 메시지의 아이디에 대응하는 지정된 버퍼)에 저장하는 방법에 대해서 설명한다.
상기 제어부(160)는 CAN 메시지가 수신되면(S301의 예), 인터럽트를 발생시키고(S302), 이에 따라 즉시 아이디별 CAN 메시지가 저장된 메일 박스를 확인한다(S303).
예컨대 일부 지정된 복수의 아이디는 동일한 메일 박스 넘버가 할당되어 CAN 메시지가 저장되고, 나머지 아이디는 1:1로 대응되는 메일 박스 넘버가 할당되므로, 상기 제어부(160)는 인터럽트 신호가 발생되는 즉시(즉, CAN 메시지가 수신되거나 CAN 메시지가 저장되는 즉시) 아이디별 CAN 메시지가 저장된 메일 박스를 확인한다.
그리고 상기 제어부(160)는 아이디별 지정된 메일 박스에 저장된 CAN 메시지를 인출하여 아이디별 지정된 버퍼(예 : CAN 메시지의 아이디별로 1:1로 대응되게 지정된 버퍼)에 저장한다(S304).
이에 상기 전자제어장치(ECU)의 어플리케이션 영역에서 상기 수신된 CAN 메시지의 데이터가 필요할 경우, 상기 버퍼부(150)의 해당 버퍼(예 : CAN 메시지의 아이디가 30인 경우 해당 CAN 메시지가 저장된 buffer 30)에 접근하여 해당 데이터를 가져갈 수 있다.
상기와 같이 본 실시예는 차량의 전자제어장치(ECU)에서 지원하는 메일 박스보다 많은 개수의 CAN 메시지를 수신할 수 있도록 하는 효과가 있다.
이상으로 본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 기술적 보호범위는 아래의 특허청구범위에 의해서 정하여져야 할 것이다. 또한 본 명세서에서 설명된 구현은, 예컨대, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림 또는 신호로 구현될 수 있다. 단일 형태의 구현의 맥락에서만 논의(예컨대, 방법으로서만 논의)되었더라도, 논의된 특징의 구현은 또한 다른 형태(예컨대, 장치 또는 프로그램)로도 구현될 수 있다. 장치는 적절한 하드웨어, 소프트웨어 및 펌웨어 등으로 구현될 수 있다. 방법은, 예컨대, 컴퓨터, 마이크로프로세서, 집적 회로 또는 프로그래밍 가능한 로직 디바이스 등을 포함하는 프로세싱 디바이스를 일반적으로 지칭하는 프로세서 등과 같은 장치에서 구현될 수 있다. 프로세서는 또한 최종-사용자 사이에 정보의 통신을 용이하게 하는 컴퓨터, 셀 폰, 휴대용/개인용 정보 단말기(personal digital assistant: "PDA") 및 다른 디바이스 등과 같은 통신 디바이스를 포함한다.
110 : CAN 메시지 수신 처리부
120 : 필터부
130 : 메일 박스
140 : 데이터 처리부
150 : 버퍼부
160 : 제어부

Claims (23)

  1. CAN(Controller Area Network) 버스를 통해 수신되는 CAN 메시지 중 지정된 아이디의 CAN 메시지만 걸러서 순차로 수신하는 CAN 메시지 수신 처리부;
    상기 CAN 메시지 수신 처리부를 통해 걸러서 수신하고자 하는 아이디들을 설정하는 필터부;
    상기 순차로 수신되는 CAN 메시지를 저장하는 메일 박스;
    상기 CAN 메시지가 수신되어 메일 박스에 저장되는 즉시 해당 CAN 메시지를 인출하여 버퍼부에 저장하는 데이터 처리부; 및
    상기 메일 박스의 개수 보다 많은 개수의 CAN 메시지를 수신할 수 있도록 하기 위하여, 상기 CAN 메시지 수신 처리부와 상기 데이터 처리부를 제어하여, 지정된 복수의 아이디에 동일한 메일 박스를 중복 할당하고, 상기 메일 박스에 대응하는 상기 필터부의 지정된 엘리먼트에 지정된 복수의 아이디를 중복 설정하는 제어부;를 포함하는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 장치.
  2. 제 1항에 있어서, 상기 제어부는,
    상기 CAN 메시지가 수신되거나 상기 메일 박스에 저장될 경우, 이를 인터럽트 신호에 의해 감지하는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 장치.
  3. 제 1항에 있어서, 상기 제어부는,
    전자제어장치(ECU)의 MCU(Micro Control Unit)나 CAN 컨트롤러로 구현될 수 있으며, 상기 CAN 메시지 수신 처리부나 상기 데이터 처리부와 통합된 형태로 구현될 수 있음을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 장치.
  4. 제 1항에 있어서, 상기 제어부는,
    전체 수신 CAN 메시지의 아이디를 지정된 순서로 정렬시키고,
    상기 지정된 순서로 정렬시킨 전체 수신 CAN 메시지의 아이디들 간의 차이(ID_Diff) 값을 산출하며,
    상기 전체 수신 CAN 메시지의 아이디들 간의 차이(ID_Diff) 값을 바탕으로 상기 전체 수신 CAN 메시지의 아이디들을 지정된 순서로 정렬한 후 인덱스(Index)를 부여한 테이블을 생성하는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 장치.
  5. 제 4항에 있어서, 상기 테이블은,
    인덱스(Index) 필드, 차이(ID_Diff) 값 필드, 제1 아이디 필드(ID[1]), 및 제2 아이디 필드(ID[2])를 포함하며,
    상기 제1 아이디 필드의 아이디와 상기 제2 아이디 필드의 아이디는, 상기 제어부가 상기 차이(ID_Diff) 값을 산출하기 위하여 비교했던 대상 아이디인 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 장치.
  6. 제 5항에 있어서, 상기 제어부는,
    메일 박스의 총 개수(MB_Max)와 수신 CAN 메시지의 총 개수(Rx_Max)를 비교하여, 상기 메일 박스의 총 개수 보다 수신 CAN 메시지의 총 개수가 더 많은 경우,
    상기 테이블을 참조하여, 현재 인덱스의 제1 아이디 필드(ID[1])의 아이디와 이전 인덱스의 제2 아이디 필드의 아이디가 동일한지 비교하고,
    현재 인덱스의 제1 아이디 필드의 아이디와 이전 인덱스의 제2 아이디 필드의 아이디가 동일하지 않은 경우, 현재 제1 아이디 필드의 아이디 또는 제2 아이디 필드의 아이디에 메일 박스가 할당되었는지 체크하여,
    현재 제1 아이디 필드의 아이디 또는 제2 아이디 필드의 아이디에 메일 박스가 할당되지 않았을 경우, 상기 제1 아이디 필드의 아이디와 제2 아이디 필드의 아이디에 동일한 넘버의 메일 박스를 할당하는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 장치.
  7. 제 6항에 있어서, 상기 제어부는,
    메일 박스를 할당하면, 메일 박스 넘버(MB #n)를 1 증가시키고,
    총 메일 박스 개수(MB_Max)는 1 감소시키며,
    상기 메일 박스를 할당 한 수신 CAN 메시지의 개수(Rx Msg) 만큼 수신 CAN 메시지의 총 개수(Rx_Max)를 1 감소시키고, 인덱스는 1 증가시키는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 장치.
  8. 제 6항에 있어서, 상기 제어부는,
    현재 인덱스의 제1 아이디 필드의 아이디와 이전 인덱스의 제2 아이디 필드의 아이디가 동일한 경우,
    현재 인덱스의 제2 아이디 필드의 아이디에 이전 넘버의 메일 박스를 할당한 후, 상기 메일 박스를 할당 한 수신 CAN 메시지의 개수(Rx Msg) 만큼 수신 CAN 메시지의 총 개수(Rx_Max)를 1 감소시키고, 인덱스는 1 증가시키는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 장치.
  9. 제 6항에 있어서, 상기 제어부는,
    현재 제1 아이디 필드의 아이디 또는 제2 아이디 필드의 아이디에 메일 박스가 이미 할당되어 있을 경우,
    새로운 메일 박스를 할당하지 않으므로, 상기 메일 박스 넘버 총 개수 및 수신 CAN 메시지의 총 개수는 변하지 않고 유지시키며, 인덱스만 1 증가시키는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 장치.
  10. 제 6항에 있어서, 상기 제어부는,
    상기 메일 박스의 총 개수(MB_Max) 보다 수신 CAN 메시지의 총 개수(Rx_Max)가 더 많지 않을 경우,
    미 할당된 수신 CAN 메시지의 아이디에 현재 메일 박스 넘버부터 순차적으로 할당하는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 장치.
  11. 제 1항에 있어서, 상기 제어부는,
    필터부의 지정된 엘리먼트에 복수의 아이디를 중복 설정하여, 상기 복수의 아이디에 동일한 메일 박스를 중복 부여하는 경우, 상기 동일한 메일 박스 넘버가 부여된 아이디들을 확인하고,
    상기 필터부가 마스킹 비트 설정이 가능한지 체크하며,
    상기 마스킹 비트 설정이 가능하지 않은 경우 아이디의 범위 설정 방식으로 복수의 아이디를 하나의 엘리먼트에 중복 설정하는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 장치.
  12. 제 11항에 있어서, 상기 제어부는,
    상기 필터부의 마스킹 비트 설정이 가능한 경우, 상기 동일한 메일 박스가 부여되는 복수의 아이디들을 오아(OR) 비트 연산하여 대표 아이디를 산출하고,
    상기 동일한 메일 박스가 부여되는 복수의 아이디들을 배타적 부정 논리합(XNOR) 비트 연산하여 마스팅 비트를 산출하여 상기 필터부에 설정하는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 장치.
  13. 제 1항에 있어서, 상기 제어부는,
    CAN 메시지가 수신되면 발생되는 인터럽트 신호에 따라 즉시 아이디별 CAN 메시지가 저장된 메일 박스를 확인하고,
    상기 아이디별 지정된 메일 박스에 저장된 CAN 메시지를 인출하여 상기 버퍼부의 아이디별 지정된 버퍼에 저장하는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 장치.
  14. 제어부가 CAN(Controller Area Network) 버스를 통해 수신되는 CAN 메시지 중 지정된 아이디의 CAN 메시지만 걸러서 순차로 수신하는 단계;
    상기 제어부가 상기 걸러서 수신하고자 하는 CAN 메시지의 아이디들을 필터부에 설정하는 단계;
    상기 제어부가 순차로 수신되는 CAN 메시지를 메일 박스에 저장하는 단계;
    상기 제어부가 상기 CAN 메시지가 수신되어 메일 박스에 저장되는 즉시 해당 CAN 메시지를 인출하여 버퍼부에 저장하는 단계; 및
    상기 제어부가 상기 메일 박스의 개수 보다 많은 개수의 CAN 메시지를 수신하기 위하여, 지정된 복수의 아이디에 동일한 메일 박스를 중복 할당하고, 상기 메일 박스에 대응하는 상기 필터부의 지정된 엘리먼트에 지정된 복수의 아이디를 중복 설정하는 단계;를 포함하는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 방법.
  15. 제 14항에 있어서,
    상기 메일 박스의 개수 보다 많은 개수의 CAN 메시지를 수신하기 위하여,
    상기 제어부는,
    전체 수신 CAN 메시지의 아이디를 지정된 순서로 정렬시키고, 상기 지정된 순서로 정렬시킨 전체 수신 CAN 메시지의 아이디들 간의 차이(ID_Diff) 값을 산출하며, 상기 전체 수신 CAN 메시지의 아이디들 간의 차이(ID_Diff) 값을 바탕으로 상기 전체 수신 CAN 메시지의 아이디들을 지정된 순서로 정렬한 후 인덱스(Index)를 부여한 테이블을 생성하는 단계;를 더 포함하는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 방법.
  16. 제 15항에 있어서, 상기 메일 박스의 총 개수(MB_Max)와 수신 CAN 메시지의 총 개수(Rx_Max)를 비교하여, 상기 메일 박스의 총 개수 보다 수신 CAN 메시지의 총 개수가 더 많은 경우,
    상기 제어부는,
    상기 테이블을 참조하여, 현재 인덱스의 제1 아이디 필드(ID[1])의 아이디와 이전 인덱스의 제2 아이디 필드의 아이디가 동일한지 비교하고,
    현재 인덱스의 제1 아이디 필드의 아이디와 이전 인덱스의 제2 아이디 필드의 아이디가 동일하지 않은 경우, 현재 제1 아이디 필드의 아이디 또는 제2 아이디 필드의 아이디에 메일 박스가 할당되었는지 체크하여,
    현재 제1 아이디 필드의 아이디 또는 제2 아이디 필드의 아이디에 메일 박스가 할당되지 않았을 경우, 상기 제1 아이디 필드의 아이디와 제2 아이디 필드의 아이디에 동일한 넘버의 메일 박스를 할당하는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 방법.
  17. 제 16항에 있어서, 상기 제1 아이디 필드의 아이디와 제2 아이디 필드의 아이디에 동일한 넘버의 메일 박스를 할당하면,
    상기 제어부는,
    메일 박스 넘버(MB #n)를 1 증가시키고,
    총 메일 박스 개수(MB_Max)는 1 감소시키며,
    상기 메일 박스를 할당 한 수신 CAN 메시지의 개수(Rx Msg) 만큼 수신 CAN 메시지의 총 개수(Rx_Max)를 1 감소시키고, 인덱스는 1 증가시키는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 방법.
  18. 제 16항에 있어서, 상기 현재 인덱스의 제1 아이디 필드의 아이디와 이전 인덱스의 제2 아이디 필드의 아이디가 동일한 경우,
    상기 제어부는,
    현재 인덱스의 제2 아이디 필드의 아이디에 이전 넘버의 메일 박스를 할당한 후, 상기 메일 박스를 할당 한 수신 CAN 메시지의 개수(Rx Msg) 만큼 수신 CAN 메시지의 총 개수(Rx_Max)를 1 감소시키고, 인덱스는 1 증가시키는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 방법.
  19. 제 16항에 있어서, 상기 현재 제1 아이디 필드의 아이디 또는 제2 아이디 필드의 아이디에 메일 박스가 이미 할당되어 있을 경우,
    상기 제어부는,
    새로운 메일 박스를 할당하지 않으므로, 상기 메일 박스 넘버 총 개수 및 수신 CAN 메시지의 총 개수는 변하지 않고 유지시키며, 인덱스만 1 증가시키는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 방법.
  20. 제 16항에 있어서, 상기 메일 박스의 총 개수(MB_Max) 보다 수신 CAN 메시지의 총 개수(Rx_Max)가 더 많지 않을 경우,
    상기 제어부는,
    미 할당된 수신 CAN 메시지의 아이디에 현재 메일 박스 넘버부터 순차적으로 할당하는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 방법.
  21. 제 14항에 있어서, 상기 필터부의 지정된 엘리먼트에 복수의 아이디를 중복 설정하여, 상기 복수의 아이디에 동일한 메일 박스를 중복 부여하는 경우,
    상기 제어부가,
    상기 동일한 메일 박스 넘버가 부여된 아이디들을 확인하고, 상기 필터부가 마스킹 비트 설정이 가능한지 체크하며, 상기 마스킹 비트 설정이 가능하지 않은 경우 아이디의 범위 설정 방식으로 복수의 아이디를 하나의 엘리먼트에 중복 설정하는 단계;를 더 포함하는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 방법.
  22. 제 21항에 있어서, 상기 필터부의 마스킹 비트 설정이 가능한 경우,
    상기 제어부가,
    상기 동일한 메일 박스가 부여되는 복수의 아이디들을 오아(OR) 비트 연산하여 대표 아이디를 산출하고, 상기 동일한 메일 박스가 부여되는 복수의 아이디들을 배타적 부정 논리합(XNOR) 비트 연산하여 마스팅 비트를 산출하여 상기 필터부에 설정하는 단계;를 더 포함하는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 방법.
  23. 제 14항에 있어서, 상기 CAN 메시지가 수신될 경우,
    상기 제어부가,
    인터럽트 신호에 따라 즉시 아이디별 CAN 메시지가 저장된 메일 박스를 확인하고, 상기 아이디별 지정된 메일 박스에 저장된 CAN 메시지를 인출하여 상기 버퍼부의 아이디별 지정된 버퍼에 저장하는 단계;를 더 포함하는 것을 특징으로 하는 차량용 CAN 메시지의 수신량 증대 방법.
KR1020200170112A 2020-12-08 2020-12-08 차량용 can 메시지의 수신량 증대 장치 및 방법 KR102472404B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200170112A KR102472404B1 (ko) 2020-12-08 2020-12-08 차량용 can 메시지의 수신량 증대 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200170112A KR102472404B1 (ko) 2020-12-08 2020-12-08 차량용 can 메시지의 수신량 증대 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20220080872A KR20220080872A (ko) 2022-06-15
KR102472404B1 true KR102472404B1 (ko) 2022-11-29

Family

ID=81987294

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200170112A KR102472404B1 (ko) 2020-12-08 2020-12-08 차량용 can 메시지의 수신량 증대 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102472404B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115460035B (zh) * 2022-08-08 2024-01-09 武汉海微科技有限公司 基于can控制器的文件收发方法、系统、介质及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102155562B1 (ko) * 2020-07-07 2020-09-15 (주) 한일프로텍 차량 네트워크에 대한 시뮬레이션 및 모니터링 정보를 제공하는 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102155562B1 (ko) * 2020-07-07 2020-09-15 (주) 한일프로텍 차량 네트워크에 대한 시뮬레이션 및 모니터링 정보를 제공하는 시스템

Also Published As

Publication number Publication date
KR20220080872A (ko) 2022-06-15

Similar Documents

Publication Publication Date Title
EP2892203A1 (en) Methods of structuring data, pre-compiled exception list engines, and network appliances
EP1916811A1 (en) Gateway apparatus and data managing method
US8364874B1 (en) Prioritized polling for virtual network interfaces
US9531750B2 (en) Spoofing detection
JP4804307B2 (ja) ゲートウェイ装置及び転送制御方法
EP0582666A1 (en) Method and apparatus for buffering data within stations of a communication network
KR102472404B1 (ko) 차량용 can 메시지의 수신량 증대 장치 및 방법
US20100037231A1 (en) Method for reading/writing data in a multithread system
CN106059961B (zh) 网络交换机电路、系统和方法
CN104094558B (zh) 多线程化分组处理
CN111224917B (zh) 一种汽车网关防火墙报文健康检查方法及网关装置、汽车
JP3445183B2 (ja) データ中継装置および多重通信システム
EP1458143B1 (en) Data repeater and multiplex communication system using the same
EP2860675A1 (en) Method and system for managing operation of multi-line public transportation
JP2003509968A (ja) メッセージid情報を一致idレジスタ内に書き戻すための方法およびこの方法を実行するcanマイクロコントローラ
CN109933415A (zh) 数据的处理方法、装置、设备及介质
CN100586092C (zh) 采用动态滤波器分配的串行通信设备
CN110366841B (zh) 传送装置、传送方法和传送系统
CN113179338A (zh) 通信方法、电子设备及存储介质
US7076517B2 (en) Serial communication device with dynamic filter allocation
US7274699B2 (en) Method for setting masks for message filtering
CN109428906B (zh) 请求处理方法、装置、系统及终端
CN112597080B (zh) 读请求控制装置及方法以及存储器控制器
CN115474164A (zh) 一种蓝牙广播过滤方法及系统
CN113079128B (zh) 信息封堵方法、装置、计算设备及计算机存储介质

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