CDMA是码分多址的英文缩写(Code Division Multiple Access),它是在数字技术的分支——扩频通信技术上发展起来的一种崭新的无线通信技术。CDMA技术的原理是扩频技术,即将需传送的具有一定信号带宽信息数据,用一个带宽远大于信号带宽的高速伪随机码进行调制,使原数据信号的带宽被扩展,再经载波调制并发送出去。接收端使用完全相同的伪随机码,与接收的带宽信号作相关处理,把宽带信号换成原信息数据的窄带信号即解扩,以实现信息通信[1]。
CDMA技术的标准经历了几个阶段。IS-95是cdmaONE系列标准中最先发布的标准,真正在全球得到广泛应用的第一个CDMA标准是IS-95A。其后又分别发布了13K话音编码器的TSB74标准,以及支持1.9GHz的CDMA PCS系统的STD-008标准。随着移动通信对数据业务需求的增长,1998年2月,美国高通公司宣布将IS-95B标准用于CDMA基础平台上。IS-95B可提供CDMA系统性能,并增加用户移动通信设备的数据流量,提供对64kbps数据业务的支持。其后,CDMA2000成为窄带CDMA系统向第三代移动系统过渡的标准[2,3]。
CDMA是移动通信技术的发展方向。在2G阶段,CDMA增强型IS95A与GSM在技术体制上处于同一代产品,提供大致相同的业务。但CDMA技术有其独到之处,在通话质量好、掉话少、低辐射、健康环保等方面具有显著特色。在2.5G阶段,CDMA2000 1X RTT 与GPRS在技术上已有明显不同,在传输速率上1X RTT高于GPRS,在新业务承载上1X RTT比GPRS成熟,可提供更多的中高速率的新业务[2,3]。
码分多址(CDMA)技术是扩频通信技术在多用户通信系统中的应用,其利用了扩频序列的编码正交可分性,使得多个用户信号可以在同一媒介、同一频率、同一时间内传输。每一路码分信号,都是经过扩频调制的信号,每一路码分信道都分配了独特的扩频序列。扩频通信的主要特征是它们的频带宽度B比信息速率Rb大得多,通过扩频得到扩频增益,用于抵抗各种干扰。因此就CDMA本身的优势而言,CDMA拥有无与伦比的巨大潜力[2,4,5]。
此外,基于目前我国已有的GSM和CDMA巨大的用户市场、国内的3G技术发展主要有两个主流方向,即CDMA2000和WCDMA。对于CDMA系统,由于所采用的基本技术始终为CDMA,单个载波信道占用的带宽始终为l.25MHz,无论移动终端还是基站均能够前后向兼容,是一种真正的意义上的平滑过渡。
CDMA2000与CDMAOne标准上的兼容性使其基站的升级十分容易。以中兴通讯(ZTE)的CDMA One基站为例,在CDMAOne基站的基础上只需更换或新增一种单板(信道板)、再更新部分软件即可升级为CDMA2000 lx的基站。由于空中接口标准的兼容,CDMAOne的终端可以漫游到COMA2000 1x及lxEV系统、CDMA2000的终端在CDMAOne的系统中也能够正常使用。对用户来说购买终端的投资得到了最大程度的保护。 初期的高速数据业务的需求增加不会太快,2G向3G的过渡必然是一个长期的、渐进的过程。系统的兼容性和平滑过渡显得尤为重要。在这两点上,CDMA2000技术具有无法比拟的优势。因此,CDMA2000是国内的2G和3G过渡的一个最佳的选择,研究CDMA具有十分重要的经济意义和战略意义,第三代移动通讯技术的发展给了中国赶超世界先进水平的机会。
CDMA技术的基础是扩频通信。扩频:用来传输信息的信号带宽远远大于信息本身带宽的一种传输方式[11,12],频带的扩展由独立于信息的扩频码来实现,与所传信息数据无关,在接收端用同步接收实现解扩和数据恢复。如图2-1,我们可以知道CDMA系统的基本原理和TDMA、FDMA的区别。
图2-1 CDMA、TDMA、FDMA比较
扩频通信的理论基础就是著名的香农定理[11]:
…………………………………………(1)
这个公式表明,在高斯信道中当传输系统的信号噪声功率比S/N下降时,可用增加系统传输带宽W的办法来保持信道容量C不变。对于任意给定的信号噪声功率比,可以用增大传输带宽来获得较低的信息差错率。正因为这个原因,扩频通信具有比较强的抗噪声干扰的能力。CDMA技术是以扩频通信为基础的载波调制和多址接入技术,所以如何实现扩频部分对于整个CDMA系统的实现有着重要的影响。
CDMA技术是以扩频通信为基础的载波调制和多址接入技术,所以如何实现扩频部分对于整个CDMA系统的实现有着重要的影响[15,16,17]。下图是CDMA系统的基本原理图:
图2-2 CDMA系统的基本原理
信号经信源编码后成为数字信号,经过纠错编码、卷积编码和交织等相关处理后送入调制器中,利用PN码发生器产生的高速PN码将数字信号变成码片,使得信号的传输带宽远大于信号本身的带宽以实现扩频通信,同时,为了使信号的传输与信道特性相匹配,必须用载波发生器产生的载波去调制扩频信号。使其频率变为适合信道传愉的射频频段,将数字信号调制成模拟信号后通过放大器发射出去。在接收端,利用下变频器将射频信号还原成中频信号,采用与发射端相同的信号处理技术再将信号还原成原始信号,从而达到数据通信传输的目的。
针对本课题所要求的CDMA发送端的设计,主要从以下几个方面去研究,数据处理模块、差分编码模块、PN码序列产生模块、扩频模块。其中数据处理模块主要是用来完成数据的串/并变换;差分编码模块主要用于对数据先进行差分编码;PN码序列产生模块是扩频通信模块中比较重要的模块,其具体的作用和功能我们将在具体实践中做具体研究和讨论;扩频模块是发射端的核心模块,主要用于完成数据的扩频。图2-3就是CDMA系统模块化以后的基本结构,其中虚线框内的部分就是CDMA数字基带发送部分,本课题我们主要就是完成下图中上半部分,此外,在此基础上将对接收部分做简单的介绍。图中发送端和接收端的walsh码发生器和PN码发生器其实是同一个模块,它们的区别仅仅是延迟不同。
图2-3 CDMA系统模块化结构图[13]
由上图可知,这个系统一共有两个模块组成——调制模块和解调模块。其中调制模块是信号发生器产生4路输入信号,经WALSH调制、PN扩频、基带求和与并/串变换成为1路信号,完成调制。而解调模块主要是将收到的1路信号首先进行串并转换,在取得同步的基础上进行PN解扩和WALSH解调从而恢复出4路信息。该系统框图就是我们所要实现的系统的基本结构,具体实现方法、步骤、以及原理分析及优化我将针对每个模块,在后面给予具体研究。
对于通信系统的建模,除了外围的模拟电路的设计是整个大系统需要考虑外,更重要的是针对纯数字部分的输入、输出接口信号的要求,进行细致的研究。对于数字通信系统,对于不同的Verilog HDL来建模有着不同的效果。一般对于选择什么方法来进行数字通信的建模,从以下几个方面讨论研究[27]:
·可行性的影响
对于以FPGA通用芯片为目标器件的建模和设计,受到输入信号性质的限制,对于一些速度要求较高的通信系统,由于现行的FPGA目标器件的限制,无法使用。因此对于通信系统的Verilog HDL建模的可行性应在设计系统方案做充分考虑。
·可靠性分析
对于通信系统来说,实现系统的可靠性指标是Verilog HDL建模的难点,这一点与实现硬件电路是相似的,用硬件描述语言,实现系统功能,有许多方法,实现建模的方法也可以不同,有时不同的建模风格和方式,可以得到相同的设计结果和相近的可靠性能,同时,对于组合逻辑电路来说,设计的可靠性,还要考虑组合逻辑电路的竞争和冒险现象和硬件延时问题。
·效率的影响
系统效率的因素包括芯片资源的优化,软件程序运行的速度等。从软件设计方面考虑,采用并行方式比串行运行方式运行速率高。在FPGA设计,合理的引脚定义也是很重要的。一个好的引脚定义可以充分利用芯片资源,而一个不好的引脚定义可能造成芯片资源的巨大浪费,甚至布线失败。
总的来讲,通信系统的性能可以根据公式来计算,采用波形级的仿真或通过硬件构成样机及进行测量来评估。对于数字通信系统的Verilog HDL建模,其建模效果最终要经过一定方式的检验和评估,而检验的结果反过来促进其建模或程序设计的改进与完善。
在上面的讨论,我们已经知道了CDMA数字基带发射系统的基本结构,在这里,我们将对其进行具体的实现。在CDMA系统中,一个比较重要的技术就是码分多址技术,为了方便说明什么是码分多址,我们举一个具体的例子来说明。
因此,简单的讲就是将几路输入信号先进行调制,再扩频,在上变频,发送,而后在接收端进行发送的反过程。
其中地址码的选择直接影响到码分多址的容量、抗干扰能力、接入和切换速度等性能。所选择的地址码应能提供足够数量的自相关函数特性尖锐的码序列,保证信号经过地址码解扩后具有较高的信噪比。其中常用的地址码有m序列,Gold码,Walsh函数正交码。
码发生器在CDMA系统中是作为信号发生作用,同时也是产生pn伪随机码、Walsh码以及同步时钟作用,因此设计好码发生器是十分关键的。在这里码发生器模块命名为B_Creator。下面我就码发生器做具体分析。
在这个模块中,我们需要3分频时钟,24分频时钟,96分频时钟三个同步的时钟,考虑到资源的节约,我们一设计成3,3*8,3*32这样3分频就可以重复使用了,至于为什么要用到3、24、96这几个分频时钟,我将在设计完码发生器这个模块以后给予详细分析。
这个模块通过将全局时钟进行分频,得到我们所需要的三种同步频率,3分频,24分频,96分频,作为该系统的各个局部时钟,这样做就保证了三个时钟之间的倍数关系。
在附录中,我们可以看到三个输出时钟是同步的,其主要用32分频输出信号作为同步模块的时钟信号,再将同步信号与24分频信号做“与“运算,从而实现同步信号,同理可以得到同步的3分频时钟信号。其中3分频用于PN码的时钟,24分频用于WALSH码的时钟频率,而96分频则用于信号输入时钟的频率。
对于8分频和32分频这两个偶数分频,只是简单的计数器分频,其原理比较简单,这里就不再分析了。这里我主要讲一下3分频和同步模块。
图4-2 3分频仿真图
单独对3分频模块进行仿真,不难可以知道其原理,仅仅是利用两个占空比可调的分频器,而他们的区别是一个为上升延触发,一个则是下降延触发,只要用always @(posedge clk)和always @(negedge clk)两个语句就可以实现奇数分频器。
图4-3 时钟信号仿真图
从上图,我们可以看到三个时钟输出信号是同步的,分频后的信号也是正确的。这样就为系统后面的工作奠定了基础[附录一]。
pn码、Walsh码以及信号产生模块
·PN码
本课题我们采用m序列作为伪随机码,为什么叫做伪随机码呢?这是因为,信号并不是真正的随机信号,而是具有周期性的,只是其周期较长,在较短的时间里,呈现随机性,所以叫做伪随机码。
伪随机序列是具有类似噪声序列的性质,是一种貌似随机但实际上有规律的周期性二进制序列。
其又被称为伪随机噪声、伪随机信号或伪随机码。它具有类似于随机噪声的某些统计特性,但同时又能重复产生。所以它既具有伪随机码的优点,又避免了伪随机的缺点,所以获得了广泛的应用。
在研究伪随机之前,我们首先要研究m序列的特性,一般而言,m序列产生是比较简单的,可以利用r级移位寄存器来实现的m序列。M序列产生有两类,一类是比较简单的单型码序列发生起(SSRG,Simple Shift Register Generator),另一类是被称为模块型的码序列发生器(MSRG,Modular Shift Register Generator)。他们的表达式分别为:
…………………………(4-3)
……………………(4-4)
m序列是“最长线性反馈移位寄存器序列”的简称。m序列发生器由:移位寄存器、反馈抽头、模2加法器组成。m序列的关键性质:周期很大时几乎是正交的。
假设我们输入一个0,1信号,那么经过PN扩频以后,其波形的频率就发生的变化,具体过程如下:
图4-4 输入信号
图4-5 伪随机序列
图4-6 输出序列
通过图4-4,4-5,4-6我们看到原来的信号频率增加了,那么我们在接收端只要将该序列与相同的PN码进行解扩就可以恢复出原来的信号。根据m序列多项式,我们可以得到不同m阶数,所对应的设计方法,具体见表4。
表4-1 m序列产生器逻辑关系
m
序列长度
逻辑关系(异或)
4
15
Q0-Q3 , Q2-Q3
5
31
Q1-Q4 , Q2-Q4
6
63
Q0-Q5 , Q4-Q5
7
127
Q0-Q6 , Q5-Q6
8
255
Q1-Q2-Q3-Q7
利用伪随机序列进行信号的扩频,可以提高信号抗窄带干扰的能力,可以防止窃听,提高抗多经传播效应的能力,使多个用户使用同一个频带。
在本课题中,我们选择长度为127的m序列,从上表可以知道,我们可以选择0、6或则5、6两个D触发器进行异或。
图4-7 PN码发生器
通过上面的讨论,我们已经知道了pn,walsh码的基本原理,对于PN码的产生,根据m序列产生器逻辑关系,可以得到图4-7。
对于walsh发生器,只要将-1用0来取代,就可以表示出Walsh码[附录二]。
图4-8 基本输入输出管脚
通过仿真,我们可以得到如下时序图:
图4-9 pn码、Walsh码以及信号
通过上面的讨论,我们已经基本实现了码发生器的两个主要模块,只要将相应的管脚连起来就可以了。仿真图同图4-9,这里就不在给出了,至此,我们完成了码发生器的讨论。码发生器作为系统的发射模块,具有十分重要的作用,必须保证码发生器产生的时钟信号已经码信号的正确性,否则将会给后面的设计带来困难。
码发生器以后就是walsh调制器和pn码扩频,这两个部分的原理比较简单,Walsh码的调制就是用同或门来实现,pn码扩频可以用简单的异或门来实现。
Walsh码的调制规则如下:
表4 Walsh码的调制规则
信息码
0
1
Walsh码
0
1
0
1
调制输出
1
0
0
1
显然,这就是简单的同或门来实现的。因此Walsh码的调制模块如下,分别将信号和walsh码输入这个模块就可以完成信号的调制工作。
图4-11 walsh调制模块
同样道理pn码扩频模块如下:
我们只要将码发生器产生的信息码和Walsh码输入Walsh调制模块再将其输出与pn码一并输入pn码扩频便实现了调制功能。此时的输出信号已经是通过了walsh调制和pn扩频以后的信号了。
调制模块主要作用就是将码发生器所产生的信号进行调制和将相应的时钟进行延时从而达到尽可能同步的要求,使接收端尽可能正确。
经过上面的讨论,我们终于初步完成了调制器模块,也就是所谓的发送模块,由于CDMA数字基带发送模块比较复杂,模块繁多,并为了体现FPGA自顶向下的设计 ,我们首先给出数字基带发送系统的整体框架结构。然后就该模块对系统进行简单的分析。
这里有一点要先说明一下,实际上要将信号发送出去的射频电路一般是发送串行信号的,我们这里的code信号只是并行信号,但是在发射之前,即在下面这个发送基本模块和并/串转换模块之间还应有其他模块,如上变频模块,信号放大模块,同步模块,发送端显示模块等模块,这些模块我们将在最后系统的优化中提到,最后再加上并/串模块从而得到一个完整的数字基带发送系统。
下面我们先来对目前已经完成的基本发送模块做简要的感性分析,理性分析我们将结合接收部分一并做分析并做系统的优化。
我们先来分析每个模块所使用的不同的时钟频率,在这个模块中,一共有三个分频时钟,而且每个模块所使用的时钟也是不同。
这里使用全局时钟几个模块,分别涉及到分频模块、噪声产生模块、基带求和模块、加噪模块以及串并模块。由于分频模块是产生三种不同频率用来使整个系统的各个模块进行工作,因此一定是使用全局时钟。
对于噪声模块,由于噪声模块是产生噪声用来干扰信号,如果采用分频以后的时钟,由于这样时钟频率降低,那么产生的噪声频率可能就比较低,导致周期噪声周期比较长,这样会严重干扰信号的正确性,而且也不符合实际的情况,因为实际中噪声往往是频率比较高的高频部分,所以这里使用全局时钟比较合适。既然噪声模块使用的是频率比较高的全局时钟,那么与噪声有关的几个模块就也必须使用全局时钟。
此外就是信号输入模块时钟为96分频时钟,这是因为信号输入是通过外部设备人为的输入,这相对于PN,WALSH两个模块来讲,一定是一个低速模块,故采用频率最低的96分频时钟做为信号输入时钟。
另外WALSH模块由于是一个时钟产生四个WALSH码,为了保证每一个输入信号都受到WALSH码调制,所以WALSH码的产生模块时钟频率必须是信号输入时钟模块的4倍,那么我们就选择24分频时钟做该模块的时钟。
最后对于PN码发生器,这里没有具体要求,只要保持一个较高的频率便可,这里为什么使用3分频呢,这是因为24和96中的公倍数3是最高的一个频率,为了节约模块资源,我们就采用了3分频作为PN码产生模块的时钟频率。
图4-18就是CDMA数字基带发送系统的波形仿真图。我们可以看到该模块主要功能就是产生PN扩频码和Walsh码,在通过pn码扩频和Walsh码的调制,再将处理的信号进行基带求和。
图4-18 CDMA数字基带发送模块波形图
当然在实际系统中,在发射部分还有许多功能模块,具体是什么模块,实现什么功能我们将在最后的系统优化部分将给出。此外,系统的各个模块的延时也是不同,因此这样会严重影响系统的稳定 ,严重时会导致系统的崩溃。
通过以上几个步骤,我们初步设计好了CDMA数字基带发送系统,在这里,我们假设输入信号in为1101,并且不添加任何噪声。其中g_clk为系统的总的时钟频率,CDMA系统所用的频率是在g_clk进行分频以后得到。而g_clk则作为ASK调制所需要的时钟频率。其中PN码产生是使用3分频后的时钟信号,Walsh是采用24分频以后的时钟信号,而信号输入是采用96分频以后的时钟信号。具体的结果如图5-5。
下面我们来分析一下这个图的结果是否正确,当 walsh是1010的时候,且PN=1的时候,信号1101首先和walsh码1010运算得到信号:1000,再和PN=1运算得到结果:0111,再基带求和输出信号codeq为011,而当PN=0的时候,输出信号为1000,那么codeq为001。而对于walsh码1010前一个1111,同理,当PN=1的时候,我们得到输出信号为0010,那么codeq也为001。
而PN=0的时候,则为1101那么codeq为011,其中最后一列信号ASK调制以后的输出信号,他是一个高频信号,但是信号分布和codeq相同。我们可以看到图中的仿真结果是正确的。但是很明显,codeq信号发生严重的延迟。
我们将刚才的信号放大,我们可以看到PN码和codeq信号并不是同步的,相对于g_clk分频以后的信号CDMA_CLK信号来讲,codeq和PN信号相差一个CDMA_CLK时钟周期。同理,WALSH码和codeq也有两个CDMA_CLK时钟周期的延迟。
将延迟一个CDMA_CLK时钟周期的codeq信号进行并串变换,从图5-7,我们可以看到,并串以后的波形图基本正确,但是相对于CDMA_CLK来讲,又延迟了一个CDMA_CLK时钟周期。
所以,最后我们得到的信号是延迟两个CDMA_CLK时钟周期的信号,为了在接收端能够正确的还原出信号,我们必须作到发同步。
我们在接收端进行数据接收的时候,需要对接收到的信号进行PN解扩和WALSH解调,那么对于某个时刻接收到的信号进行PN解扩和WALSH解调的时候,其中解扩和解调所使用的伪随机序列和WALSH码必须和起初对该信号进行扩频和调制所使用的伪随机序列和WALSH码相同,这样才能保证我们得到正确的发送信号。
在本实例中,我们只要得到同步PN码和WALSH码就可以了。如果系统要求不是特别高的情况下,我们只要将PN码和WALSH码进行简单的延迟来保证发送端的信号是同步的就可以了。如图5-3,通过延迟我们可以将PN和WALSH与输出信号保持大致的同步,在要求不高的情况下,我们可以采用这个方法来实现同步。主要通过时序分析,得到信息处理模块所产生的延迟时间t1,然后设计一个延迟模块使其延迟时间也基本等于t1。
如图,我们将PN码通过两个D触发器,而codeq通过一个3位的D触发器,walsh码通过两个4位的D触发器,那么我们就可以得到如下的结果图。
这样,我们基本做到了发送出去的walsh码和PN码和信号是同步的。从而为接收端的正确接收奠定了基础。
通过本节讨论,我们已经基本实现了发送系统,并且发射出了同步的信号和PN码和walsh码。至此,我们主要完成进度如下。
图5-11 完整的发送框图
本节,我们主要将起初发送的信号进行并串转换,和ASK调制,使该信号更有利于发送,在下一节,我们将简单介绍一下接收模块。