KR20030056097A - Between Boards Message Handling System and Method - Google Patents
Between Boards Message Handling System and Method Download PDFInfo
- Publication number
- KR20030056097A KR20030056097A KR1020010086258A KR20010086258A KR20030056097A KR 20030056097 A KR20030056097 A KR 20030056097A KR 1020010086258 A KR1020010086258 A KR 1020010086258A KR 20010086258 A KR20010086258 A KR 20010086258A KR 20030056097 A KR20030056097 A KR 20030056097A
- Authority
- KR
- South Korea
- Prior art keywords
- message
- board
- received
- task
- function
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
Abstract
Description
본 발명은 보드간 메시지 통신 시스템 및 방법에 관한 것으로서, 특히 콤팩트 PCI(Peripheral Component Interconnect) 버스를 하드웨어 플랫폼으로 하는 시스템에 실장되어 있는 보드들 사이의 데이터를 메시지를 통해 송수신할 수 있도록 하는 보드간 메시지 통신 시스템 및 방법에 관한 것이다.The present invention relates to a board-to-board message communication system and method, and more particularly, to a board-to-board message that allows data to be transmitted and received through messages between boards mounted in a system having a compact Peripheral Component Interconnect (PCI) bus as a hardware platform. A communication system and method are disclosed.
시스템에 구비되어 있는 호스트 보드와 실제 미디어 데이터 처리를 수행하는 입출력 보드간, 또는 입출력 보드들 간에서 데이터를 주고 받고자 할 때, 종래에는 LC-버스를 하드웨어 플랫폼으로 사용하여 메시지와 실제 데이터를 분리하여 보드들 간에 통신한다.When exchanging data between a host board provided in the system and an I / O board that performs actual media data processing, or between I / O boards, the LC-bus is conventionally used as a hardware platform to separate messages from actual data. Communicate between boards.
LC-버스는 별다른 인터페이스 계층이 없기 때문에 실제 데이터 처리를 수행하는 응용 계층부에서 직접 하드웨어를 억세스한다. 즉, 메모리 맵 상에 정해져 있는 LC-버스 영역을 응용 계층부에서 직접 억세스하여 메시지를 읽는다.Since the LC-bus has no separate interface layer, the hardware is directly accessed by the application layer portion that performs the actual data processing. That is, the LC-bus area defined on the memory map is directly accessed by the application layer to read the message.
여기서, 응용 계층부에서는 주기적으로 메시지가 왔는 지를 체크하는 테스크와 도착한 메시지를 처리하는 테스크를 생성시켜야 한다.Here, the application layer unit needs to periodically generate a task for checking whether a message has arrived and a task for processing the arrived message.
도 1은 종래 보드간 메시지 통신 방법에 적용되는 메시지의 구성을 보인 도로, 메시지 방향 필드와, 보드 번호 필드와, 포트 번호 필드와, 메시지 순서 번호 필드와, 기능 코드 필드와, 데이터 필드와, 체크섬 필드를 구비하여 이루어진다.1 is a road, a message direction field, a board number field, a port number field, a message sequence number field, a function code field, a data field, and a checksum showing the configuration of a message applied to a conventional board-to-board message communication method. It is made with a field.
전술한 바와 같은 형식의 메시지의 전체 크기는 32바이트이며, 실제 데이터는 포함되지 않는다. 실제 데이터는 다른 메모리 영역에 존재한다.The total size of the message in the format described above is 32 bytes, and no actual data is included. The actual data is in different memory areas.
실제 데이터를 수반하지 않는 메시지가 도착했을 경우 메시지를 처리하는 태스크는 해당 메시지만을 처리하고 다음 메시지를 기다리며, 실제 데이터를 수반하는 메시지가 도착했을 경우에는 해당 메시지를 처리하고 실제 데이터가 존재하는 메모리 영역을 억세스하여 읽어온 후 해당 데이터도 같이 처리한다.When a message arrives that does not involve actual data, the task that processes the message processes only that message and waits for the next message. When a message that carries actual data arrives, the task processes the message and the memory area where the actual data exists. Access by reading and process the relevant data as well.
한편, 상대방 보드로 보내고자 하는 데이터가 존재하는 경우에는, 사전에 정해진 일정 메모리 영역에 해당 데이터를 기록한다.On the other hand, if there is data to be sent to the other board, the data is recorded in a predetermined predetermined memory area.
이상에서 살펴본 바와 같이, 종래 LC-버스를 사용하여 메시지를 전송하는 경우에는 응용 계층부에서 바로 하드웨어를 억세스해야 하는 부담이 있다. 따라서, 유사한 다른 보드로 소프트웨어 프로그램을 이식시킬 수가 없게 된다.As described above, when transmitting a message using a conventional LC-bus, there is a burden of accessing hardware directly from the application layer. As a result, you cannot port software programs to other similar boards.
또한, 메시지 형식이 확장성이나 범용성이 떨어지는 구조로 구현되어 있어 시스템이 바뀔 때마다 메시지 구조를 변경시켜야 하는 불편함이 있다.In addition, since the message format is implemented in a structure that is not scalable or universal, there is an inconvenience of changing the message structure every time the system changes.
본 발명은 전술한 문제점을 해결하기 위해 안출된 것으로서, 다른 보드와 주고받을 데이터가 생성되면, 메시지 헤더를 작성하여 붙인 후 해당 보드로 전송하고, 다른 보드로부터 메시지를 수신받으면 메시지의 헤더를 분석하여 해당 메시지를 처리할 태스크로 전달함으로써, 콤팩트 PCI 버스를 하드웨어 플랫폼으로 하는 시스템에 실장되어 있는 보드들 사이의 데이터를 메시지를 통해 주고받을 수 있도록 하는 보드간 메시지 통신 시스템 및 방법을 제공함에 그 목적이 있다.The present invention has been made to solve the above-described problems, and when data to be exchanged with other boards is generated, a message header is created and pasted and transmitted to the corresponding board, and when a message is received from another board, the header of the message is analyzed. Its purpose is to provide an inter-board message communication system and method for transmitting and receiving data through messages by transmitting the message to a task to be processed, by using a compact PCI bus as a hardware platform. have.
도 1은 종래 보드간 메시지 통신 방법에 적용되는 메시지의 구성을 보인 도.1 is a view showing the configuration of a message applied to a conventional board-to-board message communication method.
도 2는 본 발명에 따른 보드간 메시지 통신 시스템의 구성을 보인 도.Figure 2 is a diagram showing the configuration of a board-to-board message communication system according to the present invention.
도 3은 본 발명에 적용되는 메시지의 구성을 보인 도.3 is a view showing the configuration of a message applied to the present invention.
도 4는 본 발명에 따른 보드간 메시지 통신 방법을 설명하기 위한 플로우챠트.4 is a flowchart for explaining a board-to-board message communication method according to the present invention.
*** 도면의 주요 부분에 대한 부호의 설명 ****** Explanation of symbols for the main parts of the drawing ***
10. PCI 버스 스위치,20. PCI 버스 스위치 구동부,10.PCI bus switch, 20. PCI bus switch driver,
30. 인터페이스부,33. 수신 태스크,30. Interface section, 33. Receive tasks,
35, 39, 45-1, 45-2, …, 45-n. 메시지 큐,35, 39, 45-1, 45-2,... , 45-n. Message queue,
37. 송신 태스크,40. 응용 계층부,37.Send Task, 40. Application layer,
43-1, 43-2, …, 43-n. 기능 수행 태스크,43-1, 43-2,... , 43-n. Perform tasks,
47-1, 47-2, …, 47-n. 기능 요구 태스크47-1, 47-2,... , 47-n. Feature request task
전술한 목적을 달성하기 위한 본 발명에 따른 보드간 메시지 통신 시스템은, 보드의 실장 상태를 감지하며, 각 보드와 콤팩트 PCI 버스를 인터페이스시켜 주는 PCI 버스 스위치를 운용하는 PCI 버스 스위치 구동부와; 다른 보드와 통신하고자 하는 데이터를 생성하고, 다른 보드로부터 수신받은 메시지가 요구하는 기능을 수행하는 응용 계층부와; 상기 PCI 버스 스위치 구동부와 응용 계층부 사이를 인터페이스시켜 주며, 다른 보드와 통신하고자 하는 데이터에 메시지 헤더를 붙여서 주고받는 일을 수행하는 인터페이스부를 구비하여 이루어진다.The board-to-board message communication system according to the present invention for achieving the above object, the PCI bus switch driver for detecting a mounting state of the board, and operating a PCI bus switch for interfacing each board and the compact PCI bus; An application layer unit for generating data to be communicated with another board and performing a function required by a message received from another board; Interface between the PCI bus switch driver and the application layer, and the interface to perform the task of sending and receiving a message header to the data to communicate with the other board.
여기서, 상기 응용 계층부는, 다른 보드와 통신하고자 하는 데이터를 생성하고, 상기 인터페이스부가 제공하는 API를 사용하여 생성된 데이터를 다른 보드로 전송하는 기능 요구 태스크와; 상기 인터페이스부를 통해 다른 보드로부터 전송받은 메시지의 포트 번호와 기능 코드를 분석하여 해당 기능을 수행하는 기능 수행 태스크를 구비하여 이루어지는 것을 특징으로 한다.The application layer unit may include: a function request task of generating data to be communicated with another board and transmitting data generated using an API provided by the interface unit to another board; And a function performing task for performing a corresponding function by analyzing a port number and a function code of a message transmitted from another board through the interface unit.
그리고, 상기 인터페이스부는, 다른 보드로부터 수신된 메시지가 존재하면, 수신된 메시지의 메시지 헤더를 분석하여 어느 기능 수행 태스크로 보내야 하는 지를 판별하고, 판별된 기능 수행 태스크로 수신된 메시지를 전달하는 수신 태스크와; 기능 요구 태스크로부터 수신된 메시지가 존재하면, 수신된 메시지를 어느 보드로 보내야 하는 지를 판별하고, 작성된 메시지 헤더를 붙여서 판별된 보드로 전송하는 송신 태스크를 구비하여 이루어지는 것을 특징으로 한다.If there is a message received from another board, the interface unit analyzes a message header of the received message to determine which function execution task to send to, and receives the received task of delivering the received message to the determined function execution task. Wow; If there is a message received from the function request task, it is characterized by comprising a transmission task for determining which board to send the received message to, and sending it to the determined board with the message header attached.
그리고, 상기 메시지 헤더는, 해당 메시지가 유효한 메시지인 지를 체크할 수 있는 마법 숫자와; 메시지 전체의 크기를 나타내는 메시지 길이와; 송신쪽/수신쪽 보드의 이름을 나타내는 송신/수신 보드 이름과; 송신쪽/수신쪽 보드의 ID를 나타내는 송신/수신 보드 ID와; 각 보드가 실장되어 있는 PCI 버스 슬롯 번호를 나타내는 송신/수신 네트워크 ID와; 해당 메시지가 처리되는 기능 수행 태스크의 메시지 큐 번호를 나타내는 송신/수신 서브 ID와; 해당 메시지가 속하는 포트의 번호를 나타내는 송신/수신 포트 ID와; 메시지의 연속성을 나타내는 메시지 타입과; 메시지의 용도를 나타내는 기능 코드를 포함하여 이루어지는 것을 특징으로 한다.The message header may include a magic number for checking whether the message is a valid message; A message length indicating the size of the entire message; A send / receive board name indicating the name of the sender / receiver board; A transmit / receive board ID indicating an ID of the transmit / receive board; A transmit / receive network ID indicating a PCI bus slot number on which each board is mounted; A transmit / receive sub ID indicating a message queue number of a function performing task in which the message is processed; A transmission / reception port ID indicating a number of a port to which the message belongs; A message type indicative of the continuity of the message; And a function code indicating the purpose of the message.
한편, 본 발명에 따른 보드간 메시지 통신 방법은, 기능 요구 태스크에서 다른 보드와 통신하고자 하는 메시지를 생성하고, 인터페이스부의 API를 이용하여 생성된 메시지를 송신 태스크로 보내는 과정과; 상기 송신 태스크에서 상기 기능 요구 태스크로부터 수신된 메시지를 어느 보드로 보내야 할 지를 판별하고, 메시지 헤더를 작성하여 상기 수신된 메시지에 붙인 후 상기 판별된 보드로 전송하는 메시지 송신 과정과; 수신 태스크에서 다른 보드에서 수신된 메시지를 어느 기능 수행 태스크로 보내야 할 지를 판별하고, 판별된 기능 수행 태스크로 상기 수신된 메시지를 보내는 메시지 수신 과정과; 상기 기능 수행 태스크에서 상기 수신 태스크로부터 수신된 메시지의 포트 번호와 기능 코드를 분석하여 해당 기능을 수행하는 과정을 포함하여 이루어진다.On the other hand, the board-to-board message communication method according to the present invention includes the steps of generating a message to communicate with the other board in the function request task, and sending the message generated using the API of the interface unit to the transmission task; A message transmission process of determining which board to send the message received from the function request task to the transmission task, preparing a message header, attaching the message to the received message, and transmitting the message to the determined board; Determining a function performing task to which a message received from another board is to be sent in a receiving task, and sending the received message to the determined function performing task; And performing a corresponding function by analyzing a port number and a function code of a message received from the receiving task in the function performing task.
여기서, 상기 메시지 송신 과정은, 주기적으로 메시지 큐를 폴링하여 기능 요구 태스크로부터 수신된 메시지가 존재하는 지를 판단하는 과정과; 상기 판단결과 수신된 메시지가 존재하는 경우에는, 상기 수신된 메시지가 보내져야 할 보드를 판별하고, 메시지 헤더를 작성하여 상기 수신된 메시지에 붙이는 과정과; 상기 판별된 보드로 상기 메시지를 전송하는 과정으로 이루어지는 것을 특징으로 한다.The message transmission process may include: periodically polling a message queue to determine whether a message received from a function request task exists; If there is a received message as a result of the determination, determining a board to which the received message is to be sent, preparing a message header, and attaching the received message to the received message; Characterized in that the process of transmitting the message to the determined board.
그리고, 상기 메시지 수신 과정은, 주기적으로 메시지 큐를 폴링하여 다른 보드로부터 수신된 메시지가 존재하는 지를 판단하는 과정과; 상기 판단결과 수신된 메시지가 존재하는 경우에는, 상기 수신된 메시지의 메시지 헤더를 분석하여 상기 수신된 메시지가 보내져야 할 기능 수행 태스크를 판별하는 과정과; 상기 판별된 기능 수행 태스크로 상기 수신된 메시지를 보내는 과정으로 이루어지는 것을 특징으로 한다.The message receiving step may include: periodically polling a message queue to determine whether a message received from another board exists; If there is a message received as a result of the determination, analyzing a message header of the received message to determine a function performing task to which the received message is to be sent; And sending the received message to the determined function performing task.
이하에서는 첨부한 도면을 참조하여 본 발명의 바람직한 실시예에 따른 보드간 메시지 통신 시스템 및 방법에 대해서 상세하게 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail with respect to the board-to-board message communication system and method according to an embodiment of the present invention.
도 2는 본 발명에 따른 보드간 메시지 통신 시스템의 구성을 보인 도로, PCI 버스 스위치(10)와, PCI 버스 스위치 구동부(20)와, 인터페이스부(30)와, 응용 계층부(40)를 구비하여 이루어진다.2 is a road showing a configuration of an inter-board message communication system according to the present invention, a PCI bus switch 10, a PCI bus switch driver 20, an interface unit 30, and an application layer unit 40 are provided. It is done by
이와 같은 구성에 있어서, PCI 버스 스위치 구동부(20)는 각 보드와 콤팩트 PCI 버스를 인터페이스시켜주는 PCI 버스 스위치(10)를 운용한다. 그리고, PCI 버스 스위치 구동부(20)는 각 보드의 탈장, 실장 정보를 감지하는 데, 이는 PCI 버스 스위치 구동부(20)에 구비되어 있는 보드 실장 감지 태스크(미도시)에 의해 이루어진다.In such a configuration, the PCI bus switch driver 20 operates a PCI bus switch 10 for interfacing each board with the compact PCI bus. In addition, the PCI bus switch driver 20 detects hermetic and mounting information of each board, which is performed by a board mount detection task (not shown) provided in the PCI bus switch driver 20.
전술한, PCI 버스 스위치 구동부(20)는 모든 보드에 공통으로 들어갈 라이브러리이므로, 상위 계층에 대하여 API(Application Programming Interface)를 제공한다.As described above, since the PCI bus switch driver 20 is a library to be common to all boards, the PCI bus switch driver 20 provides an application programming interface (API) to the upper layer.
한편, 인터페이스부(30)는 PCI 버스 스위치 구동부(20)와 응용 계층부(40) 사이를 인터페이스시켜 주며, 모든 보드에 공통으로 들어갈 라이브러리이므로, 상위 계층에 대하여 API를 제공한다.On the other hand, the interface unit 30 interfaces between the PCI bus switch driver 20 and the application layer unit 40, and since it is a library that will be common to all boards, it provides an API to the upper layer.
전술한, 인터페이스부(30)는 실제로 각 보드가 다른 보드와 통신하고자 하는 데이터를 주고 받는 일을 수행하는 데, 다른 보드로 보내고자 하는 실제 데이터에 모든 메시지에 공통으로 붙는 메시지 헤더를 붙여서 주고 받는다.As described above, the interface unit 30 actually transmits and receives data that each board wants to communicate with other boards, and sends and receives message headers that are commonly attached to all messages to actual data to send to other boards. .
앞서 설명한 바와 같이, 인터페이스부(30)는 다른 보드와 통신하고자 하는 데이터를 주고 받는 일을 수행하는 데, 이는 다른 보드들로부터 메시지가 들어왔는 지를 주기적으로 폴링하여 수신된 메시지가 존재하는 경우에는 해당 메시지의 헤더를 분석하여 분석된 태스크로 보내는 수신 태스크(33)와, 응용 계층부(40)의 기능 요구 태스크들(47-1, 47-2, …, 47-n)로부터 메시지가 들어왔는 지를 주기적으로 폴링하여 수신된 메시지가 존재하는 경우에는 해당 메시지를 어느 보드로 보내야 할 지를 판단한 후, 메시지 헤더를 붙여서 해당 메시지를 해당 보드로 송출하는 송신 태스크(37)에 의해 이루어진다.As described above, the interface unit 30 transmits and receives data to communicate with other boards, which periodically polls whether messages have been received from other boards, and if there is a received message, Whether the message came from the receiving task 33, which analyzes the header of the message and sends it to the analyzed task, and the functional request tasks 47-1, 47-2, ..., 47-n of the application layer unit 40; If there is a message received by polling periodically, it is determined by a transmission task 37 which sends a message header to the board after determining the board to which the message should be sent.
전술한, 수신 태스크(33)는 자기 보드를 제외한 다른 보드에 대해서 메시지 큐(35)를 만들고, 헤드(Head)와 테일(Tail) 필드를 두어 다른 보드로부터 메시지가 들어왔는 지를 판단한다. 헤드와 테일은 일반적인 큐 메커니즘에 쓰이는 인자로메시지를 큐에 입력하는 쪽은 헤드 값을 1증가시키고, 큐에서 메시지를 읽어가는 쪽은 테일 값을 1감소시키는 데, 헤드 값과 테일 값이 같으면 더 이상 처리할 메시지가 없다는 의미고, 테일 값이 헤드 값보다 크다면 메시지 큐가 꽉 찼다는 의미다. 전술한 바와 같은, 큐 메커니즘에 의해 수신 태스크(33)는 다른 보드로부터 메시지가 들어왔는 지를 판단하는 데, 메시지 큐(35)에 메시지가 들어왔다면 해당 메시지의 헤더를 분석하여 응용 계층부(40)의 어떤 기능 수행 태스크로 보내야 할 지를 결정하고, 결정된 기능 수행 태스크로 해당 메시지를 보낸다.As described above, the reception task 33 creates a message queue 35 for boards other than the magnetic board, and determines whether a message is received from another board by setting a head and a tail field. Head and tail are the arguments used for general queuing mechanism, and the message input to the queue increases the head value by one and the message read from the queue decreases the tail value by one. There is no message to process, and if the tail value is greater than the head value, the message queue is full. As described above, by the queue mechanism, the reception task 33 determines whether a message comes from another board. If the message enters the message queue 35, the reception task 33 analyzes the header of the message to apply the message to the application layer unit 40. Determining which function task to send to, and sending the message to the determined function task.
그리고, 송신 태스크(37)는 응용 계층부(40)에 존재하는 기능 요구 태스크들(47-1, 47-2, …, 47-n)에 대해서 메시지 큐(39)를 만들고, 헤드와 테일 필드를 두어 응용 계층부(40)에 존재하는 태스크로부터 메시지가 들어왔는 지를 판단한다. 응용 계층부(40)의 각 기능 요구 태스크들(47-1, 47-2, …, 47-n)은 다른 보드로 보내고자 하는 메시지가 있으면, 해당 메시지를 인터페이스부(30)에서 제공한 API를 이용하여 인터페이스부(30)의 송신 태스크(37)로 보낸다.Then, the transmission task 37 creates a message queue 39 for the function request tasks 47-1, 47-2, ..., 47-n existing in the application layer unit 40, and the head and tail fields. It is determined whether a message is received from the task existing in the application layer unit 40. If the function request tasks 47-1, 47-2, ..., 47-n of the application layer unit 40 have a message to send to another board, the API provided by the interface unit 30 provides the corresponding message. Is sent to the transmission task 37 of the interface unit 30 using.
송신 태스크(37)에서 주기적으로 메시지 큐(39)를 폴링한 결과 메시지 큐(39)에 메시지가 들어왔으면, 해당 보드를 어느 보드로 보내야 할지를 판단한 후, 메시지 헤더를 작성하여 붙인 후, 해당 메시지를 보내고자 하는 상대 보드의 수신 태스크의 메시지 큐로 전송한다.As a result of periodically polling the message queue 39 in the transmission task 37, if a message enters the message queue 39, it is determined which board to send the board to, and then a message header is created and pasted. Send to the message queue of the receiving task of the partner board to send.
한편, 응용 계층부(40)는 각 보드마다 서로 다른 프로그램으로 구성되어, 다른 보드와 통신해야 하는 데이터를 생성하고, 인터페이스부(30)가 제공하는 API를 사용하여 메시지를 전송한다.On the other hand, the application layer unit 40 is composed of different programs for each board, generates data that needs to communicate with other boards, and transmits a message using an API provided by the interface unit 30.
응용 계층부(40)는 각 어플리케이션에 따라 여러 종류의 기능 요구 태스크들(47-1, 47-2, …, 47-n)이 존재하는 데, 응용 계층부(40)에 존재하는 모든 기능 요구 태스크들(47-1, 47-2, …, 47-n)은 인터페이스부(30)의 API를 이용하여 다른 보드로 메시지를 보내는 일이 가능하다. 또한, 응용 계층부(40)에는 다른 보드로부터 들어온 메시지를 최종적으로 처리하는 기능 수행 태스크들(43-1, 43-2, …, 43-n)도 존재하는 데, 각각의 기능 수행 태스크들(43-1, 43-2, …, 43-n)은 메시지 큐(45-1, 45-2, …, 45-n)를 구비하여 이루어지며, 인터페이스부(30)의 수신 태스크(33)에서 전달받은 메시지들이 해당 메시지 큐(45-1, 45-2, …, 45-n)에 쌓인다. 따라서, 기능 수행 태스크들(43-1, 43-2, …, 43-n)은 자신의 메시지 큐(45-1, 45-2, …, 45-n)를 주기적으로 폴링하여 메시지가 들어왔는 지를 판단하고, 메시지가 들어왔으면 해당 메시지의 포트 번호와 기능 코드를 분석하여 그에 해당하는 기능을 수행한다.The application layer unit 40 has various kinds of function request tasks 47-1, 47-2,..., 47-n according to each application, and all the function requests present in the application layer unit 40 are present. The tasks 47-1, 47-2,..., 47-n may send a message to another board by using the API of the interface unit 30. In addition, in the application layer 40, there are also function performing tasks 43-1, 43-2,..., 43-n for finally processing a message from another board. 43-1, 43-2, ..., 43-n are provided with message queues 45-1, 45-2, ..., 45-n, and are received by the reception task 33 of the interface unit 30. The received messages are accumulated in the message queues 45-1, 45-2, ..., 45-n. Thus, the function performing tasks 43-1, 43-2, ..., 43-n periodically poll their message queues 45-1, 45-2, ..., 45-n to see if a message has entered. If a message is received, the port number and function code of the message are analyzed to perform the corresponding function.
도 3은 본 발명에 적용되는 메시지의 구성을 보인 도로, 본 발명에 적용되는 메시지는 32바이트의 메시지 헤더(a)와 992바이트의 메시지 데이터(b)로 구성되며, 전체 크기는 1024바이트이다.3 is a diagram showing the configuration of a message applied to the present invention, a message applied to the present invention comprises a 32-byte message header (a) and 992 bytes of message data (b), the total size is 1024 bytes.
전술한, 메시지 헤더(a)는 마법 숫자 필드(c), 메시지 길이 필드(d), 송신 보드 이름 필드(e), 송신 보드 ID 필드(f), 송신 네트워크 ID 필드(g), 송신 서브 ID 필드(h), 송신 포트 ID 필드(i), 수신 보드 이름 필드(j), 수신 보드 ID 필드(k), 수신 네트워크 ID 필드(l), 수신 서브 ID 필드(m), 수신 포트 ID 필드(n), 메시지 타입 필드(o), 메시지 종류 필드(p), 시리얼 번호 필드(q), 메인기능 코드 필드(r), 서브 기능 코드 필드(s)를 구비하여 이루어진다.The message header (a) described above includes a magic numeric field (c), a message length field (d), a transmission board name field (e), a transmission board ID field (f), a transmission network ID field (g), and a transmission sub ID. Field (h), send port ID field (i), receive board name field (j), receive board ID field (k), receive network ID field (l), receive sub ID field (m), receive port ID field ( n), a message type field o, a message type field p, a serial number field q, a main function code field r, and a sub function code field s.
이와 같은 구성에 있어서, 마법 숫자 필드(c)는 메시지 유효성을 체크할 수 있는 특별한 숫자로 이루어지며, 마법 숫자 필드(c)가 OXF0F0F0F0로 채워져 있어야 유효한 메시지이다.In such a configuration, the magic number field (c) is composed of a special number to check the validity of the message, and the magic number field (c) is filled in with OXF0F0F0F0 is a valid message.
메시지 길이 필드(d)에는 메시지의 전체 크기를 나타내며 메시지 헤더에 데이터 길이를 더한 값이 저장된다. 여기서, 메시지의 크기는 메시지의 기능 코드 값에 따라 달라진다.The message length field (d) indicates the total size of the message and stores a value obtained by adding the data length to the message header. Here, the size of the message depends on the function code value of the message.
송신/수신 보드 이름 필드(e/j)는 송신쪽/수신쪽 보드의 이름을 나타내는 필드로, 인터페이스부(30)에서 보드별로 1바이트값으로 정의한다.The transmit / receive board name field (e / j) is a field indicating the name of the transmit / receive board, and is defined as one byte value for each board in the interface unit 30.
송신/수신 보드 ID 필드(f/k)는 송신쪽/수신쪽 보드의 ID를 나타내는 필드이다.The transmit / receive board ID field f / k is a field indicating the ID of the transmit / receive board.
송신/수신 네트워크 ID 필드(g/l)는 시스템 상에서 각 보드가 실장되어 있는 PCI 버스 슬롯 번호를 나타내는 필드로, 인터페이스부(30)에서 각 보드를 구분할 때 참조한다. 즉, 메시지를 보내거나 받을 때, 해당 메시지를 어느 보드로 보내야 하는 지 또는 어느 보드에서 왔는 지를 판단할 때 사용된다.The transmit / receive network ID field (g / l) is a field indicating a PCI bus slot number in which each board is mounted on the system, and is referred to when identifying each board in the interface unit 30. That is, when sending or receiving a message, it is used to determine which board to send the message to or from which board.
송신/수신 서브 ID 필드(h/m)는 해당 메시지가 처리되는 기능 수행 태스크(Task)의 메시지 큐 번호가 저장되는 필드로, 인터페이스부(30)에서 응용 계층부(40)에 있는 테스크 중에서 어떤 태스크로 메시지를 보낼 지를 판단할 때 참조된다.The transmit / receive sub ID field (h / m) is a field in which a message queue number of a function performing task in which a corresponding message is processed is stored. Any of the tasks in the application layer unit 40 in the interface unit 30 is stored. Referenced when determining whether to send a message to a task.
송신/수신 포트 ID 필드(i/n)는 해당 메시지가 속하는 포트의 포트 번호가저장되는 필드이다. 여기서, 포트는 시스템 전체적인 입장에서 하나의 호를 의미하며, 각 보드별로 처리할 수 있는 용량이 정해져 있다. 즉, 데이터를 처리하는 입출력 보드가 한 시스템에 4장이 실장되고, 각 입출력 보드가 처리할 수 있는 용량이 128포트라면, 각 시스템마다 호스트 보드는 1장이므로, 호스트 보드가 처리할 수 있는 용량은 512포트이고, 해당 시스템의 처리 용량도 512포트가 된다.The transmit / receive port ID field (i / n) is a field in which the port number of the port to which the message belongs is stored. Here, the port means one call from the system-wide standpoint, and the capacity that can be processed for each board is determined. That is, if four I / O boards that process data are mounted in one system and each I / O board can handle 128 ports, each host board has one host board. Therefore, the capacity that the host board can handle It is 512 ports, and the processing capacity of the system is 512 ports.
메시지 타입 필드(o)는 메시지의 연속성을 나타내는 필드로, 같은 기능 코드를 가지는 메시지를 연속하여 계속 송신할 경우 메시지 타입을 1로 세팅하여 보낸다.The message type field o is a field indicating the continuity of the message. When the message having the same function code is continuously transmitted, the message type field o is set to 1 and sent.
메시지 종류 필드(p)와 시리얼 번호 필드(q)는 예비 영역이다.The message type field p and the serial number field q are reserved areas.
메인 기능 코드 필드(r)는 각 메시지의 용도를 나타내는 필드로, 호스트 보드가 입출력 보드에게 어떤 동작을 요구하거나 입출력 보드가 호스트 보드에게 호스트 보드가 요구한 동작에 대한 긍정 응답(ACK) 신호를 준다는 등의 기능을 구분할 때 쓰인다.The main function code field (r) indicates the purpose of each message and indicates that the host board requests an operation from the input / output board or the input / output board gives an acknowledgment (ACK) signal for the operation requested by the host board to the host board. Used to distinguish functions such as
서브 기능 코드 필드(s)는 메인 기능 코드의 세부적으로 구분할 필요가 있을 때 쓰인다.The sub function code field s is used when it is necessary to distinguish the details of the main function code.
도 4는 본 발명에 따른 보드간 메시지 통신 방법을 설명하기 위한 플로우챠트로, 도 2를 참조하여 설명을 진행하기로 한다.FIG. 4 is a flowchart for explaining a board-to-board message communication method according to the present invention, which will be described with reference to FIG. 2.
우선, 본 발명에 따른 보드간 메시지 통신 방법은 다른 보드와 통신해야 하는 메시지를 생성하는 메시지 생성 과정(S100)과, 생성된 메시지를 어느 보드로 보내야 할 지를 판단한 후, 메시지 헤더를 붙여서 해당 보드로 전송하는 메시지 송신과정(S200)과, 인터페이스부(30)의 수신 태스크(33)에서 다른 보드들로부터 수신받은 메시지의 메시지 헤더를 분석하여 해당 기능 수행 태스크로 보내는 메시지 수신 과정(S300)과, 수신받은 메시지의 포트 번호와 기능 코드를 분석하여 해당 기능을 수행하는 기능 수행 과정(S400)으로 이루어진다.First, the message communication method between boards according to the present invention includes a message generating process (S100) of generating a message to be communicated with another board, determining which board to send the generated message to, and then attaching a message header to the corresponding board. The message receiving process (S200) for transmitting and the message receiving process (S300) for analyzing the message header of the message received from other boards in the receiving task 33 of the interface unit 30 and sending it to the corresponding function performing task, and receiving A function performing process of performing a corresponding function by analyzing a port number and a function code of the received message is performed.
이하에서 전술한 메시지 생성 과정(S100) 내지 기능 수행 과정(S400)에 대해서 상세히 설명한다.Hereinafter, the above-described message generation process (S100) to function execution process (S400) will be described in detail.
우선, 응용 계층부(40)의 해당 기능 요구 태스크에서는 다른 보드와 통신해야 하는 데이터, 즉 메시지를 생성하고, 인터페이스부(30)의 API를 이용하여 생성된 메시지를 인터페이스부(30)의 송신 태스크(37)의 메시지 큐(39)로 보낸다(S110, S120).First, the function request task of the application layer unit 40 generates data, that is, a message that needs to communicate with another board, and transmits a message generated using the API of the interface unit 30 to the transmission task of the interface unit 30. The message is sent to the message queue 39 at 37 (S110, S120).
한편, 인터페이스부(30)의 송신 태스크(37)는 주기적으로 메시지 큐(39)를 폴링하여 응용 계층부(40)의 기능 요구 태스크들(47-1, 47-2, …, 47-n)로부터 수신된 메시지가 존재하는 지를 판단한다(S210).Meanwhile, the transmission task 37 of the interface unit 30 periodically polls the message queue 39 to perform the function request tasks 47-1, 47-2,..., 47-n of the application layer unit 40. It is determined whether the message received from the (S210).
상기한 과정 S210의 판단결과 응용 계층부(40)의 기능 요구 태스크들(47-1, 47-2, …, 47-n)로부터 수신된 메시지가 존재하는 경우에는, 수신된 메시지가 보내져야 할 보드를 판별하고, 메시지 헤더를 작성하여 상기한 과정 S210에서 수신된 메시지에 붙인다(S220, S230).If the message received from the function request tasks 47-1, 47-2, ..., 47-n of the application layer unit 40 exists as a result of the determination of step S210, the received message should be sent. The board is determined, and a message header is created and pasted to the message received in step S210 (S220 and S230).
이후에는, 상기한 과정 S220에서 판별된 보드의 수신 태스크의 메시지 큐로 메시지를 전송한다(S240).Thereafter, the message is transmitted to the message queue of the reception task of the board determined in step S220 (S240).
한편, 인터페이스부(30)의 수신 태스크(33)는 주기적으로 메시지 큐(35)를폴링하여 다른 보드로부터 수신된 메시지가 존재하는 지를 판단한다(S310).Meanwhile, the reception task 33 of the interface unit 30 periodically polls the message queue 35 to determine whether there is a message received from another board (S310).
상기한 과정 S310의 판단결과 다른 보드로부터 수신된 메시지가 존재하는 경우에는, 수신된 메시지의 헤더를 분석하여 수신된 메시지가 응용 계층부(40)의 어느 기능 수행 태스크로 보내져야 하는 지를 판별하고, 판별된 기능 수행 태스크로 해당 메시지를 보낸다(S320, S330).In the case where the message received from the other board exists as a result of the determination of step S310, the header of the received message is analyzed to determine which function performing task of the application layer unit 40 should be sent, The message is sent to the determined function performing task (S320, S330).
한편, 응용 계층부(40)의 각 기능 수행 태스크들(43-1, 43-2, …, 43-n)은 주기적으로 자신의 메시지 큐(45-1, 45-2, …, 45-n)를 폴링하여 수신된 메시지가 존재하는 지를 판단한다(S410).Meanwhile, each of the function performing tasks 43-1, 43-2,..., 43-n of the application layer unit 40 periodically has its own message queue 45-1, 45-2,. It is determined whether there is a received message by polling (S410).
상기한 과정 S410의 판단결과 수신된 메시지가 존재하는 경우에는, 수신된 메시지의 메시지 헤더에 포함되어 있는 포트 번호와 기능 코드를 분석하여 수신된 메시지가 요구하는 기능을 수행한다(S420).If the received message exists as a result of the determination of step S410, the port number and the function code included in the message header of the received message are analyzed to perform a function required by the received message (S420).
본 발명의 보드간 메시지 통신 시스템 및 방법은 전술한 실시예에 국한되지 않고 본 발명의 기술 사상이 허용하는 범위 내에서 다양하게 변형하여 실시할 수 있다.The board-to-board message communication system and method of the present invention are not limited to the above-described embodiments, and may be variously modified and implemented within the scope of the technical idea of the present invention.
이상에서 설명한 바와 같은 본 발명의 보드간 메시지 통신 시스템 및 방법에 따르면, 응용 계층부에서 다른 보드와 주고받을 데이터가 생성되면, 인터페이스부에서 메시지 헤더를 작성하여 붙인 후 해당 보드로 전송하고, 인터페이스부에서 다른 보드로부터 메시지를 수신받으면 메시지의 헤더를 분석하여 해당 메시지를 처리할 태스크로 전달함으로써, 콤팩트 PCI 버스를 하드웨어 플랫폼으로 하는 시스템에 실장되어 있는 보드들 사이의 데이터를 메시지를 통해 주고받을 수 있게 된다.According to the board-to-board message communication system and method of the present invention as described above, when data is exchanged with another board in the application layer unit, the interface unit creates and attaches a message header and transmits it to the corresponding board. When a message is received from another board, it analyzes the header of the message and passes it to the task to process the message so that data between the boards mounted on the system using the compact PCI bus as a hardware platform can be exchanged through the message. do.
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0086258A KR100397124B1 (en) | 2001-12-27 | 2001-12-27 | Between Boards Message Handling System and Method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0086258A KR100397124B1 (en) | 2001-12-27 | 2001-12-27 | Between Boards Message Handling System and Method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030056097A true KR20030056097A (en) | 2003-07-04 |
KR100397124B1 KR100397124B1 (en) | 2003-09-06 |
Family
ID=32214318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2001-0086258A KR100397124B1 (en) | 2001-12-27 | 2001-12-27 | Between Boards Message Handling System and Method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100397124B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010145113A1 (en) * | 2009-06-18 | 2010-12-23 | 中兴通讯股份有限公司 | Inter-board communication apparatus, method for transmitting and receiving message of inter-board communication |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220146259A (en) | 2021-04-23 | 2022-11-01 | 김명구 | Gripper for excavator |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG77134A1 (en) * | 1996-04-30 | 2000-12-19 | Texas Instruments Inc | Method and system for extracting control information from packetized data received by a communications interface device |
KR19980069052A (en) * | 1997-02-26 | 1998-10-26 | 문정환 | PC data and address stepping method |
KR100261887B1 (en) * | 1997-12-31 | 2000-07-15 | 김덕중 | Data interface method using pci bus |
KR20000045239A (en) * | 1998-12-30 | 2000-07-15 | 김영환 | Device for input/output of pci bus |
-
2001
- 2001-12-27 KR KR10-2001-0086258A patent/KR100397124B1/en not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010145113A1 (en) * | 2009-06-18 | 2010-12-23 | 中兴通讯股份有限公司 | Inter-board communication apparatus, method for transmitting and receiving message of inter-board communication |
US9154449B2 (en) | 2009-06-18 | 2015-10-06 | Zte Corporation | Inter-board communication apparatus, method for transmitting and receiving message of inter-board communication |
Also Published As
Publication number | Publication date |
---|---|
KR100397124B1 (en) | 2003-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6073205A (en) | System and method of write posting in a universal serial bus system | |
US5742607A (en) | Method and apparatus for controlling two way communication via disparate physical media | |
US5815678A (en) | Method and apparatus for implementing an application programming interface for a communications bus | |
KR100387207B1 (en) | Communication system and communication method by remote network device | |
US6141767A (en) | Method of and apparatus for verifying reliability of contents within the configuration ROM of IEEE 1394-1995 devices | |
US6718412B2 (en) | Apparatus and method for universal serial bus communications | |
US5619646A (en) | Method and system for dynamically appending a data block to a variable length transmit list while transmitting another data block over a serial bus | |
EP0496177A1 (en) | Method of transmitting data by buffer chaining between a host computer and a communication controller | |
US20070245059A1 (en) | Bus Connection Device | |
CN111416778B (en) | Single serial port gateway platform for multi-device Internet of things | |
KR100397124B1 (en) | Between Boards Message Handling System and Method | |
US7822040B2 (en) | Method for increasing network transmission efficiency by increasing a data updating rate of a memory | |
US6058440A (en) | Programmable and adaptive resource allocation device and resource use recorder | |
CN113794713B (en) | Communication processing method for bridging MIL-STD-1553 and UART by FC-AE-1553 protocol | |
KR20040043198A (en) | Bus system and bus interface | |
US6366590B2 (en) | Unified interface between an IEEE 1394-1995 serial bus transaction layer and corresponding applications | |
EP0849682A1 (en) | Data communications adapter | |
EP1617594A2 (en) | A provisional log-in unit | |
EP0482828B1 (en) | Message-oriented bank controller interface | |
JP2924783B2 (en) | Remote read processing method and device | |
US5870631A (en) | System for operating system software providing input buffer for receiving variable-length bit stream with a header containing synchronization data recognized by universal serial controller | |
CN114201437B (en) | Communication method, terminal device and storage medium | |
US6519661B1 (en) | Method for recording data in a telecommunications switching center | |
KR100419917B1 (en) | Multiplexed character message and calling service method and system therefor | |
CN117493238A (en) | PCIe data and MSI-X message synchronous processing method and system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20080730 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |