KR102429410B1 - Routing method and apparatus - Google Patents

Routing method and apparatus Download PDF

Info

Publication number
KR102429410B1
KR102429410B1 KR1020200175257A KR20200175257A KR102429410B1 KR 102429410 B1 KR102429410 B1 KR 102429410B1 KR 1020200175257 A KR1020200175257 A KR 1020200175257A KR 20200175257 A KR20200175257 A KR 20200175257A KR 102429410 B1 KR102429410 B1 KR 102429410B1
Authority
KR
South Korea
Prior art keywords
routing
channel
destination
message
descriptor
Prior art date
Application number
KR1020200175257A
Other languages
Korean (ko)
Other versions
KR20220085303A (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 KR1020200175257A priority Critical patent/KR102429410B1/en
Publication of KR20220085303A publication Critical patent/KR20220085303A/en
Application granted granted Critical
Publication of KR102429410B1 publication Critical patent/KR102429410B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • 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/40052High-speed IEEE 1394 serial bus
    • H04L12/40065Bandwidth and channel allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/66Layer 2 routing, e.g. in Ethernet based MAN's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 차량 네트워크에서 발생하는 데이터의 누락을 최소화하여 안정적으로 데이터를 라우팅하는 방법 및 장치에 관한 것이다. 본 발명의 일 실시예에 따른 라우팅 방법은 수신 메시지를 각 채널이 공유하는 공유 버퍼에 저장하는 단계; 상기 수신 메시지가 전송되는 각 채널의 라우팅 규칙을 확인하는 단계; 상기 확인된 라우팅 규칙과 상기 수신 메시지가 저장된 공유 버퍼의 인덱스를 기초로, 송신 메시지 생성을 위한 디스크립터를 채널별로 생성하는 단계; 및 상기 디스크립터를 참조하여 상기 공유 버퍼에 저장된 수신 메시지의 일부를 페이로드로서 포함하고 상기 라우팅 규칙에 따라 작성된 헤더를 포함하는 송신 메시지를 해당 채널로 전송하는 단계를 포함할 수 있다. The present invention relates to a method and apparatus for stably routing data by minimizing omission of data occurring in a vehicle network. A routing method according to an embodiment of the present invention comprises: storing a received message in a shared buffer shared by each channel; checking a routing rule of each channel through which the received message is transmitted; generating a descriptor for each channel based on the checked routing rule and an index of a shared buffer in which the received message is stored; and including a part of the received message stored in the shared buffer as a payload with reference to the descriptor and transmitting a transmission message including a header prepared according to the routing rule to the corresponding channel.

Figure 112020136058346-pat00001
Figure 112020136058346-pat00001

Description

라우팅 방법 및 장치{ROUTING METHOD AND APPARATUS}ROUTING METHOD AND APPARATUS

본 발명은 메시지를 라우팅하는 방법 및 장치에 관한 것이다. 보다 자세하게는 차량 네트워크에서 발생하는 데이터의 누락을 최소화하여 안정적으로 데이터를 라우팅하는 방법 및 장치에 관한 것이다. The present invention relates to a method and apparatus for routing messages. More particularly, it relates to a method and apparatus for stably routing data by minimizing omission of data occurring in a vehicle network.

종래의 자동차는 기계 장치의 집합이었으나, 최근의 자동차에는 점점 더 많은 전자 장치들이 장착되고 있으며, 이제 자동차는 다양한 전자 장치들의 집합이라 해도 과언이 아니다. 차량 자세 제어, 자동 주차, 지능형 운전 보조 및 자율 운전 등의 기능들이 보다 보편화 되면서 더욱 많은 전자 장치들이 자동차 내에서 서로 연동되고 있다. A conventional automobile is a set of mechanical devices, but more and more electronic devices are being installed in recent automobiles, and it is no exaggeration to say that the automobile is a collection of various electronic devices. As functions such as vehicle posture control, automatic parking, intelligent driving assistance, and autonomous driving become more common, more and more electronic devices are interlocking with each other in automobiles.

다양한 기능들이 여러 전자 장치들의 협력으로 구현되기 때문에, 분산된 전자 장치들 사이에 상당히 많은 정보 교환이 필요해졌다. 과거에는 전자 장치들 사이를 1:1로 케이블 연결하여 정보를 교환하였으나, 전자 장치들의 수가 점차 증가하면서 이러한 방식의 네트워크 구성은 기하급수적으로 증가하는 케이블 수로 인한 중량 증가, 설계 복잡도 증가, 생산성 저감으로 인하여 더 이상 사용되기 어려워졌다. Since various functions are implemented through cooperation of various electronic devices, a considerable amount of information exchange is required between distributed electronic devices. In the past, information was exchanged through 1:1 cable connection between electronic devices. However, as the number of electronic devices gradually increased, this type of network configuration was reduced due to weight increase, design complexity increase, and productivity decrease due to the exponentially increasing number of cables. As a result, it is no longer usable.

차량 내부의 복잡한 배선 작업에서 생기는 문제를 해결하고자, 차량 내부의 모든 통신을 단일 네트워크 상에서 구동하는 통신 방식이 필요해졌으며, 1980년대에 독일의 로버트 보쉬사에 의해 CAN(Controller Area Network)이라는 새로운 다중 접속 네트워크 및 통신 프로토콜이 정의되어 널리 사용되기 시작되었다. In order to solve the problem of complicated wiring inside the vehicle, a communication method that drives all communication inside the vehicle on a single network was needed. Networks and communication protocols were defined and started to be widely used.

CAN는 일반적으로 버스(BUS) 토폴로지를 가진다. CAN을 이용한 메시지 전송은, 송신하는 노드에서 하나의 버스 토폴로지에 연결된 모든 노드에 메시지를 전달하는 방식으로 이루어진다. 장치들 사이를 1:1로 케이블 연결하지 않고도, 하나의 BUS 토폴로지를 통해 다수의 장치들이 서로 메시지를 주고받을 수 있게 된다. 이론적으로 표준 CAN의 버스 토폴로지에는 최대 2,032개의 장치를 연결할 수 있고, 확장 CAN에서는 최대 5,120,000개 이상의 장치를 연결할 수 있다.CAN generally has a bus (BUS) topology. Message transmission using CAN is performed in such a way that the transmitting node transmits the message to all nodes connected to one bus topology. Multiple devices can send and receive messages through one BUS topology without a 1:1 cable connection between devices. In theory, up to 2,032 devices can be connected in the bus topology of standard CAN, and up to 5,120,000 devices can be connected in extended CAN.

한편, CAN는 지원하는 통신 속도와 용도에 따라 몇 개의 클래스로 구분되는데, 그 중에 저속 통신용 CAN(LS CAN)은 파워 윈도우, 좌석 조절장치, 계기판 같은 정보의 일반적인 전송을 담당하고, 10kbit/s에서 125kbit/s 정도로 작동한다. 고속 통신용 CAN(HS CAN)은 파워 트레인, 안정성 제어(ABS 브레이크, 서스펜션 등), 엔진 관리, 변속과 같은 정보의 실시간 전송 보장이 필요한 장치들에서 사용되고, 125kbit/s부터 1Mbit/s로 작동한다.On the other hand, CAN is divided into several classes according to the supported communication speed and purpose. Among them, CAN for low-speed communication (LS CAN) is responsible for general transmission of information such as power windows, seat control devices, and instrument clusters, and operates at 10 kbit/s. It operates at around 125 kbit/s. CAN for High-Speed Communication (HS CAN) is used in devices requiring real-time transmission of information such as powertrain, stability control (ABS brakes, suspension, etc.), engine management, and shifting, and operates from 125 kbit/s to 1 Mbit/s.

CAN의 하나의 버스(BUS)에 연결 가능한 최대 장치 수를 초과하거나, 서로 다른 통신 속도와 전기 규격으로 동작하는 서브 네트워크들(예컨대 LS CAN과 HS CAN) 사이의 통신을 제공하기 위해서, 서브 네트워크들 사이에 게이트웨이 장치가 사용된다. 요컨대 CAN의 게이트웨이는 서로 다른 규격의 서브 네트워크들 사이에서 신호와 메시지를 실시간으로 전달하고 교환해주는 장치이다.To provide communication between subnetworks (eg LS CAN and HS CAN) that exceed the maximum number of devices connectable to one bus (BUS) of CAN or operate at different communication speeds and electrical standards, A gateway device is used between them. In short, the CAN gateway is a device that transmits and exchanges signals and messages in real time between sub-networks of different standards.

차량 내 통신 트래픽이 증가함에 따라 CAN 채널 수가 증가되며 이는 곧 게이트웨이의 라우팅 처리 성능 향상을 요구하게 된다. 처리할 데이터의 양과 채널 수가 많아지면 특정 이벤트에 따라 버스 부하가 요동치게 되며 이런 갑작스러운 버스 부하는 라우팅할 메시지의 유실을 초래하게 된다. 메모리의 양이 충분하다면 지정된 시간 동안 메시지를 버퍼링 할 수 있지만 대개 부족한 메모리를 지닌 게이트웨이는 순간적인 버스 부하에 메시지를 유실하는 경우가 종종 발생하기도 한다. As the in-vehicle communication traffic increases, the number of CAN channels increases, which in turn requires an improvement in the routing processing performance of the gateway. As the amount of data to be processed and the number of channels increases, the bus load fluctuates according to certain events, and this sudden bus load causes the loss of messages to be routed. If the amount of memory is sufficient, messages can be buffered for a specified amount of time, but gateways with insufficient memory often lose messages due to momentary bus loads.

도 1은 종래의 게이트웨이를 통해 메시지가 라우팅되는 과정을 예시하는 도면이다.1 is a diagram illustrating a process in which a message is routed through a conventional gateway.

도 1을 참조하면, 게이트웨이는 서로 상이한 서브 네트워크와 채널(ch1 ~ ch3)을 형성할 수 있고, 더불어 게이트웨이는 채널별 버퍼(12, 13, 14)를 포함한다. 버퍼(12, 13, 14)는 해당 채널에서 단독으로 이용하는 임시 저장공간으로서, 메시지가 임시적으로 저장되는 영역이다.Referring to FIG. 1 , a gateway may form channels ch1 to ch3 with different subnetworks, and the gateway includes buffers 12 , 13 , and 14 for each channel. The buffers 12, 13, and 14 are temporary storage spaces used exclusively by the corresponding channel, and are areas in which messages are temporarily stored.

도 1에 따르면, 종래의 게이트웨이는 메시지가 수신되면, 상기 메시지를 수신 버퍼(11)에 우선 저장하고, 상기 메시지가 출력되는 채널을 식별한 후, 각각 채널의 버퍼(12, 13, 14)에 상기 메시지를 저장한다. 즉, 메시지가 3개의 채널로 송신되는 경우에, 상기 메시지는 최소한 3번의 복사를 거치되게 된다. 특히, 상기 메시지가 분할 라우팅을 지원하는 서브 네트워크(예컨대, HS CAN)로 전송되는 경우, 상기 메시지는 소정의 개수로 분할되고 해당 채널의 버퍼에 저장되어, 복사 횟수가 더 증가하게 된다. According to FIG. 1, when a conventional gateway receives a message, it first stores the message in the reception buffer 11, identifies a channel through which the message is output, and then stores the message in the buffers 12, 13, and 14 of the channels, respectively. Save the message. That is, when a message is transmitted through three channels, the message is copied at least three times. In particular, when the message is transmitted to a subnetwork that supports segmentation routing (eg, HS CAN), the message is divided into a predetermined number and stored in a buffer of the corresponding channel, thereby further increasing the number of copies.

도 1에서는 서브 네트워크#2가 분할 라우팅을 지원하는 네트워크인 것으로 예시하고 있으며, 또한 수신 데이터가 4개로 분할되어 제2 채널의 버퍼(13)에 저장되고 있음을 예시하고 있다. 도 1에 따르면, 수신 데이터는 각각의 버퍼에 6 횟수로 복사되어 저장된다.In FIG. 1, the sub-network #2 is exemplified as a network supporting segment routing, and also exemplifies that received data is divided into four and stored in the buffer 13 of the second channel. According to FIG. 1, received data is copied and stored in each buffer 6 times.

그런데 이렇게 복사가 빈번하게 발생하는 경우, 게이트웨이의 부하도 증가할 뿐만 아니라, 데이터 라우팅도 지연된다. 물론, 수신한 데이터를 버퍼에 저장하는 것 없이 즉시 송신하는 것도 고려할 수 있으나, 서브 네트워크의 버스 Arbitration이나 버스 에러 등으로 메시지 송신이 지연될 수 있어, 버퍼를 이용하지 않은 No-Copy 정책을 차량 네트워크에서 고려될 수 없다.However, when the copy occurs frequently, not only the load of the gateway increases, but also data routing is delayed. Of course, it is also possible to immediately transmit the received data without storing it in the buffer, but message transmission may be delayed due to bus arbitration or bus errors in the subnetwork, so the no-copy policy that does not use a buffer is implemented in the vehicle network. cannot be considered in

또한, 특정 채널의 버퍼에 데이터가 가득 저장되는 경우(오퍼플로우되는 경우)에, 해당 채널의 과부하로 인하여 수신 버퍼가 비워지지 않거나 데이터가 유실되는 상황도 발생할 수 있다. Also, when the buffer of a specific channel is filled with data (when it overflows), a situation in which the reception buffer is not emptied or data is lost due to overload of the corresponding channel may occur.

이에 따라, 메시지 유실을 최소화하며 게이트웨이의 과부하를 예방하고, 최소한의 복사를 통해서 데이터를 라우팅하는 기술이 필요하다.Accordingly, there is a need for a technique for minimizing message loss, preventing overload of the gateway, and routing data through minimal copying.

한국 등록특허공보 제10-1567973호 (2015.11.04.)Korean Patent Publication No. 10-1567973 (2015.11.04.)

본 발명이 해결하고자 하는 기술적 과제는 데이터 복사가 최소화되고 라우팅 지연이 예방되도록 데이터를 라우팅하는 방법 및 장치를 제공하는 것이다. The technical problem to be solved by the present invention is to provide a method and apparatus for routing data such that data copy is minimized and routing delay is prevented.

본 발명이 해결하고자 하는 다른 기술적 과제는 데이터를 라우팅하는 장치의 과부하와 버퍼의 오버플로우를 예방하여 데이터를 라우팅하는 방법 및 장치를 제공하는 것이다.Another technical problem to be solved by the present invention is to provide a method and an apparatus for routing data by preventing an overload of a data routing device and an overflow of a buffer.

본 발명이 해결하고자 하는 또 다른 기술적 과제는, 데이터 유실이 최소화되도록 데이터를 라우팅하는 방법 및 장치를 제공하는 것이다. Another technical problem to be solved by the present invention is to provide a method and apparatus for routing data such that data loss is minimized.

본 발명이 해결하고자 하는 또 다른 기술적 과제는, 버스 에러가 발생하는 상황을 고려하여 버퍼의 릴리즈를 진행하는 라우팅 방법 및 장치를 제공하는 것이다. Another technical problem to be solved by the present invention is to provide a routing method and apparatus for releasing a buffer in consideration of a situation in which a bus error occurs.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the following description.

상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 라우팅 방법은, 수신 메시지를 각 채널이 공유하는 공유 버퍼에 저장하는 단계; 상기 수신 메시지가 전송되는 각 채널의 라우팅 규칙을 확인하는 단계; 상기 확인된 라우팅 규칙과 상기 수신 메시지가 저장된 공유 버퍼의 인덱스를 기초로, 송신 메시지 생성을 위한 디스크립터를 채널별로 생성하는 단계; 및 상기 디스크립터를 참조하여 상기 공유 버퍼에 저장된 수신 메시지의 일부를 페이로드로서 포함하고 상기 라우팅 규칙에 따라 작성된 헤더를 포함하는 송신 메시지를 해당 채널로 전송하는 단계를 포함할 수 있다. In order to solve the above technical problem, a routing method according to an embodiment of the present invention comprises the steps of: storing a received message in a shared buffer shared by each channel; checking a routing rule of each channel through which the received message is transmitted; generating a descriptor for each channel based on the checked routing rule and an index of a shared buffer in which the received message is stored; and including a part of the received message stored in the shared buffer as a payload with reference to the descriptor and transmitting a transmission message including a header prepared according to the routing rule to the corresponding channel.

상기 라우팅 방법은 상기 수신 메시지가 참조되어야 하는 제1 개수를 확인하는 단계; 및 상기 수신 메시지가 참조되어 송신 메시지로서 전송된 제2 개수를 확인하는 단계; 및 상기 제2 개수가 상기 제1 개수에 도달하면, 상기 인덱스와 대응하는 상기 공유 버퍼의 영역을 릴리즈하는 단계를 더 포함할 수 있다. The routing method may include: identifying a first number to which the received message is to be referenced; and confirming a second number of transmitted messages by referring to the received message. and when the second number reaches the first number, releasing an area of the shared buffer corresponding to the index.

상기 라우팅 방법은, 각 채널의 상태를 확인하여 오류가 발생한 채널의 개수만큼 상기 제1 개수를 차감하는 단계를 더 포함할 수 있다. The routing method may further include the step of checking the status of each channel and subtracting the first number by the number of channels in which an error has occurred.

상기 전송하는 단계는, 해당 채널이 분할 라우팅을 수행하는 목적지 네트워크와 연결되는 채널인 경우, 상기 수신 메시지를 소정의 개수로 분할하고, 상기 분할된 어느 한 수신 메시지를 페이로드로서 포함하는 복수의 송신 메시지를 전송하는 단계를 포함할 수 있다.The transmitting may include dividing the received message into a predetermined number when the corresponding channel is a channel connected to a destination network for performing division routing, and includes a plurality of transmissions including one of the divided received messages as a payload. It may include sending a message.

일 실시예에서, 상기 디스크립터를 채널별로 생성하는 단계는, 상기 확인된 라우팅 규칙의 식별정보 및 상기 공유 버퍼의 인덱스를 포함하는 디스크립터를 채널로 생성하는 단계; 및 상기 생성한 디스크립터를 해당 채널의 저장영역에 저장하는 단계를 포함할 수 있다. In one embodiment, the generating of the descriptor for each channel may include: generating a descriptor including identification information of the checked routing rule and an index of the shared buffer as a channel; and storing the generated descriptor in a storage area of the corresponding channel.

다른 실시예에서, 상기 디스크립터를 채널별로 생성하는 단계는, 상기 확인된 라우팅 규칙의 식별정보 및 상기 공유 버퍼의 인덱스를 포함하는 디스크립터를 채널로 생성하는 단계; 및 생성한 디스크립터에 접근할 수 있는 어드레스를 해당 채널의 저장영역에 저장하는 단계를 포함할 수 있다. In another embodiment, the generating of the descriptor for each channel may include: generating a descriptor including identification information of the checked routing rule and an index of the shared buffer as a channel; and storing an address that can access the generated descriptor in a storage area of the corresponding channel.

일 실시예에서, 상기 전송하는 단계는 상기 수신 메시지의 페이로드를 상기 송신 메시지의 페이로드로 포함시키고, 상기 수신 메시지의 헤더를 상기 라우팅 규칙에 근거하여 유지하거나 변경하여 상기 송신 메시지의 헤더를 작성하는 단계를 포함할 수 있다. In one embodiment, the transmitting includes the payload of the received message as the payload of the outgoing message, and maintaining or changing the header of the received message based on the routing rule to create a header of the outgoing message may include the step of

상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예에 따른 라우팅 장치는 각 채널에 의해 공유되며 수신 메시지를 저장하는 공유 버퍼; 수신 메시지가 전송되는 각 채널의 라우팅 규칙을 확인하고, 상기 확인된 라우팅 규칙과 상기 수신 메시지가 저장된 공유 버퍼의 인덱스를 기초로, 송신 메시지 생성을 위한 디스크립터를 채널별로 생성하는 제어부; 및 복수의 채널을 형성하며, 상기 디스크립터를 참조하여 상기 인덱스에 대응하는 상기 공유 버퍼의 영역에서 상기 수신 메시지를 확인하고, 상기 수신 메시지의 헤더, 페이로드 중에서 하나 이상이 상기 라우팅 규칙에 따라 변경하여 생성한 송신 메시지를 해당 채널로 전송하는 전송부를 포함할 수 있다.For solving the above technical problem, a routing device according to another embodiment of the present invention is shared by each channel and a shared buffer for storing a received message; a control unit that checks a routing rule of each channel through which a received message is transmitted, and generates a descriptor for generating a transmission message for each channel based on the checked routing rule and an index of a shared buffer in which the received message is stored; and forming a plurality of channels, checking the received message in the area of the shared buffer corresponding to the index by referring to the descriptor, and changing one or more of the header and payload of the received message according to the routing rule It may include a transmission unit for transmitting the generated transmission message to the corresponding channel.

도 1은 종래의 게이트웨이를 통해 메시지가 라우팅되는 과정을 예시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 CAN 시스템을 나타내는 도면이다.
도 3은 도 2를 참조하여 설명한 게이트웨이의 구성을 나타내는 도면이다.
도 4는 메시지의 데이터 구조를 예시하는 도면이다.
도 5는 라우팅 규칙 테이블을 예시하는 도면이다.
도 6은 본 발명의 또 다른 실시예에 따른, 게이트웨이에서 메시지를 라우팅하는 방법을 설명하기 위한 제1 흐름도이다.
도 7은 본 발명의 또 다른 실시예에 따른, 게이트웨이에서 메시지를 라우팅하는 방법을 설명하기 위한 제2 흐름도이다.
도 8은 본 발명의 또 다른 실시예에 따른, 게이트웨이에서 메시지를 라우팅하는 방법을 설명하기 위한 제3 흐름도이다.
도 9는 본 발명의 또 다른 실시예에 따른, 게이트웨이에서 메시지를 라우팅하는 방법을 설명하기 위한 제4 흐름도이다.
1 is a diagram illustrating a process of routing a message through a conventional gateway.
2 is a diagram illustrating a CAN system according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating the configuration of a gateway described with reference to FIG. 2 .
4 is a diagram illustrating a data structure of a message.
5 is a diagram illustrating a routing rule table.
6 is a first flowchart illustrating a method of routing a message in a gateway according to another embodiment of the present invention.
7 is a second flowchart illustrating a method of routing a message in a gateway according to another embodiment of the present invention.
8 is a third flowchart illustrating a method of routing a message in a gateway according to another embodiment of the present invention.
9 is a fourth flowchart illustrating a method of routing a message in a gateway according to another embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the technical idea of the present invention is not limited to the following embodiments, but may be implemented in various different forms, and only the following embodiments complete the technical idea of the present invention, and in the technical field to which the present invention belongs It is provided to fully inform those of ordinary skill in the art of the scope of the present invention, and the technical spirit of the present invention is only defined by the scope of the claims.

각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.In adding reference numerals to the components of each drawing, it should be noted that the same components are given the same reference numerals as much as possible even though they are indicated on different drawings. In addition, in describing the present invention, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present invention, the detailed description thereof will be omitted.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless otherwise defined, all terms (including technical and scientific terms) used herein may be used with the meaning commonly understood by those of ordinary skill in the art to which the present invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless clearly defined in particular. The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. In this specification, the singular also includes the plural, unless specifically stated otherwise in the phrase.

또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b), #1, #2 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.In addition, in describing the components of the present invention, terms such as first, second, A, B, (a), (b), #1, and #2 may be used. These terms are only for distinguishing the elements from other elements, and the essence, order, or order of the elements are not limited by the terms. When it is described that a component is “connected”, “coupled” or “connected” to another component, the component may be directly connected or connected to the other component, but another component is between each component. It should be understood that elements may be “connected,” “coupled,” or “connected.”

명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.As used herein, "comprises" and/or "comprising" refers to the presence of one or more other components, steps, operations and/or elements mentioned. or addition is not excluded.

이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.Hereinafter, some embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 일 실시예에 따른 CAN 시스템을 나타내는 도면이다.2 is a diagram illustrating a CAN system according to an embodiment of the present invention.

도 2에 도시된 바와 같이, CAN(Controller Area Network) 시스템은 게이트웨이(100)와 복수의 서브 네트워크(210, 220, 230)를 포함할 수 있으며, 게이트웨이(100)와 각각의 서브 네트워크(210, 220, 230)는 버스를 통해서 서로 연결될 수 있다.As shown in FIG. 2 , a controller area network (CAN) system may include a gateway 100 and a plurality of sub-networks 210 , 220 , 230 , and the gateway 100 and each sub-network 210 , 220 and 230 may be connected to each other through a bus.

각각의 서브 네트워크(210, 220, 230)는 FD(Flexible Data rate) 네트워크, HS(High Speed) 네트워크 등 중에서 어느 하나에 해당하는 네트워크일 수 있다. Each of the sub-networks 210 , 220 , and 230 may be a network corresponding to any one of a flexible data rate (FD) network, a high speed (HS) network, and the like.

서브 네트워크(210, 220, 230)에는 하나 이상의 노드(241~ 246)가 포함되고, 상기 노드들(241 ~ 246)은 버스에 연결되어 게이트웨이(100)와 통신할 수 있다. 상기 노드(241~ 246)는 계기판을 제어하기 위한 FRONT AREA MODULE, 시트를 제어하기 위한 POWER SEAT MODULE, 조수석 도어의 제어하기 위한 ASSIST DOOR MODULE, 운전석 도어를 제어하기 위한 DRIVER DOOR MODULE, 운전자세 메모리 스위치인 IMS SWITCH 등일 수 있다. 노드(241~ 246)는 게이트웨이(100)로부터 메시지를 수신하여, 상기 메시지에 근거하여 동작할 수 있다. 도 2에는 두 개의 노드가 서브 네트워크에 포함된 것으로 예시하였으나, 더욱 많은 개수의 노드가 서브 네트워크에 포함될 수 있으며, 또한 4개 이상의 서브 네트워크가 게이트웨이(100)와 연결될 수 있다.The sub-networks 210 , 220 , and 230 include one or more nodes 241 to 246 , and the nodes 241 to 246 may be connected to a bus to communicate with the gateway 100 . The nodes 241 to 246 are a FRONT AREA MODULE for controlling the instrument panel, a POWER SEAT MODULE for controlling the seat, an ASSIST DOOR MODULE for controlling the passenger door, a DRIVER DOOR MODULE for controlling the driver's door, and a driver's position memory switch. may be an IMS SWITCH or the like. The nodes 241 to 246 may receive a message from the gateway 100 and operate based on the message. Although two nodes are exemplified as being included in the sub-network in FIG. 2 , a larger number of nodes may be included in the sub-network, and four or more sub-networks may be connected to the gateway 100 .

게이트웨이(100)는 데이터를 라우팅하는 라우팅 장치로서, 메시지가 수신되면 상기 메시지를 공유 버퍼에 저장하고, 라우팅 규칙 테이블에서 상기 메시지의 송신지(source)와 목적지(destination)를 토대로 라우팅 규칙을 확인한 후, 상기 확인한 라우팅 규칙과 공유 버퍼에 저장된 메시지를 이용하여 각 채널별로 메시지가 전송되게 한다. 상기 게이트웨이(100)는 송신되어야 하는 채널이 복수 개이더라도 공유 버퍼에 한 번만 메시지를 복사하고, 상기 공유 버퍼에 저장된 메시지가 각각의 채널에서 참조되어 송신되게 함으로써, 최소한의 복수 횟수를 통하여 부하가 경감되게 하고 라우팅 지연을 최소화한다.The gateway 100 is a routing device for routing data. When a message is received, the gateway 100 stores the message in a shared buffer, and checks the routing rule based on the source and destination of the message in the routing rule table. , a message is transmitted for each channel using the checked routing rule and the message stored in the shared buffer. The gateway 100 copies the message to the shared buffer only once even if there are a plurality of channels to be transmitted, and the message stored in the shared buffer is referenced and transmitted in each channel, thereby reducing the load through a minimum number of times. and minimize routing delays.

도 3은 도 2를 참조하여 설명한 게이트웨이의 구성을 나타내는 도면이다.FIG. 3 is a diagram showing the configuration of a gateway described with reference to FIG. 2 .

도 3에 도시된 바와 같이, 게이트웨이(100)는 수신부(110), 공유 버퍼(120), 저장부(130), 전송부(140) 및 제어부(150)를 포함하고, 이러한 구성요소들은 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합을 통해서 구현될 수 있다.As shown in FIG. 3 , the gateway 100 includes a receiver 110 , a shared buffer 120 , a storage 130 , a transmitter 140 and a controller 150 , and these components are hardware or It may be implemented in software or may be implemented through a combination of hardware and software.

수신부(110)는 CAN을 통해서 외부 서브 네트워크(210, 220, 230)와 통신 라인을 형성할 수 있다. 수신부(110)는 전송부(140)와 같이 복수의 버스를 통해서 각각의 서브 네트워크(210, 220, 230)와 연결되어 통신을 수행할 수 있다. 다른 실시예로서, 상기 수신부(110)는 전송부(140)에서 형성한 버스를 공유하여 이용할 수 있다. 수신부(110)는 수신 버퍼(111)를 포함하고 있으며, 메시지가 수신되면 상기 수신 버퍼(111)에 메시지를 임시 저장할 수 있다.The receiver 110 may form a communication line with the external subnetworks 210 , 220 , and 230 through CAN. The receiver 110 may be connected to each of the sub-networks 210 , 220 , and 230 through a plurality of buses like the transmitter 140 to perform communication. As another embodiment, the receiving unit 110 may share and use the bus formed by the transmitting unit 140 . The reception unit 110 includes a reception buffer 111 , and when a message is received, it may temporarily store the message in the reception buffer 111 .

수신부(110)는 일정한 포맷을 가지는 메시지를 수신할 수 있다. The receiver 110 may receive a message having a predetermined format.

도 4는 메시지의 데이터 구조를 예시하는 도면이다. 4 is a diagram illustrating a data structure of a message.

도 4를 참조하면, 메시지는 제1 헤더와 제2 헤더 및 페이로드를 포함한다. 상기 제1 헤더(Header1)는 RTR(Remote Transmission Request), IDE(Identifier Extension), ID(Identifier) 중에서 하나 이상을 포함할 수 있다. 또한, 제2 헤더(Header2)는 BRS(Bit Rate Switch), FDF(FD frame), DLC(Data Length Code) 중에서 하나 이상을 포함할 수 있다. 상기 페이로드(Payload)는 실질적인 데이터가 기록되는 영역으로서 소정의 바이트일 수 있다.Referring to FIG. 4 , a message includes a first header, a second header, and a payload. The first header Header1 may include one or more of a remote transmission request (RTR), an identifier extension (IDE), and an identifier (ID). In addition, the second header Header2 may include one or more of a bit rate switch (BRS), an FD frame (FDF), and a data length code (DLC). The payload is an area in which actual data is recorded and may be a predetermined byte.

공유 버퍼(120)는 일정한 크기의 저장 영역으로서, 수신 메시지를 임시적으로 저장할 수 있다. 상기 공유 버퍼(120)는 다수의 버퍼 영역을 포함하고 있으며, 각 버퍼 영역은 고유의 인덱스를 부여받을 수 있다. 상기 공유 버퍼(120)는 저장된 수신 메시지는 페이로드로서 참조되어, 전송부(140)를 통해서 하나 이상의 버스로 전송될 수 있다. 상기 공유 버퍼(120)에 저장된 메시지는 제어부(150)에 릴리즈(release) 될 수 있다.The shared buffer 120 is a storage area of a certain size and may temporarily store a received message. The shared buffer 120 includes a plurality of buffer areas, and each buffer area may be assigned a unique index. The received message stored in the shared buffer 120 may be referred to as a payload and transmitted to one or more buses through the transmission unit 140 . The message stored in the shared buffer 120 may be released to the control unit 150 .

저장부(130)는 메모리, 디스크 장치와 같은 저장수단으로서, 라우팅 규칙 테이블을 저장하고, 더불어 채널별 디스크립터(Descriptor)를 저장할 수 있다.The storage unit 130 is a storage means such as a memory or a disk device, and may store a routing rule table and a descriptor for each channel.

도 5는 라우팅 규칙 테이블을 예시하는 도면이다.5 is a diagram illustrating a routing rule table.

도 5를 참조하면, 라우팅 규칙 테이블은, 라우팅 방식, 송신지와 목적지의 네트워크 유형에 따라 서로 상이한 라우팅 규칙(Rule#N)을 저장할 수 있다. 상기 라우팅 규칙(Rule#N)은 헤더와 변경되거나 유지되는 규칙에 대해서 정의하고 있다. 예컨대, 도 5에서 Rule#1은 제1 헤더, 제2 헤더 및 페이로드 모두가 변동되지 않고 수신 상태를 유지하는 세부 규칙을 정의할 수 있으며, Rule#2는 제1 헤더의 ID가 재설정되는 제1 헤더에 대한 세부 규칙, 제2 헤더의 BRS, FDF 중에서 하나가 변경되는 제2 헤더에 대한 세부 규칙 및 페이로드가 그대로 유지되는 페이로드에 대한 세부 규칙을 포함할 수 있다. 또 다른 예로서, Rule#3은 제1 헤더가 네 개로 생성되고 각 헤더마다 별도의 아이디가 생성되는 제1 헤더에 대한 세부 규칙, 제2 헤더에 포함된 BRS, FDF, DLC 중에서 하나 이상을 변경하는 제2 헤더에 대한 세부 규칙 및 페이로드가 분할되는 크기와 분할된 페이로드의 순서를 나타내는 오프셋을 정의한 페이로드에 대한 세부 규칙을 포함할 수 있다. 상기 라우팅 규칙은, 소스 네트워크의 유형과 목적지 네트워크의 유형에 따라, 상이하게 설정되어 라우팅 규칙 테이블에 기록될 수 있다.Referring to FIG. 5 , the routing rule table may store different routing rules (Rule#N) according to a routing method and a network type of a transmission source and a destination. The routing rule (Rule#N) defines a header and a changed or maintained rule. For example, in FIG. 5, Rule#1 may define a detailed rule in which all of the first header, the second header, and the payload are not changed and the reception state is maintained, and Rule#2 is the first header in which the ID of the first header is reset. The detailed rule for the first header, the detailed rule for the second header in which one of the BRS and FDF of the second header is changed, and the detailed rule for the payload in which the payload is maintained may be included. As another example, Rule #3 changes one or more of the detailed rules for the first header in which four first headers are generated and a separate ID is generated for each header, and BRS, FDF, and DLC included in the second header. It may include a detailed rule for the payload that defines a detailed rule for the second header and an offset indicating the size into which the payload is divided and the order of the divided payload. The routing rule may be differently set and recorded in the routing rule table according to the type of the source network and the type of the destination network.

디스크립터는 해당 채널에서 메시지를 전송하기 위해서 참조되는 일종의 작업 명세서로서, 공유 버퍼(120)의 인덱스와 라우팅 규칙 식별정보를 포함할 수 있다. 즉, 디스크립터는 페이로드로서 참조되는 메시지의 저장 주소인 공유 버퍼(120)의 인덱스와 페이로드와 헤더를 변경 또는 유지하는데 참조되는 라우팅 규칙의 식별정보를 저장한다. 상기 디스크립터는 단일의 채널에서만 이용될 수 있으며, 채널에서 정상적으로 메시지의 송신을 완료하면 저장부(130)에서 삭제될 수 있다. 상기 디스크립터가 저장되는 저장 영역도 버퍼 형태로 구현될 수 있으며, 이 경우 디스크립터의 인덱스를 할당하여 상기 인덱스와 대응되는 저장영역에 디스크립터를 저장할 수 있으며, 송신이 완료되면 상기 인덱스를 회수하고 디스크립터의 저장영역을 릴리즈할 수 있다.The descriptor is a kind of work specification referenced in order to transmit a message in the corresponding channel, and may include an index of the shared buffer 120 and routing rule identification information. That is, the descriptor stores the index of the shared buffer 120 that is the storage address of the message referenced as the payload, and the identification information of the routing rule referenced to change or maintain the payload and header. The descriptor may be used only in a single channel, and may be deleted from the storage unit 130 when transmission of a message is normally completed in the channel. A storage area in which the descriptor is stored may also be implemented in the form of a buffer. In this case, an index of the descriptor may be allocated to store the descriptor in a storage area corresponding to the index, and when transmission is completed, the index is retrieved and the descriptor is stored. The area can be released.

제어부(150)는 마이크로 프로세서 등과 같은 연산처리 수단으로서, 게이트웨이(100)의 전반적인 동작을 제어할 수 있다. 상기 제어부(150)는 수신부(110)를 통해서 메시지가 수신되면, 버퍼 인덱스 풀(pool)에서 할당되지 않은 버퍼 인덱스를 확인하고, 상기 버퍼 인덱스를 가지는 공유 버퍼(120)의 영역에 상기 수신 메시지를 저장할 수 있다. 제어부(150)는 공유 버퍼(120)의 영역에 수신 메시지의 저장이 완료되면, 상기 수신 버퍼(111)에 상기 메시지를 삭제하여 수신 버퍼(111)를 릴리즈 할 수 있다.The controller 150 is an arithmetic processing means such as a microprocessor, and may control the overall operation of the gateway 100 . When a message is received through the receiving unit 110, the control unit 150 checks an unassigned buffer index from the buffer index pool, and transmits the received message to the area of the shared buffer 120 having the buffer index. can be saved When the storage of the reception message in the area of the shared buffer 120 is completed, the controller 150 may release the reception buffer 111 by deleting the message in the reception buffer 111 .

제어부(150)는 상기 메시지에서 발송지 주소와 목적지 주소를 확인하고, 상기 주소들을 토대로 소스 네트워크의 유형과 목적지 네트워크의 유형을 식별한 후, 상기 식별한 네트워크 유형에 근거하여 하나 이상의 라우팅 규칙을 라우팅 규칙 테이블에서 선정할 수 있다. 제어부(150)는 상기 선정한 라우팅 규칙의 식별정보와 상기 공유 버퍼의 인덱스를 포함하는 디스크립터를 생성하여 저장부(130)에 저장할 수 있다. 상기 제어부(150)는 목적지 주소가 복수 개인 경우에, 해당 목적지 네트워크의 유형과 소스 네트워크의 유형에 근거하여 채널(즉, 목적지 네트워크)별 디스크립터를 생성하여 저장부(130)에 저장할 수 있다.The control unit 150 checks the source address and the destination address in the message, identifies the type of the source network and the type of the destination network based on the addresses, and then sets one or more routing rules based on the identified network type. You can choose from the table. The control unit 150 may generate a descriptor including the identification information of the selected routing rule and the index of the shared buffer and store it in the storage unit 130 . When there are a plurality of destination addresses, the controller 150 may generate a descriptor for each channel (ie, a destination network) based on the type of the corresponding destination network and the type of the source network and store the descriptor in the storage unit 130 .

일 실시예에서, 상기 제어부(150)는 디스크립터를 해당 채널(버스)의 저장 영역에 저장할 수 있다. 예컨대, 제어부(150)는 제1 채널의 디스크립터를 제1 채널의 저장 영역(141)에 저장할 수 있고, 제2 채널의 디스크립터를 제2 채널의 저장 영역(142)에 저장할 수 있다. 다른 실시예에서, 상기 제어부(150)는 디스크립터에 접근할 수 있는 어드레스를 해당 채널의 저장 영역(141, 142, 143)에 저장할 수 있다. 예컨대, 제어부(150)는 제1 채널의 디스크립터에 접근할 수 있는 어드레스를 제1 채널의 저장 영역(141)에 저장할 수 있고, 제2 채널의 디스크립터에 접근할 수 있는 어드레스를 제2 채널의 저장 영역(142)에 저장할 수 있다. 상기 제어부(150)는 채널의 저장 영역(141, 142, 143)에 임계값 이상의 충분한 저장공간이 남아 있는 경우에, 상기 디스크립터의 어드레스 또는 디스크립터를 해당 저장 영역(141, 142, 143)에 저장할 수 있다. In an embodiment, the controller 150 may store the descriptor in a storage area of a corresponding channel (bus). For example, the controller 150 may store the descriptor of the first channel in the storage area 141 of the first channel and store the descriptor of the second channel in the storage area 142 of the second channel. In another embodiment, the controller 150 may store an address that can access the descriptor in the storage areas 141 , 142 , and 143 of the corresponding channel. For example, the controller 150 may store an address that can access the descriptor of the first channel in the storage area 141 of the first channel, and store the address that can access the descriptor of the second channel in the second channel. It can be stored in area 142 . The controller 150 may store the address or descriptor of the descriptor in the storage areas 141, 142, and 143 when sufficient storage space equal to or greater than the threshold value remains in the storage areas 141, 142, and 143 of the channel. have.

제어부(150)는 디스크립터 또는 어드레스가 저장 영역(141, 142, 143)에 저장하면, 디스크립터의 개수에 대응하는 제1 개수를 설정할 수 있다. 상기 제1 개수는 공유 버퍼(120)에 저장된 메시지가 참조되어 전송되어야 하는 개수를 나타내는 것으로서, 공유 버퍼(120)의 영역을 릴리즈하기 위해서 이용될 수 있다.When descriptors or addresses are stored in the storage areas 141 , 142 , and 143 , the controller 150 may set a first number corresponding to the number of descriptors. The first number indicates the number of messages stored in the shared buffer 120 to be transmitted by reference, and may be used to release an area of the shared buffer 120 .

제어부(150)는 공유 버퍼(120)에서 상기 저장된 메시지가 참조되어 이용 완료된 제2 개수를 카운팅하고, 상기 제2 개수가 상기 제1 개수에 도달하면 버퍼 인덱스에 해당하는 공유 버퍼(120)의 영역을 릴리즈하고, 상기 버퍼 인덱스를 사용 가능한 인덱스로서 인덱스 풀에 등록할 수 있다. 이에 따라, 공유 버퍼(120)의 특정 버퍼 영역은, 복수의 채널에서 이용되더라도 그 사용이 완료되면 릴리즈되어 다른 메시지가 저장될 수 있다.The control unit 150 counts the second number of times the stored message is referenced and used in the shared buffer 120 , and when the second number reaches the first number, the area of the shared buffer 120 corresponding to the buffer index can be released, and the buffer index can be registered in the index pool as a usable index. Accordingly, even if a specific buffer area of the shared buffer 120 is used in a plurality of channels, when the use is completed, the specific buffer area may be released to store other messages.

제어부(150)는 하나 이상의 버스에서 오류가 발생한 것을 감지할 수 있다. 제어부(150)는 CAN에서 버스 오류와 버스 오프(off)를 감지하는데 이용되는 TEC(Transmission Error Counter) 및 REC(Receive Error Counter)를 이용하여 버스 오류와 오프를 감지할 수 있다.The controller 150 may detect that an error has occurred in one or more buses. The controller 150 may detect a bus error and an off by using a TEC (Transmission Error Counter) and a REC (Receive Error Counter) that are used to detect a bus error and a bus off in CAN.

제어부(150)는 버스 오류가 검출되면, 오류가 발생된 버스 개수만큼 제1 개수를 차감하여, 제1 개수를 감소시킨다. 제어부(150)는 버스 오프가 검출되면, 상기 인덱스에 해당하는 버퍼 영역을 즉시 릴리즈 할 수 있다. When a bus error is detected, the controller 150 reduces the first number by subtracting the first number by the number of buses in which the error has occurred. When a bus-off is detected, the controller 150 may immediately release the buffer area corresponding to the index.

전송부(140)는 각각의 서브 네트워크(210, 220, 230)와 버스(BUS#1, BUS#2, BUS#3)를 형성할 수 있다. 상기 전송부(140)는 각 채널(버스)별로 전송을 위한 저장 영역(141, 142, 143)을 포함할 수 있다. 예컨대, 전송부(140)는 제1 채널(버스)을 위한 제1 저장 영역(141), 제2 채널(버스)을 위한 제2 저장 영역(142) 및 제3 채널(버스)을 위한 제3 저장 영역(143)을 포함할 수 있다. 상기 저장 영역(141, 142, 143)에 저장된 디스크립터 또는 디스크립터 어드레스는 FIFO(First In First Out) 방식으로 처리될 수 있다. The transmission unit 140 may form each of the sub-networks 210 , 220 , and 230 and the buses BUS#1, BUS#2, and BUS#3. The transmission unit 140 may include storage areas 141 , 142 , and 143 for transmission for each channel (bus). For example, the transmission unit 140 includes a first storage area 141 for a first channel (bus), a second storage area 142 for a second channel (bus), and a third storage area for a third channel (bus). It may include a storage area 143 . Descriptors or descriptor addresses stored in the storage areas 141 , 142 , and 143 may be processed in a first in first out (FIFO) manner.

전송부(140)는 상기 저장 영역(141, 142, 143)에 디스크립터가 저장되면, 상기 저장 영역(141, 142, 143)에서 디스크립터를 확인할 수 있다. 다른 실시예로서, 저장 영역(141, 142, 143)에 디스크립터의 어드레스가 저장되면, 상기 전송부(140)는 상기 어드레스를 기초로 저장부(130)에서 디스크립터를 확인할 수 있다. 전송부(140)는 상기 디스크립터를 참조로 수신 메시지를 획득하고, 상기 수신 메시지를 라우팅 규칙에 따라 변경하거나 유지하여 해당 채널(버스)로 전송할 수 있다. 상기 전송부(140)는 상기 디스크립터에서 버퍼 인덱스를 확인하고, 상기 버퍼 인덱스에 해당하는 버퍼 영역에 접근하여 메시지를 획득할 수 있다. 전송부(140)는 상기 획득한 메시지의 일부를 페이로드로서 포함하고 상기 라우팅 규칙에 따라 작성된 헤더를 포함하는 송신 메시지를 해당 채널로 전송할 수 있다. 이때, 전송부(140)는 획득된 메시지(수신 메시지)의 페이로드를 포함하고, 상기 라우팅 규칙에 따라 수신 메시지의 헤더가 변경되거나 원본 상태로 유지되는 송신 메시지를 생성한 후, 상기 생성된 송신 메시지를 해당 채널로 전송할 수 있다. When the descriptor is stored in the storage areas 141 , 142 , and 143 , the transmitter 140 may check the descriptor in the storage areas 141 , 142 , 143 . As another embodiment, when the address of the descriptor is stored in the storage areas 141 , 142 , and 143 , the transmission unit 140 may identify the descriptor in the storage unit 130 based on the address. The transmitter 140 may obtain a received message with reference to the descriptor, change or maintain the received message according to a routing rule, and transmit the received message to a corresponding channel (bus). The transmitter 140 may check a buffer index in the descriptor, and may obtain a message by accessing a buffer area corresponding to the buffer index. The transmission unit 140 may transmit a transmission message including a part of the obtained message as a payload and a header prepared according to the routing rule through a corresponding channel. In this case, the transmission unit 140 includes the payload of the obtained message (received message), and generates a transmission message in which the header of the received message is changed or maintained in the original state according to the routing rule, and then the generated transmission Messages can be sent to that channel.

일 실시예에서, 전송부(140)는 상기 디스크립터에서 라우팅 규칙 식별정보를 확인하고, 라우팅 규칙 식별정보에 대응하는 라우팅 규칙을 저장부(130)의 라우팅 규칙 테이블에서 확인한 후, 상기 확인한 라우팅 규칙에 따라 메시지의 헤더, 페이로드 중에서 하나 이상을 선택적으로 변경하거나 상기 메시지의 원본 상태를 그대로 유지하여 송신 메시지를 생성할 수 있다. 전송부(140)는 변경 또는 유지된 메시지(즉, 송신 메시지)를 저장 영역(141, 142, 143)과 대응되는 채널(버스)로 전송하고, 상대방 노드(241~ 246)로부터 Ack 메시지를 수신하면, 상기 Ack 메시지를 제어부(150)로 전달할 수 있다. 전송부(140)는 Ack 메시지가 수신되면, 해당 저장 영역(141, 142, 143)에 저장된 디스크립터 또는 디스크립터의 어드레스를 삭제할 수 있다.In one embodiment, the transmission unit 140 checks the routing rule identification information in the descriptor, checks the routing rule corresponding to the routing rule identification information in the routing rule table of the storage unit 130, and then adds to the checked routing rule. Accordingly, the transmission message may be generated by selectively changing one or more of the header and the payload of the message or maintaining the original state of the message. The transmission unit 140 transmits the changed or maintained message (ie, the transmission message) to the channel (bus) corresponding to the storage areas 141 , 142 , 143 , and receives the Ack message from the counterpart nodes 241 to 246 . Then, the Ack message may be transmitted to the controller 150 . When the Ack message is received, the transmitter 140 may delete a descriptor or an address of the descriptor stored in the corresponding storage areas 141 , 142 , and 143 .

본 실시예에 따르면, 각각의 채널들이 공유 버퍼(120)하는 메시지를 한 번만 복사하고, 공유 버퍼(120)에 저장된 메시지가 각 채널에서 전송되게 함으로써, 데이터 복사를 최소화할 뿐만 아니라 신속하게 메시지가 라우팅되게 하는 효과를 발휘할 수 있다. 또한, 본 실시예에 따르면, 최소한의 메시지 복사 이루어지게 하여 게이트웨이(100)의 부하를 경감하고, 공유 버퍼(120)를 통해서 버퍼 오퍼플로우가 예방되게 함으로써 안정적으로 메시지를 라우팅할 뿐만 아니라 데이터 유실을 최소화하는 효과를 발휘할 수 있다. According to this embodiment, each channel copies the message to the shared buffer 120 only once, and by allowing the message stored in the shared buffer 120 to be transmitted in each channel, not only data copying is minimized but also the message is transmitted quickly It can have the effect of being routed. In addition, according to this embodiment, the load of the gateway 100 is reduced by making a minimum copy of messages, and a buffer overflow is prevented through the shared buffer 120, thereby stably routing messages and preventing data loss. can have the effect of minimizing.

도 6은 본 발명의 또 다른 실시예에 따른, 게이트웨이에서 메시지를 라우팅하는 방법을 설명하기 위한 제1 흐름도이다.6 is a first flowchart illustrating a method of routing a message in a gateway according to another embodiment of the present invention.

도 6을 참조하면, 수신부(110)는 타 통신 장치로부터 메시지를 수신하여 수신 버퍼(111)에 저장할 수 있다(S101).Referring to FIG. 6 , the reception unit 110 may receive a message from another communication device and store it in the reception buffer 111 ( S101 ).

다음으로, 제어부(150)는 버퍼 인덱스 풀(pool)에서 할당되지 않은 버퍼 인덱스를 확인하고, 상기 버퍼 인덱스를 가지는 공유 버퍼(120)의 영역에 상기 수신 메시지를 저장할 수 있다(S103). 이어서, 제어부(150)는 공유 버퍼(120)의 영역에 수신 메시지의 저장이 완료되면, 상기 수신 버퍼(111)에 상기 메시지를 삭제하여 수신 버퍼(111)를 릴리즈 할 수 있다(S105).Next, the controller 150 may check an unassigned buffer index from the buffer index pool, and store the received message in the area of the shared buffer 120 having the buffer index (S103). Subsequently, when the storage of the received message in the area of the shared buffer 120 is completed, the control unit 150 may release the reception buffer 111 by deleting the message in the reception buffer 111 ( S105 ).

다음으로, 제어부(150)는 상기 메시지에서 발송지 주소와 목적지 주소를 확인하고, 상기 주소들을 토대로 소스 네트워크의 유형과 목적지 네트워크의 유형을 식별한 후, 상기 식별한 네트워크 유형에 근거하여 하나 이상의 라우팅 규칙을 라우팅 규칙 테이블(도 5 참조)에서 확인할 수 있다(S107). 상기 제어부(150)는 목적지 주소가 복수 개인 경우(즉, 전송되는 채널이 복수 개인 경우), 각 채널에서 적용되는 라우팅 규칙을 라우팅 규칙 테이블에서 확인할 수 있다. Next, the control unit 150 checks the source address and the destination address in the message, identifies the type of the source network and the type of the destination network based on the addresses, and then one or more routing rules based on the identified network type can be confirmed in the routing rule table (see FIG. 5) (S107). When there are a plurality of destination addresses (ie, a plurality of channels to be transmitted), the controller 150 may check the routing rule applied to each channel in the routing rule table.

이어서, 제어부(150)는 메시지를 전송하고자 하는 채널이 혼잡 상태인지 여부를 확인하여(S111), 혼잡 상태인 경우에 소정의 시간동안 대기할 수 있다. 제어부(150)는 전송부(140)로부터 각 채널의 상태 정보를 보고받아, 각 채널의 혼잡 상태인지 여부를 판별할 수 있다. 다른 실시예로서, 제어부(150)는 각 채널의 저장 영역(141, 142, 143)에서 남아 있는 디스크립터 개수를 토대로 각 채널의 혼잡 상태를 판별할 수도 있다. 예컨대, 특정 채널의 저장 영역(141, 142, 143)에 임계개수 이상의 디스크립터가 저장되어 있으면, 제어부(150)는 상기 채널이 혼잡 상태인 것으로 판별할 수 있으며, 특정 채널의 저장 영역(141, 142, 143)에 임계개수 미만의 디스크립터가 저장되어 있으면 상기 채널이 혼잡하지 않은 것으로 판별할 수 있다.Subsequently, the controller 150 may check whether a channel to which a message is to be transmitted is in a congested state ( S111 ), and in case of the congested state, the controller 150 may wait for a predetermined time. The controller 150 may receive the state information of each channel from the transmitter 140 and determine whether each channel is in a congestion state. As another embodiment, the controller 150 may determine the congestion state of each channel based on the number of descriptors remaining in the storage areas 141 , 142 , and 143 of each channel. For example, if more than a threshold number of descriptors are stored in the storage areas 141, 142, and 143 of a specific channel, the controller 150 may determine that the channel is in a congested state, and the storage areas 141, 142 of the specific channel , 143), if less than a threshold number of descriptors are stored, it can be determined that the channel is not congested.

일 실시예에서, 제어부(150)는 채널이 혼잡 상태가 아니면, 상기 채널의 저장 영역(141, 142, 143)에 해당 채널에서 참조되어야 되는 디스크립트를 저장할 수 있다(S113). 다른 실시예에서, 제어부(150)는 디스크립터에 접근할 수 있는 어드레스를 해당 채널의 저장 영역에 저장할 수 있다. 예컨대, 제어부(150)는 제1 채널의 디스크립터에 접근할 수 있는 어드레스를 제1 채널의 저장 영역(141, 142, 143)에 저장할 수 있고, 제2 채널의 디스크립터에 접근할 수 있는 어드레스를 제2 채널의 저장 영역(141, 142, 143)에 저장할 수 있다. In an embodiment, if the channel is not in a congested state, the controller 150 may store the descript to be referenced in the corresponding channel in the storage areas 141 , 142 , 143 of the channel ( S113 ). In another embodiment, the controller 150 may store an address that can access the descriptor in the storage area of the corresponding channel. For example, the controller 150 may store an address that can access the descriptor of the first channel in the storage areas 141 , 142 , 143 of the first channel, and generate an address that can access the descriptor of the second channel. It can be stored in the storage areas 141, 142, and 143 of the two channels.

상기 제어부(150)는 상기 채널의 저장 영역(141, 142, 143)에 임계값 이상의 충분한 저장공간이 남아 있는 경우에, 상기 디스크립터의 어드레스 또는 디스크립터를 해당 저장 영역(141, 142, 143)에 저장할 수 있다. 제어부(150)는 상기 채널의 저장 영역(141, 142, 143)에 임계값 미만의 저장공간이 남아 있지 않은 경우(즉, 저장 영역의 저장공간이 충분하지 않은 경우), 상기 저장 영역(141, 142, 143)의 저장공간이 상기 임계값 이상으로 될 때까지 디스크립터 또는 디스크립터의 어드레스를 저장 영역(141, 142, 143)로 저장하지 않고 보류한다.The control unit 150 stores the address or descriptor of the descriptor in the storage areas 141, 142, and 143 when sufficient storage space equal to or greater than a threshold value remains in the storage areas 141, 142, and 143 of the channel. can When the storage space less than a threshold value does not remain in the storage areas 141, 142, and 143 of the channel (that is, when the storage space of the storage area is insufficient), the controller 150 controls the storage area 141, Until the storage space of 142 and 143 becomes equal to or greater than the threshold, the descriptor or address of the descriptor is reserved without being stored in the storage areas 141 , 142 and 143 .

제어부(150)는 디스크립터 또는 어드레스가 저장 영역(141, 142, 143)에 저장하면, 디스크립터의 개수에 확인하여 제1 개수가 상기 디스크립터의 개수가 되도록 상기 제1 개수를 설정할 수 있다(S115). 상기 제1 개수는 공유 버퍼(120)에 저장된 메시지가 참조되어 전송되어야 하는 개수를 나타내는 것으로서, 버퍼 영역을 릴리즈하기 위해서 이용될 수 있다.When the descriptors or addresses are stored in the storage areas 141 , 142 , and 143 , the controller 150 may check the number of descriptors and set the first number so that the first number becomes the number of the descriptors ( S115 ). The first number indicates the number of messages stored in the shared buffer 120 to be transmitted by reference, and may be used to release the buffer area.

본 실시예에 따르면, 게이트웨이(100) 내에서 1번의 메시지 복사가 이루어지게 하고, 메시지 라우팅을 신속하게 처리할 뿐만 아니라 게이트웨이(100)의 부하를 경감시키는 효과를 발휘할 수 있다. According to this embodiment, one copy of a message is made within the gateway 100 , and it is possible to not only quickly process message routing but also reduce the load on the gateway 100 .

도 7은 본 발명의 또 다른 실시예에 따른, 게이트웨이에서 메시지를 라우팅하는 방법을 설명하기 위한 제2 흐름도이다.7 is a second flowchart illustrating a method of routing a message in a gateway according to another embodiment of the present invention.

도 7을 참조하면, 전송부(140)는 채널의 저장 영역(141, 142, 143)에 저장된 디스크립트 또는 디스크립터의 어드레스를 확인할 수 있다(S201).Referring to FIG. 7 , the transmission unit 140 may check the address of the descriptor or descriptor stored in the storage areas 141 , 142 , and 143 of the channel ( S201 ).

이어서, 전송부(140)는 디스크립터에 포함된 버퍼 인덱스를 접근하여 공유 버퍼(120)의 영역에서 수신 메시지를 획득하고, 상기 수신 메시지를 라우팅 규칙에 따라 변경하거나 원본을 그대로 유지하여, 송신 메시지를 생성할 수 있다(S203). 전송부(140)는 저장 영역(141, 142, 143)에 어드레스가 저장된 경우, 상기 어드레스를 근거로 저장부(130)에 저장된 디스크립트를 확인할 수 있다. 전송부(140)는 상기 디스크립터에서 버퍼 인덱스를 확인하고, 상기 버퍼 인덱스에 해당하는 버퍼 영역에 접근하여 메시지를 획득할 수 있다. 또한, 전송부(140)는 상기 디스크립터에서 라우팅 규칙 식별정보를 확인하고, 라우팅 규칙 식별정보에 대응하는 라우팅 규칙을 저장부(130)에서 확인한 후, 상기 확인한 라우팅 규칙에 따라 메시지의 헤더, 페이로드 중에서 하나 이상을 선택적으로 변경하거나 상기 메시지의 원본 상태를 그대로 유지함으로써, 송신 메시지를 생성할 수 있다.Subsequently, the transmission unit 140 accesses the buffer index included in the descriptor to obtain a received message in the area of the shared buffer 120, and changes the received message according to the routing rule or maintains the original, so that the transmitted message is transmitted. can be created (S203). When an address is stored in the storage areas 141 , 142 , and 143 , the transmission unit 140 may check the descriptor stored in the storage unit 130 based on the address. The transmitter 140 may check a buffer index in the descriptor, and may obtain a message by accessing a buffer area corresponding to the buffer index. In addition, the transmission unit 140 checks the routing rule identification information in the descriptor, and after checking the routing rule corresponding to the routing rule identification information in the storage unit 130, the header and payload of the message according to the checked routing rule. By selectively changing one or more of them or maintaining the original state of the message as it is, a transmission message may be generated.

다음으로, 전송부(140)는 상기 생성한 송신 메시지를 해당 채널(버스)을 통해서 상대방 장치로 전송할 수 있다(S205). 이어서, 전송부(140)는 상기 송신 메시지를 정상적으로 수신하였음을 나타내는 Ack 메시지가 상기 채널(버스)을 통해서 상기 상대방 장치로부터 수신되는지 여부를 모니터링한다(S207). Next, the transmitter 140 may transmit the generated transmission message to the counterpart device through the corresponding channel (bus) (S205). Next, the transmitter 140 monitors whether an Ack message indicating that the transmission message has been normally received is received from the counterpart device through the channel (bus) (S207).

이어서, 전송부(140)는 상기 Ack 메시지가 상대방 장치로부터 수신되면, 상기 Ack 메시지를 제어부(150)로 전달할 수 있다(S209). 상기 전송부(140)는 Ack 메시지를 전송할 때에 디스크립터에 포함된 공유 버퍼의 인덱스를 제어부(150)를 전달할 수 있으며, 해당 채널의 저장 영역(141, 142, 143)에 저장중인 디스크립터 또는 디스크립터의 어드레스를 삭제할 수 있다. 또한, 제어부(150)도 저장부(130)에 저장중인 상기 디스크립트를 삭제할 수 있다. Subsequently, when the Ack message is received from the counterpart device, the transmitter 140 may transmit the Ack message to the controller 150 (S209). When transmitting the Ack message, the transmitting unit 140 may transmit the index of the shared buffer included in the descriptor to the control unit 150, and the descriptor or address of the descriptor being stored in the storage areas 141, 142, and 143 of the corresponding channel. can be deleted. In addition, the control unit 150 may also delete the descriptor being stored in the storage unit 130 .

본 실시예에 따르면, 공유 버퍼(120)에 저장된 메시지를 각 채널에서 이용하여 저장공간이 효율적으로 사용하게 하는 효과를 발휘할 수 있다. 또한, 본 실시예에 따르면, 라우팅 규칙에 따라 해당 채널에서 지원하는 형태로 메시지를 변형하여 전송하거나 원본 메시지를 그대로 전송하기 때문에, 다양한 네트워크 환경에서도 적용 가능한 효과를 발휘할 수 있다.According to this embodiment, the message stored in the shared buffer 120 can be used in each channel to achieve the effect of efficiently using the storage space. In addition, according to the present embodiment, since the message is transmitted in a format supported by the corresponding channel according to the routing rule, or the original message is transmitted as it is, an effect applicable to various network environments can be exhibited.

도 8은 본 발명의 또 다른 실시예에 따른, 게이트웨이에서 메시지를 라우팅하는 방법을 설명하기 위한 제3 흐름도이다.8 is a third flowchart illustrating a method of routing a message in a gateway according to another embodiment of the present invention.

도 8을 참조하면, 제어부(150)는 전송부(140)를 통해서 Ack 메시지가 수신되는지 여부를 확인하여(S301), Ack 메시지가 수신되면, 제2 개수를 수신된 Ack 메시지만큼 증가시킬 수 있다(S303). 상기 제2 개수의 초기값은 '0'으로 설정될 수 있다. 상기 제어부(150)는 상기 Ack 메시지와 함께 공유 버퍼(120)의 인덱스를 전송부(140)로부터 수신할 수 있다. Referring to FIG. 8 , the control unit 150 checks whether an Ack message is received through the transmission unit 140 ( S301 ), and when the Ack message is received, the second number may be increased by the received Ack message. (S303). The initial value of the second number may be set to '0'. The control unit 150 may receive the index of the shared buffer 120 from the transmission unit 140 together with the Ack message.

제어부(150)는 제2 개수가 증가되면, 증가된 제2 개수가 제1 개수에 도달하였는지 여부를 확인할 수 있다(S305). 제어부(150)는 제2 개수가 제1 개수에 도달하면, 상기 인덱스를 해당하는 공유 버퍼(120)의 영역을 릴리즈하고(S307), 더불어 상기 인덱스를 회수하여 버퍼 인덱스 풀에 사용 가능한 상태로 다시 등록할 수 있다. When the second number is increased, the control unit 150 may check whether the increased second number has reached the first number (S305). When the second number reaches the first number, the control unit 150 releases the area of the shared buffer 120 corresponding to the index (S307), and retrieves the index and returns the index to a usable state in the buffer index pool. can register.

본 실시예에 따르면, 공유 버퍼에서 메시지가 사용된 횟수(즉, 제2 개수)와 메시지가 참조되어야 하는 횟수(즉, 제1 개수)를 비교하여, 공유 버퍼(120)의 영역을 효과적으로 릴리즈할 수 있는 효과를 발휘할 수 있다.According to this embodiment, by comparing the number of times the message is used (ie, the second number) in the shared buffer with the number of times the message should be referenced (ie, the first number), the area of the shared buffer 120 can be effectively released. possible effect can be exerted.

도 9는 본 발명의 또 다른 실시예에 따른, 게이트웨이에서 메시지를 라우팅하는 방법을 설명하기 위한 제4 흐름도이다.9 is a fourth flowchart illustrating a method of routing a message in a gateway according to another embodiment of the present invention.

도 9를 참조하면, 제어부(150)는 전송부(140)를 이용하여 하나 이상의 버스(채널)에서 오류가 발생하는지 여부를 모니터링할 수 있다(S401). 제어부(150)는 CAN에서 버스 오류와 버스 오프(off)를 감지하는데 이용되는 TEC(Transmission Error Counter) 및 REC(Receive Error Counter)를 이용하여 버스 오류와 에러를 감지할 수 있다.Referring to FIG. 9 , the controller 150 may monitor whether an error occurs in one or more buses (channels) using the transmitter 140 ( S401 ). The controller 150 may detect bus errors and errors by using a Transmission Error Counter (TEC) and a Receive Error Counter (REC) used to detect bus errors and bus offs in CAN.

제어부(150)는 버스 오류가 검출되면, 에러가 발생된 버스 개수만큼 제1 개수를 차감하여, 제1 개수를 감소시킨다(S403). 제어부(150)는 제1 개수가 감소되면, 제2 개수가 감소된 제1 개수에 도달하였는지 여부를 확인할 수 있다(S405). 제어부(150)는 제1 개수가 제2 개수에 도달하면, 상기 인덱스를 해당하는 공유 버퍼(120)의 영역을 릴리즈하고(S407), 더불어 상기 인덱스를 회수하여 버퍼 인덱스 풀에 사용 가능한 상태로 다시 등록할 수 있다. When a bus error is detected, the controller 150 reduces the first number by subtracting the first number by the number of buses in which the error has occurred ( S403 ). When the first number is decreased, the controller 150 may check whether the second number reaches the reduced first number (S405). When the first number reaches the second number, the control unit 150 releases the area of the shared buffer 120 corresponding to the index (S407), retrieves the index, and restores the index to a usable state in the buffer index pool. can register.

한편, 제어부(150)는 버스 오프(off)를 모니터링하여, 버스 오프가 검출되면, 상기 인덱스에 해당하는 공유 버퍼의 영역을 즉시 릴리즈할 수 있다. On the other hand, the controller 150 may monitor the bus-off, and when the bus-off is detected, the area of the shared buffer corresponding to the index may be immediately released.

본 실시예에 따르면, 버스 에러가 발생할 경우를 대비하여, 버스 에러가 발생한 경우 제1 개수를 감소시키고 제1 개수와 제2 개수가 일치하는 경우에 공유 버퍼의 영역을 릴리즈함으로써, 버스 에러에 따라 공유 버퍼(120)의 영역이 계속적으로 유지되는 현상을 예방하는 효과를 발휘할 수 있다. According to the present embodiment, in case a bus error occurs, the first number is reduced when a bus error occurs, and the area of the shared buffer is released when the first number and the second number match, so that according to the bus error It is possible to exert the effect of preventing the phenomenon that the area of the shared buffer 120 is continuously maintained.

지금까지 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.The methods according to the embodiments of the present invention described so far may be performed by executing a computer program implemented as computer readable code. The computer program may be transmitted from the first computing device to the second computing device through a network such as the Internet and installed in the second computing device, thereby being used in the second computing device. The first computing device and the second computing device include all of a server device, a physical server belonging to a server pool for a cloud service, and a stationary computing device such as a desktop PC.

상기 컴퓨터프로그램은 DVD-ROM, 플래시 메모리 장치 등의 기록매체에 저장된 것일 수도 있다.The computer program may be stored in a recording medium such as a DVD-ROM or a flash memory device.

이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.Although the embodiments of the present invention have been described above with reference to the accompanying drawings, those of ordinary skill in the art to which the present invention pertains can realize that the present invention can be embodied in other specific forms without changing the technical spirit or essential features thereof. can understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.

Claims (16)

복수의 송신지 네트워크와 복수의 목적지 네트워크와 연결되어 데이터 라우팅을 수행하는 게이트웨이에 의하여 수행되는 방법에 있어서,
수신 메시지를 각 목적지 채널이 공유하는 공유 버퍼에 저장하는 단계;
상기 수신 메시지의 송신지 네트워크 및 목적지 네트워크를 이용하여 상기 수신 메시지의 라우팅 규칙을 확인하는 단계;
상기 확인된 라우팅 규칙과 상기 수신 메시지가 저장된 공유 버퍼의 인덱스를 기초로, 디스크립터를 상기 수신 메시지의 각 목적지 채널별로 생성하는 단계; 및
상기 목적지 채널의 상기 디스크립터를 참조하여 상기 공유 버퍼에 저장된 수신 메시지의 일부를 페이로드로서 포함하고 상기 라우팅 규칙에 따라 작성된 헤더를 포함하는 송신 메시지를, 상기 목적지 채널을 통하여 목적지 네트워크로 전송하는 것을, 각 목적지 채널 별로 수행하는 단계를 포함하는,
라우팅 방법.
A method performed by a gateway connected to a plurality of source networks and a plurality of destination networks to perform data routing,
storing the received message in a shared buffer shared by each destination channel;
checking a routing rule of the received message using a source network and a destination network of the received message;
generating a descriptor for each destination channel of the received message based on the checked routing rule and an index of a shared buffer in which the received message is stored; and
Transmitting a transmission message including a part of the received message stored in the shared buffer as a payload with reference to the descriptor of the destination channel and including a header prepared according to the routing rule to the destination network through the destination channel, Including the step of performing for each destination channel,
routing method.
제1 항에 있어서,
상기 수신 메시지가 참조되어야 하는 제1 개수를 확인하는 단계; 및
상기 수신 메시지가 참조되어 송신 메시지로서 전송된 제2 개수를 확인하는 단계; 및
상기 제2 개수가 상기 제1 개수에 도달하면, 상기 인덱스와 대응하는 상기 공유 버퍼의 영역을 릴리즈하는 단계를 더 포함하는,
라우팅 방법.
The method of claim 1,
checking a first number to which the received message should be referenced; and
checking the second number of transmitted messages by referring to the received message; and
When the second number reaches the first number, further comprising the step of releasing a region of the shared buffer corresponding to the index,
routing method.
제2 항에 있어서,
각 목적지 채널의 상태를 확인하여 오류가 발생한 목적지 채널의 개수만큼 상기 제1 개수를 차감하는 단계를 더 포함하는,
라우팅 방법.
3. The method of claim 2,
Further comprising the step of subtracting the first number by the number of destination channels in which an error has occurred by checking the state of each destination channel,
routing method.
제1 항에 있어서,
각각의 상기 목적지 채널의 상태를 확인하여 버스 오프가 발생한 목적지 채널이 감지되면, 상기 인덱스에 해당하는 공유 버퍼의 영역을 릴리즈하는 단계를 더 포함하는,
라우팅 방법.
The method of claim 1,
Checking the state of each of the destination channels, further comprising the step of releasing the area of the shared buffer corresponding to the index when the destination channel in which the bus-off has occurred is detected,
routing method.
제1 항에 있어서,
상기 라우팅 규칙은, 소스 네트워크의 유형과 목적지 네트워크의 유형에 근거하여, 헤더의 변경 규칙, 페이로드의 변경 규칙 중에 하나 이상을 포함하는 것인,
라우팅 방법.
The method of claim 1,
The routing rule includes one or more of a header change rule and a payload change rule, based on the type of the source network and the type of the destination network.
routing method.
제1 항에 있어서,
상기 송신 메시지를, 상기 목적지 채널을 통하여 목적지 네트워크로 전송하는 것을, 각 목적지 채널 별로 수행하는 단계는,
상기 목적지 채널이 분할 라우팅을 수행하는 목적지 네트워크와 연결되는 채널인 경우, 상기 수신 메시지를 소정의 개수로 분할하고, 상기 분할된 어느 한 수신 메시지를 페이로드로서 포함하는 복수의 송신 메시지를 전송하는 단계를 포함하는,
라우팅 방법.
The method of claim 1,
The step of transmitting the transmission message to the destination network through the destination channel for each destination channel comprises:
When the destination channel is a channel connected to a destination network performing segmentation routing, dividing the received message into a predetermined number and transmitting a plurality of transmission messages including the divided one received message as a payload; containing,
routing method.
제1 항에 있어서,
상기 디스크립터를 상기 수신 메시지의 각 목적지 채널별로 생성하는 단계는,
상기 확인된 라우팅 규칙의 식별정보 및 상기 공유 버퍼의 인덱스를 포함하는 디스크립터를 채널로 생성하는 단계; 및
상기 생성한 디스크립터를 해당 채널의 저장영역에 저장하는 단계를 포함하는,
라우팅 방법.
The method of claim 1,
The step of generating the descriptor for each destination channel of the received message comprises:
generating a descriptor including identification information of the identified routing rule and an index of the shared buffer as a channel; and
storing the generated descriptor in a storage area of the corresponding channel;
routing method.
제7 항에 있어서,
상기 저장하는 단계는,
상기 채널의 저장영역에 임계값 이상의 저장공간이 남아 있는 경우에, 상기 생성된 디스크립터를 상기 채널의 저장영역에 저장하는 단계를 포함하는,
라우팅 방법.
8. The method of claim 7,
The storing step is
storing the generated descriptor in the storage area of the channel when a storage space equal to or greater than a threshold value remains in the storage area of the channel;
routing method.
제1 항에 있어서,
상기 디스크립터를 상기 수신 메시지의 각 목적지 채널별로 생성하는 단계는,
상기 확인된 라우팅 규칙의 식별정보 및 상기 공유 버퍼의 인덱스를 포함하는 디스크립터를 생성하는 단계; 및
상기 생성된 디스크립터에 접근할 수 있는 어드레스를 해당 채널의 저장영역에 저장하는 단계를 포함하는,
라우팅 방법.
The method of claim 1,
The step of generating the descriptor for each destination channel of the received message comprises:
generating a descriptor including identification information of the checked routing rule and an index of the shared buffer; and
storing an address that can access the generated descriptor in a storage area of the corresponding channel;
routing method.
제1 항에 있어서,
상기 송신 메시지를, 상기 목적지 채널을 통하여 목적지 네트워크로 전송하는 것을, 각 목적지 채널 별로 수행하는 단계는,
상기 수신 메시지의 페이로드를 상기 송신 메시지의 페이로드로 포함시키고, 상기 수신 메시지의 헤더를 상기 라우팅 규칙에 근거하여 유지하거나 변경하여 상기 송신 메시지의 헤더를 작성하는 단계를 포함하는,
라우팅 방법.
The method of claim 1,
The step of transmitting the transmission message to the destination network through the destination channel for each destination channel comprises:
Including the payload of the received message as the payload of the outgoing message, and maintaining or changing the header of the received message based on the routing rule to create a header of the outgoing message,
routing method.
복수의 송신지 네트워크와 복수의 목적지 네트워크와 연결되어 데이터 라우팅을 수행하는 라우팅 장치에 있어서,
각 목적지 채널에 의해 공유되며 수신 메시지를 저장하는 공유 버퍼;
상기 수신 메시지의 송신지 네트워크 및 목적지 네트워크를 이용하여 상기 수신 메시지의 라우팅 규칙을 확인하고, 상기 확인된 라우팅 규칙과 상기 수신 메시지가 저장된 공유 버퍼의 인덱스를 기초로, 송신 메시지 생성을 위한 디스크립터를 상기 수신 메시지의 각 목적지 채널별로 생성하는 제어부; 및
각각의 목적지 네트워크와 복수의 목적지 채널을 형성하며, 상기 디스크립터를 참조하여 상기 인덱스에 대응하는 상기 공유 버퍼의 영역에서 상기 수신 메시지를 확인하고, 상기 수신 메시지의 헤더, 페이로드 중에서 하나 이상이 상기 라우팅 규칙에 따라 변경하여 생성한 송신 메시지를 상기 목적지 채널을 통하여 목적지 네트워크로 전송하는 것을, 각 목적지 채널 별로 수행하는 전송부를 포함하는,
라우팅 장치.
A routing device connected to a plurality of source networks and a plurality of destination networks to perform data routing, the routing device comprising:
a shared buffer shared by each destination channel and storing incoming messages;
The routing rule of the received message is checked using the source network and the destination network of the received message, and a descriptor for generating the transmitted message is generated based on the checked routing rule and the index of the shared buffer in which the received message is stored. a control unit generating each destination channel of a received message; and
Each destination network and a plurality of destination channels are formed, the received message is identified in the area of the shared buffer corresponding to the index with reference to the descriptor, and at least one of a header and a payload of the received message is the routing A transmission unit configured to transmit a transmission message generated by changing according to a rule to a destination network through the destination channel, for each destination channel,
routing device.
제11 항에 있어서,
상기 제어부는,
상기 수신 메시지가 참조되어야 하는 제1 개수를 확인하고, 상기 수신 메시지가 참조되어 송신 메시지로서 전송된 제2 개수를 확인한 후, 상기 제2 개수가 상기 제1 개수에 도달하면 상기 인덱스와 대응하는 상기 공유 버퍼의 영역을 릴리즈하는,
라우팅 장치.
12. The method of claim 11,
The control unit is
After confirming the first number to which the received message is to be referenced, and confirming the second number of which the received message is referenced and transmitted as a transmission message, when the second number reaches the first number, the index corresponding to the to release an area of the shared buffer,
routing device.
제12 항에 있어서,
상기 제어부는,
각 목적지 채널의 상태를 확인하여 오류가 발생한 목적지 채널의 개수만큼 상기 제1 개수를 차감하는,
라우팅 장치.
13. The method of claim 12,
The control unit is
Checking the state of each destination channel and subtracting the first number by the number of destination channels in which an error has occurred,
routing device.
제11 항에 있어서,
상기 전송부는,
특정 목적지 채널이 분할 라우팅을 수행하는 목적지 네트워크와 연결되는 채널인 경우, 상기 수신 메시지를 소정의 개수로 분할하고, 상기 분할된 어느 한 수신 메시지를 페이로드로서 포함하는 복수의 송신 메시지를 상기 특정 목적지 채널로 전송하는,
라우팅 장치.
12. The method of claim 11,
The transmission unit,
When a specific destination channel is a channel connected to a destination network for performing segmentation routing, the received message is divided into a predetermined number, and a plurality of transmitted messages including one of the divided received messages as a payload are divided into the specific destination. transmitted to the channel,
routing device.
제11 항에 있어서,
상기 제어부는, 상기 확인된 라우팅 규칙의 식별정보 및 상기 공유 버퍼의 인덱스를 포함하는 디스크립터를 생성하고, 상기 생성한 디스크립터를 해당 목적지 채널의 저장영역에 저장하고,
상기 전송부는, 목적지 채널의 저장영역에 저장된 디스크립터를 참조하여 해당 목적지 채널을 경유하여 상기 송신 메시지를 전송하는,
라우팅 장치.
12. The method of claim 11,
The control unit generates a descriptor including the identified identification information of the routing rule and the index of the shared buffer, and stores the generated descriptor in a storage area of the corresponding destination channel,
The transmitting unit transmits the transmission message via a corresponding destination channel with reference to a descriptor stored in a storage area of the destination channel.
routing device.
제11 항에 있어서,
상기 제어부는,
상기 확인된 라우팅 규칙의 식별정보 및 상기 공유 버퍼의 인덱스를 포함하는 디스크립터를 생성하고, 생성된 상기 디스크립터에 접근할 수 있는 어드레스를 해당 목적지 채널의 저장영역에 저장하고,
상기 전송부는,
상기 목적지 채널의 저장영역에 저장된 어드레스를 기초로 상기 디스크립터를 획득한 후, 획득된 상기 디스크립터를 참조하여 해당 목적지 채널을 통해 상기 송신 메시지를 전송하는,
라우팅 장치.
12. The method of claim 11,
The control unit is
generating a descriptor including the identified identification information of the routing rule and the index of the shared buffer, and storing an address that can access the created descriptor in a storage area of the corresponding destination channel;
The transmission unit,
After obtaining the descriptor based on the address stored in the storage area of the destination channel, the transmission message is transmitted through the corresponding destination channel with reference to the obtained descriptor,
routing device.
KR1020200175257A 2020-12-15 2020-12-15 Routing method and apparatus KR102429410B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200175257A KR102429410B1 (en) 2020-12-15 2020-12-15 Routing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200175257A KR102429410B1 (en) 2020-12-15 2020-12-15 Routing method and apparatus

Publications (2)

Publication Number Publication Date
KR20220085303A KR20220085303A (en) 2022-06-22
KR102429410B1 true KR102429410B1 (en) 2022-08-03

Family

ID=82216984

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200175257A KR102429410B1 (en) 2020-12-15 2020-12-15 Routing method and apparatus

Country Status (1)

Country Link
KR (1) KR102429410B1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100524006B1 (en) * 2003-03-13 2005-10-27 삼성전자주식회사 Apparatus for reducing amount of data copyed for forwarding packet in network device and method thereof
KR100793349B1 (en) * 2006-01-26 2008-01-11 삼성전자주식회사 Multicast forwarding apparatus and control method in system for using PPP multi-link
KR101676239B1 (en) * 2011-08-09 2016-11-15 현대자동차주식회사 Method for Processing Data of a Gateway for a Vehicle Network System
KR101567973B1 (en) 2014-11-06 2015-11-11 현대오트론 주식회사 Can communication apparatus and method
KR101907438B1 (en) * 2016-12-08 2018-10-15 현대오트론 주식회사 Method for transmitting and receiving periodic message of gateway device for vehicle

Also Published As

Publication number Publication date
KR20220085303A (en) 2022-06-22

Similar Documents

Publication Publication Date Title
US7599772B2 (en) Automotive switch fabric with improved resource reservation
US6044418A (en) Method and apparatus for dynamically resizing queues utilizing programmable partition pointers
JP6961063B2 (en) Network hub, transfer method and in-vehicle network system
US8301821B2 (en) Communication module for connecting a serial bus to a plurality of system buses
JP6961062B2 (en) Electronic control unit, communication method and in-vehicle network system
CN101385296B (en) Gateway for the automatic routing of messages between buses
US8315274B2 (en) System and method for supporting synchronous system communications and operations
KR20010080608A (en) A multi link layer to single physical layer interface in a node of a data communication system
KR20040010707A (en) Arrangement for creating multiple virtual queue pairs from a compressed queue pair based on shared attributes
US6539450B1 (en) Method and system for adjusting isochronous bandwidths on a bus
US7123614B2 (en) Method and device for communicating between a first and a second network
KR20200136751A (en) Apparatus for communicating diagnosis of a vehicle, system having the same and method thereof
JP2006191337A (en) Gateway device for transferring message between buses and network system using the device
CN107453895B (en) Method for configuring a communication path and first communication node forming a vehicle network
CN112968821B (en) Electronic control unit, communication method, and in-vehicle network system
KR102429410B1 (en) Routing method and apparatus
CN112838992A (en) Message scheduling method and network equipment
KR102585939B1 (en) Gateway for vehicle Ethernet communication and message routing method thereof
CN116821042A (en) FC equipment DMA communication method based on multiple partitions
JPH11239163A (en) Inter-lan flow control method and switch
US7020149B1 (en) Method for operating a switching system for data packets
KR101573549B1 (en) Data transmission system and method for transmitting data between different type protocols
WO2017203906A1 (en) Network hub, transfer method, and in-vehicle network system
WO2001038996A1 (en) Method and system for adjusting isochronous bandwidths on a bus
WO2022259832A1 (en) Communication device and data communication method

Legal Events

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