WO2015163680A1 - Method and apparatus for transmitting and receiving data using bluetooth low-power energy technique in wireless communication system - Google Patents
Method and apparatus for transmitting and receiving data using bluetooth low-power energy technique in wireless communication system Download PDFInfo
- Publication number
- WO2015163680A1 WO2015163680A1 PCT/KR2015/003989 KR2015003989W WO2015163680A1 WO 2015163680 A1 WO2015163680 A1 WO 2015163680A1 KR 2015003989 W KR2015003989 W KR 2015003989W WO 2015163680 A1 WO2015163680 A1 WO 2015163680A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- request message
- response
- value
- request
- Prior art date
Links
Images
Classifications
-
- 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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Definitions
- Bluetooth can achieve a relatively high speed at a relatively low power, low cost, but the transmission distance is generally limited to a maximum of 100m, it is suitable for use in a limited space.
- an object of the present invention is to define an error message for an error (Error) that may occur when data is transmitted and received through the Bluetooth LE communication.
- Error an error
- the controller when there is a plurality of data, the controller receives an error message from the second device, transmits a third request message including an attribute value of the data, And receiving a third response message including the data in response to the third request message.
- FIG. 5 is a diagram illustrating an example of a PDU structure for providing an attribute structure and an attribute value of Bluetooth low power energy.
- FIG. 17 is a flowchart illustrating another example of a method for notifying a client of data stored in a server proposed in the present specification.
- FIG. 18 is a flowchart illustrating an example of a method for instructing a client of data stored in a server, proposed in the present specification.
- the communication unit 118 and 127 may include a baseband circuit for processing a radio signal.
- the above-described technique may be implemented as a module (process, function, etc.) for performing the above-described function.
- the module may be stored in memory and executed by a processor.
- the input units 112 and 122 refer to a module that provides a user's input to the controller like a screen button so that the user can control the operation of the device.
- Piconet F has one physical channel. Devices F and G use one BLE piconet physical channel. Device F is the master and device G is the slave.
- the Bluetooth BR / EDR protocol stack has an upper controller stack 10 and a lower controller stack based on a host controller interface (HCI) 18. It may include a host stack (20) of.
- HCI host controller interface
- the host stack 20 may include a BR / EDR PHY layer 12, a BR / EDR baseband layer 14, and a link manager layer 16.
- the Security Manager (SM) 22 is a protocol for authenticating a device and providing key distribution.
- the controller stack 30 may be implemented using a communication module that may include a Bluetooth radio, for example, a processor module that may include a processing device such as a microprocessor.
- the controller stack 30 includes a physical layer (PHY) 32, a link layer 34, and a host controller interface 36.
- PHY physical layer
- link layer 34 link layer
- host controller interface 36 host controller interface
- Attribute Protocol (ATT) 43 defines a rule for accessing data of a counterpart device in a server-client structure. ATT has six message types (Request, Response, Command, Notification, Indication, Confirmation).
- the advertising procedure can be the goal, so that only one device will respond to the advertising.
- the connection may be initiated by sending a connection request to the advertising device via the advertising (broadcast) physical channel.
- the link layer enters the scanning state by the indication of the host (stack). In the scanning state, the link layer listens for advertising channel indices.
- the procedure, state, packet format, etc. in the BLE technology may be applied to perform the methods proposed herein.
- a message type when data is transmitted / received through Bluetooth Low Energy (LE), a message type may be transmitted according to the size or length of data.
- Bluetooth Low Energy LE
- the maximum size of data that can be transmitted through the read response is ATT_MTU-1. If the size is larger than this, only the size of ATT_MTU-1 can be transmitted.
- the read blob request includes not only a Handle value of a characteristic to be read, but also a characteristic offset to read partially divided data, so that data can be read from the characteristic offset.
- the client 120 needs to know the size of the data to be transmitted in advance to receive the split transmission through the read blob request. Otherwise, the client 120 cannot receive the data through the read request.
- the problem is that it is not known whether the data is part of the overall data or whether there is additional data.
- the present invention proposes a method of transmitting information such as whether additional data is present in the read response and the length of the data.
- Table 5 below shows an example of the data format of the error response.
- Table 6 below shows an example of the error code value.
- the server receiving the request has a property value having a Handle value corresponding to “0x0123” and a value corresponding to a size of “0x0000” to ATT_MTU-1 (“0x0016”) (“A very Long Device Nam in this embodiment”). ”) Is transmitted to the client 120 through a read blob response (S840).
- FIG. 9 is a diagram illustrating an example of a method for transmitting data through another response message according to the size of data requested as proposed herein.
- the server 100 may find a value of “A Very Long Device Name Using a Long Attribute” which is a requested characteristic value by using the handle value, and determine whether the characteristic value is larger than the maximum transmission size (ATT_MTU-1). can do.
- the client sees that a read blob response has been sent in response to the read request and can see that there is additional data.
- the client transmits a read blob request to the server 110 to receive additional data (S1030).
- the read blob request may include “0x0123”, which is a handle value of a corresponding attribute, and “0x0016”, which is an offset value of a value to be transmitted.
- the server 110 Upon receiving the read blob request, the server 110 selects, from the offset value “0x0016” based on the handle value, the value “e Using a Long Attribu” corresponding to the maximum transmission size together with the offset value.
- the client 120 transmits the data to the client 120 (S1040).
- the client 120 transmits a read blob request including a handle value “0x0123” and an offset value “0x002C” to the server 110 (S1050).
- FIG. 11 is a flowchart illustrating still another example of a method for acquiring data stored in a server, proposed in the present specification.
- the Starting Handle of the Read By Type Value Request is “0x124”
- the Ending Handle is “0x150”
- the Attribute Type is “ ⁇ Characteristic >>”
- the Value Type of the Attribute Value is “0x01”
- the Value of the Attribute Value is 16bit It contains the UUID “ ⁇ Temperature >>”.
- the server 110 receiving the request may find a stored value based on a value included in the Read By Type Value Request. However, as shown in Table 6, data having an attribute type of “0x06” is not stored.
- Table 13 below shows an example of the data format of the Read Attribute Length Request.
- the server 110 transmits data up to ATT_MTU-3 to the client 120 through the Blob Handle Value Notification (S1610).
- the Attribute Handle may have a value of “0x0123”, a part attribute value of “A Very Long Device Nam”, and an OFFSet of “0x00” value.
- the server 110 transmits a Blob Handle Value Notification to the client 120 again in order to additionally transmit the data that has not been sent in step S1610 to the client 120 (S1620).
- the server 110 transmits data up to ATT_MTU-3 to the client 120 through the Blob Handle Value Indication (S1810).
- the client 120 transmits the Blob Handle Value Confirmation to the server 110 again in response (S1840).
- the client 120 receiving data from the server 110 transmits a blob handle value confirmation to the server 110 in response (S1820).
- the client 120 may determine whether additional data exists in the server 110 based on the data transmitted through the Blob Handle Value Indication or based on data length information transmitted or known. .
- the client 120 when the client 120 wants to store data in the server 110, the client 120 may transmit a write request to the server 110 and store the data.
- the error response has the same format as Table 5 above.
- the client 120 requests to store an “0x033” value at a position where a handle value is “0x0123” through the write request. (S2010).
- the client 120 requests the storage of the value “0x033” (integer) at the position where the handle value is “0x0123” through the write request ( S2110).
- the error response may include the error code “0x14” and / or information of the read request.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
The present invention relates to a method for transmitting and receiving data through a Bluetooth LE, and comprises: a step of transmitting a first request message for a data request to a second device; a step of receiving a first response message including data as a response to the first request message; a step of transmitting a second request message for an additional data request if said data has the same data size of the maximum data transmission size; and a step of receiving a second response message including said additional data as a response to the second request message, wherein the first request message or the second request message respectively includes information related to said data, and wherein the first request message or the second request message respectively includes at least one of a length information or an ID information.
Description
본 발명은 무선 통신시스템에서 근거리 저전력 기술인 블루투스 저전력 에너지(Bluetooth Low Energy:BLE) 기술을 통해서 데이터를 송수신하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for transmitting and receiving data through Bluetooth low energy (BLE) technology, which is a near field low power technology in a wireless communication system.
블루투스는 근거리에서 각종 디바이스들을 무선으로 연결하여 데이터를 주고 받을 수 있는 근거리 무선 기술 규격이다. 블루투스(Bluetooth) 통신을 이용하여 두 기기간 무선 통신을 수행하고자 하는 경우, 사용자(User)는 통신하고자 하는 블루투스(Bluetooth) 디바이스(Device)들을 검색(Discovery)하고 연결(Connection)을 요청하는 절차를 수행한다. 본 발명에서 디바이스는 기기, 장치를 의미할 수 있다.Bluetooth is a short-range wireless technology standard that can transmit and receive data by wirelessly connecting various devices in a short distance. When performing wireless communication between two devices using Bluetooth communication, a user performs a procedure of searching for a Bluetooth device and requesting a connection. do. In the present invention, the device may mean an apparatus and an apparatus.
이때, 사용자는 블루투스 디바이스를 이용하여 사용하고자 하는 블루투스 통신방법에 따라 블루투스 디바이스를 검색한 후 연결을 수행할 수 있다.In this case, the user may perform a connection after searching for the Bluetooth device according to the Bluetooth communication method to use using the Bluetooth device.
블루투스 통신방법에는 BR/EDR (Basic Rate/Enhanced Data Rate)방식과 저전력 방식인 LE (Low Energy)방식이 있다. BR/EDR 방식은 블루투스 클래식 (Bluetooth Classic)라고 호칭될 수 있다. 블루투스 클래식 방식은 베이직 레이트(Basic Rate)를 이용하는 블루투스 1.0부터 이어져온 블루투스 기술과 블루투스 2.0에서부터 지원되는 인핸스드 데이터 레이트(Enhanced Data Rate)를 이용하는 블루투스 기술을 포함한다.The Bluetooth communication method includes a basic rate / enhanced data rate (BR / EDR) method and a low energy (LE) method, which is a low power method. The BR / EDR scheme may be referred to as Bluetooth Classic. The Bluetooth classic includes Bluetooth technology that has been adopted since Bluetooth 1.0 using Basic Rate and Bluetooth technology that has used Enhanced Data Rate supported since Bluetooth 2.0.
블루투스 저전력 에너지(Bluetooth Low energy, 이하 블루투스 LE라고 한다.)기술은 블루투스 4.0 부터 적용되어 적은 전력을 소모하여 수백 키로바이트(KB)의 정보를 안정적으로 제공할 수 있다. 이러한 블루투스 저전력 에너지 기술은 속성 프로토콜(Attribute Protocol)을 활용해서 디바이스(Device) 간 정보를 교환하게 된다. 이러한 블루투스 LE 방식은 헤더의 오버헤드(overhead)를 줄이고 동작을 간단하게 해서 에너지 소비를 줄일 수 있다.Bluetooth Low Energy (hereinafter referred to as Bluetooth LE) technology has been applied since Bluetooth 4.0, and can consume hundreds of kilobytes (KB) of information stably with low power consumption. The Bluetooth low energy energy technology uses an attribute protocol to exchange information between devices. This Bluetooth LE method can reduce energy overhead by reducing the header overhead and simplifying the operation.
블루투스 기기들 중에는 디스플레이(Display)나 유저인터페이스(User Interface)가 없는 제품들도 있다. 다양한 종류의 블루투스 기기들과 그 중에서도 유사기술이 적용된 블루투스 기기들 간의 연결 / 관리 / 제어 / 분리 (Connection / Management / Control / Disconnection)의 복잡도가 증가하고 있다.Some Bluetooth devices do not have a display or a user interface. The complexity of connection / management / control / disconnection between various kinds of Bluetooth devices and similarly applied Bluetooth devices is increasing.
또한, 블루투스는 비교적 저전력, 저비용으로 비교적 빠른 속도를 낼 수 있으나, 전송 거리가 일반적으로 최대 100m로 한정적이므로, 한정된 공간에서 사용하기 적합하다.In addition, Bluetooth can achieve a relatively high speed at a relatively low power, low cost, but the transmission distance is generally limited to a maximum of 100m, it is suitable for use in a limited space.
본 발명에서는, 블루투스 통신을 통해서 데이터를 송수신하기 위한 방법을 제공함에 그 목적이 있다.It is an object of the present invention to provide a method for transmitting and receiving data via Bluetooth communication.
또한, 본 발명에서는 블루투스 LE 통신을 통하여 크기가 큰 데이터를 송수신하기 위한 방법을 제공함에 그 목적이 있다.Another object of the present invention is to provide a method for transmitting and receiving large data through Bluetooth LE communication.
또한, 본 발명에서는 블루투스 lE 통신을 통하여 데이터를 송수신하는 경우, 발생할 수 있는 에러(Error)에 대한 에러메시지를 정의 함에 그 목적이 있다.In addition, an object of the present invention is to define an error message for an error (Error) that may occur when data is transmitted and received through the Bluetooth LE communication.
또한, 본 발명에서는 블루투스 LE 통신을 통하여 서버에 저장되어 있는 특정 특성 또는 UUID(Universally Unique Identifiers)를 통해서 특성 값(Characteristic value)을 찾기 위한 방법을 제공함에 그 목적이 있다.Another object of the present invention is to provide a method for finding a characteristic value through a specific characteristic or universally unique identifiers (UUIDs) stored in a server through Bluetooth LE communication.
또한, 본 발명에서는 블루투스 LE 통신을 통하여 데이터를 송수신하는 경우, 데이터의 크기 또는 길이를 제공할 수 있는 방법을 제공함에 그 목적이 있다.In addition, an object of the present invention is to provide a method that can provide the size or length of data when transmitting and receiving data through Bluetooth LE communication.
본 명세서에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved in the present specification are not limited to the technical problems mentioned above, and other technical problems not mentioned above will be clearly understood by those skilled in the art from the following description. Could be.
본 발명에서는 상술한 문제점을 해결하기 위하여, 블루투스 LE(Low Energy) 기술을 통해서 데이터를 송수신하는 방법 및 장치를 제공한다.The present invention provides a method and apparatus for transmitting and receiving data through Bluetooth Low Energy (LE) technology in order to solve the above problems.
구체적으로, 본 발명의 일 실시예에 따른 블루투스 LE(Low Energy)를 통해서 데이터를 송수신하는 방법은, 제 2 디바이스에게 데이터 요청을 위한 제 1 요청 메시지를 전송하는 단계; 상기 제 1 요청 메시지에 대한 응답으로 데이터를 포함한 제 1 응답 메시지를 수신하는 단계; 만약, 상기 데이터가 최대 데이터 전송 크기과 같은 경우, 추가 데이터 요청을 위한 제 2 요청 메시지를 전송하는 단계; 및 상기 제 2 요청 메시지에 대한 응답으로 상기 추가 데이터를 포함한 제 2 응답 메시지를 수신하는 단계를 포함하되, 상기 제 1 요청 메시지 또는 상기 제 2 요청메시지 각각은 상기 데이터의 ID 정보, 인덱스(Index) 정보 또는 인덱스(Index) 범위 정보 중 적어도 어느 하나를 포함하고, 상기 제 1 응답 메시지 또는 상기 제 2 응답 메시지 각각은 길이 정보 또는 ID 정보 중 적어도 어느 하나를 포함하는 것을 특징으로 한다.Specifically, the method for transmitting and receiving data through Bluetooth Low Energy (LE) according to an embodiment of the present invention, transmitting the first request message for the data request to the second device; Receiving a first response message including data in response to the first request message; If the data is equal to a maximum data transmission size, transmitting a second request message for an additional data request; And receiving a second response message including the additional data in response to the second request message, wherein each of the first request message or the second request message includes ID information of the data and an index. And at least one of information or index range information, and each of the first response message and the second response message includes at least one of length information and ID information.
또한, 본 발명에서, 상기 데이터는, 길이 정보인 것을 특징으로 한다.In the present invention, the data is characterized in that the length information.
또한, 본 발명에서, 상기 제 1 요청 메시지 또는 상기 제 2 요청 메시지 각각은 오프 셋(offset) 값을 포함하며, 상기 오프셋(offset) 값은 데이터 전송 시작 위치를 나타내는 것을 특징으로 한다.Further, in the present invention, each of the first request message or the second request message may include an offset value, and the offset value may indicate a data transmission start position.
또한, 본 발명은, 상기 데이터가 다수개인 경우 상기 제 2 디바이스로부터 에러 메시지를 수신하는 단계;The present invention may also include receiving an error message from the second device when the data is plural;
상기 데이터의 속성 값(Attribute Value)를 포함하는 제 3 요청 메시지를 전송하는 단계; 및 상기 제 3 요청 메시지에 대한 응답으로 상기 데이터를 포함하는 제 3 응답 메지시를 수신하는 단계를 더 포함하는 것을 특징으로 한다.Transmitting a third request message including an attribute value of the data; And receiving a third response message including the data in response to the third request message.
또한, 본 발명은, 제 2 디바이스에게 데이터 요청을 위한 요청 메시지를 전송하는 단계; 상기 제 2 디바이스로부터 상기 요청 메시지에 대한 응답으로 에러 메시지를 수신하는 단계; 상기 제 2 디바이스에게 데이터의 분할 전송 요청을 위한 제 1 분할 전송 요청 메시지를 전송하는 단계; 및 상기 분할 전송 요청 메시지에 대한 응답으로 상기 데이터의 일부가 포함된 제 1 분할 전송 응답 메시지를 수신하는 단계; 및 상기 수신된 데이터의 일부가 최대 데이터 전송 크기와 같은 경우, 추가 데이터 요청을 위한 제 2 분할 전송 요청 메시지를 전송하는 단계; 및 상기 제 2 분할 전송 요청 메시지에 대한 응답으로 상기 추가 데이터를 포함한 제 2 분할 전송 응답 메시지를 수신하는 단계를 포함하되, 상기 제 1 분할 전송 요청 메시지 또는 상기 제 2 요청메시지 각각은 상기 데이터의 ID 정보, 인덱스(Index) 정보 또는 인덱스(Index) 범위 정보 중 적어도 어느 하나를 포함하고, 상기 제 1 분할 전송 응답 메시지 또는 상기 제 2 분할 전송 응답 메시지 각각은 길이 정보 또는 ID 정보 중 적어도 어느 하나를 포함하는 것을 특징으로 한다.In addition, the present invention includes the steps of transmitting a request message for a data request to the second device; Receiving an error message in response to the request message from the second device; Transmitting a first split transfer request message for split transfer request of data to the second device; And receiving a first split transmission response message including a part of the data in response to the split transmission request message. And when a part of the received data is equal to a maximum data transmission size, transmitting a second split transmission request message for an additional data request; And receiving a second split transfer response message including the additional data in response to the second split transfer request message, wherein each of the first split transfer request message or the second request message is an ID of the data. Information, index information, or at least one of index range information, and each of the first split transmission response message and the second split transmission response message includes at least one of length information and ID information. Characterized in that.
또한, 본 발명에서, 상기 제 1 분할 전송 요청 메시지 또는 상기 제 2 분할 전송 요청 메시지 각각은 오프 셋(offset) 값을 포함하며, 상기 오프셋(offset) 값은 데이터 전송 시작 위치를 나타내는 것을 특징으로 한다.In the present invention, each of the first split transfer request message or the second split transfer request message includes an offset value, and the offset value indicates a data transmission start position. .
또한, 본 발명은, 상기 제 2 디바이스에게 특정 데이터의 저장을 요청하는 요청 메시지를 전송하는 단계; 및 상기 요청 메시지에 대한 응답으로 에러 메시지를 수신하는 단계를 포함하되, 상기 에러 메시지는, 상기 특정 데이터가 데이터 형식, 유형, 또는 범위에 맞지 않음을 나타내고, 상기 요청 메시지는 저장 위치의 인덱스 정보를 포함하는 것을 특징으로 한다.In addition, the present invention includes the steps of transmitting a request message for requesting the storage of specific data to the second device; And receiving an error message in response to the request message, wherein the error message indicates that the specific data does not conform to a data format, type, or range, and the request message indicates index information of a storage location. It is characterized by including.
또한, 본 발명은, 외부와 유선 및/또는 무선으로 신호를 송수신하기 위한 통신부; 및 상기 통신부와 기능적으로 연결되는 제어부를 포함하되, 상기 제어부는, 제 2 디바이스에게 데이터 요청을 위한 제 1 요청 메시지를 전송하고, 상기 제 1 요청 메시지에 대한 응답으로 데이터를 포함한 제 1 응답 메시지를 수신하며, 만약, 상기 데이터가 최대 데이터 전송 크기와 같은 경우, 추가 데이터 요청을 위한 제 2 요청 메시지를 전송하고, 상기 제 2 요청 메시지에 대한 응답으로 상기 추가 데이터를 포함한 제 2 응답 메시지를 수신하도록 제어하되, 상기 제 1 요청 메시지 또는 상기 제 2 요청메시지 각각은 상기 데이터의 ID 정보, 인덱스(Index) 정보 또는 인덱스(Index) 범위 정보 중 적어도 어느 하나를 포함하고, 상기 제 1 응답 메시지 또는 상기 제 2 응답 메시지 각각은 길이 정보 또는 ID 정보 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 장치를 제공한다.In addition, the present invention, the communication unit for transmitting and receiving a signal to the outside by wire and / or wireless; And a controller operatively connected to the communication unit, wherein the controller transmits a first request message for data request to a second device, and sends a first response message including data in response to the first request message. And if the data is equal to the maximum data transmission size, send a second request message for further data request, and receive a second response message including the additional data in response to the second request message. The first request message or the second request message may include at least one of ID information, index information, and index range information of the data, and control the first response message or the first request message. Each of the two response messages includes at least one of length information and ID information. Provide value.
또한, 본 발명에서, 상기 데이터는, 길이 정보인 것을 특징으로 한다.In the present invention, the data is characterized in that the length information.
또한, 본 발명에서, 상기 제 1 요청 메시지 또는 상기 제 2 요청 메시지 각각은 오프 셋(offset) 값을 포함하며, 상기 오프셋(offset) 값은 데이터 전송 시작 위치를 나타내는 것을 특징으로 한다.Further, in the present invention, each of the first request message or the second request message may include an offset value, and the offset value may indicate a data transmission start position.
또한, 본 발명에서, 상기 제어부는, 상기 데이터가 다수개인 경우, 상기 제 2 디바이스로부터 에러 메시지를 수신하고, 상기 데이터의 속성 값(Attribute Value)를 포함하는 제 3 요청 메시지를 전송하며, 상기 제 3 요청 메시지에 대한 응답으로 상기 데이터를 포함하는 제 3 응답 메지시를 수신하도록 제어하는 것을 특징으로 한다.In addition, in the present invention, when there is a plurality of data, the controller receives an error message from the second device, transmits a third request message including an attribute value of the data, And receiving a third response message including the data in response to the third request message.
또한, 본 발명은, 외부와 유선 및/또는 무선으로 신호를 송수신하기 위한 통신부; 및 상기 통신부와 기능적으로 연결되는 제어부를 포함하되, 상기 제어부는, 제 2 디바이스에게 데이터 전송을 위한 요청 메시지를 전송하고, 상기 제 2 디바이스로부터 상기 요청 메시지에 대한 응답으로 에러 메시지를 수신하며, 상기 제 2 디바이스에게 데이터의 분할 전송 요청을 위한 제 1 분할 전송 요청 메시지를 전송하고, 상기 분할 전송 요청 메시지에 대한 응답으로 상기 데이터의 일부가 포함된 제 1 분할 전송 응답 메시지를 수신하며, 상기 수신된 데이터의 일부가 최대 데이터 전송 크기와 같은 경우, 추가 데이터 요청을 위한 제 2 분할 전송 요청 메시지를 전송하고, 상기 제 2 분할 전송 요청 메시지에 대한 응답으로 상기 추가 데이터를 포함한 제 2 분할 전송 응답 메시지를 수신하도록 제어하되, 상기 제 1 분할 전송 요청 메시지 또는 상기 제 2 요청메시지 각각은 상기 데이터의 ID 정보, 인덱스(Index) 정보 또는 인덱스(Index) 범위 정보 중 적어도 어느 하나를 포함하고, 상기 제 1 분할 전송 응답 메시지 또는 상기 제 2 분할 전송 응답 메시지 각각은 길이 정보 또는 ID 정보 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 장치를 제공한다.In addition, the present invention, the communication unit for transmitting and receiving a signal to the outside by wire and / or wireless; And a controller operatively connected to the communication unit, wherein the controller transmits a request message for data transmission to a second device, receives an error message in response to the request message from the second device, and Transmitting a first split transfer request message for split transfer request of data to a second device, and receiving a first split transfer response message including a part of the data in response to the split transfer request message; If part of the data is equal to the maximum data transmission size, the second split transmission request message for the additional data request is transmitted, and the second split transmission response message including the additional data is sent in response to the second split transmission request message. Control to receive the first divided transmission request message or the first message. Each of the two request messages includes at least one of ID information, index information, and index range information of the data, and each of the first split transmission response message or the second split transmission response message includes length information. Or it provides an apparatus comprising at least one of the ID information.
또한, 본 발명에서, 상기 제 1 분할 전송 요청 메시지, 또는 상기 제 2 분할 전송 요청 메시지 각각은 오프 셋(offset) 값을 포함하며, 상기 오프셋(offset) 값은 데이터 전송 시작 위치를 나타내는 것을 특징으로 한다.In the present invention, each of the first split transmission request message or the second split transmission request message includes an offset value, and the offset value indicates a data transmission start position. do.
또한, 본 발명은, 외부와 유선 및/또는 무선으로 신호를 송수신하기 위한 통신부; 및 상기 통신부와 기능적으로 연결되는 제어부를 포함하되, 상기 제어부는, 상기 제 2 디바이스에게 특정 데이터의 저장을 요청하는 요청 메시지를 전송하고, 상기 요청 메시지에 대한 응답으로 에러 메시지를 수신하도록 제어하되, 상기 에러 메시지는, 상기 특정 데이터가 데이터 형식, 유형, 또는 범위에 맞지 않음을 나타내고, 상기 요청 메시지는 저장 위치의 인덱스 정보를 포함하는 것을 특징으로 하는 장치를 제공한다.In addition, the present invention, the communication unit for transmitting and receiving a signal to the outside by wire and / or wireless; And a controller operatively connected to the communication unit, wherein the controller is configured to transmit a request message requesting storage of specific data to the second device and to receive an error message in response to the request message. The error message indicates that the specific data does not fit the data format, type, or range, and the request message provides index information of a storage location.
본 발명의 일 실시예에 따른 블루투스 저전력 에너지 기술을 이용하여 데이터를 송수신하기 위한 방법에 따르면, 서버로부터 전송되는 데이터의 크기를 명확히 알 수 있는 효과가 있다.According to the method for transmitting and receiving data using the Bluetooth low power energy technology according to an embodiment of the present invention, the size of data transmitted from the server can be clearly known.
또한, 또한, 본 발명의 일 실시예에 따른 블루투스 저전력 에너지 기술을 이용하여 데이터를 송수신하기 위한 방법에 따르면, 데이터 타입, 크기에 맞지 않는 데이터를 입력하는 경우, 에러 메시지를 전송할 수 있는 효과가 있다.In addition, according to the method for transmitting and receiving data using the Bluetooth low power energy technology according to an embodiment of the present invention, when inputting data that does not match the data type and size, an error message may be transmitted. .
또한, 또한, 본 발명의 일 실시예에 따른 블루투스 저전력 에너지 기술을 이용하여 데이터를 송수신하기 위한 방법에 따르면, 서버로부터 특정 속성 값(attribute value) 또는 UUID(Universal Unique Identifiers) 값을 통해 데이터를 획득할 수 있는 효과가 있다.In addition, according to the method for transmitting and receiving data using the Bluetooth low power energy technology according to an embodiment of the present invention, the data is obtained from a server through a specific attribute value or Universal Unique Identifier (UUID) value It can work.
또한, 또한, 본 발명의 일 실시예에 따른 블루투스 저전력 에너지 기술을 이용하여 데이터를 송수신하기 위한 방법에 따르면, 특정 특성(Characteristic) 값 또는 UUID(Universal Unique Identifier) 값을 통해 서버로부터 데이터를 정확히 전송 받을 수 있는 효과가 있다.In addition, according to the method for transmitting and receiving data using the Bluetooth low power energy technology according to an embodiment of the present invention, the data is accurately transmitted from the server through a specific characteristic value or a universal unique identifier (UUID) value. There is an effect to receive.
본 명세서에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.Effects obtained in the present specification are not limited to the above-mentioned effects, and other effects not mentioned above may be clearly understood by those skilled in the art from the following description. will be.
도 1은 본 명세서에서 제안하는 블루투스 저전력 에너지 기술을 이용하는 무선 통신 시스템의 일 예를 나타낸 개략도이다.1 is a schematic diagram illustrating an example of a wireless communication system using the Bluetooth low power energy technology proposed in the present specification.
도 2는 본 명세서에서 제안하는 방법들을 구현할 수 있는 디바이스의 내부 블록도의 일 예를 나타낸다.2 shows an example of an internal block diagram of a device that can implement the methods proposed herein.
도 3은 블루투스 저전력 에너지 토폴로지(Topology)의 일 예를 나타낸다.3 shows an example of a Bluetooth low power energy topology.
도 4는 본 명세서에서 제안하는 방법들이 적용될 수 있는 블루투스 통신 아키텍처(Architecture)의 일 예를 나타낸 도이다.4 is a diagram illustrating an example of a Bluetooth communication architecture to which the methods proposed herein may be applied.
도 5은 블루투스 저전력 에너지의 속성(Attribute)의 구조와 속성(Attribute) 값을 제공하기 위한 PDU 구조의 일 예를 나타낸 도이다.FIG. 5 is a diagram illustrating an example of a PDU structure for providing an attribute structure and an attribute value of Bluetooth low power energy.
도 6은 블루투스 저전력 에너지 기술을 이용하여 서버에 저장되어 있는 큰 데이터 (ATT_MTU-1 보다 큰 데이터)를 획득하기 위한 방법의 일 예를 나타낸 흐름도이다.6 is a flowchart illustrating an example of a method for acquiring large data (data larger than ATT_MTU-1) stored in a server using a Bluetooth low power energy technology.
도 7은 블루투스 저전력 에너지 기술을 이용하여 서버에 저장되어 있는 데이터 (ATT_MTU-1 보다 작은 데이터)를 획득하기 위한 방법의 또 다른 일 예를 나타낸 흐름도이다.7 is a flowchart illustrating still another example of a method for acquiring data stored in a server (data smaller than ATT_MTU-1) using a Bluetooth low power energy technology.
도 8는 본 명세서에서 제안하는, 데이터의 크기에 따라 에러 메시지를 전송함으로써, 서버로부터 데이터를 전송 받는 방법의 일 예를 나타낸 흐름도이다.8 is a flowchart illustrating an example of a method for receiving data from a server by transmitting an error message according to the size of data proposed in the present specification.
도 9는 본 명세서에서 제안하는, 요청 받은 데이터의 크기에 따라 다른 응답 메시지를 통해 데이터를 전송하는 방법의 일 예를 나타낸 도이다.9 is a diagram illustrating an example of a method for transmitting data through another response message according to the size of data requested as proposed herein.
도 10은 본 명세서에서 제안하는, 요청 받은 데이터의 크기에 따라 다른 응답 메시지를 통해 데이터를 전송하는 방법의 또 다른 일 예를 나타낸 도이다.FIG. 10 is a diagram illustrating another example of a method for transmitting data through another response message according to the size of data requested according to the present specification.
도 11은 본 명세서에서 제안하는, 서버에 저장되어 있는 데이터를 획득하기 위한 방법의 또 다른 일 예를 나타낸 흐름도이다.11 is a flowchart illustrating still another example of a method for acquiring data stored in a server, proposed in the present specification.
도 12는 본 명세서에서 제안하는, 서버에 저장되어 있는 특성 또는 UUID를 전송 받기 위한 방법의 일 예를 나타낸 흐름도이다.12 is a flowchart illustrating an example of a method for receiving a feature or UUID stored in a server proposed in the present specification.
도 13은 본 명세서에서 제안하는, 요청 받은 데이터가 존재하지 않는 경우 에러메시지를 전송하기 위한 방법의 일 예를 나타낸 흐름도이다.FIG. 13 is a flowchart illustrating an example of a method for transmitting an error message when the requested data does not exist.
도 14 및 도 15는 본 명세서에서 제안하는, 서버에 저장되어 있는 데이터의 크기 또는 길이 정보를 전송 받기 위한 방법 및 속성(Attribute)의 구조를 나타낸 도이다.14 and 15 are diagrams illustrating a structure of a method and an attribute for receiving size or length information of data stored in a server proposed in the present specification.
도 16은 본 명세서에서 제안하는, 서버에 저장되어 있는 데이터를 클라이언트에게 통지(Notification)하기 위한 방법의 일 예를 나타낸 흐름도이다.FIG. 16 is a flowchart illustrating an example of a method for notifying a client of data stored in a server, as proposed herein.
도 17은 본 명세서에서 제안하는, 서버에 저장되어 있는 데이터를 클라이언트에게 통지(Notification)하기 위한 방법의 또 다른 일 예를 나타낸 흐름도이다.FIG. 17 is a flowchart illustrating another example of a method for notifying a client of data stored in a server proposed in the present specification.
도 18은 본 명세서에서 제안하는, 서버에 저장되어 있는 데이터를 클라이언트에게 지시(Indication)하기 위한 방법의 일 예를 나타낸 흐름도이다.FIG. 18 is a flowchart illustrating an example of a method for instructing a client of data stored in a server, proposed in the present specification.
도 19는 본 명세서에서 제안하는, 서버에 저장되어 있는 데이터를 클라이언트에게 지시(Indication)하기 위한 방법의 또 다른 일 예를 나타낸 흐름도이다.FIG. 19 is a flowchart illustrating still another example of a method for instructing a client of data stored in a server, proposed in the present specification.
도 20 내지 도 23는 본 명세서에서 제안하는, 서버에 데이터를 저장할 때 발생하는 에러의 일 예를 나타낸 흐름도이다.20 to 23 are flowcharts illustrating an example of an error that occurs when data is stored in a server proposed in the present specification.
본 발명의 상술한 목적, 특징들 및 장점은 첨부된 도면과 관련된 다음의 상세한 설명을 통해 보다 분명해질 것이다. 다만, 본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예들을 가질 수 있는 바, 이하에서는 특정 실시 예들을 도면에 예시하고 이를 상세히 설명하고자 한다. 명세서 전체에 걸쳐서 동일한 참조번호들은 원칙적으로 동일한 구성요소들을 나타낸다. 또한, 본 발명과 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.The above objects, features and advantages of the present invention will become more apparent from the following detailed description taken in conjunction with the accompanying drawings. However, the present invention may be modified in various ways and may have various embodiments. Hereinafter, specific embodiments will be illustrated in the drawings and described in detail. Like numbers refer to like elements throughout. In addition, when it is determined that the detailed description of the known function or configuration related to the present invention may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.
이하, 본 발명과 관련된 방법 및 장치에 대하여 도면을 참조하여 보다 상세하게 설명한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.Hereinafter, a method and apparatus related to the present invention will be described in more detail with reference to the accompanying drawings. The suffixes "module" and "unit" for components used in the following description are given or used in consideration of ease of specification, and do not have distinct meanings or roles from each other.
본 명세서에서 설명되는 전자기기에는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, 온도/기압/신체데이터 센서 등이 포함될 수 있다. 그러나, 본 명세서에 기재된 실시예에 따른 구성은 이동 단말기에만 적용 가능한 경우를 제외하면, 디지털 TV, 데스크탑 컴퓨터 등과 같은 고정 단말기에도 적용될 수도 있음을 본 기술분야의 당업자라면 쉽게 알 수 있을 것이다.Electronic devices described herein include mobile phones, smart phones, laptop computers, digital broadcasting terminals, PDAs (Personal Digital Assistants), PMPs (Portable Multimedia Players), navigation, temperature / barometric pressure / body data. Sensors and the like may be included. However, it will be readily apparent to those skilled in the art that the configuration according to the embodiments described herein may also be applied to fixed terminals such as digital TVs, desktop computers, etc., except when applicable only to mobile terminals.
본 명세서에서 설명되는 신호는 메시지형태뿐만 아니라 프레임 형태로도 전송될 수 있으며, 무선 통신 인터페이스 및 무선 통신 수단은 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. The signals described herein may be transmitted in the form of a message as well as a frame, and the wireless communication interface and the wireless communication means are given or used in consideration of the ease of specification, meaning that they are distinguished from each other or It does not have a role.
도 1은 본 명세서에서 제안하는 블루투스 저전력 에너지 기술을 이용하는 무선 통신 시스템의 일 예를 나타낸 개략도이다.1 is a schematic diagram illustrating an example of a wireless communication system using the Bluetooth low power energy technology proposed in the present specification.
무선 통신 시스템(100)은 적어도 하나의 서버 디바이스(Server Device, 110) 및 적어도 하나의 클라이언트 디바이스(Client Device,120)를 포함한다. The wireless communication system 100 includes at least one server device 110 and at least one client device 120.
서버 디바이스와 클라이언트 디바이스는 블루투스 저전력 에너지(Bluetooth Low Energy:BLE, 이하 편의상 ‘BLE’로 표현한다.) 기술을 이용하여 블루투스 통신을 수행한다. The server device and the client device perform Bluetooth communication by using Bluetooth Low Energy (BLE) technology.
먼저, BLE 기술은 블루투스 BR/EDR(Basic Rate/Enhanced Data Rate) 기술과 비교하여, 상대적으로 작은 duty cycle을 가지며 저 가격 생산이 가능하고, 저속의 데이터 전송률을 통해 전력 소모를 크게 줄일 수 있어 코인 셀(coin cell) 배터리를 이용할 경우 1년 이상 동작이 가능하다.First, compared to Bluetooth Basic Rate / Enhanced Data Rate (BR / EDR) technology, BLE technology has a relatively small duty cycle, enables low-cost production, and significantly reduces power consumption through low data rates. If you use a coin cell battery, it can operate for more than a year.
또한, BLE 기술에서는 디바이스 간 연결 절차를 간소화하였으며, 패킷 사이즈도 블루투스 BR/EDR 기술에 비해 작게 설계되어 있다.In addition, the BLE technology simplifies the connection procedure between devices, and the packet size is smaller than that of the Bluetooth BR / EDR technology.
BLE 기술에서, (1) RF 채널수는 40개이며, (2) 데이터 전송 속도는 1Mbps를 지원하며, (3) 토폴로지는 스캐터넷 구조이며, (4) latency는 3ms 이며, (5) 최대 전류는 15mA이하이며, (6) 출력 전력은 10mW(10dBm)이하이며, (7) 휴대폰, 시계, 스포츠, 헬스케어, 센서, 기기제어 등의 어플리케이션에 주로 사용된다.In BLE technology, (1) the number of RF channels is 40, (2) the data rate supports 1Mbps, (3) the topology is a scatternet structure, (4) latency is 3ms, and (5) maximum current Is less than 15mA, (6) output power is less than 10mW (10dBm), and (7) is mainly used in applications such as mobile phones, watches, sports, healthcare, sensors, device control.
상기 서버 디바이스(110)는 다른 디바이스와의 관계에서 클라이언트 디바이스로 동작할 수 있고, 상기 클라이언트 디바이스는 다른 디바이스와의 관계에서 서버 디바이스로 동작할 수 있다. 즉, BLE 통신 시스템에서 어느 하나의 디바이스는 서버 디바이스 또는 클라이언트 디바이스로 동작하는 것이 가능하며, 필요한 경우, 서버 디바이스 및 클라이언트 디바이스로 동시에 동작하는 것도 가능하다. The server device 110 may operate as a client device in a relationship with another device, and the client device may operate as a server device in a relationship with another device. That is, in the BLE communication system, any one device may operate as a server device or a client device, and if necessary, operate as a server device and a client device.
상기 서버 디바이스(110)는 데이터 서비스 디바이스(Data Service Device), 마스터(Master) 디바이스, 마스터(Master), 서버, 컨덕터(Conductor), 호스트 디바이스(Host Device), 오디오 소스 디바이스(Audio Source Device), 게이트웨이(Gateway), 제 1 디바이스 등으로 표현될 수 있으며, 상기 클라이언트 디바이스는 슬레이브(Slave) 디바이스, 슬레이브(Slave), 클라이언트, 멤버(Member), 센서 디바이스, 싱크 디바이스(Sink Device), 오디오 싱크 디바이스(Audio Sink Device), 제 2 디바이스 등으로 표현될 수 있다.The server device 110 may include a data service device, a master device, a master, a server, a conductor, a host device, an audio source device, The client device may be represented as a gateway, a first device, or the like, and the client device may be a slave device, a slave, a client, a member, a sensor device, a sink device, or an audio sink device. (Audio Sink Device), a second device, or the like.
서버 디바이스와 클라이언트 디바이스는 상기 무선 통신 시스템의 주요 구성요소에 해당하며, 상기 무선 통신 시스템은 서버 디바이스 및 클라이언트 디바이스 이외에도 다른 구성요소를 포함할 수 있다.The server device and the client device correspond to the main components of the wireless communication system, and the wireless communication system may include other components in addition to the server device and the client device.
상기 서버 디바이스는 클라이언트로부터 데이터를 제공 받고, 클라이언트 디바이스와 직접 통신을 수행함으로써, 클라이언트 디바이스로부터 데이터 요청을 수신하는 경우, 응답을 통해 클라이언트 디바이스로 데이터를 제공하는 디바이스를 말한다.The server device refers to a device that receives data from a client and directly communicates with the client device, thereby providing data to the client device through a response when receiving a data request from the client device.
또한, 상기 서버 디바이스는 클라이언트 디바이스로 데이터 정보를 제공하기 위해 클라이언트 디바이스에게 알림(Notification) 메시지, 지시(Indication) 메시지를 보낸다. 또한, 상기 서버 디바이스는 상기 클라이언트 디바이스로 지시 메시지를 전송하는 경우, 상기 클라이언트로부터 상기 지시 메시지에 대응하는 확인(Confirm) 메시지를 수신한다.The server device also sends a notification message and an indication message to the client device to provide data information to the client device. In addition, when the server device transmits an indication message to the client device, the server device receives a confirmation message corresponding to the indication message from the client.
또한, 상기 서버 디바이스는 알림, 지시, 확인 메시지들을 클라이언트 디바이스와 송수신하는 과정에서 출력부(Display Unit)을 통해서 사용자에게 데이터 정보를 제공하거나 입력부(User Input Interface)를 통해 사용자로부터 입력되는 요청을 수신할 수 있다.In addition, the server device provides data information to the user through a display unit or receives a request input from the user through a user input interface in the process of transmitting and receiving notification, indication, and confirmation messages with the client device. can do.
또한, 상기 서버 디바이스는 상기 클라이언트 디바이스와 메시지를 송수신하는 과정에서 메모리(memory unit)로부터 데이터를 읽어 오거나 새로운 데이터를 해당 메모리에 쓸 수 있다.In addition, the server device may read data from a memory unit or write new data to a corresponding memory in a process of transmitting and receiving a message with the client device.
또한, 하나의 서버 디바이스는 다수의 클라이언트 디바이스들과 연결될 수 있으며, 본딩(Bonding) 정보를 활용하여 클라이언트 디바이스들과 쉽게 재 연결(또는 접속)이 가능하다.In addition, one server device may be connected to a plurality of client devices, and may be easily reconnected (or connected) with the client devices by using bonding information.
상기 클라이언트 디바이스(120)는 서버 디바이스에게 데이터 정보 및 데이터 전송을 요청하는 장치를 말한다.The client device 120 refers to an apparatus for requesting data information and data transmission from a server device.
클라이언트 디바이스는 상기 서버 디바이스로부터 알림 메시지, 지시 메시지 등을 통해 데이터를 수신하고, 지시 메시지를 상기 서버 디바이스로부터 수신하는 경우, 상기 지시 메시지에 대한 응답으로 확인 메시지를 보낸다.The client device receives data from the server device through a notification message, an instruction message, and the like, and when receiving an instruction message from the server device, sends a confirmation message in response to the instruction message.
상기 클라이언트 디바이스도 마찬가지로 상기 서버 디바이스와 메시지들을 송수신하는 과정에서 출력부를 통해서 사용자에게 정보를 제공하거나 입력부를 통해서 사용자로부터의 입력을 수신할 수 있다.Similarly, the client device may provide information to the user through an output unit or receive an input from the user through an input unit in the process of transmitting and receiving messages with the server device.
또한, 상기 클라이언트 디바이스는 상기 서버 디바이스와 메시지를 송수신하는 과정에서 메모리로부터 데이터를 읽어 오거나 새로운 데이터를 해당 메모리에 쓸 수 있다.In addition, the client device may read data from the memory or write new data to the memory in the process of transmitting and receiving a message with the server device.
상기 서버 디바이스 및 클라이언트 디바이스의 출력부, 입력부 및 메모리 등과 같은 하드웨어 구성요소에 대해서는 도 5에서 구체적으로 살펴보기로 한다.Hardware components such as an output unit, an input unit, and a memory of the server device and the client device will be described in detail with reference to FIG. 5.
또한, 상기 무선 통신 시스템은 블루투스 기술을 통해 개인 영역 네트워킹(Personal Area Networking:PAN)을 구성할 수 있다. 일 예로, 상기 무선 통신 시스템에서는 디바이스 간 개인적인 피코넷(private piconet)을 확립함으로써 파일, 서류 등을 신속하고 안전하게 교환할 수 있다.In addition, the wireless communication system may configure Personal Area Networking (PAN) through Bluetooth technology. For example, in the wireless communication system, by establishing a private piconet between devices, files, documents, and the like can be exchanged quickly and securely.
BLE 디바이스(또는 기기)는 다양한 블루투스-관련 프로토콜, 프로파일, 처리 등을 지원하도록 동작 가능할 수 있다.The BLE device (or device) may be operable to support various Bluetooth-related protocols, profiles, processing, and the like.
상기 BLE 기술을 포함하고 있는 전자기기는 상기 BLE 외에도 Wi-Fi, Bluetooth BR/EDR, NFC 등의 다수의 무선 통신 인터페이스(Interface)를 포함하고 있다.The electronic device including the BLE technology includes a plurality of wireless communication interfaces such as Wi-Fi, Bluetooth BR / EDR, and NFC in addition to the BLE.
이런 다양한 무선 통신 인터페이스 들은 상대 장치와의 커넥션(Connection)이 언제 발생될 지 예측하기 어렵기 때문에 대부분의 전자기기에서는 다수의 무선 통신 인터페이스들을 항상 웨이크 업(Wake up) 상태로 유지하며 사용하고 있다.Since these various wireless communication interfaces are difficult to predict when a connection with an external device will occur, most electronic devices always use and keep a plurality of wireless communication interfaces in a wake-up state.
이러한 통신 인터페이스들은 유휴 시간(Idle Time)내의 대기 전력을 최소화하기 위한 기술적 해법을 지니고 있고 이에 대한 에너지 효율적 성능 또한 우수하지만, 기술의 발전과 더불어 향후 새롭게 탄생될 모든 무선 통신 인터페이스들을 항상 웨이크 업 상태로 유지하기에는 한계가 분명히 존재하며, 이러한 문제는 배터리 제한이 있는 장치에서 더욱 심각해질 수 있다.These communication interfaces have a technical solution for minimizing standby power in idle time and have good energy efficient performance, but with the advancement of technology, all new wireless communication interfaces to be created in the future always wake up. There are certain limitations to maintaining, and this problem can be even worse in devices with battery limitations.
본 발명은 이러한 문제점을 극복하기 위하여, BLE를 웨이크 업 인터페이스로 하고, 다른 무선 통신 인터페이스는 요청이 있을 때만 웨이크업 시키는 방법을 제안한다.In order to overcome this problem, the present invention proposes a method in which BLE is used as a wake-up interface, and the other wireless communication interface wakes up only upon request.
도 2는 본 명세서에서 제안하는 방법들을 구현할 수 있는 디바이스의 내부 블록도의 일 예를 나타낸다.2 shows an example of an internal block diagram of a device that can implement the methods proposed herein.
도 2에 도시된 바와 같이, 서버 디바이스는 출력부(Display Unit, 111), 입력부(User Input Interface, 112), 전력 공급부(Power Supply Unit, 113), 프로세서(Processor, 114), 메모리(Memory Unit, 115), 블루투스 인터페이스(Bluetooth Interface, 116), 다른 통신 인터페이스(Other Interface, 117) 및 통신부(또는 송수신부, 118)를 포함한다.As illustrated in FIG. 2, the server device may include an output unit 111, a user input interface 112, a power supply unit 113, a processor 114, and a memory unit. , 115), a Bluetooth interface 116, another communication interface 117, and a communication unit (or a transceiver unit 118).
상기 출력부(111), 입력부(112), 전력 공급부(113), 프로세서(114), 메모리(115), 블루투스 인터페이스(116), 다른 통신 인터페이스(117) 및 통신부(118)는 본 명세서에서 제안하는 방법을 수행하기 위해 기능적으로 연결되어 있다.The output unit 111, the input unit 112, the power supply unit 113, the processor 114, the memory 115, the Bluetooth interface 116, the other communication interface 117 and the communication unit 118 are proposed herein. It is functionally linked to perform the method.
또한, 클라이언트 디바이스는 출력부(Display Unit, 121), 입력부(User Input Interface, 122), 전력 공급부(Power Supply Unit, 123), 프로세서(Processor, 124), 메모리(Memory Unit, 125), 블루투스 인터페이스(Bluetooth Interface, 126) 및 통신부(또는 송수신부, 127)를 포함한다.In addition, the client device may include a display unit 121, a user input interface 122, a power supply unit 123, a processor 124, a memory unit 125, and a Bluetooth interface. (Bluetooth Interface) 126 and a communication unit (or a transceiver unit 127).
상기 출력부(121), 입력부(122), 전력 공급부(123), 프로세서(124), 메모리(125), 블루투스 인터페이스(126), 및 통신부(127)는 본 명세서에서 제안하는 방법을 수행하기 위해 기능적으로 연결되어 있다.The output unit 121, the input unit 122, the power supply unit 123, the processor 124, the memory 125, the Bluetooth interface 126, and the communication unit 127 are used to perform the method proposed in this specification. Functionally connected
상기 블루투스 인터페이스(116,126)는 블루투스 기술을 이용하여 디바이스들 간의 요청/응답, 명령, 알림, 지시/확인 메시지 등 또는 데이터 전송이 가능한 유닛(또는 모듈)을 말한다.The Bluetooth interface 116, 126 refers to a unit (or module) capable of transmitting data or request / response, command, notification, indication / confirmation message, etc. between devices using Bluetooth technology.
상기 메모리(115,125)는 다양한 종류의 디바이스에 구현되는 유닛으로서, 다양한 종류의 데이터가 저장되는 유닛을 말한다.The memories 115 and 125 are units implemented in various types of devices and refer to units in which various kinds of data are stored.
상기 프로세서(114,124)는 서버 디바이스 또는 클라이언트 디바이스의 전반적인 동작을 제어하는 모듈을 말하며, 블루투스 인터페이스 및 다른 통신 인터페이스로 메시지를 전송 요청 및 수신받은 메시지를 처리하도록 제어한다.The processor 114, 124 refers to a module that controls the overall operation of the server device or the client device, and controls to process a message request and a received message through a Bluetooth interface and another communication interface.
상기 프로세서(114,124)는 제어부, 제어 유닛(Control Unit), 컨트롤러 등으로 표현될 수 있다.The processors 114 and 124 may be represented by a controller, a control unit, a controller, or the like.
상기 프로세서(114,124)는 ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로 및/또는 데이터 처리 장치를 포함할 수 있다.The processors 114 and 124 may include application-specific integrated circuits (ASICs), other chipsets, logic circuits, and / or data processing devices.
상기 프로세서(114,124)는 서버 디바이스로부터 광고(Advertising) 메시지를 수신하도록 상기 통신부를 제어하며, 상기 서버 디바이스로 스캔 요청(Scan Request) 메시지를 전송하고, 상기 서버 디바이스로부터 상기 스캔 요청에 대한 응답으로 스캔 응답(Scan Response) 메시지를 수신하도록 상기 통신부를 제어하며, 상기 서버 디바이스와 블루투스 연결 설정을 위해 상기 서버 디바이스로 연결 요청(Connect Request) 메시지를 전송하도록 상기 통신부를 제어한다.The processor 114, 124 controls the communication unit to receive an advertising message from a server device, transmits a scan request message to the server device, and scans in response to the scan request from the server device. The communication unit controls the communication unit to receive a scan response message, and controls the communication unit to transmit a connect request message to the server device for establishing a Bluetooth connection with the server device.
또한, 상기 프로세서(114,124)는 상기 연결 절차를 통해 블루투스 LE 커넥션(Connection)이 형성된 이후, 상기 서버 디바이스로부터 속성 프로토콜을 이용하여 데이터를 읽어오거나(Read), 기록(Write)할 수 있도록 상기 통신부를 제어한다.The processor 114 and 124 may also read or write data from the server device using a property protocol after a Bluetooth LE connection is formed through the connection procedure. To control.
상기 메모리(115,125)는 ROM(read-only memory), RAM(random access memory), 플래쉬 메모리, 메모리 카드, 저장 매체 및/또는 다른 저장 장치를 포함할 수 있다.The memories 115 and 125 may include read-only memory (ROM), random access memory (RAM), flash memory, memory cards, storage media, and / or other storage devices.
상기 통신부(118,127)는 무선 신호를 처리하기 위한 베이스밴드 회로를 포함할 수 있다. 실시 예가 소프트웨어로 구현될 때, 상술한 기법은 상술한 기능을 수행하는 모듈(과정, 기능 등)로 구현될 수 있다. 모듈은 메모리에 저장되고, 프로세서에 의해 실행될 수 있다.The communication unit 118 and 127 may include a baseband circuit for processing a radio signal. When the embodiment is implemented in software, the above-described technique may be implemented as a module (process, function, etc.) for performing the above-described function. The module may be stored in memory and executed by a processor.
상기 메모리(115,125)는 프로세서(114,124) 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서(114,124)와 연결될 수 있다.The memories 115 and 125 may be inside or outside the processors 114 and 124, and may be connected to the processors 114 and 124 by various well-known means.
상기 출력부(111,121)는 디바이스의 상태 정보 및 메시지 교환 정보 등을 화면을 통해서 사용자에게 제공하기 위한 모듈을 말한다.The output units 111 and 121 refer to modules for providing device status information and message exchange information to a user through a screen.
상기 전력 공급부(전원 공급부, 113, 123)는 제어부의 제어 하에 외부의 전원, 내부의 전원을 인가 받아 각 구성요소들의 동작에 필요한 전원을 공급해주는 모듈을 말한다.The power supply unit (power supply unit 113, 123) refers to a module for supplying power required for the operation of the components by receiving the external power, the internal power under the control of the controller.
앞에서 살핀 것처럼, BLE 기술에서는 작은 duty cycle을 가지며, 저속의 데이터 전송률을 통해 전력 소모를 크게 줄일 수 있어, 상기 전력 공급부는 적은 출력 전력으로도(10mW(10dBm)이하) 각 구성요소들의 동작에 필요한 전원을 공급할 수 있다.As we saw earlier, BLE technology has a small duty cycle, and the low data rate can greatly reduce power consumption, so that the power supply is required for the operation of each component with less output power (10 mW (10 dBm or less)). Can supply power.
상기 입력부(112,122)는 화면 버튼과 같이 사용자의 입력을 제어부에게 제공하여 디바이스의 동작을 사용자가 제어할 수 있게 하는 모듈을 말한다.The input units 112 and 122 refer to a module that provides a user's input to the controller like a screen button so that the user can control the operation of the device.
도 3은 블루투스 저전력 에너지 토폴로지(Topology)의 일 예를 나타낸다.3 shows an example of a Bluetooth low power energy topology.
상기 도 3을 참조하면, 디바이스 A는 디바이스 B와 디바이스 C를 슬레이브(slave)로 가지는 피코넷(피코넷 A, 음영부분)에서 마스터(master)에 해당한다.Referring to FIG. 3, device A corresponds to a master in a piconet (piconet A, shaded portion) having device B and device C as slaves.
여기서, 피코넷(Piconet)이란, 다수의 디바이스들 중 어느 하나가 마스터이고, 나머지 디바이스들이 마스터 디바이스에 연결되어 있는 공유된 물리 채널을 점유하고 있는 디바이스들의 집합을 의미한다.Here, a piconet means a set of devices occupying a shared physical channel in which any one of a plurality of devices is a master and the remaining devices are connected to the master device.
BLE 슬레이브는 마스터와 공통 물리 채널을 공유하지 않는다. 각각의 슬레이브는 별개의 물리 채널을 통해 마스터와 통신한다. 마스터 디바이스 F와 슬레이브 디바이스 G를 가지는 또 다른 피코넷(피코넷 F)이 있다.The BLE slave does not share a common physical channel with the master. Each slave communicates with the master through a separate physical channel. There is another piconet (piconet F) with master device F and slave device G.
디바이스 K는 스캐터넷(scatternet K)에 있다. 여기서, 스캐터넷(scatternet)은 다른 피코넷들 간 연결이 존재하는 피코넷의 그룹을 의미한다.Device K is on scatternet K. Here, a scatternet means a group of piconets in which connections between other piconets exist.
디바이스 K는 디바이스 L의 마스터이면서, 디바이스 M의 슬레이브이다.Device K is a master of device L and a slave of device M.
디바이스 O 역시 스캐터넷(scatternet O)에 있다. 디바이스 O는 디바이스 P의 슬레이브이면서, 디바이스 Q의 슬레이브이다. Device O is also on scatternet O. Device O is a slave of device P and a slave of device Q.
상기 도 2에 도시된 바와 같이, 5개의 다른 디바이스 그룹들이 존재한다.As shown in FIG. 2 above, there are five different device groups.
1. 디바이스 D는 광고자(advertiser)이고, 디바이스 A는 개시자(initiator)이다(그룹 D).1. Device D is an advertiser and device A is an initiator (group D).
2. 디바이스 E는 스캐너(scanner)이며, 디바이스 C는 광고자이다(그룹 C).2. Device E is a scanner and device C is an advertiser (group C).
3. 디바이스 H는 광고자이며, 디바이스 I 및 J는 스캐너들이다(그룹 H).3. Device H is an advertiser and devices I and J are scanners (group H).
4. 디바이스 K 또한 광고자이며, 디바이스 N은 개시자이다(그룹 K).4. Device K is also an advertiser and device N is an initiator (group K).
5. 디바이스 R은 광고자이며, 디바이스 O는 개시자이다(그룹 R).5. Device R is the advertiser and device O is the initiator (group R).
디바이스 A와 B는 하나의 BLE 피코넷 물리 채널을 사용한다.Devices A and B use one BLE piconet physical channel.
디바이스 A와 C는 또 다른 BLE 피코넷 물리 채널을 사용한다.Devices A and C use another BLE piconet physical channel.
그룹 D에서, 디바이스 D는 광고 물리 채널 상으로 연결 가능한 광고 이벤트를 사용하여 광고하며, 디바이스 A는 개시자이다. 디바이스 A는 디바이스 D와 연결을 형성할 수 있고, 피코넷 A로 디바이스를 추가할 수 있다.In group D, device D advertises using an advertisement event connectable onto an advertising physical channel, and device A is an initiator. Device A may establish a connection with device D and add the device to piconet A.
그룹 C에서, 디바이스 C는 스캐너 디바이스 E에 의해 캡쳐되는 광고 이벤트의 어떤 타입을 사용하여 광고 물리 채널 상으로 광고를 한다.In group C, device C advertises on the ad physical channel using some type of advertisement event captured by scanner device E.
그룹 D와 그룹 C는 충돌을 피하기 위해 서로 다른 광고 물리 채널을 사용하거나 다른 시간을 사용할 수 있다.Group D and Group C may use different advertising physical channels or use different times to avoid collisions.
피코넷 F에는 하나의 물리 채널이 있다. 디바이스 F와 G는 하나의 BLE 피코넷 물리 채널을 사용한다. 디바이스 F는 마스터이고, 디바이스 G는 슬레이브이다.Piconet F has one physical channel. Devices F and G use one BLE piconet physical channel. Device F is the master and device G is the slave.
그룹 H에는 하나의 물리 채널이 있다. 디바이스 H, I 및 J는 하나의 BLE 광고 물리 채널을 사용한다. 디바이스 H는 광고자이며, 디바이스 I 및 J는 스캐너이다.Group H has one physical channel. Devices H, I and J use one BLE advertising physical channel. Device H is an advertiser and devices I and J are scanners.
스캐터넷 K에서, 디바이스 K와 L은 하나의 BLE 피코넷 물리 채널을 사용한다. 디바이스 K와 M은 또 다른 BLE 피코넷 물리 채널을 사용한다.In scatternet K, devices K and L use one BLE piconet physical channel. Devices K and M use another BLE piconet physical channel.
그룹 K에서, 디바이스 K는 광고 물리 채널 상으로 연결 가능한 광고 이벤트를 사용하여 광고를 하며, 디바이스 N은 개시자이다. 디바이스 N은 디바이스 K와 연결을 형성할 수 있다. 여기서, 디바이스 K는 두 디바이스들의 슬레이브가 되면서 동시에 한 디바이스의 마스터가 된다.In group K, device K advertises using an advertisement event connectable onto an advertising physical channel, and device N is an initiator. Device N may form a connection with device K. Here, device K becomes a slave of two devices and simultaneously becomes a master of one device.
스캐터넷 O에서, 디바이스 O와 P는 하나의 BLE 피코넷 물리 채널을 사용한다. 디바이스 O와 Q는 또 다른 BLE 피코넷 물리채널을 사용한다.In scatternet O, devices O and P use one BLE piconet physical channel. Devices O and Q use another BLE piconet physical channel.
그룹 R에서, 디바이스 R은 광고 물리 채널 상으로 연결 가능한 광고 이벤트를 사용하여 광고를 하며, 디바이스 O는 개시자이다. 디바이스 O는 디바이스 R과 연결을 형성할 수 있다. 여기서, 디바이스 O는 두 디바이스들의 슬레이브가 되면서 동시에 한 디바이스의 마스터가 된다.In group R, device R advertises using an advertisement event connectable onto an advertising physical channel, and device O is an initiator. Device O may form a connection with device R. Here, device O becomes a slave of two devices and simultaneously becomes a master of one device.
도 4는 본 명세서에서 제안하는 방법들이 적용될 수 있는 블루투스 통신 아키텍처(Architecture)의 일 예를 나타낸 도이다.4 is a diagram illustrating an example of a Bluetooth communication architecture to which the methods proposed herein may be applied.
상기 도 4을 참고하면, 상기 도 4의 (a)는 블루투스 BR(Basic Rate)/EDR(Enhanced Data Rate)의 프로토콜 스택의 일 예를 나타내며, (b)는 블루투스 LE(Low Energy)의 프로토콜 스택의 일 예를 나타낸다.Referring to FIG. 4, (a) of FIG. 4 shows an example of a protocol stack of Bluetooth Basic Rate (BR) / Enhanced Data Rate (EDR), and (b) shows a protocol stack of Bluetooth Low Energy (LE). An example is shown.
구체적으로, 상기 도 4의 (a)에 도시된 바와 같이, 블루투스 BR/EDR 프로토콜 스택은 호스트 컨트롤러 인터페이스(Host Controller Interface, HCI, 18)를 기준으로 상부의 컨트롤러 스택(Controller stack, 10)과 하부의 호스트 스택(Host Stack, 20)을 포함할 수 있다.Specifically, as shown in FIG. 4A, the Bluetooth BR / EDR protocol stack has an upper controller stack 10 and a lower controller stack based on a host controller interface (HCI) 18. It may include a host stack (20) of.
상기 호스트 스택(또는 호스트 모듈)(20)은 2.4GHz의 블루투스 신호를 받는 무선 송수신 모듈과 블루투스 패킷을 전송하거나 수신하기 위한 하드웨어를 말하며, 상기 컨트롤러 스택(10)인 블루투스 모듈과 연결되어 블루투스 모듈을 제어하고 동작을 수행한다.The host stack (or host module) 20 refers to a wireless transceiver module for receiving a 2.4 GHz Bluetooth signal and hardware for transmitting or receiving a Bluetooth packet. The host stack (or host module) 20 is connected to a Bluetooth module which is the controller stack 10 to connect a Bluetooth module. Control and perform actions.
상기 호스트 스택(20)은 BR/EDR PHY 계층(12), BR/EDR Baseband 계층(14), 링크 매니저 계층(Link Manager, 16)을 포함할 수 있다.The host stack 20 may include a BR / EDR PHY layer 12, a BR / EDR baseband layer 14, and a link manager layer 16.
상기 BR/EDR PHY 계층(12)은 2.4GHz 무선 신호를 송수신하는 계층으로, GFSK (Gaussian Frequency Shift Keying) modulation을 사용하는 경우 79 개의 RF 채널을 hopping 하여 데이터를 전송할 수 있다.The BR / EDR PHY layer 12 is a layer for transmitting / receiving a 2.4 GHz radio signal and may transmit data by hopping 79 RF channels when using Gaussian Frequency Shift Keying (GFSK) modulation.
상기 BR/EDR Baseband 계층(14)은 Digital Signal을 전송하는 역할을 담당하며, 초당 1400번 hopping 하는 채널 시퀀스를 선택하며, 각 채널 별 625us 길이의 time slot을 전송한다.The BR / EDR baseband layer 14 plays a role of transmitting a digital signal, selects a channel sequence hopping 1400 times per second, and transmits a 625us length time slot for each channel.
상기 링크 매니저 계층(16)은 LMP(Link Manager Protocol)을 활용하여 Bluetooth Connection의 전반적인 동작(link setup, control, security)을 제어한다.The link manager layer 16 controls the overall operation (link setup, control, security) of the Bluetooth connection by using a link manager protocol (LMP).
상기 링크 매니저 계층(16)은 아래와 같은 기능을 수행할 수 있다.The link manager layer 16 may perform the following functions.
- ACL/SCO logical transport, logical link setup 및 control을 한다.ACL / SCO logical transport, logical link setup and control
- Detach: connection을 중단하고, 중단 이유를 상대 디바이스에게 알려준다. Detach: Stops the connection and tells the other device why.
- Power control 및 Role switch를 한다.-Perform power control and role switch.
- Security(authentication, pairing, encryption) 기능을 수행한다.-Perform Security (authentication, pairing, encryption) function.
상기 호스트 컨트롤러 인터페이스 계층(18)은 Host 모듈과 Controller 모듈 사이의 인터페이스 제공하여 Host 가 command와 Data를 Controller에게 제공하게 하며, Controller가 event와 Data를 Host에게 제공할 수 있도록 해준다.The host controller interface layer 18 provides an interface between the host module and the controller module so that the host can provide commands and data to the controller, and the controller can provide events and data to the host.
상기 호스트 스택(또는 호스트 모듈, 20)은 논리적 링크 제어 및 적응 프로토콜(L2CAP, 21), 보안 매니저(Security manager, SM, 22), 속성 프로토콜(Protocol, 23), 일반 속성 프로파일(Generic Attribute Profile, GATT, 24), 일반 접근 프로파일(Generic Access Profile, GAP, 25), BR/EDR 프로파일(26)을 포함한다.The host stack (or host module) 20 may include a logical link control and adaptation protocol (L2CAP, 21), a security manager (SM, 22), an attribute protocol (Protocol, 23), a generic attribute profile, GATT 24), Generic Access Profile (GAP) 25, BR / EDR Profile 26.
상기 논리적 링크 제어 및 적응 프로토콜(L2CAP, 21)은 특정 프로토콜 또는 포로파일에게 데이터를 전송하기 위한 하나의 양방향 채널을 제공할 수 있다.The logical link control and adaptation protocol (L2CAP) 21 may provide one bidirectional channel for transmitting data to a specific protocol or profile.
상기 L2CAP(21)은 블루투스 상위에서 제공하는 다양한 프로토콜, 프로파일 등을 멀티플렉싱(multiplexing)할 수 있다.The L2CAP 21 may multiplex various protocols, profiles, etc. provided by a higher layer of Bluetooth.
블루투스 BR/EDR의 L2CAP에서는 dynamic 채널 사용하며, protocol service multiplexer, retransmission, streaming mode를 지원하고, Segmentation 및 reassembly, per-channel flow control, error control을 제공한다.L2CAP of Bluetooth BR / EDR uses dynamic channel, supports protocol service multiplexer, retransmission, streaming mode, and provides segmentation, reassembly, per-channel flow control, and error control.
상기 보안 매니저는(Security Manager, SM, 22)은 디바이스를 인증하며, 키 분배(key distribution)를 제공하기 위한 프로토콜이다.The Security Manager (SM) 22 is a protocol for authenticating a device and providing key distribution.
상기 일반 속성 프로파일(GATT, 24)은 서비스들의 구성 시에 상기 속성 프로토콜(23)이 어떻게 이용되는지를 설명하는 프로토콜로서 동작 가능할 수 있다. 예를 들어, 상기 일반 속성 프로파일(24)은 ATT 속성들이 어떻게 서비스들로 함께 그룹화되는지를 규정하도록 동작 가능할 수 있고, 서비스들과 연계된 특징들을 설명하도록 동작 가능할 수 있다.The generic attribute profile GATT 24 may be operable as a protocol describing how the attribute protocol 23 is used in the construction of services. For example, the general attribute profile 24 may be operable to define how ATT attributes are grouped together into services, and may be operable to describe features associated with the services.
따라서, 상기 일반 속성 프로파일(24) 및 상기 속성 프로토콜(ATT, 23)은 디바이스의 상태와 서비스들을 설명하고, 특징들이 서로 어떻게 관련되며 이들이 어떻게 이용되는지를 설명하기 위하여, 특징들을 사용할 수 있다.Thus, the generic attribute profile 24 and the attribute protocol (ATT, 23) may use features to describe the state and services of a device, and to describe how features relate to each other and how they are used.
상기 속성 Protocol(23) 및 Profiles(26)은 블루트스 BR/EDR를 이용하는 서비스 (profile)의 정의 및 이들 데이터를 주고 받기 위한 application 프로토콜을 정의하며, 상기 일반 접근 프로파일(Generic Access Profile, GAP, 25)은 디바이스 발견, 연결, 사용자에게 정보를 제공하는 방안을 정의하며, privacy를 제공한다.The properties Protocol (23) and Profiles (26) define the definition of a service (profile) using Bluetooth BR / EDR and an application protocol for sending and receiving these data, and the Generic Access Profile (GAP) 25 ) Defines how devices are discovered, connected, and presented to users, and provides privacy.
상기 도 4의 (b)에 도시된 바와 같이, 블루투스 LE 프로토콜 스택은 타이밍이 중요한 무선장치 인터페이스를 처리하도록 동작 가능한 컨트롤러 스택(Controller stack, 30)과 고레벨(high level) 데이터를 처리하도록 동작 가능한 호스트 스택(Host stack, 40)을 포함한다.As shown in FIG. 4B, the Bluetooth LE protocol stack is a controller stack 30 operable to handle timing-critical radio interface and a host operable to process high level data. It contains a stack (Host stack, 40).
먼저, 컨트롤러 스택(30)은 블루투스 무선장치를 포함할 수 있는 통신 모듈, 예를 들어, 마이크로프로세서와 같은 프로세싱 디바이스를 포함할 수 있는 프로세서 모듈을 이용하여 구현될 수 있다.First, the controller stack 30 may be implemented using a communication module that may include a Bluetooth radio, for example, a processor module that may include a processing device such as a microprocessor.
호스트 스택은 프로세서 모듈 상에서 작동되는 OS의 일부로서, 또는 OS 위의 패키지(package)의 인스턴스 생성(instantiation)으로서 구현될 수 있다.The host stack may be implemented as part of an OS running on a processor module, or as an instance of a package on the OS.
일부 사례들에서, 컨트롤러 스택 및 호스트 스택은 프로세서 모듈 내의 동일한 프로세싱 디바이스 상에서 작동 또는 실행될 수 있다.In some instances, the controller stack and the host stack can be operated or executed on the same processing device in the processor module.
상기 컨트롤러 스택(30)은 물리 계층(Physical Layer, PHY, 32), 링크 레이어(Link Layer, 34) 및 호스트 컨트롤러 인터페이스(Host Controller Interface, 36)를 포함한다.The controller stack 30 includes a physical layer (PHY) 32, a link layer 34, and a host controller interface 36.
상기 물리 계층(PHY, 무선 송수신 모듈, 32)은 2.4 GHz 무선 신호를 송수신하는 계층으로 GFSK (Gaussian Frequency Shift Keying) modulation과 40 개의 RF 채널로 구성된 frequency hopping 기법을 사용한다.The physical layer (PHY) 32 is a layer that transmits and receives a 2.4 GHz radio signal and uses GFSK (Gaussian Frequency Shift Keying) modulation and a frequency hopping technique composed of 40 RF channels.
블루투스 패킷을 전송하거나 수신하는 역할을 하는 상기 링크 레이어(34)는 3개의 Advertising 채널을 이용하여 Advertising, Scanning 기능을 수행한 후에 디바이스 간 연결을 생성하고, 37개 Data 채널을 통해 최대 42bytes 의 데이터 패킷을 주고 받는 기능을 제공한다.The link layer 34, which transmits or receives a Bluetooth packet, creates a connection between devices after performing advertising and scanning functions using three advertising channels, and generates up to 42 bytes of data packets through 37 data channels. Provides the ability to send and receive.
상기 호스트 스택은 GAP(Generic Access Profile, 40), 논리적 링크 제어 및 적응 프로토콜(L2CAP, 41), 보안 매니저(Security Manager, SM, 42), 속성 프로토콜(Attribute Protocol, ATT, 440), 일반 속성 프로파일(Generic Attribute Profile, GATT, 44), 일반 접근 프로파일(Generic Access Profile, 25), LT 프로파일(46)을 포함할 수 있다. 다만, 상기 호스트 스택(40)은 이것으로 한정되지는 않고 다양한 프로토콜들 및 프로파일들을 포함할 수 있다.The host stack includes a generic access profile (GAP) 40, a logical link control and adaptation protocol (L2CAP, 41), a security manager (SM, 42), an attribute protocol (ATT, 440), and a general attribute profile. (Generic Attribute Profile, GATT, 44), Generic Access Profile (25), LT profile 46 may be included. However, the host stack 40 is not limited to this and may include various protocols and profiles.
호스트 스택은 L2CAP을 사용하여 블루투스 상위에서 제공하는 다양한 프로토콜, 프로파일 등을 다중화(multiplexing)한다. The host stack uses L2CAP to multiplex the various protocols, profiles, etc. provided by Bluetooth.
먼저, L2CAP(Logical Link Control and Adaptation Protocol, 41)은 특정 프로토콜 또는 프로파일에게 데이터를 전송하기 위한 하나의 양방향 채널을 제공할 수 있다.First, L2CAP (Logical Link Control and Adaptation Protocol) 41 may provide one bidirectional channel for transmitting data to a specific protocol or profile.
상기 L2CAP(41)은 상위 계층 프로토콜들 사이에서 데이터를 다중화(multiplex)하고, 패키지(package)들을 분할(segment) 및 재조립(reassemble)하고, 멀티캐스트 데이터 송신을 관리하도록 동작 가능할 수 있다.The L2CAP 41 may be operable to multiplex data among higher layer protocols, segment and reassemble packages, and manage multicast data transmission.
블루투스 LE 에서는 3개의 고정 채널(signaling CH을 위해 1개, Security Manager를 위해 1개, Attribute protocol을 위해 1개)을 사용한다.Bluetooth LE uses three fixed channels (one for the signaling channel, one for the Security Manager, and one for the Attribute protocol).
반면, BR/EDR(Basic Rate/Enhanced Data Rate)에서는 동적인 채널을 사용하며, protocol service multiplexer, retransmission, streaming mode 등을 지원한다. On the other hand, BR / EDR (Basic Rate / Enhanced Data Rate) uses dynamic channels and supports protocol service multiplexer, retransmission, and streaming mode.
SM(Security Manager, 42)은 디바이스를 인증하며, 키 분배(key distribution)를 제공하기 위한 프로토콜이다.The SM (Security Manager) 42 is a protocol for authenticating a device and providing key distribution.
ATT(Attribute Protocol, 43)는 서버-클라이언트(Server-Client) 구조로 상대 디바이스의 데이터를 접근하기 위한 규칙을 정의한다. ATT에는 아래의 6가지의 메시지 유형(Request, Response, Command, Notification, Indication, Confirmation)이 있다.Attribute Protocol (ATT) 43 defines a rule for accessing data of a counterpart device in a server-client structure. ATT has six message types (Request, Response, Command, Notification, Indication, Confirmation).
① Request 및 Response 메시지: Request 메시지는 클라이언트 디바이스에서 서버 디바이스로 특정 정보를 요청하기 위한 메시지이며, Response 메시지는 Request 메시지에 대한 응답 메시지로서, 서버 디바이스에서 클라이언트 디바이스로 전송되는 메시지를 말한다.① Request and Response message: The Request message is a message for requesting specific information from the client device to the server device, and the Response message is a response message to the request message, which is a message transmitted from the server device to the client device.
② Command 메시지: 클라이언트 디바이스에서 서버 디바이스로 특정 동작의 명령을 지시하기 위해 전송하는 메시지로, 서버 디바이스는 Command 메시지에 대한 응답을 클라이언트 디바이스로 전송하지 않는다. ② Command message: A message sent from the client device to the server device to indicate a command of a specific operation. The server device does not transmit a response to the command message to the client device.
③ Notification 메시지: 서버 디바이스에서 클라이언트 디바이스로 이벤트 등과 같은 통지를 위해 전송하는 메시지로, 클라이언트 디바이스는 Notification 메시지에 대한 확인 메시지를 서버 디바이스로 전송하지 않는다.③ Notification message: This message is sent from the server device to the client device for notification such as an event. The client device does not transmit a confirmation message for the notification message to the server device.
④ Indication 및 Confirm 메시지: 서버 디바이스에서 클라이언트 디바이스로 이벤트 등과 같은 통지를 위해 전송하는 메시지로, Notification 메시지와는 달리, 클라이언트 디바이스는 Indication 메시지에 대한 확인 메시지(Confirm message)를 서버 디바이스로 전송한다.④ Indication and Confirm message: This message is transmitted from the server device to the client device for notification such as an event. Unlike the notification message, the client device transmits a confirmation message for the Indication message to the server device.
본 발명은 상기 속성 프로토콜(ATT, 43)을 사용하는 GATT 프로파일에서 긴 데이터 요청 시 데이터 길이에 대한 값을 전송하여 클라이언트가 데이터 길이를 명확히 알 수 있게 하며, UUID를 이용하여 서버로부터 특성(Characteristic) 값을 전송 받을 수 있다.The present invention transmits a value for the data length when a long data request is made in the GATT profile using the attribute protocol (ATT, 43) so that the client can know the data length clearly, and from the server using the UUID (Characteristic) Can receive the value.
상기 일반 접근 프로파일(GAP, 45)은 블루투스 LE 기술을 위해 새롭게 구현된 계층으로, 블루투스 LE 디바이스들 간의 통신을 위한 역할 선택, 멀티 프로파일 작동이 어떻게 일어나는지를 제어하는데 사용된다.The General Access Profile (GAP) 45 is a newly implemented layer for Bluetooth LE technology, and is used to control role selection and multi-profile operation for communication between Bluetooth LE devices.
또한, 상기 일반 접근 프로파일(45)은 디바이스 발견, 연결 생성 및 보안 절차 부분에 주로 사용되며, 사용자에게 정보를 제공하는 방안을 정의하며, 하기와 같은 attribute의 type을 정의한다.In addition, the general access profile 45 is mainly used for device discovery, connection creation, and security procedures, and defines a method of providing information to a user, and defines the type of an attribute as follows.
① Service: 데이터와 관련된 behavior의 조합으로 디바이스의 기본적인 동작을 정의① Service: Defines the basic behavior of the device with a combination of behaviors related to data.
② Include: 서비스 사이의 관계를 정의② Include: Define the relationship between services
③ Characteristics: 서비스에서 사용되는 data 값③ Characteristics: data value used in service
④ Behavior: UUID(Universal Unique Identifier, value type)로 정의된 컴퓨터가 읽을 수 있는 포맷Behavior: A computer readable format defined by UUID (Universal Unique Identifier, value type).
상기 LE 프로파일(46)은 GATT에 의존성을 가지는 profile 들로 주로 블루투스 LE 디바이스에 적용된다. LE 프로파일(46)은 예를 들면, Battery, Time, FindMe, Proximity, Time, Object Delivery Service 등이 있을 수 있으며, GATT-based Profiles의 구체적인 내용은 하기와 같다.The LE profile 46 is mainly applied to a Bluetooth LE device as profiles having a dependency on GATT. The LE profile 46 may be, for example, Battery, Time, FindMe, Proximity, Time, Object Delivery Service, and the like. Details of GATT-based Profiles are as follows.
① Battery: 배터리 정보 교환 방법 ① Battery: How to exchange battery information
② Time: 시간 정보 교환 방법 ② Time: How to exchange time information
③ FindMe: 거리에 따른 알람 서비스 제공 ③ FindMe: Provides alarm service according to distance
④ Proximity: 배터리 정보 교환 방법 ④ Proximity: How to exchange battery information
⑤ Time: 시간 정보 교환 방법 ⑤ Time: How to exchange time information
상기 일반 속성 프로파일(GATT, 44)은 서비스들의 구성 시에 상기 속성 프로토콜(43)이 어떻게 이용되는지를 설명하는 프로토콜로서 동작 가능할 수 있다. 예를 들어, 상기 일반 속성 프로파일(44)은 ATT 속성들이 어떻게 서비스들로 함께 그룹화되는지를 규정하도록 동작 가능할 수 있고, 서비스들과 연계된 특징들을 설명하도록 동작 가능할 수 있다.The generic attribute profile GATT 44 may be operable as a protocol describing how the attribute protocol 43 is used in the construction of services. For example, the generic attribute profile 44 may be operable to specify how ATT attributes are grouped together into services, and may be operable to describe features associated with the services.
따라서, 상기 일반 속성 프로파일(44) 및 상기 속성 프로토콜(ATT, 43)은 디바이스의 상태와 서비스들을 설명하고, 특징들이 서로 어떻게 관련되며 이들이 어떻게 이용되는지를 설명하기 위하여, 특징들을 사용할 수 있다.Thus, the generic attribute profile 44 and the attribute protocol (ATT, 43) may use features to describe the state and services of a device, and how features relate to each other and how they are used.
이하에서, 블루투스 저전력 에너지(Bluetooth Low Energy:BLE) 기술의 절차(Procedure)들에 대해 간략히 살펴보기로 한다.In the following, the procedure of the Bluetooth Low Energy (BLE) technology will be briefly described.
BLE 절차는 디바이스 필터링 절차(Device Filtering Procedure), 광고 절차(Advertising Procedure), 스캐닝 절차(Scanning Procedure), 디스커버링 절차(Discovering Procedure), 연결 절차(Connecting Procedure) 등으로 구분될 수 있다.The BLE procedure may be classified into a device filtering procedure, an advertising procedure, a scanning procedure, a discovery procedure, a connecting procedure, and the like.
디바이스 필터링 절차(Device Filtering Procedure)Device Filtering Procedure
디바이스 필터링 절차는 컨트롤러 스택에서 요청, 지시, 알림 등에 대한 응답을 수행하는 디바이스들의 수를 줄이기 위한 방법이다.The device filtering procedure is a method for reducing the number of devices performing a response to a request, an indication, a notification, etc. in the controller stack.
모든 디바이스에서 요청 수신 시, 이에 대해 응답하는 것이 불필요하기 때문에, 컨트롤러 스택은 요청을 전송하는 개수를 줄여서, BLE 컨트롤러 스택에서 전력 소비가 줄 수 있도록 제어할 수 있다.When all devices receive a request, it is unnecessary to respond to it, so the controller stack can control the number of requests sent, reducing power consumption in the BLE controller stack.
광고 디바이스 또는 스캐닝 디바이스는 광고 패킷, 스캔 요청 또는 연결 요청을 수신하는 디바이스를 제한하기 위해 상기 디바이스 필터링 절차를 수행할 수 있다.The advertising device or scanning device may perform the device filtering procedure to limit the device receiving the advertising packet, scan request or connection request.
여기서, 광고 디바이스는 광고 이벤트를 전송하는 즉, 광고를 수행하는 디바이스를 말하며, 광고자(Advertiser)라고도 표현된다.Here, the advertising device refers to a device that transmits an advertising event, that is, performs an advertisement, and is also referred to as an advertiser.
스캐닝 디바이스는 스캐닝을 수행하는 디바이스, 스캔 요청을 전송하는 디바이스를 말한다.The scanning device refers to a device that performs scanning and a device that transmits a scan request.
BLE에서는, 스캐닝 디바이스가 일부 광고 패킷들을 광고 디바이스로부터 수신하는 경우, 상기 스캐닝 디바이스는 상기 광고 디바이스로 스캔 요청을 전송해야 한다.In BLE, when the scanning device receives some advertising packets from the advertising device, the scanning device should send a scan request to the advertising device.
하지만, 디바이스 필터링 절차가 사용되어 스캔 요청 전송이 불필요한 경우, 상기 스캐닝 디바이스는 광고 디바이스로부터 전송되는 광고 패킷들을 무시할 수 있다.However, if a device filtering procedure is used so that a scan request transmission is unnecessary, the scanning device may ignore the advertisement packets transmitted from the advertisement device.
연결 요청 과정에서도 디바이스 필터링 절차가 사용될 수 있다. 만약, 연결 요청 과정에서 디바이스 필터링이 사용되는 경우, 연결 요청을 무시함으로써 상기 연결 요청에 대한 응답을 전송할 필요가 없게 된다.The device filtering procedure may also be used in the connection request process. If device filtering is used in the connection request process, it is not necessary to transmit a response to the connection request by ignoring the connection request.
광고 절차(Advertising Procedure)Advertising Procedure
광고 디바이스는 영역 내 디바이스들로 비지향성의 브로드캐스트를 수행하기 위해 광고 절차를 수행한다.The advertising device performs an advertising procedure to perform a non-directional broadcast to the devices in the area.
여기서, 비지향성의 브로드캐스트는 특정 방향으로의 브로드캐스트가 아닌 전(모든) 방향으로의 브로드캐스트를 말한다.Here, non-directional broadcast refers to broadcast in all directions rather than broadcast in a specific direction.
이와 달리, 지향성 브로드 캐스트는 특정 방향으로의 브로드캐스트를 말한다. 비지향성 브로드캐스트는 광고 디바이스와 리스닝(또는 청취) 상태에 있는 디바이스(이하, 리스닝 디바이스라 한다.) 간에 연결 절차 없이 발생한다.In contrast, directional broadcasts refer to broadcasts in a particular direction. Non-directional broadcasts occur without a connection procedure between an advertising device and a device in a listening (or listening) state (hereinafter referred to as a listening device).
광고 절차는 근처의 개시 디바이스와 블루투스 연결을 확립하기 위해 사용된다.The advertising procedure is used to establish a Bluetooth connection with a nearby initiating device.
또는, 광고 절차는 광고 채널에서 리스닝을 수행하고 있는 스캐닝 디바이스들에게 사용자 데이터의 주기적인 브로드캐스트를 제공하기 위해 사용될 수 있다. Alternatively, the advertising procedure may be used to provide periodic broadcast of user data to the scanning devices that are listening on the advertising channel.
광고 절차에서 모든 광고(또는 광고 이벤트)는 광고 물리 채널을 통해 브로드캐스트된다.In the advertising process, all advertisements (or advertisement events) are broadcast over an advertising physical channel.
광고 디바이스들은 광고 디바이스로부터 추가적인 사용자 데이터를 얻기 위해 리스닝을 수행하고 있는 리스닝 디바이스들로부터 스캔 요청을 수신할 수 있다. 광고 디바이스는 스캔 요청을 수신한 광고 물리 채널과 동일한 광고 물리 채널을 통해, 스캔 요청을 전송한 디바이스로 스캔 요청에 대한 응답을 전송한다. The advertising devices may receive a scan request from listening devices that are listening to obtain additional user data from the advertising device. The advertising device transmits a response to the scan request to the device that sent the scan request through the same advertising physical channel as the received advertising physical channel.
광고 패킷들의 일 부분으로서 보내지는 브로드캐스트 사용자 데이터는 동적인 데이터인 반면에, 스캔 응답 데이터는 일반적으로 정적인 데이터이다.Broadcast user data sent as part of an advertisement packet is dynamic data, while scan response data is generally static data.
광고 디바이스는 광고 (브로드캐스트) 물리 채널 상에서 개시 디바이스로부터 연결 요청을 수신할 수 있다. 만약, 광고 디바이스가 연결 가능한 광고 이벤트를 사용하였고, 개시 디바이스가 디바이스 필터링 절차에 의해 필터링 되지 않았다면, 광고 디바이스는 광고를 멈추고 연결 모드(connected mode)로 진입한다. 광고 디바이스는 연결 모드 이후에 다시 광고를 시작할 수 있다.The advertising device may receive a connection request from the initiating device on the advertising (broadcast) physical channel. If the advertising device used a connectable advertising event and the initiating device was not filtered by the device filtering procedure, the advertising device stops the advertising and enters the connected mode. The advertising device may start advertising again after the connected mode.
스캐닝 절차(Scanning Procedure)Scanning Procedure
스캐닝을 수행하는 디바이스 즉, 스캐닝 디바이스는 광고 물리 채널을 사용하는 광고 디바이스들로부터 사용자 데이터의 비지향성 브로드캐스트를 청취하기 위해 스캐닝 절차를 수행한다.The device performing the scanning, i.e., the scanning device, performs a scanning procedure to listen to the non-directional broadcast of the user data from the advertising devices using the advertising physical channel.
스캐닝 디바이스는 광고 디바이스로부터 추가적인 사용자 데이터를 요청 하기 위해, 광고 물리 채널을 통해 스캔 요청을 광고 디바이스로 전송한다. 광고 디바이스는 광고 물리 채널을 통해 스캐닝 디바이스에서 요청한 추가적인 사용자 데이터를 포함하여 상기 스캔 요청에 대한 응답인 스캔 응답을 전송한다.The scanning device sends a scan request to the advertising device via the advertising physical channel to request additional user data from the advertising device. The advertising device transmits a scan response that is a response to the scan request, including additional user data requested by the scanning device over the advertising physical channel.
상기 스캐닝 절차는 BLE 피코넷에서 다른 BLE 디바이스와 연결되는 동안 사용될 수 있다.The scanning procedure can be used while connected to other BLE devices in the BLE piconet.
만약, 스캐닝 디바이스가 브로드캐스트되는 광고 이벤트를 수신하고, 연결 요청을 개시할 수 있는 개시자 모드(initiator mode)에 있는 경우, 스캐닝 디바이스는 광고 물리 채널을 통해 광고 디바이스로 연결 요청을 전송함으로써 광고 디바이스와 블루투스 연결을 시작할 수 있다.If the scanning device is in an initiator mode that can receive the broadcasted advertising event and initiate a connection request, the scanning device sends the connection request to the advertising device via the advertising physical channel to the advertising device. You can start a Bluetooth connection with.
스캐닝 디바이스가 광고 디바이스로 연결 요청을 전송하는 경우, 스캐닝 디바이스는 추가적인 브로드캐스트를 위한 개시자 모드 스캐닝을 중지하고, 연결 모드로 진입한다.When the scanning device sends a connection request to the advertising device, the scanning device stops initiator mode scanning for further broadcast and enters the connected mode.
디스커버링 절차(Discovering Procedure)Discovery Procedure
블루투스 통신이 가능한 디바이스(이하, ‘블루투스 디바이스’라 한다.)들은 근처에 존재하는 디바이스들을 발견하기 위해 또는 주어진 영역 내에서 다른 디바이스들에 의해 발견되기 위해 광고 절차와 스캐닝 절차를 수행한다.Devices capable of Bluetooth communication (hereinafter referred to as "Bluetooth devices") perform an advertisement procedure and a scanning procedure to find devices that are nearby or to be found by other devices within a given area.
디스커버링 절차는 비대칭적으로 수행된다. 주위의 다른 디바이스를 찾으려고 하는 블루투스 디바이스를 디스커버링 디바이스(discovering device)라 하며, 스캔 가능한 광고 이벤트를 광고하는 디바이스들을 찾기 위해 리스닝한다. 다른 디바이스로부터 발견되어 이용 가능한 블루투스 디바이스를 디스커버러블 디바이스(discoverable device)라 하며, 적극적으로 광고 (브로드캐스트) 물리 채널을 통해 다른 디바이스가 스캔 가능하도록 광고 이벤트를 브로드캐스트한다.The discovery procedure is performed asymmetrically. A Bluetooth device that attempts to find another device around it is called a discovering device and listens for devices that advertise a scannable advertisement event. Bluetooth devices discovered and available from other devices are referred to as discoverable devices, and actively broadcast advertising events so that other devices can scan through an advertising (broadcast) physical channel.
디스커버링 디바이스와 디스커버러블 디바이스 모두 피코넷에서 다른 블루투스 디바이스들과 이미 연결되어 있을 수 있다.Both the discovering device and the discoverable device may already be connected with other Bluetooth devices in the piconet.
연결 절차(Connecting Procedure)Connecting Procedure
연결 절차는 비대칭적이며, 연결 절차는 특정 블루투스 디바이스가 광고 절차를 수행하는 동안 다른 블루투스 디바이스는 스캐닝 절차를 수행할 것을 요구한다.The connection procedure is asymmetric, and the connection procedure requires the other Bluetooth device to perform the scanning procedure while the specific Bluetooth device performs the advertisement procedure.
즉, 광고 절차가 목적이 될 수 있으며, 그 결과 단지 하나의 디바이스만 광고에 응답할 것이다. 광고 디바이스로부터 접속 가능한 광고 이벤트를 수신한 이후, 광고 (브로트캐스트) 물리 채널을 통해 광고 디바이스로 연결 요청을 전송함으로써 연결을 개시할 수 있다.That is, the advertising procedure can be the goal, so that only one device will respond to the advertising. After receiving the accessible advertising event from the advertising device, the connection may be initiated by sending a connection request to the advertising device via the advertising (broadcast) physical channel.
다음으로, BLE 기술에서의 동작 상태 즉, 광고 상태(Advertising State), 스캐닝 상태(Scanning State), 개시 상태(Initiating State), 연결 상태(connection state)에 대해 간략히 살펴보기로 한다.Next, an operation state of the BLE technology, that is, an advertising state, a scanning state, an initiating state, and a connection state will be briefly described.
광고 상태(Advertising State)Advertising State
링크 계층(LL)은 호스트 (스택)의 지시에 의해, 광고 상태로 들어간다. 링크 계층이 광고 상태에 있을 경우, 링크 계층은 광고 이벤트들에서 광고 PDU(Packet Data Unit)들을 전송한다.The link layer LL enters the advertisement state by the instruction of the host (stack). If the link layer is in the advertisement state, the link layer sends advertisement packet data units (PDUs) in the advertisement events.
각각의 광고 이벤트는 적어도 하나의 광고 PDU들로 구성되며, 광고 PDU들은 사용되는 광고 채널 인덱스들을 통해 전송된다. 광고 이벤트는 광고 PDU가 사용되는 광고 채널 인덱스들을 통해 각각 전송되었을 경우, 종료되거나 광고 디바이스가 다른 기능 수행을 위해 공간을 확보할 필요가 있을 경우 좀 더 일찍 광고 이벤트를 종료할 수 있다.Each advertising event consists of at least one advertising PDU, which is transmitted via the advertising channel indexes used. The advertisement event may terminate when the advertisement PDU is transmitted through each of the advertisement channel indexes used, or may terminate the advertisement event earlier when the advertisement device needs to make space for performing another function.
스캐닝 상태(Scanning State)Scanning State
링크 계층은 호스트 (스택)의 지시에 의해 스캐닝 상태로 들어간다. 스캐닝 상태에서, 링크 계층은 광고 채널 인덱스들을 리스닝한다. The link layer enters the scanning state by the indication of the host (stack). In the scanning state, the link layer listens for advertising channel indices.
스캐닝 상태에는 수동적 스캐닝(passive scanning), 적극적 스캐닝(active scanning)의 두 타입이 있으며, 각 스캐닝 타입은 호스트에 의해 결정된다.There are two types of scanning states: passive scanning and active scanning, each scanning type being determined by the host.
스캐닝을 수행하기 위한 별도의 시간이나 광고 채널 인덱스가 정의되지는 않는다.There is no separate time or advertisement channel index for performing scanning.
스캐닝 상태 동안, 링크 계층은 스캔윈도우(scanWindow) 구간(duration) 동안 광고 채널 인덱스를 리스닝한다. 스캔인터벌(scanInterval)은 두 개의 연속적인 스캔 윈도우의 시작점 사이의 간격(인터벌)으로서 정의된다.During the scanning state, the link layer listens for the advertising channel index during the scanWindow duration. ScanInterval is defined as the interval (interval) between the starting points of two consecutive scan windows.
링크 계층은 스케쥴링의 충돌이 없는 경우, 호스트에 의해 지시되는 바와 같이 스캔윈도우의 모든 스캔인터벌 완성을 위해 리스닝해야한다. 각 스캔윈도우에서, 링크 계층은 다른 광고 채널 인덱스를 스캔해야한다. 링크 계층은 사용 가능한 모든 광고 채널 인덱스들을 사용한다.If there is no scheduling conflict, the link layer must listen for completion of all scan intervals in the scan window as instructed by the host. In each scan window, the link layer must scan a different advertising channel index. The link layer uses all available advertising channel indexes.
수동적인 스캐닝일 때, 링크 계층은 단지 패킷들만 수신하고, 어떤 패킷들도 전송하지 못한다.When passive scanning, the link layer only receives packets and does not transmit any packets.
능동적인 스캐닝일 때, 링크 계층은 광고 디바이스로 광고 PDU들과 광고 디바이스 관련 추가적인 정보를 요청할 수 있는 광고 PDU 타입에 의존하기 위해 리스닝을 수행한다.When active scanning, the link layer performs listening to rely on the advertising PDU type, which may request advertising PDUs and additional information related to the advertising device from the advertising device.
개시 상태(Initiating State)Initiating State
링크 계층은 호스트 (스택)의 지시에 의해 개시 상태로 들어간다.The link layer enters the initiation state by the indication of the host (stack).
링크 계층이 개시 상태에 있을 때, 링크 계층은 광고 채널 인덱스들에 대한 리스닝을 수행한다.When the link layer is in the initiating state, the link layer performs listening for the advertising channel indexes.
개시 상태 동안, 링크 계층은 스캔윈도우 구간 동안 광고 채널 인덱스를 리스닝한다.During the initiation state, the link layer listens for the advertising channel index during the scan window period.
연결 상태(connection state)Connection state
링크 계층은 연결 요청을 수행하는 디바이스 즉, 개시 디바이스가 CONNECT_REQ PDU를 광고 디바이스로 전송할 때 또는 광고 디바이스가 개시 디바이스로부터 CONNECT_REQ PDU를 수신할 때 연결 상태로 들어간다.The link layer enters the connected state when the device performing the connection request, i.e., the initiating device, sends the CONNECT_REQ PDU to the advertising device or when the advertising device receives the CONNECT_REQ PDU from the initiating device.
연결 상태로 들어간 이후, 연결이 생성되는 것으로 고려된다. 다만, 연결이 연결 상태로 들어간 시점에서 확립되도록 고려될 필요는 없다. 새로 생성된 연결과 기 확립된 연결 간의 유일한 차이는 링크 계층 연결 감독 타임아웃(supervision timeout) 값뿐이다.After entering the connected state, the connection is considered to be created. However, it does not need to be considered to be established at the time the connection enters the connected state. The only difference between the newly created connection and the established connection is the link layer connection supervision timeout value.
두 디바이스가 연결되어 있을 때, 두 디바이스들은 다른 역할로 활동한다.When two devices are connected, the two devices act in different roles.
마스터 역할을 수행하는 링크 계층은 마스터로 불리며, 슬레이브 역할을 수행하는 링크 계층은 슬레이브로 불린다. 마스터는 연결 이벤트의 타이밍을 조절하고, 연결 이벤트는 마스터와 슬레이브 간 동기화되는 시점을 말한다.The link layer that performs the master role is called a master, and the link layer that performs the slave role is called a slave. The master controls the timing of the connection event, and the connection event is the point in time when the master and the slave are synchronized.
이하에서, 블루투스 인터페이스에서 정의되는 패킷에 대해 간략히 살펴보기로 한다. BLE 디바이스들은 하기에서 정의되는 패킷들을 사용한다.Hereinafter, the packet defined in the Bluetooth interface will be briefly described. BLE devices use the packets defined below.
패킷 포맷(Packet Format)Packet Format
링크 계층(Link Layer)은 광고 채널 패킷과 데이터 채널 패킷 둘 다를 위해 사용되는 단지 하나의 패킷 포맷만을 가진다.The link layer has only one packet format used for both advertisement channel packets and data channel packets.
각 패킷은 프리앰블(Preamble), 접속 주소(Access Address), PDU 및 CRC 4개의 필드로 구성된다.Each packet consists of four fields: Preamble, Access Address, PDU, and CRC.
하나의 패킷이 광고 물리 채널에서 송신될 때, PDU는 광고 채널 PDU가 될 것이며, 하나의 패킷이 데이터 물리 채널에서 전송될 때, PDU는 데이터 채널 PDU가 될 것이다.When one packet is sent on an advertising physical channel, the PDU will be an advertising channel PDU, and when one packet is sent on a data physical channel, the PDU will be a data channel PDU.
광고 채널 PDU(Advertising Channel PDU)Advertising Channel PDUs
광고 채널 PDU(Packet Data Unit)는 16비트 헤더와 다양한 크기의 페이로드를 가진다.The advertising channel PDU (Packet Data Unit) has a 16-bit header and payloads of various sizes.
헤더에 포함되는 광고 채널 PDU의 PDU 타입 필드는 하기 표 1에서 정의된 바와 같은 PDU 타입을 나타낸다.The PDU type field of the advertising channel PDU included in the header indicates a PDU type as defined in Table 1 below.
표 1
Table 1
PDU Type | Packet Name |
0000 | ADV_IND |
0001 | ADV_DIRECT_IND |
0010 | ADV_NONCONN_IND |
0011 | SCAN_REQ |
0100 | SCAN_RSP |
0101 | CONNECT_REQ |
0110 | ADV_SCAN_IND |
0111 - 1111 | Reserved |
PDU Type | Packet Name |
0000 | ADV_IND |
0001 | ADV_DIRECT_IND |
0010 | ADV_NONCONN_IND |
0011 | SCAN_REQ |
0100 | SCAN_RSP |
0101 | CONNECT_REQ |
0110 | ADV_SCAN_IND |
0111-1111 | Reserved |
광고 PDU(Advertising PDU)Advertising PDU
아래 광고 채널 PDU 타입들은 광고 PDU로 불리고 구체적인 이벤트에서 사용된다.The following advertising channel PDU types are called advertising PDUs and are used in specific events.
ADV_IND: 연결 가능한 비지향성 광고 이벤트ADV_IND: Connectable Non-Oriented Ads Event
ADV_DIRECT_IND: 연결 가능한 지향성 광고 이벤트ADV_DIRECT_IND: Connectable Directional Advertising Event
ADV_NONCONN_IND: 연결 가능하지 않은 비지향성 광고 이벤트ADV_NONCONN_IND: Non-Connectable Non-Oriented Ads Event
ADV_SCAN_IND: 스캔 가능한 비지향성 광고 이벤트ADV_SCAN_IND: Scannable Non-Oriented Advertising Event
상기 PDU들은 광고 상태에서 링크 계층(Link Layer)에서 전송되고, 스캐닝 상태 또는 개시 상태(Initiating State)에서 링크 계층에 의해 수신된다.The PDUs are transmitted at the link layer in the advertisement state and received by the link layer in the scanning state or initiating state.
스캐닝 PDU(Scanning PDU)Scanning PDU
아래 광고 채널 PDU 타입은 스캐닝 PDU로 불리며, 하기에서 설명되는 상태에서 사용된다.The advertising channel PDU type below is called a scanning PDU and is used in the state described below.
SCAN_REQ: 스캐닝 상태에서 링크 계층에 의해 전송되며, 광고 상태에서 링크 계층에 의해 수신된다.SCAN_REQ: Sent by the link layer in the scanning state and received by the link layer in the advertising state.
SCAN_RSP: 광고 상태에서 링크 계층에 의해 전송되며, 스캐닝 상태에서 링크 계층에 의해 수신된다.SCAN_RSP: Sent by the link layer in the advertising state and received by the link layer in the scanning state.
개시 PDU(Initiating PDU)Initiating PDU
아래 광고 채널 PDU 타입은 개시 PDU로 불린다.The advertising channel PDU type below is called the initiating PDU.
CONNECT_REQ: 개시 상태에서 링크 계층에 의해 전송되며, 광고 상태에서 링크 계층에 의해 수신된다.CONNECT_REQ: Sent by the link layer in the initiating state and received by the link layer in the advertising state.
데이터 채널 PDU(Data Channel PDU)Data Channel PDUs
데이터 채널 PDU는 16 비트 헤더, 다양한 크기의 페이로드를 가지고, 메시지 무결점 체크(Message Integrity Check:MIC) 필드를 포함할 수 있다.The data channel PDU has a 16-bit header, payloads of various sizes, and may include a message integrity check (MIC) field.
앞에서 살펴본, BLE 기술에서의 절차, 상태, 패킷 포맷 등은 본 명세서에서 제안하는 방법들을 수행하기 위해 적용될 수 있다.As described above, the procedure, state, packet format, etc. in the BLE technology may be applied to perform the methods proposed herein.
도 5은 블루투스 저전력 에너지의 속성(Attribute)의 구조와 속성(Attribute) 값을 제공하기 위한 PDU 구조의 일 예를 나타낸 도이다.FIG. 5 is a diagram illustrating an example of a PDU structure for providing an attribute structure and an attribute value of Bluetooth low power energy.
상기 도 5의 (a)는 앞에서 설명한 속성(Attribute)의 구성요소의 일 예를 나타내는 것으로서, 하나의 속성(Attribute)는 네 개의 구성요소로 이루어 지며 아래와 같은 의미를 가진다.FIG. 5A illustrates an example of the elements of the attribute described above. One attribute includes four elements and has the following meaning.
- Attribute Handle: 속성의 주소Attribute Handle: address of the attribute
- Attribute Type: 속성의 유형Attribute Type: the type of attribute
- Attribute Value: 속성의 값Attribute Value: the value of the attribute
- Attribute Permissions: 속성에 대한 접근 권한Attribute Permissions: access to attributes
서버는 위와 같은 형태의 속성(Attribute)을 사용하여 서비스를 제공하며, 상기 도 5의 (b)와 같은 속성 프로토콜 PDU(Attribute Protocol PDU) 형태로 데이터를 전송하게 된다.The server provides a service using an attribute of the above type, and transmits data in the form of an attribute protocol PDU (Attribute Protocol PDU) as shown in FIG.
아래 표 2는 상기 도 5 (b) 속성 프로토콜 PDU의 일 예를 나타낸 표이다.Table 2 below shows an example of the attribute protocol PDU of FIG. 5 (b).
표 2
TABLE 2
Name | Size(Octets) | Description |
Attribute Opcode | 1 | The Attribute PDU operation codebit7: Authentication Signature Flagbit6: Command Flagbit5-0: Method |
Attribute Parameter | 0 to (ATT_MTU-X) | The Attribute PDU parametersX = 1 if Authentication Signature Flag of the Attribute Opcode is 0X = 13 if Authentication Signature Flag of the Attribute Opcode is 1 |
Authentication Signature | 0 or 12 | Optional authentication signature for the Attribute Opcode and Attribute Parameters |
Name | Size (Octets) | Description |
Attribute Opcode | One | The Attribute PDU operation codebit 7: Authentication Signature Flagbit 6: Command Flagbit 5-0: Method |
Attribute Parameter | 0 to (ATT_MTU-X) | The Attribute PDU parameters X = 1 if Authentication Signature Flag of the Attribute Opcode is 0X = 13 if Authentication Signature Flag of the Attribute Opcode is 1 |
| 0 or 12 | Optional authentication signature for the Attribute Opcode and Attribute Parameters |
상기 표 2 및 상기 도 5의 (b)에 도시된 바와 같이, 속성 프로토콜 PDU는 Opcode 필드, Attribute Parameters 필드 및/또는 Authentication Signature 필드로 구성될 수 있다.As shown in Table 2 and FIG. 5B, the attribute protocol PDU may include an opcode field, an attribute parameters field, and / or an authentication signature field.
상기 Attribute Opcode는 octet의 데이터로 해당 속성 프로토콜 PDU가 어떤 PDU인지를 알려주는 정보를 포함한다.The attribute opcode is octet data and includes information indicating which PDU is the corresponding attribute protocol PDU.
아래 표 3은 상기 Attribute Opcode의 일 예를 나타낸 표이다.Table 3 below shows an example of the attribute opcode.
표 3
TABLE 3
Attribute PDU Name | Attribute Opcode | Parameters |
Error Response | 0x01 | Request Opcode in Error,Attribute Handle In Error,Error Code |
Exchange MTU Request | 0x02 | Client Rx MTU |
Exchange MTU Response | 0x03 | Server Rx MTU |
Find Information Request | 0x04 | Starting Handle,Ending Handle,UUID |
Find Information Response | 0x05 | Format,Information Data |
Find by Type Value Request | 0x06 | Starting Handle,Ending Handle,Attribute Type,Attribute Value |
Find by Type Value Response | 0x07 | Handles Information List |
Read By Type Request | 0x08 | Starting Handle,Ending Handle,UUID |
Read By Type Response | 0x09 | Length,Attribute Data List |
Read Request | 0x0A | Attribute Handle |
Read Response | 0x0B | Attribute Value |
Read by Blob Request | 0x0C | Attribute Handle,Value Offset |
Read by Blob Response | 0x0D | Part Attribute Value,Handle Set |
Read Multiple Request | 0x0E | Value Set |
Read Multiple Response | 0x0F | Starting Handle,Ending Handle,UUID |
Read by Group Type Request | 0x10 | Length,Attribute Data List |
Read by Group Type Response | 0x11 | Attribute Handle,Attribute Value |
Write Request | 0x12 | - |
Write Response | 0x13 | Attribute Handle,Attribute Value |
Write Command | 0x52 | Attribute Handle,Attribute Value |
Prepare Write Request | 0x16 | Attribute Handle,Value Offset,Part Attribute Value |
Prepare Write Response | 0x17 | Attribute Handle,Value Offset,Part Attribute Value |
Execute Write Request | 0x18 | Flags |
Execute Write Response | 0x19 | - |
Handle Value Notification | 0x1B | Attribute Handle,Attribute Value |
Handle Value Indication | 0x1D | Attribute Handle,Attribute Value |
Handle Value Confirmation | 0x1E | |
Signed Write Command | 0xD2 | Attribute Handle,Attribute Value,Authentication Signature |
Attribute PDU Name | Attribute Opcode | Parameters |
Error Response | 0x01 | Request Opcode in Error, Attribute Handle In Error, Error Code |
Exchange MTU Request | 0x02 | Client Rx MTU |
Exchange MTU Response | 0x03 | Server Rx MTU |
Find Information Request | 0x04 | Starting Handle, Ending Handle, UUID |
Find Information Response | 0x05 | Format, Information Data |
Find by Type Value Request | 0x06 | Starting Handle, Ending Handle, Attribute Type, Attribute Value |
Find by Type Value Response | 0x07 | Handles Information List |
Read By Type Request | 0x08 | Starting Handle, Ending Handle, UUID |
Read By Type Response | 0x09 | Length, Attribute Data List |
Read Request | 0x0A | Attribute Handle |
Read response | 0x0B | Attribute Value |
Read by Blob Request | 0x0C | Attribute Handle, Value Offset |
Read by Blob Response | 0x0D | Part Attribute Value, Handle Set |
Read Multiple Request | 0x0E | Value set |
Read Multiple Response | 0x0F | Starting Handle, Ending Handle, UUID |
Read by Group Type Request | 0x10 | Length, Attribute Data List |
Read by Group Type Response | 0x11 | Attribute Handle, Attribute Value |
Write Request | 0x12 | - |
Write Response | 0x13 | Attribute Handle, Attribute Value |
Write Command | 0x52 | Attribute Handle, Attribute Value |
Prepare Write Request | 0x16 | Attribute Handle, Value Offset, Part Attribute Value |
Prepare Write Response | 0x17 | Attribute Handle, Value Offset, Part Attribute Value |
Execute Write Request | 0x18 | Flags |
Execute Write Response | 0x19 | - |
Handle Value Notification | 0x1B | Attribute Handle, Attribute Value |
Handle Value Indication | 0x1D | Attribute Handle, Attribute Value |
Handle Value Confirmation | 0x1E | |
Signed Write Command | 0xD2 | Attribute Handle, Attribute Value, Authentication Signature |
상기 Attribute Parameters는 실제 메시지에서 전달하고자 하는 정보를 포함하고 있으며, 아래와 같은 값을 가질 수 있다.The Attribute Parameters include information to be delivered in an actual message and may have the following values.
- Handle: 데이터가 위치한 IndexHandle: Index where the data is located
- Value: 데이터의 값Value: the value of the data
- Data List: 여러 데이터 값들의 목록Data List: List of multiple data values
- Length: 데이터의 길이Length: the length of the data
상기 Authentication Signature는 Optional 필드로 선택적으로 존재하거나 존재하지 않을 수 있으며, Signed Write Command일 경우 12octet의 Signature 정보를 포함할 수 있다.The Authentication Signature may optionally exist or not exist as an Optional field, and may include Signature information of 12 octets in the case of a Signed Write Command.
이와 같은 Attribute Protocol PDU를 통해서 클라이언트는 서버에 저장되어 있는 Attribute Handle 값, Attribute Value, Data List 또는 Length 값을 읽어오거나, 서버에 위와 같은 값을 저장할 수 있다.Through the Attribute Protocol PDU, the client can read the Attribute Handle value, Attribute Value, Data List, or Length value stored in the server or store the above values in the server.
본 발명은 이와 같이, 서버에서 데이터를 불러오거나 저장할 때 사용되는 에러 코드 및, 특정 값을 정확하게 불러오기 위한 방법을 제안한다.The present invention thus proposes an error code used when loading or storing data in a server and a method for accurately reading a specific value.
도 6은 블루투스 저전력 에너지 기술을 이용하여 서버에 저장되어 있는 큰 데이터 (ATT_MTU-1 보다 큰 데이터)를 획득하기 위한 방법의 일 예를 나타낸 흐름도이다.6 is a flowchart illustrating an example of a method for acquiring large data (data larger than ATT_MTU-1) stored in a server using a Bluetooth low power energy technology.
상기 도 6을 참조하면, 블루투스 LE(Low Energy)를 통해서 데이터를 송수신하는 경우, 데이터의 크기 또는 길이에 따라 메시지 타입을 다르게 하여 전송할 수 있다.Referring to FIG. 6, when data is transmitted / received through Bluetooth Low Energy (LE), a message type may be transmitted according to the size or length of data.
구체적으로, 클라이언트(120)와 서버(110)는 블루투스 LE 연결 절차를 통해 블루투스 LE 링크가 형성되어 있다.In detail, the client 120 and the server 110 have a Bluetooth LE link formed through a Bluetooth LE connection procedure.
이후, 상기 클라이언트(120)는 앞에서 설명한 속성 프로토콜(Attribute Protocol)을 통해서 상기 서버(110)에 저장되어 있는 데이터(예를 들면, 특성 값)를 읽어오기 위해서 상기 서버(110)로 읽기 요청(Read Request)을 전송한다(S610).Thereafter, the client 120 reads a read request to the server 110 to read data (for example, an attribute value) stored in the server 110 through the attribute protocol described above. Request (S610).
이때, 상기 클라이언트(120)는 읽고자 하는 특성 값(Characteristic Value)의 Handle 값을 상기 읽기 요청에 포함하여 상기 서버(110)에 데이터를 요청하게 된다.At this time, the client 120 requests the server 110 to include data by including a handle value of a characteristic value to be read in the read request.
상기 속성 프로토콜(Attribute Protocol)의 최대 데이터 전송 크기는 ATT_MTU-1이며, 이보다 데이터가 큰 경우에는 ATT_MTU-1의 크기까지만 읽어올 수 있다.The maximum data transmission size of the attribute protocol is ATT_MTU-1. If the data is larger than this, only the size of ATT_MTU-1 can be read.
상기 읽기 요청을 수신한 상기 서버(100)는 상기 읽기 요청(Read Request)에 포함되어 있는 Handle 값을 기초로 저장되어 있는 데이터를 찾아 읽기 응답(Read Response)을 통해 상기 클라이언트에게 상기 데이터를 전송한다(S620).The server 100 receiving the read request finds data stored based on a Handle value included in the read request and transmits the data to the client through a read response. (S620).
이때, 상기 읽기 응답(Read Response)을 통해 전송할 수 있는 데이터의 최대 크기는 ATT_MTU-1이며, 이보다 큰 경우, ATT_MTU-1의 크기까지만 전송할 수 있다.In this case, the maximum size of data that can be transmitted through the read response is ATT_MTU-1. If the size is larger than this, only the size of ATT_MTU-1 can be transmitted.
상기 읽기 응답(Read Response)을 통해 데이터를 전송 받은 상기 클라이언트는 상기 데이터(예를 들면, Characteristic)의 길이가 가변적이어서 읽기 응답을 통해 한번에 모든 데이터를 전송 받지 못한 경우, 추가 데이터가 존재하는지 여부를 알 수 없다.The client, which has received data through the read response, has a variable length of the data (for example, characteristic), and thus, if all data has not been transmitted at once through the read response, whether the additional data exists. I can not know.
만약, 상기 클라이언트(120)가 ATT_MTU-1보다 큰 크기의 데이터를 읽어오기 위해서는 데이터를 부분적으로 나눠서 읽어올 수 있으며, 이를 위해 상기 클라이언트(120)는 상기 서버(110)에게 읽기 블럽 요청(Read Blob Request)을 전송한다(S630). If the client 120 reads data having a size larger than ATT_MTU-1, the client 120 may partially read the data, and for this purpose, the client 120 may request a read blob from the server 110. Request (S630).
상기 읽기 블럽 요청은 읽어오고자 하는 특성(Characteristic)의 Handle 값뿐만 아니라, 부분적으로 나눠진 데이터를 읽어오기 위해서 특성 오프셋(Characteristic Offset)을 포함하고 있어 상기 특성 오프셋부터 데이터를 읽어올 수 있다.The read blob request includes not only a Handle value of a characteristic to be read, but also a characteristic offset to read partially divided data, so that data can be read from the characteristic offset.
상기 읽기 블럽 요청을 수신한 상기 서버(110)는 상기 Handle 값 및 특성 오프셋 값을 기초로 ATT_MTU-3까지의 크기에 해당되는 데이터를 읽기 블럽 응답(Read Blob Response)에 포함해서 상기 클라이언트(120)에게 전송한다(S630).Upon receiving the read blob request, the server 110 includes data corresponding to a size up to ATT_MTU-3 based on the Handle value and the property offset value in a read blob response, and the client 120. It transmits to (S630).
이후, 전송될 데이터가 남아 있는 경우 추가적인 요청 및 응답을 통해서 데이터를 수신할 수 있다(S630). Thereafter, if data to be transmitted remains, data may be received through an additional request and response (S630).
하지만, 특성 오프셋(Characteristic Offset)의 값이 데이터의 크기보다 크거나, 상기 읽기 블럽 응답(Read Blob Response)를 통해 전송 받은 데이터의 크기가 상기 ATT_MTU-3보다 작을 경우에는 추가적인 요청을 전송하지 않을 수 있다.However, when the value of the characteristic offset is greater than the data size or the size of the data received through the read blob response is smaller than the ATT_MTU-3, the additional request may not be transmitted. have.
또는 Invalid Offset Response를 상기 클라이언트(120)가 수신한 경우 추가 요청을 전송하지 않을 수 있다.Alternatively, when the client 120 receives an invalid offset response, the additional request may not be transmitted.
이와 같은 방법은, 상기 클라이언트(120)가 전송 받고자 하는 데이터의 크기를 미리 알고 있어야 읽기 블럽 요청을 통해서 분할 전송을 받을 수 있고, 그렇지 못한 경우에는 읽기 요청을 통해서 데이터를 전송 받을 수 밖에 없어 전송 받은 데이터가 전체 데이터의 일부인지, 추가적인 데이터가 더 존재하는 지 알 수 없다는 문제점이 존재한다.In such a method, the client 120 needs to know the size of the data to be transmitted in advance to receive the split transmission through the read blob request. Otherwise, the client 120 cannot receive the data through the read request. The problem is that it is not known whether the data is part of the overall data or whether there is additional data.
본 발명에서는 이와 같은 문제점을 해결하기 위해서, 읽기 응답 전송 시 추가적인 데이터가 더 존재하는지 여부, 데이터의 길이 등과 같은 정보를 전송하는 방법을 제안한다.In order to solve such a problem, the present invention proposes a method of transmitting information such as whether additional data is present in the read response and the length of the data.
도 7은 블루투스 저전력 에너지 기술을 이용하여 서버에 저장되어 있는 데이터 (ATT_MTU-1 보다 작은 데이터)를 획득하기 위한 방법의 또 다른 일 예를 나타낸 흐름도이다.7 is a flowchart illustrating still another example of a method for acquiring data stored in a server (data smaller than ATT_MTU-1) using a Bluetooth low power energy technology.
상기 도 7을 참조하면, 특성(Characteristic)의 UUID를 이용하여 서버에 저장되어 있는 특성 값을 읽어올 수 있다.Referring to FIG. 7, a characteristic value stored in a server may be read using a UUID of a characteristic.
구체적으로, 상기 클라이언트(120)가 특정 특성(Characteristic)의 UUID를 알고 있는 경우, 이를 이용하여 서버(110)로부터 데이터를 읽어오기 위해 상기 서버(110)에게 Read By Type Request를 전송한다(S710).In detail, when the client 120 knows the UUID of a specific characteristic, the client 120 transmits a read by type request to the server 110 to read data from the server 110 using the same (S710). .
이때, 상기 Read By Type Request는 특정 특성의 UUID 값과 Starting Handle 값 및 Ending Handle 값을 포함할 수 있다. In this case, the read by type request may include a UUID value, a starting handle value, and an ending handle value of a specific characteristic.
여기서, 일반적으로 상기 Starting Handle 값 및 Ending Handle 값의 경우 특정 서비스의 Starting Handle 값과 Ending Handle 값이다.Here, generally, the starting handle value and the ending handle value are starting handle value and ending handle value of a specific service.
상기 Read By Type Request를 수신한 상기 서버(110)는 요청 받은 값을 Read By Type Response를 통해서 상기 클라이언트(120)에게 전송한다(S720).The server 110 receiving the read by type request transmits the requested value to the client 120 through the read by type response (S720).
이때, 상기 Starting Handle 값과 상기 Ending Handle 값 사이에 상기 UUID를 가지는 특성(Characteristic) 값은 다수가 존재할 수 있으며, 상기 서버(110)는 특성(Characteristic)의 Handle 값을 알 수 없기 때문에 동일한 UUID를 가지는 다수의 특성 값을 상기 클라이언트(120)에게 전송하게 된다.In this case, a number of characteristic values having the UUID may exist between the Starting Handle value and the Ending Handle value, and since the server 110 may not know the Handle value of the characteristic, the same UUID may be obtained. The branch may transmit a plurality of characteristic values to the client 120.
이후, 상기 클라이언트(120)는 상기 서버(110)로부터 전송 받고자 하는 데이터가 추가적으로 존재하는 경우, 추가적인 요청 및 응답을 통해서 데이터를 수신할 수 있다(S730).Thereafter, if there is additional data to be transmitted from the server 110, the client 120 may receive the data through an additional request and response (S730).
이와 같은 방법에서 상기 Read By Type Response는 최대 ATT_MTU-1 만큼의 크기만 전송할 수 있기 때문에, 상기 Read By Type Response에 상기 클라이언트(120)가 원하는 특성 값이 포함되지 않을 수 있다.In this manner, since the Read By Type Response can transmit only a maximum size of ATT_MTU-1, the Read By Type Response may not include the characteristic value desired by the client 120.
또한, 상기 클라이언트(120)가 특성의 Handle 정보를 가지고 있지 않기 때문에, 전송 받은 값을 가지고 어떤 특성(Characteristic) 값인지 파악하기 어렵다는 문제점이 존재한다.In addition, since the client 120 does not have the handle information of the characteristic, there is a problem that it is difficult to determine which characteristic (Characteristic) value with the received value.
따라서, 본 발명에서는 특성(Characteristic)의 Handle 값을 상기 서버로부터 전송 받는 방법을 제안한다. Therefore, the present invention proposes a method of receiving a Handle value of the characteristic from the server.
도 8는 본 명세서에서 제안하는, 데이터의 크기에 따라 에러 메시지를 전송함으로써, 서버로부터 데이터를 전송 받는 방법의 일 예를 나타낸 흐름도이다.8 is a flowchart illustrating an example of a method for receiving data from a server by transmitting an error message according to the size of data proposed in the present specification.
상기 도 8을 참조하면, 서버로부터 읽어오려는 데이터크기가 읽기 응답(Read Response)의 최대 전송 크기보다 큰 경우 에러메시지를 전송함으로써 분할 전송을 할 수 있다.Referring to FIG. 8, when the data size to be read from the server is larger than the maximum transmission size of the read response, the split message may be transmitted by transmitting an error message.
구체적으로, 상기 클라이언트(120)가 상기 서버(110)에 저장되어 있는 데이터를 읽어오고자 하는 경우, 상기 클라이언트(120)는 상기 서버(110)에게 읽기 요청(Read Request)을 전송한다(S810).In detail, when the client 120 wants to read data stored in the server 110, the client 120 transmits a read request to the server 110 (S810). .
이때, 상기 읽기 요청은 해당 속성(Attribute)의 핸들 값을 포함한다. 예를 들어, 아래 표 4과 같은 속성(Attribute) 값을 읽어오고자 한다면, 상기 클라이언트(120)는 “0x0123”의 핸들 값을 상기 읽기 요청에 포함하여 전송한다.In this case, the read request includes a handle value of the corresponding attribute. For example, if you want to read an attribute value as shown in Table 4 below, the client 120 transmits a handle value of “0x0123” in the read request.
표 4
Table 4
Attribute Handle | Attribute Type | Attribute Value | Attribute Permission |
0x0123 | Name | A very Long Device Name Using a Long Attribute |
Attribute Handle | Attribute Type | Attribute Value | Attribute Permission |
0x0123 | Name | A very long device name using a long attribute |
상기 읽기 요청을 수신한 상기 서버(110)는 요청 받은 데이터를 상기 Handle 값을 기초로 찾을 수 있다. 이때, 상기 요청 받은 데이터의 크기가 읽기 응답(Read Response)의 최대 전송 크기 보다 큰 경우, 상기 서버(110)는 상기 클라이언트(120)에게 에러 응답(Error Response)를 전송한다(S820).The server 110 receiving the read request may find the requested data based on the Handle value. At this time, if the size of the requested data is larger than the maximum transmission size of the read response (Read Response), the server 110 transmits an error response (Error Response) to the client 120 (S820).
아래 표 5는 상기 에러 응답(Error Response)의 데이터 포맷의 일 예를 나타낸다.Table 5 below shows an example of the data format of the error response.
표 5
Table 5
Parameter | Size(octets) | Description |
Attribute Opcode | 1 | 0x01 = Error Response |
Request Opcode In Error | 1 | The Request that generated this error response |
Attribute Handle In Error | 2 | The attribute Handle that generated this error response |
Error Code | 1 | The reason why the request has generated an error response |
Parameter | Size (octets) | Description |
Attribute Opcode | One | 0x01 = Error Response |
Request Opcode In Error | One | The Request that generated this error response |
Attribute Handle In Error | 2 | The attribute Handle that generated this error response |
Error Code | One | The reason why the request has generated an error response |
상기 에러 응답은 Attribute Opcode, Request Opcode in Error, Attribute Handle in Error 및/또는 Error Code로 구성될 수 있다.The error response may be composed of an attribute opcode, a request opcode in error, an attribute handle in error, and / or an error code.
상기 Attribute Opcode는 “0x01” 값으로 Error Response임을 나타낸다. 상기 Request Opcode In Error는 Error가 발생한 요청의 Opcode를 나타내며, 상기 Attribute Handle in Error는 Error가 발생한 요청의 속성 핸들(attribute handle) 값을 나타낸다.The attribute opcode indicates an error response with a value of “0x01”. The Request Opcode In Error indicates an Opcode of a request in which an Error occurs, and the Attribute Handle in Error indicates an attribute handle value of a Request in which an Error occurs.
상기 Error Code는 Error가 발생한 원인을 나타내며, 아래 표 5의 값들 중 하나를 가질 수 있다.The error code indicates a cause of an error and may have one of values shown in Table 5 below.
아래 표 6는 상기 에러 코드 값의 일 예를 나타낸 표이다.Table 6 below shows an example of the error code value.
표 6
Table 6
Name | Error Code | Description |
Invalid Handle | 0x01 | The Attribute Handle given was not valid on this server |
Read Not Permitted | 0x02 | The attribute cannot be read |
Write Not Permitted | 0x03 | The attribute cannot be written |
Invalid PDU | 0x04 | The attribute PDU was invalid |
Insufficient Authentication | 0x05 | The attribute requires authentication before it can be read or written |
Request Not Supported | 0x06 | Attribute server does not support the request received from the client |
Invalid Offset | 0x07 | Offset specified was past the end of the attribute |
Insufficient Authorization | 0x08 | The attribute requires authorization before it can be read or write |
Prepare Queue Full | 0x09 | Too many prepare writes have been queued |
Attribute Not Found | 0x0A | No attribute found within the given attribute handle range |
Attribute Not Long | 0x0B | The attribute cannot be read or written using the Read Blob Request |
Insufficient Encryption Key Size | 0x0C | The Encryption Key Size Used for encryption this link is insufficient |
Invalid Attribute Value Length | 0x0D | The attribute value length is invalid for the operation |
Unlikely Error | 0x0E | The attribute request that was requested has encountered an error that was unlikely, and therefore could not be completed as requested |
Insufficient Encryption | 0x0F | The attribute requires Encryption before it can be read or written |
Unsupported Group Type | 0x10 | The attribute type is not a supported grouping attribute as defined by a higher layer specification |
Insufficient Resources | 0x11 | In sufficient Resources to complete the request |
Attribute Too Long | 0x12 | The attribute cannot be read or written using the Read Request |
Attribute Too many | 0x13 | The attribute cannot be read or written due to more than one attribute |
Invalid Attribute Value Type | 0x14 | The Type of Attribute value is invalid |
Reserved | 0x15 - 0x7F | The attribute requires authorization before it can be read or write |
Application Error | 0x80 - 0x9F | Too many prepare writes have been queued |
Reserved | 0xA0 - 0xDF | No attribute found within the given attribute handle range |
Common Profile and Service Error Codes | 0xE0 - 0xFF |
Name | Error Code | Description |
Invalid Handle | 0x01 | The Attribute Handle given was not valid on this server |
Read Not Permitted | 0x02 | The attribute cannot be read |
Write Not Permitted | 0x03 | The attribute cannot be written |
Invalid PDU | 0x04 | The attribute PDU was invalid |
Insufficient Authentication | 0x05 | The attribute requires authentication before it can be read or written |
Request Not Supported | 0x06 | Attribute server does not support the request received from the client |
Invalid Offset | 0x07 | Offset specified was past the end of the attribute |
Insufficient Authorization | 0x08 | The attribute requires authorization before it can be read or write |
Prepare Queue Full | 0x09 | Too many prepare writes have been queued |
Attribute Not Found | 0x0A | No attribute found within the given attribute handle range |
Attribute Not Long | 0x0B | The attribute cannot be read or written using the Read Blob Request |
Insufficient Encryption Key Size | 0x0C | The Encryption Key Size Used for encryption this link is insufficient |
Invalid Attribute Value Length | 0x0D | The attribute value length is invalid for the operation |
Unlikely Error | 0x0E | The attribute request that was requested has encountered an error that was unlikely, and therefore could not be completed as requested |
Insufficient Encryption | 0x0F | The attribute requires Encryption before it can be read or written |
Unsupported Group Type | 0x10 | The attribute type is not a supported grouping attribute as defined by a higher layer specification |
Insufficient Resources | 0x11 | In sufficient Resources to complete the request |
Attribute Too Long | 0x12 | The attribute cannot be read or written using the Read Request |
Attribute Too many | 0x13 | The attribute cannot be read or written due to more than one attribute |
Invalid Attribute Value Type | 0x14 | The Type of Attribute value is invalid |
Reserved | 0x15-0x7F | The attribute requires authorization before it can be read or write |
Application Error | 0x80-0x9F | Too many prepare writes have been queued |
Reserved | 0xA0-0xDF | No attribute found within the given attribute handle range |
Common Profile and Service Error Codes | 0xE0-0xFF |
이때, 상기 서버(110)는 요청 받은 데이터의 크기가 읽기 응답(Read Response)의 최대 전송 크기 보다 크기 때문에, 상기 에러 응답의 에러코드 값은 “0x12”로 하여 상기 읽기 요청(Read request)의 정보와 함께 상기 클라이언트(120)에게 전송한다. In this case, since the size of the requested data is larger than the maximum transmission size of the read response, the server 110 sets the error code value of the error response to “0x12” so that the information of the read request is read. Along with the client 120.
상기 읽기 요청의 정보는 상기 읽기 요청의 Opcode 및/또는 요청 Handle 값을 포함할 수 있다.The read request information may include an Opcode and / or request Handle value of the read request.
상기 에러 응답을 받은 상기 클라이언트(120)는 요청한 특성 값의 크기가 읽기 응답(read response)를 통해 전송될 수 있는 최대 전송 크기 보다 크다는 것을 알 수 있다.Upon receiving the error response, the client 120 may know that the size of the requested characteristic value is larger than the maximum transmission size that can be transmitted through a read response.
따라서, 상기 클라이언트(120)는 상기 특성 값을 나눠서 전송 받기 위해 읽기 블럽 요청(Read Blob Request)을 상기 서버(110)에게 전송한다(S830). 상기 읽기 블럽 요청은 전송 받고자 하는 속성(Attribute)의 Handle 값, 및 전송 받을 데이터의 시작지점을 나타내는 오프셋 값을 포함한다.Therefore, the client 120 transmits a read blob request to the server 110 in order to receive the divided value of the characteristic (S830). The read blob request includes a handle value of an attribute to be transmitted, and an offset value indicating a start point of data to be transmitted.
상기 읽기 블럽 요청은 Attribute Handle 값인 “0x0123’ 및 오프셋 값(0x0000)을 포함할 수 있다.The read blob request may include an attribute handle value "0x0123" and an offset value (0x0000).
상기 요청을 받은 상기 서버는 “0x0123”에 해당하는 Handle 값을 가지는 특성 값을 “0x0000”부터 ATT_MTU-1의 크기(“0x0016”까지)에 해당 하는 값(본 실시예에서 “A very Long Device Nam”)을 읽기 블럽 응답(Read Blob Response)를 통해 상기 클라이언트(120)에게 전송한다(S840).The server receiving the request has a property value having a Handle value corresponding to “0x0123” and a value corresponding to a size of “0x0000” to ATT_MTU-1 (“0x0016”) (“A very Long Device Nam in this embodiment”). ”) Is transmitted to the client 120 through a read blob response (S840).
이후, 상기 클라이언트는 이후 값을 전송 받기 위하여 Handle 값 “0x0123 및 오프 셋 값 “0x0016”을 포함하는 읽기 블럽 요청(Read Blob Request)를 상기 서버(110)로 전송한다(S850).Thereafter, the client transmits a read blob request including a handle value “0x0123” and an offset value “0x0016” to the server 110 in order to receive a subsequent value (S850).
상기 요청을 받은 상기 서버(110)는 요청 받은 오프 셋 값부터 ATT_MTU-1까지의 값에 해당하는 값(본 실시예에서 “e Using A Long Attribu”)을 읽기 블럽 응답을 통해 상기 클라이언트(120)에게 전송한다(S860).The server 110 receiving the request reads a value (“e Using A Long Attribu” in this embodiment) corresponding to a value from the requested offset value to ATT_MTU-1 through the client blob response. It transmits to (S860).
상기 클라이언트(120)는 ATT_MTU-1의 크기보다 작은 데이터나 Invalid Offset Error Code를 가지는 응답을 수신하지 않은 바, 아직 추가 데이터가 존재함을 알 수 있다.Since the client 120 does not receive data smaller than the size of ATT_MTU-1 or a response having an Invalid Offset Error Code, the client 120 may recognize that there is additional data.
따라서, 상기 클라이언트(120)는 Handle 값 “0x0123 및 오프 셋 값 “0x002C”을 포함하는 읽기 블럽 요청(Read Blob Request)를 상기 서버(110)로 전송한다(S870).Accordingly, the client 120 transmits a read blob request including a handle value “0x0123” and an offset value “0x002C” to the server 110 (S870).
상기 요청을 받은 상기 서버(110)는 요청 받은 오프 셋 값부터 나머지 값(본 실시예에서 “te”)을 상기 클라이언트(120)에게 전송하며(S880), 상기 클라이언트(120)는 ATT_MTU-1 보다 작은 크기의 데이터가 전송되었으므로 추가데이터가 없다는 것을 인지하게 된다.The server 110 receiving the request transmits the remaining value (“te” in this embodiment) from the requested offset value to the client 120 (S880), and the client 120 is larger than ATT_MTU-1. Since a small amount of data has been transmitted, it is recognized that there is no additional data.
이와 같은 방법을 통해서 상기 클라이언트는 전송 받고자 하는 데이터의 크기 또는 길이를 알 수 있으며, 읽기 응답을 전송한 경우에도 길이기 간 데이터를 모두 전송 받을 수 있다.Through this method, the client can know the size or length of the data to be transmitted, and can receive all of the length data even when the read response is transmitted.
도 9는 본 명세서에서 제안하는, 요청 받은 데이터의 크기에 따라 다른 응답 메시지를 통해 데이터를 전송하는 방법의 일 예를 나타낸 도이다.9 is a diagram illustrating an example of a method for transmitting data through another response message according to the size of data requested as proposed herein.
상기 도 9를 참조하면, 상기 도 8과는 다르게 에러메시지를 이용하지 않고, 요청 받은 데이터의 크기에 따라서 서버가 다른 응답 메시지를 이용하여 데이터를 전송한다.Referring to FIG. 9, unlike the FIG. 8, the server transmits data using a different response message according to the size of the requested data, without using an error message.
구체적으로, 상기 서버(110)는 상기 클라이언트(120)로부터 데이터 전송 요청을 받은 경우(S910), 상기 요청 메시지에 포함된 handle 값을 통해 전송하고자 하는 데이터를 찾을 수 있다.In detail, when the server 110 receives a data transmission request from the client 120 (S910), the server 110 may find data to be transmitted through a handle value included in the request message.
상기 요청 받은 데이터를 찾은 상기 서버(110)는 상기 데이터가 읽기 응답(Read Response)을 통해 전송될 수 있는 최대 전송 크기(ATT_MTU-1)보다 큰지 여부를 판단한다(S920).The server 110 that finds the requested data determines whether the data is larger than a maximum transmission size ATT_MTU-1 that can be transmitted through a read response (S920).
판단 결과, 상기 데이터가 상기 ATT_MTU-1 보다 큰 경우, 상기 서버(110)는 상기 데이터를 나눠서 전송하기 위해, 읽기 블럽 응답(Read Blob Response)를 통해 상기 데이터를 전송하게 된다(S930).As a result of the determination, when the data is larger than the ATT_MTU-1, the server 110 transmits the data through a read blob response in order to divide and transmit the data (S930).
하지만, 상기 데이터가 상기 ATT_MTU-1 보다 작은 경우, 상기 서버(110)는 상기 데이터를 읽기 응답(Read Response)를 통해 상기 클라이언트(120)에게 전송한다(S940).However, when the data is smaller than the ATT_MTU-1, the server 110 transmits the data to the client 120 through a read response (S940).
도 10은 본 명세서에서 제안하는, 요청 받은 데이터의 크기에 따라 다른 응답 메시지를 통해 데이터를 전송하는 방법의 또 다른 일 예를 나타낸 도이다.FIG. 10 is a diagram illustrating another example of a method for transmitting data through another response message according to the size of data requested according to the present specification.
상기 도 10을 참조하여, 상기 도 9에서 설명한 방법을 구체적인 예를 들어 설명하도록 한다. 상기 클라이언트(120)는 상기 서버(110)에 저장되어 있는 상기 표 3과 같은 특성 값을 요청하기 위해서 상기 서버(110)에게 읽기 요청(Read Request)을 전송할 수 있다(S1010).Referring to FIG. 10, the method described with reference to FIG. 9 will be described with reference to specific examples. The client 120 may transmit a read request to the server 110 to request the characteristic values as shown in Table 3 stored in the server 110 (S1010).
이때, 상기 읽기 요청(Read Request)은 “0x0123”의 핸들 값을 가지고 있다.At this time, the read request has a handle value of "0x0123".
상기 서버(100)는 상기 핸들 값을 이용하여 요청 받은 특성 값인 “A Very Long Device Name Using a Long Attribute” 값을 찾을 수 있고, 상기 특성 값이 최대 전송 크기(ATT_MTU-1)보다 큰지 여부를 판단 할 수 있다. The server 100 may find a value of “A Very Long Device Name Using a Long Attribute” which is a requested characteristic value by using the handle value, and determine whether the characteristic value is larger than the maximum transmission size (ATT_MTU-1). can do.
이때, 상기 특성 값이 상기 ATT_MTU-1보다 큰 경우, 상기 서버(110)는 상기 ATT_MTU-1의 크기에 해당하는 데이터인 “A Very Long Device Nam”을 읽기 블럽 응답(Read Blob Response)를 통해 상기 클라이언트(120)에게 전송한다(S1020).At this time, when the characteristic value is larger than the ATT_MTU-1, the server 110 reads the data “A Very Long Device Nam” corresponding to the size of the ATT_MTU-1 through a read blob response. It transmits to the client 120 (S1020).
상기 클라이언트는 상기 읽기 요청에 대한 응답으로 읽기 블럽 응답이 전송된 것을 보고 추가적인 데이터가 더 있음을 알 수 있다.The client sees that a read blob response has been sent in response to the read request and can see that there is additional data.
따라서, 상기 클라이언트는 추가적인 데이터를 전송 받기 위해 읽기 블럽 요청(Read Blob Request)을 상기 서버(110)로 전송한다(S1030). 이때, 상기 읽기 블럽 요청에는, 해당 속성(attribute)의 핸들 값인 “0x0123”과 전송 받고자 하는 값의 오프셋(offset) 값인 “0x0016”을 포함할 수 있다.Accordingly, the client transmits a read blob request to the server 110 to receive additional data (S1030). In this case, the read blob request may include “0x0123”, which is a handle value of a corresponding attribute, and “0x0016”, which is an offset value of a value to be transmitted.
상기 읽기 블럽 요청을 수신한 상기 서버(110)는 상기 핸들 값을 기초로 상기 오프 셋 값인 “0x0016”부터 최대 전송 크기에 해당하는 값인 “e Using a Long Attribu” 값을 상기 오프 셋 값과 함께 상기 클라이언트(120)에게 전송한다(S1040).Upon receiving the read blob request, the server 110 selects, from the offset value “0x0016” based on the handle value, the value “e Using a Long Attribu” corresponding to the maximum transmission size together with the offset value. The client 120 transmits the data to the client 120 (S1040).
상기 클라이언트(120)는 ATT_MTU-1의 크기보다 작은 데이터나 Invalid Offset Error Code를 가지는 응답을 수신하지 않은 바, 아직 추가 데이터가 존재함을 알 수 있다.Since the client 120 does not receive data smaller than the size of ATT_MTU-1 or a response having an Invalid Offset Error Code, the client 120 may recognize that there is additional data.
따라서, 상기 클라이언트(120)는 Handle 값 “0x0123 및 오프 셋 값 “0x002C”을 포함하는 읽기 블럽 요청(Read Blob Request)를 상기 서버(110)로 전송한다(S1050).Accordingly, the client 120 transmits a read blob request including a handle value “0x0123” and an offset value “0x002C” to the server 110 (S1050).
상기 요청을 받은 상기 서버(110)는 요청 받은 오프 셋 값부터 나머지 값에 해당하는 “te” 값을 상기 클라이언트(120)에게 전송하며(S1060), 상기 클라이언트(120)는 ATT_MTU-1 보다 작은 크기의 데이터가 전송되었으므로 추가데이터가 없다는 것을 인지하게 된다.The server 110 receiving the request transmits a “te” value corresponding to the remaining value from the requested offset value to the client 120 (S1060), and the client 120 has a smaller size than ATT_MTU-1. It is recognized that there is no additional data as the data of is transmitted.
따라서, 상기 클라이언트는 더 이상 상기 서버(110)로 데이터를 요청하지 않게 된다.Thus, the client no longer requests data to the server 110.
도 11은 본 명세서에서 제안하는, 서버에 저장되어 있는 데이터를 획득하기 위한 방법의 또 다른 일 예를 나타낸 흐름도이다.11 is a flowchart illustrating still another example of a method for acquiring data stored in a server, proposed in the present specification.
상기 도 11을 참조하면, 서버로부터 읽어오고자 하는 특성 값을 상기 특성 값의 UUID로 요청하는 경우, 동일한 UUID를 가지는 특성 값이 다수일 때 에러 메시지를 전송함으로써 다른 UUID를 통해 특성 값을 전송 받을 수 있다.Referring to FIG. 11, when a feature value to be read from a server is requested as the UUID of the feature value, an error message is transmitted when there are a plurality of feature values having the same UUID to receive the feature value through another UUID. Can be.
구체적으로, 상기 클라이언트가 “0x100” 부터 “0x150”사이의 Handle 값을 가지고, Characteristic UUID가 “<<Temperature>>”인 데이터를 Read By Type Request를 통해서 상기 서버(110)에게 요청할 수 있다(S1110).In detail, the client may request data having a Handle value between “0x100” and “0x150” and a characteristic UUID of “<< Temperature >>” to the server 110 through a read by type request (S1110). ).
이때, 상기 서버(110)가 아래 표 7과 같은 값을 저장하고 있는 경우, “0x100” 과 “0x150”사이에 UUID가 “<<Temperature>>” 인 데이터가 다수개 존재한다.In this case, when the server 110 stores a value as shown in Table 7 below, a plurality of pieces of data having a UUID of “<< Temperature >>” exist between “0x100” and “0x150”.
표 7
TABLE 7
Attribute Handle | Attribute Type | Attribute Value | Attribute Permissions |
0x0122 | <<Characteristic>> | 0x02, 0x0123, <<Temperature>> | |
0x0123 | <<Temperature>> | 10 ℃ | |
0x0124 | <<Characteristic>> | 0x02, 0x0125, <<Temperature>> | |
0x0125 | <<Temperature>> | 25 ℃ |
Attribute Handle | Attribute Type | Attribute Value | Attribute Permissions |
0x0122 | << Characteristic >> | 0x02, 0x0123, << Temperature >> | |
0x0123 | << Temperature >> | 10 ℃ | |
0x0124 | << Characteristic >> | 0x02, 0x0125, << Temperature >> | |
0x0125 | << Temperature >> | 25 ℃ |
따라서, 상기 서버(110)는 동일한 UUID가 다수 개 존재함을 이유로 상기 클라이언트(120)에게 에러 응답(Error Response)를 전송하게 된다(S1120). Therefore, the server 110 transmits an error response to the client 120 because there are a plurality of identical UUIDs (S1120).
상기 에러 응답의 에러코드 값은 상기 표 5의 “0x13”를 나타내며, 상기 Read By Type request의 정보를 포함하고 있다. The error code value of the error response indicates “0x13” in Table 5 and includes information of the read by type request.
상기 읽기 요청의 정보는 상기 Read By Type Request의 Opcode 및/또는 요청 받은 Handle 값을 포함할 수 있다.The read request information may include an Opcode and / or a requested Handle value of the Read By Type Request.
상기 클라이언트는 상기 Error Response를 통해 동일한 UUID를 가지는 데이터가 다수 개 존재함을 알 수 있고, 상기 UUID를 “<<Characteristic>>”으로 변경하여 다시 Read By Type Request를 전송할 수 있다(S1130). The client may know that a plurality of data having the same UUID exists through the error response, and may change the UUID to “<< Characteristic >>” and transmit a Read By Type Request again (S1130).
상기 서버(110)는 상기 정보들을 기초로 상기 표 6에 도시된 바와 같이 “0x100”과 “0x150” 사이의 Handle 값을 가지고, Characteristic의 UUID가 “<<characteristic>>”인 데이터를 찾는다.Based on the information, the server 110 finds data having a Handle value between “0x100” and “0x150” as shown in Table 6 above, and the characteristic UUID is “<< characteristic >>”.
상기 표 6에 나타난 바와 같이 위와 같은 정보를 기초로 찾을 수 있는 값은, Handle 값이 “0x0122”인 값과 “0x0124”에 해당하는 값이다. As shown in Table 6, the values that can be found based on the above information are the values corresponding to the handle values of “0x0122” and “0x0124”.
이후, 상기 서버(110)는 상기 정보를 기초로 찾은 데이터를 Read By Type Response를 통해서 상기 클라이언트(120)에게 전송하게 된다(S1140).Thereafter, the server 110 transmits the data found based on the information to the client 120 through a read by type response (S1140).
도 12는 본 명세서에서 제안하는, 서버에 저장되어 있는 데이터를 전송 받기 위한 방법의 일 예를 나타낸 흐름도이다.12 is a flowchart illustrating an example of a method for receiving data stored in a server proposed in the present specification.
상기 도 12를 참조하면, 핸들(handle) 값, 속성 타입(Attribute Type) 뿐만 아니라 속성 값(Attribute Value)를 통해서도 서버에 저장되어 있는 데이터를 전송 받을 수 있다.Referring to FIG. 12, data stored in a server may be transmitted through an attribute value as well as a handle value and an attribute type.
구체적으로, 상기 클라이언트(120)는 상기 서버(110)에 저장되어 있는 데이터를 읽어오기 위해서 Read By Type Value Request를 상기 서버에게 전송한다(S1210).Specifically, the client 120 transmits a Read By Type Value Request to the server to read the data stored in the server 110 (S1210).
상기 Read By Type Value Request는 상기 서버에 저장되어 있는 값의 UUID, Handle 뿐만 아니라 Attribute의 Value를 이용하여 데이터를 요청하기 위한 것으로 아래 표 8과 같은 데이터 포맷을 가질 수 있다.The Read By Type Value Request is for requesting data using not only the UUID and Handle of the value stored in the server but also the value of the attribute and may have a data format as shown in Table 8 below.
표 8
Table 8
Parameter | Size | Description |
Attribute Opcode | 1 | 0x21=Read Value By Type Reqeust |
Starting Handle | 2 | First Requested handle number |
Ending Handle | 2 | Last Requested handle number |
Attribute Type | 2 | 2 octet UUID of Finding Attribute Type |
Attribute Value | 0 to (ATT_MTU-7) | Attribute value to Find |
Parameter | Size | Description |
Attribute Opcode | One | 0x21 = Read Value By Type Reqeust |
Starting Handle | 2 | First Requested handle number |
Ending handle | 2 | Last Requested handle number |
Attribute Type | 2 | 2 octet UUID of Finding Attribute Type |
Attribute Value | 0 to (ATT_MTU-7) | Attribute value to find |
상기 Attribute Opcode는 아래 표 9의 “0x21”값을 가진다.The attribute opcode has a value of "0x21" shown in Table 9 below.
표 9
Table 9
Attribute PDU Name | Attribute Opcode | Parameters |
Read By Type Value Request | 0x21 | Starting Handle,Ending Handle,Attribute Type,Attribute Value |
Read By Type Value Response | 0x22 | Length, Attribute Data |
Attribute PDU Name | Attribute Opcode | Parameters |
Read By Type Value Request | 0x21 | Starting Handle, Ending Handle, Attribute Type, Attribute Value |
Read By Type Value Response | 0x22 | Length, Attribute Data |
상기 Starting handle은 찾고자 하는 속성(attribute)이 포함된 범위의 시작 handle을 나타내고, 상기 Ending Handle은 찾고자 하는 속성(Attribute)이 포함된 마지막 handle을 나타낸다.The Starting handle represents a starting handle of a range including an attribute to be found, and the Ending Handle represents a last handle including an attribute to be found.
상기 Attribute Type은 찾고자 하는 속성(attribute)의 유형(UUID로 지정 가능)을 나타내며 아래와 같은 특징을 가진다.The Attribute Type indicates the type of attribute to be searched (which can be specified by UUID) and has the following characteristics.
- UUID 형태로 지정 가능-Can be specified in UUID form
- <<Characteristic>>으로 정의 시 Characteristic의 정보를 찾음.-Characteristic information is found when defined as << Characteristic >>.
- <<Characteristic Format>>으로 정의 시 특정 유형의 Characteristic 정보를 찾음.-When defined as << Characteristic Format >>, finds specific type of characteristic information.
- <<Characteristic User Description>>으로 정의시 특정 유형의 Characteristic 정보를 찾음.-When defined as << Characteristic User Description >>, specific type of characteristic information is found.
- Attribute Value의 유형에 따라 찾고자 하는 Characteristic 정보가 달라짐.-Characteristic information to find depends on the type of attribute value.
상기 Attribute Value는 찾고자 하는 Data의 Value를 나타내며, 아래 표 10과 같은 포맷을 가진다.The attribute value indicates a value of data to be searched for and has a format as shown in Table 10 below.
표 10
Table 10
Data | Size(octet) | Description |
Value Type | 1 | Value의 유형0x01 |
Value | 2(if Value Type = 0x01)4(if Value Type = 0x02)16(if Value Type = 0x03)1 - (ATT_MTU-8)(if Value Type = 0x03)1(if Value Type = 0x04) |
Data | Size (octet) | Description |
Value type | One | Type of Value0x01 |
Value | 2 (if Value Type = 0x01) 4 (if Value Type = 0x02) 16 (if Value Type = 0x03) 1-(ATT_MTU-8) (if Value Type = 0x03) 1 (if Value Type = 0x04) |
상기 서버(110)에 상기 표 6과 같은 값이 저장되어 있고, 상기 Read By Type Value Reqeust는 Starting Handle이 “0x100”, Ending Handle이 “0x150”, Attribute Type이 “<<Characteristic>>”, Attribute Value의 Value Type이 “ 0x01”, Attribute Value의 Value가 16bit UUID인 “<<Temperature>>”을 포함할 수 있다.The value shown in Table 6 is stored in the server 110. The Read By Type Value Request has a Starting Handle of “0x100”, an Ending Handle of “0x150”, and an Attribute Type of “<< Characteristic >>”. It may include “<< Temperature >>” whose Value Type is “0x01” and the Value of Attribute Value is 16 bit UUID.
상기 서버(110)는 위의 값을 기초로 해당하는 값을 찾아, Read By Type Value Response를 통해 해당 하는 값을 상기 클라이언트(120)에게 전송할 수 있다(S1220).The server 110 may find a corresponding value based on the above value, and transmit the corresponding value to the client 120 through a read by type value response (S1220).
아래 표 11은 상기 Read By Type Value Response 포맷의 일 예를 나타낸다.Table 11 below shows an example of the Read By Type Value Response format.
표 11
Table 11
Parameter | Size(octets) | Description |
Attribute Opcode | 1 | 0x22=Read Value By Type Response |
Length | 1 | The size of each attribute handle value paire |
Attribute Data List | 2 to (ATT_MTU-2) | A list of Attribute Data |
Parameter | Size (octets) | Description |
Attribute Opcode | One | 0x22 = Read Value By Type Response |
Length | One | The size of each attribute handle value paire |
Attribute Data List | 2 to (ATT_MTU-2) | A list of Attribute Data |
상기 Opcode는 상기 표 8의 ‘0x22’ 값을 가질 수 있다. 상기 Length는 상기 Read By Type Value Response에서 제공하는 attribute data의 길이를 나타내며, 요청 메시지의 Attribute Type과 UUID 값에 의해서 결정된다.The opcode may have a value of '0x22' of Table 8. The Length indicates the length of attribute data provided by the Read By Type Value Response and is determined by the attribute type and the UUID value of the request message.
상기 Read By Type Value에 포함된 Attribute Type이 16bit UUID이므로 상기 Length는 7byte의 값을 사용할 수 있다.Since the attribute type included in the read by type value is 16 bit UUID, the length may use a value of 7 bytes.
상기 Attribute Data List는 상기 Read By Type Value Response를 통해 제공되는 attribute data의 구조를 나타낸다.The attribute data list represents a structure of attribute data provided through the read by type value response.
아래 표 12은 상기 Attribute Data List의 포맷의 일 예를 나타낸다.Table 12 below shows an example of the format of the Attribute Data List.
표 12
Table 12
Parameter | Size(octets) | Description |
Property | 1 | Characteristic Property |
Handle | 2 | Characteristic Value Handle |
Characteristic UUID | 2 or 16(or 4) | Characteristic UUID |
Parameter | Size (octets) | Description |
Property | One | Characteristic Property |
Handle | 2 | Characteristic Value Handle |
Characteristic UUID | 2 or 16 (or 4) | Characteristic UUID |
상기 Property는 해당 Characteristic의 Property 값을 나타내며, Handle은 Characteristic Value가 저장된 Handle 값을 나타낸다.The property represents a property value of a corresponding characteristic, and the handle represents a handle value in which a characteristic value is stored.
본 실시예에서, 상기 Property는 “0x02”, 상기 Handle은 “0x0123”을 나타낼 수 있다.In this embodiment, the Property may indicate “0x02” and the Handle may indicate “0x0123”.
상기 Characteristic UUDI는 Length 값에 따른 UUID값을 반환하며, 본 실시예에서는 “<<Temperature>>”를 반환할 수 있다.The Characteristic UUDI may return a UUID value according to a Length value, and in the present embodiment, may return “<< Temperature >>”.
상기 Read By Type Value Response를 수신한 상기 클라이언트(120)는 상기 서버(110)로부터 전송 받은 Handle이 “0x0123”이므로, 이후 동일한 Characteristic UUID를 가진 Characteristic이 있는지 확인하기 위하여 Read By Type Value Request를 상기 서버(110)에게 전송한다(S1230).The client 120 that has received the read by type value response has a handle received from the server 110 as “0x0123”, and thereafter, reads the read by type value request to check whether there is a characteristic having the same characteristic uuid. S110 and transmits to (110).
이때, 상기 Read By Type Value Request의 Starting Handle은 “0x124”, Ending Handle은 “0x150”, Attribute Type은 “<<Characteristic>>”, Attribute Value의 Value Type은 “ 0x01”, Attribute Value의 Value은 16bit UUID인 “<<Temperature>>”을 포함한다.At this time, the Starting Handle of the Read By Type Value Request is “0x124”, the Ending Handle is “0x150”, the Attribute Type is “<< Characteristic >>”, the Value Type of the Attribute Value is “0x01”, and the Value of the Attribute Value is 16bit It contains the UUID “<< Temperature >>”.
상기 서버(110)는 추가적인 characteristic UUID가 없는 경우 Error Response를 상기 클라이언트(120)에게 전송하며(S1240), 상기 Error Response를 전송 받은 상기 클라이언트(120)는 더 이상 검색할 필요가 없음을 알 수 있다.If there is no additional characteristic UUID, the server 110 transmits an error response to the client 120 (S1240), and the client 120 that has received the error response does not need to search any more. .
본 발명의 또 다른 실시 예로, 상기 클라이언트가 Characteristic 값으로 데이터를 찾고자 하는 경우 Attribute value의 Value Type은 “0x04”, Attribute Value의 Value는 Characteristic Value “10 ℃”로 하여 상기 Read By Type Value Request를 전송할 수 있다.According to another embodiment of the present invention, when the client wants to find data by the characteristic value, the read type value request of the attribute value is “0x04” and the attribute value is the characteristic value “10 ° C.”. Can be.
이 경우, 상기 서버(110)는 상기 Read By Type Value Request에 포함된 값을 기초로 저장된 값을 찾을 수 있으며, 찾은 값을 상기 Read By Type Value Response를 통해서 상기 클라이언트(120)에게 전송하게 된다.In this case, the server 110 may find a stored value based on the value included in the read by type value request, and transmit the found value to the client 120 through the read by type value response.
이때, 상기 Read By Type Value Response에 포함된 값은, Length가 “0x07”, Property는 “0x02”, Handle은 “0x0123”, Characteristic UUDI는 “<<Temperature>>”이다.In this case, the value included in the Read By Type Value Response has a length of “0x07”, a property of “0x02”, a handle of “0x0123”, and a characteristic UUDI of “<< Temperature >>”.
이후, 상기 클라이언트는 수신된 handle이 “0x0123”이므로, 그 이후로 동일한 Characteristic UUID를 가진 Characteristic이 있는지 확인하기 위해서 Read By Type Value Request를 전송한다.Thereafter, since the received handle is “0x0123”, the client transmits a Read By Type Value Request to check whether there is a Characteristic having the same Characteristic UUID.
만약, 추가 적인 Characteristic UUID가 없는 경우 상기 서버(110)는 Error Response를 상기 클라이언트(120)에게 전송하고, 상기 클라이언트는 더 이상 검색이 필요하지 않음을 인지하게 된다.If there is no additional characteristic UUID, the server 110 transmits an error response to the client 120, and the client recognizes that no further search is required.
도 13은 본 명세서에서 제안하는, 요청 받은 데이터가 존재하지 않는 경우 에러메시지를 전송하기 위한 방법의 일 예를 나타낸 흐름도이다.FIG. 13 is a flowchart illustrating an example of a method for transmitting an error message when the requested data does not exist.
상기 도 13을 참조하면, 클라이언트로부터 요청 받은 값에 해당하는 데이터가 존재하지 않는 경우, 서버는 클라이언트에게 에러 메시지를 전송하여 이를 알려줄 수 있다.Referring to FIG. 13, when there is no data corresponding to the value requested from the client, the server may inform the client by transmitting an error message.
구체적으로 상기 클라이언트가 상기 도 12에서 살펴본 Read By Type Value Request를 통해서, Starting Handle이 “0x100”, Ending handle이 “0x150”, Attribute Type이 “0x06”인 데이터를 요청할 수 있다(S1310).In detail, the client may request data having a Starting Handle of “0x100”, an Ending Handle of “0x150”, and an Attribute Type of “0x06” through the Read By Type Value Request described in FIG. 12 (S1310).
상기 요청을 수신한 상기 서버(110)는 상기 Read By Type Value Request에 포함된 값을 기초로 저장된 값을 찾을 수 있다. 하지만, 상기 표 6에 도시된 바와 같이 Attribute Type이 “0x06”인 데이터는 저장되어 있지 않다.The server 110 receiving the request may find a stored value based on a value included in the Read By Type Value Request. However, as shown in Table 6, data having an attribute type of “0x06” is not stored.
따라서, 상기 서버(110)는 요청 받은 데이터가 존재하지 않음을 이유로 상기 클라이언트에게 상기 Read By Type Value Request에 포함된 정보(Read By Type Request, 0x0123)를 포함하는 Error Response를 전송한다(S1320). 이때, 상기 Error Response의 Opcode는 상기 표 5의 Invalid Attribute Value Type Error Code를 나타내는 “0x14”를 포함한다.Therefore, the server 110 transmits an error response including information (Read By Type Request, 0x0123) included in the Read By Type Value Request to the client because the requested data does not exist (S1320). At this time, the Opcode of the Error Response includes “0x14” indicating an Invalid Attribute Value Type Error Code of Table 5.
도 14 및 도 15는 본 명세서에서 제안하는, 서버에 저장되어 있는 데이터의 크기 또는 길이 정보를 전송 받기 위한 방법 및 속성(Attribute)의 구조를 나타낸 도이다.14 and 15 are diagrams illustrating a structure of a method and an attribute for receiving size or length information of data stored in a server proposed in the present specification.
상기 도 14를 참조하면, 상기 클라이언트(120)는 상기 서버(110)에 저장되어 있는 데이터의 크기 또는 길이 정보를 요청하기 위해, 상기 서버(110)에게 Read Attribute Length Request를 전송할 수 있다(S1410).Referring to FIG. 14, the client 120 may transmit a read attribute length request to the server 110 to request size or length information of data stored in the server 110 (S1410). .
아래 표 13는 상기 Read Attribute Length Request의 데이터 포맷의 일 예를 나타낸다.Table 13 below shows an example of the data format of the Read Attribute Length Request.
표 13
Table 13
Parameter | Size(octets) | Description |
Attribute Opcode | 1 | 0x21=Read Attribute Length Request |
Attribute Handle | 2 | Handle Number of Attribute |
Parameter | Size (octets) | Description |
Attribute Opcode | One | 0x21 = Read Attribute Length Request |
Attribute Handle | 2 | Handle Number of Attribute |
상기 Attribute Opcode는 아래 표 13의 “0x21” 값을 가질 수 있으며, 상기 Attribute Handle은 해당 Attribute가 위치한 handle 값을 나타낸다.The attribute opcode may have a value of “0x21” shown in Table 13 below, and the attribute handle indicates a handle value where the corresponding attribute is located.
아래 표 14은 Read Attribute Length Request 및 Read Attribute Length Response의 Opcode의 일 예를 나타낸 표이다.Table 14 below shows an example of Opcodes of Read Attribute Length Request and Read Attribute Length Response.
표 14
Table 14
Attribute PDU Name | Attribute Opcode | Parameters |
Read Attribute Length Request | 0x21 | Attribute Handle |
Read Attribute Length Response | 0x22 | Attribute Length |
Attribute PDU Name | Attribute Opcode | Parameters |
Read Attribute Length Request | 0x21 | Attribute Handle |
Read Attribute Length Response | 0x22 | Attribute Length |
상기 서버(110)는 상기 클라이언트(120)로부터의 요청에 포함되어 있는 Handle 값으로 해당 Attribute를 찾을 수 있으며, 해당 Attribute의 Length 값을 Read Attribute Length Response에 포함하여 상기 클라이언트에게 전송한다(S1420).The server 110 may find a corresponding attribute by a handle value included in the request from the client 120, and transmits the length value of the corresponding attribute to the client by including the read attribute length response in operation S1420.
아래 표 15는 상기 Read Attribute Length Response의 포맷의 일 예를 나타낸 표이다.Table 15 below shows an example of a format of the Read Attribute Length Response.
표 15
Table 15
Parameter | Size(octets) | Description |
Attribute Opcode | 1 | 0x22=read Attribute Length Response |
Length | 2 | The size of each attribute value |
Parameter | Size (octets) | Description |
Attribute Opcode | One | 0x22 = read Attribute Length Response |
Length | 2 | The size of each attribute value |
상기 Attribute Opcode는 상기 표 14에서 Read Attribute Length Response를 나타내는 “0x22” 값을 포함하며, 상기 Length는 해당 Attribute의 길이를 나타낸다.The attribute opcode includes a “0x22” value indicating a read attribute length response in Table 14, and the length indicates the length of the corresponding attribute.
예를 들면, 상기 서버(110)가 아래 표 16와 같은 값을 저장하고 있고, 상기 클라이언트가 Handle 값이 “0x0123”인 Attribute의 길이를 요청한다면, 상기 서버(110)는 “0x05”값을 상기 클라이언트(120)에게 전송할 수 있다.For example, if the server 110 stores a value as shown in Table 16 below, and the client requests the length of an attribute whose Handle value is “0x0123”, the server 110 reads the value of “0x05”. May transmit to the client 120.
표 16
Table 16
Attribute Handle | Attribute Type | Attribute Value | Attribute Permissions |
0x0122 | <<Characteristic>> | 0x02, 0x0123, <<Name>> | |
0x0123 | <<Name>> | Jingu |
Attribute Handle | Attribute Type | Attribute Value | Attribute Permissions |
0x0122 | << Characteristic >> | 0x02, 0x0123, << Name >> | |
0x0123 | << Name >> | Jingu |
이와 같은 방법을 통해서 상기 클라이언트는 상기 서버로부터 특정 Attribute 값의 길이 정보를 요청할 수 있으며, 각각의 Attribute 값의 길이 정보를 기초로 서버에게 어떤 형태의 요청을 전송할 지 판단할 수 있다.Through this method, the client can request length information of a specific attribute value from the server, and can determine what type of request to send to the server based on the length information of each attribute value.
즉, 상기 Attribute 값의 길이 정보를 기초로, 상기 길이가 최대 전송 크기 보다 작은 경우 상기 서버(110)에게 읽기 요청(Read Request) 또는 쓰기 요청(Write Request)을 전송하여 해당 값을 전송 받을 수 있다. That is, on the basis of the length information of the attribute value, if the length is smaller than the maximum transmission size, the read value or write request may be transmitted to the server 110 to receive the corresponding value. .
하지만, 상기 길이가 최대 전송 크기 보다 큰 경우, 상기 서버(110)로부터 데이터를 나눠서 전송 받아야 되기 때문에 상기 서버(110)에게 읽기 블럽 요청(Read Blob Request)를 전송하여 해당 값을 전송 받을 수 있다.However, when the length is larger than the maximum transmission size, since the data must be transmitted by dividing the data from the server 110, a read blob request may be transmitted to the server 110 to receive a corresponding value.
또한, 상기 클라이언트(120)는 Attribute 값의 정확한 길이를 알고 있으므로 추가데이터의 유무 또한 정확하게 파악할 수 있는 효과가 있다.In addition, since the client 120 knows the exact length of the attribute value, the presence of additional data can also be accurately determined.
상기 도 15는 서버(110)가 속성(attribute)의 길이(Length)정보를 저장하고 있는 것을 나타낸다. 즉 상기 서버(110)는 상기 도 15에 도시된 바와 같이 Attribute Value Length에 Attribute 값에 대한 길이 값을 저장할 수 있다.FIG. 15 shows that the server 110 stores length information of an attribute. That is, the server 110 may store the length value of the attribute value in the attribute value length as shown in FIG. 15.
따라서, 상기 서버(110)는 클라이언트(120)의 요청이 있는 경우, 해당 속성(attribute) 값의 길이 값을 제공할 수 있으며, 상기 클라이언트(120)는 이를 기초로 하여 상기 서버(110)에게 읽기 요청(Read Request) 또는 읽기 블럽 요청(Read Blob Request)를 명확하게 전송할 수 있다.Accordingly, when the server 110 requests the client 120, the server 110 may provide a length value of a corresponding attribute value, and the client 120 may read the server 110 based on this. A request (Read Request) or a Read Blob Request can be clearly transmitted.
아래 표 17은 상기 도 15에 도시된 Logical Attribute Representation의 일 예를 나타낸 표이다.Table 17 below shows an example of the Logical Attribute Representation illustrated in FIG. 15.
표 17
Table 17
Attribute Handle | Attribute Type | Attribute Value | Attribute Value Length | Attribute Permissions |
0x0122 | <<Characteristic>> | 0x02,0x0123,<<Name>> | 0x05(16bit UUID일 경우)0x13(128bit UUID일 경우) | |
0x0123 | <<Name>> | Jingu | 0x05 |
Attribute Handle | Attribute Type | Attribute Value | Attribute Value Length | Attribute Permissions |
0x0122 | << Characteristic >> | 0x02,0x0123, << Name >> | 0x05 (for 16-bit UUID) 0x13 (for 128-bit UUID) | |
0x0123 | << Name >> | Jingu | 0x05 |
이와 같이 상기 서버(110)는 Attribute Representation에 Attribute Value Length 필드를 추가하여 해당 value의 길이를 관리할 수 있다.As such, the server 110 may manage the length of the corresponding value by adding an attribute value length field to the attribute representation.
또한, 상기 클라이언트(120)로부터의 요청이 있는 경우, 응답을 통해서 해당 값의 길이 정보를 상기 클라이언트(120)에게 전송할 수 있다.In addition, when there is a request from the client 120, the length information of the corresponding value may be transmitted to the client 120 through a response.
도 16은 본 명세서에서 제안하는, 서버에 저장되어 있는 데이터를 클라이언트에게 통지(Notification)하기 위한 방법의 일 예를 나타낸 흐름도이다.FIG. 16 is a flowchart illustrating an example of a method for notifying a client of data stored in a server, as proposed herein.
상기 도 16을 참조하면, 서버가 클라이언트에게 통지(notification)하고자 하는 데이터가 큰 경우, 여러 번의 통지(notification)을 통해서 상기 데이터를 전송할 수 있다.Referring to FIG. 16, when the server has a large amount of data to notify the client, the data may be transmitted through multiple notifications.
구체적으로, 상기 서버(110)가 상기 클라이언트에게 전송하고자 하는 Attribute 값의 크기가 최대 전송 크기인 ATT_MTU-3의 크기보다 큰 경우, Blob Handle Value Notification을 통해서 데이터를 전송할 수 있다.Specifically, when the size of the attribute value that the server 110 intends to transmit to the client is larger than the size of ATT_MTU-3, which is the maximum transmission size, the server 110 may transmit data through a Blob Handle Value Notification.
아래 표 18은 상기 Blob Handle Value Notification의 포맷의 일 예를 나타낸다.Table 18 below shows an example of a format of the Blob Handle Value Notification.
표 18
Table 18
Parameter | Size(octet) | Description |
Attribute Opcode | 1 | |
Attribute Handle | 2 | Handle Number of Attribute |
Part Attribute Value | 0 - ATT_MTU-5 | Part of the value of the attribute |
offset | 2 | Offset of the attribute value to be read |
Parameter | Size (octet) | Description |
Attribute Opcode | One | |
Attribute Handle | 2 | Handle Number of Attribute |
Part Attribute Value | 0-ATT_MTU-5 | Part of the value of the attribute |
offset | 2 | Offset of the attribute value to be read |
상기 Opcode는 아래 표 19의 Blob Handle Value Notification를 나타내는 “0x22” 값을 가질 수 있으며 상기 Attribute handle은 해당 attribute가 위치한 Handle 값을 나타낸다.The opcode may have a value of “0x22” indicating a blob handle value notification of Table 19 below, and the attribute handle indicates a handle value where a corresponding attribute is located.
상기 part attribute value는 상기 통지(notification)에서 전송 되는 부분적인 attribute 값을 나타낸다.The part attribute value represents a partial attribute value transmitted in the notification.
상기 off set은 실제 제공되는 attribute 값의 첫번째 값의 off set 값을 나타낸다.The off set represents the off set value of the first value of the attribute value actually provided.
표 19
Table 19
Attribute PDU Name | Attribute Opcode | Parameter |
Blob Handle Value Notification | 0x22 | Attribute Handle,Part Attribute Value,Offset |
Blob Handle Value Indication | 0x23 | Attribute Handle,Part Attribute Value,Offset |
Blob Handle Value Confirmation | 0x24 | Attribute Handle,Offset |
Attribute PDU Name | Attribute Opcode | Parameter |
Blob Handle Value Notification | 0x22 | Attribute Handle, Part Attribute Value, Offset |
Blob Handle Value Indication | 0x23 | Attribute Handle, Part Attribute Value, Offset |
Blob Handle Value Confirmation | 0x24 | Attribute Handle, Offset |
예를 들면, 상기 서버(110)가 상기 표 4의 데이터를 상기 클라이언트(120)에게 전송하는 경우, 상기 표 3의 “A very Long Device Name Using a Long Attribute” 값은 ATT_MTU-3보다 길이가 길기 때문에, 한번에 상기 클라이언트(120)에게 전송할 수 없다.For example, when the server 110 transmits the data of Table 4 to the client 120, the value of “A very Long Device Name Using a Long Attribute” of Table 3 is longer than ATT_MTU-3. Therefore, it cannot be transmitted to the client 120 at one time.
따라서, 상기 서버(110)는 상기 Blob Handle Value Notification을 통해서 ATT_MTU-3까지의 데이터를 상기 클라이언트(120)에게 전송한다(S1610).Therefore, the server 110 transmits data up to ATT_MTU-3 to the client 120 through the Blob Handle Value Notification (S1610).
이때, 상기 Attribute Handle은 “0x0123”, part attribute value는 “A Very Long Device Nam”, OFFSet은 “0x00”값을 가질 수 있다.At this time, the Attribute Handle may have a value of “0x0123”, a part attribute value of “A Very Long Device Nam”, and an OFFSet of “0x00” value.
이후, 상기 서버(110)는 상기 단계 S1610에서 다 보내지 못한 데이터를 추가적으로 상기 클라이언트(120)에게 전송하기 위해서, 다시 상기 클라이언트(120)에게 Blob Handle Value Notification를 전송한다(S1620).Thereafter, the server 110 transmits a Blob Handle Value Notification to the client 120 again in order to additionally transmit the data that has not been sent in step S1610 to the client 120 (S1620).
이때, 상기 Attribute Handle은 “0x0123”, part attribute value는 “e Using a Long Attribu”, OFFSet은 “0x0016”값을 가질 수 있다.At this time, the Attribute Handle may have a value of “0x0123”, a part attribute value of “e Using a Long Attribu”, and an OFFSet of “0x0016”.
상기 단계 S1520을 통해서도 데이터를 전부 전송하지 못한 상기 서버(110)는 나머지 데이터를 상기 클라이언트(120)에게 전송하기 위해서, 또 다시 클라이언트(120)에게 Blob Handle Value Notification를 전송한다(S1630).In step S1520, the server 110 that fails to transmit all the data transmits a Blob Handle Value Notification to the client 120 again in order to transmit the remaining data to the client 120 (S1630).
이때, 상기 Attribute Handle은 “0x0123”, part attribute value는 “te”, OFFSet은 “0x002C”값을 가질 수 있다.At this time, the attribute handle may have a value of “0x0123”, a part attribute value of “te”, and an OFFSet of “0x002C”.
상기 Blob Handle Value Notification를 전송 받은 상기 클라이언트(120)는 전송된 데이터의 양이 해당 메시지가 전송할 수 있는 최대 전송 크기가 아닌 경우, 또는 일정 시간 이상 추가 전송이 없는 경우 해당 속성(attribute)의 데이터 전송이 완료되었다고 판단할 수 있다.The client 120 receiving the Blob Handle Value Notification transmits data of the attribute when the amount of transmitted data is not the maximum transmission size that the message can transmit or when there is no further transmission for a predetermined time. It can be determined that this is completed.
도 17은 본 명세서에서 제안하는, 서버에 저장되어 있는 데이터를 클라이언트에게 통지(Notification)하기 위한 방법의 또 다른 일 예를 나타낸 흐름도이다.FIG. 17 is a flowchart illustrating another example of a method for notifying a client of data stored in a server proposed in the present specification.
상기 도 17을 참조하면 통지(Notification)을 통해서 데이터를 전송 받은 클라이언트는 추가적인 데이터가 존재한다고 판단된다면, 서버에게 추가적인 데이터의 전송 요청을 하여 상기 추가적인 데이터를 전송 받을 수 있다.Referring to FIG. 17, if it is determined that additional data exists through the notification, the client may request the server to transmit additional data and receive the additional data.
구체적으로, 상기 서버(110)가 상기 도 16에서 살펴본 Blob Handle Value Notification을 통해 데이터를 전송하는 경우, 상기 클라이언트(120)는 속성(Attribute) 값의 길이가 길어서 한번에 전송할 수 없음을 인식할 수 있다.In detail, when the server 110 transmits data through the Blob Handle Value Notification described with reference to FIG. 16, the client 120 may recognize that the attribute value is long and cannot be transmitted at once. .
이후 상기 클라이언트(120)는 상기 서버(110)에게 앞에서 살펴본 Read Blob Request를 전송하여 추가적인 데이터 요청을 할 수 있으며, 상기 서버(110)는 이에 대한 응답으로 Read Blod Response를 상기 클라이언트(120)에게 전송하여 추가적인 데이터를 전송할 수 있다.Thereafter, the client 120 may transmit the Read Blob Request described above to the server 110 to make an additional data request, and the server 110 transmits a Read Blod Response to the client 120 in response thereto. To transmit additional data.
예를 들면, 상기 서버(110)가 상기 표 4의 “A very Long Device Name Using a Long Attribute”를 전송하고자 하는 경우, 한번의 PDU를 통해서는 이를 전송할 수 없다.For example, if the server 110 wants to transmit “A very Long Device Name Using a Long Attribute” of Table 4, it cannot transmit it through one PDU.
따라서, 상기 서버(110)는 상기 Blob Handle Value Notification을 통해서 ATT_MTU-3까지의 데이터를 상기 클라이언트(120)에게 전송한다(S1710).Therefore, the server 110 transmits data up to ATT_MTU-3 to the client 120 through the Blob Handle Value Notification (S1710).
이때, 상기 Attribute Handle은 “0x0123”, part attribute value는 “A Very Long Device Nam”, OFFSet은 “0x00”값을 가질 수 있다.At this time, the Attribute Handle may have a value of “0x0123”, a part attribute value of “A Very Long Device Nam”, and an OFFSet of “0x00” value.
상기 클라이언트(120)는 상기 데이터가 상기 Blob Handle Value Notification를 통해 전송된 것을 기초로 또는 전송되거나 알고 있는 데이터 길이 정보에 기초하여 상기 서버(110)에 추가적인 데이터가 존재하는지 여부를 판단할 수 있다.The client 120 may determine whether additional data exists in the server 110 based on whether the data is transmitted through the blob handle value notification or based on data length information transmitted or known.
추가적인 데이터가 존재하는 경우 상기 클라이언트(120)는 상기 서버(110)에게 Read Blob Request를 전송한다(S1720)If additional data exists, the client 120 transmits a read blob request to the server 110 (S1720).
이후 단계 S1730 내지 단계 S1750은 상기 도 8의 상기 단계 S860 내지 단계 S880 또는 상기 도 10의 단계 S1040 내지 상기 단계 S1060과 동일하므로 설명을 생략한다.Since step S1730 to step S1750 is the same as step S860 to step S880 of FIG. 8 or step S1040 to step S1060 of FIG. 10, description thereof will be omitted.
도 18은 본 명세서에서 제안하는, 서버에 저장되어 있는 데이터를 클라이언트에게 지시(Indication)하기 위한 방법의 일 예를 나타낸 흐름도이다.FIG. 18 is a flowchart illustrating an example of a method for instructing a client of data stored in a server, proposed in the present specification.
상기 도 18은 상기 도 16과는 다르게 지시(Indication)을 통해서 상기 서버(110)에 저장되어 있는 데이터를 상기 클라이언트(120)에게 전송할 수 있으며, 이를 전송 받은 상기 클라이언트(120)는 상기 서버(110)에게 Confirmation 을 통해서 데이터가 전송되었음을 알려 줄 수 있다.Unlike FIG. 16, FIG. 18 may transmit data stored in the server 110 to the client 120 through an indication, and the client 120 receiving the data may transmit the data to the server 110. ) Can be notified that data has been sent via Confirmation.
구체적으로, 상기 서버(110)가 상기 클라이언트에게 전송하고자 하는 Attribute 값의 크기가 최대 전송 크기인 ATT_MTU-3의 크기보다 큰 경우, Blob Handle Value Indication을 통해서 데이터를 전송할 수 있다.Specifically, when the size of the attribute value that the server 110 intends to transmit to the client is larger than the size of ATT_MTU-3, which is the maximum transmission size, the server 110 may transmit data through a Blob Handle Value Indication.
상기 Blob Handle Value Indication의 포맷은 상기 Blob Handle Value Notification의 포맷과 동일하다. 이때, Attribute Opcode의 값은 상기 Blob Handle Value Indication을 나타내는 “0x23” 값을 가진다.The format of the Blob Handle Value Indication is the same as the format of the Blob Handle Value Notification. At this point, the attribute opcode has a value of “0x23” indicating the blob handle value indication.
상기 서버(110)로부터 상기 Blob Handle Value Indication을 통해 데이터를 전송 받은 상기 클라이언트(120)는 이에 대한 응답으로 Blob Handle Value Confirmation을 상기 서버(110)에 전송할 수 있다.The client 120 that has received data from the server 110 through the blob handle value indication may transmit a blob handle value confirmation to the server 110 in response.
아래 표 20은 상기 Blob Handle Value Confirmation의 포맷의 일 예를 나타낸다.Table 20 below shows an example of a format of the Blob Handle Value Confirmation.
표 20
Table 20
Parameter | Size(octet) | Description |
Attribute Opcode | 1 | |
Attribute Handle | 2 | Handle Number of Attribute |
Offset | 2 | Offset of the attribute value to be read |
Parameter | Size (octet) | Description |
Attribute Opcode | One | |
Attribute Handle | 2 | Handle Number of Attribute |
Offset | 2 | Offset of the attribute value to be read |
상기 Attribute Opcode는 상기 표 19에서 Blob Handle Value Confirmation을 나타내는 값인 “0x24”를 포함할 수 있다.The attribute opcode may include “0x24” which is a value representing Blob Handle Value Confirmation in Table 19.
예를 들면, 상기 서버(110)가 상기 표 4의 데이터를 상기 클라이언트(120)에게 전송하는 경우, 상기 표 3의 “A very Long Device Name Using a Long Attribute” 값은 ATT_MTU-3보다 길이가 길기 때문에, 한번에 상기 클라이언트(120)에게 전송할 수 없다.For example, when the server 110 transmits the data of Table 4 to the client 120, the value of “A very Long Device Name Using a Long Attribute” of Table 3 is longer than ATT_MTU-3. Therefore, it cannot be transmitted to the client 120 at one time.
따라서, 상기 서버(110)는 상기 Blob Handle Value Indication을 통해서 ATT_MTU-3까지의 데이터를 상기 클라이언트(120)에게 전송한다(S1810).Therefore, the server 110 transmits data up to ATT_MTU-3 to the client 120 through the Blob Handle Value Indication (S1810).
이때, 상기 Attribute Handle은 “0x0123”, part attribute value는 “A Very Long Device Nam”, OFFSet은 “0x00”값을 가질 수 있다.At this time, the Attribute Handle may have a value of “0x0123”, a part attribute value of “A Very Long Device Nam”, and an OFFSet of “0x00” value.
상기 서버(110)로부터 데이터를 수신한 상기 클라이언트(120)는 이에 대한 응답으로 Blob Handle Value Confirmation을 상기 서버(110)에게 전송한다(S1820).The client 120 receiving data from the server 110 transmits a blob handle value confirmation to the server 110 in response (S1820).
이때, 상기 Attribute Handle은 “0x0123”, OFFSet은 받은 데이터 양의 정보를 나타내는 “0x0016”값을 가질 수 있다.At this time, the Attribute Handle may have a value of “0x0123” and an OFFSet may have a value of “0x0016” indicating information on the received data amount.
이후, 상기 서버(110)는 상기 단계 S1710에서 다 보내지 못한 데이터를 추가적으로 상기 클라이언트(120)에게 전송하기 위해서, 다시 상기 클라이언트(120)에게 Blob Handle Value Indication을 전송한다(S1830).Thereafter, the server 110 transmits a Blob Handle Value Indication to the client 120 again in order to additionally transmit the data that has not been sent in step S1710 to the client 120 (S1830).
이때, 상기 Attribute Handle은 “0x0123”, part attribute value는 “e Using a Long Attribu”, OFFSet은 “0x0016”값을 가질 수 있다.At this time, the Attribute Handle may have a value of “0x0123”, a part attribute value of “e Using a Long Attribu”, and an OFFSet of “0x0016”.
상기 클라이언트(120)는 이에 대한 응답으로 다시 상기 Blob Handle Value Confirmation을 상기 서버(110)에게 전송한다(S1840).The client 120 transmits the Blob Handle Value Confirmation to the server 110 again in response (S1840).
이때, 상기 Attribute Handle은 “0x0123”, OFFSet은 받은 데이터 양의 정보를 나타내는 “0x002C”값을 가질 수 있다.At this time, the Attribute Handle may have a value of “0x0123” and an OFFSet may have a value of “0x002C” indicating information on the received data amount.
상기 단계 S1730을 통해서도 데이터를 전부 전송하지 못한 상기 서버(110)는 나머지 데이터를 상기 클라이언트(120)에게 전송하기 위해서, 또 다시 클라이언트(120)에게 Blob Handle Value Indication을 전송한다 (S1850).In step S1730, the server 110 that fails to transmit all the data transmits a Blob Handle Value Indication to the client 120 again in order to transmit the remaining data to the client 120 (S1850).
이때, 상기 Attribute Handle은 “0x0123”, part attribute value는 “te”, OFFSet은 “0x002C”값을 가질 수 있다.At this time, the attribute handle may have a value of “0x0123”, a part attribute value of “te”, and an OFFSet of “0x002C”.
상기 클라이언트(120)는 이에 대한 응답으로 또 다시 상기 Blob Handle Value Confirmation을 상기 서버(110)에게 전송한다(S1860).The client 120 again transmits the Blob Handle Value Confirmation to the server 110 in response (S1860).
이때, 상기 Attribute Handle은 “0x0123”, OFFSet은 받은 데이터 양의 정보를 나타내는 “0x002E”값을 가질 수 있다.At this time, the Attribute Handle may have a value of “0x0123” and an OFFSet may have a value of “0x002E” indicating information of the received data amount.
상기 Blob Handle Value Indication을 전송 받은 상기 클라이언트(120)는 전송된 데이터의 양이 해당 메시지가 전송할 수 있는 최대 전송 크기가 아닌 경우, 또는 일정 시간 이상 추가 전송이 없는 경우 해당 속성(attribute)의 데이터 전송이 완료되었다고 판단할 수 있다.The client 120 that has received the Blob Handle Value Indication transmits data of the attribute when the amount of transmitted data is not the maximum transmission size that the message can transmit or when there is no further transmission for a predetermined time. It can be determined that this is completed.
도 19는 본 명세서에서 제안하는, 서버에 저장되어 있는 데이터를 클라이언트에게 지시(Indication)하기 위한 방법의 또 다른 일 예를 나타낸 흐름도이다.FIG. 19 is a flowchart illustrating still another example of a method for instructing a client of data stored in a server, proposed in the present specification.
상기 도 19을 참조하면 지시(Indication)을 통해서 데이터를 전송 받은 클라이언트는 추가적인 데이터가 존재한다고 판단된다면, 서버에게 추가적인 데이터의 전송 요청을 하여 상기 추가적인 데이터를 전송 받을 수 있다.Referring to FIG. 19, if it is determined that additional data exists, the client that has received data through the indication may request the server to transmit additional data and receive the additional data.
구체적으로, 상기 서버(110)가 상기 도 18에서 살펴본 Blob Handle Value Indication을 통해 데이터를 전송하는 경우, 상기 클라이언트(120)는 속성(Attribute) 값의 길이가 길어서 한번에 전송할 수 없음을 인식할 수 있다.In detail, when the server 110 transmits data through the Blob Handle Value Indication described with reference to FIG. 18, the client 120 may recognize that the attribute value is long and cannot be transmitted at once. .
이후 상기 클라이언트(120)는 상기 서버(110)에게 앞에서 살펴본 Read Blob Request를 전송하여 추가적인 데이터 요청을 할 수 있으며, 상기 서버(110)는 이에 대한 응답으로 Read Blod Response를 상기 클라이언트(120)에게 전송하여 추가적인 데이터를 전송할 수 있다.Thereafter, the client 120 may transmit the Read Blob Request described above to the server 110 to make an additional data request, and the server 110 transmits a Read Blod Response to the client 120 in response thereto. To transmit additional data.
예를 들면, 상기 서버(110)가 상기 표 4의 “A very Long Device Name Using a Long Attribute”를 전송하고자 하는 경우, 한번의 메세지를 통해서는 이를 전송할 수 없다.For example, if the server 110 wants to transmit “A very Long Device Name Using a Long Attribute” of Table 4, it cannot transmit it through one message.
따라서, 상기 서버(110)는 상기 Blob Handle Value Indication을 통해서 ATT_MTU-3까지의 데이터를 상기 클라이언트(120)에게 전송한다(S1910).Accordingly, the server 110 transmits data up to ATT_MTU-3 to the client 120 through the Blob Handle Value Indication (S1910).
이때, 상기 Attribute Handle은 “0x0123”, part attribute value는 “A Very Long Device Nam”, OFFSet은 “0x00”값을 가질 수 있다.At this time, the Attribute Handle may have a value of “0x0123”, a part attribute value of “A Very Long Device Nam”, and an OFFSet of “0x00” value.
상기 서버(110)로부터 데이터를 수신한 상기 클라이언트(120)는 이에 대한 응답으로 Blob Handle Value Confirmation을 상기 서버(110)에게 전송한다(S1820).The client 120 receiving data from the server 110 transmits a blob handle value confirmation to the server 110 in response (S1820).
이때, 상기 Attribute Handle은 “0x0123”, OFFSet은 받은 데이터 양의 정보를 나타내는 “0x0016”값을 가질 수 있다.At this time, the Attribute Handle may have a value of “0x0123” and an OFFSet may have a value of “0x0016” indicating information on the received data amount.
상기 클라이언트(120)는 상기 데이터가 상기 Blob Handle Value Indication을 통해 전송된 것을 기초로, 또는 전송되거나 알고 있는 데이터 길이 정보에 기초하여 상기 서버(110)에 추가적인 데이터가 존재하는지 여부를 판단할 수 있다.The client 120 may determine whether additional data exists in the server 110 based on the data transmitted through the Blob Handle Value Indication or based on data length information transmitted or known. .
추가적인 데이터가 존재하는 경우 상기 클라이언트(120)는 상기 서버(110)에게 Read Blob Request를 전송한다(S1920)If additional data exists, the client 120 transmits a read blob request to the server 110 (S1920).
이후 단계 S1940 내지 단계 S1960은 상기 도 8의 상기 단계 S860 내지 단계 S880 또는 상기 도 10의 단계 S1040 내지 상기 단계 S1060과 동일하므로 설명을 생략한다.Since step S1940 to step S1960 are the same as step S860 to step S880 of FIG. 8 or step S1040 to step S1060 of FIG. 10, description thereof is omitted.
도 20 내지 도 23는 본 명세서에서 제안하는, 서버에 데이터를 저장할 때 발생하는 에러의 일 예를 나타낸 흐름도이다.20 to 23 are flowcharts illustrating an example of an error that occurs when data is stored in a server proposed in the present specification.
상기 도 20 내지 상기 도 23를 참조하면, 상기 클라이언트(120)가 상기 서버(110)에 데이터를 저장하는 경우, 데이터의 크기, 유형을 잘 못 지정함으로써 에러가 발생할 수 있다.20 to 23, when the client 120 stores data in the server 110, an error may occur by incorrectly specifying the size and type of the data.
구체적으로 상기 클라이언트(120)는 상기 서버(110)에 데이터를 저장하고자 하는 경우, 쓰기 요청(Write Request)를 서버(110)에 전송하여 저장할 수 있다.In detail, when the client 120 wants to store data in the server 110, the client 120 may transmit a write request to the server 110 and store the data.
이때, 상기 쓰기 요청(Write Request)은 저장하고자 하는 데이터 값 및 그에 해당하는 핸들(Handle) 값을 포함하고 있다.In this case, the write request includes a data value to be stored and a handle value corresponding thereto.
하지만, 상기 쓰기 요청을 통해 저장하고자 하는 값의 유형, 형태, 크기, 범위가 맞지 않는 경우 상기 서버(110)는 상기 클라이언트에게 에러 응답을 전송한다.However, if the type, shape, size, and range of values to be stored through the write request do not match, the server 110 transmits an error response to the client.
상기 에러 응답은 상기 표 5와 동일한 포맷을 가지고 있다.The error response has the same format as Table 5 above.
아래 표 21은 상기 에러 응답의 에러 코드 값의 일 예를 나타낸 표이다.Table 21 below shows an example of an error code value of the error response.
표 21
Table 21
Name | Error Code | Description |
Invalid Handle | 0x01 | The Attribute Handle given was not valid on this server |
Read Not Permitted | 0x02 | The attribute cannot be read |
Write Not Permitted | 0x03 | The attribute cannot be written |
Invalid PDU | 0x04 | The attribute PDU was invalid |
Insufficient Authentication | 0x05 | The attribute requires authentication before it can be read or written |
Request Not Supported | 0x06 | Attribute server does not support the request received from the client |
Invalid Offset | 0x07 | Offset specified was past the end of the attribute |
Insufficient Authorization | 0x08 | The attribute requires authorization before it can be read or write |
Prepare Queue Full | 0x09 | Too many prepare writes have been queued |
Attribute Not Found | 0x0A | No attribute found within the given attribute handle range |
Attribute Not Long | 0x0B | The attribute cannot be read or written using the Read Blob Request |
Insufficient Encryption Key Size | 0x0C | The Encryption Key Size Used for encryption this link is insufficient |
Invalid Attribute Value Length | 0x0D | The attribute value length is invalid for the operation |
Unlikely Error | 0x0E | The attribute request that was requested has encountered an error that was unlikely, and therefore could not be completed as requested |
Insufficient Encryption | 0x0F | The attribute requires Encryption before it can be read or written |
Unsupported Group Type | 0x10 | The attribute type is not a supported grouping attribute as defined by a higher layer specification |
Insufficient Resources | 0x11 | In sufficient Resources to complete the request |
Invalid Format(Data Type) | 0x12 | The format(type) of attribute value is incorrect. |
Invalid Value | 0x13 | The value of attribute is incorrect |
Invalid Value due to more than Maximum | 0x14 | The value of attribute is incorrect because it exceeds the maximum value |
Invalid Value due to more than Minimum | 0x15 | The value of attribute is incorrect because it is less or fewer than the minimum value |
Reserved | 0x16 - 0x7F | The attribute requires authorization before it can be read or write |
Application Error | 0x80 - 0x9F | Too many prepare writes have been queued |
Reserved | 0xA0 - 0xDF | No attribute found within the given attribute handle range |
Common Profile and Service Error Codes | 0xE0 - 0xFF |
Name | Error Code | Description |
Invalid Handle | 0x01 | The Attribute Handle given was not valid on this server |
Read Not Permitted | 0x02 | The attribute cannot be read |
Write Not Permitted | 0x03 | The attribute cannot be written |
Invalid PDU | 0x04 | The attribute PDU was invalid |
Insufficient Authentication | 0x05 | The attribute requires authentication before it can be read or written |
Request Not Supported | 0x06 | Attribute server does not support the request received from the client |
Invalid Offset | 0x07 | Offset specified was past the end of the attribute |
Insufficient Authorization | 0x08 | The attribute requires authorization before it can be read or write |
Prepare Queue Full | 0x09 | Too many prepare writes have been queued |
Attribute Not Found | 0x0A | No attribute found within the given attribute handle range |
Attribute Not Long | 0x0B | The attribute cannot be read or written using the Read Blob Request |
Insufficient Encryption Key Size | 0x0C | The Encryption Key Size Used for encryption this link is insufficient |
Invalid Attribute Value Length | 0x0D | The attribute value length is invalid for the operation |
Unlikely Error | 0x0E | The attribute request that was requested has encountered an error that was unlikely, and therefore could not be completed as requested |
Insufficient Encryption | 0x0F | The attribute requires Encryption before it can be read or written |
Unsupported Group Type | 0x10 | The attribute type is not a supported grouping attribute as defined by a higher layer specification |
Insufficient Resources | 0x11 | In sufficient Resources to complete the request |
Invalid Format (Data Type) | 0x12 | The format (type) of attribute value is incorrect. |
Invalid Value | 0x13 | The value of attribute is incorrect |
Invalid Value due to more than Maximum | 0x14 | The value of attribute is incorrect because it exceeds the maximum value |
Invalid Value due to more than Minimum | 0x15 | The value of attribute is incorrect because it is less or fewer than the minimum value |
Reserved | 0x16-0x7F | The attribute requires authorization before it can be read or write |
Application Error | 0x80-0x9F | Too many prepare writes have been queued |
Reserved | 0xA0-0xDF | No attribute found within the given attribute handle range |
Common Profile and Service Error Codes | 0xE0-0xFF |
상기 도 20은 값의 유형 또는 형태가 맞지 않는 경우로, 상기 클라이언트(120)는 상기 쓰기 요청을 통해 핸들(Handle) 값이 “0x0123”인 위치에 “0x033” 값(integer)의 저장을 요청한다(S2010).20 illustrates a case in which a value or type of a value does not match, the client 120 requests to store an “0x033” value at a position where a handle value is “0x0123” through the write request. (S2010).
하지만, 상기 핸들 값에 위치한 attribute의 값에는 “string”의 데이터를 저장하는 경우, 상기 서버(110)는 저장하고자 하는 값의 유형 또는 형태가 맞지 않음을 이유로 상기 클라이언트(120)에게 에러 응답을 전송한다(S2020).However, when storing the data of “string” in the value of the attribute located in the handle value, the server 110 transmits an error response to the client 120 because the type or form of the value to be stored does not match. (S2020).
이때, 상기 에러 응답은 상기 에러 코드 “0x12” 및/또는 상기 읽기 요청(Read request)의 정보를 포함할 수 있다. In this case, the error response may include the error code “0x12” and / or information of the read request.
상기 읽기 요청의 정보는 상기 읽기 요청의 Opcode 및/또는 요청 Handle 값을 포함할 수 있다.The read request information may include an Opcode and / or request Handle value of the read request.
상기 도 21은 값의 범위가 맞지 않는 경우로, 상기 클라이언트(120)는 상기 쓰기 요청을 통해 핸들(Handle) 값이 “0x0123”인 위치에 상기 “0x033” 값(integer)의 저장을 요청한다(S2110).21 is a case where the value range is not correct, the client 120 requests the storage of the value “0x033” (integer) at the position where the handle value is “0x0123” through the write request ( S2110).
하지만, 상기 핸들 값에 위치한 attribute의 값에는 “string”의 데이터를 저장하는 경우, 상기 서버(110)는 저장하고자 하는 값의 범위가 맞지 않음을 이유로 상기 클라이언트(120)에게 에러 응답을 전송한다(S2120).However, when storing the data of "string" in the value of the attribute located in the handle value, the server 110 transmits an error response to the client 120 because the range of the value to be stored is not correct ( S2120).
이때, 상기 에러 응답은 상기 에러 코드 “0x13” 및/또는 상기 읽기 요청(Read request)의 정보를 포함할 수 있다. In this case, the error response may include the error code “0x13” and / or information of the read request.
상기 읽기 요청의 정보는 상기 읽기 요청의 Opcode 및/또는 요청 Handle 값을 포함할 수 있다.The read request information may include an Opcode and / or request Handle value of the read request.
상기 도 22은 값의 저장할 수 있는 최대 값을 초과한 경우로, 상기 클라이언트(120)는 상기 쓰기 요청을 통해 핸들(Handle) 값이 “0x0123”인 위치에 “0x78” 값(integer, 10진수로 120)의 저장을 요청한다(S2210).FIG. 22 illustrates a case in which a maximum value that can be stored is exceeded. The client 120 transmits a value of “0x78” (integer, decimal) to a position where a handle value is “0x0123” through the write request. In step S2210, a request is made to store the information.
하지만, 상기 핸들 값에 위치한 attribute의 값이 아래 표 22와 같이 물의 온도를 저장할 경우, 범위 값은 0℃ - 100℃이다.However, if the value of the attribute located in the handle value stores the water temperature as shown in Table 22 below, the range value is 0 ℃-100 ℃.
따라서, 상기 요청 값은 저장할 수 있는 최대 값을 초과 하였는바, 이를 이유로 상기 클라이언트(120)에게 에러 응답을 전송한다(S2220).Therefore, the request value exceeds the maximum value that can be stored. For this reason, an error response is transmitted to the client 120 (S2220).
표 22
Table 22
Attribute Handle | Attribute Type | Attribute Value | Attribute Permission |
0x0122 | <<Characteristic>> | 0x02, 0x0123, <<Temperature>> | |
0x0123 | <<Temperature>> | 10℃ |
Attribute Handle | Attribute Type | Attribute Value | Attribute Permission |
0x0122 | << Characteristic >> | 0x02, 0x0123, << Temperature >> | |
0x0123 | << Temperature >> | 10 ℃ |
이때, 상기 에러 응답은 상기 에러 코드 “0x14” 및/또는 상기 읽기 요청(Read request)의 정보를 포함할 수 있다. In this case, the error response may include the error code “0x14” and / or information of the read request.
상기 읽기 요청의 정보는 상기 읽기 요청의 Opcode 및/또는 요청 Handle 값을 포함할 수 있다.The read request information may include an Opcode and / or request Handle value of the read request.
상기 도 23은 값의 저장할 수 있는 최소 값을 초과한 경우로, 상기 클라이언트(120)는 상기 쓰기 요청을 통해 핸들(Handle) 값이 “0x0123”인 위치에 “-0x20” 값(integer, 10진수로 -32)의 저장을 요청한다(S2310).FIG. 23 illustrates a case where a minimum value that can be stored is exceeded, and the client 120 transmits a value of "-0x20" (integer, decimal) to a position where a handle value is "0x0123" through the write request. Request storage of -32) (S2310).
하지만, 상기 핸들 값에 위치한 attribute의 값이 상기 표 22와 같이 물의 온도를 저장할 경우, 범위 값은 0℃ - 100℃이다.However, if the value of the attribute located in the handle value stores the water temperature as shown in Table 22, the range value is 0 ℃-100 ℃.
따라서, 상기 요청 값은 저장할 수 있는 최소 값인 0을 초과 하였는바, 이를 이유로 상기 클라이언트(120)에게 에러 응답을 전송한다(S2320).Therefore, since the request value exceeds 0, which is the minimum value that can be stored, an error response is transmitted to the client 120 (S2320).
이때, 상기 에러 응답은 상기 에러 코드 “0x15” 및/또는 상기 읽기 요청(Read request)의 정보를 포함할 수 있다. In this case, the error response may include the error code “0x15” and / or information of the read request.
상기 읽기 요청의 정보는 상기 읽기 요청의 Opcode 및/또는 요청 Handle 값을 포함할 수 있다.The read request information may include an Opcode and / or request Handle value of the read request.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the technical spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited by the drawings.
본 명세서는 블루투스 데이터 송수신에 관한 것으로서, 특히, 블루투스 LE(Low Energy) 기술을 이용하여 데이터를 송수신 하는 방법 및 장치에 관한 것이다.The present specification relates to Bluetooth data transmission and reception, and more particularly, to a method and apparatus for transmitting and receiving data using Bluetooth Low Energy (LE) technology.
Claims (14)
- 무선 통신 시스템에서 블루투스 LE(Low Energy)를 통해서 데이터를 송수신하는 방법에 있어서, 제 1 디바이스에 의해 수행되는 방법은,In the method for transmitting and receiving data via Bluetooth Low Energy (LE) in a wireless communication system, the method performed by the first device,제 2 디바이스에게 데이터 요청을 위한 제 1 요청 메시지를 전송하는 단계;Sending a first request message for a data request to a second device;상기 제 1 요청 메시지에 대한 응답으로 데이터를 포함한 제 1 응답 메시지를 수신하는 단계;Receiving a first response message including data in response to the first request message;만약, 상기 데이터가 최대 데이터 전송 크기와 같은 경우, 추가 데이터 요청을 위한 제 2 요청 메시지를 전송하는 단계; 및If the data is equal to a maximum data transmission size, transmitting a second request message for an additional data request; And상기 제 2 요청 메시지에 대한 응답으로 상기 추가 데이터를 포함한 제 2 응답 메시지를 수신하는 단계를 포함하되,Receiving a second response message including the additional data in response to the second request message,상기 제 1 요청 메시지 또는 상기 제 2 요청메시지 각각은 상기 데이터의 ID 정보, 인덱스(Index) 정보 또는 인덱스(Index) 범위 정보 중 적어도 어느 하나를 포함하고,Each of the first request message or the second request message includes at least one of ID information, index information, and index range information of the data.상기 제 1 응답 메시지 또는 상기 제 2 응답 메시지 각각은 길이 정보 또는 ID 정보 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 방법.Wherein each of the first response message or the second response message includes at least one of length information and ID information.
- 제 1 항에 있어서,The method of claim 1,상기 데이터는 길이 정보인 것을 특징으로 하는 방법.And the data is length information.
- 제 1 항에 있어서,The method of claim 1,상기 제 1 요청 메시지 또는 상기 제 2 요청 메시지 각각은 오프 셋(offset) 값을 포함하며,Each of the first request message or the second request message includes an offset value,상기 오프셋(offset) 값은 데이터 전송 시작 위치를 나타내는 것을 특징으로 하는 방법.And the offset value indicates a data transmission start position.
- 제 1 항에 있어서, The method of claim 1,상기 데이터가 다수개인 경우, 상기 제 2 디바이스로부터 에러 메시지를 수신하는 단계;If the data is plural, receiving an error message from the second device;상기 데이터의 속성 값(Attribute Value)를 포함하는 제 3 요청 메시지를 전송하는 단계; 및 Transmitting a third request message including an attribute value of the data; And상기 제 3 요청 메시지에 대한 응답으로 상기 데이터를 포함하는 제 3 응답 메지시를 수신하는 단계를 더 포함하는 것을 특징으로 하는 방법.Receiving a third response message including the data in response to the third request message.
- 무선 통신 시스템에서 블루투스 LE(Low Energy)를 통해서 데이터를 송수신하는 방법에 있어서, 제 1 디바이스에 의해 수행되는 방법은,In the method for transmitting and receiving data via Bluetooth Low Energy (LE) in a wireless communication system, the method performed by the first device,제 2 디바이스에게 데이터 전송을 위한 요청 메시지를 전송하는 단계;Sending a request message for data transmission to a second device;상기 제 2 디바이스로부터 상기 요청 메시지에 대한 응답으로 에러 메시지를 수신하는 단계;Receiving an error message in response to the request message from the second device;상기 제 2 디바이스에게 데이터의 분할 전송 요청을 위한 제 1 분할 전송 요청 메시지를 전송하는 단계;Transmitting a first split transfer request message for split transfer request of data to the second device;상기 분할 전송 요청 메시지에 대한 응답으로 상기 데이터의 일부가 포함된 제 1 분할 전송 응답 메시지를 수신하는 단계;Receiving a first split transmission response message including a part of the data in response to the split transmission request message;상기 수신된 데이터의 일부가 최대 데이터 전송 크기와 같은 경우, 추가 데이터 요청을 위한 제 2 분할 전송 요청 메시지를 전송하는 단계; 및If a part of the received data is equal to a maximum data transmission size, transmitting a second split transmission request message for an additional data request; And상기 제 2 분할 전송 요청 메시지에 대한 응답으로 상기 추가 데이터를 포함한 제 2 분할 전송 응답 메시지를 수신하는 단계를 포함하되,Receiving a second split transmission response message including the additional data in response to the second split transmission request message;상기 제 1 분할 전송 요청 메시지 또는 상기 제 2 요청메시지 각각은 상기 데이터의 ID 정보, 인덱스(Index) 정보 또는 인덱스(Index) 범위 정보 중 적어도 어느 하나를 포함하고,Each of the first split transmission request message or the second request message includes at least one of ID information, index information, and index range information of the data.상기 제 1 분할 전송 응답 메시지 또는 상기 제 2 분할 전송 응답 메시지 각각은 길이 정보 또는 ID 정보 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 방법.Wherein each of the first split transmission response message or the second split transmission response message includes at least one of length information and ID information.
- 제 5 항에 있어서,The method of claim 5,상기 제 1 분할 전송 요청 메시지 또는 상기 제 2 분할 전송 요청 메시지 각각은 오프 셋(offset) 값을 포함하며,Each of the first divided transmission request message or the second divided transmission request message includes an offset value,상기 오프셋(offset) 값은 데이터 전송 시작 위치를 나타내는 것을 특징으로 하는 방법.And the offset value indicates a data transmission start position.
- 무선 통신 시스템에서 블루투스 LE(Low Energy)를 통해서 데이터를 송수신하는 방법에 있어서, 제 1 디바이스에 의해 수행되는 방법은,In the method for transmitting and receiving data via Bluetooth Low Energy (LE) in a wireless communication system, the method performed by the first device,상기 제 2 디바이스에게 특정 데이터의 저장을 요청하는 요청 메시지를 전송하는 단계; 및Transmitting a request message requesting storage of specific data to the second device; And상기 요청 메시지에 대한 응답으로 에러 메시지를 수신하는 단계를 포함하되,Receiving an error message in response to the request message;상기 에러 메시지는, 상기 특정 데이터가 데이터 형식, 유형, 또는 범위에 맞지 않음을 나타내고,The error message indicates that the specific data does not fit the data format, type, or range,상기 요청 메시지는 저장 위치의 인덱스 정보를 포함하는 것을 특징으로 하는 방법.And the request message includes index information of a storage location.
- 무선 통신 시스템에서 블루투스 LE(Low Energy)를 통해서 데이터를 송수신하는 방법에 있어서, 제1 디바이스는,In the method for transmitting and receiving data through Bluetooth Low Energy (LE) in a wireless communication system, the first device,외부와 유선 및/또는 무선으로 신호를 송수신하기 위한 통신부; 및Communication unit for transmitting and receiving a signal to the outside wired and / or wireless; And상기 통신부와 기능적으로 연결되는 제어부를 포함하되, 상기 제어부는,A control unit that is functionally connected to the communication unit, wherein the control unit includes:제 2 디바이스에게 데이터 요청을 위한 제 1 요청 메시지를 전송하고,Send a first request message for a data request to a second device,상기 제 1 요청 메시지에 대한 응답으로 데이터를 포함한 제 1 응답 메시지를 수신하며,Receiving a first response message including data in response to the first request message,만약, 상기 데이터가 최대 데이터 전송 크기와 같은 경우, 추가 데이터 요청을 위한 제 2 요청 메시지를 전송하고,If the data is equal to the maximum data transmission size, send a second request message for additional data request,상기 제 2 요청 메시지에 대한 응답으로 상기 추가 데이터를 포함한 제 2 응답 메시지를 수신하도록 제어하되,Control to receive a second response message including the additional data in response to the second request message;상기 제 1 요청 메시지 또는 상기 제 2 요청메시지 각각은 상기 데이터의 ID 정보, 인덱스(Index) 정보 또는 인덱스(Index) 범위 정보 중 적어도 어느 하나를 포함하고,Each of the first request message or the second request message includes at least one of ID information, index information, and index range information of the data.상기 제 1 응답 메시지 또는 상기 제 2 응답 메시지 각각은 길이 정보 또는 ID 정보 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 장치.Each of the first response message or the second response message includes at least one of length information and ID information.
- 제 8 항에 있어서,The method of claim 8,상기 데이터는, 길이 정보인 것을 특징으로 하는 장치.And said data is length information.
- 제 8 항에 있어서,The method of claim 8,상기 제 1 요청 메시지 또는 상기 제 2 요청 메시지 각각은 오프 셋(offset) 값을 포함하며,Each of the first request message or the second request message includes an offset value,상기 오프셋(offset) 값은 데이터 전송 시작 위치를 나타내는 것을 특징으로 하는 장치.And the offset value indicates a data transmission start position.
- 제 8 항에 있어서, 상기 제어부는,The method of claim 8, wherein the control unit,상기 데이터가 다수개인 경우 상기 제 2 디바이스로부터 에러 메시지를 수신하고,Receiving an error message from the second device when the data is large,상기 데이터의 속성 값(Attribute Value)를 포함하는 제 3 요청 메시지를 전송하며,Transmit a third request message including an attribute value of the data,상기 제 3 요청 메시지에 대한 응답으로 상기 데이터를 포함하는 제 3 응답 메지시를 수신하도록 제어하는 것을 특징으로 하는 장치.And control to receive a third response message including the data in response to the third request message.
- 무선 통신 시스템에서 블루투스 LE(Low Energy)를 통해서 데이터를 송수신하는 방법에 있어서, 제1 디바이스는,In the method for transmitting and receiving data through Bluetooth Low Energy (LE) in a wireless communication system, the first device,외부와 유선 및/또는 무선으로 신호를 송수신하기 위한 통신부; 및Communication unit for transmitting and receiving a signal to the outside wired and / or wireless; And상기 통신부와 기능적으로 연결되는 제어부를 포함하되, 상기 제어부는,A control unit that is functionally connected to the communication unit, wherein the control unit includes:제 2 디바이스에게 데이터 전송을 위한 요청 메시지를 전송하고,Send a request message for data transmission to the second device,상기 제 2 디바이스로부터 상기 요청 메시지에 대한 응답으로 에러 메시지를 수신하며,Receive an error message in response to the request message from the second device,상기 제 2 디바이스에게 데이터의 분할 전송 요청을 위한 제 1 분할 전송 요청 메시지를 전송하고,Send a first split transfer request message for split transfer request of data to the second device;상기 분할 전송 요청 메시지에 대한 응답으로 상기 데이터의 일부가 포함된 제 1 분할 전송 응답 메시지를 수신하며,Receiving a first split transmission response message including a part of the data in response to the split transmission request message,상기 수신된 데이터의 일부가 최대 데이터 전송 크기와 같은 경우, 추가 데이터 요청을 위한 제 2 분할 전송 요청 메시지를 전송하고,If part of the received data is equal to the maximum data transmission size, send a second split transmission request message for an additional data request,상기 제 2 분할 전송 요청 메시지에 대한 응답으로 상기 추가 데이터를 포함한 제 2 분할 전송 응답 메시지를 수신하도록 제어하되,Control to receive a second split transmission response message including the additional data in response to the second split transmission request message;상기 제 1 분할 전송 요청 메시지 또는 상기 제 2 요청메시지 각각은 상기 데이터의 ID 정보, 인덱스(Index) 정보 또는 인덱스(Index) 범위 정보 중 적어도 어느 하나를 포함하고,Each of the first split transmission request message or the second request message includes at least one of ID information, index information, and index range information of the data.상기 제 1 분할 전송 응답 메시지 또는 상기 제 2 분할 전송 응답 메시지 각각은 길이 정보 또는 ID 정보 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 장치.Each of the first split transmission response message or the second split transmission response message includes at least one of length information and ID information.
- 제 12 항에 있어서,The method of claim 12,상기 제 1 분할 전송 요청 메시지, 또는 상기 제 2 분할 전송 요청 메시지 각각은 오프 셋(offset) 값을 포함하며,Each of the first split transfer request message or the second split transfer request message includes an offset value,상기 오프셋(offset) 값은 데이터 전송 시작 위치를 나타내는 것을 특징으로 하는 장치.And the offset value indicates a data transmission start position.
- 무선 통신 시스템에서 블루투스 LE(Low Energy)를 통해서 데이터를 송수신하는 방법에 있어서, 제1 디바이스는,In the method for transmitting and receiving data through Bluetooth Low Energy (LE) in a wireless communication system, the first device,외부와 유선 및/또는 무선으로 신호를 송수신하기 위한 통신부; 및Communication unit for transmitting and receiving a signal to the outside wired and / or wireless; And상기 통신부와 기능적으로 연결되는 제어부를 포함하되, 상기 제어부는,A control unit that is functionally connected to the communication unit, wherein the control unit includes:상기 제 2 디바이스에게 특정 데이터의 저장을 요청하는 요청 메시지를 전송하고,Send a request message requesting storage of specific data to the second device,상기 요청 메시지에 대한 응답으로 에러 메시지를 수신하도록 제어하되,Control to receive an error message in response to the request message,상기 에러 메시지는, 상기 특정 데이터가 데이터 형식, 유형, 또는 범위에 맞지 않음을 나타내고,The error message indicates that the specific data does not fit the data format, type, or range,상기 요청 메시지는 저장 위치의 인덱스 정보를 포함하는 것을 특징으로 하는 장치.And wherein the request message includes index information of a storage location.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/305,820 US10142767B2 (en) | 2014-04-21 | 2015-04-21 | Method and apparatus for transmitting data using Bluetooth low energy in wireless communication system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461982290P | 2014-04-21 | 2014-04-21 | |
US61/982,290 | 2014-04-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015163680A1 true WO2015163680A1 (en) | 2015-10-29 |
Family
ID=54332771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2015/003989 WO2015163680A1 (en) | 2014-04-21 | 2015-04-21 | Method and apparatus for transmitting and receiving data using bluetooth low-power energy technique in wireless communication system |
Country Status (2)
Country | Link |
---|---|
US (1) | US10142767B2 (en) |
WO (1) | WO2015163680A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018009040A1 (en) * | 2016-07-08 | 2018-01-11 | 엘지전자(주) | Method and device for transmitting /receiving data by using bluetooth technology |
WO2018135926A1 (en) * | 2017-01-23 | 2018-07-26 | 엘지전자(주) | Bluetooth communication method and apparatus |
KR20180109680A (en) * | 2017-03-27 | 2018-10-08 | 가시오게산키 가부시키가이샤 | Communication device, communication method, and program stored in storage medium |
CN112770306A (en) * | 2020-12-22 | 2021-05-07 | 努比亚技术有限公司 | Data transmission method based on low-power Bluetooth, terminal and computer readable medium |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9462469B2 (en) * | 2014-04-21 | 2016-10-04 | Arm Limited | Systems and methods for short range wireless data transfer |
KR102245194B1 (en) * | 2014-10-08 | 2021-04-28 | 삼성전자주식회사 | Electronic device and method for recognition electronic device located in a short distance |
WO2016114763A1 (en) * | 2015-01-13 | 2016-07-21 | Hewlett Packard Enterprise Development Lp | Data center configuration |
US9756455B2 (en) * | 2015-05-28 | 2017-09-05 | Sony Corporation | Terminal and method for audio data transmission |
JP6919262B2 (en) * | 2017-03-27 | 2021-08-18 | カシオ計算機株式会社 | Communication devices, electronic clocks, communication methods, and programs |
CN108492101A (en) * | 2018-01-31 | 2018-09-04 | 阿里巴巴集团控股有限公司 | A kind of method, apparatus and equipment of paying riding fee |
CN110475233B (en) * | 2018-05-09 | 2021-09-10 | 腾讯科技(深圳)有限公司 | Resource transfer method, device, computer equipment and storage medium |
JP7183671B2 (en) * | 2018-10-02 | 2022-12-06 | カシオ計算機株式会社 | Wireless communication device, wireless communication method, and program |
WO2020096412A1 (en) * | 2018-11-08 | 2020-05-14 | 엘지전자 주식회사 | Method and apparatus for receiving audio data by using bluetooth technology |
GB201909359D0 (en) * | 2019-06-28 | 2019-08-14 | Rlt Ip Ltd | Messaging protocol to enable large data transmission in a robust and reliable manner via bluetooth low energy wireless network while enabling a remote |
JP2022155052A (en) * | 2021-03-30 | 2022-10-13 | キヤノン株式会社 | Communication device, control method, and program |
CN115412893B (en) * | 2022-10-19 | 2023-04-21 | 成都锐成芯微科技股份有限公司 | Low-power-consumption Bluetooth attribute access method and low-power-consumption Bluetooth system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010239181A (en) * | 2009-03-30 | 2010-10-21 | Kddi Corp | Bluetooth communication method and system |
US20120063449A1 (en) * | 2010-09-10 | 2012-03-15 | International Business Machines Corporation | Configurable network socket aggregation to enable segmentation offload |
KR20140042534A (en) * | 2012-09-28 | 2014-04-07 | 삼성전자주식회사 | Operation method for low energy blue-tooth communication in terminal and device thereof |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6850499B2 (en) * | 2001-01-05 | 2005-02-01 | Qualcomm Incorporated | Method and apparatus for forward power control in a communication system |
US7899393B2 (en) * | 2004-09-30 | 2011-03-01 | Nxp B.V. | Method and device for fast near-field communication |
JP4550929B2 (en) * | 2009-01-16 | 2010-09-22 | 株式会社東芝 | Electronic device and communication status notification method |
CN102202412B (en) * | 2010-06-03 | 2014-03-12 | 开曼群岛威睿电通股份有限公司 | Mobile communication device and transmission method of machine type communication data |
JP5087666B2 (en) * | 2010-09-30 | 2012-12-05 | 株式会社東芝 | Information processing apparatus and communication control method |
US9098610B2 (en) * | 2011-12-22 | 2015-08-04 | Greatbatch Ltd. | Communication for implantable medical devices |
US9609614B2 (en) * | 2012-05-30 | 2017-03-28 | Comcast Cable Communications, Llc | Access node locations in a network |
KR20140031468A (en) * | 2012-08-31 | 2014-03-13 | 주식회사 팬택 | Mobile device and method for sharing contents for the mobile device |
CN104426583B (en) * | 2013-08-29 | 2018-05-29 | 华为终端(东莞)有限公司 | Data transmission method, device and near-field communication equipment based on near-field communication |
EP2950590A1 (en) * | 2014-05-26 | 2015-12-02 | Nokia Technologies OY | Device selection according to proximity |
US20160050551A1 (en) * | 2014-08-15 | 2016-02-18 | Emily Qi | Methods, systems, and devices for enabling multiple radio assited discovery |
US20160184635A1 (en) * | 2014-12-24 | 2016-06-30 | Lg Electronics Inc. | Method and apparatus for transmitting and receiving data using bluetooth |
-
2015
- 2015-04-21 US US15/305,820 patent/US10142767B2/en active Active
- 2015-04-21 WO PCT/KR2015/003989 patent/WO2015163680A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010239181A (en) * | 2009-03-30 | 2010-10-21 | Kddi Corp | Bluetooth communication method and system |
US20120063449A1 (en) * | 2010-09-10 | 2012-03-15 | International Business Machines Corporation | Configurable network socket aggregation to enable segmentation offload |
KR20140042534A (en) * | 2012-09-28 | 2014-04-07 | 삼성전자주식회사 | Operation method for low energy blue-tooth communication in terminal and device thereof |
Non-Patent Citations (2)
Title |
---|
"ATTRIBUTE PROFILE (ATT) AND GENERIC ATTRIBUTE PROFILE (GATT", 20 April 2012 (2012-04-20), XP055233512, Retrieved from the Internet <URL:https://code.google.com/p/sensor-project/source/browse/trunk/BLEQuickStartKit_v1/BLEQuickStartKit/BluetoothLowEnergyFundamentals/GATT_Fundamentals.pdf?spec=svn2&r=2> [retrieved on 20120806] * |
"BLUETOOTH 4.0 (BLE) SINGLE MODE STACK 1.0 API DOCUMENTATION", 24 February 2012 (2012-02-24), XP055233508, Retrieved from the Internet <URL:https://github.com/mccartyn/BluMidi/blob/ba8336508f6a1f57f20a7da732a6d799d00a5e14/Bluegiga_BLE112BLE_Stack_API_reference_v1.3.pdf> [retrieved on 20130226] * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018009040A1 (en) * | 2016-07-08 | 2018-01-11 | 엘지전자(주) | Method and device for transmitting /receiving data by using bluetooth technology |
WO2018135926A1 (en) * | 2017-01-23 | 2018-07-26 | 엘지전자(주) | Bluetooth communication method and apparatus |
US11191115B2 (en) | 2017-01-23 | 2021-11-30 | Lg Electronics Inc. | Bluetooth communication method and apparatus |
KR20180109680A (en) * | 2017-03-27 | 2018-10-08 | 가시오게산키 가부시키가이샤 | Communication device, communication method, and program stored in storage medium |
KR102567858B1 (en) * | 2017-03-27 | 2023-08-16 | 가시오게산키 가부시키가이샤 | Communication device, communication method, and program stored in storage medium |
CN112770306A (en) * | 2020-12-22 | 2021-05-07 | 努比亚技术有限公司 | Data transmission method based on low-power Bluetooth, terminal and computer readable medium |
Also Published As
Publication number | Publication date |
---|---|
US20170048655A1 (en) | 2017-02-16 |
US10142767B2 (en) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015163680A1 (en) | Method and apparatus for transmitting and receiving data using bluetooth low-power energy technique in wireless communication system | |
WO2018074892A1 (en) | Method and device for transmitting and receiving data using bluetooth technology | |
WO2016182404A1 (en) | Method and device for connecting alternative communication means using bluetooth low energy technology | |
WO2018048268A1 (en) | Method and apparatus for connecting device by using bluetooth technology | |
WO2016167541A1 (en) | Method and apparatus for connecting devices using bluetooth low-energy technology | |
WO2016017908A1 (en) | Method and apparatus for controlling electronic device in wireless communication system supporting bluetooth communication | |
WO2016017907A1 (en) | Method and apparatus for controlling electronic device in wireless communication system supporting bluetooth communication | |
WO2018038459A1 (en) | Method for controlling device by using bluetooth technology, and apparatus | |
WO2018169380A1 (en) | Method and apparatus for processing audio signal by using bluetooth technology | |
WO2015194854A1 (en) | Method and apparatus for forming connection between devices by using bluetooth low energy (le) technology | |
WO2016039598A1 (en) | Method and device for controlling device by using bluetooth technology | |
WO2015137601A1 (en) | Method and device for adjusting data transmission rate in wireless communication system | |
WO2018222024A1 (en) | Method and apparatus for connecting devices using bluetooth le technology | |
WO2016178542A1 (en) | Method and apparatus for sending and receiving data on bluetooth | |
WO2018135926A1 (en) | Bluetooth communication method and apparatus | |
WO2016175454A1 (en) | Method and device for transmitting/receiving data using bluetooth mesh network | |
WO2016017909A1 (en) | Method and apparatus for controlling electronic device in wireless communication system supporting bluetooth communication | |
WO2016122186A1 (en) | Method and device for controlling device using bluetooth technology | |
WO2016175638A1 (en) | Method and device for allocating address of device in bluetooth mesh network | |
WO2016036139A2 (en) | Method and device for controlling device by using bluetooth low energy (le) technology | |
WO2017043869A1 (en) | Method and apparatus for controlling device by using bluetooth technology | |
WO2018021877A1 (en) | Method and apparatus for establishing connection to device | |
WO2016175640A1 (en) | Method and device for transmitting/receiving data in mesh network using bluetooth | |
WO2017030232A1 (en) | Method for transmitting and receiving data, and device therefor | |
WO2018124852A1 (en) | Method and device for controlling device by using bluetooth technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15783675 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15305820 Country of ref document: US |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15783675 Country of ref document: EP Kind code of ref document: A1 |