WIFI环境中的Zigbee、Thread和BLE信号检测的制作方法

文档序号:21202899发布日期:2020-06-23 19:31阅读:532来源:国知局
WIFI环境中的Zigbee、Thread和BLE信号检测的制作方法

本公开描述了允许彼此非常相近的多个网络协议的检测和共存,并且更具体地,允许对wifi环境中的zigbee、thread或者蓝牙进行检测的系统和方法。



背景技术:

网络的激增,特别是在2.4ghz频带中的网络的激增,已经为那些试图利用多个网络协议的人带来了挑战。例如,zigbee、thread和蓝牙低能耗(ble)都在2.4ghz频谱中操作,并且被认为是低功率协议。然而,具有更高得多的发射功率水平的wifi也在该频谱中操作。因此,这些各种协议可能彼此干扰,造成吞吐量的下降或者数据损失。

然而,当前,针对该问题的大多数解决方案是不受管理的,这意味着要求客户使rf隔离最大化。这可以通过尝试将与每个网络协议相关联的天线物理地分离来完成。可替代地或者附加地,可以将网络建立在2.4ghz频谱内的分离的信道上,以试图降低隔离要求。最后,可以使每个网络协议允许的重试次数最大化,从而在其他技术不产生所要求的rf隔离的情况下,使用重传充当安全网。

附加地,最近的市场趋势是减少实现这些各种协议所要求的空间。这样做的一种方式是使多个天线共同定位于单个设备内。例如,包括wifi和一个或多个其他网络协议的网关和其他设备正变得越来越流行。

当前使用的不受管理的方法不足以解决与多个网络协议的共存相关联的这些问题。因此,需要一种针对在相同频谱中操作的共同定位的网络的更受管理并且更有计划性的方法。具体而言,这需要在wifi网络的“断开”时间期间检测较低功率网络协议的存在。



技术实现要素:

公开了一种在两个或更多个网络协议利用相同频谱的环境中使干扰和重试最小化的系统和方法。较低功率网络控制器与wifi控制器共同定位。较低功率网络控制器监听可能指示存在较低功率协议包(诸如ble或者zigbee)的特征。在生成去往wifi控制器的请求信号之前,较低功率控制器检查表示zigbee包的波形。这最大化了在传入的包被接收时将不会发生wifi流量的可能性。

根据一个实施例,公开了一种用于与具有wifi控制器和较低功率网络控制器的系统一起使用的早期包检测器。所述早期包检测器包括信号处理器,所述信号处理器被配置为:对传入信号进行过采样以创建多个数据点;为多个数据点中的每一个分派值;并且基于分派给多个数据点中的每一个的值来检测2fsk特征。在一些实施例中,信号处理器被进一步配置为基于分派给多个数据点中的每一个的值来检测oqpsk特征。在一些实施例中,信号处理器被配置为将分派给多个数据点中的每一个的值与预定模式进行比较,以检测oqpsk特征。在某些实施例中,信号处理器被进一步配置为确定传入信号是噪声还是wifi信号。在某些实施例中,其中如果分派给多个数据点的值在预定范围之外,则信号处理器确定噪声存在。在某些实施例中,如果传入信号中的尖峰与最小位持续时间相比更小,则信号处理器确定噪声存在,其中尖峰被定义为从正值到负值的转变,或者反之亦然。在一些实施例中,所述值与数据点的频率减去载波频率成比例。在一些实施例中,如果检测到2fsk特征,则信号处理器断言去往wifi控制器的请求信号。

根据另一个实施例,公开了一种系统。所述系统包括wifi控制器,所述wifi控制器包括:被用作请求对共享介质的独占访问的输入的聚合请求信号和被用作指示对共享介质的独占访问已经被授权的输出的授权信号;较低功率网络控制器,其包括处理单元和相关联的存储元件,其中,如果传入的较低功率网络包是发往该控制器的,或者如果传出的较低功率网络包要被发射,则较低功率网络控制器被配置为断言请求信号;以及早期包检测器,用以检测共享介质上的较低功率网络信号,并且响应于所述检测而在预定持续时间内断言请求信号;其中早期包检测器通过检查2fsk特征来检测较低功率网络信号。在某些实施例中,wifi控制器和较低功率网络控制器在相同频谱中操作。在一些实施例中,预定持续时间对于重新发射较低功率网络包而言是足够长的。在一些实施例中,早期包检测器在蓝牙信号和zigbee信号之间进行区分,并且只有在检测到zigbee信号时才断言请求信号。在其他实施例中,早期包检测器在蓝牙低能耗(ble)信号和zigbee信号之间进行区分,并且只有在检测到ble信号时才断言请求信号。

根据另一个实施例,公开了一种确定共享介质上存在较低功率网络信号的方法。该方法包括:对共享介质上的传入信号进行过采样以创建多个数据点;为多个数据点中的每一个分派值;以及基于分派给多个数据点中的每一个的值来检测2fsk特征,其中检测到2fsk信号表示较低功率网络信号。在某些实施例中,该方法进一步包括基于分派给多个数据点中的每一个的值来检测oqpsk特征。在一些进一步的实施例中,该方法包括将分派给多个数据点中的每一个的值与预定模式进行比较,以检测oqpsk特征。在某些实施例中,该方法进一步包括确定传入信号是噪声还是wifi信号。

附图说明

为了更好地理解本公开,参考随附附图,其中利用同样的数字来引用同样的元件,并且其中:

图1是具有wifi控制器和较低功率网络控制器这两者的系统的框图;

图2是较低功率网络控制器的框图;

图3是代表性的较低功率网络包;

图4a至图4g是表示不同场景的时序图;

图5a至图5b是针对较低功率网络控制器的接收处理的代表性流程图;

图6是针对较低功率网络控制器的发射处理的代表性流程图;

图7是根据第二实施例的具有wifi控制器和较低功率网络控制器这两者的系统的框图;

图8a至图8b是表示使用图7的系统的不同场景的时序图;

图9是针对图7的较低功率网络控制器的接收处理的代表性流程图;

图10是早期包检测器的代表性流程图;

图11是示出由早期包检测器创建的数据的代表性曲线图;

图12是示出图11的数据在其已经被进一步处理之后的曲线图;

图13是示出从图11中所示出的数据接收的波形的曲线图;

图14示出了由zigbee网络协议使用的码片值。

具体实施方式

图1示出了具有wifi网络控制器和较低功率网络控制器的系统的框图。贯穿于本公开,术语“较低功率网络”被用于指代在与wifi网络相同的频谱中操作并且使用较低功率的任何网络协议。例如,zigbee®、thread、蓝牙®、以及蓝牙低能耗(ble)都在与wifi相同的2.4ghz的频谱中操作。层叠在ieee802.15.4上的其他网络协议也将在2.4ghz的频谱中操作。进一步地,尽管贯穿于本公开将2.4ghz作为参照,但是要理解的是,在此描述的技术和系统可应用于其中高功率设备和较低功率网络这两者共存的任何频谱。

图1示出了wifi控制器10和较低功率网络控制器20。虽然图1将这些设备示出为两个分离的设备,但是要理解的是,在某些实施例中,这些设备可以被合并到单个集成电路中。因此,图1图示了在这些组件之间的接口,而不管这些组件的物理实现。

在ieee802.15.2标准中,定义了仲裁机制。被称为包流量仲裁(pta)的这种机制允许其他较低功率网络控制器从wifi控制器处请求对共享介质的访问。共享介质典型地是空气。该机制包括请求信号(req)101,其是来自较低功率网络控制器20的指示,指示较低功率网络控制器20希望访问共享介质。该协议还包括授权信号(gnt)102,其指示wifi控制器10已经允许另一个设备使用共享介质。在某些实施例中,该机制包括优先级信号(pri)103,其被用于指示较低功率网络控制器20希望发射的包的重要性。最后,在某些实施例中,该机制包括状态信号(stat)104,其指示wifi控制器10的状态。在某些实施例中,该stat信号104可以在wifi控制器10正在接收包时被断言,并且在所有其他时间处被解除断言。在其他实施例中,每当wifi控制器10正在进行发射或者接收时,可以断言stat信号104。

进一步地,虽然图1示出了包含在wifi控制器内的仲裁逻辑,但是其他实施例也是可能的。例如,包仲裁逻辑可以是分离的组件,其与较低功率网络控制器20和wifi控制器10分离。

传统地,每当较低功率网络控制器20希望通过共享介质发射包时,它就断言req信号101。作为响应,wifi控制器10在gnt信号102不再有效时对其进行断言。在较低功率网络控制器20已经完成其包的发射之后,它然后解除断言req信号101,指示它不再需要对共享介质进行访问。然后wifi控制器10解除断言gnt信号102。

然而,这种机制具有缺点。例如,如果较低功率网络控制器20正在接收包,并且wifi控制器10在所述接收期间开始发射新的包,则正在由较低功率网络控制器20接收的包将很可能会被破坏。进一步地,即使传入的包没有被破坏,较低功率网络控制器20也将不能把确认(ack)发射回发射节点。因此,即使较低功率网络包被成功接收,它也将被视为失败,并且将发生重试。

本公开提出了pta机制的独特用法,以减少重试和干扰,同时对wifi性能具有最小的影响。

图2示出了代表性的较低功率网络控制器20的框图。较低功率网络控制器20具有处理单元21和相关联的存储器设备22。该存储器设备22包含指令,所述指令在被处理单元执行时,使得较低功率网络控制器20能够执行在此描述的功能。该存储设备22可以是非易失性存储器,诸如flashrom(闪存)、电可擦除rom或者其他适合的设备。在其他实施例中,存储器设备22可以是易失性存储器,诸如ram或者dram。较低功率网络控制器20还包括网络接口23,网络接口23典型地是包括天线25的无线接口。附加地,网络接口可以包括无线电24,所述无线电24包括基带处理和mac级处理。较低功率网络控制器20可以包括第二存储器设备26,在所述第二存储器设备26中存储由网络接口23接收的数据以及要被网络接口23发射的数据。该第二存储器设备26传统上是易失性存储器。处理单元21具有对第二存储器设备26进行读取和写入的能力,以便与网络中的其他节点通信。虽然没有示出,但是每个较低功率网络控制器20还具有电源,电源可以是电池或者到诸如墙壁插座的永久电源的连接。

图3示出了来自较低功率网络的典型的传入包。较低功率网络包300包括报头310和有效载荷320。报头310可以进一步包括目的地地址311。目的地地址311是该包意图去往的设备的表示。例如,每个较低功率网络设备可以具有唯一的网络标识符,该网络标识符被用作目的地地址。报头310还可以包括其他字段,并且本公开不限制包括报头的其他组件。

当较低功率网络包300通过较低功率网络发射时,可以请求接收设备通过在接收完成后立即将确认(ack)包发射回到发送设备来肯定地确认包的接收。不能成功发射该ack将被发送设备视为发射失败。

图4a至图4g表示各种时序图,所述时序图图示了本系统在不同场景下的操作。在这些示图中,req信号101和gnt信号102低电平有效,这意味着它们在其处于低电压时被断言,而在较高电压处无效。

lp动作信号400表示较低功率网络活动。传入的包由lp动作信号400的断言来表示。传出的通信由交叉阴影区域来表示。

wifi动作信号410表示wifi网络活动。传入的包由wifi动作信号410的断言来表示。传出的通信由交叉阴影区域来表示。

stat信号104被用于表示wifi控制器10的状态。在某些实施例中,不使用stat信号104。在其他实施例中,stat信号104被用于标注由wifi控制器10进行的诸如接收和发射的任何活动。在本时序图中,stat信号104在wifi控制器10正在接收包时被断言,并且在所有其他时间处被解除断言。

图4a示出了表示由较低功率网络控制器20对包进行的接收以及由该设备发射的对应ack的第一时序图。在该场景下,不存在wifi活动。

如在lp动作信号400中所示出的那样,当较低功率网络包被发射到该设备时,序列开始。在开始接收该包之后的某个时间,较低功率网络控制器20断言req信号101。更具体地,在包到达时,较低功率网络控制器20开始解析包。一旦接收到目的地地址311,较低功率网络控制器20就可以确定传入的包是否是意图针对该设备的。如果该包不是意图针对该设备的,则较低功率网络控制器20可以简单地停止解析该包。然而,如果该包是意图针对该设备的,则较低功率网络控制器20将继续解析该包,并且将该包保存在第二存储器设备26中。在一个实施例中,req信号101可以早在完成对目的地地址311的接收时就被断言。在又一个实施例中,在检测到接收到较低功率网络包300的第一字节时,可以立即断言req信号101。如果如基于目的地地址311所确定的那样,该包不是意图针对该设备的,则较低功率网络控制器20将解除断言req信号101。在这两个实施例中,req信号101都被尽可能快地断言,以使wifi控制器10将断言gnt信号102并且将不开始wifi包的发射的概率最大化。换句话说,较低功率网络控制器20在完成对传入的包的接收之前断言req信号101。如在上面所声明的那样,这可以是在目的地地址311被较低功率网络控制器20解析后的即刻;然而,也可以是在完成对传入的较低功率网络包300的接收之前的任何时间。

在某些实施例中,对传入的较低功率网络包300的解析可以被由处理单元21执行的软件来完成。例如,当包被网络接口23接收时,处理单元可以从包中读取信息。然后,如在上面描述的那样,它断言req信号101。在其他实施例中,可以存在部署在无线电24内的执行该功能的专用硬件。在任一实施例中,较低功率网络控制器20被适配为解析报头以确定包是否是发往该设备的,并且如果包确实是发往该设备的,则进行断言。

在req信号101被断言之后,因为不存在wifi活动,所以wifi控制器10断言gnt信号102。此时,较低功率网络包将被不间断地接收。一旦接收到较低功率网络包,较低功率网络控制器20就可以将ack包发射回发送设备,如由交叉阴影区域指示的那样。

一旦ack已经被发射,req信号101然后就被较低功率网络控制器20解除断言。这引起wifi控制器10解除断言gnt信号102,并且事务完成。

图4b至图4c示出了其中在接收wifi包的同时接收较低功率网络包300的场景。在这些实施例中,如在上面描述的那样,一旦确定传入的较低功率网络包300是发往该设备的,较低功率网络控制器20就断言req信号101。在该场景中,wifi控制器10也正在接收包,并且因此,stat信号104被断言。附加地,因为wifi控制器10不是正在发射的,所以wifi控制器10断言gnt信号102,这指示如果想要的话,较低功率网络控制器20可以发射包。

在图4b中,较低功率网络包300的接收在wifi包仍在被接收时完成。在图4b中所示出的一个实施例中,较低功率网络控制器20(注意,gnt信号102被断言)在wifi控制器10仍在接收传入的wifi包时发射ack包。例如,如果较低功率网络控制器20无法访问关于wifi控制器10的状态的任何信息,则可能发生这种场景。换句话说,如果pta机制不包括stat信号104,则较低功率网络控制器20仅使用gnt信号102来确定它是否能够发射ack包。

在另一个实施例中,较低功率网络控制器20可以访问stat信号104,并且使用该信息来确定是否发射ack包。在该实施例中,较低功率网络控制器20(注意,stat信号104被断言)可以在一些实施例中监测rssi_wifi,以确定在不中断wifi接收的情况下进行发射是否安全。如果rssi_wifi低于某个阈值,则较低功率网络控制器20将不向发送设备发射ack包。这可能引起较低功率网络包的重试,但是将允许wifi包在没有由ack包的发射引起的任何干扰的情况下被接收。如果rssi_wifi高于某个阈值,则较低功率网络控制器20将发射ack包。

在另一个实施例中,wifi控制器10可以被配置为使得如果wifi控制器正在进行发射或者接收,则不断言gnt信号102。在这种场景中,因为wifi控制器10正在接收wifi包,所以gnt信号102将不被断言。因此,较低功率网络控制器20将不会试图发射ack包。稍后在图4d中示出其中gnt信号102从未被断言的场景。

图4c示出了其中在较低功率网络包300的接收完成之前完成wifi包的接收的场景。在这种场景中,较低功率网络控制器20将在确定该包是意图针对该设备的之后立即断言req信号101。因为wifi控制器10没有在发射包,所以它将断言gnt信号102。然而,wifi控制器10将在完成对传入的wifi包的接收之后解除断言gnt信号102,使得它可以发射确认。gnt信号102的解除断言将告知较低功率网络控制器20它不能将ack包发送回发送设备。因此,图4c没有示出由较低功率网络控制器20发送的ack包。同样,这将很可能会造成重试。

图4d至图4e示出了其中在发射wifi包的同时接收较低功率网络包300的场景。在这些实施例中,如在上面描述的那样,一旦确定传入的较低功率网络包300是发往该设备的,较低功率网络控制器20就断言req信号101。因为wifi控制器10在发射,所以gnt信号102不会立即被断言。

在图4d中所示出的实施例中,当较低功率网络控制器20想要发射ack时,wifi控制器10仍在发射。然而,因为gnt信号102从未被断言,所以较低功率网络控制器20不能发射ack包。因此,该较低功率网络包300将很可能被重试,因为接收设备从未返回过ack。

在图4e中所示出的实施例中,当较低功率网络控制器20想要发射ack时,wifi控制器10不再发射。在该实施例中,当wifi包的发射完成时,wifi控制器10断言gnt信号102。因为gnt信号102是在传入的较低功率网络包300的接收完成之前被断言的,所以较低功率网络控制器20能够发射ack包,如在图中所图示的那样。这种特定场景可以以若干种方式发生。首先,如在上面所描述的那样,wifi包可以在较低功率网络包300之前已经完成。在另一个实施例中,如由pri信号103(见图1)所指示的那样,传入的较低功率网络包300的优先级可以是与传出的wifi包的优先级相比更高的。在这种情况下,wifi控制器10可以提前中断其传出的包,以允许较低功率网络控制器20发射ack包。

图4f至图4g示出了其中wifi控制器10希望在接收较低功率网络包300的同时发射wifi包的场景。因为在首次接收较低功率网络包300时,wifi控制器10是空闲的,所以gnt信号102由wifi控制器10断言。图4f示出了一个实施例,其中要被发射的wifi包的优先级与正在被接收的较低功率网络包300的优先级相比更低。

在该实施例中,wifi控制器10简单地等待,直到较低功率网络控制器20解除断言req信号101。在此之后,gnt信号102被解除断言,并且wifi控制器10开始发射其传出的wifi包。

图4g示出了一个实施例,其中要被发射的wifi包的优先级与正在被接收的较低功率网络包300的优先级相比更高。在该实施例中,gnt信号102被断言,因为此时没有由wifi控制器10进行的活动。然而,此后不久,wifi控制器10希望发射包。因为该wifi包与传入的较低功率网络包300相比具有更高的优先级,所以gnt信号102被解除断言,并且wifi控制器10开始发射传出的wifi包。因为gnt信号102已经被解除断言,所以较低功率网络控制器20不能发射ack包。

图5a示出了可以由较低功率网络控制器20中的处理单元21执行的第一代表性流程图。该流程图仅与传入的包相关。首先,如在处理500中所示出的那样,由较低功率网络控制器20开始接收传入的包。较低功率网络控制器20开始接收包并且解析报头信息。具体而言,如在处理510中所示出的那样,较低功率网络控制器20解析报头310中的目的地地址311,以确定传入的包是否是发往该设备的。如果包不是意图针对该设备的,则较低功率网络控制器20结束对该包的处理,并且等待下一个包,如在处理580中所示出的那样。然而,如果所述包是意图针对该设备的,则较低功率网络控制器20断言req信号101,如在处理520中所示出的那样。然后较低功率网络控制器20继续接收包,如在处理530中所示出的那样。在已经接收到整个包之后,较低功率网络控制器20验证该包是否被正确地接收。如果是,则较低功率网络控制器20检查gnt信号102是否被断言,如在处理540中所示出的那样。如果是,则它可以发射ack包。在某些实施例中,较低功率网络控制器20可以诸如通过查询stat信号104来确定wifi控制器10的状态,如在处理550中所示出的那样。如果gnt信号102被断言并且stat信号104未被断言,则较低功率网络控制器20发射ack包,如在处理560中所示出的那样。在发射ack之后,较低功率网络控制器20解除断言req信号101,如在处理570中所示出的那样。如果gnt信号102未被断言,或者stat信号104被断言,则较低功率网络控制器20解除断言req信号,如在处理570中所示出的那样。此时,接收处理随之完成,并且较低功率网络控制器20等待下一个包,如在处理580中所示出的那样。

图5b示出了可以由较低功率网络控制器20中的处理单元21执行的第二代表性流程图。该流程图仅与传入的包相关。该处理类似于图5a,并且因此,将只描述差异。在图5b中,如在处理525中所示出的那样,较低功率网络控制器20在检测到正在接收传入的包之后立即断言req信号101。因此,在该实施例中,req信号101的断言与图5a中的断言相比甚至更早。然后该序列随着传入的包的解析而继续。当接收到包的报头时,较低功率网络控制器20确定该包是否是针对该设备的,如在处理510中所示出的那样。如果是,则所述序列如在图5a中所示出的那样继续。如果该包不是针对该设备的,则较低功率网络控制器20解除断言req信号101,如在处理570中所示出的那样。

发射流程图被在图6中示出,并且是更简单得多的。在这种情况下,较低功率网络控制器20等待,直到它有包要发射,如在处理600中所示出的那样。当有包时,较低功率网络控制器20断言req信号101,如在处理610中所示出的那样。然后较低功率网络控制器20等待,直到gnt信号102被断言,如在处理620中所示出的那样。在某些实施例中,较低功率网络控制器20然后检查wifi控制器10的状态,如在处理630中所示出的那样。如果wifi控制器10当前正在接收包,则较低功率网络控制器可以等待,直到wifi控制器10空闲,如在处理630中所示出的那样。当然,在其他实施例中,较低功率网络控制器20可以仅使用gnt信号102来确定何时发射。一旦较低功率网络控制器20确定gnt信号102被断言并且stat信号104未被断言,它就发射包,如在处理640中所示出的那样。在包已经被发射之后,较低功率网络控制器20等待并且接收ack包,如在处理650中所示出的那样。在接收到ack包之后,较低功率网络控制器20解除断言req信号101,如在处理660中所示出的那样。

在某些实施例中,在较低功率网络控制器20有包要发射的时间与它实际发射该包的时间之间可能有长的延迟。例如,在某些网络协议中,在发射节点试图发射包之前存在其必须等待的随机mac延迟。所述的随机mac延迟被用在试图使共享介质上的冲突最小化方面。所述延迟可能长达10毫秒。对于保持共享介质而言,这么长的时间量可能是不可接受的。因此,在一些实施例中,在确定较低功率网络控制器20有包要发射(处理600)和断言req信号101(处理610)之间存在延迟。在某些实施例中,该延迟可以是mac延迟的函数。

例如,较低功率网络控制器20可以确定它有包要发射。然后,它确定它必须等待的随机mac延迟。该随机mac延迟然后被用于延迟req信号101的断言。例如,如果mac延迟为n微秒,则req信号101可以在n微秒至m微秒的延迟之后被断言,其中m是预定值。m的值可以被选择为允许wifi控制器10从较低功率网络控制器20接收req信号101并且返回gnt信号102,假设wifi控制器10在该时间处没有在进行发射。因此,在某些实施例中,req信号101的断言中的延迟与将被使用的随机mac延迟相比更少预定量的时间。当然,在断言req信号101之前的延迟可以以其他方式确定,其可以是基于或者不基于随机mac延迟的。

上述配置允许wifi控制器10和较低功率网络控制器20之间的共存。然而,可能存在其中该配置以欠佳的方式操作的情况。例如,假设wifi控制器10以非常高的占空比操作,使得它垄断或者几乎垄断共享介质。在上面描述的配置确保了较低功率网络控制器20在无论何时必要的话通过使用req信号101来发射包的能力。然而,由于wifi控制器10对共享介质的高使用率,可能难以检测和接收意图针对较低功率网络控制器20的包。换句话说,图5a示出了一旦较低功率网络控制器20确定传入的包是发往该设备的,它就断言req信号101。然而,如果wifi控制器10正在活跃地进行发射,则可能难以检测传入的较低功率包,并且因此,req信号101从不会被断言。因此,传入的包不会被较低功率网络控制器20接收。

根据ieee802.11协议,存在其中wifi设备不应该进行发射的时间段,其被称为帧间间隔。这些帧间间隔中最短的可以是大约16微秒。在这些时段期间,检测到共享介质上存在较低功率网络协议信号可以是可能的。然而,在这个时间段期间,不太可能发射较低功率网络包的包括前导码和同步字段的报头310。相反,更有可能的是,较低功率网络包的数据部分被发射。因此,很可能的是,对于较低功率网络控制器20而言不可能确定该较低功率网络包的目的地。如在上面指出的那样,较低功率网络控制器20仅在接收到前导码和同步字段时在报头310期间断言req信号101。

换句话说,如果较低功率网络包正在被发射到该设备,但是前导码和同步字段没有在帧间间隔期间被发射,则较低功率网络控制器20将不会试图获得对共享介质的访问以接收包。因此,传入的较低功率包将不会被识别,并且将不会被较低功率网络控制器20接收。在wifi活动非常高的时段期间,可能无法接收该传入的包。

图7示出了解决所述问题的配置。图7示出了wifi控制器10、较低功率网络控制器20和早期包检测器700。虽然图7将这些设备示出为分离的设备,但是应当理解的是,在某些实施例中,这些设备中的两个或更多个可以被合并到单个集成电路中。例如,早期包检测器700的部分可以被合并在较低功率网络控制器20中。因此,图7图示了在这些组件之间的接口,而不考虑这些组件的物理实现。

如在上面解释的那样,包流量仲裁(pta)包括请求信号(req)101,所述请求信号(req)101是来自较低功率网络控制器20的指示,指示其希望访问共享介质。该协议还包括授权信号(gnt)102,其指示wifi控制器10已经允许另一个设备使用共享介质。在某些实施例中,该机制包括优先级信号(pri)103,其被用于指示较低功率网络控制器20希望发射的包的重要性。最后,在某些实施例中,所述机制包括状态信号(stat)104,其指示wifi控制器10的状态。在某些实施例中,所述stat信号104可以在wifi控制器10正在接收包时被断言,并且在所有其他时间处被解除断言。在其他实施例中,每当wifi控制器10正在进行发射或者接收时,stat信号104就可以被断言。

进一步地,虽然图7示出了被包含在wifi控制器内的仲裁逻辑,但是其他实施例也是可能的。例如,包仲裁逻辑可以是分离的组件,其与较低功率网络控制器20和wifi控制器10分离。

如在上面声明的那样,图7示出了早期包检测器700。该早期包检测器700包括信号处理器720、计时器730和输出701,输出701有成为另一个请求信号的意图。使用“或”门710将该输出701与req信号101进行逻辑“或”运算,以便创建被提供给wifi控制器10的聚合req信号702。类似地,使用“或”门711将输出701与pri信号103进行逻辑“或”运算,以创建聚合pri信号703。通过这样的方式,较低功率网络控制器20或者早期包检测器700可以断言聚合req信号702和聚合pri信号703。虽然图7示出了“或”门710、711,但是应当理解的是,对于低电平有效逻辑,这些门将会是“与”门。图7仅仅是打算图示两个函数的输出被进行组合以创建一个聚合信号,使得每当任一个输出被断言,聚合信号就被断言。在某些实施例中,信号处理器720包括专用处理单元,诸如嵌入式控制器、特殊目的处理器或者嵌入式微处理器。在那些实施例中,早期包检测器700还可以包含存储器设备,所述存储器设备包含由所述专用处理单元执行的指令。在另一个实施例中,较低功率网络控制器20中的处理单元21可以与早期包检测器700通信,以执行在此描述的处理中的至少一些。

在另外的其他实施例中,信号处理器720可以包括执行在此描述的操作的硬件状态机。在所有实施例中,早期包检测器700独自或者与分离的处理单元通信地执行在此描述的操作中的一些或者全部。信号处理器720还可以包括比较器、移位寄存器、计数器以及如在下面描述的其他存储元件。

图10示出了示出早期包检测器700的操作的代表性流程图。首先,如在处理1000中示出的那样,早期包检测器700检查传入信号的噪声特征。早期包检测器700可以从较低功率网络控制器20接收传入信号,并且更具体地,从网络接口23接收传入信号。接下来,如在处理1010中示出的那样,早期包检测器700检查传入信号的2fsk(二进制频移键控)特征。ble、zigbee和thread都利用了2fsk。最后,早期包检测器700检查传入信号的oqpsk(偏移正交相移键控)特征。这是由zigbee和thread使用的协议。然而,该协议不被ble使用。下面将更详细地描述这三个功能中的每一个。取决于这三个处理的结果,早期包检测器700可以断言输出701,如在处理1030中示出的那样。

在处理1000中,早期包检测器700确保传入信号不仅仅是噪声。这可以以多种方式实现。例如,众所周知,输入波形被网络接口23转换成i信号和q信号。因此,早期包检测器700可以与较低功率网络控制器20的网络接口23通信,以获得传入信号。

由早期包检测器700对传入信号进行过采样。这暗指针对每一个可能的数据位进行多次采样。例如,如果最大数据速率为2mbps,则可以使用8mhz(4倍过采样)或者10mhz(5倍过采样)的过采样速率。然后,i信号和q信号进入cordic(坐标旋转数字计算机),其确定信号的振幅和相位。振幅被给出为i2和q2的平方根,而相位由tan-1(q/i)给出。在一些实施例中,早期包检测器700可以不使用振幅值。cordic可以被部署在信号处理器720中,或者网络接口23内。

通过确定两个相邻点之间的相位差,可以获得频率。换句话说,点n的频率由(相位(n)-相位(n-1))/过采样时间来给出,其中过采样时间是过采样速率的倒数。该计算的结果可以是诸如在图11中示出的曲线图。在某些实施例中,从所获得的频率值中减去载波频率。在无线通信中,传入信号通常被调制在载波频率上。移除载波频率可以允许对传入信号进行更好的分析。这可以通过计算所有数据点的平均频率,并且然后从所有数据点中减去该平均值来实现。载波频率已经被从图11的曲线图中移除。因此,在图11中所示出的信号以0hz为中心。进一步地,在某些实施例中,在图11中显示的数据可以与传入信号的频率减去载波频率成比例。换句话说,相位(n)-相位(n-1)的结果是一个与传入频率成比例的值。因此,在某些实施例中,结果不除以过采样时间。因此,图11的曲线图示出了被分派给每个数据点的值,其中所述值与传入信号的频率减去载波频率成比例。在图12和图13中也使用这些值。

然后,可以以若干种方式来确定噪声。例如,如果频率值在预定范围之外,则这可能指示噪声。例如,2fsk通过偏移频率(fd)来调制载波频率(fc),造成具有在fc-fd和fc+fd之间的频率的信号。如果传入信号具有频率高于fc+fd或者频率低于fc-fd的点,则这可能指示噪声。

附加地,ble和zigbee具有最小数据位持续时间。例如,ble的比特率为1mbps,而zigbee具有2mbps的比特率。一位由一串具有相同或者基本相同的频率的连续数据点来表示。频率上的迅速改变,尤其是从正频率到负频率的迅速改变,或者从负频率到正频率的迅速改变,可以被称为尖峰。在图11中,尖峰被表示为从正值到负值的转变,或者反之亦然。因此,如果传入信号中的尖峰的持续时间与最小位持续时间相比更少,则这可能指示噪声。

因此,在一个实施例中,如果频率范围在期望值之外,或者传入信号的位持续时间与期望值相比更少,则传入信号可能表示噪声。贯穿于本说明书,术语“噪声”可以被用于指示不是2-fsk信号的任何信号。这包括背景噪声和wifi信号。在这种情况下,早期包检测器700将不会断言输出701。在这种情况下,对于早期包检测器700而言可能没有必要执行处理1010和处理1020。

然而,如果早期包检测器700确定在介质上没有噪声,则早期包检测器700然后进行到处理1010。

在处理1010中,早期包检测器700检查2fsk特征。如在上面声明的那样,该特征是通过由偏移频率(fd)调制载波频率(fc)来表征的。因此,理想情况下,如果在图11中所示出的所采样的传入信号恰好包含两个频率,则它是2fsk信号。然而,由于背景噪声,传入信号将很少是理想的。

因此,在一个实施例中,在图11中所示出的所采样的数据点被进一步处理。例如,如在上面声明的那样,传入数据信号被过采样。假设传入数据信号被以5倍的系数过采样,从而过采样速率(osr)为5,并且传入数据信号被以osr乘以比特率(br)的频率进行采样。然后将数据点放置在箱中,其中箱的数量是osr的倍数。例如,可以有10个箱(即2*osr),其中第一数据点被放置在第一箱中,第二数据点被放置在第二箱中,等等。换言之,其中放置数据点n的箱被定义为模(n,2*osr)。该处理的结果被以图形形式示出在图12中。同样,载波频率已经被从图12的曲线图中移除。

注意,图12示出了两条水平线,所述两条水平线分别表示频率+fd和-fd。还存在几个交叉点。这些交叉点可以指示传入数据信号何时从一个值转变为另一个值。换句话说,交叉点在数据位的边缘处。如在上面声明的那样,传入数据被以osr乘以br的速率过采样。可以使用以br频率操作的时钟来恢复传入数据。因此,确定该恢复时钟的相位可以是有用的。在一个实施例中,交叉点指示数据位中的转变,所以恢复时钟的相位被配置为在两个交叉点之间。注意,在图12中,交叉点出现在大约2.5和7.5的值处。因此,恢复时钟可以在两个交叉点之间的值5处开始采样。注意,在值5处,大多数数据点在+fd处或者在-fd处。因此,数据被以br的频率进行采样,其中相位偏移由在上面得出的最佳值来确定。这使得成功恢复传入数据的可能性很高。当然,也可以使用恢复传入数据的其他方法。例如,在另一个实施例中,不是绘制图12中的频率信号,而是绘制那些频率值的绝对值。具有最高平均值的箱可以被用作恢复时钟的相位。在另外的其他实施例中,可能没有必要创建图12中所示出的曲线图。

使用恢复时钟,可以如在图13中所示出的那样恢复图12中所示出的传入数据。同样,因为图12已经移除了载波频率,所以图13以0hz为中心。图13的曲线图可以被用于确定数据信号是否表示2fsk特征,其中数据位处于两个频率中的一个处。在另一个实施例中,图11或者图12的曲线图可以提供对于确定传入数据信号是否拥有2fsk特征而言所必要的信息。

如果早期包检测器700确定传入数据信号呈现2fsk特征,则早期包检测器700继续到处理1020。如果早期包检测器700确定传入数据信号不呈现2fsk特征,则早期包检测器700将不会断言输出701。进一步地,如果没有检测到2fsk特征,则早期包检测器700可以不执行处理1020。

在处理1020中,早期包检测器700试图在ble信号和zigbee以及thread信号之间进行区分。在某些实施例中,可能想要的是仅在发射zigbee包时中断wifi通信。在其他实施例中,可能希望仅在发射ble包时中断wifi通信。如果这种行为是想要的,则执行处理1020。然而,如果想要的是针对ble或者zigbee中断wifi通信,则处理1020可能不是必要的。

如在之前所声明的那样,zigbee和thread利用oqpsk,而ble没有利用oqpsk。因此,通过确定传入数据是否利用了由oqpsk指定的码片,可以确定传入数据是否表示zigbee包。相反,如果传入数据具有2fsk特征并且不利用由oqpsk指定的码片,则可以确定传入数据表示ble包。

如在图14中所示出的那样,zigbee协议利用16个不同的码片。这些是oqpsk仅支持的可允许的数据模式。相反,ble不是oqpsk,并且因此允许任何模式的数据。因此,如在图13中所示出的那样,如果传入数据与这16个模式(也被称为码片)中的任何一个相关,则传入数据很可能是zigbee。如果传入数据不与这16个码片中的一个相关,则其最可能是ble。

因此,在一个实施例中,早期包检测器700的信号处理器720包括一个或多个32位比较器,所述一个或多个32位比较器被用于将传入数据与16个可能的码片中的每一个进行比较。在某些实施例中,比较器的输出是介于0和32之间的值,该值指示与该特定码片相匹配的位数。如果输出与某个阈值相比更大,则确定传入数据和该码片之间存在匹配。这指示传入数据最可能是zigbee包。在这种场景中,如在处理1030中所示出的那样,早期包检测器700断言输出701。

注意,前8个码片是相同的位序列,其中在连续码片之间向右旋转4位。类似地,后8个码片也是相同的序列,其中在连续码片之间向右旋转4位。因此,在某些实施例中,不是使用16个不同的比较器,而是与一个或多个移位寄存器相结合地使用更少数量的比较器。

当然,可以对在上面描述的处理进行变化。例如,如在上面指出的那样,如果ble发射也有中断wifi通信的意图,则可以不执行处理1020。在其他实施例中,可以不执行处理1000。相反,早期包检测器700可以在不确保共享介质上没有噪声的情况下试图检测2fsk特征。

在某些实施例中,每当在共享介质上检测到具有2fsk和oqpsk特征的较低功率网络信号时,早期包检测器700的输出701就被断言。重要的是,即使在没有发射前导码或者同步字符的时间期间,早期包检测器700也可以是能够检测较低功率网络信号的。例如,早期包检测器700可以是能够在有效载荷320期间检测较低功率网络信号的。

在其他实施例中,每当在共享介质上没有检测到具有2fsk和oqpsk特征的较低功率网络信号时,早期包检测器700的输出701就被断言。

由计时器730使用来自信号处理器720的输出725。输出725启动计时器730,计时器730在预定量的时间内断言输出701。该预定量的时间可以是足够长的,使得在输出701被解除断言之前,较低功率网络包可以被完整地重新发射。在一些实施例中,这可以是在1毫秒和255毫秒之间的。

换句话说,信号处理器720监测共享介质,并且当检测到可能是较低功率网络协议信号的信号时,断言输出725。该输出725启动计时器730,计时器730在预定量的时间内断言输出701。在某些实施例中,计时器730可以是硬件电路。在其他实施例中,计时器730可以在软件中实现,诸如是较低功率网络控制器20的一部分。

因此,如果在帧间间隔期间检测到较低功率网络包,则早期包检测器700将请求访问共享介质。当较低功率包被重新发射时,较低功率网络控制器20将能够检测包括前导码和同步字段的报头310,并且确定该包是否是意图针对该设备的。如在上面解释的那样,如果该包是意图针对该设备的,则较低功率网络控制器20将断言req信号101。因此,计时器730只需要将输出701断言到接收到重新发射的较低功率网络包的报头为止。在此时,有两种可能的场景。在第一种场景中,包不是意图针对该设备的,并且wifi控制器10可以自由地再次开始发射。在这种场景中,当计时器730到期时,聚合req信号702被解除断言。在第二种场景中,如在上面描述的那样,包是意图针对该设备的,并且较低功率网络控制器20断言req信号101。这两种场景在图8a至图8b中示出。

在这些示图中,req信号101、gnt信号102、输出701和聚合req信号702都是低电平有效的,这意味着当这些信号在低电压处时,它们被断言,并且在较高电压处无效。

如由信号处理器720所检测的,lp信号401表示任何较低功率网络活动。wifi动作信号410表示wifi网络活动。它们表示传入的包和传出的包这两者。

在图8a中,wifi活动(wifi动作信号410)在一个时间点处停止。这可以对应于帧间间隔。此时,在共享介质上检测到某种类型的较低功率信号(lp信号401)。因此,早期包检测器700的输出701被断言。这也引起聚合req信号702被断言。在稍后的时间点处,计时器730到期,引起输出701被解除断言。输出701的持续时间可以是足够长的,使得当计时器730到期时,较低功率包正在被重新发射。在该曲线图中,较低功率网络控制器20确定该较低功率包不是意图针对该设备的。因此,它从未断言req信号101。因此,一旦计时器730到期,聚合req信号702就也被解除断言,并且wifi控制器10自由地访问共享介质。wifi控制器10解除断言gnt信号102,并且可以开始发射wifi包。

在图8b中,wifi活动(wifi动作信号410)在一个时间点处停止。这可以对应于帧间间隔。此时,在共享介质上检测到某种类型的较低功率信号(lp信号400)。因此,早期包检测器700的输出701被断言。这也引起聚合req信号702被断言。在稍后的时间点处,计时器730到期,引起输出701被解除断言。输出701的持续时间可以是足够长的,使得当计时器730到期时,较低功率包正在被重新发射。在该曲线图中,在输出701的解除断言之前,较低功率网络控制器20确定该较低功率包是意图针对该设备的。因此,它断言req信号101。因此,一旦计时器730到期,聚合req信号702就保持被断言,因为较低功率网络控制器20断言了req信号101。

因此,在一个实施例中,早期包检测器700被用于检测共享介质上的较低功率网络信号的存在,并且在预定时间段内断言输出701。对输出701的这种断言引起wifi控制器10放弃对共享介质的控制,并且允许较低功率网络控制器20能够检测较低功率包(或者其重新发射)。在此之后,较低功率网络控制器20如在图5a或者图5b中所示出的那样操作。

在某些实施例中,早期包检测器700可以被合并到较低功率网络控制器20中。进一步地,在某些实施例中,早期包检测器700利用与用于确定包是否发往该设备的逻辑相同的逻辑。换句话说,在某些实施例中,较低功率网络控制器20可以处于早期检测模式或者正常操作模式中的一个。

因此,在这种配置中,有必要在适当的时间处将较低功率网络控制器20在这两种模式之间进行切换。图9示出了图示所述序列的流程图。首先,如在处理900中所示出的那样,较低功率网络控制器20被置于早期检测模式中。在这种模式中,较低功率网络控制器根据与在上面描述的早期包检测器700相关联的描述进行操作。在这种模式中,较低功率网络控制器20持续监测共享介质的较低功率网络信号,如在处理905中所示出的那样。如在处理910中所确定的那样,如果检测到较低功率网络信号,则较低功率网络控制器20如之前所描述的那样在预定的持续时间内断言输出701。进一步地,此时,较低功率网络控制器20被切换到正常操作模式,如在处理920中所示出的那样。如在处理910中所确定的那样,如果没有检测到较低功率信号,则较低功率网络控制器20继续监测共享介质。处理930至处理970与如在图5a中所示出的处理510至处理530和处理560至处理570相同。为清楚起见,在图9中省略了对授权和wifi活动的检查。然而,如关于图5a所描述的那样,也可以执行这些检查。在处理920中所示出的预定持续时间是足够长的,使得如果包是发往该设备的,则请求信号在输出701被解除断言之前在处理940中被断言,使得聚合req信号702持续被断言,如在图8b中所示出的那样。在接收到较低功率网络包并且发射ack之后,req信号被解除断言。一旦所述操作完成,较低功率网络控制器20就被切换回早期检测模式,如在处理980中所示出的那样。如在处理970中所示出的那样,如果包不是发往该设备的,则请求信号可以被解除断言,以避免浪费带宽。然后,较低功率网络控制器20被切换回早期检测模式,如在处理980中所示出的那样。

在包不是发往该设备的事件中,请求信号可以被解除断言,并且可以再次启用早期检测模式。然而,与这种方法相关联的一个可能的问题是,早期包检测器700可能立即被当前正在发射的包再次触发。然而,已经确定该包不是发往该设备的。存在几种方法可以解决该问题。

在一个实施例中,在处理930期间,较低功率网络控制器20解析报头。该报头中的信息将包括有效载荷中的字节数。因此,基于该字节数和发射速率,可以确定针对发射该包所需的时间。因此,在该实施例中,较低功率网络控制器20可以设置计时器,并且可以不切换回早期检测模式,直到该计时器到期(见处理980)。

如果早期包检测器700与较低功率网络控制器20分离,则图9中所示出的序列也是可应用的。在该实施例中,在处理980中所示出的动作是不必要的,并且没有必要切换模式,如在处理920中所示出的那样。所有其他动作保持不变。

进一步地,虽然使用了术语“目的地地址”,但是应当理解,该术语指代指定包的目标的任何机制。例如,该术语意在包括在ble中使用的“访问地址”。该术语还涵盖其他较低功率协议中使用的术语。

在某些实施例中,较低功率网络协议可以在报头、有效载荷或者这两者中利用crc(循环冗余码)。在这些实施例中,如果crc不正确,则接收设备可以不发射ack包。进一步地,在某些实施例中,crc错误将引起较低功率网络控制器20解除断言req信号101。

如在上面声明的那样,上述配置被用于允许即使是在高占空比wifi发射的情况下也检测较低功率网络流量。换句话说,在其中wifi控制器10正在以高占空比发射的场景中,这种配置允许检测较低功率网络流量。如果检测到这样的流量,则断言聚合req信号702,使得来自wifi控制器10的wifi发射被暂停,使得较低功率网络包可以被重新发射并且被正确检测。

本公开不被限制于在此描述的具体实施例的范围中。实际上,除了在此描述的那些具体实施例之外,根据前面的描述和随附附图,本公开的其他各种实施例和对本公开的修改对于那些本领域普通技术人员来说是显而易见的。因此,这样的其他实施例和修改有落入本公开的范围内的意图。进一步地,尽管本公开已经出于特定目的在特定环境中的特定实施方式的情形中描述了本公开,但是那些本领域普通技术人员应当认识到,其用途不限于此,并且可以出于任何数量的目的在任何数目的环境中有益地实现本公开。因此,应当根据如在此所描述的本公开的全部广度和精神来解释下面所阐述的权利要求。

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