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

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

Info

Publication number
KR20210020298A
KR20210020298A KR1020190099372A KR20190099372A KR20210020298A KR 20210020298 A KR20210020298 A KR 20210020298A KR 1020190099372 A KR1020190099372 A KR 1020190099372A KR 20190099372 A KR20190099372 A KR 20190099372A KR 20210020298 A KR20210020298 A KR 20210020298A
Authority
KR
South Korea
Prior art keywords
reverse
data
gru
sampling
input data
Prior art date
Application number
KR1020190099372A
Other languages
English (en)
Other versions
KR102232871B1 (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 CN202010812449.3A priority patent/CN112394706A/zh
Priority to JP2020136708A priority patent/JP6999119B6/ja
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
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Environmental & Geological Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Small-Scale Networks (AREA)

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 신호들을 역방향 샘플링 시점을 기초로 역방향 전처리하여 역방향 입력 데이터를 생성하는 단계, 상기 역방향 입력 데이터에 대한 역방향 마스크 데이터와 상기 역방향 샘플링 시점에 따른 역방향 타임 인터벌 데이터를 생성하는 단계 및 상기 순방향 입력 데이터, 순방향 마스크 데이터, 순방향 타임 인터벌 데이터, 역방향 입력 데이터, 역방향 마스크 데이터 및 역방향 타임 인터벌 데이터를 GRU-D(Gated Recurrent Unit-Decay) 신경망에 입력하여 상기 CAN 신호들 가운데 비정상 신호를 감지하는 단계를 포함할 수 있다.
여기서, 상기 순방향 입력 데이터를 생성하는 단계는 상기 순방향 샘플링 시점을 기초로 순방향 수신 윈도우를 획득하는 단계, 시간축을 기준으로 상기 순방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 순방향으로 확장하는 단계, 상기 시간축을 기준으로 상기 순방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 역방향으로 확장하는 단계 및 상기 확장한 수신 윈도우를 기초로, 상기 신호들의 종류를 나타내는 행렬인 순방향 입력 데이터를 생성하는 단계를 더 포함할 수 있다.
여기서, 상기 순방향 마스크 데이터는 상기 샘플링 시점들에 데이터가 존재하는 경우, 1 값을 갖고, 데이터가 존재하지 않는 경우 0값을 갖는 행렬일 수 있다.
여기서, 상기 순방향 타임 인터벌 데이터는 상기 샘플링 시점들의 차이를 기초로 생성될 수 있다.
여기서, 상기 역방향 입력 데이터를 생성하는 단계는 상기 역방향 샘플링 시점을 기초로 역방향 수신 윈도우를 획득하는 단계, 시간축을 기준으로 상기 역방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 역방향으로 확장하는 단계, 상기 시간축을 기준으로 상기 역방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 순방향으로 확장하는 단계 및 상기 확장한 역방향 수신 윈도우를 기초로, 상기 신호들의 종류를 나타내는 행렬인 역방향 입력 데이터를 생성하는 단계를 더 포함할 수 있다.
여기서, 상기 역방향 타임 인터벌 데이터는 상기 역방향 샘플링 시점들의 차이를 기초로 생성될 수 있다.
여기서, 상기 GRU-D 신경망은, 복수의 GRU-D 레이어들을 포함하는 GRU-D 인코더 및 상기 GRU-D 인코더와 대칭적인 구조를 가지는 상기 GRU-D 디코더를 포함할 수 있다.
여기서, 상기 비정상 데이터를 감지하는 단계는, 상기 GRU-D 인코더가 상기 역방향 입력 데이터, 상기 역방향 마스크 데이터 및 상기 순방향 타임 인터벌 데이터를 기초로 제2 히든 행렬 및 인코더 데이터를 출력하는 단계, 상기 GRU-D 디코더가 상기 제2 히든 행렬, 상기 인코더 데이터, 상기 역방향 마스크 데이터 및 상기 역방향 타임 인터벌 데이터를 기초로 추정 데이터를 출력하는 단계 및 상기 순방향 입력 데이터와 상기 추정 데이터를 비교하여, CAN 신호들 가운데 비정상 신호를 감지할 수 있다.
본 발명의 다른 실시예에 따른 통신 노드는
프로세서(processor) 및 상기 프로세서에 의해 실행되는 하나 이상의 명령들이 저장된 메모리(memory)를 포함할 수 있고, 상기 하나 이상의 명령들은, 복수의 CAN(Controller Area Network) 통신 노드들로부터 CAN 신호들을 수신하고, 상기 CAN 신호들을 순방향 샘플링 시점을 기초로 순방향 전처리하여 입력 데이터를 생성하고,
상기 순방향 입력 데이터에 대한 순방향 마스크 데이터와 상기 순방향 샘플링 시점에 따른 순방향 타임 인터벌 데이터를 생성하고, 상기 CAN 신호들을 역방향 샘플링 시점을 기초로 역방향 전처리하여 역방향 입력 데이터를 생성하고, 상기 역방향 입력 데이터에 대한 역방향 마스크 데이터와 상기 역방향 샘플링 시점에 따른 역방향 타임 인터벌 데이터를 생성하고 그리고, 상기 순방향 입력 데이터, 순방향 마스크 데이터, 순방향 타임 인터벌 데이터, 역방향 입력 데이터, 역방향 마스크 데이터 및 역방향 타임 인터벌 데이터를 GRU-D(Gated Recurrent Unit-Decay) 신경망에 입력하여 상기 CAN 신호들 가운데 비정상 신호를 감지하도록 실행될 수 있다.
여기서, 상기 순방향 입력 데이터를 생성하는 경우, 상기 하나 이상의 명령들은, 상기 순방향 샘플링 시점을 기초로 순방향 수신 윈도우를 획득하고, 시간축을 기준으로 상기 순방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 순방향으로 확장하고, 상기 시간축을 기준으로 상기 순방향 수신 윈도우를 신호가 존재하는 샘플링 시점까지 역방향으로 확장하고 그리고 상기 확장한 수신 윈도우를 기초로 상기 신호들의 종류를 나타내는 행렬인 순방향 입력 데이터를 생성하도록 더 실행될 수 있다.
여기서, 상기 순방향 마스크 데이터는 상기 샘플링 시점들에 데이터가 존재하는 경우, 1 값을 갖고, 데이터가 존재하지 않는 경우 0값을 갖는 행렬일 수 있다.
여기서, 상기 순방향 타임 인터벌 데이터는 상기 샘플링 시점들의 차이를 기초로 생성될 수 있다.
여기서, 상기 역방향 입력 데이터를 생성하는 경우, 상기 하나 이상의 명령들은, 상기 역방향 샘플링 시점을 기초로 역방향 수신 윈도우를 획득하고, 시간축을 기준으로 상기 역방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 역방향으로 확장하고, 상기 시간축을 기준으로 상기 역방향 수신 윈도우를 수신 신호가 존재하는 샘플링 시점까지 순방향으로 확장하고 그리고, 상기 확장한 역방향 수신 윈도우를 기초로, 상기 신호들의 종류를 나타내는 행렬인 역방향 입력 데이터를 생성하도록 더 실행될 수 있다.
여기서, 상기 GRU-D 신경망은, 복수의 GRU-D 레이어들을 포함하는 GRU-D 인코더 및 상기 GRU-D 인코더와 대칭적인 구조를 가지는 GRU-D 디코더를 포함할 수 있다.
여기서, 상기 비정상 데이터를 감지하는 경우, 상기 하나 이상의 명령들은, 상기 GRU-D 인코더가 상기 역방향 입력 데이터, 상기 역방향 마스크 데이터 및 상기 순방향 타임 인터벌 데이터를 기초로 제2 히든 행렬 및 인코더 데이터를 출력하고, 상기 GRU-D 디코더가 상기 제2 히든 행렬, 상기 인코더 데이터, 상기 역방향 마스크 데이터 및 상기 역방향 타임 인터벌 데이터를 기초로 추정 데이터를 출력하고 그리고, 상기 순방향 입력 데이터와 상기 추정 데이터를 비교하여, 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 pat00001
,
Figure pat00002
Figure pat00003
에 신호를 수신할 수 있다. 제어기는 제2 엔드 노드로부터
Figure pat00004
,
Figure pat00005
Figure pat00006
에 신호를 수신할 수 있다
제어기는 각각의 엔드 노드들로부터 신호를 수신한 샘플링 시점들(
Figure pat00007
,
Figure pat00008
,
Figure pat00009
,
Figure pat00010
,
Figure pat00011
Figure pat00012
)을 가로축으로, 각각의 엔드 노드들의 CAN ID들(CAN ID A, CAN ID B 및 CAN ID C)을 세로축으로 하는 순방향 그래프를 생성할 수 있다. 순방향 그래프에는 제어기가 엔드 노드들로부터 수신한 신호들이 수신 시점들의 순서대로 배열될 수 있다.
제어기는 생성된 순방향 그래프 가운데 일부인
Figure pat00013
부터
Figure pat00014
구간의 순방향 그래프를 순방향 수신 윈도우로 획득할 수 있다.
다시 도 4를 참조하면, 제어기는 시간축을 기준으로 순방향 수신 윈도우를 확장할 수 있다(S420). 제어기는 순방향 수신 윈도우의 가로축을 양쪽으로 확장하는 방식으로 순방향 수신 윈도우를 확장할 수 있다. 즉 제어기는 모든 엔드 노드들(예를 들어 도 1의 엔드 노드들(111 내지 113))로부터 신호들을 수신한 시점을 검출하기 위하여 순방향 수신 윈도우를 양쪽으로 확장할 수 있다.
도 6은 차량 네트워크에서, 순방향 수신 윈도우를 확장하는 방법의 제1 실시예를 설명하기 위한 개념도이다.
도 6의 엔드 노드들 및 제어기는 도 1의 엔드 노드들(111 내지 113) 및 제어기(120)과 동일 또는 유사하게 구성될 수 있다. 또한, 도 6의 순방향 수신 윈도우는 도 5의 순방향 수신 윈도우와 동일할 수 있다.
도 6을 참조하면, 제어기는 수신 윈도우의 시작 시점인
Figure pat00015
이전에 제2 엔드 노드 및 제3 엔드 노드로부터 신호를 수신한 샘플링 시점들을 획득할 수 있다. 제어기는 수신 윈도우의 종료 시점인
Figure pat00016
이후에 제2 엔드 노드 및 제3 엔드 노드로부터 신호를 수신한 샘플링 시점들을 획득할 수 있다.
제어기는 S410 단계에서 획득한 순방향 수신 윈도우의 가로축을 양측으로 확장할 수 있다. 즉, 제어기는 S410 단계에서 획득한 순방향 수신 윈도우를
Figure pat00017
부터 좌측(시간이 감소하는 방향)으로 확장할 수 있고,
Figure pat00018
부터 우측(시간이 증가하는 방향)으로 확장할 수 있다.
제어기는
Figure pat00019
이전에 나머지 엔드 노드들로부터 신호를 수신한 시점(예를 들어, 제2 엔드 노드로부터 신호를 수신한 시점인
Figure pat00020
)까지 순방향 수신 윈도우를 좌측으로 확장할 수 있다. 제어기는 순방향 수신 윈도우를
Figure pat00021
이후에 나머지 엔드 노드들로부터 신호를 수신한 시점(예를 들어, 제3 엔드 노드로부터 신호를 수신한 시점인
Figure pat00022
)까지 순방향 수신 윈도우를 우측으로 확장할 수 있다.
다시, 도 4를 참조하면, 제어기는 S420 단계에서 확장한 순방향 수신 윈도우(도 6 참조)를 기초로 순방향 입력 데이터를 생성할 수 있다(S430).
제어기는 S420 단계에서 확장한 순방향 수신 윈도우를 아래 수학식 1과 같이하나의 행렬로 나타냄으로써 순방향 입력 데이터를 생성할 수 있다.
[수학식 1]
Figure pat00023
수학식 1에서
Figure pat00024
,
Figure pat00025
,
Figure pat00026
,
Figure pat00027
,
Figure pat00028
Figure pat00029
는 제1 엔드 노드로부터 ,
Figure pat00030
Figure pat00031
에 수신한 신호들을 나타낼 수 있다
Figure pat00032
,
Figure pat00033
,
Figure pat00034
,
Figure pat00035
,
Figure pat00036
,
Figure pat00037
,
Figure pat00038
,
Figure pat00039
,
Figure pat00040
Figure pat00041
는 제2 엔드 노드로부터
Figure pat00042
,
Figure pat00043
Figure pat00044
Figure pat00045
에 수신한 신호들을 나타낼 수 있다.
Figure pat00046
,
Figure pat00047
,
Figure pat00048
Figure pat00049
은 제3 엔드 노드로부터
Figure pat00050
에 수신한 신호들일 수 있다.
제어기는 S430 단계에서 생성한 순방향 입력 데이터를 기초로 순방향 마스크 데이터 및 순방향 타임 인터벌을 생성할 수 있다(S440).
마스크 데이터는 특정한 샘플링 시점에서, 특정한 엔드 노드가 신호를 수신하였는지 여부를 나타내는 행렬일 수 있다. 제어기는 샘플링 시점들에서 신호를 수신한 경우 1 값을 갖고, 수신하지 않은 경우 0 값을 갖는 행렬인 순방향 마스크 데이터를 생성할 수 있다. 여기에서 샘플링 시점들이란 엔드 노드들(111 내지 113) 가운데 적어도 어느 하나로부터 신호를 수신한 시점일 수 있다. 예를 들어, 제어기는 수학식 1에 따라 생성된 순방향 입력 데이터를 기초로 아래 수학식 2와 같은 마스크 데이터를 생성할 수 있다.
[수학식 2]
Figure pat00051
제어기는 엔드 노드들로부터 신호를 수신한 샘플링 시점들의 차이를 나타내는 순방향 샘플링 행렬을 생성할 수 있다. 순방향 샘플링 행렬은 확장된 순방향 수신 윈도우에서 가장 빠른 신호 수신 시점과 나머지 신호 수신 시점들의 시간 차이를 나타내는 행렬일 수 있다. 예를 들어, 도 5의 확장된 순방향 수신 윈도우를 기초로 다음 수학식 3과 같은 순방향 샘플링 행렬을 생성할 수 있다.
[수학식 3]
Figure pat00052
수학식 3에서, 순방향 샘플링 행렬 각각의 성분들은 엔드 노드들로부터 신호를 수신한 시점들 가운데 가장 빠른 샘플링 시점인
Figure pat00053
와 나머지 신호 수신 시점들의 차이를 나타낼 수 있다.
제어기는 순방향 샘플링 행렬 및 순방향 마스크 데이터를 기초로 순방향 타임 인터벌 데이터를 생성할 수 있다. 제어기는 아래의 수학식 4를 기초로 행렬 형태의 순방향 타임 인터벌 데이터를 생성할 수 있다.
[수학식 4]
Figure pat00054
수학식 4에서,
Figure pat00055
는 순방향 타임 인터벌 데이터의 k행, t열의 성분일 수 있다.
Figure pat00056
는 순방향 샘플링 행렬의 t번째 성분일 수 있고,
Figure pat00057
는 순방향 타임 인터벌 데이터의 k행, t-1열의 성분일 수 있으며, min(t)는 확장된 순방향 수신 윈도우의 샘플링 시점 가운데 가장 빠른 시간일 수 있고,
Figure pat00058
는 순방향 마스크 데이터의 k 행, t 열의 성분일 수 있다.
예를 들어, 수학식 2에 의해 생성된 순방향 마스크 데이터 및 수학식 3에 의해 생성된 순방향 샘플링 행렬을 기초로 아래 수학식 5와 같이 순방향 타임 인터벌 데이터를 생성할 수 있다.
[수학식 5]
Figure 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 pat00060
,
Figure pat00061
Figure pat00062
에 신호를 수신할 수 있다. 제어기는 제2 엔드 노드로부터
Figure pat00063
,
Figure pat00064
Figure pat00065
에 신호를 수신할 수 있다
각각의 엔드 노드로부터 신호를 수신한 시점들(
Figure pat00066
,
Figure pat00067
,
Figure pat00068
,
Figure pat00069
,
Figure pat00070
Figure pat00071
)에 -1 값을 곱하여, 역방향 샘플링 시점들 가운데 신호를 수신한 시점들(
Figure pat00072
,
Figure pat00073
,
Figure pat00074
,
Figure pat00075
,
Figure pat00076
Figure pat00077
)을 획득할 수 있다. 제어기는 획득한 역방향 신호 수신 시점들을 가로축으로, 각각의 엔드 노드들의 CAN ID들(CAN ID A, CAN ID B 및 CAN ID C)을 세로축으로 하는 역방향 그래프를 생성할 수 있다.
역방향 그래프에는 제어기가 엔드 노드들로부터 신호들을 수신한 수신 시점들이 역순으로 배열될 수 있다. 제어기는 생성된 순방향 그래프 가운데 일부인
Figure pat00078
부터
Figure pat00079
구간의 역방향 그래프를 역방향 수신 윈도우로 획득할 수 있다.
다시 도 7을 참조하면, 제어기는 시간축을 기준으로 역방향 수신 윈도우를 확장할 수 있다(S720). 제어기는 역방향 수신 윈도우의 가로축을 양쪽으로 확장하는 방식으로 역방향 수신 윈도우를 확장할 수 있다. 즉 제어기는 모든 엔드 노드들(예를 들어 도 1의 엔드 노드들(111 내지 113))로부터 신호들을 수신하기 위하여, 역방향 수신 윈도우를 양쪽으로 확장할 수 있다.
도 9는 차량 네트워크에서, 역방향 수신 윈도우를 확장하는 방법의 제1 실시예를 설명하기 위한 개념도이다.
도 9의 엔드 노드들 및 제어기는 도 1의 엔드 노드들(111 내지 113) 및 제어기(120)과 동일 또는 유사하게 구성될 수 있다. 또한, 도 8의 역방향 수신 윈도우는 도 7의 역방향 수신 윈도우와 동일할 수 있다.
도 8을 참조하면, 제어기는 역방향 샘플링 시점들을 기준으로, 역방향 수신 윈도우의 시작 시점인
Figure pat00080
이전에 제2 엔드 노드 및 제3 엔드 노드로부터 신호를 수신한 역방향 샘플링 시점들을 획득할 수 있다. 제어기는 역방향 수신 윈도우의 종료 시점인
Figure pat00081
이후에 제2 엔드 노드 및 제3 엔드 노드로부터 신호를 수신한 역방향 샘플링 시점들을 획득할 수 있다.
제어기는 S710 단계에서 획득한 순방향 수신 윈도우의 가로축을 양측으로 확장할 수 있다. 즉, 제어기는 S710 단계에서 획득한 역방향 수신 윈도우를
Figure pat00082
부터 좌측(시간이 감소하는 방향)으로 확장할 수 있고,
Figure pat00083
부터 우측(시간이 증가하는 방향)으로 확장할 수 있다.
제어기는
Figure pat00084
이전에 나머지 엔드 노드들이 신호를 수신한 역방향 샘플링시점(예를 들어, 제3 엔드 노드로부터 신호를 수신한 역방향 샘플링 시점인
Figure pat00085
)까지 역방향 수신 윈도우를 좌측으로 확장할 수 있다. 제어기는
Figure pat00086
이후에 나머지 엔드 노드들이 신호를 수신한 샘플링 시점(예를 들어, 제2 엔드 노드로부터 신호를 수신한 역방향 샘플링 시점인
Figure pat00087
)까지 역방향 수신 윈도우를 우측으로 확장할 수 있다.
다시, 도 7을 참조하면, 제어기는 S720 단계에서 확장한 역방향 수신 윈도우를 기초로 역방향 입력 데이터를 생성할 수 있다(S730).
제어기는 S730 단계에서 확장한 역방향 수신 윈도우를 아래 수학식 7과 같이하나의 행렬로 나타냄으로써 역방향 입력 데이터를 생성할 수 있다.
[수학식 7]
Figure pat00088
Figure pat00089
,
Figure pat00090
,
Figure pat00091
,
Figure pat00092
,
Figure pat00093
Figure pat00094
는 제1 엔드 노드로부터 역방향 샘플링 시점 가운데
Figure pat00095
,
Figure pat00096
Figure pat00097
에 수신한 신호들을 나타낼 수 있다.
Figure pat00098
Figure pat00099
,
Figure pat00100
,
Figure pat00101
,
Figure pat00102
,
Figure pat00103
,
Figure pat00104
,
Figure pat00105
,
Figure pat00106
Figure pat00107
은 제2 엔드 노드로부터 역방향 샘플링 시점 가운데
Figure pat00108
,
Figure pat00109
,
Figure pat00110
Figure pat00111
에 수신한 신호들을 나타낼 수 있다.
Figure pat00112
,
Figure pat00113
,
Figure pat00114
Figure pat00115
는 제3 엔드 노드로부터 역방향 샘플링 가운데
Figure pat00116
Figure pat00117
에 수신한 신호들을 나타낼 수 있다.
제어기는 S730 단계에서 생성한 역방향 입력 데이터를 기초로 역방향 마스크 데이터 및 역방향 타임 인터벌을 생성할 수 있다(S740).
제어기는 역방향 샘플링 시점들에서 신호를 수신한 경우 1 값을 갖고, 수신하지 않은 경우 0 값을 갖는 행렬인 역방향 마스크 데이터를 생성할 수 있다. 여기에서 역방향 샘플링 시점들이란, 엔드 노드들(111 내지 113) 가운데 적어도 어느 하나로부터 신호를 수신한 시점일 수 있다. 예를 들어, 제어기는 수학식 7에 따라 생성된 역방향 입력 데이터를 기초로 아래 수학식 8과 같은 역방향 마스크 데이터를 생성할 수 있다.
[수학식 8]
Figure pat00118
제어기는 엔드 노드들의 역방향 샘플링 시점들의 차이를 나타내는 역방향 샘플링 행렬을 생성할 수 있다. 역방향 샘플링 행렬은 확장된 역방향 수신 윈도우에서 가장 빠른 역방향 샘플링 시점과 나머지 역방향 샘플링 시점들의 시간 차이를 나타내는 행렬일 수 있다. 예를 들어, 도 8의 확장된 역방향 수신 윈도우를 기초로 다음 수학식 9와 같은 역방향 샘플링 행렬을 생성할 수 있다.
[수학식 9]
Figure pat00119
수학식 9에서 역방향 행렬 각각의 성분들은 엔드 노드들의 역방향 샘플링 시점들 가운데 가장 빠른 시점인
Figure pat00120
과 나머지 샘플링 시점들의 차이를 나타낼 수 있다.
제어기는 역방향 샘플링 행렬 및 역방향 마스크 데이터를 기초로, 역방향 타임 인터벌 데이터를 생성할 수 있다. 제어기는 아래의 수학식 10을 기초로 행렬 형태의 역방향 타임 인터벌 데이터를 생성할 수 있다.
[수학식 10]
Figure pat00121
Figure pat00122
는 역방향 샘플링 행렬의 t 열 성분일 수 있고,
Figure pat00123
는 역방향 타임 인터벌 데이터의 k행, t-1열의 성분일 수 있으며,
Figure pat00124
는 확장된 역방향 수신 윈도우의 역방향 샘플링 시점 가운데 가장 빠른 시간일 수 있고,
Figure pat00125
는 역방향 마스크 데이터의 k 행 t 열의 성분일 수 있다.
예를 들어, 수학식 8에서 생성한 역방향 마스크 데이터 및 수학식 9에서 생성된 역방향 샘플링 행렬을 기초로하여 아래 수학식 11와 같이 역방향 타임 인터벌 데이터를 생성할 수 있다.
[수학식 11]
Figure 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 pat00127
, 마스크 데이터 가운데 어느 한열인
Figure pat00128
및 순방향 인터벌 데이터 가운데 어느 한열인
Figure pat00129
를 입력 신호로 수신할 수 있다.
Figure pat00130
,
Figure pat00131
Figure pat00132
는 각각의 행렬의 t번째 열의 성분일 수 있다.
제0 GRU-D 레이어(1101)는
Figure pat00133
,
Figure pat00134
Figure pat00135
를 기초로 0 번째 히든 행렬인
Figure pat00136
를 생성할 수 있다. 제0 GRU-D 레이어(1101)는
Figure pat00137
를 제1 GRU-D 레이어(1102)에 전송할 수 있다. 제1 GRU-D 레이어(1102)는 제0 GRU-D 레이어(1101)로부터
Figure pat00138
를 수신할 수 있다. 제1 GRU-D 레이어(1102)는
Figure pat00139
를 기초로 제1 레이어 히든 행렬인
Figure pat00140
를 생성할 수 있다.
제N-1 GRU-D 레이어(1103)는 제N-2 GRU-D 레이어로부터 제N-2 레이어 히든 행렬인
Figure pat00141
수신할 수 있다. 제N-1 레이어(1103)는
Figure pat00142
를 기초로 제1 히든 행렬인
Figure pat00143
을 생성할 수 있다.
또한, 제N-1 레이어(1103)는 생성한 제1 히든 행렬인
Figure pat00144
를 FC 레이어(1104)에 전송할 수 있다. FC 레이어(1104)는 제N-1 레이어(1103)로부터 제1 히든 행렬
Figure pat00145
를 수신할 수 있다. FC 레이어(1104)는
Figure pat00146
를 기초로 인코더 데이터
Figure pat00147
를 생성할 수 있다.
한편, 도 10의 복수의 GRU-D 디코더(1001)는 다음과 같이 구성될 수 있다.
도 12를 참조하면, GRU-D 디코더는 복수의 GRU-D 레이어들(1201 내지 1203) 및 FC 레이어(1204)를 포함할 수 있다.
복수의 GRU-D 레이어들 가운데 최하위 레이어인 제0 GRU-D 레이어(1201)는 역방향 입력 데이터 가운데 어느 한열인
Figure pat00148
, 마스크 데이터 가운데 어느 한열인
Figure pat00149
및 순방향 인터벌 데이터 가운데 어느 한열인
Figure pat00150
를 입력 신호로 수신할 수 있다.
제0 GRU-D 레이어(1201)는 수신한
Figure pat00151
,
Figure pat00152
Figure pat00153
를 기초로 제0 레이어 역히든 행렬
Figure pat00154
를 생성할 수 있다. 제0 GRU-D 레이어(1201)는 생성한
Figure pat00155
를 제1 GRU-D 레이어(1202)에 전송할 수 있다. 제1 GRU-D 레이어(1202)는 제0 GRU-D 레이어(1201)로부터 제0 레이어 역히든 행렬
Figure pat00156
을 수신할 수 있다. 제1 GRU-D 레이어(1202)는
Figure pat00157
를 기초로 제1 레이어 역히든 행렬인
Figure pat00158
를 생성할 수 있다.
제N-1 GRU-D 레이어(1203)는 n-2 번째 레이어로부터 n-2 번째 역히든 레이어행렬인
Figure pat00159
를 수신할 수 있다. 제N-1 레이어(1203)는
Figure pat00160
를 기초로 제1 역히든 레이어 행렬인
Figure pat00161
을 생성할 수 있다.
또한, 제N-1 레이어(1203)는 생성한 제1 역히든 행렬
Figure pat00162
을 FC 레이어(1204)에 전송할 수 있다. FC 레이어(1204)는 제N-1 레이어(1203)로부터 제1 역히든 행렬
Figure pat00163
를 수신할 수 있다. FC 레이어(1204)는
Figure pat00164
를 기초로 추정 데이터
Figure 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 pat00166
수학식 12에서,
Figure pat00167
는 리셋 파라미터일 수 있고,
Figure pat00168
는 시그모이드(sigmoid)함수를 의미할 수 있고,
Figure pat00169
Figure pat00170
에 대한 가중치를 의미할 수 있으며,
Figure pat00171
은 에
Figure pat00172
대한 가중치를 의미할 수 있고,
Figure pat00173
Figure pat00174
에 대한 가중치를 의미할 수 있으며,
Figure pat00175
은 바이어스(bias) 벡터를 의미할 수 있다.
Figure pat00176
는 아래 수학식 13에 기초하여 연산될 수 있다.
[수학식 13]
Figure pat00177
수학식 13에서,
Figure pat00178
는 k번째 입력 데이터의 과거 평균 값일 수 있고,
Figure pat00179
Figure pat00180
의 k 번째 값일 수 있다.
Figure pat00181
는 아래 수학식 14에 기초하여 연산될 수 있다.
[수학식 14]
Figure pat00182
수학식 14에서,
Figure pat00183
Figure pat00184
의 가중치 일 수 있고
Figure pat00185
은 바이어스 벡터를 의미할 수 있다.
한편, 업데이트 게이트(y)는 아래 수학식 15를 이용하여, 업데이트 파라미터 y를 획득할 수 있다.
[수학식 15]
Figure pat00186
수학식 15에서,
Figure pat00187
Figure pat00188
의 가중치 일 수 있고,
Figure pat00189
Figure pat00190
의 가중치일 수 있으며,
Figure pat00191
Figure pat00192
의 가중치일 수 있고,
Figure pat00193
는 바이어스 벡터를 의미할 수 있다.
[수학식 16]
Figure pat00194
한편, GRU-D 레이어는 새로운 히든 벡터
Figure pat00195
를 다음 수학식 17에 따라 연산할 수 있다.
[수학식 17]
Figure pat00196
다시 도 10을 참조하면, GRU-D 인코더(1001)는 순방향 입력 데이터, 순방향 마스크 데이터 및 순방향 타임 인터벌 데이터를 수신할 수 있다.
GRU-D 인코더(1001)는 순방향 입력 데이터의 제1 열 성분(예를 들어, 도 4의 수학식 1의
Figure pat00197
열 성분), 순방향 마스크 데이터의 제1 열 성분(예를 들어, 도 4의 수학식 2의
Figure pat00198
열 성분), 및 순방향 타임 인터벌의 제1 열 성분(예를 들어, 도 4의 수학식 5의
Figure pat00199
열 성분)을 기초로 인코더 데이터
Figure pat00200
및 제1 히든 행렬
Figure pat00201
을 생성할 수 있다. 여기서
Figure pat00202
은 GRU-D 인코더(1001)의 FC 레이어(예를 들어, 도 11의 FC 레이어(1104))가 생성할 수 있고, 제1 히든 행렬
Figure pat00203
은 GRU-D 인코더(1001)의 마지막 GRU-D 레이어(예를 들어, 도 11의 마지막 레이어(1103))가 생성할 수 있다.
GRU-D 디코더(1002)는 역방향 입력 데이터, 역방향 마스크 데이터 및 역방향 인터벌 데이터를 수신할 수 있다. 또한 GRU-D 디코더(1002)는 GRU-D 인코더(1001)로부터 제N 히든 행렬
Figure pat00204
을 수신할 수 있다.
GRU-D 디코더(1002)는 역방향 입력 데이터의 제1 열 성분(예를 들어, 도 7의 수학식 7의
Figure pat00205
열 성분), 역방향 마스크 데이터의 제1 열 성분(예를 들어, 도 7의 수학식 8의
Figure pat00206
열 성분), 역방향 타임 인터벌의 제1 열 성분(예를 들어, 도 7의 수학식 11의
Figure pat00207
열 성분)을 기초로 GRU-D 인코더(1001)의 순방향 입력 데이터의 추정 데이터를 생성할 수 있다.
GRU-D 인코더(1001)의 입력 데이터가
Figure pat00208
인 경우, GRU-D 디코더(1002)는 추정 데이터로
Figure pat00209
를 생성할 수 있다. 또한, GRU-D 디코더(1002)는 역방향 입력 데이터, 역방향 마스크 데이터, 역방향 타임 인터벌 및 제N 히든 행렬을 기초로 제1 역히든 행렬인
Figure pat00210
을 생성할 수 있다.
GRU-D 디코더(1002)는 역방향 입력 데이터의 제2 열 성분(예를 들어, 도 7의 수학식 7의
Figure pat00211
열 성분), 역방향 마스크 데이터의 제2 열 성분(예를 들어, 도 7의 수학식 8의
Figure pat00212
열 성분), 역방향 타임 인터벌의 제2 열 성분(예를 들어, 도 7의 수학식 11의
Figure pat00213
열 성분) 및 제1 역히든 행렬인
Figure pat00214
을 기초로 추정 데이터를 생성할 수 있다. GRU-D 인코더(1001)의 순방향 입력 데이터가
Figure pat00215
인 경우, 디코더는 추정 데이터로
Figure pat00216
를 생성할 수 있다.
GRU-D 디코더(1002)는 역방향 입력 데이터, 역방향 마스크 데이터, 역방향 타임 인터벌 및 제1 역히든 행렬을 기초로 제2 역히든 행렬인
Figure pat00217
을 생성할 수 있다. 또한, GRU-D 디코더(1002)는 역방향 입력 데이터의 마지막 열 성분(예를 들어, 도 4의 수학식 7의
Figure pat00218
열 성분), 역방향 마스크 데이터의 마지막 열 성분(예를 들어, 도 4의 수학식 8의
Figure pat00219
열 성분), 역방향 타임 인터벌의 마지막 열 성분(예를 들어, 도 4의 수학식 11의
Figure pat00220
열 성분) 및 제N-1 역히든 행렬인
Figure pat00221
를 기초로 추정 데이터를 생성할 수 있다. GRU-D 인코더(1001)의 입력 데이터가,
Figure pat00222
인 경우, GRU-D 디코더(1002)는 추정 데이터로
Figure pat00223
를 생성할 수 있다.
GRU-D 신경망은 순방향 입력 데이터와 GRU-D 디코더(1002)가 출력하는 추정 데이터들을 비교하여 수신 신호들 가운데 비정상 신호를 감지할 수 있다.
한편, 제어기는 아래 수학식 18을 기초로 입력 데이터와 추정 데이터의 차이를 나타내는 MSE(Mean Squared Error)를 연산할 수 있다.
[수학식 18]
Figure pat00224
여기에서,
Figure pat00225
는 순방향 마스크 데이터일 수 있고,
Figure pat00226
는 순방향 입력 데이터일 수 있으며,
Figure pat00227
는 디코더(1002)가 연산하는 추정 데이터일 수 있다. 또한
Figure pat00228
는 인코더 및 디코더의 연산 반복 횟수를 나타낼 수 있다. 한편,
Figure pat00229
Figure pat00230
는 동일한 열 성분일 수 있다.
제어기는
Figure pat00231
Figure pat00232
의 크기를 기초로, MSE의 크기를 연산할 수 있다. MSE의 크기는
Figure pat00233
Figure 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 신호들을 역방향 샘플링 시점을 기초로 역방향 전처리하여 역방향 입력 데이터를 생성하는 단계;
    상기 역방향 입력 데이터에 대한 역방향 마스크 데이터와 상기 역방향 샘플링 시점에 따른 역방향 타임 인터벌 데이터를 생성하는 단계; 및
    상기 순방향 입력 데이터, 순방향 마스크 데이터, 순방향 타임 인터벌 데이터, 역방향 입력 데이터, 역방향 마스크 데이터 및 역방향 타임 인터벌 데이터를 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 인코더가 상기 역방향 입력 데이터, 상기 역방향 마스크 데이터 및 상기 순방향 타임 인터벌 데이터를 기초로 제2 히든 행렬 및 인코더 데이터를 출력하는 단계;
    상기 GRU-D 디코더가 상기 제2 히든 행렬, 상기 인코더 데이터, 상기 역방향 마스크 데이터 및 상기 역방향 타임 인터벌 데이터를 기초로 추정 데이터를 출력하는 단계; 및
    상기 순방향 입력 데이터와 상기 추정 데이터를 비교하여, CAN 신호들 가운데 비정상 신호를 감지하는 통신 노드의 동작 방법.
  9. 통신 네트워크의 통신 노드로서,
    프로세서(processor) 및
    상기 프로세서에 의해 실행되는 하나 이상의 명령들이 저장된 메모리(memory)를 포함하며,
    상기 하나 이상의 명령들은,
    복수의 CAN(Controller Area Network) 통신 노드들로부터 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 인코더가 상기 역방향 입력 데이터, 상기 역방향 마스크 데이터 및 상기 순방향 타임 인터벌 데이터를 기초로 제2 히든 행렬 및 인코더 데이터를 출력하고;
    상기 GRU-D 디코더가 상기 제2 히든 행렬, 상기 인코더 데이터, 상기 역방향 마스크 데이터 및 상기 역방향 타임 인터벌 데이터를 기초로 추정 데이터를 출력하고 그리고,
    상기 순방향 입력 데이터와 상기 추정 데이터를 비교하여, 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
CN202010812449.3A CN112394706A (zh) 2019-08-14 2020-08-13 在基于控制器域网的通信网络中检测信号的方法及其装置
JP2020136708A JP6999119B6 (ja) 2019-08-14 2020-08-13 Can基盤の通信ネットワークにおける信号検出方法および装置

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 true KR20210020298A (ko) 2021-02-24
KR102232871B1 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
CN113516228A (zh) * 2021-07-08 2021-10-19 哈尔滨理工大学 一种基于深度神经网络的网络异常检测方法

Families Citing this family (3)

* 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
EP4106269A1 (en) * 2021-06-16 2022-12-21 Autocrypt Co., Ltd. Method and apparatus for detecting attack in can bus
KR20230086045A (ko) * 2021-12-08 2023-06-15 고려대학교 산학협력단 Can 메시지 분석과 신경망 모델을 이용한 경량화된 실시간 이상 탐지 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190000514A (ko) * 2017-06-23 2019-01-03 현대자동차주식회사 차량 네트워크에서 진단 오류 방지를 위한 방법 및 장치
KR20190042257A (ko) * 2017-10-16 2019-04-24 삼성전자주식회사 문장 생성 모델의 업데이트 방법 및 문장 생성 장치
JP2019125967A (ja) * 2018-01-18 2019-07-25 マツダ株式会社 送受信装置及び車両

Family Cites Families (12)

* 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
US20180129937A1 (en) * 2016-11-04 2018-05-10 Salesforce.Com, Inc. Quasi-recurrent neural network
CN106656637B (zh) * 2017-02-24 2019-11-26 国网河南省电力公司电力科学研究院 一种电网异常检测方法及装置
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 펜타시큐리티시스템 주식회사 비정상 세션 감지 방법
CN108958217A (zh) * 2018-06-20 2018-12-07 长春工业大学 一种基于深度学习的can总线报文异常检测方法
CN109084980B (zh) * 2018-10-10 2019-11-05 北京交通大学 基于均等分割的轴承故障预测方法及装置
US20200216027A1 (en) * 2019-01-04 2020-07-09 Byton North America Corporation Detecting vehicle intrusion using command pattern models
US11400944B2 (en) * 2019-01-04 2022-08-02 Byton North America Corporation Detecting and diagnosing anomalous driving behavior using driving behavior models

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190000514A (ko) * 2017-06-23 2019-01-03 현대자동차주식회사 차량 네트워크에서 진단 오류 방지를 위한 방법 및 장치
KR20190042257A (ko) * 2017-10-16 2019-04-24 삼성전자주식회사 문장 생성 모델의 업데이트 방법 및 문장 생성 장치
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
CN113516228A (zh) * 2021-07-08 2021-10-19 哈尔滨理工大学 一种基于深度神经网络的网络异常检测方法

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102232871B1 (ko) Can 기반의 통신 네트워크에서 신호 검출 방법 및 장치
JP6608981B2 (ja) 異常セッション感知方法
US11565721B2 (en) Testing a neural network
JP6853148B2 (ja) 検知装置、検知方法及び検知プログラム
US20170206464A1 (en) Time series data adaptation and sensor fusion systems, methods, and apparatus
US10630699B2 (en) Automotive cybersecurity
WO2021189844A1 (zh) 多元kpi时间序列的检测方法、装置、设备及存储介质
EP3314541A1 (en) Deriving movement behaviour from sensor data
KR101886910B1 (ko) 멀티 레벨 차량 무결성 및 품질 제어 메커니즘
US10345433B2 (en) Data acquiring method and apparatus applied to driverless vehicle
CN112446468A (zh) 用于创建脉冲神经网络的方法、设备和计算机程序
JP2023052390A (ja) 判定装置、判定プログラム、判定方法及びニューラルネットワークモデルの生成方法
KR20220036200A (ko) 차량의 속도 예측 장치 및 그 방법
KR102196027B1 (ko) Lstm 기반 조향 행동 모니터링 장치 및 그 방법
JP2020181256A (ja) 複数のセンサの時系列の計測値群における欠損値を補完するプログラム、装置及び方法
CN110719487A (zh) 视频预测方法和装置、电子设备及车辆
KR102417967B1 (ko) 다중 출력 아키텍처를 통한 점진적 초해상도 영상 변환 장치 및 방법
US20180366139A1 (en) Employing vehicular sensor information for retrieval of data
JP7006724B2 (ja) 分類装置、分類方法、及び、プログラム
WO2020180479A1 (en) Network -composition. module for a bayesian neuromorphic compiler
DE102020100209A1 (de) Neuronale Netzwerkvorrichtung, neuronales Netzwerksystem und Verfahren zur Verarbeitung eines neuronalen Netzwerkmodells durch Verwenden eines neuronalen Netzwerksystems
KR102648646B1 (ko) 인공지능 기반의 이상 예측을 위한 장치 및 이를 위한 방법
KR102649659B1 (ko) 이상 예측을 위한 인공지능 모델을 학습시키기 위한 장치 및 이를 위한 방법
KR102580433B1 (ko) 이상 예측을 위한 분석 대상 데이터의 특징을 검출하기 위한 장치 및 이를 위한 방법
KR102662335B1 (ko) 비교 신경망 학습을 이용한 소프트웨어의 오동작 검출시스템 및 소프트웨어의 오동작 검출방법

Legal Events

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