KR20170119098A - Apparatus and method for bluetooth communication - Google Patents
Apparatus and method for bluetooth communication Download PDFInfo
- Publication number
- KR20170119098A KR20170119098A KR1020160046825A KR20160046825A KR20170119098A KR 20170119098 A KR20170119098 A KR 20170119098A KR 1020160046825 A KR1020160046825 A KR 1020160046825A KR 20160046825 A KR20160046825 A KR 20160046825A KR 20170119098 A KR20170119098 A KR 20170119098A
- Authority
- KR
- South Korea
- Prior art keywords
- bluetooth device
- gateway
- coap
- layer
- message
- Prior art date
Links
Images
Classifications
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H04L67/28—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H04W4/008—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
- H04W80/08—Upper layer protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/16—Gateway arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
블루투스 통신을 위한 방법 및 장치가 제공된다. 블루투스 장치는 게이트웨이에 의해 제공되는 게이트웨이 기능을 통해 외부의 다른 장치와 통신한다. 블루투스 장치의 프로토콜 스택에 있어서, CoAP 계층은 L2CAP 계층의 바로 상위의 계층이다. 또한, 게이트웨이의 블루투스 통신을 위한 프로토콜 스택에 있어서, CoAP 계층은 L2CAP 계층의 바로 상위의 계층이다. 프로토콜 스택 중 일부가 생략됨에 따라, 블루투스 장치 및 게이트웨이는 고효율의 통신을 제공한다.A method and apparatus for Bluetooth communication are provided. The Bluetooth device communicates with other external devices through a gateway function provided by the gateway. In the protocol stack of a Bluetooth device, the CoAP layer is directly above the L2CAP layer. Also, in the protocol stack for the Bluetooth communication of the gateway, the CoAP layer is directly above the L2CAP layer. As part of the protocol stack is omitted, Bluetooth devices and gateways provide highly efficient communications.
Description
아래의 실시예들은 블루투스 통신을 하기 위한 방법 및 장치에 관한 것으로 보다 상세히는 사물인터넷을 위해 블루투스 통신을 위한 간략한 프로토콜 스택을 갖는 방법 및 장치가 제공된다.The following embodiments relate to a method and apparatus for Bluetooth communication, and more particularly to a method and apparatus having a simplified protocol stack for Bluetooth communication for the Internet of Things.
블루투스(Bluetooth) 기술은 근거리 무선 통신 기술로서, 10m 이내의 주변의 기기들과의 통신을 제공하는 기술이다. 최근에는, 다양한 센서를 지원할 수 있도록 저전력 규격인 블루투스 로우 에너지(Bluetooth Low Enengy; BLE) 규격이 개발되었다.Bluetooth technology is a short-range wireless communication technology that provides communication with peripheral devices within 10 meters. In recent years, a Bluetooth low energy (BLE) standard has been developed to support various sensors.
블루투스 표준으로서, 블루투스 기기(device) 및 서비스의 종류 별로 프로파일 규격을 제정되고 있다. 그러나, 프로파일 규격의 개발은 블루투스 기기가 새롭게 개발되는 속도를 따라가지 못하고 있다. 따라서, 블루투스 기기의 제조사가 상위 계층(layer)의 통신 규격 또는 어플리케이션 프로그래밍 인터페이스(Application Programming Interface; API)를 제공하고 있다.As a Bluetooth standard, a profile specification is established for each type of Bluetooth device and service. However, the development of profile specifications is not keeping pace with the speed at which Bluetooth devices are newly developed. Accordingly, the manufacturer of the Bluetooth device provides an upper layer communication standard or an application programming interface (API).
이러한 상황은 서로 다른 제품들 간의 연동 또는 서로 다른 제조사의 제품들 간의 연동을 어렵게 만든다. 예를 들면, 스마트폰(smartphone)과 같은 블루투스 기기는 다양한 다른 블루투스 기기들을 검색하고, 검색된 다른 블루투스 기기들과 연동(interoperate)되어야 한다. 이러한 연동이 블루투스 기기의 제조사에 의해 작성된 프로그램(예를 들면, 앱(App))을 통해서만 이루어진다면, 호환성 및 연동성(interoperability)에 있어서 문제가 발생한다.This situation makes interworking between different products or interworking between products of different manufacturers difficult. For example, a Bluetooth device, such as a smartphone, must search for a variety of other Bluetooth devices and interoperate with other Bluetooth devices searched. If this interlocking is performed only through a program (e.g., an App) created by the manufacturer of the Bluetooth device, there is a problem in compatibility and interoperability.
한편, 인터넷을 통해 연결된 다양한 사물들이 인터넷에 연결되어 서로 연동되는 사물인터넷(Internet of Things; IoT) 시대로 진입함에 따라, 블루투스 기기들의 인터넷으로의 연동을 가능하게 하는 방법에 대한 기술 표준들이 제정되었다.Meanwhile, as the various objects connected to the Internet are connected to the Internet and entered into the Internet of Things (IoT) era, a technical standard has been established for a method of enabling the Bluetooth devices to interoperate with the Internet .
이러한 기술 표준들로서, 1) 블루투스 기기가 알이에스티(Representational State Transfer; REST) API 를 지원하게 하는 방법, 2) 에이치티티피(HyperText Transfer Protocol; HTTP) 프록시(proxy)를 통해 블루투스 기기가 인터넷에 액세스 하는 방법 및 3) 6엘오더블유피에이엔(IPv6 over Low power Wireless Personal Area Networks; 6LoWPAN), 아이피브이6(Internet Protocol version 6; IPv6) 및 유디피(User Datagram Protocol; UDP)의 계층들을 엘2씨에이피(Link Layer Control and Adaptation Protocol; L2CAP)의 상위의 계층으로서 구현하는 인터넷 프로토콜 지원 프로파일(Internet Protocol Support Profile Specification; IPSP)이 있다. 아래에서는 3가지의 방법들에 대해 간략하게 살펴본다.These technical standards include: 1) how a Bluetooth device supports a Representational State Transfer (REST) API; 2) how a Bluetooth device is connected to the Internet via a HyperText Transfer Protocol (HTTP) proxy; 3) IPv6 over low power wireless personal area networks (6LoWPAN), Internet Protocol version 6 (IPv6) and User Datagram Protocol (UDP) There is an Internet Protocol Support Profile Specification (IPSP) which is implemented as an upper layer of a L2CAP (Link Layer Control and Adaptation Protocol). Below we briefly discuss the three methods.
1) 블루투스 기기가 REST API를 지원하는 방법1) How does a Bluetooth device support the REST API?
블루투스 인터넷 게이트웨이(gateway)는 인터넷을 통해 클라이언트로부터 요청을 수신한다. 블루투스 인터넷 게이트웨이는 요청을 블루투스 기기의 에이티티(Attribute Protocol; ATT) 및/또는 지에이티티(Generic Attribute Profile; GATT)로 변환한다. 상기의 변환을 통해 블루투스 기기 및 클라이언트 간의 통신이 이루어진다.A Bluetooth Internet gateway receives a request from a client over the Internet. The Bluetooth Internet gateway converts the request to an attribute protocol (ATT) and / or a generic attribute profile (GATT) of the Bluetooth device. Communication between the Bluetooth device and the client is performed through the above conversion.
이러한 방법은 기존의 블루투스 스택을 그대로 사용한다. 기존의 블루투스 스택을 그대로 사용함에 따라, 이러한 방법은 전술된 호환성 및 연동성의 문제를 그대로 갖는다. 따라서, 블루투스 인터넷 게이트웨이는 다양한 블루투스 기기들의 내부의 속성을 인식할 수 있어야 하며, 서로 다른 내부의 속성을 갖는 다양한 블루투스 기기들과 연동할 수 있어야 한다. 또한, 외부의 서버 또한 블루투스 기기의 내부의 속성을 미리 알고 있어야 한다.This method uses the existing Bluetooth stack. As the existing Bluetooth stack is used intact, this method has the problems of compatibility and interoperability described above. Accordingly, the Bluetooth Internet gateway should be able to recognize the internal properties of various Bluetooth devices and be able to interoperate with various Bluetooth devices having different internal attributes. In addition, the external server must also know the internal properties of the Bluetooth device in advance.
이러한 방법은 응용(application) 계층의 표준이 아니기 때문에, 이러한 방법이 사용될 경우, 수집된 데이터의 인식이 어렵다.Since this method is not a standard for the application layer, it is difficult to recognize the collected data when this method is used.
2) HTTP 프록시를 통해 블루투스 기기가 인터넷에 액세스 하는 방법2) How a Bluetooth device accesses the Internet through an HTTP proxy
이러한 방법에서, 블루투스 HTTP 프록시 서비스(HTTP Proxy Service; HPS) 클라이언트 및 블루투스 HPS 서버 간의 블루투스 구간에서는 기존의 블루투스 스택이 그대로 사용된다. 블루투스 HPS 서버는 게이트웨이의 기능을 수행한다. 블루투스 HPS 서버는 자체의 매핑을 통해 블루투스의 프로토콜을 HTTP와 같은 인터넷 프로토콜로 변환한다. 이러한 변환에 의해 블루투스 HPS 클라이언트 및 원격의 HTTP 서버 간의 통신이 이루어진다.In this way, the Bluetooth stack between the Bluetooth Proxy Service (HPS) client and the Bluetooth HPS server is used as it is. The Bluetooth HPS server functions as a gateway. The Bluetooth HPS server translates the Bluetooth protocol into an internet protocol such as HTTP through its own mapping. This conversion enables communication between the Bluetooth HPS client and the remote HTTP server.
이러한 방식에서, 게이트웨이의 기능을 수행하는 블루투스 HPS 서버가 블루투스 기기의 속성을 모두 알고 있어야 한다. 따라서, 이러한 방식이 사용될 경우, 통신에 있어서 연동성 및 호환성이 떨어질 수 있다.In this way, the Bluetooth HPS server performing the gateway function must know all the properties of the Bluetooth device. Therefore, when such a scheme is used, interoperability and compatibility in communication may be deteriorated.
3) IPSP를 사용하는 방법.3) How to use IPSP.
IPSP를 사용하는 방법은, 블루투스 ATT 및 GATT 를 사용하지 않고 L2CAP 상에 6LowPAN, IPv6, UDP, TCP 및 응용 계층 스택을 구현한다. 이러한 구현을 통해 통신이 이루어진다. 이러한 방법은, 인터넷 프로토콜을 그대로 블루투스 노드에 탑재하기 때문에, 높은 호환성 및 연동성을 확보할 수 있다.The method of using IPSP implements 6LowPAN, IPv6, UDP, TCP and application layer stack on L2CAP without using Bluetooth ATT and GATT. Communication is achieved through this implementation. In this method, since the Internet protocol is directly mounted on the Bluetooth node, high compatibility and interoperability can be ensured.
그러나, 이러한 방법에 따르면, TCP, IP 및 6LoWPAN의 프로토콜 스택이 그대로 블루투스 노드에서 구현된다. 따라서, 이러한 방법이 사용되면, 메모리 문제, 성능 문제 및 블루투스 네트워크 효율성 문제가 발생한다.However, according to this method, the protocol stack of TCP, IP and 6LoWPAN is implemented in the Bluetooth node as it is. Therefore, when this method is used, memory problems, performance problems, and Bluetooth network efficiency problems arise.
블루투스와 관련하여, 한국공개특허 제2014-0027503호 및 한국등록특허 제10-1397744호 등이 제시된 바 있다.Korean Patent Publication No. 2014-0027503 and Korean Patent No. 10-1397744 have been proposed in connection with Bluetooth.
일 실시예는 국제 표준 프로토콜을 블루투스에 적용함으로써 다양한 현재의 기기 및 미래의 기기에 적용될 수 있는 통신 방법을 제공할 수 있다.One embodiment can provide a communication method that can be applied to various current devices and future devices by applying an international standard protocol to Bluetooth.
일 실시예는 프로토콜 스택 중 일부를 생략함으로써 고효율의 통신을 제공하는 장치 및 방법을 제공할 수 있다.One embodiment may provide an apparatus and method for providing highly efficient communication by omitting some of the protocol stacks.
일 측면에 있어서, 적어도 하나의 프로그램을 수행하는 처리부; 및 블루투스 통신을 수행하는 통신부를 포함하고, 상기 적어도 하나의 프로그램은 CoAP 계층의 코드 및 L2CAP 계층의 코드를 포함하고, 상기 CoAP 계층은 상기 L2CAP 계층의 바로 상위의 계층인 블루투스 장치가 제공된다.In one aspect, there is provided an apparatus comprising: a processing unit for performing at least one program; And a communication unit for performing Bluetooth communication, wherein the at least one program includes a code of a CoAP layer and a code of an L2CAP layer, and the CoAP layer is a layer immediately above the L2CAP layer.
상기 블루투스 장치에서 IP 계층, UDP 계층 및 6LoWPAN 계층은 제외될 수 있다.In the Bluetooth device, the IP layer, the UDP layer, and the 6LoWPAN layer may be excluded.
상기 적어도 하나의 프로그램은 CoAP 지원 프로파일을 포함할 수 있다.The at least one program may include a CoAP support profile.
상기 CoAP 지원 프로파일은 GATT 및 ATT를 통해 상기 블루투스 장치가 CoAP의 기능을 지원한다는 것이 검색되게 할 수 있다.The CoAP support profile may allow the Bluetooth device to search through the GATT and ATT to support the function of the CoAP.
상기 블루투스 장치는 CoAP GET 메시지를 포함하는 브로드캐스트 메시지를 브로드캐스트하고, 브로드캐스트 메시지에 대응하는 응답 메시지를 게이트웨이로부터 수신함으로써 상기 게이트웨이에 대한 정보를 획득할 수 있다.The Bluetooth device can obtain information about the gateway by broadcasting a broadcast message including a CoAP GET message and receiving a response message corresponding to the broadcast message from the gateway.
상기 블루투스 장치는 브로드캐스트 메시지를 관찰하고, 상기 브로드캐스트 메시지를 수신함에 따라 상기 브로드캐스트 메시지를 브로드캐스트한 게이트웨이를 발견할 수 있다.The Bluetooth device observes a broadcast message and may discover a gateway that broadcasts the broadcast message upon receiving the broadcast message.
상기 블루투스 장치는 상기 블루투스 장치를 게이트웨이에 등록하기 위해 상기 블루투스 장치에 대한 정보 및 상기 블루투스 장치의 리소스의 경로를 포함하는 데이터 메시지를 상기 게이트웨이로 전송할 수 있고, 상기 블루투스 장치에 대한 정보가 기록된 경로를 포함하는 응답 메시지를 상기 게이트웨이로부터 수신할 수 있다.The Bluetooth device may transmit to the gateway a data message including information on the Bluetooth device and a resource path of the Bluetooth device to register the Bluetooth device in the gateway, From the gateway.
상기 블루투스 장치는 상기 경로를 사용하여 상기 블루투스 장치의 리소스를 상기 게이트웨이에 등록할 수 있다.The Bluetooth device can register the resource of the Bluetooth device with the gateway using the path.
다른 일 측에 있어서, 블루투스 장치에 의해 수행되는, 상기 블루투스 장치를 게이트웨이에 등록하는 단계; 및 상기 게이트웨이에 의해 제공되는 게이트웨이 기능을 통해 통신을 수행하는 단계를 포함하고, 상기 블루투스 장치의 프로토콜 스택은 CoAP 계층 및 L2CAP 계층을 포함하고, 상기 CoAP 계층은 상기 L2CAP 계층의 바로 상위의 계층인 통신 방법이 제공된다.On another side, registering the Bluetooth device with a gateway, the Bluetooth device being performed by a Bluetooth device; And performing a communication through a gateway function provided by the gateway, wherein the protocol stack of the Bluetooth device includes a CoAP layer and an L2CAP layer, and the CoAP layer is a layer directly above the L2CAP layer Method is provided.
상기 통신 방법은, 상기 블루투스 장치의 리소스를 상기 게이트웨이에 등록하는 단계를 더 포함할 수 있다.The communication method may further include registering the resource of the Bluetooth device in the gateway.
또 다른 일 측에 있어서, 적어도 하나의 프로그램을 수행하는 처리부; 및 블루투스 통신을 수행하는 통신부를 포함하고, 상기 적어도 하나의 프로그램은 MQTT 계층의 코드 및 L2CAP 계층의 코드를 포함하고, 상기 MQTT 계층은 상기 L2CAP 계층의 바로 상위의 계층인 블루투스 장치가 제공된다.A processing unit for executing at least one program on another side; And a communication unit for performing Bluetooth communication, wherein the at least one program includes a code of an MQTT layer and a code of an L2CAP layer, and the MQTT layer is a layer immediately above the L2CAP layer.
또 다른 일 측에 있어서, 적어도 하나의 프로그램을 수행하는 처리부; 블루투스 통신을 위한 제1 통신부; 및 인터넷과의 연동을 위한 제2 통신부를 포함하고, 상기 적어도 하나의 프로그램은 제1 통신부 용 코드를 포함하고, 상기 제1 통신부 용 코드는 CoAP 계층의 코드 및 L2CAP 계층의 코드를 포함하고, 상기 CoAP 계층은 상기 L2CAP 계층의 바로 상위의 계층인 게이트웨이가 제공된다.A processing unit for executing at least one program on another side; A first communication unit for Bluetooth communication; And a second communication unit for interworking with the Internet, wherein the at least one program includes a code for a first communication unit, the code for the first communication unit includes a code of a CoAP layer and a code of an L2CAP layer, The CoAP layer is provided as a layer directly above the L2CAP layer.
상기 적어도 하나의 프로그램은 프록시 모듈을 포함할 수 있다.The at least one program may comprise a proxy module.
상기 프록시 모듈은 상기 CoAP 계층의 상위의 계층일 수 있다.The proxy module may be an upper layer of the CoAP layer.
상기 프록시 모듈은 상기 제1 통신부를 통해 연결된 블루투스 장치의 주소를 상기 게이트웨이 내부의 URI-경로에 매핑함으로써 상기 블루투스 장치 및 상기 제2 통신부를 통해 연결된 장치 간의 통신을 가능하게 할 수 있다.The proxy module may enable communication between devices connected through the Bluetooth device and the second communication unit by mapping an address of a Bluetooth device connected through the first communication unit to a URI-path inside the gateway.
상기 제1 통신부는 블루투스 장치로부터 CoAP의 요청 메시지를 수신할 수 있다.The first communication unit may receive a CoAP request message from the Bluetooth device.
상기 처리부는 상기 CoAP의 요청 메시지로부터 URI-호스트 및 URI-포트를 제거할 수 있고, 상기 요청 메시지에 IP 헤더 및 UDP 헤더를 세팅할 수 있다.The processing unit may remove the URI-host and the URI-port from the CoAP request message, and may set an IP header and a UDP header in the request message.
상기 제2 통신부는 상기 IP 헤더 및 상기 UDP 헤더가 세팅된 요청 메시지를 외부 장치로 전달할 수 있다.The second communication unit may forward the request message in which the IP header and the UDP header are set to an external device.
상기 제2 통신부는 외부 장치로부터 CoAP의 요청 메시지를 수신할 수 있다.The second communication unit may receive a CoAP request message from an external device.
상기 처리부는 상기 CoAP의 요청 메시지로부터 URI-호스트, URI-포트, URI-경로 중 프리픽스, URI-경로 중 블루투스 장치 식별자, IP 헤더 및 UDP 헤더를 제거할 수 있다.The processing unit may remove URI-host, URI-port, URI-path prefix, URI-path Bluetooth device identifier, IP header, and UDP header from the CoAP request message.
상기 제1 통신부는 상기 URI-호스트, 상기 URI-포트, 상기 프리픽스, 상기 블루투스 장치 식별자, 상기 IP 헤더 및 상기 UDP 헤더가 제거된 요청 메시지를 블루투스 장치로 전달할 수 있다.The first communication unit may transmit a request message to the Bluetooth device in which the URI-host, the URI-port, the prefix, the Bluetooth device identifier, the IP header, and the UDP header are removed.
상기 게이트웨이는 CoAP Ping 요청 메시지를 포함하는 브로드캐스트 메시지를 브로드캐스트하고, 블루투스 장치로부터 상기 CoAP Ping 요청 메시지에 대응하는 CoAP Ping 응답 메시지를 수신함으로써 상기 블루투스 장치를 검출할 수 있다.The gateway can detect the Bluetooth device by broadcasting a broadcast message including a CoAP Ping request message and receiving a CoAP Ping response message corresponding to the CoAP Ping request message from the Bluetooth device.
상기 게이트웨이는 브로드캐스트 메시지를 관찰할 수 있다.The gateway can observe the broadcast message.
상기 게이트웨이는 가상 CoAP Ping 응답 메시지를 포함하는 상기 브로드캐스트 메시지를 수신함에 따라 상기 브로드캐스트 메시지를 브로드캐스트한 블루투스 장치를 발견할 수 있다.Upon receiving the broadcast message including the virtual CoAP Ping response message, the gateway may discover a Bluetooth device that broadcasts the broadcast message.
상기 게이트웨이는 연결 요청 메시지를 블루투스 장치로 전송할 수 있고, 상기 블루투스 장치로부터 상기 블루투스 장치의 리소스의 경로를 포함하는 응답 메시지를 수신할 수 있고, 상기 경로를 포함하는 재질의 메시지를 상기 블루투스 장치로 전송할 수 있고, 상기 경로에 대한 정보를 포함하는 응답 메시지를 상기 블루투스 장치로부터 수신할 수 있다.The gateway can transmit a connection request message to the Bluetooth device, receive a response message including the path of the resource of the Bluetooth device from the Bluetooth device, send a message containing the route to the Bluetooth device And may receive a response message from the Bluetooth device that includes information about the path.
또 다른 일 측에 있어서, 게이트웨이에 의해 수행되는, 블루투스 장치를 검색하는 단계; 및 블루투스 장치에게 게이트웨이 기능을 제공하는 단계를 포함하고, 상기 게이트웨이의 블루투스 통신을 위한 프로토콜 스택은 CoAP 계층 및 L2CAP 계층을 포함하고, 상기 CoAP 계층은 상기 L2CAP 계층의 바로 상위의 계층인 통신 방법이 제공된다.On another side, searching for a Bluetooth device, performed by a gateway; And providing a gateway function to the Bluetooth device, wherein a protocol stack for Bluetooth communication of the gateway includes a CoAP layer and an L2CAP layer, and the CoAP layer is a communication method that is a layer immediately above the L2CAP layer do.
상기 통신 방법은, 상기 블루투스 장치의 리소스를 확인하는 단계를 더 포함할 수 있다.The communication method may further include confirming a resource of the Bluetooth device.
또 다른 일 측에 있어서, 적어도 하나의 프로그램을 수행하는 처리부; 블루투스 통신을 위한 제1 통신부; 및 인터넷과의 연동을 위한 제2 통신부를 포함하고, 상기 적어도 하나의 프로그램은 제1 통신부 용 코드를 포함하고, 상기 제1 통신부 용 코드는 MQTT 계층의 코드 및 L2CAP 계층의 코드를 포함하고, 상기 MQTT 계층은 상기 L2CAP 계층의 바로 상위의 계층인 게이트웨이가 제공된다.A processing unit for executing at least one program on another side; A first communication unit for Bluetooth communication; And a second communication unit for interworking with the Internet, wherein the at least one program includes a code for a first communication unit, the code for the first communication unit includes a code of an MQTT layer and a code of an L2CAP layer, The MQTT layer is provided with a gateway which is a layer immediately above the L2CAP layer.
국제 표준 프로토콜을 블루투스에 적용함으로써 다양한 현재의 기기 및 미래의 기기에 적용될 수 있는 통신 방법이 제공된다.By applying the international standard protocol to Bluetooth, a communication method that can be applied to various current devices and future devices is provided.
프로토콜 스택 중 일부를 생략함으로써 고효율의 통신을 제공하는 장치 및 방법이 제공된다.An apparatus and method for providing highly efficient communication by omitting some of the protocol stacks are provided.
도 1은 일 실시예에 따른 블루투스를 사용하여 통신하는 시스템을 도시한다.
도 2는 일 실시예에 따른 블루투스 장치의 구조도이다.
도 3은 일 실시예에 따른 게이트웨이의 구조도이다.
도 4는 일 실시예에 따른 블루투스 장치의 프로토콜 구조를 나타낸다.
도 5는 일 실시예에 따른 게이트웨이의 프로토콜 구조를 나타낸다.
도 6은 일 실시예에 따른 블루투스 장치 및 게이트웨이의 통신의 구조를 설명한다.
도 7은 일 실시예에 따른 블루투스 장치의 통신 방법의 흐름도이다.
도 8는 일 실시예에 따른 게이트웨이 통신 방법의 흐름도이다.
도 9는 일 예에 따른 블루투스 장치들 간의 CoAP를 이용하는 통신을 도시한다.
도 10은 일 예에 따른 브로드캐스트를 사용하는 CoAP를 지원하는 블루투스 장치의 검색 방법의 흐름도이다.
도 11은 일 예에 따른 관찰을 사용하는 CoAP를 지원하는 블루투스 장치의 검색 방법의 흐름도이다.
도 12는 일 예에 따른 블루투스 장치의 리소스를 검색하는 방법의 흐름도이다.
도 13은 일 예에 따른 게이트웨이의 외부 장치로부터의 요청을 처리하는 방법의 흐름도이다.
도 14는 일 예에 따른 게이트웨이의 외부 장치로부터의 요청을 처리하는 방법의 흐름도이다.
도 15는 일 예에 따른 게이트웨이 검색 방법의 흐름도이다.
도 16은 일 예에 따른 관찰을 사용하는 CoAP를 지원하는 게이트웨이의 검색 방법의 흐름도이다.
도 17은 일 예에 따른 블루투스 장치를 등록하는 방법의 흐름도이다.
도 18은 일 예에 따른 블루투스 장치의 리소스를 등록하는 방법의 흐름도이다.
도 19는 일 예에 따른 블루투스 장치의 구조도이다.
도 20은 일 예에 따른 게이트웨이의 구조도이다.
도 21은 일 실시예에 따른 블루투스 장치 및 게이트웨이의 통신의 구조를 설명한다.
도 22는 일 예에 따른 어드버타이징 채널 프레임 포맷을 나타낸다.
도 23은 일 예에 따른 데이터 채널 프레임 포맷을 나타낸다.1 illustrates a system for communicating using Bluetooth according to one embodiment.
2 is a block diagram of a Bluetooth device according to an exemplary embodiment of the present invention.
3 is a structural diagram of a gateway according to an embodiment.
4 illustrates a protocol structure of a Bluetooth device according to an exemplary embodiment.
5 shows a protocol structure of a gateway according to an embodiment.
6 illustrates a structure of communication between a Bluetooth device and a gateway according to an embodiment.
7 is a flowchart of a communication method of a Bluetooth device according to an embodiment.
8 is a flowchart of a gateway communication method according to an embodiment.
9 illustrates communication using a CoAP between Bluetooth devices according to an example.
10 is a flowchart of a search method of a Bluetooth device supporting CoAP using broadcast according to an example.
11 is a flowchart of a search method of a Bluetooth device supporting CoAP using observation according to an example.
12 is a flowchart of a method of searching for a resource of a Bluetooth device according to an example.
13 is a flowchart of a method of processing a request from an external device of a gateway according to an example.
14 is a flowchart of a method of processing a request from an external device of a gateway according to an example.
15 is a flowchart of a gateway search method according to an example.
16 is a flowchart of a search method of a gateway supporting CoAP using observation according to an example.
17 is a flowchart of a method of registering a Bluetooth device according to an example.
18 is a flowchart of a method of registering a resource of a Bluetooth device according to an example.
19 is a structural diagram of a Bluetooth device according to an example.
20 is a structural diagram of a gateway according to an example.
21 illustrates a structure of communication between a Bluetooth device and a gateway according to an embodiment.
Figure 22 shows the format of the advertising channel frame according to an example.
23 shows a data channel frame format according to an example.
후술하는 예시적 실시예들에 대한 상세한 설명은, 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 실시예를 실시할 수 있기에 충분하도록 상세히 설명된다. 다양한 실시예들은 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 실시예의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 예시적 실시예들의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다.The following detailed description of exemplary embodiments refers to the accompanying drawings, which illustrate, by way of illustration, specific embodiments. These embodiments are described in sufficient detail to enable those skilled in the art to practice the embodiments. It should be understood that the various embodiments are different, but need not be mutually exclusive. For example, certain features, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in connection with an embodiment. It is also to be understood that the location or arrangement of the individual components within each disclosed embodiment may be varied without departing from the spirit and scope of the embodiments. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the exemplary embodiments is to be limited only by the appended claims, along with the full scope of equivalents to which such claims are entitled, if properly explained.
도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.In the drawings, like reference numerals refer to the same or similar functions throughout the several views. The shape and size of the elements in the figures may be exaggerated for clarity.
실시예에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 실시예에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않으며, 추가적인 구성이 예시적 실시예들의 실시 또는 예시적 실시예들의 기술적 사상의 범위에 포함될 수 있음을 의미한다. 어떤 구성요소(component)가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기의 2개의 구성요소들이 서로 간에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 상기의 2개의 구성요소들의 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.The terms used in the examples are intended to illustrate the embodiments and are not intended to limit the invention. In the examples, the singular includes the plural unless otherwise stated in the specification. It is noted that the terms "comprises" and / or "comprising" used in the specification are intended to be inclusive in a manner similar to the components, steps, operations, and / And that additional configurations may be encompassed within the scope of the embodiments of the exemplary embodiments or the technical ideas of the exemplary embodiments. When it is mentioned that a component is "connected" or "connected" to another component, the two components may be directly connected or connected to each other, It is to be understood that other components may be present in the middle of the components.
제1 및 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기의 구성요소들은 상기의 용어들에 의해 한정되어서는 안 된다. 상기의 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하여 지칭하기 위해서 사용된다. 예를 들어, 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.The terms first and second, etc. may be used to describe various components, but the components should not be limited by the terms above. The above terms are used to distinguish one component from another. For example, without departing from the scope of the right, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.
또한 실시예들에 나타나는 구성요소들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성요소가 분리된 하드웨어나 하나의 소프트웨어 구성 단위로만 이루어짐을 의미하지 않는다. 즉, 각 구성요소는 설명의 편의상 각각의 구성요소로 나열된 것이다. 예를 들면, 구성요소들 중 적어도 두 개의 구성요소들이 하나의 구성요소로 합쳐질 수 있다. 또한, 하나의 구성요소가 복수의 구성요소들로 나뉠 수 있다. 이러한 각 구성요소의 통합된 실시예 및 분리된 실시예 또한 본질에서 벗어나지 않는 한 권리범위에 포함된다.In addition, the components shown in the embodiments are shown independently to represent different characteristic functions, which does not mean that each component is composed of separate hardware or one software constituent unit. That is, each component is listed as each component for convenience of explanation. For example, at least two of the components may be combined into a single component. Also, one component can be divided into a plurality of components. The integrated embodiments and the separate embodiments of each of these components are also included in the scope of the right without departing from the essence.
또한, 일부의 구성요소는 본질적인 기능을 수행하는 필수적인 구성요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성요소일 수 있다. 실시예들은 실시예의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 예를 들면, 단지 성능 향상을 위해 사용되는 구성요소와 같은, 선택적 구성요소가 제외된 구조 또한 권리 범위에 포함된다.Also, some components are not essential components to perform essential functions, but may be optional components only to improve performance. Embodiments may be implemented only with components that are essential to implementing the essentials of the embodiments, and structures within which the optional components are excluded, such as, for example, components used only for performance enhancement, are also included in the scope of the right.
이하에서는, 기술분야에서 통상의 지식을 가진 자가 실시예들을 용이하게 실시할 수 있도록 하기 위하여, 첨부된 도면을 참조하여 실시예들을 상세히 설명하기로 한다. 실시예들을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings in order to facilitate embodiments of the present invention by those skilled in the art. In the following description of the embodiments, detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present disclosure rather unclear.
기존의 블루투스 표준은, 블루투스 기기 별로 프로파일 표준을 제정하였고, 프로파일 표준이 준수되도록 하였다. 그러나, 사물인터넷의 시대에서는 표준의 제정 속도가 새로운 제품의 출시 속도를 따라가지 못하고 있다.The existing Bluetooth standard established a profile standard for each Bluetooth device and made it conform to the profile standard. However, in the Internet world of things, the rate of standardization has not been able to keep pace with the speed of new product launches.
표준의 제정 및 새로운 제품의 출시 간의 격차에 의해, 한 회사의 제품들 간에만 연동이 되는 호환성의 문제가 발생하였다. 또한, 다양한 기기들을 수용할 수 있는 게이트웨이 및 응용의 개발이 어렵게되는 문제가 발생하였다.Due to the gap between the enactment of standards and the launch of new products, interoperability problems between products of a company have arisen. In addition, it has been difficult to develop gateways and applications capable of accommodating various devices.
따라서, 아래의 실시예들은 미래에 개발될 다양한 블루투스 기반의 사물인터넷 기기를 수용할 수 있는 호환성을 확보하는 프로토콜 구조를 제안한다. 또한, 아래의 실시예들은 기존의 인터넷 프로토콜을 그대로 블루투스 노드 상에 구현할 경우에 발생하는 메시지 오버헤드, 보안 및 재전송 등과 같은 기능 상의 중복 문제를 해결함으로써 효율성을 확보할 수 있다.Therefore, the following embodiments propose a protocol structure for ensuring compatibility to accommodate various Bluetooth-based Internet devices to be developed in the future. In addition, the following embodiments can solve the redundancy problem of function, such as message overhead, security and retransmission, which occurs when a conventional Internet protocol is implemented on a Bluetooth node as it is, thereby securing efficiency.
또한, 아래의 실시예들에서는, 블루투스 기기가 표준에 따라서 효율적으로 사물인터넷에 연결하는 것을 가능하게 하는 프로토콜 구조를 제안한다.
The following embodiments also propose a protocol structure that enables a Bluetooth device to efficiently connect to the Internet of things according to the standard.
도 1은 일 실시예에 따른 블루투스를 사용하여 통신하는 시스템을 도시한다.1 illustrates a system for communicating using Bluetooth according to one embodiment.
시스템(100)은 블루투스 장치(110) 및 게이트웨이(120)를 포함할 수 있다. 블루투스 장치(110)는 복수일 수 있다.The system 100 may include a
블루투스 장치(110)는 사물인터넷을 지원할 수 있다. 블루투스 장치(110)의 프로토콜 구조는 블루투스 물리 계층, 블루투스 논리 계층, L2CAP 계층, 씨오에이피(Constrained Application Protocol; CoAP) 계층 및 응용 계층으로 구성될 수 있다.The
블루투스 장치(110)의 인터넷 네트워킹은 CoAP의 통합 리소스 식별자(Uniform Resource Identifier; URI) 경로 및 블루투스 기기 간의 매핑을 통해 이루어질 수 있다. 이러한 매핑의 과정은 게이트웨이(120)에 의해 수행될 수 있다.The Internet networking of the
게이트웨이(120)는 블루투스 통신을 통해 블루투스 장치(110)와 통신할 수 있다. 또한, 게이트웨이(120)는 인터넷을 통해 외부의 다른 장치와 통신할 수 있다.
The
도 2는 일 실시예에 따른 블루투스 장치의 구조도이다.2 is a block diagram of a Bluetooth device according to an exemplary embodiment of the present invention.
블루투스 장치(110)는 처리부(210), 통신부(220) 및 저장부(230)를 포함할 수 있다.The
처리부(210)는 블루투스 장치(110)의 동작을 위해 요구되는 작업을 처리할 수 있다. 예를 들면, 처리부(210)는 적어도 하나의 프로세서(processor)일 수 있다. 처리부(210)는 실시예들에서 설명된 처리부(210)의 동작 또는 단계의 코드를 실행(execute)할 수 있다The
통신부(220)는 블루투스 장치(110)의 동작을 위해 요구되는 데이터 또는 정보를 수신할 수 있으며, 블루투스 장치(110)의 동작을 위해 요구되는 데이터 또는 정보를 전송할 수 있다. 통신부(220)는 네트워크 내의 다른 장치로 데이터를 전송할 수 있고, 다른 장치로부터 데이터를 수신할 수 있다. 예를 들면, 통신부(220)는 블루투스 통신을 위한 네트워크 칩(chip) 또는 블루투스 통신을 위한 부품일 수 있다.The
저장부(230)는 블루투스 장치(110)의 동작을 위해 요구되는 데이터를 저장할 수 있다. 예를 들면, 저장부(230)는 메모리(memory)일 수 있다. 저장부(230)는 램(RAM) 및 플레시(flash) 메모리 등과 같은 내장형의 저장 매체를 포함할 수 있고, 메모리 카드 등과 같은 탈착가능한 저장 매체를 포함할 수 있다.The
저장부(230)는 적어도 하나의 프로그램을 저장할 수 있다. 처리부(210)는 적어도 하나의 프로그램을 실행할 수 있다. 처리부(210)는 저장부(230)로부터 적어도 하나의 프로그램의 코드를 독출(read)할 수 있고, 독출된 코드를 실행할 수 있다.The
적어도 하나의 프로그램은 블루투스 통신을 위한 프로그램일 수 있다.At least one program may be a program for Bluetooth communication.
통신부(220)는 블루투스 통신을 수행할 수 있다. 통신부(220)는 블루투스 통신을 통해 다른 장치로 데이터를 전송할 수 있고, 다른 장치로부터 데이터를 수신할 수 있다.The
블루투스 장치(110)의 처리부(210), 통신부(220) 및 저장부(230)의 동작, 기능 및 특징에 대해서 실시예들을 참조하여 아래에서 상세하게 설명된다.
Operations, functions, and characteristics of the
도 3은 일 실시예에 따른 게이트웨이의 구조도이다.3 is a structural diagram of a gateway according to an embodiment.
게이트웨이(120)는 처리부(310), 제1 통신부(320), 제2 통신부(330) 및 저장부(340)를 포함할 수 있다.The
처리부(310)는 게이트웨이(120)의 동작을 위해 요구되는 작업을 처리할 수 있다. 예를 들면, 처리부(310)는 적어도 하나의 프로세서(processor)일 수 있다. 처리부(310)는 실시예들에서 설명된 처리부(310)의 동작 또는 단계의 코드를 실행(execute)할 수 있다The
제1 통신부(320) 및 제2 통신부(330)는 게이트웨이(120)의 동작을 위해 요구되는 데이터 또는 정보를 수신할 수 있으며, 게이트웨이(120)의 동작을 위해 요구되는 데이터 또는 정보를 전송할 수 있다. 제1 통신부(320) 및 제2 통신부(330)는 네트워크 내의 다른 장치로 데이터를 전송할 수 있고, 다른 장치로부터 데이터를 수신할 수 있다. 예를 들면, 제1 통신부(320) 및 제2 통신부(330)의 각각은 네트워크 칩(chip) 또는 포트(port)일 수 있다.The
저장부(340)는 게이트웨이(120)의 동작을 위해 요구되는 데이터를 저장할 수 있다. 예를 들면, 저장부(340)는 메모리(memory)일 수 있다. 저장부(340)는 램(RAM) 및 플레시(flash) 메모리 등과 같은 내장형의 저장 매체를 포함할 수 있고, 메모리 카드 등과 같은 탈착가능한 저장 매체를 포함할 수 있다.The
저장부(340)는 적어도 하나의 프로그램을 저장할 수 있다. 처리부(310)는 적어도 하나의 프로그램을 실행할 수 있다. 처리부(310)는 저장부(340)로부터 적어도 하나의 프로그램의 코드를 독출(read)할 수 있고, 독출된 코드를 실행할 수 있다.The
제1 통신부(320)는 블루투스 통신을 위한 블루투스 인터페이스일 수 있다. 예를 들면, 제1 통신부(320)는 블루투스 통신 칩일 수 있다.The
제2 통신부(330)는 인터넷과의 연동을 위한 인터넷 인터페이스일 수 있다. 예를 들면, 제2 통신부(330)는 와이파이 칩 또는 이더넷 칩일 수 있다.The second communication unit 330 may be an Internet interface for interworking with the Internet. For example, the second communication unit 330 may be a Wi-Fi chip or an Ethernet chip.
제1 통신부(320)는 블루투스 장치(110)와의 통신을 위해 사용될 수 있다. 제2 통신부(330)는 블루투스 장치(110) 및 다른 장치 간의 통신에 대하여 게이트웨이 기능을 제공하기 위해 사용될 수 있다.The
게이트웨이(120)의 처리부(310), 제1 통신부(320), 제2 통신부(330) 및 저장부(340)의 동작, 기능 및 특징에 대해서 실시예들을 참조하여 아래에서 상세하게 설명된다.
The operation, functions, and characteristics of the
도 4는 일 실시예에 따른 블루투스 장치의 프로토콜 구조를 나타낸다.4 illustrates a protocol structure of a Bluetooth device according to an exemplary embodiment.
블루투스 장치(110)의 프로토콜 구조는 제어기(controller) 및 호스트(host)로 분류될 수 있다. 예를 들면, 제어기는 통신부(220)에 대응하고, 호스트는 처리부(210)에 대응할 수 있다. 또는, 호스트는 처리부(210)에 의해 수행되는 적어도 하나의 프로그램의 일부에 대응할 수 있다.The protocol structure of the
호스트 제어기 인터페이스는 처리부(210)가 통신부(220)를 제어하기 위한 인터페이스일 수 있다.The host controller interface may be an interface for the
프로토콜 구조의 제일 하위의 계층은 물리적 계층일 수 있다. 다음의 계층은 링크(또는, 데이터 링크(link)) 계층일 수 있다. 다음의 계층은 호스트 제어기 인터페이스일 수 있다.The lowest layer of the protocol structure may be the physical layer. The next layer may be a link (or a data link) layer. The next layer may be the host controller interface.
다음의 계층은 L2CAP일 수 있다. ATT 계층, GATT, 지에이피(Generic Access Profile; GAP) 및 씨에스피(CoAP Support Profile; CSP)는 L2CAP 계층의 상위의 계층일 수 있다. CoAP는 L2CAP의 상위의 계층일 수 있다. 응용은 CoAP의 상위의 계층일 수 있다.The next layer may be L2CAP. The ATT layer, the GATT, the Generic Access Profile (GAP), and the CoAP Support Profile (CSP) may be the upper layers of the L2CAP layer. The CoAP may be an upper layer of L2CAP. The application may be an upper layer of the CoAP.
처리부(210)에 의해 수행되는 적어도 하나의 프로그램은 호스트 제이기 인터페이스 계층, L2CAP 계층, CoAP 계층 및 응용 계층을 포함할 수 있다. 처리부(210)에 의해 수행되는 적어도 하나의 프로그램은 ATT 계층, GATT 계층, GAP 계층 및 CSP 계층을 포함할 수 있다. 예를 들면, 적어도 하나의 프로그램은 호스트 제어기 인터페이스 계층의 코드, L2CAP 계층의 코드, CoAP 계층의 코드 및 응용 계층의 코드를 포함할 수 있다. 또한, 적어도 하나의 프로그램은 ATT 계층의 코드, GATT 계층의 코드, GAP 계층의 코드 및 CSP 계층의 코드를 포함할 수 있다.At least one program performed by the
블루투스 장치(110)에서, 아이이티에프(Internet Engineering Task Force; IETF) CoAP 계층은 L2CAP 계층의 바로 상위의 계층일 수 있다.In the
블루투스 장치(110) 및/또는 적어도 하나의 프로그램의 프로토콜 구조에서, IP 계층, UDP 계층 및 6LoWPAN 계층은 제외될 수 있다.In the
CoAP 계층의 이하의 계층인 L2CAP 계층, 호스트 제어기 인터페이스 계층, 링크 계층 및 물리적 계층은 BLE 모듈에 대응할 수 있다. 말하자면, 블루투스 장치(110)에서, CoAP 계층은 BLE의 바로 상위의 계층일 수 있다.The L2CAP layer, the host controller interface layer, the link layer, and the physical layer, which are the following layers of the CoAP layer, can correspond to the BLE module. In other words, in the
IETF CoAP는 저용량 소형 기기를 위해 UDP 계층의 위에서 동작하도록 설계된 프로토콜일 수 있다.The IETF CoAP may be a protocol designed to operate above the UDP layer for low-volume handheld devices.
L2CAP 계층은 데이터그램 형태의 데이터를 전송할 수 있다. 또한, L2CAP 계층은 노드를 식별할 수 있으며, 메시지를 노드로 전송할 수 있고, 노드로부터 메시지를 수신할 수 있다.The L2CAP layer can transmit data in the form of a datagram. In addition, the L2CAP layer can identify the node, send the message to the node, and receive the message from the node.
말하자면, IP 계층, UDP 계층 및 6LoWPAN 계층이 없더라도 CoAP는 L2CAP 계층의 바로 위에서 동작할 수 있다. 이러한 동작을 통해, 블루투스 장치(110)는 효율적인 통신을 가능하게 하면서도 표준 사물인터넷 프로토콜을 사용할 수 있다.That is to say, although there is no IP layer, UDP layer and 6LoWPAN layer, CoAP can operate directly above the L2CAP layer. Through this operation, the
게이트웨이(120) 또는 스마트폰과 같은 단말은 CoAP의 표준을 이용하여 블루투스 장치(110)와 통신할 수 있다. 따라서, 블루투스 장치(110) 및 다른 다양한 블루투스 장치들 간의 연동이 가능할 수 있다.A terminal such as the
CoAP 계층은 CoAP 클라이언트 기능 및 CoAP 서버 기능의 적어도 일부를 포함할 수 있다. CoAP 클라이언트 기능은 CoAP 요청의 메시지를 전송하는 기능을 포함할 수 있다. CoAP 서버 기능은 CoAP 요청을 수신하는 기능 및 CoAP 요청에 대한 응답의 메시지를 전송하는 기능을 포함할 수 있다.The CoAP layer may include at least a part of the CoAP client function and the CoAP server function. The CoAP client function may include the ability to send a message of a CoAP request. The CoAP server function may include a function of receiving a CoAP request and a function of transmitting a message of a response to a CoAP request.
CSP는 GATT 및 ATT를 통하여 블루투스 장치(100)가 CoAP의 기능을 지원한다는 것이 검색되게 할 수 있다.The CSP can be configured to detect that the Bluetooth device 100 supports the CoAP function through the GATT and ATT.
GAP, GATT, ATT 및 L2CAP은 기존의 블루투스 스택의 GAP, GATT, ATT 및 L2CAP에 각각 대응할 수 있다.GAP, GATT, ATT and L2CAP can correspond to GAP, GATT, ATT and L2CAP of the existing Bluetooth stack respectively.
블루투스 장치(100)가 CoAP을 지원하지 않는 다른 블루투스 장치와 통신을 할 필요가 없는 경우, CSP, GAP, GATT 및 ATT는 모두 생략될 수 있다. 이러한 경우, 블루투스 장치(110)는 CoAP 및 L2CAP만을 이용하여 다른 블루투스 장치를 검색하고, 검색된 다른 블루투스 장치의 속성을 알아내는 것이 요구될 수 있다.
If Bluetooth device 100 does not need to communicate with other Bluetooth devices that do not support CoAP, CSP, GAP, GATT, and ATT may all be omitted. In this case, the
도 5는 일 실시예에 따른 게이트웨이의 프로토콜 구조를 나타낸다.5 shows a protocol structure of a gateway according to an embodiment.
게이트웨이(120)의 프로토콜 구조는 제1 통신부(320) 측 프로토콜 구조 및 제2 통신부(330) 측 프로토콜 구조로 분류될 수 있다. 제1 통신부(320) 측 프로토콜 구조는 좌측에 도시되었고, 제2 통신부(330) 측 프로토콜 구조는 우측에 도시되었다.The protocol structure of the
적어도 하나의 프로그램은 제1 통신부(320)를 위해 사용되는 제1 통신부(320) 용 코드 및 제2 통신부(330)를 위해 사용되는 제2 통신부 용 코드를 포함할 수 있다.The at least one program may include a code for the
우선, 제1 통신부(320) 측 프로토콜 구조를 살펴본다.First, the protocol structure of the
제1 통신부(320) 측 프로토콜 구조의 제일 하위의 계층은 BLE일 수 있다. BLE는 물리적 계층, 링크 계층, 호스트 제어기 인터페이스 계층 및 L2CAP을 포함할 수 있다. 물리적 계층, 링크 계층, 호스트 제어기 인터페이스 계층 및 L2CAP에 대해서 도 4를 참조하여 전술된 설명이 적용될 수 있다.The lowest layer of the protocol structure of the
CoAP는 L2CAP의 상위의 계층일 수 있다.The CoAP may be an upper layer of L2CAP.
L2CAP의 하위의 계층은 도시된 것과 같이 BLE 모듈일 수 있다. 또는, BLE 모듈은 전통적인 블루투스 물리 계층 및 논리 계층으로 대체될 수 있다. 예를 들면, L2CAP의 하위의 계층은 전통적인 블루투스 물리 계층 및 논리 계층일 수 있다.The lower layer of L2CAP may be a BLE module as shown. Alternatively, the BLE module may be replaced by a traditional Bluetooth physical layer and a logical layer. For example, the lower layer of the L2CAP may be a traditional Bluetooth physical layer and a logical layer.
처리부(310)에 의해 수행되는 적어도 하나의 프로그램은 제1 통신부(320) 용 BLE 모듈, L2CAP 계층 및 CoAP 계층을 포함할 수 있다. 예를 들면, 처리부(310)에 의해 수행되는 제1 통신부(320) 용 코드는 BLE 모듈의 코드, L2CAP 계층의 코드 및 CoAP 계층의 코드를 포함할 수 있다.At least one program executed by the
게이트웨이(120)의 제1 통신부(320) 측 프로토콜 구조에서, IETF CoAP 계층은 L2CAP 계층의 바로 상위의 계층일 수 있다.In the protocol structure of the
게이트웨이(120)의 제1 통신부(320) 측 프로토콜 구조에서, IP 계층, UDP 계층 및 6LoWPAN 계층은 제외될 수 있다.In the protocol structure of the
다음으로, 제2 통신부(330) 측 프로토콜 구조를 살펴본다.Next, the protocol structure of the second communication unit 330 will be described.
제2 통신부(330) 측 프로토콜 구조는 통상적인 티씨피/아이피(Transmission Control Protocol/Internet Protocol; TCP/IP) 스택에 대응할 수 있다.The protocol structure of the second communication unit 330 may correspond to a typical TCP / IP (Internet Protocol) stack.
제2 통신부(330) 측 프로토콜 구조의 제일 하위의 계층은 와이파이(WiFi) 및/또는 이더넷(Ethernet)일 수 있다. 와이파이 및/또는 이더넷은 와이파이 및/또는 이더넷 통신을 위한 물리적 계층 및 링크 계층을 의미할 수 있다.The lowest layer of the protocol structure of the second communication unit 330 may be WiFi and / or Ethernet. WiFi and / or Ethernet may refer to the physical and link layers for WiFi and / or Ethernet communications.
IP는 와이파이(WiFi) 및/또는 이더넷(Ethernet)의 상위의 계층일 수 있다.The IP may be a higher layer of WiFi and / or Ethernet.
UDP는 IP의 상위의 계층일 수 있다.UDP can be the upper layer of IP.
CoAP 및/또는 HTTP는 UDP의 상위의 계층일 수 있다.The CoAP and / or HTTP may be an upper layer of UDP.
적어도 하나의 프로그램은 프록시 모듈을 포함할 수 있다. 프록시 모듈은 제1 통신부(320) 측 프로토콜 구조의 CoAP 계층 및 제2 통신부(330) 측 프로토콜 구조의 CoAP 계층 및/또는 HTTP 계층의 상위의 계층일 수 있다.
At least one program may include a proxy module. The proxy module may be a CoAP layer of the protocol structure of the
도 6은 일 실시예에 따른 블루투스 장치 및 게이트웨이의 통신의 구조를 설명한다.6 illustrates a structure of communication between a Bluetooth device and a gateway according to an embodiment.
도 6에서는, 블루투스 장치(110), 게이트웨이(120) 및 외부 장치(610)가 도시되었다.In Fig. 6, a
블루투스 장치(110)는 블루투스 노드일 수 있다. 외부 장치(610)는 외부의 인터넷 노드일 수 있다.The
외부 장치(610)는 사물인터넷 서버일 수 있다. 예를 들면, 외부 장치(610)의 프로토콜 구조는 와이파이(WiFi) 및/또는 이더넷(Ethernet), IP, UDP 및/또는 TCP, CoAP 및 응용 계층을 포함할 수 있다.The
블루투스 장치(110)의 통신부(220) 및 게이트웨이(120)의 제1 통신부(320)는 블루투스 통신을 통해 서로 간에 통신할 수 있다. 게이트웨이(120)의 제2 통신부(330) 및 외부 장치(610)는 유무선 네트워크를 통해 서로 간에 통신할 수 있다The
게이트웨이(120)의 프록시 모듈은 블루투스 장치(110) 및 게이트웨이(120) 내부의 URI-경로(path) 간의 매핑(mapping)을 관리할 수 있다.The proxy module of the
게이트웨이(120)의 프록시 모듈은 제1 통신부(320)를 통해 연결된 블루투스 장치(110)의 주소를 게이트웨이(120) 내부의 URI-경로에 매핑함으로써 블루투스 장치(110) 및 제2 통신부(330)를 통해 연결된 외부 장치(610) 간의 통신을 가능하게 할 수 있다.The proxy module of the
블루투스 장치(110)가 외부 장치(610)로 요청을 전송할 경우, 블루투스 장치(110)는 CoAP 메시지 내의 URI-호스트(host)의 옵션 및 URI-포트(port)의 옵션을 이용할 수 있다. 블루투스 장치(110)의 처리부(210)는 URI-호스트의 옵션 및 URI-포트의 옵션을 포함하는 CoAP의 요청 메시지를 생성할 수 있다. 블루투스 장치(110)의 통신부(220)는 CoAP의 요청 메시지를 게이트웨이(120)로 전송할 수 있다.When the
게이트웨이(120)의 제1 통신부(320)는 블루투스 장치(110)로부터 URI-호스트의 옵션 및 URI-포트의 옵션을 포함하는 CoAP의 요청 메시지를 수신할 수 있다. 게이트웨이(120)의 처리부(310)는 CoAP의 요청 메시지로부터 URI-호스트 및 URI-포트를 제거할 수 있고, 요청 메시지에 IP 헤더 및 UDP 헤더를 세팅할 수 있다. 게이트웨이(120)의 제2 통신부(330)는 IP 헤더 및 UDP 헤더가 세팅된 요청 메시지를 외부 장치(610)로 전달할 수 있다.The
외부 장치(610)는 요청 메시지에 대한 응답 메시지를 게이트웨이(120)로 전송할 수 있다. 게이트웨이(120)의 제2 통신부(330)는 요청 메시지에 대한 응답 메시지를 수신할 수 있다. 게이트웨이(120)의 제1 통신부(320)는 응답 메시지를 블루투스 장치(110)로 전달할 수 있다. 블루투스 장치(110)의 통신부(220)는 게이트웨이(120)로부터 응답 메시지를 수신할 수 있다. 게이트웨이(120)의 처리부(310)는 요청 메시지에 대한 응답 메시지를 수신하였을 때, 요청 메시지를 전송한 블루투스 장치(110)로 응답 메시지가 전달될 수 있도록 세션(session)을 관리할 수 있다.
The
도 7은 일 실시예에 따른 블루투스 장치의 통신 방법의 흐름도이다.7 is a flowchart of a communication method of a Bluetooth device according to an embodiment.
단계(710)에서, 블루투스 장치(110)는 블루투스 장치(110)를 게이트웨이(120)에 등록할 수 있다.In
단계(720)에서, 블루투스 장치(110)는 블루투스 장치(110)의 리소스를 게이트웨이(120)에 등록할 수 있다.In
단계(730)에서, 블루투스 장치(110)는 게이트웨이(120)에 의해 제공되는 게이트웨이 기능을 사용하여 통신을 수행할 수 있다. 통신의 대상은 외부 장치(610)일 수 있다.In
블루투스 장치(110)의 프로토콜 스택은 CoAP 계층 및 L2CAP 계층을 포함할 수 있고, CoAP 계층은 L2CAP 계층의 바로 상위의 계층일 수 있다.
The protocol stack of the
도 8는 일 실시예에 따른 게이트웨이 통신 방법의 흐름도이다.8 is a flowchart of a gateway communication method according to an embodiment.
단계(810)에서, 게이트웨이(120)는 블루투스 장치(110)를 검색할 수 있다.In
단계(820)에서, 게이트웨이(120)는 블루투스 장치(110)의 리소스를 확인할 수 있다.In
단계(830)에서, 게이트웨이(120)는 블루투스 장치(110)와 통신할 수 있다. 게이트웨이(120)는 블루투스 장치(110)에게 게이트웨이 기능을 제공할 수 있다.
At
도 9는 일 예에 따른 블루투스 장치들 간의 CoAP를 이용하는 통신을 도시한다.9 illustrates communication using a CoAP between Bluetooth devices according to an example.
도 9에서 예시된 통신에서는, 게이트웨이(120) 없이 블루투스 장치들 간의 통신이 이루어질 수 있다.In the communication illustrated in Fig. 9, communication between the Bluetooth devices can be made without the
예를 들면, 블루투스 장치(110)는 사물인터넷 노드일 수 있고, 다른 블루투스 장치(910)는 사물인터넷 서버일 수 있다. 또는. 블루투스 장치(110)는 사물인터넷 서버일 수 있고, 다른 블루투스 장치(910)는 사물인터넷 노드일 수 있다.For example, the
블루투스 장치(110)는 게이트웨이(120) 없이 CoAP 클라이언트 및/또는 CoAP 서버의 역할을 수행할 수 있다.The
블루투스 장치(110)는 스마트폰과 같이 블루투스 노드를 제어하고, 블루투스 노드로부터 값을 획득하는 역할을 수행할 수 있다. 블루투스 장치(110)는 다른 블루투스 장치(910)를 제어할 수 있고, 다른 블루투스 장치(910)로부터 값을 획득할 수 있다. 이러한 경우, 블루투스 장치(110)는 CoAP의 요청 메시지를 다른 블루투스 장치(910)로 전송하는 CoAP 클라이언트의 동작을 수행할 수 있다. 다른 블루투스 장치(910)는 CoAP의 요청 메시지에 대한 CoAP의 응답 메시지를 블루투스 장치(110)로 전송하는 CoAP 서버의 동작을 수행할 수 있다.The
상기의 역할은 바뀔 수 있다. 다른 블루투스 장치(910)는 스마트폰과 같이 블루투스 노드를 제어하고, 블루투스 노드로부터 값을 획득하는 역할을 수행할 수 있다. 다른 블루투스 장치(910)는 블루투스 장치(110)를 제어할 수 있고, 블루투스 장치(110)로부터 값을 획득할 수 있다. 이러한 경우, 다른 블루투스 장치(910)는 CoAP의 요청 메시지를 블루투스 장치(110)로 전송하는 CoAP 클라이언트의 동작을 수행할 수 있다. 블루투스 장치(110)는 CoAP의 요청 메시지에 대한 CoAP의 응답 메시지를 다른 블루투스 장치(910)로 전송하는 CoAP 서버의 동작을 수행할 수 있다.The above roles may be changed. The
블루투스 장치(110) 및 다른 블루투스 장치(910)는 블루투스 주소를 사용하여 서로를 식별할 수 있다. 말하자면, 블루투스 노드들 간의 식별은 블루투스 주소를 통해 이루어질 수 있다.
The
도 10은 일 예에 따른 브로드캐스트를 사용하는 CoAP를 지원하는 블루투스 장치의 검색 방법의 흐름도이다.10 is a flowchart of a search method of a Bluetooth device supporting CoAP using broadcast according to an example.
게이트웨이(120)는 블루투스 장치(110)를 검색할 수 있다. 예를 들면, 블루투스 장치(110)는 블루투스 지원 센서 노드일 수 있다. 또한, 블루투스 장치(110)는 사물인터넷 기기일 수 있으며, CoAP를 지원하는 BLE 기기일 수 있다.The
실시예에서, 검색의 주체는 게이트웨이(120)가 아닌 스마트폰이나 블루투스 장치(110)일 수 있다. 또한, 검색의 대상은 다른 블루투스 장치일 수 있다. 말하자면, 아래의 실시예에서, 게이트웨이(120)는 블루투스 장치(110)로 대체될 수 있다.In an embodiment, the subject of the search may be a smartphone or a
도 10에서, 제1 블루투스 장치(1010) 및 제2 블루투스 장치(1020)의 각각은 블루투스 장치(110)에 대응할 수 있다.In FIG. 10, each of the
도 8을 참조하여 전술된 단계(810)는 아래의 단계들(1030, 1040 및 1050)을 포함할 수 있다.Step 810 described above with reference to FIG. 8 may include the following steps 1030, 1040, and 1050.
게이트웨이(120)는 제1 통신부(320)의 통신 범위 내에서 CoAP를 지원하는 블루투스 장치(110)를 검색할 수 있다. 블루투스 장치(110)의 검색에 있어서, 전통적인 블루투스 스택의 GATT 및 ATT가 사용될 수 있다. 그러나, CoAP 및 L2CAP의 구조만을 가지고, 블루투스 장치(110)의 검색이 가능해지면, 게이트웨이(120)의 구조가 더 간단해질 수 있고, 절차가 더 단순하게 될 수 있다.The
실시예에서, 게이트웨이(120)의 메시지의 생성은 게이트웨이(120)의 처리부(310)에 의해 이루어질 수 있다. 게이트웨이(120)의 메시지의 전송 및 수신은 게이트웨이(120)의 제1 통신부(320)에 의해 이루어질 수 있다. 제1 블루투스 장치(1010)의 메시지의 생성은 제1 블루투스 장치(1010)의 처리부에 의해 이루어질 수 있다. 제1 블루투스 장치(1010)의 메시지의 전송 및 수신은 제1 블루투스 장치(1010)의 통신부에 의해 이루어질 수 있다. 제2 블루투스 장치(1020)의 메시지의 생성은 제2 블루투스 장치(1020)의 처리부에 의해 이루어질 수 있다. 제1 블루투스 장치(1020)의 메시지의 전송 및 수신은 제1 블루투스 장치(1020)의 통신부에 의해 이루어질 수 있다. 제1 블루투스 장치(1010)의 처리부 및 제2 블루투스 장치(1020)의 처리부의 각각은 블루투스 장치(110)의 처리부(210)에 대응할 수 있다. 제1 블루투스 장치(1010)의 통신부 및 제2 블루투스 장치(1020)의 통신부의 각각은 블루투스 장치(110)의 통신부(220)에 대응할 수 있다.In an embodiment, the generation of the message of the
단계(1030)에서, 게이트웨이(120)는 브로드캐스트 메시지를 생성할 수 있다. 게이트웨이(120)는 브로드캐스트 메시지를 브로드캐스트할 수 있다.In step 1030, the
브로드캐스트 메시지는 게이트웨이(120)의 주변에 통신 가능한 CoAP를 지원하는 블루투스 장치(110)를 검색하기 위한 메시지일 수 있다.The broadcast message may be a message for searching for a
브로드캐스트 메시지의 블루투스 링크 계층 패킷 타입은 어드버타이징 인디케이션(advertising indication; ADV_IND)일 수 있다. 브로드캐스트 메시지의 에이디(AD) 타입은 CoAP 메시지라는 것을 나타내는 값을 가질 수 있다. 브로드캐스트 메시지의 페이로드는 CoAP Ping(핑) 요청 메시지를 포함할 수 있다.The Bluetooth link layer packet type of the broadcast message may be an advertisement indication (ADV_IND). The AD type of the broadcast message may have a value indicating that it is a CoAP message. The payload of the broadcast message may include a CoAP Ping (ping) request message.
CoAP Ping 요청 메시지의 트랜잭션(transaction) 타입은 컨퍼머블(confirmable)일 수 있다. CoAP Ping 요청 메시지의 토큰(token) 길이는 0일 수 있다. CoAP Ping 요청 메시지의 코드는 0.00 (즉, 빔(empty))일 수 있다. CoAP Ping 요청 메시지는 트랜잭션 타입, 토큰 길이 및 코드 외의 다른 옵션을 포함하지 않을 수 있다. CoAP Ping 요청 메시지는 4바이트일 수 있다.The transaction type of the CoAP Ping request message may be confirmable. The token length of the CoAP Ping request message may be zero. The code of the CoAP Ping request message may be 0.00 (i.e., empty). The CoAP Ping request message may not include the transaction type, token length, and other options besides the code. The CoAP Ping request message may be 4 bytes.
통신 범위 내에 있는 블루투스 장치들은 브로드캐스트 메시지를 수신할 수 있다.Bluetooth devices within the communication range can receive broadcast messages.
단계(1040)에서, 브로드캐스트 메시지를 수신한 제1 블루투스 장치(1010)는 브로드캐스트 메시지에 대한 응답 메시지를 생성할 수 있다. 제1 블루투스 장치(1010)는 응답 메시지를 게이트웨이(120)로 전송할 수 있다.In step 1040, the
응답 메시지의 블루투스 링크 계층 패킷 타입은 어드버타이징 다이렉트 인디케이션(advertising direct indication; ADV_DIRECT_IND)일 수 있다. 응답 메시지의 AD 타입은 CoAP 메시지라는 것을 나타내는 값을 가질 수 있다. 응답 메시지의 페이로드는 CoAP Ping 요청 메시지에 대한 CoAP Ping 응답 메시지를 포함할 수 있다.The Bluetooth link layer packet type of the response message may be an advertising direct indication (ADV_DIRECT_IND). The AD type of the response message may have a value indicating that it is a CoAP message. The payload of the response message may include a CoAP Ping response message for the CoAP Ping request message.
CoAP Ping 응답 메시지의 트랜잭션 타입은 리셋(reset; RST)일 수 있다. CoAP Ping 응답 메시지의 토큰 길이는 0일 수 있다. CoAP Ping 응답 메시지의 코드는 0.00 (즉, 빔)일 수 있다. CoAP Ping 응답 메시지의 메시지 식별자(message identifier; MID)는 CoAP Ping 요청 메시지의 MID와 동일할 수 있다. CoAP Ping 응답 메시지는 4바이트일 수 있다.The transaction type of the CoAP Ping response message may be a reset (RST). The token length of the CoAP Ping response message may be zero. The code of the CoAP Ping response message may be 0.00 (i.e., beam). The message identifier (MID) of the CoAP Ping response message may be the same as the MID of the CoAP Ping request message. The CoAP Ping reply message may be 4 bytes.
응답 메시지를 수신한 게이트웨이(120)는 주변에 CoAP를 지원하는 제1 블루투스 장치(1010)가 존재한다는 것을 인식할 수 있다. 예를 들면, 게이트웨이(120)는 제1 블루투스 장치(1010)의 주소를 알 수 있다.The
단계(1050)에서, 브로드캐스트 메시지를 수신한 제2 블루투스 장치(1020)는 브로드캐스트 메시지에 대한 응답 메시지를 생성할 수 있다. 제2 블루투스 장치(1020)는 응답 메시지를 게이트웨이(120)로 전송할 수 있다.In step 1050, the
응답 메시지를 수신한 게이트웨이(120)는 주변에 CoAP를 지원하는 제2 블루투스 장치(1020)가 존재한다는 것을 인식할 수 있다. 예를 들면, 게이트웨이(120)는 제2 블루투스 장치(1020)의 주소를 알 수 있다.Upon receiving the response message, the
전술된 것처럼, 게이트웨이(120)는 브로드캐스트 메시지를 사용하여 블루투스 장치(110)를 검색할 수 있다. 게이트웨이(120)는 CoAP Ping 요청 메시지를 포함하는 브로드캐스트 메시지를 브로드캐스트하고, 블루투스 장치(110)로부터 CoAP Ping 요청 메시지에 대응하는 CoAP Ping 응답 메시지를 수신함으로써 블루투스 장치(110)를 검출할 수 있다.
As described above, the
도 11은 일 예에 따른 관찰을 사용하는 CoAP를 지원하는 블루투스 장치의 검색 방법의 흐름도이다.11 is a flowchart of a search method of a Bluetooth device supporting CoAP using observation according to an example.
게이트웨이(120)는 블루투스 장치(110)를 검색할 수 있다. 예를 들면, 블루투스 장치(110)는 블루투스 지원 센서 노드일 수 있다. 또한, 블루투스 장치(110)는 사물인터넷 기기일 수 있으며, CoAP를 지원하는 BLE 기기일 수 있다.The
실시예에서, 제1 게이트웨이(1110) 및 제2 게이트웨이(1120)의 각각은 스마트폰일 수 있다.In an embodiment, each of the
도 11에서, 제1 게이트웨이(1110) 및 제2 게이트웨이(1120)의 각각은 게이트웨이(120)에 대응할 수 있다.In FIG. 11, each of the
도 8을 참조하여 전술된 단계(810)는 아래의 단계(1130)를 포함할 수 있다.Step 810 described above with reference to FIG. 8 may include
실시예에서, 블루투스 장치(110)의 메시지의 생성은 블루투스 장치(110)의 처리부(210)에 의해 이루어질 수 있다. 블루투스 장치(110)의 메시지의 전송 및 수신은 블루투스 장치(110)의 통신부(220)에 의해 이루어질 수 있다. 제1 게이트웨이(1110)의 메시지의 전송 및 수신은 제1 게이트웨이(1110)의 제1 통신부에 의해 이루어질 수 있다. 제2 게이트웨이(1120)의 메시지의 전송 및 수신은 제2 게이트웨이(1120)의 통신부에 의해 이루어질 수 있다. 제1 게이트웨이(1110)의 통신부 및 제2 게이트웨이(1120)의 통신부의 각각은 게이트웨이(120)의 제1 통신부(320)에 대응할 수 있다.In an embodiment, the message of the
단계(1130)에서, 블루투스 장치(110)는 브로드캐스트 메시지를 생성할 수 있다. 블루투스 장치(110)는 브로드캐스트 메시지를 브로드캐스트할 수 있다. 블루투스 장치(110)는 주기적으로 브로드캐스트 메시지를 브로드캐스트할 수 있다.At
브로드캐스트 메시지는 통신 가능한 CoAP를 지원하는 블루투스 장치(110)가 존재함을 알리기 위한 메시지일 수 있다. 브로드캐스트 메시지는 블루투스 장치(110)가 CoAP를 지원하는 블루투스 노드임을 나타낼 수 있다.The broadcast message may be a message for notifying that the
브로드캐스트 메시지의 블루투스 링크 계층 패킷 타입은 ADV_IND일 수 있다. 브로드캐스트 메시지의 AD 타입은 CoAP 메시지라는 것을 나타내는 값을 가질 수 있다. 브로드캐스트 메시지의 페이로드는 가상 CoAP Ping 응답 메시지를 포함할 수 있다.The Bluetooth link layer packet type of the broadcast message may be ADV_IND. The AD type of the broadcast message may have a value indicating that it is a CoAP message. The payload of the broadcast message may include a virtual CoAP Ping response message.
가상 CoAP Ping 응답 메시지의 트랜잭션 타입은 RST일 수 있다. 가상 CoAP Ping 응답 메시지의 토큰 길이는 0일 수 있다. 가상 CoAP Ping 응답 메시지의 코드는 0.00 (즉, 빔)일 수 있다. 가상 CoAP Ping 응답 메시지의 MID는 임의의 값을 가질 수 있다. 가상 CoAP Ping 응답 메시지는 4바이트일 수 있다.The transaction type of the virtual CoAP Ping response message may be RST. The token length of the virtual CoAP Ping response message may be zero. The code of the virtual CoAP Ping reply message may be 0.00 (i.e., beam). The MID of the virtual CoAP Ping response message can have any value. The virtual CoAP Ping reply message may be 4 bytes.
통신 범위 내에 있는 게이트웨이들은 브로드캐스트 메시지를 수신할 수 있다.Gateways within the communication range can receive broadcast messages.
브로드캐스트 메시지를 관찰하고 있던 제1 게이트웨이(1110)는 브로드캐스트 메시지를 수신할 수 있다. 제1 게이트웨이(1110)는 브로드캐스트 메시지를 수신함에 따라 CoAP를 지원하는 BLE 기기인 블루투스 장치(110)를 발견할 수 있다.The
또한, 브로드캐스트 메시지를 관찰하고 있던 제2 게이트웨이(1120)는 브로드캐스트 메시지를 수신할 수 있다. 제2 게이트웨이(1120)는 브로드캐스트 메시지를 수신함에 따라 CoAP를 지원하는 BLE 기기인 블루투스 장치(110)를 발견할 수 있다.In addition, the
전술된 것처럼, 게이트웨이(120)는 브로드캐스트 메시지를 관찰할 수 있다. 게이트웨이(120)는 가상 CoAP Ping 응답 메시지를 포함하는 브로드캐스트 메시지를 수신함에 따라 브로드캐스트 메시지를 브로드캐스트한 블루투스 장치(110)를 발견할 수 있다.
As described above, the
도 12는 일 예에 따른 블루투스 장치의 리소스를 검색하는 방법의 흐름도이다.12 is a flowchart of a method of searching for a resource of a Bluetooth device according to an example.
게이트웨이(120)가 블루투스 장치(110)를 발견 또는 검색한 후, 게이트웨이(120)는 블루투스 장치(110)가 어떤 리소스를 가지고 있는지를 확인할 수 있다.After the
리소스는 기능(function) 및 속성(attribute)을 포함할 수 있다.A resource may include a function and an attribute.
실시예에서, 게이트웨이(120)는 L2CAP 계층 위의 CoAP를 이용하여 블루투스 장치(110)의 리소스를 검색할 수 있다.In an embodiment, the
도 8을 참조하여 전술된 단계(820)는 아래의 단계들(1210, 1220, 1230, 1240 및 1250)을 포함할 수 있다.Step 820 described above with reference to FIG. 8 may include the following
실시예에서, 블루투스 장치(110)의 메시지의 전송 및 수신은 통신부(220)에 의해 이루어질 수 있다. 블루투스 장치(110)에 의해 전송되는 메시지는 처리부(210)에 의해 생성될 수 있다. 게이트웨이(120)의 메시지의 전송 및 수신은 제1 통신부(320)에 의해 이루어질 수 있다. 게이트웨이(120)에 의해 전송되는 메시지는 처리부(310)에 의해 생성될 수 있다.In an embodiment, the transmission and reception of messages of the
단계(1210)에서, 게이트웨이(120)는 블루투스 장치(110)와 통신 채널을 설립(establish)할 수 있다. 설립된 통신 채널은 소정의 시간 동안 유지될 수 있다.At
통신 채널을 설립하기 위해 게이트웨이(120)는 연결 요청(connect request; CONNECT_REQ) 메시지를 블루투스 장치(110)로 전송할 수 있다.To establish a communication channel, the
단계(1220)에서, 게이트웨이(120)는 "CoAP GET(겟) /.cb" 메시지를 블루투스 장치(110)로 전송할 수 있다. "CoAP GET /.cb" 메시지는 링크 계층(Link Layer; LL) 데이터 패킷의 형태로 전송될 수 있다.In
".cb"는 CoAP 메시지의 URI-경로 옵션에 포함될 수 있다. ".cb"의 역할은 IETF CoAP 규격(예를 들면, 알에프씨7252(RFC7252))의 ".wellknown/core"의 역할과 동일할 수 있다."다만, ".wellknown/core"는 블루투스 통신에 있어서는 너무 길 수 있기 때문에, 단순하게 줄여서 사용될 수 있다.".cb" may be included in the URI-route option of the CoAP message. The role of ".cb" may be the same as the role of ".wellknown / core" in the IETF CoAP specification (eg, RFC 7252) Since it can be too long, it can be used simply abbreviated.
단계(1230)에서, 연결 요청 메시지를 수신한 블루투스 장치(110)는 연결 요청 메시지에 대한 응답 메시지를 전송할 수 있다.In
응답 메시지의 크기가 소정의 제1 값의 이상인 경우, 블루투스 L2에서 응답 메시지가 여러 개의 서브 메시지들로 나뉘어질 수 있고, 나뉘어진 서브 메시지들이 전송될 수 있다.If the size of the response message is greater than or equal to a predetermined first value, the response message may be divided into a plurality of sub messages in the Bluetooth L2, and divided sub messages may be transmitted.
또한, 응답 메시지의 크기가 소정의 제2 값의 이상인 경우, CoAP의 블록와이즈(blockwise) 전송(transfer) 기능이 사용될 수 있다.In addition, if the size of the response message is greater than or equal to a predetermined second value, a blockwise transfer function of the CoAP can be used.
응답 메시지의 페이로드는 블루투스 장치(110)의 리소스의 경로를 포함할 수 있다. 리소스는 복수일 수 있다. 페이로드는 복수의 리소스들의 경로들의 목록을 포함할 수 있다.The payload of the response message may include the path of the resource of the
단계(1230)는 단계(1231) 및 단계(1232)를 포함할 수 있다.
단계(1231)에서, 블루투스 장치(110)는 "CoAP 2.05 Content(컨텐츠)" 메시지를 게이트웨이(120)로 전송할 수 있다. "CoAP 2.05 Content" 메시지는 LL 데이터 패킷의 형태로 전송될 수 있다.In
단계(1232)에서, 블루투스 장치(110)는 "CoAP 2.05 continue(컨티뉴)" 메시지를 게이트웨이(120)로 전송할 수 있다. "CoAP 2.05 continue" 메시지는 LL 데이터 패킷의 형태로 전송될 수 있다.In
단계(1240)에서, 게이트웨이(120)는 리소스의 경로에 대한 재질의(re-question) 메시지를 블루투스 장치(110)로 전송할 수 있다. 재질의 메시지는 경로에 대한 세부의 정보를 요청하는 메시지일 수 있다.At
예를 들면, "container"라는 리소스의 경로가 존재하는 경우, 게이트웨이(120)는 "CoAP GET(겟) /container Accept(어셉트):link-format(링크-포맷)" 메시지를 블루투스 장치(110)로 전송할 수 있다. "CoAP GET /container Accept:link-format" 메시지는 LL 데이터 패킷의 형태로 전송될 수 있다.For example, if there is a path of a resource called " container ", the
단계(1250)에서, 리소스의 경로에 대한 재질의 메시지를 수신한 블루투스 장치(110)는 재질의 메시지에 대한 응답 메시지를 전송할 수 있다. 응답 메시지는 리소스의 경로에 대한 정보를 포함할 수 있다.In
응답 메시지의 크기가 소정의 제1 값의 이상인 경우, 블루투스 L2에서 응답 메시지가 여러 개의 서브 메시지들로 나뉘어질 수 있고, 나뉘어진 서브 메시지들이 전송될 수 있다.If the size of the response message is greater than or equal to a predetermined first value, the response message may be divided into a plurality of sub messages in the Bluetooth L2, and divided sub messages may be transmitted.
또한, 응답 메시지의 크기가 소정의 제2 값의 이상인 경우, CoAP의 블록와이즈 전송 기능이 사용될 수 있다.Also, when the size of the response message is equal to or larger than a predetermined second value, the block-wise transmission function of CoAP can be used.
응답 메시지의 페이로드는 리소스의 경로에 대한 정보를 포함할 수 있다.The payload of the response message may include information about the path of the resource.
단계(1250)는 단계(1251) 및 단계(1252)를 포함할 수 있다.
단계(1251)에서, 블루투스 장치(110)는 "CoAP 2.05 content" 메시지를 게이트웨이(120)로 전송할 수 있다. "CoAP 2.05 content" 메시지는 LL 데이터 패킷의 형태로 전송될 수 있다.At
단계(1252)에서, 블루투스 장치(110)는 "CoAP 2.05 continue" 메시지를 게이트웨이(120)로 전송할 수 있다. "CoAP 2.05 continue" 메시지는 LL 데이터 패킷의 형태로 전송될 수 있다.At
전술된 것처럼, 게이트웨이(120)는 블루투스 장치(110)의 리소스를 검색하기 위해 연결 요청 메시지를 블루투스 장치(110)로 전송할 수 있다. 게이트웨이(120)는 블루투스 장치(110)로부터 연결 요청 메시지에 대한 응답 메시지를 수신할 수 있다. 응답 메시지는 블루투스 장치(110)의 리소스의 경로를 포함할 수 있다. 게이트웨이(120)는 리소스의 경로를 포함하는 재질의 메시지를 블루투스 장치(110)로 전송할 수 있다. 게이트웨이(120)는 리소스의 경로에 대한 정보를 포함하는 응답 메시지를 블루투스 장치(110)로부터 수신할 수 있다. 게이트웨이(120)는 재질의 메시지에 대한 응답 메시지로부터 리소스의 경로에 대한 정보를 획득할 수 있다.
As described above, the
도 13은 일 예에 따른 게이트웨이의 외부 장치로부터의 요청을 처리하는 방법의 흐름도이다.13 is a flowchart of a method of processing a request from an external device of a gateway according to an example.
게이트웨이(120)는 외부 장치(610)로부터의 요청을 처리할 수 있다. 게이트웨이(120)를 통해 블루투스 장치(110)는 외부 장치(610)로부터의 요청에 대한 응답을 제공할 수 있다.The
실시예에서, 블루투스 장치(110)의 메시지의 전송 및 수신은 통신부(220)에 의해 이루어질 수 있다. 블루투스 장치(110)에 의해 전송되는 메시지는 처리부(210)에 의해 생성될 수 있다. 게이트웨이(120)에 있어서, 게이트웨이(120) 및 블루투스 장치(110) 간의 메시지의 전송 및 수신은 제1 통신부(320)에 의해 이루어질 수 있다. 게이트웨이(120)에 있어서, 게이트웨이(120) 및 외부 장치(610) 간의 메시지의 전송 및 수신은 제2 통신부(330)에 의해 이루어질 수 있다. 게이트웨이(120)에 의해 전송되는 메시지는 처리부(310)에 의해 생성될 수 있다.In an embodiment, the transmission and reception of messages of the
단계(1310)에서, 게이트웨이(120)의 처리부(310)는 블루투스 장치(110)를 검색할 수 있고, 검색된 블루투스 장치(110)의 주소를 저장할 수 있다.In
단계(1310)는 도 8을 참조하여 전술된 단계(810)에 대응할 수 있다. 블루투스 장치(110)의 검색을 위해 도 10 및 도 11을 참조하여 전술된 실시예가 사용될 수 있다.
단계(1320)에서, 게이트웨이(120)는 블루투스 장치(110)의 리소스를 검색할 수 있고, 검색된 리소스의 정보를 저장할 수 있다.In step 1320, the
단계(1320)는 도 8을 참조하여 전술된 단계(820)에 대응할 수 있다. 블루투스 장치(110)의 리소스의 검색을 위해 도 12를 참조하여 전술된 실시예가 사용될 수 있다.Step 1320 may correspond to step 820 described above with reference to FIG. The above-described embodiment with reference to FIG. 12 can be used for searching for the resources of the
단계(1330)에서, 게이트웨이(120)의 처리부(310)는 블루투스 장치(110)의 리소스에 대한 매핑을 생성할 수 있다. 게이트웨이(120)의 처리부(310)는 블루투스 장치(110)의 리소스 및 게이트웨이(120)의 리소스 경로 간의 매핑을 생성할 수 있다. 게이트웨이(120)는 블루투스 장치(110)의 리소스 및 게이트웨이(120)의 리소스 경로 간의 매핑을 저장할 수 있다.In
리소스 경로는 프리픽스(prefix), 블루투스 장치 식별자 및 리소스 식별자를 포함할 수 있다.The resource path may include a prefix, a Bluetooth device identifier, and a resource identifier.
프리픽스는 블루투스 네트워크 내의 노드에 대한 경로임을 나타낼 수 있다.The prefix may indicate a path to a node in the Bluetooth network.
블루투스 장치 식별자는 검색된 블루투스 장치(110)의 식별자일 수 있다. 리소스 식별자는 검색된 리소스의 식별자일 수 있다.The Bluetooth device identifier may be an identifier of the searched
예를 들면, 프리픽스가 "ble"이고, 블루투스 기기 식별자가 "00123"이고, 리소스의 식별자가 "temp"이면, 리소스 경로는 "/ble/00123/temp"일 수 있다.For example, if the prefix is "ble", the Bluetooth device identifier is "00123", and the identifier of the resource is "temp", then the resource path may be "/ ble / 00123 / temp".
단계(1330)는 도 8을 참조하여 전술된 단계(820)에 대응할 수 있다. 말하자면, 단계(820)는 단계들(1320 및 1330)을 포함할 수 있다.
아래의 단계들(1340, 1350, 1355, 1360, 1365, 1370, 1380 및 1390)은 도 7을 참조하여 전술된 단계(730) 및 도 8을 참조하여 전술된 단계(830)의 각각에 대응할 수 있다.The following
단계(1340)에서, 게이트웨이(120)는 외부 장치(610)로부터 요청 메시지를 수신할 수 있다.In step 1340, the
요청 메시지는 CoAP의 요청 메시지일 수 있다.The request message may be a request message of the CoAP.
게이트웨이(120)는 요청 메시지의 URI-경로를 사용하여 요청 메시지의 목적지(destination)인 블루투스 장치(110)의 주소를 검색할 수 있다.The
단계(1350)에서, 요청 메시지의 목적지인 블루투스 장치(110)와의 블루투스 연결이 성립되어 있지 않은 경우, 게이트웨이(120)의 처리부(310)는 게이트웨이(120) 및 블루투스 장치(110) 간의 연결을 성립시킬 수 있다. 블루투스 연결의 성립을 위해 게이트웨이(120)는 CONNECT_REQ 메지지를 블루투스 장치(110)로 전송할 수 있다. CONNECT_REQ 메지지를 통해 게이트웨이(120) 및 블루투스 장치(110) 간의 연결이 성립될 수 있다.The
단계(1355)에서, 게이트웨이(120)의 처리부(310)는 요청 메시지의 필드를 제거할 수 있다. 게이트웨이(120)의 처리부(310)는 요청 메시지로부터 1) URI-호스트, 2) URI-포트, 3) URI-경로 중 프리픽스 및 4) URI-경로 중 블루투스 장치 식별자를 제거할 수 있고, 요청 메시지로부터 IP 헤더 및 UDP 헤더를 제거할 수 있다.At
단계(1360)에서, 게이트웨이(120)는 요청 메시지를 블루투스 장치(110)로 전달할 수 있다.In step 1360, the
단계(1365)에서, 게이트웨이(120)의 처리부(310)는 요청 메시지에 대한 응답 메시지를 전달하기 위해 요구되는 정보를 저장할 수 있다. 게이트웨이(120)의 처리부(310)는 요청 메시지를 전송한 소스인 외부 장치(610)의 주소 및 포트 번호를 저장할 수 있다. 또한, 게이트웨이(120)는 요청 메시지의 토큰 필드 및 MID 필드를 저장할 수 있다.In
단계(1370)에서, 게이트웨이(120)는 블루투스 장치(110)로부터 요청 메시지에 대한 응답 메시지를 수신할 수 있다.In step 1370, the
단계(1380)에서, 응답 메시지를 수신하면, 게이트웨이(120)의 처리부(310)는 저장된 외부 장치(610)의 주소, 외부 장치(610)의 포트 번호, 토큰 필드 및 MID 필드를 참고하여 응답 메시지의 목적지인 외부 장치(610)를 식별할 수 있다.Upon receiving the response message, the
단계(1390)에서, 게이트웨이(120)는 응답 메시지를 외부 장치(610)로 전달할 수 있다.
In step 1390, the
도 14는 일 예에 따른 게이트웨이의 외부 장치로부터의 요청을 처리하는 방법의 흐름도이다.14 is a flowchart of a method of processing a request from an external device of a gateway according to an example.
게이트웨이(120)는 블루투스 장치(110)로부터의 요청을 처리할 수 있다. 게이트웨이(120)를 통해 외부 장치(610)는 블루투스 장치(110)로부터의 요청에 대한 응답을 제공할 수 있다.The
실시예에서, 블루투스 장치(110)의 메시지의 전송 및 수신은 통신부(220)에 의해 이루어질 수 있다. 블루투스 장치(110)에 의해 전송되는 메시지는 처리부(210)에 의해 생성될 수 있다. 게이트웨이(120)에 있어서, 게이트웨이(120) 및 블루투스 장치(110) 간의 메시지의 전송 및 수신은 제1 통신부(320)에 의해 이루어질 수 있다. 게이트웨이(120)에 있어서, 게이트웨이(120) 및 외부 장치(610) 간의 메시지의 전송 및 수신은 제2 통신부(330)에 의해 이루어질 수 있다. 게이트웨이(120)에 의해 전송되는 메시지는 처리부(310)에 의해 생성될 수 있다.In an embodiment, the transmission and reception of messages of the
우선, 도 13을 참조하여 전술된 단계들(1310, 1320 및 1330)이 수행될 수 있다.First, the
아래의 단계들(1410, 1420, 1430, 1440, 1450, 1460, 1470 및 1480)은 도 7을 참조하여 전술된 단계(730) 및 도 8을 참조하여 전술된 단계(830)의 각각에 대응할 수 있다.The following
다음으로, 단계(1410)에서, 게이트웨이(120)는 블루투스 장치(110)로부터 요청 메시지를 수신할 수 있다.Next, at step 1410, the
요청 메시지는 CoAP의 요청 메시지일 수 있다.The request message may be a request message of the CoAP.
게이트웨이(120)는 요청 메시지의 URI-경로를 사용하여 요청 메시지의 목적지인 외부 장치(610)의 주소를 검색할 수 있다.The
단계(1420)에서, 게이트웨이(120)의 처리부(310)는 요청 메시지의 필드를 추출할 수 있고, 추출된 필드를 제거할 수 있다. 게이트웨이(120)의 처리부(310)는 요청 메시지로부터 1) URI-호스트 및 2) URI-포트를 추출할 수 있다. 게이트웨이(120)의 처리부(310)는 요청 메시지로부터 1) URI-호스트 및 2) URI-포트를 제거할 수 있다.In
단계(1430)에서, 게이트웨이(120)의 처리부(310)는 요청 메시지의 헤더를 설정할 수 있다. 게이트웨이(120)의 처리부(310)는 추출된 URI-호스트를 요청 메시지의 IP 헤더의 목적지 주소로 설정할 수 있다. 게이트웨이(120)의 처리부(310)는 추출된 URI-호스트를 요청 메시지의 IP 헤더의 목적지 주소로 설정할 수 있다.In
단계(1440)에서, 게이트웨이(120)는 요청 메시지를 외부 장치(610)로 전달할 수 있다.At step 1440, the
단계(1450)에서, 게이트웨이(120)의 처리부(310)는 요청 메시지에 대한 응답 메시지를 전달하기 위해 요구되는 정보를 저장할 수 있다. 게이트웨이(120)의 처리부(310)는 요청 메시지의 토큰 필드, MID 필드, 목적지 IP 주소, 포트 번호를 저장할 수 있고, 요청 메시지를 전송한 블루투스 장치(110)의 블루투스 장치 식별자 및 블루투스 장치(110)의 주소를 저장할 수 있다.In
단계(1460)에서, 게이트웨이(120)는 외부 장치(610)로부터 요청 메시지에 대한 응답 메시지를 수신할 수 있다.In step 1460, the
단계(1470)에서, 응답 메시지를 수신하면, 게이트웨이(120)의 처리부(310)는 저장된 토큰 필드, 저장된 MID 필드, 저장된 목적지 IP 주소, 저장된 포트 번호, 저장된 블루투스 장치(110)의 블루투스 장치 식별자 및 저장된 블루투스 장치(110)의 주소를 참고하여 응답 메시지의 목적지인 블루투스 장치(110)를 식별할 수 있다.Upon receiving the response message, the
단계(1480)에서, 게이트웨이(120)는 응답 메시지를 블루투스 장치(110)로 전달할 수 있다.
In step 1480, the
도 15는 일 예에 따른 게이트웨이 검색 방법의 흐름도이다.15 is a flowchart of a gateway search method according to an example.
블루투스 장치(110)의 동작 모드에 따라서는, 게이트웨이(120)가 블루투스 장치(110)를 검색하는 것이 아니라, 블루투스 장치(110)가 게이트웨이(120)를 검색해야 하는 경우도 발생할 수 있다. 실시예에서는, 블루투스 장치(110)가 게이트웨이(120)를 검색하는 과정이 설명된다.Depending on the operation mode of the
블루투스 장치(110)는 블루투스 지원 센서 노드일 수 있다. 또한, 블루투스 장치(110)는 사물인터넷 기기일 수 있으며, CoAP를 지원하는 BLE 기기일 수 있다.The
도 7을 참조하여 전술된 단계(710)는 아래의 단계들(1510 및 1520)을 포함할 수 있다.Step 710 described above with reference to FIG. 7 may include the following
실시예에서, 게이트웨이(120)의 메시지의 생성은 게이트웨이(120)의 처리부(310)에 의해 이루어질 수 있다. 게이트웨이(120)의 메시지의 전송 및 수신은 게이트웨이(120)의 제1 통신부(320)에 의해 이루어질 수 있다. 블루투스 장치(110)의 메시지의 생성은 블루투스 장치(110)의 처리부(210)에 의해 이루어질 수 있다. 블루투스 장치(110)의 메시지의 전송 및 수신은 블루투스 장치(110)의 통신부(220)에 의해 이루어질 수 있다.In an embodiment, the generation of the message of the
단계(1510)에서, 블루투스 장치(110)는 브로드캐스트 메시지를 생성할 수 있다. 블루투스 장치(110)는 브로드캐스트 메시지를 브로드캐스트할 수 있다.At
브로드캐스트 메시지는 블루투스 장치(110)의 주변에 통신 가능한 CoAP를 지원하는 게이트웨이(120)를 검색하기 위한 메시지일 수 있다.The broadcast message may be a message for searching for a
브로드캐스트 메시지의 블루투스 링크 계층 패킷 타입은 ADV_IND일 수 있다. 브로드캐스트 메시지의 페이로드는 "CoAP GET /gw" 요청 메시지를 포함할 수 있다. 요청 메시지의 "gw"는 게이트웨이 노드임을 나타내는 URI-경로의 문자열의 일 예일 수 있다.The Bluetooth link layer packet type of the broadcast message may be ADV_IND. The payload of the broadcast message may include a "CoAP GET / gw " request message. The "gw" in the request message may be an example of a URI-path string indicating that it is a gateway node.
통신 범위 내에 있는 게이트웨이(120)는 브로드캐스트 메시지를 수신할 수 있다.The
단계(1520)에서, 브로드캐스트 메시지를 수신한 게이트웨이(120)는 브로드캐스트에 대한 응답 메시지를 생성할 수 있다. 게이트웨이(120)는 응답 메시지를 블루투스 장치(110)로 전송할 수 있다.In
응답 메시지의 블루투스 링크 계층 패킷 타입은 ADV_DIRECT_IND일 수 있다. 응답 메시지의 페이로드는 "CoAP 2.05 컨텐츠(Content)" 메시지를 포함할 수 있다.The Bluetooth link layer packet type of the response message may be ADV_DIRECT_IND. The payload of the response message may include a "CoAP 2.05 Content (Content)" message.
"CoAP 2.05 컨텐츠(Content)" 메시지는 "CoAP GET /gw" 메시지에 대응할 수 있다.The "CoAP 2.05 Content (Content)" message may correspond to the "CoAP GET / gw"
"CoAP 2.05 컨텐츠(Content)" 메시지는 게이트웨이(120) 자체에 대한 정보를 포함할 수 있고, 블루투스 장치(110)를 등록할 수 있게 하는 URI-경로를 포함할 수 있다.The "CoAP 2.05 Content (Content)" message may include information about the
전술된 것처럼, 블루투스 장치(110)는 CoAP GET 메시지를 포함하는 브로드캐스트 메시지를 브로드캐스트하고, 게이트웨이(120)로부터 브로드캐스트 메시지에 대응하는 응답 메시지를 수신함으로써 게이트웨이(120)에 대한 정보를 획득할 수 있다.As described above, the
블루투스 장치(110)는 게이트웨이(120)에 대한 정보 및 URI-경로를 사용하여 게이트웨이(120)에 블루투스 장치(110)를 등록할 수 있다.
The
도 16은 일 예에 따른 관찰을 사용하는 CoAP를 지원하는 게이트웨이의 검색 방법의 흐름도이다.16 is a flowchart of a search method of a gateway supporting CoAP using observation according to an example.
블루투스 장치(110)는 게이트웨이(120)를 검색할 수 있다.The
도 7을 참조하여 전술된 단계(710)는 아래의 단계(1610)를 포함할 수 있다.Step 710 described above with reference to FIG. 7 may include
실시예에서, 게이트웨이(120)의 메시지의 생성은 게이트웨이(120)의 처리부(310)에 의해 이루어질 수 있다. 게이트웨이(120)의 메시지의 전송 및 수신은 게이트웨이(120)의 제1 통신부(320)에 의해 이루어질 수 있다. 블루투스 장치(110)의 메시지의 생성은 블루투스 장치(110)의 처리부(210)에 의해 이루어질 수 있다. 블루투스 장치(110)의 메시지의 전송 및 수신은 블루투스 장치(110)의 통신부(220)에 의해 이루어질 수 있다.In an embodiment, the generation of the message of the
단계(1610)에서, 게이트웨이(120)는 브로드캐스트 메시지를 생성할 수 있다. 게이트웨이(120)는 브로드캐스트 메시지를 브로드캐스트할 수 있다. 게이트웨이(120)는 주기적으로 브로드캐스트 메시지를 브로드캐스트할 수 있다.At
브로드캐스트 메시지는 통신 가능한 CoAP를 지원하는 게이트웨이(120)가 존재함을 알리기 위한 메시지일 수 있다. 브로드캐스트 메시지는 게이트웨이(120)가 CoAP를 지원하는 블루투스 노드임을 나타낼 수 있다.The broadcast message may be a message for notifying that the
브로드캐스트 메시지의 블루투스 링크 계층 패킷 타입은 ADV_IND일 수 있다. 브로드캐스트 메시지의 AD 타입은 CoAP 메시지라는 것을 나타내는 값을 가질 수 있다. 브로드캐스트 메시지의 페이로드는 "CoAP NON(논) PUT(풋) /gw" 메시지를 포함할 수 있다.The Bluetooth link layer packet type of the broadcast message may be ADV_IND. The AD type of the broadcast message may have a value indicating that it is a CoAP message. The payload of the broadcast message may include a "CoAP NON (non) PUT / gw" message.
통신 범위 내에 있는 블루투스 장치(110)는 브로드캐스트 메시지를 수신할 수 있다.The
브로드캐스트 메시지를 관찰하고 있던 블루투스 장치(110)는 브로드캐스트 메시지를 수신할 수 있다. 제1 게이트웨이(1110)는 브로드캐스트 메시지를 수신함에 따라 CoAP를 지원하는 BLE 기기인 게이트웨이(120)를 발견할 수 있다.The
전술된 것처럼, 블루투스 장치(110)는 브로드캐스트 메시지를 관찰할 수 있다. 블루투스 장치(110)는 CoAP 메시지를 포함하는 브로드캐스트 메시지를 수신함에 따라 브로드캐스트 메시지를 브로드캐스트한 게이트웨이(120)를 발견할 수 있다.
As described above, the
도 17은 일 예에 따른 블루투스 장치를 등록하는 방법의 흐름도이다.17 is a flowchart of a method of registering a Bluetooth device according to an example.
도 15 또는 도 16을 참조하여 전술된 실시예에 따라서 블루투스 장치(110)가 게이트웨이(120)를 발견한 경우, 블루투스 장치(110)는 블루투스 장치(110) 자신을 게이트웨이(120)에 등록할 수 있다.When the
도 7을 참조하여 전술된 단계(710)는 단계들(1710, 1720 및 1730)을 포함할 수 있다. 또한, 단계들(1710, 1720 및 1730)은 도 15를 참조하여 전술된 단계(1520)의 이후에 수행될 수 있으며, 도 16을 참조하여 전술된 단계(1610)의 이후에 수행될 수 있다.Step 710 described above with reference to FIG. 7 may include
실시예에서, 블루투스 장치(110)의 메시지의 전송 및 수신은 통신부(220)에 의해 이루어질 수 있다. 블루투스 장치(110)에 의해 전송되는 메시지는 처리부(210)에 의해 생성될 수 있다. 게이트웨이(120)의 메시지의 전송 및 수신은 제1 통신부(320)에 의해 이루어질 수 있다. 게이트웨이(120)에 의해 전송되는 메시지는 처리부(310)에 의해 생성될 수 있다.In an embodiment, the transmission and reception of messages of the
단계(1710)에서, 블루투스 장치(110)는 게이트웨이(120)와 통신 채널을 설립할 수 있다. 설립된 통신 채널은 소정의 시간 동안 유지될 수 있다.In
통신 채널을 설립하기 위해 블루투스 장치(110)는 CONNECT_REQ 메시지를 게이트웨이(120)로 전송할 수 있다.The
단계(1720)에서, 블루투스 장치(110)는 데이터 메시지를 전송할 수 있다. 데이터 메시지는 L2 데이터 메시지일 수 있다.In
데이터 메시지의 크기가 소정의 제1 값의 이상인 경우, 블루투스 L2에서 데이터 메시지가 여러 개의 서브 메시지들로 나뉘어질 수 있고, 나뉘어진 서브 메시지들이 전송될 수 있다.If the size of the data message is greater than or equal to a predetermined first value, then in Bluetooth L2 the data message may be divided into several sub-messages, and the sub-messages may be transmitted.
또한, 데이터 메시지의 크기가 소정의 제2 값의 이상인 경우, CoAP의 블록와이즈(blockwise) 전송(transfer) 기능이 사용될 수 있다.In addition, if the size of the data message is greater than or equal to a predetermined second value, a blockwise transfer function of the CoAP can be used.
데이터 메시지의 페이로드는 블루투스 장치(110)에 대한 정보를 포함할 수 있다. 또한, 페이로드는 블루투스 장치(110)의 리소스의 경로를 포함할 수 있다.The payload of the data message may include information about the
단계(1720)는 단계(1721) 및 단계(1722)를 포함할 수 있다.
단계(1731)에서, 블루투스 장치(110)는 "CoAP POST(포스트) /gw, 001" 메시지를 게이트웨이(120)로 전송할 수 있다. "CoAP POST /gw, 001" 메시지는 LL 데이터 패킷의 형태로 전송될 수 있다.In step 1731, the
단계(1732)에서, 블루투스 장치(110)는 "continue" 메시지를 게이트웨이(120)로 전송할 수 있다. "continue" 메시지는 LL 데이터 패킷의 형태로 전송될 수 있다.At step 1732, the
단계(1740)에서, 게이트웨이(120)는 데이터 메시지에 대한 응답 메시지를 블루투스 장치(110)로 전송할 수 있다. 응답 메시지는 블루투스 장치(110)에 대한 정보가 게이트웨이(120)에 등록되었음을 나타낼 수 있다.At step 1740, the
예를 들면, 게이트웨이(120)는 응답 메시지로서 "CoAP 2.01, Location(위치): /gw/ble/001"의 메시지를 블루투스 장치(110)로 전송할 수 있다. CoAP 2.01, Location: /gw/ble/001"는 LL 데이터 패킷의 형태로 전송될 수 있다.For example, the
응답 메시지는 블루투스 장치(110)에 대한 정보가 기록된 경로를 나타낼 수 있다. "CoAP 2.01, Location: /gw/ble/001" 메시지에서, "Location" 옵션의 값인 "/gw/ble/001"이 블루투스 장치(110)에 대한 정보가 기록된 경로를 나타낼 수 있다.The response message may indicate a path where information on the
전술된 것처럼, 블루투스 장치(110)는 블루투스 장치(110)를 게이트웨이(120)에 등록하기 위해 블루투스 장치(110)에 대한 정보 및 블루투스 장치(110)의 리소스의 경로를 포함하는 데이터 메시지를 게이트웨이(120)로 전송하고, 블루투스 장치(110)에 대한 정보가 기록된 경로를 포함하는 응답 메시지를 게이트웨이(120)로부터 수신할 수 있다.
The
도 18은 일 예에 따른 블루투스 장치의 리소스를 등록하는 방법의 흐름도이다.18 is a flowchart of a method of registering a resource of a Bluetooth device according to an example.
블루투스 장치(110)는 블루투스 장치(110) 자신의 리소스를 게이트웨이(120)에 등록할 수 있다. 리소스는 기능 및 속성을 포함할 수 있다. 또한, 블루투스 장치(110)는 복수의 리소스들을 게이트웨이(120)에 등록할 수 있다.The
블루투스 장치(110)는 도 17을 참조하여 전술된 단계(1740)에서 획득된 블루투스 장치(110)에 대한 정보가 기록된 경로를 사용하여 리소스를 게이트웨이(120)에 등록할 수 있다.The
도 7을 참조하여 전술된 단계(720)는 아래의 단계들(1810 및 1820)을 포함할 수 있다.
실시예에서, 블루투스 장치(110)의 메시지의 전송 및 수신은 통신부(220)에 의해 이루어질 수 있다. 블루투스 장치(110)에 의해 전송되는 메시지는 처리부(210)에 의해 생성될 수 있다. 게이트웨이(120)의 메시지의 전송 및 수신은 제1 통신부(320)에 의해 이루어질 수 있다. 게이트웨이(120)에 의해 전송되는 메시지는 처리부(310)에 의해 생성될 수 있다.In an embodiment, the transmission and reception of messages of the
단계(1810)에서, 블루투스 장치(110)는 리소스 등록 메시지를 게이트웨이(120)로 전송할 수 있다.In
리소스 등록 메시지의 크기가 소정의 제1 값의 이상인 경우, 블루투스 L2에서 리소스 등록 메시지가 여러 개의 서브 메시지들로 나뉘어질 수 있고, 나뉘어진 서브 메시지들이 전송될 수 있다.If the size of the resource registration message is greater than or equal to a predetermined first value, the resource registration message may be divided into a plurality of sub messages in the Bluetooth L2, and divided sub messages may be transmitted.
또한, 리소스 등록 메시지의 크기가 소정의 제2 값의 이상인 경우, CoAP의 블록와이즈 전송 기능이 사용될 수 있다.In addition, when the size of the resource registration message is larger than a predetermined second value, the block-wise transmission function of the CoAP can be used.
리소스 등록 메시지의 페이로드는 블루투스 장치(110)에 대한 정보가 기록된 경로를 포함할 수 있고, 블루투스 장치(110)의 리소스에 대한 정보를 포함할 수 있다. 리소스는 복수일 수 있다. 리소스 등록 메시지의 페이로드는 복수의 리소스들에 대한 정보를 포함할 수 있다.The payload of the resource registration message may include a path where information about the
단계(1810)는 단계(1811) 및 단계(1812)를 포함할 수 있다.
단계(1811)에서, 블루투스 장치(110)는 "CoAP POST /gw/ble/001, <resource>" 메시지를 게이트웨이(120)로 전송할 수 있다. "CoAP POST /gw/ble/001, <resource>" 메시지는 LL 데이터 패킷의 형태로 전송될 수 있다.At step 1811, the
"/gw/ble/001"는 도 17을 참조하여 전술된 단계(1740)에서 획득된 블루투스 장치(110)에 대한 정보가 기록된 경로를 나타낼 수 있다. 예를 들면, "/gw/ble/001"는 블루투스 장치(110)의 식별자가 될 수 있다."/ gw / ble / 001" may indicate the path where information on the
<resource>는 블루투스 장치(110)의 리소스에 대한 정보를 나타낼 수 있다. "CoAP POST /gw/ble/001" 메시지의 페이로드는 블루투스 장치(110)의 리소스에 대한 정보를 포함할 수 있다.The < resource > may indicate information about a resource of the
단계(1812)에서, 블루투스 장치(110)는 "continue" 메시지를 게이트웨이(120)로 전송할 수 있다. "continue" 메시지는 LL 데이터 패킷의 형태로 전송될 수 있다.At step 1812, the
단계(1820)에서, 게이트웨이(120)는 리소스 등록 메시지에 대한 응답 메시지를 블루투스 장치(110)로 전송할 수 있다. 응답 메시지는 LL 데이터 패킷의 형태로 전송될 수 있다.In step 1820, the
예를 들면, 응답 메시지는 "CoAP 2.01, Location: /gw/ble/001/data1" 메시지일 수 있다.For example, the response message may be "CoAP 2.01, Location: / gw / ble / 001 / data1 ".
응답 메시지는 블루투스 장치(110)의 리소스에 대한 정보를 포함할 수 있다.The response message may include information about the resources of the
"Location" 옵션의 값은 블루투스 장치(110)의 리소스에 대한 정보가 기록된 경로를 나타낼 수 있다. 예를 들면, 경로 "/gw/ble/001/data1"에 블루투스 장치(110)의 리소스에 대한 정보가 기록될 수 있다.The value of the "Location" option may indicate a path where information on the resources of the
전술된 것처럼, 블루투스 장치(110)는 블루투스 장치(110) 자신에 대한 정보가 기록된 경로를 사용하여 리소스를 게이트웨이(120)에 등록할 수 있다.
As described above, the
도 19는 일 예에 따른 블루투스 장치의 구조도이다.19 is a structural diagram of a Bluetooth device according to an example.
블루투스 장치(110)에서, CoAP는 엠큐티티(MQ Telemetry Transport; MQTT)로 대체될 수 있다.In the
MQTT는 TCP에 기반하여 설계되었으나, 간단한 메시지 구조를 제공할 수 있다. 따라서, MQTT 계층은 L2CAP 계층의 바로 상위의 계층이 될 수 있다.Although MQTT is designed based on TCP, it can provide a simple message structure. Therefore, the MQTT layer can be directly above the L2CAP layer.
응용 계층은 블루투스의 복잡한 절차 및 규격을 직접 사용하지 않더라도 MQTT 규격을 사용함으로써 서비스를 제공할 수 있다.The application layer can provide services by using the MQTT standard even if the complicated procedures and specifications of Bluetooth are not used directly.
실시예들을 참조하여 전술된 CoAP에 대한 내용은 MQTT에 적용될 수 있다. 예를 들면, 처리부(210)에 수행되는 적어도 하나의 프로그램은 MQTT 계층의 코드를 포함할 수 있고, MQTT 계층은 L2CAP 계층의 바로 상위의 계층일 수 있다.
The contents of the CoAP described above with reference to the embodiments can be applied to the MQTT. For example, at least one program executed in the
도 20은 일 예에 따른 게이트웨이의 구조도이다.20 is a structural diagram of a gateway according to an example.
게이트웨이(120)에서, CoAP는 MQTT로 대체될 수 있다. UDP는 TCP로 대체될 수 있다. 실시예들을 참조하여 전술된 CoAP에 대한 내용은 MQTT에 적용될 수 있다. 또한, 실시예들을 참조하여 전술된 UDP에 대한 내용은 TCP에 적용될 수 있다. 예를 들면, 처리부(310)에 수행되는 적어도 하나의 프로그램은 MQTT 계층의 코드를 포함할 수 있고, MQTT 계층은 L2CAP 계층의 바로 상위의 계층일 수 있다.
At the
도 21은 일 실시예에 따른 블루투스 장치 및 게이트웨이의 통신의 구조를 설명한다.21 illustrates a structure of communication between a Bluetooth device and a gateway according to an embodiment.
블루투스 장치(110), 게이트웨이(120) 및 외부 장치(610)에 있어서, CoAP는 MQTT로 대체될 수 있다. UDP는 TCP로 대체될 수 있다. 실시예들을 참조하여 전술된 CoAP에 대한 내용은 MQTT에 적용될 수 있다. 또한, 실시예들을 참조하여 전술된 UDP에 대한 내용은 TCP에 적용될 수 있다.
In the
기본적으로 통신 프로토콜은, 오픈 시스템즈 인터커넥션(Open Systems Interconnection; OSI) 7 계층들 중 하나의 계층에서 역할을 하도록 구성될 수 있다. 시스템에 프로토콜을 적용할 때, 각 계층에 적합한 프로토콜이 선택될 수 있고, 선택된 프로토콜들에 의해 프로토콜 스택이 구성될 수 있다.Basically, the communication protocol can be configured to act in one of the seven layers of the Open Systems Interconnection (OSI). When applying a protocol to a system, a protocol suitable for each layer can be selected, and the protocol stack can be configured by selected protocols.
통상적인 프로토콜 계층 구조는, 물리 계층, 논리 계층, 네트워크 계층, 전송(transport) 계층, 세션(session) 계층, 응용 계층을 포함할 수 있다. 블루투스 규격에 따른 IPSP 또한 이러한 구조를 따를 수 있다.A typical protocol layer structure may include a physical layer, a logical layer, a network layer, a transport layer, a session layer, and an application layer. IPSP according to the Bluetooth standard can also follow this structure.
CoAP 프로토콜은 세션 계층 및 응용 계층에 해당한다. 블루투스의 물리 계층, 논리 계층 및 CoAP 프로토콜의 특징에 따라, 블루투스 장치(110)의 논리 계층 및 CoAP 프로토콜은, 네트워크 계층 및 전송 계층의 프로토콜 없이, 직접적으로 연결될 수 있다. 직접적인 연결에 따라 효율성 및 호환성이 확보될 수 있다. 또한, 블루투스 장치(110)의 네트워킹 기능은 게이트웨이(120)와의 협력을 통해 수행될 수 있다.
The CoAP protocol corresponds to the session layer and the application layer. Depending on the characteristics of the physical layer, the logical layer and the CoAP protocol of Bluetooth, the logical layer and the CoAP protocol of the
도 22는 일 예에 따른 어드버타이징 채널 프레임 포맷을 나타낸다.Figure 22 shows the format of the advertising channel frame according to an example.
어드버타이징 채널 프레임 포맷(Advertising Channel Frame Format)(2200)은 프리앰블(Preamble)(2210), 접근 주소(Access Address)(2220), 어드버타이징 채널 피디유 헤더(Advertising Channel PDU(Protocol Data Unit) Header)(2230), 어드버타이징 주소(Advertising Address)(2240), CoAP 헤더/옵션들(CoAP Header/Options)(2250), CoAP 페이로드(2260) 및 순환중복검사(Cyclic Redundancy Check; CRC)(2270)를 포함할 수 있다.The advertisement
어드버타이징 채널 프레임 포맷(2200)은 전술된 메시지 중 어드버타이징 채널에 관련된 메시지의 포맷으로서 사용될 수 있다.
The advertising
도 23은 일 예에 따른 데이터 채널 프레임 포맷을 나타낸다.23 shows a data channel frame format according to an example.
데이터 채널 프레임 포맷(Data Channel Frame Format)(2300)은 프리앰블(Preamble)(2310), 접근 주소(Access Address)(2320), 데이터 채널 피디유 헤더(Data Channel PDU(Protocol Data Unit) Header)(2330), CoAP 헤더/옵션들(CoAP Header/Options)(2340), CoAP 페이로드(2350) 및 순환중복검사(Cyclic Redundancy Check; CRC)(2360)를 포함할 수 있다.The data
데이터 채널 프레임 포맷(2300)은 전술된 메시지 중 데이터 채널에 관련된 메시지의 포맷으로서 사용될 수 있다.
The data
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA) A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.
110: 블루투스 장치
120: 게이트웨이
610: 외부 장치110: Bluetooth device
120: Gateway
610: External device
Claims (20)
블루투스 통신을 수행하는 통신부
를 포함하고,
상기 적어도 하나의 프로그램은 CoAP 계층의 코드 및 L2CAP 계층의 코드를 포함하고,
상기 CoAP 계층은 상기 L2CAP 계층의 바로 상위의 계층인 블루투스 장치.A processing unit for executing at least one program; And
A communication unit that performs Bluetooth communication
Lt; / RTI >
Wherein the at least one program comprises code of a CoAP layer and code of an L2CAP layer,
Wherein the CoAP layer is a layer immediately above the L2CAP layer.
상기 적어도 하나의 프로그램은 CoAP 지원 프로파일을 포함하는 블루투스 장치.The method according to claim 1,
Wherein the at least one program comprises a CoAP support profile.
상기 CoAP 지원 프로파일은 GATT 및 ATT를 통해 상기 블루투스 장치가 CoAP의 기능을 지원한다는 것이 검색되게 하는 블루투스 장치.3. The method of claim 2,
Wherein the CoAP support profile allows the Bluetooth device to be detected through the GATT and ATT to support the function of the CoAP.
상기 블루투스 장치는 CoAP GET 메시지를 포함하는 브로드캐스트 메시지를 브로드캐스트하고, 브로드캐스트 메시지에 대응하는 응답 메시지를 게이트웨이로부터 수신함으로써 상기 게이트웨이에 대한 정보를 획득하는 블루투스 장치.The method according to claim 1,
Wherein the Bluetooth device broadcasts a broadcast message including a CoAP GET message and obtains information about the gateway by receiving a response message corresponding to the broadcast message from the gateway.
상기 블루투스 장치는 브로드캐스트 메시지를 관찰하고, 상기 브로드캐스트 메시지를 수신함에 따라 상기 브로드캐스트 메시지를 브로드캐스트한 게이트웨이를 발견하는 블루투스 장치.The method according to claim 1,
Wherein the Bluetooth device observes a broadcast message and finds a gateway that broadcasts the broadcast message upon receiving the broadcast message.
상기 블루투스 장치는 상기 블루투스 장치를 게이트웨이에 등록하기 위해 상기 블루투스 장치에 대한 정보 및 상기 블루투스 장치의 리소스의 경로를 포함하는 데이터 메시지를 상기 게이트웨이로 전송하고, 상기 블루투스 장치에 대한 정보가 기록된 경로를 포함하는 응답 메시지를 상기 게이트웨이로부터 수신하는 블루투스 장치.The method according to claim 1,
The Bluetooth device transmits a data message including information on the Bluetooth device and a resource path of the Bluetooth device to the gateway in order to register the Bluetooth device in the gateway, And receives a response message from the gateway.
상기 블루투스 장치는 상기 경로를 사용하여 상기 블루투스 장치의 리소스를 상기 게이트웨이에 등록하는 블루투스 장치.The method according to claim 6,
And the Bluetooth device registers the resource of the Bluetooth device with the gateway using the path.
상기 블루투스 장치를 게이트웨이에 등록하는 단계; 및
상기 게이트웨이에 의해 제공되는 게이트웨이 기능을 통해 통신을 수행하는 단계
를 포함하고,
상기 블루투스 장치의 프로토콜 스택은 CoAP 계층 및 L2CAP 계층을 포함하고,
상기 CoAP 계층은 상기 L2CAP 계층의 바로 상위의 계층인 통신 방법.Performed by a Bluetooth device,
Registering the Bluetooth device with a gateway; And
Performing communication through a gateway function provided by the gateway
Lt; / RTI >
Wherein the protocol stack of the Bluetooth device includes a CoAP layer and an L2CAP layer,
Wherein the CoAP layer is a layer immediately above the L2CAP layer.
상기 블루투스 장치의 리소스를 상기 게이트웨이에 등록하는 단계
를 더 포함하는 통신 방법.9. The method of claim 8,
Registering the resources of the Bluetooth device with the gateway
Lt; / RTI >
블루투스 통신을 수행하는 통신부
를 포함하고,
상기 적어도 하나의 프로그램은 MQTT 계층의 코드 및 L2CAP 계층의 코드를 포함하고,
상기 MQTT 계층은 상기 L2CAP 계층의 바로 상위의 계층인 블루투스 장치.A processing unit for executing at least one program; And
A communication unit that performs Bluetooth communication
Lt; / RTI >
Wherein the at least one program comprises code of an MQTT layer and code of an L2CAP layer,
Wherein the MQTT layer is a layer immediately above the L2CAP layer.
블루투스 통신을 위한 제1 통신부; 및
인터넷과의 연동을 위한 제2 통신부
를 포함하고,
상기 적어도 하나의 프로그램은 제1 통신부 용 코드를 포함하고,
상기 제1 통신부 용 코드는 CoAP 계층의 코드 및 L2CAP 계층의 코드를 포함하고,
상기 CoAP 계층은 상기 L2CAP 계층의 바로 상위의 계층인 게이트웨이.A processing unit for executing at least one program;
A first communication unit for Bluetooth communication; And
A second communication unit for interworking with the Internet
Lt; / RTI >
Wherein the at least one program includes a code for a first communication unit,
Wherein the code for the first communication unit includes a code of a CoAP layer and a code of an L2CAP layer,
Wherein the CoAP layer is a layer immediately above the L2CAP layer.
상기 적어도 하나의 프로그램은 프록시 모듈을 포함하고,
상기 프록시 모듈은 상기 CoAP 계층의 상위의 계층이고,
상기 프록시 모듈은 상기 제1 통신부를 통해 연결된 블루투스 장치의 주소를 상기 게이트웨이 내부의 URI-경로에 매핑함으로써 상기 블루투스 장치 및 상기 제2 통신부를 통해 연결된 장치 간의 통신을 가능하게 하는 게이트웨이.12. The method of claim 11,
Wherein the at least one program comprises a proxy module,
Wherein the proxy module is an upper layer of the CoAP layer,
Wherein the proxy module enables communication between devices connected through the Bluetooth device and the second communication unit by mapping an address of a Bluetooth device connected through the first communication unit to a URI-path inside the gateway.
상기 제1 통신부는 블루투스 장치로부터 CoAP의 요청 메시지를 수신하고,
상기 처리부는 상기 CoAP의 요청 메시지로부터 URI-호스트 및 URI-포트를 제거하고, 상기 요청 메시지에 IP 헤더 및 UDP 헤더를 세팅하고,
상기 제2 통신부는 상기 IP 헤더 및 상기 UDP 헤더가 세팅된 요청 메시지를 외부 장치로 전달하는 게이트웨이.12. The method of claim 11,
The first communication unit receives a CoAP request message from the Bluetooth device,
The processing unit removes the URI-host and the URI-port from the CoAP request message, sets an IP header and a UDP header in the request message,
And the second communication unit transmits a request message with the IP header and the UDP header set to an external device.
상기 제2 통신부는 외부 장치로부터 CoAP의 요청 메시지를 수신하고,
상기 처리부는 상기 CoAP의 요청 메시지로부터 URI-호스트, URI-포트, URI-경로 중 프리픽스, URI-경로 중 블루투스 장치 식별자, IP 헤더 및 UDP 헤더를 제거하고,
상기 제1 통신부는 상기 URI-호스트, 상기 URI-포트, 상기 프리픽스, 상기 블루투스 장치 식별자, 상기 IP 헤더 및 상기 UDP 헤더가 제거된 요청 메시지를 블루투스 장치로 전달하는 게이트웨이.12. The method of claim 11,
The second communication unit receives a CoAP request message from an external device,
The processing unit removes the URI-host, URI-port, URI-path prefix, URI-path Bluetooth device identifier, IP header, and UDP header from the CoAP request message,
Wherein the first communication unit transmits to the Bluetooth device a request message in which the URI-host, the URI-port, the prefix, the Bluetooth device identifier, the IP header, and the UDP header are removed.
상기 게이트웨이는 CoAP Ping 요청 메시지를 포함하는 브로드캐스트 메시지를 브로드캐스트하고, 블루투스 장치로부터 상기 CoAP Ping 요청 메시지에 대응하는 CoAP Ping 응답 메시지를 수신함으로써 상기 블루투스 장치를 검출하는 게이트웨이.12. The method of claim 11,
Wherein the gateway broadcasts a broadcast message including a CoAP Ping request message, and receives a CoAP Ping response message corresponding to the CoAP Ping request message from the Bluetooth device, thereby detecting the Bluetooth device.
상기 게이트웨이는 브로드캐스트 메시지를 관찰할 수 있고,
상기 게이트웨이는 가상 CoAP Ping 응답 메시지를 포함하는 상기 브로드캐스트 메시지를 수신함에 따라 상기 브로드캐스트 메시지를 브로드캐스트한 블루투스 장치를 발견하는 게이트웨이.12. The method of claim 11,
The gateway can observe the broadcast message,
Wherein the gateway detects the Bluetooth device broadcasting the broadcast message upon receiving the broadcast message including the virtual CoAP Ping response message.
상기 게이트웨이는 연결 요청 메시지를 블루투스 장치로 전송하고, 상기 블루투스 장치로부터 상기 블루투스 장치의 리소스의 경로를 포함하는 응답 메시지를 수신하고, 상기 경로를 포함하는 재질의 메시지를 상기 블루투스 장치로 전송하고, 상기 경로에 대한 정보를 포함하는 응답 메시지를 상기 블루투스 장치로부터 수신하는 게이트웨이.12. The method of claim 11,
The gateway transmits a connection request message to the Bluetooth device, receives a response message including the path of the resource of the Bluetooth device from the Bluetooth device, transmits a message including the route to the Bluetooth device, And receives a response message from the Bluetooth device, the response message including information about the path.
블루투스 장치를 검색하는 단계; 및
블루투스 장치에게 게이트웨이 기능을 제공하는 단계
를 포함하고,
상기 게이트웨이의 블루투스 통신을 위한 프로토콜 스택은 CoAP 계층 및 L2CAP 계층을 포함하고,
상기 CoAP 계층은 상기 L2CAP 계층의 바로 상위의 계층인 통신 방법.Performed by the gateway,
Searching for a Bluetooth device; And
Step to provide gateway function to Bluetooth device
Lt; / RTI >
The protocol stack for the Bluetooth communication of the gateway includes a CoAP layer and an L2CAP layer,
Wherein the CoAP layer is a layer immediately above the L2CAP layer.
상기 블루투스 장치의 리소스를 확인하는 단계
를 더 포함하는 통신 방법.19. The method of claim 18,
Confirming a resource of the Bluetooth device
Lt; / RTI >
블루투스 통신을 위한 제1 통신부; 및
인터넷과의 연동을 위한 제2 통신부
를 포함하고,
상기 적어도 하나의 프로그램은 제1 통신부 용 코드를 포함하고,
상기 제1 통신부 용 코드는 MQTT 계층의 코드 및 L2CAP 계층의 코드를 포함하고,
상기 MQTT 계층은 상기 L2CAP 계층의 바로 상위의 계층인 게이트웨이.A processing unit for executing at least one program;
A first communication unit for Bluetooth communication; And
A second communication unit for interworking with the Internet
Lt; / RTI >
Wherein the at least one program includes a code for a first communication unit,
Wherein the code for the first communication unit includes a code of an MQTT layer and a code of an L2CAP layer,
Wherein the MQTT layer is a layer immediately above the L2CAP layer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160046825A KR102503257B1 (en) | 2016-04-18 | 2016-04-18 | Apparatus and method for bluetooth communication |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160046825A KR102503257B1 (en) | 2016-04-18 | 2016-04-18 | Apparatus and method for bluetooth communication |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170119098A true KR20170119098A (en) | 2017-10-26 |
KR102503257B1 KR102503257B1 (en) | 2023-02-24 |
Family
ID=60301108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160046825A KR102503257B1 (en) | 2016-04-18 | 2016-04-18 | Apparatus and method for bluetooth communication |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102503257B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190083214A (en) * | 2018-01-03 | 2019-07-11 | 삼성전자주식회사 | Electronic device for transmitting or receiving data via external electronic device and method thereof |
KR102500082B1 (en) * | 2021-11-29 | 2023-02-16 | 주식회사 아이엠알 | Coap-based load balancer device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100513288B1 (en) * | 2003-01-13 | 2005-09-09 | 삼성전자주식회사 | System and method for accessing to home network public network |
KR20120002087A (en) * | 2010-06-30 | 2012-01-05 | 한국전자통신연구원 | Apparatus and method for selecting of ap considering network performance |
KR101397744B1 (en) * | 2006-11-15 | 2014-05-20 | 엘지전자 주식회사 | Bluetooth interface apparatus and method |
KR101579928B1 (en) * | 2014-07-31 | 2015-12-23 | 서경대학교 산학협력단 | METHOD AND RECORDING MEDIUM FOR COMPATIBILITY BETWEEN IEC61850 AND CoAP |
JP2016045964A (en) * | 2014-08-26 | 2016-04-04 | 富士通株式会社 | Method for internet of things (iot) device configuration construction and recording medium |
-
2016
- 2016-04-18 KR KR1020160046825A patent/KR102503257B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100513288B1 (en) * | 2003-01-13 | 2005-09-09 | 삼성전자주식회사 | System and method for accessing to home network public network |
KR101397744B1 (en) * | 2006-11-15 | 2014-05-20 | 엘지전자 주식회사 | Bluetooth interface apparatus and method |
KR20120002087A (en) * | 2010-06-30 | 2012-01-05 | 한국전자통신연구원 | Apparatus and method for selecting of ap considering network performance |
KR101579928B1 (en) * | 2014-07-31 | 2015-12-23 | 서경대학교 산학협력단 | METHOD AND RECORDING MEDIUM FOR COMPATIBILITY BETWEEN IEC61850 AND CoAP |
JP2016045964A (en) * | 2014-08-26 | 2016-04-04 | 富士通株式会社 | Method for internet of things (iot) device configuration construction and recording medium |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190083214A (en) * | 2018-01-03 | 2019-07-11 | 삼성전자주식회사 | Electronic device for transmitting or receiving data via external electronic device and method thereof |
WO2019135551A1 (en) * | 2018-01-03 | 2019-07-11 | 삼성전자 주식회사 | Electronic device for transmitting/receiving data through external electronic device, and data transmitting/receiving method therefor |
US11265361B2 (en) | 2018-01-03 | 2022-03-01 | Samsung Electronics Co., Ltd | Electronic device for transmitting/receiving data through external electronic device, and data transmitting/receiving method therefor |
KR102500082B1 (en) * | 2021-11-29 | 2023-02-16 | 주식회사 아이엠알 | Coap-based load balancer device |
Also Published As
Publication number | Publication date |
---|---|
KR102503257B1 (en) | 2023-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3243317B1 (en) | Machine-to-machine protocol indication and negotiation | |
EP3228123B1 (en) | Efficient hybrid resource and schedule management in time slotted channel hopping networks | |
US10425194B2 (en) | Cross-layer and cross-application acknowledgment for data transmission | |
EP3195566B1 (en) | Service layer interworking using mqtt protocol | |
US10863422B2 (en) | Mechanisms for ad hoc service discovery | |
US10820253B2 (en) | Distributed reactive resource and schedule management in time slotted channel hopping networks | |
KR101842316B1 (en) | Method and system of providing internet protocol(ip) data communication in a nfc peer to peer communication environment | |
CN106233700A (en) | For bluetooth equipment being integrated into the method and apparatus in neighbours' sensing network | |
KR20190013964A (en) | IoT device connection, discovery and networking | |
US11824685B2 (en) | Method for implementing GRE tunnel, access point and gateway | |
JP2017528956A (en) | Efficient central resource and schedule management in timeslot channel hopping networks | |
EP3566407A1 (en) | Cross-device segmentation offload | |
KR20140069307A (en) | Systems and method for reduced power wireless communication | |
CN110620716B (en) | Data transmission method, related device and system | |
JP2018526923A (en) | Enhanced neighborhood discovery for communication networks | |
US10992578B2 (en) | Message retargeting in machine-to-machine service layer communications | |
KR102503257B1 (en) | Apparatus and method for bluetooth communication | |
EP3857368A1 (en) | Advanced resource link binding management | |
TW200807988A (en) | Configuring a host device by way of MMP | |
JP6428702B2 (en) | Management device and management system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |