通过ATT和异常处理来适配的通信方法及系统转让专利
申请号 : CN201910783902.X
文献号 : CN110493775B
文献日 : 2021-10-12
发明人 : 钟代笛 , 冯海玲 , 曹小英 , 段小炼 , 高雪梅
申请人 : 重庆大学
摘要 :
权利要求 :
1.通过ATT和异常处理来适配的通信方法,其特征在于,所述通信方法包括在主、从设备进行数据交换前,通信双方分别建立由下至上依次为底层传输层、属性协议ATT层、通用属性规范协议适配CPA层、数据交换协议PHD层和应用层的数据通信协议栈层级结构;
所述CPA层包括异常处理方法,所述异常处理方法包括:若通信双方在数据交换过程中,产生时间间隔超时或CC属性异常或ASN字段的值异常,则执行相应的主动式异常事件干预;
若通信双方在CPA数据交换过程中,产生ATT属性操作方法执行出错,则执行相应的主动式ATT错误干预;
若通信双方在CPA数据交换过程中,发送方向接收方发送一个CPA PDU时,原发送方可能会接收到ATT层上抛的且定义在ATT预留的应用层错误代码范围内的ATT协议错误,则执行相应的主动式CPA PDU错误干预;
若检测到链路丢失时,则执行相应的非主动式事件异常处理。
2.根据权利要求1所述通信方法,其特征在于,所述若通信双方在数据交换过程中,产生时间间隔超时或CC属性异常或ASN字段的值异常,则执行相应的主动式异常事件干预包括:
若CPA层包括的用于协助CPA层管理其连接状态的四个时间间隔中任意一个时间间隔超时,或者:
若CPA连接子流程中,在CPA层连接未成功前,通信双方任一方接收到了与CC属性相关的消息,或者;
若CPA运行子流程中,通信双方任一方接收到的CPA PDU中ASN字段的值不是最近一次成功发送或接收的CPAPDU中ASN值加1;
主设备则:
默认从设备的CC属性的指示功能已关闭,清除工作状态数据,向PHD层发送语义为底层连接已断开事件通知,并且在下一次连接之前不处理从设备发送的其它数据;
从设备则:
关闭CC属性的指示功能,清除工作状态数据,向PHD层发送语义为底层连接已断开事件通知,并且除连接请求外,不处理主设备发送的其它数据。
3.根据权利要求2所述通信方法,其特征在于,所述CPA层包括的用于协助CPA层管理其连接状态的四个时间间隔;
第一时间间隔:主设备在发送ATT写请求后接收相应的ATT写响应的最长等待时间或者是从设备在发送ATT指示后接收相应的ATT确认的最长等待时间;
第二时间间隔:CPA层在接收到ATT层发送的链路连接超时错误后直到链路重连成功的最长等待时间;
第三时间间隔:在ATT层有计划断开之后,当CPA层从PHD层接收到APDU时,CPA层向ATT层发送语义为建立底层连接内部指令开始直到ATT完成重连的最长等待时间;
第四时间间隔:主设备CPA层接收到PHD层发送的语义为断开底层连接内部指令后,向从设备的IE属性写入预定值二来关闭CC属性指示功能时等待对应的写响应的最长等待时间。
4.根据权利要求3所述通信方法,其特征在于,若四个时间间隔中任意一个时间间隔的等待时间超过最长等待时间,则CPA层的工作状态即自动发生转变。
5.根据权利要求1所述通信方法,其特征在于,所述若通信双方在CPA数据交换过程中,产生ATT属性操作方法执行出错,则执行相应的主动式ATT错误干预包括:所述ATT协议错误包括认证不足、加密不足、密钥长度不够、意外错误以及写入值无效或其他相关错误;
若通信双方认证不足,则主设备可进行认证操作并重新发送ATT写请求;
若通信双方加密不足,则主设备可进行加密操作并重新发送ATT写请求;
若通信双方密钥长度不够,则主设备可更改密钥并重新执行加密操作;
若通信双方意外错误,则主设备可尝试重新发送具有原写入值的ATT写请求;
若通信双方写入值无效,则主设备可尝试写入其它的预定值。
6.根据权利要求5所述通信方法,其特征在于,如果ATT协议错误中的一项错误类型重复出现,则由应用层决定后续的错误处理操作。
7.根据权利要求1所述通信方法,其特征在于,所述若通信双方在CPA数据交换过程中,发送方向接收方发送一个CPA PDU时,原发送方可能会接收到ATT层上抛的且定义在ATT预留的应用层错误代码范围内的ATT协议错误,则执行相应的主动式CPA PDU错误干预包括:若出现语义为CPAPDU接收出错的错误,则原发送方接收到此错误后可尝试重新发送当前CPAPDU,同时原接收方丢弃出错时已接收的当前CPA PDU片段并准备接收重新发送的CPA PDU,若重新发送后还是接收到此错误,由应用层决定后续的错误处理操作;
若出现语义为CPA PDU信息部过长的错误,则由于接收方所在设备无法接收过长的APDU,会向原发送方发送此错误,原发送方接收到此错误后可尝试重新发送新的CPA PDU,同时原接收方丢弃出错时已接收的当前CPAPDU片段并准备接收重新发送的CPA PDU,若重新发送后还是接收到此错误,由应用层决定后续的错误处理操作。
8.根据权利要求1所述通信方法,其特征在于,所述若检测到链路丢失时,则执行相应的非主动式事件异常处理包括:
若检测到链路丢失时,ATT层会向CPA层发送链路连接超时错误,通信双方在完成上一个CPA PDU传输后的任何时刻,接收到链路连接超时错误时,保存工作状态数据,在等待ATT层链路重连成功后,通信双方立即进入CPA运行子流程并从当前CPA PDU开始继续执行链路断开前的通信。
9.根据权利要求8所述通信方法,其特征在于,所述若检测到链路丢失时,则执行相应的非主动式异常事件处理还包括:
所述工作状态数据包括上一个CPAPDU中的ASN值,并且在底层链路断开时:若发送方正在封装APDU,工作状态数据还包括本方PHD层发送的APDU,并在底层链路重连后重新将底层链路重连前正在封装的APDU封装为CPAPDU;
若发送方正在经ATT层发送CPA PDU,工作状态数据还包括当前CPAPDU,并在底层链路重连后重新发送CPA PDU;
若接收方正在接收当前CPA PDU,则丢弃已接收的属于当前CPA PDU的所有片段。
10.通过ATT和异常处理来适配的通信系统,其特征在于,所述通信系统基于主、从设备进行数据交换前,通信双方分别建立由下至上依次为底层传输层、属性协议ATT层、通用属性规范协议适配CPA层、数据交换协议PHD层和应用层的数据通信协议栈层级结构;
所述CPA层包括异常处理模块,所述异常处理模块用于:实现如权利要求1~权利要求9的任一项的通过ATT和异常处理来适配的通信方法。
说明书 :
通过ATT和异常处理来适配的通信方法及系统
技术领域
背景技术
性(Attribute),主设备通过多种不同功能的协议指令完成对属性的操作,从而达到与从设
备之间实现数据交换的目的;
出现的异常错误情况进行监测和分析,并采取有效的措施恢复通信的正常状态,或者告知
用户并提供相应的错误细节。对于异常错误情况的处理机制是帮助通信设备管理通信状态
的有效工具之一;
或异常,从而导致通信双方通讯失败的问题。
发明内容
时、ATT属性操作方法执行出错、ATT协议错误等错误或链路丢失等错误或异常,从而导致通
信双方通讯失败的问题。
依次为底层传输层、属性协议ATT层、通用属性规范协议适配CPA层、数据交换协议PHD层和
应用层的数据通信协议栈层级结构;
则执行相应的主动式CPA PDU错误干预;
待时间。
ATT协议错误,则执行相应的主动式CPA PDU错误干预包括:
送的CPA PDU,若重新发送后还是接收到此错误,由应用层决定后续的错误处理操作;
PDU,同时原接收方丢弃出错时已接收的当前CPA PDU片段并准备接收重新发送的CPA PDU,
若重新发送后还是接收到此错误,由应用层决定后续的错误处理操作。
待ATT层链路重连成功后,通信双方立即进入CPA运行子流程并从当前CPA PDU开始继续执
行链路断开前的通信。
层、通用属性规范协议适配CPA层、数据交换协议PHD层和应用层的数据通信协议栈层级结
构;
产生ATT属性操作方法执行出错,则执行相应的主动式ATT错误干预;若通信双方在CPA数据
交换过程中,发送方向接收方发送一个CPA PDU时,原发送方可能会接收到ATT层上抛的且
定义在ATT预留的应用层错误代码范围内的ATT协议错误,则执行相应的主动式CPA PDU错
误干预;若检测到链路丢失时,则执行相应的非主动式事件异常处理;
交换过程中或CPA数据交换过程中,往往会出现如时间间隔超时、ATT属性操作方法执行出
错、ATT协议错误等错误或链路丢失等错误或异常,从而导致通信双方通讯失败的问题,具
有识别了数据交换过程中产生的错误类型并进行的主动或自动的容错处理,因此,保证了
数据通信过程的有效性;
了数据交换过程中产生的错误类型并进行的主动或自动的容错处理,因此,保证了数据通
信过程的有效性。
附图说明
下面结合附图对本发明做进一步描述:
错误;
CPA进行数据通信),主设备在接收相应的“写响应”之前先接收到了从设备发送的CC属性的
指示的错误情况,该错误情况发生后,执行主动式异常事件干预过程;
表着特定的语义。错误响应包括
个指定的请求不能被完成。上抛的错误可以为“CPA PDU接收出错”,此错误定义在ATT预留
的“应用程序错误”代码范围内,用于表示在接收CPA PDU时CPA层出现错误。此时主设备可
尝试重新执行步骤A2,其中重新发送的“写请求”包含的CPA PDU保持不变,而从设备则丢弃
出错时接收的CPA PDU,并准备重新接收此CPA PDU,其中,结合图2所示的实施方法,如果传
输的第m个CPA PDU可以被完整地置于一个ATT PDU中进行传输时,主设备在接收到错误响
应后重新发送第m个CPA PDU,从设备只需丢弃出错时接收到的第m个CPA PDU,并准备重新
接收第m个CPA PDU,结合图3所示的另一种实施方法,如果传输的第m个CPA PDU被分割为多
个有序的片段依次传输,且在传输第m个CPA PDU的第n个片段发生错误时,从设备则丢弃之
前接收的该CPA PDU的所有片段,并等待重新接收第m个CPA PDU的起始片段。若主设备重新
发送“写请求”后还是收到此ATT层错误,由应用层决定后续的错误处理操作,例如应用层可
以通知用户检查蓝牙连接是否断开。
本实施例中图2和图3描述的错误处理情况本质上相同,具体的错误处理过程可以对比参考
图2和图3的实施方法。
认”,主设备或从设备认定ATT层的连接已非正常断开,则执行主动式异常事件干预过程。
已断开连接的ATT层发送“建立ATT层连接”内部指令后,已经等待第三时间间隔仍未接收到
ATT层发送的“ATT层连接已建立”事件通知时,执行主动式异常事件干预过程。
B1时,底层链路超时错误处理的时序图。图12为从设备执行步骤B2时,底层链路超时错误处
理的时序图。由于设备间距离过长、严重干扰或者电源故障等因素而导致连接的链路丢失
时,ATT层会向主设备和从设备通知链路连接超时错误。当主设备和从设备在完成第m‑1个
CPA PDU传输后的任意时刻,接收到此错误时,保存工作状态数据,并在第二时间间隔内执
行底层链路重连操作。当ATT层重连成功后立即进入CPA运行子流程并恢复底层链路丢失前
的通信状态,即从第m个CPA PDU开始继续执行CPA PDU的传输过程。
11为从设备执行步骤B1时,在处理底层链路连接超时错误时,ATT层重连出错的时序图。图
13为从设备执行步骤B2时,在处理底层链路连接超时错误时,ATT层重连出错的时序图。若
底层链路重连超时,主设备和从设备停止重连,从设备关闭CC属性的指示功能,且主设备默
认CC属性的指示功能已被关闭,同时主设备和从设备将清除各自工作状态的数据并向各自
的PHD层发送“底层连接已断开”事件通知,且若主设备在链路丢失时正在执行步骤A1或步
骤A2,或者从设备在链路丢失时正在执行步骤B1或步骤B2,主设备或从设备通知己方PHD层
当前APDU传输失败。
向CPA层发送“ATT层连接已断开”事件通知。当CPA层任意一方(此处假设为原接收方)接收
到PHD层发送的APDU(假设为第m个APDU)时,如果ATT层连接已断开,则CPA层立即向ATT层发
送“建立ATT层连接”内部指令,并等待接收ATT层发送的“ATT层连接已建立”事件通知,进而
CPA层将CPA PDU(m)通过ATT定义的“写请求”发送给原发送方。
式异常事件干预过程。
如果设备不断重连消耗的能量比保持连接消耗的能量更多,则保持连接的方式更好一些,
主要取决于设备的使用方法。
自的CPA层发送语义为“断开底层连接”的内部指令,且不等待各自的CPA层的反馈。
指示功能,清除工作状态数据,并向己方PHD层发送“底层连接已断开”事件通知,且主设备
在第四时间间隔后默认CC属性的指示功能已关闭,清除工作状态数据,并向己方PHD层发送
“底层连接已断开”事件通知。
态数据,并向己方PHD层发送“底层连接已断开”事件通知。对于从设备端,在接收到带有预
定值二的“写请求”后,关闭CC属性的指示功能,如果在第一时间间隔内发送“写响应”失败,
清除工作状态数据,向己方的PHD层发送“底层连接已断开”事件通知。
于本方法识别了数据交换过程中产生的错误类型并进行的主动或自动的容错处理,因此,
保证了数据通信过程的有效性。
ST405,则执行相应的主动式CPA PDU错误干预ST406;
协议栈层级结构由下至上分别为底层传输层、属性协议(Attribute Protocol,下称为ATT)
层、CPA层、个人健康设备应用层数据交换协议(下称为PHD)层和应用层。所述CPA层通过对
ATT的运行进行管理,使得依赖于可靠底层传输(connection‑oriented)的PHD能够在以无
状态(stateless)通信为特征的ATT上正常运行,不受ATT和底层传输频繁断开和重连的影
响,不受ATT的协议消息长度的限制,既充分利用ATT的低功耗特性,又能够实现通信双方在
应用层的同步交互;所述属性协议(ATT)是蓝牙低功耗(BLE)技术标准体系中的一个标准,
其特征在于:遵循该标准的从设备在与主设备进行数据交换时,按照BLE标准中所定义的属
性(Attribute)的格式提供被交换的数据。遵循该标准的主设备可以通过ATT中所定义的属
性操作方法中的“写请求”、“写响应”、“指示”、“确认”和“信息查找请求”方法对从设备提供
的属性进行操作。所述ATT由ATT数据单元(ATT PDU)和ATT数据交换过程构成。所述ATT
PDU,是在ATT层被交换的、符合ATT定义的消息格式的数据消息,其净荷(Payload)部分的字
节长度不会超过“ATT PDU最大净荷长度”。ATT PDU的传输由底层传输层来完成。所述ATT数
据交换过程包括“ATT建立连接过程”、“ATT运行过程”和“ATT有计划断开连接过程”。所述
ATT建立连接过程是通信双方使用BLE中定义的广播事件和扫描事件建立双方之间在底层
传输层的通信连接的过程;所述ATT有计划断开连接过程是通信双方使用BLE中定义的终止
连接事件断开双方之间在底层传输层的通信连接的过程,所述CPA层的特征在于,由CPA数
据交换单元(CPA PDU)和CPA数据交换过程构成。所述CPA PDU是在CPA层被交换的、具有特
定格式的数据消息,CPA PDU作为ATT PDU中的净荷经ATT传输。通信双方只有当处于“ATT运
行过程”中时,才能运行CPA数据交换过程,该过程包括“CPA连接子流程”、“CPA运行子流程”
和“CPA断开子流程”。
CPAPDU,并将其中包含的APDU提取后发给各自的PHD层,通信双方只有当处于“CPA运行子流
程”中且PHD层进入“已连接”状态之后,才能运行PHD层数据交换过程。当通信双方的PHD层
进行APDU传输时,发送方的PHD层向己方的CPA层发送APDU,通过CPA层进行数据传输。当通
信双方的PHD层结束交互或者PHD层发生异常断开的时候,通信双方的PHD层由当前的状态
转换到“未连接”状态,并向各自CPA层发送语义为“断开底层连接”内部指令,且不等待各自
的CPA层的反馈。所述应用层基于底层传输技术的低功耗特性可以根据数据传输需求设置
BLE中定义的连接间隔(Connection interval)和从设备延迟(Slave latency)等涉及功耗
的连接参数,进而控制设备间的底层链路进行重新连接的时序,所述CPA层的特征在于,通
信双方可以通过CPA来完成对ATT的使用和管理。当通信双方在PHD层处于“已连接”状态时,
通信双方可以通过CPA层断开ATT层的连接以便于减少功耗。如果应用层不打算断开PHD层
的连接,在断开ATT层的连接之前,通信双方保存CPA层和PHD层的工作状态数据;在需要重
新连接时,通信双方通过CPA层重新建立ATT层的连接,并基于先前保存的工作状态数据继
续执行PHD层数据交换过程。
过程;或主设备通过ATT发送“写请求”后,已等待第一时间间隔且未接收到相应的“写响应”
时,主设备认定ATT层的连接已非正常断开,执行主动式异常事件干预过程。
“ATT层连接已建立”事件通知时,即执行主动式异常事件干预过程。
二的“写请求”失败后,执行主动式异常事件干预过程。
等待时间;
层接收到PHD层发送的“断开底层连接”内部指令后,从设备等待从主设备接收带有预定值
二的“写请求”的最长等待时间。
其语义包括但不限于以下情形:
误ST405,则执行相应的主动式CPA PDU错误干预ST406包括:
送的CPA PDU,若重新发送后还是接收到此错误,由应用层决定后续的错误处理操作;
PDU,同时原接收方丢弃出错时已接收的当前CPA PDU片段并准备接收重新发送的CPA PDU,
若重新发送后还是接收到此错误,由应用层决定后续的错误处理操作。
在等待ATT层链路重连成功后,通信双方立即进入CPA运行子流程并从当前CPA PDU开始继
续执行链路断开前的通信,其包括: