通过GATT和数据分割重组来适配的通信方法及系统与流程

专利2022-06-29  96


本发明属于数据通信技术领域,尤其涉及通过gatt和数据分割重组来适配的通信方法及系统。



背景技术:

通用属性协议gatt(genericattributeprofile)负责两个ble设备间的数据交互。gatt使用了att(attributeprotocol)协议,gatt将att中定义的属性进行分组,包括“服务(service)”和“特征(characteristic)”,一个服务中包含了一个或多个特征,每个特征由多个属性进行描述,服务的集合形成了gattprofile,bluetoothsig官方定义了一些标准的service供开发者使用,这些服务和特征对应的数据由att保存在一个查找表中,通过分配的uuid作为每一项的索引。gatt还使用att中的属性操作方法定义子程序以实现不同的功能,即gattfeature。gatt中定义了11项子程序,本发明中的gatt数据交换过程使用到了其中的“写特征值子程序(characteristicvaluewrite)”、“指示子程序(characteristicvalueindication)”和“写特征描述符子程序(characteristicdescriptorvaluewrite)”。对于gatt来说,向上与应用层交互,为应用层提供合适的gattprofile结构,向下将任务子程序交给att完成。

本发明构建的cpa(communicationprotocoladaption,通信协议适配)层用于在ble的gatt层与使用iso/ieee11073-20601协议进行数据交换的phd(personalhealthdevices,个人健康设备)层之间建立适配。cpa层将phd层传输的apdu作为净荷封装为cpapdu,然后gatt层将cpapdu作为净荷封装为gattpdu并传输到对端设备。由于iso/ieee11073-20601传输的消息的长度(最大为63k字节)远大于ble中gatt消息的长度,因此一般情况下,需要将cpapdu分割为合适的片段再通过gatt传输,并在接收端进行片段重组。

本发明基于“专利号为201910784387.7”的通过att和数据分割重组来适配的通信方法及系统;

本发明基于“专利号为201910766067.9”的一种依赖于gatt和指示进行适配的数据通信方法及系统;

现有通讯方式存在当一个cpapdu不能被完整地置于一个gattpdu的净荷中时,则需要分割为多个有序片段并通过多个gattpdu连续有序地传输,然后由接收方完成cpapdu的重组处理的问题。



技术实现要素:

本发明提供通过gatt和数据分割重组来适配的通信方法及系统,以解决上述背景技术中提出了当一个cpapdu不能被完整地置于一个gattpdu的净荷中时,则需要分割为多个有序片段并通过多个gattpdu连续有序地传输,然后由接收方完成cpapdu的重组处理的问题。

本发明所解决的技术问题采用以下技术方案来实现:通过gatt和数据分割重组来适配的通信方法,所述通信方法包括在主、从设备进行数据交换前,通信双方分别建立由下至上依次为底层传输层、属性协议att层、通用属性规范gatt层、通用属性规范协议适配cpa层、数据交换协议phd层和应用层的数据通信协议栈层级结构;

所述cpa层包括分割和重组方法,所述分割和重组方法包括:

发送方分割过程:

若一个cpapdu不能完整置于一个gattpdu的净荷中时,则进行分割发送处理;

接收方重组过程:

若gattpdu净荷数据的sar字段紧跟的数据不是一个完整的cpapdu,则进行重组接收处理。

进一步,所述通信方法还包括:

所述若一个cpapdu不能完整置于一个gattpdu的净荷中时,则进行分割发送处理,所述gattpdu的净荷依次包括sar字段、cpapdu片段;

若gattpdu净荷数据的sar字段紧跟的数据不是一个完整的cpapdu,则进行重组接收处理,所述接收方根据接收的sar字段将接收到的cpapdu片段重组为一个完整的cpapdu。

进一步,所述sar字段的特性包括:

所述sar字段长度为一个字节;

所述sar字段的其中两个比特共同组成片段类型标识位,所述片段类型标识位的取值只能为预设值a或预设值b或预设值c或预设值d。

进一步,所述sar字段的特性还包括:所述sar字段可能包括一个比特为cpapdu可靠传输标识位。

进一步,所述sar字段的特性还包括:所述sar字段中不属于片段类型标识位和cpapdu可靠传输标识位的其它比特可共同组成片段序号,所述片段序号取值从零开始单向逐一递增且可循环,用以对相邻的cpapdu片段逐个进行连续编号。

进一步,所述sar字段的特性还包括:

若sar字段中的cpapdu可靠传输标识位为1时,表示当前cpapdu任一个片段传输完成后的任意时刻,cpapdu传输被暂停且在通信恢复后,通信双方重新传输该cpapdu的所有片段;

若sar字段中的cpapdu可靠传输标识位为0时,表示当前cpapdu的任一个片段传输完成后的任意时刻,cpapdu传输被暂停且在通信恢复后,通信双方继续传输该cpapdu的下一个片段。

进一步,所述sar字段的特性还包括:所述sar字段中cpapdu可靠传输标识位是否在sar字段中存在在通信开始前已由双方确定;若确定存在,则cpapdu可靠传输标识位的值在一次通信过程中保持不变。

同时,本发明还提供通过gatt和数据分割重组来适配的通信系统,所述通信系统基于主、从设备进行数据交换前,通信双方分别建立由下至上依次为底层传输层、属性协议att层、通用属性规范gatt层、通用属性规范协议适配cpa层、数据交换协议phd层和应用层的数据通信协议栈层级结构;

所述cpa层包括分割和重组模块,所述分割和重组模块用于:

实现上述任一项的分割和重组方法。

有益技术效果:

由于采用所述cpa层包括分割和重组方法,所述分割和重组方法包括:发送方分割过程:若一个cpapdu不能完整置于一个gattpdu的净荷中时,则进行分割发送处理;接收方重组过程:若gattpdu净荷数据的sar字段紧跟的数据不是一个完整的cpapdu,则进行重组接收处理;

本发明的特点在于:

1、相较于“专利号为201910784387.7的通过att和数据分割重组来适配的通信方法及系统”,本发明使用gatt传输phd层的apdu,隐藏了att层通信的部分细节,降低了应用层开发的难度,减轻了开发人员的负担,扩展了应用层对于底层开发接口的适用范围。

2、相较于“专利号为201910784387.7的通过att和数据分割重组来适配的通信方法及系统”,本发明提供了利用gatt对phd层的apdu进行分割重组的方法,解决了不同层级之间的载荷容量不匹配的问题。

3、相较于“专利号为201910784387.7的通过att和数据分割重组来适配的通信方法及系统”,本发明定义了两种cpapdu重传模式,为应用层开发人员选择技术方案提供了更多的灵活性。

本发明针对cpapdu的分割和重组定义了一个长度为一个字节的分割和重组sar字段,该sar字段和cpapdu片段组合共同作为净荷被封装为gattpdu,并且该sar字段中一个比特被定义为cpapdu可靠传输标识位,通过对该标识位赋值,可以选择cpapdu的重传模式:

该标志为置1,表示在任一个cpapdu传输被暂停且通信恢复后,发送方重新发送该cpapdu的所有片段,接收方清除之前已接收的部分片断。

该标识位置0,表示在一个cpapdu的任一个片段传输完成后传输暂停,且通信恢复后,发送方重新发送该cpapdu的下一个片段,接收方保存之前已接收的部分片断。

该标识位通信双方决定是否存在,并且在一次通信过程中保持不变。

由于所述cpa层的特征在于,由cpa数据交换单元(cpapdu)和cpa数据交换过程构成,所述cpapdu是在cpa层被交换的、具有特定格式的数据消息,cpapdu作为gattpdu中的净荷经gatt传输,所述cpa层将apdu封装为cpapdu后,能够对cpapdu进行分割和重组,因此,当一个cpapdu不能被完整地置于一个gattpdu的净荷中时,cpapdu被发送方分割为多个有序片段并通过多个gattpdu连续有序地传输,然后由接收方完成cpapdu的重组。

附图说明

图1是本发明通过gatt数据分割重组来适配的通信方法的流程图;

图2是本发明中cpapdu的分割实例图。

本发明提供的技术方案在实施时具有灵活性,通过设置该技术方案中的部分参数以及阐述与之关联的较佳的应用设计,可以为本发明所要达到的技术效果提供优选方案,下面结合附图对本发明做进一步描述:

图中标号表示如下:

1—底层传输层,2—att层,3—gatt层,4—cpa层,5—phd层,6—应用层;

st301:发送方的cpa层将cpapdu传输于gatt层时,判断cpapdu的长度;

st302:若一个cpapdu可以完整置于一个gattpdu的净荷中时;

st303:则进行完整发送处理;

st304:若一个cpapdu不能完整置于一个gattpdu的净荷中时;

st305:则进行分割发送处理;

st306:接收方的cpa层接收到经gatt数据交换过程传输的gattpdu净荷时,根据gattpdu净荷数据的sar字段判断紧跟的数据是否为一个完整的cpapdu;

st307:若gattpdu净荷数据的sar字段紧跟的数据确定为一个完整的cpapdu;

st308:则进行完整接收处理;

st309:若gattpdu净荷数据的sar字段紧跟的数据不是一个完整的cpapdu;

st310:则进行重组接收处理;

实施例:

图1所示为基于gatt传输cpapdu时,cpa层的分割和重组功能。

如图1所示,通过gatt和数据分割重组来适配的通信方法,所述通信方法包括在主、从设备进行数据交换前,通信双方分别建立由下至上依次为底层传输层1、属性协议att层2、通用属性规范gatt层3、通用属性规范协议适配cpa层4、数据交换协议phd层5和应用层6的数据通信协议栈层级结构;

所述cpa层4包括分割和重组方法,所述分割和重组方法包括:

发送方分割过程:

若一个cpapdu不能完整置于一个gattpdu的净荷中时st304,则进行分割发送处理st305;

接收方重组过程:

若gattpdu净荷数据的sar字段紧跟的数据不是一个完整的cpapdust309,则进行重组接收处理st310。

由于所述数据通信的方法还包括所述数据通信的方法还包括主、从设备进行数据交换前,通信双方分别建立由下至上依次为底层传输层、att层、gatt层、cpa层、phd层和应用层的数据通信协议栈层级结构。;

由于包括通信协议适配层(cpa层),cpa层所属的数据通信协议栈层级结构由下至上分别为底层传输层、att层、gatt层、cpa层、phd层和应用层。cpa由数据单元cpapdu和cpa数据交换过程构成。本发明提供的cpa层通过对底层传输层的运行进行管理,使得依赖于可靠底层传输(connection-oriented)的phd能够在以无状态(stateless)通信为特征的gatt上正常运行,不受gatt和底层传输频繁断开和重连的影响,不受gatt的协议消息长度的限制,既充分利用gatt的低功耗特性,又能够实现通信双方在应用层的同步交互;

由于从设备和主设备通过发送gattpdu来发送cpapdu以及通过接收gattpdu来接收cpapdu。gatt层及底层提供数据传输服务,并保证数据单元有序传输。此外,从设备和主设备还负责对cpapdu进行封装和解封装。本发明的诸多优势使得本发明具有较强的通用性和兼容性;

所述通信方法还包括:

所述若一个cpapdu不能完整置于一个gattpdu的净荷中时st304,则进行分割发送处理st305,所述gattpdu的净荷依次包括sar字段、cpapdu片段;

若gattpdu净荷数据的sar字段紧跟的数据不是一个完整的cpapdust309,则进行重组接收处理st310,所述接收方根据接收的sar字段将接收到的cpapdu片段重组为一个完整的cpapdu。

由于所述cpa层的特征在于,由cpa数据交换单元(cpapdu)和cpa数据交换过程构成,所述cpapdu是在cpa层被交换的、具有特定格式的数据消息,cpapdu作为gattpdu中的净荷经gatt传输,所述cpa层将apdu封装为cpapdu后,能够对cpapdu进行分割和重组,因此,当一个cpapdu不能被完整地置于一个gattpdu的净荷中时,cpapdu被发送方分割为多个有序片段并通过多个gattpdu连续有序地传输,然后由接收方完成cpapdu的重组;

由于cpa主设备或cpa从设备在完整发送一个cpapdu之前,不能发送其它的cpapdu;或者cpa主设备或cpa从设备在完整接收一个cpapdu之前,不能接收其它的cpapdu。该方法被视为cpa层的最小操作(即:不可再分、必须一次性完成的操作)。如果一个cpapdu不能通过一个“写特征值子程序”完整传输,或者一个cpapdu不能通过一个“指示子程序”完整传输,则主设备会通过一组(连续多个)“写特征值子程序”来完成一个cpapdu的传输,或者从设备会通过一组(连续多个)“指示子程序”来完成一个cpapdu的传输。

当一个cpapdu不能被完整地置于一个gattpdu的净荷中时,cpapdu被发送方分割为多个有序片段并通过多个gattpdu连续有序地传输,然后由接收方完成cpapdu的重组。当采用gatt传输cpapdu时,gatt指令的净荷内容依次为“[sar字段][cpapdu]”或者“[sar字段][cpapdu片段]”,其中,sar字段长度为一个字节,该字段的其中两个比特共同组成片段类型标识位,该标识位的取值只能为预设值a、预设值b、预设值c或预设值d。sar字段的另外六个比特可共同组成片段序号,其取值从零开始单向逐一递增且可循环,用以对相邻的cpapdu片段逐个进行连续编号,当sar字段的片段类型标识位的值为预设值a时指示gattpdu中置有一个完整的cpapdu,当片段类型标识位的值为预设值b时指示gattpdu中置有一个至少包含cpapdu的头部的起始片段;当片段类型标识位的值为预设值c时指示gattpdu中置有cpapdu的中间片段;当片段类型标识位的值为预设值d时指示gattpdu中置有cpapdu的结束片段;预设值a或预设值d指示的片段,其长度是可变的,片段长度小于等于“gattpdu的最大净荷长度减1”;预设值b或预设值c指示的片段,其长度是固定的,片段长度等于“gattpdu的最大净荷长度减1”;进行cpapdu分割和重组时,上述两操作可以同时执行,下述操作按顺序执行;cpapdu的片段按照cpapdu的分割顺序依次通过多个gattpdu串行传输,当接收方接收到gattpdu时,cpa层根据gattpdu中净荷数据的sar字段进行cpapdu的重组。

所述sar字段的特性包括:

所述sar字段长度为一个字节;

所述sar字段的其中两个比特共同组成片段类型标识位,所述片段类型标识位的取值只能为预设值a或预设值b或预设值c或预设值d。

由于若sar字段的片段类型标识位为预设值a,则确定sar字段后跟一个完整的cpapdu;所述重组接收处理包括:若sar字段的片段类型标识位为预设值b,则确定sar字段后跟cpapdu的起始片段,接收方的cpa层4继续等待接收剩余cpapdu片段,直到接收到sar字段的片段类型标识位为预设值d的cpapdu片段为止,并根据sar字段将接收到的cpapdu片段重组为一个完整的cpapdu。

所述sar字段的特性还包括:所述sar字段可能包括一个比特为cpapdu可靠传输标识位。

所述sar字段的特性还包括:所述sar字段中不属于片段类型标识位和cpapdu可靠传输标识位的其它比特可共同组成片段序号,所述片段序号取值从零开始单向逐一递增且可循环,用以对相邻的cpapdu片段逐个进行连续编号。

所述sar字段的特性还包括:

若sar字段中的cpapdu可靠传输标识位为1时,表示当前cpapdu任一个片段传输完成后的任意时刻,cpapdu传输被暂停且在通信恢复后,通信双方重新传输该cpapdu的所有片段;

若sar字段中的cpapdu可靠传输标识位为0时,表示当前cpapdu的任一个片段传输完成后的任意时刻,cpapdu传输被暂停且在通信恢复后,通信双方继续传输该cpapdu的下一个片段。

由于针对cpapdu的分割和重组定义了一个长度为一个字节的分割和重组sar字段,该sar字段和cpapdu片段组合共同作为净荷被封装为gattpdu,并且该sar字段中一个比特被定义为cpapdu可靠传输标识位,通过对该标识位赋值,可以选择cpapdu的重传模式:该标志为置1,表示在任一个cpapdu传输被暂停且通信恢复后,发送方重新发送该cpapdu的所有片段,接收方清除之前已接收的部分片断;该标识位置0,表示在一个cpapdu的任一个片段传输完成后传输暂停,且通信恢复后,发送方重新发送该cpapdu的下一个片段,接收方保存之前已接收的部分片断;该标识位通信双方决定是否存在,并且在一次通信过程中保持不变。

图2为cpapdu片段经gatt传输时,与一个长度为1字节的sar字段组合共同作为净荷被封装为gattpdu的过程,该sar字段中一个比特被定义为cpapdu可靠传输标识位,通过对该标识位赋值,可以选择cpapdu的重传模式:

该标志为置1,表示在任一个cpapdu传输被暂停且通信恢复后,发送方重新发送该cpapdu的所有片段,接收方清除之前已接收的部分片断;

该标识位置0,表示在一个cpapdu的任一个片段传输完成后传输暂停,且通信恢复后,发送方重新发送该cpapdu的下一个片段,接收方保存之前已接收的部分片断;

该标识位是否存在由通信双方事先决定,并且在一次通信过程中保持不变;

利用本发明的技术方案,或本领域的技术人员在本发明技术方案的启发下,设计出类似的技术方案,而达到上述技术效果的,均是落入本发明的保护范围。


技术特征:

1.通过gatt和数据分割重组来适配的通信方法,其特征在于,所述通信方法包括在主、从设备进行数据交换前,通信双方分别建立由下至上依次为底层传输层、属性协议att层、通用属性规范gatt层、通用属性规范协议适配cpa层、数据交换协议phd层和应用层的数据通信协议栈层级结构;

所述cpa层包括分割和重组方法,所述分割和重组方法包括:

发送方分割过程:

若一个cpapdu不能完整置于一个gattpdu的净荷中时,则进行分割发送处理;

接收方重组过程:

若gattpdu净荷数据的sar字段紧跟的数据不是一个完整的cpapdu,则进行重组接收处理。

2.根据权利要求1所述通信方法,其特征在于,所述通信方法还包括:

所述若一个cpapdu不能完整置于一个gattpdu的净荷中时,则进行分割发送处理,所述gattpdu的净荷依次包括sar字段、cpapdu片段;

若gattpdu净荷数据的sar字段紧跟的数据不是一个完整的cpapdu,则进行重组接收处理,所述接收方根据接收的sar字段将接收到的cpapdu片段重组为一个完整的cpapdu。

3.根据权利要求2所述通信方法,其特征在于,所述sar字段的特性包括:

所述sar字段长度为一个字节;

所述sar字段的其中两个比特共同组成片段类型标识位,所述片段类型标识位的取值只能为预设值a或预设值b或预设值c或预设值d。

4.根据权利要求3所述通信方法,其特征在于,所述sar字段的特性还包括:所述sar字段可能包括一个比特为cpapdu可靠传输标识位。

5.据权利要求4所述通信方法,其特征在于,所述sar字段的特性还包括:所述sar字段中不属于片段类型标识位和cpapdu可靠传输标识位的其它比特可共同组成片段序号,所述片段序号取值从零开始单向逐一递增且可循环,用以对相邻的cpapdu片段逐个进行连续编号。

6.据权利要求5所述通信方法,其特征在于,所述sar字段的特性还包括:

若sar字段中的cpapdu可靠传输标识位为1时,表示当前cpapdu任一个片段传输完成后的任意时刻,cpapdu传输被暂停且在通信恢复后,通信双方重新传输该cpapdu的所有片段;

若sar字段中的cpapdu可靠传输标识位为0时,表示当前cpapdu的任一个片段传输完成后的任意时刻,cpapdu传输被暂停且在通信恢复后,通信双方继续传输该cpapdu的下一个片段。

7.据权利要求6所述通信方法,其特征在于,所述sar字段的特性还包括:所述sar字段中cpapdu可靠传输标识位是否在sar字段中存在在通信开始前已由双方确定;若确定存在,则cpapdu可靠传输标识位的值在一次通信过程中保持不变。

8.通过gatt和数据分割重组来适配的通信系统,其特征在于,所述通信系统基于主、从设备进行数据交换前,通信双方分别建立由下至上依次为底层传输层、属性协议att层、通用属性规范gatt层、通用属性规范协议适配cpa层、数据交换协议phd层和应用层的数据通信协议栈层级结构;

所述cpa层包括分割和重组模块,所述分割和重组模块用于:

实现如权利要求1~权利要求7的任一项的分割和重组方法。

技术总结
本发明属于数据通信技术领域,尤其涉及通过GATT和数据分割重组来适配的通信系统,其中,包括发送方分割过程和接收方重组过程,本发明解决了当存在当一个CPA PDU不能被完整地置于一个GATT PDU的净荷中时,则需要分割为多个有序片段并通过多个GATT PDU连续有序地传输,然后由接收方完成CPA PDU的重组处理的问题,真正实现了GATT层与PHD层之间的通信适配。

技术研发人员:曹小英;赵杰;冯海玲;唐艺;贺学兵;李祥臣;段小炼;钟代笛;黄智勇;仲元红;韩术;印强
受保护的技术使用者:重庆大学
技术研发日:2020.01.16
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-21261.html

最新回复(0)