KR101094812B1 - 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법 및 장치 - Google Patents

이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법 및 장치 Download PDF

Info

Publication number
KR101094812B1
KR101094812B1 KR1020100068433A KR20100068433A KR101094812B1 KR 101094812 B1 KR101094812 B1 KR 101094812B1 KR 1020100068433 A KR1020100068433 A KR 1020100068433A KR 20100068433 A KR20100068433 A KR 20100068433A KR 101094812 B1 KR101094812 B1 KR 101094812B1
Authority
KR
South Korea
Prior art keywords
message
protocol
memory area
nodes
flexray
Prior art date
Application number
KR1020100068433A
Other languages
English (en)
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 KR1020100068433A priority Critical patent/KR101094812B1/ko
Application granted granted Critical
Publication of KR101094812B1 publication Critical patent/KR101094812B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4552Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA
    • 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/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40241Flexray

Landscapes

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

Abstract

본 발명은 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법 및 장치를 개시하고 있다.
본 발명의 일 실시 예에 따른 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법은 이종의 프로토콜을 사용하는 노드들 간에 메시지를 교환함에 있어서, 제 1 프로토콜을 사용하는 제 1 노드로부터 제 1 메시지를 수신하는 단계, 상기 제 1 메시지에서 송신할 데이터를 추출하여 제 1 프로토콜을 사용하는 하나 이상의 노드들에 할당된 제 1 메모리 영역의 제 1 주소 영역에 저장하는 단계, 룩업 테이블을 이용하여 제 2 프로토콜을 사용하는 하나 이상의 노드들에 할당된 제 2 메모리 영역의 제 2 주소 정보를 산출하는 단계, 상기 제 1 주소 영역 및 상기 제 2 주소 정보를 이용하여 데이터 송신을 요청하는 단계, 및 상기 데이터를 상기 제 2 주소 영역의 제 2 메모리 영역에 저장한 후, 상기 제 2 프로토콜을 사용하는 제 2 노드에게 상기 제 2 메시지를 송신하는 단계를 포함하며, 상기 제 1 메모리 영역 또는 제 2 메모리 영역에 메시지를 저장하는 것은 다수의 메시지 디스패처에 의해 병렬적으로 수행되는 것을 특징으로 한다.

Description

이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법 및 장치{METHOD AND APPARATUS OF PROCESSING PARARELL MESSAGE IN heterogeneous COMMUNICATION}
본 발명은 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법 및 장치를 개시하고 있다.
현대의 차량 내에는 마이크로프로세서, 센서, 그리고 엑추에이터 등의 다양한 전자기기들이 사용되고 있으며 이들은 차량의 안전한 주행과 운전자의 편의를 위해 상호 간의 신뢰성 있는 정보 교환을 필요로 한다.
차량 내부의 통신 방식으로 가장 널리 사용되고 있는 것은 CAN (Control Area Network)으로서 최고 1 Mbps의 전송률로 데이터를 전송할 수 있다. 그러나 이벤트 기반 (Event- triggered) 통신 방식의 한계와 비교적 낮은 전송률로 인해 x-by-wire 시스템과 같이 고도의 신뢰성과 안전성이 요구되는 시스템에 적용하기에는 적합하지 않은 방식이다. 이의 대안으로 확정적 통신 (deterministic communication)의 속성을 지니며 적은 지터(jitter)로 주기적인 데이터 교환이 가능한 FlexRay가 개발되었다. FlexRay는 시간 동기 (Time-triggered)에 의해 확정성을 제공하는 TDMA 방식과 이벤트 기반 통신 방식을 혼용하여 적용할 수 있는 유연성을 제공하도록 설계되었다. 그러나, 시간 동기에 의해 운용되는 FlexRay는 데이터를 전송하는 과정에서 시간상의 지연이 발생할 경우, 수신측이 지연된 데이터를 수신하게 되며, 이러한 지연이 다른 데이터를 전송하는 데 있어 영향을 미칠 수 있다는 문제가 있다.
'차량 내 네트워크'는 증가하는 네트워크 도메인의 수와 여기에서 기인하게 되는 도메인 간 통신에 있어서의 복잡도의 증가, 그리고 전송 지연의 문제점에 직면하게 되었다. 특히, 이종 도메인 간 (CAN <-> LIN, CAN <-> FlexRay 등)의 통신을 위해서는 '게이트웨이 (Gateway) 기능'이 필요한데, 이 게이트웨이 기능을 제공함에 있어서는 해당 데이터가 적절한 시점에 전송이 완료될 수 있는 신뢰성 있는 통신을 보장하는 것이 필요하다.
본 발명은 CAN-FlexRay 통신에서 메시지를 송수신하는 과정에서 병렬 프로세스를 제공하여 메시지 전송 속도를 높이고자 한다.
본 발명은 CAN-FlexRay 노드들 간의 메시지 교환을 다수의 병렬 프로세스가 동시에 또는 독립적으로 처리할 수 있도록 한다. 이를 위해 DMA(Direct Memory Access) 방식을 제공한다.
특히, 본 발명은 CAN - FlexRay 이종의 메시지 전송 속도를 높이기 위해 메시지 디스패처를 인스턴스화 하여 병렬로 제어함으로써, 차량 내 게이트웨이에 적용될 경우 차량 내 네트워크의 신뢰성을 극대화 시킬 수 있다.
전술한 과제를 달성하기 위해, 본 발명의 일 실시 예에 따른 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법은 이종의 프로토콜을 사용하는 노드들 간에 메시지를 교환함에 있어서, 제 1 프로토콜을 사용하는 제 1 노드로부터 제 1 메시지를 수신하는 단계, 상기 제 1 메시지에서 송신할 데이터를 추출하여 제 1 프로토콜을 사용하는 하나 이상의 노드들에 할당된 제 1 메모리 영역의 제 1 주소 영역에 저장하는 단계, 룩업 테이블을 이용하여 제 2 프로토콜을 사용하는 하나 이상의 노드들에 할당된 제 2 메모리 영역의 제 2 주소 정보를 산출하는 단계, 상기 제 1 주소 영역 및 상기 제 2 주소 정보를 이용하여 데이터 송신을 요청하는 단계, 및 상기 데이터를 상기 제 2 주소 영역의 제 2 메모리 영역에 저장한 후, 상기 제 2 프로토콜을 사용하는 제 2 노드에게 상기 제 2 메시지를 송신하는 단계를 포함하며, 상기 제 1 메모리 영역 또는 제 2 메모리 영역에 메시지를 저장하는 것은 다수의 메시지 디스패처에 의해 병렬적으로 수행되는 것을 특징으로 한다.
본 발명의 일 실시 예에 따른 이종 프로토콜 통신에서 병렬 메시지를 처리하는 장치는 제 1 프로토콜을 사용하는 노드들의 메시지 송수신을 제어하는 제 1 컨트롤러, 제 2 프로토콜을 사용하는 노드들의 메시지 송수신을 제어하는 제 2 컨트롤러, 상기 제 1 프로토콜을 사용하는 노드들에게 송수신될 메시지를 저장하는 제 1 메모리 영역, 상기 제 2 프로토콜을 사용하는 노드들에게 송수신될 메시지를 저장하는 제 2 메모리 영역, 상기 제 1 메모리 영역 및 상기 제 2 메모리 영역 간의 매핑된 메모리 주소 정보를 제공하는 룩업 테이블, 및 상기 제 1 메모리 영역과 상기 제 2 메모리 영역 간의 병렬적인 데이터 송수신을 제어하는 메시지 디스패처를 포함하며, 상기 제 1 컨트롤러는 제 1 프로토콜을 사용하는 제 1 노드들로부터 제 1 메시지를 수신하여 상기 제 1 메시지에서 송신할 데이터를 추출하여 제 1 프로토콜을 사용하는 하나 이상의 노드들에 할당된 제 1 메모리 영역의 제 1 주소 영역에 저장하며, 상기 메시지 디스패처는 인스턴스를 생성하여, 상기 룩업 테이블을 이용하여 제 2 프로토콜을 사용하는 하나 이상의 노드들에 할당된 제 2 메모리 영역의 제 2 주소 정보를 산출하여 상기 제 1 주소 영역 및 상기 제 2 주소 정보를 이용하여 데이터 송신을 진행하여 상기 데이터를 상기 제 2 주소 영역의 제 2 메모리 영역에 저장하며, 상기 제 2 컨트롤러는 상기 제 2 프로토콜을 사용하는 제 2 노드에게 상기 제 2 메시지를 송신한다.
본 발명은 게이트웨이 내에서의 전송 속도를 높이기 위해 다수의 메시지 디스패처 프로세스를 구현하여 병렬적으로 메시지를 송수신할 수 있도록 한다.
본 발명에서 제안한 방법에 의해 게이트웨이 내에서 다수의 버스를 통해 송, 수신되는 메시지들이 병렬적으로 처리됨으로써 게이트웨이의 메시지 변환과 전달 기능에 의해 발생하는 전송의 지연을 최소화 할 수 있다. 또한, 종래의 발명에서 제시한 방법들은 순차적인 메시지의 변환과 전달을 다루고 있어 다수의 버스에서 복수의 메시지들이 게이트웨이를 통해 전달될 경우 순차적 처리로 인해 메시지의 개수에 비례하는 전송 지연이 필연적으로 발생하게 된다. 그러나 제안한 방법에서는 복수의 메시지들을 병렬적으로 처리하게 됨으로써 종래의 발명이 가지고 있는 한계를 극복할 수 있다는 장점이 있다. 그러므로 제안한 방법이 차량 내 게이트웨이에 적용될 경우 차량 내 네트워크의 신뢰성을 극대화 시킬 수 있게 된다.
도 1은 본 명세서의 일 실시예가 적용되는 CAN-FlexRay 게이트웨이의 구조를 보여주는 도면이다.
도 2는 본 명세서에서 언급되는 게이트웨이의 일반적인 구조를 보여주는 도면이다.
도 3은 본 명세서의 일 실시예에 의한 CAN 버스 측에서 FlexRay 버스 측으로의 메시지 전달과정을 나타내는 도면이다.
도 4는 본 명세서의 일 실시예에 의한 FlexRay 버스 측에서 CAN 버스 측으로의 메시지 전달과정을 나타내는 도면이다.
도 5는 본 명세서의 일 실시예에 의한 CAN-FlexRay 간에 메시지를 교환하는 과정에서 병렬로 처리하는 과정을 보여주는 도면이다.
도 6은 본 명세서의 일 실시예에 의한 이종의 프로토콜을 사용하는 노드들 간에 메시지를 교환하는 과정을 보여주는 도면이다.
도 7은 본 명세서의 일 실시예에 의한 CAN 노드에서 FlexRay 노드로 메시지를 송신하는 과정을 보여주는 도면이다.
도 8은 본 명세서의 일 실시예에 의한 FlexRay 노드에서 CAN 노드로 메시지를 송신하는 과정을 보여주는 도면이다.
이하, 본 발명의 일부 실시 예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
CAN과 FlexRay 버스 간에 메시지를 교환할 수 있는 방법으로 제안된 내용은 CAN 메시지의 ID와 FlexRay 슬롯을 매칭하는 방법 또는 메시지를 변환 방법이 있다. 한편, CAN과 FlexRay 버스 간에 메시지를 교환하기 위한 매핑 테이블을 제안하고 이에 필요한 필터링 기법과 메시지를 저장하기 위한 메시지 큐를 적용할 수 있다. 그러나 이러한 방법을 적용할 경우, CAN과 FlexRay와 같이 서로 다른(이종의) 버스 사이에 위치한 게이트웨이 내의 메시지 전달 과정에서 전송 지연이 발생할 수 있다.
도 1은 본 명세서의 일 실시예가 적용되는 CAN-FlexRay 게이트웨이의 구조를 보여주는 도면이다. 도 1의 CAN-FlexRay 게이트웨이(150)는 다수의 CAN 버스(1, ..., N)과 한 개 이상의 FlexRay 버스가 접속된다. 다수의 CAN 버스(1, ..., N)는 다수의 CAN 노드들(111, 112, 113, 114)로부터 수신한 다수의 메시지를 전달하며, 동시에 전달되는 수많은 CAN 메시지들이 전송 지연되며 FlexRay 버스로 전달될 수도 있다. 즉, CAN 버스는 다수이므로 동시에 메시지를 송신할 수 있으나 게이트웨이의 기능은 이들을 동시에 처리할 수 없기 때문에 CAN 노드들(111, 112, 113, 114)이 모두 메시지들을 생성하여 송신할 경우, FlexRay 노드들(121, 122, 123, 124)에게 지연되어 전송될 수 있다.
도 2는 본 명세서에서 언급되는 게이트웨이의 일반적인 구조를 보여주는 도면이다. 이종 네트워크의 데이터를 교환하는 일 실시예로 CAN 프로토콜과 FlexRay 프로토콜을 이용하는 장치들 간의 메시지 교환에 대해 살펴본다. 이는 본 명세서의 일 실시예에 해당하며, 본 명세서의 기술적인 제안이 CAN 또는 FlexRay에 한정되는 것은 아니다.
CAN-FlexRay 게이트웨이(200)는 다수의 CAN 버스(221, 229)와 한 개 이상의 FlexRay 버스(231)가 접속되는 경우가 일반적이다. 본 명세서에서는 다양한 버스 접속 상황에 적용할 수 있으며, 일 실시예로 도 2의 구성을 중심으로 설명하고자 한다. 이러한 구성 하에서는 다수의 CAN 메시지가 복수의 CAN 버스를 통해 게이트웨이에 전달되는 상황이 발생할 수 있으며, 극단적인 경우에는 거의 동시에 전달된 수많은 CAN 메시지들을 최소한의 전송지연을 부가하여 FlexRay 버스로 전달하는 것이 요구될 수 있다.
CAN 버스(221, 229)를 통해 메시지를 송, 수신하기 위해서는 일반적으로 전용 CAN 컨트롤러(220)가 사용되며 이는 게이트웨이 시스템에 하드웨어적으로 포함된다. 또한, FlexRay 버스(231)를 통해 프레임을 송, 수신하기 위해서는 전용의 FlexRay 컨트롤러(230)가 사용되며 이는 게이트웨이 시스템에 하드웨어적으로 포함된다. CAN 컨트롤러(220)와 FlexRay 컨트롤러(230)는 게이트웨이의 메인 CPU(210) 내에 온칩 (on-chip)의 형태로 내장되는 것이 일반적이나 별도의 IC를 사용하여 게이트웨이(200)를 구성할 수도 있다.
게이트웨이(200)에 접속된 각각의 CAN 버스(221, 229)마다 이를 통해 수신된 CAN 메시지를 임시로 저장할 수 있는 ‘CAN 메시지 수신 큐 (Queue)’가 할당되어 있으며 또한, CAN 버스를 통해 전송될 메시지를 임시로 저장할 수 있는 ‘CAN 메시지 송신 큐’가 할당된다. 두 가지 큐를 ‘CAN 메시지 큐’로 통칭하기로 한다. FlexRay 메시지 버퍼(235)는 FlexRay 데이터를 송, 수신 할 때 임시로 데이터를 저장하는 데에 사용되며 다수의 메시지 버퍼들은 전송용과 수신용으로 미리 구분되어 사용된다.
메시지의 송수신 과정을 보다 상세히 살펴보면 도 3, 4와 같다.
도 3은 본 명세서의 일 실시예에 의한 CAN 버스 측에서 FlexRay 버스 측으로의 메시지 전달과정을 나타내고 있다. CAN 컨트롤러(320)는 CAN 버스(321, 329)를 통해 메시지를 수신하게 되면 인터럽트를 발생시키고 이의 인터럽트 서비스 루틴(Interrupt Service Routine, ISR, 329)에서는 CAN 메시지에서 데이터(Payload)를 추출하여 CAN 메시지 수신 큐(325)에 저장하고 나서 메시지 디스패처(350)를 호출하여 제어권을 넘겨주게 된다.
물론, 이와는 반대의 경우도 가능한데, FlexRay 측에서 전달된 데이터가 CAN 메시지 송신 큐에 저장되면 인터럽트가 발생하게 되고 이의 서비스 루틴에서는 CAN 컨트롤러(320)로 하여금 큐에 저장된 메시지를 CAN 버스를 통해 전송하도록 요청하게 된다.
게이트웨이(300)의 기능 중에서 가장 중요한 역할을 담당하는 것은 메시지 디스패처 (Message Dispatcher, 350)로서 CAN 메시지 큐(325, 326, 327, 328)와 FlexRay 메시지 버퍼(335) 간에 데이터를 전송하는 역할을 담당한다. 메시지 디스패처는 CAN 메시지의 ID, CAN 메시지 큐의 주소, FlexRay 메시지 버퍼(335)의 주소, FlexRay 슬롯의 번호 간의 관계가 정의된 참고 테이블 (Look-up Table, LUT, 340)을 참고하여 데이터의 송, 수신 방향과 목적지를 정확하게 파악할 수 있게 된다.
메시지 디스패처(350)가 LUT(340)를 기반으로 CAN 메시지 큐와 FlexRay 메시지 버퍼의 정확한 송,수신 주소를 얻게 되면 이를 DMA 컨트롤러(370)에 알려주며 DMA(Direct Memory Access)를 요청함으로써 메인 CPU의 개입이 없이 데이터를 전송할 수 있게 되어 메시지 전송 상의 지연을 획기적으로 줄일 수 있게 된다.
메시지 디스패처(350)와 DMA를 통해 CAN 버스 측의 데이터가 FlexRay 메시지 버퍼에 저장되면 인터럽트가 발생되며 이의 인터럽트 서비스 루틴(351)에서는 FlexRay 컨트롤러(330)로 하여금 메시지 버퍼(335)에 저장된 메시지를 FlexRay 버스(331)를 통해 전송하도록 요청하게 된다. 역으로, FlexRay 버스(331)를 통해 프레임이 수신되면 FlexRay 컨트롤러(330)가 데이터 (payload)를 추출하여 메시지 버퍼에 이를 저장하게 된다. 메시지 버퍼에 데이터가 저장되면 인터럽트가 발생하게 되고 이의 인터럽트 서비스 루틴에서는 메시지 디스패처를 호출하며 제어권을 넘겨주게 된다.
도 4는 본 명세서의 일 실시예에 의한 FlexRay 버스 측에서 CAN 버스 측으로의 메시지 전달과정을 나타내고 있다. 앞서 살펴본 CAN 버스에서 FlexRay 버스로 송신하는 과정과 유사하다. 간략히 살펴보면, FlexRay 버스를 통해 FlexRay 컨트롤러(430)가 프레임을 수신하면, 인터럽트를 발생시키게 되고, 이의 인터럽트 서비스 루틴(451)에서는 수신된 메시지에서 데이터 (Payload)를 추출해 메시지 버퍼에 넣고나서 메시지 디스패처(450)를 호출하여 제어권을 넘겨주게 된다. 메시지 디스패처는 FlexRay 메시지의 ID, FlexRay 메시지 버퍼(435)의 주소, CAN 메시지 큐(426)의 주소, FlexRay 슬롯의 번호 간의 관계가 정의된 참고 테이블 (Look-up Table, LUT, 440)을 참고하여 데이터의 송, 수신 방향과 목적지를 정확하게 파악할 수 있게 된다.
메시지 디스패처(450)가 LUT(440)를 기반으로 CAN 메시지 큐와 FlexRay 메시지 버퍼의 정확한 송,수신 주소를 얻게 되면 이를 DMA 컨트롤러(470)에 알려주며 DMA(Direct Memory Access)를 요청함으로써 메인 CPU의 개입이 없이 데이터를 전송할 수 있게 되어 메시지 전송 상의 지연을 획기적으로 줄일 수 있게 된다.
메시지 디스패처(450)와 DMA를 통해 FlexRay 버스 측의 데이터가 CAN 메시지 송신큐(426)에 저장되면 인터럽트가 발생되며 이의 인터럽트 서비스 루틴(429)에서는 CAN컨트롤러(420)로 하여금 CAN 메시지 송신큐(426)에 저장된 메시지를 CAN버스(421)를 통해 전송하도록 요청하게 된다.
도 5는 본 명세서의 일 실시예에 의한 CAN-FlexRay 간에 메시지를 교환하는 과정에서 병렬로 처리하는 과정을 보여주는 도면이다.
도 5의 구성을 살펴보면, 이종의 프로토콜을 사용하는 노드들 간에 메시지를 교환하는 게이트웨이에 있어서, 제 1 프로토콜을 사용하는 노드들의 메시지 송수신을 제어하는 제 1 컨트롤러와 제 2 프로토콜을 사용하는 노드들의 메시지 송수신을 제어하는 제 2 컨트롤러를 포함한다. 본 명세서의 일 실시예에 의하면, 제 1 컨트롤러 및 제 2 컨트롤러는 각각 CAN 컨트롤러와 FlexRay 컨트롤러가 될 수 있다. 또한 본 명세서의 다른 실시예에 의하면, 제 1 컨트롤러 및 제 2 컨트롤러는 각각 FlexRay 컨트롤러와 CAN 컨트롤러가 될 수 있다.
그리고 두 개의 메모리 영역을 포함하는데, 상기 제 1 프로토콜을 사용하는 노드들에게 송수신될 메시지를 저장하는 제 1 메모리 영역과 상기 제 2 프로토콜을 사용하는 노드들에게 송수신될 메시지를 저장하는 제 2 메모리 영역이 될 수 있다.
본 명세서의 일 실시예에 의하면, 제 1 메모리 영역 및 제 2 메모리 영역은 각각 CAN 메시지 큐와 FlexRay 메시지 버퍼가 될 수 있다. 또한 본 명세서의 다른 실시예에 의하면, 제 1 컨트롤러 및 제 2 컨트롤러는 각각 FlexRay 메시지 버퍼와 CAN 메시지 큐가 될 수 있다.
그리고 룩업테이블을 포함하는데, 이는 상기 제 1 메모리 영역 및 상기 제 2 메모리 영역 간의 매핑된 메모리 주소 정보를 제공한다. 그리고, 상기 제 1 메모리 영역과 상기 제 2 메모리 영역 간의 병렬적인 데이터 송수신을 제어하는 메시지 디스패처를 포함한다. 메시지 디스패처는 도 5에 나타난 바와 같이 다수의 인스턴스로 구성될 수 있으며, 이들 인스턴스가 각각 메시지를 송수신하도록 DMA 컨트롤러를 제어할 수 있다.
보다 상세히 살펴보면, 상기 제 1 컨트롤러는 제 1 프로토콜을 사용하는 제 1 노드들로부터 제 1 메시지를 수신하여 상기 제 1 메시지에서 송신할 데이터를 추출하여 제 1 프로토콜을 사용하는 하나 이상의 노드들에 할당된 제 1 메모리 영역의 제 1 주소 영역에 저장하게 된다. 그리고, 상기 메시지 디스패처는 인스턴스를 생성하여, 상기 룩업 테이블을 이용하여 제 2 프로토콜을 사용하는 하나 이상의 노드들에 할당된 제 2 메모리 영역의 제 2 주소 정보를 산출하여 상기 제 1 주소 영역 및 상기 제 2 주소 정보를 이용하여 데이터 송신을 진행하여 상기 데이터를 상기 제 2 주소 영역의 제 2 메모리 영역에 저장할 수 있다. 이후, 상기 제 2 컨트롤러는 상기 제 2 프로토콜을 사용하는 제 2 노드에게 상기 제 2 메시지를 송신하게 된다.
보다 상세히 살펴볼 경우, 상기 제 1 메모리 영역 및 상기 제 2 메모리 영역 간에 DMA 방식으로 데이터를 송수신하는 DMA 컨트롤러가 있으며, 상기 메시지 디스패처는 상기 제 1 메모리 영역의 제 1 주소에 관한 정보 및 상기 제 2 메모리 영역의 제 2 주소에 관한 정보를 상기 DMA 컨트롤러에게 제공할 수 있다.
상기 구성의 보다 상세한 실시예를 살펴보면 도 5와 같다.
본 명세서의 일 실시예에 의하면, 메시지를 교환하는 과정을 기능적으로 구분할 때, 'CAN 메시지 큐의 작용' -'메시지 디스패처와 DMA의 작용' -'FlexRay 메시지 버퍼의 작용'은 하나의 세트(Set)로 묶여서 동작하게 되며 이는 각각의 CAN 버스와 CAN 버스와 연동되는 FlexRay 슬롯 간에 한 세트씩 할당되어 각각의 기능이 개별적이고 병렬적으로 동작할 수 있다. 이는 도 5에 나타난 바와 같이, CAN 버스마다 메시지 큐가 별도로 할당되도록 구현할 수 있으며, 메시지 디스패처는 복수의 인스턴스 (Instance, 551, 559)로 실행되도록 구현할 수 있다. 또한, 복수개의 DMA 채널(#1, ..., #k)이 각각의 CAN 메시지 큐와 FlexRay 메시지 버퍼(535) 간에 하나씩 할당이 되도록 구현할 수 있으며, FlexRay 슬롯마다 별도의 메시지 버퍼가 할당되도록 구현할 수 있다. 보다 상세히 살펴보면, 다음과 같다.
먼저 도 5의 구성을 중심으로 CAN 버스에서 FlexRay 버스로 메시지가 송신되는 경우를 살펴보고자 한다. 앞서 살펴본 바와 같이 상기 제 1 프로토콜이 CAN 프로토콜이며, 상기 제 2 프로토콜이 FlexRay 프로토콜인 경우의 실시예이며, 상기 제 1 메모리 영역은 상기 제 1 프로토콜을 사용하는 노드들이 병렬적으로 메시지를 송신할 수 있도록 구분된 것을 특징으로 한다.
CAN 버스(521)를 통해 수신되는 메시지에 대해 CAN 컨트롤러(520)가 인터럽트를 발생시킨다. 그리고, 앞서 도 3에서 살펴본 바와 같이, 해당 인터럽트의 서비스 루틴에서 수신된 메시지에서 데이터 (Payload)를 추출해 CAN 메시지 큐에 ID와 함께 넣고 나서 메시지 디스패처 인스턴스 #1(551)을 호출하고 제어권을 넘기게 된다. 메시지 디스패처 인스턴스 #1(551)은 CAN 메시지 큐의 메시지 ID를 LUT(540)와 대조하여 대응되는 FlexRay 사이클(Cycle) 내의 슬롯 번호와 이와 연관된 FlexRay 메시지 버퍼의 주소를 찾아낸다. 그리고 메시지 디스패처 인스턴스 #1(551)이 특정 CAN 메시지 큐의 주소와 목적지 FlexRay 메시지 버퍼의 주소를 DMA 컨트롤러에 알려주며 DMA를 요구하면, DMA 컨트롤러는 DMA 채널 #1에서 CPU의 개입 없이 CAN 메시지 큐의 데이터를 FlexRay 메시지 버퍼(535)에 써넣게 된다. 그리고, FlexRay 메시지 버퍼(535)에 새로운 데이터가 기록될 때 도 3에서 살펴본 바와 같이 인터럽트가 발생되며, FlexRay 메시지 버퍼(535)의 인터럽트 서비스 루틴에서 메시지 버퍼 내의 데이터를 전송하기 위해 FlexRay 컨트롤러에 전송 요청을 하게 된다. 그리고, FlexRay 컨트롤러(530)가 메시지 버퍼(535)내의 데이터를 FlexRay 프레임의 형태로 가공하여 해당 슬롯에 넣어서 전송을 수행하게 된다.
본 명세서의 일 실시예에 의해 CAN 버스에서 FlexRay 버스로 병렬 방식으로 메시지가 송신될 수 있도록, 게이트웨이(500)에 연결된 CAN 버스마다 하나씩의 CAN 메시지 큐를 지정할 수 있다. 또한, 각각의 CAN 버스 마다 할당된 CAN 메시지 큐, 이들이 각각 이용하는 DMA 채널, 그리고 CAN 메시지 큐와 1:1 대응 관계에 있는 FlexRay 메시지 버퍼의 세트 (set) 별로 독자적으로 구동되도록 할 수 있다.
다음으로, 도 5의 구성을 중심으로 FlexRay 버스에서 CAN 버스로 메시지가 송신되는 경우를 살펴보고자 한다. 앞서 살펴본 바와 같이 상기 제 1 프로토콜이 FlexRay 프로토콜이며, 상기 제 2 프로토콜이 CAN 프로토콜인 경우, 상기 제 2 메모리 영역은 상기 제 2 프로토콜을 사용하는 노드들이 병렬적으로 메시지를 수신할 수 있도록 구분된 것을 특징으로 한다.
FlexRay 버스(531)를 통해 수신되는 메시지에 대해 FlexRay 컨트롤러(530)가 인터럽트를 발생시킨다. 이는 앞서 도 4에서 살펴본 사항과 같다. 해당 인터럽트의 서비스 루틴에서 수신된 메시지에서 데이터(Payload)를 추출해 FlexRay 메시지 버퍼(535)에 넣고 나서 메시지 디스패처 인스턴스 #k(559)를 호출하고 제어권을 넘긴다. 메시지 디스패처 인스턴스 #k(559)는 FlexRay 메시지 버퍼(535)의 번호를 LUT(540)와 대조하여 대응되는 CAN 메시지 큐의 주소를 찾아낸다. 그리고, 메시지 디스패처 인스턴스 #k(559)가 특정 FlexRay 메시지 버퍼 주소와 목적지 CAN 메시지 큐의 주소를 DMA 컨트롤러에 알려주며 DMA를 할 것을 요청한다. 이후, DMA 컨트롤러는 CPU의 개입 없이 DMA 채널 #k를 통해 FlexRay 메시지 버퍼의 데이터를 CAN 메시지 큐에 써넣게 된다.
CAN 메시지 큐에 새로운 데이터가 기록될 때 인터럽트가 발생되며, CAN 메시지 큐의 인터럽트 서비스 루틴에서 메시지 큐 내의 데이터를 전송하기 위해 CAN 컨트롤러(520)에 전송을 요청한다. 그리고, CAN 컨트롤러(520)가 메시지 버퍼내의 데이터를 CAN 메시지의 형태로 가공하여 해당 버스(529)를 통해 전송을 수행한다.
본 명세서의 일 실시예에 의해 FlexRay버스에서 CAN 버스로 병렬 방식으로 메시지가 송신될 수 있도록, 게이트웨이(500)에 연결된 CAN 버스마다 하나씩의 CAN 메시지 큐를 지정할 수 있다. 또한, 각각의 CAN 버스 마다 할당된 CAN 메시지 큐, 이들이 각각 이용하는 DMA 채널, 그리고 CAN 메시지 큐와 1:1 대응 관계에 있는 FlexRay 메시지 버퍼의 세트 (set) 별로 독자적으로 구동되도록 할 수 있다.
도 6은 본 명세서의 일 실시예에 의한 이종의 프로토콜을 사용하는 노드들 간에 메시지를 교환하는 과정에 대해 살펴보고자 한다. 제 1 프로토콜을 사용하는 제 1 노드로부터 제 1 메시지를 수신한다(S610). 그리고, 상기 제 1 메시지에서 송신할 데이터를 추출하여 제 1 프로토콜을 사용하는 하나 이상의 노드들에 할당된 제 1 메모리 영역의 제 1 주소 영역에 저장한다(S620). 메모리 간의 데이터 전송을 위해 주소 정보를 확인해야 하므로, 룩업 테이블을 이용하여 제 2 프로토콜을 사용하는 하나 이상의 노드들에 할당된 제 2 메모리 영역의 제 2 주소 정보를 산출한다(S630). 이후, 상기 제 1 주소 영역 및 상기 제 2 주소 정보를 이용하여 데이터 송신을 요청하고(S640), 상기 데이터를 상기 제 2 주소 영역의 제 2 메모리 영역에 저장한 후, 상기 제 2 프로토콜을 사용하는 제 2 노드에게 상기 제 2 메시지를 송신한다. 이 과정에서 상기 제 1 메모리 영역 또는 제 2 메모리 영역에 메시지를 저장하는 것은 다수의 메시지 디스패처에 의해 병렬적으로 수행되는 것임을 앞서 살펴보았다.
S640에서 상기 제 1 메모리 영역의 제 1 주소에 관한 정보 및 상기 제 2 메모리 영역의 제 2 주소에 관한 정보를 DMA 컨트롤러에게 제공하도록 구현할 수 있다. 도 5에서 살펴본 바와 같이 CAN 노드에서 FlexRay 노드로 메시지가 전송되는 경우, 즉, 상기 제 1 프로토콜이 CAN 프로토콜이며, 상기 제 2 프로토콜이 FlexRay 프로토콜인 경우를 가정할 때, 상기 제 1 메모리 영역은 상기 제 1 프로토콜을 사용하는 노드들이 병렬적으로 메시지를 송신할 수 있도록 구분되어 다수의 메시지 대스패처가 메시지를 전달할 수 있다.
도 5에서 살펴본 바와 같이 FlexRay 노드에서 CAN 노드로 메시지가 전송되는 경우, 즉, 상기 제 1 프로토콜이 FlexRay 프로토콜이며, 상기 제 2 프로토콜이 CAN 프로토콜인 경우를 가정할 때, 상기 제 2 메모리 영역은 상기 제 2 프로토콜을 사용하는 노드들이 병렬적으로 메시지를 수신할 수 있도록 구분되어 다수의 메시지 대스패처가 메시지를 전달할 수 있다.
또한, 인터럽트 서비스 루틴을 통해 인터럽트를 처리할 수 있다. 즉, 상기 제 1 메시지를 수신하는 단계인 S610 이후에 상기 제 1 메시지의 수신을 알리는 인터럽트를 발생하여, 인터럽트 서비스 루틴이 이를 처리할 수 있도록 한다.
또한, 상기 제 2 메시지를 송신하는 단계인 S650 이전에 상기 제 2 메시지의 송신을 알리는 인터럽트를 발생하여, 인터럽트 서비스 루틴이 이를 처리할 수 있도록 한다.
도 6의 도면을 보다 상세히 살펴보면 도 7, 8과 같다.
도 7은 본 명세서의 일 실시예에 의한 CAN 노드에서 FlexRay 노드로 메시지를 송신하는 과정을 보여주는 도면이다. CAN 버스로부터 메시지를 수신한다(S710). 그리고, CAN 컨트롤러가 인터럽트를 발생시킨다(S715). 그리고 해당 인터럽트의 서비스 루틴에서 수신된 메시지에서 데이터 (Payload)를 추출해 CAN 메시지 큐에 ID와 함께 저장한다(S720). 이후, ISR은 메시지 디스패처 인스턴스를 호출하고 복귀한다(S725). 메시지 디스패처 인스턴스는 CAN 메시지 큐의 메시지 ID를 LUT와 대조하여 대응되는 FlexRay 사이클(Cycle) 내의 슬롯 번호와 이와 연관된 FlexRay 메시지 버퍼의 주소를 찾아낸다(S730). 그리고 메시지 디스패처 인스턴스는 송, 수신 주소(특정 CAN 메시지 큐의 주소와 목적지 FlexRay 메시지 버퍼의 주소)를 DMA 컨트롤러에 알려주고 DMA를 요청한다(S735)
DMA 컨트롤러는 DMA 방식으로 CAN 메시지 큐의 데이터를 FlexRay 메시지 버퍼에 전송한다(S740). 그리고, FlexRay 메시지 버퍼에 새로운 데이터가 기록될 때 인터럽트가 발생하며(S745), FlexRay 메시지 버퍼의 인터럽트 서비스 루틴에서 메시지 버퍼 내의 데이터를 전송하기 위해 FlexRay 컨트롤러에 전송 요청을 하게 된다(S750). 그리고, FlexRay 컨트롤러가 메시지 버퍼 내의 데이터를 FlexRay 프레임의 형태로 가공하여 해당 슬롯에 넣어서 전송을 수행하게 된다(S755).
도 8은 본 명세서의 일 실시예에 의한 FlexRay 노드에서 CAN 노드로 메시지를 송신하는 과정을 보여주는 도면이다.
FlexRay 버스로부터 메시지를 수신한다(S810). 그리고, FlexRay 컨트롤러가 인터럽트를 발생시킨다(S815). 그리고 해당 인터럽트의 서비스 루틴에서 수신된 메시지에서 데이터 (Payload)를 추출해 FlexRay 메시지 버퍼에 이를 저장한다(S820). 이후, ISR은 메시지 디스패처 인스턴스를 호출하고 복귀한다(S825). 메시지 디스패처 인스턴스는 FlexRay 메시지 버퍼의 주소를 LUT와 대조하여 대응되는 CAN 메시지 큐의 주소를 찾아낸다(S830). 그리고 메시지 디스패처 인스턴스는 송, 수신 주소(특정 FlexRay 메시지 버퍼의 주소와 목적지 CAN 메시지 큐의 주소)를 DMA 컨트롤러에 알려주고 DMA를 요청한다(S835)
DMA 컨트롤러는 DMA 방식으로 FlexRay 메시지 버퍼의 데이터를 CAN 메시지 버퍼에 전송한다(S840). 그리고, CAN 메시지 큐에 새로운 데이터가 기록될 때 인터럽트가 발생하며(S845), CAN 메시지 큐의 인터럽트 서비스 루틴에서 메시지 버퍼 내의 데이터를 전송하기 위해 CAN 컨트롤러에 전송 요청을 하게 된다(S850). 그리고, CAN 컨트롤러가 메시지 큐 내의 데이터를 의도된 노드로 전송을 수행하게 된다(S855).
앞서 살펴본 본 명세서의 실시예들은 종래의 방법들, 예를 들어 CAN 메시지의 ID와 FlexRay 슬롯을 매칭하거나, 메시지를 변환하는 방법이 가진 한계를 극복하고 게이트웨이의 전송 지연을 최소화 할 수 있는 방법을 제안하고자 한다. 즉,
이를 위해 게이트웨이 내에서 각 버스에서 유입되는 메시지를 수신하여 메시지 저장소에 임시로 저장하는 과정, 이를 상대편 버스에 싣기 위해 메시지를 변환하는 과정, 그리고 이를 상대편 버스를 통해 전송하는 등의 일련의 과정을 다수의 메시지에 대해 각각 병렬로 처리하여 다수의 메시지가 게이트웨이를 통과하더라도 전송 지연이 증가하지 않도록 한다.
최근 게이트웨이를 위해 사용되는 마이크로프로세서 (Microprocessor)들은 CAN, FlexRay, LIN, MOST, Ethernet 컨트롤러를 하나의 칩 내에 내장하는 경우가 일반적이므로 앞서 살펴본 하드웨어 구조가 하나의 칩에 해당한다고 볼 수 있다. 본 명세서에서는 이러한 추세를 반영하여 하드웨어적 구성인 FlexRay 컨트롤러, CAN 컨트롤러, CAN 메시지 큐에 사용되는 메모리, 그리고 FlexRay 메시지 버퍼에 사용되는 메모리를 제외한 모든 기능이 소프트웨어적으로 구현되도록 하였다. 즉, 메시지의 큐의 운용, 메시지 버퍼의 운용, 메시지 디스패쳐의 운용, 그리고 이들의 병렬적 수행 등이 소프트웨어 적으로 구현된다는 것이며 하드웨어 구조에 영향을 받지 않도록 구현하여, 하나의 마이크로 프로세서 내의 다양한 통신 프로토콜 간에 게이트웨이 기능을 수행할 수 있도록 한다. 그 결과, 본 명세서에서 제안한 방법은 이러한 하드웨어 환경에서 유연하게 적용 가능하며, 내부 구조가 다른 마이크로프로세서에도 손쉽게 이식이 가능하다는 장점이 있다. 또한, 게이트웨이를 중심으로 한 버스 형상 (Topology)이 변화하더라도 소프트웨어 기능의 수정으로 이러한 변화에 손쉽게 대처할 수 있는 유연성을 제공하는 장점이 있다.
소프트웨어적으로 구현함으로써, 하드웨어의 구현에 고착화되어 변경이 불가능하도록 설정되는 것을 피할 수 있다.
본 명세서에서 제안한 방법에 의해 게이트웨이 내에서 다수의 버스를 통해 송, 수신되는 메시지들이 병렬적으로 처리됨으로써 게이트웨이의 메시지 변환과 전달 기능에 의해 발생하는 전송의 지연을 최소화 할 수 있다. 또한, 종래의 발명에서 제시한 방법들은 순차적인 메시지의 변환과 전달을 다루고 있어 다수의 버스에서 복수의 메시지들이 게이트웨이를 통해 전달될 경우 순차적 처리로 인해 메시지의 개수에 비례하는 전송 지연이 필연적으로 발생하게 된다. 그러나 제안한 방법에서는 복수의 메시지들을 병렬적으로 처리하게 됨으로써 종래의 발명이 가지고 있는 한계를 극복할 수 있다는 장점이 있다. 그러므로 제안한 방법이 차량 내 게이트웨이에 적용될 경우 차량 내 네트워크의 신뢰성을 극대화 시킬 수 있게 된다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
200, 300, 400, 500: CAN-FlexRay 게이트웨이
220, 320, 420, 520: CAN 컨트롤러
230, 330, 430, 530:: FlexRay 컨트롤러

Claims (12)

  1. 이종의 프로토콜을 사용하는 노드들 간에 메시지를 교환함에 있어서,
    제 1 프로토콜을 사용하는 제 1 노드로부터 제 1 메시지를 수신하는 단계;
    상기 제 1 메시지에서 송신할 데이터를 추출하여 제 1 프로토콜을 사용하는 하나 이상의 노드들에 할당된 제 1 메모리 영역의 제 1 주소 영역에 저장하는 단계;
    룩업 테이블을 이용하여 제 2 프로토콜을 사용하는 하나 이상의 노드들에 할당된 제 2 메모리 영역의 제 2 주소 정보를 산출하는 단계;
    상기 제 1 주소 영역 및 상기 제 2 주소 정보를 이용하여 데이터 송신을 요청하는 단계;
    상기 제 1 주소 영역에 저장되며 데이터 송신이 요청된 데이터를 상기 제 2 주소 정보에 해당하는 제 2 메모리 영역에 저장하는 단계;
    상기 제 2 주소 정보에 해당하는 제 2 메모리 영역에 저장된 데이터를 토대로 생성된 제 2 메시지를 상기 제 2 프로토콜을 사용하는 제 2 노드에게 송신하는 단계
    를 포함하며,
    상기 제 1 메시지에서 추출된 데이터가 상기 제 2 메시지로서 제 2 노드에 전송되는 것은 다수의 메시지 디스패처 각각에 의해 병렬적으로 수행되는 것을 특징으로 하는, 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법.
  2. 제 1항에 있어서,
    상기 데이터 송신을 요청하는 단계는
    상기 제 1 메모리 영역의 제 1 주소에 관한 정보 및 상기 제 2 메모리 영역의 제 2 주소에 관한 정보를 DMA 컨트롤러에게 제공하는 단계를 포함하는, 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법.
  3. 제 1항에 있어서,
    상기 제 1 프로토콜이 CAN 프로토콜이며, 상기 제 2 프로토콜이 FlexRay 프로토콜인 경우, 상기 제 1 메모리 영역은 상기 제 1 프로토콜을 사용하는 노드들이 병렬적으로 메시지를 송신할 수 있도록 구분된 것을 특징으로 하는, 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법.
  4. 제 1항에 있어서,
    상기 제 1 프로토콜이 FlexRay 프로토콜이며, 상기 제 2 프로토콜이 CAN 프로토콜인 경우, 상기 제 2 메모리 영역은 상기 제 2 프로토콜을 사용하는 노드들이 병렬적으로 메시지를 수신할 수 있도록 구분된 것을 특징으로 하는, 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법.
  5. 제 1항에 있어서,
    상기 제 1 메시지를 수신하는 단계 이후에
    상기 제 1 메시지의 수신을 알리는 인터럽트를 발생하는 단계를 더 포함하는, 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법.
  6. 제 1항에 있어서,
    상기 제 2 메시지를 송신하는 단계 이전에
    상기 제 2 메시지의 송신을 알리는 인터럽트를 발생하는 단계를 더 포함하는, 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법.
  7. 이종의 프로토콜을 사용하는 노드들 간에 메시지를 교환하는 장치에 있어서,
    제 1 프로토콜을 사용하는 노드들의 메시지 송수신을 제어하는 제 1 컨트롤러;
    제 2 프로토콜을 사용하는 노드들의 메시지 송수신을 제어하는 제 2 컨트롤러;
    상기 제 1 프로토콜을 사용하는 노드들에게 송수신될 메시지를 저장하는 제 1 메모리 영역;
    상기 제 2 프로토콜을 사용하는 노드들에게 송수신될 메시지를 저장하는 제 2 메모리 영역;
    상기 제 1 메모리 영역 및 상기 제 2 메모리 영역 간의 매핑된 메모리 주소 정보를 제공하는 룩업 테이블; 및
    상기 제 1 메모리 영역과 상기 제 2 메모리 영역 간의 병렬적인 데이터 송수신을 제어하는 메시지 디스패처를 포함하며,
    상기 제 1 컨트롤러는 제 1 프로토콜을 사용하는 제 1 노드들로부터 제 1 메시지를 수신하여 상기 제 1 메시지에서 송신할 데이터를 추출하여 제 1 프로토콜을 사용하는 하나 이상의 노드들에 할당된 제 1 메모리 영역의 제 1 주소 영역에 저장하며;
    상기 메시지 디스패처는 복수의 인스턴스로 구현되며, 각 인스턴스는, 상기 룩업 테이블을 이용하여 제 2 프로토콜을 사용하는 하나 이상의 노드들에 할당된 제 2 메모리 영역의 제 2 주소 정보를 산출하고 상기 제 1 주소 영역 및 상기 제 2 주소 정보를 이용하여 데이터 송신을 진행하여 상기 데이터가 상기 제 2 주소 영역의 제 2 메모리 영역에 저장되도록 하며;
    상기 제 2 컨트롤러는 상기 제 2 프로토콜을 사용하는 제 2 노드에게 상기 제 2 메시지를 송신하는, 이종 프로토콜 통신에서 병렬 메시지를 처리하는 장치.
  8. 제 7항에 있어서,
    상기 제 1 메모리 영역 및 상기 제 2 메모리 영역 간에 DMA 방식으로 데이터를 송수신하는 DMA 컨트롤러를 더 포함하며,
    상기 메시지 디스패처는 상기 제 1 메모리 영역의 제 1 주소에 관한 정보 및 상기 제 2 메모리 영역의 제 2 주소에 관한 정보를 상기 DMA 컨트롤러에게 제공하는, 이종 프로토콜 통신에서 병렬 메시지를 처리하는 장치.
  9. 제 7항에 있어서,
    상기 제 1 프로토콜이 CAN 프로토콜이며, 상기 제 2 프로토콜이 FlexRay 프로토콜인 경우, 상기 제 1 메모리 영역은 상기 제 1 프로토콜을 사용하는 노드들이 병렬적으로 메시지를 송신할 수 있도록 구분된 것을 특징으로 하는, 이종 프로토콜 통신에서 병렬 메시지를 처리하는 장치.
  10. 제 7항에 있어서,
    상기 제 1 프로토콜이 FlexRay 프로토콜이며, 상기 제 2 프로토콜이 CAN 프로토콜인 경우, 상기 제 2 메모리 영역은 상기 제 2 프로토콜을 사용하는 노드들이 병렬적으로 메시지를 수신할 수 있도록 구분된 것을 특징으로 하는, 이종 프로토콜 통신에서 병렬 메시지를 처리하는 장치.
  11. 제 7항에 있어서,
    상기 제 1 컨트롤러가 상기 제 1 메시지를 수신한 경우, 상기 제 1 메시지의 수신을 알리는 인터럽트가 발생하는 것을 특징으로 하는, 이종 프로토콜 통신에서 병렬 메시지를 처리하는 장치.
  12. 제 7항에 있어서,
    상기 제 2 컨트롤러가 상기 제 2 메시지를 송신하는 경우, 상기 송신 이전에 상기 제 2 메시지의 송신을 알리는 인터럽트를 발생하는 것을 특징으로 하는, 이종 프로토콜 통신에서 병렬 메시지를 처리하는 장치.
KR1020100068433A 2010-07-15 2010-07-15 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법 및 장치 KR101094812B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100068433A KR101094812B1 (ko) 2010-07-15 2010-07-15 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100068433A KR101094812B1 (ko) 2010-07-15 2010-07-15 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101094812B1 true KR101094812B1 (ko) 2011-12-16

Family

ID=45506406

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100068433A KR101094812B1 (ko) 2010-07-15 2010-07-15 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101094812B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2869538A1 (en) * 2013-10-29 2015-05-06 Eaton Corporation Communication bridge between bus networks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070140294A1 (en) 2005-12-20 2007-06-21 Fujitsu Ten Limited Communication message conversion apparatus and communication message conversion method
JP2008277873A (ja) 2007-04-25 2008-11-13 Auto Network Gijutsu Kenkyusho:Kk 中継接続ユニット

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070140294A1 (en) 2005-12-20 2007-06-21 Fujitsu Ten Limited Communication message conversion apparatus and communication message conversion method
JP2008277873A (ja) 2007-04-25 2008-11-13 Auto Network Gijutsu Kenkyusho:Kk 中継接続ユニット

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2869538A1 (en) * 2013-10-29 2015-05-06 Eaton Corporation Communication bridge between bus networks
US10389553B2 (en) 2013-10-29 2019-08-20 Eaton Intelligent Power Limited Communication bridge between bus networks

Similar Documents

Publication Publication Date Title
US8451860B2 (en) Low-weight hybrid deterministic highspeed data bus
KR101016145B1 (ko) 통신 컴포넌트
US8571033B2 (en) Smart routing between peers in a point-to-point link based system
KR100687659B1 (ko) Axi 프로토콜에 따른 락 오퍼레이션을 제어하는네트워크 인터페이스, 상기 네트워크 인터페이스가 포함된패킷 데이터 통신 온칩 인터커넥트 시스템, 및 상기네트워크 인터페이스의 동작 방법
US7801173B2 (en) Communication message conversion apparatus and communication message conversion method
US8571044B2 (en) Gateway for data transfer between serial buses
JP5231400B2 (ja) マルチプロセッサ・ゲートウェイ
JP2008546298A (ja) 電子装置及び通信リソース割り当ての方法
CN101002444A (zh) 用于分组交换控制的集成电路和方法
CN107852423B (zh) 用于usb 2.0带宽保留的方法及系统
WO2023030336A1 (zh) 数据传输方法、tsn节点和计算机可读存储介质
CN104378161A (zh) 一种基于AXI4总线架构的FCoE协议加速引擎IP核
CN112953801A (zh) 车辆网关及其控制方法
US10848419B2 (en) Data transmission method, communication network and master participant
KR101135117B1 (ko) 이종 프로토콜 통신에서 프로세스의 우선 순위를 조절하여 지연을 보상하는 방법 및 장치
US20040019704A1 (en) Multiple processor integrated circuit having configurable packet-based interfaces
KR101094812B1 (ko) 이종 프로토콜 통신에서 병렬 메시지를 처리하는 방법 및 장치
KR102303424B1 (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
US20040017813A1 (en) Transmitting data from a plurality of virtual channels via a multiple processor device
JP7431848B2 (ja) 車両制御装置及びデータ転送制御方法
CN110601996B (zh) 一种采用令牌保底分布式贪心算法的环网防饥饿流控方法
US7853739B1 (en) Method and system for transmitting USB communication
KR100911336B1 (ko) 플렉스레이와 캔 통신 사이의 메시지 변환장치 및 캔아이디와 플렉스레이 슬롯의 매칭방법
US8402178B2 (en) Device to device flow control within a chain of devices
KR20120041990A (ko) 이종 프로토콜 간 대용량 데이터 전송을 위한 데이터 전송 시스템 및 그 데이터 전송 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160928

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170918

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180918

Year of fee payment: 8