通信装置、通信方法及记录介质

申请号 CN201810245243.X 申请日 2018-03-23 公开(公告)号 CN108668262B 公开(公告)日 2021-01-15
申请人 卡西欧计算机株式会社; 发明人 姜和穗; 中川诚; 岩见谷宏; 寺崎努; 富田高弘; 奥村亮; 高桥智洋;
摘要 本 发明 提供一种通信装置、通信方法及记录介质。能够进行无线通信的通信装置具备:通信部,其与其他的通信装置发送接收通信包;以及处理器。上述处理器经由上述通信部从上述其他的通信装置接收包含表示数据的封装方法的第一信息的包,并经由上述通信部与上述其他的通信装置对于与上述第一信息对应的数据进行通信。
权利要求

1.一种通信装置,其特征在于,具备:
通信部,其与其他的通信装置发送接收通信包;以及
处理器,
所述处理器经由所述通信部从所述其他的通信装置接收包含表示数据的封装方法的第一信息的包,并经由所述通信部与所述其他的通信装置对于与所述第一信息对应的数据进行通信,
所述通信装置根据想要写入所述其他的通信装置的多个种类的设定信息的长度来决定数据的顺序、组合、分隔的数据的封装方法,并将该数据的封装方法收纳于在客户端与服务器之间发送的包的最大大小中。
2.根据权利要求1所述的通信装置,其特征在于,
所述处理器经由所述通信部从所述其他的通信装置接收与通信控制有关的第二信息,并基于接收到的所述第二信息控制所述通信部。
3.根据权利要求2所述的通信装置,其特征在于,
在所述第二信息具有第一值的情况下,所述处理器基于所述第一信息生成发送给所述其他的通信装置的一个以上的包,
在所述第二信息具有与所述第一值不同的第二值的情况下,所述通信部等待接收来自所述其他的通信装置的包。
4.根据权利要求3所述的通信装置,其特征在于,
还具备存储器
所述存储器存储对多个特征进行区别的区别信息和各个特征的设定值,
在所述第二信息具有所述第一值的情况下,所述处理器生成分别包含一个以上的特征的设定值的预定个数的包,
在所述第二信息具有所述第二值的情况下,所述处理器基于所述第一信息分析从所述其他的通信装置接收到的预定个数的包。
5.一种电子表,其特征在于,具备:
权利要求1所述的通信装置;
计时部,其对当前的日期时间进行计数;以及
显示部,其显示所述计时部计数的所述日期时间。
6.一种通信装置,其是能够进行无线通信的装置,其特征在于,具备:
通信部,其与其他的通信装置发送接收通信包;以及
处理器,
所述处理器基于其他的通信装置的每单位通信能够通信的数据大小,决定与所述其他的通信装置进行通信的一个以上的种类的数据的封装方法,
所述通信装置根据想要写入所述其他的通信装置的多个种类的设定信息的长度来决定数据的顺序、组合、分隔的数据的封装方法,并将该数据的封装方法收纳于在客户端与服务器之间发送的包的最大大小中。
7.一种能够进行无线通信的装置的通信方法,其特征在于,具备:
从其他的通信装置接收包含表示数据的封装方法的封装方法信息的包的步骤;
从所述包提取所述封装方法信息的步骤;
对于与所述封装方法信息对应的数据进行通信的步骤;以及
根据想要写入所述其他的通信装置的多个种类的设定信息的长度来决定数据的顺序、组合、分隔的数据的封装方法,并将该数据的封装方法收纳于在客户端与服务器之间发送的包的最大大小中的步骤。
8.一种能够进行无线通信的装置的通信方法,其特征在于,具备:
从其他的通信装置接收表示每单位通信能够通信的数据大小的大小信息的步骤;
基于所述大小信息决定与所述其他的通信装置进行通信的一个以上的种类的数据的封装方法的步骤;
生成包含表示所述封装方法的格式信息的包的步骤;
向所述其他的通信装置发送所述包的步骤;以及
根据想要写入所述其他的通信装置的多个种类的设定信息的长度来决定数据的顺序、组合、分隔的数据的封装方法,并将该数据的封装方法收纳于在客户端与服务器之间发送的包的最大大小中的步骤。
9.一种记录介质,其特征在于,
所述记录介质记录了程序,该程序使能够进行无线通信的装置执行以下步骤:
从其他的通信装置接收包含表示数据的封装方法的封装方法信息的包的步骤;
从所述包提取所述封装方法信息的步骤;
对于与所述封装方法信息对应的数据进行通信的步骤;以及
根据想要写入所述其他的通信装置的多个种类的设定信息的长度来决定数据的顺序、组合、分隔的数据的封装方法,并将该数据的封装方法收纳于在客户端与服务器之间发送的包的最大大小中的步骤。
10.一种记录介质,其特征在于,
所述记录介质记录了程序,该程序使能够进行无线通信的装置执行以下步骤:
从其他的通信装置接收表示每单位通信能够通信的数据大小的大小信息的步骤;
基于所述大小信息决定与所述其他的通信装置进行通信的一个以上的种类的数据的封装方法的步骤;
生成包含表示所述封装方法的格式信息的包的步骤;
向所述其他的通信装置发送所述包的步骤;以及
根据想要写入所述其他的通信装置的多个种类的设定信息的长度来决定数据的顺序、组合、分隔的数据的封装方法,并将该数据的封装方法收纳于在客户端与服务器之间发送的包的最大大小中的步骤。

说明书全文

通信装置、通信方法及记录介质

技术领域

[0001] 本发明涉及一种通信装置、通信方法及记录用于执行该通信方法的程序的记录介质。

背景技术

[0002] 过去,存在一种利用蓝牙(Bluetooth:注册商标)等近距离无线通信能够交换各种信息的电子装置。蓝牙是能够在近距离内无线地连结各种装置来交换数据的近距离无线通信规则。蓝牙通信方法中有BR/EDR(Basic Rate/Enhanced Data Rate,基本速率/增强型数据速率)、作为低功率方式的LE(Low Energy低功率)。BR/EDR也被称常规蓝牙(Bluetooth Classic)。从蓝牙4.0开始应用的低功耗蓝牙(Bluetooth Low Energy:BLE)能够消耗较少的电稳定地提供数百千字节(Kbytes)的信息。与常规蓝牙相比,这样的BLE技术使动作简化来减少能量消耗。最近发售的智能手环、智能手表、智能眼镜等可穿戴无线通信装置几乎利用BLE技术进行无线通信。
[0003] 通过这样的近距离无线通信,能够在其他电子装置容易地获取由多个电子装置中的各个装置单独获取或保持的信息。例如,在日本特开2014-175830号公报中公开了一种为高效地进行通信,两个通信装置交换最大传输单位(Maximum Transmission Unit:MTU)值,并根据交换的MTU值分配通信期间的技术。
[0004] 但是,上述专利文献1公开的技术没有对发送接收的信息的种类进行考虑。从而,在想要对多个种类的信息进行通信的情况下,通信装置间的通信次数根据进行通信的信息的种类数而增加。因此,若进行通信的信息的种类数多,则通信装置的电流消耗和处理负荷增加。

发明内容

[0005] 公开了一种无线通信装置间的通信方法、执行该方法的通信装置及记录程序的记录介质。
[0006] 本发明一个方式是一种通信装置,其具备:通信部,其与其他的通信装置发送接收通信包;以及处理器,上述处理器经由上述通信部从上述其他的通信装置接收包含表示数据的封装方法的第一信息的包,并经由上述通信部与上述其他的通信装置针对与上述第一信息对应的数据进行通信。
[0007] 另外,本发明的另一方式是一种能够进行无线通信的装置,其具备:通信部,其与其他的通信装置发送接收通信包;以及处理器,上述处理器基于其他的通信装置的每单位通信能够进行通信的数据大小,决定与上述其他的通信装置进行通信的一个以上的种类的数据的封装方法。附图说明
[0008] 若与下面的附图一起考虑下面的详细描述,则能够更加深入地理解本申请。这些附图只不过是例示,并不用于限定本发明的范围。
[0009] 图1是表示能够应用在本说明书中提出的方法的无线通信系统的一例的图。
[0010] 图2A表示能够实现在本说明书中提出的方法的装置的内部框图的一例。
[0011] 图2B表示能够实现在本说明书中提出的方法的装置的内部框图的一例。
[0012] 图3是说明广告包的种类的图。
[0013] 图4A是表示用于交换属性值的属性协议PDU的通常的结构的图。
[0014] 图4B是表示存储在GATT服务器的属性的通常的结构的图。
[0015] 图5是表示通常的属性数据库的一例的图。
[0016] 图6表示服务器和客户端通过BLE通信进行数据的交换的通常的方法。
[0017] 图7是表示实施方式的属性数据库的一例的图。
[0018] 图8是表示实施方式的区别信息的一例的图。
[0019] 图9是表示实施方式的智能手机向电子表指示发送数据的方法的顺序图。
[0020] 图10是表示实施方式的指示命令的属性值的格式的图。
[0021] 图11是表示实施方式的命令类别的一例的图。
[0022] 图12A是表示实施方式的发送指示用指示命令的属性值的一例的图。
[0023] 图12B是表示实施方式的设定信息的通知消息的属性值的一例的图。
[0024] 图13是表示实施方式的智能手机指示电子表写入数据的方法的顺序图。
[0025] 图14A是表示实施方式的写入等待指示用指示命令的属性值的一例的图。
[0026] 图14B是表示实施方式的写入命令消息的属性值的一例的图。
[0027] 图15是实施方式的电子表的功能框图。
[0028] 图16是实施方式的智能手机的功能框图。
[0029] 图17是表示实施方式的用于实现电子表中的通信过程的算法流程图
[0030] 图18是实施方式的用于实现在智能手机中向电子表指示发送数据的通信过程的算法的流程图。
[0031] 图19是表示实施方式的用于实现在智能手机中指示电子表写入数据的通信过程的算法的流程图。
[0032] 图20是实施方式的用于实现在智能手机中向电子表指示发送数据的通信过程的算法的流程图。
[0033] 图21表示实施方式的属性数据库的一例。

具体实施方式

[0034] 在本说明书中,主要对应用蓝牙(注册商标),特别是应用BLE的实施方式进行说明,但不限于蓝牙。本实施方式对需要服务发现的所有通信方式均可适用。
[0035] 下面参照附图对实施方式进行详细说明。
[0036] 图1是对后述的实施方式通用,是表示能够应用在本说明书中提出的方法的无线通信系统的一例的图。在下面描述的实施方式中,第一装置和第二装置利用BLE技术进行近距离无线通信。无线通信系统10至少由第一装置100和能够通过BLE与第一装置100无线连接来交换数据的第二装置200构成。能够应用优选实施方式的第一装置100例如是作为腕表型终端装置一种的电子表。但是,第一装置100不限于此例,只要是能够进行BLE通信的装置,则不论其种类或形式。第一装置100例如也可以是数码相机、数字体重计的健康设备或智能手环等可穿戴设备。
[0037] 能够应用优选实施方式的第二装置200例如是作为移动电话一种的智能手机,与移动通信网20相连接。但是,第二装置200不限于此例,只要是能够进行近距离无线通信的装置,则不论其种类或形式。
[0038] 如下面详细说明的那样,BLE的ATT(Attribute Protocol属性协议)定义用于在服务器/客户端的结构中访问对方装置的数据的规则。服务器提供服务,客户端能够向服务器进行请求来取得与服务器提供的服务相关的信息。为了便于说明,以下,除非有特殊说明,设第一装置100为服务器,设第二装置200的应用为客户端来进行说明。但是,第一装置100在与其他装置的关系中能够作为客户端进行动作,第二装置在与其他设备的关系中能够作为服务器进行动作。在BLE通信系统中,一个装置能够作为服务器或客户端进行动作,必要时,也能够同时作为服务器和客户端进行动作。
[0039] 第二装置200能够向第一装置100请求数据。第一装置100在从第二装置200接收数据请求消息的情况下,根据响应消息向第二装置200提供数据。另外,第一装置100为了向第二装置200通知数据,对第二装置200发送通知(Notification)消息或指示(Indication)消息。在第一装置100向第二装置200发送了指示消息的情况下,若该指示消息由第二装置200接收,则第二装置200向第一装置100发送针对该指示消息的确认(Confirm)消息。另外,第二装置200为了对第一装置100指示数据的写入,发送请求(Request)消息或命令(Command)消息。在第二装置200向第一装置100发送了请求消息的情况下,若进行数据的写入,则第一装置100向第二装置200发送响应消息。
[0040] 第一装置100或第二装置200能够在与其他的装置发送和接收消息的过程中通过输出部(例如,显示部)向用户提供数据信息,或能够通过输入部(例如,User Input Interface用户输入接口)接收从用户输入的请求。另外,还能够从存储器读出数据,或向存储器记入新的数据。
[0041] 图2表示能够实现在本说明书中提出的方法的装置的内部框图的一例。图2A是第一装置100的内部框图,图2B是第二装置200的内部框图。
[0042] 如图2A所示,第一装置100包含:面向近距离通信的通信部102、处理器104、电源部106、存储器108、时钟部110、输入部112以及显示部114。面向近距离通信的通信部102包含能够利用近距离无线通信技术(例如,蓝牙)进行装置间的请求/响应、命令、通知、指示/确认消息或其他包的发送和接收的接口以及处理无线信号的基带电路。在本实施方式中,面向近距离通信的通信部102支持BLE。面向近距离通信的通信部102的至少一部分的功能可以通过软件实现,在通过软件实现的情况下,可以作为执行上述功能的程序的形式存储在存储器108。
[0043] 处理器104控制第一装置100的整体动作。有时,处理器104也被称为控制单元(Control Unit)、控制器等。处理器104可包含ASIC(application-specific integrated circuit,专用集成电路)、其他芯片组逻辑电路和/或数据处理装置。虽然省略图示,但电源部106包含电池和电源管理部。存储器108用于存储由处理器104执行的计算机程序命令、固件等各种软件和/或处理器104需要的数据或处理器104的处理结果。存储器108包含在第一装置100中装入的或能够从第一装置100装卸的RAM(Random Access Memory,随机存取存储器)、ROM(Read Only Memory,只读存储器)、闪速存储器或磁盘驱动器等一个或一个以上的任意的存储装置。存储器108也可以装入处理器104。
[0044] 虽然省略图示,但时钟部110例如包含根据由系统时钟或振荡器生成的信号来生成时刻信号的时钟电路即计数器,对当前时刻进行计时来生成时刻信息。时钟部110向处理器104输出生成的时刻信息。也能够将时钟部110装入处理器104内。输入部112由各种按键、开关和/或触控面板等构成,根据用户的输入部112的操作而输入各种数据。显示部114包含LCD、OLED等显示装置和驱动电路,显示当前时刻等信息。
[0045] 第一装置100通常在显示部114显示通过时钟部110计时的当前时刻。在通过面向近距离通信的通信部102从第二装置200接收到关于当前时刻的数据的情况下,通过将该数据表示的时刻设定在时钟部110,来使第一装置100的时刻与第二装置200的时刻同步。
[0046] 如图2B所示,第二装置200包含远距离通信处理部202、面向近距离通信的通信部204、处理器206、存储器208、电源部210、输入部212以及显示部214。处理器206包含时钟部
216。远距离通信处理部202通过与3G、LTE等移动电话系统的基站进行通信,来使第二装置
200作为移动电话发挥功能。远距离通信处理部202包含对通过天线接收或发送的信号进行放大的放大器、收发器、数字基带处理器、语音输入电路、再生电路等,对于这些周知的构成要素,将省略图示和说明。另外,通过经由远距离通信处理部202从移动通信网20获取准确的时刻数据,时钟部216能够保持准确的时刻信息。如上所述,第二装置200能够向第一装置
100传输时钟部216保持的时刻信息。
[0047] 面向近距离通信的通信部204包含能够利用近距离无线通信技术(例如,蓝牙)进行装置间的请求/响应、命令、通知、指示/确认消息或其他包的发送和接收的接口以及处理无线信号的基带电路。在本实施方式中,面向近距离通信的通信部204支持BLE。面向近距离通信的通信部204的至少一部分的功能可以通过软件来实现,在通过软件实现的情况下,作为执行上述功能的程序的形式存储在存储器208。
[0048] 处理器206控制第二装置200的整体动作,例如,是应用处理器。在本实施方式中,构成为处理器206包含时钟部216,但根据实施方式,也可作为独立的构成要素而包含时钟部216。存储器208用于存储由处理器206执行的计算机程序命令、固件等各种软件和/或处理器206所需要的数据或处理器206的处理结果。存储器208包含在第二装置200中装入的或能够从第二装置200装卸的RAM(Random Access Memory,随机存取存储器)、ROM(Read Only Memory,只读存储器)、闪速存储器或磁盘驱动器等一个或一个以上的任意的存储装置。存储器208也可装入处理器206。
[0049] 虽然省略图示,但电源部210包含电池和电源管理部。输入部212由各种按键、开关和/或触控面板等构成,根据用户的输入部212的操作而输入各种数据。显示部214包含LCD、OLED等显示装置和驱动电路。
[0050] 图1所示的系统和图2A、2B所示的装置只不过是举出的例子,并非限定能够实现本说明书中描述的方法的系统或装置的范围。
[0051] ATT定义用于在服务器/客户端结构中访问对方设备的数据的规则。在ATT中定义有6个种类的消息类型(请求、响应、命令、通知、指示、确认(Confirmation))。
[0052] (1)请求和响应消息:请求消息是客户端为了向服务器请求特定的信息而发送的消息,响应消息是服务器向客户端发送的针对请求消息的回复。
[0053] (2)命令消息:是客户端为了向服务器请求特定的动作而发送的消息,服务器不向客户端发送针对命令消息的响应。
[0054] (3)通知消息:是服务器为了向客户端通知事件等而发送的消息,客户端不向服务器发送针对通知消息的确认消息。
[0055] (4)指示以及确认消息:指示消息是服务器为了向客户端通知事件等而发送的消息,与通知消息不同,客户端向服务器发送针对指示消息的确认消息。
[0056] GATT(Generic Attribute Profile通用属性配置文件)作为用于说明在构成服务时如何使用ATT的协议来使用。GATT使用服务和特性(Characteristic)这样的概念向其他装置提供特定的数据(即,属性)。GATT定义服务器和客户端两个种类的作用,提供属性的装置为GATT服务器(以下,称为“服务器”),被提供属性的装置为GATT客户端(以下,称为“客户端”)。
[0057] 服务是能够提供信息,或履行行动,或代表其他实体控制资源的实体。服务可以作为软件、硬件或它们的组合来实现。在一个服务记录内包含关于由SDP服务器保有的一个服务的所有信息。服务将数据划分为逻辑实体,包含被称为特性的数据的(Chunk)。各个服务能够具有一个或一个以上的特性,且通过被称为UUID(Universal Unique Identifier,通用唯一标识)的固有的ID来区分。
[0058] 特性是在服务中使用的单一的数据排列,各个特性具有UUID。另外,各个特性具有特性声明和特性值声明这两个属性。特性声明具有属性类型和属性值,属性值具有特性性质(Characteristic Property)、特性值句柄(Characteristic Value Handle)以及特性UUID。特性值声明由针对特性值的UUID和特性值(Characteristic Value)构成。
[0059] 图3是说明广告包(Advertising packet)的种类的图。如图3所示,用于蓝牙通信的广告包存在四个类型,在包的PDU头部的PDU类型字段中设定的值表示包的类型。ADV_IND用于未指定对方的可连接广告事件,能够进行简易信息查询(即,可扫描)。简易信息查询是指在连接前,进行扫描的装置(扫描器)向进行广告的装置(广告装置)发送扫描请求(SCAN_REQ PDU)来向广告装置请求追加信息(设备信息、提供的服务等)的手续。ADV_DIRECT_IND用于仅能够连接指定的装置的广告事件。ADV_DIRECT_IND不具有用于存储广告数据的数据部。因此,在想要通过广告传输广告装置的数据的情况下,无法使用ADV_DIRECT_IND。ADV_NONCONN_IND用于任何装置均不能连接的广告事件。ADV_SCAN_IND用于任何装置均能够扫描的广告事件,且能够进行简易信息查询(即,无论怎样的装置均只能进行简易信息查询)。
[0060] 图4A表示用于交换属性值的属性协议PDU的通常的结构。GATT配置文件为了在装置间以命令、请求、响应、指示、通知以及确认的形式传输数据,使用属性配置文件。将该数据存储在图4A所示的结构的属性协议PDU中。属性协议PDU由属性操作码(Attribute Opcode)字段、属性参数(Attribute Parameters)字段以及认证署名(Authentication Signature)字段(可选地)构成。认证署名是可选字段,选择性地存在或不存在。
[0061] 上述属性操作码是1八位字节(octet)的长度,包含表示该属性协议PDU是何种PDU的信息。属性参数包含想要在消息中传递的实际的信息,能够具有如下值。
[0062] 句柄(Handle):对应于数据的参照信息(索引)。使用句柄,GATT客户端可参照、访问或变更值。
[0063] 值(Value):数据的值
[0064] 数据列表(Data List):各种数据值的目录
[0065] 长度(Length):数据的长度
[0066] 客户端能够使用上述那样的属性协议PDU读出在服务器中存储的属性句柄值、属性值、数据列表或长度值,或在服务器中存储这样的值。
[0067] 属性协议命令以及请求访问作为属性在服务器装置中存储的值。图4B表示存储在服务器的属性的通常的结构。服务器使用这样的形式的属性来提供服务。一个属性由四个构成要素构成,具有如下含义。
[0068] 属性句柄(Attribute Handle):与特定的属性对应的识别符(索引)
[0069] 属性类型(Attribute Type):属性的类型(记述属性值的UUID)
[0070] 属性值(Attribute Value):属性的值(根据句柄被编入索引的数据)
[0071] 属性许可(Attribute Permission):针对属性的读写许可
[0072] 图5表示通常的属性数据库的一例。安装有图5的属性数据库的BLE装置例如是电子表。各个服务履行逻辑上划分数据的作用,包含一个或一个以上的特性。如图所示,作为主要服务的表特征服务(Watch Feature Service)包含多个特性(服务N1、服务N2、……、服务Nx)。在本例中,作为服务的表特征服务包含x个特性。如图所示,在通常的BLE装置中,以对于一个特征具有一个特性的形式构成属性数据库。各个服务和各个特性具有UUID,即16比特或128比特的识别符。蓝牙标准联盟(Bluetooth Standard Group)将官方的服务和特性的UUID的列表作为蓝牙规格来提供。
[0073] 如上所述,各个特性具有特性声明和特性值声明这两个属性。例如,服务N1的特性声明由属性类型(特性的UUID,具体而言0x2803)、作为属性值的特性性质(0x0a)、特性值句柄(0x0012)以及特性UUID(服务N1的UUID)构成。服务N1的特性值声明由针对特性值的UUID(服务N1的UUID)和特性值(服务N1的值)构成。特性值是对应的特征的设定值。
[0074] 当确立了客户端与服务器的连接时,双方的装置能够进行数据通信,客户端能够访问服务器所提供的特定的服务。例如,图6表示服务器和客户端通过BLE通信进行数据交换的通常的方法。在图示的例子中,第一装置100作为服务器进行动作,第二装置200作为客户端进行动作。在第一装置100安装有图5的属性数据库。在想要向服务器请求特定的特性值的情况下,客户端向服务器发送读出请求(Read Request)。如在BLE规格中定义的那样,读出请求是为了请求服务器读出属性的值并发送该值而使用的消息,将属性句柄作为参数来使用。在该情况下,读出请求消息的属性句柄参数设定在特性值句柄中。
[0075] 在来自客户端的读出请求有效的情况下,即在客户端具有请求数据的权限的同时能够读出该数据的情况下,服务器通过读出响应(Read Response)向客户端发送客户端请求的数据。如在BLE规格中定义的那样,读出响应是为了对读出请求进行响应通过服务器发送的消息,包含读出的属性的值。读出响应消息将属性值作为参数来使用,在该情况下,通过读出响应传输的值是与上述特性值句柄对应的特性值。
[0076] 例如,在客户端请求服务N1的值的情况下,客户端向服务器发送在0x0012设定了属性句柄参数的读出请求。作为对此的响应,服务器向客户端发送在“服务N1值”中设定了属性值参数的读出响应。
[0077] 在想要向服务器写入数据的情况下,客户端向服务器发送写入请求(Write Request),该写入请求在写入数据的特性值的句柄和写入的数据中分别设定了属性句柄参数和属性值参数。写入请求是由ATT定义的消息类型的一种,如在BLE规格中定义的那样,是为了请求服务器写入属性的值而使用的消息。在写入的请求有效的情况下,服务器能够访问与上述句柄对应的特定的特性的值来将上述数据写入。若写入了上述数据,则服务器向客户端发送写入响应(Write Response)消息。若数据的写入失败,则服务器向客户端发送错误消息。另一方面,还能够代替写入请求而使用不伴有响应消息的写入命令(Write Command)来请求数据的写入。写入命令也是由ATT定义的消息类型的一种,如在BLE规格中定义的那样,是为了请求服务器写入属性的值而使用的消息。在该情况下,虽然在客户端侧无法立刻确认写入是否成功,但由于服务器不会为发送响应消息而消耗电力,因而在服务器为电池容量小的设备(例如,手表型可穿戴设备)的情况下,从降低电力消耗的方面而言,采用写入命令更为有利。
[0078] 在服务器想要向客户端通知数据的情况下,服务器向客户端发送句柄值指示(Handle Value Indication),该句柄值指示在作为要通知的数据的特性值的句柄以及该数据中分别设定了属性句柄参数和属性值参数。如在BLE规格中定义的那样,句柄值指示是服务器为了通知属性的值而发送的消息。客户端若正常地接收句柄值指示消息,则向服务器发送作为针对该消息的响应消息的句柄值确认(Handle Value Confirmation)。因此,在数据的重要度高的情况下,优选使用指示消息。在数据的重要度低,且降低客户端的电力消耗为重要的情况下,也可使用句柄值通知(Handle Value Notification)。如句柄值指示那样,句柄值通知是服务器为了通知属性的值而发送的消息,但不伴有作为响应消息的确认。
[0079] 在必要时,例如,在成为预定的时刻时,或者有用户的操作时,客户端向服务器请求数据,或指示记入数据,或从服务器接收数据。当前,在BLE装置中,例如,在可穿戴电子表(也称为智能手表)中,在与其他的装置交换多个种类的信息时,通过单独的消息发送接收各个种类的数据。因此,若进行交换的数据的种类增多,则发送接收的次数增加该种类数的量。这样的交易次数的增加使得电力消耗和处理负荷增加。下面利用多个实施方式描述的本发明通过控制数据的交易来提高通信的效率。但是,本发明不限于这些实施方式,本发明所属技术领域的一般的技术人员可从本说明书的记载中容易地导出多种变形或替代方案。
[0080] 图7表示本发明的一实施方式的属性数据库的一例。图5所示的现有的属性数据库包含与表特征服务(Watch Feature Service)的x个特征相对应的x个特性,作为属性值存储各个特性的值。本实施方式的属性数据库与特性的数量无关包含三个特性,即,更新的(Updated)ATT_MTU、特征的请求命令(Request Command for features)以及表特征(Watch Features)。
[0081] 更新的ATT_MTU是用于向智能手机200通知通过作为第一装置的电子表与作为第二装置的智能手机200之间的MTU大小交换手续而更新后的ATT_MTU的特性。MTU表示每单位通信的能够进行通信的数据容量(大小)。如在BLE规格中定义的那样,ATT_MTU是在客户端与服务器之间发送的包的最大大小,MTU大小交换是为了将ATT_MTU设定为能够由双方的装置支持的最大可能值而由客户端使用的服务器配置的子过程。另外,MTU大小交换请求是为了使服务器知晓客户端的最大接收MTU大小,并且向服务器请求发送最大接收MTU大小,而由客户端使用的消息。服务器若从客户端接收到MTU大小交换请求,则通过MTU大小交换响应来进行响应。MTU大小交换响应是为了使客户端知晓服务器的最大接收MTU大小而使用的消息。客户端与服务器使用所交换的MTU大小的最小值进行以后的通信。
[0082] 通常,在BLE通信装置中备有用于从搭载的BLE芯片获取ATT_MTU大小的HCI(Host Controller Interface主控制器接口)命令,而在智能手机的情况下,不备有用于利用ATT_MTU大小的API。因此,在本实施方式中,设置一种结构,即作为连接对象的电子表向智能手机通知通过MTU大小交换(Exchange MTU)更新后的ATT_MTU大小,使得作为客户端的智能手机的处理器(例如,图2B的206)能够利用ATT_MTU大小。更新的ATT_MTU是用于向智能手机通知更新后的ATT_MTU大小的特性。
[0083] 特征的请求命令(Request Command for features)是用于写入指示命令的特性,指示命令用于指定电子表100发送接收数据的格式。表特征(Watch Features)是用于对作为电子表100的设定信息的特征的设定值进行读写的特性。在本实施方式中,将与通常的特性(即,图5的服务N1至服务Nx)相对应的x个特征的设定值作为表特征的属性值进行存储。因此,由于对服务N1值至服务Nx值仅分配了一个句柄(0x0017),所以进一步使用用于区别上述多个种类的数据的信息即区别信息。换言之,通过区别信息来区别过去通过UUID或句柄值区别的多个种类的设定信息。
[0084] 图8表示区别信息的一例。在该例子中,区别信息的值具有1字节的大小。具体而言,作为区别信息,对于与服务N对应的特征N的设定数据分配了(N-1)16(对于与服务N1对应的特征1的设定数据分配的区别信息的值为0x00)。在本实施方式中,将作为1字节大小的最大值的0xFF作为表示分隔的指定的信息来使用。关于分隔的指定,将在后面描述。从而,通过区别信息能够区别总共255种类的数据。优选作为规格来管理区别信息,使得各个通信装置保有相同的区别信息。
[0085] 如图7所示,在为了存储分别与服务N1值至服务Nx值对应的特征的设定数据而分配的区域的开头的1字节中存储各设定数据的区别信息,并在剩余区域中存储实际的数据。另一方面,存储区别信息的位置不限于数据存储区域的开头。
[0086] 图9是表示本发明的一实施方式的智能手机200指示电子表100发送数据的方法的顺序图。在本实施方式中,安装在电子表100的属性数据库具有图7的结构。电子表100作为服务器进行动作,智能手机200作为客户端进行动作。电子表100在满足预定的条件时(例如,在预先设定的时刻,或具有按钮操作时)开始广告。在本实施方式中,电子表100发送的广告包的类型为ADV_IND。为了表示电子表100保有表特征服务,该广告包的Adv数据包含AD结构,该AD结构由在表示128比特服务类UUIDs的完整列表(Complete List of128bit Service Class UUIDs)的值中设定的AD类型和在表示表特征服务(Watch Feature Service)的128比特UUID中设定的AD数据构成。另一方面,智能手机200周期性地或在满足了预定的条件时(例如,成为预定的时刻时,或有按钮操作时)开始扫描。
[0087] 取得了来自智能手机200的控制器的广告报告的智能手机200的主机在需要与电子表100的连接的情况下,发送连接请求(Connection Request)。通过电子表100接收上述连接请求,两个装置物理连接。如在BLE规格中定义的那样,连接请求是为了在两个装置间生成L2CAP信道,由主装置向从装置发送的包。并且,在两个装置之间进行服务发现。在服务发现会话中,智能手机200取得作为电子表100的服务的表特征服务中包含的特性的属性句柄。
[0088] 接着,电子表100和智能手机200交换各装置所支持的MTU大小。具体而言,作为客户端的智能手机200发送MTU大小交换请求(Exchange MTU Request),使得作为服务器的电子表100知晓最大接收MTU大小,并且请求电子表100发送最大接收MTU大小。电子表100若接收上述MTU大小交换请求,则为了使客户端知晓最大接收MTU大小而发送MTU大小交换响应(Exchange MTU Response)。电子表100取得双方的MTU大小的最小值来作为更新的ATT_MTU,并作为图7的更新的ATT_MTU的属性值进行存储。然后,电子表100通过通知消息向智能手机200通知更新的ATT_MTU。通过接收上述通知消息,智能手机200能够取得更新的ATT_MTU。
[0089] 在智能手机200,根据想要从电子表100取得的多个种类的设定信息的长度决定包含数据的顺序、组合、分隔等的数据的封装方法,使得收纳在所取得的ATT_MTU(上述更新的ATT_MTU)中。分隔用于对在一个包中进行通信的数据和在其他的包中进行通信的数据进行区分。在本实施方式中,指定分隔使得一个包中存储的数据的总长例如为更新的ATT_MTU-3以下。根据上述封装方法决定所请求的数据的格式。智能手机200生成用于请求电子表100发送设定信息,并且使电子表100知晓所请求的设定信息的数据格式的消息。如上所述,对于多个特征的设定值分配一个句柄,读出请求仅具有属性句柄来作为参数,因此在本实施方式中无法为了请求作为服务器的电子表100的属性值而使用读出请求。因此,在本实施方式中,智能手机200为了请求设定信息,使用写入命令。即,作为上述消息生成如下写入命令,该写入命令在特征的请求命令(Request Command for features)的特性值句柄(0x0017)和包含上述数据格式的命令数据中分别设定了属性句柄参数和属性值参数。若接收该写入命令,则电子表100在作为特性的特征的请求命令(Request Command for features)的特性值中写入上述数据格式。以下,将该消息称为“指示命令”,以与请求写入特征的设定值的命令相区别。
[0090] 如图10所示,上述写入命令(指示命令)的属性值参数由1字节的命令类别及其后续的命令数据构成。命令类别是用于控制与该指示命令的接收者的通信的信息,表示数据的交换的方向。图11表示命令类别的一例。在本例中,在智能手机200指示电子表100发送特征的设定值(发送指示)的情况下,将命令类别设定为0x00,在智能手机200指示电子表100等待特征的设定值的写入(写入等待指示)的情况下,将命令类别设定为0x01。因此,在智能手机200向电子表100请求设定信息的情况下(图9),将上述写入命令的命令类别设定为0x00。命令数据作为用于表示基于所获取的ATT_MTU大小而决定的上述数据格式的数据,罗列了区别信息,电子表100基于命令数据的排列顺序和分隔指定来发送和接收设定信息。
[0091] 图12A表示作为发送指示用指示命令的写入命令的属性值的一例。如上所述,将命令类别设定为表示发送指示的0x00。命令数据指示发送特征1的设定(Setting for Feature1)至特征4的设定(Setting for Feature4)的四个数据,并且指示作为第一个消息将特征1的设定值与特征2的设定值进行结合来发送,作为第二个消息将特征3的设定值和特征4的设定值进行结合来发送。即,智能手机200通过向电子表100通知数据格式,来指示将上述4种类的数据每次聚集两个数据来发送,使得收纳在更新的ATT_MTU中。在本实施方式中,决定数据格式,使得在一个包中存储的数据的总长例如为更新的ATT_MTU-3以下。另外,优选决定数据格式,使得最大程度地运用ATT_MTU大小。具体而言,优选决定数据格式,使得在ATT_MTU大小的范围内在一个消息中包含最大个数的数据。
[0092] 接收到指示命令的电子表100根据命令类别判断是发送数据还是等待来自智能手机200的写入的指示。在图12A的例中,由于命令类别被设定为0x00,因而电子表100按照作为指示命令的命令数据的数据格式,生成用于发送特征1的设定至特征4的设定的两个消息,即句柄值通知1和句柄值通知2。该句柄值通知在表特征的特性值句柄(0x0017)和发送给智能手机200的设定信息中分别设定了属性句柄参数和属性值参数。图12B表示了句柄值通知1和句柄值通知2的属性值的一例。按照从智能手机200接收到的数据格式,在句柄值通知1的属性值参数中依次存储特征1的设定和特征2的设定的数据,在句柄值通知2的属性值参数中依次存储特征3的设定和特征4的设定的数据。
[0093] 接收到上述两个通知的智能手机200将在各个通知中存储的数据解释为按照由指示命令指定的顺序结合后的数据,获取四个特征的设定值。此处,特征1至特征4的数据可以分别具有不同的数据长度,在这种情况下,为便于数据的分析,优选在电子表100和智能手机200中分别存储各数据长度。在这种情况下,智能手机200能够基于数据格式和数据长度,分析从电子表100接收的消息。另外,图9表示了为了发送更新后的ATT_MTU和设定信息而使用句柄值通知的例子,但也可以取而代之使用句柄值指示。在这种情况下,接收到句柄值指示的智能手机200回复句柄值确认。特别在为了发送设定信息而使用句柄值指示的情况下,电子表100可以在接收到作为针对第一个句柄值指示的回复的句柄值确认后,向智能手机200发送第二个句柄值指示。同样地,也能够将作为指示命令的写入命令切换为写入请求。
在这种情况下,接收到写入请求的电子表100回复写入响应。
[0094] 图13是表示本发明的一实施方式的智能手机200指示电子表100写入数据的方法的顺序图。在本实施方式中,安装在电子表100的属性数据库具有图7的结构。电子表100作为服务器进行动作,智能手机200作为客户端进行动作。在图13中,对于与图9相同的过程省略详细的说明。电子表100在满足了预定的条件时开始广告。电子表100发送ADV_IND类型的广告包。另一方面,智能手机200开始扫描。
[0095] 智能手机200在需要与表100的连接的情况下发送连接请求。通过由电子表100接收上述连接请求,将两个装置物理连接。并且,进行服务发现。接着,电子表100与智能手机200进行MTU大小交换,电子表100取得双方的MTU大小的最小值来作为更新后的ATT_MTU。电子表100通过通知消息将更新后的ATT_MTU作为更新的ATT_MTU的属性值通知给智能手机
200。
[0096] 智能手机200根据想要写入电子表100的多个种类的设定信息的长度,决定包含数据的顺序、组合、分隔等的数据的封装方法,使得收纳在所取得的ATT_MTU中。根据上述封装方法决定写入的数据的格式。智能手机200生成用于指示电子表100等待写入,并且使电子表100知晓写入的设定信息的数据格式的指示命令。该指示命令是在特征的请求命令(Request Command for features)的特性值句柄(0x0015)和上述数据格式中分别设定了属性句柄参数和属性值参数的写入命令。若接收到该写入命令,则电子表100在作为特性的特征的请求命令(Request Command for features)的特性值中写入上述数据格式。
[0097] 图14A表示作为写入等待指示用指示命令的写入命令的属性值的一例。如上所述,将1字节的命令类别设定为表示写入等待指示的0x01。表示基于ATT_MTU大小而决定的数据格式的命令数据用于使电子表100知晓将特征1的设定(Setting for Feature1)至特征4的设定(Setting for Feature4)这四个数据作为两个消息来发送的意思。具体而言,使电子表100知晓在第一个消息中存储有特征1的设定值和特征2的设定值,在第二个消息中存储有特征3的设定值和特征4的设定值。优选决定数据格式使得最大程度地运用ATT_MTU大小。
[0098] 接收到指示命令的电子表100根据命令类别(即,命令类别被设定为0x01),等待来自智能手机200的写入指示。另外,按照作为指示命令的命令数据的数据格式分析从智能手机200接收的消息。
[0099] 智能手机200按照上述数据格式生成用于指示电子表100写入特征1的设定(Setting for Feature1)至特征4的设定(Setting for Feature4)的两个消息,即写入命令1(Write Command1)和写入命令2(Write Command2)。该写入命令在表特征(Watch Features)的特性值句柄(0x0017)和想要写入的设定信息中分别设定了属性句柄参数和属性值参数。图14B表示写入命令1和写入命令2的属性值的一例。在写入命令1的属性值参数中依次存储特征1的设定(Setting for Feature1)和特征2的设定(Setting for Feature2)的数据,在写入命令2的属性值参数中依次存储特征3的设定(Setting for Feature3)和特征4的设定(Setting for Feature4)的数据。
[0100] 电子表100若从智能手机200接收到写入命令1和写入命令2,则按照从指示命令获取的数据格式分析上述消息。具体而言,分析写入命令1,将在该消息的属性值中存储的两个数据作为特征1和特征2的设定值来写入(参照图7)。即,将特征1和特征2的设定值更新为在写入命令1的属性值中存储的两个数据。另外,分析写入命令2,将在该消息的属性值中存储的两个数据作为特征3和特征4的设定值来写入。即,将特征3和特征4的设定值更新为在写入命令2的属性值中存储的两个数据。
[0101] 此处,特征1至特征4的数据可以具有各自不同的数据长度,在这种情况下,为了便于数据分析,优选在电子表100和智能手机200中分别存储有各数据长度。在这种情况下,电子表100能够基于数据格式和数据长度,分析从智能手机200接收的消息。图13表示了为了发送更新后的ATT_MTU而使用句柄值通知的例子,但也可以却而代之使用句柄值指示。另外,可以代替写入命令使用写入请求。
[0102] 图15是本发明的一实施方式的电子表100的功能框图。电子表100包含BLE通信模块1001、存储模块1002、广告模块1003、连接控制模块1004、MTU信息管理模块1005、数据包生成模块1006、数据包分析模块1007、属性读出模块1008以及属性写入模块1009。模块1001至1009通过总线相互连接。另外,模块1001至1009由软件、硬件或它们的组合构成。例如,可以将上述模块的至少一部分作为FPGA来实现。
[0103] BLE通信模块1001进行与其他的装置(在本实施方式中,智能手机200)的BLE通信,能够向其他的装置发送信号,或从其他的装置接收信号。存储模块1002存储BLE通信模块1001所使用的网络信息、MTU信息、属性数据库、数据格式等。例如,存储模块1002由一个以上的存储器构成。另外,在存储在属性数据库中的特征的设定值的长度分别不同的情况下,优选在存储模块1002中存储各特征的设定值的长度。
[0104] 广告模块1003生成广告包,通过发送所生成的广告包来进行广告。广告模块1003在满足了预定的条件时开始广告。若从其他的装置接收到连接请求,则连接控制模块1004构建与该装置的连接,或生成用于断开在与其他的装置之间建立的连接的连接断开请求(Disconnect Request)并发送至上述其他的装置。
[0105] MTU信息管理模块1005获取通过与其他的装置的MTU大小交换手续而更新后的ATT_MTU,并将其作为在存储模块1002中存储的属性数据库的特性更新的ATT_MTU(Updated ATT_MTU)的特性值来存储。将更新后的ATT_MTU传递至数据包生成模块1006,通过通知消息通知给其他的装置。
[0106] 在建立了电子表100与其他的装置之间的连接后,数据包生成模块1006生成发送至上述其他的装置的包。尤其是基于从发送指示用指示命令中获取的数据格式(发送指示用指示命令是从其他的装置接收到的),生成发送至上述其他的装置的消息(在图9的例中,句柄值通知1和句柄值通知2)。数据包分析模块1007分析从其他的装置接收到的数据包。具体而言,判断包的PDU的类型,提取存储在PDU中的数据。尤其是基于从写入等待指示用指示命令中获取的数据格式(该写入等待指示用指示命令是从其他的装置接收到的),分析来自上述其他的装置的消息(在图13的例中,写入命令1和写入命令2)中包含的数据。
[0107] 属性读出模块1008读出存储在存储模块1002中的属性数据库的属性值。尤其是在从其他的装置接收到发送指示用指示命令的情况下,从属性数据库的表特征(Watch Features)(图7)的属性值中读出上述其他的装置所请求的特征的设定值。属性写入模块1009在存储在存储模块1002中的属性数据库中写入属性值。尤其是在从其他的装置接收到写入等待指示用指示命令的情况下,将继它之后从上述其他的装置接收到的数据写入属性数据库的表特征(Watch Features)的属性值中。由此,将存储在属性数据库中的对应的特征的设定值更新为上述接收到的数据。
[0108] 图16是本发明的一实施方式的智能手机200的功能框图。智能手机200包含BLE通信模块2001、存储模块2002、扫描模块2003、连接控制模块2004、数据格式决定模块2005、数据包生成模块2006以及数据包分析模块2007。数据包生成模块2006包含指示命令生成模块2008。模块2001至2008通过总线相互连接。另外,模块2001至2008由软件、硬件或它们的组合构成。例如,可以将上述模块的至少一部分作为FPGA来实现。
[0109] BLE通信模块2001进行与其他的装置(在本实施方式中,电子表100)的BLE通信,能够向其他的装置发送信号,或从其他的装置接收信号。存储模块2002存储BLE通信模块2001所使用的网络信息、MTU信息、设定信息、数据格式等。MTU信息包含更新后的ATT_MTU。在上述实施方式中,从其他的装置通知更新后的ATT_MTU。例如,存储模块2002由一个以上的存储器构成。另外,在作为设定信息的特征的设定值的长度分别不同的情况下,优选在存储模块2002中存储各特征的设定值的长度。
[0110] 扫描模块2003在预定的时间宽度内扫描广告包。扫描模块2003在满足预定的条件时开始扫描。另外,对在扫描期间接收到的广告包进行解码来提取存储在上述广告包中的数据。连接控制模块2004生成用于向发送广告包的其他的装置中的适当的装置请求连接的连接请求,并将其发送至上述装置。另外,若从建立了连接的其他的装置接收到连接断开请求,则断开与该装置的连接。
[0111] 数据格式决定模块2005基于存储在存储模块2002中的更新后的ATT_MTU决定数据格式。如图12A和图14A所示,数据格式决定模块2005根据与其他的装置发送接收的多个种类的设定信息的长度,决定包含数据的顺序、组合、分隔等的数据格式,使得收纳在更新后的ATT_MTU中。将决定的数据格式传递至指示命令生成模块2008,通过指示命令通知给其他的装置。上述其他的装置基于被通知的数据格式生成发送至智能手机200的消息,或分析从智能手机200接收到的消息。
[0112] 数据包生成模块2006在建立了智能手机200与其他的装置之间的连接后生成发送至上述其他的装置的包。数据包生成模块2006包含指示命令生成模块2008。指示命令生成模块2008生成发送给其他的装置的发送指示用指示命令(例如,图12A)或写入等待指示用指示命令(例如,图14A)。在指示命令的属性值中存储命令类别(是发送指示还是写入等待指示)和命令数据(由数据格式决定模块2005决定的数据格式)。
[0113] 数据包分析模块2007分析从其他的装置接收到的数据包。具体而言,判断数据包的PDU的类型,提取存储在PDU中的数据。尤其是基于存储在存储模块2002中的数据格式分析其他的装置对发送指示用指示命令进行响应而发送的消息中包含的数据。
[0114] 图17是表示本发明的实施方式的用于实现电子表100中的通信过程的算法的流程图。在本实施方式中,安装在电子表100中的属性数据库具有图7的结构。另外,电子表100作为服务器进行动作,智能手机200作为客户端进行动作。下面一同参照图9至图14对图17进行详细说明。
[0115] 电子表100判断是否满足用于开始广告的预定条件(步骤S2202)。上述预定条件例如是是否成为预先设定的时刻,或是否有按钮操作等。在不满足上述预定条件的情况下(步骤S2202:“否”),电子表100不开始广告。在满足上述预定条件的情况下(步骤S2202:“是”),开始用于测量广告时间的计时器(步骤S2204),并开始广告(步骤S2206)。
[0116] 接着,判断计时器的时间是否达到预定的时间Ta(广告时间宽度)(步骤S2208)。在计时器的时间未达到Ta的情况下,即,在未发生超时的情况下(步骤S2208:“否”),过程移至步骤2212。在计时器的时间达到Ta的情况下,即,在发生了超时的情况下(步骤S2208:“是”),停止广告(步骤S2210),且过程返回至步骤S2202。在步骤2212中,电子表100判断是否从智能手机200接收到连接请求。在未接收到连接请求的情况下(步骤S2212:“否”),过程返回至步骤S2208。在接收到连接请求的情况下(步骤S2212:“是”),停止广告,并停止计时器的时间测量(步骤S2214)。在图17中,省略服务发现的工序。
[0117] 接着,电子表100从智能手机200接收用于告知最大接收MTU大小的MTU大小交换请求(步骤S2216)。作为对其的回复,电子表100向智能手机20发送用于告知最大接收MTU大小的MTU大小交换响应(步骤S2218)。电子表100取得两者的MTU大小的最小值来作为更新后的ATT_MTU,并向智能手机200通知更新后的ATT_MTU(步骤S2220)。具体而言,将更新后的ATT_MTU作为属性数据库的更新的ATT_MTU的属性值来存储,并通过通知消息向智能手机200通知该属性值。
[0118] 电子表100判断是否接收到在特征的请求命令(Request Command for features)的特性值句柄中设定了属性句柄参数的写入命令(步骤S2222)。在接收到上述写入命令的情况下(步骤S2222:“是”),将该消息判断为指示命令。另外,将作为该消息的属性值而存储的命令类别和作为命令数据的数据格式写入属性数据库的特征的请求命令(Request Command for features)的特性值中。确认命令类别(步骤S2224),在命令类别为0x00(发送指示)的情况下,过程移至步骤S2226,在命令类别为0x01(写入等待指示)的情况下,过程移至步骤S2232。
[0119] 在命令类别为0x00的情况下,电子表100按照指示命令(发送指示)准备用于通知智能手机200所请求的特征的设定值的消息(步骤S2226)。具体而言,基于从上述指示命令获取的数据格式的数据的顺序、组合、分隔等,生成需要的个数的通知消息。在图12A和图12B的例子中,生成包含特征1和特征2的设定值的句柄值通知1并发送至智能手机200(步骤S2228),并且生成并发送包含特征3和特征4的设定值的句柄值通知2(步骤S2230)。由此,过程结束。
[0120] 在命令类别为0x01的情况下,电子表100按照指示命令(写入等待指示),等待接收用于指示数据写入的写入命令(步骤S2232)。在图14A和图14B的例子中,接收包含智能手机200想要写入的特征1和特征2的设定值的写入命令1(步骤S2234),并接收包含特征3和特征
4的设定值的写入命令2(步骤S2236)。电子表100基于从指示命令获取的数据格式的数据的顺序、组合、分隔等,分析从智能手机200接收到的写入命令1和写入命令2的数据,写入特征
1至特征4的设定值(步骤S2238)。由此,过程结束。
[0121] 图18和图19是表示本发明的一实施方式的用于实现智能手机200中的通信过程的算法的流程图。图18表示智能手机200指示电子表100发送数据的过程。下面参照图9至图12对图18进行详细说明。智能手机200开始用于测量扫描时间的计时器(步骤S2302),并开始扫描(步骤S2304)。如上所述,智能手机200周期性地或在满足了预定的条件时(例如,成为预定的时刻时或有按钮操作时)进行扫描。
[0122] 智能手机200判断计时器的时间是否达到预定的时间Ts(扫描时间宽度)(步骤S2306)。在计时器的时间未达到Ts的情况下,即,在未发生超时的情况下(步骤S2306:“否”),过程移至步骤2310。在计时器的时间达到Ts的情况下,即,在发生超时的情况下(步骤S2306:“是”),停止扫描(步骤S2308)。在步骤2310中,智能手机200的主机从控制器接收广告报告。接着,智能手机200判断是否从电子表100接收到ADV_IND类型的广告包(步骤S2312)。在未接收到ADV_IND类型的广告包的情况下(步骤S2312:“否”),过程返回至步骤S2306。在接收到ADV_IND类型的广告包的情况下(步骤S2312:“是”),智能手机200停止扫描,并停止计时器的时间测量(步骤S2314)。接着,向电子表100发送连接请求(步骤S2316)。
在图18中,也省略服务发现的工程。
[0123] 若通过上述过程建立了两个装置间的连接,则智能手机200向电子表100发送用于告知最大接收MTU大小的MTU大小交换请求(步骤S2318),并从电子表100接收用于告知最大接收MTU大小的MTU大小交换响应(步骤S2320)。接着,从电子表100接收在更新后的ATT_MTU(即,更新的ATT_MTU的特性值)中设定了属性值参数的通知消息(步骤S2322)。
[0124] 智能手机200基于从接收到的通知消息中获取的ATT_MTU,生成作为发送指示用指示命令的写入命令(步骤S2324)。具体而言,智能手机200根据想要获取的多个种类的设定信息的长度决定包含数据的顺序、组合、分隔等的数据的格式,使得收纳在上述更新后的ATT_MTU中。上述写入命令(指示命令)的属性句柄参数设定在特征的请求命令(Request Command for features)的特性值句柄中,属性值参数由作为命令类别的0x00(发送指示)和继它之后的数据的格式构成(参照图12A)。然后,向电子表100发送上述写入命令(步骤S2326)。
[0125] 接着,从电子表100接收用于通知通过上述指示命令请求的设定信息的消息。在图12A和图12B的例子中,接收包含特征1和特征2的设定值的句柄值通知1(步骤S2328),并接收包含特征3和特征4的设定值的句柄值通知2(步骤S2330)。智能手机200基于上述数据格式分析并处理接收到的消息(步骤S2332)。具体而言,将接收到的各句柄值通知的属性值中存储的数据解释为按照上述数据格式的顺序结合的数据,获取四个特性的设定信息并将其存储在存储器(例如,图2B的208)。由此,过程结束。
[0126] 图19是表示本发明的一实施方式的用于实现在智能手机200中指示电子表100写入数据的通信过程的算法的流程图。下面一同参照图10至图14对图19进行详细说明。在图19中,对于与图18相同的处理内容赋予相同的符号,并省略详细的说明。
[0127] 智能手机200基于从在步骤S2322中接收到的通知消息中获取的ATT_MTU,生成作为写入等待指示用指示命令的写入命令(步骤S2424)。具体而言,智能手机200根据想要写入的多个种类的设定信息的长度决定包含数据的顺序、组合、分隔等的数据的格式,使得收纳在上述更新后的ATT_MTU中。上述写入命令(指示命令)的属性句柄(Attribute Handle)参数设定在特征的请求命令(Request Command for features)的特性值句柄,属性值(Attribute Value)参数由作为命令类别的0x01(写入等待指示)和继它之后的数据的格式构成(参照图14A)。然后,向电子表100发送上述写入命令(步骤S2426)。
[0128] 接着,生成用于指示写入设定信息的消息即写入命令,并发送至电子表100。该写入命令在表特征(Watch Features)的特性值句柄和想要写入的设定信息中分别设定了属性句柄参数和属性值参数。在图14A和图14B的例子中,发送按顺序存储了特征1和特征2的设定值的写入命令1(步骤S2428),并发送按顺序存储了特征3和特征4的设定值的写入命令2(步骤S2430)。由此,过程结束。
[0129] 在图17至图19中,能够将写入命令和句柄值通知分别切换为写入请求和句柄值指示。根据图17至图19所示的实施方式,为了以最大限度地运用MTU大小的方式将数据汇总地发送和接收,作为客户端的智能手机200向作为服务器的电子表100发送指示命令来抑制数据的交易。通过将数据汇总地发送和接收,能够削减通信量(次数),抑制电力消耗。
[0130] <第二实施方式>
[0131] 在上述实施方式中,假设由于智能手机200的限制,在连接时必须执行MTU大小交换以及主机不具有从控制器取得作为MTU大小交换的结果更新后的ATT_MTU的单元。在没有该限制的情况下,如图20所示,仅在需要时执行MTU大小交换。
[0132] 图20是表示本发明的一实施方式的用于实现智能手机200中的通信过程的算法的流程图。图20表示了智能手机200指示电子表100发送数据的过程。在图20中,对于与图18相同的处理内容赋予相同的符号,并省略说明。
[0133] 若建立了两个装置间的连接,则智能手机200计算所请求的数据的合计大小M(步骤S2518)。然后,判断M是收纳于默认ATT_MTU-3,即20八位字节(步骤S2520)。在M超过20八位字节的情况下(步骤S2520:“否”),移至步骤S2532。在M不超过20八位字节的情况下(步骤S2520:“是”),生成作为发送指示用指示命令的写入命令(步骤S2324),并发送至电子表100(步骤S2326)。
[0134] 之后,接收两个通知消息(S2328、S2330),消息的个数,即数据的分隔能够根据ATT_MTU、大小M、数据的种类数等决定。智能手机200基于上述数据格式分析并处理接收到的消息(步骤S2530)。具体而言,将接收到的各个句柄值通知的属性值中存储的数据解释为按照上述数据格式的顺序结合的数据,获取设定信息并存储在存储器(例如,图2B的208)。由此,过程结束。
[0135] 另一方面,在M超过20八位字节的情况下(步骤S2520:“否”),移至步骤S2532来执行MTU大小交换。智能手机200向电子表100发送用于告知最大接收MTU大小的MTU大小交换请求(步骤S2532),并从电子表100接收用于告知最大接收MTU大小的MTU大小交换响应(步骤S2534)。接着,将自身的最大接收MTU大小与电子表100的最大接收MTU进行比较,取得其最小值来作为更新后的ATT_MTU(步骤S2536)。
[0136] 根据本实施方式,能够进一步削减与MTU大小交换相关的数据的交易。
[0137] <第三实施方式>
[0138] 图21表示本发明的另一实施方式的属性数据库的一例。图7的属性数据库包含特征的请求命令(Request Command for features),该特征的请求命令是用于将指定电子表100发送接收数据的格式的指示命令写入的一个特性。与此相对,在图21的实施方式中,包含用于写入数据发送用格式的特性即特征的读出命令(Read Command for features)和用于写入数据写入用格式的特性即特征的写入命令(Write Command for features)。另外,在本实施方式中,不采用在图10中说明的命令类别。取而代之,在智能手机200指示电子表
100发送特征的设定值的情况下,作为发送指示用指示命令,发送在特征的读出命令(Read Command for features)的特性值的句柄(0x0012)和发送的数据的格式中分别设定了属性句柄参数和属性值参数的写入命令。在智能手机200指示电子表100等待写入特征的设定值的情况下,作为写入等待指示用指示命令,发送在特征的写入命令(Write Command for features)的特性值的句柄(0x0017)和写入的数据的格式中分别设定了属性句柄参数和属性值参数的写入命令。
[0139] 电子表100若接收到在特征的读出命令(Read Command for features)的特性值的句柄中设定了属性句柄参数的写入命令,则将该写入命令判断为发送指示用指示命令,并将作为属性值参数的数据格式作为特征的读出命令(Read Command for features)的特性值来存储。然后,基于该数据格式生成发送至智能手机200的消息。
[0140] 电子表100若接收到在特征的写入命令(Write Command for features)的特性值的句柄中设定了属性句柄参数的写入命令,则将该写入命令判断为写入等待指示用指示命令,将作为属性值参数的数据格式作为特征的写入命令(Write Command for features)的特性值来存储。然后,基于该数据格式分析从智能手机200接收的消息。
[0141] 根据本发明的上述多个实施方式,通过使用作为综合型特性的表特征(Watch Features)来管理所有特征的值,缩短服务发现所需要的时间,并减少通信次数。另外,即使附加新的特性,也无需追加服务或特性。在想要在服务器装置中追加由当前版本的规格规定的特征的情况下,追加与该特征对应的区别信息和属性即可。此时,若对通信装置的固件进行设计,使得在用于追加特征的用户的编程时,根据上述特性自动地赋予区别信息,由此能够提高用户的方便性。另外,也可以对固件进行设计,使得用户能够追加未被当前版本的规格规定的新的特征。在这种情况下,生成用于对该特征的设定值进行区别的新的区别信息。优选新生成的区别信息具有与其他特征的设定值被赋予的区别信息不同的固有值。此外,也可使用户能够通过标准联盟所管理的网站来追加区别信息。可以通过固件的更新等将追加了新的区别信息的规格用于通信装置。
[0142] 以上对将本发明用于蓝牙(Bluetooth(注册商标)),尤其是用于BLE的实施方式进行了说明,但本发明的适用领域不限于此,例如,也可以用于其他无线通信技术。尤其是能够用于使用MTU的无线通信技术。
[0143] 本发明所属技术领域中的一般的技术人员能够从上述说明和相关附图中导出本发明的诸多变形和其他实施方式。从而,本发明不限于公开的特定的实施方式。在本说明书中,使用了多个特定术语,但这些术语作为通常的含义只是用于说明,并不是用于限制发明。能够在不脱离由权利要求书和其均等物定义的一般的发明的概念和思想的范围内实施多种变形。
QQ群二维码
意见反馈