基于Cyclone Ⅲ的CCK调制、解调全新电路研究与实现
扫描二维码
随时随地手机看文章
补码键控CCK是应用于IEEE802.11b中物理层的调制方式。在无线局域网通信中,它支持两种速率5.5 Mb/s和11 Mb/s。CCK的码字有很强的位置对称性和良好的自相关特性,可以很好地克服多径干扰,所以在雷达和通信中都得到了很好的应用。在数字通信领域,补偿码被广泛用于正交频分复用OFDM(Or-thogonal Frequency Division Multiplex)、多接入和多信道通信等场合。本文将CCK电路应用于差分型码分多址通信系统中。
1 补偿码序列
1.1 补偿码序列的定义
关于互补码(或叫互补序列)的概念,最早由MJE.Golay提出。随后,互补码又被Tseng和Liulz扩展为互补序列集。之后,多相互补码的概念又相继由sivaswamy和Frank等提出。所谓的互补序列(comPlementaryseries)指一对由两种元素构成的等长有限序列,对于任何给定的间隔,在一个序列中相同元素的对数与另一个序列中采用相同间隔方式得到的不相同元素的对数相等。
互补序列对的特性中,除了零点之外,他们的非周期自相关矢量和为0,也就是零点有峰值。比如有两个序列,其元素分别为ai和bi(i=1,2,…,n),其ai元素的非周期自相关函数Cj及bi元素的非周期自相关函数Dj为:
式中:若n表示元素的个数,那么序列{ai}和{bi}就构成互补序列对。
1.2 多相互补码
对于包含K个码字的码集{S1k,S2k,…,SNk},N是码字长度,k=1,2,…,K,Sik表示码集中码长为i的码字,其非周期自相关为,这里j表示偏移量;*表示共轭,Si+j*是Si+j的共轭。
对于满足式(3)的码集就称之为互补序列集。
如果码字的相位是四相或是多相的,那么就得到了多相互补码,即码字中的元素Sik=ejφi。其中,ejφi是个复数,φi表示相位。同样地,多相互补码序列的自相关向量也必须满足式(3)。CCK码其实就是一种四相补偿码序列。
2 CCK
2.1 CCK码字定义
IEEE802.11b中规定,CCK中的码字序列是一长度为8个码片(chip)的补码,CCK码的数据率可以达到11 Mb/s和5.5 Mb/s的高速。它的扩频公式可以用下面的等式表示:
式中:C表示传输码字。观察式(4)可以看出,它每项都有一个公共部分eiφ1。φi(i=l,2,3,4)表示相位,可以将此公共部分提取出,并得到:
由此可见,复数码字的调制是通过φ1对所有复数码片进行相位调制来实现的。式(4)中,C={C0,C1,C2,C3,C4,C5,C6,C7};Ci(i=0,1,…,7)表示传输的数据,其中C0是最低位。其中的相位参数φi∈{0,π/2,π,3π/2}(i=1,2,3,4),所以它对应的码字中每个元素的可能值是{1,-1,j,-j)。
当传输速率为5.5 Mb/s时,每一CCK序列传递4 b信息。此时,将输入数据分为每4 b一组,并设其为d0,d1,d2和d3;d4(i=0,1,2,3)表示传输的数据,传输顺序则为d0~d3,即D=(d0,d1,d2,d3)。这4 b数据可决定16个CCK序列,其中d0和d1决定φ1的相位,按DQPSK编码进行调制,如表1所示。
其中,相位φ2,φ3,φ4由b2和b3根据下面式子决定:
对于传输速率为11 Mb/s的CCK编码调制,首先将发送的串行数据以字节为单位进行分割,每8个数据比特D=(d0,d1,d2,d3,d4,d5,d6,d7)=(D1,D2)编码调制成一个传输码字C。其中,di(i=0,1,…,7)表示传输的数据,对D1=(d0,d1)按表1进行DQPSK编码调制,得到相位φ1;对D2=(d2,d3,d4,d5,d6,d7)的比特对(d2,d3),(d4,d5),(d6,d7)分别按表2进行QPSK编码调制,得到相位φ2,φ3,φ4。
在11 Mb/s的CCK编码调制中,每个复数码片(chip)可能有四种相位,8个复数码片(chip)则可构成65 536个可能的码字。实际使用的CCK码字只有256个,如果不考虑对整个码字的旋转,则只有64个码字。这64个码字是从65 536个码字中挑选出来的,它们有良好的互相关特性(近似于零),是近似正交的。下面简要地说明一个典型码字的产生。如果CCK编码调制的传输速率为11 Mb/s,它发送的数据(d0,d1,d2,d3,d4,d5,d6,d7)=(1O110001)。那么按照表1和表2的相位调制方式,d0,d1=10,即φ1=3π/2;d2,d3=11,即φ2=3π/2;d4,d5=00,即φ3=0;d6,d7=01,即φ4=π/2。将这些相位参数代入式(4)中可得,C=(ei3π/2,ei0,ei3π/2,-ei0,eiπ,ei3π/2,-eiπ,ei3π/2),简化为复数码字,C={-j,1,-j,-1,-1,-j,1,-j)。
2.2 CCK的调制
对于数据速率为11 Mb/s的CCK来说,其调制框图如图1所示。
由图1可知,输入的比特流首先被划分成8个比特一组。每组中的高6位(d7,d6,…,d2)用来从基本码字库(共有64个CCK码字)中惟一选取一个CCK码字。之后,再用前2个比特(d0,d1)来确定φ1,并将对其产生的码字进行DQPSK调制,最后产生I,Q两路调制信号,完成CCK扩频调制。
CCK实现的原理图如图2所示。这个模块由两大部分组成,数据流1:8串并转换模块和CCK调制模块。
CCK调制的具体实现如上文所述,其仿真结果如图3所示。
2.3 CCK的解调
2.3.1 最大似然解码
在对CCK的进行解调时,一般可采用最大似然解码器对码字进行解码,这里的最大似然(ML)解码器是利用CCK码字的良好的互相关特性,将接收到的受到噪声干扰的码字与64个可能的码字进行相关运算,然后比较得到64个相关结果,并找出其中幅度值最大的那一个,由此对码字作出判决。
设接收到的CCK码字为C'={C0,C1,C2,C3,C4,C5,C6,C7};Ci(i=0,1,…,7)表示接收到的数据,将其与所有码字进行相关运算,则R=C'C*,C*是C的共轭,C是发送端的码字,则:
式中:θi(i=1,2,3,4)表示角度;θ1~θ4遍历{0,π/2,π,3π/2}。由式(7)可知,只有当θ2=φ2,θ3=φ3,θ4=φ4时,相关值会获得最大值,为8,并由此解调出d7~d0的值。
2.3.2 新的解码方法——选择部分解码
通过上述内容可以看出,如果对调制后的CCK码字C'={C0,C1,C2,C3,C4,C5,C6,C7)中的每一位进行相关运算,并且在对每一位进行运算时,又对其中的θ1~θ4都进行遍历{0,π/2,π,3π/2)的话,解调过程将是一个很复杂而又繁琐的过程,同时它所带来的计算量也将是巨大的。所以,这里提出一种全新的CCK解调方案。
这种全新的解调方案不像传统的解调方案那样对每个CCK调制后的码字进行相关运算,再根据相关值最大来判断出相应的CCK码,而是只对部分的调制后的CCK码字进行相关运算,并根据相关最大值解调出全部的CCK码。
通过观察式(7)可以看到,调制后的码字C'={C0,C1,C2,C3,C4,C5,C6,C7},其中的C7与e-iθ1进行相关运算,根据最大峰值在相关结果中的位置,可确定θ1的值,也即解调出了φ1(φ1=θ1),然后再按照表1来确定d0,d1。码字C中G是与一e“q。。吃’进行相关运算的,如果其中臼。的值已经确定,那么可以在岛为定值的情况下,根据相关解调的方法,确定岛的值;同理,G是与e’。∞t。如’进行相关运算的,G是与一e-“q也’进行相关运算的,可以通过类似C6的解调方法来确定夙,乱的值,由此也即知道了仰,仲,铆的值(岛一仇,晚一卿,乱一似),最后根据表2得到d。~d,的值。与其他的ccK解调方案相比,这种解调方案很好地简化了计算过程,也减少了计算的工作量。图4是解调部分的图形表示。
CCK解调实现的原理图如图5所示。这个模块由ccK解调模块和并串模块两大部分组成。
经过CCK解调,得到8位并行数据,再经由并/串转换转换成串行数据输出。
3 结 语
研究了补码序列的定义和性质,并对CCK调制和解调原理进行了分析,提出了更为简便、新颖的CCK调制解调方法,该方法降低了计算的复杂度,同时也大大减少了计算的工作量。本文还将该方法运用VerilogHDL硬件描述语言,通过QuartusⅡ7.2进行了功能仿真和时序仿真,同时还利用Altera公司最新的Cy-clone Ⅲ芯片EP3C25F324C8NES予以实现。CycloneⅢ前所未有地同时实现了低功耗、低成本和高性能。CycloneⅢ的系统最高频率为505.05 MHz,I/O脚最高频率为379.36 MHz,而类似型号的CycloneⅡ,Cyclone工的系统最高频率分别为490.68 MHz和404.53 MHz,I/O脚最高频率分别为91.76 MHz和204.25 MHz,CycloneⅢ的这一特性提高了系统的性能。同时该方案的实现只需用到97个逻辑单元,对CycloneⅢ总逻辑单元,其使用率为0.34%,而类似型号的CycloneⅡ,Cyclone I芯片的逻辑单元,其使用率分别为0.52%和0.48%。由此可见,这种全新方案节省了硬件资源,提高了CCK调制、解调的速率,简化了计算过程,减少了计算量,同时Verilog HDL语言的运用,也增加了描述的灵活性和高效性。