KR102567858B1 - 통신 장치, 통신 방법, 및 기억 매체에 저장된 프로그램 - Google Patents

통신 장치, 통신 방법, 및 기억 매체에 저장된 프로그램 Download PDF

Info

Publication number
KR102567858B1
KR102567858B1 KR1020180024913A KR20180024913A KR102567858B1 KR 102567858 B1 KR102567858 B1 KR 102567858B1 KR 1020180024913 A KR1020180024913 A KR 1020180024913A KR 20180024913 A KR20180024913 A KR 20180024913A KR 102567858 B1 KR102567858 B1 KR 102567858B1
Authority
KR
South Korea
Prior art keywords
information
data
communication device
communication
value
Prior art date
Application number
KR1020180024913A
Other languages
English (en)
Other versions
KR20180109680A (ko
Inventor
카즈호 쿄
마코토 나카가와
히로시 이와미야
츠토무 테라자키
타카히로 토미다
료 오쿠무라
토시히로 타카하시
Original Assignee
가시오게산키 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가시오게산키 가부시키가이샤 filed Critical 가시오게산키 가부시키가이샤
Publication of KR20180109680A publication Critical patent/KR20180109680A/ko
Application granted granted Critical
Publication of KR102567858B1 publication Critical patent/KR102567858B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • GPHYSICS
    • G04HOROLOGY
    • G04GELECTRONIC TIME-PIECES
    • G04G21/00Input or output devices integrated in time-pieces
    • G04G21/04Input or output devices integrated in time-pieces using radio waves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • H04W28/065Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
    • GPHYSICS
    • G04HOROLOGY
    • G04RRADIO-CONTROLLED TIME-PIECES
    • G04R20/00Setting the time according to the time information carried or implied by the radio signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)

Abstract

본 발명의 일 실시예에 의하면, 무선 통신이 가능한 장치는, 통신 패킷을 다른 통신 장치와 송수신하는 송수신기와, 프로세서를 포함한다. 상기 프로세서는, 상기 송수신기를 통해서 상기 다른 통신 장치로부터, 데이터의 패키징 방법을 나타내는 제1 정보를 포함하는 패킷을 수신하고, 상기 제1 정보에 대응하는 데이터를 상기 송수신기를 통해서 상기 다른 통신 장치와 통신한다.

Description

통신 장치, 통신 방법, 및 기억 매체에 저장된 프로그램{COMMUNICATION DEVICE, COMMUNICATION METHOD, AND PROGRAM STORED IN STORAGE MEDIUM}
본 발명은 통신 장치, 통신 방법, 및 이 통신 방법을 실행하기 위한 기억 매체에 저장된 컴퓨터 프로그램에 관한 것이다.
종래, 블루투스(Bluetooth; 등록상표) 등의 근거리 무선 통신을 이용해서 다양한 정보를 교환할 수 있는 전자 장치가 존재한다. 블루투스는 근거리에서 각종 장치들을 무선으로 연결하여 데이터를 주고 받을 수 있는 근거리 무선 통신 규약이다. 블루투스 통신 방법에는 BR/EDR(Basic Rate/Enhanced Data Rate)과, 저전력 방식인 LE(Low Energy)가 있다. BR/EDR은 블루투스 클래식(Bluetooth Classic)이라고도 불린다. 블루투스 4.0부터 적용된 블루투스 로우 에너지(Bluetooth Low energy, 이하 BLE라고 한다.)는 적은 전력을 소모하여 수백 키로바이트(KB)의 정보를 안정적으로 제공할 수 있다. 이러한 BLE 기술은 블루투스 클래식에 비교해서 동작을 간단하게 해서 에너지 소비를 줄인다. 최근 시판된 스마트 밴드, 스마트 워치, 스마트 글래스 등의 웨어러블 무선 통신 장치의 대부분은 BLE 기술을 이용해서 무선 통신을 행한다.
이러한 근거리 무선 통신에 의해, 복수의 전자 장치의 각각이 개별적으로 취득하거나 보유하는 정보를, 다른 전자 장치에서 용이하게 취득하는 것이 가능해지고 있다. 예를 들면, 일본특허출원공개 특개2014-175830호 공보에는, 효율적으로 통신을 행하기 위해서, 두 개의 통신 장치가 최대 전송 단위(Maximum Transmission Unit: MTU) 값을 주고 받고, 주고 받은 MTU 값에 따라서 통신 기간을 할당하는 기술이 개시되어 있다.
일본 특허출원공개 특개2014-175830호 공보.
그러나, 상기 특허문헌 1에 개시된 기술은, 송수신하는 정보의 종류에 관해서는 고려하고 있지 않다. 따라서, 복수의 종류의 정보를 통신하려고 하는 경우에는, 통신 장치간의 통신 회수가, 통신하는 정보의 종류의 수에 따라서 증가한다. 그 때문에, 통신하는 정보의 종류의 수가 많으면, 통신 장치의 소비 전류 및 처리 부하가 증가한다.
본 명세서에는, 무선 통신 장치 간의 통신 방법, 이 방법을 실행하는 통신 장치 및 프로그램이 개시되어 있다.
본 발명의 일 태양은, 무선 통신이 가능한 통신 장치로서, 통신 패킷을 다른 통신 장치와 송수신하는 송수신기와, 프로세서를 포함하고, 상기 프로세서는, 상기 송수신기를 통해서 상기 다른 통신 장치로부터, 데이터의 패키징 방법을 나타내는 제1 정보를 포함하는 패킷을 수신하고, 상기 제1 정보에 대응하는 데이터를 상기 송수신기를 통해서 상기 다른 통신 장치와 통신한다.
본 발명의 다른 일 태양은, 무선 통신이 가능한 통신 장치로서, 다른 통신 장치와 통신 패킷을 송수신하는 송수신기와, 프로세서를 포함하고, 상기 프로세서는, 다른 통신 장치의 단위 통신당 통신 가능한 데이터 사이즈에 기초해서, 상기 다른 통신 장치와 통신할 하나 이상의 종류의 데이터의 패키징 방법을 결정한다.
이하의 상세한 설명을 도면들과 함께 고려하면, 본원에 대한 보다 깊은 이해를 얻을 수 있다. 이 도면들은 예시에 지나지 않고, 본 발명의 범위를 한정하는 것은 아니다.
도 1은 본 명세서에서 제안된 방법들을 적용할 수 있는 무선 통신 시스템의 일 예를 도시한다.
도 2a는 본 명세서에서 제안된 방법들을 구현할 수 있는 장치의 내부 블록도의 일 예이다.
도 2b는 본 명세서에서 제안된 방법들을 구현할 수 있는 장치의 내부 블록도의 일 예이다.
도 3은 애드버타이징 패킷의 종류를 설명하는 도면이다.
도 4a는 애트리뷰트 값을 주고 받기 위한 애트리뷰트 프로토콜 PDU의 통상의 구조를 도시한다.
도 4b는 GATT 서버에 저장되는 애트리뷰트의 통상의 구조를 도시한다.
도 5는 통상의 애트리뷰트 데이터베이스의 일 예를 나타내는 도면이다.
도 6은 서버와 클라이언트가 BLE 통신에 의해 데이터의 교환을 행하는 통상의 방법을 도시한다.
도 7은 일 실시예에 의한 애트리뷰트 데이터베이스의 일 예를 나타내는 도면이다.
도 8은 일 실시예에 의한 구별 정보의 일 예를 나타내는 도면이다.
도 9는 일 실시예에 의한, 스마트폰이 전자 시계에 데이터의 송신을 지시하는 방법을 도시하는 시퀀스 다이어그램이다.
도 10은 일 실시예에 의한 지시 코맨드의 Attribute Value의 포맷을 나타내는 도면이다.
도 11은 일 실시예에 의한 코맨드 유형의 일 예를 나타내는 도면이다.
도 12a는 일 실시예에 의한 송신 지시용의 지시 코맨드의 Attribute Value의 일 예를 나타내는 도면이다.
도 12b는 일 실시예에 의한 설정 정보의 notification 메시지의 Attribute Value의 일 예를 나타내는 도면이다.
도 13은 일 실시예에 의한, 스마트폰이 전자 시계에 데이터의 기입을 지시하는 방법을 도시하는 시퀀스 다이어그램이다.
도 14a는 일 실시예에 의한 기입 대기 지시용의 지시 코맨드의 Attribute Value의 일 예를 나타내는 도면이다.
도 14b는 일 실시예에 의한 Write Command 메시지의 Attribute Value의 일 예를 나타내는 도면이다.
도 15는 일 실시예에 의한 전자 시계의 기능 블록도이다.
도 16은 일 실시예에 의한 스마트폰의 기능 블록도이다.
도 17은 일 실시예에 의한 전자 시계에 있어서의 통신 프로세스를 실현하기 위한 알고리즘을 나타내는 흐름도이다.
도 18은 일 실시예에 의한 스마트폰에 있어서 전자 시계에 데이터의 송신을 지시하는 통신 프로세스를 실현하기 위한 알고리즘을 나타내는 흐름도이다.
도 19는 일 실시예에 의한 스마트폰에 있어서 전자 시계에 데이터의 기입을 지시하는 통신 프로세스를 실현하기 위한 알고리즘을 나타내는 흐름도이다.
도 20은 일 실시예에 의한 스마트폰에 있어서 전자 시계에 데이터의 송신을 지시하는 통신 프로세스를 실현하기 위한 알고리즘을 나타내는 흐름도이다.
도 21은 일 실시예에 의한 애트리뷰트 데이터베이스의 일 예를 도시한다.
본 명세서에 있어서는, 주로 블루투스, 특히, BLE를 적용한 실시예들에 관해서 설명하지만, 블루투스로 한정되지 않는다. 이 실시예들은, 서비스와 캐릭터리스틱이 필요한 모든 통신 방식에 대해서 적용 가능하다.
이하, 본 발명의 실시예들에 관하여, 도면을 참조하면서 상세히 설명한다.
도 1은 후술하는 실시예들에 공통되는 도면으로서, 본 명세서에서 제안된 방법들이 적용될 수 있는 무선 통신 시스템의 일 예를 도시한다. 이하에 기술되는 실시예들에 있어서, 제1 장치와 제2 장치는 BLE 기술을 이용하여 근거리 무선 통신을 행한다. 무선 통신 시스템 10은 적어도, 제1 장치 100 및 BLE에 의해 제1 장치 100과 무선 접속되어 데이터 교환이 가능한 제2 장치 200으로 이루어진다. 바람직한 실시예들이 적용될 수 있는 제1 장치 100은, 예를 들어, 손목 시계형 단말 장치의 일종인 전자 시계이다. 그러나, 제1 장치 100은 이러한 예로 한정되지 않고, BLE 통신이 가능한 장치라면 그 종류나 형태를 묻지 않는다. 제1 장치 100은, 예를 들어, 디지털 카메라, 디지털 체중계와 같은 헬스 기기, 또는 스마트 밴드와 같은 웨어러블 기기일 수 있다.
바람직한 실시예들이 적용될 수 있는 제2 장치 200은, 예를 들어, 휴대 전화기의 일종인 스마트폰으로서, 이동 통신망 20에 접속되어 있다. 그러나, 제2 장치 200은 이러한 예로 한정되지 않고, 근거리 무선 통신이 가능한 장치라면 그 종류나 형태를 묻지 않는다.
이하에 상세히 설명하는 바와 같이, BLE의 ATT(Attribute Protocol)는 서버-클라이언트(Server-Client) 구조로 상대 장치의 데이터에 액세스하기 위한 규칙을 정의한다. 서버는 서비스를 제공하고, 클라이언트는 서버에 요청해서 서버가 제공하는 서비스에 관련된 정보를 얻을 수 있다. 설명의 편의를 위하여, 이하에서는 특별한 설명이 없는 한 제1 장치 100을 서버로, 제2 장치 200의 애플리케이션을 클라이언트로 하여 설명한다. 그러나, 제1 장치 100은 다른 장치와의 관계에서 클라이언트로서 동작할 수 있고, 제2 장치는 다른 장치와의 관계에서 서버로서 동작할 수 있다. BLE 통신 시스템에서 하나의 장치는 서버 또는 클라이언트로서 동작하는 것이 가능하고, 필요한 경우, 동시에 서버 및 클라이언트로서 동작하는 것도 가능하다.
제2 장치 200은 제1 장치 100에 데이터를 요구할 수 있다. 제1 장치 100은, 제2 장치 200으로부터 데이터 요구 메시지를 수신하는 경우, 응답(Response) 메시지에 의해서 제2 장치 200으로 데이터를 제공한다. 또한, 제1 장치 100은 제2 장치 200으로 데이터를 통지하기 위해 제2 장치에 대해서 고지(Notification) 메시지 또는 지시(Indication) 메시지를 송신한다. 제1 장치 100이 제2 장치 200으로 지시 메시지를 송신한 경우에, 상기 지시 메시지지가 제2 장치 200에 의해 수신되면 제2 장치는 상기 지시 메시지에 대한 확인(Confirmation) 메시지를 제1 장치 100으로 송신한다. 또, 제2 장치 200은, 제1 장치 100에 대해서 데이터의 기입을 요청하기 위해서 요구(Request) 메시지 또는 코맨드(Command) 메시지를 송신한다. 제2 장치 200이 제1 장치 100에 요구 메시지를 송신한 경우에, 데이터의 기입이 행해지면, 제1 장치 100은 제2 장치 200에 응답 메시지를 송신한다.
제1 장치 100 또는 제2 장치 200은, 다른 장치와 메시지를 송수신하는 과정에서 출력부(예를 들면, 디스플레이)를 통해서 사용자에게 데이터 정보를 제공하거나, 입력부(예를 들면, User Input Interface)를 통해서 사용자로부터 입력되는 요청을 수신할 수 있다. 또, 메모리로부터 데이터를 읽어내거나, 새로운 데이터를 메모리에 기입할 수 있다.
도 2a 및 도 2b는 본 명세서에서 제안된 방법들을 구현할 수 있는 장치의 내부 블록도의 일 예이다. 도 2a는 제1 장치 100의 내부 블록도이고, 도 2b는 제2 장치 200의 내부 블록도이다.
도 2a에 도시된 바와 같이, 제1 장치 100은 근거리 통신용 송수신기(transmitter and receiver) 102, 프로세서 104, 전원부 106, 메모리 108, 시계부 110, 입력부 112, 및 디스플레이 114를 포함한다. 근거리 통신용 송수신기 102는 근거리 무선 통신 기술(예를 들면, 블루투스)을 이용하여 장치들 간의 요구/응답, 코맨드, 고지, 지시/확인 메시지, 또는 다른 패킷의 송수신을 가능하게 하는 인터페이스와, 무선 신호를 처리하는 베이스밴드 회로를 포함한다. 본 실시예에서, 근거리 통신용 송수신기 102는 BLE를 지원한다. 근거리 통신용 송수신기 102의 적어도 일부 기능은 소프트웨어에 의해 구현될 수 있고, 소프트웨어에 의해 구현되는 경우 상기 기능을 실행하는 프로그램의 형태로 메모리 108에 저장될 수 있다.
프로세서 104는 제1 장치 100의 전체적인 동작을 제어한다. 프로세서 104는 제어부, 제어 유닛(Control Unit), 컨트롤러 등으로 칭해지는 경우도 있다. 프로세서 104는 ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로 및/또는 데이터 처리 장치를 포함할 수 있다. 전원부 106은 도시는 생략하지만 배터리 및 전원 관리부를 포함한다. 메모리 108은 프로세서 104에 의해 실행되는 컴퓨터 프로그램 명령, 펌 웨어 등의 각종 소프트웨어, 및/또는 프로세서 104가 필요로 하는 데이터 또는 프로세서 104의 처리 결과를 기억하기 위해 사용된다. 메모리 108은 제1 장치 100에 내장된, 또는, 제1 장치 100으로부터 탈착가능한 RAM(Random Access Memory), ROM(Read Only Memory), 플래시 메모리, 또는 디스크 드라이브 등의 하나 또는 그 이상의 임의의 기억 장치를 포함한다. 메모리 108은 프로세서 104에 내장되는 것도 가능하다.
시계부 110은 도시는 생략하지만, 예를 들면, 시스템 클록 또는 발진기에 의해 생성되는 신호로로부터 시각 신호를 생성하는 클록 회로인 카운터(counter)를 포함하고, 현재의 일시를 측정(계수)해서 시각 정보를 생성한다. 시계부 110은 생성한 시각 정보를 프로세서 104에 출력한다. 시계부 110은 프로세서 104 내에 내장될 수도 있다. 입력부 112는 각종 키, 스위치, 및/또는 터치 패널 등으로 구성되고, 사용자의 입력부 112의 조작에 따라서 각종 데이터가 입력된다. 디스플레이 114는 LCD, OLED 등의 표시 장치 및 구동 회로를 포함하고, 현재 시각 등의 정보를 표시한다.
제1 장치 100은 평상시는 디스플레이 114에 시계부 110에서 측정되고 있는 현재 시각을 표시한다. 근거리 통신용 송수신기 102를 통해 제2 장치 200으로부터 현재 시각에 관한 데이터를 수신한 경우에는, 해당 데이터가 가리키는 시각을 시계부 110에 설정함으로써, 제1 장치 100의 시각을 제2 장치 200의 시각에 동기화시킨다.
도 2b에 도시된 바와 같이, 제2 장치 200은 원거리 통신 처리부 202, 근거리 통신용 송수신기(transmitter and receiver) 204, 프로세서 206, 메모리 208, 전원부 210, 입력부 212, 및 디스플레이 214를 포함한다. 프로세서 206은 시계부 216을 포함한다. 원거리 통신 처리부 202는 3G, LTE 등의 휴대 전화 시스템의 기지국과 통신함으로써 제2 장치 200을 휴대 전화로서 기능시킨다. 원거리 통신 처리부 202은 안테나를 통해 수신 또는 송신되는 신호를 증폭하는 앰프, 트랜시버, 디지털 베이스밴드 프로세서, 음성 입력 회로, 재생 회로 등을 포함하지만, 이들 주지의 구성요소에 대해서는 도시 및 설명을 생략한다. 또한, 원거리 통신 처리부 202를 통해 이동 통신망 20으로부터 정확한 시각 데이터를 취득함으로써 시계부 216이 정확한 시각 정보를 보유할 수 있다. 상기한 바와 같이, 제2 장치 200은 시계부 216이 보유하고 있는 시각 정보를 제1 장치 100에 전송할 수 있다.
근거리 통신용 송수신기 204는 근거리 무선 통신 기술(예를 들면, 블루투스)을 이용하여 장치들 간의 요구/응답, 코맨드, 고지, 지시/확인 메시지, 또는 다른 패킷의 송수신을 가능하게 하는 인터페이스와, 무선 신호를 처리하는 베이스밴드 회로를 포함한다. 본 실시예에서, 근거리 통신용 송수신기 204는 BLE를 지원한다. 근거리 통신용 송수신기 204의 적어도 일부 기능은 소프트웨어에 의해 구현될 수 있고, 소프트웨어에 의해 구현되는 경우 상기 기능을 실행하는 프로그램의 형태로 메모리 208에 저장될 수 있다.
프로세서 206은 제2 장치 200의 전체적인 동작을 제어하고, 예를 들면, 애플리케이션 프로세서이다. 본 실시예에서는 프로세서 206이 시계부 216를 포함하도록 구성되어 있지만, 실시예에 따라서는 시계부 216이 별개의 구성요소로서 포함될 수도 있다. 메모리 208은 프로세서 206에 의해 실행되는 컴퓨터 프로그램 명령, 펌 웨어 등의 각종 소프트웨어 및/또는 프로세서 206이 필요로 하는 데이터 또는 프로세서 206의 처리 결과를 기억하기 위해 사용된다. 메모리 208은 제2 장치 200에 내장된, 또는 제2 장치 200로부터 탈착가능한 RAM(Random Access Memory), ROM(Read Only Memory), 플래시 메모리, 또는 디스크 드라이브 등의 하나 또는 그 이상의 임의의 기억 장치를 포함한다. 메모리 208은 프로세서 206에 내장되는 것도 가능하다.
전원부 210은 도시를 생략하지만, 배터리 및 전원 관리부를 포함한다. 입력부 212는 각종 키, 스위치, 및/또는 터치 패널 등으로 구성되고 사용자의 입력부 212의 조작에 따라서 각종 데이터가 입력된다. 디스플레이 214는 LCD, OLED 등의 표시 장치 및 구동 회로를 포함한다.
도 1에 도시된 시스템과, 도 2a 및 2b에 도시된 장치는 예시에 불과하고, 본 명세서에 기술된 방법들을 구현할 수 있는 시스템 또는 장치의 범위를 제한하지 않는다.
애트리뷰트 프로토콜(Attribute Protocol; ATT)은 서버/클라이언트 구조로 상대 장치의 데이터에 액세스하기 위한 규칙을 정의한다. ATT에는 6종류의 메시지 유형(요구, 응답, 코맨드, 고지, 지시, 확인)이 정의된다.
(1) 요구 및 응답 메시지: 요구 메시지는 클라이언트가 서버에 특정 정보를 요청하기 위해서 송신하는 메시지이고, 응답 메시지는 서버가 클라이언트에 송신하는 요구 메시지에 대한 응답이다.
(2) 코맨드 메시지: 코맨드 메시지는 클라이언트가 서버에 특정 동작을 요청하기 위해서 송신하는 메시지이고, 서버는 코맨드 메시지에 대한 응답을 클라이언트에 송신하지 않는다.
(3) 고지 메시지: 고지 메시지는 서버가 클라이언트에 이벤트 등의 통지를 위해서 송신하는 메시지이고, 클라이언트는 고지 메시지에 대한 확인 메시지를 서버에 송신하지 않는다.
(4) 지시 및 확인 메시지: 지시 메시지는 서버가 클라이언트에 이벤트 등의 통지를 위해서 송신하는 메시지이고, 고지 메시지와는 달리 클라이언트는 지시 메시지에 대한 확인 메시지를 서버에 송신한다.
범용 애트리뷰트 프로파일(Generic Attribute Profile: GATT)은 서비스들의 구성 시에 ATT가 어떻게 사용되는지를 설명하는 프로토콜로서 이용된다. GATT는 서비스(Service)와 캐릭터리스틱(Characteristic)이라는 개념을 사용하여 특정 데이터(즉, 애트리뷰트)를 다른 장치에 제공한다. GATT는 서버와 클라이언트의 두 가지 역할을 정의하고, 애트리뷰트를 제공하는 장치가 GATT 서버(이하, “서버”라 함)이고, 애트리뷰트를 제공받는 장치가 GATT 클라이언트(이하, “클라이언트”라 함)이다.
서비스는 정보를 제공하거나, 액션을 수행하거나, 다른 엔티티를 대신하여 리소스를 제어할 수 있는 엔티티이다. 서비스는 소프트웨어, 하드웨어, 또는 이들의 조합으로서 구현될 수 있다. SDP 서버에 의해 보유되는 하나의 서비스에 대한 모든 정보는 하나의 서비스 레코드 내에 포함된다. 서비스는 데이터를 논리적 엔티티로 나누고, 캐릭터리스틱이라고 불리는 데이터의 덩어리들을 포함한다. 각각의 서비스는 하나 또는 그 이상의 캐릭터리스틱을 가질 수 있고, UUID(Universal Unique Identifier)라고 불리는 고유 ID에 의해 구분된다.
캐릭터리스틱은 서비스에서 사용되는 단일 데이터 배열이고, 각각의 캐릭터리스틱은 UUID를 갖는다. 또한, 각각의 캐릭터리스틱은 캐릭터리스틱 선언과 캐릭터리스틱 값 선언의 2개의 애트리뷰트를 갖는다. 캐릭터리스틱 선언은 애트리뷰트 타입과 애트리뷰트 값을 갖고, 애트리뷰트 값은 캐릭터리스틱 프로퍼티(Characteristic Property), 캐릭터리스틱 값 핸들(Characteristic Value Handle), 캐릭터리스틱 UUID를 갖는다. 캐릭터리스틱 값 선언은, 캐릭터리스틱 값에 대한 UUID 및 캐릭터리스틱 값(Characteristic Value)으로 구성된다.
도 3은 애드버타이징 패킷의 종류를 설명하는 도면이다. 블루투스 통신에 이용되는 애드버타이징 패킷은 도 3에 도시된 것처럼 4가지 타입이 존재하고, 패킷의 PDU 헤더의 PDU Type 필드에 설정된 값이 패킷의 타입을 나타낸다. ADV_IND는 상대를 지정하지 않는 접속 가능 애드버타이징 이벤트에 이용되고, 간이 정보 조회가 가능하다(즉, scannable). 간이 정보 조회는, 커넥션 전에, 스캔을 행하는 장치(스캐너)가 애드버타이즈를 행하는 장치(애드버타이저)에 스캔 요구(SCAN_REQ PDU)를 송신해서 애드버타이저에 추가 정보(기기 정보, 제공하는 서비스 등)를 요구하는 절차를 말한다. ADV_DIRECT_IND는 지정된 장치만 접속 가능한 애드버타이징 이벤트에 이용된다. ADV_DIRECT_IND는 애드버타이징 데이터를 저장하기 위한 데이터부를 갖지 않는다. 따라서, 애드버타이즈에 의해 애드버타이저의 데이터를 전송하려고 하는 경우는 ADV_DIRECT_IND를 사용할 수 없다. ADV_NONCONN_IND는 어떠한 장치도 접속 불가인 애드버타이징 이벤트에 이용된다. ADV_SCAN_IND는 어떠한 장치도 스캔 가능한 애드버타이징 이벤트에 이용되고, 간이 정보 조회가 가능하다(즉, 어떤 장치도 간이 정보 조회만 가능).
도 4a는 애트리뷰트 값을 주고받기 위한 애트리뷰트 프로토콜 PDU의 통상의 구조를 도시한다. GATT 프로파일은, 장치들 사이에 코맨드, 요구, 응답, 고지, 지시, 및 확인의 형태로 데이터를 전송하기 위해서, 애트리뷰트 프로파일을 이용한다. 이 데이터는, 도 4a에 도시된 구조의 애트리뷰트 프로토콜 PDU에 저장된다. 애트리뷰트 프로토콜 PDU는 애트리뷰트 옵코드(Attribute Opcode) 필드, 애트리뷰트 파라미터(Attribute Parameters) 필드, 및 인증 서명(Authentication Signature) 필드(선택적)에 의해 구성된다. 인증 서명은 옵션 필드이고, 선택적으로 존재하거나 존재하지 않거나 한다.
상기 애트리뷰트 옵코드는 1옥텟(octet)의 길이이고, 해당 애트리뷰트 프로토콜 PDU가 어떤 PDU인지를 나타내는 정보를 포함한다. 애트리뷰트 파라미터는 메시지로 전달하려고 하는 실제 정보를 포함하고, 다음과 같은 값을 가질 수 있다.
- 핸들(Handle): 데이터에 대응하는 참조 정보(인덱스). 핸들을 사용해서 GATT 클라이언트가 값을 참조, 액세스, 또는 변경할 수 있다.
- 값(Value): 데이터의 값
- 데이터 리스트(Data List): 다양한 데이터 값의 목록
- 길이(Length): 데이터의 길이
클라이언트는, 상기와 같은 애트리뷰트 프로토콜 PDU를 이용해서, 서버에 저장되어 있는 애트리뷰트 핸들(Attribute Handle) 값, 애트리뷰트 값(Attribute Value), 데이터 리스트(Data List), 또는 길이(Length) 값을 독출하거나, 서버에 이러한 값을 기억시킬 수 있다.
애트리뷰트 프로토콜 코맨드 및 요구는, 서버 장치에 애트리뷰트로서 저장되어 있는 값에 액세스한다. 도 4b는, 서버에 저장되는 애트리뷰트의 통상의 구조를 도시한다. 서버는 이러한 형태의 애트리뷰트를 사용해서 서비스를 제공한다. 하나의 애트리뷰트는 4개의 구성 요소로 이루어지고, 다음과 같은 의미를 갖는다.
- 애트리뷰트 핸들(Attribute Handle): 특정 애트리뷰트에 대응하는 식별자(인덱스)
- 애트리뷰트 타입(Attribute Type): 애트리뷰트의 유형(애트리뷰트 값을 기술하는 UUID)
- 애트리뷰트 값(Attribute Value): 애트리뷰트의 값(핸들에 의해 인덱싱되는 데이터)
- 애트리뷰트 퍼미션(Attribute Permission): 애트리뷰트에 대한 읽기쓰기 허가
도 5는 통상의 애트리뷰트 데이터베이스의 일 예를 도시한다. 도 5에 도시된 애트리뷰트 데이터베이스가 구현된 BLE 장치는, 예를 들면, 전자 시계다. 각각의 서비스는 데이터를 논리적으로 나누는 역할을 하고, 하나 또는 그 이상의 캐릭터리스틱을 포함한다. 도시된 바와 같이, 프라이머리 서비스인 Watch Feature Service는, 복수의 캐릭터리스틱(ServiceN1, ServiceN2, …, ServiceNx)을 포함한다. 본 예에 있어서, 서비스인 Watch Feature Service는, x개의 캐릭터리스틱을 포함한다. 도시된 것처럼, 통상의 BLE 장치에서는, 하나의 피처(feature)에 대하여 하나의 캐릭터리스틱을 갖는 형태로서, 애트리뷰트 데이터베이스가 구성된다. 각각의 서비스와 각각의 캐릭터리스틱은, UUID, 즉, 16비트 또는 128비트의 식별자를 갖는다. 블루투스 표준 그룹은 공식적인 서비스와 캐릭터리스틱의 UUID의 리스트를 블루투스 스펙으로서 제공하고 있다.
상기한 바와 같이, 각각의 캐릭터리스틱은, 캐릭터리스틱 선언과 캐릭터리스틱 값 선언의 두 개의 애트리뷰트를 갖는다. 예를 들면, ServiceN1의 캐릭터리스틱 선언은, 애트리뷰트 타입(캐릭터리스틱의 UUID, 구체적으로는, 0x2803)과, 애트리뷰트 값으로서 캐릭터리스틱 속성(0x0a)과, 캐릭터리스틱 값 핸들(0x0012)과, 캐릭터리스틱 UUID(ServiceN1의 UUID)에 의해 구성된다. ServiceN1의 캐릭터리스틱 값 선언은, 캐릭터리스틱 값에 대한 UUID(ServiceN1의 UUID)와, 캐릭터리스틱 값(ServiceN1의 값)에 의해 구성된다. 캐릭터리스틱 값은 대응하는 피처의 설정값이다.
클라이언트와 서버의 커넥션이 확립되면, 두 장치가 데이터 통신을 할 수 있고, 클라이언트는, 서버가 제공하는 특정한 서비스에 액세스할 수 있다. 예를 들면, 도 6은, 서버와 클라이언트가 BLE 통신에 의해 데이터를 교환하는 통상의 방법을 도시한다. 도시된 예에서는, 제1 장치 100이 서버로서 동작하고, 제2 장치 200이 클라이언트로서 동작한다. 제1 장치 100에는, 도 5의 애트리뷰트 데이터베이스가 구현되어 있다. 서버에 특정한 캐릭터리스틱 값을 요구하려고 하는 경우, 클라이언트는 독출 요구(Read Request)를 서버에 송신한다. 독출 요구는, BLE 사양에 정의된 바와 같이, 서버에 애트리뷰트의 값을 독출해서 그 값을 보내도록 요구하기 위해서 사용되는 메시지이고, 애트리뷰트 핸들을 파라미터로서 사용한다. 이 경우, 독출 요구 메시지의 애트리뷰트 핸들 파라미터는, 캐릭터리스틱 값 핸들로 설정된다.
클라이언트로부터의 독출 요구가 유효한 경우, 즉, 클라이언트가 데이터를 요구할 권한을 갖는 동시에 해당 데이터를 독출하는 것이 가능한 경우에, 서버는 클라이언트가 요구하는 데이터를 독출 응답(Read Response)에 의해 클라이언트에게 송신한다. 독출 응답은, BLE 사양에 정의된 바와 같이, 독출 요구에 응답하기 위해서 서버에 의해 송신되는 메시지이고, 독출된 애트리뷰트의 값을 포함한다. 독출 응답 메시지는, 애트리뷰트 값을 파라미터로서 사용하고, 이 경우, 독출 응답에 의해 전송되는 값은, 상기 캐릭터리스틱 값 핸들에 대응하는 캐릭터리스틱 값이다.
예를 들면, 클라이언트가 ServiceN1의 값을 요구하는 경우, 클라이언트는 애트리뷰트 핸들 파라미터가 0x0012로 설정되어 있는 독출 요구를 서버에 송신한다. 이에 대한 응답으로서, 서버는 애트리뷰트 값 파라미터가 ServiceN1 value로 설정되어 있는 독출 응답을 클라이언트에 송신한다.
서버에 데이터를 기입하려고 하는 경우, 클라이언트는, 애트리뷰트 핸들 파라미터와 애트리뷰트 값 파라미터의 각각이, 데이터를 기입할 캐릭터리스틱 값의 핸들과, 기입할 데이터로 설정된 기입 요구(Write Request)를 서버에 송신한다. 기입 요구는, ATT에 의해 정의되는 메시지 유형의 하나이고, BLE 사양에 정의된 바와 같이, 서버에 애트리뷰트의 값을 기입하도록 요구하기 위해서 사용되는 메시지다. 기입의 요구가 유효한 경우, 서버는, 상기 핸들에 대응하는 특정한 캐릭터리스틱의 값에 액세스해서 상기 데이터를 기입할 수 있다. 상기 데이터가 기입되면, 서버는 기입 응답(Write Response) 메시지를 클라이언트에 송신한다. 데이터의 기입에 실패하면, 서버는 에러 메세지를 클라이언트에 송신한다. 한편, 기입 요구 대신에, 응답 메시지를 수반하지 않는 기입 코맨드(Write Command)를 이용해서, 데이터의 기입을 요구할 수도 있다. 기입 코맨드도 ATT에 의해 정의되는 메시지 유형의 하나이고, BLE 사양에 정의된 바와 같이, 서버에 애트리뷰트의 값을 기입하도록 요구하기 위해서 사용되는 메시지다. 이 경우, 기입에 성공했는지 아닌지를 클라이언트측에서 즉시 확인할 수 없지만, 서버가 응답 메시지를 송신하기 위해서 전력을 소비하지 않으므로, 서버가 배터리 용량이 적은 디바이스(예를 들면, 시계형의 웨어러블 디바이스)인 경우에는, 기입 코맨드를 이용하는 편이 전력 소비의 감소의 측면에서 보다 유리하다.
서버가 클라이언트에 데이터를 통지하려고 하는 경우, 서버는, 애트리뷰트 핸들 파라미터와 애트리뷰트 값 파라미터의 각각이, 통지할 데이터인 캐릭터리스틱 값의 핸들과, 해당 데이터로 설정된 Handle Value Indication을, 클라이언트에 송신한다. Handle Value Indication은, BLE사양에 정의된 바와 같이, 서버가 애트리뷰트의 값을 통지하기 위해서 송신하는 메시지다. 클라이언트는, Handle Value Indication 메시지를 정상적으로 수신하면, 이에 대한 응답 메시지인 Handle Value Confirmation을 서버에 송신한다. 따라서, 데이터의 중요도가 높은 경우에는, Indication 메시지를 이용하는 것이 바람직하다. 데이터의 중요도가 낮고, 클라이언트의 소비 전력의 삭감이 중요한 경우에는, Handle Value Notification을 이용할 수도 있다. Handle Value Notification은, Handle Value Indication과 마찬가지로, 서버가 애트리뷰트의 값을 통지하기 위해서 송신하는 메시지이지만, 응답 메시지인 Confirmatin을 수반하지 않는다.
클라이언트는 필요한 때에, 예를 들면, 소정의 시각이 되었을 때, 또는, 사용자의 조작이 있었을 때에, 서버에 데이터를 요구하거나, 데이터의 기입을 지시하거나, 서버로부터 데이터를 수신한다. 현재, BLE 장치, 예를 들면, 웨어러블 전자 시계(스마트 워치라고도 한다.)에서는, 복수의 종류의 정보를 다른 장치와 주고 받을 때, 각각의 종류의 데이터를 별개의 메시지로 송수신한다. 따라서, 주고 받는 데이터의 종류가 많아지면, 그 종류만큼 송수신 회수가 증가한다. 이러한 트랜잭션 회수의 증가는, 전력 소비 및 처리 부하를 증가시킨다. 이하 복수의 실시예를 이용해서 기술되는 본 발명은, 데이터의 트랜잭션을 제어함으로써, 통신의 효율성을 높인다. 그러나, 본 발명은 이 실시예들로 한정되지 않고, 본 발명이 속하는 기술 분야에 있어서의 통상의 지식을 가진 자는, 본 명세서의 기재로부터 다양한 변형이나 대안을 용이하게 도출할 수 있다.
도 7은 본 발명의 일 실시예에 의한 애트리뷰트 데이터베이스의 일 예를 도시한다. 도 5에 도시된 종래의 애트리뷰트 데이터베이스는 Watch Feature Service의 x개의 피처에 대응하는 x개의 캐릭터리스틱을 포함하고, 애트리뷰트 값으로서 각각의 캐릭터리스틱의 값을 저장한다. 본 실시예에 의한 애트리뷰트 데이터베이스는, 피처의 수에 관계 없이, 3개의 캐릭터리스틱, 즉, Updated ATT_MTU와, Request Command for Features와, Watch Features를 포함한다.
Updated ATT_MTU는, 제1 장치인 전자 시계와, 제2 장치인 스마트폰 200 사이의 MTU 사이즈 교환 절차에 의해 갱신된 ATT_MTU를 스마트폰 200에 통지하기 위한 캐릭터리스틱이다. MTU는, 단위 통신당의 통신 가능한 데이터 용량(사이즈)을 나타낸다. BLE 사양에 정의된 바와 같이, ATT_MTU는 클라이언트와 서버 간에 송신되는 패킷의 최대 사이즈이며, MTU 사이즈 교환(Exchange MTU)은 ATT_MTU를 양측 장치에 의해 서포트되는 최대 가능값으로 설정하기 위해서 클라이언트에 의해 사용되는 서버 컨피규레이션(Configuration)의 하위 절차(sub-procedure)이다. 또, MTU 사이즈 교환 요구(Exchange MTU Request)는, 클라이언트의 최대 수신 MTU 사이즈를 서버에 알리는 동시에, 서버에 최대 수신 MTU 사이즈를 송신하도록 요구하기 위해서 클라이언트에 의해 사용되는 메시지이다. 서버는, 클라이언트로부터 MTU 사이즈 교환 요구를 수신하면, MTU 사이즈 교환 응답(Exchange MTU Response)으로 응답한다. MTU 사이즈 교환 응답은, 서버의 최대 수신 MTU 사이즈를 클라이언트에 알리기 위해서 이용되는 메시지이다. 클라이언트와 서버는, 교환된 MTU 사이즈의 최소값을 사용해서, 이후의 통신을 행한다.
통상, BLE 통신 장치에 있어서, 탑재된 BLE 칩으로부터 ATT_MTU 사이즈를 취득하기 위한 HCI(Host Controller Interface) 코맨드가 마련되지만, 스마트폰의 경우, 이를 이용하기 위한 API가 마련되어 있지 않다. 따라서, 본 실시예에서는, 클라이언트인 스마트폰의 프로세서(예를 들면, 도 2b의 206)가 ATT_MTU 사이즈를 이용할 수 있도록, 접속 상대인 전자 시계가 MTU 사이즈 교환(Exchange MTU)에 의해 갱신된 ATT_MTU 사이즈를 스마트폰에 통지하는 구조를 마련한다. Updated ATT_MTU는, 갱신된 ATT_MTU 사이즈를 스마트폰에 통지하기 위한 캐릭터리스틱이다.
Request Command for Features는, 전자 시계 100이 데이터를 송수신하는 포맷을 지정하는 지시 코맨드를 기입하기 위한 캐릭터리스틱이다. Watch Features는, 전자 시계 100의 설정 정보인 피처의 설정 값을 읽고 쓰기 위한 캐릭터리스틱이다. 본 실시예에서는, 통상의 캐릭터리스틱(즉, 도 5의 ServiceN1 내지 ServiceNx)에 대응하는 x개의 피처의 설정 값을, Watch Features의 애트리뷰트 값으로서 저장한다. 그리하여, ServiceN1 value 내지 ServiceNx value에 1개의 핸들(0x0017)만을 할당할 수 있으므로, 상기 복수의 종류의 데이터를 구별하기 위한 정보인 구별 정보를 추가로 사용한다. 환언하면, 종래에 UUID 또는 핸들 값에 의해 구별되고 있었던 복수의 종류의 설정 정보를, 구별 정보에 의해 구별한다.
구별 정보의 일 예는, 도 8에 도시된다. 본 예에 있어서, 구별 정보의 값은, 1 바이트의 사이즈를 갖는다. 구체적으로, ServiceN에 대응하는 Feature N의 설정 데이터에는, 구별 정보로서 (N-1)16을 할당할 수 있다(ServiceN1에 대응하는 Feature 1의 설정 데이터에 할당되는 구별 정보의 값은 0x00). 본 실시예에 있어서, 1 바이트의 사이즈의 최대값인 0xFF는, 구획의 지정을 나타내는 정보로서 이용된다. 구획의 지정에 관해서는 후술한다. 따라서, 구별 정보에 의해 총 255 종류의 데이터를 구별할 수 있다. 통신 장치의 각각이 동일한 구별 정보를 보유하도록, 구별 정보는 사양(스펙이라고도 칭한다.)으로서 관리되는 것이 바람직하다.
도 7에 도시된 것처럼, ServiceN1 Value 내지 ServiceNx value의 각각에 대응하는 피처의 설정 데이터를 기억하도록 할당된 영역의 선두의 1 바이트에, 각 설정 데이터의 구별 정보를 기억하고, 나머지 영역에 실제 데이터를 기억한다. 한편, 구별 정보가 기억되는 위치는, 데이터 기억 영역의 선두로 한정되지 않는다.
도 9는, 본 발명의 일 실시예에 의한, 스마트폰 200이 전자 시계 100에 데이터의 송신을 지시하는 방법을 도시한 시퀀스 다이어그램이다. 본 실시예에 있어서, 전자 시계 100에 구현되는 애트리뷰트 데이터베이스는 도 7의 구조를 갖는다. 전자 시계 100이 서버로서 동작하고, 스마트폰 200이 클라이언트로서 동작한다. 전자 시계 100은, 소정의 조건이 만족된 때에(예를 들면, 미리 설정된 시각에, 또는 버튼 조작이 있었을 때)에, 애드버타이즈를 시작한다. 본 실시예에서, 전자 시계 100의 송신하는 애드버타이징 패킷의 타입은, ADV_IND다. 전자 시계 100이 Watch Feature Service를 보유하고 있음을 나타내기 위해서, 해당 애드버타이징 패킷의 AdvData는, Complete List of 128bit Service Class UUIDs를 나타내는 값으로 설정된 AD Type와, Watch Feature Service를 나타내는 128비트 UUID로 설정된 AD Data로 구성되는 AD Structure를 포함한다. 한편, 스마트폰 200은, 주기적으로, 또는 소정의 조건이 만족되었을 때에(예를 들면, 소정의 시각이 되었을 때에, 또는 버튼 조작이 있었을 때에) 스캔을 시작한다.
스마트폰 200의 컨트롤러로부터의 애드버타이징 리포트를 받은 스마트폰 200의 호스트는, 전자 시계 100과의 커넥션이 필요한 경우, 커넥션 요구(Connection Request)를 발신한다. 상기 커넥션 요구를 전자 시계 100이 수신함으로써, 두 장치가 물리적으로 접속된다. BLE 사양에 정의된 바와 같이, 커넥션 요구는, 두 장치 사이에 L2CAP 채널을 생성하기 위해서 마스터 장치가 슬레이브 장치에 송신하는 패킷이다. 그리고, 두 장치 사이에, 서비스 디스커버리가 행해진다. 서비스 디스커버리 세션에서, 스마트폰 200은, 전자 시계 100의 서비스인 Watch Feature Service에 포함되는 캐릭터리스틱의 애트리뷰트 핸들을 취득한다.
다음으로, 전자 시계 100과 스마트폰 200은, 각각의 장치가 서포트하는 MTU 사이즈를 교환한다. 구체적으로, 클라이언트인 스마트폰 200이, 최대 수신 MTU 사이즈를 서버인 전자 시계 100에 알리는 동시에, 전자 시계 100에 최대 수신 MTU 사이즈를 송신하도록 요구하기 위해서 MTU 사이즈 교환 요구(Exchange MTU Request)를 송신한다. 전자 시계 100은, 상기 MTU 사이즈 교환 요구를 수신하면, 최대 수신 MTU 사이즈를 클라이언트에게 알리기 위해서 MTU 사이즈 교환 응답(Exchange MTU Response)을 송신한다. 전자 시계 100은, 양측의 MTU 사이즈의 최소값을 갱신된 ATT_MTU로서 취득하고, 도 7의 Updated ATT_MTU의 애트리뷰트 값으로서 기억한다. 그리고, 전자 시계 100은, 갱신된 ATT_MTU를, Notification 메시지에 의해 스마트폰 200에 통지한다. 상기 Notification 메시지를 수신함으로써, 스마트폰 200이 갱신된 ATT_MTU를 취득할 수 있다.
스마트폰 200에서는, 전자 시계 100으로부터 취득하고 싶은 복수의 종류의 설정 정보의 길이로부터, 취득된 ATT_MTU(상기 갱신된 ATT_MTU)에 수용되도록, 데이터의 순서, 조합, 구획 등을 포함하는 데이터의 패키징 방법을 결정한다. 구획은, 1개의 패킷으로 통신할 데이터와, 다른 패킷으로 통신할 데이터를 구분한다. 본 실시예에서는, 하나의 패킷에 저장되는 데이터의 총 길이가, 예를 들면, 갱신된 ATT_MTU-3 이하가 되도록, 구획을 지정한다. 상기 패키징 방법에 따라서, 요구하는 데이터의 포맷이 정해진다. 스마트폰 200은, 전자 시계 100에 설정 정보의 송신을 요구하는 동시에, 요구하는 설정 정보의 데이터 포맷을 알리기 위한 메시지를 생성한다. 상술한 바와 같이, 복수의 피처의 설정 값에 대해서 하나의 핸들이 할당되고, 독출 요구는 애트리뷰트 핸들만을 파라미터로서 갖기 때문에, 본 실시예에서는, 서버인 전자 시계 100의 애트리뷰트 값을 요구하기 위해서 독출 요구를 이용할 수 없다. 따라서, 본 실시예에서, 스마트폰 200은, 설정 정보를 요구하기 위해서, 기입 코맨드(Write Command)를 사용한다. 즉, 상기 메시지로서, 애트리뷰트 핸들 파라미터와, 애트리뷰트 값 파라미터의 각각이, Request Command for Features의 캐릭터리스틱 값 핸들(0x0017)과, 상기 데? 포맷을 포함하는 코맨드 데이터로 설정된 기입 코맨드를 생성한다. 이 기입 코맨드를 수신하면, 전자 시계 100은, 캐릭터리스틱인 Request Command for Features의 캐릭터리스틱 값에, 상기 데이터 포맷을 기입한다. 이 메시지를, 피처의 설정 값을 기입하도록 요구하는 코맨드와 구분하기 위해, 이하에서는 “지시 코맨드”라고 부른다.
상기 기입 코맨드(지시 코맨드)의 애트리뷰트 값 파라미터는, 도 10에 도시된 것처럼, 1 바이트의 코맨드 유형과, 그에 이어지는 코맨드 데이터로 구성된다. 코맨드 유형은, 해당 지시 코맨드의 수신자와의 통신을 제어하기 위한 정보이며, 데이터의 교환의 방향을 나타낸다. 코맨드 유형의 하나의 예는, 도 11에 도시되어 있다. 본 예에서, 스마트폰 200이 전자 시계 100에 피처의 설정 값을 송신하도록 지시(송신 지시)하는 경우는, 코맨드 유형이 0x00으로 설정되고, 스마트폰 200이 전자 시계 100에 피처의 설정 값의 기입을 대기하도록 지시(기입 대기 지시)하는 경우는, 코맨드 유형이 0x01로 설정된다. 따라서, 스마트폰 200이 전자 시계 100에 설정 정보를 요구하는 경우(도 9)는, 상기 기입 코맨드의 코맨드 유형이 0x00으로 설정된다. 코맨드 데이터는, 취득된 ATT_MTU 사이즈에 기초해서 결정된 상기 데이터 포맷을 나타내는 데이터로서, 구별 정보를 나열한 것이며, 전자 시계 100은 코맨드 데이터의 정렬 순서(즉, 구별 정보의 배열) 및 구획 지정에 기초해서 설정 정보를 송수신한다.
송신 지시용의 지시 코맨드인 기입 코맨드의 애트리뷰트 값의 일 예는, 도 12a에 도시되어 있다. 상술한 바와 같이, 코맨드 유형은 송신 지시를 나타내는 0x00으로 설정된다. 코맨드 데이터는, Setting for Feature 1부터 Setting for Feature 4까지의 4개의 데이터를 송신하도록 지시하고, 첫번째 메시지로서 Feature 1의 설정 값과 Feature 2의 설정 값을 결합해서 송신하고, 두번째 메시지로서 Feature 3의 설정 값과 Feature 4의 설정 값을 결합해서 송신하도록 지시하고 있다. 즉, 스마트폰 200은, 전자 시계 100에 데이터 포맷을 통지함으로써, 갱신된 ATT_MTU에 수용되도록, 상기 4종류의 데이터를 2개씩 모아서 송신할 것을 지시한다. 본 실시예에서는, 하나의 패킷에 저장되는 데이터의 총 길이가, 예를 들면, (갱신된 ATT_MTU)-3 이하가 되도록, 데이터 포맷이 결정된다. 또, 데이터 포맷은, ATT_MTU 사이즈를 최대로 활용하도록 정해지는 것이 바람직하다. 구체적으로, 하나의 메시지에 ATT_MTU 사이즈의 범위 내에서 최대의 개수의 데이터가 포함되도록 데이터 포맷을 정하는 것이 바람직하다.
지시 코맨드를 수신한 전자 시계 100은, 코맨드 유형에 따라, 데이터를 송신할지, 스마트폰 200으로부터의 기입의 지시를 기다릴지를 판단한다. 도 12a의 예에서는, 코맨드 유형이 0x00으로 설정되어 있으므로, 전자 시계 100은 지시 코맨드의 코맨드 데이터인 데이터 포맷에 따라서, Setting for Feature 1부터 Setting for Feature 4를 송신하기 위한 두 개의 메시지인 Handle Value Notification 1과Handle Value Notification 2를 생성한다. 해당 Handle Value Notification은, 애트리뷰트 핸들 파라미터와, 애트리뷰트 값 파라미터의 각각이, Watch Features의 캐릭터리스틱 값 핸들(0x0017)과, 스마트폰 200에 송신할 설정 정보로 설정된다. Handle Value Notification 1과 Handle Value Notification 2의 애트리뷰트 값의 일 예는 도 12b에 도시되어 있다. 스마트폰 200으로부터 수신한 데이터 포맷에 따라서, Handle Value Notification 1의 애트리뷰트 값 파라미터에는, Setting for Feature 1과 Setting for Feature 2의 데이터가 순서대로 저장되고, Handle Value Notification 2의 애트리뷰트 값 파라미터에는, Setting for Feature 3과 Setting for Feature 4의 데이터가 순서대로 저장된다.
상기 2개의 Notification을 수신한 스마트폰 200은, 각각의 Notification에 저장되어 있는 데이터를, 지시 코맨드에 의해 지정한 순서로 결합된 데이터로서 해석하고, 4개의 feature의 설정 값을 취득한다. 여기서, Feature 1부터 Feature 4까지의 데이터는, 각각 다른 데이터 길이를 가져도 관계없지만, 이 경우는, 데이터의 해석을 용이하게 하기 위해서, 전자 시계 100과 스마트폰 200의 각각에서 각 데이터 길이를 기억하고 있는 것이 바람직하다. 이 경우, 스마트폰 200은, 데이터 포맷과 함께 데이터 길이에 기초해서, 전자 시계 100으로부터 수신되는 메시지를 해석할 수 있다. 또, 도 9는 갱신된 ATT_MTU와 설정 정보를 송신하기 위해서 Handle Value Notification을 이용하는 예를 도시했지만, 그 대신Handle Value Indication을 이용해도 좋다. 이 경우, Handle Value Indication을 수신한 스마트폰 200은, Handle Value Confirmation으로 회신한다. 특히, 설정 정보를 송신하기 위해서 Handle Value Indication을 이용하는 경우는, 전자 시계 100이 첫번째 Handle Value Indication에 대한 회신인 Handle Value Confirmation을 수신한 후에, 두번째의 Handle Value Indication을 스마트폰 200에 송신해도 좋다. 마찬가지로, 지시 코맨드인 Write Command는, Write Request로 바꿀 수도 있다. 이 경우, Write Request를 수신한 전자 시계 100은, Write Response으로 회신한다.
도 13은, 본 발명의 일 실시예에 의한 스마트폰 200이 전자 시계 100에 데이터의 기입을 지시하는 방법을 도시하는 시퀀스 다이어그램이다. 본 실시예에 있어서, 전자 시계 100에 구현되는 애트리뷰트 데이터베이스는 도 7의 구조를 갖는다. 전자 시계 100이 서버로서 동작하고, 스마트폰 200이 클라이언트로서 동작한다. 도 13에 있어서 도 9과 동일한 프로시저에 대해서는 상세한 설명을 생략한다. 전자 시계 100은, 소정의 조건이 만족되었을 때, 애드버타이즈를 시작한다. 전자 시계 100은 ADV_IND 타입의 애드버타이징 패킷을 송신한다. 한편, 스마트폰 200은 스캔을 시작한다.
스마트폰 200은, 전자 시계 100과의 커넥션이 필요한 경우, 커넥션 요구를 발신한다. 상기 커넥션 요구를 전자 시계 100이 수신함으로써, 두 장치가 물리적으로 접속된다. 그리고, 서비스 디스커버리가 행해진다. 그 다음, 전자 시계 100과 스마트폰 200은 MTU 사이즈 교환을 행하고, 전자 시계 100은, 양측의 MTU 사이즈의 최소값을 갱신된 ATT_MTU로서 취득한다. 전자 시계 100은, 갱신된 ATT_MTU를 Updated ATT_MTU의 애트리뷰트 값으로서, Notification 메시지에 의해 스마트폰 200에 통지한다.
스마트폰 200은, 전자 시계 100에 기입하고 싶은 복수의 종류의 설정 정보의 길이로부터, 취득된 ATT_MTU에 수용되도록, 데이터의 순서, 조합, 구획 등을 포함하는 데이터의 패키징 방법을 결정한다. 상기 패키징 방법에 따라서, 기입할 데이터의 포맷이 정해진다. 스마트폰 200은, 전자 시계 100에 기입 대기를 지시하는 동시에, 기입할 설정 정보의 데이터 포맷를 알리기 위한 지시 코맨드를 생성한다. 이 지시 코맨드는, 애트리뷰트 핸들 파라미터와, 애트리뷰트 값 파라미터의 각각이, Request Command for Features의 캐릭터리스틱 값 핸들(0x0015)과, 상기 데이터 포맷으로 설정된 기입 코맨드다. 이 기입 코맨드를 수신하면, 전자 시계 100은 캐릭터리스틱인 Request Command for Features의 캐릭터리스틱 값에 상기 데이터 포맷를 기입한다.
기입 대기 지시용의 지시 코맨드인 기입 코맨드의 애트리뷰트 값의 일 예는, 도 14a에 도시되어 있다. 상술한 바와 같이, 1 바이트의 코맨드 유형은 기입 대기 지시를 나타내는 0x01로 설정된다. ATT_MTU 사이즈에 따라서 결정된 데이터 포맷를 나타내는 코맨드 데이터는, Setting for Feature 1부터 Setting for Feature 4까지의 4개의 데이터를 2개의 메시지로서 송신한다는 취지를 전자 시계 100에 알린다. 구체적으로, 첫번째의 메시지에는 Feature 1의 설정 값과 Feature 2의 설정 값이 저장되고, 두 번째 메시지에는 Feature 3의 설정 값과 Feature 4의 설정 값이 저장된다는 것을 전자 시계 100에 알린다. 데이터 포맷은 ATT_MTU 사이즈를 최대로 활용하도록 정해지는 것이 바람직하다.
지시 코맨드를 수신한 전자 시계 100은, 코맨드 유형에 따라(즉, 코맨드 유형이 0x01로 설정되어 있으므로), 스마트폰 200으로부터의 기입의 지시를 대기한다. 또, 지시 코맨드의 코맨드 데이터인 데이터 포맷에 따라서, 스마트폰 200으로부터 수신되는 메시지를 해석한다.
스마트폰 200은, 상기 데이터 포맷에 따라서, 전자 시계 100에 Setting for Feature 1부터 Setting for Feature 4의 기입을 지시하기 위한 두 개의 메시지인 기입 코맨드 1(Write Command 1)과 기입 코맨드 2(Write Command 2)를 생성한다. 해당 기입 코맨드는, 애트리뷰트 핸들 파라미터와, 애트리뷰트 값 파라미터의 각각이, Watch Features의 캐릭터리스틱 값 핸들(0x0017)과, 기입하고 싶은 설정 정보로 설정된다. Write Command 1과 Write Command 2의 애트리뷰트 값의 하나의 예는 도 14b에 도시되어 있다. Write Command 1의 애트리뷰트 값 파라미터에는, Setting for Feature 1과 Setting for Feature 2의 데이터가 순서대로 저장되고, Write Command 2의 애트리뷰트 값 파라미터에는, Setting for Feature 3과 Setting for Feature 4의 데이터가 순서대로 저장된다.
전자 시계 100은, 스마트폰 200으로부터 Write Command 1과 Write Command 2를 수신하면, 지시 코맨드로부터 취득한 데이터 포맷에 따라, 상기 메시지를 해석한다. 구체적으로, Write Command 1을 해석해서, 해당 메시지의 애트리뷰트 값에 저장되어 있는 2개의 데이터를, Feature 1과 Feature 2의 설정 값으로서 기입한다(도 7을 참조). 즉, Feature 1과 Feature 2의 설정 값을, Wriet Command 1의 애트리뷰트 값에 저장되어 있는 2개의 데이터로 갱신한다. 또, Write Command 2를 해석해서, 해당 메시지의 애트리뷰트 값에 저장되어 있는 2개의 데이터를, Feature 3과 Feature 4의 설정 값으로서 기입한다. 즉, Feature 3과 Feature 4의 설정 값을, Wriet Command 2의 애트리뷰트 값에 저장되어 있는 2개의 데이터로 갱신한다. 상기 데이터는 전자 시계 100의 메모리(예를 들어, 메모리 108)에 기억될 수 있다. 상기 메모리에 기억되는 데이터에는 상기 복수의 구별 정보의 배열에 따라 메모리 어드레스가 할당된다.
여기서, Feature 1부터 Feature 4까지의 데이터는, 각각 다른 데이터 길이를 가져도 상관없지만, 이 경우는, 데이터의 해석을 용이하게 하기 위해서, 전자 시계 100과 스마트폰 200의 각각에서 각 데이터 길이를 기억하고 있는 것이 바람직하다. 이 경우, 전자 시계 100은, 데이터 포맷와 함께 데이터 길이에 기초해서, 스마트폰 200으로부터 수신되는 메시지를 해석할 수 있다. 도 13은 갱신된 ATT_MTU를 송신하기 위해서 Handle Value Notification을 이용하는 예를 도시했지만, 그 대신에 Handle Value Indication을 이용해도 좋다. 또, Write Command 대신, Write Request를 이용해도 좋다.
도 15는 본 발명의 일 실시예에 의한 전자 시계 100의 기능 블록도이다. 전자 시계 100은, BLE 통신 모듈 1001과, 기억 모듈 1002와, 애드버타이즈 모듈 1003과, 커넥션 제어 모듈 1004와, MTU 정보 관리 모듈 1005와, 데이터 패킷 생성 모듈 1006과, 데이터 패킷 해석 모듈 1007과, 애트리뷰트 독출 모듈 1008과, 애트리뷰트 기입 모듈 1009를 포함한다. 모듈 1001 내지 1009는, 버스에 의해 상호 접속된다. 또, 모듈 1001 내지 1009는, 소프트웨어, 하드웨어, 또는 이들의 조합에 의해 구성된다. 예를 들면, 상기 모듈의 적어도 일부를 FPGA로서 구현할 수 있다.
BLE 통신 모듈 1001은, 다른 장치(본 실시예에서는, 스마트폰 200)와의 BLE 통신을 행하고, 다른 장치에 신호를 송신하거나, 그로부터 신호를 수신할 수 있다. 기억 모듈 1002는, BLE 통신 모듈 1001이 이용하는 네트워크 정보, MTU 정보, 애트리뷰트 데이터베이스, 데이터 포맷 등을 기억한다. 예를 들면, 기억 모듈 1002는, 1개 이상의 메모리로 구성된다. 또, 애트리뷰트 데이터베이스에 저장되어 있는 피처의 설정 값의 길이가 각각 다른 경우에는, 기억 모듈 1002에, 각 피처의 설정 값의 길이를 기억해 두는 것이 바람직하다.
애드버타이즈 모듈 1003은, 애드버타이징 패킷을 생성하고, 생성된 애드버타이징 패킷을 발신함으로써 애드버타이즈를 행한다. 애드버타이즈 모듈 1003은, 소정의 조건이 만족되었을 때 애드버타이즈를 시작한다. 커넥션 제어 모듈 1004는, 다른 장치로부터 커넥션 요구가 수신되면 해당 장치와의 커넥션을 구축하거나, 다른 장치와의 사이에서 확립된 커넥션을 절단하기 위한 커넥션 절단 요구(Disconnect Request)를 생성해서 상기 다른 장치에 송신한다.
MTU 정보 관리 모듈 1005는, 다른 장치와의 MTU 사이즈 교환 절차에 의해 갱신된 ATT_MTU를 취득하고, 이를 기억 모듈 1002에 기억된 애트리뷰트 데이터베이스의 캐릭터리스틱 Updated ATT_MTU의 캐릭터리스틱 값으로서 저장한다. 갱신된 ATT_MTU는, 데이터 패킷 생성 모듈 1006에 전달되고, 통지 메시지에 의해 다른 장치에 통지된다.
데이터 패킷 생성 모듈 1006은, 전자 시계 100과 다른 장치와의 사이의 커넥션이 확립된 후에, 상기 다른 장치에 송신할 데이터 패킷를 생성한다. 특히, 다른 장치로부터 수신한 송신 지시용의 지시 코맨드로부터 취득한 데이터 포맷에 기초해서, 상기 다른 장치에 송신할 메시지(도 9의 예에 있어서, Handle Value Notification 1과 Handle Value Notification 2)를 생성한다. 데이터 패킷 해석 모듈 1007은, 다른 장치로부터 수신된 데이터 패킷를 해석한다. 구체적으로, 데이터 패킷의 PDU의 타입을 판별하고, PDU에 저장되어 있는 데이터를 추출한다. 특히, 다른 장치로부터 수신한 기입 대기 지시용의 지시 코맨드로부터 취득한 데이터 포맷에 기초해서, 상기 다른 장치로부터의 메시지(도 13의 예에 있어서, Write Command 1과 Write Command 2)에 포함되어 있는 데이터를 해석한다.
애트리뷰트 독출 모듈 1008은, 기억 모듈 1002에 기억되어 있는 애트리뷰트 데이터베이스의 애트리뷰트 값을 독출한다. 특히, 다른 장치로부터 송신 지시용의 지시 코맨드를 수신한 경우, 애트리뷰트 데이터베이스의 Watch Features(도 7)의 애트리뷰트 값으로부터 상기 다른 장치가 요구하는 feature의 설정 값을 독출한다. 애트리뷰트 기입 모듈 1009는, 기억 모듈 1002에 기억되어 있는 애트리뷰트 데이터베이스에 애트리뷰트 값을 기입한다. 특히, 다른 장치로부터 기입 대기 지시용의 지시 코맨드를 수신한 경우, 그에 이어서 상기 다른 장치로부터 수신되는 데이터를, 애트리뷰트 데이터베이스의 Watch Features의 애트리뷰트 값에 기입한다. 이에 의해, 애트리뷰트 데이터베이스에 기억되어 있는 대응하는 피처의 설정 값을, 상기 수신된 데이터로 갱신한다.
도 16은 본 발명의 일 실시예에 의한 스마트폰 200의 기능 블록도이다. 스마트폰 200은, BLE 통신 모듈 2001과, 기억 모듈 2002와, 스캔 모듈 2003과, 커넥션 제어 모듈 2004와, 데이터 포맷 결정 모듈 2005와, 데이터 패킷 생성 모듈 2006과, 데이터 패킷 해석 모듈 2007을 포함한다. 데이터 패킷 생성 모듈 2006은, 지시 코맨드 생성 모듈 2008을 포함한다. 모듈 2001 내지 2008은 버스에 의해 상호 접속된다. 또, 모듈 2001 내지 2008은, 소프트웨어, 하드웨어, 또는 이들의 조합에 의해 구성된다. 예를 들면, 상기 모듈의 적어도 일부를 FPGA로서 구현할 수 있다.
BLE 통신 모듈 2001은, 다른 장치(본 실시예에서는, 전자 시계 100)와의 BLE 통신을 행하고, 다른 장치에 신호를 송신하거나, 그로부터 신호를 수신할 수 있다. 기억 모듈 2002는, BLE 통신 모듈 2001이 이용하는 네트워크 정보, MTU 정보, 설정 정보, 데이터 포맷 등을 기억한다. MTU 정보는, 갱신된 ATT_MTU를 포함한다. 상기의 실시예에 있어서, 갱신된 ATT_MTU는, 다른 장치로부터 통지된다. 예를 들면, 기억 모듈 2002는, 1개 이상의 메모리로 구성된다. 또, 설정 정보인 피처의 설정 값의 길이가 각각 다른 경우에는, 기억 모듈 2002에, 각 피처의 설정 값의 길이를 기억해 두는 것이 바람직하다.
스캔 모듈 2003은, 소정의 시간폭 동안, 애드버타이징 패킷을 스캔한다. 스캔 모듈 2003은, 소정의 조건이 만족되었을 때, 스캔을 시작한다. 또, 스캔 기간 동안에 수신된 애드버타이징 패킷을 디코딩(decoding)해서 상기 애드버타이징 패킷에 저장되어 있는 데이터를 추출한다. 커넥션 제어 모듈 2004는, 애드버타이징 패킷을 발신하는 다른 장치 중에서 적당한 장치에 커넥션을 요구하기 위한 커넥션 요구를 생성하고, 이를 상기 장치에 송신한다. 또, 커넥션이 확립되어 있는 다른 장치로부터 커넥션 절단 요구가 수신되면, 해당 장치와의 커넥션을 절단한다.
데이터 포맷 결정 모듈 2005는, 기억 모듈 2002에 기억되어 있는 갱신된 ATT_MTU에 기초해서 데이터 포맷를 결정한다. 데이터 포맷 결정 모듈 2005는, 도 12a 및 도 14a에 도시된 바와 같이, 다른 장치와 송수신할 복수의 종류의 설정 정보의 길이로부터, 갱신된 ATT_MTU에 수용되도록, 데이터의 순서, 조합, 구획 등을 포함하는 데이터 포맷를 결정한다. 결정된 데이터 포맷은, 지시 코맨드 생성 모듈 2008에 전달되고, 지시 코맨드에 의해 다른 장치에 통지된다. 상기 다른 장치는, 통지된 데이터 포맷에 기초해서, 스마트폰 200에 송신할 메시지를 생성하거나, 스마트폰 200으로부터 수신한 메시지를 해석한다.
데이터 패킷 생성 모듈 2006은, 스마트폰 200과 다른 장치 사이의 커넥션이 확립된 후에 상기 다른 장치에 송신할 데이터 패킷를 생성한다. 데이터 패킷 생성 모듈 2006은, 지시 코맨드 생성 모듈 2008을 포함한다. 지시 코맨드 생성 모듈 2008은, 다른 장치에 송신할 송신 지시용의 지시 코맨드(예를 들면, 도 12a) 또는 기입 대기 지시용의 지시 코맨드(예를 들면, 도 14a)를 생성한다. 지시 코맨드의 애트리뷰트 값에는, 코맨드 유형(송신 지시인지 기입 대기 지시인지)과, 코맨드 데이터(데이터 포맷 결정 모듈 2005에 의해 결정된 데이터 포맷)가 저장된다.
데이터 패킷 해석 모듈 2007은, 다른 장치로부터 수신된 데이터 패킷를 해석한다. 구체적으로, 데이터 패킷의 PDU의 타입을 판별하고, PDU에 저장되어 있는 데이터를 추출한다. 특히, 송신 지시용의 지시 코맨드에 응답해서 다른 장치가 송신한 메시지에 포함되어 있는 데이터를, 기억 모듈 2002에 기억되어 있는 데이터 포맷에 기초해서 해석한다.
도 17은, 본 발명의 일 실시예에 의한 전자 시계 100에 있어서의 통신 프로세스를 실현하기 위한 알고리즘을 나타내는 흐름도이다. 본 실시예에 있어서, 전자 시계 100에 구현되는 애트리뷰트 데이터베이스는 도 7의 구조를 갖는다. 또한, 전자 시계 100이 서버로서 동작하고, 스마트폰 200이 클라이언트로서 동작한다. 이하, 도 9 내지 도 14를 함께 참조해서, 도 17을 상세히 설명한다.
전자 시계 100은, 애드버타이즈를 개시하기 위한 소정의 조건이 만족되었는지 아닌지를 판단한다(단계 S2202). 상기 소정의 조건은, 예를 들면, 미리 설정된 시각이 되었는지, 또는 버튼 조작이 있었는지 등이다. 상기 소정의 조건이 만족되지 않은 경우(단계 S2202: 아니오), 전자 시계 100은 애드버타이즈를 개시하지 않는다. 상기 소정의 조건이 만족된 경우(단계 S2202: 예), 애드버타이즈 시간을 계측하기 위한 타이머를 시작하고(단계 S2204), 애드버타이즈를 개시한다(단계 S2206).
계속해서, 타이머의 시간이 소정 시간 Ta(애드버타이즈 시간폭)에 도달했는지 아닌지를 판단한다(단계 S2208). 타이머의 시간이 Ta에 도달하지 않은 경우, 즉, 타임 아웃이 일어나지 않은 경우는(단계 S2208: 아니오), 프로세스는 단계 S2212로 이동한다. 타이머의 시간이 Ta에 도달한 경우, 즉, 타임 아웃이 일어난 경우는(단계 S2208: 예), 애드버타이즈를 정지하고(단계 S2210), 프로세스는 단계 S2202로 되돌아간다. 단계 2212에 있어서, 전자 시계 100은, 스마트폰 200으로부터 커넥션 요구가 수신되었는지 아닌지를 판단한다. 커넥션 요구가 수신되지 않은 경우(단계 S2212: 아니오), 프로세스는 단계 S2208로 되돌아간다. 커넥션 요구가 수신된 경우(단계 S2212: 예), 애드버타이즈를 정지하고, 타이머의 시간 계측을 정지한다(단계 S2214). 도 17에서 서비스 디스커버리의 공정은 생략한다.
다음으로, 전자 시계 100은, 스마트폰 200으로부터 최대 수신 MTU 사이즈를 알리는 MTU 사이즈 교환 요구를 수신한다(단계 S2216). 그에 대한 회신으로서, 전자 시계 100은, 최대 수신 MTU 사이즈를 알리기 위한 MTU 사이즈 교환 응답을 스마트폰 200에 송신한다(단계 S2218). 전자 시계 100은, 양측의 MTU 사이즈의 최소값을 갱신된 ATT_MTU로서 취득하고, 갱신된 ATT_MTU를 스마트폰 200에 통지한다(단계 S2220). 구체적으로, 갱신된 ATT_MTU를 애트리뷰트 데이터베이스의 Updated ATT_MTU의 애트리뷰트 값으로서 저장하고, 이 애트리뷰트 값을 고지 메시지에 의해 스마트폰 200에 통지한다.
전자 시계 100은, 애트리뷰트 핸들 파라미터가, Request Command for Features의 캐릭터리스틱 값 핸들로 설정된 기입 코맨드가 수신되었는지 아닌지를 판단한다(단계 S2222). 상기 기입 코맨드를 수신한 경우(단계 S2222: 예), 이 메시지를 지시 코맨드로 판단한다. 또한, 해당 메시지의 애트리뷰트 값으로서 저장되어 있는 코맨드 유형과, 코맨드 데이터인 데이터 포맷를 애트리뷰트 데이터베이스의 Request Command for Features의 캐릭터리스틱 값에 기입한다. 코맨드 유형을 확인해서(단계 S2224), 코맨드 유형이 0x00(송신 지시)인 경우는, 프로세스가 단계 S2226으로 이동하고, 코맨드 유형이 0x01(기입 대기 지시)인 경우는, 프로세스가 단계 S2232로 이동한다.
코맨드 유형이 0x00인 경우, 전자 시계 100은, 지시 코맨드(송신 지시)에 따라서, 스마트폰 200이 요구하는 피처의 설정 값을 통지할 메시지를 준비한다(단계 S2226). 구체적으로, 상기 지시 코맨드로부터 취득한 데이터 포맷의 데이터 순서, 조합, 구획 등에 기초해서, 필요한 개수의 고지 메시지를 생성한다. 도 12a 및 12b의 예에서는, Feature 1과 Feature 2의 설정 값을 포함하는 Handle Value Notification 1을 생성해서 스마트폰 200에 송신하고(단계 S2228), Feature 3과 Feature 4의 설정 값을 포함하는 Handle Value Notification 2를 생성해서 송신한다(단계 S2230). 이에 의해, 프로세스가 종료된다.
코맨드 유형이 0x01인 경우, 전자 시계 100은, 지시 코맨드(기입 대기 지시)에 따라서, 데이터 기입을 지시하는 기입 코맨드의 수신을 대기한다(단계 S2232). 도 14a 및 14b의 예에서는, 스마트폰 200이 기입하고 싶은 Feature 1과 Feature 2의 설정 값을 포함하는 Write Command 1을 수신하고(단계 S2234), Feature 3과 Feature 4의 설정 값을 포함하는 Write Command 2를 수신한다(단계 S2236). 전자 시계 100은, 지시 코맨드로부터 취득한 데이터 포맷의 데이터 순서, 조합, 구획 등에 기초해서, 스마트폰 200으로부터 수신한 Write Command 1과 Write Command 2의 데이터를 해석하고, Feature 1부터 Feature 4의 설정 값을 기입한다(단계 S2238). 이에 의해, 프로세스가 종료된다.
도 18 및 도 19는, 본 발명의 일 실시예에 의한 스마트폰 200에 있어서의 통신 프로세스를 실현하기 위한 알고리즘을 나타내는 흐름도이다. 도 18은, 스마트폰 200이 전자 시계 100에 데이터의 송신을 지시하는 프로세스를 도시한다. 이하, 도 9 내지 도 12를 참조해서, 도 18을 상세히 설명한다. 스마트폰 200은, 스캔 시간을 계측하기 위한 타이머를 시작하고(단계 S2302), 스캔을 개시한다(단계 S2304). 상술한 바와 같이, 스마트폰 200은, 주기적으로, 또는 소정의 조건이 만족되었을 때(예를 들면, 소정의 시각이 되었을 때, 또는 버튼 조작이 있었을 때), 스캔을 행한다.
스마트폰 200은, 타이머의 시간이 소정의 시간 Ts(스캔 시간폭)에 도달했는지 아닌지를 판단한다(단계 S2306). 타이머의 시간이 Ts에 도달하지 않은 경우, 즉, 타임 아웃이 일어나지 않은 경우는(단계 S2306: 아니오), 프로세스는 단계 2310으로 이동한다. 타이머의 시간이 Ts에 도달한 경우, 즉, 타임 아웃이 일어난 경우에는(단계 S2306: 예), 스캔을 정지한다(단계 S2308). 단계 2310에 있어서, 스마트폰 200의 호스트는 컨트롤러로부터 애드버타이징 리포트를 받는다. 계속해서, 스마트폰 200은, 전자 시계 100으로부터 ADV_IND 타입의 애드버타이징 패킷이 수신되었는지 아닌지를 판단한다(단계 S2312). ADV_IND 타입의 애드버타이징 패킷이 수신되지 않은 경우(단계 S2312: 아니오), 프로세스는 단계 S2306으로 되돌아간다. ADV_IND 타입의 애드버타이징 패킷이 수신된 경우(단계 S2312:Y 예), 스마트폰 200은, 스캔을 정지하고, 타이머의 시간 계측을 정지한다(단계 S2314). 다음으로, 전자 시계 100에 커넥션 요구를 송신한다(단계 S2316). 도 18에서도 서비스 디스커버리의 공정은 생략한다.
상기의 과정에 의해, 두 개의 장치 사이의 커넥션이 확립되면, 스마트폰 200은, 최대 수신 MTU 사이즈를 알리기 위한 MTU 사이즈 교환 요구를 전자 시계 100에 송신하고(단계 S2318), 전자 시계 100으로부터, 최대 수신 MTU 사이즈를 알리는 MTU 사이즈 교환 응답을 수신한다(단계 S2320). 그 다음, 전자 시계 100으로부터, 애트리뷰트 값 파라미터가, 갱신된 ATT_MTU(즉, Updated ATT_MTU의 캐릭터리스틱 값)로 설정된 고지 메시지를 수신한다(단계 S2322).
스마트폰 200은, 수신한 고지 메시지로부터 취득된 ATT_MTU에 기초해서, 송신 지시용의 지시 코맨드인 기입 코맨드를 작성한다(단계 S2324). 구체적으로, 스마트폰 200은, 취득하고 싶은 복수의 종류의 설정 정보의 길이로부터, 상기 갱신된 ATT_MTU에 수용되도록, 데이터의 순서, 조합, 구획 등을 포함하는 데이터의 포맷을 결정한다. 상기 기입 코맨드(지시 코맨드)의 애트리뷰트 핸들 파라미터는 Request Command for Features의 캐릭터리스틱 값 핸들로 설정되고, 애트리뷰트 값 파라미터는, 코맨드 유형인 0x00(송신 지시)과, 그에 이어지는 데이터의 포맷으로 구성된다(도 12a를 참조). 그리고, 상기 기입 코맨드를 전자 시계 100에 송신한다(단계 S2326).
다음으로, 전자 시계 100으로부터, 상기 지시 코맨드에 의해 요구한 설정 정보를 통지하는 메시지를 수신한다. 도 12a 및 12b의 예에서는, Feature 1과 Feature 2의 설정 값을 포함하는 Handle Value Notification 1을 수신하고(단계 S2328), Feature 3과 Feature 4의 설정 값을 포함하는 Handle Value Notification 2를 수신한다(단계 S2330). 스마트폰 200은, 수신한 메시지를, 상기 데이터 포맷에 기초해서, 해석하고 처리한다(단계 S2332). 구체적으로, 수신한 각각의 Handle Value Notification의 애트리뷰트 값에 저장되어 있는 데이터를, 상기 데이터 포맷의 순서로 결합된 데이터로서 해석하고, 4개의 feature의 설정 정보를 취득해서 메모리(예를 들면, 도 2b의 208)에 저장한다. 이에 의해, 프로세스가 종료된다.
도 19는, 본 발명의 일 실시예에 의한 스마트폰 200에 있어서 전자 시계 100에 데이터의 기입을 지시하는 통신 프로세스를 실현하기 위한 알고리즘을 도시하는 흐름도이다. 이하, 도 10 내지 도 14를 함께 참조해서, 도 19를 상세히 설명한다. 도 19에 있어서, 도 18과 동일한 처리 내용에는 동일한 부호를 붙여서 상세한 설명을 생략한다.
스마트폰 200은, 단계 S2322에서 수신한 고지 메시지로부터 취득된 ATT_MTU에 기초해서, 기입 대기 지시용의 지시 코맨드인 기입 코맨드를 작성한다(단계 S2424). 구체적으로, 스마트폰 200은, 기입하고 싶은 복수의 종류의 설정 정보의 길이로부터, 상기 갱신된 ATT_MTU에 수용되도록, 데이터의 순서, 조합, 구획 등을 포함하는 데이터의 포맷을 결정한다. 상기 기입 코맨드(지시 코맨드)의 Attribute Handle 파라미터는 Request Command for Features의 캐릭터리스틱 값 핸들로 설정되고, Attribute Value 파라미터는, 코맨드 유형인 0x01(기입 대기 지시)과, 그에 이어지는 데이터의 포맷으로 구성된다(도 14a를 참조). 그리고, 상기 기입 코맨드를, 전자 시계 100에 송신한다(단계 S2426).
다음으로, 설정 정보의 기입을 지시하는 메시지인 기입 코맨드를 생성하고, 전자 시계 100에 송신한다. 해당 기입 코맨드는, Attribute Handle 파라미터와, Attribute Value 파라미터의 각각이, Watch Features의 캐릭터리스틱 값 핸들과, 기입하고 싶은 설정 정보로 설정된다. 도 14a 및 14b의 예에서는, Feature 1과 Feature 2의 설정 값을 순서대로 저장한 Write Command 1을 송신하고(단계 S2428), Feature 3과 Feature 4의 설정 값을 순서대로 저장한 Write Command 2를 송신한다(단계 S2430). 이에 의해, 프로세스가 종료된다.
도 17 내지 도 19에 있어서, Write Command와 Handle Value Notification의 각각은, Write Request와 Handle Value Indication으로 바꿀 수 있다. 도 17 내지 도 19에 도시된 실시예에 의하면, MTU 사이즈를 최대한으로 활용할 수 있도록 데이터를 모아서 송수신하기 위해서, 클라이언트인 스마트폰 200이 서버인 전자 시계 100에 지시 코맨드를 송신해서 데이터의 트랜잭션을 억제한다. 데이터를 모아서 송수신함으로써, 통신량(회수)을 삭감하고, 소비 전력을 억제할 수 있다.
<제2 실시예>
상기 실시예에서는, 스마트폰 200의 제약에 의해, 접속시에 MTU 사이즈 교환이 반드시 실행되는 것과, 호스트가 MTU 사이즈 교환의 결과로서 갱신된 ATT_MTU를 컨트롤러로부터 수취하는 수단이 없는 것을 상정했다. 이러한 제약이 없는 경우에는, 도 20에 도시된 것처럼, 필요할 때에만 MTU 사이즈 교환을 실행한다.
도 20은, 본 발명의 일 실시예에 의한 스마트폰 200에 있어서의 통신 프로세스를 실현하기 위한 알고리즘을 도시하는 흐름도이다. 도 20은, 스마트폰 200이, 전자 시계 100에 데이터의 송신을 지시하는 프로세스를 도시한다. 도 20에 있어서, 도 18과 동일한 처리 내용에는 동일한 부호를 붙여서, 설명을 생략한다.
두 장치 사이의 커넥션이 확립되면, 스마트폰 200은, 요구하는 데이터의 합계 사이즈 M을 산출한다(단계 S2518). 그리고, M이 디폴트 ATT_MTU - 3, 즉, 20옥텟에 수용될지 여부를 판단한다(단계 S2520). M이 20옥텟을 넘는 경우에는(단계 S2520: 아니오), 단계 S2532로 이동한다. M이 20옥텟을 넘지 않는 경우에는(단계 S2520: 예), 송신 지시용의 지시 코맨드인 기입 코맨드를 작성해서(단계 S2324), 전자 시계 100에 송신한다(단계 S2326).
그 후, 2개의 Notification 메시지를 수신하는데(S2328, S2330), 메시지의 개수, 즉 데이터의 구획은, ATT_MTU, 사이즈 M, 데이터의 종류의 수, 등에 따라서 정해질 수 있다. 스마트폰 200은, 수신한 메시지를, 상기 데이터 포맷에 기초해서 해석하고 처리한다(단계 S2530). 구체적으로, 수신한 각각의 Handle Value Notification의 애트리뷰트 값에 저장되어 있는 데이터를, 상기 데이터 포맷의 순서로 결합된 데이터로 해석하고, 설정 정보를 취득해서 메모리(예를 들면, 도 2b의 208)에 저장한다. 이에 의해, 프로세스가 종료된다.
한편, M이 20옥텟을 넘는 경우에는(단계 S2520: 아니오), 단계 S2532로 이동해서 MTU 사이즈 교환을 실시한다. 스마트폰 200은, 최대 수신 MTU 사이즈를 알리기 위한 MTU 사이즈 교환 요구를 전자 시계 100에 송신하고(단계 S2532), 전자 시계 100으로부터, 최대 수신 MTU 사이즈를 알리는 MTU 사이즈 교환 응답을 수신한다(단계 S2534). 다음으로, 자신의 최대 수신 MTU 사이즈와, 전자 시계 100의 최대 수신 MTU를 비교해서, 그 최소값을 갱신된 ATT_MTU로서 취득한다(단계 S2536).
본 실시예에 의하면, MTU 사이즈 교환에 관련된 데이터의 트랜잭션을 더욱 삭감하는 것이 가능해진다.
<제3 실시예>
도 21은 본 발명의 다른 실시예에 의한 애트리뷰트 데이터베이스의 일 예를 도시한다. 도 7의 애트리뷰트 데이터베이스는, 전자 시계 100이 데이터를 송수신할 포맷을 지정하는 지시 코맨드를 기입하기 위한 하나의 캐릭터리스틱인 Request Command for Features를 포함한다. 이에 대해서, 도 21의 실시예에서는, 데이터 송신용의 포맷을 기입하기 위한 캐릭터리스틱인 Read Command for Features와, 데이터 기입용의 포맷을 기입하기 위한 캐릭터리스틱인 Write Command for Features를 포함한다. 또, 본 실시예에서는, 도 10에서 설명한 코맨드 유형을 이용하지 않는다. 그 대신, 스마트폰 200이 전자 시계 100에 피처의 설정 값을 송신하도록 지시하는 경우에는, 송신 지시용의 지시 코맨드로서, Attribute Handle 파라미터와 Attribute Value 파라미터의 각각이, Read Command for Features의 캐릭터리스틱 값의 핸들(0x0015)과, 송신할 데이터의 포맷으로 설정된 Write Command를 송신한다. 스마트폰 200이 전자 시계 100에 피처의 설정 값의 기입을 대기하도록 지시하는 경우에는, 기입 대기 지시용의 지시 코맨드로서, Attribute Handle 파라미터와 Attribute Value 파라미터의 각각이, Write Command for Features의 캐릭터리스틱 값의 핸들(0x0017)과, 기입할 데이터의 포맷으로 설정된 Write Command를 송신한다.
전자 시계 100은, Attribute Handle 파라미터가, Read Command for Features의 캐릭터리스틱 값의 핸들로 설정된 기입 코맨드를 수신하면, 이 기입 코맨드를 송신 지시용의 지시 코맨드로 판단하고, Attribute Value 파라미터인 데이터 포맷을 Read Command for Features의 캐릭터리스틱 값으로서 저장한다. 그리고, 이 데이터 포맷에 기초해서, 스마트폰 200에 송신할 메시지를 생성한다.
전자 시계 100은, Attribute Handle 파라미터가, Write Command for Features의 캐릭터리스틱 값의 핸들로 설정된 기입 코맨드를 수신하면, 이 기입 코맨드를 기입 대기 지시용의 지시 코맨드로 판단하고, Attribute Value 파라미터인 데이터 포맷을 Write Command for Features의 캐릭터리스틱 값으로서 저장한다. 그리고, 이 데이터 포맷에 기초해서, 스마트폰 200으로부터 수신되는 메시지를 해석한다.
본 발명의 상기 복수의 실시예에 의하면, 모든 피처의 값을 통합형 캐릭터리스틱인 Watch Features를 이용해서 관리함으로써, 서비스 디스커버리에 소요되는 시간을 단축하고, 통신 회수를 절감한다. 또, 새로운 피처가 부가되어도 서비스나 캐릭터리스틱을 추가할 필요가 없다. 서버 장치에, 현재의 버전의 사양에 의해 규정되어 있는 피처를 추가하려고 하는 경우는, 해당 피처에 대응하는 구별 정보와 애트리뷰트를 추가하면 된다. 이 경우는, 피처의 추가를 위한 사용자 프로그래밍 시에 상기 피처에 따라 구별 정보가 자동적으로 부여되도록 통신 장치의 펌웨어가 설계되어 있으면 사용자의 편의성을 높일 수 있다. 또, 현재 버전의 사양에 의해 규정되어 있지 않은 새로운 피처를 사용자가 추가할 수 있도록 펌웨어가 설계되어도 좋다. 이 경우는, 해당 피처의 설정 값을 구별하기 위한 새로운 구별 정보를 생성한다. 새롭게 생성되는 구별 정보는, 다른 피처의 설정 값에 부여된 구별 정보와 다른 고유의 값을 갖는 것이 바람직하다. 한편, 사용자가 표준 그룹이 관리하는 웹 사이트를 통해서 구별 정보를 추가할 수 있도록 하는 것도 가능하다. 새로운 구별 정보가 추가된 사양은, 펌웨어의 업데이트 등에 의해 통신 장치에 적용될 수 있다.
이상, 본 발명을 블루투스, 특히 BLE에 적용한 실시예들에 대해서 설명했지만, 본 발명의 적용 분야는 이것으로 한정되지 않고, 예를 들면, 다른 무선 통신 기술에도 적용가능하다. 특히, MTU를 이용하는 무선 통신 기술에 적용가능하다.
본 발명이 속하는 기술분야에 있어서의 통상의 지식을 가진 자는, 상기 설명 및 관련 도면으로부터 본 발명의 많은 변형 및 다른 실시예를 도출할 수 있다. 따라서, 본 발명은 공개된 특정한 실시예로 한정되지 않는다. 본 명세서에서는, 복수의 특정 용어가 사용되고 있지만, 이들은 일반적인 의미로서 단지 설명의 목적을 위하여 사용되었을 뿐이고, 발명을 제한할 목적으로 사용된 것은 아니다. 첨부의 특허청구의 범위 및 그 균등물에 의해 정의되는 일반적인 발명의 개념 및 사상을 벗어나지 않는 범위에서 다양한 변형이 가능하다.

Claims (21)

  1. 통신 패킷을 다른 통신 장치와 송수신하는 송수신기와,
    프로세서를 포함하고,
    상기 프로세서는, 상기 송수신기를 통해서 상기 다른 통신 장치로부터, 데이터의 패키징 방법을 나타내는 제1 정보를 포함하는 패킷을 수신하고, 상기 제1 정보에 대응하는 데이터를 상기 송수신기를 통해서 상기 다른 통신 장치와 통신하고,
    상기 데이터의 패키징 방법은, 상기 통신 장치에 기입되어야 하는 복수의 종류의 설정 정보의 길이로부터, 두 통신 장치 간에 송신되는 패킷의 최대 사이즈에 수용되도록 결정되는, 데이터의 순서, 조합, 구획을 포함하는,
    통신 장치.
  2. 제1항에 있어서,
    상기 프로세서는, 상기 송수신기를 통해서 상기 다른 통신 장치로부터 통신 제어에 관한 제2 정보를 수신하고, 수신한 상기 제2 정보에 기초해서 상기 송수신기를 제어하는, 통신 장치.
  3. 제2항에 있어서,
    상기 제2 정보가 제1 값을 갖는 경우에는, 상기 프로세서가, 상기 제1 정보에 기초해서, 상기 다른 통신 장치에 송신할 하나 이상의 패킷을 생성하고,
    상기 제2 정보가 상기 제1 값과 다른 제2 값을 갖는 경우에는, 상기 송수신기가, 상기 다른 통신 장치로부터의 패킷의 수신을 대기하는, 통신 장치.
  4. 제3항에 있어서,
    메모리를 더 포함하고,
    상기 프로세서는,
    상기 제2 정보가 상기 제2 값을 갖는 경우에, 상기 제1 정보에 기초해서, 상기 다른 통신 장치로부터 수신된 소정의 개수의 패킷에 포함되어 있는 데이터를, 상기 메모리에 기억시키는, 통신 장치.
  5. 제3항에 있어서,
    메모리를 더 포함하고,
    상기 메모리는, 복수의 피처를 구별하는 구별 정보와, 각각의 피처의 설정 값을 기억하고,
    상기 프로세서는,
    상기 제2 정보가 상기 제1 값을 갖는 경우에, 각각이 하나 이상의 피처의 설정 값을 포함하는 소정의 개수의 패킷을 생성하고,
    상기 제2 정보가 상기 제2 값을 갖는 경우에, 상기 제1의 정보에 기초해서, 상기 다른 통신 장치로부터 수신된 소정의 개수의 패킷을 해석하는, 통신 장치.
  6. 제5항에 있어서,
    상기 제1 정보는, 하나 이상의 구별 정보를 포함하는, 통신 장치.
  7. 제5항에 있어서,
    상기 제1 정보는, 복수의 구별 정보와, 구획 정보를 포함하고,
    상기 구획 정보는, 하나의 패킷으로 통신할 데이터와, 다른 패킷으로 통신할 데이터를 구분하는 것을 나타내는, 통신 장치.
  8. 제7항에 있어서,
    상기 다른 통신 장치와 통신할 패킷의 수는, 상기 제1 정보에 있어서의 상기 구획 정보와 상기 구별 정보의 배치에 기초해서 정해지는, 통신 장치.
  9. 제6항에 있어서,
    상기 프로세서는, 상기 제2 정보가 상기 제1 값을 갖는 경우에, 상기 제1 정보에 포함되어 있는 복수의 구별 정보의 순서대로, 상기 복수의 구별 정보에 대응하는 복수의 피처의 설정 값을 포함하는 소정의 개수의 패킷을 생성하는, 통신 장치.
  10. 제6항에 있어서,
    상기 프로세서는, 상기 제2 정보가 상기 제2 값을 갖는 경우에, 상기 제1 정보에 포함되어 있는 복수의 구별 정보의 순서대로, 상기 다른 통신 장치로부터 수신된 소정의 개수의 패킷에 포함되어 있는 데이터를, 상기 복수의 구별 정보에 대응하는 복수의 피처의 설정 값으로서, 상기 메모리에 기억시키고,
    상기 메모리에 기억되는 데이터에는 상기 복수의 구별 정보의 배열에 따라 메모리 어드레스가 할당되는,
    통신 장치.
  11. 제5항에 있어서,
    상기 메모리는, 상기 복수의 피처의 설정 값의 각각의 길이를 나타내는 길이 정보를 기억하는, 통신 장치.
  12. 제11항에 있어서,
    상기 프로세서는, 상기 제2 정보가 상기 제1 값을 갖는 경우, 상기 제1 정보와, 상기 길이 정보에 기초해서, 소정의 개수의 패킷을 생성하고,
    상기 소정의 개수의 패킷의 각각은, 하나 이상의 피처의 설정 값을 포함하는, 통신 장치.
  13. 제11항에 있어서,
    상기 프로세서는, 상기 제2 정보가 상기 제2 값을 갖는 경우, 상기 제1 정보와, 상기 길이 정보에 기초해서, 상기 다른 통신 장치로부터 수신된 소정 개수의 패킷을 해석하는, 통신 장치.
  14. 제4항에 있어서,
    상기 메모리는, 상기 통신 장치의 MTU(Maximum Transmission Unit) 사이즈를 기억하고,
    상기 프로세서는, 상기 송수신기를 통해서 상기 다른 통신 장치의 MTU 사이즈를 취득한 경우, 상기 다른 통신 장치의 MTU 사이즈와, 상기 통신 장치의 MTU 사이즈를 비교해서, 그 최소값을 포함하는 패킷을 생성하는, 통신 장치.
  15. 제1항의 통신 장치와,
    현재의 일시를 계수하는 클록 회로와,
    상기 클록 회로가 계수한 상기 일시를 표시하는 디스플레이
    를 포함하는 전자 시계.
  16. 무선 통신이 가능한 통신 장치에 있어서,
    다른 통신 장치와 통신 패킷을 송수신하는 송수신기와,
    프로세서를 포함하고,
    상기 프로세서는, 다른 통신 장치의 단위 통신당 통신 가능한 데이터 사이즈에 기초해서, 상기 다른 통신 장치와 통신할 하나 이상의 종류의 데이터의 패키징 방법을 결정하되,
    상기 다른 통신 장치에 기입하고 싶은 복수의 종류의 설정 정보의 길이로부터, 두 통신 장치 간에 송신되는 패킷의 최대 사이즈에 수용되도록, 데이터의 순서, 조합, 구획을 포함하는 상기 데이터의 패키징 방법을 결정하는, 통신 장치.
  17. 무선 통신이 가능한 장치의 통신 방법에 있어서,
    다른 통신 장치로부터, 데이터의 패키징 방법을 나타내는 패키징 방법 정보를 포함하는 패킷을 수신하는 단계와,
    상기 패킷으로부터, 상기 패키징 방법 정보를 추출하는 단계와,
    상기 패키징 방법 정보에 대응하는 데이터를 통신하는 단계
    를 포함하고,
    상기 데이터의 패키징 방법은, 상기 통신 장치에 기입되어야 하는 복수의 종류의 설정 정보의 길이로부터, 두 통신 장치 간에 송신되는 패킷의 최대 사이즈에 수용되도록 결정되는, 데이터의 순서, 조합, 구획을 포함하는,
    통신 방법.
  18. 무선 통신이 가능한 장치의 통신 방법에 있어서,
    다른 통신 장치로부터 단위 통신당 통신 가능한 데이터 사이즈를 나타내는 사이즈 정보를 수신하는 단계와,
    상기 사이즈 정보에 기초해서, 상기 다른 통신 장치와 통신할 하나 이상의 종류의 데이터의 패키징 방법을 결정하는 단계와,
    상기 패키징 방법을 나타내는 포맷 정보를 포함하는 패킷을 생성하는 단계와,
    상기 패킷을 상기 다른 통신 장치에 송신하는 단계
    를 포함하되,
    상기 다른 통신 장치에 기입하고 싶은 복수의 종류의 설정 정보의 길이로부터, 두 통신 장치 간에 송신되는 패킷의 최대 사이즈에 수용되도록, 데이터의 순서, 조합, 구획을 포함하는 상기 데이터의 패키징 방법을 결정하는,
    통신 방법.
  19. 컴퓨터로 읽을 수 있는 기억 매체에 저장된 프로그램에 있어서,
    무선 통신이 가능한 장치를 제어하고, 통신 장치에,
    다른 통신 장치로부터, 데이터의 패키징 방법을 나타내는 패키징 방법 정보를 포함하는 패킷을 수신하는 단계와,
    상기 패킷으로부터, 상기 패키징 방법 정보를 추출하는 단계와,
    상기 패키징 방법 정보에 대응하는 데이터를 통신하는 단계
    를 실행시키고,
    상기 데이터의 패키징 방법은, 상기 통신 장치에 기입되어야 하는 복수의 종류의 설정 정보의 길이로부터, 두 통신 장치 간에 송신되는 패킷의 최대 사이즈에 수용되도록 결정되는, 데이터의 순서, 조합, 구획을 포함하는,
    컴퓨터로 읽을 수 있는 기억 매체에 저장된 프로그램.
  20. 컴퓨터로 읽을 수 있는 기억 매체에 저장된 프로그램에 있어서,
    무선 통신이 가능한 장치를 제어하고, 통신 장치에,
    다른 통신 장치로부터 단위 통신당 통신 가능한 데이터 사이즈를 나타내는 사이즈 정보를 수신하는 단계와,
    상기 사이즈 정보에 기초해서, 상기 다른 통신 장치와 통신할 하나 이상의 종류의 데이터의 패키징 방법을 결정하는 단계와,
    상기 패키징 방법을 나타내는 포맷 정보를 포함하는 패킷을 생성하는 단계와,
    상기 패킷을 상기 다른 통신 장치에 송신하는 단계
    를 실행시키고,
    상기 다른 통신 장치에 기입하고 싶은 복수의 종류의 설정 정보의 길이로부터, 두 통신 장치 간에 송신되는 패킷의 최대 사이즈에 수용되도록, 데이터의 순서, 조합, 구획을 포함하는 상기 데이터의 패키징 방법을 결정하는,
    컴퓨터로 읽을 수 있는 기억 매체에 저장된 프로그램.
  21. 통신 패킷을 다른 통신 장치와 송수신하는 송수신기,
    프로세서, 및
    메모리를 포함하고,
    상기 프로세서는, 상기 송수신기를 통해서 상기 다른 통신 장치로부터, 데이터의 패키징 방법을 나타내는 제1 정보를 포함하는 패킷을 수신하고, 상기 제1 정보에 대응하는 데이터를 상기 송수신기를 통해서 상기 다른 통신 장치와 통신하고,
    상기 프로세서는, 상기 송수신기를 통해서 상기 다른 통신 장치로부터 통신 제어에 관한 제2 정보를 수신하고, 수신한 상기 제2 정보에 기초해서 상기 송수신기를 제어하고,
    상기 제2 정보가 제1 값을 갖는 경우에는, 상기 프로세서가, 상기 제1 정보에 기초해서, 상기 다른 통신 장치에 송신할 하나 이상의 패킷을 생성하고,
    상기 제2 정보가 상기 제1 값과 다른 제2 값을 갖는 경우에는, 상기 송수신기가, 상기 다른 통신 장치로부터의 패킷의 수신을 대기하며,
    상기 메모리는, 복수의 피처를 구별하는 구별 정보와, 각각의 피처의 설정 값을 기억하고,
    상기 프로세서는,
    상기 제2 정보가 상기 제1 값을 갖는 경우에, 각각이 하나 이상의 피처의 설정 값을 포함하는 소정의 개수의 패킷을 생성하고,
    상기 제2 정보가 상기 제2 값을 갖는 경우에, 상기 제1의 정보에 기초해서, 상기 다른 통신 장치로부터 수신된 소정의 개수의 패킷을 해석하며,
    상기 복수의 피처의 설정 값에는 1개의 핸들만 할당되어 있는,
    통신 장치.
KR1020180024913A 2017-03-27 2018-02-28 통신 장치, 통신 방법, 및 기억 매체에 저장된 프로그램 KR102567858B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2017-061328 2017-03-27
JP2017061328A JP6988124B2 (ja) 2017-03-27 2017-03-27 通信装置、電子時計、通信方法、及びプログラム

Publications (2)

Publication Number Publication Date
KR20180109680A KR20180109680A (ko) 2018-10-08
KR102567858B1 true KR102567858B1 (ko) 2023-08-16

Family

ID=63583032

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180024913A KR102567858B1 (ko) 2017-03-27 2018-02-28 통신 장치, 통신 방법, 및 기억 매체에 저장된 프로그램

Country Status (4)

Country Link
US (1) US10484293B2 (ko)
JP (1) JP6988124B2 (ko)
KR (1) KR102567858B1 (ko)
CN (1) CN108668262B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7234978B2 (ja) * 2020-02-28 2023-03-08 カシオ計算機株式会社 通信装置、通信システム、通信方法及びプログラム
CN111654450B (zh) * 2020-05-28 2023-08-08 北京小米移动软件有限公司 数据传输方法及装置、存储介质
IT202200005801A1 (it) * 2022-03-24 2023-09-24 Campagnolo Srl Metodi di comunicazione in un sistema elettronico di bicicletta

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014175830A (ja) * 2013-03-08 2014-09-22 Clarion Co Ltd 端末装置、通信システム、情報処理装置、及び通信プログラム
WO2015163680A1 (ko) * 2014-04-21 2015-10-29 엘지전자(주) 무선 통신 시스템에서 블루투스 저전력 에너지 기술을 이용하여 데이터를 송수신하기 위한 방법 및 장치

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0732397B2 (ja) * 1989-10-17 1995-04-10 松下電器産業株式会社 データ伝送機能付き電子機器
JP2000181826A (ja) * 1998-12-15 2000-06-30 Canon Inc ネットワークデバイス制御装置及び方法
TW200414737A (en) * 2002-09-27 2004-08-01 Matsushita Electric Ind Co Ltd Contents transmission system
KR101110424B1 (ko) * 2004-09-15 2012-02-24 삼성전자주식회사 손목시계 겸용 블루투스 헤드셋
US7738495B2 (en) * 2006-01-23 2010-06-15 Cisco Technology, Inc. Method of determining a maximum transmission unit value of a network path using transport layer feedback
JP2008097326A (ja) * 2006-10-12 2008-04-24 Fujitsu Access Ltd Snmpシーケンス管理方法、マネージャ装置及びエージェント装置
US8472469B2 (en) * 2010-09-10 2013-06-25 International Business Machines Corporation Configurable network socket aggregation to enable segmentation offload
KR101357527B1 (ko) * 2011-01-11 2014-02-11 주식회사 팬택 사용자 단말에서의 mtu 설정 장치 및 방법
US8824346B2 (en) * 2011-02-23 2014-09-02 Lg Electronics Inc. Remote wakeup of application processor of mobile device
US20130189925A1 (en) * 2011-07-29 2013-07-25 SIFTEO, Inc. Pairing Wireless Device Using Multiple Modalities
KR102241318B1 (ko) * 2013-10-11 2021-04-16 삼성전자주식회사 통신 서비스 운용 방법 및 이를 지원하는 전자 장치
JP6201728B2 (ja) * 2013-12-20 2017-09-27 カシオ計算機株式会社 通信システム、通信端末、プログラム、通信端末の情報問い合わせ方法及び情報提供方法
JP6036675B2 (ja) * 2013-12-25 2016-11-30 カシオ計算機株式会社 通信システム、サーバ、通信方法、サーバの情報特定方法及びプログラム
US9462469B2 (en) * 2014-04-21 2016-10-04 Arm Limited Systems and methods for short range wireless data transfer
JP6530634B2 (ja) * 2015-04-22 2019-06-12 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
CN106211019A (zh) * 2015-04-29 2016-12-07 展讯通信(深圳)有限公司 一种数据传输方法
US9924342B2 (en) * 2015-06-16 2018-03-20 Google Llc Establishing a connection over a low power communication type
WO2017007104A1 (ko) * 2015-07-07 2017-01-12 엘지전자 주식회사 V2x 통신 시스템에서 단말의 통신 방법 및 단말
EP3408992A1 (en) * 2016-01-26 2018-12-05 Google LLC Secure connections for low-power devices
US10366383B2 (en) * 2016-03-31 2019-07-30 Square, Inc. Combined reliable and unreliable data transmission

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014175830A (ja) * 2013-03-08 2014-09-22 Clarion Co Ltd 端末装置、通信システム、情報処理装置、及び通信プログラム
WO2015163680A1 (ko) * 2014-04-21 2015-10-29 엘지전자(주) 무선 통신 시스템에서 블루투스 저전력 에너지 기술을 이용하여 데이터를 송수신하기 위한 방법 및 장치

Also Published As

Publication number Publication date
JP6988124B2 (ja) 2022-01-05
CN108668262A (zh) 2018-10-16
US20180278535A1 (en) 2018-09-27
KR20180109680A (ko) 2018-10-08
CN108668262B (zh) 2021-01-15
JP2018164225A (ja) 2018-10-18
US10484293B2 (en) 2019-11-19

Similar Documents

Publication Publication Date Title
US10827334B2 (en) Method and apparatus for connecting devices using Bluetooth LE technology
JP7163995B2 (ja) 通信装置、通信方法、及びプログラム
JP6396482B2 (ja) 無線通信システムにおけるブルートゥース低電力エネルギーを利用してオブジェクト送信サービスを行うための方法及び装置
EP3550888A1 (en) Wireless connection switching method and terminal
KR102567858B1 (ko) 통신 장치, 통신 방법, 및 기억 매체에 저장된 프로그램
US10785713B2 (en) Device and method for accessing multiple networks in wireless communication system
JP2020520573A (ja) エアロゾル送達デバイス情報を送信する方法及びエアロゾル送達デバイス
CN105519071A (zh) 使用逻辑信道进行通信的电子装置
CN113366439A (zh) 一种连接蓝牙设备方法及设备
US10721611B2 (en) Method and device for controlling device by using Bluetooth technology
CN108432311A (zh) 一种资源请求方法、设备、网络侧节点及系统
US10194477B2 (en) Method and apparatus for controlling a device using bluetooth technology
US11057951B2 (en) Communication apparatus, method of controlling communication apparatus, and non-transitory computer-readable storage medium
KR102398992B1 (ko) 통신 장치, 통신 방법, 및 기억 매체에 저장된 프로그램
CN101656730A (zh) 通信装置、通信系统、通信方法和程序
US11252553B2 (en) Method and device for establishing connection using Bluetooth low energy
US11882533B2 (en) Method for transmitting audio data using short-range wireless communication in wireless communication system, and apparatus therefor
JP2015103996A (ja) 通信統合システム
KR102197942B1 (ko) 무선 통신시스템에서 데이터의 송수신 방법, 장치 및 시스템

Legal Events

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