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 PDFInfo
- 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
Links
- 238000004891 communication Methods 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000002955 isolation Methods 0.000 claims abstract description 30
- 230000006870 function Effects 0.000 description 13
- 230000009471 action Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000013021 overheating Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 208000032368 Device malfunction Diseases 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40071—Packet processing; Packet format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol 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
본 발명은 다중 프로토콜을 지원하는 통신시스템에서의 패킷 충돌 방지 방법에 관한 것으로, 더욱 상세하게는 특정 프로토콜을 사용하는 슬레이브 기기는 마스터 기기로부터 전송되는 명령패킷을 실행하지 않도록 제어되는 패킷 간의 충돌을 방지하는 방법에 관한 것이다.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
본 발명의 일 실시예에 따른 통신 시스템(1)은 하나의 마스터 기기(10)와, N개의 슬레이브 기기(20)와, 마스터 기기(10)와 슬레이브 기기(20)를 멀티 드롭 방식으로 연결하며 패킷을 송수신하는 통신버스(30)를 포함한다. 이때, 마스터 기기(10)와 슬레이브 기기(20)는 통신버스(30)를 통해 패킷을 주고 받으면서 통신한다. 패킷의 종류로는 마스터 기기(10)에서 슬레이브 기기(20)로 전송되어 슬레이브 기기(20)를 제어하는 명령패킷과, 슬레이브 기기(20)에서 마스터 기기(10)로 송신되는 상태패킷이 있다. 이때, 상태패킷은 명령패킷에 대응하여 생성되는 패킷으로, 슬레이브 기기(20)가 마스터 기기(10)로부터 수신한 명령패킷을 실행하는 경우에만, 생성될 수 있다.The
슬레이브 기기(20)는 구분을 위해 각각 고유 ID를 가지고, 마스터 기기(10)는 고유 ID를 기반으로 명령패킷을 생성하여 전송한다. 이에 따라, 고유 ID를 갖는 슬레이브 기기(20)만이 명령패킷을 수행하고 상태패킷을 송신한다.The
도 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
이때, 사용자는 각 슬레이브 기기(20)를 제어하기 위한 신호(이하, 제어신호)를 사용자 단말을 통해 입력하게 되면 사용자 단말로부터의 제어신호는 예컨대 RS232 방식의 통신버스를 통해 마스터 기기(10)로 전송되고, 마스터 기기(10)는 제어신호를 슬레이브 기기(20)의 제어에 적합한 RS485 방식의 명령패킷으로 변환하여 멀티 드롭 방식으로 각각 또는 전체 슬레이브 기기(20)에 전송한다.At this time, if the user inputs a signal (hereinafter, control signal) for controlling each
도 3은 본 발명의 일 실시예에 따른 통신 시스템(1)의 패킷 충돌 방지 방법을 도시하는 순서도로, 슬레이브 기기(20) 위주로 각 단계를 설명한다.FIG. 3 is a flowchart showing a packet collision avoiding method of the
S100단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 전송되는 격리패킷의 수신을 대기한다. 격리패킷은 특정 프로토콜을 이용하는 적어도 하나의 슬레이브 기기(20) 또는 특정 슬레이브 기기(20)를 격리시키기 위해 마스터 기기(10)가 생성하는 패킷으로, 마스터 기기(10)에 의해 생성된 후 슬레이브 기기(20)로 전송될 수 있다. 이때, 격리패킷은 프로토콜에 따라 상이하게 설계될 수 있다. S100단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 격리패킷의 수신을 대기하는 상태로 통신버스를 점유할 수 없으며, 마스터 기기(10)에 의해 전송되는 패킷만 수신할 수 있다.In step S100, the
S110단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 통신버스(30)를 통해 격리패킷이 수신되는지 여부를 판단한다. 이때, 격리패킷은 특정 프로토콜을 이용하는 적어도 하나의 슬레이브 기기(20) 또는 특정 슬레이브 기기(20)를 격리시키기 위해 마스터 기기(10)가 생성하는 패킷으로, 마스터 기기(10)에 의해 생성된 후 슬레이브 기기(20)로 전송될 수 있다. 격리패킷을 수신한 슬레이브 기기(20)는 격리패킷 이후에 마스터 기기(10)로부터 송신되는 명령패킷을 수신하지 않거나 수신 후 폐기한다. 이때, 격리패킷은 프로토콜에 따라 상이하게 설계될 수 있다. In step S110, the
슬레이브 기기(20)는 마스터 기기(10)로부터 격리패킷이 수신된 것으로 판단하면, S120단계에서 마스터 기기(10)로부터 명령패킷이 송신되는지 판단한다. If the
명령패킷은 데이터의 묶음으로, 전송할 데이터를 일정한 크기로 나누어 붙이고, 명령패킷이 전송될 슬레이브 기기(20)의 ID를 나타내는 헤더를 붙인 것으로 마스터 기기(10)에 의해 생성된다. 명령패킷의 구성에 대해서는 이하에서 자세히 설명하도록 한다. 이때, 슬레이브 기기(20)는 마스터 기기(10)로부터 명령패킷을 수신하지 않으면, 통신버스(30)를 점유할 수 없으며 상태패킷을 송신할 수 없다. 즉, 명령패킷을 수신한 슬레이브 기기(20)는 한시적으로 통신버스(30)를 점유하여 상태패킷을 송신할 수 있다. 이때, 상태패킷은 명령패킷에 대응되는 패킷으로 슬레이브 기기(20)에 의해 생성되며, 명령패킷을 정상적으로 수행했다는 정보가 담겨있을 수 있다.The command packet is a bundle of data. The command packet is generated by the
슬레이브 기기(20)는 S120단계에서 마스터 기기(10)로부터 명령패킷이 송신된 것으로 판단하면, S130단계에서 송신된 명령패킷을 수신하지 않거나, 수신한 후 폐기한다. If the
본 발명의 실시예에 따라, 슬레이브 기기(20)는 S140단계에서 마스터 기기(10)로부터 통신버스를 통해 격리해제패킷이 수신되는지 여부를 판단하고, 격리해제패킷이 수신된 것으로 판단하면, S150단계에서 마스터 기기(10)로부터 명령패킷이 수신되었는지 판단한다.According to the embodiment of the present invention, the
슬레이브 기기(20)는 S150단계에서 명령패킷이 수신된 것으로 판단하면, S160단계에서 명령패킷을 실행한다. 즉, 마스터 기기(10)로부터 격리패킷을 수신한 슬레이브 기기(20)는 격리해제패킷이 수신할 때까지, 마스터 기기(10)로부터 전송되는 모든 명령패킷을 수신하지 않거나 수신 후 폐기할 수 있다.If the
도 3에는 도시되어 있지 않지만, 명령패킷을 수신한 슬레이브 기기(20)는 한시적으로 통신버스(30)를 점유하여 상태패킷을 마스터 기기(10)로 송신할 수 있다.Although not shown in FIG. 3, the
슬레이브 기기(20)는 S110단계에서 통신버스(30)를 통해 마스터 기기(10)로부터 격리패킷이 수신되지 않은 것으로 판단하면, S150단계에서 마스터 기기(10)로부터 명령패킷이 수신되는지 여부를 판단한다.If the
슬레이브 기기(20)는S120단계에서 마스터 기기(10)로부터 명령패킷이 송신되지 않은 것으로 판단하면, S140단계에서 마스터 기기(10)로부터 격리해제패킷이 수신되는지 판단한다.If it is determined in step S120 that the command packet has not been transmitted from the
슬레이브 기기(20)는 S140단계에서 마스터 기기(10)로부터 격리해제패킷이 수신되지 않은 것으로 판단하면, S120단계로 돌아가 마스터 기기(10)로부터 명령패킷이 송신되는지 여부를 판단한다.If the
도 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
S200단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 전송되는 격리패킷의 수신을 대기한다. 격리패킷은 특정 프로토콜을 이용하는 적어도 하나의 슬레이브 기기(20) 또는 특정 슬레이브 기기(20)를 격리시키기 위해 마스터 기기(10)가 생성하는 패킷으로, 마스터 기기(10)에 의해 생성된 후 슬레이브 기기(20)로 전송될 수 있다. 이때, 격리패킷은 프로토콜에 따라 상이하게 설계될 수 있다. S200단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 격리패킷의 수신을 대기하는 상태로 통신버스를 점유 할 수 없으며, 마스터 기기(10)에 의해 전송되는 패킷만 수신할 수 있다.In step S200, the
S210단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 통신버스(30)를 통해 격리패킷이 수신되는지 여부를 판단한다. 이때, 격리패킷은 특정 프로토콜을 이용하는 적어도 하나의 슬레이브 기기(20) 또는 특정 슬레이브 기기(20)를 격리시키기 위해 마스터 기기(10)가 생성하는 패킷으로, 마스터 기기(10)에 의해 생성된 후 슬레이브 기기(20)로 전송될 수 있다. 격리패킷을 수신한 슬레이브 기기(20)는 마스터 기기(10)로부터 전송되는 명령패킷이 기설정된 조건을 만족하지 않을 경우, 명령패킷을 수신하지 않거나 수신 후 폐기한다. 이때, 격리패킷은 프로토콜에 따라 상이하게 설계될 수 있다.In step S210, the
본 발명의 다른 실시예에서 기설정된 조건은 명령패킷의 바이트 수로, 슬레이브 기기(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
슬레이브 기기(20)는 S220단계에서 명령패킷이 송신된 것으로 판단하면, S230단계에서 송신된 명령패킷의 바이트 수가 기설정된 바이트 수를 초과하는지 판단한다. 명령패킷의 바이트 수가 기설정된 바이트 수를 초과하는 것으로 판단하면, 슬레이브 기기(20)는 S240단계에서 명령패킷을 실행하고, 명령패킷이 기설정된 바이트 수 이하인 것으로 판단하면, S260단계에서 명령패킷을 수신하지 않거나 수신 후 폐기한다.If it is determined in step S220 that the command packet has been transmitted, the
도 4에는 도시되어 있지 않지만, 명령패킷을 수신한 슬레이브 기기(20)는 한시적으로 통신버스(30)를 점유하여 상태패킷을 마스터 기기(10)로 송신할 수 있다.Although not shown in FIG. 4, the
본 발명의 실시예에 따라, 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
도 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
S300단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 전송되는 격리패킷의 수신을 대기한다. 격리패킷은 특정 프로토콜을 이용하는 적어도 하나의 슬레이브 기기(20) 또는 특정 슬레이브 기기(20)를 격리시키기 위해 마스터 기기(10)가 생성하는 패킷으로, 마스터 기기(10)에 의해 생성된 후 슬레이브 기기(20)로 전송될 수 있다. 이때, 격리패킷은 프로토콜에 따라 상이하게 설계될 수 있다. S300단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 격리패킷의 수신을 대기하는 상태로 통신버스를 점유할 수 없으며, 마스터 기기(10)에 의해 전송되는 패킷만 수신할 수 있다.In step S300, the
S310단계에서 슬레이브 기기(20)는 마스터 기기(10)로부터 통신버스(30)를 통해 격리패킷이 수신되는지 여부를 판단한다. 격리패킷을 수신한 슬레이브 기기(20)는 마스터 기기(10)로부터 송신되는 명령패킷이 기설정된 조건을 만족하지 않을 경우, 명령패킷을 수신하지 않거나 수신 후 폐기할 수 있다. In step S310, the
본 발명의 또 다른 실시예에서 기설정된 조건은 마스터 기기(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
이때, 상태패킷은 명령패킷에 대응되는 패킷으로 슬레이브 기기(20)에 의해 생성되며, 명령패킷을 정상적으로 수행했다는 정보가 담겨있을 수 있다.At this time, the status packet may be generated by the
슬레이브 기기(20)는 S320단계에서 명령패킷이 마스터 기기(10)로부터 송신된 것으로 판단하면, S330단계에서 마스터 기기(10)로부터 격리패킷을 수신한 후 명령패킷이 송신되는데 걸린 시간이 기설정된 시간 이상인지 판단한다. If it is determined in step S320 that the command packet has been transmitted from the
격리패킷을 수신한 후, 명령패킷이 송신되는데 걸린 시간이 기설정된 시간 이상인 경우, 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
도 5에는 도시되어 있지 않지만, 명령패킷을 수신한 슬레이브 기기(20)는 한시적으로 통신버스(30)를 점유하여 상태패킷을 마스터 기기(10)로 송신할 수 있다.Although not shown in FIG. 5, the
본 발명의 실시예에 따라 S340단계 또는 S360단계 이후, S350단계를 더 포함하고, 슬레이브 기기(20)가 기설정된 시간안에 마스터 기기(10)로부터 명령패킷이 송신되지 않는지를 판단하는 S350단계를 더 포함할 수 있다.In step S350, the
즉, 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
본 발명의 실시예에 따른 통신 시스템의 패킷 충돌 방지 방법을 이용하면, 슬레이브 기기(20)가 마스터 기기(10)로부터 전송되는 명령패킷을 수신하지 않거나 수신 후 폐기하도록 하는 격리패킷을 이용하여, 다중 프로토콜 환경에서 특정 프로토콜을 갖는 슬레이브 기기(20)들이 명령패킷을 실행하지 않도록 설정할 수 있기 때문에, 슬레이브 기기(20)에서 잘못된 패킷이 정상패킷으로 인식될 수 있는 가능성을 최소화 할 수 있다. 즉, 사용자는 복수개의 프로토콜을 갖는 통신 시스템(1)을 보다 안정하게 사용할 수 있다.Using the packet collision avoidance method of the communication system according to the embodiment of the present invention, the
도 6은 본 발명의 일 실시예에 따른 통신 시스템(1)의 명령패킷 생성시 참조되는 컨트롤 테이블을 도시하고 있다.FIG. 6 shows a control table referred to when generating the command packet of the
컨트롤 테이블은 마스터 기기(10)가 슬레이브 기기(20)를 제어하기 위한 명령패킷 생성 시 명령패킷에 포함되는 데이터를 참조하기 위한 것으로, 슬레이브 기기의 상태와 구동에 관한 데이터로 구성되어 있다. 도 6 내지 도 9는 슬레이브 기기(20)가 마스터 기기(10)에 의해 구동되는 슬레이브 기기(엑츄에이터)인 경우를 예로 설명한다.The control table is for referring to data included in an instruction packet when the
컨트롤 테이블에 값들을 기록(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%.
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.
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.
각 비트의 기능은 '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.
각 비트의 기능은 '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,
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.
명령패킷을 이루는 각 바이트들의 의미는 다음과 같다.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 외에 추가 정보가 더 필요할 경우 사용된다.
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 +
본 발명에서 이용되는 상태패킷(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.
상태패킷을 이루는 각 바이트의 의미는 다음과 같다.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.
ErrorInstruction
Error
PARAMETER 0...N : 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 +
본 발명의 슬레이브 기기에서 사용되는 명령 세트에는 표 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.
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.
위와 같은 경우, 브로드캐스팅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
이에 대해 리턴되는 상태패킷은 다음과 같다.The status packet returned for this is as follows.
판독된 데이터 값은 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
이에 대응하여 리턴되는 상태패킷은 다음과 같다.The corresponding status packet returned is as follows.
브로드캐스팅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.
위와 같은 RESET 명령에 대해 리턴되는 상태패킷은 다음과 같다.The status packet returned for the RESET command is as follows.
여기서, 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
이 때, 브로드캐스팅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
리턴되는 상태패킷은 아래와 같이 된다.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
각각 모듈 ID 1 과 ID 2 에서 보낸 상태패킷이 연달아 들어오는 형식이 된다.The status packets sent from
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.
상기 격리패킷을 송신하는 단계는,
상기 마스터 기기가 특정 프로토콜을 사용하는 슬레이브 기기에 격리패킷을 송신하는 단계인 것을 특징으로 하는, 다중 프로토콜을 지원하는 통신시스템에서 패킷 충돌 방지 방법.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.
상기 명령패킷을 수신하지 않거나 수신 후 폐기하는 단계는,
상기 마스터 기기로부터 송신되는 상기 명령패킷을 기설정된 시간 동안 수신하지 않거나 수신 후 폐기하는 단계인 것을 특징으로 하는, 다중 프로토콜을 지원하는 통신시스템에서 패킷 충돌 방지 방법.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.
상기 명령패킷을 수신하지 않거나 수신 후 폐기하는 단계는,
상기 마스터 기기로부터 송신되는 기설정된 바이트 수 이하의 명령패킷을 수신하지 않거나 수신 후 폐기하는 단계인 것을 특징으로 하는, 다중 프로토콜을 지원하는 통신시스템에서 패킷 충돌 방지 방법.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.
상기 마스터 기기는, 상기 특정 슬레이브 기기로 격리해제패킷을 송신하는 단계와,
상기 특정 슬레이브 기기는, 상기 마스터 기기로부터 상기 격리해제패킷을 수신한 후, 상기 마스터 기기로부터 명령패킷을 수신하면, 상기 명령패킷을 실행하는 단계를 더 포함하는 것을 특징으로 하는, 다중 프로토콜을 지원하는 통신시스템에서 패킷 충돌 방지 방법.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.
상기 격리패킷은, 프로토콜마다 상이하게 설계되는 것을 특징으로 하는, 다중 프로토콜을 지원하는 통신시스템에서 패킷 충돌 방지 방법.The method according to claim 1,
Wherein the isolation packet is designed to be different for each protocol.
상기 명령패킷은, 상기 각 슬레이브 기기의 컨트롤 테이블을 통해 제어할 값의 어드레스를 체크한 다음 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.
상기 각 슬레이브 기기는, 상기 마스터 기기에 의해 구동되는 엑츄에이터인 것을 특징으로 하는, 다중 프로토콜을 지원하는 통신시스템에서 패킷 충돌 방지 방법.
The method according to claim 1,
Wherein each of the slave devices is an actuator driven by the master device.
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)
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)
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 |
-
2016
- 2016-11-25 KR KR1020160158432A patent/KR101877332B1/en active IP Right Grant
-
2017
- 2017-03-24 WO PCT/KR2017/003196 patent/WO2018097417A2/en active Application Filing
Patent Citations (1)
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 |