关于WiFi射频接收性能的测试方法分析以及解决方案详解
一产品概述
WiFi(WirelessFidelity)手机是一种新兴的基于WiFi技术的VOIP电话。使用这种手机可以将模拟语音信号转换为数据包的形式,通过热点(AccessPoint)接入基于IP协议的互联网上进行传输,从而接打电话。与传统固话相比,WiFi手机的资费非常廉价,但使用的前提是,WiFi手机只有在热点覆盖范围以内才能进行通话。但热点的覆盖范围往往非常有限。
WiFi(WirelessFidelity)手机是一种新兴的基于WiFi技术的VOIP电话。使用这种手机可以将模拟语音信号转换为数据包的形式,通过热点(AccessPoint)接入基于IP协议的互联网上进行传输,从而接打电话。与传统固话相比,WiFi手机的资费非常廉价,但使用的前提是,WiFi手机只有在热点覆盖范围以内才能进行通话。但热点的覆盖范围往往非常有限。
WiFi(WirelessFidelity)手机是一种新兴的基于WiFi技术的VOIP电话。使用这种手机可以将模拟语音信号转换为数据包的形式,通过热点(AccessPoint)接入基于IP协议的互联网上进行传输,从而接打电话。与传统固话相比,WiFi手机的资费非常廉价,但使用的前提是,WiFi手机只有在热点覆盖范围以内才能进行通话。但热点的覆盖范围往往非常有限。
有两种方法可以增大热点的覆盖范围:一是提高热点发射功率和提高手机接收灵敏度,但热点的发射功率不可能无限制地被提高,所以同时还必须提高手机的接收灵敏度来增大热点覆盖范围。根据自由空间传输损耗公式:L(dB)=32.4+20×lgd(km)+20×lgf(MHz)
由此可以得出结论:在自由空间的理想情况下,手机接收灵敏度每增加6dB,便可使热点的覆盖范围增大1倍。所以,提高WiFi手机的接收指标有非常实际的意义。要提高WiFi手机的接收性能,首先就必须准确地测试出其接收指标,然后才能对其进行改进,最终提高整个系统的性能。
在802.11系统中,信息是以帧为单位进行传输的,因此可用误帧率对接收性能进行统计分析,而在PHS系统中,是以误码率来定义接收性能指标的。无论在对接收指标的定义上还是在接收性能的测试方法上,WiFi系统和PHS系统均存在较大差异。所以,文中将着重对WiFi射频接收性能的测试方法进行分析,并给出一种通用的解决方案。
1、射频接收指标及测试过程
1.1、射频接收指标的定义
根据IEEE802.11b规范,有3项较为关键的射频接收指标定义如下:
1)接收机最小输入电平灵敏度 对于在天线连接器上测得的-76dBm的输入电平而言,若PSDU的长度为1024个字节,其误帧率(FER)应小于8%;
2)接收机最大输入电平 对于在接收端天线上测得的-10dBm的最大输入电平而言,若PSDU长度为1024个字节,则其误帧率(FER)最大应为8%;
3)接收机邻道抑制 接收机邻道抑制在每一信道组中的间隔,不小于25MHz的任意2个信道间邻道干扰信号功率与有用信号功率的比值。对于采用11Mbit/sCCK调制的FER值为8%以及长度为1024字节的PSDU而言,邻道抑制必须不小于35dB。
1.2、误帧率
在上面3项指标的定义中,均提及了1个非常重要的参数:误帧率,即传输过程中丢失和出错的帧数和发送总帧数的比值。只有获得正确的误帧率,才能精确地测试出上述3项接收性能指标。实验室搭建的接收性能测试平台,见图1
在图1的测试平台上,由PC为信号源提供一定帧格式的I/Q信号波形文件,并由信号源发出一定数量的帧。同时,DUT在PC的控制下,对这些帧进行接收解调,求得相应的误帧率。然后根据误帧率来调节信号源的发射功率,直到误帧率正好满足指标要求,此时便能获得DUT相应的接收性能指标。但在这个平台上,要获得正确的误帧率,也存在2个难点:
1)信号源发出的帧格式必须满足DUT的要求。不同芯片供应商提供的芯片对帧格式的要求是不同的,若满足不了芯片对帧格式的需要,DUT便不能正确统计收到的正确帧数,从而导致误帧率的计算错误;
2)信号源要能确保发出一定数目的帧,若信号源发出的总帧数都不能确定,误帧率便无法计算。
不同的芯片供应商在测试芯片接收性能时,往往采用不同的帧格式。只有帧格式满足要求,才能统计出正确的收帧数,获得准确的误帧率。常见的WiFi芯片供应商Agere、Philips在接收测试时,对帧格式的要求也各不相同。文中主要针对Agere和Philips的帧格式要求进行详细分析[5-6]。
2.1、帧的形成过程
在802.11DSSS系统中,帧的形成包括以下4个过程。
2.1.1 MSDU的形成
MSDU是MACServiceDataUnit的缩写,被称为MAC层业务数据单元,是最原始的待发送数据信息。
2.1.2 MPDU的形成
MPDU(MACProtocolDataUnit)被称为MAC层协议数据单元。它是将MSDU按一定帧结构封装后获得的待发数据信息,见图2。封装过程包括在MSDU前加上MAC帧头和在后面加上帧检验序列。
2.1.3 PSDU的形成
PSDU(PLCPServiceDataUnit)被称为PLCP子层业务数据单元,实际就是从MAC层传来的MPDU信息。
2.1.4 PPDU的形成
PPDU(PLCPProtocolDataUnit),被称为PLCP子层协议数据单元。它是将PSDU按照特定的帧格式进行数据封装后的数据包,具体说来就是在PSDU前面再加上PLCP前导码和PLCP报头,见图3.PPDU是最终将经由物理介质发送出去的数据封装。
2.2、PPDU格式
帧格式[7]的修改全部由PC的软件(WinIQsim或SignalStudio)实现,PC传输给信号源的I/Q波形文件已确定了帧格式。软件中主要是使MPDU满足芯片要求,而PPDU则自动生成的,所以这里只介绍PPDU格式。
整个PLCP前导码和报头采用1Mbit/sDBPSK调制进行发射,发送的数据均采用反馈加扰器加扰。SYNC字段由128个加扰的“1”组成,被用来和接收方进行必要的同步操作;SFD被用以指示依赖与PHY的参数在PLCP前导码中的开始;Signal字段指示发送(和接收)MPDU应采用的调制速率;Service字段为预留字段;Length字段用以指示发送MPDU所需的微秒数;CRC-16字段根据CCITTCRC-16规范计算出Signal、Service和Length字段的CRC校验码并一同发送,完成帧检验序列保护。
2.3、MPDU
MPDU通常包括3个部分,见图3.
①MAC帧头,包括帧控制、持续时间、地址及序列控制信息;
②可变长度的整体,包含基于帧类型的特定信息;
③帧检验序列(FCS),包含IEEE32bit的循环冗余码(CRC)。
2.4、帧控制字段的结构
帧控制字段虽然只有16个字节,但却包含了用于解释帧其他部分的全部信息,见图4.
1)协议版本:当前总是0,其余为保留值,不为0则丢弃;
2)类型和子类型:这2个字段共同标识帧的类型和功能。802.11中总包含3种帧:控制帧、数据帧和管理帧。每种帧类型又分为几种子类型。几种常用的帧类型见表1.
3)去往DS和来自DS字段:辅助确定帧的最终传输地址;
4)多分段标记:代表数据超过2312字节,将被分成多个数据包传送;
5)重传字段:识别当前帧是否为1个数据帧的重传拷贝;
6)功率管理字段:代表STA的节能状态;
7)多数据标记字段:代表STA有更多的数据需要发送;
8)排序字段:代表当前帧是数据帧,并按照有严格序列要求的帧类型发送数据;
9)持续时间/ID字段:记录了数据的持续时间数,该时间数将被用来使其他STA更新自己的矢量网络分配。
2.5、MAC帧格式
MAC帧格式中有4个地址字段,这些字段用于指示基本服务集标识(BSSID)、目的地址(DA)、源地址(SA)、发送站地址(TA)和接收站地址(RA)。某些帧可能不包括某些地址字段。其中数据帧的地址字段内容取决于去往DS和来自DS的2个字段的值,见表2。
序列控制字段:长度为16bit,由序列号和分段号2个字段构成。其中12bit的序列号用来指示MSDU或MMPDU的序列编号。STA发送的每个MSDU或MMPDU被分配1个序列编号,随着每个MSDU或MMPDU的出现而以1递增。MSDU或MMPDU每个分段的序列号相同,当MSDU、MMPDU或其分段重传时,序列号保持不变。4bit长的分段号则用于指示MSDU或MMPDU的分段编号。当MSDU或MMPDU仅有1个分段时,分段编号为0;当MSDU或MMPDU有多个分段时,其第1个分段的分段编号为0,其后的分段编号以1递增,所有重传分段的分段编号保持不变。
FCS字段为32bit的CRC,它由MAC头和帧全部字段计算得到。
以常见的Agere芯片组为例,用无线网卡在测试板下抓拍的由AgereGoldUnit发出的帧结构,见图5.
帧的类型和子类型为“010000”,对照表1可以得出此帧为单纯的数据帧。其去往DS和来自DS均为0,由对照表2可以得出其地址1为DA,地址2为SA,地址3为BSSID。这里DA为“FFFFFFFFFFFF”,即广播帧;SA为芯片的MAC地址。在序列控制字段中,分段号为0,说明此MSDU没有分段;而比较相邻的2个帧,可以看出帧的序列号是以1递增的,而2个帧之间的时间间隔约为20ms。
由于现在的信号源只能对一定格式的帧进行循环发送,无法使每帧的序列号递增,所以只有在接收程序中屏蔽掉对帧序号进行验证的功能。若帧间空闲时间过小,则芯片未能完成CRC校验,从而导致误帧率计算错误,所以还必须将帧间的间隔时间设置成20ms。最后,再将帧格式设置成数据帧,这样便能在接收性能测试时,使信号源发出的帧能够满足Agere芯片的要求。
在Philips的BGW200芯片组中,用同样的方法可以发现:帧的格式为数据帧,而且数据区的前10个字节是在61~7A间进行循环,数据区的其他字节均为09。对于这种帧结构要求,首先对帧的数据区进行编程,使其满足芯片要求,然后将帧的类型设置成数据帧,并使信号源循环发送这26个帧,这样便能满足测试Philips芯片的接收性能时对帧格式的要求。
由于在接收指标的测试时,是以8%的误帧率进行判决的,所以权衡了测试时间和测试精度后,决定让信号源每次发送1000个帧。当DUT解调出的正确帧大于920时,则认为满足接收指标。
4.1、产生1000个帧的方法
1)通过GPIB卡来控制仪器射频的开关时间,从而实现1000个帧的发送;
2)通过仪器自带的ListMode来发送1000个帧;
3)通过将波形文件生成波形序列,从而让仪器在触发下发送1000个帧。
在11Mbit/s下,每帧的发送时间约为1ms,所以若采用第1种方法,精度不是很高,不能严格发出1000个帧;第2种方法同样是控制仪器的发送时间,惟一区别就是在仪器自带的listmode中设置发送时间,使其精度大大提高,时间精度可以达到μs级。不足的是,采用这种方法时,若导入不同的波形文件,则必须对listmode下的时间进行校准,而且在信道切换和功率变化时,均要重新编辑list,大大增加了测试的工作量;第3种方法则是由仪器在触发模式下精确控制发帧数目。采用这种方法时,仪器并没有立刻对传递过来的I/Q波形文件进行操作,而是根据用户所需的发帧数,先将波形文件转换成1个波形序列,然后再对这个波形序列进行调制,从而严格地保证了发帧数。相比第2种方法,第3种方法免去了信道切换和功率变化时编辑list的工作,提高了测试效率,也是现在实验室中普遍采用的测试方法。
4.2、第3种方法发送1000个帧的实现步骤
在AgilentE4438C上用第3种方法发送1000个帧的实现步骤如下:
1)在Signalstudio中生成Wave文件,通过GPIB卡下载到E4438C中;
2)对Signalstudio传过来的Wave文件进行编辑,并生成Sequence文件;
3)选取第2步生成的Sequence为波形文件;
4)设置Trigger。完成设置后,每按一下[Triggle],便可以发送1000个帧了。
5、应用实例
实际应用中,在屏蔽室中测得Agere评估板在11Mbit/s下的接收指标,见表3。
表中1、6、11表示所用信道为参考文献[1]中直接序列扩频物理层规划的第1、6、11信道,频率分别为2412、2437和2462MHz。
由表1可以看出,这些接收指标均已超出前面提到的射频接收指标的要求,说明实际芯片性能已经满足IEEE802.11b规范。这种测试方法不仅能精确地测试出各项射频接收指标,而且也是改进整机接收性能的基础,具有较强的实用性。