CN110545318B - 一种依赖于gatt和指示进行适配的数据通信方法及系统 - Google Patents

一种依赖于gatt和指示进行适配的数据通信方法及系统 Download PDF

Info

Publication number
CN110545318B
CN110545318B CN201910766067.9A CN201910766067A CN110545318B CN 110545318 B CN110545318 B CN 110545318B CN 201910766067 A CN201910766067 A CN 201910766067A CN 110545318 B CN110545318 B CN 110545318B
Authority
CN
China
Prior art keywords
layer
cpa
gatt
phd
pdu
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.)
Active
Application number
CN201910766067.9A
Other languages
English (en)
Other versions
CN110545318A (zh
Inventor
钟代笛
曹小英
冯海玲
段小炼
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201910766067.9A priority Critical patent/CN110545318B/zh
Publication of CN110545318A publication Critical patent/CN110545318A/zh
Application granted granted Critical
Publication of CN110545318B publication Critical patent/CN110545318B/zh
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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明属于数据通信技术领域,尤其涉及一种依赖于GATT和指示进行适配的数据通信系统及方法,其中,所述CPA层用于发送方CPA层将PHD层传输的APDU封装为CPA PDU并将CPA PDU通过CPA数据交换过程传输于GATT层,本发明解决了现有技术中BLE技术并不能完全满足基于ISO/IEEE 11073标准的应用层数据交换需求,需要在GATT层和PHD层之间建立适配,使得下层满足上层的需求的问题,本发明具有保持通信双方在应用层的同步交互,进而还可以节省时间和计算资源,提高用户体验,降低成本,同时也不会对系统的安全造成负面影响,这样还避免了接收到的BLE消息被移动设备操作系统中的多个程序共享时所出现的安全隐患的有益技术效果。

Description

一种依赖于GATT和指示进行适配的数据通信方法及系统
技术领域
本发明属于数据通信技术领域,尤其涉及一种依赖于GATT和指示进行适配的数据通信系统及方法。
背景技术
在众多短距离通信技术当中,蓝牙是应用最为广泛、最为普及的技术之一;其中低功耗蓝牙重用了经典蓝牙协议栈的许多模块,定义了全新的物理层和链路层,简化了协议栈的实现;由于大多数健康监测设备和健康应用程序只需传输少量的数据,这使得低功耗蓝牙在医疗卫生健康、体育健身、家庭娱乐、安全保障等诸多领域具有巨大的潜力;
ISO/IEEE 11073系列标准实现了为医疗应用和健康而使用的个人健康设备(Personal Health Devices,PHD)与外界的通信,并将信息以固定格式传输给与外界联通的设备(例如手机、无线路由器、机顶盒、健康监测网关、计算机系统等);例如将个人健康设备用户的健康数据传输到医生办公室、诊所或者录入监测服务机构;ISO/IEEE 11073标准定义了两个实体,分别为“Agent”和“Manager”;Agent用于收集个人健康数据并传输给相关的Manager,Manager用于从一个或多个Agent处接收数据;ISO/IEEE 11073标准还定义了Agent与Manager之间传输的数据格式以及使用的通信协议;
ISO/IEEE 11073-20601优化交换协议定义了一种独立于底层传输的通用框架,建立了个人健康数据通信的抽象模型;从理论上讲,BLE技术具备承载ISO/IEEE 11073-20601优化交换协议的可能,但是关键的技术问题在于,在BLE领域中,由于ISO/IEEE 11073标准的特性与BLE技术不直接兼容,使得通过BLE技术传输符合ISO/IEEE 11073系列标准的个人健康设备的健康数据无法轻易付诸实践,例如,(1)ISO/IEEE 11073-20601要求数据传输必须基于可靠的通信信道完成,但是BLE通信技术本身不能进行可靠信道传输或者保证数据完整性(即:BLE中重用的L2CAP层不会重发或数据校验);(2)通信双方的应用层使用ISO/IEEE 11073-20601优化交换协议来交换数据消息,要求底层传输技术保持双方在应用层数据通信方面的状态同步,但是BLE标准技术的通信特征是无状态(stateless)的,通常为了节省功耗,底层传输会频繁断开和重连,无法支持通信双方在应用层的同步交互;(3)ISO/IEEE 11073-20601协议传输的消息的长度(最大为63K字节)远大于BLE中GATT消息(或者ATT消息)的长度;基于所述的技术问题,现有技术中暂无有效的技术方案可以使得两者之间协同工作:欧洲专利局在2015年8月4日公开的申请号为13734512的发明“测量设备(发明名称为MEASUREMENT DEVICE)”中,涉及到使用无线通信技术(包括BLE技术)和双向通信协议(ISO/IEEE 11073-20601)实现设备间的互操作,但是此发明提出的技术方案仅限于将双向通信模式改为单向通信模式,达到降低功耗的目的,没有提出在BLE技术上承载ISO/IEEE11073标准的有效方案;美国专利局在2015年7月16日公开的申请号为14155954的发明“一种用于医疗设备的低功耗无线通信系统和方法(发明名称为Low energy wirelesscommunication systems and methods for medical devices)”中,测量设备从ISO/IEEE11073-20601的数据包中提取部分数据以形成修改后的数据包,然后将数据进行分包并为每一个分割后的数据包添加一个序号,进而通过BLE技术进行传输,此发明提出的技术方案重点在于将ISO/IEEE 11073-20601协议传输的较长APDU进行分包,且在应用层处理数据,不涉及状态管理,忽略了BLE底层传输会频繁断开和重连的机制,没有解决BLE和ISO/IEEE11073-20601状态不同步的问题;中国专利局在2016年4月20日公开的申请号为CN201480049286.0的发明“用于经由社交网络平台控制外围设备的方法和装置”和在2016年11月30日公开的申请号为CN201480076808.6的发明“通过社交网络平台控制外围设备的方法和装置”中提出的技术方案,建立了蓝牙设备与智能终端上社交平台的通信协议,这两项发明主要是基于蓝牙在应用层建立业务,对应用层的数据处理进行规范,以及包括一个复杂的鉴权过程;
现有技术中BLE技术并不能完全满足基于ISO/IEEE 11073标准的应用层数据交换需求,需要在GATT层和PHD层之间建立适配,使得下层满足上层的需求的问题。
发明内容
本发明提供一种依赖于GATT和指示进行适配的数据通信系统及方法,以解决上述背景技术中提出了现有技术中BLE技术并不能完全满足基于ISO/IEEE 11073标准的应用层数据交换需求,需要在GATT层和PHD层之间建立适配,使得下层满足上层的需求的问题。
本发明所解决的技术问题采用以下技术方案来实现:一种依赖于GATT和指示进行适配的数据通信方法,其特征在于,包括:
通过通信协议适配层CPA层对蓝牙低功耗BLE技术标准体系中的底层传输层的运行进行管理,使得依赖于可靠底层传输的应用层数据交换协议PHD能够不受底层传输频繁断开和重连的影响且不受GATT的协议消息长度的限制地在以无状态通信为特征的GATT层上正常运行。
进一步,所述数据通信的方法还包括主、从设备进行数据交换前,通信双方分别建立由下至上依次为底层传输层、ATT层、GATT层、CPA层、PHD层和应用层的数据通信协议栈层级结构。
进一步,所述通过通信协议适配层CPA层对蓝牙低功耗BLE技术标准体系中的底层传输层的运行进行管理包括:
主、从设备进行数据交换时,应用层打开PHD层的连接并且通过执行PHD层数据交换过程来保持通信双方在应用层数据通信的状态同步;
其中包括:
发送方:
若PHD层确定CPA数据交换过程处于CPA运行子流程且PHD层进入已连接状态,则通过PHD层数据交换过程将应用层数据交换单元APDU传输于CPA层并进行结束交互;
CPA层将PHD层传输的APDU封装为CPA PDU并将CPA PDU通过CPA数据交换过程传输于GATT层;
GATT层将CPA层传输的CPA PDU封装为GATT PDU并将GATT PDU通过GATT数据交换过程传输于ATT层;
若底层传输层的连接已打开,则ATT层将GATT PDU作为ATT PDU通过BLE定义的标准化流程工具传输于底层传输层;
底层传输层将ATT层传输的ATT PDU按照BLE标准中所定义的相应的属性的格式通过通信连接的过程传输于接收方的底层传输层;
接收方:
底层传输层接收到按照BLE标准中所定义的属性的格式传输的ATT PDU;
ATT层将底层传输层接收到的按照BLE标准中所定义的属性的格式传输的ATT PDU作为GATT PDU传递给GATT层;
GATT层将从ATT层接收到的GATT PDU解封装为CPA PDU,并将CPA PDU传递给CPA层;
CPA层将从GATT层接收到的CPA PDU解封装为APDU,并将APDU传递给PHD层;
PHD层从CPA层接收APDU并进行结束交互。
进一步,所述PHD层通过数据交换过程进行APDU传输并执行结束交互包括:
若发送方的PHD层向CPA层发送APDU,则通过CPA层进行数据传输;
若CPA层接收到PHD层发送的语义为断开底层连接的内部指令,则CPA层进入CPA断开子流程。
进一步:
若通信双方的PHD层结束交互或者PHD层发生异常断开时,则通信双方各自的PHD层由当前的状态转换到未连接状态,并向各自CPA层发送语义为断开底层连接的内部指令,且不等待各自的CPA层的反馈。
进一步,若通信双方在PHD层处于已连接状态并且CPA层未接收到新的APDU时,若应用层不打算断开PHD层的连接,通信双方可以通过CPA层断开底层传输层的连接,执行底层有计划断开连接过程;
若CPA层接收到新的APDU需要底层传输层重新连接时,通信双方通过CPA层重新建立底层传输层的连接,执行底层建立连接过程,并基于先前保存的工作状态数据继续执行PHD层数据交换过程;
底层有计划断开连接过程:底层传输层接收到CPA层发送的断开底层连接内部指令时,通信双方保存工作状态数据,使用BLE中定义的终止连接事件断开双方之间在底层传输层的通信连接,并向CPA层发送语义为底层连接已断开事件通知的过程;
底层建立连接过程:通信双方使用BLE中定义的广播事件和扫描事件建立双方之间在底层传输层的通信连接的过程。
进一步,所述通过CPA层断开底层传输层的连接之前,通信双方保存CPA层和PHD层的工作状态数据。
进一步,所述GATT层基于ATT协议:
GATT层将ATT层中的属性进行分组,其包括服务和特征,所述服务中包含了一个或多个特征,每个特征由多个属性进行描述;GATT使用ATT中的属性操作方法定义子程序;
所述GATT数据交换过程包括:
通信双方基于GATT发送和接收CPA PDU,CPA PDU被置于GATT PDU的净荷中,通过GATT定义的子程序集合完成GATT数据交换过程,所述子程序集合包括写特征值子程序、指示子程序和写特征描述符子程序;
如果通信双方已达成共识且目标应用可以接受数据丢失的风险,则双方可以选择用无连接和无确认的广播通信方式来替代指示子程序。
进一步,所述CPA数据交换过程包括:
所述CPA层实例化一个CPA服务,该服务包含一个CC特征,所述CC特征符合GATT中的特征定义,至少包括一个特征值和一个客户端特征配置描述符;
所述CC特征作为写特征描述符子程序、写特征值子程序和指示子程序的操作对象,其包括所述主设备执行写特征描述符子程序使能CC特征的指示功能,以及执行写特征值子程序向从设备发送数据,从设备判断若CC特征的指示功能被使能,则通过指示子程序发送数据;
CPA连接子流程:主设备CPA层通过GATT执行写特征描述符子程序来启用从设备CPA层的CC特征的指示功能,通信双方CPA层向PHD层发送语义为底层连接已建立的事件通知并进入CPA运行子流程;
CPA运行子流程:通信双方分别从各自所在设备的PHD层获得APDU,然后封装为CPAPDU的格式并通过执行GATT数据交换过程传输给对方,通信双方还分别从对方那里接收CPAPDU,并将其中包含的APDU提取后发给各自的PHD层;
每一个CPA PDU的传输为CPA层的不可再分且必须一次性完成的最小操作,发送方在完整发送一个CPA PDU之前禁止发送其它CPA PDU,接收方在完整接收一个CPA PDU之前,禁止接收其它CPA PDU;
CPA断开子流程:主设备CPA层通过GATT执行写特征描述符子程序以关闭从设备CPA层CC特征的指示功能,通信双方的CPA层向各自的应用层发送语义为底层连接已断开事件通知。
同时,本发明还提供一种依赖于GATT和指示进行适配的数据通信系统,所述通信系统包括依次包括底层传输层、属性协议ATT层、通用属性规范协议适配CPA层、数据交换协议PHD层和应用层的数据通信协议栈层级结构;
所述数据通信协议栈层级结构用于:
实现如上述任一项的数据通信方法。
有益技术效果:
为了解决需要在GATT层和PHD层之间建立适配,使得下层满足上层的需求的问题,本发明构建了一个建立在GATT层和PHD层之间的通信协议适配层(CPA层),是一种有针对性的适配方式。本发明通过CPA层对底层传输层的运行进行管理,使得依赖于可靠底层传输(connection-oriented)的应用层数据交换协议PHD(ISO/IEEE 11073-20601)能够不受底层传输频繁断开和重连的影响且不受GATT的协议消息长度的限制地在以无状态(stateless)通信为特征的GATT层上正常运行,既充分利用BLE的低功耗特性,又能够实现通信双方在应用层的同步交互;
本发明构建的CPA层采用GATT作为端到端设备的通信协议,GATT用于在独立的服务访问点之间提供数据单元(PDU)的传输,CPA层可以将PHD层交换的数据单元(APDU)置于CPA层所定义的数据格式相应的域中,进而通过GATT定义的通信方法将CPA PDU传输到对等设备;
通信双方可以通过CPA来完成对底层传输层的使用和管理,当通信双方在PHD层已处于“已连接”状态时,通信双方可以通过CPA层断开底层传输层的连接以便于减少功耗;如果应用层不打算断开PHD层的连接,在断开底层传输层的连接之前,通信双方保存CPA层和PHD层的工作状态数据;在需要重新连接时,通信双方通过CPA层重新建立底层传输层的连接,并基于先前保存的工作状态数据继续执行PHD层数据交换过程;CPA层的这项特性使得PHD层的数据传输不会受到底层传输频繁断开和重连的影响,支持应用层的同步交互,相当于CPA层为PHD层屏蔽了底层传输可能发生的不可靠情况,换句话说,因为CPA层的存在,PHD层可以认为底层传输是可靠的;
通信双方可以通过CPA来完成对底层传输层的使用和管理,当通信双方在PHD层已处于“已连接”状态时,通信双方可以通过CPA层断开底层传输层的连接以便于减少功耗,如果应用层不打算断开PHD层的连接,在断开底层传输层的连接之前,通信双方保存CPA层和PHD层的工作状态数据;在需要重新连接时,通信双方通过CPA层重新建立底层传输层的连接,并基于先前保存的工作状态数据继续执行PHD层数据交换过程,CPA层的这项特性使得PHD层的数据传输不会受到底层传输层传输频繁断开和重连的影响,支持应用层的同步交互,相当于CPA层为PHD层屏蔽了底层传输可能发生的不可靠情况,换句话说,因为CPA层的存在,PHD层可以认为底层传输是可靠的;
本发明提供的技术方案充分利用了BLE的低功耗特性以及保持通信双方在应用层的同步交互,进而还可以节省时间和计算资源,提高用户体验,降低成本,同时也不会对系统的安全造成负面影响,这样还避免了接收到的BLE消息被移动设备操作系统中的多个程序共享时所出现的安全隐患,本发明的诸多优势使得本发明具有较强的通用性和兼容性。
附图说明
图1是本发明一种依赖于GATT和指示进行适配的数据通信系统及方法的数据通信协议栈的体系结构图;
图2是本发明一种依赖于GATT和指示进行适配的数据通信方法的总流程图;
图3是本发明一种依赖于GATT和指示进行适配的数据通信方法的具体流程图;
图4为是本发明一种依赖于GATT和指示进行适配的数据通信方法的逻辑拓扑结构和通信方式图;
图5是本发明一种依赖于GATT和指示进行适配的数据通信方法的CPA连接子流程的时序图;
图6是本发明一种依赖于GATT和指示进行适配的数据通信方法的CPA Manager端的运行子流程图;
图7是本发明一种依赖于GATT和指示进行适配的数据通信方法的CPA Agent端的运行子流程图;
图8是本发明一种依赖于GATT和指示进行适配的数据通信方法的CPA运行子流程的时序图;
图9是本发明一种依赖于GATT和指示进行适配的数据通信方法的CPA层对ATT层的使用和管理时序图;
图10是本发明一种依赖于GATT和指示进行适配的数据通信方法的PHD层向CPA层发送语义为“断开底层连接”内部指令时,CPA断开子流程的时序图;
图11是本发明一种依赖于GATT和指示进行适配的数据通信方法的CPA层完整通信过程的一个实施例的时序图;
本发明提供的技术方案在实施时具有灵活性,通过设置该技术方案中的部分参数以及阐述与之关联的较佳的应用设计,可以为本发明所要达到的技术效果提供优选方案,下面结合附图对本发明做进一步描述:
图中标号表示如下:
1—底层传输层,2—ATT层,3—GATT层,4—CPA层,5—PHD层,6—应用层;
ST101:通过通信协议适配层CPA层;
ST102:对蓝牙低功耗BLE技术标准体系中的底层传输层的运行进行管理;
ST103:使得依赖于可靠底层传输的应用层数据交换协议PHD能够不受底层传输频繁断开和重连的影响且不受GATT的协议消息长度的限制地在以无状态通信为特征的GATT层上正常运行;
ST201:应用层打开PHD层的连接并且通过执行PHD层数据交换过程来保持通信双方在应用层数据通信的状态同步;
ST202:若PHD层确定CPA数据交换过程处于CPA运行子流程且PHD层进入已连接状态,则通过PHD层数据交换过程将应用层数据交换单元APDU传输于CPA层并进行结束交互;
ST203:CPA层将PHD层传输的APDU封装为CPA PDU并将CPA PDU通过CPA数据交换过程传输于GATT层;
ST204:GATT层将CPA层传输的CPA PDU封装为GATT PDU并将GATT PDU通过GATT数据交换过程传输于ATT层;
ST205:若底层传输层的连接已打开,则ATT层将GATT PDU作为ATT PDU通过BLE定义的标准化流程工具传输于底层传输层;
ST206:底层传输层将ATT层传输的ATT PDU按照BLE标准中所定义的相应的属性的格式通过通信连接的过程传输于接收方的底层传输层;
ST207:底层传输层接收到按照BLE标准中所定义的属性的格式传输的ATT PDU;
ST208:ATT层将底层传输层接收到的按照BLE标准中所定义的属性的格式传输的ATT PDU作为GATT PDU传递给GATT层;
ST209:GATT层将从ATT层接收到的GATT PDU解封装为CPA PDU,并将CPA PDU传递给CPA层;
ST210:CPA层将从GATT层接收到的CPA PDU解封装为APDU,并将APDU传递给PHD层;
ST211:PHD层从CPA层接收APDU并进行结束交互;
具体实施方式
实施例一:
本实施例:如图1所示,所述数据通信的协议栈层级结构由下至上分别为底层传输层、属性协议(Attribute Protocol,下称为ATT)层、通用属性规范(Generic AttributeProfile,下称为GATT)层、通信协议适配(Communication Protocol Adaption,下称为CPA)层、个人健康设备应用层数据交换协议(下称为PHD)层和应用层。底层传输层包括有BLE技术标准体系中为ATT层以及GATT层及其上层提供通信链路、配置接口及数据服务等功能的底层协议;所述ATT和GATT是蓝牙低功耗(BLE)技术标准体系中的两个标准,ATT层运行的ATT是BLE技术标准体系中的一个标准,主设备可以通过ATT中定义的属性操作方法去访问从设备公布的一组属性,GATT将ATT中的属性进行分组,包括“服务”和“特征”,GATT中定义了服务,服务中包含了一个或多个特征,每个特征由多个属性进行描述;CPA层为本技术方案中提出的用于低功耗、低计算资源的从设备与主设备之间进行数据通信的协议适配层,CPA层使用GATT完成通信服务;PHD层运行的是ISO/IEEE 11073-20601标准所定义的应用层数据交换协议,用于保持通信双方在应用层数据通信方面的状态同步;应用层主要包含业务逻辑,从下层读取数据或者向下层写入数据,以及接收用户的请求消息并输出显示内容。本实施例以及后续的实施例中,涉及到一个设备的协议栈中层与层之间的交互时,上层对下层的操作称之为“内部指令”,下层对上层的反馈称之为“事件通知”。
所述ATT是蓝牙低功耗(BLE)技术标准体系中的一个标准,遵循该标准的主、从设备进行数据交换时,按照ATT中所定义的属性(Attribute)的格式提供被交换的数据,并使用ATT中所定义的属性操作方法来操作属性。所述ATT包括ATT数据单元(ATT PDU)。所述ATTPDU,是在ATT层被交换的、符合ATT定义的消息格式的数据消息,其净荷(Payload)部分的字节长度不会超过“ATT PDU最大净荷长度”。
所述GATT由GATT数据单元(GATT PDU)和GATT数据交换过程构成,所述GATT PDU,是在GATT层被交换的、符合GATT定义的消息格式的数据消息,其净荷(Payload)部分的字节长度不会超过“GATT PDU最大净荷长度”。GATT PDU的传输由底层传输层来完成。GATT使用ATT中的属性操作方法定义子程序,从设备和主设备使用GATT定义的子程序中的“写特征值子程序”、“指示子程序”和“写特征描述符子程序”来实现GATT数据交换过程(即GATT调用ATT中的属性操作方法在设备间传输数据),因此GATT PDU等价于ATT PDU。所述GATT数据交换过程包括“GATT建立连接过程”、“GATT运行过程”和“GATT有计划断开连接过程”。所述GATT建立连接过程是通信双方使用BLE中定义的广播事件和扫描事件建立双方之间在底层传输层的通信连接的过程;所述GATT有计划断开连接过程是通信双方使用BLE中定义的终止连接事件断开双方之间在底层传输层的通信连接的过程。
所述底层传输层包括控制器、逻辑链路控制和适配协议(L2CAP)和安全管理器协议(Security Manager Protocol),用于传输GATT PDU,包括“底层建立连接过程”、“底层运行过程”和“底层有计划断开连接过程”。所述底层建立连接过程是通信双方使用BLE中定义的广播事件和扫描事件建立双方之间在底层传输层的通信连接的过程;所述底层有计划断开连接过程是通信双方使用BLE中定义的终止连接事件断开双方之间在底层传输层的通信连接的过程。所述底层运行过程承载了GATT数据交换过程,是用于传输在GATT层进行交换的GATT PDU的过程。
所述CPA由CPA数据交换单元(CPA PDU)和CPA数据交换过程构成;所述CPA PDU是在CPA层被交换的、具有特定格式的数据消息,CPA PDU作为GATT PDU中的净荷经GATT传输。通信双方只有当处于“GATT数据交换过程”中时,才能运行CPA数据交换过程,该过程包括“CPA连接子流程”、“CPA运行子流程”和“CPA断开子流程”;通信双方在CPA层的数据交换过程中各自扮演一个设备角色,其中从设备的角色为CPA Agent,主设备的角色为CPAManager。CPA Agent和CPA Manager负责传输和接收PHD层的数据(APDU)以及在接收到APDU时及时通知PHD层,APDU的数据格式完全由PHD层数据交换协议定义,PHD层的数据对于CPA层来说为一个黑盒,CPA层不对PHD层数据进行解析。
所述CPA Agent实例化一个CPA服务(CPA Service),该服务包含一个通信协议适配层通信CC特征(CPA Communication Characteristic,下称为CC特征),所述CC特征符合GATT中的特征定义(Characteristic Definition)。所述CC特征至少包括一个特征值和一个客户端特征配置描述符(Client Characteristic Configuration Descriptor,下称为CCC描述符)。所述CPA服务和CC特征符合ATT中对“属性地址(handle)”和“属性值域(value)”的定义,并且各自具有一个由CPA Agent和CPA Manager共同认可的唯一识别码(UUID),该特征可以被CPA Manager发现和写入。其特征还在于,通信双方可将该特征作为操作对象,使用GATT协议中定义的“写特征值子程序”和“指示子程序”来完成CPA PDU传输。
如图2所示,本发明还提供一种依赖于GATT和指示进行适配的数据通信方法,包括:通过通信协议适配层CPA层4ST101对蓝牙低功耗BLE技术标准体系中的底层传输层1的运行进行管理ST102,使得依赖于可靠底层传输的应用层6数据交换协议PHD能够不受底层传输频繁断开和重连的影响且不受GATT的协议消息长度的限制地在以无状态通信为特征的GATT层3上正常运行ST103;
由于采用通过CPA层对底层传输层的运行进行管理,使得依赖于可靠底层传输的PHD能够不受底层传输频繁断开和重连的影响且不受GATT的协议消息长度的限制地在以无状态通信为特征的GATT层上正常运行,由于本发明提供的技术方案,在GATT层和PHD层之间构建了一个适配层,即CPA层。本发明构建的CPA层采用GATT作为端到端设备的通信协议(其中GATT依赖于ATT的实现,GATT将ATT中定义的属性进行分组,包括服务和特征。GATT还使用ATT中定义的属性操作方法定义了操作子程序,并使用这些子程序完成数据的交换,因此GATT PDU实质上是ATT PDU),GATT用于在独立的服务访问点之间提供数据单元(PDU)的传输。CPA层可以将PHD层交换的数据单元(APDU)置于CPA层所定义的数据格式相应的域中,进而通过GATT定义的通信方法将CPA PDU传输到对等设备;
通信双方可以通过CPA来完成对底层传输层的使用和管理,当通信双方在PHD层已处于“已连接”状态时,通信双方可以通过CPA层断开底层传输层的连接以便于减少功耗。如果应用层不打算断开PHD层的连接,在断开底层传输层的连接之前,通信双方保存CPA层和PHD层的工作状态数据;在需要重新连接时,通信双方通过CPA层重新建立底层传输层的连接,并基于先前保存的工作状态数据继续执行PHD层数据交换过程;CPA层的这项特性使得PHD层的数据传输不会受到底层传输频繁断开和重连的影响,支持应用层的同步交互,相当于CPA层为PHD层屏蔽了底层传输可能发生的不可靠情况,换句话说,因为CPA层的存在,PHD层可以认为底层传输是可靠的。
本发明中CPA Agent和CPA Manager通过发送GATT PDU来发送CPA PDU以及通过接收GATT PDU来接收CPA PDU。GATT层及底层提供数据传输服务,并保证数据单元有序传输。本发明的诸多优势使得本发明具有较强的通用性和兼容性。
所述数据通信的方法还包括主、从设备进行数据交换前,通信双方分别建立由下至上依次为底层传输层1、ATT层2、GATT层3、CPA层4、PHD层5和应用层6的数据通信协议栈层级结构;
由于包括通信协议适配层(CPA层),CPA层所属的数据通信协议栈层级结构由下至上分别为底层传输层、ATT层、GATT层、CPA层、PHD层和应用层,CPA由数据单元CPA PDU和CPA数据交换过程构成。本发明提供的CPA层通过对底层传输层的运行进行管理,使得依赖于可靠底层传输的PHD能够在以无状态通信为特征的GATT上正常运行,不受底层传输频繁断开和重连的影响,不受GATT的协议消息长度的限制。
所述PHD层5通过数据交换过程进行APDU传输并执行结束交互包括:
若发送方的PHD层5向CPA层4发送APDU,则通过CPA层4进行数据传输;
若CPA层4接收到PHD层5发送的语义为断开底层连接的内部指令,则CPA层4进入CPA断开子流程。
若通信双方的PHD层5结束交互或者PHD层5发生异常断开时,则通信双方各自的PHD层5由当前的状态转换到未连接状态,并向各自CPA层4发送语义为断开底层连接的内部指令,且不等待各自的CPA层4的反馈。
若通信双方在PHD层5处于已连接状态并且CPA层4未接收到新的APDU时,若应用层6不打算断开PHD层5的连接,通信双方可以通过CPA层4断开底层传输层1的连接,执行底层有计划断开连接过程;
若CPA层4接收到新的APDU需要底层传输层1重新连接时,通信双方通过CPA层4重新建立底层传输层1的连接,执行底层建立连接过程,并基于先前保存的工作状态数据继续执行PHD层5数据交换过程;
底层有计划断开连接过程:底层传输层1接收到CPA层4发送的断开底层连接内部指令时,通信双方保存工作状态数据,使用BLE中定义的终止连接事件断开双方之间在底层传输层1的通信连接,并向CPA层4发送语义为底层连接已断开事件通知的过程;
底层建立连接过程:通信双方使用BLE中定义的广播事件和扫描事件建立双方之间在底层传输层1的通信连接的过程。
所述通过CPA层4断开底层传输层1的连接之前,通信双方保存CPA层4和PHD层5的工作状态数据。
由于采用所述通过PHD层数据交换过程进行APDU传输并执行结束交互包括:若通过PHD层数据交换过程进行APDU传输时,若发送方的PHD层向本端的CPA层发送APDU,则通过本端的CPA层进行数据传输;若通信双方的PHD层结束交互或者PHD层发生异常断开时,则通信双方各自的PHD层由当前的状态转换到未连接状态,并向各自CPA层发送语义为断开底层连接内部指令,且不等待各自的CPA层的反馈。
所述应用层基于底层传输技术的低功耗特性可以根据数据传输需求设置BLE中定义的连接间隔(Connection interval)和从设备延迟(Slave latency)两个等涉及功耗的连接参数,进而控制设备间的底层链路进行重新连接的时序。若通信双方在PHD层处于已连接状态时,通信双方可以通过CPA层断开底层传输层的连接,若应用层不打算断开PHD层的连接,在断开底层传输层的连接之前,通信双方保存CPA层和PHD层的工作状态数据;若需要重新连接时,通信双方通过CPA层重新建立底层传输层的连接,并基于先前保存的工作状态数据继续执行PHD层数据交换过程。
由于所述PHD是指ISO/IEEE 11073-20601标准所定义的应用层数据交换协议,从设备的应用层与主设备的应用层使用该协议来交换数据消息,并且保持双方在应用层数据通信方面的状态同步,被交换的PHD层的数据消息对于CPA层而言是应用层数据交换单元(APDU),由于通信双方只有当处于“CPA运行子流程”中且PHD层进入“已连接”状态之后,才能运行PHD层数据交换过程。当通信双方的PHD层进行APDU传输时,发送方的PHD层向己方的CPA层发送APDU,通过CPA层进行数据传输。当通信双方的PHD层结束交互或者PHD层发生异常断开的时候,通信双方的PHD层由当前的状态转换到“未连接”状态,并向各自CPA层发送语义为“断开底层连接”内部指令,且不等待各自的CPA层的反馈。所述应用层基于底层传输技术的低功耗特性可以根据数据传输需求设置BLE中定义的连接间隔(Connectioninterval)和从设备延迟(Slave latency)等涉及功耗的连接参数,进而控制设备间的底层链路进行重新连接的时序
所述GATT层3基于ATT协议:
GATT层3将ATT层2中的属性进行分组,其包括服务和特征,所述服务中包含了一个或多个特征,每个特征由多个属性进行描述;GATT使用ATT中的属性操作方法定义子程序;
所述GATT数据交换过程包括:
通信双方基于GATT发送和接收CPA PDU,CPA PDU被置于GATT PDU的净荷中,通过GATT定义的子程序集合完成GATT数据交换过程,所述子程序集合包括写特征值子程序、指示子程序和写特征描述符子程序;
如果通信双方已达成共识且目标应用可以接受数据丢失的风险,则双方可以选择用无连接和无确认的广播通信方式来替代指示子程序,以利于减少功耗和工程量。
由于采用通信双方基于GATT发送和接收CPA PDU,CPA PDU被置于GATT PDU的净荷中,通过GATT定义的子程序集合完成GATT数据交换过程,所述子程序集合包括写特征值子程序、指示子程序和写特征描述符子程序,由于所述ATT和GATT是蓝牙低功耗(BLE)技术标准体系中的两个标准。所述ATT的特征在于,从设备与主设备进行数据交换时,按照ATT中所定义的属性(Attribute)的格式提供被交换的数据,并使用ATT中所定义的属性操作方法来操作属性。所述ATT包括ATT数据单元(ATT PDU)。所述ATT PDU,是在ATT层被交换的、符合ATT定义的消息格式的数据消息,其净荷(Payload)部分的字节长度不会超过“ATT PDU最大净荷长度”。所述GATT的特征在于,GATT将ATT中的属性进行分组,包括“服务”和“特征”,GATT中定义了服务,服务中包含了一个或多个特征,每个特征由多个属性进行描述。其特征还在于,GATT包括GATT数据单元(GATT PDU)和GATT数据交换过程,由于GATT使用ATT中的属性操作方法定义子程序,从设备和主设备使用GATT定义的子程序中的“写特征值子程序”、“指示子程序”和“写特征描述符子程序”来实现GATT数据交换过程(即GATT使用ATT中的属性操作方法在设备间传输数据),因此GATT PDU等价于ATT PDU;
所述CPA数据交换过程包括:
所述CPA层4实例化一个CPA服务,该服务包含一个CC特征,所述CC特征符合GATT中的特征定义,至少包括一个特征值和一个客户端特征配置描述符;
所述CC特征作为写特征描述符子程序、写特征值子程序和指示子程序的操作对象,其包括所述主设备执行写特征描述符子程序使能CC特征的指示功能,以及执行写特征值子程序向从设备发送数据,从设备判断若CC特征的指示功能被使能,则通过指示子程序发送数据;
CPA连接子流程:主设备CPA层4通过GATT执行写特征描述符子程序来启用从设备CPA层4的CC特征的指示功能,通信双方CPA层4向PHD层5发送语义为底层连接已建立的事件通知并进入CPA运行子流程;
CPA运行子流程:通信双方分别从各自所在设备的PHD层5获得APDU,然后封装为CPA PDU的格式并通过执行GATT数据交换过程传输给对方,通信双方还分别从对方那里接收CPA PDU,并将其中包含的APDU提取后发给各自的PHD层5;
每一个CPA PDU的传输为CPA层4的不可再分且必须一次性完成的最小操作,发送方在完整发送一个CPA PDU之前禁止发送其它CPA PDU,接收方在完整接收一个CPA PDU之前,禁止接收其它CPA PDU;
CPA断开子流程:主设备CPA层4通过GATT执行写特征描述符子程序以关闭从设备CPA 层CC特征的指示功能,通信双方的CPA层4向各自的应用层6发送语义为底层连接已断开事件通知。
同时,本发明还提供一种依赖于GATT和指示进行适配的数据通信系统,所述通信系统包括依次包括底层传输层、属性协议ATT层、通用属性规范协议适配CPA层、数据交换协议PHD层和应用层的数据通信协议栈层级结构;
所述数据通信协议栈层级结构用于:实现如上述任一项的数据通信方法。
由于通信协议适配(Communication Protocol Adaption,下称为CPA)层,用于低功耗、低计算资源的从设备(个人健康设备)与主设备之间的数据通信。所述数据通信的协议栈层级结构由下至上分别为底层传输层、ATT层、GATT层、CPA层、PHD层和应用层。所述CPA层通过对底层传输层的运行进行管理,使得依赖于可靠底层传输(connection-oriented)的PHD能够在以无状态(stateless)通信为特征的GATT上正常运行,不受底层传输频繁断开和重连的影响,不受GATT的协议消息长度的限制,既充分利用蓝牙的低功耗特性,又能够实现通信双方在应用层的同步交互;
实施例二:
如图4~11所示,本实施例中底层建立连接过程的具体流程如下:
S1、从设备执行广播过程,调用BLE中的广播事件,发送广播包,广播包中包含CPA服务的唯一识别码,这代表着该从设备支持CPA。广播包中还可以包含在PHD层使用的代表从设备类型的编号。
S2、主设备执行设备发现过程,调用BLE中的扫描事件,接收S1所述的广播包,解析并根据广播包中的内容筛选目标设备,并根据用户的要求向目标设备发送连接请求。
S3、从设备基于连接请求中的信息与主设备建立底层连接。
S4、底层连接建立完成,并向通信双方的CPA层发送语义为“底层连接已建立”事件通知。
所述底层建立连接过程使用到广播过程和设备发现过程。所述广播过程为一个BLE设备通过BLE中定义的广播事件向其他BLE设备广播数据,使得该BLE设备可以被其他BLE设备发现的过程。所述设备发现过程为其他BLE设备通过BLE中定义的扫描事件接收该BLE设备广播的数据包,进而发现该BLE设备的过程。
底层传输层建立连接过程中,S1至S4按照顺序执行。设备间在底层传输层建立连接时,从设备处于广播态,发送的广播包中包含CPA服务的唯一识别码,以表示该从设备支持CPA。此外,广播包中还可以包括标识从设备类型的编号,从而加快建立从设备与支持CPA且具备目标功能的主设备之间的有效连接。主设备处于扫描态,监听广播包并基于接收到广播数据内容仅向支持CPA的外设(即从设备)发送连接请求。当主设备发送连接请求后或者从设备接收到主设备发送的连接请求后,通信双方的连接创建,并通过连接事件进一步完成通信双方的连接确立。连接事件中包含了由应用层根据数据传输要求可以进行设置的涉及低功耗的连接参数,包括连接间隔(Connection Interval)和从设备延迟(Slavelatency)。通过设置连接参数,可以控制设备在断开后重新建立底层连接的时序。
此外,若主设备接收到的广播数据除了包含CPA服务的唯一识别码外,还包含有标识设备类型的编号数据,则主设备仅向支持CPA且具备目标功能的外设发送连接请求。更具体地,从设备发送的广播包数据中,包含BLE中定义的服务识别码(Service UUID)和制造商指定的数据(Manufacture Specific Data)这两种类型的广播结构,且制造商指定的数据广播结构紧随服务识别码广播结构之后。其中,在服务识别码广播结构中放入CPA服务的唯一识别码;在制造商指定的数据广播结构中放入制造商标识以及标识设备类型的编号数据,其中设备类型编号中可放入11073-PHD中定义的从设备数据命名码。
更具体地,从设备与主设备在通信初始时,从设备使用可发现无向可连接广播事件开启背景广播,使用白名单过滤掉除目标设备(可与从设备连接的主设备)以外的其他设备的连接请求。当从设备与主设备处于通信过程中,为了节约能耗,通常情况下由从设备端主导节能操作,主设备端配合从设备端的节能操作,由从设备控制节能模式的开启和关闭,即由从设备端主动断开底层连接,并在有数据传输时,由主设备端发起连接进而完成数据传输。为了使主设备在从设备需要传输APDU时快速建立底层连接,因此,在通信过程中,当从设备由于节约能耗与主设备暂时断开底层连接后,从设备的CPA层若有APDU等待传输时,从设备采用定向可连接广播事件进行广播,主设备在接收到从设备发送的定向可连接广播包时,认为从设备有APDU等待传输,进而立即发起连接请求与从设备建立底层连接。
底层运行过程承载的GATT数据交换过程的具体流程如下:
S21、CPA Manager基于GATT中的“写特征值子程序”将第m个CPA PDU发送给CPAAgent。
S22、CPA Agent基于GATT中的“指示子程序”将第n个CPA PDU发送给CPA Manager。
GATT数据交换过程中,S21和S22的执行顺序由应用层根据自身需求来安排。
S21或S22被视为CPA层的最小操作(即:不可再分、必须一次性完成的操作)。一个CPA PDU在完整发送之前,不能发送其它的CPA PDU,或者一个CPA PDU在完整接收之前,不能接收其它的CPA PDU。
底层有计划断开连接过程的具体流程如下:
该过程只在PHD层处于“已连接”状态且CPA层当前没有待传输的APDU时才可能被执行,发起断开底层连接事件的设备角色称为发起方,接受底层连接已断开事件的设备角色称为接受方。CPA Manager和CPA Agent任一方可作为但不可同时作为发起方或接受方,其特征如下:
S31、发起方的CPA层向己方底层传输层发送语义为“断开底层连接”内部指令,同时保存工作状态的数据。
S32、发起方的底层传输层接收到“断开底层连接”内部指令后,调用BLE中定义的终止连接事件,断开底层传输层的连接,并向己方CPA层发送语义为“底层连接已断开”事件通知。
S33、接受方的底层传输层向己方CPA层发送语义为“底层连接已断开”事件通知,接受方CPA层保存工作状态数据。
底层有计划断开连接过程中,S31至S33按照顺序执行。
实施例三:
本实施例中CPA数据交换过程的具体流程如下:
图4为实施例中的逻辑拓扑结构和通信方式,在有效的范围内,一个BLE主设备可以与一个或多个BLE从设备建立点到点连接,连接链路之间是相互独立的。
图5为CPA连接子流程的时序图,本实施例中,GATT层和PHD层已具有各自的鉴权流程,CPA本身无需鉴权,因此适用于设备间需要经常重连的应用场景,能够大大缩短重连时间,提高用户体验。当CPA层接收到语义为“底层连接已建立”事件通知时,启动CPA连接子流程,该子流程的特征如下:
S41、CPA Manager通过GATT执行“写特征描述符子程序”来启用CPA Agent端的CC特征的指示功能,其中“写特征描述符子程序”包含一对ATT中定义“写请求/写响应”命令,写请求的属性值域的值为“0x0002”。考虑CPA Manager尚未知晓CC特征的CCC描述符的属性地址,CPA Manager先通过GATT定义的“服务发现子程序”、“特征发现子程序”和“特征描述符发现子程序”来获取客户端特征配置描述符CCC(Client CharacteristicConfiguration Descriptor)的属性地址。如果CPA Agent所在设备和CPA Manager所在设备之间存在信任关系(绑定),且底层链路断开前CPA Manager未关闭CC特征的指示功能,则底层链路重连之后跳过此步骤。
S42、CPA Agent和CPA Manager向各自的PHD层发送“底层连接已建立”事件通知,并进入CPA运行子流程。
CPA连接子流程中,当PHD层接收到CPA层发送的“底层连接已建立”事件通知后,PHD层立即由“未连接”状态转换到“已连接”状态。S41至S42按照顺序执行。
CPA运行子流程包括CPA Manager运行子流程和CPA Agent运行子流程,具体过程如下:
结合图6和图8,当CPA Manager接收到己方PHD层的APDU时,通过依次执行步骤A1和A2处理该数据。CPA Manager运行子流程的特征如下:
步骤A1、当CPA Manager接收到己方PHD层的APDU后,将APDU作为净荷封装为CPAPDU。
步骤A2、CPA Manager执行GATT中的“写特征值子程序”向CPA Agent的CC特征写入特征值。所述特征值是A1中所述的CPA PDU。
CPA Agent执行GATT中的“指示子程序”后,CPA Manager将CPA PDU解封装为APDU,进而将获得的APDU传递给己方PHD层;
结合图7和图8,当CPAAgent接收到己方PHD层的APDU时,通过依次执行步骤B1和B2处理该数据。
步骤B1:当CPAAgent接收到己方PHD层的APDU后,将APDU作为净荷封装为CPA PDU。
步骤B2:CPA Agent执行GATT中的“指示子程序”向CPA Manager发送CC特征值的指示。所述特征值是B1中的CPA PDU。
CPA Manager执行GATT中的“写特征值子程序”后,CPA Agent将CPAPDU解封装为APDU,进而将获得的APDU传递给己方PHD层,被传输的APDU对于CPA层来说为一个黑盒,即CPA层不解析所传输的APDU。
图9为CPA数据交换过程中CPA层对底层传输层的使用和管理,阐述了CPA层在PHD层和GATT层之间的适配作用。该过程使得PHD层能够在以无状态通信为特征的GATT上运行,不受底层传输频繁断开和重连的影响。因为CPA层的中间作用,使得PHD层可以认为底层传输是可靠的。图9所描述的通信过程只是本技术方案实施时多种情况中的一种。
当主从设备之间的连接已确立,PHD层处于“已连接”状态的某一子状态(假设为“运行中(Operating)”状态)时,如果从设备此时有待处理的测量数据,将通过本实施方法发送给与之连接的主设备,CPA层对底层传输层的使用和管理具体过程为:
从设备(此处称之为“发送方”)的PHD层将测量数据以APDU(假设此APDU为第m-2个APDU)的形式传递给己方的CPA层;
发送方CPA层执行步骤B1构建一个CPA PDU(一个APDU对应一个CPA PDU),即将APDU(m-2)封装为CPAPDU(m-2);
发送方CPA层执行步骤B2,CPA PDU(m-2)被封装为GATT PDU(m-2),并通过指示子程序发送到接收方的GATT层;
接收方GATT层将GATT PDU(m-2)解封装为CPAPDU(m-2)并传递给CPA层;
接收方的CPA层将CPAPDU(m-2)解封装为APDU(m-2)并传递给己方PHD层,至此,由从设备发送给主设备的测量数据传输完成。类似的,主设备向从设备传输数据(假设为第m-1个APDU)时,具有对称的过程。
当PHD层没有数据进行传输且处于“已连接”状态的某个子状态时,CPA层任意一方向底层传输层发送语义为“断开底层连接”内部指令,并保存工作状态数据。底层断开连接后,向CPA层发送“底层连接已断开”事件通知。当CPA层任意一方(此处假设为原接收方)接收到PHD层发送的APDU(假设为第m个APDU)时,如果底层连接已断开,则CPA层立即向底层发送“建立底层连接”内部指令,并等待接收底层发送的“底层连接已建立”事件通知,进而CPA层将CPAPDU(m)通过GATT定义的“写特征值子程序”发送给原发送方。
本实施例中,通常为了节约功耗,GATT层可能会在无数据传输时由CPA层控制底层传输层主动断开连接,但是底层传输层也可能保持在连接状态,因为设备重连时也会消耗一定的能量,如果设备不断重连消耗的能量比保持连接消耗的能量更多,则保持连接的方式更好一些,主要取决于设备的使用方法。
在本实施例中,所述底层有计划断开连接过程只在PHD层处于“已连接”状态且CPA层当前没有待传输的APDU时才可能被执行,发起断开底层连接事件的设备角色称为发起方,接受底层连接已断开事件的设备角色称为接受方。CPA Manager和CPA Agent任一方可作为但不可同时作为发起方或接受方。
图10为CPA断开子流程的时序图。
CPA断开子流程的具体过程为:
S51、CPA Manager执行GATT中的“写特征描述符子程序”向CPA Agent端的CCC描述符写入值,以关闭CPA Agent端CC特征的指示功能,其中“写特征描述符子程序”包含一对ATT中定义“写请求/写响应”命令,写请求的属性值域的值为“0x0000”,同时清除工作状态数据。
S52、CPA Agent关闭CC特征的指示功能,并清除工作状态数据。
S53、CPA层连接已断开,并向各自的应用层发送“底层连接已断开”事件通知。
CPA断开子流程中,S51至S53按照顺序执行。
除了应用层根据数据传输需求并基于BLE低功耗特性,控制CPA层有计划地断开底层连接的情况外,CPA层断开连接时不会进一步控制底层断开连接。这是由于底层可能承载了多项应用或服务,而CPA层只适用于传输符合11073-20601优化交换协议的数据,当PHD层数据传输服务结束后,CPA层的连接就会断开,而底层可能继续用于传输其他的服务。
实施例四:
CPA层完整通信过程为:
图11为CPA层完整通信过程的一个实施例的时序图。当底层向CPA层发送“底层连接已建立”事件通知后,CPA Manager执行GATT中的“写特征描述符子程序”来使能CPAAgent端CC特征的指示功能,“写特征描述符子程序”执行完成后,CPA Agent和CPA Manager向各自的PHD层发送“底层连接已建立”事件通知。
如果此时CPA Agent接收到己方PHD层发送的APDU(1),CPA Agent将此APDU(1)封装为CPA PDU(1),并通过执行“指示子程序”传输给CPA Manager;CPA Manager接收到属性“指示”后向CPA Agent发送指示的“确认”;当CPA Manager接收到CPA PDU(1)后,将CPA PDU(1)解封装为APDU(1)并传递给PHD层;当CPA Manager在接收到己方PHD层回复的APDU(2)后,将该APDU(2)封装为CPA PDU(2),并通过执行“写特征值子程序”发送给CPAAgent;当CPAAgent接收到CPA PDU(2)后,将CPA PDU(2)解封装为APDU(2)并传递给PHD层。
当CPA层接收到PHD层的发送的“断开底层连接”内部指令时,CPA Manager执行“写特征描述符子程序”来关闭CPA Agent端CC特征的指示功能;“写特征描述符子程序”执行完成后,CPA Agent和CPA Manager清除各自的工作状态数据,并向各自的应用层发送“底层连接已断开”事件通知。
本专利采用通信协议适配层CPA层对蓝牙低功耗BLE技术标准体系中的底层传输层的运行进行管理,使得依赖于可靠底层传输的应用层数据交换协议PHD能够不受底层传输频繁断开和重连的影响且不受GATT的协议消息长度的限制地在以无状态通信为特征的GATT层上正常运行,由于为了解决需要在GATT层和PHD层之间建立适配,使得下层满足上层的需求的问题,本发明构建了一个建立在GATT层和PHD层之间的通信协议适配层(CPA层),是一种有针对性的适配方式,本发明通过CPA层对蓝牙低功耗BLE技术标准体系中的底层传输层的运行进行管理,使得依赖于可靠底层传输(connection-oriented)的应用层数据交换协议PHD(ISO/IEEE 11073-20601)能够不受底层传输频繁断开和重连的影响且不受GATT的协议消息长度的限制地在以无状态(stateless)通信为特征的GATT层上正常运行,既充分利用蓝牙的低功耗特性,又能够实现通信双方在应用层的同步交互;本发明构建的CPA层采用GATT作为端到端设备的通信协议,GATT用于在独立的服务访问点之间提供数据单元(PDU)的传输,CPA层可以将PHD层交换的数据单元(APDU)置于CPA层所定义的数据格式相应的域中,进而通过GATT定义的通信方法将CPA PDU传输到对等设备;通信双方可以通过CPA来完成对底层传输层的使用和管理,当通信双方在PHD层已处于“已连接”状态时,通信双方可以通过CPA层断开底层传输层的连接以便于减少功耗,如果应用层不打算断开PHD层的连接,在断开底层传输层的连接之前,通信双方保存CPA层和PHD层的工作状态数据;在需要重新连接时,通信双方通过CPA层重新建立底层传输层的连接,并基于先前保存的工作状态数据继续执行PHD层数据交换过程,CPA层的这项特性使得PHD层的数据传输不会受到底层传输频繁断开和重连的影响,支持应用层的同步交互,相当于CPA层为PHD层屏蔽了底层传输可能发生的不可靠情况,换句话说,因为CPA层的存在,PHD层可以认为底层传输是可靠的,本发明解决了现有技术中BLE技术并不能完全满足基于ISO/IEEE 11073标准的应用层数据交换需求,需要在GATT层和PHD层之间建立适配,使得下层满足上层的需求的问题,本发明提供的技术方案充分利用了BLE的低功耗特性以及保持通信双方在应用层的同步交互,进而还可以节省时间和计算资源,提高用户体验,降低成本,同时也不会对系统的安全造成负面影响,这样还避免了接收到的BLE消息被移动设备操作系统中的多个程序共享时所出现的安全隐患,本发明的诸多优势使得本发明具有较强的通用性和兼容性。
利用本发明的技术方案,或本领域的技术人员在本发明技术方案的启发下,设计出类似的技术方案,而达到上述技术效果的,均是落入本发明的保护范围。

Claims (8)

1.一种依赖于GATT和指示进行适配的数据通信方法,其特征在于,包括:
通过通信协议适配层CPA层对蓝牙低功耗BLE技术标准体系中的底层传输层的运行进行管理,使得依赖于可靠底层传输的应用层数据交换协议PHD能够不受底层传输频繁断开和重连的影响且不受GATT的协议消息长度的限制地在以无状态通信为特征的GATT层上正常运行;所述数据通信的方法还包括主、从设备进行数据交换前,通信双方分别建立由下至上依次为底层传输层、ATT层、GATT层、CPA层、PHD层和应用层的数据通信协议栈层级结构;所述通过通信协议适配层CPA层对蓝牙低功耗BLE技术标准体系中的底层传输层的运行进行管理包括:
主、从设备进行数据交换时,应用层打开PHD层的连接并且通过执行PHD层数据交换过程来保持通信双方在应用层数据通信的状态同步;
其中包括:
发送方:
若PHD层确定CPA数据交换过程处于CPA运行子流程且PHD层进入已连接状态,则通过PHD层数据交换过程将应用层数据交换单元APDU传输于CPA层并进行结束交互;
CPA层将PHD层传输的APDU封装为CPA PDU并将CPA PDU通过CPA数据交换过程传输于GATT层;
GATT层将CPA层传输的CPA PDU封装为GATT PDU并将GATT PDU通过GATT数据交换过程传输于ATT层;
若底层传输层的连接已打开,则ATT层将GATT PDU作为ATT PDU通过BLE定义的标准化流程工具传输于底层传输层;
底层传输层将ATT层传输的ATT PDU按照BLE标准中所定义的相应的属性的格式通过通信连接的过程传输于接收方的底层传输层;
接收方:
底层传输层接收到按照BLE标准中所定义的属性的格式传输的ATT PDU;
ATT层将底层传输层接收到的按照BLE标准中所定义的属性的格式传输的ATT PDU作为GATT PDU传递给GATT层;
GATT层将从ATT层接收到的GATT PDU解封装为CPA PDU,并将CPA PDU传递给CPA层;
CPA层将从GATT层接收到的CPA PDU解封装为APDU,并将APDU传递给PHD层;
PHD层从CPA层接收APDU并进行结束交互。
2.根据权利要求1所述数据通信方法,其特征在于,所述PHD层通过数据交换过程进行APDU传输并执行结束交互包括:
若发送方的PHD层向CPA层发送APDU,则通过CPA层进行数据传输;
若接收方的CPA层接收到PHD层发送的语义为断开底层连接的内部指令,则CPA层进入CPA断开子流程。
3.根据权利要求2所述数据通信方法,其特征在于:
若通信双方的PHD层结束交互或者PHD层发生异常断开时,则通信双方各自的PHD层由当前的状态转换到未连接状态,并向各自CPA层发送语义为断开底层连接的内部指令,且不等待各自的CPA层的反馈。
4.根据权利要求1所述数据通信方法,其特征在于:
若通信双方在PHD层处于已连接状态并且CPA层未接收到新的APDU时,若应用层不打算断开PHD层的连接,通信双方可以通过CPA层断开底层传输层的连接,执行底层有计划断开连接过程;
若CPA层接收到新的APDU需要底层传输层重新连接时,通信双方通过CPA层重新建立底层传输层的连接,执行底层建立连接过程,并基于先前保存的工作状态数据继续执行PHD层数据交换过程;
底层有计划断开连接过程:底层传输层接收到CPA层发送的断开底层连接内部指令时,通信双方保存工作状态数据,使用BLE中定义的终止连接事件断开双方之间在底层传输层的通信连接,并向CPA层发送语义为底层连接已断开事件通知的过程;
底层建立连接过程:通信双方使用BLE中定义的广播事件和扫描事件建立双方之间在底层传输层的通信连接的过程。
5.根据权利要求4所述数据通信方法,其特征在于,所述通过CPA层断开底层传输层的连接之前,通信双方保存CPA层和PHD层的工作状态数据。
6.根据权利要求1所述数据通信方法,其特征在于,所述GATT层基于ATT协议:
GATT层将ATT层中的属性进行分组,其包括服务和特征,所述服务中包含了一个或多个特征,每个特征由多个属性进行描述;GATT使用ATT中的属性操作方法定义子程序;
所述GATT数据交换过程包括:
通信双方基于GATT发送和接收CPA PDU,CPA PDU被置于GATT PDU的净荷中,通过GATT定义的子程序集合完成GATT数据交换过程,所述子程序集合包括写特征值子程序、指示子程序和写特征描述符子程序;
如果通信双方已达成共识且目标应用可以接受数据丢失的风险,则双方可以选择用无连接和无确认的广播通信方式来替代指示子程序。
7.根据权利要求1所述数据通信方法,其特征在于,所述CPA数据交换过程包括:
所述CPA层实例化一个CPA服务,该服务包含一个CC特征,所述CC特征符合GATT中的特征定义,至少包括一个特征值和一个客户端特征配置描述符;
所述CC特征作为写特征描述符子程序、写特征值子程序和指示子程序的操作对象,其包括所述主设备执行写特征描述符子程序使能CC特征的指示功能,以及执行写特征值子程序向从设备发送数据,从设备判断若CC特征的指示功能被使能,则通过指示子程序发送数据;
CPA连接子流程:主设备CPA层通过GATT执行写特征描述符子程序来启用从设备CPA层的CC特征的指示功能,通信双方CPA层向PHD层发送语义为底层连接已建立的事件通知并进入CPA运行子流程;
CPA运行子流程:通信双方分别从各自所在设备的PHD层获得APDU,然后封装为CPA PDU的格式并通过执行GATT数据交换过程传输给对方,通信双方还分别从对方那里接收CPAPDU,并将其中包含的APDU提取后发给各自的PHD层;
每一个CPA PDU的传输为CPA层的不可再分且必须一次性完成的最小操作,发送方在完整发送一个CPA PDU之前禁止发送其它CPA PDU,接收方在完整接收一个CPA PDU之前,禁止接收其它CPA PDU;
CPA断开子流程:主设备CPA层通过GATT执行写特征描述符子程序以关闭从设备CPA层CC特征的指示功能,通信双方的CPA层向各自的应用层发送语义为底层连接已断开事件通知。
8.一种依赖于GATT和指示进行适配的数据通信系统,其特征在于,所述通信系统包括依次包括底层传输层、属性协议ATT层、通用属性规范协议适配CPA层、数据交换协议PHD层和应用层的数据通信协议栈层级结构;
所述数据通信协议栈层级结构用于:实现如权利要求1~7中任一项的数据通信方法。
CN201910766067.9A 2019-08-19 2019-08-19 一种依赖于gatt和指示进行适配的数据通信方法及系统 Active CN110545318B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910766067.9A CN110545318B (zh) 2019-08-19 2019-08-19 一种依赖于gatt和指示进行适配的数据通信方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910766067.9A CN110545318B (zh) 2019-08-19 2019-08-19 一种依赖于gatt和指示进行适配的数据通信方法及系统

Publications (2)

Publication Number Publication Date
CN110545318A CN110545318A (zh) 2019-12-06
CN110545318B true CN110545318B (zh) 2021-11-30

Family

ID=68711564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910766067.9A Active CN110545318B (zh) 2019-08-19 2019-08-19 一种依赖于gatt和指示进行适配的数据通信方法及系统

Country Status (1)

Country Link
CN (1) CN110545318B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111416889B (zh) * 2020-01-16 2022-03-04 重庆大学 通过gatt和异常处理来适配的通信方法及系统
CN111314448B (zh) * 2020-02-05 2022-02-08 重庆大学 基于cpa的现场保护来适配的数据通信系统及方法
CN115767486A (zh) * 2021-09-03 2023-03-07 成都极米科技股份有限公司 一种蓝牙通信方法、第一设备、第二设备和存储介质
CN114339787A (zh) * 2021-12-31 2022-04-12 深圳市优必选科技股份有限公司 智能设备的配网方法、终端设备及计算机可读存储介质
CN115460021A (zh) * 2022-11-11 2022-12-09 成都卫士通信息产业股份有限公司 一种保护数据传输的方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105228089A (zh) * 2015-09-30 2016-01-06 成都信汇聚源科技有限公司 一种可穿戴设备多传感器适配及实时数据采集方法
CN105635943A (zh) * 2015-12-21 2016-06-01 中颖电子股份有限公司 一种基于低功耗蓝牙技术的数据交互方法以及采用该方法的信标装置和信标数据交互装置
CN107018131A (zh) * 2017-03-29 2017-08-04 重庆大学 基于网关在健康卡与服务器间建立端到端数据通信的方法
CN108540502A (zh) * 2018-07-18 2018-09-14 重庆信络威科技有限公司 一种基于蓝牙通信的组网协议
CN109474969A (zh) * 2018-12-19 2019-03-15 苏芯物联技术(南京)有限公司 基于ieee 802.15.4和低功耗蓝牙双协议栈的混合通信方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9706493B2 (en) * 2015-06-26 2017-07-11 Intel IP Corporation Bluetooth low energy devices, systems, and associated methods

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105228089A (zh) * 2015-09-30 2016-01-06 成都信汇聚源科技有限公司 一种可穿戴设备多传感器适配及实时数据采集方法
CN105635943A (zh) * 2015-12-21 2016-06-01 中颖电子股份有限公司 一种基于低功耗蓝牙技术的数据交互方法以及采用该方法的信标装置和信标数据交互装置
CN107018131A (zh) * 2017-03-29 2017-08-04 重庆大学 基于网关在健康卡与服务器间建立端到端数据通信的方法
CN108540502A (zh) * 2018-07-18 2018-09-14 重庆信络威科技有限公司 一种基于蓝牙通信的组网协议
CN109474969A (zh) * 2018-12-19 2019-03-15 苏芯物联技术(南京)有限公司 基于ieee 802.15.4和低功耗蓝牙双协议栈的混合通信方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A practical study on Bluetooth Low Energy (BLE) throughput;F. John Dian; Amirhossein Yousefi; Sungjoon Lim;《2018 IEEE 9th Annual Information Technology, Electronics and Mobile Communication Conference (IEMCON)》;20190117;第1-4页 *

Also Published As

Publication number Publication date
CN110545318A (zh) 2019-12-06

Similar Documents

Publication Publication Date Title
CN110545318B (zh) 一种依赖于gatt和指示进行适配的数据通信方法及系统
CN110545265B (zh) 一种依赖于att和指示进行适配的数据通信系统及方法
EP2645636B1 (en) Home gateway, cloud server, and method for communication therebetween
US7088687B2 (en) Managing packet transmissions between a device in a limited connectivity network and a device residing outside the limited connectivity network
US11166137B2 (en) Method, device, and system for adjusting packet length in near field communication
US8670724B2 (en) Wireless communication terminal, control method therefor, and information storage medium
US9560565B2 (en) Connection handover method based on near field communication, and corresponding apparatus
CN102612033B (zh) 具有瘦无线接入点功能的手机以及其通信方法
US20220256629A1 (en) Data radio bearer control method, device and system for multi-connection system
JP3606770B2 (ja) 通信システム、通信システムに使用するゲートウェイ、無線情報端末、及び無線通信方法。
CN102056245B (zh) 一种无线设备共享带宽的方法及无线设备
CN102681969B (zh) 基于can总线的长帧数据传输方法
WO2023273533A1 (zh) 网络管理方法及装置
CN109587749A (zh) 数据发送方法和系统
CN111328056B (zh) 基于att和读写指令进行协议适配的通信方法及系统
WO2010133020A1 (zh) Zigbee网络中的数据传输方法、终端处理器和终端设备
CN113452416B (zh) 关联接入点设备的方法、装置及存储介质
CN111314448B (zh) 基于cpa的现场保护来适配的数据通信系统及方法
KR100640826B1 (ko) 홈 네트워크 장치 제어 방법
CN114598519B (zh) 一种支持终端不掉线设置黑白名单的方法及系统
CN112654021B (zh) 一种设备间通信的方法、相关设备及系统
US20240048990A1 (en) Bluetooth connection method and system, intelligent terminal, and computer storage medium
WO2024020986A1 (zh) 确定设备的连接状态的方法、装置、芯片和存储介质
CN117641341A (zh) 一种数据传输的方法、装置和电子设备
JP2001177553A (ja) データ通信方法、クライアント、サーバ及び通信プログラムを記録した記録媒体

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant