KR102503257B1 - Apparatus and method for bluetooth communication - Google Patents
Apparatus and method for bluetooth communication Download PDFInfo
- Publication number
- KR102503257B1 KR102503257B1 KR1020160046825A KR20160046825A KR102503257B1 KR 102503257 B1 KR102503257 B1 KR 102503257B1 KR 1020160046825 A KR1020160046825 A KR 1020160046825A KR 20160046825 A KR20160046825 A KR 20160046825A KR 102503257 B1 KR102503257 B1 KR 102503257B1
- Authority
- KR
- South Korea
- Prior art keywords
- layer
- bluetooth device
- coap
- gateway
- 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
-
- 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
-
- 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. A Bluetooth device communicates with other external devices through the gateway function provided by the gateway. In the protocol stack of the Bluetooth device, the CoAP layer is a layer immediately above the L2CAP layer. In addition, in the protocol stack for Bluetooth communication of the gateway, the CoAP layer is a layer immediately above the L2CAP layer. As some of the protocol stacks are omitted, Bluetooth devices and gateways provide highly efficient communication.
Description
아래의 실시예들은 블루투스 통신을 하기 위한 방법 및 장치에 관한 것으로 보다 상세히는 사물인터넷을 위해 블루투스 통신을 위한 간략한 프로토콜 스택을 갖는 방법 및 장치가 제공된다.The following embodiments relate to a method and apparatus for Bluetooth communication, and more specifically, a method and apparatus having a simple protocol stack for Bluetooth communication for the Internet of Things are provided.
블루투스(Bluetooth) 기술은 근거리 무선 통신 기술로서, 10m 이내의 주변의 기기들과의 통신을 제공하는 기술이다. 최근에는, 다양한 센서를 지원할 수 있도록 저전력 규격인 블루투스 로우 에너지(Bluetooth Low Enengy; BLE) 규격이 개발되었다.Bluetooth technology is a short-distance wireless communication technology, and is a technology that provides communication with nearby devices within 10 m. Recently, a Bluetooth Low Energy (BLE) standard, which is a low power standard, has been developed to support various sensors.
블루투스 표준으로서, 블루투스 기기(device) 및 서비스의 종류 별로 프로파일 규격을 제정되고 있다. 그러나, 프로파일 규격의 개발은 블루투스 기기가 새롭게 개발되는 속도를 따라가지 못하고 있다. 따라서, 블루투스 기기의 제조사가 상위 계층(layer)의 통신 규격 또는 어플리케이션 프로그래밍 인터페이스(Application Programming Interface; API)를 제공하고 있다.As a Bluetooth standard, profile standards are being established for each type of Bluetooth device and service. However, the development of the profile standard is not keeping up with the speed at which Bluetooth devices are newly developed. Accordingly, manufacturers of Bluetooth devices provide upper layer communication standards or application programming interfaces (APIs).
이러한 상황은 서로 다른 제품들 간의 연동 또는 서로 다른 제조사의 제품들 간의 연동을 어렵게 만든다. 예를 들면, 스마트폰(smartphone)과 같은 블루투스 기기는 다양한 다른 블루투스 기기들을 검색하고, 검색된 다른 블루투스 기기들과 연동(interoperate)되어야 한다. 이러한 연동이 블루투스 기기의 제조사에 의해 작성된 프로그램(예를 들면, 앱(App))을 통해서만 이루어진다면, 호환성 및 연동성(interoperability)에 있어서 문제가 발생한다.This situation makes it difficult to interlock between different products or between products of different manufacturers. For example, a Bluetooth device such as a smartphone must search for various other Bluetooth devices and interoperate with the searched other Bluetooth devices. If such interworking is performed only through a program (for example, an App) written by a manufacturer of a Bluetooth device, problems arise in compatibility and interoperability.
한편, 인터넷을 통해 연결된 다양한 사물들이 인터넷에 연결되어 서로 연동되는 사물인터넷(Internet of Things; IoT) 시대로 진입함에 따라, 블루투스 기기들의 인터넷으로의 연동을 가능하게 하는 방법에 대한 기술 표준들이 제정되었다.On the other hand, as we enter the Internet of Things (IoT) era in which various things connected through the Internet are connected to the Internet and interoperate with each other, technical standards for how to enable Bluetooth devices to interoperate with the Internet have been established. .
이러한 기술 표준들로서, 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) a method for enabling a Bluetooth device to support Representational State Transfer (REST) API, 2) a Bluetooth device accessing the Internet through a HyperText Transfer Protocol (HTTP) proxy. How to access and 3) Layers of 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) implemented as a layer above Link Layer Control and Adaptation Protocol (L2CAP). Below is a brief overview of the three methods.
1) 블루투스 기기가 REST API를 지원하는 방법1) How Bluetooth devices support REST API
블루투스 인터넷 게이트웨이(gateway)는 인터넷을 통해 클라이언트로부터 요청을 수신한다. 블루투스 인터넷 게이트웨이는 요청을 블루투스 기기의 에이티티(Attribute Protocol; ATT) 및/또는 지에이티티(Generic Attribute Profile; GATT)로 변환한다. 상기의 변환을 통해 블루투스 기기 및 클라이언트 간의 통신이 이루어진다.A Bluetooth Internet gateway receives requests from clients over the Internet. The Bluetooth Internet gateway converts the request into the Bluetooth device's Attribute Protocol (ATT) and/or Generic Attribute Profile (GATT). Through the above conversion, communication between the Bluetooth device and the client is performed.
이러한 방법은 기존의 블루투스 스택을 그대로 사용한다. 기존의 블루투스 스택을 그대로 사용함에 따라, 이러한 방법은 전술된 호환성 및 연동성의 문제를 그대로 갖는다. 따라서, 블루투스 인터넷 게이트웨이는 다양한 블루투스 기기들의 내부의 속성을 인식할 수 있어야 하며, 서로 다른 내부의 속성을 갖는 다양한 블루투스 기기들과 연동할 수 있어야 한다. 또한, 외부의 서버 또한 블루투스 기기의 내부의 속성을 미리 알고 있어야 한다.This method uses the existing Bluetooth stack as it is. As the existing Bluetooth stack is used as it is, this method has the aforementioned problems of compatibility and interoperability. Therefore, the Bluetooth Internet gateway should be able to recognize internal properties of various Bluetooth devices and interwork with various Bluetooth devices having different internal properties. In addition, the external server must also know the internal properties of the Bluetooth device in advance.
이러한 방법은 응용(application) 계층의 표준이 아니기 때문에, 이러한 방법이 사용될 경우, 수집된 데이터의 인식이 어렵다.Since this method is not standard for the application layer, it is difficult to recognize the collected data when this method is used.
2) HTTP 프록시를 통해 블루투스 기기가 인터넷에 액세스 하는 방법2) How Bluetooth devices access the Internet through HTTP proxy
이러한 방법에서, 블루투스 HTTP 프록시 서비스(HTTP Proxy Service; HPS) 클라이언트 및 블루투스 HPS 서버 간의 블루투스 구간에서는 기존의 블루투스 스택이 그대로 사용된다. 블루투스 HPS 서버는 게이트웨이의 기능을 수행한다. 블루투스 HPS 서버는 자체의 매핑을 통해 블루투스의 프로토콜을 HTTP와 같은 인터넷 프로토콜로 변환한다. 이러한 변환에 의해 블루투스 HPS 클라이언트 및 원격의 HTTP 서버 간의 통신이 이루어진다.In this method, an existing Bluetooth stack is used as it is in a Bluetooth section between a Bluetooth HTTP Proxy Service (HPS) client and a Bluetooth HPS server. The Bluetooth HPS server performs the function of a gateway. The Bluetooth HPS server converts Bluetooth protocols to Internet protocols such as HTTP through its own mapping. This translation enables communication between the Bluetooth HPS client and the remote HTTP server.
이러한 방식에서, 게이트웨이의 기능을 수행하는 블루투스 HPS 서버가 블루투스 기기의 속성을 모두 알고 있어야 한다. 따라서, 이러한 방식이 사용될 경우, 통신에 있어서 연동성 및 호환성이 떨어질 수 있다.In this way, the Bluetooth HPS server performing the function of the gateway must know all the attributes of the Bluetooth device. Therefore, when this method is used, interoperability and compatibility in communication may deteriorate.
3) IPSP를 사용하는 방법.3) How to use IPSP.
IPSP를 사용하는 방법은, 블루투스 ATT 및 GATT 를 사용하지 않고 L2CAP 상에 6LowPAN, IPv6, UDP, TCP 및 응용 계층 스택을 구현한다. 이러한 구현을 통해 통신이 이루어진다. 이러한 방법은, 인터넷 프로토콜을 그대로 블루투스 노드에 탑재하기 때문에, 높은 호환성 및 연동성을 확보할 수 있다.The method using IPSP implements 6LowPAN, IPv6, UDP, TCP and application layer stacks on L2CAP without using Bluetooth ATT and GATT. Communication is achieved through this implementation. This method can ensure high compatibility and interoperability because the Internet protocol is loaded into the Bluetooth node as it is.
그러나, 이러한 방법에 따르면, TCP, IP 및 6LoWPAN의 프로토콜 스택이 그대로 블루투스 노드에서 구현된다. 따라서, 이러한 방법이 사용되면, 메모리 문제, 성능 문제 및 블루투스 네트워크 효율성 문제가 발생한다.However, according to this method, protocol stacks of TCP, IP, and 6LoWPAN are implemented in the Bluetooth node as it is. Therefore, when this method is used, memory problems, performance problems, and Bluetooth network efficiency problems occur.
블루투스와 관련하여, 한국공개특허 제2014-0027503호 및 한국등록특허 제10-1397744호 등이 제시된 바 있다.In relation to Bluetooth, Korean Patent Publication No. 2014-0027503 and Korean Patent Registration No. 10-1397744 have been proposed.
일 실시예는 국제 표준 프로토콜을 블루투스에 적용함으로써 다양한 현재의 기기 및 미래의 기기에 적용될 수 있는 통신 방법을 제공할 수 있다.An embodiment can provide a communication method that can be applied to various current and future devices by applying an international standard protocol to Bluetooth.
일 실시예는 프로토콜 스택 중 일부를 생략함으로써 고효율의 통신을 제공하는 장치 및 방법을 제공할 수 있다.An embodiment may provide an apparatus and method for providing high-efficiency communication by omitting some of the protocol stacks.
일 측면에 있어서, 적어도 하나의 프로그램을 수행하는 처리부; 및 블루투스 통신을 수행하는 통신부를 포함하고, 상기 적어도 하나의 프로그램은 CoAP 계층의 코드 및 L2CAP 계층의 코드를 포함하고, 상기 CoAP 계층은 상기 L2CAP 계층의 바로 상위의 계층인 블루투스 장치가 제공된다.In one aspect, a processing unit that executes at least one program; and a communication unit that performs Bluetooth communication, wherein the at least one program includes CoAP layer code and L2CAP layer code, and the CoAP layer is a layer immediately above the L2CAP layer.
상기 블루투스 장치에서 IP 계층, UDP 계층 및 6LoWPAN 계층은 제외될 수 있다.In the Bluetooth device, an IP layer, a UDP layer, and a 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 enables a discovery that the Bluetooth device supports CoAP functions through GATT and ATT.
상기 블루투스 장치는 CoAP GET 메시지를 포함하는 브로드캐스트 메시지를 브로드캐스트하고, 브로드캐스트 메시지에 대응하는 응답 메시지를 게이트웨이로부터 수신함으로써 상기 게이트웨이에 대한 정보를 획득할 수 있다.The Bluetooth device may acquire 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 the broadcast message and, upon receiving the broadcast message, can discover the gateway that broadcast the broadcast message.
상기 블루투스 장치는 상기 블루투스 장치를 게이트웨이에 등록하기 위해 상기 블루투스 장치에 대한 정보 및 상기 블루투스 장치의 리소스의 경로를 포함하는 데이터 메시지를 상기 게이트웨이로 전송할 수 있고, 상기 블루투스 장치에 대한 정보가 기록된 경로를 포함하는 응답 메시지를 상기 게이트웨이로부터 수신할 수 있다.The Bluetooth device may transmit a data message including information about the Bluetooth device and a path of a resource of the Bluetooth device to the gateway to register the Bluetooth device with the gateway, and a path in which the information about the Bluetooth device is recorded. A response message including a may be received from the gateway.
상기 블루투스 장치는 상기 경로를 사용하여 상기 블루투스 장치의 리소스를 상기 게이트웨이에 등록할 수 있다.The Bluetooth device may register a resource of the Bluetooth device with the gateway using the path.
다른 일 측에 있어서, 블루투스 장치에 의해 수행되는, 상기 블루투스 장치를 게이트웨이에 등록하는 단계; 및 상기 게이트웨이에 의해 제공되는 게이트웨이 기능을 통해 통신을 수행하는 단계를 포함하고, 상기 블루투스 장치의 프로토콜 스택은 CoAP 계층 및 L2CAP 계층을 포함하고, 상기 CoAP 계층은 상기 L2CAP 계층의 바로 상위의 계층인 통신 방법이 제공된다.In another aspect, the step of registering the Bluetooth device to the gateway, performed by the Bluetooth device; and performing communication through a gateway function provided by the gateway, wherein a protocol stack of the Bluetooth device includes a CoAP layer and an L2CAP layer, and the CoAP layer is a communication layer immediately above the L2CAP layer. A method is provided.
상기 통신 방법은, 상기 블루투스 장치의 리소스를 상기 게이트웨이에 등록하는 단계를 더 포함할 수 있다.The communication method may further include registering a resource of the Bluetooth device with the gateway.
또 다른 일 측에 있어서, 적어도 하나의 프로그램을 수행하는 처리부; 및 블루투스 통신을 수행하는 통신부를 포함하고, 상기 적어도 하나의 프로그램은 MQTT 계층의 코드 및 L2CAP 계층의 코드를 포함하고, 상기 MQTT 계층은 상기 L2CAP 계층의 바로 상위의 계층인 블루투스 장치가 제공된다.In another aspect, a processing unit that executes at least one program; and a communication unit that performs Bluetooth communication, wherein the at least one program includes an MQTT layer code and an L2CAP layer code, and the MQTT layer is a layer immediately above the L2CAP layer.
또 다른 일 측에 있어서, 적어도 하나의 프로그램을 수행하는 처리부; 블루투스 통신을 위한 제1 통신부; 및 인터넷과의 연동을 위한 제2 통신부를 포함하고, 상기 적어도 하나의 프로그램은 제1 통신부 용 코드를 포함하고, 상기 제1 통신부 용 코드는 CoAP 계층의 코드 및 L2CAP 계층의 코드를 포함하고, 상기 CoAP 계층은 상기 L2CAP 계층의 바로 상위의 계층인 게이트웨이가 제공된다.In another aspect, a processing unit that executes at least one program; 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 first communication unit code, the first communication unit code includes a CoAP layer code and an L2CAP layer code, The CoAP layer is provided with a gateway, which is a layer immediately above the L2CAP layer.
상기 적어도 하나의 프로그램은 프록시 모듈을 포함할 수 있다.The at least one program may include a proxy module.
상기 프록시 모듈은 상기 CoAP 계층의 상위의 계층일 수 있다.The proxy module may be a layer above the CoAP layer.
상기 프록시 모듈은 상기 제1 통신부를 통해 연결된 블루투스 장치의 주소를 상기 게이트웨이 내부의 URI-경로에 매핑함으로써 상기 블루투스 장치 및 상기 제2 통신부를 통해 연결된 장치 간의 통신을 가능하게 할 수 있다.The proxy module may enable communication between the Bluetooth device and a device connected through the second communication unit by mapping an address of the Bluetooth device connected through the first communication unit to a URI-path within the gateway.
상기 제1 통신부는 블루투스 장치로부터 CoAP의 요청 메시지를 수신할 수 있다.The first communication unit may receive a CoAP request message from a Bluetooth device.
상기 처리부는 상기 CoAP의 요청 메시지로부터 URI-호스트 및 URI-포트를 제거할 수 있고, 상기 요청 메시지에 IP 헤더 및 UDP 헤더를 세팅할 수 있다.The processor may remove URI-host and URI-port from the request message of the CoAP, and may set an IP header and UDP header in the request message.
상기 제2 통신부는 상기 IP 헤더 및 상기 UDP 헤더가 세팅된 요청 메시지를 외부 장치로 전달할 수 있다.The second communication unit may transmit 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 processor may remove a URI-host, a URI-port, a prefix from a URI-path, a Bluetooth device identifier from a URI-path, an IP header, and a UDP header from the request message of the CoAP.
상기 제1 통신부는 상기 URI-호스트, 상기 URI-포트, 상기 프리픽스, 상기 블루투스 장치 식별자, 상기 IP 헤더 및 상기 UDP 헤더가 제거된 요청 메시지를 블루투스 장치로 전달할 수 있다.The first communication unit may transmit the request message from which the URI-host, the URI-port, the prefix, the Bluetooth device identifier, the IP header, and the UDP header are removed to the Bluetooth device.
상기 게이트웨이는 CoAP Ping 요청 메시지를 포함하는 브로드캐스트 메시지를 브로드캐스트하고, 블루투스 장치로부터 상기 CoAP Ping 요청 메시지에 대응하는 CoAP Ping 응답 메시지를 수신함으로써 상기 블루투스 장치를 검출할 수 있다.The gateway may 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 may observe broadcast messages.
상기 게이트웨이는 가상 CoAP Ping 응답 메시지를 포함하는 상기 브로드캐스트 메시지를 수신함에 따라 상기 브로드캐스트 메시지를 브로드캐스트한 블루투스 장치를 발견할 수 있다.Upon receiving the broadcast message including the virtual CoAP Ping response message, the gateway can discover the Bluetooth device that broadcast the broadcast message.
상기 게이트웨이는 연결 요청 메시지를 블루투스 장치로 전송할 수 있고, 상기 블루투스 장치로부터 상기 블루투스 장치의 리소스의 경로를 포함하는 응답 메시지를 수신할 수 있고, 상기 경로를 포함하는 재질의 메시지를 상기 블루투스 장치로 전송할 수 있고, 상기 경로에 대한 정보를 포함하는 응답 메시지를 상기 블루투스 장치로부터 수신할 수 있다.The gateway may transmit a connection request message to the Bluetooth device, receive a response message including a resource path of the Bluetooth device from the Bluetooth device, and transmit a material message including the path to the Bluetooth device. and receive a response message including information about the route from the Bluetooth device.
또 다른 일 측에 있어서, 게이트웨이에 의해 수행되는, 블루투스 장치를 검색하는 단계; 및 블루투스 장치에게 게이트웨이 기능을 제공하는 단계를 포함하고, 상기 게이트웨이의 블루투스 통신을 위한 프로토콜 스택은 CoAP 계층 및 L2CAP 계층을 포함하고, 상기 CoAP 계층은 상기 L2CAP 계층의 바로 상위의 계층인 통신 방법이 제공된다.In another aspect, searching for a Bluetooth device performed by a gateway; and providing a gateway function to a 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 layer immediately above the L2CAP layer. do.
상기 통신 방법은, 상기 블루투스 장치의 리소스를 확인하는 단계를 더 포함할 수 있다.The communication method may further include checking resources of the Bluetooth device.
또 다른 일 측에 있어서, 적어도 하나의 프로그램을 수행하는 처리부; 블루투스 통신을 위한 제1 통신부; 및 인터넷과의 연동을 위한 제2 통신부를 포함하고, 상기 적어도 하나의 프로그램은 제1 통신부 용 코드를 포함하고, 상기 제1 통신부 용 코드는 MQTT 계층의 코드 및 L2CAP 계층의 코드를 포함하고, 상기 MQTT 계층은 상기 L2CAP 계층의 바로 상위의 계층인 게이트웨이가 제공된다.In another aspect, a processing unit that executes at least one program; A first communication unit for Bluetooth communication; and a second communication unit for interworking with the Internet, wherein the at least one program includes code for the first communication unit, the code for the first communication unit includes an MQTT layer code and an L2CAP layer code, and the The MQTT layer is provided with a gateway that 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 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 that communicates using Bluetooth according to one embodiment.
2 is a structural diagram of a Bluetooth device according to an embodiment.
3 is a structural diagram of a gateway according to an embodiment.
4 shows a protocol structure of a Bluetooth device according to an 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 CoAP between Bluetooth devices according to an example.
10 is a flowchart of a method for discovering a Bluetooth device supporting CoAP using broadcast according to an example.
11 is a flowchart of a method for discovering 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 method for discovering 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.
22 illustrates an advertising channel frame format according to an example.
23 illustrates a data channel frame format according to an example.
후술하는 예시적 실시예들에 대한 상세한 설명은, 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 실시예를 실시할 수 있기에 충분하도록 상세히 설명된다. 다양한 실시예들은 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 실시예의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 예시적 실시예들의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS For detailed descriptions of exemplary embodiments described below, reference is made to the accompanying drawings, which illustrate specific embodiments by way of example. 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, specific shapes, structures, and characteristics described herein may be implemented in one embodiment in another embodiment without departing from the spirit and scope of the invention. Additionally, it should be understood that the location or arrangement of individual components within each disclosed embodiment may be changed without departing from the spirit and scope of the embodiment. Accordingly, the detailed description set forth below is not to be taken in a limiting sense, and the scope of the exemplary embodiments, if properly described, is limited only by the appended claims, along with all equivalents as claimed by those claims.
도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.Like reference numbers in the drawings indicate the same or similar function throughout the various aspects. The shapes and sizes of elements in the drawings may be exaggerated for clarity.
실시예에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 실시예에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않으며, 추가적인 구성이 예시적 실시예들의 실시 또는 예시적 실시예들의 기술적 사상의 범위에 포함될 수 있음을 의미한다. 어떤 구성요소(component)가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기의 2개의 구성요소들이 서로 간에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 상기의 2개의 구성요소들의 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.Terms used in the examples are for describing the examples and are not intended to limit the present invention. In the examples, the singular also includes the plural unless specifically stated in the text. As used herein, "comprises" and/or "comprising" means that a stated component, step, operation, and/or element is present in the presence of one or more other components, steps, operations, and/or elements. Or, it does not exclude addition, and means that additional configurations may be included in the practice of exemplary embodiments or the scope of the technical idea of exemplary embodiments. When a component is referred to as being “connected” or “connected” to another component, the two components may be directly connected or connected to each other, but It will be understood that other components may exist in the middle of the two components.
제1 및 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기의 구성요소들은 상기의 용어들에 의해 한정되어서는 안 된다. 상기의 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하여 지칭하기 위해서 사용된다. 예를 들어, 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as first and second may be used to describe various elements, but the above elements should not be limited by the above terms. The above terms are used to distinguish and refer to one component from another. For example, without departing from the scope of rights, a first element may be termed a second element, and similarly, a second element may also be termed a first element.
또한 실시예들에 나타나는 구성요소들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성요소가 분리된 하드웨어나 하나의 소프트웨어 구성 단위로만 이루어짐을 의미하지 않는다. 즉, 각 구성요소는 설명의 편의상 각각의 구성요소로 나열된 것이다. 예를 들면, 구성요소들 중 적어도 두 개의 구성요소들이 하나의 구성요소로 합쳐질 수 있다. 또한, 하나의 구성요소가 복수의 구성요소들로 나뉠 수 있다. 이러한 각 구성요소의 통합된 실시예 및 분리된 실시예 또한 본질에서 벗어나지 않는 한 권리범위에 포함된다.In addition, the components appearing in the embodiments are shown independently to represent different characteristic functions, and each component does not mean that each component consists of only a separate hardware or one software unit. That is, each component is listed as each component for convenience of description. For example, at least two of the components may be combined into one component. Also, one component may be divided into a plurality of components. An integrated embodiment and a separate embodiment of each of these components are also included in the scope of rights unless departing from the essence.
또한, 일부의 구성요소는 본질적인 기능을 수행하는 필수적인 구성요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성요소일 수 있다. 실시예들은 실시예의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 예를 들면, 단지 성능 향상을 위해 사용되는 구성요소와 같은, 선택적 구성요소가 제외된 구조 또한 권리 범위에 포함된다.In addition, some of the components may not be essential components for performing essential functions, but may be optional components for improving performance. Embodiments may be implemented by including only components essential to implement the essence of the embodiment, and structures excluding optional components, such as components used only for performance improvement, are also included in the scope of rights.
이하에서는, 기술분야에서 통상의 지식을 가진 자가 실시예들을 용이하게 실시할 수 있도록 하기 위하여, 첨부된 도면을 참조하여 실시예들을 상세히 설명하기로 한다. 실시예들을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
Hereinafter, the embodiments will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily practice the embodiments. In describing the embodiments, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present specification, the detailed description will be omitted.
기존의 블루투스 표준은, 블루투스 기기 별로 프로파일 표준을 제정하였고, 프로파일 표준이 준수되도록 하였다. 그러나, 사물인터넷의 시대에서는 표준의 제정 속도가 새로운 제품의 출시 속도를 따라가지 못하고 있다.In the existing Bluetooth standard, a profile standard was established for each Bluetooth device, and the profile standard was complied with. However, in the age of the Internet of Things, the rate of establishment of standards is not keeping up with the rate of release of new products.
표준의 제정 및 새로운 제품의 출시 간의 격차에 의해, 한 회사의 제품들 간에만 연동이 되는 호환성의 문제가 발생하였다. 또한, 다양한 기기들을 수용할 수 있는 게이트웨이 및 응용의 개발이 어렵게되는 문제가 발생하였다.Due to the gap between the establishment of standards and the release of new products, a problem of compatibility in which only one company's products are interlocked occurred. In addition, there has been a problem that it is difficult to develop gateways and applications that can accommodate various devices.
따라서, 아래의 실시예들은 미래에 개발될 다양한 블루투스 기반의 사물인터넷 기기를 수용할 수 있는 호환성을 확보하는 프로토콜 구조를 제안한다. 또한, 아래의 실시예들은 기존의 인터넷 프로토콜을 그대로 블루투스 노드 상에 구현할 경우에 발생하는 메시지 오버헤드, 보안 및 재전송 등과 같은 기능 상의 중복 문제를 해결함으로써 효율성을 확보할 수 있다.Therefore, the following embodiments propose a protocol structure that secures compatibility capable of accommodating various Bluetooth-based IoT devices to be developed in the future. In addition, the following embodiments can secure efficiency by solving duplication of functions such as message overhead, security, and retransmission, which occur when the existing Internet protocol is implemented on a Bluetooth node as it is.
또한, 아래의 실시예들에서는, 블루투스 기기가 표준에 따라서 효율적으로 사물인터넷에 연결하는 것을 가능하게 하는 프로토콜 구조를 제안한다.
In addition, in the following embodiments, a protocol structure enabling a Bluetooth device to efficiently connect to the Internet of Things according to a standard is proposed.
도 1은 일 실시예에 따른 블루투스를 사용하여 통신하는 시스템을 도시한다.1 illustrates a system that communicates using Bluetooth according to one embodiment.
시스템(100)은 블루투스 장치(110) 및 게이트웨이(120)를 포함할 수 있다. 블루투스 장치(110)는 복수일 수 있다.System 100 may include a
블루투스 장치(110)는 사물인터넷을 지원할 수 있다. 블루투스 장치(110)의 프로토콜 구조는 블루투스 물리 계층, 블루투스 논리 계층, L2CAP 계층, 씨오에이피(Constrained Application Protocol; CoAP) 계층 및 응용 계층으로 구성될 수 있다.The
블루투스 장치(110)의 인터넷 네트워킹은 CoAP의 통합 리소스 식별자(Uniform Resource Identifier; URI) 경로 및 블루투스 기기 간의 매핑을 통해 이루어질 수 있다. 이러한 매핑의 과정은 게이트웨이(120)에 의해 수행될 수 있다.Internet networking of the
게이트웨이(120)는 블루투스 통신을 통해 블루투스 장치(110)와 통신할 수 있다. 또한, 게이트웨이(120)는 인터넷을 통해 외부의 다른 장치와 통신할 수 있다.
The
도 2는 일 실시예에 따른 블루투스 장치의 구조도이다.2 is a structural diagram of a Bluetooth device according to an embodiment.
블루투스 장치(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)의 동작, 기능 및 특징에 대해서 실시예들을 참조하여 아래에서 상세하게 설명된다.
Operations, functions, and characteristics of the
도 4는 일 실시예에 따른 블루투스 장치의 프로토콜 구조를 나타낸다.4 shows a protocol structure of a Bluetooth device according to an 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 a physical layer. The next layer may be a link (or 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, GATT, Generic Access Profile (GAP), and CoAP Support Profile (CSP) may be layers above the L2CAP layer. CoAP may be a layer above L2CAP. An application may be a layer above CoAP.
처리부(210)에 의해 수행되는 적어도 하나의 프로그램은 호스트 제이기 인터페이스 계층, L2CAP 계층, CoAP 계층 및 응용 계층을 포함할 수 있다. 처리부(210)에 의해 수행되는 적어도 하나의 프로그램은 ATT 계층, GATT 계층, GAP 계층 및 CSP 계층을 포함할 수 있다. 예를 들면, 적어도 하나의 프로그램은 호스트 제어기 인터페이스 계층의 코드, L2CAP 계층의 코드, CoAP 계층의 코드 및 응용 계층의 코드를 포함할 수 있다. 또한, 적어도 하나의 프로그램은 ATT 계층의 코드, GATT 계층의 코드, GAP 계층의 코드 및 CSP 계층의 코드를 포함할 수 있다.At least one program executed by the
블루투스 장치(110)에서, 아이이티에프(Internet Engineering Task Force; IETF) CoAP 계층은 L2CAP 계층의 바로 상위의 계층일 수 있다.In the
블루투스 장치(110) 및/또는 적어도 하나의 프로그램의 프로토콜 구조에서, IP 계층, UDP 계층 및 6LoWPAN 계층은 제외될 수 있다.In the protocol structure of the
CoAP 계층의 이하의 계층인 L2CAP 계층, 호스트 제어기 인터페이스 계층, 링크 계층 및 물리적 계층은 BLE 모듈에 대응할 수 있다. 말하자면, 블루투스 장치(110)에서, CoAP 계층은 BLE의 바로 상위의 계층일 수 있다.Layers below the CoAP layer, such as the L2CAP layer, the host controller interface layer, the link layer, and the physical layer, may correspond to the BLE module. In other words, in the
IETF CoAP는 저용량 소형 기기를 위해 UDP 계층의 위에서 동작하도록 설계된 프로토콜일 수 있다.IETF CoAP may be a protocol designed to operate on top of the UDP layer for small devices with low capacity.
L2CAP 계층은 데이터그램 형태의 데이터를 전송할 수 있다. 또한, L2CAP 계층은 노드를 식별할 수 있으며, 메시지를 노드로 전송할 수 있고, 노드로부터 메시지를 수신할 수 있다.The L2CAP layer may transmit data in the form of datagrams. Additionally, the L2CAP layer may identify nodes, may transmit messages to nodes, and may receive messages from nodes.
말하자면, IP 계층, UDP 계층 및 6LoWPAN 계층이 없더라도 CoAP는 L2CAP 계층의 바로 위에서 동작할 수 있다. 이러한 동작을 통해, 블루투스 장치(110)는 효율적인 통신을 가능하게 하면서도 표준 사물인터넷 프로토콜을 사용할 수 있다.In other words, even without an IP layer, a UDP layer, and a 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 part of a CoAP client function and a CoAP server function. The CoAP client function may include a function of transmitting a message of 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 the CoAP request.
CSP는 GATT 및 ATT를 통하여 블루투스 장치(100)가 CoAP의 기능을 지원한다는 것이 검색되게 할 수 있다.The CSP may make it possible to discover that the Bluetooth device 100 supports the CoAP function through GATT and ATT.
GAP, GATT, ATT 및 L2CAP은 기존의 블루투스 스택의 GAP, GATT, ATT 및 L2CAP에 각각 대응할 수 있다.GAP, GATT, ATT and L2CAP may respectively correspond to GAP, GATT, ATT and L2CAP of the existing Bluetooth stack.
블루투스 장치(100)가 CoAP을 지원하지 않는 다른 블루투스 장치와 통신을 할 필요가 없는 경우, CSP, GAP, GATT 및 ATT는 모두 생략될 수 있다. 이러한 경우, 블루투스 장치(110)는 CoAP 및 L2CAP만을 이용하여 다른 블루투스 장치를 검색하고, 검색된 다른 블루투스 장치의 속성을 알아내는 것이 요구될 수 있다.
If the 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 codes 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의 상위의 계층일 수 있다.CoAP may be a layer above L2CAP.
L2CAP의 하위의 계층은 도시된 것과 같이 BLE 모듈일 수 있다. 또는, BLE 모듈은 전통적인 블루투스 물리 계층 및 논리 계층으로 대체될 수 있다. 예를 들면, L2CAP의 하위의 계층은 전통적인 블루투스 물리 계층 및 논리 계층일 수 있다.A lower layer of L2CAP may be a BLE module as shown. Alternatively, the BLE module can be replaced with a traditional Bluetooth physical layer and logical layer. For example, layers below 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 is examined.
제2 통신부(330) 측 프로토콜 구조는 통상적인 티씨피/아이피(Transmission Control Protocol/Internet Protocol; TCP/IP) 스택에 대응할 수 있다.The protocol structure of the second communication unit 330 may correspond to a typical Transmission Control Protocol/Internet Protocol (TCP/IP) stack.
제2 통신부(330) 측 프로토콜 구조의 제일 하위의 계층은 와이파이(WiFi) 및/또는 이더넷(Ethernet)일 수 있다. 와이파이 및/또는 이더넷은 와이파이 및/또는 이더넷 통신을 위한 물리적 계층 및 링크 계층을 의미할 수 있다.The lowest layer of the protocol structure of the second communication unit 330 may be WiFi and/or Ethernet. Wi-Fi and/or Ethernet may refer to a physical layer and a link layer for Wi-Fi and/or Ethernet communication.
IP는 와이파이(WiFi) 및/또는 이더넷(Ethernet)의 상위의 계층일 수 있다.IP may be a layer above WiFi and/or Ethernet.
UDP는 IP의 상위의 계층일 수 있다.UDP may be a layer above IP.
CoAP 및/또는 HTTP는 UDP의 상위의 계층일 수 있다.CoAP and/or HTTP may be layers above UDP.
적어도 하나의 프로그램은 프록시 모듈을 포함할 수 있다. 프록시 모듈은 제1 통신부(320) 측 프로토콜 구조의 CoAP 계층 및 제2 통신부(330) 측 프로토콜 구조의 CoAP 계층 및/또는 HTTP 계층의 상위의 계층일 수 있다.
At least one program may include a proxy module. The proxy module may be a layer above the 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 , the
블루투스 장치(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)일 수 있다.At
블루투스 장치(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)를 검색할 수 있다.At
단계(820)에서, 게이트웨이(120)는 블루투스 장치(110)의 리소스를 확인할 수 있다.In
단계(830)에서, 게이트웨이(120)는 블루투스 장치(110)와 통신할 수 있다. 게이트웨이(120)는 블루투스 장치(110)에게 게이트웨이 기능을 제공할 수 있다.
At
도 9는 일 예에 따른 블루투스 장치들 간의 CoAP를 이용하는 통신을 도시한다.9 illustrates communication using CoAP between Bluetooth devices according to an example.
도 9에서 예시된 통신에서는, 게이트웨이(120) 없이 블루투스 장치들 간의 통신이 이루어질 수 있다.In the communication illustrated in FIG. 9 , communication between Bluetooth devices may be performed 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 서버의 동작을 수행할 수 있다.Like a smart phone, the
상기의 역할은 바뀔 수 있다. 다른 블루투스 장치(910)는 스마트폰과 같이 블루투스 노드를 제어하고, 블루투스 노드로부터 값을 획득하는 역할을 수행할 수 있다. 다른 블루투스 장치(910)는 블루투스 장치(110)를 제어할 수 있고, 블루투스 장치(110)로부터 값을 획득할 수 있다. 이러한 경우, 다른 블루투스 장치(910)는 CoAP의 요청 메시지를 블루투스 장치(110)로 전송하는 CoAP 클라이언트의 동작을 수행할 수 있다. 블루투스 장치(110)는 CoAP의 요청 메시지에 대한 CoAP의 응답 메시지를 다른 블루투스 장치(910)로 전송하는 CoAP 서버의 동작을 수행할 수 있다.The above roles may change. Another
블루투스 장치(110) 및 다른 블루투스 장치(910)는 블루투스 주소를 사용하여 서로를 식별할 수 있다. 말하자면, 블루투스 노드들 간의 식별은 블루투스 주소를 통해 이루어질 수 있다.
도 10은 일 예에 따른 브로드캐스트를 사용하는 CoAP를 지원하는 블루투스 장치의 검색 방법의 흐름도이다.10 is a flowchart of a method for discovering 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 search subject 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 steps 1030, 1040, and 1050 below.
게이트웨이(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, generation of the message of the
단계(1030)에서, 게이트웨이(120)는 브로드캐스트 메시지를 생성할 수 있다. 게이트웨이(120)는 브로드캐스트 메시지를 브로드캐스트할 수 있다.At step 1030,
브로드캐스트 메시지는 게이트웨이(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 advertising 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 0. The code of the CoAP Ping request message may be 0.00 (ie, empty). The CoAP Ping request message may not include options other than transaction type, token length, and code. A CoAP Ping request message may be 4 bytes.
통신 범위 내에 있는 블루투스 장치들은 브로드캐스트 메시지를 수신할 수 있다.Bluetooth devices within communication range can receive the broadcast message.
단계(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 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 to 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 reset (RST). The token length of the CoAP Ping response message may be 0. The code of the CoAP Ping response message may be 0.00 (ie beam). A message identifier (MID) of the CoAP Ping response message may be the same as the MID of the CoAP Ping request message. A CoAP Ping response message may be 4 bytes.
응답 메시지를 수신한 게이트웨이(120)는 주변에 CoAP를 지원하는 제1 블루투스 장치(1010)가 존재한다는 것을 인식할 수 있다. 예를 들면, 게이트웨이(120)는 제1 블루투스 장치(1010)의 주소를 알 수 있다.Upon receiving the response message, 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,
도 11은 일 예에 따른 관찰을 사용하는 CoAP를 지원하는 블루투스 장치의 검색 방법의 흐름도이다.11 is a flowchart of a method for discovering 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 generation of the message of the
단계(1130)에서, 블루투스 장치(110)는 브로드캐스트 메시지를 생성할 수 있다. 블루투스 장치(110)는 브로드캐스트 메시지를 브로드캐스트할 수 있다. 블루투스 장치(110)는 주기적으로 브로드캐스트 메시지를 브로드캐스트할 수 있다.At
브로드캐스트 메시지는 통신 가능한 CoAP를 지원하는 블루투스 장치(110)가 존재함을 알리기 위한 메시지일 수 있다. 브로드캐스트 메시지는 블루투스 장치(110)가 CoAP를 지원하는 블루투스 노드임을 나타낼 수 있다.The broadcast message may be a message for notifying that a
브로드캐스트 메시지의 블루투스 링크 계층 패킷 타입은 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 0. The code of the virtual CoAP Ping response message may be 0.00 (ie beam). The MID of the virtual CoAP Ping response message can have any value. A virtual CoAP Ping response message may be 4 bytes.
통신 범위 내에 있는 게이트웨이들은 브로드캐스트 메시지를 수신할 수 있다.Gateways within communication range can receive the broadcast message.
브로드캐스트 메시지를 관찰하고 있던 제1 게이트웨이(1110)는 브로드캐스트 메시지를 수신할 수 있다. 제1 게이트웨이(1110)는 브로드캐스트 메시지를 수신함에 따라 CoAP를 지원하는 BLE 기기인 블루투스 장치(110)를 발견할 수 있다.The
또한, 브로드캐스트 메시지를 관찰하고 있던 제2 게이트웨이(1120)는 브로드캐스트 메시지를 수신할 수 있다. 제2 게이트웨이(1120)는 브로드캐스트 메시지를 수신함에 따라 CoAP를 지원하는 BLE 기기인 블루투스 장치(110)를 발견할 수 있다.Also, the
전술된 것처럼, 게이트웨이(120)는 브로드캐스트 메시지를 관찰할 수 있다. 게이트웨이(120)는 가상 CoAP Ping 응답 메시지를 포함하는 브로드캐스트 메시지를 수신함에 따라 브로드캐스트 메시지를 브로드캐스트한 블루투스 장치(110)를 발견할 수 있다.
As mentioned above,
도 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)을 포함할 수 있다.Resources can include functions and attributes.
실시예에서, 게이트웨이(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
실시예에서, 블루투스 장치(110)의 메시지의 전송 및 수신은 통신부(220)에 의해 이루어질 수 있다. 블루투스 장치(110)에 의해 전송되는 메시지는 처리부(210)에 의해 생성될 수 있다. 게이트웨이(120)의 메시지의 전송 및 수신은 제1 통신부(320)에 의해 이루어질 수 있다. 게이트웨이(120)에 의해 전송되는 메시지는 처리부(310)에 의해 생성될 수 있다.In an embodiment, transmission and reception of messages of the
단계(1210)에서, 게이트웨이(120)는 블루투스 장치(110)와 통신 채널을 설립(establish)할 수 있다. 설립된 통신 채널은 소정의 시간 동안 유지될 수 있다.In
통신 채널을 설립하기 위해 게이트웨이(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" of the IETF CoAP standard (eg, RFC7252 (RFC7252)). Since it can be too long for a short text, it can be used as a shorthand for simplicity.
단계(1230)에서, 연결 요청 메시지를 수신한 블루투스 장치(110)는 연결 요청 메시지에 대한 응답 메시지를 전송할 수 있다.In
응답 메시지의 크기가 소정의 제1 값의 이상인 경우, 블루투스 L2에서 응답 메시지가 여러 개의 서브 메시지들로 나뉘어질 수 있고, 나뉘어진 서브 메시지들이 전송될 수 있다.When the size of the response message is greater than or equal to the predetermined first value, the response message may be divided into several sub-messages in Bluetooth L2, and the divided sub-messages may be transmitted.
또한, 응답 메시지의 크기가 소정의 제2 값의 이상인 경우, CoAP의 블록와이즈(blockwise) 전송(transfer) 기능이 사용될 수 있다.In addition, when the size of the response message is greater than or equal to a predetermined second value, a blockwise transfer function of CoAP may be used.
응답 메시지의 페이로드는 블루투스 장치(110)의 리소스의 경로를 포함할 수 있다. 리소스는 복수일 수 있다. 페이로드는 복수의 리소스들의 경로들의 목록을 포함할 수 있다.The payload of the response message may include a resource path 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)로 전송할 수 있다. 재질의 메시지는 경로에 대한 세부의 정보를 요청하는 메시지일 수 있다.In
예를 들면, "container"라는 리소스의 경로가 존재하는 경우, 게이트웨이(120)는 "CoAP GET(겟) /container Accept(어셉트):link-format(링크-포맷)" 메시지를 블루투스 장치(110)로 전송할 수 있다. "CoAP GET /container Accept:link-format" 메시지는 LL 데이터 패킷의 형태로 전송될 수 있다.For example, if a resource path named “container” exists, the
단계(1250)에서, 리소스의 경로에 대한 재질의 메시지를 수신한 블루투스 장치(110)는 재질의 메시지에 대한 응답 메시지를 전송할 수 있다. 응답 메시지는 리소스의 경로에 대한 정보를 포함할 수 있다.In
응답 메시지의 크기가 소정의 제1 값의 이상인 경우, 블루투스 L2에서 응답 메시지가 여러 개의 서브 메시지들로 나뉘어질 수 있고, 나뉘어진 서브 메시지들이 전송될 수 있다.When the size of the response message is greater than or equal to the predetermined first value, the response message may be divided into several sub-messages in Bluetooth L2, and the divided sub-messages may be transmitted.
또한, 응답 메시지의 크기가 소정의 제2 값의 이상인 경우, CoAP의 블록와이즈 전송 기능이 사용될 수 있다.In addition, when the size of the response message is larger than a predetermined second value, a blockwise transmission function of CoAP may 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 데이터 패킷의 형태로 전송될 수 있다.In
단계(1252)에서, 블루투스 장치(110)는 "CoAP 2.05 continue" 메시지를 게이트웨이(120)로 전송할 수 있다. "CoAP 2.05 continue" 메시지는 LL 데이터 패킷의 형태로 전송될 수 있다.In
전술된 것처럼, 게이트웨이(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, 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. 8 . The embodiment described above with reference to FIG. 12 may be used to search for resources of the
단계(1330)에서, 게이트웨이(120)의 처리부(310)는 블루투스 장치(110)의 리소스에 대한 매핑을 생성할 수 있다. 게이트웨이(120)의 처리부(310)는 블루투스 장치(110)의 리소스 및 게이트웨이(120)의 리소스 경로 간의 매핑을 생성할 수 있다. 게이트웨이(120)는 블루투스 장치(110)의 리소스 및 게이트웨이(120)의 리소스 경로 간의 매핑을 저장할 수 있다.In
리소스 경로는 프리픽스(prefix), 블루투스 장치 식별자 및 리소스 식별자를 포함할 수 있다.A resource path may include a prefix, a Bluetooth device identifier, and a resource identifier.
프리픽스는 블루투스 네트워크 내의 노드에 대한 경로임을 나타낼 수 있다.A prefix may indicate a route to a node within a 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 resource identifier is "temp", 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)의 각각에 대응할 수 있다.
단계(1340)에서, 게이트웨이(120)는 외부 장치(610)로부터 요청 메시지를 수신할 수 있다.In step 1340, the
요청 메시지는 CoAP의 요청 메시지일 수 있다.The request message may be a CoAP request message.
게이트웨이(120)는 요청 메시지의 URI-경로를 사용하여 요청 메시지의 목적지(destination)인 블루투스 장치(110)의 주소를 검색할 수 있다.The
단계(1350)에서, 요청 메시지의 목적지인 블루투스 장치(110)와의 블루투스 연결이 성립되어 있지 않은 경우, 게이트웨이(120)의 처리부(310)는 게이트웨이(120) 및 블루투스 장치(110) 간의 연결을 성립시킬 수 있다. 블루투스 연결의 성립을 위해 게이트웨이(120)는 CONNECT_REQ 메지지를 블루투스 장치(110)로 전송할 수 있다. CONNECT_REQ 메지지를 통해 게이트웨이(120) 및 블루투스 장치(110) 간의 연결이 성립될 수 있다.In step 1350, when the Bluetooth connection with the
단계(1355)에서, 게이트웨이(120)의 처리부(310)는 요청 메시지의 필드를 제거할 수 있다. 게이트웨이(120)의 처리부(310)는 요청 메시지로부터 1) URI-호스트, 2) URI-포트, 3) URI-경로 중 프리픽스 및 4) URI-경로 중 블루투스 장치 식별자를 제거할 수 있고, 요청 메시지로부터 IP 헤더 및 UDP 헤더를 제거할 수 있다.In
단계(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)를 식별할 수 있다.In
단계(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, transmission and reception of messages of the
우선, 도 13을 참조하여 전술된 단계들(1310, 1320 및 1330)이 수행될 수 있다.First, steps 1310, 1320, and 1330 described above with reference to FIG. 13 may be performed.
아래의 단계들(1410, 1420, 1430, 1440, 1450, 1460, 1470 및 1480)은 도 7을 참조하여 전술된 단계(730) 및 도 8을 참조하여 전술된 단계(830)의 각각에 대응할 수 있다.
다음으로, 단계(1410)에서, 게이트웨이(120)는 블루투스 장치(110)로부터 요청 메시지를 수신할 수 있다.Next, in step 1410, the
요청 메시지는 CoAP의 요청 메시지일 수 있다.The request message may be a CoAP request message.
게이트웨이(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)로 전달할 수 있다.In 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)를 식별할 수 있다.In
단계(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 operating mode of the
블루투스 장치(110)는 블루투스 지원 센서 노드일 수 있다. 또한, 블루투스 장치(110)는 사물인터넷 기기일 수 있으며, CoAP를 지원하는 BLE 기기일 수 있다.The
도 7을 참조하여 전술된 단계(710)는 아래의 단계들(1510 및 1520)을 포함할 수 있다.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, 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. "gw" in the request message may be an example of a string of URI-paths indicating that it is a gateway node.
통신 범위 내에 있는 게이트웨이(120)는 브로드캐스트 메시지를 수신할 수 있다.A
단계(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" message.
"CoAP 2.05 컨텐츠(Content)" 메시지는 "CoAP GET /gw" 메시지에 대응할 수 있다.The "CoAP 2.05 Content" message may correspond to the "CoAP GET /gw" message.
"CoAP 2.05 컨텐츠(Content)" 메시지는 게이트웨이(120) 자체에 대한 정보를 포함할 수 있고, 블루투스 장치(110)를 등록할 수 있게 하는 URI-경로를 포함할 수 있다.The "CoAP 2.05 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 method for discovering 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, 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 (put) /gw" message.
통신 범위 내에 있는 블루투스 장치(110)는 브로드캐스트 메시지를 수신할 수 있다.A
브로드캐스트 메시지를 관찰하고 있던 블루투스 장치(110)는 브로드캐스트 메시지를 수신할 수 있다. 제1 게이트웨이(1110)는 브로드캐스트 메시지를 수신함에 따라 CoAP를 지원하는 BLE 기기인 게이트웨이(120)를 발견할 수 있다.The
전술된 것처럼, 블루투스 장치(110)는 브로드캐스트 메시지를 관찰할 수 있다. 블루투스 장치(110)는 CoAP 메시지를 포함하는 브로드캐스트 메시지를 수신함에 따라 브로드캐스트 메시지를 브로드캐스트한 게이트웨이(120)를 발견할 수 있다.
As mentioned 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, transmission and reception of messages of the
단계(1710)에서, 블루투스 장치(110)는 게이트웨이(120)와 통신 채널을 설립할 수 있다. 설립된 통신 채널은 소정의 시간 동안 유지될 수 있다.At
통신 채널을 설립하기 위해 블루투스 장치(110)는 CONNECT_REQ 메시지를 게이트웨이(120)로 전송할 수 있다.To establish a communication channel, the
단계(1720)에서, 블루투스 장치(110)는 데이터 메시지를 전송할 수 있다. 데이터 메시지는 L2 데이터 메시지일 수 있다.At
데이터 메시지의 크기가 소정의 제1 값의 이상인 경우, 블루투스 L2에서 데이터 메시지가 여러 개의 서브 메시지들로 나뉘어질 수 있고, 나뉘어진 서브 메시지들이 전송될 수 있다.When the size of the data message is greater than or equal to the predetermined first value, the data message may be divided into several sub-messages in Bluetooth L2, and the divided sub-messages may be transmitted.
또한, 데이터 메시지의 크기가 소정의 제2 값의 이상인 경우, CoAP의 블록와이즈(blockwise) 전송(transfer) 기능이 사용될 수 있다.In addition, when the size of the data message is larger than a predetermined second value, a blockwise transfer function of CoAP may 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 데이터 패킷의 형태로 전송될 수 있다.In step 1732, the
단계(1740)에서, 게이트웨이(120)는 데이터 메시지에 대한 응답 메시지를 블루투스 장치(110)로 전송할 수 있다. 응답 메시지는 블루투스 장치(110)에 대한 정보가 게이트웨이(120)에 등록되었음을 나타낼 수 있다.In 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 about the
전술된 것처럼, 블루투스 장치(110)는 블루투스 장치(110)를 게이트웨이(120)에 등록하기 위해 블루투스 장치(110)에 대한 정보 및 블루투스 장치(110)의 리소스의 경로를 포함하는 데이터 메시지를 게이트웨이(120)로 전송하고, 블루투스 장치(110)에 대한 정보가 기록된 경로를 포함하는 응답 메시지를 게이트웨이(120)로부터 수신할 수 있다.
As described above, in order to register 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)을 포함할 수 있다.Step 720 described above with reference to FIG. 7 may include
실시예에서, 블루투스 장치(110)의 메시지의 전송 및 수신은 통신부(220)에 의해 이루어질 수 있다. 블루투스 장치(110)에 의해 전송되는 메시지는 처리부(210)에 의해 생성될 수 있다. 게이트웨이(120)의 메시지의 전송 및 수신은 제1 통신부(320)에 의해 이루어질 수 있다. 게이트웨이(120)에 의해 전송되는 메시지는 처리부(310)에 의해 생성될 수 있다.In an embodiment, transmission and reception of messages of the
단계(1810)에서, 블루투스 장치(110)는 리소스 등록 메시지를 게이트웨이(120)로 전송할 수 있다.In
리소스 등록 메시지의 크기가 소정의 제1 값의 이상인 경우, 블루투스 L2에서 리소스 등록 메시지가 여러 개의 서브 메시지들로 나뉘어질 수 있고, 나뉘어진 서브 메시지들이 전송될 수 있다.When the size of the resource registration message is larger than a predetermined first value, the resource registration message may be divided into several sub-messages in Bluetooth L2, and the 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, a blockwise transmission function of CoAP may be used.
리소스 등록 메시지의 페이로드는 블루투스 장치(110)에 대한 정보가 기록된 경로를 포함할 수 있고, 블루투스 장치(110)의 리소스에 대한 정보를 포함할 수 있다. 리소스는 복수일 수 있다. 리소스 등록 메시지의 페이로드는 복수의 리소스들에 대한 정보를 포함할 수 있다.The payload of the resource registration message may include a path in which information about the
단계(1810)는 단계(1811) 및 단계(1812)를 포함할 수 있다.
단계(1811)에서, 블루투스 장치(110)는 "CoAP POST /gw/ble/001, <resource>" 메시지를 게이트웨이(120)로 전송할 수 있다. "CoAP POST /gw/ble/001, <resource>" 메시지는 LL 데이터 패킷의 형태로 전송될 수 있다.In step 1811, the
"/gw/ble/001"는 도 17을 참조하여 전술된 단계(1740)에서 획득된 블루투스 장치(110)에 대한 정보가 기록된 경로를 나타낼 수 있다. 예를 들면, "/gw/ble/001"는 블루투스 장치(110)의 식별자가 될 수 있다."/gw/ble/001" may indicate a path where information about the
<resource>는 블루투스 장치(110)의 리소스에 대한 정보를 나타낼 수 있다. "CoAP POST /gw/ble/001" 메시지의 페이로드는 블루투스 장치(110)의 리소스에 대한 정보를 포함할 수 있다.<resource> may indicate information about a resource of the
단계(1812)에서, 블루투스 장치(110)는 "continue" 메시지를 게이트웨이(120)로 전송할 수 있다. "continue" 메시지는 LL 데이터 패킷의 형태로 전송될 수 있다.In 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 a "CoAP 2.01, Location: /gw/ble/001/data1" message.
응답 메시지는 블루투스 장치(110)의 리소스에 대한 정보를 포함할 수 있다.The response message may include information about resources of the
"Location" 옵션의 값은 블루투스 장치(110)의 리소스에 대한 정보가 기록된 경로를 나타낼 수 있다. 예를 들면, 경로 "/gw/ble/001/data1"에 블루투스 장치(110)의 리소스에 대한 정보가 기록될 수 있다.A value of the “Location” option may indicate a path where information about 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 계층의 바로 상위의 계층이 될 수 있다.MQTT is designed based on TCP, but can provide a simple message structure. Therefore, the MQTT layer can be a layer immediately above the L2CAP layer.
응용 계층은 블루투스의 복잡한 절차 및 규격을 직접 사용하지 않더라도 MQTT 규격을 사용함으로써 서비스를 제공할 수 있다.The application layer can provide services by using the MQTT standard without directly using the complicated procedure and standard of Bluetooth.
실시예들을 참조하여 전술된 CoAP에 대한 내용은 MQTT에 적용될 수 있다. 예를 들면, 처리부(210)에 수행되는 적어도 하나의 프로그램은 MQTT 계층의 코드를 포함할 수 있고, MQTT 계층은 L2CAP 계층의 바로 상위의 계층일 수 있다.
The contents of CoAP described above with reference to the embodiments may be applied to MQTT. For example, at least one program executed by 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
도 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 may be configured to play a role in one of the Open Systems Interconnection (OSI) 7 layers. When a protocol is applied to the system, a protocol suitable for each layer may be selected, and a protocol stack may be configured by the 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 may also follow this structure.
CoAP 프로토콜은 세션 계층 및 응용 계층에 해당한다. 블루투스의 물리 계층, 논리 계층 및 CoAP 프로토콜의 특징에 따라, 블루투스 장치(110)의 논리 계층 및 CoAP 프로토콜은, 네트워크 계층 및 전송 계층의 프로토콜 없이, 직접적으로 연결될 수 있다. 직접적인 연결에 따라 효율성 및 호환성이 확보될 수 있다. 또한, 블루투스 장치(110)의 네트워킹 기능은 게이트웨이(120)와의 협력을 통해 수행될 수 있다.
The CoAP protocol corresponds to the session layer and the application layer. According to the characteristics of the physical layer, logical layer, and CoAP protocol of Bluetooth, the logical layer and CoAP protocol of the
도 22는 일 예에 따른 어드버타이징 채널 프레임 포맷을 나타낸다.22 illustrates an advertising channel frame format 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 advertising
어드버타이징 채널 프레임 포맷(2200)은 전술된 메시지 중 어드버타이징 채널에 관련된 메시지의 포맷으로서 사용될 수 있다.
The advertising
도 23은 일 예에 따른 데이터 채널 프레임 포맷을 나타낸다.23 illustrates 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 devices described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), It may be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. A processing device may run an operating system (OS) and one or more software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. The device can be commanded. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler. 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.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited examples and drawings, those skilled in the art can make various modifications and variations from the above description. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.
110: 블루투스 장치
120: 게이트웨이
610: 외부 장치110: Bluetooth device
120: gateway
610: external device
Claims (20)
블루투스 통신을 수행하는 통신부
를 포함하고,
상기 적어도 하나의 프로그램은 ATT(Attribute protocol) 계층의 코드, GATT(Generic Attribute Profile) 계층의 코드, GAP(Generic Access Profile) 계층의 코드, CSP(CoAP Support Profile) 계층의 코드, CoAP(Constrained Application Protocol) 계층의 코드 및 L2CAP(Logical Link Control and Adaptation Protocol) 계층의 코드를 포함하고,
상기 ATT 계층, 상기 GATT 계층, 상기 GAP 계층, 상기 CSP 계층 및 상기 CoAP 계층은 상기 L2CAP 계층의 상위 계층이고,
상기 CoAP 계층은 CoAP 블루투스 기기를 검색, CoAP 요청의 메시지를 전송, 상기 CoAP 요청의 메시지를 수신 및 상기 CoAP 요청에 대한 응답 메시지를 전송하는 것인 블루투스 장치.a processing unit that executes at least one program; and
Communication unit that performs Bluetooth communication
including,
The at least one program includes ATT (Attribute protocol) layer code, GATT (Generic Attribute Profile) layer code, GAP (Generic Access Profile) layer code, CSP (CoAP Support Profile) layer code, CoAP (Constrained Application Protocol ) layer and the code of the Logical Link Control and Adaptation Protocol (L2CAP) layer,
The ATT layer, the GATT layer, the GAP layer, the CSP layer, and the CoAP layer are higher layers of the L2CAP layer,
wherein the CoAP layer searches for a CoAP Bluetooth device, transmits a CoAP request message, receives the CoAP request message, and transmits a response message to the CoAP request.
상기 적어도 하나의 프로그램은 CoAP 지원 프로파일을 포함하는 블루투스 장치.According to claim 1,
Wherein the at least one program includes a CoAP support profile.
상기 CSP는 GATT 및 ATT를 통해 상기 블루투스 장치가 CoAP의 기능을 지원한다는 것이 검색되게 하는 블루투스 장치.According to claim 2,
The CSP enables the Bluetooth device to discover that the Bluetooth device supports the CoAP function through GATT and ATT.
상기 블루투스 장치는 CoAP GET 메시지를 포함하는 브로드캐스트 메시지를 브로드캐스트하고, 브로드캐스트 메시지에 대응하는 응답 메시지를 게이트웨이로부터 수신함으로써 상기 게이트웨이에 대한 정보를 획득하는 블루투스 장치.According to claim 1,
The Bluetooth device obtains 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.
상기 블루투스 장치는 브로드캐스트 메시지를 관찰하고, 상기 브로드캐스트 메시지를 수신함에 따라 상기 브로드캐스트 메시지를 브로드캐스트한 게이트웨이를 발견하는 블루투스 장치.According to claim 1,
The Bluetooth device observes a broadcast message, and discovers a gateway that broadcasts the broadcast message upon receiving the broadcast message.
상기 블루투스 장치는 상기 블루투스 장치를 게이트웨이에 등록하기 위해 상기 블루투스 장치에 대한 정보 및 상기 블루투스 장치의 리소스의 경로를 포함하는 데이터 메시지를 상기 게이트웨이로 전송하고, 상기 블루투스 장치에 대한 정보가 기록된 경로를 포함하는 응답 메시지를 상기 게이트웨이로부터 수신하는 블루투스 장치.According to claim 1,
The Bluetooth device transmits a data message including information about the Bluetooth device and a path of a resource of the Bluetooth device to the gateway to register the Bluetooth device with the gateway, and sends a path in which the information about the Bluetooth device is recorded. A Bluetooth device receiving a response message including a response message from the gateway.
상기 블루투스 장치는 상기 경로를 사용하여 상기 블루투스 장치의 리소스를 상기 게이트웨이에 등록하는 블루투스 장치.According to claim 6,
The Bluetooth device registers a resource of the Bluetooth device with the gateway using the route.
게이트웨이에 의해 검색된 상기 블루투스 장치를 게이트웨이에 등록하는 단계; 및
상기 게이트웨이에 의해 제공되는 게이트웨이 기능을 통해 통신을 수행하는 단계
를 포함하고,
상기 블루투스 장치의 프로토콜 스택은 ATT 계층, GATT 계층, GAP 계층, CSP 계층, CoAP 계층 및 L2CAP 계층을 포함하고,
상기 ATT 계층, 상기 GATT 계층, 상기 GAP 계층, 상기 CSP 계층 및 상기 CoAP 계층은 상기 L2CAP 계층의 상위 계층이고,
상기 CoAP 계층은 CoAP 블루투스 기기를 검색, CoAP 요청의 메시지를 전송, 상기 CoAP 요청의 메시지를 수신 및 상기 CoAP 요청에 대한 응답 메시지를 전송하는 것인 통신 방법.performed by a Bluetooth device,
registering the Bluetooth device discovered by the gateway with the gateway; and
performing communication through a gateway function provided by the gateway;
including,
The protocol stack of the Bluetooth device includes an ATT layer, a GATT layer, a GAP layer, a CSP layer, a CoAP layer, and an L2CAP layer,
The ATT layer, the GATT layer, the GAP layer, the CSP layer, and the CoAP layer are higher layers of the L2CAP layer,
wherein the CoAP layer searches for a CoAP Bluetooth device, transmits a CoAP request message, receives the CoAP request message, and transmits a response message to the CoAP request.
상기 블루투스 장치의 리소스를 상기 게이트웨이에 등록하는 단계
를 더 포함하는 통신 방법.According to claim 8,
Registering the resource of the Bluetooth device with the gateway
A communication method further comprising a.
블루투스 통신을 수행하는 통신부
를 포함하고,
상기 적어도 하나의 프로그램은 ATT 계층의 코드, GATT 계층의 코드, GAP 계층의 코드 및 MQTT 계층의 코드 및 L2CAP 계층의 코드를 포함하고,
상기 ATT 계층, 상기 GATT 계층, 상기 GAP 계층 및 상기 MQTT 계층은 상기 L2CAP 계층의 상위 계층인 블루투스 장치.a processing unit that executes at least one program; and
Communication unit that performs Bluetooth communication
including,
The at least one program includes ATT layer code, GATT layer code, GAP layer code, MQTT layer code, and L2CAP layer code,
The ATT layer, the GATT layer, the GAP layer, and the MQTT layer are upper layers of the L2CAP layer.
블루투스 통신을 위한 제1 통신부; 및
인터넷과의 연동을 위한 제2 통신부
를 포함하고,
상기 적어도 하나의 프로그램은 제1 통신부 용 코드를 포함하고,
상기 제1 통신부 용 코드는 제1 CoAP 계층의 코드 및 L2CAP 계층의 코드를 포함하고,
상기 제1 CoAP 계층은 상기 L2CAP 계층의 바로 상위의 계층이고,
상기 제2 통신부의 프로토콜 스택은 와이파이 또는 이더넷 계층, IP 계층, UDP 계층, 제2 CoAP 계층을 포함하고,
상기 적어도 하나의 프로그램은 프록시 모듈을 포함하고,
상기 프록시 모듈은 상기 제2 CoAP 계층의 상위의 계층이고,
상기 프록시 모듈은 상기 제1 통신부를 통해 연결된 블루투스 장치의 주소를 게이트웨이 내부의 URI-경로에 매핑함으로써 상기 블루투스 장치 및 상기 제2 통신부를 통해 연결된 장치 간의 통신을 가능하게 하는 게이트웨이.a processing unit that executes at least one program;
A first communication unit for Bluetooth communication; and
Second communication unit for linking with the Internet
including,
The at least one program includes a code for the first communication unit,
The code for the first communication unit includes a code of a first CoAP layer and a code of an L2CAP layer,
The first CoAP layer is a layer immediately above the L2CAP layer,
The protocol stack of the second communication unit includes a Wi-Fi or Ethernet layer, an IP layer, a UDP layer, and a second CoAP layer,
The at least one program includes a proxy module,
The proxy module is a layer above the second CoAP layer,
The proxy module enables communication between the Bluetooth device and a device connected through the second communication unit by mapping an address of the 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 헤더가 세팅된 요청 메시지를 외부 장치로 전달하는 게이트웨이.According to claim 11,
The first communication unit receives a CoAP request message from a Bluetooth device,
The processing unit removes a URI-host and a URI-port from the request message of the CoAP, sets an IP header and a UDP header in the request message,
The second communication unit transfers the request message in which the IP header and the UDP header are set to an external device.
상기 제2 통신부는 외부 장치로부터 CoAP의 요청 메시지를 수신하고,
상기 처리부는 상기 CoAP의 요청 메시지로부터 URI-호스트, URI-포트, URI-경로 중 프리픽스, URI-경로 중 블루투스 장치 식별자, IP 헤더 및 UDP 헤더를 제거하고,
상기 제1 통신부는 상기 URI-호스트, 상기 URI-포트, 상기 프리픽스, 상기 블루투스 장치 식별자, 상기 IP 헤더 및 상기 UDP 헤더가 제거된 요청 메시지를 블루투스 장치로 전달하는 게이트웨이.According to claim 11,
The second communication unit receives a CoAP request message from an external device,
The processing unit removes a URI-host, a URI-port, a prefix from a URI-path, a Bluetooth device identifier from a URI-path, an IP header, and a UDP header from the request message of the CoAP;
The first communication unit transfers the request message from which the URI-host, the URI-port, the prefix, the Bluetooth device identifier, the IP header, and the UDP header are removed to the Bluetooth device.
상기 게이트웨이는 CoAP Ping 요청 메시지를 포함하는 브로드캐스트 메시지를 브로드캐스트하고, 블루투스 장치로부터 상기 CoAP Ping 요청 메시지에 대응하는 CoAP Ping 응답 메시지를 수신함으로써 상기 블루투스 장치를 검출하는 게이트웨이.According to claim 11,
The gateway detects 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.
상기 게이트웨이는 브로드캐스트 메시지를 관찰할 수 있고,
상기 게이트웨이는 가상 CoAP Ping 응답 메시지를 포함하는 상기 브로드캐스트 메시지를 수신함에 따라 상기 브로드캐스트 메시지를 브로드캐스트한 블루투스 장치를 발견하는 게이트웨이.According to claim 11,
the gateway may observe the broadcast message;
wherein the gateway discovers the Bluetooth device that broadcast the broadcast message upon receiving the broadcast message including the virtual CoAP Ping response message.
상기 게이트웨이는 연결 요청 메시지를 블루투스 장치로 전송하고, 상기 블루투스 장치로부터 상기 블루투스 장치의 리소스의 경로를 포함하는 응답 메시지를 수신하고, 상기 경로를 포함하는 재질의 메시지를 상기 블루투스 장치로 전송하고, 상기 경로에 대한 정보를 포함하는 응답 메시지를 상기 블루투스 장치로부터 수신하는 게이트웨이.According to claim 11,
The gateway transmits a connection request message to the Bluetooth device, receives a response message including a path of a resource of the Bluetooth device from the Bluetooth device, transmits a material message including the path to the Bluetooth device, and A gateway for receiving a response message including route information from the Bluetooth device.
블루투스 통신을 위한 제1 통신부; 및
인터넷과의 연동을 위한 제2 통신부
를 포함하고,
상기 적어도 하나의 프로그램은 제1 통신부 용 코드를 포함하고,
상기 제1 통신부 용 코드는 제1MQTT 계층의 코드 및 L2CAP 계층의 코드를 포함하고,
상기 제1MQTT 계층은 상기 L2CAP 계층의 바로 상위의 계층이고,
상기 제2 통신부의 프로토콜 스택은 와이파이 또는 이더넷 계층, IP 계층, TCP 계층 및 제2 MQTT 계층을 포함하는 게이트웨이.a processing unit that executes at least one program;
A first communication unit for Bluetooth communication; and
Second communication unit for linking with the Internet
including,
The at least one program includes a code for the first communication unit,
The code for the first communication unit includes a code of a first MQTT layer and a code of an L2CAP layer,
The first MQTT layer is a layer immediately above the L2CAP layer,
The protocol stack of the second communication unit includes a Wi-Fi or Ethernet layer, an IP layer, a TCP layer, and a second MQTT 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 KR20170119098A (en) | 2017-10-26 |
KR102503257B1 true 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) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102411691B1 (en) * | 2018-01-03 | 2022-06-22 | 삼성전자주식회사 | 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 (4)
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 |
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 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120002087A (en) * | 2010-06-30 | 2012-01-05 | 한국전자통신연구원 | Apparatus and method for selecting of ap considering network performance |
-
2016
- 2016-04-18 KR KR1020160046825A patent/KR102503257B1/en active IP Right Grant
Patent Citations (4)
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 |
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 |
Also Published As
Publication number | Publication date |
---|---|
KR20170119098A (en) | 2017-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11765150B2 (en) | End-to-end M2M service layer sessions | |
EP3243317B1 (en) | Machine-to-machine protocol indication and negotiation | |
EP3195566B1 (en) | Service layer interworking using mqtt protocol | |
EP3259898B1 (en) | Message bus service directory | |
US10863422B2 (en) | Mechanisms for ad hoc service discovery | |
KR101842316B1 (en) | Method and system of providing internet protocol(ip) data communication in a nfc peer to peer communication environment | |
US9979511B2 (en) | Cross-layer and cross-application acknowledgment for data transmission | |
US10231163B2 (en) | Efficient centralized resource and schedule management in time slotted channel hopping networks | |
US20170126569A1 (en) | Enhanced neighbor discovery to support load balancing | |
US11824685B2 (en) | Method for implementing GRE tunnel, access point and gateway | |
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 |
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 |