본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시 예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
이더넷 통신 기반 네트워크 망을 구성하는 장치들이 시간의 흐름에 따라 동적으로 가변 되는 경우, 이더넷 스위치의 기본 기능인 맥 러닝(MAC learning)을 통해 자체적으로 스위치 내부의 어드레스 테이블(address table)을 업데이트 할 수 있다. 차량 내부 네트워크처럼 한번 장치의 위치나 주소 등을 사전에 고정적(static)으로 정의할 수 있는 제한적인 네트워크 환경의 경우, 스위치에 어드레스 테이블(address table)을 미리 정의하여 불필요한 MAC 러닝(learning) 과정을 없앨 수 있다. 이를 통해서, 네트워크 통신 처리의 효율성 및 네트워크 관리의 효율성을 높일 수 있다. 이러한, 차량 내부 네트워크 특성과 스위치 기능을 활용하여, 이더넷 네트워크가 적용된 차량과 외부 장치 간의 통신 시, 미등록 장치의 고장 및 통신 오류를 진단할 수 있는 이더넷 스위치 정보에 기초한 미등록 장치의 통신 고장 진단 시스템 및 방법을 제안한다.
도 1은 차량 네트워크의 토폴로지(network topology)의 일 실시 예를 도시한 블록도이다.
도 1을 참조하면, 차량 네트워크를 구성하는 통신 노드(communication node)는 게이트웨이(gateway), 스위치(switch)(또는, 브릿지(bridge)) 또는 엔드 노드(end node) 등을 의미할 수 있다. 게이트웨이(100)는 적어도 하나의 스위치(110, 110-1, 110-2, 120, 130)와 연결될 수 있으며, 서로 다른 네트워크를 연결할 수 있다. 예를 들어, 게이트웨이(100)는 CAN(controller area network)(또는, 플렉스레이(FlexRay), MOST(media oriented system transport), LIN(local interconnect network) 등) 프로토콜을 지원하는 통신 노드와 이더넷(ethernet) 프로토콜을 지원하는 스위치 간을 연결할 수 있다. 스위치들(110, 110-1, 110-2, 120, 130) 각각은 적어도 하나의 엔드 노드(111, 112, 113, 121, 122, 123, 131, 132, 133)와 연결될 수 있다. 스위치들(110, 110-1, 110-2, 120, 130) 각각은 엔드 노드(111, 112, 113, 121, 122, 123, 131, 132, 133)를 상호 연결할 수 있고, 자신과 연결된 엔드 노드(111, 112, 113, 121, 122, 123, 131, 132, 133)를 제어할 수 있다.
엔드 노드(111, 112, 113, 121, 122, 123, 131, 132, 133)는 차량에 포함된 각종 장치를 제어하는 ECU(electronic control unit)를 의미할 수 있다. 예를 들어, 엔드 노드(111, 112, 113, 121, 122, 123, 131, 132, 133)는 인포테인먼트(infortainment) 장치(예를 들어, 디스플레이(display) 장치, 내비게이션(navigation) 장치, 어라운드 뷰 모니터링(around view monitoring) 장치) 등을 구성하는 ECU를 의미할 수 있다.
한편, 차량 네트워크를 구성하는 통신 노드들(즉, 게이트웨이, 스위치, 엔드 노드 등)은 스타(star) 토폴로지, 버스(bus) 토폴로지, 링(ring) 토폴로지, 트리(tree) 토폴로지, 메쉬(mesh) 토폴로지 등으로 연결될 수 있다. 또한, 차량 네트워크를 구성하는 통신 노드들 각각은 CAN 프로토콜, 플렉스레이 프로토콜, MOST 프로토콜, LIN 프로토콜, 이더넷 프로토콜 등을 지원할 수 있다. 본 발명에 따른 실시 예들은 앞서 설명된 네트워크 토폴로지에 적용될 수 있으며, 본 발명에 따른 실시 예들이 적용되는 네트워크 토폴로지는 이에 한정되지 않고 다양하게 구성될 수 있다.
도 2는 차량 네트워크를 구성하는 통신 노드의 일 실시 예를 도시한 블록도이다.
도 2를 참조하면, 네트워크를 구성하는 통신 노드(200)는 PHY 계층 유닛(physical layer unit)(210) 및 컨트롤러(controller) 유닛(220)을 포함할 수 있다. 또한, 통신 노드(200)는 파워(power)를 공급하는 레귤레이터(regulator)(미도시)를 더 포함할 수 있다. 이때, 컨트롤러 유닛(220)은 MAC(medium access control) 계층을 포함하여 구현될 수 있다. PHY 계층 유닛(210)은 다른 통신 노드로부터 신호를 수신할 수 있거나, 다른 통신 노드로 신호를 전송할 수 있다. 컨트롤러 유닛(220)은 PHY 계층 유닛(210)을 제어할 수 있고, 다양한 기능들(예를 들어, 인포테인먼트 기능 등)을 수행할 수 있다. PHY 계층 유닛(210)과 컨트롤러 유닛(220)은 하나의 SoC(System on Chip)로 구현될 수도 있고, 별도의 칩으로 구성될 수도 있다.
PHY 계층 유닛(210)과 컨트롤러 유닛(220)은 매체 독립 인터페이스(media independent interface, MII)(230)를 통해 연결될 수 있다. MII(230)는 IEEE 802.3에 규정된 인터페이스를 의미할 수 있으며, PHY 계층 유닛(210)과 컨트롤러 유닛(220) 간의 데이터 인터페이스 및 관리 인터페이스로 구성될 수 있다. MII(230) 대신에 RMII(reduced MII), GMII(gigabit MII), RGMII(reduced GMII), SGMII(serial GMII), XGMII(10 GMII) 중 하나의 인터페이스가 사용될 수 있다. 데이터 인터페이스는 전송 채널(channel) 및 수신 채널을 포함할 수 있으며, 채널들 각각은 독립적인 클럭(clock), 데이터 및 제어 신호를 가질 수 있다. 관리 인터페이스는 2-신호 인터페이스로 구성될 수 있으며, 하나는 클럭을 위한 신호이고 다른 하나는 데이터를 위한 신호일 수 있다.
PHY 계층 유닛(210)은 PHY 계층 인터페이스 유닛(211), PHY 계층 프로세서(processor)(212) 및 PHY 계층 메모리(memory)(213) 등을 포함할 수 있다. PHY 계층 유닛(210)의 구성은 이에 한정되지 않으며, PHY 계층 유닛(210)은 다양하게 구성될 수 있다. PHY 계층 인터페이스 유닛(211)은 컨트롤러 유닛(220)으로부터 수신된 신호를 PHY 계층 프로세서(212)로 전송할 수 있고, PHY 계층 프로세서(212)로부터 수신된 신호를 컨트롤러 유닛(220)에 전송할 수 있다. PHY 계층 프로세서(212)는 PHY 계층 인터페이스 유닛(211) 및 PHY 계층 메모리(213) 각각의 동작을 제어할 수 있다. PHY 계층 프로세서(212)는 전송할 신호의 변조 또는 수신된 신호의 복조를 수행할 수 있다. PHY 계층 프로세서(212)는 신호를 입력 또는 출력하도록 PHY 계층 메모리(213)를 제어할 수 있다. PHY 계층 메모리(213)는 수신된 신호를 저장할 수 있고, PHY 계층 프로세서(212)의 요청에 따라 저장된 신호를 출력할 수 있다.
컨트롤러 유닛(220)은 MII(230)를 통해 PHY 계층 유닛(210)에 대한 모니터링 및 제어를 수행할 수 있다. 컨트롤러 유닛(220)은 컨트롤러 인터페이스 유닛(221), 컨트롤러 프로세서(222), 주 메모리(223) 및 보조 메모리(224) 등을 포함할 수 있다. 컨트롤러 유닛(220)의 구성은 이에 한정되지 않으며, 컨트롤러 유닛(220)은 다양하게 구성될 수 있다. 컨트롤러 인터페이스 유닛(221)은 PHY 계층 유닛(210)(즉, PHY 계층 인터페이스 유닛(211)) 또는 상위 계층(미도시)으로부터 신호를 수신할 수 있고, 수신된 신호를 컨트롤러 프로세서(222)에 전송할 수 있고, 컨트롤러 프로세서(222)로부터 수신된 신호를 PHY 계층 유닛(210) 또는 상위 계층에 전송할 수 있다. 컨트롤러 프로세서(222)는 컨트롤러 인터페이스 유닛(221), 주 메모리(223) 및 보조 메모리(224)를 제어하기 위한 독립된 메모리 컨트롤 로직(control logic) 또는 통합 메모리 컨트롤 로직을 더 포함할 수 있다. 메모리 컨트롤 로직은 주 메모리(223) 및 보조 메모리(224)에 포함되어 구현될 수도 있으며, 또는 컨트롤러 프로세서(222)에 포함되어 구현될 수도 있다.
주 메모리(223) 및 보조 메모리(224) 각각은 컨트롤러 프로세서(222)에 의해 처리된 신호를 저장할 수 있고, 컨트롤러 프로세서(222)의 요청에 따라 저장된 신호를 출력할 수 있다. 주 메모리(223)는 컨트롤러 프로세서(222)의 동작을 위해 필요한 데이터를 일시 저장하는 휘발성 메모리(예를 들어, RAM(random access memory) 등)를 의미할 수 있다. 보조 메모리(224)는 운영체제 코드(operating system code)(예를 들어, 커널(kernel) 및 디바이스 드라이버(device driver))와 컨트롤러 프로세서(220)의 기능을 수행하기 위한 응용 프로그램(application program) 코드 등이 저장되는 비휘발성 메모리를 의미할 수 있다. 비휘발성 메모리로 빠른 처리 속도를 가지는 플래쉬 메모리(flash memory)가 사용될 수 있고, 또는 대용량의 데이터 저장을 위한 하드 디스크 드라이브(hard disc drive, HDD), CD-ROM(compact disc-read only memory) 등이 사용될 수 있다. 컨트롤러 프로세서(222)는 통상적으로 적어도 하나의 프로세싱 코어(core)를 포함하는 로직 회로로 구성될 수 있다. 컨트롤러 프로세서(222)로 ARM(Advanced RISC Machines Ltd.) 계열의 코어, 아톰(atom) 계열의 코어 등이 사용될 수 있다.
아래에서는, 차량 네트워크에 속하는 통신 노드와 이에 대응하는 상대(counterpart) 통신 노드에서 수행되는 방법이 설명될 것이다. 이하에서, 제1 통신 노드에서 수행되는 방법(예를 들어, 신호의 전송 또는 수신)이 설명되는 경우에도 이에 대응하는 제2 통신 노드는 제1 통신 노드에서 수행되는 방법과 상응하는 방법(예를 들어, 신호의 수신 또는 전송)을 수행할 수 있다. 즉, 제1 통신 노드의 동작이 설명된 경우에 이에 대응하는 제2 통신 노드는 제1 통신 노드의 동작과 상응하는 동작을 수행할 수 있다. 반대로, 제2 통신 노드의 동작이 설명된 경우에 이에 대응하는 제1 통신 노드는 스위치의 동작과 상응하는 동작을 수행할 수 있다
도 3은 본 발명의 실시 예에 따른 이더넷 스위치 정보에 기초한 통신 장치의 고장 진단 및 미등록 장치의 검출 시스템을 나타내는 도면이고, 도 4는 이더넷 스위치 구성을 도시한 개념도이다.
도 3 및 도 4를 참조하면, 본 발명의 실시 예에 따른 이더넷 스위치 정보에 기초한 미등록 장치 검증 시스템(300)은 진단부(310), 관리노드(320) 및 적어도 하나의 통신노드(330)를 포함할 수 있다. 여기서, 관리노드(320) 및 통신노드(330)는 차량 내부에 위치하고, 진단부(310)는 차량 외부에 위치할 수 있다. 도 4에서 통신노드(330)의 PHY 계층 유닛과 통신포트 사이에 스위치가 배치될 수 있으며, 상기 스위치는 물리적 구성 또는 논리적 구성일 수 있다.
진단부(310)는 차량의 이더넷 네트워크에 연결되어 차량의 통신노드(330, 예로서 차량의 제어 장치) 의 고장 유무와 고장 종류를 진단할 수 있다. 이러한, 진단부(310)는 자기진단기능으로 개별 차량의 고장 기록을 로딩하여 화면에 표시할 수 있으며, 차량의 엔드노드, 스위치 및 게이트웨이의 팜웨어를 업데이트 할 수 있다. 또한, 진단부(310)는 차량의 이더넷 네트워크에 연결되어 기 등록된 외부 장치의 소스 어드레스 정보를 차량 내부 장치들(엔드노드, 스위치, 게이트웨이 등)의 메모리에 업데이트 할 수 있다. 또한, 진단부(310)는 차량의 이더넷 네트워크에 연결되어 미등록(또는 미 인증)된 외부 장치의 소스 어드레스(예로서, 소스 맥 어드레스) 정보를 차량 내부 장치들의 메모리에 업데이트 할 수 있다.
통신노드(330)는 ECU(Electronic Control Unit), 메모리(미도시) 및 복수의 통신포트를 포함할 수 있다. 이러한, 통신노드(330)로서 스위치, 엔드노드가 적용될 수 있다. 엔드노드의 예로서, 차량의 각종 제어기가 적용될 수 있다.
차량 운행 중에는 내부에 배치된 제어기들 간의 통신 연결관계가 변화하지 않음으로, 통신노드(330)는 통신포트 각각의 어드레스 정보에 기초하여 메시지가 어느 제어기로부터 수신된 것인지 알 수 있다.
예로서, 통신노드(330)의 메모리에는 하기의 표 1에 기재된 각 통신포트 별 어드레스 테이블(address table)이 저장(Learning)될 수 있다. 여기서, 어드레스 테이블에는 각 통신포트 별 소스 맥 어드레스가 저장될 수 있다.
도 5는 이더넷 데이터 프레임 포맷을 도시한 개념도이다.
도 5를 참조하면, 차량의 통신노드(예로서, 게이트웨이, 스위치 또는 엔드노드)들은 도 5에 도시된 프레임 포맷을 이용하여 이더넷 데이터를 송수신할 수 있다. 이더넷 데이터의 프레임 포맷을 살펴보면, 이더넷 데이터의 프레임은 프리앰블(preamble, 미도시), MAC 헤더(Media Access Control header), 데이터 페이로드(data payload), 프레임 체크 시퀀스(frame check sequence)를 포함한다.
프리앰블은 입력 타이밍에 수신 시스템이 동기화할 수 있도록 송신측의 PHY 계층에서 추가되어 전송될 수 있다. 도면에 도시되지 않았지만, 프리앰블 이후에 정상적인 프레임의 시작을 표시하는 SFD(start of frame delimiter)가 배치될 수 있다. MAC 헤더는 데이터를 수신하는 목적지의 물리(MAC) 주소를 지시하는 목적지 주소(Destination MAC Address) 필드, 데이터 발신자의 물리(MACK)주소를 지시하는 소스 어드레스(Source MAC Address) 필드 및 데이터의 길이, 종류를 정의하는 이더넷 타입(Ether Type) 필드를 포함한다. 데이터 페이로드는 상위 계층의 프로토콜로부터 캡슐화된 데이터를 포함한다. 프레임 체크 시퀀스는 수신된 프레임의 에러를 판별하기 위한 것으로, 송신측에서 CRC를 추가하여 송신하고, 수신측은 CRC를 체크하여 수신된 프레임을 에러 유무를 확인할 수 있다.
통신노드(330, 스위치 또는 엔드노드)는 이더넷 데이터 프레임 포맷을 통해 차량의 다른 통신노드(스위치 또는 엔드노드) 또는 게이트웨이와 데이터를 송수신할 수 있다. 즉, 통신노드(330)는 차량에 배치된 내부 제어기 또는 외부 제어기와 데이터를 송수신할 수 있다.
차량 내부에 위치하는 관리노드(320)와 통신노드(330) 간에 송수신되는 메시지에는 인증정보가 포함될 수 있다. 여기서, 인증정보는 메시지의 송수신 성공/실패 여부 및 차량 내부의 정상적인 통신노드(330)와의 통신 접속인지를 검증하기 위해 메시지에 포함될 수 있다. 또한, 인증정보는 차량 외부의 장치로부터 통신노드(330)로 수신되는 메시지의 송수신 성공/실패 여부 및 차량 외부의 통신노드(장치)의 통신 접속을 검증하기 위해 메시지에 포함될 수 있다.
예로서, 통신노드(330)는 데이터 프레임에 포함된 맥 헤더(MAC Header)의 목적지 주소 필드와 소스 어드레스 필드를 확인하여 데이터의 발신지와 수신지를 확인할 수 있다. 또한, 통신노드(330)는 데이터 프레임에 포함된 맥 헤더(MAC Header)의 목적지 주소 필드와 소스 어드레스 필드를 확인하여 차량의 이더넷 네트워크의 접속이 가능한 정상적인 제어기로부터 메시지가 수신되었는지 판단할 수 있다. 즉, 통신노드(330)는 데이터 프레임에 포함된 맥 헤더(MAC Header)의 목적지 주소 필드와 소스 어드레스 필드를 확인하여 등록된 차량 내부 제어기 및 차량 외부 제어기로부터 메시지가 정상적으로 수신되었는지 확인할 수 있다.
통신노드(330)는 메시지의 수신 시, 메모리 저장된 어드레스 테이블의 정보와 수신된 메시지의 소스 어드레스(source address), 예로서 소스 맥 어드레스(source MAC address)를 비교할 수 있다. 이때, 통신노드(330)는 메모리에 저장된 어드레스 테이블의 정보와 차량의 내부 또는 외부 제어기에서 수신된 메시지의 소스 어드레스의 일치 여부를 판단할 수 있다. 즉, 통신노드(330)는 메모리에 저장된 어드레스 테이블 정보와 수신된 메시지의 소스 어드레스를 비교하여, 통신노드(330)에 수신된 메시지의 소스 어드레스가 통신노드(330)의 메모리의 어드레스 테이블에 존재하는지 확인한다. 이를 통해, 통신노드(330)에 수신된 메시지가 차량 내부 장치 또는 등록된 외부 장치에서 발송된 정상적인 메시지인지 판단할 수 있다.
판단 결과, 통신노드(330)의 메모리에 저장되어 있는 어드레스 테이블과 매칭되지 않는 소스 어드레스를 가진 메시지가 수신된 경우, 통신노드(330)는 차량 전체 제어기의 소스 어드레스에 대한 검증이 가능한 관리노드(320)로 수신된 메시지와 상기 메시지가 수신된 포트 정보(번호)를 전송할 수 있다. 즉, 통신노드(330)에 수신된 메시지의 소스 어드레스가 통신노드(330)의 메모리에 저장되어 있는 어드레스 테이블에 존재하지 않는 경우, 통신노드(330)는 수신된 메시지와 소스 어드레스에 대한 정보를 관리노드(320)로 전송할 수 있다.
예로서, 관리노드(320)의 메모리에는 어드레스 테이블이 저장되어 있다. 이러한, 어드레스 테이블에는 차량의 내부에 배치된 게이트웨이, 스위치, 엔드노드 및 차량의 외부에서 접속되는 통신노드들의 소스 어드레스 저장되어 있다. 따라서, 관리노드(320)는 어드레스 테이블을 이용하여 차량 내부의 게이트웨이, 스위치, 엔드노드 및 외부 통신노드의 소스 어드레스에 대한 검증이 가능하다. 통신노드(330)는 수신된 메시지의 소스 어드레스에 대한 인증을 위해서 관리노드(320)와 연결되는 특정 통신포트로 도 6에 도시된 소스 어드레스 정보를 전달할 수 있다.
도 3 및 도 4에서는 통신노드(330) 및 관리노드(320)의 통신포트가 5개 배치된 것으로 도시하고 있으나 이에 한정되지 않고, 통신노드(330) 및 관리노드(320)와 연결되는 장치들의 개수에 따라서 통신포트의 개수가 달라질 수 있다.
관리노드(320)는 메모리(미도시) 및 복수의 통신포트를 포함하며, 특정 통신포트를 통해 통신노드(330)로부터 메시지 및 상기 메시지의 소스 어드레스 정보를 수신할 수 있다. 예로서, 통신노드(330)는 도 6에 도시된 소스 어드레스 정보를 관리노드(320)로 전송할 수 있다.
관리노드(320)로서 게이트웨이(GW: gateway)가 적용될 수 있으며, 관리노드(320)의 메모리에는 PHY 계층 유닛 및 컨트롤 유닛에 의해 수행되는 적어도 하나의 명령이 저장되어 있다. 또한, 관리노드(320)의 메모리에는 차량의 전체 통신노드 (게이트웨이, 스위치, 엔드노드 등)들의 소스 어드레스(예로서, 소스 맥 어드레스)를 포함하는 어드레스 테이블이 저장될 수 있다. 또한, 관리노드(320)의 메모리에는 차량 외부에서 접속되는 통신노드의 소스 어드레스 테이블이 저장될 수 있다.
예로서, 하기의 표 2에 기재된 바와 같이, 관리노드(320)의 메모리에는 관리노드(320)의 각 통신포트 별 소스 맥 어드레스가 테이블 형태로 저장되어 있다. 또한, 관리노드(320)의 메모리에는 통신노드(330)의 각 통신포트 별 소스 맥 어드레스가 테이블 형태로 저장되어 있다.
상기 표 2에서 GW는 관리노드(320)를 의미하며, ECU1은 관리노드(320)에 접속된 통신노드(330)를 의미한다. 또한, Switch1 Port#은 관리노드(320)의 통신포트의 번호를 의미하며, Switch2 Port#은 통신노드의 통신포트의 번호를 의미한다.
통신노드(330)로부터 관리노드(320)로 메시지의 소스 어드레스가 수신되면, 관리노드(320)는 수신된 소스 어드레스와 메모리에 저장된 어드레스 테이블을 비교할 수 있다. 이를 통해, 관리노드(320)는 메모리에 저장된 어드레스 테이블 정보와 통신노드(330)에서 수신된 메시지의 소스 어드레스의 일치 여부를 판단할 수 있다. 즉, 관리노드(320)는 기존에 정의된 제어기(차량의 내부 장치 및 외부 장치)로부터 정상적으로 메시지가 수신된 것인지 판단할 수 있다. 여기서, 관리노드(320)의 메모리에 저장된 어드레스 테이블에는 차량 내부 제어기들의 맥 어드레스 정보 및 차량 외부에서 접속 가능한 제어기들의 맥 어드레스 정보가 포함되어 있다.
관리노드(320)는 메모리에 저장된 어드레스 테이블의 정보와 통신노드(330)에서 수신된 소스 어드레스 정보가 일치하는 경우, 차량의 내부 제어기로부터 메시지가 수신된 것으로 판단할 수 있다. 따라서, 관리노드(320)는 차량의 내부 제어기들 간의 통신 연결 에러가 발생한 것으로 판단할 수 있다. 즉, 관리노드(320)는 메모리에 저장된 어드레스 테이블에 통신노드(330)에서 수신된 소스 어드레스가 존재하는 경우 차량의 내부 제어기들 간의 통신 연결 에러로 판단할 수 있다. 이때, 관리노드(320)는 상기 수신된 메시지의 소스 어드레스 정보를 통신노드(330)로 전송할 수 있다. 통신노드(330)는 메모리에 저장된 어드레스 테이블에 관리노드(320)에서 수신된 소스 어드레스를 추가할 수 있다.
그리고, 관리노드(320)는 차량의 내부 제어기들 간의 통신 연결 에러를 지시하는 고장코드(DTC)를 관리노드(320)의 메모리에 저장할 수 있다. 즉, 통신노드(330)에 수신된 소스 어드레스 정보가 통신노드(330)의 메모리에 저장된 어드레스 테이블의 맥 어드레스 정보와 일치하지 않았지만, 관리노드(320)의 메모리에 저장된 어드레스 테이블의 맥 어드레스 정보와 일치하는 경우가 발생할 수 있다. 이러한 경우, 관리노드(320)는 차량 내부에 위치하는 제어기로부터 메시지의 수신 시 통신 연결 에러가 발생한 것으로 판단하고, 차량의 내부 제어기들 간의 통신 연결 에러를 지시하는 고장코드(DTC)를 관리노드(320)의 메모리에 저장할 수 있다.
또한, 관리노드(320)는 차량의 내부 제어기들 간의 통신 연결 에러를 지시하는 고장코드(DTC)를 시각적, 청각적 방식 중 적어도 하나의 방식으로 운전자에게 표시할 수 있다. 즉, 고장코드(DTC)를 지시하는 경고 등을 점등시키거나, 디스플레이 화면 상에 고장코드(DTC)를 표시할 수 있다. 또한, 고장코드(DTC)를 알려주는 경고음을 출력하거나, 오디오 방송으로 고장코드(DTC) 출력할 수도 있다. 이를 통해, 운전자에게 차량의 내부 제어기들 간의 통신 연결 에러를 경고할 수 있다. 또한, 관리노드(320)는 차량의 내부 제어기들 간의 통신 연결 에러를 지시하는 고장코드(DTC)를 진단부(310)로 전달하여 차량의 게이트웨이, 스위치, 엔드노드들의 팜웨어의 업데이트가 이루어지도록 할 수 있다. 또한, 관리노드(320)는 운전자에게 제어기들의 연결을 재설정하기 위한 서비스의 필요사항의 안내가 이루어지도록 할 수 있다.
다른 예로서, 관리노드(320)는 메모리에 저장된 어드레스 테이블의 맥 어드레스 정보와 통신노드(330)에서 수신된 소스 어드레스 정보가 일치하지 않는 경우, 메시지를 전송한 장치의 인증 절차를 추가로 수행할 수 있다. 이때, 관리노드(320)는 메모리에 저장된 어드레스 테이블의 맥 어드레스 정보와 통신노드(330)에서 수신된 소스 어드레스 정보가 일치하지 않는 경우, 차량의 네트워크에 새롭게 연결되는 외부 통신노드로부터 메시지가 수신된 것으로 판단할 수 있다.
이어서, 관리노드(320)는 수신된 메시지에 포함된 인증정보를 확인할 수 있다. 즉, 관리노드(320)는 수신된 메시지에 대한 인증정보가 존재하지 않거나, 메시지에 포함된 인증정보가 기 설정된 인증정보와 일치하지 않는 경우, 미 인증된 외부 장치가 차량의 이더넷 네트워크에 접속하여 메시지를 전송한 것으로 판단할 수 있다. 즉, 관리노드(320)는 미 인증된 외부 장치로부터 메시지가 수신된 것으로 판단할 수 있다.
관리노드(320)는 메시지를 송신한 외부 장치가 차량의 제조사에서 인증을 받은 경우, 통신노드(330)가 새로운 통신노드를 인식하지 못해 통신 에러가 발생한 것으로 판달 수 있다.
또한, 관리노드(320)는 관리노드(320)의 메모리에 저장된 어드레스 테이블에 상기 제조사에서 인증한 정상적인 외부 장치의 소스 어드레스 정보를 추가할 수 있다.
또한, 관리노드(320)는 메시지의 인증정보를 확인한 결과, 제조사에서 인증한 정상적인 외부 장치로부터 메시지가 수신된 경우, 통신노드(330)로 인증결과를 전송할 수 있다.
또한, 관리노드(320)는 자신과 연결된 다른 통신노드, 스위치, 게이트웨이로 상기 제조사에서 인증한 정상적인 외부 장치의 소스 어드레스 정보를 전송할 수 있다.
관리노드(320)로부터 인증결과를 수신된 통신노드(330)는 상기 제조사에서 인증한 정상적인 외부 장치의 소스 어드레스 정보를 통신노드(330)의 메모리에 저장된 어드레스 테이블에 추가할 수 있다. 또한, 통신노드(330)는 자신과 연결된 다른 통신노드, 스위치, 게이트웨이로 인증결과 및 수신된 메시지의 소스 어드레스를 전송하여, 상기 다른 통신노드, 스위치, 게이트웨이의 어드레스 테이블의 업데이트가 이루어지도록 할 수 있다.
한편, 관리노드(320)는 수신된 메시지에 포함된 인증정보를 확인한 결과, 차량의 제조사에서 인증을 받은 외부 장치(이동통신 장치 또는 IoT 장치)가 아닌 경우에는 외부 보안위협(예로서, 해킹)에 따른 통신 에러가 발생한 것으로 판단할 수 있다. 즉, 차량의 제조사에서 인증하지 않은 외부 장치에서 메시지가 수신된 경우에는 외부 보안위협(예로서, 해킹)에 따른 통신 에러가 발생한 것으로 판단할 수 있다. 그리고, 관리노드(320)는 인증결과를 통신노드(330)로 전송하여, 외부 보안위협(예로서, 해킹)에 따른 통신 에러가 발생한 것을 통보할 수 있다. 관리노드(320)로부터 인증결과를 수신한 통신노드(330)는 인증되지 않은 외부 장치와의 연결된 통신포트의 통신 연결을 해제시킬 수 있다. 이때, 통신노드(330)는 PHY 계층 유닛과 통신포트들을 연결하는 스위치를 오프(Off)시켜, 통신포트와 인증되지 않은 외부 장치와의 통신 연결을 해제시킬 수 있다.
이와 같이, 관리노드(320)는 메시지의 인증정보를 확인한 결과, 제조사에서 인증되지 않은 비정상적인 외부 장치로부터 메시지가 수신된 경우, 차량 네트워크의 보안 위협으로 판단할 수 있다. 즉, 관리노드(320)는 외부로부터 차량으로 해킹이 시도된 것으로 판단할 수 있다.
따라서, 관리노드(320)는 해킹을 시도한 장치에서 수신된 메시지를 폐기(discard)할 수 있다. 또한, 향후에도 지속적으로 비정상적인 외부 장치로부터 해킹 위협이 발생할 수 있음으로, 관리노드(320)는 비정상적인 외부 장치와의 통신이 차단되도록 해킹을 시도한 외부 장치의 소스 어드레스 정보를 관리노드(320)의 메모리에 별도로 저장할 수 있다. 관리노드(320)는 메모리에 저장된 비정상적인 외부 장치의 소스 어드레스 정보에 기초하여, 향후에 비정상적인 외부 장치로부터 통신 접근이 시도되는 경우, 비정상적인 외부 장치와의 통신을 차단시킬 수 있다.
또한, 관리노드(320)는 해킹을 시도한 외부 장치의 소스 어드레스 정보를 통신노드(330)로 전달할 수 있다. 통신노드(330)는 해킹을 시도한 외부 장치의 소스 어드레스 정보를 통신노드(330)의 메모리에 별도로 저장한다. 통신노드(330)는 메모리에 저장된 비정상적인 외부 장치의 소스 어드레스 정보에 기초하여, 향후에 비정상적인 외부 장치로부터 통신 접근이 시도되는 경우 비정상적인 외부 장치와의 통신을 차단시킬 수 있다.
이와 같이, 이더넷 스위치 정보에 기초한 미등록 장치의 통신 고장 진단 시스템은 관리노드(320)의 메모리에 차량의 내부 장치들 및 외부 장치들의 소스 어드레스 정보를 저장 및 관리하고, 외부 장치로부터 수신된 메시지의 인증정보를 확인함으로써 인증되지 않은 외부 장치의 통신 연결 및 해킹으로 인한 차량 내 어드레스 정보의 변경을 막을 수 있다.
본 발명의 이더넷 스위치 정보에 기초한 미등록 장치의 통신 고장 진단 시스템 및 방법은 인증되지 않은 외부 장치의 통신 연결 및 해킹을 방지하기 위해서, 차량 내 배치된 제어기들의 어드레스 테이블을 업데이트를 제한적으로 허용한다.
예로서, 제조사에서 차량의 출고 전에 초기 모드를 구동시키고, 진단부(310)를 차량의 이더넷 네트워크에 접속시켜 차량에 배치된 통신노드(330) 및 관리노드(320)의 맥 러닝(Learning)을 수행할 수 있다. 그리고, 진단부(310)를 통해 통신노드(330)에 연결된 제어기들의 소스 어드레스를 통신노드(330)의 메모리에 저장된 어드레스 테이블에 업데이트 할 수 있다. 또한, 진단부(310)를 통해 관리노드(320)에 연결된 제어기들의 소스 어드레스를 관리노드(320)의 메모리에 저장된 어드레스 테이블에 업데이트 할 수 있다. 즉, 차량에 배치된 전체 제어기들의 맥 어드레스를 관리노드(320)의 메모리에 업데이트 할 수 있다.
여기서, 초기 모드 이외에는 관리노드(320)의 ECU 및 통신노드(330)의 ECU가 별도로 어드레스 테이블을 업데이트 하지 않도록 설정할 수 있다. 관리노드(320)의 메모리에 저장된 어드레스 테이블에 변경이 발생하는 경우, 이에 대한 정보를 서버로 전달하여 차량의 관리가 체계적으로 이루어지도록 할 수 있다. 즉, 운전자가 의도하지 않은 어드레스 테이블을 변경에 대한 정보를 서버로 전달하여 외부 장치의 접근으로 인한 차량 해킹의 위험을 관리할 수 있도록 한다.
이를 통해, 이더넷 스위치 정보에 기초한 미등록 장치의 통신 고장 진단 시스템은 차량의 내부들의 소스 어드레스가 변경될 때 마다 팜웨어를 업데이트하지 않고, 기 설정된 모드(mode)에서만 소스 어드레스의 및 팜웨어의 업데이트가 동작하도록 할 수 있다. 이를 통해, 인증되지 않은 외부 장치의 통신 연결 및 해킹으로 인한 차량 내 데이터의 변경을 막을 수 있다.
도 7은 차량 이더넷 적용의 실시 예를 도시한 개념도이다.
도 7을 참조하면, 차량의 이더넷 네트워크는 관리노드(320), 제1 통신노드(330) 및 제2 통신노드(340)를 포함한다. 진단부(310)는 차량의 외부에 위치할 수 있고, 관리노드(320), 제1 통신노드(330) 및 제2 통신노드(340)는 차량 내부에 위치할 수 있다.
도 7에서는 제2 통신노드(340)로 카메라 제어기(예로서, 어라운드 뷰 모니터, AVM)가 적용된 것을 일 예로 도시하고 있다. 차량에는 외부 환경을 촬영하기 위한 카메라(342, CAM)가 배치될 수 있고, 제2 통신노드(340, AVM)와 카메라(342, CAM)는 통신포트를 통해서 연결될 수 있다.
차량에 배치된 제어기의 고장 또는 파손에 의해서 교체가 이루어질 수 있다. 예로서, 제2 통신노드(340, AVM)를 교체 시, 제2 통신노드(340)의 각 통신포트의 소스 어드레스가 변경될 수 있다. 제1 통신노드(330) 및 관리노드(320) 각각의 메모리에 저장된 어드레스 테이블에는 기존의 제2 통신노드(340, AVM)의 소스 어드레스가 저장되어 있음으로, 기존의 소스 어드레스와 신규로 교체되는 제2 통신노드(340, AVM)의 소스 어드레스가 불일치하게 된다. 즉, 제1 통신노드(330) 및 관리노드(320) 각각의 메모리에 저장된 어드레스 테이블에 저장된 기존의 제2 통신노드(340, AVM)의 소스 어드레스와 신규로 교체된 제2 통신노드(340, AVM)의 소스 어드레스가 불일치하게 된다.
본 발명의 실시 예에 따른 이더넷 스위치 정보에 기초한 미등록 장치 검증 시스템 및 방법은 차량에 배치된 제어기의 교체 시, 교체되는 신규 제어기(예로서, 제2 통신노드(340, AVM))의 소스 어드레스를 제1 통신노드(330) 및 관리노드(320) 각각의 메모리에 저장된 어드레스 테이블에 업데이트 시킬 수 있다.
예로서, 차량의 이더넷 네트워크와 진단부(310)를 연결시키고, 진단부(310)를 이용하여 진단 모드(Diagnostic Mode)로의 진입 명령을 관리노드(320)로 전송할 수 있다. 관리노드(320)는 수신된 진단 모드 진입 명령에 기초하여 차량에 배치된 전체 제어기의 어드레스 테이블의 업데이트가 이루어지도록 할 수 있다. 구체적으로, 관리노드(320)는 진단 모드 진입 명령을 자신과 연결된 제어기(통신노드, 스위치 및 게이트웨이 등)로 전송할 수 있다. 관리노드(320)로부터 진단 모드 진입 명령을 수신한 각각의 제어기(통신노드, 스위치 및 게이트웨이 등)는 맥 러닝(Learning)을 수행하여 어드레스 테이블을 업데이트 할 수 있다.
여기서, 신규 교체되는 제2 통신노드(340, AVM)의 ECU는 자신의 소스 어드레스 정보를 포함하는 어드레스 테이블을 제1 통신노드(330)로 전송할 수 있다.
제1 통신노드(330)는 신규 교체되는 제2 통신노드(340, AVM)의 소스 어드레스 정보를 자신의 어드레스 테이블(제1 엔드노드 스위치의 어드레스 테이블)에 업데이트 할 수 있다. 제1 통신노드(330)는 자신과 연결된 다른 제어기들에게 신규 교체되는 제2 통신노드(340, AVM)의 소스 어드레스 정보를 전송할 수 있다. 신규 교체되는 제2 통신노드(340, AVM)의 소스 어드레스 정보를 수신한 제어기들 각각은 제2 통신노드(340, AVM)의 소스 어드레스 정보를 자신의 어드레스 테이블에 각각 업데이트 할 수 있다. 그리고, 제어기들 각각은 업데이트 된 각각의 어드레스 테이블을 관리노드(320)로 전송할 수 있다. 관리노드(320)는 인증되지 않은 외부 통신노드의 통신 연결 및 해킹을 방지하기 위해서, 진단 모드(Diagnostic Mode)일 때에만 어드레스 테이블의 업데이트가 수행되도록 할 수 있다.
도 8은 본 발명의 실시 예에 따른 이더넷 스위치 정보에 기초한 미등록 장치의 검출 및 소스 어드레스 업데이트 방법으로, 통신노드(제어기)에서의 동작을 나타내는 도면이다.
도 8을 참조하면, 제2 통신노드(340)로부터 제1 통신노드(330)로 메시지가 수신되면(S110), 제1 통신노드(330)는 메모리에 저장된 어드레스 테이블과 수신된 메시지의 소스 어드레스(source address)를 비교할 수 있다(S120). 이를 통해, 제어기로 수신된 메시지가 차량 내부 장치 또는 등록된 정상적인 외부 장치에서 발송된 정상 메시지인지 메시지인지 판단할 수 있다.
이어서, S120의 비교 결과, 제1 통신노드(330)는 수신된 메시지의 소스 어드레스가 메모리에 저장된 어드레스 테이블에 존재하면, 제2 통신노드(340)에서 정상적인 메시지가 수신된 것으로 판단한다. 그리고, 제1 통신노드(330)는 상기 메시지를 발송한 제2 통신노드(340)와의 통신 연결을 유지시킨다(S130). 즉, 제1 통신노드(330)는 수신된 메시지의 소스 어드레스가 메모리에 저장된 어드레스 테이블에 존재하면, 다른 통신노드와의 정상적인 통신 연결로 판단한다.
한편, S120의 판단 결과, 제2 통신노드(340)에서 제1 통신노드(330)로 수신된 메시지의 소스 어드레스가 제1 통신노드(330)의 메모리에 저장되어 있는 어드레스 테이블에 존재하지 않는 경우, 제1 통신노드(330)는 수신된 메시지와 소스 어드레스에 대한 정보를 관리노드(320)로 전송할 수 있다(S140). 이때, 제1 통신노드(330)는 수신된 메시지의 소스 어드레스에 대한 인증을 위해서 관리노드(320)와 연결되는 특정 통신포트로 도 6에 도시된 소스 어드레스 정보 및 상기 수신된 메시지를 전송할 수 있다.
여기서, 관리노드(320)의 메모리에는 차량 전체 제어기(내부 장치 및 외부 장치)들의 소스 어드레스가 저장되어 있음으로, 전체 제어기들의 소스 어드레스에 대한 검증 및 메시지의 인증이 가능하다.
이어서, 제1 통신노드(330)로부터 관리노드(320)로 상기 메시지 및 소스 어드레스가 수신되면, 관리노드(320)는 수신된 소스 어드레스와 메모리에 저장된 어드레스 테이블을 비교할 수 있다(S150).
즉, 관리노드(320)는 수신된 메시지의 소스 어드레스와 관리노드(320)의 메모리에 저장된 어드레스 테이블의 일치 여부를 판단하여, 기존에 등록된 제어기(차량의 내부 장치 및 외부 장치)로부터 정상적으로 메시지가 수신된 것인지 판단할 수 있다.
이어서, S150의 비교 결과, 관리노드(320)는 수신된 메시지의 소스 어드레스가 관리노드(320)의 메모리에 저장된 어드레스 테이블에 존재하면, 관리노드(320)는 차량의 내부 제어기들 간의 통신 연결 에러가 발생한 것으로 판단할 수 있다(S160). 즉, 관리노드(320)는 메모리에 저장된 어드레스 테이블에 통신노드(330)에서 수신된 소스 어드레스가 존재하는 경우 차량의 내부 제어기들 간의 통신 연결 에러로 판단할 수 있다.
이어서, 관리노드(320)는 수신된 메시지의 소스 어드레스의 검증 결과를 제1 통신노드(330)로 전송할 수 있다(S170).
이어서, 제1 통신노드(330)는 수신된 메시지의 소스 어드레스의 검증 결과에 기초하여, 소스 어드레스를 메모리에 저장된 어드레스 테이블에 추가할 수 있다(S180).
한편, 관리노드(320)는 차량의 내부 제어기들 간의 통신 연결 에러를 지시하는 고장코드(DTC)를 관리노드(320)의 메모리에 저장하고, 차량의 내부 제어기들 간의 통신 연결 에러를 지시하는 고장코드(DTC)를 운전자에게 표시할 수 있다(S190).
도 9는 본 발명의 실시 예에 따른 이더넷 스위치 정보에 기초한 미등록 장치의 검출 및 소스 어드레스 업데이트 방법으로, 관리노드(게이트웨이)에서의 동작을 나타내는 도면이다.
도 9를 참조하면, S110 내지 S150의 동작은 도 8의 동작 설명과 동일함으로 상세한 설명은 생략하기로 한다.
S150의 비교 결과, 관리노드(320)의 메모리에 저장된 어드레스 테이블에 상기 수신된 메시지의 소스 어드레스가 존재하지 않는 경우, 메시지를 전송한 장치의 인증 절차를 추가로 수행할 수 있다. 관리노드(320)는 수신된 메시지에 포함된 인증정보를 확인할 수 있다(S260).
여기서, 관리노드(320)는 메모리에 저장된 어드레스 테이블의 맥 어드레스 정보와 통신노드(330)에서 수신된 소스 어드레스 정보가 일치하지 않는 경우, 차량의 외부 장치로부터 메시지가 수신된 것으로 판단할 수 있다.
이어서, S260의 인증결과, 관리노드(320)는 수신된 메시지에 대한 인증정보가 존재하지 않거나, 메시지에 포함된 인증정보가 기 설정된 인증정보와 일치하지 않는 경우, 인증실패로 처리하고 보안위협(해킹시도)이 발생한 것으로 판단할 있다(S270).
구체적으로, 관리노드(320)는 수신된 메시지에 대한 인증정보가 존재하지 않거나, 메시지에 포함된 인증정보가 기 설정된 인증정보와 일치하지 않는 경우, 미 인증된 외부 장치가 차량의 이더넷 네트워크에 접속하여 메시지를 전송한 것으로 판단할 수 있다. 즉, 관리노드(320)는 미 인증된 외부 장치로부터 메시지가 수신되어 보안위협(해킹시도)가 발생한 것으로 판단할 수 있다. 이와 같이, 관리노드(320)는 메시지의 인증정보를 확인한 결과, 제조사에서 인증되지 않은 비정상적인 외부 장치로부터 메시지가 수신된 경우, 미 인증된 외부 장치에서 수신된 메시지를 폐기(discard)시킬 수 있다.
한편, S260의 판단결과, 메시지에 포함된 인증정보가 기 설정된 인증정보와 일치하는 경우, 관리노드(320)는 인증성공으로 처리하고, 차량 제조사에서 인증한 외부 장치에서 메시지가 수신된 것으로 판단할 수 있다. 그리고, 관리노드(320)는 인증된 외부 장치의 소스 어드레스를 관리노드(320)의 메모리에 저장된 어드레스 테이블에 추가할 수 있다(S270).
이어서, 관리노드(320)는 인증결과를 제1 통신노드(330)로 전송할 수 있다(S280).
S270에서 인증이 실패한 경우, 제1 통신노드(330)는 미 인증된 외부 장치에서 메시지가 수신된 것임으로, 상기 미 인증된 장치와의 통신 연결을 차단시킬 수 있다(S290). 제1 통신노드(330)는 제조사에서 인증되지 않은 비정상적인 외부 장치로부터 메시지가 수신된 경우, 외부 장치로부터 통신을 즉시 차단(blocking)시키고, 수신된 메시지를 폐기(discard)시킬 수 있다.
또한, S270에서 인증이 실패한 경우, 제1 통신노드(330)는 인증된 외부 장치의 소스 어드레스를 메모리에 저장된 어드레스 테이블에 추가할 수 있다(S290).
이어서, 향후에도 지속적으로 비정상적인 외부 장치로부터 해킹 위협이 발생할 수 있음으로, 관리노드(320)는 비정상적인 외부 장치와의 통신이 차단되도록 해킹을 시도한 외부 장치의 소스 어드레스 정보를 관리노드(320)의 메모리에 별도로 저장할 수 있다.
또한, 관리노드(320)는 수신된 메시지의 인증결과 및 소스 어드레스 정보를 자신과 연결된 다른 제어기(엔드노드, 스위치, 게이트웨이 등)들에게 전송할 수 있다(S300).
관리노드(320)로부터 인증결과 및 소스 어드레스 정보를 수신한 엔드노드, 스위치, 게이트웨이 각각은 상기 인증결과에 기초하여 메모리에 저장된 어드레스 테이블을 업데이트 할 수 있다.
이와 같이, 본 발명의 실시 예에 따른 이더넷 스위치 정보에 기초한 미등록 장치 검증 시스템 및 방법은, 관리노드(320)의 메모리에 차량의 내부 장치들 및 외부 장치들의 소스 어드레스 정보를 저장 및 관리하고, 외부 장치로부터 수신된 메시지의 인증정보를 확인함으로써 인증되지 않은 외부 장치의 통신 연결 및 해킹으로 인한 차량 내 어드레스 정보의 변경을 막을 수 있다.
본 발명의 실시 예에 따른 이더넷 스위치 정보에 기초한 미등록 장치 검증 시스템 및 방법은, 인증되지 않은 외부 장치의 통신 연결 및 해킹을 방지하기 위해서, 차량 내 배치된 제어기들의 어드레스 테이블의 업데이트를 제한적으로 허용할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.