1.1超宽带简介
超宽带技术(Ultra-Wideband, UWB)早在20世纪中期就已在雷达信号处理领域引起了人们的关注[1]。多年以来,由于这项技术一直受到军方的限制,在民用领域未能得到快速的发展和广泛的应用。随着2002年FCC允许超宽带民用通信系统投入使用[2],超宽带凭借其传输速率高、成本低、功率小、抗干扰能力强等优点[3],日益受到关注,迅速成为研究热点。
超宽带技术的历史最早可以追溯到一百年前波波夫和马可尼发明越洋无线电报的时代。马可尼发明的最早的火花隙发射器的信号就占据了很宽的频带,他在1897年演示的第一个无线通信系统就符合超宽带无线电这个词的含义。不过,现代意义上的超宽带无线电,又称为冲激无线电(IR:Impulse Radio)技术,出现于20世纪60年代,最早则可追溯到1942年De Rosa提交的随机脉冲系统的专利。但其应用一直局限于军事、救援搜索、雷达定位及测距等方面,从80年代开始,随着频带资源的紧张以及对于高速通信的需求,超宽带技术才开始被应用于无线通信领域。
FCC对超宽带给出了两种定义[4-6]: 第一种是信号的10dB带宽大于或等于500MHZ,第二种是信号相对带宽大于等于0.2。由于FCC对于超宽带信号的产生方式没有明确规定,因此,超宽带信号有多种产生方式。传统而经典的UWB技术采用持续时间只有几十皮秒到几纳秒的脉冲信号来传送信息,信号带宽高达几GHz。其平均发射功率很低,频谱很宽,因此功率谱密度非常低,几乎湮没在各种电磁干扰和背景噪声之中。具有低截获率、隐蔽性强、保密性好等优点,同时它还具有对信号衰落不敏感、定位精度高以及系统复杂度低等优点[7-8]。另一类的UWB技术仍然基于正弦载波的概念发射连续波,其超宽带的实现可以采用扩展频谱技术或者提高数据速率进而提高射频带宽,其数据传输速率可达上百Mbit/s甚至几Gbit/s 。主要用来构建短距离的高速WPAN、家庭无线多媒体网络以及替代高速短程有线连接等。
第2章MB-OFDM UWB原理介绍
2.1超宽带通信技术
2.1.1UWB的定义
超宽带这一术语是1989年首先由美国国防部正式提出使用的。早期的名称有脉冲无线电(Impulse Radio)、无载波(Carrier Free)等。为了促进并规范UWB技术的发展,2002年FCC对UWB信号给出了明确的定义。FCC规定,UWB信号为任何绝对带宽大于500MHz或相对带宽(Fractional Bandwidth)大于0.2,并满足FCC功率谱密度限制要求的信号。这里相对带宽定义为:
(2-1)
其中,和分别表示信号的功率谱密度衰减10dB时所对应的上限频率和下限频率,为信号的中心频率,为信号的绝对带宽,
图2.1 UWB信号与窄带信号的比较
2.1.2UWB的实现方案经过多年的发展,UWB的通信方式可以分为脉冲无线电(impluse radio, IR)和载波调制方式。脉冲无线电是传统的UWB实现方式,载波调制方式是FCC规定了UWB通信的频谱范围和功率限制后提出的,其中调制载波方式又可以分为单载波的直接序列扩频超宽带(direct sequence UWB, DS-UWB)[14]和多载波的多带正交频分多路复用(Multi-Band OFDM Alliance, MBOA)体制[15-16]。
1、脉冲无线电
2、DS-CDMA 方案
3、MBOA 方案
MBOA方案是以传统的OFDM通信为基础,使其符合FCC关于UWB的定义,具有UWB的特点和优点而形成的。MBOA系统使用的技术与传统的OFDM技术基本上是一样的,将3.1~10.6GHz频段划分为14个子频带,但每个子频带带宽为528MHz。在此基础上将这些子频带分为五个频带组,第一组:3168一4752MHz;第二组:4752~6336MHz;第三组:6336~7920MHz;第四组:7920一9504MHz;第五组:9504一10560MHz。频带的划分方案如图2.6所示
图2.6 MBOA 频带划分示意图
同时系统采用时频交织的方式实现多址,即给每个用户分配一个独有的时频码,用户根据时频码在不同的频带间转换。MBOA方案和OFDM系统一样可以达到很高的频谱利用率,在频谱利用方面也有很高的灵活性,它可以有效、灵活地使用频带,回避敏感频段。
第3章MB-OFDM-UWB无线通信发射机基带设计
3.1发射机总体架构MB-OFDM超宽带基带发射系统是超宽带通信系统的重要组成部分,参照关于MB-OFDM超宽带基本原理中给出的基带发射系统原理图,按照本文要求,设计所需要的MB-OFDM-UWB基带发射系统如图3.3所示,
图3.3 MB-OFDM-UWB基带发射系统框图
它主要由扰码器、卷积编码器、比特交织器、QPSK星座映射、导频插入、IFFT部分组成[25-26]。完成信号的信源编码和信道编码,对信号进行QPSK映射以及IFFT计算,产生符合基带传输要求的超宽带基带信号,降低系统的误码率。
上述功能模块会按照一定的时序对数据流进行一系列的基带处理,最终形成一个个标准的MB-ODFM符号。数据流在处理过程中会被送入到不同的处理模块中,进行不同的操作,另外各个模块的处理时间也不尽相同,为了使数据能够被正确的处理,必须使得各个处理单元严格按照一定的时序进行,彼此之间精确同步。主控单元的任务就是产生处理单元所需的控制信号,使它们的工作能够符合时序要求。另外,因为数据流的处理速率会不断发生变化,因此,需要时钟生成单元产生处理模块所需要多个工作时钟。下面分别介绍各个部分的原理和设计过程。
3.1.1发射机主控单元
主控单元MCU 是整个发射机的核心模块,它控制所有子模块的工作,以保证整个发射机的时序正确,同时还承担者与MAC层交互通信的任务。由于每次发射处理都是MAC层发起的,因此MCU与MAC层之间采用中断的通信模式。为了能够精确的控制各个功能模块的处理时间,主控单元MCU采用计数的模式来进行控制。
可以用状态图来描述MCU的工作过程,当MCU接收到MAC层发送来的请求信号(TXSTART_REQ)后,首先发送复位信号PHY_RST对整个处理器进行初始化。与请求信号同步串行输入的还有28位PHY_TXSTART信号,其中包括待发射帧长(LENGTH,12bit)、发射速率(RATE,5bit)、发射功率(TXPWR,3bit)、扰码器字段(SCRAMBLER,2bit)、突发模式字段(BM,1bit)、前导符类型字段(PT,1bit)、发射机TF码字段(TX_TFC,3bit)和发射机使用带组的最小有效比特(LSB,1bit)等发射参数,MCU接收完毕后将其送至相应的输出端口对处理模块进行控制。紧接着接收80bit的MAC头,按8位并行方式传输。并由RATE信号翻译出数据的编码方式,传输速率和每符号数据比特等等。
PSDU数据帧的输入是通过MCU向MAC层发送DATA_REQ请求来进行的,每发送一起数据请求,MAC层将送出一个符号的数据,数据的长度由发射速率(RATE)决定,并且根据LENGTH参数计算DATA_REQ的发射次数,即将LENGTH参数置入一计数器作为初始值,由于该参数表示的是数据帧的字节长度,因此每发送一次DATA_REQ后,LENGTH都要减去一个符号的字节长度,即生成一个符号的字节数,当计数器的值小于或等于0时,则发送结束。
图3.4 MCU状态转换图
3.1.2加扰
在数字通信中,若经常出现长的“1”或者“0”序列,将会影响到位同步的建立和保持。在发射中使用扰码,可以避免这种数据序列对接收机定时的不利影响。同时为了限制电路中存在的不同程度的非线性特性对其他电路通信造成的串扰,就要求数字信号的最小周期足够长,若将数据信号变换成近似于白噪声的数字序列则可以满足要求,这就是加扰所要实现的。所谓加扰,就是不用增加冗余而扰乱信号,改变数据的统计特性,使其具有近似白噪声统计特性的一种技术。
扰码是以线性反馈移位寄存器(或伪随机序列)理论作为基础。伪随机序列系列具有良好的随机性和接近于白噪声的相关函数,并且有预先的可确定性和可重复性。这些特性使得伪随机序列非常适合用来对数据进行加扰。
周期为的伪随机序列是由n阶线性移位寄存器产生的,但是线性移位寄存器所产生的序列并不一定是伪随机序列,他与联接多项式有密切关系。只有找到了本原多项式,才能由它构成伪随机序列的产生器。但是寻找本原多项式并不是很简单的。所以前人大量的计算已将常用本原多项式列成表备查,本系统使用一个长度为32767的帧同步扰码器加扰,帧同步扰码器使用的生成多项式为:
(3-1)
线性反馈移位寄存器的反馈逻辑输出输入数据进行模2相加,即可得到图3.5所示的扰码器的一般形式:
图3.5 扰码器原理图
3.1.3信道编码
根据系统传输信道的情况,为了保证通信系统传输的可靠性,克服信道中的噪声和干扰,专门设计了一类抗干扰的技术,这家就是各种信道编码。它根据一定的规律在待发送的信息码元中人为的加入一些必要的校验码元,在接收端利用这些校验码元与信息码元之间的监督规律,发现和纠正差错,以提高信息码元传输的可靠性。其中待发射的码元为信息码元,人为加入的多余的码元为校验码元。信道编码的目的是试图以最少的校验码元为代价,换取最大程度的可靠性的提高。这些方法虽然增加了信息的冗余度,降低了系统容量,但增加了发送符号之间的相关性,能够提高信息传输可靠性。
常用的信道编码有线性分组码、循环码、BCH码、RS码和卷积码等。本系统使用的编码为卷积码,卷积码是一种应用广泛的纠错编,下面对其原理详细的阐述。
卷积码也是分组的,与分组码的不同在于,卷积码的编码设计中存在记忆性。他的校验码元不仅与当前组的信息元有关,而且与此前若干组的信息元有关。这种码的纠错能力强,不仅可以纠正随机误差,而且可以纠正突发误差。输出与先前输入比特的相关性决定了卷积码的编码器是一个有限状态机。
卷积编码器是用移位寄存器、加法器及乘法器用串联和并联的方式构成的特定的电路。一般可记为(n,k,N-1)码[27],其中N表示编码器中寄存器的节数,k表示每节寄存器的位数,n表示编码器输出码元位数,其约束长度为N位。每个时刻编码器输出n位码元,这不仅与当前的输入的k位码元有关,而且还与编码器中N级寄存器中信息码元有关。
卷积码编码器可看做由一个有k个输入端,n个输出端,且具有N节寄存器构成的一个有限状态,或有记忆系统,典型结构图3.6所示。
图3.6 卷积编码结构图
以(3,1,3)卷积码为例,如图3.7所示为一个约束长度为4,编码效率为1/3的卷积编码器。
图3.7 (3,1,3)卷积码编码器
(3,1,3)码的三个子生成元为:
(3-2)
所以,该码的生成多项式矩阵为:
(3-3)
该卷积编码器由3个移位寄存器D和2个模2加法器组成。每输入一个信息元就会编出两个校验码元、,顺序输出成、、,码长为3,其中信息位仅占一位,由上式可知校验码元、不仅与本组信息有关,还与前3组信息元有关。
3.1.4交织
在实际的信道中,比特差错经常是成串发生的。然而,上述的卷积编码仅在检测和校正单个差错和不太长的差错串时才有效,对连续突发的错误却无能为力。的信道中往往是随机错误和连续突发错误并存的,那么仅采用纠错技术来提高信道传输的可靠性并不能取得很好的效果。为了能够纠正那些连续突发的错误,常常还会采用交织技术。
交织是为了在时域或频域或者同时的在时域、频域上分布传输的信息比特,使得信道的突发错误在时间上得以扩散,使得译码器可以将它们当做随机错误来处理。经常使用的交织器分两种,一种是分组交织器、另一种是卷积交织器。卷积交织器更适合于连续比特流系统。所以本系统使用的是分组交织器,下面就详细介绍其原理。
分组交织是针对一组比特进行的,该分组中的比特数量称为交织深度,交织深度愈大,对突发错误的纠正能力就越强,然而由于交织在系统上会引起时延,而且时延的长短和交织深度成比例,因此交织深度通常取决于系统规定的所能容忍的最大延时。
交织存储器实际上为一行列交织矩阵,它按列写入数据信息,然后按行读出,或者相反。可见利用RAM就可实现分组交织器。例如数据输入按行写入一个的RAM中,得到:
(3-4)
然后按列读出这时:,即完成了数据的交织。
在本系统中交织深度设置为一个MB-OFDM符号,标准规定了一个MB-OFDM符号包含200个编码比特,所以交织深度为200,硬件上采用一块片上双口RAM作为交织器,系统采用乱序写入数据,顺序读出数据来实现交织处理,即按照交织后的地址写入到RAM里,而后再依次读出。
3.1.5QPSK调制
QPSK(Quadrature Phase Shift Keying)正交相移键控,是一种数字调制方式。他利用载波的四种不同的相位来表征数字信息,每一种载波相位代表两个比特信息,对于输入的二进制数字序列应该先进行分组,将每两个比特编在一起,共有四种组合,即00,01,10,11,其中每一组称为双比特码元,这样的双比特元通常是按照格雷码排列的,然后用不同的载波相位去表征他们,它规定了四种载波相位,分别为0°、90°、180°、270°或者(45°、135°、225°、315°),他与载波相位的关系可以用矢量图来表示。
图3.11 QPSK矢量图
在QPSK调制中,将输入的四进制比特先映射到一个复平面上,形成复数的调制符号,然后将其实部和虚部(该符号的I,Q分量)分别对应调制在互相正交的两个载波上(和)。
QPSK可以表示为[28-29]
( ) (3-7)
QPSK编码表映射后的I/Q数据再乘上进行归一化,即得到了调制后的I/Q值,从而实现了调制。
表3.5 QPSK编码表
Input bit
| I-out
| Q-out
|
00
| -1
| 1
|
01
| -1
| -1
|
11
| 1
| -1
|
10
| 1
| 1
|
解调器则根据星座图及接收到的载波信号的相位来判断发送端发送的信息比特。
3.1.6导频和保护子载波插入
在实际信道中,接收机接收到的信号都会存在一定的频率偏差,虽然可以利用训练序列进行信道均衡,频率偏差校正,但仍然会存在一定的剩余频率偏差,而且这个偏差会随着时间的增加而不断的积累,造成所以子载波产生一定的相位偏转。因此,我们需要对参考相位进行不断的跟踪,这样就需要在子载波中插入导频信号。
一个OFDM符号的数据经过QPSK映射后形成100个连续的复数信号,将这些数据的复数分别对应到128个子载波(标号从 -64~63)中的100个子载波上,12个导频对应到-55,-45,-35,-25,-5,-5,5,15,25,35,45和55这12个子载波上,10个保护子载波位于每个OFDM符号的边缘,即 -61,-60,···,-57和57,58,···61上。对应中心频率的0号子载波和 -64,-63,-62,62,63号子载波上填充零值,这样就可以保证系统子载波频谱集中,从而使得系统占用的频谱带宽尽可能的窄,以节约频谱资源,减少信道间干扰。
在所有的PLCP前导符之后的OFDM符号中,子载波的12个被指定为导频信号,以便于相干检测,和提供鲁棒性用以克服频率偏移和相位噪声,插入的12个导频信号依次为:“1,1,-1,-1,1,1,-1,1,-1,1,1,1”。根据伪随机序列生成器生成的序列,这些导频信号的极性需要做相应的变化。即如果扰码器输出为“1”的话,下一个符号的导频信号变化为 “-1 ,-1,1,1-,1,-1,1,-1,1,-1,-1,-1”。初始种子可以与扰码器的一致。
保护子载波是为了防止有效子载波偏移到带外,导致信号丢失而产生的,也可以用来改善性能,这些载波上的数据应当通过从OFDM符号最近的边缘复制最外面的承载数据的子载波产生,如下所示
(3-8)
由于导频和保护子载波插入之后是IFFT模块,因此本系统使用RAM来进行插入,我们将数据子载波,导频子载波,保护子载波上的数据按IFFT变换的要求写入RAM中,在使用128点IFFT变换时,输入的100个数据的标号首先按照如下公式进行变换。其中-55,-45,-35,-25,-5,-5,5,15,25,35,45和55,以及-61,-60,···,-57和57,58,···61即为插入导频和保护子载波处。
(3-9)
3.1.7IFFT
离散傅里叶变换(DFT)在数字信号处理中有着非常的作用,MB-OFDM-UWB的复等效基带信号可以用离散傅里叶反变换(IDFT)的方法得到,但是由于DFT的计算量复杂度会随着N的增加呈二次方增长,当N较大时,DFT的计算量太大,使得系统无法对问题进行实时的处理。因此,当更加方便快捷的快速傅里叶变换(FFT)被提出来之后,便很快得到了广泛的应用。
3.2本章小结
本章首先根据系统设计需求,对超宽带发射基带处理系统进行设计,并将其进行模块化的划分,对各个部分进行理论研究和设计方案的制定,为系统的实现作必要的理论铺垫。
第4章基带系统各模块的实现及测试
4.1各个模块的实现
4.1.1时钟产生单元
整个发射机基带数字处理系统工作时一共需要四个不同频率的时钟,时钟生成单元通过一个DCM和一个8分频的计数器使用外部输入时钟生成需要的所有时钟。时钟生成模块的端口定义如表4. 1所示,模块框图如图4.2所示。
表4.1 时钟生成模块的端口定义
端口名
| 位宽
| 输入/输出
| 说明
|
CLK_IN
| 1
| 输入
| 外部输入时钟
|
CLK_RST
| 1
| 输入
| 复位接口,接全局复位信号
|
MAC_CLK
| 1
| 输出
| MAC层时钟
|
DIN_CLK
| 1
| 输出
| 物理层时钟
|
CB_CLK
| 1
| 输出
| 信道编码后输出数据时钟,根据编码方式不同而不同
|
SYS_CLK_D
| 1
| 输出
| QPSK调制后输出数据时钟,1/2倍的CB_CLK
|
LOCKED
| 1
| 输出
| 时钟输出有效信号
|
图4.2 时钟产生模块框图
由于本论文采用的是3/4编码速率,因此,CB_CLK时钟频率为DIN_CLK的4/3倍。对整个模块进行布局布线后仿真,仿真结果如图4.3所示
图4.3时钟产生模块仿真结果
将时钟生成模块下载到目标器件后,使用在线片内信号分析仪ChipScope 观察得到的波形如图4.4所示,由于ChipScope采样观测信号所用的时钟设定为时钟模块频率最高的CB_CLK,对于频率为CB_CLK3/4倍的DIN_CLK采样结果有较大的偏差,而对于MAC_CLK与CB_CLK也不是整数倍关系,因此也达不到占空比相等的脉冲显示。
图4.4 时钟产生模块在线测试结果
4.1.2主控单元mcu主控单元MCU的工作任务在上一章节中已经做了详细的描述,它控制这整个发射机基带处理系统的正确运作,通过与MAC层进行交互动作,接收MAC层发送的数据信息,并且生成个模块所需要的控制信息。
图4.5 MCU模块框图
对工程文件进行综合、布局布线后仿真,得到如图4.6所示结果,可以看到MCU正确的输出了各级控制信号,并且按照正确的时序输出MAC头和待处理数据。
图4.6 MCU 仿真结果
使用Chipscope添加观察信号采样时钟、触发信号和待观察信号,重新综合、布局布线生成bit文件,下载到目标板后用ChipScope进行在线测试,得到观测结果如图4.7所示。通过仿真结果和在线测试结果的对比,可以验证设计的正确性。
图4.7 MCU在线测试结果
4.1.3扰码模块
扰码器的硬件实现框图如下图所示。
图4.8 扰码模块硬件实现图
因为MCU传输过来的数据帧是以字节为单位并行传输的,因此在加扰前,需要将并行的数据转换为串行数据,具体实现时,加入一个串并转换模块来进行并串转换。
本文扰码器模块的伪随机序列生成多项式为:,扰码种子编号为00,初始状态设为15’b0011_1111_1111_111,这样通过一个15位的移位寄存器进行循环移位,产生所需的伪随机序列,然后将输入值与伪随机序列进行异或(模2加法),从而实现扰码。主要实现代码如下:
对工程文件进行综合,布局布线仿真,得到如图4.9结果。
图4.9 扰码模块仿真结果
在图4.9中 data_in为MAC层发送的8位并行数据,SCRAM_DIN为经过并串转换之后的串行输出的数据,SCRAM_DOUT为经过扰码处理后的输出,当SCRAM_LOAD为高时,对扰码器内部反馈移位寄存器SCRAMBLER进行初始化,并且在数据输入有效期间,线性反馈移位寄存器SCRAMBLER进行移位操作。
将仿真通过的工程文件使用ChipScope 添加观察信号采样时钟、触发信号和待观察信号后重新综合、布局布线生成bit文件,下载到目标板后用ChipScope 进行在线测试,设定DIN_CLK为ChipScope采样观测信号所用的时钟,得到如图4.10所示观测结果,图4.10的在线测试结果与图4.9的后仿真结果吻合,验证了设计的正确性。
图4.10 扰码模块在线测试结果
4.1.4信道编码 在MB-OFDM-UWB系统中根据不同的码率有不同的编码方式,卷积编码模块根据MCU模块输出的码率控制信号RATE来控制编码方式,系统中涉及到两种码率进行卷积编码,1/2码率编码和3/4码率编码,因此在实现方式上采用约束长度为7,码率为1/2的卷积编码器,这样1/2码率可以直接由卷积编码器生成,3/4码率可以在1/2码率卷积编码的基础上进删余操作得到。
1/2码率的卷积编码生成多项式是
(4-1)
(4-2)
可以使用移位寄存器来实现,将卷积编码输出放入缓存,然后根据控制信号,选择卷积码输出时钟将删余后数据输出或直接输出。
图4.11 信道编码模块框图
对工程文件进行综合、布局布线后仿真,得到如图4.12所示结果。
图4.12 信道编码模块仿真结果
其中 RATE是待处理数据传输速率,跟据它来选择不同的速率编码,当RATE=5’b00111时,表示当前为3/4码率编码,输出时钟是输入时钟的4/3倍。
使用ChipScope观测得到结果如图4.13所示。通过仿真结果和在线测试结果的对比,可以验证设计的正确性。
图4.13 信道编码在线测试结果
4.1.5交织在交织模块中,使用双口块RAM对数据进行分组交织,在硬件实现上,本文使用Xilinx公司提供的IP核 Dual Port Block Memory 5.0来实现双口块RAM功能,模块框图如图4.14所示
图4.14 Dual Port Block Memory模块框图
Dual Port Block Memory 5.0 IP核具有两套完全独立的数据线、地址线、和读写控制线,并允许两个系统同时对其进行随机性的访问。
图4.15 交织模块框图
对工程文件进行综合、布局布线后仿真,得到如图4.16所示结果。
图4.16 信道编码模块仿真结果
使用Chipscope添加观察信号采样时钟、触发信号和待观察信号,重新综合、布局布线生成bit文件,下载到目标板后用ChipScope进行在线测试,得到观测结果如图4.17所示。通过仿真结果和在线测试结果的对比,可以验证设计的正确性。
图4.17 信道编码模块在线测试结果
4.1.6QPSK调制在MB-OFDM-UWB系统中,在进行IFFT之前要对数据做QPSK调制,即将编码和交织过后的二进制数据序列映射到复数星座上,其本质就是将串行数据转换为并行数据输出。程序实现时,将串行输入数据存入一个两位的缓存中,再根据缓存中的值进行映射。映射后的数据格式为8位:一位符号位,一位整数位,六位小数为,负数用补码表示,主要代码如下:
对工程文件进行综合、布局布线后仿真,得到如图4.19所示结果。与使用ChipScope进行在线测试结果相比较,结果完全相同,验证了设计的正确性。
图4.19 QPSK模块仿真结果
图4.20 QPSK模块在线测试结果
4.1.7导频和保护子载波插入
在本文设计中,导频和保护子载波插入也是利用双口块RAM来实现的,根据子载波映射到IFFT的输入端口的编号,将相应数据对应的复数写入双口块RAM的地址中,当进行IFFT变换时,只需将其顺序读出即可。
对工程文件进行综合、布局布线后仿真,得到如图4.22所示结果。
图4.22 导频和保护子载波插入仿真结果
其中PIEN=1代表导频与保护子载波插入开始,将插入后的数据从双口RAM中顺序读出,就得到了最后输出的结果。
使用Chipscope添加观察信号采样时钟、触发信号和待观察信号,重新综合、布局布线生成bit文件,下载到目标板后用ChipScope进行在线测试,得到观测结果如图4.23所示。通过仿真结果和在线测试结果的对比,可以验证设计的正确性。
图4.23 导频和保护子载波插入在线测试结果
4.1.8IFFT变换
在MB-OFDM-UWB系统中,OFDM调制和解调可以分别通过IFFT/FFT来实现,频域数据符号经过N点的IFFT运算变换为时域信号,接下来便可以传输给射频前端发射出去。
本文利用Xilinx的Ipcore FFT v5.0来实现IFFT功能,FFT v5.0核采用DIT的Cooley-Tukey算法,提供4种不同的结构: Pipelined, Streaming I/O, Radix—4 Burst I/O,Radix—2 Burst I/O,Radix—2 Lite Burst I/O,
在这四种结构中,第一种流水式输入/输出可以实现连续帧处理,速度最快,但也需要最多的乘法器。基4突发式输入/输出结构拥有较小的结构,需要较少的资源,但必须等待前一帧数据处理完成,才能处理下一帧数据,转换时间较第一种长。另外两种基2结构较为简单,使用资源也最少,但是速度也是最慢的。
基于运算速度和芯片资源的综合考虑,本文采用Radix—4 Burst I/O结构的IFFT配置方式,FFT IP核模块框图如图所示[32]。
图4.24 FFT IP核模块框图
上面已经讲到,采用Burst I/O模式的IFFT核需要等待前一帧数据处理完成才能输入下一帧,如果输入使用原来的SYS_CLK_D时钟来作为IFFT变换的时钟,在下一帧来的之前是无法完成计算的,因此,需要对输入IFFT的数据进行时钟转换,将速度提升一倍,以满足时序要求。当IFFT变换完成后,再利用时钟转换模块将数据调整回原来的速率。实现框图如图4.25所示
图4.25 IFFT 实现框图
仿真结果如图4.26所示
图4.26 IFFT模块仿真结果
从图中可以看出,每组输入数据都能满足在上一组数据输出结束后开始输入,从而满足突发式输入输出的设计要求。使用Chipscope添加观察信号采样时钟、触发信号和待观察信号,重新综合、布局布线生成bit文件,下载到目标板后用ChipScope进行在线测试,由于受到资源的限制,采样深度和采样信号个数都受到限制,只能够采样一些关键的数据,得到观测结果如图4.27所示。通过仿真结果和在线测试结果的对比,可以验证设计的正确性。
图4.27 IFFT在线测试结果
4.2本章小结
在这一章中,根据第三章的设计方案,完成对各个模块的Verilog HDL程序编写仿真,以及在ISE仿真平台上进行详细的验证,我们选用Xilinx公司的Spartan-6型FPGA作为目标硬件,使用Verilog HDL作为描述语言。对于硬件实现的验证调试采用了Xilinx公司的在线片内信号分析工具ChipScope Pro,通过FPGA上的实测结果与Modelsim 上的仿真的比较结果验证设计的正确性。
第5章基带整体功能仿真与实现
5.1系统原理图和功能仿真
本文的设计中采用Verilog HDL编写各个模块,并在原理图编辑界面将各个模块连接起来,得到了整个系统的顶层文件。这样即能够简单明了的对各个模块进行描述,又能够对整个系统有清晰、直观的认识。
图5.1 MB-OFDM-UWB 顶层模块图
为了验证设计的可行性,在整个基带系统中,加入MAC_SOURCE模块作为基带系统的数据源,它在时钟信号和复位信号的作用下,通过计数器控制计数,向MCU发送请求信号(TXSTART_REQ)后和28比特PHY_TXSTART信号,以及80比特的MAC头和5个OFDM符号数据。
通过对工程文件进行综合、布局布线后仿真,得到如图5.3所示的完整的数据处理过程。从图中可以看出,当接收到MAC层发送传输数据请求信号(TXSTART_REQ)后,向MAC层发送DATA_REQ信号,当接收到8位并行数据DATA_IN后,对其进行并串转换,加扰得到串行输出SCRAM_DOUT,接下来经过3/4编码输出DCONV_DOUT,交织后得到DINT_DOUT,对交织后数据做QPSK映射,输出复数信号,DM_RE为信号实部,DM_IM为信号虚部,然后插入导频和保护子载波数据,得到DPI_RE和DPI_IM,对其做IFFT变换,获得输出数据dataOutR和dataOutI两路正交信号,最终完成5个OFDM符号数据的处理。仿真结果表明系统的功能和时序都完全符合要求。
布局布线后下载配置文件(.bit文件)到目标板中运行。用ChipScope 进行在线测试,设定CB_CLK为ChipScope采样观测信号所用的时钟,DATA_START为触发信号,由于芯片资源有限,所以只对其中一些关键信号进行采样,采样深度设为2048,得到如图5.7所示观测结果,图5.7所示的在线测试结果与图5.3的后仿真结果吻合,验证了设计的正确性。
5.2本章小结
本章的主要工作在于,将第四章中实现的各个模块在顶层模块中进行连接,在管脚约束、综合、布局布线后,下载到FPGA目标板上。通过布局布线后仿真和静态时序分析,对设计的功能和时序进行验证,结果表明本文设计的电路功能和时序都满足要求,最后采用了在线片内信号分析工具ChipScope Pro进行在线测试,验证了系统的可行性。