KR101877332B1 - Method for preventing collision packet in communication system supporting multi-protocol - Google Patents

Method for preventing collision packet in communication system supporting multi-protocol Download PDF

Info

Publication number
KR101877332B1
KR101877332B1 KR1020160158432A KR20160158432A KR101877332B1 KR 101877332 B1 KR101877332 B1 KR 101877332B1 KR 1020160158432 A KR1020160158432 A KR 1020160158432A KR 20160158432 A KR20160158432 A KR 20160158432A KR 101877332 B1 KR101877332 B1 KR 101877332B1
Authority
KR
South Korea
Prior art keywords
packet
command
slave device
master device
command packet
Prior art date
Application number
KR1020160158432A
Other languages
Korean (ko)
Other versions
KR20180059179A (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 KR1020160158432A priority Critical patent/KR101877332B1/en
Priority to PCT/KR2017/003196 priority patent/WO2018097417A2/en
Publication of KR20180059179A publication Critical patent/KR20180059179A/en
Application granted granted Critical
Publication of KR101877332B1 publication Critical patent/KR101877332B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/40071Packet processing; Packet format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

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

Abstract

본 발명은 다중 프로토콜을 지원하는 통신시스템에서의 패킷 충돌 방지 방법에 관한 것으로, 더욱 상세하게는 특정 프로토콜을 사용하는 슬레이브 기기는 마스터 기기로부터 전송되는 명령패킷을 실행하지 않도록 제어되는 패킷 간의 충돌을 방지하는 방법에 관한 것이다. 마스터 기기와, 멀티드롭 방식으로 연결되며 서로 다른 프로토콜을 이용하는 복수의 슬레이브 기기를 갖는 통신 시스템의 패킷 충돌 방지 방법은 상기 마스터 기기는 특정 슬레이브 기기로 격리패킷을 송신하는 단계와, 상기 특정 슬레이브 기기는 상기 마스터 기기로부터 상기 격리패킷을 수신한 후, 상기 마스터 기기로부터 명령패킷이 송신되면, 상기 명령패킷을 수신하지 않거나 수신 후 폐기하는 단계를 포함하는 것을 특징으로 한다.The present invention relates to a method for preventing packet collisions in a communication system supporting multiple protocols, and more particularly, to a slave device using a specific protocol, . A method for preventing a packet collision in a communication system having a plurality of slave devices connected to a master device and a plurality of slave devices connected in a multi-drop manner, includes the steps of: transmitting an isolation packet to a specific slave device; Receiving the command packet from the master device after receiving the quarantine packet from the master device, and not receiving or discarding the command packet when the command packet is transmitted from the master device.

Description

다중 프로토콜을 지원하는 통신시스템에서의 패킷 충돌 방지 방법{METHOD FOR PREVENTING COLLISION PACKET IN COMMUNICATION SYSTEM SUPPORTING MULTI-PROTOCOL}[0001] METHOD FOR PREVENTING COLLISION PACKET IN COMMUNICATION SYSTEM SUPPORTING MULTI-PROTOCOL [0002]

본 발명은 다중 프로토콜을 지원하는 통신시스템에서의 패킷 충돌 방지 방법에 관한 것으로, 더욱 상세하게는 특정 프로토콜을 사용하는 슬레이브 기기는 마스터 기기로부터 전송되는 명령패킷을 실행하지 않도록 제어되는 패킷 간의 충돌을 방지하는 방법에 관한 것이다.The present invention relates to a method for preventing packet collisions in a communication system supporting multiple protocols, and more particularly, to a slave device using a specific protocol, .

멀티드롭 방식의 통신 시스템은 마스터 기기와 마스터 기기의 요청에 의해 응답하는 슬레이브 기기가 하나의 회선으로 연결된다. 각 슬레이브 기기는 구분을 위해 고유ID를 가지고, 마스터 기기는 고유ID를 기반으로 특정 슬레이브 기기에 데이터를 요청하고, 데이터를 요청받은 특정 슬레이브 기기는 회선을 통해 데이터를 송신할 수 있다.In the multi-drop communication system, the master device and the slave device responding to the request of the master device are connected by a single line. Each slave device has a unique ID for identification. The master device requests data to a specific slave device based on the unique ID, and the specific slave device to which the data is requested can transmit data through the line.

이때, 마스터 기기와 슬레이브 기기는 데이터를 요청하고 데이터를 송신하기 위해 약속된 프로토콜에 의해 패킷을 생성, 전송하여야 하는데, 종종 잘못된 패킷이 정상패킷으로 인식되어 슬레이브 기기가 오작동하는 경우가 있었다.At this time, the master device and the slave device must generate and transmit a packet according to a protocol promised to transmit data and request data. Sometimes, a wrong packet is recognized as a normal packet and the slave device malfunctions.

잘못된 패킷이 정상패킷으로 인식되지 않도록, 기존의 패킷에 검사필드를 추가하여 패킷을 검사하는 방법이 개발되었으며, 대표적으로 CRC 방식, CHECK SUM 방식 등이 있다.A method of inspecting a packet by adding an inspection field to an existing packet has been developed so that an erroneous packet is not recognized as a normal packet. Typically, there are a CRC method and a CHECK SUM method.

그런데, 멀티드롭 방식의 통신시스템에서 서로 다른 복수의 프로토콜이 존재하는 경우, CRC 방식, CHECK SUM방식의 오류패킷 구분 능력은 현저하게 떨어져 패킷 간의 충돌이 빈번히 발생하였다. 더욱이, 슬레이브 기기가 구동체인 경우, 오류패킷이 정상패킷으로 인식되면서 구동체가 구동하게 되어, 다른 구동체와의 충돌 등과 같은 대형사고가 발생하였다.However, when there are a plurality of different protocols in the multi-drop communication system, the error packet distinguishing ability of the CRC method and the CHECK SUM method is remarkably reduced and collision between packets frequently occurs. Furthermore, when the slave device is driven, the driving device is driven by recognizing the error packet as a normal packet, and a major accident such as a collision with another driving device has occurred.

따라서, 복수개의 프로토콜을 이용하는 멀티드롭 방식의 통신시스템에서 패킷 간의 충동을 방지할 수 있는 방법에 대한 요구가 생기게 되었다.Therefore, there is a demand for a method capable of preventing impulse between packets in a multi-drop communication system using a plurality of protocols.

본 발명이 이루고자 하는 기술적 복수개의 프로토콜을 이용하는 멀티드롭 방식의 통신시스템에서 패킷 간의 충동을 방지할 수 있는 방법을 제공하는 것이다.The present invention provides a method for preventing impulse between packets in a multi-drop communication system using a plurality of technical protocols to be achieved by the present invention.

본 발명이 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not intended to limit the invention to the precise form disclosed. There will be.

상기 기술적 과제를 달성하기 위하여, 본 발명의 일실시예는 다중 프로토콜을 지원하는 통신 시스템에서의 패킷 충돌 방지 방법을 제공한다.According to an aspect of the present invention, there is provided a method of preventing packet collisions in a communication system supporting multiple protocols.

마스터 기기와, 멀티드롭 방식으로 연결되며 서로 다른 프로토콜을 이용하는 복수의 슬레이브 기기를 갖는 통신 시스템의 패킷 충돌 방지 방법은, 마스터 기기는 특정 슬레이브 기기로 격리패킷을 송신하는 단계와, 특정 슬레이브 기기는 마스터 기기로부터 격리패킷을 수신한 후, 마스터 기기로부터 명령패킷이 송신되면, 명령패킷을 수신하지 않거나, 수신 후 폐기하는 단계를 포함할 수 있다.A packet collision avoiding method of a communication system having a master device and a plurality of slave devices connected by a multi-drop method and using different protocols is characterized in that the master device transmits a quarantine packet to a specific slave device, And if the command packet is transmitted from the master device after receiving the isolation packet from the device, the command packet may not be received, or may be received and discarded.

본 발명에서 격리패킷을 송신하는 단계는, 특정 프로토콜을 사용하는 슬레이브 기기에 격리패킷을 송신하는 단계일 수 있다.In the present invention, the step of transmitting a quarantine packet may be a step of transmitting a quarantine packet to a slave device using a specific protocol.

본 발명에서 명령패킷을 수신하지 않거나 수신 후 폐기하는 단계는, 마스터 기기로부터 송신되는 명령패킷을 기설정된 시간 동안 수신하지 않거나 수신 후 폐기하는 단계일 수 있다.In the present invention, the step of not receiving the command packet or discarding the command packet may be a step of not receiving or discarding the command packet transmitted from the master device for a preset time.

본 발명에서 명령패킷을 수신하지 않거나 수신 후 폐기하는 단계는, 마스터 기기로부터 송신되는 기설정된 바이트 수 이하의 명령패킷을 수신하지 않거나 수신 후 폐기하는 단계일 수 있다.In the present invention, the step of not receiving the command packet or discarding the command packet may be a step of not receiving or discarding a command packet less than a predetermined number of bytes transmitted from the master device.

본 발명에서 마스터 기기는, 특정 슬레이브 기기로 격리해제패킷을 송신하는 단계와, 상기 특정 슬레이브 기기는, 상기 마스터 기기로부터 상기 격리해제패킷을 수신한 후, 상기 마스터 기기로부터 명령패킷을 수신하면, 상기 명령패킷을 실행하는 단계를 더 포함할 수 있다.In the present invention, it is preferable that the master device transmits an isolation release packet to a specific slave device, and when the specific slave device receives the command packet from the master device after receiving the isolation release packet from the master device, And executing the command packet.

본 발명에서 격리패킷은, 프로토콜마다 상이하게 설계될 수 있다.In the present invention, the isolation packet can be designed differently for each protocol.

본 발명에서 명령패킷은, 각 슬레이브 기기의 컨트롤 테이블을 통해 제어할 값의 어드레스를 체크한 다음 ID와 어드레스를 참조하여 생성될 수 있다.In the present invention, the instruction packet can be generated by checking the address of the value to be controlled through the control table of each slave device, and referring to the ID and the address.

본 발명에서 각 슬레이브 기기는, 마스터 기기에 의해 구동되는 엑츄에이터일 수 있다.In the present invention, each slave device may be an actuator driven by a master device.

본 발명의 실시예에 따르면, 마스터 기기는 다중 프로토콜 환경에서 특정 프로토콜을 갖는 슬레이브 기기들이 명령패킷을 실행하지 않도록 제어할 수 있기 때문에, 슬레이브 기기에서 잘못된 패킷이 정상패킷으로 인식될 수 있는 가능성을 최소화할 수 있다. 즉, 사용자는 복수개의 프로토콜을 갖는 통신 시스템을 보다 안전하게 사용할 수 있다.According to the embodiment of the present invention, since the master device can control the slave devices having a specific protocol in the multi-protocol environment to not execute the command packet, it is possible to minimize the possibility that the slave device can recognize an erroneous packet as a normal packet can do. That is, the user can use the communication system having a plurality of protocols more safely.

본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 상세한 설명 또는 특허청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.It should be understood that the effects of the present invention are not limited to the above effects and include all effects that can be deduced from the detailed description of the present invention or the configuration of the invention described in the claims.

도 1은 본 발명의 일 실시예에 따른 통신 시스템의 구성을 도시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 사용자 단말기가 추가된 통신 시스템의 구성을 도시하는 도면이다.
도 3은 본 발명의 일 실시예에 따른 통신 시스템의 패킷 충돌 방지 방법을 도시하는 순서도이다.
도 4는 본 발명의 다른 실시예에 따른 통신 시스템의 패킷 충돌 방지 방법을 도시하는 순서도이다.
도 5는 본 발명의 또 다른 실시예에 따른 통신 시스템의 패킷 충돌 방지 방법을 도시하는 순서도이다.
도 6은 본 발명이 적용되는 통신 시스템의 명령패킷 생성방법을 설명하기 위한 컨트롤 테이블을 도시하고 있다.
도 7은 본 발명이 적용되는 슬레이브 기기의 위치 에러에 따른 출력 곡선을 도시하고 있다.
도 8은 본 발명이 적용되는 슬레이브 기기가 이동하고자 하는 목표위치를 도시하고 있다.
도 9는 본 발명에서 사용자가 기록할 수 있는 데이터 유효영역을 도시하고 있다.
1 is a diagram showing a configuration of a communication system according to an embodiment of the present invention.
2 is a diagram illustrating a configuration of a communication system to which a user terminal is added according to an embodiment of the present invention.
3 is a flowchart illustrating a packet collision avoidance method in a communication system according to an embodiment of the present invention.
4 is a flowchart illustrating a packet collision avoidance method in a communication system according to another embodiment of the present invention.
5 is a flowchart illustrating a packet collision avoidance method in a communication system according to another embodiment of the present invention.
FIG. 6 shows a control table for explaining a method of generating a command packet in a communication system to which the present invention is applied.
7 shows an output curve according to a position error of a slave device to which the present invention is applied.
FIG. 8 shows a target position to which a slave device to which the present invention is applied moves.
FIG. 9 shows a data valid area that can be recorded by the user in the present invention.

이하에서는 첨부한 도면을 참조하여 본 발명을 설명하기로 한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 따라서 여기에서 설명하는 실시예로 한정되는 것은 아니다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결(접속, 접촉, 결합)"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 부재를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 구비할 수 있다는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" (connected, connected, coupled) with another part, it is not only the case where it is "directly connected" "Is included. Also, when an element is referred to as " comprising ", it means that it can include other elements, not excluding other elements unless specifically stated otherwise.

본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like refer to the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

이하 첨부된 도면을 참고하여 본 발명의 실시예를 상세히 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 통신 시스템(1)의 구성을 도시하는 도면이다.1 is a diagram showing a configuration of a communication system 1 according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 통신 시스템(1)은 하나의 마스터 기기(10)와, N개의 슬레이브 기기(20)와, 마스터 기기(10)와 슬레이브 기기(20)를 멀티 드롭 방식으로 연결하며 패킷을 송수신하는 통신버스(30)를 포함한다. 이때, 마스터 기기(10)와 슬레이브 기기(20)는 통신버스(30)를 통해 패킷을 주고 받으면서 통신한다. 패킷의 종류로는 마스터 기기(10)에서 슬레이브 기기(20)로 전송되어 슬레이브 기기(20)를 제어하는 명령패킷과, 슬레이브 기기(20)에서 마스터 기기(10)로 송신되는 상태패킷이 있다. 이때, 상태패킷은 명령패킷에 대응하여 생성되는 패킷으로, 슬레이브 기기(20)가 마스터 기기(10)로부터 수신한 명령패킷을 실행하는 경우에만, 생성될 수 있다.The communication system 1 according to the embodiment of the present invention connects one master device 10, N slave devices 20, master device 10 and slave device 20 in a multi-drop manner And a communication bus 30 for transmitting and receiving packets. At this time, the master device 10 and the slave device 20 communicate with each other while exchanging packets through the communication bus 30. The types of packets include a command packet transmitted from the master device 10 to the slave device 20 to control the slave device 20 and a status packet transmitted from the slave device 20 to the master device 10. At this time, the status packet is generated in response to the command packet, and can be generated only when the slave device 20 executes the command packet received from the master device 10. [

슬레이브 기기(20)는 구분을 위해 각각 고유 ID를 가지고, 마스터 기기(10)는 고유 ID를 기반으로 명령패킷을 생성하여 전송한다. 이에 따라, 고유 ID를 갖는 슬레이브 기기(20)만이 명령패킷을 수행하고 상태패킷을 송신한다.The slave device 20 has a unique ID for identification, and the master device 10 generates and transmits a command packet based on the unique ID. Accordingly, only the slave device 20 having the unique ID performs the command packet and transmits the status packet.

도 2는 본 발명의 일 실시예에 따른 사용자 단말기가 추가된 통신 시스템의 구성을 도시하는 도면이다. 본 발명의 슬레이브 기기(20)는 마스터 기기(10)의 명령패킷에 의해 제어되고, 마스터 기기(10)는 다시 PC, 유무선 리모컨과 같은 사용자 단말기에 연결된다. 2 is a diagram illustrating a configuration of a communication system to which a user terminal is added according to an embodiment of the present invention. The slave device 20 of the present invention is controlled by a command packet of the master device 10 and the master device 10 is again connected to a user terminal such as a PC or a wired or wireless remote controller.

이때, 사용자는 각 슬레이브 기기(20)를 제어하기 위한 신호(이하, 제어신호)를 사용자 단말을 통해 입력하게 되면 사용자 단말로부터의 제어신호는 예컨대 RS232 방식의 통신버스를 통해 마스터 기기(10)로 전송되고, 마스터 기기(10)는 제어신호를 슬레이브 기기(20)의 제어에 적합한 RS485 방식의 명령패킷으로 변환하여 멀티 드롭 방식으로 각각 또는 전체 슬레이브 기기(20)에 전송한다.At this time, if the user inputs a signal (hereinafter, control signal) for controlling each slave device 20 through the user terminal, the control signal from the user terminal is transmitted to the master device 10 via a communication bus of, for example, And the master device 10 converts the control signal into a command packet of RS485 type suitable for control of the slave device 20 and transmits it to each or all of the slave devices 20 by a multi-drop method.

도 3은 본 발명의 일 실시예에 따른 통신 시스템(1)의 패킷 충돌 방지 방법을 도시하는 순서도로, 슬레이브 기기(20) 위주로 각 단계를 설명한다.FIG. 3 is a flowchart showing a packet collision avoiding method of the communication system 1 according to an embodiment of the present invention, and each step will be described focusing on the slave device 20.

S100단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 전송되는 격리패킷의 수신을 대기한다. 격리패킷은 특정 프로토콜을 이용하는 적어도 하나의 슬레이브 기기(20) 또는 특정 슬레이브 기기(20)를 격리시키기 위해 마스터 기기(10)가 생성하는 패킷으로, 마스터 기기(10)에 의해 생성된 후 슬레이브 기기(20)로 전송될 수 있다. 이때, 격리패킷은 프로토콜에 따라 상이하게 설계될 수 있다. S100단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 격리패킷의 수신을 대기하는 상태로 통신버스를 점유할 수 없으며, 마스터 기기(10)에 의해 전송되는 패킷만 수신할 수 있다.In step S100, the slave device 20 waits for the reception of the isolation packet transmitted from the master device 10. [ The isolation packet is a packet generated by the master device 10 in order to isolate at least one slave device 20 or a specific slave device 20 using a specific protocol and is generated by the slave device 10 20). At this time, the isolation packet may be designed differently according to the protocol. In step S100, the slave device 20 can not occupy the communication bus in a state of waiting for reception of the isolation packet from the master device 10, and can receive only the packet transmitted by the master device 10. [

S110단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 통신버스(30)를 통해 격리패킷이 수신되는지 여부를 판단한다. 이때, 격리패킷은 특정 프로토콜을 이용하는 적어도 하나의 슬레이브 기기(20) 또는 특정 슬레이브 기기(20)를 격리시키기 위해 마스터 기기(10)가 생성하는 패킷으로, 마스터 기기(10)에 의해 생성된 후 슬레이브 기기(20)로 전송될 수 있다. 격리패킷을 수신한 슬레이브 기기(20)는 격리패킷 이후에 마스터 기기(10)로부터 송신되는 명령패킷을 수신하지 않거나 수신 후 폐기한다. 이때, 격리패킷은 프로토콜에 따라 상이하게 설계될 수 있다. In step S110, the slave device 20 determines whether a quarantine packet is received from the master device 10 via the communication bus 30. At this time, the isolation packet is a packet generated by the master device 10 to isolate at least one slave device 20 or a specific slave device 20 using a specific protocol. The isolation packet is generated by the master device 10, May be transmitted to the device (20). The slave device 20 receiving the quarantine packet does not receive the command packet transmitted from the master device 10 after the quarantine packet or discards it after receiving it. At this time, the isolation packet may be designed differently according to the protocol.

슬레이브 기기(20)는 마스터 기기(10)로부터 격리패킷이 수신된 것으로 판단하면, S120단계에서 마스터 기기(10)로부터 명령패킷이 송신되는지 판단한다. If the slave device 20 determines that a quarantine packet has been received from the master device 10, the slave device 20 determines whether a command packet is transmitted from the master device 10 in step S120.

명령패킷은 데이터의 묶음으로, 전송할 데이터를 일정한 크기로 나누어 붙이고, 명령패킷이 전송될 슬레이브 기기(20)의 ID를 나타내는 헤더를 붙인 것으로 마스터 기기(10)에 의해 생성된다. 명령패킷의 구성에 대해서는 이하에서 자세히 설명하도록 한다. 이때, 슬레이브 기기(20)는 마스터 기기(10)로부터 명령패킷을 수신하지 않으면, 통신버스(30)를 점유할 수 없으며 상태패킷을 송신할 수 없다. 즉, 명령패킷을 수신한 슬레이브 기기(20)는 한시적으로 통신버스(30)를 점유하여 상태패킷을 송신할 수 있다. 이때, 상태패킷은 명령패킷에 대응되는 패킷으로 슬레이브 기기(20)에 의해 생성되며, 명령패킷을 정상적으로 수행했다는 정보가 담겨있을 수 있다.The command packet is a bundle of data. The command packet is generated by the master device 10 by attaching a header indicating the ID of the slave device 20 to which the command packet is to be transmitted, by dividing the data to be transmitted to a predetermined size. The configuration of the command packet will be described in detail below. At this time, if the slave device 20 does not receive the command packet from the master device 10, it can not occupy the communication bus 30 and can not transmit the status packet. That is, the slave device 20 receiving the command packet can occupy the communication bus 30 for a limited time and transmit the status packet. At this time, the status packet may be generated by the slave device 20 as a packet corresponding to the command packet, and may contain information that the command packet has been normally executed.

슬레이브 기기(20)는 S120단계에서 마스터 기기(10)로부터 명령패킷이 송신된 것으로 판단하면, S130단계에서 송신된 명령패킷을 수신하지 않거나, 수신한 후 폐기한다. If the slave device 20 determines in step S120 that the command packet has been transmitted from the master device 10, the slave device 20 does not receive the command packet transmitted in step S130, or discards it after receiving the command packet.

본 발명의 실시예에 따라, 슬레이브 기기(20)는 S140단계에서 마스터 기기(10)로부터 통신버스를 통해 격리해제패킷이 수신되는지 여부를 판단하고, 격리해제패킷이 수신된 것으로 판단하면, S150단계에서 마스터 기기(10)로부터 명령패킷이 수신되었는지 판단한다.According to the embodiment of the present invention, the slave device 20 determines whether the quarantine release packet is received from the master device 10 via the communication bus in step S140, and if it is determined that the quarantine release packet has been received, It is determined whether a command packet has been received from the master device 10. [

슬레이브 기기(20)는 S150단계에서 명령패킷이 수신된 것으로 판단하면, S160단계에서 명령패킷을 실행한다. 즉, 마스터 기기(10)로부터 격리패킷을 수신한 슬레이브 기기(20)는 격리해제패킷이 수신할 때까지, 마스터 기기(10)로부터 전송되는 모든 명령패킷을 수신하지 않거나 수신 후 폐기할 수 있다.If the slave device 20 determines that the command packet has been received in step S150, it executes the command packet in step S160. That is, the slave device 20 receiving the quarantine packet from the master device 10 may not receive all the command packets transmitted from the master device 10 until receiving the quarantine release packet, or may discard them after receiving the command packet.

도 3에는 도시되어 있지 않지만, 명령패킷을 수신한 슬레이브 기기(20)는 한시적으로 통신버스(30)를 점유하여 상태패킷을 마스터 기기(10)로 송신할 수 있다.Although not shown in FIG. 3, the slave device 20 receiving the command packet can occupy the communication bus 30 for a limited time and transmit the status packet to the master device 10.

슬레이브 기기(20)는 S110단계에서 통신버스(30)를 통해 마스터 기기(10)로부터 격리패킷이 수신되지 않은 것으로 판단하면, S150단계에서 마스터 기기(10)로부터 명령패킷이 수신되는지 여부를 판단한다.If the slave device 20 determines in step S110 that a quarantine packet has not been received from the master device 10 via the communication bus 30, the slave device 20 determines whether an instruction packet is received from the master device 10 in step S150 .

슬레이브 기기(20)는S120단계에서 마스터 기기(10)로부터 명령패킷이 송신되지 않은 것으로 판단하면, S140단계에서 마스터 기기(10)로부터 격리해제패킷이 수신되는지 판단한다.If it is determined in step S120 that the command packet has not been transmitted from the master device 10, the slave device 20 determines whether the quarantine release packet is received from the master device 10 in step S140.

슬레이브 기기(20)는 S140단계에서 마스터 기기(10)로부터 격리해제패킷이 수신되지 않은 것으로 판단하면, S120단계로 돌아가 마스터 기기(10)로부터 명령패킷이 송신되는지 여부를 판단한다.If the slave device 20 determines in step S140 that the quarantine release packet has not been received from the master device 10, the process returns to step S120 and determines whether or not the command packet is transmitted from the master device 10. [

도 4는 본 발명의 다른 실시예에 따른 통신 시스템의 패킷 충돌 방지 방법을 도시하는 순서도로, 슬레이브 기기(20) 위주로 각 단계를 설명한다.FIG. 4 is a flowchart illustrating a method of preventing packet collisions in a communication system according to another embodiment of the present invention. Each step will be described focusing on a slave device 20.

S200단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 전송되는 격리패킷의 수신을 대기한다. 격리패킷은 특정 프로토콜을 이용하는 적어도 하나의 슬레이브 기기(20) 또는 특정 슬레이브 기기(20)를 격리시키기 위해 마스터 기기(10)가 생성하는 패킷으로, 마스터 기기(10)에 의해 생성된 후 슬레이브 기기(20)로 전송될 수 있다. 이때, 격리패킷은 프로토콜에 따라 상이하게 설계될 수 있다. S200단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 격리패킷의 수신을 대기하는 상태로 통신버스를 점유 할 수 없으며, 마스터 기기(10)에 의해 전송되는 패킷만 수신할 수 있다.In step S200, the slave device 20 waits for the reception of the isolation packet transmitted from the master device 10. [ The isolation packet is a packet generated by the master device 10 in order to isolate at least one slave device 20 or a specific slave device 20 using a specific protocol and is generated by the slave device 10 20). At this time, the isolation packet may be designed differently according to the protocol. In step S200, the slave device 20 can not occupy the communication bus in a state of waiting for reception of the isolation packet from the master device 10, and can receive only the packet transmitted by the master device 10. [

S210단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 통신버스(30)를 통해 격리패킷이 수신되는지 여부를 판단한다. 이때, 격리패킷은 특정 프로토콜을 이용하는 적어도 하나의 슬레이브 기기(20) 또는 특정 슬레이브 기기(20)를 격리시키기 위해 마스터 기기(10)가 생성하는 패킷으로, 마스터 기기(10)에 의해 생성된 후 슬레이브 기기(20)로 전송될 수 있다. 격리패킷을 수신한 슬레이브 기기(20)는 마스터 기기(10)로부터 전송되는 명령패킷이 기설정된 조건을 만족하지 않을 경우, 명령패킷을 수신하지 않거나 수신 후 폐기한다. 이때, 격리패킷은 프로토콜에 따라 상이하게 설계될 수 있다.In step S210, the slave device 20 determines whether a quarantine packet is received from the master device 10 via the communication bus 30. [ At this time, the isolation packet is a packet generated by the master device 10 to isolate at least one slave device 20 or a specific slave device 20 using a specific protocol. The isolation packet is generated by the master device 10, May be transmitted to the device (20). When the command packet transmitted from the master device 10 does not satisfy the predetermined condition, the slave device 20 receiving the isolation packet does not receive the command packet or discards it after receiving the command packet. At this time, the isolation packet may be designed differently according to the protocol.

본 발명의 다른 실시예에서 기설정된 조건은 명령패킷의 바이트 수로, 슬레이브 기기(20)는 S220단계에서 마스터 기기(10)로부터 명령패킷이 송신되었는지 판단한다. 명령패킷은 데이터의 묶음으로, 전송할 데이터를 일정한 크기로 나누어 붙이고, 명령패킷이 전송될 슬레이브 기기(20)의 ID를 나타내는 헤더를 붙인 것으로 마스터 기기(10)에 의해 생성된다. 이때, 슬레이브 기기(20)는 마스터 기기(10)로부터 명령패킷을 수신하지 않으면, 통신버스(30)를 점유할 수 없으며 상태패킷을 송신할 수 없다. 즉, 명령패킷을 수신한 슬레이브 기기(20)는 한시적으로 통신버스(30)를 점유하여 상태패킷을 송신할 수 있다. 이때, 상태패킷은 명령패킷에 대응되는 패킷으로 슬레이브 기기(20)에 의해 생성되며, 명령패킷을 정상적으로 수행했다는 정보가 담겨있을 수 있다.In another embodiment of the present invention, the predetermined condition is the number of bytes of the command packet, and the slave device 20 determines whether a command packet has been transmitted from the master device 10 in step S220. The command packet is a bundle of data. The command packet is generated by the master device 10 by attaching a header indicating the ID of the slave device 20 to which the command packet is to be transmitted, by dividing the data to be transmitted to a predetermined size. At this time, if the slave device 20 does not receive the command packet from the master device 10, it can not occupy the communication bus 30 and can not transmit the status packet. That is, the slave device 20 receiving the command packet can occupy the communication bus 30 for a limited time and transmit the status packet. At this time, the status packet may be generated by the slave device 20 as a packet corresponding to the command packet, and may contain information that the command packet has been normally executed.

슬레이브 기기(20)는 S220단계에서 명령패킷이 송신된 것으로 판단하면, S230단계에서 송신된 명령패킷의 바이트 수가 기설정된 바이트 수를 초과하는지 판단한다. 명령패킷의 바이트 수가 기설정된 바이트 수를 초과하는 것으로 판단하면, 슬레이브 기기(20)는 S240단계에서 명령패킷을 실행하고, 명령패킷이 기설정된 바이트 수 이하인 것으로 판단하면, S260단계에서 명령패킷을 수신하지 않거나 수신 후 폐기한다.If it is determined in step S220 that the command packet has been transmitted, the slave device 20 determines whether the number of bytes of the command packet transmitted in step S230 exceeds the preset number of bytes. If it is determined that the number of bytes of the command packet exceeds the predetermined number of bytes, the slave device 20 executes the command packet in step S240. If it is determined that the command packet is equal to or less than the preset number of bytes, Do not do or discard after receipt.

도 4에는 도시되어 있지 않지만, 명령패킷을 수신한 슬레이브 기기(20)는 한시적으로 통신버스(30)를 점유하여 상태패킷을 마스터 기기(10)로 송신할 수 있다.Although not shown in FIG. 4, the slave device 20 receiving the command packet can occupy the communication bus 30 for a limited time and transmit the status packet to the master device 10.

본 발명의 실시예에 따라, S240단계 또는 S260단계 이후, 슬레이브 기기(20)가 기설정된 시간안에 마스터 기기(10)로부터 명령패킷이 송신되지 않는지를 판단하는 S250단계를 더 포함할 수 있다. 즉, S250단계는 슬레이브 기기(20)가 기설정된 시간 안에 추가로 명령패킷이 송신되는지 판단하는 단계로서, 슬레이브 기기(20)는 마스터 기기(10)로부터 명령패킷이 송신되면 다시 S230단계로 돌아가 명령패킷이 기설정된 바이트 수 이하의 명령패킷인지 판단한다. 슬레이브 기기(20)는 S250단계에서 마스터 기기(10)로부터 기설정된 시간 안에 명령패킷이 송신되지 않으면, 일정 바이트 수 이하의 명령패킷을 수신하지 않거나 수신 후 폐기하는 절차를 종료한다The method may further include a step S250 of determining whether the slave device 20 does not transmit a command packet from the master device 10 within a predetermined time according to the embodiment of the present invention. That is, in step S250, it is determined whether a command packet is further transmitted within a predetermined time period. When the command packet is transmitted from the master device 10, the slave device 20 returns to step S230, It is determined whether the packet is a command packet equal to or less than a predetermined number of bytes. If the command packet is not transmitted from the master device 10 within the predetermined time in step S250, the slave device 20 terminates the procedure for not receiving or discarding command packets of a certain number of bytes or less

도 4는 명령패킷이 일정 바이트 수 이하일때, 수신하지 않거나 수신 후 폐기하는 경우 만을 도시하였지만, 명령패킷이 일정 바이트 수 이상일때, 수신하지 않거나 수신 후 폐기하도록 설정될 수 있음은 물론이다.4 shows only the case where the command packet is not received or is discarded when the command packet is less than a certain number of bytes. However, it is needless to say that the command packet may be set not to be received or discarded when the command packet is more than a certain number of bytes.

도 5는 본 발명의 또 다른 실시예에 따른 통신 시스템의 패킷 충돌 방지 방법을 도시하는 순서도로, 슬레이브 기기(20) 위주로 각 단계를 설명한다.FIG. 5 is a flowchart illustrating a packet collision avoiding method in a communication system according to another embodiment of the present invention, and each step will be described focusing on a slave device 20. FIG.

S300단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 전송되는 격리패킷의 수신을 대기한다. 격리패킷은 특정 프로토콜을 이용하는 적어도 하나의 슬레이브 기기(20) 또는 특정 슬레이브 기기(20)를 격리시키기 위해 마스터 기기(10)가 생성하는 패킷으로, 마스터 기기(10)에 의해 생성된 후 슬레이브 기기(20)로 전송될 수 있다. 이때, 격리패킷은 프로토콜에 따라 상이하게 설계될 수 있다. S300단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 격리패킷의 수신을 대기하는 상태로 통신버스를 점유할 수 없으며, 마스터 기기(10)에 의해 전송되는 패킷만 수신할 수 있다.In step S300, the slave device 20 waits for reception of the isolation packet transmitted from the master device 10. [ The isolation packet is a packet generated by the master device 10 in order to isolate at least one slave device 20 or a specific slave device 20 using a specific protocol and is generated by the slave device 10 20). At this time, the isolation packet may be designed differently according to the protocol. The slave device 20 can not occupy the communication bus in a state of waiting for reception of the isolation packet from the master device 10 in step S300 and can only receive the packet transmitted by the master device 10. [

S310단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 통신버스(30)를 통해 격리패킷이 수신되는지 여부를 판단한다. 격리패킷을 수신한 슬레이브 기기(20)는 마스터 기기(10)로부터 송신되는 명령패킷이 기설정된 조건을 만족하지 않을 경우, 명령패킷을 수신하지 않거나 수신 후 폐기할 수 있다. In step S310, the slave device 20 determines whether a quarantine packet is received from the master device 10 via the communication bus 30. When the command packet transmitted from the master device 10 does not satisfy the predetermined condition, the slave device 20 which has received the isolation packet can not receive the command packet or can discard it after receiving the command packet.

본 발명의 또 다른 실시예에서 기설정된 조건은 마스터 기기(10)로부터 격리패킷을 수신한 후 명령패킷이 송신되는데 걸린시간으로, 슬레이브 기기(20)는 S320단계에서 마스터 기기(10)로부터 명령패킷이 송신되었는지 판단한다. 명령패킷은 데이터의 묶음으로, 전송할 데이터를 일정한 크기로 나누어 붙이고, 명령패킷이 전송될 슬레이브 기기(20)의 ID를 나타내는 헤더를 붙인 것으로 마스터 기기(10)에 의해 생성된다. 이때, 슬레이브 기기(20)는 마스터 기기(10)로부터 명령패킷을 수신하지 않으면, 통신버스(30)를 점유할 수 없으며 상태패킷을 송신할 수 없다. 즉, 명령패킷을 수신한 슬레이브 기기(20)는 한시적으로 통신버스(30)를 점유하여 상태패킷을 송신할 수 있다.In another embodiment of the present invention, the predetermined condition is a time taken for the command packet to be transmitted after receiving the quarantine packet from the master device 10, and the slave device 20 transmits the command packet from the master device 10 in step S320, Is transmitted. The command packet is a bundle of data. The command packet is generated by the master device 10 by attaching a header indicating the ID of the slave device 20 to which the command packet is to be transmitted, by dividing the data to be transmitted to a predetermined size. At this time, if the slave device 20 does not receive the command packet from the master device 10, it can not occupy the communication bus 30 and can not transmit the status packet. That is, the slave device 20 receiving the command packet can occupy the communication bus 30 for a limited time and transmit the status packet.

이때, 상태패킷은 명령패킷에 대응되는 패킷으로 슬레이브 기기(20)에 의해 생성되며, 명령패킷을 정상적으로 수행했다는 정보가 담겨있을 수 있다.At this time, the status packet may be generated by the slave device 20 as a packet corresponding to the command packet, and may contain information that the command packet has been normally executed.

슬레이브 기기(20)는 S320단계에서 명령패킷이 마스터 기기(10)로부터 송신된 것으로 판단하면, S330단계에서 마스터 기기(10)로부터 격리패킷을 수신한 후 명령패킷이 송신되는데 걸린 시간이 기설정된 시간 이상인지 판단한다. If it is determined in step S320 that the command packet has been transmitted from the master device 10, the slave device 20 determines whether the time taken for the command packet to be transmitted after receiving the quarantine packet from the master device 10, Or more.

격리패킷을 수신한 후, 명령패킷이 송신되는데 걸린 시간이 기설정된 시간 이상인 경우, S340단계에서 슬레이브 기기(20)는 명령패킷을 실행하고, 격리패킷을 수신한 후 명령패킷이 송신되는데 걸린 시간이 기설정된 시간 미만인 경우, S360단계에서 명령패킷을 수신하지 않거나 수신 후 폐기한다.If the time taken for the command packet to be transmitted is longer than the preset time after receiving the quarantine packet, the slave device 20 executes the command packet in step S340, and the time taken for the command packet to be transmitted after receiving the quarantine packet If it is less than the preset time, the command packet is not received or discarded after receiving in step S360.

도 5에는 도시되어 있지 않지만, 명령패킷을 수신한 슬레이브 기기(20)는 한시적으로 통신버스(30)를 점유하여 상태패킷을 마스터 기기(10)로 송신할 수 있다.Although not shown in FIG. 5, the slave device 20 receiving the command packet can occupy the communication bus 30 temporarily and transmit the status packet to the master device 10 for a limited time.

본 발명의 실시예에 따라 S340단계 또는 S360단계 이후, S350단계를 더 포함하고, 슬레이브 기기(20)가 기설정된 시간안에 마스터 기기(10)로부터 명령패킷이 송신되지 않는지를 판단하는 S350단계를 더 포함할 수 있다.In step S350, the host device 10 further includes step S340, step S360, and step S350 according to an embodiment of the present invention to determine whether the slave device 20 has not transmitted a command packet from the master device 10 within a predetermined time .

즉, S350단계는 슬레이브 기기(20)가 기설정된 시간 안에 추가로 명령패킷이 송신되는지 판단하는 단계로서, 슬레이브 기기(20)는 마스터 기기(10)로부터 명령패킷을 수신하면 다시 S330단계로 돌아가 마스터 기기(10)로부터 격리패킷을 수신한 후, 명령패킷이 송신되는데 걸린 시간이 기설정된 시간 이상인지 판단한다. 슬레이브 기기(20)는 S350단계에서 마스터 기기(10)로부터 기설정된 시간 안에 명령패킷이 송신되지 않으면, 마스터 기기(10)로부터 격리패킷을 수신한 후, 명령패킷이 송신되는데 걸린 시간으로 명령패킷을 수신하지 않거나 수신 후 폐기하는 절차를 종료한다.That is, in step S350, it is determined whether a command packet is further transmitted within a predetermined period of time. When the slave device 20 receives the command packet from the master device 10, the slave device 20 returns to step S330, After receiving the quarantine packet from the device 10, it is determined whether the time taken for the command packet to be transmitted is longer than a preset time. The slave device 20 receives the quarantine packet from the master device 10 if the command packet is not transmitted within a predetermined time from the master device 10 in step S350, Terminate the procedure of not receiving or discarding and discarding.

본 발명의 실시예에 따른 통신 시스템의 패킷 충돌 방지 방법을 이용하면, 슬레이브 기기(20)가 마스터 기기(10)로부터 전송되는 명령패킷을 수신하지 않거나 수신 후 폐기하도록 하는 격리패킷을 이용하여, 다중 프로토콜 환경에서 특정 프로토콜을 갖는 슬레이브 기기(20)들이 명령패킷을 실행하지 않도록 설정할 수 있기 때문에, 슬레이브 기기(20)에서 잘못된 패킷이 정상패킷으로 인식될 수 있는 가능성을 최소화 할 수 있다. 즉, 사용자는 복수개의 프로토콜을 갖는 통신 시스템(1)을 보다 안정하게 사용할 수 있다.Using the packet collision avoidance method of the communication system according to the embodiment of the present invention, the slave device 20 can use the isolation packet that does not receive the command packet transmitted from the master device 10, The slave devices 20 having a specific protocol in the protocol environment can be set not to execute the command packet, so that it is possible to minimize the possibility that the slave device 20 recognizes an erroneous packet as a normal packet. That is, the user can use the communication system 1 having a plurality of protocols more stably.

도 6은 본 발명의 일 실시예에 따른 통신 시스템(1)의 명령패킷 생성시 참조되는 컨트롤 테이블을 도시하고 있다.FIG. 6 shows a control table referred to when generating the command packet of the communication system 1 according to an embodiment of the present invention.

컨트롤 테이블은 마스터 기기(10)가 슬레이브 기기(20)를 제어하기 위한 명령패킷 생성 시 명령패킷에 포함되는 데이터를 참조하기 위한 것으로, 슬레이브 기기의 상태와 구동에 관한 데이터로 구성되어 있다. 도 6 내지 도 9는 슬레이브 기기(20)가 마스터 기기(10)에 의해 구동되는 슬레이브 기기(엑츄에이터)인 경우를 예로 설명한다.The control table is for referring to data included in an instruction packet when the master device 10 generates a command packet for controlling the slave device 20 and is composed of data on the status and operation of the slave device. 6 to 9 illustrate an example in which the slave device 20 is a slave device (actuator) driven by the master device 10. FIG.

컨트롤 테이블에 값들을 기록(Writing)함으로써 슬레이브 기기를 구동시키고, 컨트롤 테이블의 값을 판독(Reading)함으로써 슬레이브 기기의 상태를 파악하게 된다.Writing the values in the control table drives the slave device and reads the value of the control table to grasp the state of the slave device.

컨트롤 테이블은 RAM영역과 EEPROM영역으로 구성되는데, RAM영역의 데이터는 전원이 인가될 때마다 초기값으로 설정되지만, EEPROM영역의 데이터는 설정된 값이 전원의 오프(off)시 에도 보존된다.The control table consists of a RAM area and an EEPROM area. The data in the RAM area is set to the initial value every time power is applied, but the data in the EEPROM area is preserved even when the power is turned off.

컨트롤 테이블은 번지(Address), 아이템(Item), 액세스방식(Access), 초기값(Initial Value)과 같은 항목들을 포함하고 있다.The control table includes items such as an address, an item, an access, and an initial value.

여기에서, 번지는 값을 기록, 판독하게 될 메모리의 번지를 의미한다. 그리고, 아이템은 각 번지에 지정된 데이터의 종류를 의미한다. 또한, 액세스방식은 해당 아이템에 대한 기록, 판독 가능여부를 표시한다. 아울러, 초기값은 EEPROM영역의 데이터인 경우 공장 디폴트값이고 RAM영역의 데이터인 경우에는 전원 인가 시 갖는 초기값을 의미한다. Here, the address means the address of the memory to read and write the value. The item indicates the type of data designated at each address. The access method indicates whether the item is recorded or readable. In addition, the initial value is the factory default value in the case of data in the EEPROM area, and the initial value in case of data in the RAM area.

이하에서는 각 번지에 지정된 데이터의 의미를 설명한다.Hereinafter, the meaning of data designated at each address will be described.

먼저, EEPROM영역이다.First, it is the EEPROM area.

0X00, 0X01 : 모델 번호0X00, 0X01: Model number

0X02 : 펌웨어 버전0X02: Firmware version

0X03 : 슬레이브 기기 식별을 위한 고유번호(ID)이다. 링크된 각 슬레이브 기기기에는 서로 다른 ID가 할당되어야 한다.0X03: ID number for slave device identification. Each linked slave device must be assigned a different ID.

0X04 : 통신속도를 결정하는 보드율로서, 산출공식은 "Speed[BPS] = 2000000/[[0049] Address4 + 1]"이다.0X04: The baud rate that determines the communication speed. The calculation formula is "Speed [BPS] = 2000000 / [0049] Address4 + 1]".

예시적으로, 주요 보드율별 데이터 값은 표 1과 같다. UART(Universal Asynchronous Receiver/Transmitter, 범용 비동기화 송수신기)의 경우 보드율 오차가 3% 이내 이면 통신에 지장이 없다.By way of example, the data values for the major board ratios are shown in Table 1. In case of UART (Universal Asynchronous Receiver / Transmitter), communication error is less than 3%.

Address4Address4 설정 BPSSetting BPS 목표 BPSTarget BPS 오차error 1One 1000000.01000000.0 1000000.01000000.0 0.000%0.000% 33 500000.0500000.0 500000.0500000.0 0.000%0.000% 44 400000.0400000.0 400000.0400000.0 0.000%0.000% 77 250000.0250000.0 250000.0250000.0 0.000%0.000% 99 200000.0200000.0 200000.0200000.0 0.000%0.000% 1616 117647.1117647.1 115200.0115200.0 -2.124%-2.124% 3434 57142.957142.9 57600.057600.0 0.794%0.794% 103103 19230.819230.8 19200.019200.0 -0.0160%-0.0160% 207207 9615.49615.4 9600.09600.0 -0.0160%-0.0160%

0X05 : 리턴 지연 시간 즉, 명령패킷 전송 후 상태패킷이 리턴되기까지 걸리는 지연 시간을 의미한다.0X05: Return delay time, that is, the delay time until the status packet is returned after command packet transmission.

0X06, 0X07, 0X08, 0X09 : 동작 각도 제한. 슬레이브 기기의 동작이 허용되는 각도 구간을 설정한다.0X06, 0X07, 0X08, 0X09: Limit the operating angle. Set the angular interval in which the operation of the slave device is allowed.

0X0B : 최대 제한 온도. 슬레이브 기기의 동작 제한 온도를 의미한다.0X0B: Maximum limiting temperature. Means the operating limit temperature of the slave device.

0X0C, 0X0D : 최저/최고 제한 전압. 슬레이브 기기의 동작 전압 범위의 상한선과 하한선을 의미한다.0X0C, 0X0D: lowest / highest limiting voltage. Means the upper and lower limits of the operating voltage range of the slave device.

0X0E, 0X0F : 최대 토크. 슬레이브 기기의 최대 토크 출력값이다. 0X0E, 0X0F: Maximum torque. This is the maximum torque output value of the slave device.

이 값을 '0'으로 설정할 경우 토크가 없는 프리런(Free Run) 상태가 된다. When this value is set to '0', it becomes a free run state with no torque.

최대 토크(Max Torque/Torque Limit)는 EEPROM영역(0X0E, 0X0F)과 RAM영역(0X22, 0X23)의 두 곳에 할당되어 있는데, 전원이 온될 때 EEPROM영역의 값이 RAM으로 복사된다. Max Torque / Torque Limit is allocated to EEPROM area (0X0E, 0X0F) and RAM area (0X22, 0X23). When power is on, value of EEPROM area is copied to RAM.

슬레이브 기기의 토크는 RAM에 위치한 값(0X22, 0X23)에 의해 제한된다.The torque of the slave device is limited by the value (0X22, 0X23) located in the RAM.

0X10 : 상태 리턴 레벨. 명령패킷이 전송된 후 슬레이브 기기가 상태패킷을 리턴해 줄지 여부를 결정하는 것으로, 아래 표 2와 같은 값을 갖는다. 한편, 브로드캐스트 ID(0XFE)의 명령패킷의 경우에는 상태 리턴 레벨값에 상관없이 상태패킷이 리턴되지 않는다.0X10: Status return level. After the command packet is transmitted, it is determined whether or not the slave device returns the status packet. The value is as shown in Table 2 below. On the other hand, in the case of the command packet of the broadcast ID (0XFE), the status packet is not returned regardless of the status return level value.

Address16Address16 Status Packet의 ReturnReturn of Status Packet 00 모든 Instruction에 대해 Return하지 않음Do not return for all instructions 1One READ_DATA 명령에 대해서만 Return함Return only for READ_DATA command 22 모든 instruction에 대해 Return함Return for all instructions

0X11 : 알람 LED. 에러가 발생했을 때 각 명령에 대한 해당 에러 비트가 1로 설정되어 있으면 LED가 깜박인다. 각 명령에 대한 해당 에러 대응표는 표 3과 같다.0X11: Alarm LED. The LED blinks when the corresponding error bit for each command is set to 1 when an error occurs. The corresponding error table for each command is shown in Table 3.

BitBit 기능function Bit 7Bit 7 00 Bit 6Bit 6 1로 설정해 놓으면 Instruction Error 발생시 LED가 깜빡임If set to 1, LED will flash when Instruction Error occurs. Bit 5Bit 5 1로 설정해 놓으면 Overload Error 발생시 LED가 깜빡임If set to 1, LED will blink when overload error occurs. Bit 4Bit 4 1로 설정해 놓으면 Check sum Error 발생시 LED가 깜빡임If set to 1, LED blinks when Check sum error occurs Bit 3Bit 3 1로 설정해 놓으면 Range Error 발생시 LED가 깜빡임If set to 1, the LED blinks when a Range Error occurs Bit 2Bit 2 1로 설정해 놓으면 Overheating Error 발생시 LED가 깜빡임If set to 1, LED will flash when overheating error occurs. Bit 1Bit 1 1로 설정해 놓으면 Angle Limit Error 발생시 LED가 깜빡임If set to 1, the LED will flash when an Angle Limit Error occurs. Bit 0Bit 0 1로 설정해 놓으면 Input voltage Error 발생시 LED가 깜빡임If set to 1, the LED blinks when an input voltage error occurs.

각 비트의 기능은 'OR'논리로 작동된다. The function of each bit is operated by 'OR' logic.

즉, 0X05로 설정되었을 경우 입력 전압 에러가 발생해도 LED는 깜박이며, 오버히팅 에러가 발생해도 LED는 깜박이게 된다. In other words, when set to 0X05, the LED blinks even if an input voltage error occurs, and the LED blinks even if an overheating error occurs.

에러가 발생한 후 정상상황으로 복귀하면 2초 후에 LED는 깜박임을 멈추게 된다.After returning to the normal state after an error occurs, the LED will stop blinking after 2 seconds.

0X12 : 알람 셧다운. 에러가 발생했을 때 각 명령에 대한 해당 에러 비트가 1로 설정되어 있을 경우 슬레이브 기기가 토크오프 즉, 동작중지된다. 각 명령에 대한 해당 에러 대응표는 표 4와 같다.0X12: Alarm shutdown. If an error occurs and the corresponding error bit for each instruction is set to 1, the slave device will torque off, or stop working. The corresponding error table for each command is shown in Table 4.

BitBit 기능function Bit 7Bit 7 00 Bit 6Bit 6 1로 설정해 놓으면 Instruction Error 발생시 Torque OffIf set to 1, Torque Off Bit 5Bit 5 1로 설정해 놓으면 Overload Error 발생시 Torque OffIf set to 1, Torque Off Bit 4Bit 4 1로 설정해 놓으면 Check sum Error 발생시 Torque OffIf set to 1, when Check sum error occurs Torque Off Bit 3Bit 3 1로 설정해 놓으면 Range Error 발생시 Torque OffIf set to 1, Torque Off Bit 2Bit 2 1로 설정해 놓으면 Overheating Error 발생시 Torque OffIf set to 1, when overheating error occurs Torque Off Bit 1Bit 1 1로 설정해 놓으면 Angle Limit Error 발생시 Torque OffIf set to 1, when Angle Limit Error occurs Torque Off Bit 0Bit 0 1로 설정해 놓으면 Input voltage Error 발생시 Torque OffIf set to 1, Torque Off

각 비트의 기능은 'OR'논리로 작동된다. The function of each bit is operated by 'OR' logic.

그러나 알람 LED와는 달리 에러가 발생한 후 정상 상황으로 복귀해도 토크오프 상태는 계속된다. However, unlike the alarm LED, the torque off state continues even after returning to the normal state after an error has occurred.

따라서 셧다운 상태에서 벗어나려면 토크 인에이블[0X18]을 1로 재설정해야 한다.Therefore, to exit the shutdown state, the torque enable [0X18] must be reset to 1.

0X14, 0X15, 0X16, 0X17 : 교정(Callibraion). 포텐셔미터 제품간의 편차를 보상하기 위한 데이터로서 사용자가 변경할 수 없다.0X14, 0X15, 0X16, 0X17: Calibration (Callibraion). The data can not be changed by the user to compensate the deviation between potentiometer products.

이하의 번지는 RAM영역이다.The following address is the RAM area.

0X18 : 토크 인에이블. 디지털 모드에서 슬레이브 기기에 전원을 인가하면 토크가 발생하지 않는 프리런 상태가 된다. 0X18: Torque enable. When power is applied to the slave device in the digital mode, the free-running state in which no torque occurs occurs.

이때, 0X18번지에 1을 설정하면 토크 인에이블 상태로 된다.At this time, if 1 is set to address 0X18, the torque is enabled.

0X19 : LED. 1로 설정되어 있으면 LED가 켜지고 0으로 설정되어 있으면 LED가 꺼진다.0X19: LED. If it is set to 1, the LED will be on; if it is set to 0, the LED will be off.

0X1A, 0X1B, 0X1C, 0X1D : 컴플라이언스 마진(compliance margin) 및 슬로프. 마진과 슬로프를 설정하여 엑츄에이터의 컴플라이언스를 조절한다. 컴플라이언스를 잘 활용하면 충격 흡수를 하는 효과를 낼 수 있다. 0X1A, 0X1B, 0X1C, 0X1D: compliance margin and slope. Set the margin and slope to control the actuator's compliance. A good use of compliance can have a shock-absorbing effect.

도 7의 위치 에러에 따른 출력 곡선에서 A, B, C, D의 길이가 컴플라이언스 값이다.The length of A, B, C, and D in the output curve according to the position error in Fig. 7 is the compliance value.

0X1E, 0X1F : 목표 위치. 슬레이브 기기가 이동하고자 하는 위치를 의미한다. 0X1E, 0X1F: Target position. It means the position where the slave device wants to move.

도 8에서 값을 최대값인 0X3ff로 설정하면 300°로 이동한다.In FIG. 8, if the value is set to a maximum value of 0X3ff, it moves to 300 DEG.

0X20, 0X21 : 이동 속도. 목표 위치로 이동하는 속도를 의미한다. 최대값인 0x3ff로 설정하면 70rpm의 속도로 움직인다. 0X20, 0X21: Moving speed. It means the moving speed to the target position. Set to the maximum value of 0x3ff to move at 70 rpm.

참고로, 속도가 1로 설정될 경우가 최저속이며 0으로 설정된 경우는 현재 인가 전압상에서 낼 수 있는 최대속도로 움직이게 된다. 즉, 속도제어를 하지 않는 것이다.For reference, when the speed is set to 1, it is the lowest speed. When it is set to 0, it moves to the maximum speed that can be obtained on the current applied voltage. That is, the speed control is not performed.

0X22, 0X23 : 최대 토크. 슬레이브 기기의 최대 토크 출력값이다. 이 값을 '0'으로 설정할 경우 토크가 없는 프리런(Free Run) 상태가 된다. 최대 토크(Max Torque/Torque Limit)는 EEPROM영역(0X0E, 0X0F)과 RAM영역(0X22, 0X23)의 두 곳에 할당되어 있는데, 전원이 온될 때 EEPROM영역의 값이 RAM으로 복사된다. 슬레이브 기기의 토크는 RAM에 위치한 값(0X22, 0X23)에 의해 제한된다.0X22, 0X23: Maximum torque. This is the maximum torque output value of the slave device. When this value is set to '0', it becomes a free run state with no torque. Max Torque / Torque Limit is allocated to EEPROM area (0X0E, 0X0F) and RAM area (0X22, 0X23). When power is on, value of EEPROM area is copied to RAM. The torque of the slave device is limited by the value (0X22, 0X23) located in the RAM.

0X24, 0X25 : 현재 위치. 슬레이브 기기의 현재 위치0X24, 0X25: current position. Current position of slave device

0X26, 0X27 : 현재 속도. 슬레이브 기기의 현재 속도0X26, 0X27: Current speed. Current speed of slave device

0X28, 0X29 : 현재 부하. 슬레이브 기기의 현재 구동하는 부하의 크기. 아래 표에서 비트 10은 부하가 걸려있는 방향이다.0X28, 0X29: Current load. The size of the load currently driven by the slave device. In the table below, bit 10 is the direction in which the load is applied.

Figure 112016115706955-pat00001
Figure 112016115706955-pat00001

0X2A : 현재 전압. 슬레이브 기기에 현재 인가되고 있는 전압. 이 값은 실제 전압의 10배이다. 즉, 10V 일 경우 100[0X64]이 읽혀진다.0X2A: Current voltage. The voltage currently applied to the slave device. This value is 10 times the actual voltage. That is, when 10V, 100 [0X64] is read.

0X2B : 현재 온도. 슬레이브 기기 내부의 섭씨 온도.0X2B: Current temperature. Celsius temperature inside the slave unit.

0X2C : 등록 명령. REG_WRITE명령에 의해 명령이 등록되어 있을 때 1로 설정되고, ACTION명령에 의해 등록된 명령이 수행 완료된 후에는 0으로 된다.0X2C: Registration command. It is set to 1 when the command is registered by the REG_WRITE command, and becomes 0 when the command registered by the ACTION command is completed.

0X2E : 이동. 슬레이브 기기가 자체 동력에 의한 이동 상태일 때 1로 설정된다.0X2E: Move. It is set to 1 when the slave device is in a moving state by its own power.

0X2F : 로크(Lock). 1로 설정되면 0X18~0X23번지의 값만 기록할 수 있고 나머지 영역은 기록이 금지된다. 한번 로크되면 전원오프로만 해제할 수 있다.0X2F: Lock. If it is set to 1, only the value of address 0X18 ~ 0X23 can be recorded, and recording in the remaining area is prohibited. Once locked, power off can be disabled.

0X30, 0X31 : 펀치(Punch). 구동시에 모터에 공급되는 최소전류량. 초기값은 0X20이며 최고 0X3FF까지 설정할 수 있다.0X30, 0X31: Punch. The minimum amount of current supplied to the motor during operation. The initial value is 0X20 and can be set up to 0X3FF.

이때, 각 데이터들은 유효한 범위가 정해져 있다. 이를 벗어난 기록(WRITE)명령이 전송될 경우 에러가 리턴된다. 도 9의 표에 사용자가 기록할 수 있는 데이터의 길이와 범위가 정리되어 있다. 16비트 데이터는 [L]과 [H], 두 바이트로 표시된다. 이 두 바이트는 하나의 명령패킷으로 동시에 기록되어야 한다.At this time, each data has a valid range. An error is returned if a write (WRITE) instruction out of it is sent. In the table of Fig. 9, the length and range of data that can be recorded by the user are summarized. 16-bit data is indicated by two bytes, [L] and [H]. These two bytes must be simultaneously recorded in one command packet.

본 발명에서 이용되는 명령패킷(INSTRUCTION PACKET)은 마스터 기기가 슬레이브 기기에게 동작을 지시하는 패킷으로서, 그 구조는 다음과 같다.The instruction packet (INSTRUCTION PACKET) used in the present invention is a packet in which the master device instructs the slave device to operate, and its structure is as follows.

Figure 112016115706955-pat00002
Figure 112016115706955-pat00002

명령패킷을 이루는 각 바이트들의 의미는 다음과 같다.The meaning of each byte of the command packet is as follows.

0XFF 0XFF : 가장 선두에 위치한 두 개의 0XFF는 패킷의 시작을 알리는 신호이다.0XFF 0XFF: The two leading 0XFFs are signals to signal the beginning of the packet.

ID : 명령패킷에 의해 제어될 슬레이브 기기의 ID이다. 슬레이브 기기의 ID는 0X00 ~ 0XFD 까지 254개가 가능하다.ID: ID of the slave device to be controlled by the command packet. The ID of the slave device can be 254 from 0X00 to 0XFD.

브로드캐스팅(Broadcasting)ID : 연결되어 있는 슬레이브 기기 전체를 지정하는 ID이다. ID를 0XFE로 설정한 브로드캐스팅 ID 패킷은 연결된 모든 슬레이브 기기에 유효하다. 그러므로 브로드캐스팅 ID로 전달된 패킷의 경우는 상태패킷이 리턴되지 않는다.Broadcasting ID: It is an ID that designates all connected slave devices. A broadcasting ID packet with the ID set to 0XFE is valid for all connected slave devices. Therefore, in the case of a packet transmitted with a broadcasting ID, a status packet is not returned.

LENGTH(길이) : 명령패킷의 길이로서 그 값은 "파라미터 개수[N] +2"이다.LENGTH (length): Length of the command packet. Its value is "number of parameters [N] + 2".

INSTRUCTION(명령) : 슬레이브 기기에게 수행하라고 지시하는 명령이다.INSTRUCTION (command): This command instructs the slave device to execute.

PARAMETER 0...N : INSTRUCTION 외에 추가 정보가 더 필요할 경우 사용된다.PARAMETER 0 ... N: Used when additional information is needed in addition to INSTRUCTION.

CHECK SUM(체크섬) : 체크섬의 계산 방법은 다음과 같다.CHECK SUM (Checksum): The calculation method of the checksum is as follows.

CHECK SUM = ~{ID + LENGTH + INSTRUCTION + PRAMETER 1 + ... + PRAMETER N}, 체크섬으로 계산된 값이 255보다 클 경우 결과값의 하위 바이트가 CHECK SUM이다. "~"는 Not Bit 연산자이다.Check SUM = ~ {ID + LENGTH + INSTRUCTION + PRAMETER 1 + ... + PRAMETER N}, if the value computed by the checksum is greater than 255, the lower byte of the result is CHECK SUM. "~" Is the Not Bit operator.

본 발명에서 이용되는 상태패킷(STATUS PACKET)은 슬레이브 기기가 명령패킷을 전송받은 후 그 응답으로 메인 컨트롤러로 리턴하는 패킷이며, 그 구조는 다음과 같다.The status packet (STATUS PACKET) used in the present invention is a packet that the slave device returns to the main controller in response to receiving the command packet, and the structure thereof is as follows.

Figure 112016115706955-pat00003
Figure 112016115706955-pat00003

상태패킷을 이루는 각 바이트의 의미는 다음과 같다.The meaning of each byte in the status packet is as follows.

0XFF 0XFF : 가장 선두에 위치한 두 개의 0XFF는 패킷의 시작을 알리는 신호이다.0XFF 0XFF: The two leading 0XFFs are signals to signal the beginning of the packet.

ID : 상태패킷을 리턴하는 슬레이브 기기의 ID이다. 슬레이브 기기의 ID는 0X00 ~ 0XFD 까지 254개가 가능하다.ID: ID of the slave device that returns the status packet. The ID of the slave device can be 254 from 0X00 to 0XFD.

LENGTH(길이) : 상태패킷의 길이로서 그 값은 "파라미터 개수[N] +2"이다.LENGTH (length): length of the status packet whose value is "number of parameters [N] +2".

ERROR(에러) : 슬레이브 기기의 동작 중에 발생된 에러 상태를 나타내는 것으로 각 비트별 의미는 다음 표 5와 같다.ERROR (Error): Indicates error status occurred during operation of slave device.

BitBit 명칭designation 내용Contents Bit 7Bit 7 00 -- Bit 6Bit 6 Instruction
Error
Instruction
Error
정의되지 않은 Instruction이 전송된 경우, REG_WRITE 명령없이 ACTION 명령이 전달된 경우 1로 설정됨If an undefined instruction is sent, it is set to 1 if an ACTION command is passed without a REG_WRITE command.
Bit 5Bit 5 Overload ErrorOverload Error 지정된 최대 Torque로 현재의 하중을 제어할 수 없을 때 1로 설정됨Set to 1 when the current load can not be controlled with the specified maximum torque. Bit 4Bit 4 Checksum ErrorChecksum Error 전송된 Instruction packet의 Check Sum이 맞지 않을 때 1로 설정됨Set to 1 when check sum of transmitted instruction packet is not correct Bit 3Bit 3 Range ErrorRange Error 사용범위를 벗어난 명령일 경우 q로 설정됨Set to q for commands out of range Bit 2Bit 2 Overheating ErrorOverheating Error Dynamixel 내부 온도가 Control Table에 설정된 동작 온도 범위를 벗어났을 때 1로 설정됨Dynamixel is set to 1 when the internal temperature is outside the operating temperature range set in the control table. Bit 1Bit 1 Angle Limit ErrorAngle Limit Error Goal Position이 CW Angle Limit ~ CCW Angle Limit 범의 값으로 Writing 되었을때 1로 설정됨Goal Position is set to 1 when Written as CW Angle Limit ~ CCW Angle Limit value Bit 0Bit 0 Input Voltage ErrorInput Voltage Error 인가된 전압이 Control Table에 설정된 동작 전압 범위를 벗어났을 경우 1로 설정됨Set to 1 if the applied voltage is outside the operating voltage range set in the control table.

PARAMETER 0...N : ERROR 외에 추가 정보가 더 필요할 경우 사용된다.PARAMETER 0 ... N: Used when more information is needed in addition to ERROR.

CHECK SUM(체크섬) : 체크섬의 계산 방법은 다음과 같다.CHECK SUM (Checksum): The calculation method of the checksum is as follows.

CHECK SUM = ~{ID + LENGTH + ERROR + PRAMETER 1 + ... + PRAMETER N}, 체크섬으로 계산된 값이 255 보다 클 경우 결과값의 하위 바이트가 CHECK SUM이다. "~"는 Not Bit 연산자이다.Check SUM = ~ {ID + LENGTH + ERROR + PRAMETER 1 + ... + PRAMETER N}, if the value computed by the checksum is greater than 255, the lower byte of the result is CHECK SUM. "~" Is the Not Bit operator.

본 발명의 슬레이브 기기에서 사용되는 명령 세트에는 표 6과 같은 종류가 있다. 뿐만 아니라, 이러한 명령어의 확장은 BULK_READ와 BULK_WRITE를 예시적으로 설명하고 있는 것 뿐이고, 달리 정의하여 새로운 명령어를 더 추가할 수 있음은 물론이며, 그에 따른 파라미터도 새롭게 규정하여야 한다.The instruction set used in the slave device of the present invention has the kind shown in Table 6. In addition, the extension of these commands is merely illustrative of BULK_READ and BULK_WRITE, and it is necessary to define new parameters as well as add new commands.

InstructionInstruction FuctionFuction ValueValue Number of ParameterNumber of Parameter PINGPING 수행 내용 없음. Dynamixel이 Status Packet을 Return받고자 할 경우 사용No action. Use when Dynamixel wants to return Status Packet 0X010X01 00 READ_DATAREAD_DATA Control Table의 값을 읽는 명령Command to read the value of the Control Table 0X020X02 22 WRITE_DATAWRITE_DATA Control Table에 값을 쓰는 명령Commands to write values to the Control Table 0X030X03 2 ~2 ~ REG_WRITEREG_WRITE WRITE DATA와 내용은 유사하나, 대기상태로 있다가 ACTION명령이 도착하면 WRITE됨WRITE DATA is similar to the contents, but it is in WAIT state and WRITE when ACTION command arrives 0X040X04 2 ~2 ~ ACTIONACTION REG WRITE로 등록된 동작을 시작하라는 명령REG WRITE command to start the registered operation 0X050X05 00 RESETRESET Dynamixel내의 Control Table값을 Factory Default Value로 바꿈Change Control Table value in Dynamixel to Factory Default Value 0X060X06 00 SYNC_WRITESYNC_WRITE 한 번에 여러 개의 모듈을 동시에 제어하고자 할 때 사용되는 명령Commands used to control several modules at once 0X830X83 4 ~4 ~ BULK_READBULK_READ 한 번에 여러 개의 모듈에 각기 다른 Address와 Length의 데이터를 READ하는 명령Commands that read data of different addresses and lengths to multiple modules at once 0X920X92 BULK_WRITEBULK_WRITE 한 번에 여러 개의 모듈에 각기 다른 Address와 Length의 데이터를 WRITE하는 명령Command to WRITE data of different address and length to several modules at once 0X930X93

1. WRITE_DATA1. WRITE_DATA

기능 : 슬레이브 기기 내부의 컨트롤 테이블에 데이터를 기록하는 명령이다.Function: This command is used to write data to the control table in the slave unit.

길이 : 기록하고자 하는 데이터가 N개일 경우, 길이는 N + 3 이다.Length: When the number of data to be recorded is N, the length is N + 3.

명령 : 0X03Command: 0X03

파라미터1 : 데이터를 기록하는 곳의 시작 번지Parameter 1: Start address of data recording area

파라미터2 : 기록하고자 하는 첫번째 데이터Parameter 2: The first data to be recorded

파라미터3 : 기록하고자 하는 두번째 데이터Parameter 3: The second data to be recorded

파라미터N+1 : 기록하고자 하는 N번째 데이터Parameter N + 1: Nth data to be recorded

예컨대, 연결된 슬레이브 기기의 ID를 1로 설정하고 하는 경우, 컨트롤 테이블의 번지 3에 1을 기록하는 명령을 전송하면 된다. For example, when setting the ID of the connected slave device to 1, an instruction to write 1 to address 3 of the control table may be transmitted.

이를 브로드캐스팅ID(0XFE)로 전송하는 경우의 명령패킷은 다음과 같다.The command packet when transmitting with the broadcasting ID (0XFE) is as follows.

Figure 112016115706955-pat00004
Figure 112016115706955-pat00004

위와 같은 경우, 브로드캐스팅ID로 전송되었으므로 상태패킷은 리턴되지 않는다.In this case, the status packet is not returned because it was sent with the broadcasting ID.

2. READ_DATA2. READ_DATA

기능 : 슬레이브 기기 내부의 컨트롤 테이블의 데이터를 판독하는 명령Function: Command to read the data of the control table in the slave unit

길이 : 0X04Length: 0X04

명령 : 0X02Command: 0X02

파라미터1 : 판독하고자 하는 데이터의 시작 번지Parameter 1: Starting address of data to be read

파라미터2 : 판독하고자 하는 데이터의 길이Parameter 2: Length of data to be read

예컨대. ID가 1인 슬레이브 기기의 현재 내부 온도를 판독하고자 하는 경우, 컨트롤 테이블의 번지 0X2B 값에서 1바이트를 판독하면 된다. 이 경우의 명령패킷은 다음과 같다.for example. To read the current internal temperature of a slave device with ID 1, read 1 byte from the address 0X2B in the control table. The command packet in this case is as follows.

Figure 112016115706955-pat00005
Figure 112016115706955-pat00005

이에 대해 리턴되는 상태패킷은 다음과 같다.The status packet returned for this is as follows.

Figure 112016115706955-pat00006
Figure 112016115706955-pat00006

판독된 데이터 값은 0X20이며, 현재 슬레이브 기기의 내부 온도가 약 32℃[0X20]임을 알 수 있다.The read data value is 0X20 and it can be seen that the internal temperature of the slave device is about 32 ° C [0X20].

3. REG_WRITE3. REG_WRITE

기능 : REG_WRITE명령은 WRITE_DATA명령과 유사하나 명령이 수행되는 시점이 다르다. REG_WRITE 명령패킷이 도착하면 그 값은 버퍼에 저장되고 WRITE 동작은 대기 상태로 남아 있게 된다. 이 때, Registered Instruction[0X2C]이 1로 설정된다. 이후에 ACTION 명령패킷이 도착하면 비로소 등록되어 있던 REG_WRITE 명령이 실행된다.Function: The REG_WRITE command is similar to the WRITE_DATA command, but the time at which the command is executed is different. When a REG_WRITE command packet arrives, its value is stored in the buffer and the WRITE operation remains in the WAIT state. At this time, Registered Instruction [0X2C] is set to 1. When the ACTION command packet arrives later, the registered REG_WRITE command is executed.

길이 : N + 3Length: N + 3

명령 : 0X04Command: 0X04

파라미터1 : 데이터를 기록하고자 하는 곳의 시작 번지Parameter 1: Start address of the place where data is to be recorded

파라미터2 : 기록하고자 하는 첫번째 데이터Parameter 2: The first data to be recorded

파라미터3 : 기록하고자 하는 두번째 데이터Parameter 3: The second data to be recorded

파라미터N+1 : 기록하고자 하는 N번째 데이터Parameter N + 1: Nth data to be recorded

4. ACTION4. ACTION

기능 : REG_WRITE명령으로 등록된 WRITE 동작을 수행하라는 명령Function: Command to perform WRITE operation registered by REG_WRITE command

길이 : 0X02Length: 0X02

명령 : 0X05Command: 0X05

파라미터 : 없음Parameters: none

여기서, ACTION 명령은 다수의 슬레이브 기기를 동시에 정확하게 동작시켜야 하는 경우에 유용하다. 여러 개의 슬레이브 기기를 명령패킷으로 제어할 때, 맨 처음에 명령을 받는 슬레이브 기기와 맨 마지막에 명령을 전달받는 슬레이브 기기는 동작 시점에 약간의 시간차가 발생하게 된다. 그러나, REG_WRITE와 ACTION 명령을 사용하게 되면 이와 같은 문제가 해결된다. 한편, 두개 이상의 슬레이브 기기에 ACTION 명령을 전송할 경우 브로드캐스팅ID(0XFE)를 사용해야 하는데, 이 때 상태패킷은 리턴되지 않는다.Here, the ACTION command is useful when it is necessary to correctly operate a plurality of slave devices simultaneously. When controlling a plurality of slave devices with command packets, a slave device that receives the first command and a slave device that receives the last command cause a slight time difference at the time of operation. However, using the REG_WRITE and ACTION commands solves this problem. On the other hand, when sending an ACTION command to two or more slave devices, the broadcast ID (0XFE) must be used, and the status packet is not returned.

5. PING5. PING

기능 : PING 명령은 아무 것도 지시하지 않는다. 단지, 상태패킷을 받고자 할 때나 특정 ID를 갖는 슬레이브 기기의 존재를 확인하기 위해 사용된다.Function: The PING command does not indicate anything. It is used only to receive a status packet or to confirm the existence of a slave device having a specific ID.

길이 : 0X02Length: 0X02

명령 : 0X01Command: 0X01

파라미터 : 없음Parameters: none

예컨대, ID가 1인 슬레이브 기기의 상태패킷을 얻고 싶을 때 다음과 같이 PING 명령을 이용할 수 있다.For example, when it is desired to obtain a status packet of a slave device having ID 1, the PING command can be used as follows.

Figure 112016115706955-pat00007
Figure 112016115706955-pat00007

이에 대응하여 리턴되는 상태패킷은 다음과 같다.The corresponding status packet returned is as follows.

Figure 112016115706955-pat00008
Figure 112016115706955-pat00008

브로드캐스팅ID가 지정되거나 상태 리턴 레벨[0X10]이 0이더라도, PING 명령에 대해서는 상태패킷이 리턴된다.If the broadcast ID is specified or the status return level [0X10] is 0, a status packet is returned for the PING command.

6. RESET6. RESET

기능 : 슬레이브 기기의 컨트롤 테이블을 공장 디폴트 상태로 되돌려 놓는다.Function: Returns the control table of the slave unit to the factory default state.

길이 : 0X02Length: 0X02

명령 : 0X06Command: 0X06

파라미터 : 없음Parameters: none

예컨대, ID가 0인 슬레이브 기기를 리셋하고자 할 경우의 명령패킷은 다음과 같다.For example, a command packet for resetting a slave device whose ID is 0 is as follows.

Figure 112016115706955-pat00009
Figure 112016115706955-pat00009

위와 같은 RESET 명령에 대해 리턴되는 상태패킷은 다음과 같다.The status packet returned for the RESET command is as follows.

Figure 112016115706955-pat00010
Figure 112016115706955-pat00010

여기서, RESET 명령 수행 이후에는 ID가 1로 바뀌게 된다.Here, after the execution of the RESET command, the ID is changed to 1.

7. SYNC_WRITE7. SYNC_WRITE

기능 : 한 번의 명령패킷 전송으로 다수의 슬레이브 기기를 동시에 제어하고자 할 때 사용되는 명령이다. Sync Write 명령을 사용하면 여러 개의 명령을 한번에 전달하므로 다수의 슬레이브 기기를 제어할 때 통신 시간이 줄어든다. 단, 각각의 슬레이브 기기에 기록하고자 하는 컨트롤 테이블의 번지와 길이가 모두 동일해야 하며, ID는 브로드캐스팅ID로 전송되어야 한다.Function: This command is used to control multiple slave devices at the same time by transmitting a single command packet. Sync Write command allows multiple commands to be sent at once, reducing communication time when controlling multiple slave devices. However, the address and length of the control table to be written in each slave device must be the same, and the ID must be transmitted in the broadcasting ID.

ID : 0XFEID: 0XFE

길이 : [L + 1] * N + 4, 여기서 L은 슬레이브 기기의 데이터 길이이며, N은 슬레이브 기기의 개수이다.Length: [L + 1] * N + 4, where L is the data length of the slave device and N is the number of slave devices.

명령 : 0X83Command: 0X83

파라미터1 : 데이터를 기록하고 하는 곳의 시작 번지Parameter 1: Start address where data is recorded

파라미터2 : 기록하고자 하는 데이터의 길이 [L]Parameter 2: Length of data to be recorded [L]

파라미터3 : 첫번째 슬레이브 기기의 IDParameter 3: ID of the first slave device

파라미터4 : 첫번째 슬레이브 기기의 첫번째 데이터Parameter 4: First data of the first slave device

파라미터5 : 첫번째 슬레이브 기기의 두번째 데이터Parameter 5: Second data of the first slave device

..........

파라미터L+3 : 첫번째 슬레이브 기기의 L번째 데이터Parameter L + 3: Lth data of the first slave device

파라미터L+4 : 두번째 슬레이브 기기의 IDParameter L + 4: ID of the second slave device

파라미터L+5 : 두번째 슬레이브 기기의 첫번째 데이터Parameter L + 5: First data of the second slave device

파라미터L+6 : 두번째 슬레이브 기기의 두번째 데이터Parameter L + 6: Second data of the second slave device

............

파라미터2L+4 : 두번째 슬레이브 기기의 L번째 데이터Parameter 2L + 4: Lth data of the second slave device

............

예컨대, 4개의 슬레이브 기기에 대하여 각각 아래와 같이 위치와 속도를 정한다고 하자.For example, let's define the position and speed for each of the four slave devices as shown below.

ID 0 인 슬레이브 기기 : 0X010위치로 속도 0X150 으로 이동Slave device with ID 0: Move to speed 0X150 to position 0X010

ID 1 인 슬레이브 기기 : 0X220위치로 속도 0X360 으로 이동Slave device with ID 1: Move to 0X220 position to speed 0X360

ID 2 인 슬레이브 기기 : 0X030위치로 속도 0X170 으로 이동Slave device with ID 2: Move to 0X030 position to speed 0X170

ID 3 인 슬레이브 기기 : 0X220위치로 속도 0X380 으로 이동Slave device with ID 3: Move to 0X220 position to speed 0X380

이러한 동작을 지시하기 위한 명령패킷은 다음과 같이 이루어진다.An instruction packet for instructing this operation is as follows.

0XFF 0XFF 0XFE 0X18 0X83 0X1E 0X04 0X00 0X10 0X00 0X50 0X01 0X01 0X20 0X02 0X60 0X03 0X02 0X30 0X00 0X70 0X01 0X03 0X20 0X02 0X80 0X03 0X120XFF 0XFF 0XFE 0X18 0X83 0X1E 0X04 0X00 0X10 0X00 0X20 0X0 0XX 0X20 0X0 0XX 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

이 때, 브로드캐스팅ID로 전송되기 때문에 상태패킷은 리턴되지 않는다.At this time, the status packet is not returned because it is transmitted with the broadcasting ID.

8. BULK_READ8. BULK_READ

기능 : 한 번의 명령패킷 전송으로 다수의 슬레이브 기기에서 동시에 값을 읽어오고자 할 때 사용되는 명령이다. Function: This command is used to read data from multiple slave devices at the same time by sending a single command packet.

여러 번의 READ 명령을 내리는 것에 비해 패킷의 길이가 줄어들고, 리턴 되는 상태패킷들 사이에 유휴 시간이 줄어들어 통신 시간을 절약할 수 있다. Compared to issuing multiple READ commands, the length of the packet is reduced, and idle time is reduced between returned status packets, saving communication time.

ID : 0XFEID: 0XFE

길이 : 3N+3Length: 3N + 3

명령 : 0X92Command: 0X92

파라미터1 : 0X00Parameter 1: 0X00

파라미터2 : 첫번째 모듈에서 읽어오려는 데이터의 길이 [L]Parameter 2: Length of the data to be read from the first module [L]

파라미터3 : 첫번째 모듈의 IDParameter 3: ID of the first module

파라미터4 : 첫번째 모듈에서 읽어오고자 하는 데이터의 시작 번지Parameter 4: Start address of the data to be read from the first module

........

파라미터3N+2 : N번째 모듈에서 읽어오려는 데이터의 길이 [L] Parameter 3N + 2: Length of the data to be read from the Nth module [L]

파라미터3N+3 : N번째 모듈의 IDParameter 3N + 3: ID of the Nth module

파라미터3N+4 : N번째 모듈에서 읽어오고자 하는 데이터의 시작 번지Parameter 3N + 4: Starting address of the data to be read from the Nth module

........

예컨대, 2개의 슬레이브 기기에 대하여 각각 아래와 같이 값을 읽어 온다고 치자.For example, assume that the following values are read for the two slave devices, respectively.

ID 1 인 슬레이브 기기 : 목표 위치 값(0X1E 에서 2바이트)을 가져 옴.Slave device with ID 1: Get the target position value (2 bytes from 0X1E).

ID 2 인 슬레이브 기기 : 현재 위치 값(0X24 에서 2바이트)을 가져 옴.Slave device with ID 2: Get the current position value (2 bytes from 0X24).

이러한 동작을 지시하기 위한 명령패킷은 다음과 같이 이루어진다.An instruction packet for instructing this operation is as follows.

0XFF 0XFF 0XFE 0X09 0X92 0X00 0X02 0X01 0X1E 0X02 0X02 0X24 0X1D0XFF 0XFF 0XFE 0X09 0X92 0X00 0X02 0X01 0X1E 0X02 0X02 0X24 0X1D

이 때 ID 2 인 모듈은 데이터 버스 상에 ID 1(바로 전 파라미터의 ID) 인 모듈의 상태패킷이 전송되는 것을 감시하다가 ID 1 인 모듈의 상태패킷이 전송 완료되는 즉시 자신의 상태패킷을 전송하게 된다. At this time, the module with ID 2 monitors the status packet of the module which is ID 1 (ID of the immediately preceding parameter) on the data bus, and transmits the status packet of the module with ID 1 do.

리턴되는 상태패킷은 아래와 같이 된다.The returned status packet looks like this:

0XFF 0XFF 0X01 0X04 0X00 0X00 0X80 0X7A 0XFF 0XFF 0X02 0X04 0X00 0X00 0X80 0X790XFF 0XFF 0X 00 0X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

각각 모듈 ID 1 과 ID 2 에서 보낸 상태패킷이 연달아 들어오는 형식이 된다.The status packets sent from module ID 1 and ID 2, respectively, come in a succession of incoming packets.

9. BULK_WRITE9. BULK_WRITE

기능 : 한 번의 명령패킷 전송으로 다수의 슬레이브 기기에서 동시에 값을 쓰고자 할 때 사용되는 명령이다. Function: It is a command used to simultaneously write a value in a plurality of slave devices by sending a single command packet.

여러 번의 WRITE 명령을 내리는 것에 비해 패킷의 길이가 줄어들고, 각 패킷들 사이에 유휴 시간이 줄어들어 통신 시간을 절약할 수 있다. Compared to multiple WRITE commands, the length of the packet is reduced and the idle time between each packet is reduced, saving communication time.

또한 하나의 모듈에 연속되지 않은 번지의 control table 에 값을 적기 위해 같은 ID 를 여러 번 지정할 수도 있다.You can also specify the same ID multiple times to write a value to a contiguous control table in one module.

ID : 0XFEID: 0XFE

길이 : 가변적Length: Variable

명령 : 0X93Command: 0X93

파라미터1 : 0X00Parameter 1: 0X00

파라미터2 : 첫번째 모듈에 기록하고자 하는 데이터의 길이 [L1] Parameter 2: Length of the data to write to the first module [L1]

파라미터3 : 첫번째 모듈의 IDParameter 3: ID of the first module

파라미터4 : 첫번째 모듈의 첫번째 데이터Parameter 4: First data of the first module

파라미터5 : 첫번째 모듈의 두번째 데이터Parameter 5: Second data of the first module

......

파라미터L1+2*1+1 : 첫번째 슬레이브 기기의 L번째 데이터Parameter L1 + 2 * 1 + 1: Lth data of the first slave device

파라미터L1+2*2+0 : 두번째 모듈에 기록하고자 하는 데이터의 길이 [L2]Parameter L1 + 2 * 2 + 0: Length of data to write to the second module [L2]

파라미터L1+2*2+1 : 두번째 모듈의 IDParameter L1 + 2 * 2 + 1: ID of the second module

파라미터L1+2*2+2 : 두번째 모듈의 첫번째 데이터Parameter L1 + 2 * 2 + 2: First data of the second module

......

파라미터L1+L2+…+LN+2*N+1 : N번째 슬레이브 기기의 L번째 데이터Parameters L1 + L2 + ... + LN + 2 * N + 1: Lth data of the Nth slave device

......

예컨대, 2개의 슬레이브 기기에 대하여 각각 아래와 같이 값을 정한다고 하자.For example, suppose that the values for the two slave devices are set as follows.

ID 1 인 슬레이브 기기 : 0X220위치로 속도 0X360 으로 이동Slave device with ID 1: Move to 0X220 position to speed 0X360

ID 2 인 슬레이브 기기 : CW/CCW Compliance Slope 을 0X16 으로 변경Slave device with ID 2: Change CW / CCW Compliance Slope to 0X16

이러한 동작을 지시하기 위한 명령패킷은 다음과 같이 이루어진다.An instruction packet for instructing this operation is as follows.

0XFF 0XFF 0XFE 0X0D 0X93 0X00 0X04 0X01 0X20 0X02 0X60 0X03 0X02 0X02 0X10 0X10 0XB40XFF 0XFF 0XFE 0X0D 0X93 0X00 0X04 0X0 0X20 0X02 0X60 0X03 0X02 0X02 0X10 0X10 0XB0

이때, 브로드캐스팅ID로 전송되기 때문에 상태패킷은 리턴되지 않는다.At this time, the status packet is not returned because it is transmitted with the broadcasting ID.

이와 같이, 명령 세트는 계속해서 추가될 수 있으며, 각 명령 세트에 따라 파라미터 내용이 구분되어진다. As such, the instruction set can be added continuously, and the parameter contents are classified according to each instruction set.

따라서, 명령 세트와 파라미터 정의에 따라 각 필드의 길이 제한에 따른 제약사항을 유연하게 확장하는 것이 가능하다. Therefore, it is possible to flexibly extend the constraints according to the length limitation of each field according to the instruction set and the parameter definition.

예를 들어, BULK_READ_2 라는 명령 세트를 0XA0 로 만들고, 파라미터를 아래와 같이 지정한다고 가정해 본다. For example, suppose you set the instruction set BULK_READ_2 to 0XA0 and specify the parameters as shown below.

ID : 0XFEID: 0XFE

명령 : 0XA0Command: 0XA0

파라미터1 : 첫번째 모듈의 ID 하위 바이트Parameter 1: ID of the first module Lower byte

파라미터2 : 첫번째 모듈의 ID 상위 바이트Parameter 2: ID of the first module High byte

파라미터3 : 첫번째 모듈에서 읽어오고자 하는 데이터의 시작 번지 하위 바이트Parameter 3: Start address of data to be read from the first module Lower byte

파라미터4 : 첫번째 모듈에서 읽어오고자 하는 데이터의 시작 번지 상위 바이트Parameter 4: Start address upper byte of data to be read from the first module

파라미터5 : 첫번째 모듈에서 읽어오려는 데이터의 길이 하위 바이트Parameter 5: Length of data to be read from the first module Low byte

파라미터6 : 첫번째 모듈에서 읽어오려는 데이터의 길이 상위 바이트Parameter 6: Length of the data to be read from the first module High byte

이러한 형태로 지정한다면, 슬레이브 기기의 ID 및 컨트롤 테이블의 번지, 데이터의 길이 등이 1바이트로 되어 있어 자연적으로 발생하는 제약인 최소 0 에서 최대 255까지 밖에 지정 못하는 제약사항을 확장 시킬 수 있다. 전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다. If it is specified in this form, the ID of the slave device, the address of the control table, and the length of the data are set to 1 byte, so that constraints that can be assigned only from 0 to 255, which is a naturally occurring restriction, can be extended. It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be construed as being included within the scope of the present invention.

1 : 통신 시스템
10 : 마스터 기기
20 : 슬레이브 기기
30 : 통신버스
1: communication system
10: Master device
20: Slave device
30: Communication bus

Claims (8)

마스터 기기와, 멀티드롭 방식으로 연결되며 서로 다른 프로토콜을 이용하는 복수의 슬레이브 기기를 갖는 통신 시스템의 패킷 충돌 방지 방법에 있어서,
상기 마스터 기기는 특정 슬레이브 기기로 격리패킷을 송신하는 단계와,
상기 특정 슬레이브 기기는 상기 마스터 기기로부터 상기 격리패킷을 수신한 후, 상기 마스터 기기로부터 명령패킷이 송신되면, 상기 명령패킷을 수신하지 않거나, 수신 후 폐기하는 단계를 포함하는 것을 특징으로 하는, 다중 프로토콜을 지원하는 통신시스템에서 패킷 충돌 방지 방법.
A packet collision avoiding method in a communication system having a master device and a plurality of slave devices connected in a multi-drop manner and using different protocols,
Wherein the master device transmits a quarantine packet to a specific slave device,
Wherein the specific slave device does not receive the command packet when the command packet is transmitted from the master device after receiving the quarantine packet from the master device, A method for preventing packet collisions in a communication system supporting a packet collision.
제1항에 있어서,
상기 격리패킷을 송신하는 단계는,
상기 마스터 기기가 특정 프로토콜을 사용하는 슬레이브 기기에 격리패킷을 송신하는 단계인 것을 특징으로 하는, 다중 프로토콜을 지원하는 통신시스템에서 패킷 충돌 방지 방법.
The method according to claim 1,
Wherein the step of transmitting the isolation packet comprises:
Wherein the master device transmits a quarantine packet to a slave device using a specific protocol.
제1항에 있어서,
상기 명령패킷을 수신하지 않거나 수신 후 폐기하는 단계는,
상기 마스터 기기로부터 송신되는 상기 명령패킷을 기설정된 시간 동안 수신하지 않거나 수신 후 폐기하는 단계인 것을 특징으로 하는, 다중 프로토콜을 지원하는 통신시스템에서 패킷 충돌 방지 방법.
The method according to claim 1,
Wherein the step of not receiving or discarding the command packet comprises:
Wherein the step of not receiving or discarding the command packet transmitted from the master device for a predetermined period of time is to discard the command packet.
제1항에 있어서,
상기 명령패킷을 수신하지 않거나 수신 후 폐기하는 단계는,
상기 마스터 기기로부터 송신되는 기설정된 바이트 수 이하의 명령패킷을 수신하지 않거나 수신 후 폐기하는 단계인 것을 특징으로 하는, 다중 프로토콜을 지원하는 통신시스템에서 패킷 충돌 방지 방법.
The method according to claim 1,
Wherein the step of not receiving or discarding the command packet comprises:
Wherein the step of not receiving or discarding a command packet of a number of bytes or less that is transmitted from the master device is less than a predetermined number of bytes.
제1항에 있어서,
상기 마스터 기기는, 상기 특정 슬레이브 기기로 격리해제패킷을 송신하는 단계와,
상기 특정 슬레이브 기기는, 상기 마스터 기기로부터 상기 격리해제패킷을 수신한 후, 상기 마스터 기기로부터 명령패킷을 수신하면, 상기 명령패킷을 실행하는 단계를 더 포함하는 것을 특징으로 하는, 다중 프로토콜을 지원하는 통신시스템에서 패킷 충돌 방지 방법.
The method according to claim 1,
Wherein the master device transmits an isolation release packet to the specific slave device,
Further comprising the step of executing the command packet when receiving the command packet from the master device after receiving the isolation cancellation packet from the master device Method for preventing packet collision in communication system.
제1항에 있어서,
상기 격리패킷은, 프로토콜마다 상이하게 설계되는 것을 특징으로 하는, 다중 프로토콜을 지원하는 통신시스템에서 패킷 충돌 방지 방법.
The method according to claim 1,
Wherein the isolation packet is designed to be different for each protocol.
제1항에 있어서,
상기 명령패킷은, 상기 각 슬레이브 기기의 컨트롤 테이블을 통해 제어할 값의 어드레스를 체크한 다음 ID와 어드레스를 참조하여 생성되는 것을 특징으로 하는, 다중 프로토콜을 지원하는 통신시스템에서 패킷 충돌 방지 방법.
The method according to claim 1,
Wherein the command packet is generated by checking an address of a value to be controlled through a control table of each of the slave devices and then referring to an ID and an address.
제1항에 있어서,
상기 각 슬레이브 기기는, 상기 마스터 기기에 의해 구동되는 엑츄에이터인 것을 특징으로 하는, 다중 프로토콜을 지원하는 통신시스템에서 패킷 충돌 방지 방법.
The method according to claim 1,
Wherein each of the slave devices is an actuator driven by the master device.
KR1020160158432A 2016-11-25 2016-11-25 Method for preventing collision packet in communication system supporting multi-protocol KR101877332B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160158432A KR101877332B1 (en) 2016-11-25 2016-11-25 Method for preventing collision packet in communication system supporting multi-protocol
PCT/KR2017/003196 WO2018097417A2 (en) 2016-11-25 2017-03-24 Method for preventing packet collision in communications system supporting multiple protocols

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160158432A KR101877332B1 (en) 2016-11-25 2016-11-25 Method for preventing collision packet in communication system supporting multi-protocol

Publications (2)

Publication Number Publication Date
KR20180059179A KR20180059179A (en) 2018-06-04
KR101877332B1 true KR101877332B1 (en) 2018-07-11

Family

ID=62196197

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160158432A KR101877332B1 (en) 2016-11-25 2016-11-25 Method for preventing collision packet in communication system supporting multi-protocol

Country Status (2)

Country Link
KR (1) KR101877332B1 (en)
WO (1) WO2018097417A2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990080409A (en) * 1998-04-16 1999-11-05 김영환 Transmission Arbitration Device in Multidrop Communication System

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101789757B1 (en) * 2010-12-28 2017-10-26 삼성전자주식회사 Walking robot and method of controlling the same
KR101856452B1 (en) * 2014-03-19 2018-05-10 (주)로보티즈 Robot for controlling smart device and system for controlling smart device through robot
US9734121B2 (en) * 2014-04-28 2017-08-15 Qualcomm Incorporated Sensors global bus
US9050723B1 (en) * 2014-07-11 2015-06-09 inVia Robotics, LLC Human and robotic distributed operating system (HaRD-OS)
WO2016167378A1 (en) * 2015-04-13 2016-10-20 주식회사 로보티즈 Device for supporting connection between host and client devices concerning plurality of kinds of physical layers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990080409A (en) * 1998-04-16 1999-11-05 김영환 Transmission Arbitration Device in Multidrop Communication System

Also Published As

Publication number Publication date
WO2018097417A2 (en) 2018-05-31
KR20180059179A (en) 2018-06-04
WO2018097417A3 (en) 2018-08-09

Similar Documents

Publication Publication Date Title
US9778677B2 (en) Bit-timing symmetrization
US8595400B2 (en) Programmable controller using master-slave communication
US20070248118A1 (en) Adaptive Speed Control for MAC-PHY Interfaces
KR102119418B1 (en) Communication system, communication device and communication method
US20200162659A1 (en) Data conversion and photographing control method and system, gimbal assembly and unmanned aerial vehicle system
JP5989865B2 (en) Edge-based communication using multiple slave devices
CN104144094B (en) Digital bus system slave node and its operating method
JP6211218B1 (en) Transfer device and frame transfer method
US20180159699A1 (en) Can controller and data transmission method using the same
US10044924B2 (en) Accessory apparatus, image-capturing apparatus and control method therefor
KR101300174B1 (en) Method for controling network structure-based actuator module
KR101877332B1 (en) Method for preventing collision packet in communication system supporting multi-protocol
KR100846177B1 (en) Network structure based actuator module
US20150381538A1 (en) Network, head subscriber and data transmission method
US7249204B2 (en) Data transfer control device electronic equipment and method data transfer control
US9344375B2 (en) Method for transmitting data packets between two communication modules and communication module for transmitting data packets, as well as communication module for receiving data packets
US8767077B2 (en) Camera apparatus functioning in response to received software trigger packets
KR20180059182A (en) Method for synchronization of slave device
JP6496747B2 (en) TX / RX mode control in a serial half-duplex transceiver away from the communicating host
US20110231726A1 (en) Repeater and method
JP2010118036A (en) Composite servo control system
US20130223455A1 (en) Electronic device, communication control method, and recording medium
US20200351143A1 (en) Data processing method and device, controller, and movable device
US20100205334A1 (en) Device wire adapter and communication control method to perform data transfer between wireless USB host and wired USB device
US9671773B2 (en) Numerical control system

Legal Events

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