JP2018164225A - 通信装置、通信方法、及びプログラム - Google Patents

通信装置、通信方法、及びプログラム Download PDF

Info

Publication number
JP2018164225A
JP2018164225A JP2017061328A JP2017061328A JP2018164225A JP 2018164225 A JP2018164225 A JP 2018164225A JP 2017061328 A JP2017061328 A JP 2017061328A JP 2017061328 A JP2017061328 A JP 2017061328A JP 2018164225 A JP2018164225 A JP 2018164225A
Authority
JP
Japan
Prior art keywords
information
communication
data
value
communication device
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2017061328A
Other languages
English (en)
Other versions
JP6988124B2 (ja
JP2018164225A5 (ja
Inventor
和穂 姜
Kazuho Kyo
和穂 姜
中川 誠
Makoto Nakagawa
誠 中川
寺崎 努
Tsutomu Terasaki
努 寺崎
宏 岩見谷
Hiroshi Iwamiya
宏 岩見谷
高弘 冨田
Takahiro Tomita
高弘 冨田
亮 奥村
Ryo Okumura
亮 奥村
智洋 高橋
Tomohiro Takahashi
智洋 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2017061328A priority Critical patent/JP6988124B2/ja
Priority to KR1020180024913A priority patent/KR102567858B1/ko
Priority to US15/914,014 priority patent/US10484293B2/en
Priority to CN201810245243.XA priority patent/CN108668262B/zh
Publication of JP2018164225A publication Critical patent/JP2018164225A/ja
Publication of JP2018164225A5 publication Critical patent/JP2018164225A5/ja
Application granted granted Critical
Publication of JP6988124B2 publication Critical patent/JP6988124B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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]
    • 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
    • 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
    • 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
    • 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
    • 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の情報に対応するデータを上記通信部を介して上記他の通信装置と通信する。
【選択図】図9

Description

本発明は、通信装置、通信方法、及びこの通信方法を実行するためのプログラムに関する。
従来、ブルートゥース(Bluetooth:登録商標)などの近距離無線通信を用いて種々の情報をやり取りすることが可能な電子装置が存在する。ブルートゥースは、近距離で各種装置を無線で連結してデータをやり取りすることができる近距離無線通信規約である。ブルートゥース通信方法には、BR/EDR(Basic Rate/Enhanced Data Rate)と、低電力方式であるLE(Low Energy)とがある。BR/EDRはブルートゥースクラシック(Bluetooth Classic)とも呼ばれる。ブルートゥース4.0から適用されたブルートゥースローエナジー(Bluetooth Low Energy:BLE)は、少ない電力を消耗して数百キロバイト(KByte)の情報を安定的に提供することができる。このようなBLE技術はブルートゥースクラシックに比べて動作を簡単にしてエネルギー消費を減らす。最近発売されたスマートバンド、スマートウォッチ、スマートグラス、等のウェアラブル無線通信装置のほとんどはBLE技術を用いて無線通信を行う。
このような近距離無線通信により、複数の電子装置のそれぞれが個別に取得したり保持したりする情報を、他の電子装置で容易に取得することが可能になっている。例えば、特開2014−175830号公報には、効率的に通信を行うために、二つの通信装置が最大転送単位(Maximum Transmission Unit:MTU)値をやりとりし、やりとりしたMTU値に応じて通信期間を割り当てる技術が開示されている。
特開2014−175830号公報
しかし、上記特許文献1に開示された技術は、送受信する情報の種類に関しては考慮していない。従って、複数の種類の情報を通信しようとする場合は、通信装置間の通信回数が、通信する情報の種類の数に応じて増加する。そのため、通信する情報の種類の数が多いと、通信装置の消費電流及び処理負荷が増加する。
この発明は、無線通信装置の間の通信の効率性を高める方法、この方法を実行する通信装置及びプログラムを提供することを目的とする。
本発明の1つの態様は、通信装置であって、通信パケットを他の通信装置と送受信する通信部と、プロセッサと、を備え、上記プロセッサは、上記通信部を介して上記他の通信装置から、データのパッケージ方法を示す第1の情報を含むパケットを受信し、上記第1の情報に対応するデータを前記通信部を介して上記他の通信装置と通信する。
また、本発明の他の1つの態様は、無線通信のできる装置であって、他の通信装置と通信パケットを送受信する通信部と、プロセッサと、を備え、上記プロセッサは、他の通信装置の単位通信当たり通信可能のデータサイズに基づいて、上記他の通信装置と通信する一つ以上の種類のデータのパッケージ方法を決める。
本発明によると、無線通信装置の間の通信の効率性を高めることができる。しかし、本発明の目的と効果は上記のものに制限されないし、下記の詳細な説明と添付の図面から本発明の他の目的と効果を理解することができる。
以下の詳細な記述が以下の図面と合わせて考慮されると、本願のより深い理解が得られる。これらの図面は例示に過ぎず、本発明の範囲を限定するものではない。
本明細書において提案された方法が適用されることができる無線通信システムの一例を示す図である。 本明細書において提案された方法を具現することができる装置の内部ブロック図の一例を示す。 アドバタイジングパケットの種類を説明する図である。 (A)はアトリビュート値をやり取りするためのアトリビュートプロトコルPDUの通常の構造を示す図であり、(B)はGATTサーバに格納されるアトリビュートの通常の構造を示す図である。 通常のアトリビュートデータベースの一例を示す図である。 サーバとクライアントとがBLE通信によりデータのやり取りを行う通常の方法を示す。 本発明の一実施形態に係るアトリビュートデータベースの一例を示す図である。 本発明の一実施形態に係る区別情報の一例を示す図である。 本発明の一実施形態に係るスマートフォンが電子時計にデータの送信を指示する方法を示すシーケンス図である。 本発明の一実施形態に係る指示コマンドのAttribute Valueのフォーマットを示す図である。 本発明の一実施形態に係るコマンド種別の一例を示す図である。 (A)は本発明の一実施形態に係る送信指示用の指示コマンドのAttribute Valueの一例を示す図であり、(B)は本発明の一実施形態に係る設定情報のノーティフィケーションメッセージのAttribute Valueの一例を示す図である。 本発明の一実施形態に係るスマートフォンが電子時計にデータの書込みを指示する方法を示すシーケンス図である。 (A)は本発明の一実施形態に係る書込待機指示用の指示コマンドのAttribute Valueの一例を示す図であり、(B)は本発明の一実施形態に係る書込みコマンドメッセージのAttribute Valueの一例を示す図である。 本発明の一実施形態に係る電子時計の機能ブロック図である。 本発明の一実施形態に係るスマートフォンの機能ブロック図である。 本発明の一実施形態に係る電子時計においての通信プロセスを実現するためのアルゴリズムを示すフローチャートである。 本発明の一実施形態に係るスマートフォンにおいて電子時計にデータの送信を指示する通信プロセスを実現するためのアルゴリズムを示すフローチャートである。 本発明の一実施形態に係るスマートフォンにおいて電子時計にデータの書込みを指示する通信プロセスを実現するためのアルゴリズムを示すフローチャートである。 本発明の他の実施形態に係るスマートフォンにおいて電子時計にデータの送信を指示する通信プロセスを実現するためのアルゴリズムを示すフローチャートである。 本発明の他の実施形態に係るアトリビュートデータベースの一例を示す。
本明細書においては、主に本発明をブルートゥース(登録商標)、特に、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)はサーバ/クライアントの構造で相手装置のデータにアクセスするための規則を定義する。サーバはサービスを提供し、クライアントはサーバに要請してサーバが提供するサービスに関連した情報を得ることができる。説明の便宜のために、以下では特別な説明がない限り第1の装置100をサーバと、第2の装置200のアプリケーションをクライアントとして説明する。しかし、第1の装置100は、他の装置との関係においてクライアントとして動作することができ、第2の装置は、他のデバイスとの関係においてサーバとして動作することができる。BLE通信システムにおいて、一つの装置はサーバ又はクライアントとして動作することが可能であり、必要な場合、同時にサーバ及びクライアントとして動作することも可能である。
第2の装置200は、第1の装置100にデータを要求することができる。第1の装置100は、第2の装置200からデータ要求メッセージを受信する場合、応答(Response)メッセージによって第2の装置200へデータを提供する。また、第1の装置100は第2の装置200へデータを通知するために第2の装置200に対してノーティフィケーション(Notification)メッセージ又はインディケーション(Indication)メッセージを送信する。第1の装置100が第2の装置200へインディケーションメッセージを送信した場合に、当該インディケーションメッセージが第2の装置200によって受信されれば、第2の装置200はそれに対する確認(Confirm)メッセージを第1の装置100へ送信する。また、第2の装置200は、第1の装置100に対してデータの書込みを指示するために要求(Request)メッセージ又はコマンド(Command)メッセージを送信する。第2の装置200が第1の装置100へ要求メッセージを送信した場合に、データの書込みが行われれば、第1の装置100は第2の装置200へ応答メッセージを送信する。
第1の装置100又は第2の装置200は、他の装置とメッセージを送受信する過程で出力部(例えば、ディスプレー)を通じてユーザにデータ情報を提供したり、入力部(例えば、User Input Interface)を通じてユーザから入力される要請を受信したりすることができる。また、メモリからデータを読み出したり、新しいデータをメモリに記入したりすることもできる。
図2は、本明細書において提案された方法を具現することができる装置の内部ブロック図の一例を示す。図2(A)は第1の装置100の内部ブロック図であり、図2(B)は第2の装置200の内部ブロック図である。
図2(A)に示されたように、第1の装置100は近距離通信部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)、フラッシュメモリ、又はディスクドライブ等の1つ又はそれ以上の任意の記憶装置を含む。メモリ108はプロセッサ104に組み込むことも可能である。
時計部110は図示を省略するが、例えば、システムクロック又は発振器によって生成される信号から時刻信号を生成する時計回路であるカウンタを含み、現在の時刻を計時して時刻情報を生成する。時計部110は生成した時刻情報をプロセッサ104に出力する。時計部110をプロセッサ104内に組み込むこともできる。入力部112は各種キー、スイッチ、及び/又は、タッチパネル等から構成され、ユーザの入力部112の操作に応じて各種のデータが入力される。表示部114はLCD、OLED等の表示装置及び駆動回路を含み、現在の時刻等の情報を表示する。
第1の装置100は、平常時は表示部114に時計部110で計時されている現在の時刻を表示する。近距離通信部102を通じて第2の装置200から現在の時刻に関するデータを受信した場合は、該当データが示す時刻を時計部110に設定することによって、第1の装置100の時刻を第2の装置200の時刻に同期させる。
図2(B)に示されたように、第2の装置200は、遠距離通信処理部202と、近距離通信部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)、フラッシュメモリ、又はディスクドライブ、等の1つ又はそれ以上の任意の記憶装置を含む。メモリ208はプロセッサ206に組み込まれることも可能である。
電源部210は図示を省略するが、バッテリー及び電源管理部を含む。入力部212は各種キー、スイッチ、及び/又は、タッチパネル等から構成され、ユーザの入力部212の操作に応じて各種のデータが入力される。表示部214はLCD、OLED等の表示装置及び駆動回路を含む。
図1に示されているシステムと、図2(A)及び2(B)に示されている装置は例示に過ぎず、本明細書に記述された方法を具現することができるシステム又は装置の範囲を制限することではない。
ATTはサーバ/クライアント構造で相手デバイスのデータに接近するための規則を定義する。ATTには6種類のメッセージ類型(要求、応答、コマンド、ノーティフィケーション、インディケーション、確認(Confirmation))が定義される。
(1)要求及び応答メッセージ:要求メッセージはクライアントがサーバに特定の情報を要請するために送信するメッセージであり、応答メッセージはサーバがクライアントへ送信する要求メッセージに対する返事である。
(2)コマンドメッセージ:クライアントがサーバに特定の動作を要請するために送信するメッセージであり、サーバはコマンドメッセージに対する応答をクライアントに送信しない。
(3)ノーティフィケーションメッセージ:サーバがクライアントにイベント等の通知のために送信するメッセージであり、クライアントはノーティフィケーションメッセージに対する確認メッセージをサーバに送信しない。
(4)インディケーション及び確認メッセージ:インディケーションメッセージはサーバがクライアントにイベント等の通知のために送信するメッセージであり、ノーティフィケーションメッセージとは違い、クライアントはインディケーションメッセージに対する確認メッセージをサーバに送信する。
GATT(Generic Attribute Profile)はサービスの構成の時にATTがどのように使われるかを説明するプロトコルとして用いられる。GATTはサービスとキャラクタリスティック(Characteristic)という概念を使って特定のデータ(即ち、アトリビュート)を他の装置に提供する。GATTはサーバとクライアントとの二種類の役割を定義し、アトリビュートを提供する装置がGATTサーバ(以下、『サーバ』と称する。)であり、アトリビュートが提供される装置がGATTクライアント(以下、『クライアント』と称する。)である。
サービスは情報を提供したり、アクションを遂行したり、他のエンティティーに代わってリソースを制御したりすることができるエンティティーである。サービスはソフトウェア、ハードウェア、又は、これらの組合せとして具現されることができる。SDPサーバによって保有される一つのサービスについての全ての情報は一つのサービスレコード内に含まれる。サービスはデータを論理的エンティティーとして分け、キャラクタリスティックと称されるデータの束を含む。それぞれのサービスは、一つ又はそれ以上のキャラクタリスティックを有することができ、UUID(Universal Unique Identifier)と称される固有のIDによって区分される。
キャラクタリスティックはサービスで使われる単一のデータ配列であり、それぞれのキャラクタリスティックはUUIDを有する。また、それぞれのキャラクタリスティックは、キャラクタリスティック宣言とキャラクタリスティック値宣言との二つのアトリビュートを有する。キャラクタリスティック宣言は、アトリビュートタイプとアトリビュート値とを有し、アトリビュート値は、キャラクタリスティックプロパティー(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はいかなる装置もスキャン可能なアドバタイジングイベントに用いられ、簡易情報問合せが可能である(即ち、どんな装置も簡易情報問合せのみ可能)。
図4(A)はアトリビュート値をやり取りするためのアトリビュートプロトコルPDUの通常の構造を示す。GATTプロファイルは、装置の間にコマンド、要求、応答、インディケーション、ノーティフィケーション、及び確認の形態でデータを伝送するために、アトリビュートプロファイルを用いる。このデータは、図4(A)に示された構造のアトリビュートプロトコルPDUに格納される。アトリビュートプロトコルPDUはアトリビュートオペコード(Attribute Opcode)フィールド、アトリビュートパラメータ(Attribute Parameters)フィールド、及び認証署名(Authentication Signature)フィールド(選択的)によって構成される。認証署名は、オプションフィールドであり、選択的に存在したり存在しなかったりする。
上記アトリビュートオペコードは、1オクテット(octet)の長さであり、当該アトリビュートプロトコルPDUがどんなPDUであるかを示す情報を含む。アトリビュートパラメータは、メッセージで伝達しようとする実際の情報を含み、次のような値を持つことができる。
−ハンドル(Handle):データに対応する参照情報(インデックス)。ハンドルを使ってGATTクライアントが値を参照、アクセス、又は変更することができる。
−値(Value):データの値
−データリスト(Data List):色々なデータ値の目録
−長さ(Length):データの長さ
クライアントは、上記のようなアトリビュートプロトコルPDUを用いて、サーバに格納されているアトリビュートハンドル値、アトリビュート値、データリスト、又は長さ値を読み出したり、サーバにこのような値を記憶させたりすることができる。
アトリビュートプロトコルコマンド及び要求は、サーバ装置にアトリビュートとして格納されている値にアクセスする。図4(B)は、サーバに格納されるアトリビュートの通常の構造を示す。サーバはこのような形態のアトリビュートを使ってサービスを提供する。一つのアトリビュートは4個の構成要素から成り、次のような意味を有する。
−アトリビュートハンドル(Attribute Handle):特定のアトリビュートに対応する識別子(インデックス)
−アトリビュートタイプ(Attribute Type):アトリビュートの類型(アトリビュート値を記述するUUID)
−アトリビュート値(Attribute Value):アトリビュートの値(ハンドルによってインデクシングされるデータ)
−アトリビュートパーミッション(Attribute Permission):アトリビュートに対する読み書き許可
図5は通常のアトリビュートデータベースの一例を示す。図5に示されたアトリビュートデータベースが実装されたBLE装置は、例えば、電子時計である。それぞれのサービスはデータを論理的に分ける役割を行い、一つ又はそれ以上のキャラクタリスティックを含む。示されたように、プライマリーサービスであるWatch Feature Serviceは、複数のキャラクタリスティック(ServiceN1、ServiceN2、...、ServiceNx)を含む。本例において、サービスであるWatch Feature Serviceは、x個のキャラクタリスティックを含む。示されたように、通常のBLE装置では、一つのフィーチャーに対して一つのキャラクタリスティックを有する形態として、アトリビュートデータベースが構成される。それぞれのサービスとそれぞれのキャラクタリスティックは、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)を、クライアントに送信する。ハンドル値インディケーションは、BLE仕様に定義されたように、サーバがアトリビュートの値を通知するために送信するメッセージである。クライアントは、ハンドル値インディケーションメッセージを正常に受信すると、これに対する応答メッセージであるハンドル値確認(Handle Value Confirmation)をサーバに送信する。従って、データの重要度が高い場合には、インディケーションメッセージを用いることが好ましい。データの重要度が低く、クライアントの消費電力の削減が重要な場合は、ハンドル値ノーティフィケーション(Handle Value Notification)を用いることもできる。ハンドル値ノーティフィケーションは、ハンドル値インディケーションと同様に、サーバがアトリビュートの値を通知するために送信するメッセージであるが、応答メッセージである確認を伴わない。
クライアントは必要な時に、例えば、所定の時刻になった時、又は、ユーザの操作があった時に、サーバにデータを要求したり、データの記入を指示したり、サーバからデータを受信したりする。現在、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サイズ交換はATT_MTUを両方の装置によってサポートされる最大可能値に設定するためにクライアントによって使用されるサーバコンフィギュレーションのサブプロシージャである。また、MTUサイズ交換要求は、クライアントの最大受信MTUサイズをサーバに知らせるとともに、サーバに最大受信MTUサイズを送信するように要求するためにクライアントによって用いられるメッセージである。サーバは、クライアントからMTUサイズ交換要求を受信すると、MTUサイズ交換応答で応答する。MTUサイズ交換応答は、サーバの最大受信MTUサイズをクライアントに知らせるために用いられるメッセージである。クライアントとサーバは、交換されたMTUサイズの最小値を使用して、以後の通信を行なう。
通常、BLE通信装置において、搭載されたBLEチップからATT_MTUサイズを取得するためのHCI(Host Controller Interface)コマンドが用意されるが、スマートフォンの場合、それを利用するためのAPIが用意されてない。そこで、本実施形態では、クライアントであるスマートフォンのプロセッサ(例えば、図2(B)の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に対応するFeatureNの設定データには、区別情報として(N−1)<SUB>1</SUB><SUB>6</SUB>が割り当てられる(ServiceN1に対応するFeature1の設定データに割り当てられる区別情報の値は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が受信することによって、2つの装置が物理的に接続される。BLE仕様に定義されたように、コネクション要求は、2つの装置の間にL2CAPチャンネルを生成するためにマスター装置がスレーブ装置に送信するパケットである。そして、2つの装置の間に、サービスディスカバリーが行われる。サービスディスカバリーセッションで、スマートフォン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を、ノーティフィケーションメッセージによりスマートフォン200に通知する。上記ノーティフィケーションメッセージを受信することで、スマートフォン200が更新されたATT_MTUを取得することができる。
スマートフォン200では、電子時計100から取得したい複数の種類の設定情報の長さから、取得されたATT_MTU(上記更新されたATT_MTU)に収まるように、データの順序、組み合わせ、区切り、等を含むデータのパッケージ方法を決定する。区切りは、1つのパケットで通信するデータと、他のパケットで通信するデータを区分する。本実施形態では、一つのパケットに格納されるデータの総長さが、例えば、更新されたATT_MTU−3以下になるように、区切りを指定する。上記パッケージ方法に応じて、要求するデータのフォーマットが決まる。スマートフォン200は、電子時計100に設定情報の送信を要求するとともに、要求する設定情報のデータフォーマットを知らせるためのメッセージを生成する。上述したように、複数のフィーチャーの設定値に対して1つのハンドルが割り当てられて、読み出し要求はアトリビュートハンドルのみをパラメータとして持つので、本実施形態では、サーバである電子時計100のアトリビュート値を要求するために読み出し要求を用いることができない。従って、本実施形態で、スマートフォン200は、設定情報を要求するために、書き込みコマンドを使う。即ち、上記メッセージとして、アトリビュートハンドルパラメータと、アトリビュート値パラメータとのそれぞれが、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はコマンドデータの並び順及び区切り指定に基づき設定情報を送受信する。
送信指示用の指示コマンドである書き込みコマンドのアトリビュート値の一例は、図12(A)に示されている。上述のように、コマンド種別は送信指示を示す0x00に設定される。コマンドデータは、Setting for Feature1からSetting for Feature4までの4つのデータを送信するように指示し、1つ目のメッセージとしてフィーチャー1の設定値とフィーチャー2の設定値とを結合して送信し、2つ目のメッセージとしてフィーチャー3の設定値とフィーチャー4の設定値とを結合して送信するよう指示している。即ち、スマートフォン200は、電子時計100にデータフォーマットを通知することで、更新されたATT_MTUに収まるように、上記4種類のデータを2つずつ集めて送信することを指示する。本実施形態では、一つのパケットに格納されるデータの総長さが、例えば、更新されたATT_MTU−3以下になるように、データフォーマットが決まる。また、データフォーマットは、ATT_MTUサイズを最大に活用するように決めることが好ましい。具体的に、1つのメッセージにATT_MTUサイズの範囲内で最大の個数のデータが含まれるようにデータフォーマットを決めることが好ましい。
指示コマンドを受信した電子時計100は、コマンド種別により、データを送信するか、スマートフォン200からの書込みの指示を待機するかを判断する。図12(A)の例では、コマンド種別が0x00に設定されているので、電子時計100は指示コマンドのコマンドデータであるデータフォーマットに従って、Setting for Feature1からSetting for Feature4を送信するための2つのメッセージであるハンドル値ノーティフィケーション1とハンドル値ノーティフィケーション2とを生成する。当該ハンドル値ノーティフィケーションは、アトリビュートハンドルパラメータと、アトリビュート値パラメータとのそれぞれが、Watch Featuresのキャラクタリスティック値ハンドル(0x0017)と、スマートフォン200に送信する設定情報とに設定される。ハンドル値ノーティフィケーション1とハンドル値ノーティフィケーション2とのアトリビュート値の一例は図12(B)に示されている。スマートフォン200から受信したデータフォーマットに従って、ハンドル値ノーティフィケーション1のアトリビュート値パラメータには、Setting for Feature1とSetting for Feature2とのデータが順に格納され、ハンドル値ノーティフィケーション2のアトリビュート値パラメータには、Setting for Feature3とSetting for Feature4とのデータが順に格納される。
上記2つのノーティフィケーションを受信したスマートフォン200は、各々のノーティフィケーションに格納されているデータを、指示コマンドによって指定した順序に結合されたデータとして解釈し、4つのフィーチャーの設定値を取得する。ここで、フィーチャー1からフィーチャー4までのデータは、それぞれ異なるデータ長を持っても構わないが、この場合は、データの解析を容易にするために、電子時計100とスマートフォン200との各々で各データ長を記憶していることが好ましい。この場合、スマートフォン200は、データフォーマットとともにデータ長に基づいて、電子時計100から受信されるメッセージを解析することができる。また、図9は更新されたATT_MTUと設定情報を送信するためにハンドル値ノーティフィケーションを用いる例を示したが、その代わりにハンドル値インディケーションを用いても良い。この場合、ハンドル値インディケーションを受信したスマートフォン200は、ハンドル値確認を返信する。特に、設定情報を送信するためにハンドル値インディケーションを用いる場合は、電子時計100が一番目のハンドル値インディケーションに対する返信であるハンドル値確認を受信した後に、二番目のハンドル値インディケーションをスマートフォン200に送信しても良い。同様に、指示コマンドである書き込みコマンドは、書き込み要求に切り替えることもできる。この場合、書き込み要求を受信した電子時計100は、書き込み応答を返信する。
図13は、本発明の一実施形態に係るスマートフォン200が電子時計100にデータの書込みを指示する方法を示すシーケンス図である。本実施形態において、電子時計100に実装されるアトリビュートデータベースは図7の構造を有する。電子時計100がサーバとして動作し、スマートフォン200がクライアントとして動作する。図13において図9と同一のプロシージャについては詳細な説明を省略する。電子時計100は、所定の条件が満たされたとき、アドバタイズを開始する。電子時計100はADV_INDタイプのアドバタイジングパケットを送信する。一方、スマートフォン200はスキャンを開始する。
スマートフォン200は、電子時計100とのコネクションが必要である場合、コネクション要求を発信する。上記ネクション要求を電子時計100が受信することによって、2つの装置が物理的に接続される。そして、サービスディスカバリーが行われる。次に、電子時計100とスマートフォン200とはMTUサイズ交換を行い、電子時計100は、両方のMTUサイズの最小値を更新されたATT_MTUとして取得する。電子時計100は、更新されたATT_MTUをUpdated ATT_MTUのアトリビュート値として、ノーティフィケーションメッセージによりスマートフォン200に通知する。
スマートフォン200は、電子時計100に書込みたい複数の種類の設定情報の長さから、取得されたATT_MTUに収まるように、データの順序、組み合わせ、区切り、等を含むデータのパッケージ方法を決定する。上記パッケージ方法に応じて、書込むデータのフォーマットが決まる。スマートフォン200は、電子時計100に書込待機を指示するとともに、書き込む設定情報のデータフォーマットを知らせるための指示コマンドを生成する。この指示コマンドは、アトリビュートハンドルパラメータと、アトリビュート値パラメータとのそれぞれが、Request Command for Featuresのキャラクタリスティック値ハンドル(0x0015)と、上記データフォーマットとに設定された書き込みコマンドである。この書き込みコマンドを受信すれば、電子時計100はキャラクタリスティックであるRequest Command for Featuresのキャラクタリスティック値に上記データフォーマットを書き込む。
書込待機指示用の指示コマンドである書き込みコマンドのアトリビュート値の一例は、図14(A)に示されている。上述のように、1バイトのコマンド種別は書込待機指示を示す0x01に設定される。ATT_MTUサイズに基づいて決定されたデータフォーマットを示すコマンドデータは、Setting for Feature1からSetting for Feature4までの4つのデータを2つのメッセージとして送信する旨を電子時計100に知らせる。具体的に、1つ目のメッセージにはフィーチャー1の設定値とフィーチャー2の設定値とが格納され、2つ目のメッセージにはフィーチャー3の設定値とフィーチャー4の設定値とが格納されることを電子時計100に知らせる。データフォーマットはATT_MTUサイズを最大に活用するように決まることが好ましい。
指示コマンドを受信した電子時計100は、コマンド種別により(即ち、コマンド種別が0x01に設定されているので)、スマートフォン200からの書込みの指示を待機する。また、指示コマンドのコマンドデータであるデータフォーマットに従って、スマートフォン200から受信されるメッセージを解析する。
スマートフォン200は、上記データフォーマットに従って、電子時計100にSetting for Feature1からSetting for Feature4の書込みを指示するための2つのメッセージである書き込みコマンド1(Write Command1)と書き込みコマンド2(Write Command2)とを生成する。当該書き込みコマンドは、アトリビュートハンドルパラメータと、アトリビュート値パラメータとのそれぞれが、Watch Featuresのキャラクタリスティック値ハンドル(0x0017)と、書き込みたい設定情報とに設定される。書き込みコマンド1と書き込みコマンド2とのアトリビュート値の一例は図14(B)に示されている。書き込みコマンド1のアトリビュート値パラメータには、Setting for Feature1とSetting for Feature2とのデータが順に格納され、書き込みコマンド2のアトリビュート値パラメータには、Setting for Feature3とSetting for Feature4とのデータが順に格納される。
電子時計100は、スマートフォン200から書き込みコマンド1と書き込みコマンド2とを受信すると、指示コマンドから取得したデータフォーマットにより、上記メッセージを解析する。具体的に、書き込みコマンド1を解析して、当該メッセージのアトリビュート値に格納されている2つのデータを、フィーチャー1とフィーチャー2との設定値として書き込む(図7を参照)。即ち、フィーチャー1とフィーチャー2との設定値を、書き込みコマンド1のアトリビュート値に格納されている2つのデータに更新する。また、書き込みコマンド2を解析して、当該メッセージのアトリビュート値に格納されている2つのデータを、フィーチャー3とフィーチャー4との設定値として書き込む。即ち、フィーチャー3とフィーチャー4との設定値を、書き込みコマンド2のアトリビュート値に格納されている2つのデータに更新する。
ここで、フィーチャー1からフィーチャー4までのデータは、それぞれ異なるデータ長を持っても構わないが、この場合は、データの解析を容易にするために、電子時計100とスマートフォン200との各々で各データ長を記憶していることが好ましい。この場合、電子時計100は、データフォーマットとともにデータ長に基づいて、スマートフォン200から受信されるメッセージを解析することができる。図13は更新されたATT_MTUを送信するためにハンドル値ノーティフィケーションを用いる例を示したが、その代わりにハンドル値インディケーションを用いても良い。また、書き込みコマンドの代わりに、書き込み要求を用いても良い。
図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の例において、ハンドル値ノーティフィケーション1とハンドル値ノーティフィケーション2)を生成する。データパケット解析モジュール1007は、他の装置から受信されたデータパケットを解析する。具体的に、データパケットのPDUのタイプを判別し、PDUに格納されているデータを抽出する。特に、他の装置から受信した書込待機指示用の指示コマンドから取得したデータフォーマットに基づいて、上記他の装置からのメッセージ(図13の例において、書き込みコマンド1と書き込みコマンド2)に含まれているデータを解析する。
アトリビュート読出モジュール1008は、記憶モジュール1002に記憶されているアトリビュートデータベースのアトリビュート値を読み出す。特に、他の装置から送信指示用の指示コマンドを受信した場合、アトリビュートデータベースのWatch Features(図7)のアトリビュート値から上記他の装置が要求するフィーチャーの設定値を読み出す。アトリビュート書込モジュール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は、所定の条件を満たしたときに、スキャンを開始する。また、スキャン期間中に受信されたアドバタイジングパケットを復号(デコーディング)して上記アドバタイジングパケットに格納されているデータを抽出する。コネクション制御モジュール2004は、アドバタイジングパケットを発信する他の装置の中で適当な装置にコネクションを要求するためのコネクション要求を生成し、これを上記装置に送信する。また、コネクションが確立されている他の装置からコネクション切断要求が受信されれば、当該装置とのコネクションを切断する。
データフォーマット決定モジュール2005は、記憶モジュール2002に記憶されている更新されたATT_MTUに基づいてデータフォーマットを決定する。データフォーマット決定モジュール2005は、図12(A)及び図14(A)に示されたように、他の装置と送受信する複数の種類の設定情報の長さから、更新されたATT_MTUに収まるように、データの順序、組み合わせ、区切り等を含むデータフォーマットを決定する。決定されたデータフォーマットは、指示コマンド生成モジュール2008に伝達され、指示コマンドによって他の装置に通知される。上記他の装置は、通知されたデータフォーマットに基づいて、スマートフォン200に送信するメッセージを生成したり、スマートフォン200から受信したメッセージを解析したりする。
データパケット生成モジュール2006は、スマートフォン200と他の装置との間のコネクションが確立された後に上記他の装置に送信するデータパケットを生成する。データパケット生成モジュール2006は、指示コマンド生成モジュール2008を含む。指示コマンド生成モジュール2008は、他の装置に送信する送信指示用の指示コマンド(例えば、図12(A))又は書込待機指示用の指示コマンド(例えば、図14(A))を生成する。指示コマンドのアトリビュート値には、コマンド種別(送信指示であるか書込待機指示であるか)と、コマンドデータ(データフォーマット決定モジュール2005によって決定されたデータフォーマット)とが格納される。
データパケット解析モジュール2007は、他の装置から受信されたデータパケットを解析する。具体的に、データパケットのPDUのタイプを判別し、PDUに格納されているデータを抽出する。特に、送信指示用の指示コマンドに応答して他の装置が送信したメッセージに含まれているデータを、記憶モジュール2002に記憶されているデータフォーマットに基づいて解析する。
図17は、本発明の一実施形態に係る電子時計100においての通信プロセスを実現するためのアルゴリズムを示すフローチャートである。本実施形態において、電子時計100に実装されるアトリビュートデータベースは図7の構造を有する。また、電子時計100がサーバとして動作し、スマートフォン200がクライアントとして動作する。以下、図9乃至図14を一緒に参照して、図17を詳細に説明する。
電子時計100は、アドバタイズを開始するための所定の条件が満たされたかどうかを判断する(ステップS2202)。上記所定の条件は、例えば、あらかじめ設定された時刻になったか、又は、ボタン操作があったか、等である。上記所定の条件が満たされていない場合(ステップS2202:No)、電子時計100はアドバタイズを開始しない。上記所定の条件が満たされた場合(ステップS2202:Yes)、アドバタイズ時間を計測するためのタイマを開始し(ステップS2204)、アドバタイズを開始する(ステップS2206)。
続いて、タイマの時間が所定の時間Ta(アドバタイズ時間幅)に達したかどうかを判断する(ステップS2208)。タイマの時間がTaに達していない場合、即ち、タイムアウトが起きていない場合は(ステップS2208:No)、プロセスはステップ2212へ移る。タイマの時間がTaに達した場合、即ち、タイムアウトが起きた場合は(ステップS2208:Yes)、アドバタイズを停止し(ステップS2210)、プロセスはステップS2202に戻る。ステップ2212において、電子時計100は、スマートフォン200からコネクション要求が受信されたかどうかを判断する。コネクション要求が受信されていない場合(ステップS2212:No)、プロセスはステップS2208に戻る。コネクション要求が受信された場合(ステップS2212:Yes)、アドバタイズを停止し、タイマの時間計測を停止する(ステップ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:Yes)、このメッセージを指示コマンドと判断する。また、当該メッセージのアトリビュート値として格納されているコマンド種別と、コマンドデータであるデータフォーマットとをアトリビュートデータベースのRequest Command for Featuresのキャラクタリスティック値に書き込む。コマンド種別を確認して(ステップS2224)、コマンド種別が0x00(送信指示)である場合は、プロセスがステップS2226へ移り、コマンド種別が0x01(書込待機指示)である場合は、プロセスがステップS2232へ移る。
コマンド種別が0x00である場合、電子時計100は、指示コマンド(送信指示)に従って、スマートフォン200が要求するフィーチャーの設定値を通知するメッセージを準備する(ステップS2226)。具体的に、上記指示コマンドから取得したデータフォーマットのデータの順序、組み合わせ、区切り等に基づいて、必要な個数のノーティフィケーションメッセージを生成する。図12(A)及び(B)の例では、フィーチャー1とフィーチャー2の設定値を含むハンドル値ノーティフィケーション1を生成してスマートフォン200に送信し(ステップS2228)、フィーチャー3とフィーチャー4の設定値を含むハンドル値ノーティフィケーション2を生成して送信する(ステップS2230)。これによって、プロセスが終了する。
コマンド種別が0x01である場合、電子時計100は、指示コマンド(書込待機指示)に従って、データ書込みを指示する書き込みコマンドの受信を待機する(ステップS2232)。図14(A)及び(B)の例では、スマートフォン200が書き込みたいフィーチャー1とフィーチャー2の設定値を含む書き込みコマンド1を受信し(ステップS2234)、フィーチャー3とフィーチャー4の設定値を含む書き込みコマンド2を受信する(ステップS2236)。電子時計100は、指示コマンドから取得したデータフォーマットのデータの順序、組み合わせ、区切り等に基づいて、スマートフォン200から受信した書き込みコマンド1と書き込みコマンド2とのデータを解析し、フィーチャー1からフィーチャー4の設定値を書き込む(ステップS2238)。これによって、プロセスが終了する。
図18及び図19は、本発明の一実施形態に係るスマートフォン200においての通信プロセスを実現するためのアルゴリズムを示すフローチャートである。図18は、スマートフォン200が電子時計100にデータの送信を指示するプロセスを示めす。以下、図9乃至図12を参照して、図18を詳細に説明する。スマートフォン200は、スキャン時間を計測するためのタイマを開始し(ステップS2302)、スキャンを開始する(ステップS2304)。上述のように、スマートフォン200は、周期的に、又は、所定の条件が満たされたときに(例えば、所定の時刻になったときに、又は、ボタン操作があったときに)、スキャンを行なう。
スマートフォン200は、タイマの時間が所定の時間Ts(スキャン時間幅)に達したかどうかを判断する(ステップS2306)。タイマの時間がTsに達していない場合、即ち、タイムアウトが起きていない場合は(ステップS2306:No)、プロセスはステップ2310へ移る。タイマの時間がTsに達した場合、即ち、タイムアウトが起きた場合は(ステップS2306:Yes)、スキャンを停止する(ステップS2308)。ステップ2310において、スマートフォン200のホストはコントローラからアドバタイジングレポートを受け取る。続いて、スマートフォン200は、電子時計100からADV_INDタイプのアドバタイジングパケットが受信されたかどうかを判断する(ステップS2312)。ADV_INDタイプのアドバタイジングパケットが受信されていない場合(ステップS2312:No)、プロセスはステップS2306に戻る。ADV_INDタイプのアドバタイジングパケットが受信された場合(ステップS2312:Yes)、スマートフォン200は、スキャンを停止し、タイマの時間計測を停止する(ステップS2314)。次に、電子時計100にコネクション要求を送信する(ステップS2316)。図18でもサービスディスカバリーの工程は省略する。
上記の過程によって、2つの装置間のコネクションが確立されると、スマートフォン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(送信指示)と、それに続くデータのフォーマットとで構成される(図12(A)を参照)。そして、上記書き込みコマンドを、電子時計100に送信する(ステップS2326)。
次に、電子時計100から、上記指示コマンドによって要求した設定情報を通知するメッセージを受信する。図12(A)及び(B)の例では、フィーチャー1とフィーチャー2の設定値を含むハンドル値ノーティフィケーション1を受信し(ステップS2328)、フィーチャー3とフィーチャー4の設定値を含むハンドル値ノーティフィケーション2を受信する(ステップS2330)。スマートフォン200は、受信したメッセージを、上記データフォーマットに基づいて、解析し処理する(ステップS2332)。具体的に、受信した各々のハンドル値ノーティフィケーションのアトリビュート値に格納されているデータを、上記データフォーマットの順序に結合されたデータとして解釈し、4つのフィーチャーの設定情報を取得してメモリ(例えば、図2(B)の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(書込待機指示)と、それに続くデータのフォーマットとで構成される(図14(A)を参照)。そして、上記書き込みコマンドを、電子時計100に送信する(ステップS2426)。
次に、設定情報の書込みを指示するメッセージである書き込みコマンドを生成して、電子時計100に送信する。当該書き込みコマンドは、アトリビュートハンドルパラメータと、アトリビュート値パラメータとのそれぞれが、Watch Featuresのキャラクタリスティック値ハンドルと、書き込みたい設定情報とに設定される。図14(A)及び(B)の例では、フィーチャー1とフィーチャー2の設定値を順に格納した書き込みコマンド1を送信し(ステップS2428)、フィーチャー3とフィーチャー4の設定値を順に格納した書き込みコマンド2を送信する(ステップS2430)。これによって、プロセスが終了する。
図17乃至図19において、書き込みコマンドとハンドル値ノーティフィケーションとのそれぞれは、書き込み要求とハンドル値インディケーションとに切り替えることができる。図17乃至図19に示された実施形態によると、MTUサイズを最大限に生かすようにデータをまとめて送受信するために、クライアントであるスマートフォン200がサーバである電子時計100に指示コマンドを送信してデータのトランザクションを抑制する。データをまとめて送受信することで、通信量(回数)を削減し、消費電力を抑制できる。
<第2の実施形態>
上記の実施形態では、スマートフォン200の制約により、接続時にMTUサイズ交換が必ず実行されることと、ホストがMTUサイズ交換の結果として更新されたATT_MTUをコントローラから受け取る手段がないことを想定した。その制約がない場合には、図20に示すように、必要なときのみにMTUサイズ交換を実行する。
図20は、本発明の一実施形態に係るスマートフォン200においての通信プロセスを実現するためのアルゴリズムを示すフローチャートである。図20は、スマートフォン200が、電子時計100にデータの送信を指示するプロセスを示めす。図20において、図18と同一の処理内容には同一の符号を付して、説明を省略する。
2つの装置間のコネクションが確立されると、スマートフォン200は、要求するデータの合計サイズMを算出する(ステップS2518)。そして、MがデフォルトATT_MTU−3、即ち20オクテットに収まるかどうかを判断する(ステップS2520)。Mが20オクテットを超える場合は(ステップS2520:No)、ステップS2532へ移る。Mが20オクテットを超えない場合は(ステップS2520:Yes)、送信指示用の指示コマンドである書き込みコマンドを作成して(ステップS2324)、電子時計100に送信する(ステップS2326)。
その後、2つのノーティフィケーションメッセージを受信するが(S2328,S2330)、メッセージの個数、即ち、データの区切りは、ATT_MTU、サイズM、データの種類の数、等に応じて決まることができる。スマートフォン200は、受信したメッセージを、上記データフォーマットに基づいて、解析し処理する(ステップS2530)。具体的に、受信した各々のハンドル値ノーティフィケーションのアトリビュート値に格納されているデータを、上記データフォーマットの順序に結合されたデータとして解釈し、設定情報を取得してメモリ(例えば、図2(B)の208)に格納する。これによって、プロセスが終了する。
一方、Mが20オクテットを超える場合は(ステップS2520:No)、ステップS2532へ移ってMTUサイズ交換を実施する。スマートフォン200は、最大受信MTUサイズを知らせるためのMTUサイズ交換要求を電子時計100に送信し(ステップS2532)、電子時計100から、最大受信MTUサイズを知らせるMTUサイズ交換応答を受信する(ステップS2534)。次に、自分の最大受信MTUサイズと、電子時計100の最大受信MTUとを比較して、その最小値を更新されたATT_MTUとして取得する(ステップS2536)。
本実施形態によると、MTUサイズ交換に関連するデータのトランザクションを更に削減することが可能になる。
<第3の実施形態>
図21は本発明の他の実施形態に係るアトリビュートデータベースの一例を示す。図7のアトリビュートデータベースは、電子時計100がデータを送受信するフォーマットを指定する指示コマンドを書込むための1つキャラクタリスティックであるRequest Command for Featuresを含む。これに対し、図21の実施形態では、データ送信用のフォーマットを書き込むためのキャラクタリスティックであるRead Command for Featuresと、データ書込用のフォーマットを書き込むためのキャラクタリスティックであるWrite Command for Featuresとを含む。また、本実施形態では、図10で説明したコマンド種別を用いない。その代わり、スマートフォン200が電子時計100にフィーチャーの設定値を送信するように指示する場合は、送信指示用の指示コマンドとして、アトリビュートハンドルパラメータとアトリビュート値パラメータとのそれぞれが、Read Command for Featuresのキャラクタリスティック値のハンドル(0x0012)と、送信するデータのフォーマットとに設定された書き込みコマンドを送信する。スマートフォン200が電子時計100にフィーチャーの設定値の書込みを待機するように指示する場合は、書込待機指示用の指示コマンドとして、アトリビュートハンドルパラメータとアトリビュート値パラメータとのそれぞれが、Write Command for Featuresのキャラクタリスティック値のハンドル(0x0017)と、書き込むデータのフォーマットとに設定された書き込みコマンドを送信する。
電子時計100は、アトリビュートハンドルパラメータが、Read Command for Featuresのキャラクタリスティック値のハンドルに設定された書き込みコマンドを受信すれば、この書き込みコマンドを送信指示用の指示コマンドと判断し、アトリビュート値パラメータであるデータフォーマットをRead Command for Featuresのキャラクタリスティック値として格納する。そして、このデータフォーマットに基づいて、スマートフォン200に送信するメッセージを生成する。
電子時計100は、アトリビュートハンドルパラメータが、Write Command for Featuresのキャラクタリスティック値のハンドルに設定された書き込みコマンドを受信すれば、この書き込みコマンドを書込待機指示用の指示コマンドと判断し、アトリビュート値パラメータであるデータフォーマットをWrite Command for Featuresのキャラクタリスティック値として格納する。そして、このデータフォーマットに基づいて、スマートフォン200から受信されるメッセージを解析する。
本発明の上記の複数の実施形態によると、全てのフィーチャーの値を統合型キャラクタリスティックであるWatch Featuresを利用して管理することで、サービスディスカバリーに所要する時間を短縮し、通信回数を減らす。また、新しいフィーチャーが付加されてもサービスやキャラクタリスティックを追加する必要がない。サーバ装置に、現在のバージョンの仕様によって規定されているフィーチャーを追加しようとする場合は、当該フィーチャーに対応する区別情報とアトリビュートを追加すれば良い。この場合は、フィーチャーの追加のためのユーザのプログラミングの時に上記フィーチャーによって区別情報が自動的に付与されるように通信装置のファームウェアが設計されているとユーザの便宜性を高めることができる。また、現在のバージョンの仕様によって規定されていない新しいフィーチャーをユーザに追加させることができるようにファームウェアが設計されても良い。この場合は、当該フィーチャーの設定値を区別するための新しい区別情報を生成する。新しく生成される区別情報は、他のフィーチャーの設定値に与えられた区別情報と異なる固有の値を持つことが好ましい。尚、ユーザが標準グループが管理するウェブサイトを通じて区別情報を追加することができるようにすることも可能である。新しい区別情報が追加された仕様は、ファームウェアのアップデート等によって通信装置に適用されることができる。
以上、本発明をブルートゥース(Bluetooth(登録商標))、特に、BLEに適用した実施形態について説明したが、本発明の適用分野はこれに限定されないし、例えば、他の無線通信技術にも適用可能である。特に、MTUを用いる無線通信技術に適用可能である。
本発明が属する技術分野における通常の知識を有する者は、上記説明及び関連図面から本発明の多くの変形及び他の実施形態を導出することができる。従って、本発明は開示された特定の実施形態に限定されない。本明細書では、複数の特定用語が使われているが、これらは一般的な意味として単に説明の目的のために使われただけであり、発明を制限する目的で使われたものではない。添付の特許請求の範囲及びその均等物により定義される一般的な発明の概念及び思想を抜け出さない範囲で多様な変形が可能である。以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記の番号は、この出願の願書に最初に添付した特許請求の範囲の通りである。
(付記)
(付記1)
通信パケットを他の通信装置と送受信する通信部と、
プロセッサと、
を備え、
前記プロセッサは、前記通信部を介して前記他の通信装置から、データのパッケージ方法を示す第1の情報を含むパケットを受信し、前記第1の情報に対応するデータを前記通信部を介して前記他の通信装置と通信することを特徴とする通信装置。
(付記2)
前記プロセッサは、前記通信部を介して前記他の通信装置から通信制御に関する第2の情報を受信し、受信した前記第2の情報に基づいて前記通信部を制御することを特徴とする付記1に記載の通信装置。
(付記3)
前記第2の情報が第1の値を有する場合は、前記プロセッサが、前記第1の情報に基づいて、前記他の通信装置に送信する一つ以上のパケットを生成し、
前記第2の情報が前記第1の値と異なる第2の値を有する場合は、前記通信部が、前記他の通信装置からのパケットの受信を待機することを特徴とする付記2に記載の通信装置。
(付記4)
メモリを備え、
前記プロセッサは、
前記第2の情報が前記第2の値を有する場合に、前記第1の情報に基づいて、前記他の通信装置から受信された所定の個数のパケットに含まれているデータを、前記メモリに記憶させることを特徴とする付記2又は3に記載の通信装置。
(付記5)
前記メモリは、複数のフィーチャーを区別する区別情報と、それぞれのフィーチャーの設定値を記憶し、
前記プロセッサは、
前記第2の情報が前記第1の値を有する場合に、各々が一つ以上のフィーチャーの設定値を含む所定の個数のパケットを生成し、
前記第2の情報が前記第2の値を有する場合に、前記第1の情報に基づいて、前記他の通信装置から受信された所定の個数のパケットを解析することを特徴とする付記3又は4に記載の通信装置。
(付記6)
前記第1の情報は、一つ以上の区別情報を含むことを特徴とする付記5に記載の通信装置。
(付記7)
前記第1の情報は、複数の区別情報と、区切り情報とを含み、
前記区切り情報は、一つのパケットで通信するデータと、他のパケットで通信するデータとを区分することを示すことを特徴とする付記5に記載の通信装置。
(付記8)
前記他の通信装置と通信するパケットの数は、前記第1の情報における前記区切り情報と前記区別情報との配置に基づいて決まることを特徴とする付記7に記載の通信装置。
(付記9)
前記プロセッサは、前記第2の情報が前記第1の値を有する場合に、前記第1の情報に含まれている複数の区別情報の順に、前記複数の区別情報に対応する複数のフィーチャーの設定値を含む所定の個数のパケットを生成することを特徴とする付記6乃至8の何れか1つに記載の通信装置。
(付記10)
前記プロセッサは、前記第2の情報が前記第2の値を有する場合に、前記第1の情報に含まれている複数の区別情報の順に、前記他の通信装置から受信された所定の個数のパケットに含まれているデータを、前記複数の区別情報に対応する複数のフィーチャーの設定値として、前記メモリに記憶させることを特徴とする付記6乃至9の何れか1つに記載の通信装置。
(付記11)
前記メモリは、前記複数のフィーチャーの設定値のそれぞれの長さを示す長さ情報を記憶することを特徴とする付記5乃至10の何れか1つに記載の通信装置。
(付記12)
前記プロセッサは、前記第2の情報が前記第1の値を有する場合、前記第1の情報と、前記長さ情報とに基づいて、所定の個数のパケットを生成し、
前記所定の個数のパケットのそれぞれは、一つ以上のフィーチャーの設定値を含むことを特徴とする付記11に記載の通信装置。
(付記13)
前記プロセッサは、前記第2の情報が前記第2の値を有する場合、前記第1の情報と、前記長さ情報に基づいて、前記他の通信装置から受信された所定の個数のパケットを解析することを特徴とする付記11又は12に記載の通信装置。
(付記14)
前記メモリは、前記通信装置の最大受信MTUサイズを記憶し、
前記プロセッサは、前記通信部を介して前記他の通信装置の最大受信MTUサイズを取得した場合、前記他の装置の最大受信MTUサイズと、前記通信装置の最大受信MTUサイズとを比較して、その最小値を含むパケットを生成することを特徴とする付記4乃至13の何れか1つに記載の通信装置。
(付記15)
前記第2の情報によって前記他の通信装置に送信するパケットを生成するように指示された場合に、前記プロセッサによって生成されるそれぞれのパケットに含まれるデータの総サイズは、前記最小値から3を引いた値を越えないことを特徴とする付記14に記載の通信装置。
(付記16)
付記1乃至15の何れか1つに記載の通信装置と、
現在の日時を計数する計時部と、
前記計時部が計数した前記日時を表示する表示部と、
を備えることを特徴とする電子時計。
(付記17)
無線通信のできる装置であって、
他の通信装置と通信パケットを送受信する通信部と、
プロセッサと、
を備え、
前記プロセッサは、他の通信装置の単位通信当たり通信可能のデータサイズに基づいて、前記他の通信装置と通信する一つ以上の種類のデータのパッケージ方法を決めることを特徴とする通信装置。
(付記18)
無線通信のできる装置の通信方法であって、
他の通信装置から、データのパッケージ方法を示すパッケージ方法情報を含むパケットを受信するステップと、
前記パケットから、前記第パッケージ方法情報を抽出するステップと、
前記パッケージ方法情報に対応するデータを通信するステップと、
を備えることを特徴とする通信方法。
(付記19)
無線通信のできる装置の通信方法であって、
他の通信装置から単位通信当たり通信可能のデータサイズを示すサイズ情報を受信するステップと、
前記サイズ情報に基づいて、前記他の通信装置と通信する一つ以上の種類のデータのパッケージ方法を決めるステップと、
前記パッケージ方法を示すフォーマット情報を含むパケットを生成するステップと、
前記パケットを前記他の通信装置に送信するステップと、
を備えることを特徴とする通信方法。
(付記20)
無線通信のできる装置に、
他の通信装置から、データのパッケージ方法を示すパッケージ方法情報を含むパケットを受信するステップと、
前記パケットから、前記パッケージ方法情報を抽出するステップと、
前記パッケージ方法情報に対応するデータを通信するステップと、
を実行させるプログラム。
(付記21)
無線通信のできる装置に、
他の通信装置から単位通信当たり通信可能のデータサイズを示すサイズ情報を受信するステップと、
前記サイズ情報に基づいて、前記他の通信装置と通信する一つ以上の種類のデータのパッケージ方法を決めるステップと、
前記パッケージ方法を示すフォーマット情報を含むパケットを生成するステップと、
前記パケットを前記他の通信装置に送信するステップと、
を実行させるプログラム。
100 電子時計
200 スマートフォン
102 近距離通信部
104 プロセッサ
106 電源部
108 メモリ
110 時計部
112 入力部
114 表示部
202 遠距離通信処理部
204 近距離通信部
206 プロセッサ
208 メモリ
210 電源部
212 入力部
214 表示部
216 時計部

Claims (21)

  1. 通信パケットを他の通信装置と送受信する通信部と、
    プロセッサと、
    を備え、
    前記プロセッサは、前記通信部を介して前記他の通信装置から、データのパッケージ方法を示す第1の情報を含むパケットを受信し、前記第1の情報に対応するデータを前記通信部を介して前記他の通信装置と通信することを特徴とする通信装置。
  2. 前記プロセッサは、前記通信部を介して前記他の通信装置から通信制御に関する第2の情報を受信し、受信した前記第2の情報に基づいて前記通信部を制御することを特徴とする請求項1に記載の通信装置。
  3. 前記第2の情報が第1の値を有する場合は、前記プロセッサが、前記第1の情報に基づいて、前記他の通信装置に送信する一つ以上のパケットを生成し、
    前記第2の情報が前記第1の値と異なる第2の値を有する場合は、前記通信部が、前記他の通信装置からのパケットの受信を待機することを特徴とする請求項2に記載の通信装置。
  4. メモリを備え、
    前記プロセッサは、
    前記第2の情報が前記第2の値を有する場合に、前記第1の情報に基づいて、前記他の通信装置から受信された所定の個数のパケットに含まれているデータを、前記メモリに記憶させることを特徴とする請求項2又は3に記載の通信装置。
  5. 前記メモリは、複数のフィーチャーを区別する区別情報と、それぞれのフィーチャーの設定値を記憶し、
    前記プロセッサは、
    前記第2の情報が前記第1の値を有する場合に、各々が一つ以上のフィーチャーの設定値を含む所定の個数のパケットを生成し、
    前記第2の情報が前記第2の値を有する場合に、前記第1の情報に基づいて、前記他の通信装置から受信された所定の個数のパケットを解析することを特徴とする請求項3又は4に記載の通信装置。
  6. 前記第1の情報は、一つ以上の区別情報を含むことを特徴とする請求項5に記載の通信装置。
  7. 前記第1の情報は、複数の区別情報と、区切り情報とを含み、
    前記区切り情報は、一つのパケットで通信するデータと、他のパケットで通信するデータとを区分することを示すことを特徴とする請求項5に記載の通信装置。
  8. 前記他の通信装置と通信するパケットの数は、前記第1の情報における前記区切り情報と前記区別情報との配置に基づいて決まることを特徴とする請求項7に記載の通信装置。
  9. 前記プロセッサは、前記第2の情報が前記第1の値を有する場合に、前記第1の情報に含まれている複数の区別情報の順に、前記複数の区別情報に対応する複数のフィーチャーの設定値を含む所定の個数のパケットを生成することを特徴とする請求項6乃至8の何れか1項に記載の通信装置。
  10. 前記プロセッサは、前記第2の情報が前記第2の値を有する場合に、前記第1の情報に含まれている複数の区別情報の順に、前記他の通信装置から受信された所定の個数のパケットに含まれているデータを、前記複数の区別情報に対応する複数のフィーチャーの設定値として、前記メモリに記憶させることを特徴とする請求項6乃至9の何れか1項に記載の通信装置。
  11. 前記メモリは、前記複数のフィーチャーの設定値のそれぞれの長さを示す長さ情報を記憶することを特徴とする請求項5乃至10の何れか1項に記載の通信装置。
  12. 前記プロセッサは、前記第2の情報が前記第1の値を有する場合、前記第1の情報と、前記長さ情報とに基づいて、所定の個数のパケットを生成し、
    前記所定の個数のパケットのそれぞれは、一つ以上のフィーチャーの設定値を含むことを特徴とする請求項11に記載の通信装置。
  13. 前記プロセッサは、前記第2の情報が前記第2の値を有する場合、前記第1の情報と、前記長さ情報に基づいて、前記他の通信装置から受信された所定の個数のパケットを解析することを特徴とする請求項11又は12に記載の通信装置。
  14. 前記メモリは、前記通信装置の最大受信MTUサイズを記憶し、
    前記プロセッサは、前記通信部を介して前記他の通信装置の最大受信MTUサイズを取得した場合、前記他の装置の最大受信MTUサイズと、前記通信装置の最大受信MTUサイズとを比較して、その最小値を含むパケットを生成することを特徴とする請求項4乃至13の何れか1項に記載の通信装置。
  15. 前記第2の情報によって前記他の通信装置に送信するパケットを生成するように指示された場合に、前記プロセッサによって生成されるそれぞれのパケットに含まれるデータの総サイズは、前記最小値から3を引いた値を越えないことを特徴とする請求項14に記載の通信装置。
  16. 請求項1乃至15の何れか1項に記載の通信装置と、
    現在の日時を計数する計時部と、
    前記計時部が計数した前記日時を表示する表示部と、
    を備えることを特徴とする電子時計。
  17. 無線通信のできる装置であって、
    他の通信装置と通信パケットを送受信する通信部と、
    プロセッサと、
    を備え、
    前記プロセッサは、他の通信装置の単位通信当たり通信可能のデータサイズに基づいて、前記他の通信装置と通信する一つ以上の種類のデータのパッケージ方法を決めることを特徴とする通信装置。
  18. 無線通信のできる装置の通信方法であって、
    他の通信装置から、データのパッケージ方法を示すパッケージ方法情報を含むパケットを受信するステップと、
    前記パケットから、前記パッケージ方法情報を抽出するステップと、
    前記パッケージ方法情報に対応するデータを通信するステップと、
    を備えることを特徴とする通信方法。
  19. 無線通信のできる装置の通信方法であって、
    他の通信装置から単位通信当たり通信可能のデータサイズを示すサイズ情報を受信するステップと、
    前記サイズ情報に基づいて、前記他の通信装置と通信する一つ以上の種類のデータのパッケージ方法を決めるステップと、
    前記パッケージ方法を示すフォーマット情報を含むパケットを生成するステップと、
    前記パケットを前記他の通信装置に送信するステップと、
    を備えることを特徴とする通信方法。
  20. 無線通信のできる装置に、
    他の通信装置から、データのパッケージ方法を示すパッケージ方法情報を含むパケットを受信するステップと、
    前記パケットから、前記パッケージ方法情報を抽出するステップと、
    前記パッケージ方法情報に対応するデータを通信するステップと、
    を実行させるプログラム。
  21. 無線通信のできる装置に、
    他の通信装置から単位通信当たり通信可能のデータサイズを示すサイズ情報を受信するステップと、
    前記サイズ情報に基づいて、前記他の通信装置と通信する一つ以上の種類のデータのパッケージ方法を決めるステップと、
    前記パッケージ方法を示すフォーマット情報を含むパケットを生成するステップと、
    前記パケットを前記他の通信装置に送信するステップと、
    を実行させるプログラム。
JP2017061328A 2017-03-27 2017-03-27 通信装置、電子時計、通信方法、及びプログラム Active JP6988124B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017061328A JP6988124B2 (ja) 2017-03-27 2017-03-27 通信装置、電子時計、通信方法、及びプログラム
KR1020180024913A KR102567858B1 (ko) 2017-03-27 2018-02-28 통신 장치, 통신 방법, 및 기억 매체에 저장된 프로그램
US15/914,014 US10484293B2 (en) 2017-03-27 2018-03-07 Communication device, communication method, and storage medium
CN201810245243.XA CN108668262B (zh) 2017-03-27 2018-03-23 通信装置、通信方法及记录介质

Applications Claiming Priority (1)

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

Publications (3)

Publication Number Publication Date
JP2018164225A true JP2018164225A (ja) 2018-10-18
JP2018164225A5 JP2018164225A5 (ja) 2020-04-23
JP6988124B2 JP6988124B2 (ja) 2022-01-05

Family

ID=63583032

Family Applications (1)

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

Country Status (4)

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

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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03132126A (ja) * 1989-10-17 1991-06-05 Matsushita Electric Ind Co Ltd データ伝送機能付き電子機器
JP2000181826A (ja) * 1998-12-15 2000-06-30 Canon Inc ネットワークデバイス制御装置及び方法
JP2008097326A (ja) * 2006-10-12 2008-04-24 Fujitsu Access Ltd Snmpシーケンス管理方法、マネージャ装置及びエージェント装置
JP2015076876A (ja) * 2013-10-11 2015-04-20 三星電子株式会社Samsung Electronics Co.,Ltd. 通信サービス運用方法及びこれを支援する電子装置
US20160371961A1 (en) * 2015-06-16 2016-12-22 Google Inc. Remote alarm hushing

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
JP6141053B2 (ja) * 2013-03-08 2017-06-07 クラリオン株式会社 端末装置、通信システム、情報処理装置、及び通信プログラム
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
WO2015163680A1 (ko) * 2014-04-21 2015-10-29 엘지전자(주) 무선 통신 시스템에서 블루투스 저전력 에너지 기술을 이용하여 데이터를 송수신하기 위한 방법 및 장치
JP6530634B2 (ja) * 2015-04-22 2019-06-12 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
CN106211019A (zh) * 2015-04-29 2016-12-07 展讯通信(深圳)有限公司 一种数据传输方法
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03132126A (ja) * 1989-10-17 1991-06-05 Matsushita Electric Ind Co Ltd データ伝送機能付き電子機器
JP2000181826A (ja) * 1998-12-15 2000-06-30 Canon Inc ネットワークデバイス制御装置及び方法
JP2008097326A (ja) * 2006-10-12 2008-04-24 Fujitsu Access Ltd Snmpシーケンス管理方法、マネージャ装置及びエージェント装置
JP2015076876A (ja) * 2013-10-11 2015-04-20 三星電子株式会社Samsung Electronics Co.,Ltd. 通信サービス運用方法及びこれを支援する電子装置
US20160371961A1 (en) * 2015-06-16 2016-12-22 Google Inc. Remote alarm hushing

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
堤 修一 松村 礼央: "iOS×BLE 初版", CORE BLUETOOTHプログラミング CORE BLUETOOTH PROGRAMMING, vol. 初版, JPN6020050758, 30 March 2015 (2015-03-30), pages 119 - 144, ISSN: 0004570792 *

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
KR102567858B1 (ko) 2023-08-16
US10484293B2 (en) 2019-11-19

Similar Documents

Publication Publication Date Title
US10827334B2 (en) Method and apparatus for connecting devices using Bluetooth LE technology
EP3893109B1 (en) Method and device for connecting bluetooth devices
JP6396482B2 (ja) 無線通信システムにおけるブルートゥース低電力エネルギーを利用してオブジェクト送信サービスを行うための方法及び装置
EP3550888A1 (en) Wireless connection switching method and terminal
JP7163995B2 (ja) 通信装置、通信方法、及びプログラム
EP2914046A1 (en) Communication connection establishment method and terminal
US10785713B2 (en) Device and method for accessing multiple networks in wireless communication system
JP2020520573A (ja) エアロゾル送達デバイス情報を送信する方法及びエアロゾル送達デバイス
US10887762B2 (en) Method and apparatus for transmitting and receiving data using Bluetooth technology
US10721611B2 (en) Method and device for controlling device by using Bluetooth technology
KR102567858B1 (ko) 통신 장치, 통신 방법, 및 기억 매체에 저장된 프로그램
CN108432311A (zh) 一种资源请求方法、设备、网络侧节点及系统
US11622196B2 (en) Method for transmitting audio data by using short-range wireless communication in wireless communication system, and apparatus for same
US10194477B2 (en) Method and apparatus for controlling a device using bluetooth technology
KR102398992B1 (ko) 통신 장치, 통신 방법, 및 기억 매체에 저장된 프로그램
US11252553B2 (en) Method and device for establishing connection using Bluetooth low energy
JP6566456B1 (ja) 表示制御システム、通信装置、表示制御方法および表示制御プログラム
US11882533B2 (en) Method for transmitting audio data using short-range wireless communication in wireless communication system, and apparatus therefor
RU2782181C1 (ru) Способ и устройство соединения bluetooth-устройств
KR102177201B1 (ko) 무선 통신시스템에서 데이터의 송수신 방법, 장치 및 시스템

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200310

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211007

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211115

R150 Certificate of patent or registration of utility model

Ref document number: 6988124

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150