IEEE802.11a的OFDM基带调制的FPGA实现
2010-06-25郭继经李晓飞张国栋
郭继经,李晓飞,张国栋
(1.南京邮电大学 通信与信息工程学院,江苏 南京 210003;2.兖矿国泰化工有限公司 机电部,山东 滕州 277527)
1 引言
802.11 从初期的直接序列扩频衍生到802.11a的在5.8 GHz提供54 Mbit/s的传输速率,采用OFDM调制方式。802.1b(即高速无线网路或Wi-Fi标准)工作在2.4 GHz频段采用DSSS技术,传输距离有所提高。虽然802.11x一直在更新扩展,目前已经到IEEE 802.11k,但基本上是在上层进行较大的支持和改动,主要是针对安全性以及QoS、基站互联性等上层协议的支持。物理层基本上还是保持802.11a的设计规则,因此有必要对802.11a物理层基带的工程实践进行细致研究。
2 发送端的OFDM调制原理及FPGA实现
传统的单载波传输系统是一种串行传输,它允许每个串行符号占用整个单载波信道的有效带宽。并行传输在某一时刻多个数据序列同时传输,在这种系统中单个数据一般只占用整个频带的一部分,传统的并行传输技术中采用滤波器进行彻底的子带划分,这和传统的OFDM思想是一致的。这种划分的缺点在于每个子带的带宽实际上是 (1+a)F,F为Nyquist带宽,a是滚降系数,当数据量很大时很难找到一组匹配的滤波器。而另一种子带的划分是通过离散傅里叶变换在基带进行处理,这种方法大大提高了频谱的有效利用率,从而使上千个子载波的调制在实际中可行。OFDM符号的数学表示方式如下
式中:N 为子载波数目 (N=64),am,k为子载波的调制系数,T为OFDM符号的时长 (包括循环前缀0.8 μs和FFT符号宽度3.2 μs),T0为一个OFDM符号的周期长度(不包括循环长度)3.2 μs,f0=(f0为子载波的宽度)。
OFDM的调制原理如图1所示。
2.1 PLCP帧结构成形
图1 OFDM调制的原理结构图
物理层将MAC层传递过来的数据经过一系列的组装处理,将数据封装成PPDU帧格式,详细内容参见802.11a标准协议的17.3节。
图2 PPDU帧结构
整个数据是分3路并行处理,在最后阶段组装衔接成基带信号。数据帧的具体组装流程如图3所示。
图3 数据帧的组装流程
两个训练序列由于在每组PPDU帧里是一样的,所以不采取实时计算生成的方法来产生训练序列,训练序列(S为短训练序列,L为长训练序列)是由以下两个序列通过IFFT变换以后经过周期拓展加窗得到的:
总的训练序列长度为10个短训练加2个长训练序列总共为(10×0.8)+(2×0.8+2×3.2)μs=16 μs,所以总的训练序列是由变换得到的序列中分别截取161个样点组成的,只要将322个样点制表放入ROM即可,在组帧的时候直接查表读出。具体数值可以参见802.11a标准协议的附录G.3。
另外两路并行处理的数据是SIGNAL符号和MAC层传递来的PSDU,而PSDU这部分数据对于OFDM调制来说才是真正的有效载荷数据。
SIGNAL符号首先是由24 bit指示信号组成其中的LENGTH,用来指示MAC层请求PHY要传递的PSDU所包含8进制数的数目,范围从 1~4095(212-1);RATE指示后续数据包(DATA域)所采用的映射方式和编码速率,编码速率和映射方式是相关联的,映射方式的选取依靠编码速率,而采用怎样的编码速率是由MAC层根据信道情况以及数据本身的非固定速率进行一些自适应调整决定的,这些处理过程都属于上层协议,在此不予讨论。SIGNAL的数据将以BPSK的方式映射,并经过R=1/2的卷积编码、交织、导频插入及IFFT变换,SIGNAL符号的传输速率为6 Mbit/s。值得注意的是SIGNAL符号不参与扰码过程。
而PSDU数据前部需要加入SERVICE数据,总共16 bit,规定前 7 bit为“0”,SERVICE 数据最先传递,用于接收端的同步和解扰码器的初始化。剩余的9 bit为保留位,全部置0。Tail为6 bit的“0”,用于将卷积编码器状态回到“0状态”,不过这个过程将会增加卷积译码器的错误概率,由于卷积码前后相关的特性,译码器当前bit的译码和后续bit有关,因此PLCP的Tail将会用没有参与扰码的 6 bit“0”代替扰码过的 6 bit“0”,即这 6 bit“0”不参与扰码。而PAD位是为了将整个DATA域的数据bit正好是NDBPS(每个OFDM符号承载的总的数据bit)的整数倍而需要填充的bit,这样就可以方便地将整个DATA数据分成NSYM个OFDM符号。NPAD的计算公式
其中Function(x)为取大于其变量x的最小正整数的函数。
2.2 FPGA实现
系统采用的时钟频率为 40 MHz(((NDBPS=96)/48)×(1/(4 μs/80))=40 MHz), 子载波波特率为 20 Mbit/s,因此采用40 MHz就可以达到系统要求。RATE直接来自于上层MAC的控制信号,在此不考虑速率的自适应变换,因此DATA域直接采用R=1/2的卷积编码,16QAM调制,数据速率为24 Mbit/s,所以NBPSC=4,NDBPS=96,NCBPS=192。 RATE 填充 bit为“1001”,LENGTH 是 MAC 层传递的信号,是一个变量。
PSDU数据首先得通过一个FIFO进行缓存,由于DATA域结构特点的原因,FIFO缓冲器结合计数器直接组装成DATA,具体的结构如图4所示。
FIFO缓冲器采用8位宽,深度选为1024即可满足要求, SEVICE直接将前16 bit填充为“0”bit(地址0和1),然后直接从地址2开始写入MAC层传递来的数据PSDU,一直到地址LENGTH+1,尾部填上6 bit的“0”当作Tail位,地址 LENTH+2的 8 bit直接全部填“0”为Tail位,因为后面肯定要补充PAD位 (填充为“0”)。所以只要读出的数据直接参与扰码,卷积编码后按照24 Mbit/s速率所要求的NCBPS=192分割成组,按照16QAM将其映射成48个子载波,插入导频时同样需要一个缓冲器。由Quartus II综合生成的顶层模块如图5所示。
图4 DATA组帧示意图
SIGNAL符号的处理和DATA域基本相同,只是不参与扰码,并且只有一个符号,而训练序列是读ROM的过程,篇幅所限,不再赘述。
3 仿真结果
按照上述方案,用Xilinx公司的ISE9.1开发环境Verilog硬件描述语言描述其硬件结构,并用Modelsim进行逻辑仿真,最后在FPGA硬件调试成功,器件选用Xilinx公司Spartan3E系列中的XC3S500E。输入的测试数据是突发形式,仿真输出的波形如图5所示,从中可以看出系统能够应对数据的突发方式,并且在数据指示位无效时,后续模块不参与运算,这对系统降低功耗非常重要,并在下个突发包到来时能够及时苏醒。
图5 仿真输出波形图
将FPGA输出的数据导入Matlab作一些必要的观察,图 6,7是其星座图和功率谱图,星座图中(36,36),(-36,-36),(0,0)点是导频和保护间隔的星座映射点,其他点都是16QAM映射。功率谱是取21个符号作256点的FFT变换叠加得到的,之所以会出现许多梳状是因为64个样点没经过插值,旁瓣在加窗后就可以得到更好的衰减,不过在定时准确的前提下不影响数据的解调,由于OFDM的正交性以及数字信号处理方法都是基于时域频域抽样,因此只要抽样点定时准确,就可以完整地解调出数据来。
图6 星座图映射
图7 功率谱图
4 小结
经过多次的测试和优化,使用Xilinx ISE9.1编译综合后,802.11a基带调制部分的资源耗费情况如表1所示。基于流量控制、突发传输的OFDM调制器设计所占的FPGA资源情况还是令人满意的。
表1 FPGA资源耗费情况表
OFDM调制技术在无线通信领域的应用越来越广泛,并且成为第四代移动通信的核心技术。802.11a是IEEE针对小范围无线通信制定的一种标准,它在针对同步以及行道估计方面所做的帧结构设计具有良好的性能表现,因此在工程上设计实现802.11a具有现实意义,对OFDM调制在其他无线通信场合中的应用也有借鉴作用。
[1]IEEE Std 802.11a-1999(Supplement to IEEE Std 802.11-1999)Part 11∶Wireless LAN Medium Access Control(MAC)and Physical Layer(PHY)specifications∶High-speed Physical Layer in the 5 GHz Band[S].1999.
[2]张海滨.正交频分复用的基本原理与关键技术[M].北京:国防工业出版社,2006.
[3]LOUIS L,MICHAEL P.The principles ofOFDM[J].RF Design,2001(1):30-48.