FCS字段为32bit的CRC,它由MAC头和帧全部字段计算得到。
3、不同芯片的帧结构分析
以常见的Agere芯片组为例[8],用无线网卡在测试板下抓拍的由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芯片的接收性能时对帧格式的要求。
4、发送恒定帧数的实现
由于在接收指标的测试时,是以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。