一种通信方法及装置的制造方法

文档序号:10691930阅读:191来源:国知局
一种通信方法及装置的制造方法
【专利摘要】本发明提供一种通信方法及装置,应用于蓝牙系统,该方法包括:从设备在发送第一通告后的最后一个第一时间窗接收主设备发送的数据请求报文,当该数据请求报文为读请求报文时,确定响应数据,并根据响应数据确定第二时间窗的数量N,然后,根据第二时间窗内可传输数据量将响应数据划分成N个数据片,最后,在发送第二通告后通过广播方式发送已划分的数据片。主设备在第二时间窗内接收数据,并根据所有接收的数据还原从设备发送的响应数据。本发明中的主、从设备通过广播方式进行信息交互,无需建立和维护连接,可降低电量消耗,延长通信距离。
【专利说明】
_种通信方法及装置
技术领域
[0001]本发明涉及网络通信技术领域,尤其涉及一种通信方法及装置。
【背景技术】
[0002]随着智能家居、智能工业、智能手机的发展,BLE(BlueTooth Low Energy,低功耗蓝牙)应用越来越广泛。BLE技术中主、从设备之间的双向通信建立在连接的基础上,而为了保证连接的可靠性,通常会引入超时、流控、重复检测等机制,致使在一些恶劣的应用环境下,很容易出现通信中断,当再次通信时需要重新建立连接,增加了双向通信的复杂性,且耗电量大,双方通信距离缩短。

【发明内容】

[0003]本发明的目的在于提供一种通信方法及装置,用以通过广播方式在主、从设备之间实现双向通信。
[0004]为实现上述发明目的,本发明提供了技术方案:
[0005]本发明提供一种通信方法,应用于蓝牙系统中的从设备,所述方法包括:
[0006]在发送第一通告后的最后一个第一时间窗接收主设备发送的数据请求报文;
[0007]当所述数据请求报文为读请求报文时,确定响应数据;
[0008]确定发送所述响应数据所需第二时间窗的数量N,所述第二时间窗的数量N小于预设阈值,所述预设阈值为单次通告后可跟随的最大时间窗数量;
[0009]根据第二时间窗内可传输数据量将所述响应数据划分成N个数据片;
[0010]通过广播方式发送第二通告,并在所述第二通告后通过广播方式在N个第二时间窗内发送已划分的数据片。
[0011]本发明还提供一种通信方法,应用于蓝牙系统中的主设备,所述方法包括:
[0012]接收从设备发送的第一通告,所述第一通告后跟随至少一个第一时间窗;
[0013]判断在所述第一时间窗的起始时间段内是否接收到数据;
[0014]当在所述第一时间窗的起始时间段内未接收到数据时,在当前第一时间窗的后续时间内向所述从设备发送数据请求报文;
[0015]当所述数据请求报文为读请求报文时,接收所述从设备发送的第二通告,所述第二通告后跟随至少一个第二时间窗;
[0016]判断在所述第二时间窗的起始时间段内是否接收到数据;
[0017]在完成所有第二时间窗内的数据接收后,根据所有接收到的数据还原所述从设备发送的响应数据。
[0018]本发明还提供一种通信装置,应用于蓝牙系统中的从设备,所述装置包括:
[0019]报文接收单元,用于在发送第一通告后的最后一个第一时间窗接收主设备发送的数据请求报文;
[0020]数据确定单元,用于当所述数据请求报文为读请求报文时,确定响应数据;
[0021]数量确定单元,用于确定发送所述响应数据所需第二时间窗的数量N,所述第二时间窗的数量N小于预设阈值,所述预设阈值为单次通告后可跟随的最大时间窗数量;
[0022]数据片划分单元,用于根据第二时间窗内可传输数据量将所述响应数据划分成N个数据片;
[0023]数据片发送单元,用于通过广播方式发送第二通告,并在所述第二通告后通过广播方式在N个第二时间窗内发送已划分的数据片。
[0024]本发明还提供一种通信装置,应用于蓝牙系统中的主设备,所述装置包括:
[0025]第一接收单元,用于接收从设备发送的第一通告,所述第一通告后跟随至少一个第一时间窗;
[0026]第一判断单元,用于判断在所述第一时间窗的起始时间段内是否接收到数据;
[0027]请求发送单元,用于当在所述第一时间窗的起始时间段内未接收到数据时,在当前第一时间窗的后续时间内向所述从设备发送数据请求报文;
[0028]第二接收单元,用于当所述数据请求报文为读请求报文时,接收所述从设备发送的第二通告,所述第二通告后跟随至少一个第二时间窗;
[0029]第二判断单元,用于判断在所述第二时间窗的起始时间段内是否接收到数据;
[0030]数据还原单元,用于在完成所有第二时间窗内的数据接收后,根据所有接收到的数据还原所述从设备发送的响应数据。
[0031]由以上描述可以看出,本发明的主、从设备之间采用广播方式进行信息交互,无需建立连接、维持连接,因此,可降低电量消耗,延长通信距离。
【附图说明】
[0032]图1是本发明实施例示出的一种通信方法流程图;
[0033]图2是本发明实施例示出的一种报文格式示意图;
[0034]图3是本发明实施例示出的划分数据片的示意图;
[0035]图4是本发明实施例示出的一种报文交互过程示意图;
[0036]图5是本发明实施例示出的一种多次响应的报文交互过程示意图;
[0037]图6是本发明实施例示出的另一种通信方法流程图;
[0038]图7是本发明实施例示出的主、从设备的结构示意图;
[0039]图8是本发明实施例示出的一种通信装置的结构示意图;
[0040]图9是本发明实施例示出的另一种通信装置的结构示意图。
【具体实施方式】
[0041]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0042]在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0043]应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0044]本发明实施例提出一种通信方法,该方法通过广播方式在主、从设备之间进行双向通信,降低通信过程的复杂性,且耗电量低,通信距离增长。
[0045]参见图1,为本发明通信方法的一个实施例流程图,该实施例从从设备侧对通信过程进行描述。
[0046]步骤101,在发送第一通告后的最后一个第一时间窗接收主设备发送的数据请求报文。
[0047]本发明实施例中,从设备定期发送通告,并在通告后预留一定数量的时间窗,用于发送数据和接收主设备发送的数据请求。时间窗的大小可根据应用数据的特征(例如,数据包的大小)来设置。
[0048]本发明实施例中,从设备接收主设备发送的数据请求报文和根据数据请求报文回应响应数据的操作不在同一通告周期内完成。从设备首先通过一个通告周期接收主设备发送的数据请求报文,然后从下一个通告周期开始回应主设备的请求,也就是说,一次完整的数据请求过程至少要在两个通告周期内完成。本发明实施例,将接收数据请求报文的通告周期称为第一通告周期,该周期内的通告称为第一通告;回应请求的通告周期称为第二通告周期,该周期内的通告称为第二通告。
[0049]在从设备设置的时间窗中,会预留最后一个时间窗接收主设备发送的数据请求报文。从设备在最后一个时间窗(以下将第一通告后的时间窗称为第一时间窗),判断主设备是否有数据请求,并在这最后一个第一时间窗内接收主设备发送的数据请求报文。该数据请求报文中携带从设备的MAC地址和主设备的MAC地址,以使当前从设备确认是否由自己来处理主设备的数据请求,同时,可获知是由哪一个主设备发送的数据请求。
[0050]步骤102,当所述数据请求报文为读请求报文时,确定响应数据。
[0051]从设备根据主设备的请求来完成读写操作。当数据请求报文中携带的操作类型为读操作时,确定当前接收的数据请求报文为读请求报文,即主设备请求从从设备读取数据。从设备根据该读请求报文中携带的请求信息(例如,数据对象)确定需要向主设备提供的响应数据。
[0052]步骤103,确定发送所述响应数据所需第二时间窗的数量N,所述第二时间窗的数量N小于预设阈值,所述预设阈值为单次通告后可跟随的最大时间窗数量。
[0053]具体地,对步骤102确定的响应数据进行报文封装,封装成读响应报文,该读响应报文的源MAC地址为从设备的MAC地址、目的MAC地址为主设备的MAC地址,以使主设备根据目的MAC地址知道是发送给自己的响应数据,同时,知道是哪一个从设备发送的响应数据。在读响应报文的载荷中携带具体的响应数据。报文封装格式参见图2。
[0054]本发明实施例预设时间窗数量阈值(简称预设阈值),该预设阈值为单次通告后可跟随的最大时间窗数量,可根据实际应用的流量大小进行设置。流量大可设置较大的预设阈值,以使在单次通告后可尽量多地传输数据,提高数据传输效率。但是,该预设阈值不可能无限大,其设置要遵守BLE对信道时长的要求,使得单次通告及跟随该通告发送的数据不要长时间占用信道。
[0055]本发明实施例在封装读响应报文后,针对此次需要发送的数据量设置时间窗数量。读响应报文跟随在第二通告后发送,因此,将发送读响应报文所使用的时间窗称为第二时间窗。假设,统一设置单个时间窗大小为10ms,则根据此次需要发送的数据量(综合考虑发送速率等),计算读响应报文可在几个时间窗内完成发送。当计算出的第二时间窗的数量N达到或超过预设阈值时,确定单次通告后发送读响应报文的第二时间窗的数量N等于预设阈值减一,剩余数据量可在下一个通告周期再发送;当计算出的第二时间窗的数量N小于预设阈值时,以实际计算出的数量为准。
[0056]此外,主、从设备可预先协商单次可请求的数据对象的最大长度,使主设备单次请求的数据量(对应从设备的响应数据)可在一个通告周期内完成回应,即读响应报文在一个通告周期内完成发送,而不需要拆分到多个通告周期内发送,简化从设备的处理过程。
[0057]步骤104,根据第二时间窗内可传输数据量将所述响应数据划分成N个数据片。
[0058]本步骤中,根据第二时间窗内可传输的数据量,将读响应报文划分成N个数据片,参见图3,每一个数据片除包含具体的载荷(读响应报文的报文内容)之外,还包含时间窗头部,该时间窗头部可携带时间窗标识,用于表示哪一个时间窗。
[0059]步骤105,通过广播方式发送第二通告,并在所述第二通告后通过广播方式在N个第二时间窗内发送已划分的数据片。
[0060]从设备可在第一通告周期的下一个通告周期,即第二通告周期内发送已划分的数据片。具体为,通过广播方式发送第二通告,间隔一定的帧间隔(例如,蓝牙标准中规定BLE的帧间隔为150微秒)后,在N个第二时间窗内发送已划分数据片,且相邻第二时间窗之间也预留一定的帧间隔。需要补充说明的是,如果从设备的响应数据在一个通告周期内发送不完,则可在下一个通告周期内继续发送,在此不再赘述。
[0061]从设备在完成响应数据发送后,会预留一个第二时间窗用于接收主设备发送的新的数据请求报文,即返回步骤101继续执行。
[0062]参见图4,为本发明实施例示出的一种主、从设备的交互示意图。假设,从设备发送第一通告时,本地没有要发送的数据,则在第一通告后仅跟随一个第一时间窗I,从设备在第一时间窗I内,接收主设备发送的读请求报文I。确定需要发送的响应数据,封装读响应报文1(携带响应数据),确定用于发送响应数据的第二时间窗数量为I,即读响应报文在一个第二时间窗内即可完成发送。发送第二通告,在第二通告后的第二时间窗I发送读响应报文I;预留第二时间窗2,接收主设备发送的读请求报文2,以此类推。
[0063]为了避免报文失序,本发明实施例在主、从设备交互的报文中增加序列号,即主设备在发送的数据请求报文中携带序列号,从设备在回应的数据响应报文(例如,读响应报文)中携带相同的序列号。因此,当从设备接收到主设备发送的数据请求报文时,可首先获取数据请求报文中携带的序列号,判断当前接收的数据请求报文是否合法。
[0064]具体为,获取数据请求报文中携带的序列号(简称第一序列号),判断该第一序列号是否小于上一次正确接收的数据请求报文(序列号正确的数据请求报文)携带的序列号(简称第二序列号)。
[0065]根据判断结果可分以下几种情况处理:当第一序列号等于第二序列号时,重新发送上一次的数据响应报文(例如,上一次发送的读响应报文);当第一序列号大于第二序列号时,说明报文序列号正确,处理当前的数据请求报文,即执行步骤102?步骤105;当第一序列号小于第二序列号时,说明报文失序,通知主设备重新发送正确的数据请求报文。
[0066]具体为,在一种实施方式中,通过广播方式发送第三通告,在第三通告中携带上一次正确的第二序列号以及发送数据请求报文的主设备的MAC地址,以使主设备根据MAC地址确认自身需要重发数据请求报文时,根据第三通告中携带的第二序列号重新确定序列号(例如,第二序列号为5,则此次序列号为5+1=6),重新发送数据请求报文。
[0067]在另一种实施方式中,从设备通过广播方式发送第三通告,在该第三通告后的时间窗(简称第三时间窗)内,通过广播方式发送数据重发命令,该数据重发命令中携带第二序列号以及发送数据请求报文的主设备的MAC地址,以使主设备根据MAC地址确认自身需要重发数据请求报文时,根据第二序列号重新发送数据请求报文。
[0068]为了避免通过广播方式发送的报文的易失性,尤其是读响应报文(携带响应数据),主设备在发送的读请求报文中携带响应次数M,从设备在完成第一次响应数据发送后,获取读请求报文中携带的响应次数M,再向主设备发送M-1次响应数据,并在不同的第二通告周期内完成M-1次发送,参见图5。
[0069]主设备除了可以向从设备发送读请求报文外,还可以向从设备发送写请求报文(数据请求报文中携带的操作类型为写操作)。从设备无需针对写请求报文发送专门的写响应报文,可在后续通告中携带此次写请求报文的序列号,以使主设备根据通告中携带的序列号判断是否与发送的写请求报文的序列号一致,若一致,说明从设备已接收到写入的数据;若不一致,说明此次写入失败,例如,可能报文失序,要求主设备重新发送写请求报文。
[0070]当然,在前述对读请求报文的回应中,也可以在第二通告中直接携带读请求报文的序列号,以使主设备根据第二通告中的序列号即可确定读取数据是否成功,而不需要再分析读响应报文中携带的序列号。
[0071]参见图6,为本发明通信方法的一个实施例流程图,该实施例从主设备侧对通信过程进行描述。
[0072]步骤601,接收从设备发送的第一通告,所述第一通告后跟随至少一个第一时间窗。
[0073]步骤602,判断在所述第一时间窗的起始时间段内是否接收到数据。
[0074]步骤603,当在所述第一时间窗的起始时间段内未接收到数据时,在当前第一时间窗的后续时间内向所述从设备发送数据请求报文。
[0075]参见前述从设备侧的描述,从设备发送的第一通告后会跟随至少一个第一时间窗。主设备在接收第一通告后,判断在第一时间窗的起始时间段(通常为第一时间窗的头几个时隙)内是否接收到数据。当在第一时间窗的起始时间段内没有接收到从设备发送的数据时,确定当前第一时间窗为从设备预留的最后一个第一时间窗,主设备可在该第一时间窗的剩余时间内向从设备发送数据请求报文。数据请求报文的封装格式参见图2,其中,目的MAC地址为从设备的MAC地址,源MAC地址为主设备的MAC地址,载荷中携带需要向从设备传达的信息。
[0076]步骤604,当所述数据请求报文为读请求报文时,接收所述从设备发送的第二通告,所述第二通告后跟随至少一个第二时间窗。
[0077]主设备可在发送的数据请求报文中携带操作类型(读操作/写操作)。当数据请求报文中携带的操作类型为读操作时,当前数据请求报文为读请求报文。主设备接收从设备根据该读请求报文回应的读响应报文。如前所述,从设备在第二通告后发送读响应报文,该读响应报文分布在第二通告后的多个第二时间窗内。
[0078]步骤605,判断在所述第二时间窗的起始时间段内是否接收到数据。
[0079]步骤606,在完成所有第二时间窗内的数据接收后,根据所有接收到的数据还原所述从设备发送的响应数据。
[0080]主设备接收所有数据后还原从设备发送的读响应报文,主设备可获取该读响应报文中的序列号,如果该序列号与自己发送的读请求报文中的序列号一致,则获取读响应报文中携带的响应数据;否则,丢弃读响应报文,等待从设备根据响应次数M重新发送的读响应报文,如果M次响应后仍然不正确,则可以重新发送读请求报文。
[0081]如前所述,为了避免报文失序,从设备在检测到数据请求报文的序列号不正确时, 会通知主设备重新发送数据请求报文。主设备接收从设备发送的重发数据请求报文的通知,具体可通过以下两种方式接收:[〇〇82]在一种实施方式中,主设备接收从设备发送的第三通告,该第三通告中携带从设备最近一次正确接收的数据请求报文的第二序列号以及向从设备发送数据请求报文的主设备的MAC地址。[〇〇83]在另一种实施方式中,主设备接收从设备发送的第三通告,并在该第三通告后的第三时间窗接收从设备发送的数据重发命令,该数据重发命令中携带从设备最近一次正确接收的数据请求报文的第二序列号以及向从设备发送数据请求报文的主设备的MAC地址。
[0084]当通过上述方式接收到重发数据请求报文的通知后,判断当前向从设备发送数据请求报文的主设备的MAC地址是否与本主设备的MAC地址相同,如果相同,说明需要本主设备进行处理。获取通知中携带的第二序列号,判断该第二序列号是否与最近一次发送给从设备的数据请求报文中的第一序列号相同,如果不同,说明报文失序,主设备需要重新确定序列号,例如,在第二序列号的基础上加一得到新的序列号,根据该重新确定的序列号重新发送数据请求报文。
[0085]如前所述,主设备除了可以向从设备发送读请求报文外,还可以向从设备发送写请求报文,同样是在从设备发送通告后的最后一个时间窗内发送给从设备。该写请求报文中携带要写入从设备的数据,封装格式如图2所示,其中,目的MAC地址为要写入的从设备的 MAC地址,源MAC地址为主设备的MAC地址,载荷中携带要写入的数据。本发明实施例通过设置数据对象的最大长度,使主设备的写请求报文的数据量控制在一个时间窗内,当需要写入的数据较多时,可通过多次发送写请求报文来实现。[〇〇86]为了保证广播报文交互的安全性,主设备可按照现有蓝牙标准定义的连接过程建立与从设备(该从设备的类型为可连接设备)的连接,根据实际的加密/验证需求在连接过程中获取双方一致的密钥,例如,LTK(Long-Term Key,长期密钥)、CSRK(Connect1n Signature Resolving Key,连接签名验证密钥),然后,断开与从设备的连接。在后续主、从设备的双向广播交互中,可通过上述密钥加密/验证。可见,为了提高安全性,本发明实施例最少可通过一次连接完成密钥协商,即解决了安全性问题,同时,对正常信息交互不会产生额外的负担。
[0087]此外,需要特别强调的是,本发明实施例中的所有交互过程都是在同一信道完成, 因此,节约了信道资源。
[0088]由上述描述可以看出,本发明实施例的主、从设备之间采用广播方式进行信息交互,无需建立连接、维持连接,因此,降低了电量消耗,延长了通信距离。
[0089]与前述通信方法的实施例相对应,本发明还提供了通信装置的实施例。
[0090]本发明通信装置的实施例可以应用在主设备或从设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器运行存储器中对应的计算机程序指令形成的。从硬件层面而言,如图7所示,为本发明通信装置所在设备的一种硬件结构图,除了图7所示的处理器以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0091]请参考图8,为本发明一个实施例中的通信装置的结构示意图。该通信装置包括报文接收单元801、数据确定单元802、数量确定单元803、数据片划分单元804以及数据片发送单元805,其中:[〇〇92]报文接收单元801,用于在发送第一通告后的最后一个第一时间窗接收主设备发送的数据请求报文;[〇〇93]数据确定单元802,用于当所述数据请求报文为读请求报文时,确定响应数据;
[0094]数量确定单元803,用于确定发送所述响应数据所需第二时间窗的数量N,所述第二时间窗的数量N小于预设阈值,所述预设阈值为单次通告后可跟随的最大时间窗数量;
[0095]数据片划分单元804,用于根据第二时间窗内可传输数据量将所述响应数据划分成N个数据片;[〇〇96]数据片发送单元805,用于通过广播方式发送第二通告,并在所述第二通告后通过广播方式在N个第二时间窗内发送已划分的数据片。[〇〇97] 进一步地,所述装置还包括:
[0098]序列号获取单元,用于在所述数据确定单元802确定响应数据之前,获取所述数据请求报文中携带的第一序列号;[〇〇99]序列号判断单元,用于判断所述第一序列号是否小于上一次正确接收的数据请求报文中携带的第二序列号;
[0100]重发通知单元,用于当所述第一序列号小于所述第二序列号时,通知所述主设备重新发送数据请求报文。
[0101]进一步地,
[0102]所述重发通知单元,具体用于通过广播方式发送第三通告,所述第三通告中携带所述第二序列号以及发送所述数据请求报文的主设备的MAC地址,以使所述主设备根据所述MAC地址确认自身需要重发数据请求报文时,根据所述第二序列号重新发送数据请求报文;或者,通过广播方式发送第三通告;在所述第三通告后的第三时间窗内,通过广播方式发送数据重发命令,所述数据重发命令中携带所述第二序列号以及发送所述数据请求报文的主设备的MAC地址,以使所述主设备根据所述MAC地址确认自身需要重发数据请求报文时,根据所述第二序列号重新发送数据请求报文。
[0103]进一步地,所述装置还包括:
[0104]重复响应单元,用于在所述数据片发送单元805在所述第二通告后通过广播方式在N个第二时间窗内发送已划分的数据片之后,获取所述读请求报文中携带的响应次数M; 针对所述读请求报文再向所述主设备发送M-1次响应数据。
[0105]请参考图9,为本发明另一个实施例中的通信装置的结构示意图。该通信装置包括第一接收单元901、第一判断单元902、请求发送单元903、第二接收单元904、第二判断单元 905以及数据还原单元906,其中:
[0106]第一接收单元901,用于接收从设备发送的第一通告,所述第一通告后跟随至少一个第一时间窗;
[0107]第一判断单元902,用于判断在所述第一时间窗的起始时间段内是否接收到数据;
[0108]请求发送单元903,用于当在所述第一时间窗的起始时间段内未接收到数据时,在当前第一时间窗的后续时间内向所述从设备发送数据请求报文;
[0109]第二接收单元904,用于当所述数据请求报文为读请求报文时,接收所述从设备发送的第二通告,所述第二通告后跟随至少一个第二时间窗;
[0110]第二判断单元905,用于判断在所述第二时间窗的起始时间段内是否接收到数据;
[0111]数据还原单元906,用于在完成所有第二时间窗内的数据接收后,根据所有接收到的数据还原所述从设备发送的响应数据。
[0112]进一步地,所述装置还包括:
[0113]通知接收单元,用于接收所述从设备发送的重发数据请求报文的通知,所述通知中携带所述从设备最近一次正确接收的数据请求报文的第二序列号以及向所述从设备发送数据请求报文的主设备的MAC地址;
[0114]序列号获取单元,用于当所述当前向所述从设备发送数据请求报文的主设备的 MAC地址与本主设备的MAC地址相同时,获取所述第二序列号;
[0115]序列号判断单元,用于判断所述第二序列号是否与最近一次发送给所述从设备的数据请求报文中的第一序列号相同;
[0116]序列号确定单元,用于当所述第二序列号与所述第一序列号不同时,重新确定序列号,并根据重新确定的序列号重新发送数据请求报文。
[0117]进一步地,[〇118]所述通知接收单元,具体用于接收所述从设备发送的第三通告,所述第三通告中携带所述从设备最近一次正确接收的数据请求报文的第二序列号以及向所述从设备发送数据请求报文的主设备的MAC地址;或者,接收所述从设备发送的第三通告;在所述第三通告后的第三时间窗接收所述从设备发送的数据重发命令,所述数据重发命令中携带所述从设备最近一次正确接收的数据请求报文的第二序列号以及向所述从设备发送数据请求报文的主设备的MAC地址。
[0119]上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0120]对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0121]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1.一种通信方法,应用于蓝牙系统中的从设备,其特征在于,所述方法包括: 在发送第一通告后的最后一个第一时间窗接收主设备发送的数据请求报文; 当所述数据请求报文为读请求报文时,确定响应数据; 确定发送所述响应数据所需第二时间窗的数量N,所述第二时间窗的数量N小于预设阈值,所述预设阈值为单次通告后可跟随的最大时间窗数量; 根据第二时间窗内可传输数据量将所述响应数据划分成N个数据片; 通过广播方式发送第二通告,并在所述第二通告后通过广播方式在N个第二时间窗内发送已划分的数据片。2.如权利要求1所述的方法,其特征在于,所述确定响应数据之前,还包括: 获取所述数据请求报文中携带的第一序列号; 判断所述第一序列号是否小于上一次正确接收的数据请求报文中携带的第二序列号; 当所述第一序列号小于所述第二序列号时,通知所述主设备重新发送数据请求报文。3.如权利要求2所述的方法,其特征在于,所述通知所述主设备重新发送数据请求报文,包括: 通过广播方式发送第三通告,所述第三通告中携带所述第二序列号以及发送所述数据请求报文的主设备的MAC地址,以使所述主设备根据所述MAC地址确认自身需要重发数据请求报文时,根据所述第二序列号重新发送数据请求报文; 或者, 通过广播方式发送第三通告;在所述第三通告后的第三时间窗内,通过广播方式发送数据重发命令,所述数据重发命令中携带所述第二序列号以及发送所述数据请求报文的主设备的MAC地址,以使所述主设备根据所述MAC地址确认自身需要重发数据请求报文时,根据所述第二序列号重新发送数据请求报文。4.如权利要求1所述的方法,其特征在于,所述在所述第二通告后通过广播方式在N个第二时间窗内发送已划分的数据片之后,还包括: 获取所述读请求报文中携带的响应次数M; 针对所述读请求报文再向所述主设备发送M-1次响应数据。5.一种通信方法,应用于蓝牙系统中的主设备,其特征在于,所述方法包括: 接收从设备发送的第一通告,所述第一通告后跟随至少一个第一时间窗; 判断在所述第一时间窗的起始时间段内是否接收到数据; 当在所述第一时间窗的起始时间段内未接收到数据时,在当前第一时间窗的后续时间内向所述从设备发送数据请求报文; 当所述数据请求报文为读请求报文时,接收所述从设备发送的第二通告,所述第二通告后跟随至少一个第二时间窗; 判断在所述第二时间窗的起始时间段内是否接收到数据; 在完成所有第二时间窗内的数据接收后,根据所有接收到的数据还原所述从设备发送的响应数据。6.如权利要求5所述的方法,其特征在于,所述方法还包括: 接收所述从设备发送的重发数据请求报文的通知,所述通知中携带所述从设备最近一次正确接收的数据请求报文的第二序列号以及向所述从设备发送数据请求报文的主设备的MAC地址; 当所述当前向所述从设备发送数据请求报文的主设备的MAC地址与本主设备的MAC地址相同时,获取所述第二序列号; 判断所述第二序列号是否与最近一次发送给所述从设备的数据请求报文中的第一序列号相同; 当所述第二序列号与所述第一序列号不同时,重新确定序列号,并根据重新确定的序列号重新发送数据请求报文。7.如权利要求6所述的方法,其特征在于,所述接收所述从设备发送的重发数据请求报文的通知,包括: 接收所述从设备发送的第三通告,所述第三通告中携带所述从设备最近一次正确接收的数据请求报文的第二序列号以及向所述从设备发送数据请求报文的主设备的MAC地址; 或者, 接收所述从设备发送的第三通告;在所述第三通告后的第三时间窗接收所述从设备发送的数据重发命令,所述数据重发命令中携带所述从设备最近一次正确接收的数据请求报文的第二序列号以及向所述从设备发送数据请求报文的主设备的MAC地址。8.—种通信装置,应用于蓝牙系统中的从设备,其特征在于,所述装置包括: 报文接收单元,用于在发送第一通告后的最后一个第一时间窗接收主设备发送的数据请求报文; 数据确定单元,用于当所述数据请求报文为读请求报文时,确定响应数据; 数量确定单元,用于确定发送所述响应数据所需第二时间窗的数量N,所述第二时间窗的数量N小于预设阈值,所述预设阈值为单次通告后可跟随的最大时间窗数量; 数据片划分单元,用于根据第二时间窗内可传输数据量将所述响应数据划分成N个数据片; 数据片发送单元,用于通过广播方式发送第二通告,并在所述第二通告后通过广播方式在N个第二时间窗内发送已划分的数据片。9.如权利要求8所述的装置,其特征在于,所述装置还包括: 序列号获取单元,用于在所述数据确定单元确定响应数据之前,获取所述数据请求报文中携带的第一序列号; 序列号判断单元,用于判断所述第一序列号是否小于上一次正确接收的数据请求报文中携带的第二序列号; 重发通知单元,用于当所述第一序列号小于所述第二序列号时,通知所述主设备重新发送数据请求报文。10.如权利要求9所述的装置,其特征在于: 所述重发通知单元,具体用于通过广播方式发送第三通告,所述第三通告中携带所述第二序列号以及发送所述数据请求报文的主设备的MAC地址,以使所述主设备根据所述MAC地址确认自身需要重发数据请求报文时,根据所述第二序列号重新发送数据请求报文;或者,通过广播方式发送第三通告;在所述第三通告后的第三时间窗内,通过广播方式发送数据重发命令,所述数据重发命令中携带所述第二序列号以及发送所述数据请求报文的主设备的MAC地址,以使所述主设备根据所述MAC地址确认自身需要重发数据请求报文时,根据所述第二序列号重新发送数据请求报文。11.如权利要求8所述的装置,其特征在于,所述装置还包括: 重复响应单元,用于在所述数据片发送单元在所述第二通告后通过广播方式在N个第二时间窗内发送已划分的数据片之后,获取所述读请求报文中携带的响应次数M;针对所述读请求报文再向所述主设备发送M-1次响应数据。12.—种通信装置,应用于蓝牙系统中的主设备,其特征在于,所述装置包括: 第一接收单元,用于接收从设备发送的第一通告,所述第一通告后跟随至少一个第一时间窗; 第一判断单元,用于判断在所述第一时间窗的起始时间段内是否接收到数据; 请求发送单元,用于当在所述第一时间窗的起始时间段内未接收到数据时,在当前第一时间窗的后续时间内向所述从设备发送数据请求报文; 第二接收单元,用于当所述数据请求报文为读请求报文时,接收所述从设备发送的第二通告,所述第二通告后跟随至少一个第二时间窗; 第二判断单元,用于判断在所述第二时间窗的起始时间段内是否接收到数据; 数据还原单元,用于在完成所有第二时间窗内的数据接收后,根据所有接收到的数据还原所述从设备发送的响应数据。13.如权利要求12所述的装置,其特征在于,所述装置还包括: 通知接收单元,用于接收所述从设备发送的重发数据请求报文的通知,所述通知中携带所述从设备最近一次正确接收的数据请求报文的第二序列号以及向所述从设备发送数据请求报文的主设备的MAC地址; 序列号获取单元,用于当所述当前向所述从设备发送数据请求报文的主设备的MAC地址与本主设备的MAC地址相同时,获取所述第二序列号; 序列号判断单元,用于判断所述第二序列号是否与最近一次发送给所述从设备的数据请求报文中的第一序列号相同; 序列号确定单元,用于当所述第二序列号与所述第一序列号不同时,重新确定序列号,并根据重新确定的序列号重新发送数据请求报文。14.如权利要求13所述的装置,其特征在于: 所述通知接收单元,具体用于接收所述从设备发送的第三通告,所述第三通告中携带所述从设备最近一次正确接收的数据请求报文的第二序列号以及向所述从设备发送数据请求报文的主设备的MAC地址;或者,接收所述从设备发送的第三通告;在所述第三通告后的第三时间窗接收所述从设备发送的数据重发命令,所述数据重发命令中携带所述从设备最近一次正确接收的数据请求报文的第二序列号以及向所述从设备发送数据请求报文的主设备的MAC地址。
【文档编号】H04W76/02GK106060962SQ201610477845
【公开日】2016年10月26日
【申请日】2016年6月22日
【发明人】徐国祥, 张海涛
【申请人】杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1