KR102232871B1 - Can 기반의 통신 네트워크에서 신호 검출 방법 및 장치 - Google Patents

Can 기반의 통신 네트워크에서 신호 검출 방법 및 장치 Download PDF

Info

Publication number
KR102232871B1
KR102232871B1 KR1020190099372A KR20190099372A KR102232871B1 KR 102232871 B1 KR102232871 B1 KR 102232871B1 KR 1020190099372 A KR1020190099372 A KR 1020190099372A KR 20190099372 A KR20190099372 A KR 20190099372A KR 102232871 B1 KR102232871 B1 KR 102232871B1
Authority
KR
South Korea
Prior art keywords
reverse
data
gru
input data
controller
Prior art date
Application number
KR1020190099372A
Other languages
English (en)
Other versions
KR20210020298A (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 KR1020190099372A priority Critical patent/KR102232871B1/ko
Priority to US16/989,617 priority patent/US11438248B2/en
Priority to EP20190713.6A priority patent/EP3780508A1/en
Priority to JP2020136708A priority patent/JP6999119B6/ja
Priority to CN202010812449.3A priority patent/CN112394706A/zh
Publication of KR20210020298A publication Critical patent/KR20210020298A/ko
Application granted granted Critical
Publication of KR102232871B1 publication Critical patent/KR102232871B1/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/40169Flexible bus arrangements
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0208Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
    • G05B23/0213Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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
    • 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
    • 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

Abstract

CAN 기반의 통신 네트워크에서 신호 검출 방법 및 장치가 개시된다. 통신 네트워크에서 신호 검출 방법은 복수의 CAN(Controller Area Network) 통신 노드들로부터 CAN 신호들을 수신하는 단계, 수신된 CAN 신호들을 순방향 샘플링 시점을 기초로 순방향 전처리하여 순방향 입력 데이터를 생성하는 단계 및 상기 순방향 입력 데이터에 대한 순방향 마스크 데이터와 상기 순방향 샘플링 시점에 따른 순방향 타임 인터벌 데이터를 생성하는 단계를 포함할 수 있다. 따라서 통신 네트워크의 성능이 향상될 수 있다.

Description

CAN 기반의 통신 네트워크에서 신호 검출 방법 및 장치 {METHOD FOR DETECTING SIGNAL IN COMMUNICATION NETWORK BASED ON CONTROLLER AREA NETWORK AND APPARATUS THEREFOR}
본 발명은 CAN(Controller Area Network) 기반의 통신 네트워크에서 신호 검출 방법 및 장치에 관한 것으로, 차량 네트워크에서 GRU-D(Gated Recurrent Unit-Decay) 신경망을 이용하여 신호를 검출하는 방법 및 장치에 관한 것이다.
머신 러닝(machine learning; 기계 학습)이란 인공지능(Artificial Intelligence: AI)의 한 종류로서, 데이터를 기반으로 컴퓨터가 스스로 학습한 내용을 바탕으로 회귀, 분류, 군집화 등의 예측 작업을 수행하는 것을 말한다.
딥 러닝(deep learning)은 사람의 사고방식을 컴퓨터에게 가르치는 기계 학습의 한 분야이며, 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화(abstractions, 다량의 데이터나 복잡한 자료들 속에서 핵심적인 내용 또는 기능을 요약하는 작업)를 시도하는 기계 학습(machine learning) 알고리즘의 집합으로 정의될 수 있다.
딥 러닝 구조는 인공신경망(ANN, artificial neural networks)에 기반하여 설계된 개념이다. 인공신경망은 가상의 뉴런을 수학적으로 모델링한 후 시뮬레이션하여 인간의 뇌와 같은 학습 능력을 갖게 하고자 하는 알고리즘으로서, 주로 패턴인식에 많이 사용된다. 딥 러닝에서 이용하는 인공신경망 모델은 선형 맞춤 (linear fitting)과 비선형 변환 (nonlinear transformation or activation)을 반복해 쌓아 올린 구조를 가진다. 딥 러닝에서 사용하는 신경망 모델은 심층 신경망(Deep Neural Network, DNN), 컨볼루셔널 신경망(Convolutional Neural Network, CNN), 순환 신경망(Recurrent Neural Network, RNN), 제한 볼츠만 머신 (Restricted Boltzmann Machine, RBM), 심층 신뢰 신경망 (Deep Belief Network, DBN), 심층 Q-네트워크(Deep Q-Networks) 등을 들 수 있다.
한편, 차량용 부품의 전자화가 급속도로 진행됨에 따라 차량에 탑재되는 전자 장치의 종류와 수가 크게 증가되고 있다. 전자 장치는 크게 파워트레인(power train) 제어 시스템, 바디(body) 제어 시스템, 새시(chassis) 제어 시스템, 차량 네트워크(network), 멀티미디어(multimedia) 시스템 등에서 사용될 수 있다. 파워트레인 제어 시스템은 엔진 제어 시스템, 자동 변속 제어 시스템 등을 의미할 수 있다. 바디 제어 시스템은 바디 전장품 제어 시스템, 편의 장치 제어 시스템, 램프(lamp) 제어 시스템 등을 의미할 수 있다. 새시 제어 시스템은 조향 장치 제어 시스템, 브레이크(brake) 제어 시스템, 서스팬션(suspension) 제어 시스템 등을 의미할 수 있다. 차량 네트워크는 CAN(controller area network), 플렉스레이(FlexRay) 기반의 네트워크, MOST(media oriented system transport) 기반의 네트워크 등을 의미할 수 있다. 멀티미디어 시스템은 항법 장치 시스템, 텔레메틱스(telematics) 시스템, 인포테인먼트(infotainment) 시스템 등을 의미할 수 있다.
이러한 시스템들 및 시스템들 각각을 구성하는 전자 장치들은 차량 네트워크를 통해 연결되어 있으며, 전자 장치들 각각의 기능을 지원하기 위한 차량 네트워크가 요구되고 있다. CAN은 최대 1Mbps의 전송 속도를 지원할 수 있으며, 충돌된 프레임(frame)의 자동 재전송, CRC(cyclic redundancy check) 기반의 오류 검출 등을 지원할 수 있다.
한편, CAN 기반의 차량 네트워크에서 보간법을 사용하여 차량 네트워크의 수신 신호를 전처리할 수 있다. 다만 보간법을 사용하여 수신 신호를 전처리 하는 경우 해상도에 따라 차량 네트워크의 성능이 저하될 수 있다.
본 발명은, CAN 기반의 통신 네트워크에서 GRU-D(Gated Recurrent Unit-Decay) 신경망을 이용하여 신호를 검출하는 방법 및 장치를 제공하는데 목적이 있다.
본 발명의 실시예에 따른, 제어기의 동작 방법은, CAN(Controller Area Network; CAN) 통신 네트워크에서 제어기의 동작 방법으로서, 복수의 엔드 노드들로부터 CAN 신호들을 수신하는 단계; 수신된 CAN 신호들을 순방향 샘플링 시점을 기초로 순방향 전처리하여 순방향 입력 데이터를 생성하는 단계; 상기 순방향 입력 데이터에 대한 순방향 마스크 데이터와 상기 순방향 샘플링 시점에 따른 순방향 타임 인터벌 데이터를 생성하는 단계; 상기 CAN 신호들을 역방향 샘플링 시점을 기초로 역방향 전처리하여 역방향 입력 데이터를 생성하는 단계; 상기 역방향 입력 데이터에 대한 역방향 마스크 데이터와 상기 역방향 샘플링 시점에 따른 역방향 타임 인터벌 데이터를 생성하는 단계; 및 상기 순방향 입력 데이터, 순방향 마스크 데이터, 순방향 타임 인터벌 데이터, 역방향 입력 데이터, 역방향 마스크 데이터 및 역방향 타임 인터벌 데이터를 GRU-D(Gated Recurrent Unit-Decay) 신경망에 입력하여 상기 CAN 신호들 가운데 비정상 신호를 감지하는 단계를 포함할 수 있다.
여기서, 상기 순방향 입력 데이터를 생성하는 단계는, 상기 순방향 샘플링 시점을 기초로 순방향 수신 윈도우를 획득하는 단계; 시간축을 기준으로 상기 순방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 순방향으로 확장하는 단계; 상기 시간축을 기준으로 상기 순방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 역방향으로 확장하는 단계; 및 상기 확장한 수신 윈도우를 기초로, 상기 신호들의 종류를 나타내는 행렬인 순방향 입력 데이터를 생성하는 단계를 더 포함할 수 있다.
여기서, 상기 순방향 마스크 데이터는, 상기 순방향 샘플링 시점들에 데이터가 존재하는 경우, 1 값을 갖고, 데이터가 존재하지 않는 경우 0값을 갖는 행렬일 수 있다.
또한, 상기 순방향 타임 인터벌 데이터는, 상기 순방향 샘플링 시점들의 차이를 기초로 생성될 수 있다.
한편, 상기 역방향 입력 데이터를 생성하는 단계는, 상기 역방향 샘플링 시점을 기초로 역방향 수신 윈도우를 획득하는 단계; 시간축을 기준으로 상기 역방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 역방향으로 확장하는 단계; 상기 시간축을 기준으로 상기 역방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 순방향으로 확장하는 단계; 및 상기 확장한 역방향 수신 윈도우를 기초로, 상기 신호들의 종류를 나타내는 행렬인 역방향 입력 데이터를 생성하는 단계를 더 포함할 수 있다.
여기서, 상기 역방향 타임 인터벌 데이터는, 상기 역방향 샘플링 시점들의 차이를 기초로 생성될 수 있다.
한편, 상기 GRU-D 신경망은, 복수의 GRU-D 레이어들을 포함하는 GRU-D 인코더 및 상기 GRU-D 인코더와 대칭적인 구조를 가지는 GRU-D 디코더를 포함할 수 있다.
여기서, 상기 비정상 신호를 감지하는 단계는, 상기 GRU-D 인코더가 상기 순방향 입력 데이터, 상기 순방향 마스크 데이터 및 상기 순방향 타임 인터벌 데이터를 기초로 히든 행렬을 출력하는 단계; 상기 GRU-D 디코더가 상기 히든 행렬, 상기 역방향 입력 데이터, 상기 역방향 마스크 데이터 및 상기 역방향 타임 인터벌 데이터를 기초로 추정 데이터를 출력하는 단계; 및 상기 순방향 입력 데이터와 상기 추정 데이터를 비교하여, CAN 신호들 가운데 비정상 신호를 감지할 수 있다.
삭제
삭제
삭제
삭제
삭제
삭제
삭제
본 발명의 다른 실시예에 따른 제어기는, 프로세서(processor) 및 상기 프로세서에 의해 실행되는 하나 이상의 명령들이 저장된 메모리(memory)를 포함하며, 상기 하나 이상의 명령들은, 복수의 엔드 노드들로부터 CAN 신호들을 수신하고; 상기 CAN 신호들을 순방향 샘플링 시점을 기초로 순방향 전처리하여 순방향 입력 데이터를 생성하고; 상기 순방향 입력 데이터에 대한 순방향 마스크 데이터와 상기 순방향 샘플링 시점에 따른 순방향 타임 인터벌 데이터를 생성하고; 상기 CAN 신호들을 역방향 샘플링 시점을 기초로 역방향 전처리하여 역방향 입력 데이터를 생성하고; 상기 역방향 입력 데이터에 대한 역방향 마스크 데이터와 상기 역방향 샘플링 시점에 따른 역방향 타임 인터벌 데이터를 생성하고; 그리고, 상기 순방향 입력 데이터, 순방향 마스크 데이터, 순방향 타임 인터벌 데이터, 역방향 입력 데이터, 역방향 마스크 데이터 및 역방향 타임 인터벌 데이터를 GRU-D(Gated Recurrent Unit-Decay) 신경망에 입력하여 상기 CAN 신호들 가운데 비정상 신호를 감지하도록 실행될 수 있다.
여기서, 상기 순방향 입력 데이터를 생성하는 경우, 상기 하나 이상의 명령들은, 상기 순방향 샘플링 시점을 기초로 순방향 수신 윈도우를 획득하고; 시간축을 기준으로 상기 순방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 순방향으로 확장하고; 상기 시간축을 기준으로 상기 순방향 수신 윈도우를 신호가 존재하는 샘플링 시점까지 역방향으로 확장하고; 그리고 상기 확장한 수신 윈도우를 기초로 상기 신호들의 종류를 나타내는 행렬인 순방향 입력 데이터를 생성하도록 더 실행될 수 있다.
여기서, 상기 순방향 마스크 데이터는, 상기 순방향 샘플링 시점들에 데이터가 존재하는 경우, 1 값을 갖고, 데이터가 존재하지 않는 경우 0값을 갖는 행렬일 수 있다.
한편, 상기 순방향 타임 인터벌 데이터는, 상기 순방향 샘플링 시점들의 차이를 기초로 생성될 수 있다.
또한, 상기 역방향 입력 데이터를 생성하는 경우, 상기 하나 이상의 명령들은, 상기 역방향 샘플링 시점을 기초로 역방향 수신 윈도우를 획득하고; 시간축을 기준으로 상기 역방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 역방향으로 확장하고; 상기 시간축을 기준으로 상기 역방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 순방향으로 확장하고; 그리고 상기 확장한 역방향 수신 윈도우를 기초로, 상기 신호들의 종류를 나타내는 행렬인 역방향 입력 데이터를 생성하도록 더 실행될 수 있다.
한편, 상기 GRU-D 신경망은, 복수의 GRU-D 레이어들을 포함하는 GRU-D 인코더 및 상기 GRU-D 인코더와 대칭적인 구조를 가지는 GRU-D 디코더를 포함할 수 있다.
여기서, 상기 비정상 신호를 감지하는 경우, 상기 하나 이상의 명령들은, 상기 GRU-D 인코더가 상기 순방향 입력 데이터, 상기 순방향 마스크 데이터 및 상기 순방향 타임 인터벌 데이터를 기초로 히든 행렬을 출력하고; 상기 GRU-D 디코더가 상기 히든 행렬, 상기 역방향 입력 데이터, 상기 역방향 마스크 데이터 및 상기 역방향 타임 인터벌 데이터를 기초로 추정 데이터를 출력하고 그리고, 상기 순방향 입력 데이터와 상기 추정 데이터를 비교하여, CAN 신호들 가운데 비정상 신호를 감지하도록 더 실행될 수 있다.
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
본 발명에 의하면 CAN 기반의 통신 네트워크에서 보간법을 사용하지 않고, 수신 신호들의 전처리를 수행함으로써, 수신 신호들의 해상도가 높아지더라도 통신 네트워크의 성능이 저하되지 않을 수 있고, 수신 신호들의 특성과 관계없이 전처리를 수행할 수 있어, 수신 신호들의 검출 성능이 향상될 수 있다.
또한, CAN 기반의 통신 네트워크에서 GRU-D(Gated Recurrent Unit-Decay) 신경망을 이용하여 신호를 검출함으로써, 신호를 검출하는 속도 및 정확성이 향상될 수 있다. 따라서 통신 네트워크의 성능이 향상될 수 있다.
도 1은 차량 네트워크의 토폴로지(network topology)의 제1 실시예를 도시한블록도이다.
도 2는 차량 네트워크를 구성하는 통신 노드의 구조에 대한 일 실시예를 도시한 블록도이다.
도 3은 차량 네트워크에서 비정상 신호를 감지하는 방법의 제1 실시예를 나타낸 흐름도이다.
도 4는 차량 네트워크에서 순방향 전처리를 수행하는 방법의 제1 실시예를 나타낸 흐름도이다.
도 5는 차량 네트워크에서 순방향 수신 윈도우 획득하는 방법의 제1 실시예를 설명하기 위한 개념도이다.
도 6은 차량 네트워크에서 순방향 수신 윈도우를 확장하는 방법의 제1 실시예를 설명하기 위한 개념도이다.
도 7은 차량 네트워크에서 역방향 전처리를 수행하는 방법의 제1 실시예를 나타낸 흐름도이다.
도 8은 차량 네트워크에서 역방향 수신 윈도우 획득하는 방법의 제1 실시예를 설명하기 위한 개념도이다.
도 9은 차량 네트워크에서 역방향 수신 윈도우를 확장하는 방법의 제1 실시예를 설명하기 위한 개념도이다.
도 10은 차량 네트워크에서 GRU-D 신경망의 제1 실시예를 나타낸 블록도이다.
도 11은 차량 네트워크에서 GRU-D 인코더의 제1 실시예를 나타낸 블록도이다.
도 12는 차량 네트워크에서 GRU-D 디코더의 제1 실시예를 나타낸 블록도이다.
도 13은 차량 네트워크에서 GRU-D 레이어의 제1 실시예를 나타낸 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 차량 네트워크의 토폴로지(network topology)의 제1 실시예를 도시한블록도이다.
도 1을 참조하면, 차량 네트워크는 복수의 엔드 노드들(111 내지 113) 및 제어기(120)를 포함할 수 있다. 도 1의 복수의 엔드 노드들(111 내지 113) 및 제어기(110)를 포함할 수 있다.
또한, 차량 네트워크를 구성하는 통신 노드들(엔드 노드들(111 내지 113) 및 제어기(120))은 스타(star) 토폴로지, 버스(bus) 토폴로지, 링(ring) 토폴로지, 트리(tree) 토폴로지, 메쉬(mesh) 토폴로지 등으로 연결될 수 있다. 또한, 차량 네트워크를 구성하는 통신 노드들 각각은 CAN 프로토콜, 플렉스레이 프로토콜, MOST 프로토콜, LIN 프로토콜, 이더넷 프로토콜 등을 지원할 수 있다. 본 발명에 따른 실시예들은 앞서 설명된 네트워크 토폴로지에 적용될 수 있으며, 본 발명에 따른 실시예들이 적용되는 네트워크 토폴로지는 이에 한정되지 않고 다양하게 구성될 수 있다.
한편, 도 1의 복수의 엔드 노드들(111 내지 113) 및 제어기(120)는 다음과 같이 구성될 수 있다.
도 2는 차량 네트워크를 구성하는 통신 노드의 일 실시예를 도시한 블록도이다.
도 2를 참조하면, 통신 노드(200)는 적어도 하나의 프로세서(210), 메모리(220) 및 네트워크와 연결되어 통신을 수행하는 송수신 장치(230)를 포함할 수 있다. 또한, 통신 노드(200)는 입력 인터페이스 장치(240), 출력 인터페이스 장치(250), 저장 장치(260) 등을 더 포함할 수 있다. 통신 노드(200)에 포함된 각각의 구성 요소들은 버스(bus)(270)에 의해 연결되어 서로 통신을 수행할 수 있다.
다만, 통신 노드(200)에 포함된 각각의 구성요소들은 공통 버스(270)가 아니라, 프로세서(210)를 중심으로 개별 인터페이스 또는 개별 버스를 통하여 연결될 수도 있다. 예를 들어, 프로세서(210)는 메모리(220), 송수신 장치(230), 입력 인터페이스 장치(240), 출력 인터페이스 장치(250) 및 저장 장치(260) 중에서 적어도 하나와 전용 인터페이스를 통하여 연결될 수도 있다.
프로세서(210)는 메모리(220) 및 저장 장치(260) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(210)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다.
메모리(220) 및 저장 장치(260) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(220)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.
다시 도 1을 참조하면, 차량 네트워크에서 복수의 엔드 노드들(111 내지 113)은 버스 라인(bus line)을 통해 서로 연결될 수 있다. 즉, 복수의 엔드 노드들(111 내지 113) 간의 통신은 버스 라인을 통해 수행될 수 있다. 또한 복수의 엔드 노드들(111 내지 113)은 버스 라인을 통해 제어기(120)와 통신을 수행할 수 있다. 복수의 엔드 노드들(111 내지 113)은 각각의 샘플링 시점에 제어기(120)에 신호를 전송할 수 있다.
엔드 노드들(111 내지 113)은 차량에 포함된 각종 장치를 제어하는 ECU(electronic control unit)를 의미할 수 있다. 예를 들어, 엔드 노드들(111 내지 113)은 인포테인먼트(infortainment) 장치(예를 들어, 디스플레이(display) 장치, 내비게이션(navigation) 장치, 어라운드 뷰 모니터링(around view monitoring) 장치) 등을 구성하는 ECU를 의미할 수 있다.
제어기(120)는 버스 라인을 통해 복수의 엔드 노드들(111 내지 113)로부터 신호를 수신할 수 있다. 제어기(120)는 복수의 엔드 노드들(111 내지 113)이 각각의 샘플링 시점들에 송신한 신호들을 수신할 수 있다. 제어기(120)는 복수의 엔드 노드들(111 내지 113)로부터 수신한 신호들 가운데 비정상 신호를 감지할 수 있다.
도 3은 차량 네트워크에서 비정상 신호를 감지하는 방법의 제1 실시예를 나타낸 흐름도이다.
도 3의 엔드 노드들 및 제어기는 도 1의 엔드 노드들(111 내지 113) 및 제어기(120)과 동일 또는 유사하게 구성될 수 있다. 도 3을 참조하면, 제어기(예를 들어 도 1의 제어기(120))는 엔드 노드들(예를 들어, 도 1의 엔드 노드들(111 내지 113))들로부터 수신한 신호들을 기초로 순방향 전처리를 수행할 수 있다(S310).
도 4는 차량 네트워크에서 순방향 전처리를 수행하는 방법의 제1 실시예를 나타낸 흐름도이다.
도 4의 엔드 노드들 및 제어기는 도 1의 엔드 노드들(111 내지 113) 및 제어기(120)과 동일 또는 유사하게 구성될 수 있다.
도 4를 참조하면, 제어기(예를 들어, 도 1의 제어기(120))는 엔드 노드들(예를 들어, 도 1의 엔드 노드들(111 내지 113))로부터 수신한 신호들 및 신호들의 샘플링 시점을 기초로 순방향 수신 윈도우를 획득할 수 있다(S410).
제어기는 미리 설정한 주기로 샘플링을 수행할 수 있다. 즉 제어기는 샘플링을 수행한 시점들 가운데, 엔드 노드들로부터 신호를 수신한 샘플링 시점들을 검출할 수 있다.
제어기는 각각의 엔드 노드들의 CAN ID 및 엔드 노드들로부터 신호를 수신한 샘플링 시점들을 기초로 수신 신호들을 정렬할 수 있다. 제어기는 각각의 엔드 노드들의 CAN ID를 세로축으로 샘플링 시점들 가운데 엔드 노드들로부터 신호를 수신한 샘플링 시점들을 가로축으로 하는 순방향 그래프를 생성할 수 있다.
순방향 그래프에는 엔드 노드들로부터 수신한 신호들이 시간 순서대로 정렬될 수 있다. 제어기는 생성된 그래프 가운데 미리 설정된 구간의 그래프를 획득함으로써, 순방향 수신 윈도우를 획득할 수 있다.
도 5는 차량 네트워크에서, 순방향 수신 윈도우 획득하는 방법의 제1 실시예를 설명하기 위한 개념도이다.
도 5의 엔드 노드들 및 제어기는 도 1의 엔드 노드들(111 내지 113) 및 제어기(120)과 동일 또는 유사하게 구성될 수 있다. 도 5의 CAN ID A는 도 1의 제1 엔드 노드(111)의 CAN ID일 수 있고, CAN ID B는 제2 엔드 노드(112)의 CAN ID일 수 있으며, CAN ID C는 제3 엔드 노드(113)의 CAN ID일 수 있다.
도 5를 참조하면, 제어기는 샘플링 시점들 가운데 어느 하나 이상에 엔드 노드들로부터 신호들을 수신할 수 있다. 제어기는 제1 엔드 노드로부터
Figure 112019083394113-pat00001
,
Figure 112019083394113-pat00002
Figure 112019083394113-pat00003
에 신호를 수신할 수 있다. 제어기는 제2 엔드 노드로부터
Figure 112019083394113-pat00004
,
Figure 112019083394113-pat00005
Figure 112019083394113-pat00006
에 신호를 수신할 수 있다
제어기는 각각의 엔드 노드들로부터 신호를 수신한 샘플링 시점들(
Figure 112019083394113-pat00007
,
Figure 112019083394113-pat00008
,
Figure 112019083394113-pat00009
,
Figure 112019083394113-pat00010
,
Figure 112019083394113-pat00011
Figure 112019083394113-pat00012
)을 가로축으로, 각각의 엔드 노드들의 CAN ID들(CAN ID A, CAN ID B 및 CAN ID C)을 세로축으로 하는 순방향 그래프를 생성할 수 있다. 순방향 그래프에는 제어기가 엔드 노드들로부터 수신한 신호들이 수신 시점들의 순서대로 배열될 수 있다.
제어기는 생성된 순방향 그래프 가운데 일부인
Figure 112019083394113-pat00013
부터
Figure 112019083394113-pat00014
구간의 순방향 그래프를 순방향 수신 윈도우로 획득할 수 있다.
다시 도 4를 참조하면, 제어기는 시간축을 기준으로 순방향 수신 윈도우를 확장할 수 있다(S420). 제어기는 순방향 수신 윈도우의 가로축을 양쪽으로 확장하는 방식으로 순방향 수신 윈도우를 확장할 수 있다. 즉 제어기는 모든 엔드 노드들(예를 들어 도 1의 엔드 노드들(111 내지 113))로부터 신호들을 수신한 시점을 검출하기 위하여 순방향 수신 윈도우를 양쪽으로 확장할 수 있다.
도 6은 차량 네트워크에서, 순방향 수신 윈도우를 확장하는 방법의 제1 실시예를 설명하기 위한 개념도이다.
도 6의 엔드 노드들 및 제어기는 도 1의 엔드 노드들(111 내지 113) 및 제어기(120)과 동일 또는 유사하게 구성될 수 있다. 또한, 도 6의 순방향 수신 윈도우는 도 5의 순방향 수신 윈도우와 동일할 수 있다.
도 6을 참조하면, 제어기는 수신 윈도우의 시작 시점인
Figure 112019083394113-pat00015
이전에 제2 엔드 노드 및 제3 엔드 노드로부터 신호를 수신한 샘플링 시점들을 획득할 수 있다. 제어기는 수신 윈도우의 종료 시점인
Figure 112019083394113-pat00016
이후에 제2 엔드 노드 및 제3 엔드 노드로부터 신호를 수신한 샘플링 시점들을 획득할 수 있다.
제어기는 S410 단계에서 획득한 순방향 수신 윈도우의 가로축을 양측으로 확장할 수 있다. 즉, 제어기는 S410 단계에서 획득한 순방향 수신 윈도우를
Figure 112019083394113-pat00017
부터 좌측(시간이 감소하는 방향)으로 확장할 수 있고,
Figure 112019083394113-pat00018
부터 우측(시간이 증가하는 방향)으로 확장할 수 있다.
제어기는
Figure 112019083394113-pat00019
이전에 나머지 엔드 노드들로부터 신호를 수신한 시점(예를 들어, 제2 엔드 노드로부터 신호를 수신한 시점인
Figure 112019083394113-pat00020
)까지 순방향 수신 윈도우를 좌측으로 확장할 수 있다. 제어기는 순방향 수신 윈도우를
Figure 112019083394113-pat00021
이후에 나머지 엔드 노드들로부터 신호를 수신한 시점(예를 들어, 제3 엔드 노드로부터 신호를 수신한 시점인
Figure 112019083394113-pat00022
)까지 순방향 수신 윈도우를 우측으로 확장할 수 있다.
다시, 도 4를 참조하면, 제어기는 S420 단계에서 확장한 순방향 수신 윈도우(도 6 참조)를 기초로 순방향 입력 데이터를 생성할 수 있다(S430).
제어기는 S420 단계에서 확장한 순방향 수신 윈도우를 아래 수학식 1과 같이하나의 행렬로 나타냄으로써 순방향 입력 데이터를 생성할 수 있다.
[수학식 1]
Figure 112019083394113-pat00023
수학식 1에서
Figure 112019083394113-pat00024
,
Figure 112019083394113-pat00025
,
Figure 112019083394113-pat00026
,
Figure 112019083394113-pat00027
,
Figure 112019083394113-pat00028
Figure 112019083394113-pat00029
는 제1 엔드 노드로부터 ,
Figure 112019083394113-pat00030
Figure 112019083394113-pat00031
에 수신한 신호들을 나타낼 수 있다
Figure 112019083394113-pat00032
,
Figure 112019083394113-pat00033
,
Figure 112019083394113-pat00034
,
Figure 112019083394113-pat00035
,
Figure 112019083394113-pat00036
,
Figure 112019083394113-pat00037
,
Figure 112019083394113-pat00038
,
Figure 112019083394113-pat00039
,
Figure 112019083394113-pat00040
Figure 112019083394113-pat00041
는 제2 엔드 노드로부터
Figure 112019083394113-pat00042
,
Figure 112019083394113-pat00043
Figure 112019083394113-pat00044
Figure 112019083394113-pat00045
에 수신한 신호들을 나타낼 수 있다.
Figure 112019083394113-pat00046
,
Figure 112019083394113-pat00047
,
Figure 112019083394113-pat00048
Figure 112019083394113-pat00049
은 제3 엔드 노드로부터
Figure 112019083394113-pat00050
에 수신한 신호들일 수 있다.
제어기는 S430 단계에서 생성한 순방향 입력 데이터를 기초로 순방향 마스크 데이터 및 순방향 타임 인터벌을 생성할 수 있다(S440).
마스크 데이터는 특정한 샘플링 시점에서, 특정한 엔드 노드가 신호를 수신하였는지 여부를 나타내는 행렬일 수 있다. 제어기는 샘플링 시점들에서 신호를 수신한 경우 1 값을 갖고, 수신하지 않은 경우 0 값을 갖는 행렬인 순방향 마스크 데이터를 생성할 수 있다. 여기에서 샘플링 시점들이란 엔드 노드들(111 내지 113) 가운데 적어도 어느 하나로부터 신호를 수신한 시점일 수 있다. 예를 들어, 제어기는 수학식 1에 따라 생성된 순방향 입력 데이터를 기초로 아래 수학식 2와 같은 마스크 데이터를 생성할 수 있다.
[수학식 2]
Figure 112019083394113-pat00051
제어기는 엔드 노드들로부터 신호를 수신한 샘플링 시점들의 차이를 나타내는 순방향 샘플링 행렬을 생성할 수 있다. 순방향 샘플링 행렬은 확장된 순방향 수신 윈도우에서 가장 빠른 신호 수신 시점과 나머지 신호 수신 시점들의 시간 차이를 나타내는 행렬일 수 있다. 예를 들어, 도 5의 확장된 순방향 수신 윈도우를 기초로 다음 수학식 3과 같은 순방향 샘플링 행렬을 생성할 수 있다.
[수학식 3]
Figure 112019083394113-pat00052
수학식 3에서, 순방향 샘플링 행렬 각각의 성분들은 엔드 노드들로부터 신호를 수신한 시점들 가운데 가장 빠른 샘플링 시점인
Figure 112019083394113-pat00053
와 나머지 신호 수신 시점들의 차이를 나타낼 수 있다.
제어기는 순방향 샘플링 행렬 및 순방향 마스크 데이터를 기초로 순방향 타임 인터벌 데이터를 생성할 수 있다. 제어기는 아래의 수학식 4를 기초로 행렬 형태의 순방향 타임 인터벌 데이터를 생성할 수 있다.
[수학식 4]
Figure 112019083394113-pat00054
수학식 4에서,
Figure 112019083394113-pat00055
는 순방향 타임 인터벌 데이터의 k행, t열의 성분일 수 있다.
Figure 112019083394113-pat00056
는 순방향 샘플링 행렬의 t번째 성분일 수 있고,
Figure 112019083394113-pat00057
는 순방향 타임 인터벌 데이터의 k행, t-1열의 성분일 수 있으며, min(t)는 확장된 순방향 수신 윈도우의 샘플링 시점 가운데 가장 빠른 시간일 수 있고,
Figure 112019083394113-pat00058
는 순방향 마스크 데이터의 k 행, t 열의 성분일 수 있다.
예를 들어, 수학식 2에 의해 생성된 순방향 마스크 데이터 및 수학식 3에 의해 생성된 순방향 샘플링 행렬을 기초로 아래 수학식 5와 같이 순방향 타임 인터벌 데이터를 생성할 수 있다.
[수학식 5]
Figure 112019083394113-pat00059
다시, 도 3을 참조하면, 제어기는 엔드 노드들로부터 수신한 신호들을 기초로 역방향 전처리를 수행할 수 있다(S320).
도 7은 차량 네트워크에서, 역방향 전처리를 수행하는 방법의 제1 실시예를 나타낸 흐름도이다.
도 7의 엔드 노드들 및 제어기는 도 1의 엔드 노드들(111 내지 113) 및 제어기(120)과 동일 또는 유사하게 구성될 수 있다.
도 7를 참조하면, 제어기(예를 들어, 도 1의 제어기(120))는 엔드 노드들(예를 들어, 도 1의 엔드 노드들(111 내지 113))로부터 수신한 신호들 및 신호들의 샘플링 시점을 기초로 역방향 수신 윈도우를 획득할 수 있다(S710).
제어기는 미리 설정한 주기로 샘플링을 수행할 수 있다. 즉 제어기는 샘플링을 수행한 시점들 가운데, 엔드 노드들로부터 신호를 수신한 시점들을 검출할 수 있다. 제어기는 각각의 엔드 노드들의 CAN ID 및 신호들의 수신 시점들을 기초로 수신 신호들을 신호 수신 시점들의 역순으로 정렬할 수 있다.
제어기는 각각의 엔드 노드들의 CAN ID를 세로축으로, 역방향 샘플링 시점들 가운데 엔드 노드들로부터 신호를 수신한 시점들을 가로축으로 하는 역방향 그래프를 생성할 수 있다. 여기에서, 역방향 샘플링 시점들이란, 각각의 제어기의 샘플링 시점들에 -1 값을 곱한 샘플링 시점들일 수 있다.
도 8은 차량 네트워크에서, 역방향 수신 윈도우 획득하는 방법의 제1 실시예를 설명하기 위한 개념도이다.
도 8의 엔드 노드들 및 제어기는 도 1의 엔드 노드들(111 내지 113) 및 제어기(120)과 동일 또는 유사하게 구성될 수 있다. 도 8의 CAN ID A는 도 1의 제1 엔드 노드(111)의 CAN ID일 수 있고, CAN ID B는 제2 엔드 노드(112)의 CAN ID일 수 있으며, CAN ID C는 제3 엔드 노드(113)의 CAN ID일 수 있다.
도 8을 참조하면, 제어기는 역방향 샘플링 시점 가운데 엔드 노드들로부터 신호를 수신한 시점을 획득할 수 있다. 제어기는 신호를 수신한 시점들에 -1 값을 곱하여 역방향 샘플링 시점 가운데 신호를 수신한 시점을 획득할 수 있다.
제어기는 샘플링 시점들 가운데 어느 하나 이상에 엔드 노드들로부터 신호들을 수신할 수 있다. 제어기는 제1 엔드 노드로부터
Figure 112019083394113-pat00060
,
Figure 112019083394113-pat00061
Figure 112019083394113-pat00062
에 신호를 수신할 수 있다. 제어기는 제2 엔드 노드로부터
Figure 112019083394113-pat00063
,
Figure 112019083394113-pat00064
Figure 112019083394113-pat00065
에 신호를 수신할 수 있다
각각의 엔드 노드로부터 신호를 수신한 시점들(
Figure 112019083394113-pat00066
,
Figure 112019083394113-pat00067
,
Figure 112019083394113-pat00068
,
Figure 112019083394113-pat00069
,
Figure 112019083394113-pat00070
Figure 112019083394113-pat00071
)에 -1 값을 곱하여, 역방향 샘플링 시점들 가운데 신호를 수신한 시점들(
Figure 112019083394113-pat00072
,
Figure 112019083394113-pat00073
,
Figure 112019083394113-pat00074
,
Figure 112019083394113-pat00075
,
Figure 112019083394113-pat00076
Figure 112019083394113-pat00077
)을 획득할 수 있다. 제어기는 획득한 역방향 신호 수신 시점들을 가로축으로, 각각의 엔드 노드들의 CAN ID들(CAN ID A, CAN ID B 및 CAN ID C)을 세로축으로 하는 역방향 그래프를 생성할 수 있다.
역방향 그래프에는 제어기가 엔드 노드들로부터 신호들을 수신한 수신 시점들이 역순으로 배열될 수 있다. 제어기는 생성된 순방향 그래프 가운데 일부인
Figure 112019083394113-pat00078
부터
Figure 112019083394113-pat00079
구간의 역방향 그래프를 역방향 수신 윈도우로 획득할 수 있다.
다시 도 7을 참조하면, 제어기는 시간축을 기준으로 역방향 수신 윈도우를 확장할 수 있다(S720). 제어기는 역방향 수신 윈도우의 가로축을 양쪽으로 확장하는 방식으로 역방향 수신 윈도우를 확장할 수 있다. 즉 제어기는 모든 엔드 노드들(예를 들어 도 1의 엔드 노드들(111 내지 113))로부터 신호들을 수신하기 위하여, 역방향 수신 윈도우를 양쪽으로 확장할 수 있다.
도 9는 차량 네트워크에서, 역방향 수신 윈도우를 확장하는 방법의 제1 실시예를 설명하기 위한 개념도이다.
도 9의 엔드 노드들 및 제어기는 도 1의 엔드 노드들(111 내지 113) 및 제어기(120)과 동일 또는 유사하게 구성될 수 있다. 또한, 도 8의 역방향 수신 윈도우는 도 7의 역방향 수신 윈도우와 동일할 수 있다.
도 8을 참조하면, 제어기는 역방향 샘플링 시점들을 기준으로, 역방향 수신 윈도우의 시작 시점인
Figure 112019083394113-pat00080
이전에 제2 엔드 노드 및 제3 엔드 노드로부터 신호를 수신한 역방향 샘플링 시점들을 획득할 수 있다. 제어기는 역방향 수신 윈도우의 종료 시점인
Figure 112019083394113-pat00081
이후에 제2 엔드 노드 및 제3 엔드 노드로부터 신호를 수신한 역방향 샘플링 시점들을 획득할 수 있다.
제어기는 S710 단계에서 획득한 순방향 수신 윈도우의 가로축을 양측으로 확장할 수 있다. 즉, 제어기는 S710 단계에서 획득한 역방향 수신 윈도우를
Figure 112019083394113-pat00082
부터 좌측(시간이 감소하는 방향)으로 확장할 수 있고,
Figure 112019083394113-pat00083
부터 우측(시간이 증가하는 방향)으로 확장할 수 있다.
제어기는
Figure 112019083394113-pat00084
이전에 나머지 엔드 노드들이 신호를 수신한 역방향 샘플링시점(예를 들어, 제3 엔드 노드로부터 신호를 수신한 역방향 샘플링 시점인
Figure 112019083394113-pat00085
)까지 역방향 수신 윈도우를 좌측으로 확장할 수 있다. 제어기는
Figure 112019083394113-pat00086
이후에 나머지 엔드 노드들이 신호를 수신한 샘플링 시점(예를 들어, 제2 엔드 노드로부터 신호를 수신한 역방향 샘플링 시점인
Figure 112019083394113-pat00087
)까지 역방향 수신 윈도우를 우측으로 확장할 수 있다.
다시, 도 7을 참조하면, 제어기는 S720 단계에서 확장한 역방향 수신 윈도우를 기초로 역방향 입력 데이터를 생성할 수 있다(S730).
제어기는 S730 단계에서 확장한 역방향 수신 윈도우를 아래 수학식 7과 같이하나의 행렬로 나타냄으로써 역방향 입력 데이터를 생성할 수 있다.
[수학식 7]
Figure 112019083394113-pat00088
Figure 112019083394113-pat00089
,
Figure 112019083394113-pat00090
,
Figure 112019083394113-pat00091
,
Figure 112019083394113-pat00092
,
Figure 112019083394113-pat00093
Figure 112019083394113-pat00094
는 제1 엔드 노드로부터 역방향 샘플링 시점 가운데
Figure 112019083394113-pat00095
,
Figure 112019083394113-pat00096
Figure 112019083394113-pat00097
에 수신한 신호들을 나타낼 수 있다.
Figure 112019083394113-pat00098
Figure 112019083394113-pat00099
,
Figure 112019083394113-pat00100
,
Figure 112019083394113-pat00101
,
Figure 112019083394113-pat00102
,
Figure 112019083394113-pat00103
,
Figure 112019083394113-pat00104
,
Figure 112019083394113-pat00105
,
Figure 112019083394113-pat00106
Figure 112019083394113-pat00107
은 제2 엔드 노드로부터 역방향 샘플링 시점 가운데
Figure 112019083394113-pat00108
,
Figure 112019083394113-pat00109
,
Figure 112019083394113-pat00110
Figure 112019083394113-pat00111
에 수신한 신호들을 나타낼 수 있다.
Figure 112019083394113-pat00112
,
Figure 112019083394113-pat00113
,
Figure 112019083394113-pat00114
Figure 112019083394113-pat00115
는 제3 엔드 노드로부터 역방향 샘플링 가운데
Figure 112019083394113-pat00116
Figure 112019083394113-pat00117
에 수신한 신호들을 나타낼 수 있다.
제어기는 S730 단계에서 생성한 역방향 입력 데이터를 기초로 역방향 마스크 데이터 및 역방향 타임 인터벌을 생성할 수 있다(S740).
제어기는 역방향 샘플링 시점들에서 신호를 수신한 경우 1 값을 갖고, 수신하지 않은 경우 0 값을 갖는 행렬인 역방향 마스크 데이터를 생성할 수 있다. 여기에서 역방향 샘플링 시점들이란, 엔드 노드들(111 내지 113) 가운데 적어도 어느 하나로부터 신호를 수신한 시점일 수 있다. 예를 들어, 제어기는 수학식 7에 따라 생성된 역방향 입력 데이터를 기초로 아래 수학식 8과 같은 역방향 마스크 데이터를 생성할 수 있다.
[수학식 8]
Figure 112019083394113-pat00118
제어기는 엔드 노드들의 역방향 샘플링 시점들의 차이를 나타내는 역방향 샘플링 행렬을 생성할 수 있다. 역방향 샘플링 행렬은 확장된 역방향 수신 윈도우에서 가장 빠른 역방향 샘플링 시점과 나머지 역방향 샘플링 시점들의 시간 차이를 나타내는 행렬일 수 있다. 예를 들어, 도 8의 확장된 역방향 수신 윈도우를 기초로 다음 수학식 9와 같은 역방향 샘플링 행렬을 생성할 수 있다.
[수학식 9]
Figure 112019083394113-pat00119
수학식 9에서 역방향 행렬 각각의 성분들은 엔드 노드들의 역방향 샘플링 시점들 가운데 가장 빠른 시점인
Figure 112019083394113-pat00120
과 나머지 샘플링 시점들의 차이를 나타낼 수 있다.
제어기는 역방향 샘플링 행렬 및 역방향 마스크 데이터를 기초로, 역방향 타임 인터벌 데이터를 생성할 수 있다. 제어기는 아래의 수학식 10을 기초로 행렬 형태의 역방향 타임 인터벌 데이터를 생성할 수 있다.
[수학식 10]
Figure 112019083394113-pat00121
Figure 112019083394113-pat00122
는 역방향 샘플링 행렬의 t 열 성분일 수 있고,
Figure 112019083394113-pat00123
는 역방향 타임 인터벌 데이터의 k행, t-1열의 성분일 수 있으며,
Figure 112019083394113-pat00124
는 확장된 역방향 수신 윈도우의 역방향 샘플링 시점 가운데 가장 빠른 시간일 수 있고,
Figure 112019083394113-pat00125
는 역방향 마스크 데이터의 k 행 t 열의 성분일 수 있다.
예를 들어, 수학식 8에서 생성한 역방향 마스크 데이터 및 수학식 9에서 생성된 역방향 샘플링 행렬을 기초로하여 아래 수학식 11와 같이 역방향 타임 인터벌 데이터를 생성할 수 있다.
[수학식 11]
Figure 112019083394113-pat00126
다시 도 3을 참조하면, 제어기는 S310에서 수행한 순방향 전처리 결과 및 S320에서 수행한 역방향 전처리 결과를 기초로 수신 신호들 가운데 비정상 신호를 감지할 수 있다(S330).
제어기는 순방향 전처리 결과인 순방향 입력 데이터, 순방향 마스크 데이터 및 순방향 타임 인터벌과 역방향 전처리 결과인 역방향 입력 데이터, 역방향 마스크 데이터 및 역방향 타임 인터벌을 GRU-D(Gated Recurrent Unit-Decay) 신경망에 입력할 수 있다. GRU-D 신경망은 입력 데이터들을 기초로 수신 신호들의 비정상 여부를 판단할 수 있다.
도 10은 차량 네트워크에서, GRU-D 신경망의 제1 실시예를 나타낸 블록도이다. 도 10을 참조하면, GRU-D 신경망은 GRU-D코더(1001) 및 GRU-D 디코더(1002)를 포함할 수 있다. 도 10에는 복수의 GRU-D 인코더(1001) 및 GRU-D 디코더(1002)가 도시되어 있으나 이는 복수의 GRU-D 인코더(1001) 및 GRU-D 디코더(1002)의 반복 되는 연산을 설명하기 위한 것이고, 모두 동일한 GRU-D 인코더(1001) 및 GRU-D 디코더(1002)일 수 있다.
도 11은 차량 네트워크에서, GRU-D 인코더의 제1 실시예를 나타낸 블록도이다.
도 11을 참조하면, GRU-D 인코더는 복수의 GRU-D 레이어들(1101 내지 1103) 및 FC(Fully Connected) 레이어(1104)를 포함할 수 있다.
다시 도 11을 참조하면, 복수의 GRU-D 레이어들 가운데 최하위 레이어인 제0 GRU-D 레이어(1101)는 순방향 입력 데이터 가운데 어느 한열인
Figure 112019083394113-pat00127
, 마스크 데이터 가운데 어느 한열인
Figure 112019083394113-pat00128
및 순방향 인터벌 데이터 가운데 어느 한열인
Figure 112019083394113-pat00129
를 입력 신호로 수신할 수 있다.
Figure 112019083394113-pat00130
,
Figure 112019083394113-pat00131
Figure 112019083394113-pat00132
는 각각의 행렬의 t번째 열의 성분일 수 있다.
제0 GRU-D 레이어(1101)는
Figure 112019083394113-pat00133
,
Figure 112019083394113-pat00134
Figure 112019083394113-pat00135
를 기초로 0 번째 히든 행렬인
Figure 112019083394113-pat00136
를 생성할 수 있다. 제0 GRU-D 레이어(1101)는
Figure 112019083394113-pat00137
를 제1 GRU-D 레이어(1102)에 전송할 수 있다. 제1 GRU-D 레이어(1102)는 제0 GRU-D 레이어(1101)로부터
Figure 112019083394113-pat00138
를 수신할 수 있다. 제1 GRU-D 레이어(1102)는
Figure 112019083394113-pat00139
를 기초로 제1 레이어 히든 행렬인
Figure 112019083394113-pat00140
를 생성할 수 있다.
제N-1 GRU-D 레이어(1103)는 제N-2 GRU-D 레이어로부터 제N-2 레이어 히든 행렬인
Figure 112020109285641-pat00141
수신할 수 있다. 제N-1 레이어(1103)는
Figure 112020109285641-pat00142
를 기초로 제n-1 히든 행렬인
Figure 112020109285641-pat00143
을 생성할 수 있다.
또한, 제N-1 레이어(1103)는 생성한 제n-1 히든 행렬인
Figure 112020109285641-pat00144
를 FC 레이어(1104)에 전송할 수 있다. FC 레이어(1104)는 제N-1 레이어(1103)로부터 제n-1 히든 행렬
Figure 112020109285641-pat00145
를 수신할 수 있다. FC 레이어(1104)는
Figure 112020109285641-pat00146
를 기초로 인코더 데이터
Figure 112020109285641-pat00147
를 생성할 수 있다.
한편, 도 10의 복수의 GRU-D 디코더(1001)는 다음과 같이 구성될 수 있다.
도 12를 참조하면, GRU-D 디코더는 복수의 GRU-D 레이어들(1201 내지 1203) 및 FC 레이어(1204)를 포함할 수 있다.
복수의 GRU-D 레이어들 가운데 최하위 레이어인 제0 GRU-D 레이어(1201)는 역방향 입력 데이터 가운데 어느 한열인
Figure 112020109285641-pat00148
, 마스크 데이터 가운데 어느 한열인
Figure 112020109285641-pat00149
및 역방향 인터벌 데이터 가운데 어느 한열인
Figure 112020109285641-pat00150
를 입력 신호로 수신할 수 있다.
제0 GRU-D 레이어(1201)는 수신한
Figure 112019083394113-pat00151
,
Figure 112019083394113-pat00152
Figure 112019083394113-pat00153
를 기초로 제0 레이어 역히든 행렬
Figure 112019083394113-pat00154
를 생성할 수 있다. 제0 GRU-D 레이어(1201)는 생성한
Figure 112019083394113-pat00155
를 제1 GRU-D 레이어(1202)에 전송할 수 있다. 제1 GRU-D 레이어(1202)는 제0 GRU-D 레이어(1201)로부터 제0 레이어 역히든 행렬
Figure 112019083394113-pat00156
을 수신할 수 있다. 제1 GRU-D 레이어(1202)는
Figure 112019083394113-pat00157
를 기초로 제1 레이어 역히든 행렬인
Figure 112019083394113-pat00158
를 생성할 수 있다.
제N-1 GRU-D 레이어(1203)는 n-2 번째 레이어로부터 n-2 번째 역히든 레이어행렬인
Figure 112020109285641-pat00159
를 수신할 수 있다. 제N-1 레이어(1203)는
Figure 112020109285641-pat00160
를 기초로 제n-1 역히든 레이어 행렬인
Figure 112020109285641-pat00161
을 생성할 수 있다.
또한, 제N-1 레이어(1203)는 생성한 제n-1 역히든 행렬
Figure 112020109285641-pat00162
을 FC 레이어(1204)에 전송할 수 있다. FC 레이어(1204)는 제N-1 레이어(1203)로부터 제n-1 역히든 행렬
Figure 112020109285641-pat00163
를 수신할 수 있다. FC 레이어(1204)는
Figure 112020109285641-pat00164
를 기초로 추정 데이터
Figure 112020109285641-pat00165
를 생성할 수 있다.
한편, 각각의 GRU-D 레이어들(1101 내지 1101 및 1201 내지 1203)은 다음과 같이 구성될 수 있다.
도 13는 GRU-D 레이어의 제1 실시예를 나타낸 개념도이다.
도 13는 GRU-D 인코더의 레이어를 기초로 설명하나, 이는 GRU-D 디코더의 레이어에도 동일하게 적용될 수 있다.
*도 13을 참조하면, GRU-D 레이어는 리셋 게이트(r) 및 업데이트 게이트(y) 및 마스크 게이트(g)를 포함할 수 있다. 리셋 게이트(r)는 새로운 입력을 이전 메모리와 어떻게 합칠지를 정할 수 있다. 업데이트 게이트(z)는 이전 메모리를 얼마나 반영할 지를 결정할 수 있다.
리셋 게이트(r)는 아래의 수학식 12에 기초하여, 리셋 파라미터를 획득할 수 있다.
[수학식 12]
Figure 112019083394113-pat00166
수학식 12에서,
Figure 112019083394113-pat00167
는 리셋 파라미터일 수 있고,
Figure 112019083394113-pat00168
는 시그모이드(sigmoid)함수를 의미할 수 있고,
Figure 112019083394113-pat00169
Figure 112019083394113-pat00170
에 대한 가중치를 의미할 수 있으며,
Figure 112019083394113-pat00171
은 에
Figure 112019083394113-pat00172
대한 가중치를 의미할 수 있고,
Figure 112019083394113-pat00173
Figure 112019083394113-pat00174
에 대한 가중치를 의미할 수 있으며,
Figure 112019083394113-pat00175
은 바이어스(bias) 벡터를 의미할 수 있다.
Figure 112019083394113-pat00176
는 아래 수학식 13에 기초하여 연산될 수 있다.
[수학식 13]
Figure 112019083394113-pat00177
수학식 13에서,
Figure 112019083394113-pat00178
는 k번째 입력 데이터의 과거 평균 값일 수 있고,
Figure 112019083394113-pat00179
Figure 112019083394113-pat00180
의 k 번째 값일 수 있다.
Figure 112019083394113-pat00181
는 아래 수학식 14에 기초하여 연산될 수 있다.
[수학식 14]
Figure 112019083394113-pat00182
수학식 14에서,
Figure 112019083394113-pat00183
Figure 112019083394113-pat00184
의 가중치 일 수 있고
Figure 112019083394113-pat00185
은 바이어스 벡터를 의미할 수 있다.
한편, 업데이트 게이트(y)는 아래 수학식 15를 이용하여, 업데이트 파라미터 y를 획득할 수 있다.
[수학식 15]
Figure 112019083394113-pat00186
수학식 15에서,
Figure 112019083394113-pat00187
Figure 112019083394113-pat00188
의 가중치 일 수 있고,
Figure 112019083394113-pat00189
Figure 112019083394113-pat00190
의 가중치일 수 있으며,
Figure 112019083394113-pat00191
Figure 112019083394113-pat00192
의 가중치일 수 있고,
Figure 112019083394113-pat00193
는 바이어스 벡터를 의미할 수 있다.
[수학식 16]
Figure 112019083394113-pat00194
한편, GRU-D 레이어는 새로운 히든 벡터
Figure 112019083394113-pat00195
를 다음 수학식 17에 따라 연산할 수 있다.
[수학식 17]
Figure 112019083394113-pat00196
다시 도 10을 참조하면, GRU-D 인코더(1001)는 순방향 입력 데이터, 순방향 마스크 데이터 및 순방향 타임 인터벌 데이터를 수신할 수 있다.
도 4를 참조하여 각 수학식의 1열 성분을 고려할 경우, GRU-D 인코더(1001)는 순방향 입력 데이터의 제1 열 성분(예를 들어, 도 4의 수학식 1의
Figure 112020109285641-pat00197
열 성분), 순방향 마스크 데이터의 제1 열 성분(예를 들어, 도 4의 수학식 2의
Figure 112020109285641-pat00198
열 성분), 및 순방향 타임 인터벌의 제1 열 성분(예를 들어, 도 4의 수학식 5의
Figure 112020109285641-pat00199
열 성분)을 기초로 인코더 데이터
Figure 112020109285641-pat00200
및 제n-1 히든 행렬
Figure 112020109285641-pat00201
을 생성할 수 있다. 여기서
Figure 112020109285641-pat00202
은 GRU-D 인코더(1001)의 FC 레이어(예를 들어, 도 11의 FC 레이어(1104))가 생성할 수 있고, 제n-1 히든 행렬
Figure 112020109285641-pat00203
은 GRU-D 인코더(1001)의 마지막 GRU-D 레이어(예를 들어, 도 11의 마지막 레이어(1103))가 생성할 수 있다.
다만 이는 도 4의 수학식에 나타낸 데이터의 1열 성분을 고려한 것이고, 일반적인 데이터의 1열 성분에 대해서 GRU-D 인코더(1001)은 순방향 입력 데이터, 순방향 마스크 데이터 및 순방향 타임 인터벌 데이터의 제 1열 성분을 기초로 인코더 데이터
Figure 112020109285641-pat00248
및 제 n-1 히든 행렬
Figure 112020109285641-pat00249
을 생성할 수 있다.
한편, GRU-D 디코더(1002)는 역방향 입력 데이터, 역방향 마스크 데이터 및 역방향 인터벌 데이터를 수신할 수 있다. 또한 GRU-D 디코더(1002)는 GRU-D 인코더(1001)로부터 제n-1 히든 행렬
Figure 112020109285641-pat00204
을 수신할 수 있다.
도 4를 참조하여 각 수학식의 1열 성분을 고려할 경우, GRU-D 디코더(1002)는 역방향 입력 데이터의 제1 열 성분(예를 들어, 도 7의 수학식 7의
Figure 112020109285641-pat00205
열 성분), 역방향 마스크 데이터의 제1 열 성분(예를 들어, 도 7의 수학식 8의
Figure 112020109285641-pat00206
열 성분), 역방향 타임 인터벌의 제1 열 성분(예를 들어, 도 7의 수학식 11의
Figure 112020109285641-pat00207
열 성분)을 기초로 GRU-D 인코더(1001)의 순방향 입력 데이터의 추정 데이터를 생성할 수 있다.
또한, 도 4를 참조하여 각 수학식의 1열 성분을 고려할 경우, GRU-D 인코더(1001)의 입력 데이터가
Figure 112020109285641-pat00208
인 경우, GRU-D 디코더(1002)는 추정 데이터로
Figure 112020109285641-pat00209
를 생성할 수 있다. 또한, GRU-D 디코더(1002)는 역방향 입력 데이터, 역방향 마스크 데이터, 역방향 타임 인터벌 및 상기 GRU-D 인코더로부터 수신한 제n-1 히든 행렬을 기초로 제1 역히든 행렬인
Figure 112020109285641-pat00210
을 생성할 수 있다.
한편, 도 9를 참조하여 각 수학식의 2열 성분을 고려할 경우, GRU-D 디코더(1002)는 역방향 입력 데이터의 제2 열 성분(예를 들어, 도 9의 수학식 7의
Figure 112020109285641-pat00211
열 성분), 역방향 마스크 데이터의 제2 열 성분(예를 들어, 도 9의 수학식 8의
Figure 112020109285641-pat00212
열 성분), 역방향 타임 인터벌의 제2 열 성분(예를 들어, 도 9의 수학식 11의
Figure 112020109285641-pat00213
열 성분) 및 제1 역히든 행렬인
Figure 112020109285641-pat00214
을 기초로 추정 데이터를 생성할 수 있다. GRU-D 인코더(1001)의 순방향 입력 데이터가
Figure 112020109285641-pat00215
인 경우, 디코더는 추정 데이터로
Figure 112020109285641-pat00216
를 생성할 수 있다.
GRU-D 디코더(1002)는 역방향 입력 데이터, 역방향 마스크 데이터, 역방향 타임 인터벌 및 제1 역히든 행렬을 기초로 제2 역히든 행렬인
Figure 112020109285641-pat00217
을 생성할 수 있다.
또한, 수학식 7 내지 11의 마지막 열 성분을 고려할 경우, GRU-D 디코더(1002)는 역방향 입력 데이터의 마지막 열 성분(예를 들어, 도 4의 수학식 7의
Figure 112020109285641-pat00218
열 성분), 역방향 마스크 데이터의 마지막 열 성분(예를 들어, 도 4의 수학식 8의
Figure 112020109285641-pat00219
열 성분), 역방향 타임 인터벌의 마지막 열 성분(예를 들어, 도 4의 수학식 11의
Figure 112020109285641-pat00220
열 성분) 및 제N-1 역히든 행렬인
Figure 112020109285641-pat00221
를 기초로 추정 데이터를 생성할 수 있다. 즉, GRU-D 인코더(1001)의 입력 데이터가,
Figure 112020109285641-pat00222
인 경우, GRU-D 디코더(1002)는 추정 데이터로
Figure 112020109285641-pat00223
를 생성할 수 있다.
GRU-D 신경망은 순방향 입력 데이터와 GRU-D 디코더(1002)가 출력하는 추정 데이터들을 비교하여 수신 신호들 가운데 비정상 신호를 감지할 수 있다.
한편, 제어기는 아래 수학식 18을 기초로 입력 데이터와 추정 데이터의 차이를 나타내는 MSE(Mean Squared Error)를 연산할 수 있다.
[수학식 18]
Figure 112019083394113-pat00224
여기에서,
Figure 112019083394113-pat00225
는 순방향 마스크 데이터일 수 있고,
Figure 112019083394113-pat00226
는 순방향 입력 데이터일 수 있으며,
Figure 112019083394113-pat00227
는 디코더(1002)가 연산하는 추정 데이터일 수 있다. 또한
Figure 112019083394113-pat00228
는 인코더 및 디코더의 연산 반복 횟수를 나타낼 수 있다. 한편,
Figure 112019083394113-pat00229
Figure 112019083394113-pat00230
는 동일한 열 성분일 수 있다.
제어기는
Figure 112019083394113-pat00231
Figure 112019083394113-pat00232
의 크기를 기초로, MSE의 크기를 연산할 수 있다. MSE의 크기는
Figure 112019083394113-pat00233
Figure 112019083394113-pat00234
사이의 크기 차이가 크면 큰 값을 가질 수 있고, 크기 차이가 작으면 작은 값을 가질 수 있다.
제어기는 MSE 값의 크기를 기초로, 비정상 신호를 감지할 수 있다. MSE 값이 미리 설정한 값 이상인 경우, 제어기는 입력 신호가 비정상 신호라고 판단할 수 있다. MSE 값이 미리 설정한 값 미만인 경우, 제어기는 입력 신호가 정상 신호인 것으로 판단할 수 있다.
제어기는 수학식 18에 따라서 GRD-D 레이어들(예를 들어, 도 13의 GRU-D 레이어)의 파라미터를 조정하여 MSE를 최소화 할 수 있다. 제어기는 RMSProp, ADAM 알고리즘과 같은 알고리즘을 이용하여 파라미터를 조정할 수 있다. RMSProp, ADAM 알고리즘은 통상의 기술자에게 자명한 사항으로 본 명세서에서는 설명을 생략한다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬, 램, 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 1의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (15)

  1. CAN(Controller Area Network; CAN) 통신 네트워크에서 제어기의 동작 방법으로서,
    복수의 엔드 노드들로부터 CAN 신호들을 수신하는 단계;
    수신된 CAN 신호들을 순방향 샘플링 시점을 기초로 순방향 전처리하여 순방향 입력 데이터를 생성하는 단계;
    상기 순방향 입력 데이터에 대한 순방향 마스크 데이터와 상기 순방향 샘플링 시점에 따른 순방향 타임 인터벌 데이터를 생성하는 단계;
    상기 CAN 신호들을 역방향 샘플링 시점을 기초로 역방향 전처리하여 역방향 입력 데이터를 생성하는 단계;
    상기 역방향 입력 데이터에 대한 역방향 마스크 데이터와 상기 역방향 샘플링 시점에 따른 역방향 타임 인터벌 데이터를 생성하는 단계; 및
    상기 순방향 입력 데이터, 순방향 마스크 데이터, 순방향 타임 인터벌 데이터, 역방향 입력 데이터, 역방향 마스크 데이터 및 역방향 타임 인터벌 데이터를 GRU-D(Gated Recurrent Unit-Decay) 신경망에 입력하여 상기 CAN 신호들 가운데 비정상 신호를 감지하는 단계를 포함하는, 제어기의 동작 방법.
  2. 청구항 1에 있어서,
    상기 순방향 입력 데이터를 생성하는 단계는,
    상기 순방향 샘플링 시점을 기초로 순방향 수신 윈도우를 획득하는 단계;
    시간축을 기준으로 상기 순방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 순방향으로 확장하는 단계;
    상기 시간축을 기준으로 상기 순방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 역방향으로 확장하는 단계; 및
    상기 확장한 수신 윈도우를 기초로, 상기 신호들의 종류를 나타내는 행렬인 순방향 입력 데이터를 생성하는 단계를 더 포함하는, 제어기의 동작 방법.
  3. 청구항 2에 있어서,
    상기 순방향 마스크 데이터는,
    상기 순방향 샘플링 시점들에 데이터가 존재하는 경우, 1 값을 갖고, 데이터가 존재하지 않는 경우 0값을 갖는 행렬인, 제어기의 동작 방법.
  4. 청구항 2에 있어서,
    상기 순방향 타임 인터벌 데이터는,
    상기 순방향 샘플링 시점들의 차이를 기초로 생성되는, 제어기의 동작 방법.
  5. 청구항 1에 있어서,
    상기 역방향 입력 데이터를 생성하는 단계는,
    상기 역방향 샘플링 시점을 기초로 역방향 수신 윈도우를 획득하는 단계;
    시간축을 기준으로 상기 역방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 역방향으로 확장하는 단계;
    상기 시간축을 기준으로 상기 역방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 순방향으로 확장하는 단계; 및
    상기 확장한 역방향 수신 윈도우를 기초로, 상기 신호들의 종류를 나타내는 행렬인 역방향 입력 데이터를 생성하는 단계를 더 포함하는, 제어기의 동작 방법.
  6. 청구항 5에 있어서,
    상기 역방향 타임 인터벌 데이터는,
    상기 역방향 샘플링 시점들의 차이를 기초로 생성되는, 제어기의 동작 방법.
  7. 청구항 1에 있어서,
    상기 GRU-D 신경망은,
    복수의 GRU-D 레이어들을 포함하는 GRU-D 인코더 및 상기 GRU-D 인코더와 대칭적인 구조를 가지는 GRU-D 디코더를 포함하는, 제어기의 동작 방법.
  8. 청구항 7에 있어서,
    상기 비정상 신호를 감지하는 단계는,
    상기 GRU-D 인코더가 상기 순방향 입력 데이터, 상기 순방향 마스크 데이터 및 상기 순방향 타임 인터벌 데이터를 기초로 히든 행렬을 출력하는 단계;
    상기 GRU-D 디코더가 상기 히든 행렬, 상기 역방향 입력 데이터, 상기 역방향 마스크 데이터 및 상기 역방향 타임 인터벌 데이터를 기초로 추정 데이터를 출력하는 단계; 및
    상기 순방향 입력 데이터와 상기 추정 데이터를 비교하여, CAN 신호들 가운데 비정상 신호를 감지하는, 제어기의 동작 방법.
  9. CAN(Controller Area Network; CAN) 통신 네트워크의 제어기로서,
    프로세서(processor) 및
    상기 프로세서에 의해 실행되는 하나 이상의 명령들이 저장된 메모리(memory)를 포함하며,
    상기 하나 이상의 명령들은,
    복수의 엔드 노드들로부터 CAN 신호들을 수신하고;
    상기 CAN 신호들을 순방향 샘플링 시점을 기초로 순방향 전처리하여 순방향 입력 데이터를 생성하고;
    상기 순방향 입력 데이터에 대한 순방향 마스크 데이터와 상기 순방향 샘플링 시점에 따른 순방향 타임 인터벌 데이터를 생성하고;
    상기 CAN 신호들을 역방향 샘플링 시점을 기초로 역방향 전처리하여 역방향 입력 데이터를 생성하고;
    상기 역방향 입력 데이터에 대한 역방향 마스크 데이터와 상기 역방향 샘플링 시점에 따른 역방향 타임 인터벌 데이터를 생성하고; 그리고,
    상기 순방향 입력 데이터, 순방향 마스크 데이터, 순방향 타임 인터벌 데이터, 역방향 입력 데이터, 역방향 마스크 데이터 및 역방향 타임 인터벌 데이터를 GRU-D(Gated Recurrent Unit-Decay) 신경망에 입력하여 상기 CAN 신호들 가운데 비정상 신호를 감지하도록 실행되는, 제어기.
  10. 청구항 9에 있어서,
    상기 순방향 입력 데이터를 생성하는 경우,
    상기 하나 이상의 명령들은,
    상기 순방향 샘플링 시점을 기초로 순방향 수신 윈도우를 획득하고;
    시간축을 기준으로 상기 순방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 순방향으로 확장하고;
    상기 시간축을 기준으로 상기 순방향 수신 윈도우를 신호가 존재하는 샘플링 시점까지 역방향으로 확장하고; 그리고
    상기 확장한 수신 윈도우를 기초로 상기 신호들의 종류를 나타내는 행렬인 순방향 입력 데이터를 생성하도록 더 실행되는, 제어기.
  11. 청구항 10에 있어서,
    상기 순방향 마스크 데이터는,
    상기 순방향 샘플링 시점들에 데이터가 존재하는 경우, 1 값을 갖고, 데이터가 존재하지 않는 경우 0값을 갖는 행렬인, 제어기.
  12. 청구항 10에 있어서,
    상기 순방향 타임 인터벌 데이터는,
    상기 순방향 샘플링 시점들의 차이를 기초로 생성되는, 제어기.
  13. 청구항 9에 있어서,
    상기 역방향 입력 데이터를 생성하는 경우,
    상기 하나 이상의 명령들은,
    상기 역방향 샘플링 시점을 기초로 역방향 수신 윈도우를 획득하고;
    시간축을 기준으로 상기 역방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 역방향으로 확장하고;
    상기 시간축을 기준으로 상기 역방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 순방향으로 확장하고; 그리고
    상기 확장한 역방향 수신 윈도우를 기초로, 상기 신호들의 종류를 나타내는 행렬인 역방향 입력 데이터를 생성하도록 더 실행되는, 제어기.
  14. 청구항 9에 있어서,
    상기 GRU-D 신경망은,
    복수의 GRU-D 레이어들을 포함하는 GRU-D 인코더 및 상기 GRU-D 인코더와 대칭적인 구조를 가지는 GRU-D 디코더를 포함하는, 제어기.
  15. 청구항 14에 있어서,
    상기 비정상 신호를 감지하는 경우,
    상기 하나 이상의 명령들은,
    상기 GRU-D 인코더가 상기 순방향 입력 데이터, 상기 순방향 마스크 데이터 및 상기 순방향 타임 인터벌 데이터를 기초로 히든 행렬을 출력하고;
    상기 GRU-D 디코더가 상기 히든 행렬, 상기 역방향 입력 데이터, 상기 역방향 마스크 데이터 및 상기 역방향 타임 인터벌 데이터를 기초로 추정 데이터를 출력하고 그리고,
    상기 순방향 입력 데이터와 상기 추정 데이터를 비교하여, CAN 신호들 가운데 비정상 신호를 감지하도록 더 실행되는, 제어기.
KR1020190099372A 2019-08-14 2019-08-14 Can 기반의 통신 네트워크에서 신호 검출 방법 및 장치 KR102232871B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020190099372A KR102232871B1 (ko) 2019-08-14 2019-08-14 Can 기반의 통신 네트워크에서 신호 검출 방법 및 장치
US16/989,617 US11438248B2 (en) 2019-08-14 2020-08-10 Method for detecting signal in communication network based on controller area network, and apparatus therefor
EP20190713.6A EP3780508A1 (en) 2019-08-14 2020-08-12 Detecting abnormal signals of a can system using a gated recurrent unit-decay neural network
JP2020136708A JP6999119B6 (ja) 2019-08-14 2020-08-13 Can基盤の通信ネットワークにおける信号検出方法および装置
CN202010812449.3A CN112394706A (zh) 2019-08-14 2020-08-13 在基于控制器域网的通信网络中检测信号的方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190099372A KR102232871B1 (ko) 2019-08-14 2019-08-14 Can 기반의 통신 네트워크에서 신호 검출 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20210020298A KR20210020298A (ko) 2021-02-24
KR102232871B1 true KR102232871B1 (ko) 2021-03-26

Family

ID=72050742

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190099372A KR102232871B1 (ko) 2019-08-14 2019-08-14 Can 기반의 통신 네트워크에서 신호 검출 방법 및 장치

Country Status (5)

Country Link
US (1) US11438248B2 (ko)
EP (1) EP3780508A1 (ko)
JP (1) JP6999119B6 (ko)
KR (1) KR102232871B1 (ko)
CN (1) CN112394706A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023106638A1 (ko) * 2021-12-08 2023-06-15 고려대학교 산학협력단 Can 메시지 분석과 신경망 모델을 이용한 경량화된 실시간 이상 탐지 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11368284B2 (en) * 2019-09-25 2022-06-21 Ford Global Technologies, Llc Vehicle blockchain transactions
CN113516228B (zh) * 2021-07-08 2023-04-18 哈尔滨理工大学 一种基于深度神经网络的网络异常检测方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019125967A (ja) 2018-01-18 2019-07-25 マツダ株式会社 送受信装置及び車両

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8229624B2 (en) * 1995-06-07 2012-07-24 American Vehicular Sciences Llc Vehicle diagnostic information generating and transmission systems and methods
US9008854B2 (en) * 1995-06-07 2015-04-14 American Vehicular Sciences Llc Vehicle component control methods and systems
KR101714520B1 (ko) * 2015-10-30 2017-03-09 현대자동차주식회사 차량 내 네트워크 공격 탐지 방법 및 장치
US10198693B2 (en) * 2016-10-24 2019-02-05 International Business Machines Corporation Method of effective driving behavior extraction using deep learning
US11080595B2 (en) * 2016-11-04 2021-08-03 Salesforce.Com, Inc. Quasi-recurrent neural network based encoder-decoder model
CN106656637B (zh) * 2017-02-24 2019-11-26 国网河南省电力公司电力科学研究院 一种电网异常检测方法及装置
KR102286050B1 (ko) * 2017-06-23 2021-08-03 현대자동차주식회사 차량 네트워크에서 진단 오류 방지를 위한 방법 및 장치
DE102017210787A1 (de) * 2017-06-27 2018-12-27 Robert Bosch Gmbh Verfahren und Vorrichtung zum Ermitteln von Anomalien in einem Kommunikationsnetzwerk
KR101880907B1 (ko) * 2017-09-22 2018-08-16 펜타시큐리티시스템 주식회사 비정상 세션 감지 방법
KR102424540B1 (ko) * 2017-10-16 2022-07-25 삼성전자주식회사 문장 생성 모델의 업데이트 방법 및 문장 생성 장치
CN108958217A (zh) * 2018-06-20 2018-12-07 长春工业大学 一种基于深度学习的can总线报文异常检测方法
CN109084980B (zh) * 2018-10-10 2019-11-05 北京交通大学 基于均等分割的轴承故障预测方法及装置
US11400944B2 (en) * 2019-01-04 2022-08-02 Byton North America Corporation Detecting and diagnosing anomalous driving behavior using driving behavior models
US20200216027A1 (en) * 2019-01-04 2020-07-09 Byton North America Corporation Detecting vehicle intrusion using command pattern models

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019125967A (ja) 2018-01-18 2019-07-25 マツダ株式会社 送受信装置及び車両

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023106638A1 (ko) * 2021-12-08 2023-06-15 고려대학교 산학협력단 Can 메시지 분석과 신경망 모델을 이용한 경량화된 실시간 이상 탐지 방법

Also Published As

Publication number Publication date
JP2021034043A (ja) 2021-03-01
KR20210020298A (ko) 2021-02-24
CN112394706A (zh) 2021-02-23
JP6999119B6 (ja) 2022-03-14
US11438248B2 (en) 2022-09-06
EP3780508A1 (en) 2021-02-17
US20210051085A1 (en) 2021-02-18
JP6999119B2 (ja) 2022-01-18

Similar Documents

Publication Publication Date Title
KR102232871B1 (ko) Can 기반의 통신 네트워크에서 신호 검출 방법 및 장치
JP6608981B2 (ja) 異常セッション感知方法
Song et al. In-vehicle network intrusion detection using deep convolutional neural network
US20200247433A1 (en) Testing a Neural Network
US20180181860A1 (en) Deriving movement behaviour from sensor data
CN112131272B (zh) 多元kpi时间序列的检测方法、装置、设备及存储介质
KR101886910B1 (ko) 멀티 레벨 차량 무결성 및 품질 제어 메커니즘
JP7212607B2 (ja) 車両can bus信号を利用した機械学習基盤運転者異常感知方法および装置
WO2021116140A1 (en) Output from a recurrent neural network
US11386288B2 (en) Movement state recognition model training device, movement state recognition device, methods and programs therefor
CN111931252A (zh) 一种基于滑动窗口和cenn的车载can入侵检测方法
JP6994812B2 (ja) 複数のセンサの時系列の計測値群における欠損値を補完するプログラム、装置及び方法
KR102196027B1 (ko) Lstm 기반 조향 행동 모니터링 장치 및 그 방법
CN115943396A (zh) 使用机器学习检测车辆故障和网络攻击
KR102105951B1 (ko) 추론을 위한 제한된 볼츠만 머신 구축 방법 및 추론을 위한 제한된 볼츠만 머신을 탑재한 컴퓨터 장치
KR102417967B1 (ko) 다중 출력 아키텍처를 통한 점진적 초해상도 영상 변환 장치 및 방법
JP7006724B2 (ja) 分類装置、分類方法、及び、プログラム
CN110719487A (zh) 视频预测方法和装置、电子设备及车辆
DE102020100209A1 (de) Neuronale Netzwerkvorrichtung, neuronales Netzwerksystem und Verfahren zur Verarbeitung eines neuronalen Netzwerkmodells durch Verwenden eines neuronalen Netzwerksystems
KR102649659B1 (ko) 이상 예측을 위한 인공지능 모델을 학습시키기 위한 장치 및 이를 위한 방법
CN114418203B (zh) 基于碰撞关键特征数据的乘员损伤预测方法及装置
JP7279685B2 (ja) 情報処理システム
Song et al. Vehicular Communications
Sandén et al. Machine learning for automotive cyber-security
CN114077856A (zh) 处理单元、相关方法和数据中心

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant