우선 순위 및 VLAN - useon sun-wi mich VLAN

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.

도 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은 차량 네트워크에서 데이터의 전송의 일 실시예를 도시한 블록도이다.

도 3을 참조하면, 엔드 노드들(301, 302) 및 스위치들(310, 320, 330, 340, 350, 360)은 도 2를 참조하여 설명된 통신 노드(200)와 동일 또는 유사한 구성을 가질 수 있다. 엔드 노드들(301, 302) 및 스위치들(310, 320, 330, 340, 350, 360)은 IEEE 802.1AS, IEEE 802.1Qav, IEEE 802.1Qat, IEEE 802.1BA, IEEE 802.1CB 등을 지원할 수 있다. 엔드 노드-1(301)은 토커(talker)일 수 있고, 엔드 노드-2(302)는 토커에 대응하는 리스너(listener)일 수 있다.

엔드 노드들(301, 302)은 SRP(stream reservation protocol)에 기초하여 스트림(stream) 전송을 예약할 수 있다. 예를 들어, 엔드 노드-1(301)은 광고(advertise) 프레임을 브로드캐스트(broadcast) 방식으로 전송할 수 있다. 엔드 노드-2(302)는 엔드 노드-1(301)로부터 광고 프레임을 수신할 수 있고, 광고 프레임에 대한 응답인 레디(ready) 프레임을 엔드 노드-1(301)에 전송할 수 있다. 엔드 노드-1(301)은 엔드 노드-2(302)로부터 레디 프레임을 수신할 수 있다. 이와 같은 과정을 통해 엔드 노드-1(301)과 엔드 노드-2(302) 간의 스트림 전송이 예약될 수 있다.

스트림 전송의 예약이 완료된 후, 엔드 노드-1(301)은 제1 원시 데이터를 포함하는 제1 프레임을 생성할 수 있고, 생성된 제1 프레임을 스위치-1(310)에 전송할 수 있다. 제1 원시 데이터는 AVB(audio video bridging)에 기초한 데이터일 수 있다. 스위치-1(310)은 엔드 노드-1(301)로부터 제1 프레임을 수신할 수 있다. 스위치-1(310)은 심리스(seamless) 전송을 위해 복수의 경로들을 통해 프레임을 전송할 수 있다. 복수의 경로들은 제1 메인(main) 경로 및 제1 리던던시(redundancy) 경로로 분류될 수 있다. 제1 메인 경로는 "스위치-1(310) - 스위치-2(320) - 스위치-3(330) - 스위치-4(340)"일 수 있고, 제1 리던던시 경로는 "스위치-1(310) - 스위치-5(360) - 스위치-6(360) - 스위치-4(340)"일 수 있다.

스위치-1(310)은 제1 프레임으로부터 제1 원시 데이터를 획득할 수 있고, 제1 원시 데이터를 포함하는 제2 프레임을 생성할 수 있다. 여기서, 제2 프레임은 제1 프레임과 동일할 수 있다. 또한, 스위치-1(310)은 제1 원시 데이터를 복제함으로써 제1 복제 데이터를 생성할 수 있고, 제1 복제 데이터를 포함하는 제3 프레임을 생성할 수 있다. 제1 원시 데이터의 우선순위는 제1 복제 데이터의 우선순위와 동일할 수 있다. 예를 들어, 제1 원시 데이터 및 제1 복제 데이터 각각의 우선순위는 SR(stream reservation) 클래스(class) A 또는 SR 클래스 B일 수 있다.

스위치-1(310)은 제1 메인 경로를 통해 제2 프레임을 전송할 수 있고, 제1 리던던시 경로를 통해 제3 프레임을 전송할 수 있다. 여기서, 제2 프레임 및 제3 프레임은 동시에 전송될 수 있다. 스위치-2(320)는 스위치-1(310)로부터 제2 프레임을 수신할 수 있고, 수신된 제2 프레임을 스위치-3(330)에 전송할 수 있다. 스위치-3(330)은 스위치-2(320)로부터 제2 프레임을 수신할 수 있고, 수신된 제2 프레임을 스위치-4(340)에 전송할 수 있다. 한편, 스위치-5(350)는 스위치-1(310)로부터 제3 프레임을 수신할 수 있고, 수신된 제3 프레임을 스위치-6(360)에 전송할 수 있다. 스위치-6(360)은 스위치-5(350)로부터 제3 프레임을 수신할 수 있고, 수신된 제3 프레임을 스위치-4(340)에 전송할 수 있다.

스위치-4(340)는 제2 프레임 및 제3 프레임을 수신할 수 있다. 스위치-4(340)는 제1 원시 데이터를 포함하는 제2 프레임을 성공적으로 수신한 경우(예를 들어, 제2 프레임이 손실되지 않거나 제2 프레임에 오류가 존재하지 않는 경우) 제3 프레임을 폐기할 수 있다. 그 후에, 스위치-4(340)는 제2 프레임을 엔드 노드-2(302)에 전송할 수 있다. 엔드 노드-2(302)는 스위치-4(340)로부터 제2 프레임을 수신할 수 있고, 수신된 제2 프레임으로부터 제1 원시 데이터를 획득할 수 있다.

또는, 제1 원시 데이터를 포함하는 제2 프레임이 손실되었거나 제2 프레임에 오류가 존재하고, 제1 복제 데이터를 포함하는 제3 프레임이 성공적으로 수신된 경우, 스위치-4(340)는 제3 프레임을 엔드 노드-2(302)에 전송할 수 있다. 엔드 노드-2(302)는 스위치-4(340)로부터 제3 프레임을 수신할 수 있고, 수신된 제3 프레임으로부터 제1 복제 데이터를 획득할 수 있다.

도 4는 차량 네트워크에서 데이터의 전송의 다른 실시예를 도시한 블록도이다.

도 4를 참조하면, 엔드 노드들(301, 302, 303, 304) 및 스위치들(310, 320, 330, 340, 350, 360)은 도 2를 참조하여 설명된 통신 노드(200)와 동일 또는 유사한 구성을 가질 수 있다. 엔드 노드들(301, 302, 303, 304) 및 스위치들(310, 320, 330, 340, 350, 360)은 IEEE 802.1AS, IEEE 802.1Qav, IEEE 802.1Qat, IEEE 802.1BA, IEEE 802.1CB 등을 지원할 수 있다. 엔드 노드-1(301) 및 엔드 노드-3(303)은 토커일 수 있다. 엔드 노드-2(302)는 엔드 노드-1(301)에 대응하는 리스너일 수 있고, 엔드 노드-4(304)는 엔드 노드-3(303)에 대응하는 리스너일 수 있다. 엔드 노드들(301, 302, 303, 304)은 SRP에 기초하여 스트림 전송을 예약할 수 있다. 엔드 노드-1(301)과 엔드 노드-2(302) 간의 스트림 전송은 도 3을 참조하여 설명된 데이터의 전송 방법과 동일 또는 유사하게 수행될 수 있다. 엔드 노드-3(303)과 엔드 노드-4(304) 간의 스트림 전송은 다음과 같다.

스트림 전송의 예약이 완료된 후, 엔드 노드-3(303)은 제2 원시 데이터를 포함하는 제4 프레임을 생성할 수 있고, 생성된 제4 프레임을 스위치-5(350)에 전송할 수 있다. 제2 원시 데이터는 AVB에 기초한 데이터일 수 있다. 스위치-5(350)는 엔드 노드-3(303)으로부터 제4 프레임을 수신할 수 있다. 스위치-5(350)는 심리스 전송을 위해 복수의 경로들을 통해 프레임을 전송할 수 있다. 복수의 경로들은 제2 메인 경로 및 제2 리던던시 경로로 분류될 수 있다. 제2 메인 경로는 "스위치-5(350) - 스위치-6(360) - 스위치-4(340) - 스위치-3(330)"일 수 있고, 제2 리던던시 경로는 "스위치-5(350) - 스위치-1(310) - 스위치-2(320) - 스위치-3(330)"일 수 있다.

스위치-5(350)는 제4 프레임으로부터 제2 원시 데이터를 획득할 수 있고, 제2 원시 데이터를 포함하는 제5 프레임을 생성할 수 있다. 여기서, 제5 프레임은 제4 프레임과 동일할 수 있다. 또한, 스위치-5(350)는 제2 원시 데이터를 복제함으로써 제2 복제 데이터를 생성할 수 있고, 제2 복제 데이터를 포함하는 제6 프레임을 생성할 수 있다. 제2 원시 데이터의 우선순위는 제2 복제 데이터의 우선순위와 동일할 수 있다. 예를 들어, 제2 원시 데이터 및 제2 복제 데이터 각각의 우선순위는 SR 클래스 A 또는 SR 클래스 B일 수 있다. 스위치-5(350)는 제2 메인 경로를 통해 제5 프레임을 전송할 수 있고, 제2 리던던시 경로를 통해 제6 프레임을 전송할 수 있다. 여기서, 제5 프레임 및 제6 프레임은 동시에 전송될 수 있다.

스위치-6(360)은 스위치-5(350)로부터 제5 프레임을 수신할 수 있고, 수신된 제5 프레임을 스위치-4(340)에 전송할 수 있다. 스위치-4(340)는 스위치-6(360)으로부터 제5 프레임을 수신할 수 있고, 수신된 제5 프레임을 스위치-3(330)에 전송할 수 있다. 한편, 스위치-1(310)은 스위치-5(350)로부터 제6 프레임을 수신할 수 있고, 수신된 제6 프레임을 스위치-2(320)에 전송할 수 있다. 스위치-2(320)는 스위치-1(310)로부터 제6 프레임을 수신할 수 있고, 수신된 제6 프레임을 스위치-3(330)에 전송할 수 있다.

스위치-3(330)은 제5 프레임 및 제6 프레임을 수신할 수 있다. 스위치-3(330)은 제2 원시 데이터를 포함하는 제5 프레임을 성공적으로 수신한 경우(예를 들어, 제2 프레임이 손실되지 않거나 제2 프레임에 오류가 존재하지 않는 경우) 제6 프레임을 폐기할 수 있다. 그 후에, 스위치-3(330)은 제5 프레임을 엔드 노드-4(304)에 전송할 수 있다. 엔드 노드-4(304)는 스위치-3(330)으로부터 제5 프레임을 수신할 수 있고, 수신된 제5 프레임으로부터 제2 원시 데이터를 획득할 수 있다.

또는, 제2 원시 데이터를 포함하는 제5 프레임이 손실되었거나 제5 프레임에 오류가 존재하고, 제2 복제 데이터를 포함하는 제6 프레임이 성공적으로 수신된 경우, 스위치-3(330)은 제6 프레임을 엔드 노드-4(304)에 전송할 수 있다. 엔드 노드-4(304)는 스위치-3(330)으로부터 제6 프레임을 수신할 수 있고, 수신된 제6 프레임으로부터 제2 복제 데이터를 획득할 수 있다.

한편, 스위치-1(310)은 스위치-2(320)로 전송될 두 개의 프레임들을 가지고 있을 수 있다. 두 개의 프레임들의 우선순위가 다른 경우, 스위치-1(310)은 두 개의 프레임들 중에서 높은 우선순위를 가지는 프레임을 스위치-2(320)에 우선적으로 전송할 수 있고, 그 후에 나머지 프레임을 스위치-2(320)에 전송할 수 있다. 반면, 두 개의 프레임들의 우선순위가 동일하고, 하나의 프레임이 제1 원시 데이터를 포함하는 프레임이고, 나머지 프레임이 제2 복제 데이터를 포함하는 프레임인 경우, 제1 원시 데이터를 포함하는 프레임이 제2 복제 데이터를 포함하는 프레임보다 우선적으로 전송되는 것이 바람직하다. 그러나 제2 복제 데이터를 포함하는 프레임이 제1 원시 데이터를 포함하는 프레임보다 우선적으로 전송될 수 있으며, 이에 따라 제1 원시 데이터의 우선적 전송이 보장되지 않을 수 있다. 다른 스위치들(320, 330, 340, 350, 360)에서도 스위치-1(310)과 동일한 문제가 발생될 수 있다.

다음으로, 도 3을 참조하여 설명된 차량 네트워크 또는 도 4를 참조하여 설명된 차량 네트워크에서 수행되는 데이터 전송 방법이 설명될 것이다. 데이터 전송 방법이 적용되는 차량 네트워크는 이에 한정되지 않으며, 데이터 전송 방법은 다양한 차량 네트워크에 적용될 수 있다.

도 5는 본 발명의 일 실시예에 따른 데이터의 전송 방법을 도시한 순서도이다.

도 5를 참조하면, 엔드 노드-1(301), 스위치-1(310), 스위치-2(320) 및 스위치-5(350)는 도 2를 참조하여 설명된 통신 노드(200)와 동일 또는 유사한 구성을 포함할 수 있다. 또한, 엔드 노드-1(301), 스위치-1(310), 스위치-2(320) 및 스위치-5(350)는 도 3을 참조하여 설명된 차량 네트워크 또는 도 4를 참조하여 설명된 차량 네트워크를 구성할 수 있다. 엔드 노드-1(301)은 토커일 수 있고, 리스너인 엔드 노드-2(302)에 프레임을 전송할 수 있다. 엔드 노드-1(301)은 제1 원시 데이터를 포함하는 제1 프레임을 생성할 수 있다. 제1 원시 데이터는 AVB에 기초한 데이터일 수 있다. 제1 프레임은 이더넷 프레임일 수 있으며, 이더넷 프레임의 구성은 다음과 같다.

도 6은 본 발명에 따른 이더넷 프레임을 도시한 블록도이다.

도 6을 참조하면, 이더넷 프레임(600)은 프리앰블(610), MAC 헤더, 페이로드(payload)(660) 및 CRC/FCS(cyclic redundancy check/frame check sequence) 필드(670)를 포함할 수 있다. 프리앰블(610)은 8옥텟(octet)의 크기를 가질 수 있으며, 타이밍(timing) 동기를 위해 사용될 수 있다. MAC 헤더는 데스티네이션(destination) 주소 필드(620), 소스(source) 주소 필드(630), VLAN(virtual local area network) 태그(tag) 필드(640) 및 타입/길이(type/length) 필드(650)를 포함할 수 있다. 데스티네이션 주소 필드(620)는 6옥텟의 크기를 가질 수 있으며, 이더넷 프레임(600)을 수신하는 통신 노드의 식별 정보(예를 들어, MAC 주소)를 포함할 수 있다. 소스 주소 필드(630)는 6옥텟의 크기를 가질 수 있으며, 이더넷 프레임(600)을 전송하는 통신 노드의 식별 정보(예를 들어, MAC 주소)를 포함할 수 있다.

VLAN 태그 필드(640)는 IEEE 802.1Q에 규정된 VLAN 태그일 수 있다. VLAN 태그 필드(640)는 TPID(tag frame identifier) 필드(641) 및 TCI(tag control information)를 포함할 수 있다. TPID 필드(641)는 16비트(bit)의 크기를 가질 수 있으며, 태그 프레임을 식별하기 위해 사용될 수 있다. TCI는 PCP(priority code point) 필드(642), DEI(drop eligible indicator) 필드(643) 및 VLAN ID 필드(644)에 의해 지시될 수 있다. PCP 필드(642)는 3비트의 크기를 가질 수 있으며, 우선순위를 지시할 수 있다.

DEI 필드(643)는 1비트의 크기를 가질 수 있으며, 특정 환경(예를 들어, 트래픽이 급증된 경우 등)에서 제거 가능한 프레임을 지시할 수 있다. 예를 들어, DEI 필드(643)가 이진수 "0"으로 설정된 경우, 이는 이더넷 프레임(600)이 제거 불가능한 프레임인 것을 지시할 수 있다. DEI 필드(643)가 이진수 "1"로 설정된 경우, 이는 이더넷 프레임(600)이 제거 가능한 프레임인 것을 지시할 수 있다. VLAN ID 필드(644)는 12비트의 크기를 가질 수 있으며, VLAN을 식별하기 위해 사용될 수 있다.

타입/길이 필드(650)는 2옥텟의 크기를 가질 수 있으며, 이더넷 프레임(600)을 전송한 통신 노드가 지원하는 이더넷 타입 또는 이더넷 프레임(600)의 길이를 지시할 수 있다. 예를 들어, 타입/길이 필드(650)에 포함된 첫 번째 옥텟의 값이 십진수 1500 이하인 경우, 타입/길이 필드(650)는 이더넷 프레임(600)의 길이를 지시할 수 있다. 타입/길이 필드(650)에 포함된 첫 번째 옥텟의 값이 십진수 1536 이상인 경우, 타입/길이 필드(650)는 이더넷 타입을 지시할 수 있다. 페이로드(660)는 적어도 하나의 데이터 유닛을 포함할 수 있다. 이더넷 프레임(600)은 패드(pad) 필드를 더 포함할 수 있으며, 패드 필드는 페이로드(660) 뒤에 추가될 수 있다.

한편, 프레임에 포함된 데이터는 우선순위를 가질 수 있으며, 우선순위는 SR 클래스, 베스트 에펏(best effort) 클래스 등으로 분류될 수 있다. SR 클래스의 우선순위는 베스트 에펏 클래스의 우선순위보다 높을 수 있다. SR 클래스는 SR 클래스 A 및 SR 클래스 B를 포함할 수 있으며, SR 클래스 A의 우선순위는 SR 클래스 B의 우선순위와 동일하거나 SR 클래스 B의 우선순위보다 높을 수 있다. 아래 표 1은 클래스별 우선순위를 나타낸다.

우선 순위 및 VLAN - useon sun-wi mich VLAN

우선순위 레벨이 클수록 높은 우선순위가 지시될 수 있다. 우선순위가 두 개의 레벨(0, 1)로 구분되는 경우, SR 클래스 A 및 SR 클래스 B의 우선순위 레벨은 "1"로 설정될 수 있고, 베스트 에펏 클래스의 우선순위 레벨은 "0"으로 설정될 수 있다. 우선순위가 세 개의 레벨(0, 1, 2)로 구분되는 경우, SR 클래스 A의 우선순위 레벨은 "2"로 설정될 수 있고, SR 클래스 B의 우선순위 레벨은 "1"로 설정될 수 있고, 베스트 에펏 클래스의 우선순위 레벨은 "0"으로 설정될 수 있다. 우선순위가 네 개의 레벨(0, 1, 2, 3)로 구분되는 경우, SR 클래스 A의 우선순위 레벨은 "3"으로 설정될 수 있고, SR 클래스 B의 우선순위 레벨은 "2"로 설정될 수 있고, 베스트 에펏 클래스의 우선순위 레벨은 "0, 1"로 설정될 수 있다. 우선순위가 다섯 개의 레벨(0, 1, 2, 3, 4)로 구분되는 경우, SR 클래스 A의 우선순위 레벨은 "4"로 설정될 수 있고, SR 클래스 B의 우선순위 레벨은 "3"으로 설정될 수 있고, 베스트 에펏 클래스의 우선순위 레벨은 "0, 1, 2"로 설정될 수 있다.

우선순위가 여섯 개의 레벨(0, 1, 2, 3, 4, 5)로 구분되는 경우, SR 클래스 A의 우선순위 레벨은 "5"로 설정될 수 있고, SR 클래스 B의 우선순위 레벨은 "4"로 설정될 수 있고, 베스트 에펏 클래스의 우선순위 레벨은 "0, 1, 2, 3"으로 설정될 수 있다. 우선순위가 일곱 개의 레벨(0, 1, 2, 3, 4, 5, 6)로 구분되는 경우, SR 클래스 A의 우선순위 레벨은 "6"으로 설정될 수 있고, SR 클래스 B의 우선순위 레벨은 "5"로 설정될 수 있고, 베스트 에펏 클래스의 우선순위 레벨은 "0, 1, 2, 3, 4"로 설정될 수 있다. 우선순위가 여덟 개의 레벨(0, 1, 2, 3, 4, 5, 6, 7)로 구분되는 경우, SR 클래스 A의 우선순위 레벨은 "7"로 설정될 수 있고, SR 클래스 B의 우선순위 레벨은 "6"으로 설정될 수 있고, 베스트 에펏 클래스의 우선순위 레벨은 "0, 1, 2, 3, 4, 5"로 설정될 수 있다.

다시 도 5를 참조하면, 제1 프레임의 PCP 필드(642)는 SR 클래스 A 또는 SR 클래스 B에 대응하는 우선순위를 지시할 수 있다. 엔드 노드-1(301)은 제1 프레임을 스위치-1(310)에 전송할 수 있다(S500). 스위치-1(310)은 엔드 노드-1(301)로부터 제1 프레임을 수신할 수 있고, 제1 프레임으로부터 제1 원시 데이터를 획득할 수 있다. 스위치-1(310)은 제1 원시 데이터를 포함하는 제2 프레임을 생성할 수 있다(S510). 제2 프레임은 제1 원시 데이터를 포함하는 것을 지시하는 지시자를 포함할 수 있다. 예를 들어, 제2 프레임의 DEI 필드(643)는 지시자로 사용될 수 있다. 제2 프레임의 DEI 필드(643)는 이진수 "0"으로 설정될 수 있으며, 이는 제2 프레임이 제1 원시 데이터를 포함하는 것을 지시할 수 있다.

스위치-1(310)은 제1 원시 데이터를 복제함으로써 제1 복제 데이터를 생성할 수 있고, 제1 복제 데이터를 포함하는 제3 프레임을 생성할 수 있다(S520). 제1 원시 데이터의 우선순위는 제1 복제 데이터의 우선순위와 동일할 수 있다. 제3 프레임은 제1 복제 데이터를 포함하는 것을 지시하는 지시자를 포함할 수 있다. 예를 들어, 제2 프레임의 DEI 필드(643)는 지시자로 사용될 수 있다. 제2 프레임의 DEI 필드(643)는 이진수 "1"로 설정될 수 있으며, 이는 제2 프레임이 제1 복제 데이터를 포함하는 것을 지시할 수 있다.

스위치-1(310)은 제2 프레임을 메인 경로를 통해 전송할 수 있다(S530). 메인 경로가 "스위치-1(310) - 스위치-2(320) - 스위치-3(330) - 스위치-4(340)"인 경우, 스위치-1(310)은 제2 프레임을 스위치-2(320)에 전송할 수 있다. 또한, 스위치-1(310)은 제3 프레임을 리던던시 경로를 통해 전송할 수 있다(S540). 리던던시 경로가 "스위치-1(310) - 스위치-5(350) - 스위치-6(360) - 스위치-4(340)"인 경우, 스위치-1(310)은 제3 프레임을 스위치-5(350)에 전송할 수 있다. 여기서, 제2 프레임 및 제3 프레임은 동시에 전송될 수 있다.

제2 프레임은 메인 경로를 통해 스위치-4(340)로 전송될 수 있고, 제3 프레임은 리던던시 경로를 통해 스위치-4(340)로 전송될 수 있다. 스위치-4(340)는 제1 원시 데이터를 포함하는 제2 프레임을 성공적으로 수신한 경우(예를 들어, 제2 프레임이 손실되지 않거나 제2 프레임에 오류가 존재하지 않는 경우) 제3 프레임을 폐기할 수 있다. 그 후에, 스위치-4(340)는 제2 프레임을 엔드 노드-2(302)에 전송할 수 있다. 엔드 노드-2(302)는 스위치-4(340)로부터 제2 프레임을 수신할 수 있고, 수신된 제2 프레임으로부터 제1 원시 데이터를 획득할 수 있다.

또는, 제1 원시 데이터를 포함하는 제2 프레임이 손실되었거나 제2 프레임에 오류가 존재하고, 제1 복제 데이터를 포함하는 제3 프레임이 성공적으로 수신된 경우, 스위치-4(340)는 제3 프레임을 엔드 노드-2(302)에 전송할 수 있다. 엔드 노드-2(302)는 스위치-4(340)로부터 제3 프레임을 수신할 수 있고, 수신된 제3 프레임으로부터 제1 복제 데이터를 획득할 수 있다.

도 7은 본 발명의 다른 실시예에 따른 데이터의 전송 방법을 도시한 흐름도이다.

도 7을 참조하면, 데이터의 전송 방법은 도 4를 참조하여 설명된 차량 네트워크에서 수행될 수 있다. 데이터의 전송 방법은 메인 경로 및 리던던시 경로로 사용되는 링크를 가지는(또는, 메인 경로 및 리던던시 경로로 사용되는 경쟁 구간에 속한) 스위치(예를 들어, 스위치-1(310) 등)에서 수행될 수 있다. 스위치-1(310)은 복수의 프레임들을 획득할 수 있다(S700). 예를 들어, 스위치-1(310)은 엔드 노드-1(301)로부터 제1 원시 데이터를 획득할 수 있고, 제1 원시 데이터를 포함하는 프레임 및 제1 원시 데이터의 복제에 의해 생성된 제1 복제 프레임을 포함하는 프레임을 생성할 수 있다. 또한, 스위치-1(310)은 스위치-5(350)로부터 제2 원시 데이터를 포함하는 프레임 또는 제2 원시 데이터의 복제에 의해 생성된 제2 복제 데이터를 포함하는 프레임을 수신할 수 있다. 아래에서, 복수의 프레임들은 제1 프레임 및 제2 프레임을 포함하고, 제1 프레임은 제1 원시 데이터를 포함하고, 제2 프레임은 제2 원시 데이터의 복제에 의해 생성된 제2 복제 데이터를 포함하는 것으로 가정된다.

스위치-1(310)은 제1 프레임의 통신 경로가 제2 프레임의 통신 경로와 동일한지 판단할 수 있다(S705). 제1 프레임의 통신 경로가 제2 프레임의 통신 경로와 다른 경우, 스위치-1(310)은 각각의 통신 경로를 통해 제1 프레임 및 제2 프레임을 전송할 수 있다(S710). 반면, 제1 프레임의 통신 경로가 제2 프레임의 통신 경로와 동일한 경우, 스위치-1(310)은 제1 프레임에 포함된 제1 원시 데이터의 우선순위가 제2 프레임에 포함된 제2 복제 데이터의 우선순위와 동일한지 판단할 수 있다(S715).

제1 원시 데이터의 우선순위가 제2 복제 데이터의 우선순위와 다른 경우, 스위치-1(310)은 우선순위에 기초하여 제1 프레임 및 제2 프레임을 전송할 수 있다(S720). 예를 들어, 제1 원시 데이터의 우선순위가 제2 복제 데이터의 우선순위보다 높은 경우, 스위치-1(310)은 제1 원시 데이터를 포함하는 제1 프레임을 우선적으로 전송할 수 있고, 그 다음에 제2 복제 데이터를 포함하는 제2 프레임을 전송할 수 있다. 또는, 제1 원시 데이터의 우선순위가 제2 복제 데이터의 우선순위보다 낮은 경우, 스위치-1(310)은 제2 복제 데이터를 포함하는 제2 프레임을 우선적으로 전송할 수 있고, 그 다음에 제1 원시 데이터를 포함하는 제1 프레임을 전송할 수 있다.

제1 원시 데이터의 우선순위가 제2 복제 데이터의 우선순위와 동일한 경우, 스위치-1(310)은 제1 프레임의 DEI 필드(643)의 값과 제2 프레임의 DEI 필드(643)의 값을 확인할 수 있다(S725). 스위치-1(310)은 원시 데이터를 포함하는 프레임과 복제 데이터를 포함하는 프레임을 구별하기 위해 DEI 필드(643)의 값을 확인할 수 있다. 여기서, 제1 원시 데이터 및 제2 복제 데이터 각각의 우선순위는 SR 클래스 A 또는 SR 클래스 B일 수 있다. 제1 프레임의 DEI 필드(643)의 값이 제2 프레임의 DEI 필드(643)의 값과 동일한 경우, 스위치-1(310)은 두 개의 프레임들 중에서 임의의 프레임을 우선적으로 전송할 수 있고, 그 다음에 나머지 프레임을 전송할 수 있다. 반면, 제1 프레임의 DEI 필드(643)의 값이 제2 프레임의 DEI 필드(643)의 값과 다른 경우, 스위치-1(310)은 아래 방식을 통해 프레임을 전송할 수 있다.

제1 프레임의 DEI 필드(643)가 이진수 "0"으로 설정된 경우, 이는 제1 프레임이 원시 데이터(예를 들어, 제1 원시 데이터)를 포함하는 것을 지시할 수 있다. 따라서, 스위치-1(310)은 제1 원시 데이터의 우선순위에 기초하여 제1 원시 데이터를 큐잉(queing)할 수 있다(S730). 제2 프레임의 DEI 필드(643)가 이진수 "1"로 설정된 경우, 이는 제2 프레임이 복제 데이터(예를 들어, 제2 복제 데이터)를 포함하는 것을 지시할 수 있다. 제1 원시 데이터에 제2 복제 데이터보다 높은 우선순위를 부여하기 위해, 스위치-1(310)은 제2 복제 데이터의 우선순위가 제1 원시 데이터의 우선순위보다 낮도록 제2 복제 데이터의 우선순위를 리매핑할 수 있다(S735). 예를 들어, 스위치-1(310)은 제2 복제 데이터의 우선순위를 베스트 에펏 클래스의 우선순위들 중에서 가장 높은 우선순위로 설정할 수 있다. 스위치-1(310)은 리매핑된 우선순위에 기초하여 제2 복제 데이터를 큐잉할 수 있다(S740). 이와 같이 큐잉된 데이터는 다음과 같다.

도 8은 본 발명에 따른 큐를 도시한 개념도이다.

도 8을 참조하면, 스위치-1(310)은 여덟 개의 큐들(801, 802, 803, 804, 805, 806, 807, 808)을 포함할 수 있다. 우선순위가 여덟 개의 레벨(0, 1, 2, 3, 4, 5, 6, 7)로 구분되는 경우, 제1 큐(801) 및 제2 큐(802)는 AVB에 기초한 데이터를 위해 사용될 수 있고, 제3 큐(803), 제4 큐(804), 제5 큐(805), 제6 큐(806), 제7 큐(807) 및 제8 큐(808)는 베스트 에펏에 기초한 데이터를 위해 사용될 수 있다. 제1 원시 데이터는 우선순위가 SR 클래스 A인 경우 제1 큐(801)에 위치할 수 있고, 우선순위가 SR 클래스 B인 경우 제2 큐(802)에 위치할 수 있다. 우선순위가 리매핑된 제2 복제 데이터는 제3 큐(803)에 위치할 수 있다. 따라서, 제1 원시 데이터는 제2 복제 데이터에 비해 우선적으로 전송될 수 있다.

다시 도 7을 참조하면, 스위치-1(310)은 제1 원시 데이터를 포함한 제1 프레임을 생성할 수 있고, 생성된 제1 프레임을 다른 통신 노드(예를 들어, 스위치-2(320))에 전송할 수 있다(S745). 그 후에, 스위치-1(310)은 제2 복제 데이터의 우선순위를 원래 우선순위(예를 들어, SR 클래스 A 또는 SR 클래스 B)로 재설정할 수 있고, 재설정된 우선순위를 가지는 제2 복제 데이터를 포함하는 제2 프레임을 생성할 수 있고, 생성된 제2 프레임을 다른 통신 노드(예를 들어, 스위치-2(320))에 전송할 수 있다(S750).

본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.

컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.

이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.