广播数据包过滤方法和无线通信系统与流程

文档序号:25993214发布日期:2021-07-23 21:06阅读:167来源:国知局
广播数据包过滤方法和无线通信系统与流程

本发明涉及无线通信技术领域,特别是涉及一种广播数据包过滤方法和无线通信系统。



背景技术:

在无线通信系统中,蓝牙作为一种近距离通信技术,目前已大量应用于各种移动终端、物联网、健康医疗、智能家居等行业,而蓝牙模块由于集成了蓝牙协议栈,射频部分和天线,因此也受到广大设备厂家青睐,不但可以大大简化厂家产品设计,节省研发成本,而且加快新品上市时间,提高厂家市场占有率。

而低功耗蓝牙系统最重要的特性是支持低能耗,以不需占用太多带宽的设备连接为主,比如:智能家居类(蓝牙锁、蓝牙灯)、传感设备的数据发送(血压计、温度传感器)、消费类电子(电子烟、遥控玩具)等。

在蓝牙系统中,主机发送下行命令给蓝牙控制器进行扫描广播,蓝牙控制器开始扫描收到广播数据包后上报给主机设备。广播数据包中包含有mac地址,也称bd_addr。有些场景下,要求蓝牙控制器不发送重复的广播包,以减少主机处理广播数据包的负担。为了判断是否为重复广播包,蓝牙控制器需要将以往接收到的广播地址等信息保存在本地,如果周围设备比较多,又需要很好的过滤效果,则需要较大的缓存。而为了满足低成本、低功耗的要求,采用大缓存非常不现实,所以在设计中需要针对过滤效果和缓存大小进行折中设计。



技术实现要素:

本发明的主要目的在于提供一种广播数据包过滤方法和无线通信系统,旨在实现不需要较大的缓存条件下,良好的重复mac地址过滤效果。

为实现上述目的,本发明提供一种广播数据包过滤方法,包括以下步骤:

初始化地址缓存队列,开始扫描;

将扫描到的广播数据包依次进行mac地址处理,以判断该广播数据包内的地址信息在所述地址缓存队列中是否重复;

当广播数据包内的地址信息在地址缓存队列中为重复时,根据该广播数据包内的附加信息进行判别该广播数据包是否为新的数据包;若该广播数据包为新的数据包,则将该广播数据包进行上报,若该广播数据包不是新的数据包,则继续进行扫描;

当广播数据包内的地址信息在地址缓存队列不是重复时,则将当前地址信息加入所述地址缓存队列末尾,同时将该广播数据包进行上报,并继续扫描;

当接收到扫描结束命令时,结束扫描。

优选地,将扫描到的广播数据包进行mac地址处理包括以下步骤:

判断当前广播数据包内的地址信息是否在所述地址缓存队列中;

当所述地址缓存队列中包括与当前地址信息相同的地址信息时,则将该地址信息从当前地址缓存队列中删除,再将该地址信息加入至地址缓存队列的末尾;结束mac地址处理,并返回地址信息为重复标志;

当所述地址缓存队列中的地址信息均与当前地址信息不同时,则将当前地址信息加入至所述地址缓存队列的末尾;结束mac地址处理,并返回地址信息为不重复标志。

优选地,在将广播数据包进行mac地址处理前,将地址重复标志设为不重复标志。

优选地,当所述地址缓存队列中的地址信息均与当前地址信息不同时,判断所述地址缓存队列中缓存的地址信息数量是否为预设的队列最大深度:

若当前地址缓存队列中的地址信息数量小于队列最大深度,则将当前地址信息加入至所述地址缓存队列的末尾;

若当前地址缓存队列中的地址信息数量等于队列最大深度,则删除地址缓存队列中的首个地址信息,再将当前地址信息加入至地址缓存队列的末尾。

优选地,所述初始化地址缓存队列包括:清空所述地址缓存队列中的地址信息。

优选地,所述广播数据包内的附加信息包括数据信息。

本发明还提供一种无线通信系统,包括接收主机发送的命令并进行扫描广播数据包的终端,所述终端包括:

用于接收扫描广播数据包的设备;

用于缓存所述广播数据包中的地址信息,以形成地址缓存队列的设备;

用于对所述地址信息进行mac地址处理,判断该地址信息是否重复,并返回地址重复标志的设备;

用于当广播数据包内的地址信息在地址缓存队列中为重复时,根据该广播数据包内的附加信息进行判别该广播数据包是否为新的数据包的设备;

用于将广播数据包上报的设备。

优选地,用于对所述地址信息进行mac地址处理,判断该地址信息是否重复,将所述地址信息加入至所述地址缓存队列末尾,并返回地址重复标志的设备还包括:

用于判断当前广播数据包内的地址信息是否在所述地址缓存队列中的子模块;

用于当所述地址缓存队列中包括与当前地址信息相同的地址信息时,则将该地址信息从当前地址缓存队列中删除,再将该地址信息加入至地址缓存队列的末尾的子模块;

用于当所述地址缓存队列中的地址信息均与当前地址信息不同时,则将当前地址信息加入至所述地址缓存队列的末尾的子模块;

结束mac地址处理,返回地址重复标志的子模块。

优选地,所述地址重复标志包括重复标志和不重复标志:

当所述地址缓存队列中包括与当前地址信息相同的地址信息时,返回重复标志;

当所述地址缓存队列中的地址信息均与当前地址信息不同时,返回不重复标志。

优选地,用于对所述地址信息进行mac地址处理,判断该地址信息是否重复,并返回地址重复标志的设备还包括:

用于当所述地址缓存队列中的地址信息均与当前地址信息不同时,判断所述地址缓存队列中缓存的地址信息数量是否为预设的队列最大深度的子模块。

本发明技术方案通过对广播数据包内的地址信息进行mac地址处理,将地址信息加入至地址缓存队列末尾,使得重复的广播数据包在概率上更容易被匹配上,从而由算法过滤掉,在不需要较大的缓存条件下,可以实现良好的重复mac地址过滤效果。

附图说明

图1为本发明实施例广播数据包过滤方法的流程示意图;

图2为本发明实施例广播数据包过滤方法中mac地址处理方法的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

下面结合附图对本发明进一步说明。

本发明实施例广播数据包过滤方法主要用于通信系统尤其是无线通信系统中,如常见的蓝牙无线通信系统。该系统主要工作过程为:主机发送下行命令给终端控制器进行扫描广播,终端控制器开始扫描收到广播数据包后上报给主机。

如图1所示,本发明实施例广播数据包过滤方法包括以下步骤:

s1、初始化地址缓存队列,开始扫描。

具体地,在终端控制器开始工作时,清空所述地址缓存队列中的地址信息,即初始化地址缓存队列。在终端控制器开始工作后,可以不用再次清空地址缓存队列,以保证地址缓存队列中的地址信息更容易与重复广播数据包匹配上,增加过滤效果。终端控制器开始工作时,接收主机发送的控制命令并开始扫描广播包。

s2、将扫描到的广播数据包依次进行mac地址处理,以判断该广播数据包内的地址信息在所述地址缓存队列中是否重复。

具体地,将扫描到的广播数据包依次进行mac地址处理,返回地址重复标志。地址重复标志包括地址重复和地址不重复。当广播数据包内的地址信息与地址缓存队列中的地址信息有相同时,返回地址重复;当广播数据包内的地址信息与地址缓存队列中的地址信息不同时,返回地址不重复。

s3、当广播数据包内的地址信息在地址缓存队列中为重复时,根据该广播数据包内的附加信息进行判别该广播数据包是否为新的数据包;若该广播数据包为新的数据包,则将该广播数据包进行上报,若该广播数据包不是新的数据包,则继续进行扫描;

具体地,广播数据包内的信息包括地址信息和数据信息。当地址信息相同时,通过判断附加信息是否相同以判断当前广播数据包是否为重复的广播数据包,附加信息即包括数据信息。

s4、当接收到扫描结束命令时,结束扫描。

具体地,当需要结束扫描时,主机发送扫描结束命令至终端控制器,以结束扫描过程。

在优选实施例中,如图2所示,将扫描到的广播数据包进行mac地址处理包括以下步骤:

s21、判断当前广播数据包内的地址信息是否在所述地址缓存队列中。

具体地,将当前地址信息与地址缓存队列中的所有地址信息进行对比,以判断当前地址信息在地址缓存队列中是否有重复的地址信息。

s22、当所述地址缓存队列中包括与当前地址信息相同的地址信息时,则将该地址信息从当前地址缓存队列中删除,再将该地址信息加入至地址缓存队列的末尾;结束mac地址处理,并返回地址信息为重复标志。

具体地,当地址信息在地址缓存队列中有重复时,删除原地址缓存队列中相同的地址信息,再将当前地址信息加入至地址缓存队列的末尾,以形成新的地址缓存队列,即将该地址信息在原地址缓存队列中的位置移动至地址缓存队列的末尾以形成新的地址缓存队列。这样可尽量的保留重复收到的广播数据包(活跃元素),保证了比较容易被扫描到的活跃元素在概率上更容易被匹配上,可以达到更好的过滤效果。

s23、当所述地址缓存队列中的地址信息均与当前地址信息不同时,则将当前地址信息加入至所述地址缓存队列的末尾;结束mac地址处理,并返回地址信息为不重复标志。

优选地,在将广播数据包进行mac地址处理前,将地址重复标志预设为不重复标志。

在优选实施例中,如图2所示,步骤s23还包括:

当所述地址缓存队列中的地址信息均与当前地址信息不同时,判断所述地址缓存队列中缓存的地址信息数量是否为预设的队列最大深度:

若当前地址缓存队列中的地址信息数量小于队列最大深度,则将当前地址信息加入至所述地址缓存队列的末尾;若当前地址缓存队列中的地址信息数量等于队列最大深度,则删除地址缓存队列中的首个地址信息,再将当前地址信息加入至地址缓存队列的末尾。

具体地,队列最大深度为地址缓存队列中能保存的地址信息的最大数量。在具体实施例中,队列最大深度可以由系统的缓存大小、资源分配等来确定。在地址缓存队列已满的情况下,将不活跃的元素(很久未收到的广播数据包)移除,保留活跃元素,使得活跃元素更容易被匹配上,从而由算法过滤掉,效果上更优于传统方法,在较小的缓存下,得到更好的过滤效果。

优选地,所述初始化地址缓存队列包括:清空所述地址缓存队列中的地址信息。

优选地,所述广播数据包内的附加信息包括数据信息。

在本发明的具体实施例中,预设队列最大深度为4,在实际工作过程中,队列最大深度与系统的缓存和资源分配有关。在mac地址处理过程中,接收到的广播数据包中的地址信息依次为:

7f:5b:e9:ec:bb:1c

08:ba:6d:a2:9a:1b

52:d2:f2:c2:a5:8a

67:9f:67:a6:10:73

08:ba:6d:a2:9a:1b

c9:54:66:59:19:24

08:ba:6d:a2:9a:1b

6e:88:55:b9:03:a3

67:9f:67:a6:10:73

……

如地址缓存队列处理表1-4所示,广播数据包1至4,由于队列元素小于4,将址信息依次插入地址缓存队列中,并返回地址信息为不重复标志;

第5个广播数据包时,如表5所示,其地址信息08:ba:6d:a2:9a:1b,在地址缓存队列中的第二元素位置有相同的地址信息,则将地址缓存队列中的该地址信息删除后,再将08:ba:6d:a2:9a:1b插入到地址缓存队列的末尾;返回地址信息为重复标志;

第6个广播数据包时,如表6所示,其地址信息为c9:54:66:59:19:24,在地址缓存队列内没有相同的地址信息,则删除当前地址缓存队列中第一元素位置的地址信息,将c9:54:66:59:19:24插入地址缓存队列的末尾,以形成新的地址缓存队列;并返回地址信息为不重复标志;

按照上述步骤依次处理后续广播数据包,如表7至表9所示,直至接收到扫描结束命令。

另一些实施例还提供一种无线通信系统,包括接收主机发送的命令并进行扫描广播数据包的终端,所述终端包括:

用于接收扫描广播数据包的设备;用于缓存所述广播数据包中的地址信息,以形成地址缓存队列的设备;用于对所述地址信息进行mac地址处理,判断该地址信息是否重复,并返回地址重复标志的设备;用于当广播数据包内的地址信息在地址缓存队列中为重复时,根据该广播数据包内的附加信息进行判别该广播数据包是否为新的数据包的设备;用于将广播数据包上报的设备。

优选地,用于对所述地址信息进行mac地址处理,判断该地址信息是否重复,将所述地址信息加入至所述地址缓存队列末尾,并返回地址重复标志的设备还包括:

用于判断当前广播数据包内的地址信息是否在所述地址缓存队列中的子模块;

用于当所述地址缓存队列中包括与当前地址信息相同的地址信息时,则将该地址信息从当前地址缓存队列中删除,再将该地址信息加入至地址缓存队列的末尾的子模块;

用于当所述地址缓存队列中的地址信息均与当前地址信息不同时,则将当前地址信息加入至所述地址缓存队列的末尾的子模块;

结束mac地址处理,返回地址重复标志的子模块。

优选地,所述地址重复标志包括重复标志和不重复标志:

当所述地址缓存队列中包括与当前地址信息相同的地址信息时,返回重复标志;

当所述地址缓存队列中的地址信息均与当前地址信息不同时,返回不重复标志。

优选地,用于对所述地址信息进行mac地址处理,判断该地址信息是否重复,并返回地址重复标志的设备还包括:

用于当所述地址缓存队列中的地址信息均与当前地址信息不同时,判断所述地址缓存队列中缓存的地址信息数量是否为预设的队列最大深度的子模块。

本发明实施例无线通信系统的工作原理为:主机发送命令给终端,终端扫描收到广播数据包后上报给主机。终端初始化地址缓存队列,开始扫描。将扫描到的广播数据包依次进行mac地址处理,以判断该广播数据包内的地址信息在所述地址缓存队列中是否重复:判断当前广播数据包内的地址信息是否在所述地址缓存队列中;当所述地址缓存队列中包括与当前地址信息相同的地址信息时,则将该地址信息从当前地址缓存队列中删除,再将该地址信息加入至地址缓存队列的末尾;结束mac地址处理,并返回地址信息为重复标志;当所述地址缓存队列中的地址信息均与当前地址信息不同时,判断所述地址缓存队列中缓存的地址信息数量是否为预设的队列最大深度,若当前地址缓存队列中的地址信息数量小于队列最大深度,则将当前地址信息加入至所述地址缓存队列的末尾;若当前地址缓存队列中的地址信息数量等于队列最大深度,则删除地址缓存队列中的首个地址信息,再将当前地址信息加入至地址缓存队列的末尾;结束mac地址处理,并返回地址信息为不重复标志。

当广播数据包内的地址信息在地址缓存队列中为重复时,根据该广播数据包内的附加信息进行判别该广播数据包是否为新的数据包;若该广播数据包为新的数据包,则将该广播数据包进行上报,若该广播数据包不是新的数据包,则继续进行扫描;当广播数据包内的地址信息在地址缓存队列不是重复时,则将当前地址信息加入所述地址缓存队列末尾,同时将该广播数据包进行上报,并继续扫描。当接收到结束扫描命令时,结束扫描。

应当理解的是,以上仅为本发明的优选实施例,不能因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1