You are on page 1of 68

西 南 交 通 大 学

本科毕业设计(论文)

基于 FPGA 的 GMSK 调制/解调器的研究与实现

年 级:2008 级
学 号:20084209
姓 名:王富超
专 业:电子科学与技术

2012 年 6 月
西南交通大学本科毕业设计(论文) 第I页

摘要

本文基于 FPGA 的 GMSK(Gaussian Mininum Shift Keying,高斯最小频移键控)调


制与解调的研究,着重研究利用 FPGA 硬件实现对信号的 GMSK 的调制与解调的方
法。FPGA 采用 ALTERA 公司的 cyclone II 系列 EP2C8Q208N 芯片;由于 GMSK 是
在进行 MSK 调制前将矩形信号先通过一个高斯型的低通滤波器的调制方法,所以本
文先通过对 MSK 调制与解调方法的介绍,再进一步对 GMSK 调制与解调的研究。本
文先利用 Matlab 对算法进行验证,然后再利用 verilog HDL 语言去实现,利用仿真工
具 modelsim 对其进行仿真,通过与 Matlab 的仿真结果做比较,从而验证算法的正确
性,最后利用 SignalTap 进行硬件平台上的测试,观测本设计的实际性能。

关键字:高斯低通滤波器,CORDIC 算法,FIR 低通滤波器,SignalTap。


西南交通大学本科毕业设计(论文) 第 II 页

目录
摘要 .........................................................................................................................I
第一章.绪论 ........................................................................................................ 1
1.1 背景 .................................................................................................................. 1
1.2 研究内容 ......................................................................................................... 2
1.2.1 GMSK 技术国内外研究现状及发展趋势 .......................................... 2
1.2.2 GMSK 调制基本原理与优点 .............................................................. 2
第二章 GMSK 的基本原理 ................................................................................. 4
2.1 MSK 基本原理 ............................................................................................. 4
2.1.1 MSK 信号的特性研究 ......................................................................... 5
2.1.2 MSK 信号的调制原理 ......................................................................... 9
2.1.3 MSK 信号的解调原理 ....................................................................... 10
2.2 GMSK 的基本原理 ....................................................................................... 11
2.2.1 高斯滤波器的相关特性 .................................................................... 11
2.2.2 GMSK 信号的数学表达 .................................................................... 14
2.2.3 GMSK 调制解调的原理 .................................................................... 15
2.3 小结 ................................................................................................................ 18
第三章 GMSK 调制与解调的数字化实现 ........................................................ 19
3.1 软件简介 ........................................................................................................ 19
3.1.1 Matlab 的发展历史及功能简介......................................................... 19
3.1.2 Quartus II 的发展历史及功能简介.................................................... 21
3.1.3 Modelsim 的发展现状及功能简介 .................................................... 22
3.2 GMSK 调制与解调的数字化实现 ............................................................... 23
3.2.1 差分编码与解码 ................................................................................ 24
3.2.2 高斯低通滤波器的设计与实现 ......................................................... 25
3.2.3 CORDIC 算法和基带信号调制 ......................................................... 28
3.2.4 GMSK 调制 FPGA 实现的 RTL 电路及仿真 ................................... 32
3.2.5 GMSK 解调 ........................................................................................ 33
3.3 小结 ................................................................................................................ 40
第四章 仿真与验证 ............................................................................................ 41
西南交通大学本科毕业设计(论文) 第 III 页

4.1 基于 Simulink 的 GMSK 调制/解调的仿真................................................. 41


4.2 Quartus II 和 Modelsim 的时序仿真 ............................................................ 44
4.2.1 伪随即序列产生 ................................................................................. 44
4.2.2 加性高斯白噪声信道的实现 ............................................................. 47
4.2.3 时序仿真 ............................................................................................ 48
4.3 基于 SignalTap 的 FPGA 硬件平台的验证 ................................................. 49
4.3.1 SignalTap 简介 .................................................................................... 49
4.3.2 基于 SignalTap 的 GMSK 调制/解调信号的测试 ........................... 51
4.4 小节 ................................................................................................................ 52
第五章 硬件平台的搭建 .................................................................................... 53
5.1 硬件电路介绍与分析 .................................................................................... 53
5.2 PCB 板的制作 ............................................................................................... 59
5.3 小节 ................................................................................................................ 60
第六章结论与方案提高 ...................................................................................... 61
6.1 结论 ................................................................................................................ 61
6.2 方案提高 ........................................................................................................ 61
致谢 ...................................................................................................................... 63
参考文献 .............................................................................................................. 64
附录 ...................................................................................................................... 64
西南交通大学本科毕业设计(论文) 第1页

第一章.绪论

1.1 背景

扩频通信技术是当今信息社会最为先进的无线电通信技术之一,而且,其技术在
无线光通信领域有着非常广泛的应用。由于扩频技术具有抗干扰能力强,扰截获,抗
多径、多址能力强,保密性好及测距精度高等一系列优点,因而越来越受到人们的重
视。随着大规模和超大规模集成电路技术、微电子技术、数字信号处理技术的迅猛发
展,以及一些新型器件的出现,使得扩频技术在无线局域网、皮网、 2G、3G移动通
信、卫星全球定位,军用通信,航天通信和深空探测等诸多领域都得到了较为广泛的
应用。
GMSK(Gaussian Filtered Minimum Shift Keying - GMSK)调制与解调技术是扩
频通信中不可缺少的一项重要的技术之一。而且现在广泛使用的 GSM(Global System
for Mobile communication)移动通信体制就是使用 GMSK 调制方式。
因此,研究 GMSK
技术是非常有现实意义的。
高斯滤波最小频移键控(Gaussian Filtered Minimum Shift Keying - GMSK)调制
技术是从 MSK(Minimum Shift Keying)调制的基础上发展起来的一种数字调制方式,
其特点是在数据流送交频率调制器前先通过一个 Gauss 滤波器(预调制滤波器)进行
预调制滤波,以减小两个不同频率的载波切换时的跳变能量,使得在相同的数据传输
速率时频道间距可以变得更紧密。由于数字信号在调制前进行了 Gauss 预调制滤波,
调制信号在交越零点不但相位连续,而且平滑过滤,因此 GSMK 调制的信号频谱紧
凑、误码特性好,在数字移动通信中得到了广泛使用,如现在广泛使用的 GSM(Global
System for Mobile communication)移动通信体制就是使用 GMSK 调制方式。
l979 年由日本国际电报电话公司提出的 GMSK 调制方式。有较好的功率频谱
特性,较优的误码性能,特别是带外辐射小,很适用于工作在 VHF 和 UHF 频段的移
动通信系统,越来越引起人们的关注。GMSK 调制方式的理论研究已较成熟,实际
应用却还不多,主要是由于高斯滤波器的设计和制作在工程上还有一定的困难。
西南交通大学本科毕业设计(论文) 第2页

1.2 研究内容

本文主要研究利用 GMSK 调制/解调技术对信号进行调制/解调。随着科技的发展,


全数字化处理应用的更加广泛,更为迅速。当前先进的 FPGA 芯片可以运行时钟频率
已超过 400M,内部集成了几百万甚至上千万个门电路和许多功能强大的宏单元,如
算术处理单元(累加器、乘法器、状态处理机)、专用存储器、组合逻辑器件(比较器、
计数器、寄存器、选择器),甚至还内嵌了高性能的 CPU 和 DSP 核,为进行数字系
统设计提供了强有力的工具。因此,本文将着重研究来利用 FPGA 实现全数字化的
GMSK 调制与解调。

1.2.1 GMSK 技术国内外研究现状及发展趋势

随着现代通信技术的发展,移动通信技术得到快速发展,许多优秀的调制技术应
运而生,其中 GMSK 技术是无线通信中比较突出的一种二进制调制方法,它具有良
好的功率谱特性和较好的抗干扰性能,特别适用于无线通信和卫星通信,目前,很多
通信标准都采用了 GMSK 技术,例如,GSM,DECT 等。
在我国数字通信系统中,全数字接收机已经得到了广泛的应用。利用数字化方法
设计通信系统中的调制解调技术是实际应用中的一项重要技术。最小高斯频移键控
(GMSK)是一种典型的连续相位调制方式,具有包络恒定、频谱紧凑、抗干扰能力强等
特点,可有效降低邻道干扰,提高非线性功率放大器的效率,已在移动通信(如 GSM 系
统)、航天测控等场合得到广泛应用。

1.2.2 GMSK 调制基本原理与优点

调制前高斯滤波的最小频移键控简称 GMSK,基本的工作原理是将基带信号先经
过高斯滤波器成形,再进行最小频移键(MSK)调制(图 1-1)。由于成形后的高斯脉冲包
络无陡峭边沿,亦无拐点,因此频谱特性优于 MSK 信号的频谱特性。
西南交通大学本科毕业设计(论文) 第3页

图 1-1

GMSK 信号具有很好的频谱和功率特性,特别适用于功率受限和信道存在非线性、
衰落以及多普勒频移的移动突发通信系统。
GMSK 两大特点:
第一,包络恒定或包络起伏很小;
第二,具有最小功率谱占用率。
因此,GMSK 调制能够使在给定的带宽和射 频信道条件下数据吞吐量最大。
GMSK 是当前现代数字调制技术领域研究的一个热点。
西南交通大学本科毕业设计(论文) 第4页

第二章 GMSK 的基本原理


GMSK 调制技术是在 MSK 调制技术的基础上,在 MSK 调制前加入高斯型低
通滤波器,从达到了压缩功率谱,主瓣以外衰减更快,带外辐射功率小的优良特性。
因此,在研究 GMSK
调制解调技术之前,我们有必要先研究一下 MSK 调制解调技术和高斯滤波器的
相关知识。下面我们将分别介绍这两部分内容。

2.1 MSK 基本原理

最小频移键控(MSK)是 2FSK 的改进。2FSK 体制虽然性能优良、易于实现,


并得到了广泛的应用,但是他有一些不足之处。首先,它占用的频带宽度比 2PSK 大,
即频带利用率较低。其次,若用开关方法产生 2FSK 信号,则相邻码元波形的相位可
能不连续,因此在通过带通特性的电路后由于通频带的限制,使得信号波形的包络产
生较大的起伏。此外,2FSK 信号的两种码元波形不一定严格正交。若二进制信号的
两种码元互相正交,则误码率性能将更好。
为了克服上述缺点,对于 2FSK 信号作了改进,发展出 MSK 信号。MSK 信号是
一种包络恒定、相位连续、带宽最小并且严格正交的 2FSK 信号。

图 2-1 MSK 调制示意图


西南交通大学本科毕业设计(论文) 第5页

2.1.1 MSK 信号的特性研究

1. MSK 信号的频率间隔
MSK 信号的第 k 个码元可以表示为
ak
sk (t )  cos( wct  t  k ) kTs  t  (k  1)Ts (2.1 -1)
2Ts

式中: c  2 f c ,为载波角载频; ak  1 ; 为码元宽度;  k 为第 k 个码元的

初始相位,它在一个码元宽度中是不变的。
由公式(2.1-1)可以看出,当输入码元为“1”时, ak  1 ,故码元的频率

f1 等于 f c  1 / (4Ts ) ;当输入码元为“0”时,ak  1 ,故码元频率 f 0 等于 f c  1 / (4Ts ) 。

所以, f1 和 f 0 的差等于1 / (2Ts ) ,这是 2FSK 信号的最小频率间隔。

2.MSK 码元中波形的周期数
式(2.1-1)可以改写为

 cos(2 f1t   k ) 当ak   1


s (t )  
cos(2 f 0t   k ) 当ak   1 ( k  1)Ts  t  kTs (2.1-2)
式中:
f1  f c  1 (4TS ); f 0  f c  1 (4TS );

由于 MSK 信号是一个正交的 FSK 信号,它应该满足式:


sin[( w1  w0 )Ts  2 k ] sin[( w1  w0 )Ts   k ] sin(2 k ) sin(0)
  
w1  w0 w1  w0 w1  w0 w1  w0 (2.1-3)
上式左端 4 项分别等于零,所以将第三项 sin(2 k )=0 的条件代入第一项,得到要

求:
sin(2 wcTs )  0 (2.1-4)

即要求
4 f cTs  n n  1, 2,3,   (2.1-5)

1
或 Ts  n n  1, 2,3,  
4Ts

(2.1-6)
西南交通大学本科毕业设计(论文) 第6页

式(2.1-6)表示,MSK 信号每个码元持续时间 Ts 内包含的波形周期数必须是 1/4

周期的整数倍,式(2.1-6)可以改为:
n m 1
fc   (N  ) (2.1-7)
4Ts 4 Ts

式中:N 为正整数; m  1, 2, 3,   。
以及有

 1 m 1 1
 f1  f c   ( N  )
 4Ts 4 Ts
 (2.1-8)
 f  f  1  ( N  m  1) 1
 0 c
4Ts 4 Ts

由式(2.1-8)可得到:
m 1 m 1
TS  ( N  )T1  ( N  )T0 (2.1-9)
4 4
式中: T1  1 / f1 ; T0  1 / f 0 。

式(2.1-9)给出一个码元持续时间 Ts 内包含的正弦波周期数。由此式看出,

无论两个信号频率 f1 和 f 0 取何值,这两种码元包含的正弦波数均相差 1/2 个周期。

如果 N  2 , m  1 ,对于“1”和“0”,一个码元持续时间内分别有 2.5 个和 2 个正弦


波周期。

3.MSK 信号的相位连续性
式(2.1-1)可以改写为
sk (t )  cos[ wc t   k (t )] ( k  1)Ts  t  kTs (2.1-10)

ak
式中:  k (t )= t  k (2.1-11)
2Ts

 k (t ) 称作第 k 个码元附加相位。由式(2.1-11)可见,在此码元持续时间内它是

t 的直线方程。并且,在一个码元持续时间 Ts 内,它变化 ak / 2 ,即变化  / 2 .按照相

位连续性的要求,在第 k  1 个码元的末尾,即当 t  ( k  1)Ts 时,其附加相位  k 1 (kTs )

就应该是第 k 个码元的初始附加相位  k (kTs ) 。所以,每经过一个码元的持续时间,


西南交通大学本科毕业设计(论文) 第7页

MSK 码元的附加相位就改变  / 2 ;若 ak  1 ,则第 k 个码元的附加相位增加  / 2 ;

反之,若 ak  1 ,,则第 k 个码元的附加相位减小  / 2 。

如果 ak ={+1 +1 +1 -1 -1 +1 +1 +1 -1 -1 -1 -1 -1 -1 +1},则 MSK 的相位路径如图

2-2 所示图 2-2 中正斜率直线表示传 1 码时的相位轨迹,负斜率直线表示传 0 码时的


相位轨迹。这种由可能的相位轨迹构成的图形称为相位网格图。在每一码元时间内,
相对于前一码元载波相位不是增加  / 2 ,就是减小  / 2 。有此图可以看出,附加相
位在码元间是连续的。

图 2-2 MSK 的相位路径

4.MSK 信号的正交表示法
下面将证明式(2.1-1)可以用频率为 f s 的两个正交分量表示。将式(2.1-1)

用三角公式展开:
ak a
sk (t )  cos( t   k ) cos ct  sin( k t   k ) sin c t 
2Ts 2Ts

ak t a t
(cos cos  k  sin k sin  k ) cos c t 
2Ts 2Ts
ak t a t
(sin cos  k  cos k sin  k )sin c t
2Ts 2Ts

(2.1-12)
西南交通大学本科毕业设计(论文) 第8页

考虑到式  k =0或 (mod 2 ) ,有

sin  k =0 , cos  k =  1

ak t a t
以及考虑到 ak  1, cos t  cos ,及 sin k t  ak sin ,式(2.1-12)变为
2Ts 2Ts 2Ts 2Ts

t t
sk (t )  cos  k cos cos wc t  ak cos  k sin sin wct 
2Ts 2Ts
( k  1)Ts  t  kTs
t t
pk cos cos wc t  qk sin sin wct
2TS 2Ts
(2.1-13)
式中:
pk = cos  k (2.1-14a)
qk =ak cos  k (2.1-14b)
式(2.1-13)表示,此 MSK 信号可以分解为同相分量(I)和正交分量(Q)
两部分。I 分量的载波为 cos wc t , pk 中包含输入码元信息, cos  t / 2Ts 是其正弦形加

权函数;Q 分量的载波为 sin wc t , qk 中包含输入码元信息, sin  t / 2Ts 是其正弦形加

权函数;
5.MSK 信号功率普密度
MSK 信号有良好的频谱特性。这里只将 MSK 信号与一般 QPSK 信号的谱密度特
性进行比较。MSK 和 QPSK 信号的功率谱表达式分别为
2
16 A2Ts  cos 2 ( f  f c )Ts 
PMSK ( f )  (2.1-15)
 2  1  16( f  f c ) 2 

2
 sin[2 ( f  f c )Ts ] 
2
PQPSK ( f )  2 A Ts   (2.1-16)
 2 ( f  f c )Ts 
式中: f c 为信号载频; Ts 为码元宽度。
西南交通大学本科毕业设计(论文) 第9页

图 2-3 MSK,QPSK 和 OQPSK 功率普密度比较

从上式可知,MSK 信号的功率谱近似与 f 4 成反比,而 QPSK 信号则近似与 f 2 反

比,因此 MSK 信一号的能量集中在频率较低处。MSK 和 QPSK 信号的功率谱如图 4 所


示。由图可知,MSK 信号的主瓣较宽,第一个零点出现为 3 / 4Ts 处,而 QPSK 信号的主

瓣较窄,第一个零点出现在1 / 2Ts 处。在主瓣之外 MSK 信号的谱衰减比 QPSK 快得多,

因其旁瓣极小,若计其一 30dB 信号带宽,MSK 则远远优于 QPSK 的频谱效率。若以 99%


的能量集中程度为标准,MSK 信号的频带宽度约为1.2 / Ts ,而 QPSK 的频带宽度约为

6 / Ts

2.1.2 MSK 信号的调制原理

由式(2.1-13)可知,MSK 信号可以用两路正交的分量表示:
t t
sk (t )  pk cos cos wc t  qk sin sin wc t ( k  1)Ts  t  kTs
2TS 2Ts
西南交通大学本科毕业设计(论文) 第 10 页

式中:右端第一项为同相分量,其载波为 cos wc t ;第二项称作正交分量,其载波

为 sin wc t 。

pk pk cos  t / 2Ts p cos  t / 2T cos w t



cos( t / 2Ts )

cos w t
k s c

ak bk f  1 / 4Ts f  fc
MSK信号

sin  t / 2Ts sin wc t
qk
 q sin t / 2T
k s
 qk sin  t / 2Ts sin wct
图 2-4 MSK 信号的产生方法框图
MSK 信号的产生过程如下:
(1)对输入数据序列进行差分编码;
(2)把差分编码器的输出数据用串/并变换器分成两路,并相互交错一个比特
宽度 Ts ;

(3)用加权函数 cos  t / 2Ts 些和 sin  t / 2Ts 分别对两路数据进行加权;

(4)用两路加权后的数据分别与正交载波 cos wc t 和 sin wc t 进行相乘;

(5)把两路输出信号进行叠加。

2.1.3 MSK 信号的解调原理

MSK 信号属于数字鉴频调制信号,因此可以采用一般鉴频器方式进行解调,
其原理如图
图(2-5)所示。鉴频器解调方式结构简单,容易实现。

图 2-5 MSK 鉴频器解调原理图


由一于 MSK 信号调制指数较小,采用一般鉴频器方式进行解调误码率性能不
太好,因此在对误码率有较高要求时大多采用相干解调方式。图 2-6 是 MSK 信号相干
解调器原理图,其由相干载波提取和相干解调两部分组成
西南交通大学本科毕业设计(论文) 第 11 页


cos wct
输入 输出

sin wct

图 2-6 MSK 信号相干解调原理图

2.2 GMSK 的基本原理

尽管 MSK 具有包络恒定、相对较窄的带宽和能进行相干解调的优点,并且功率谱
在主瓣以外衰减较快;但是在移动通信中,对信号带外辐射功率的限制十分严格,一
般要求必须 70dB 以上。由于 MSK 信号仍不能满足这样的要求,因此,针对上述要求,
提出高斯最小频移键控(GMSK)。GMSK 调制方式能满足移动通信环境下对邻道干扰的
严格要求,它以其优良的性能而被数字蜂窝移动通信系统(GSM)所采用。
GMSK 调制原理就是输入的双极性不归零码(NRZ)先通过高斯滤波器进行滤波,
然后进行 MSK 调制, 即 GMSK 调制是在 MSK 调制器之前加入高斯低通预调制滤波器
实现的。GMSK 调制器设计重点是高斯滤波器的设计。GMSK 调制原理框图如图 2-7 所
示。

图 2-7 GMSK 调制原理框图

2.2.1 高斯滤波器的相关特性

为了有效地抑制 MSK 的带外辐射并保证经过顶调制滤波后的己调信号能采用简


单的 MSK 相干检测电路,预调制滤波器必须具有以下特点:
西南交通大学本科毕业设计(论文) 第 12 页

(1)带宽窄并且具有陡峭的截止特性;
(2)冲激响应的过冲较小;
(3)滤波器输出脉冲而积为一常量,该常量对应的一个码元内的载波相移为
 /2。
其中,条件(1)是为了抑制高频分量;条件(2)是为了防止过大的瞬时频偏;条件(3)
是为了使调制指数为 0.50。

1.高斯低通滤波器函数
高斯低通滤波器的传输函数为

H ( f )  exp( a 2 f 2 ) (2.2-1)

式中, a 是与高斯滤波器的 3dB 带宽 Bb 有关的一个常数。由 3dB 带宽定义有

1
H 2 ( Bb )  (2.2-2)
2

exp( 2a 2 Bb2 )  1 / 2 (2.2-3)

所以

1
aBb  ln 2  0.5887 (2.2-4)
2
由此可见,改变 a , Bb 将随之改变。

滤波器的冲击响应为

   
h (t )  exp  (  t )2  (2.2-5)
a  a 
由式(2.2-5)看出, h (t ) 不是时限的,但它随着 t 2 按指数规律迅速下降,所以可

以近似它宽度是有限的。由于它的非时限性,相邻脉冲会产生重叠。

2. 高斯滤波器的矩形脉冲响应
矩形脉冲表示为:

1 t T /2 T T
rect (t )    u (t  )  u ( t  ) (2.2-5)
0 else 2 2

其中 T表示码元周期, u (t ) 为单位阶跃函数.
西南交通大学本科毕业设计(论文) 第 13 页

则高斯滤波器的矩形脉冲响应 g (t ) 为:
g (t )  rect (t ) * h(t )
 T T 
  u (t  )  u (t  )  * h ( t ) (2.2-6)
 2 2 
 2 B T   2 B T 
Q (t  )   Q  (t  ) 
 ln 2 2   ln 2 2 

式中 Q (t ) 为:

1   2
Q (t )   exp( )d (2.2-7)
2 2

g (t ) 在  到  上的积分为 T, 即  g (t )dt  T , T是前面提到的脉冲码元周期。


归一化的高斯滤波器带宽 BT 决定了GMSK已调信号的功率带宽, BT 越小, 对 GMSK


的功率谱旁瓣抑制越好, 但是造成的码间干扰就会越大; 当 BT   时,GMSK频谱
和MSK频谱相同。
2 
由误差补偿函数 erfc 为: erfc(t )  exp(  2 )d ,可知
  t

1   2 1 2
Q (t )   exp( )d  erfc( ) (2.2-8)
2 2 2 2


1  2 B T  1  2 B T 
g (t )  erfc  ( t  )   erfc  (t  )  (2.2-9)
2  ln 2 2  2  ln 2 2 

根据式(2.2-9)画出 BT=0.5 和 BT=0.3 的高斯滤波器的矩形脉冲响应,如图 2-8


所示,容易看出当 BT 值减小后,单个脉冲响应将被拓宽,从而码间干扰就会越严重。
西南交通大学本科毕业设计(论文) 第 14 页

图 2-8 高斯滤波器的矩形脉冲响应

2.2.2 GMSK 信号的数学表达

如果输入为双极性不归零矩形脉冲序列 s ( t ) :

s( t )   an b( t  nT ) , a n  1 (2.2-10)
n

式中,

1 T
 0 | t |
b(t )   T 2
0 else

其中,T为码元间隔。高斯预调制滤波器的输出为

x ( t )  s ( t ) * h (t )   an g (t  nT ) (2.2-11)
n

式中,g(t)为高斯预调制滤波器的脉冲响应:

1 T T /2  
g ( t )  b( t ) * h ( t )   exp[ ( ) 2 ]d (2.2-12)
T T T /2 a a
GMSK 信号的表达式为

  t   T  
sGMSK (t )  cos  wc t    a g   nT  2 d 
n (2.2-13)
 2T 
西南交通大学本科毕业设计(论文) 第 15 页

式中, an 为输入数据。

高斯滤波器的输出脉冲经 MSK 调制得到 GMSK 信号,其相位路径由脉冲的


形状决定,或者说在一个码元内已调波相位的变化取决一于其间脉冲的而积。由于高
斯滤波后的脉冲无陡峭沿,也无拐点,因此,其相位路径得到进一步平滑.如图 2-9
所示。

图 2-9 GMSK 与 MSK 相位路径比较

2.2.3 GMSK 调制解调的原理

1. GMSK 调制原理
产生 GMSK 信号最简单的方法是数据流经高斯滤波后直接对 VCO 调频,如图 2-10
所示。但该方法要保持 VCO 中心频率稳定存在一定困难。克服此方法缺点的办法是采
用锁相环路(PLL)调制器,如图 2-11 所示。图中,偷入数据序列先进行  / 2 相移 BPSK
调制,然后将该信号通过锁相环对 BPSK 信号的相位突跳进行平滑,使得信号在码元
转换时刻相位连续,而且没有尖角。该方法实现 GMSK 信号的关键是锁相环传愉函数
的设计,以满足输出信号功率谱特性要求。
西南交通大学本科毕业设计(论文) 第 16 页

{an } GMSK信号

图 2-10 GMSK 信号产生器

输入 输出
 / 2移相BPSK

cos wct

图 2-11 GMSK 信号产生器


由式(2.2-13)GMSK 信号可以表示为正交形式,即

sGMSK (t )  coswct   (t )  cos (t ) cos wct  sin  (t )sin wct (2.2-14)

式中

 t   T 
 (t )   a g   nT  2  d (2.2-15)
2T  
n


根据式(2.2-14)和(2.2-15),画出 GMSK 调制的原理框图,如图 2-12 所示

I (t) I (t ) cos wct


cos  (t )

cos wct

an (t ) g (t )  (t ) GMSK信号
 dt
sin wct
Q (t )
sin  (t )
Q (t )sin wct

图 2-12 GMSK 调制的原理框图


GMSK 调制过程:
(1) 输入信号{an (t )} 经过高斯低通滤波器,得到高斯预调制滤波器的脉冲响应

g(t);
(2) 对g(t)进行积分,获得相位信号  ( t ) ;
西南交通大学本科毕业设计(论文) 第 17 页

(3) 计算出 GMSK 信号的同相分量 I (t ) 和正交分量 Q (t ) ;

(4) 同相分量和正交分量分别于载波 cos wc t 和 sin wc t 相乘,得到 I (t ) cos wct 和

Q (t ) sin wc t 两路信号。

(5) I (t ) cos wct 和 Q (t ) sin wc t 两路信号相加的 GMSK 信号。

2. GMSK 解调原理
GMSK 信号的基本特性与 MSK 信号完全相同,其主要差别就是 GMSK 信号
的相位轨迹比 MSK 信号的相位轨迹平滑。因此,MSK 信号的相干解调器原理完全适
用 GMSK 信号的相干解调。所以这里我们不再做说明。我主要研究非相干解调。
对于 GMSK 信号可以采用多种非相干技术进行解调。非相干解调技术不需要
知道参考相位,因此也就不需要锁相环路、本地晶振以及载波恢复电路了。相对与相
干解调技术,非相干解调技术的成木更低,更易于实现。非相干解调技术的种类很多。
土要分为限幅鉴频器和差分解调两个大类,以及基于这两类技术的多种衍生方案;本
文将主要介绍差分解调。
非相干差分解调,利用接收信号以及延时信号进行解调。下面我们首先介绍
一比特差分解调,原理图 2-12 所示:

bk

图 2-13 一比特差分解调原理框图
图 2-12 中 s ( t ) 为接收到的 GMSK 信号,若忽略噪声的影响,则:

s(t )  sGMSK (t )  A(t )cos wct   (t ) (2.2-16)

s ( t ) 信号经过一个码元周期 T 的延时,和九十度移相,得到 W ( t ) ,

W (t )  A(t  T ) cos[ wc (t  T )   (t  T )   / 2] (2.2-17)

s ( t ) 与 W ( t ) 相乘得到:

1
x (t )  s(t )W (t )  A(t ) A(t  T ) {sin( (t )   (t  T )  wcT )
2 (2.2-18)
 sin(2 wct  wcT   (t )   (t  T ))}

经过低通滤波同时考虑到 wcT  2n ,得到 y (t ) :


西南交通大学本科毕业设计(论文) 第 18 页

1
y (t )  A(t )(t  T )sin( (t )   (t  T )  wcT )
2
(2.2-19)
1
 A(t ) A(t  T )sin(  (t ))
2
式中  (t )   ( t )   (t  T ) 是一个码元的相位增量,在t = (k + 1)T时刻对y(t)抽

样得到 y ((k  1)T) ,它的符号取决于  (( k+1)T) 的符号,判决准则为:

y ((k+1) T)  0 ,即  ((k+1) T)  0 判决解调的数据为 bk  1 ;

y ((k+1) T)  0 ,即  ((k+1) T)  0 判决解调的数据为 bk  1 ;

2.3 小结

本章开始讲了 MSK 调制解调技术的基本原理,为 GMSK 技术做了理论铺垫,然


后,具体讲解 GMSK 技术的基本原理。在 GMSK 调制过程中的难点是高斯滤波器的设计,
本文通过 BT 值的改变比较了高斯滤波器的性能,以及对调制效果影响;调制前通过
加入高斯低通滤波器使得 GMSK 信号的的相位轨迹较 MSK 信号的相位轨迹更加平滑,
从而提高了调制性能。本最后讲解了一比特差分解调的原理,这也是本文在后面硬件
实现对 GMSK 信号进行解调的方法。
西南交通大学本科毕业设计(论文) 第 19 页

第三章 GMSK 调制与解调的数字化实现

数字信号的传输方式分为基带传送输(baseband transmission)和带通传输
(bandpass transmission)。然而,实际中的大多数信道(如无线信道)以具有带通特
性而不能直接传输基带信号,这是因为数字基带信号往往具有丰富的低频分量,为了
使数字信号在带通信道中传输,必须用数字基带信号对载波进行调制,以使信号与信
道的特性相匹配。所谓全数字化调制就是依靠程序来产生调制信号的样值序列。而全
数字化解调就是用程序来对已调波的样值序列进行处理,实现解调算法,达到恢复基
带(数字)信号的目的。数字化调制解调对软件无线电来说是必不可少和至关重要的。
而且随着数字芯片的(如 FPGA 和 CPLD)的迅速发展,是全数字化调制与解调变得
更加广泛,而且全数字化可以大大减少对模拟器件的使用,而且是对设备的维护费用
也大大降低。所以全数字化将是未来通信领域的发展趋势之一。
本章将着重讨论基于 FPGA 的 GMSK 调制与解调的数字化实现,本章将讨论如
何实现数字化的高斯滤波器,利用 CORDIC 算法完成对基带信号的调制和载波的实
现。本章将用到 Matlab、Quartus II、Modelsim 等软件,我们将先利用 Matalb 对我们
的整体设计方案进行验证,确认方案的可行性后,然后再利用 Quartus II 软件用 Verilog
HDL 语言完成算法的硬件描述,最后通过 Modelsim 对编写的程序进行功能仿真和时
序仿真,为硬件实现最好准备。
本章将先简要介绍一下 Matlab、Quartus II、Modelsim 三个软件的发展历史和基
本功能。然后在对全数字 GMSK 调制与解调做详尽的分析。

3.1 软件简介

3.1.1 Matlab 的发展历史及功能简介

MATLAB 是矩阵实验室(Matrix Laboratory)的简称,是美国 MathWorks 公司出


品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术
计算语言和交互式环境,主要包括 MATLAB 和 Simulink 两大部分。
西南交通大学本科毕业设计(论文) 第 20 页

1.基本功能
MATLAB 是由美国 mathworks 公司发布的主要面对科学计算、可视化以及
交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及
非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为
科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解
决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如 C、Fortran)的编辑
模式,代表了当今国际科学计算软件的先进水平。
MATLAB 和 Mathematica、Maple 并称为三大数学软件。它在数学类科技应
用软件中在数值计算方面首屈一指。MATLAB 可以进行矩阵运算、绘制函数和数据、
实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制
设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB 的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式
十分相似,故用 MATLAB 来解算问题要比用 C,FORTRAN 等语言完成相同的事情
简捷得多,并且 MATLAB 也吸收了像 Maple 等软件的优点,使 MATLAB 成为一个
强大的数学软件。在新的版本中也加入了对 C,FORTRAN,C++,JAVA 的支持。可以直
接调用,用户也可以将自己编写的实用程序导入到 MATLAB 函数库中方便自己以后调
用,此外许多的 MATLAB 爱好者都编写了一些经典的程序,用户可以直接进行下载
就可以用。

2.基本应用
MATLAB 产品族可以用来进行以下各种工作:
(1)数值分析
(2)数值和符号计算
(3)工程与科学绘图
(4)控制系统的设计与仿真
(5)数字图像处理技术
(6)数字信号处理技术
(7)通讯系统设计与仿真
(8)财务与金融工程
(9)管理与调度优化计算(运筹学)
西南交通大学本科毕业设计(论文) 第 21 页

MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、
测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独
提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定
类型的问题。

3.发展历程
20 世纪 70 年代,美国新墨西哥大学计算机科学系主任 Cleve Moler 为了减轻学
生编程的负担,用 FORTRAN 编写了最早的 MATLAB。1984 年由 Little、Moler、Steve
Bangert 合作成立了的 MathWorks 公司正式把 MATLAB 推向市场。到 20 世纪 90 年
代,MATLAB 已成为国际控制界的标准计算软件。

3.1.2 Quartus II 的发展历史及功能简介

Quartus II 是 Altera 公司的综合性 PLD 开发软件,支持原理图、VHDL、Verilog


HDL 以及 AHDL(Altera Hardware Description Language)等多种设计输入形式,内
嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整 PLD 设计流程。
Quartus II 可以在 XP、Linux 以及 Unix 上使用,除了可以使用 Tcl 脚本完成设计
流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集
中,易学易用等特点。
Quartus II 支持 Altera 的 IP 核,包含了 LPM/Mega Function 宏功能模块库,使用
户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方 EDA
工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方 EDA 工具。
此外,Quartus II 通过和 DSP Builder 工具与 Matlab/Simulink 相结合,可以方便
地实现各种 DSP 应用系统;支持 Altera 的片上可编程系统(SOPC)开发,集系统级
设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直
观易用的接口,越来越受到数字系统设计者的欢迎。其他
Altera 的 Quartus II 可编程逻辑软件属于第四代 PLD 开发平台。该平台支持一个
工作组环境下的设计要求,其中包括支持基于 Internet 的协作设计。Quartus 平台与
Cadence、ExemplarLogic、 MentorGraphics、Synopsys 和 Synplicity 等 EDA 供应商的
西南交通大学本科毕业设计(论文) 第 22 页

开发工具相兼容。改进了软件的 LogicLock 模块设计功能,增添 了 FastFit 编译选项,


推进了网络编辑性能,而且提升了调试能力。支持 MAX7000/MAX3000 等乘积项器

3.1.3 Modelsim 的发展现状及功能简介

Mentor 公司的 ModelSim 是业界最优秀的 HDL 语言仿真软件, 它能提供友好


的仿真环境,是业界唯一的单内核支持 VHDL 和 Verilog 混合仿真的仿真器。它采用
直接优化的编译技术、Tcl/Tk 技术、和单一内核仿 真技术,编译仿真速度快,编译
的代码与平台无关,便于保护 IP 核,个性化的图形界面和用户接口,为用户加快调
错提供强有力的手段,是 FPGA/ASIC 设计的首选仿真软件。
主要特点:
· RTL 和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真;
· 单内核 VHDL 和 Verilog 混合仿真;
· 源代码模版和助手,项目管理;
· 集成了性能分析、波形比较、代码覆盖、数据流 ChaseX、Signal Spy、虚
拟对象 Virtual Object、Memory 窗口、Assertion 窗口、源码窗口显示信号值、信号条
件断点等众多调试功能;
· C 和 Tcl/Tk 接口,C 调试;
· 对 SystemC 的直接支持,和 HDL 任意混合;
· 支持 SystemVerilog 的设计功能;
· 对系统级描述语言的最全面支持,SystemVerilog,SystemC,PSL;
· ASIC Sign off。
ModelSim 分几种不同的版本:SE、PE、LE 和 OEM,其中 SE 是最高级的版本,
而集 成在 Actel、Atmel、Altera、Xilinx 以及 Lattice 等 FPGA 厂商设计工具中的均
是其 OEM 版本。SE 版和 OEM 版在功能和性能方面有较大差别,比如对于大家都关
心的仿真速度问题,以 Xilinx 公司提供的 OEM 版本 ModelSim XE 为例,对于代码少
于 40000 行的设计,ModelSim SE 比 ModelSim XE 要快 10 倍;对于代码超过 40000
行的设计,ModelSim SE 要比 ModelSim XE 快近 40 倍。ModelSim SE 支持 PC、UNIX
西南交通大学本科毕业设计(论文) 第 23 页

和 LINUX 混合平台;提供全面完善以及高性能的验证功能;全面支持业界广泛的标
准;Mentor Graphics 公司提供业界最好的技术支持与服务。

3.2 GMSK 调制与解调的数字化实现

下面我们先介绍一下 GMSK 调制与解调数字化实现的全过程,以及数字化实现


与传统模拟方法实现过程中的不同点。然后在分别介绍各个模块是如何数字化实现的。
图 3-1 是 GMSK 调制与解调数字化实现原理框图。

cos  (n )

cos wcn

sGMSK (n )
 (n )

sin wcn
sin  (n )

b '(k )

bk

图 3-1 GMSK 调制与解调数字化实现原理框图

GMSK 调制与解调数字化实现过程:
(1) a(k)是二进制码元输入序列,通过差分编码得到序列b(k);
(2) b(k)经过数字高斯低通滤波器获得脉冲响应序列g(n);
(3) g(n)通过累加器(模拟方法中的积分器)获得相位序列  ( n ) ;

(4) 利用 cordic 算法计算出 cos  ( n ) 和 sin  ( n ) 的值;

(5) 将同相分量 cos  ( n ) 和正交分量 sin  ( n ) 分别于载波序列 cos wc n 和 sin wc n 相


(6) 将两路正交信号序列相加的到 GMSK 调制信号序列 sGMSK ( n ) 。
西南交通大学本科毕业设计(论文) 第 24 页

(7) sGMSK ( n ) 通过 D/A 转换为模拟信号,通过信道传到接收端;

(8) 接收端通过 A/D 转换器将模拟信号转换为数字信号,得到序列s(n);


(9) s(n)进过时间T的延时和 90 度相移,得到序列W(n);
(10) s(n)和W(n)相乘得到序列X(n);
(11) X(n)经过数字低通滤波器得到序列y(n);
(12) 对y(n)进行抽样判决,得到b’(k);
(13) 对b’(k)进行差分解码得到a’(k);
以上就是 GMSK 技术数字化的全过程,其中(1)~(6)是数字化 GMSK 调制
过程,(9)~(11)是数字化 GMSK 一比特差分解调过程。下面我们将分别介绍图
3-1 中各模块如何利用 FPGA 实现。

3.2.1 差分编码与解码

如果输入信号是一个二进制单极性序列 a  {1, 0} ,则编码序列定.义为:

bi  ai  bi 1 (3.2-1)

解码序列定义为:
ai  bi  bi 1 (3.2-2)

如果输入的数据是双极性或非归零(NRZ)二进制序列,则编码序列定义为:
bi   ai bi 1 (3.2-3)

解码序列定义为:
ai  bi bi 1 (3.2-4)

根据式(3.2-1)~(3.2-2),利用 Verilog HD 语言对输入数据 ak  {10111010010101}

进行差分编码,图 3-2 是利用 Modelsim 仿真的结果

图 3-2 差分编码
输出数据是: bk  {1101001110011001} ;
西南交通大学本科毕业设计(论文) 第 25 页

3.2.2 高斯低通滤波器的设计与实现

由于脉冲信号通过高斯低通滤波器后的脉冲响应是符合叠加定理,所以我们可以
先求出单个脉冲的脉冲响应,然后再将各个单个脉冲响应相加来得到整个脉冲信号序
列的脉冲响应。
式(2.2-6)就是单个脉冲通过高斯低通滤波器后的响应函数。下面我们将详细讨
论如何实现高斯低通滤波器。
由式(2.2-6),
(2.2-7)可知,理想的高斯滤波器取值范围是 ( , ) ,它是物理

不可实现的, 因此实际系统中需要对 g(t)进行截短或近似。截短后的高斯滤波函数为


N
 g (t ) , | t | T
g '(t )   2 (3.2-5)
 0 , else

式中, N 为截短长度。
在工程应用中, 往往对单个矩形脉冲通过高斯滤波器的响应波形进行 3Tb 或
5Tb 截短即近似。3T 截短后的带外能量只占 0. 7%, 5T 截短后的带外能量只占
1.5124  10 8 。在采取 3Tb 截短时, 单个矩形脉冲通过滤波器后, 其输出扩展到 3T 码
元宽度。也就是说, 当输入一个宽度为 T 的脉冲时, 其响应输出被展宽, 其输出将影
响前后各一个码元的响应,当然它也受到前后各一个码元的影响。可见, 输入码元在通
过高斯滤波后, 已不可避免地引入了码间干扰。但有意引入可控的码间干扰, 以压缩
调制信号的频谱, 解调时利用预知前后码元的相关性, 仍可以准确地进行解调判决。
本文设计的高斯滤波器是通过对理想的高斯滤波矩形脉冲响应进行 5T 截短获
得的, 也可以看成是对理想的高斯滤波矩形脉冲响应?进行加矩形窗获取的( 其矩形
窗窗口宽度为 5 倍码元宽度) 。也就是说, 单个码元输入, 通过滤波后扩展为 5 码元
宽度的输出数据。假设单个码元进行 32 点采样, 即每个码元含 32 个样点, 那么单个
码元经过 5T 截短的高斯滤波, 则对应 160 个样点值输出。而多个连续码元经过滤波
器后, 则需要对各个码元滤波后的扩展结果进行叠加运算, 就可以得到整个比特流经
过高斯滤波的结果。由于在一个码元时间里采样点数和滤波后的输出值是有限的和确
定的, 所以可以制作成表格存储在 ROM 中, 这样可以大大简化滤波器设计, 本文即
采用查表法实现高斯滤波器。
西南交通大学本科毕业设计(论文) 第 26 页

为了获得高斯滤波器的系数, 首先是确定调制参数。具体调制参数包括带宽 B、
码元传输速率 R (与码元宽度 T 相关) 、采样速率 fs( 决定了每个码元的采样点数)、
高斯滤波器的截短长度 N 等。设码元传输速率 R= 16 kbit/ s, 采样率 fs= 32R ( 即每
个码元采样 32 个点) , BT= 0. 3。选取 5T 的高斯截短波形, 每个码元宽度 T 采样 32
点( 每个样点用 14 位的二
进制数表示) , 则产生 160 点高斯滤波器系数的 Matlab 代码如下:
R= 16000;
T= 1/R;
sample_number =32;
fs= sample_number* R;
B= 0.3/T;
t=-2.5*T+T/sample_number/2:T/sample_number:
2.5*T-T/sample_number/2;
cof= 1/2*erfc(2* pi* Bb/ (sqrt( 2.0*0.69315)) * ( t - T/2) )-1/2*erfc(2*
pi* Bb/( sqrt(2.0*0.69315) )* ( t + T/2) );
coef= (round((2^14-1)* cof/sample_number));
stem(t,coef);

图3-2 高斯滤波器系数
设 a0 、 a1 、 a2 、 a3 、 a4 为串行存储的连续 5 个码元, coef0、 coef1、 coef2、

coef3、 coef4 对应按区间分为五段的高斯滤波器系数, 先对输入码元数据进行串行


存储, 然后根据连续的 5 个码元取值进行相应滤波器系数的叠加运算, 即完成高斯
滤波功能。实现高斯滤波器电路的 Verilog 代码如下:
case({ a0 , a1 , a2 , a3 , a4 })

5’b00000: guass _ theta   coef 0  coef1  coef 2  coef 3  coef 4 ;


西南交通大学本科毕业设计(论文) 第 27 页

5’b00001: guass _ theta   coef 0  coef1  coef 2  coef 3  coef 4 ;




5’b11111: guass _ theta   coef 0  coef1  coef 2  coef 3  coef 4 ;
default: guass _ theta  14'b0 ;
endcase

用 Matlab 仿真,输入数据是:101110100101011,如图 3-3 所示

图3-3 输入信号的高斯脉冲响应

用modelsim对verilog HDL程序仿真,输入数据是:10111010010101的循环,如图
图3-4所示。

图3-4 输入信号的高斯脉冲响应
西南交通大学本科毕业设计(论文) 第 28 页

3.2.3 CORDIC 算法和基带信号调制

1.CORDIC 算法
(1)CORDIC 算法简介
CORDIC 算法即坐标旋转数字计算方法(Coordinate Rotation Digital Computer),最
初是用来进行坐标变换的算法 ,之后经过发展也可以进行很多其它的数学运算。不同
用途算法的具体实现有所区别 ,但其基本原理是通用的。
传统上计算三角函数和其它一些硬件不易实现的函数 ,一般使用查表法、 多项
式展开或近似的方法 ,这些方法不能兼顾速度、 精度、 简单性等方面 ,而 CORDIC
算法则能很好地兼顾上述各方面 ,并且极适合于 FPG A 实现。
CORDIC 算法是一种数值逼近方法 ,其基本思想是:用一系列固定角度的不断偏
摆逼近所需旋转的角度 ,实现包括乘除、 平方根、 三角函数、 向量旋转(即复数乘
法)以及指数运算。CORDIC 算法是一个迭代的过程 ,适当选取一些固定的角度值 ,
可以使 CORDIC 运算只需要进行移位和加减操作 ,非常适合硬件实现 ,用数字方式解
决实时问题。因此 ,这一算法从提出开始就深受欢迎 ,不断地被人们改进和发展 ,并
扩展到更多的函数计算中去 ,得到了广泛的应用。
目前 ,Altera 公司和 Xilinx 公司都推出了实现 CORDIC 算法的 IP 核 ,可根据
不同要求选择使用。

(2)CORDIC 原理
如图所示,初始向量 ( x0 , y0 ) 旋转 θ 角度之后得到向量 ( x1 , y1 ) ,此向量有如下关系:
西南交通大学本科毕业设计(论文) 第 29 页

( x1 , y1 )

( x0 , y0 )

x
图 3-5 CORDIC 算法
x1  x0 cos( )  y0 sin( )  cos( )( x0  y0 tan( )) (3.2-6)

y1  y0 cos( )  x0 sin( )  cos( )( y0  x0 tan( )) (3.2-7)

其中:θ 为待求角
假设初始向量经过 N 次旋转之后得到新向量,且每次旋转角度  正切值都为 2

的倍数,则第 i 次旋转角度为   arctan(2 ^ ( i )) ,即 cos   (1 / (1  2 2i ))1/2 。 容易得

到角度    s(i ) *  (i ) ,其中 s (i ) =1 或-1,表示旋转角度的方向。

第 i 步旋转可以表示为:

x( i 1)  ((1 / (1  22i )1/2 ) *( xi  s(i ) yi * 2 i ) (3.2-8)

y( i 1)  ((1 / (1  22i )1/2 ) *( yi  s(i ) xi *2i ) (3.2-9)

其中 (1 / (1  22 i )1/2 ) 称为校模因子,当旋转次数一定时,趋于一个常数

K   (1 / (1  22i )1/2 )  0.6073

这样,算法每一步就可以简化为:

xi 1  xi  s(i ) yi 2 i (3.2-10)

yi 1  yi  s(i ) xi 2i (3.2-11)

从而可以看出,对于移动的角度 θ,现在只需要硬件加减法器和移位器就可以算
出结果。引入 z ,表示 i 次旋转后相位累加的部分和,则:

zi 1  z( i )  s(i )arctan(2i ) (3.2-12)


西南交通大学本科毕业设计(论文) 第 30 页

经过 n 次旋转之后, z  0 ,即与目标角重合,即:
xn  x1  x0 cos( )  y0 sin( ) (3.2-13)

yn  y1  y0 cos( )  x0 sin( ) (3.2-13)

(3)利用 CORDIC 算法计算 sin/ cos

由三角公式易得:

cos      cos   cos    sin   sin    cos    cos    tan   sin   

(3.2-14)

sin      sin   cos   +cos   sin    cos   sin   +tan   cos   

(3.2-15)
 
取   arctan(2 k ) , 即 tan( )  2 k , 则 cos    tan   sin   可通过移位和减法

来实现。
 
如果角度  可以表示为   s0arctan(20 )  s1arctan(2 1 )    sn arctan(2 n ) , 其中

s0 , s1 , ..., s n 取+1 或-1(+1 可以理解为逆时针转角,即加上一个角度; -1 则相反) ,

那么角度  的 sin/ cos 计算可以通过一系列的移位和加减运算来实现。此外, 应取第

一项限角度(收敛域),对於其他项限角度,可由其第一项限对应角度变换得到。图 3-6
是 CORDIC 算法流程图
西南交通大学本科毕业设计(论文) 第 31 页

开始

x=1;y=0;
K=0.6073;
i=0;

迭代元算;
i=i+1;


i<16

输出结果

结束

图 3-6 CORDIC 算法流程图

下图是 FPGA 利用 CORDIC 算法实现正弦和余弦载波图

图 3-7 利用 CORDIC 算法实现正弦与余弦波

2.基带信号调制

对基带信号的调制就是图 3-1 ,将通过高斯滤波器和积分累加器获得的相位序列


 ( n ) ,利用 cordic 算法计算出 cos  ( n ) 和 sin  ( n ) 的值,图 3-8 是 GMSK 基带调制
RTL 级电路,
图 3-9 是当输入序列 ak ={1011101001010101}时,GMSK 基带调制 I 分量和 Q 分量

图。
西南交通大学本科毕业设计(论文) 第 32 页

图 3-8 GMSK 基带调制 RTL 级电路

图 3-9 GMSK 基带调制 I 分量和 Q 分量

3.2.4 GMSK 调制 FPGA 实现的 RTL 电路及仿真

图 3-10 是 GMSK 调制 RTL 级的电路,包括基带信号调制模块 IQ_baseband(获


得同相分量 I 和正交分量 Q);载波生成模块 carrier_sin_cos(利用 CORDIC 算法产生);
乘法器模块 I_mult 和 Q_mult(完成基带调制信号和载波的相乘);加法器模块(将两
路正交信号相加,完成 GMSK 信号调制)。

图 3-10 GMSK 调制 RTL 级的电路


图 3-11 中的信号分别为时钟信号,输入数据,复位信号,I 路基带调制信号,I
路载波,Q 路基带调制信号,Q 路载波,GMSK 调制信号。从 GMSK 调制信号波形
可看出,GMSK 信号是相位连续,包络恒定的信号。
西南交通大学本科毕业设计(论文) 第 33 页

图 3-11 GMSK 调制各模块产生信号

3.2.5 GMSK 解调

图 3-12 是 GMSK 解调框图,解调过程为:


(1) s(n)进过时间T的延时和 90 度相移,得到序列W(n);
(2) s(n)和W(n)相乘得到序列X(n);
(3) X(n)经过数字低通滤波器得到序列y(n);
(4) 对y(n)进行抽样判决,得到b’(k);

S(n) W(n) X(n) y(n) b '( k )


时延T 90度移相 LPF 抽样判决

图 3-12 GMSK 解调框图


GMSK 解调的关键是低通滤波器的设计,本文采用滤波是 FIR 型低通滤波器。下
面我们将详细讲解一下 FIR 型低通滤波器实现过程。

1. FIR 型低通滤波器设计

FIR 滤波器几乎是所有数字信号处理系统中通用的基本构建模块之一。相对与 IIR


滤波器,有如下优点和不足。
优点:
a. 严格的线性相位和任意幅度;
西南交通大学本科毕业设计(论文) 第 34 页

b. FIR 滤波器的单位抽样响应是有限长的,其滤波性能稳定;

c. FIR 滤波器可用快速傅立叶变换算法来实现,大大提高运算效率;
不足:
a. FIR 滤波器系数的系数长度一般大于 IIR 滤波系统,因此 FIR 滤波器系统使用
的乘法器更多;
b. FIR 滤波器系统的输出延时要长于 IIR 滤波系统。

(1)FIR 滤波器原理与结构
大多数普通的 FIR 滤波器是一种线性时间不变量(Liner Time-Invariant,LTI)滤波
器,其系数仅有零点(除 Z=0 的极点外),因此 FIR 系统的差分方程可以表示为:
N 1
y (n )   h(k ) x( n  k ) (3.2-16)
k 0

转移函数为:
N 1
H ( z )   h(n ) z  n (3.2-17)
n 0

由式(3.2-16)可知,系统的脉冲响应是因果序列,因为其输出基于即时输入以及过
去的输入数据有关,而与过去输出数据没有直接关系,所以 FIR 滤波器是因果的,是
无利可实现的系统,因而它在实际应用中往往采用非递归形式的结构来实现。人们把
用非递归形式实现的 FIR 滤波器叫做非递归型滤波器。而且,由式(3.2-16)式还可
以知道,此系统的脉冲响应是绝对可加的,所以 FIR 滤波器总是稳定的。
FIR 滤波器的构成形式主要有直接型、级联型、线性相位结构的 FIR 滤波器等,
下面分别加以讨论。
1.直接型结构
图 3-13 所示给出了 N 阶 LTI 型 FIR 滤波器,其主要有三部分组成:数据移位寄
存器、乘法器和多操作数加法器。从图(3-13)中所示可以看出 FIR 滤波器是于一个
“抽头延时线”加法器和乘法器的集合构成的。传给每个乘法器的操作数就是一个
FIR 系数,显然也可以称作“抽头数权重”,因此该结构也称为“横向滤波器”。
西南交通大学本科毕业设计(论文) 第 35 页

x (n) Z 1 Z 1 Z 1

h(0) h(1) h (2) h( N  2) h( N  1)


y (n)
图 3-13 直接型结构 FIR 滤波器
对于一个 N 阶 FIR 滤波器而言,直接型结构实现的 FIR 滤波器共需要 N 级数据
移位寄存器,N 个乘法器和 N-1 个加法器,其最大采样率与系统时钟的关系为:
f s max  f clk (3.2-18)

直接结构 FIR 滤波器的一个变换形式称为转置结构 FIR 滤波器,其实现框图如下


图 3-14 所示:

Z 1 Z 1 Z 1 y (n)

h ( N  1) h ( N  2) h( N  3) h (1) h (0)
x(n )
图 3-14 转置结构 FIR 滤波器
与直接型结构的 FIR 滤波器相比,转置型结构 FIR 滤波器有如下的特点:
1)所有乘法器的被乘数都相同;
2)不需要额外的寄存器来存储采样数据
对于一个 N 阶 FIR 滤波器采用转置结构实现需要 N 个乘法器和 N-1 个加法器,
其最大采样率与系统时钟的关系为:
f s max  f clk (3.2-19)

2. 级联型结构
将式(3.2-17)分解为二阶实系数因形式为:
N 1 M
H ( z )   h ( n ) z  n   (  0i  1i z 1   2 i z 2 ) (3.2-20)
n 0 i 1

可得到二阶级联结构。这一结构每一节点控制一对零点,因而在需要控制传输零点时
间可以采用,但相位的滤波器系数增加,乘法运算次数增加,乘法运算次数增加,故
需要较多的存储器,运算时间也比直接型要长。
西南交通大学本科毕业设计(论文) 第 36 页

3. 线性相位结构
在很多应用领域,例如通信与图像处理中,要求在一定的范围内相位是线性的。
如果他满足偶对称条件:
h(n)  h( N  n) (3.2-21)

或满足及对称条件:
h(n )  h( N  n ) (3.2-22)

则数字滤波器具有严格的线性相位特性。线性相位结构就是充分利用对称性这一优点
来实现 FIR 滤波器的复杂性。
线性相位结构 FIR 滤波器的传递函数可以写为:
( N 1)/2 1
N  1  N21
H ( z)   h ( n )[ z  n  z  ( N 1n ) ]  h ( )z N 为奇数
n 0 2
(3.2-23)
( N 1)/2 1
H ( z)   h ( n )[ z  n  z  ( N 1n ) ] N 为偶数 (3.2-24)
n 0

N 1
其对称中心在 n  处。所谓的线性相位特性是指滤波器对不同频率的正弦波
2
产生的相移和频率成直线关系。对应的差分方程为:
( N 1)/2 1
y (n )  
K 0
h ( k ){x (n  k )  x[n  ( N  1  k )]}
(3.2-25)
 h[( N  1) / 2]x[n  ( N  1) / 2]
( N 1)/2 1
y (n )   h ( k ){x ( n  k )  x[n  ( N  1  k )]} (3.2-26)
k 0

线性相位 FIR 滤波器的结构如图 3-15 所示,可以看出,线性相位 FIR 滤波器的


固有对称性可以降低所需要的乘法器的数量,它使得乘法器的数量降低一半,而加法
器的数量保持不变。本文设计的滤波器就是应用线性相位的 FIR 低通滤波器。

x(n) Z 1 Z 1 Z 1

Z 1

Z 1 Z 1 Z 1

h(0) h(1) h(2) h( N / 2  2) h ( N / 2  1) y(n)


西南交通大学本科毕业设计(论文) 第 37 页

图 3-15 线性相位结构 FIR 滤波器

(2)FIR 滤波器的 Verilog HDL 实现

设计思路首先通过通过 matlab 中 FDATOOL 工具对滤波器系数进行设计,然后


在根据 FIR 滤波的原理设计滤波器,编写 Verilog HDL 程序。本次采用的是线性相位
的 FIR 滤波器。下面我们将详细介绍本次滤波器的设计。
图 3-16 是 FDATOOL 工具窗口,根据本次研究的要求我们在 Response Type(相
应类型)选项项中选择 Lowpass(低通),在 Design Method(设计方法)中先择 FIR 滤
波器的 Equiripple 法,在 Fliter Order(滤波器阶数)中选择 Mininum order,在 Frequency
Specifications 中指定 Units(单位)为 khz,Fs(采样频率)为 256,Fpass 为 20,Fstop
为 50,Magnitude Spescifications 中 Units(单位)为 dB,Apass 为 1,Astop 为 80.参
数设定完成后,单击 Design Filter 按钮,计算相关参数,设计完成后我们在窗口中看
到设计的阶数为 21 阶,和滤波器的幅频响应曲线。

图 3-16 FDATOOL 工具窗口


西南交通大学本科毕业设计(论文) 第 38 页

通过上面的设计后,我们需要导出我们想要的滤波器参数,我们可以同过 file 菜
单中 export 命令将参数命名为 num,并导入工作区中,这时我们就得到了滤波器系数,
但是此时的滤波器系数是小数,在 FPGA 中需要对这些数进行调整,我们将这些数量
化为 15 为二进制表示,我们可以通过输入下面的函数进行转换。
fir_lowpass_cof=round(Num/max(abs(Num))*(2^15-1));

从而我们得到量化后的参数为:
fir_lowpass_cof =
Columns 1 through 8
-156 -711 -1873 -3482 -4699 -4097 -252 7281
Columns 9 through 16
17260 26858 32767 32767 26858 17260 7281 -252
Columns 17 through 22
-4097 -4699 -3482 -1873 -711 -156

图 3-17 导出滤波器参数
根据上面获得的滤波器系数,我们不难发现滤波器系数是对称的,符合线性相位
结构,所以我们设计滤波器采用线性相位结构的 FIR 滤波器。图 3-17 是 FPGA 实现
线性相位结构的 FIR 滤波器框图,这就是本次设计 GMSK 解调过程中用到滤波器实
现的方案。
西南交通大学本科毕业设计(论文) 第 39 页

x(n)
R0 R1 R10 R11 R20 R21



h (0) h (1) h(10)
  


y (n)

图 3-18 FPGA 实现线性相位结构的 FIR 滤波器框图

2.GMSK 解调仿真

GMSK 的解调过程在前面我们已经讲解过了,下面我们来看一下利用上面的
算法实现的 GMSK 解调过程的仿真结果。图 3-19 是 GMSK 解调仿真图,图中第一个
波形参数是输入时钟,第二个是原始输入码元信号,第三个是 GMSK 解调过程中经
过 FIR 低通滤波器的波形,从波形上看,我们设计的滤波器达到了我们想要的结果,
效果很好。第四个参数是解调后得到的码元信好号,这个信号就通过对但三个参数设
定适当的判决门限获得的。从图中看解调以后获得解码信号与原始信号是一样的,只
存在一些延时而已,以此说明我们的设计是正确的。

图 3-19 GMSK 解调仿真图


西南交通大学本科毕业设计(论文) 第 40 页

3.3 小结

在这一章我们主要讲的是 GMSK 调制/解调的数字话实现的过程,涉及到了很多


关键的算法,分别是差分编码与解码,高斯低通滤波器的设计,CORDIC 算法,FIR
滤波器的设计与实现。这些算法都是实现 GMSK 数字调制/解调的关键技术。这一章
里还展示了一些算法 Matlab 和 Modelsim 的仿真波形,通过这些仿真波形我们很容易
验证我们的算法的正确性。但是这一章里我们做的 Modelsim 的仿真都是功能性仿真,
并不能完全体现实际在 FPGA 中实现的情况,所以在下一章里我们做进一步的时序仿
真(接近真实的情况)和验证工作。
西南交通大学本科毕业设计(论文) 第 41 页

第四章 仿真与验证

上一章我们主要讲的实现 GMSK 数字调制/解调的一些基本算法,做了一些功能


性的仿真,但是这些工作还不能满足实际的需要,这一章我首先将利用 Matlab 中的
simulink 工具对 GMSK 调制/解调过成做整体的仿真,验证我们的整体思路的正确性。
然后我们将利用 Quartus II 和 Modelsim 软件将我们编写的程序做时序仿真(接近真
实情况),最后我们将把编译程序下载到我们搭建的硬件平台中去,利用 Quartus II
软件中的 Signaltap 工具通过 JTAG 口实现计算机与 FPGA 硬件平台的交互,通过计
算机读取 FPGA 中寄存器中实际的值,并将其显示在计算级窗口中,从而反映出真实
的工作过程。

4.1 基于 Simulink 的 GMSK 调制/解调的仿真

Simulink 是 MATLAB 中的一种可视化仿真工具,是一种基于 MATLAB 的框图设计


环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非
线性系统、数字控制及数字信号处理的建模和仿真中。Simulink 可以用连续采样时
间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系
统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink 提供了一
个建立模型方块图的图形用户接口(GUI) ,这个创建过程只需单击和拖动鼠标操作就
能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真
结果。
Simulink 是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。
对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink
提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。
下面我开始对 Simulink 的 GMSK 调制/解调的仿真做详细的分析,图 4-1 是
GMSK 调制/解调过程仿真图。其中用到 Simulink 中的一些模块。首先是利用贝努利
二进制产生器(Bernoulli Binary Generator)产生随机二进制数来模拟产生码元信息,
然后通过差分编码器(Differential Encoder)对输入信息进行差分编码,然后通过单
极性和双极性转换器(Unipolar to Bipolar Converter)将单极性信号转换为双极型,然
后通过 GMSK 调制模块(GMSK Modulator Baseband)对信号进行调制,然后通过加
西南交通大学本科毕业设计(论文) 第 42 页

性高斯白噪声信道(AWGN Channel)进入 GMSK 解调模块(GMSK Demodulator


Baseband)对其进行解调,然后在分别通过双极性和单极性转换器(Bipolar to Unipolar
Converter)和差分码器(Differential Decoder)获得解码信息。为了观测调制/解调前
后的信息,我们在相应节点插入示波器(scope),如图 4-1 所示,为了计算误码率,
我们插入了误码率计算模块(Error Rate Calculation).

图 4-1 GMSK 调制/解调过程仿真图

通过 Scope3 我们可以观察 GMSK 调制后的 I 路和 Q 路信号波形如图 4-1 所示。

图 4-2 I 路和 Q 路信号
西南交通大学本科毕业设计(论文) 第 43 页

通过 Scope5 我们可以观测输入码元与解码后码元信号,从图 4-3 中我们可以看


出输出码元相对于输入码元仅有一段延时。

图 4-3 输入码元与解调后获得的码元
通过误码率计算模块(Error Rate Calculation),我们可以得到不同信噪比,不同
BT 值时的误码率。图 4-4 为在信噪比从 0dB 变化到 10dB,BT 值为 0.3 和 0.5 时的特
性曲线。从两条误码率曲线对比来看,BT 值越大误码率性能越好。因此,GMSK 调
制方式是通过降低了误码率的性能来换取了好的传输特性。
西南交通大学本科毕业设计(论文) 第 44 页

图 4-4 不同信噪比下误码率特性
通过上面的仿真,我们明确了 GMSK 调制/与解调的基本流程,了解了 GMSK 调
制的性能,了解了每个关键参数对 GMSK 调制的影响,为我们后续的利用 FPGA 实
现 GMSK 调制/解调打下了基础,起到了前期整体思路的验证过程。

4.2 Quartus II 和 Modelsim 的时序仿真

在第三章我们已经做了一些 Modelsim 的功能仿真,但是功能仿真只能过验证我


们设计思想,验证在理想状态下的情况,并不能完全反应出程序在实际硬件平台上的
工作情况。这一节,我们将做的是时序仿真,时序仿真中加入了实际芯片的延时和特
性等信息,能够更加真实的模拟实际的工作情况。
我们的验证思路,将模仿 4.1 节中基于 Simulink 的仿真过程,因此这一节,我们
还将介绍二进制伪随机序列的产生,和模拟加性高斯白噪声信道的实现。

4.2.1 伪随即序列产生

为了能够产生随机的测试信号,我们本次用到的是 M 序列发生器。
西南交通大学本科毕业设计(论文) 第 45 页

M 序列又叫做伪随机序列、伪噪声(PN)码或伪随机码。可以预先确定并且可以重
复实现的序列称为确定序列;既不能预先确定又不能重复实现的序列称随机序列;不
能预先确定但可以重复产生的序列称伪随机序列。
M 序列是目前广泛应用的一种伪随机序列,其在通信领域有着广泛的应用,如
扩频通信,卫星通信的码分多址,数字数据中的加密、加扰、同步、误码率测量等领
域。
1. m 序列设计原理

m 序列是最长线性移位寄存器序列,是有移位寄存器加反馈后形成的。其结构如
图 4-5 所示。本文所讨论的反馈移位寄存器是属于只有一个模 2 加法器,所有反馈信
号返回到单一输入端的简单反馈移位寄存器,如图 4-5 所示。其反馈逻辑为:
r
a0  c1a1  c2 a2  c3a3   cr ar   ci ai (4.2-1)
i 1

式中 ci  0或1(i  1, 2, 3,   , r ) 。若 ci  0 表示该机无反馈,不参加模 2 运算;若 ci  1 表

示该级有反馈,参加模 2 运算。

c0 c1 c2 c3 cr 1 cr

a0
a1 a2 a3  ar 1 ar
图 4-5 反馈移位寄存器结构
下面介绍一种通信中常用的,周期为 210 -1=1023 的伪随机产生器的设计。产生 m 序列
主要步骤如下:
(1) 根据 m 序列产生原理得到 m 序列的生成多项式。
(2) 根据生成多项式的级数确定要实现 m 序列产生器的移位寄存器的长度。
(3) 实现移位寄存器链。
(4) 按照生成多项式系数确定抽头位置。
(5) 将抽头信号进行“异或”,结果反馈到移位寄存器的输入端。
西南交通大学本科毕业设计(论文) 第 46 页

2. m 序列 Verilog HDL 语言实现

下面我们介绍本次论文中用到的 m 序列生成器,生成多项式为

f ( x )  x10  x 7  x 5  x  1 ,由这个生成多项式得到的 m 序列产生的原理框图如图 4-6

所示。

   

m序列
1 2 3 4 5 6 7 8 9 10

图 4-6 m 序列产生的原理框图

图 4-7 m 序列 RTL 级原理图


图 4-8 是 m 序列的 modelsim 仿真图,图中第一个参数是时钟信号,第二个是复
位信号,第三个是产生的的 m 序列。
西南交通大学本科毕业设计(论文) 第 47 页

图 4-8 m 序列的 modelsim 仿真图

4.2.2 加性高斯白噪声信道的实现

为了能够更加真实模拟实际中 GMSK 调制解调过程,我们需要将 GMSK 调制信


号通过信道后再进行 GMSK 的解调,所以我们有必要建立一个模拟的高斯信道。而
加性高斯白噪声信道又是很具有代表性的信道,适合作为 GMSK 信号传输的信道,
所以本文将只考虑加性高斯白噪声的信道。下面我们来详细讲解一下本文中的高斯信
道的建模与实现。
我们的设计思路是先利用 Matlab 中自带的函数 wgn(1,n)产生我们需要的高
斯白噪声,经过量化后我们将其保存在 FPGA 的 rom 中,然后我们通过 M 序列产生
rom 的一个地址,来提取 rom 中的高斯噪声。由于 M 序列的互相关性很小,从而是
减小了高斯噪声的互相关性。能够满足实际中加性高斯白噪声的信道的要求。图 3-9
是高斯信道建模框图

GMSK调制信号

加法器 DATA_OUT

M序列 ROM查
高斯白噪声
CLK 产生器 找表

图 4-9 高斯信道建模

用 Verilog HDL 语言实现高斯信道的 RTL 模型如图 3-10 所示。


西南交通大学本科毕业设计(论文) 第 48 页

图 4-10 高斯信道的 RTL 模型

4.2.3 时序仿真

通过 4.2.1 节和 4.2.2 节,我们可以产生测试用的随机信号和通信信道了。我们就


可以完成整个 GMSK 调制与解调的全过程了。图 4-11 包含我们本次设计全部的全部
模块,其中包括(1)时钟产生模块,产生每个模块所需要的时钟;(2)随机数产生
模块,产生测试用的随机信号;(3)GMSK 调制模块,对输入信号进行 GMSK 调制
(4)加性高斯白噪声信道,模拟真实信道,为测试信号加入高斯白噪声(5)GMSK
解调模块,对已调信号进行解调。

图 4-11 GMSK 调制/解调 RTL 级电路


前面我们做的仿真都是一些功能仿真,现在我们开始进行时序仿真。
时序仿真使用布局布线后器件给出的模块和连线的延时信息,在最坏的情况下对
电路的行为作出实际地估价。时序仿真使用的仿真器和功能仿真使用的仿真器是相同
的, 所需的流程和激励也是相同的; 惟一的差别是为时序仿真加载到仿真器的设计
包括基于实际布局布线设计的最坏情况的布局布线延时,并且在仿真结果波形图中,
时序仿真后的信号加载了时延而功能仿真没有
下面我们看一下我们时序仿真后的结果。
西南交通大学本科毕业设计(论文) 第 49 页

图 4-12 是 GMSK 调制后仿真波形,从波形上可以看出时序仿真后波形加入了很


多的毛刺。

图 4-12 GMSK 调制后仿真波形


图 4-13 是 GMSK 调制/解调结果比较后仿真波形,图中第一个参数是是时钟信号,
第二个是复位信号,第三个是 GMSK 调制信号,第四个是输入的测试信号,五个是
解调以后得到的信号,从图中看,解调的信号与输入信号只有一段时间的延时,所以
证明时序仿真已经通过。

图 4-13 GMSK 调制/解调结果比较后仿真波形

4.3 基于 SignalTap 的 FPGA 硬件平台的验证

在前面做的所有仿真测试都是基于计算机上的软件,并没有将程序运行在 FPGA
的硬件平台上,所以即使前面的仿真全部都能通过,也不能代表在硬件平台上能够很
好的运行,所以我们要做进一步的验证,在真实的硬件平台上来做测试。本节将利用
Quartus II 中内嵌的逻辑分析仪 SignalTap,通过 JTAG 口与 FPGA 硬件平台相连读取各
节点信号的值,来观测是否运行正确。

4.3.1 SignalTap 简介

1. 概述
随着 FPGA 容量的增大,FPGA 的设计日益复杂,设计调试成为一个很繁重的任
务。为了使得设计尽快投入市场,设计人员需要一种简易有效的测试工具,以尽可能
西南交通大学本科毕业设计(论文) 第 50 页

的缩短测试时间。传统的逻辑分析仪在测试复杂的 FPGA 设计时,将会面临以下几点


问题:1)缺少空余 I/O 引脚。设计中器件的选择依据设计规模而定,通常所选器件
的 I/O 引脚数目和设计的需求是恰好匹配的。2)I/O 引脚难以引出。设计者为减小电
路板的面积,大都采用细间距工艺技术,在不改变 PCB 板布线的情况下引出 I/O 引
脚非常困难。3)外接逻辑分析仪有改变 FPGA 设计中信号原来状态的可能,因此难
以保证信号的正确性。4)传统的逻辑分析仪价格昂贵,将会加重设计方的经济负担。
伴随着 EDA 工具的快速发展,一种新的调试工具 Quartus II 中的 SignalTap II 满
足了 FPGA 开发中硬件调试的要求,它具有无干扰、便于升级、使用简单、价格低廉
等特点。本节将介绍 SignalTap II 逻辑分析仪的主要特点和使用流程。

2.SignalTap II 的特点及使用
SignalTap 是内嵌逻辑分析仪,是把一段执行逻辑分析功能的代码和客户的设计
组合在一起编译、布局布线的。在调试时,SignalTap 通过状态采样将客户设定的节
点信息存储于 FPGA 内嵌的 Memory Block 中,再通过下载电缆传回计算机。
SignalTap II 嵌入逻辑分析仪集成到 Quartus II 设计软件中,能够捕获和显示可编
程单芯片系统(SOPC)设计中实时信号的状态,这样开发者就可以在整个设计过程
中以系统级的速度观察硬件和软件的交互作用。它支持多达 1024 个通道,采样深度
高达 128Kb,每个分析仪均有 10 级触发输入/输出,从而增加了采样的精度。SignalTap
II 为设计者提供了业界领先的 SOPC 设计的实时可视性,能够大大减少验证过程中所
花 费 的 时 间 。 目 前 SignalTap II 逻 辑 分 析 仪 支 持 的 器 件 系 列 包 括 : APEXT II,
APEX20KE, APEX20KC, APEX20K, Cyclone, Excalibur, Mercury, Stratix GX, Stratix。
SignalTap II 将逻辑分析模块嵌入到 FPGA 中,如图 4-14 所示。逻辑分析模块对
待测节点的数据进行捕获,数据通过 JTAG 接口从 FPGA 传送到 Quartus II 软件中显
示。使用 SignalTap II 无需额外的逻辑分析设备,只需将一根 JTAG 接口的下载电缆
连接到要调试的 FPGA 器件。SignalTap II 对 FPGA 的引脚和内部的连线信号进行捕
获后,将数据存储在一定的 RAM 块中。因此,需要用于捕获的采样时钟信号和保存
被测信号的一定点数的 RAM 块。
西南交通大学本科毕业设计(论文) 第 51 页

图 4-14 SignalTap 测试节点信号框图

4.3.2 基于 SignalTap 的 GMSK 调制/解调信号的测试

GMSK 调制信号输出如图 4-15 所示,图中第一个信号是输入的测试信号,的二


个信号是解调后得到的信号,第三个是 GMSK 调制信号。与前面的功能仿真和时序
仿真结果保持一致,从而说明我们的程序可以在硬件上良好的运行,能够达到要求。

图 4-15 GMSK 调制输出


下面我们在用 SignalTap 观测一下其他重要节点的信号。
图 4-15 中的第三个信号是 GMSK 信号经过 AWGN 信道后的信号。

图 4-15 GMSK 调制信号和经过信道后的信号比较


西南交通大学本科毕业设计(论文) 第 52 页

GMSK 解调中经过 FIR 低通滤波器的信号是决定是否能够解调成功的关键,图


4-16 中第三个波形就是这个信号,从波形上来看达到了我们滤波的要求,因此说明我
们设计的数字滤波器能够成功的实现在 FPGA 上。

图 4-16 一比特差分解调中经过 FIR 滤波器获得的信号


通过上面的验证,证明了我们的整个 GMSK 调制与解调过程在 FPGA 上是能够
实现的,我们在整个系统的建模上是完全可行的。

4.4 小节

这一章我们主要研究的是对前面所做的工作的验证过程,这一章里我们首先通过
Matlab 中 Simulink 做了系统级的仿真,确定了我们总体设计方案的正确性,同时也
进一步了解 GMSK 技术中一些重要参数的作用,为后面的工作做了铺垫。
然后,我们利用 Quartus II 和 Modelsim 做了时序仿真,是我们的的验证结果更加接
近实际运行情况。最后我们利用 SignalTap 通过 JTAG 口与硬件平台进行了交互,得
到了我们的 GMSK 调制与解调系统在实际硬件中的运行状态。同构上面的三种级别
验证,证明了我们系统的在硬件平台中实现的可能性。
西南交通大学本科毕业设计(论文) 第 53 页

第五章 硬件平台的搭建

本论文是基于 FPGA 硬件平台的 GMSK 调制/与解调的研究,所以硬件平台的搭


建是一个非常重要的部分。本文采用的 FPGA 芯片是 ALTERA 公司的 Cyclone II 系
列中的 EP2C8Q208N,它具有 8256 个 LE(逻辑单元),165888bit 的 RAM,18 个内嵌
乘法器,2 个锁相环,和 139 个通用 IO 口。下面我们纤细介绍以硬件平的重要组成
部分。图 5-1 是本次搭建系统的硬件框图。

电源模块

复位电路 外接
SDRAM
FPGA
配置模块
外接FLASH
(EPCS16)

JTAG

图 5-1 系统硬件框图

5.1 硬件电路介绍与分析

1.电源模块
本次采用的 FPGA 芯片需要两种电压,分别是 3.3V 和 1.2V,其中 1.2V 电压是
给内核供电的电压,3.3V 的电压是供外设和 IO 口使用的电压。考虑到的本次设计的
功率并不是很大,所以采用的电源芯片是低成本的线性稳压电源芯片 AS1117_3.3 和
SPX3819M5-L-1-2。图 5-2 和图 5-3 分别是产生 1.2V 和 3.3V 的原理图
西南交通大学本科毕业设计(论文) 第 54 页

D3V3 D1V2

UP
1 5
VIN OUT
4
ADJ
EC8 C1
3 C2 EC3
EN
10uF 104
2 104 10uF
GND
SPX3819M5-L-1-2
DGND
DGND
DGND

图 5-2 1.2V 电源电路


D3V3

4
U7

GND

OUT

IN
AS1117_3V3

3
VCC

DGND
EC6 C50 EC7 C49
10uF 10uF
104 104

DGND DGND DGND DGND

图 5-3 3.3V 电源电路


2.JTAG 模块
JTAG(Joint Test Action Group)是一种国际标准测试协议(IEEE 1149.1 兼容),主
要用于芯片内部测试。现在多数的高级器件都支持 JTAG 协议,如 DSP、FPGA 器件
等。标准的 JTAG 接口是 4 线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、
数据输入和数据输出线。
JTAG 最初是用来对芯片进行测试的,JTAG 的基本原理是在器件内部定义一个
TAP(Test Access Port;测试访问口)通过专用的 JTAG 测试工具对进行内部节点进行
测试。JTAG 测试允许多个器件通过 JTAG 接口串联在一起,形成一个 JTAG 链,能
实 现 对 各 个 器 件 分 别 测 试 。 现 在 , JTAG 接 口 还 常 用 于 实 现 ISP ( In-System
Programmable?在线编程),对 FLASH 等器件进行编程。
JTAG 编程方式是在线编程,传统生产流程中先对芯片进行预编程现再装到板上
因此而改变,简化的流程为先固定器件到电路板上,再用 JTAG 编程,从而大大加快
工程进度。JTAG 接口可对 PSD 芯片内部的所有部件进行编程 。
具有 JTAG 口的芯片都有如下 JTAG 引脚定义:
TCK——测试时钟输入;
TDI——测试数据输入,数据通过 TDI 输入 JTAG 口;
TDO——测试数据输出,数据通过 TDO 从 JTAG 口输出;
西南交通大学本科毕业设计(论文) 第 55 页

TMS——测试模式选择,TMS 用来设置 JTAG 口处于某种特定的测试模式。


可选引脚 TRST——测试复位,输入引脚,低电平有效。
DGND

J2
R7 1K TCK
DGND TDO 1 2
TMS 3 4 D3V3
R8 10K
D3V3 5 6
TDI 7 8
R9 10K
D3V3 9 10
JTAG

DGND

图 5-4 JTAG 原理图


3.配置模块
在很多项目设计中采用 Altera 公司基于 SRAM 架构 Cyclone 系列器件。Cyclone
器件与其他 FPGA 器件一样是基于门阵列方式为用户提供可编程资源的,其内部逻辑
结构的形成是由配置数据决定的。这些配置数据可通过多种模式加载到 FPGA 内部的
SRAM 中,由于 SRAM 的易失性,每次上电时,都必须对 FPGA 进行重新配置。
专用串行配置芯片可选用 EPCS1 或 EPCS4,其中 EPCS1 的存储空间是 1Mbits,
EPCS4 存储空间是 4Mbits ,设计者可根据配置文件的大小进行选择。主动串行配置
芯片的主要配置引脚 DCLK,串行时钟输入端,来自 Cyclone FPGA 器件,提供串行
接口时钟;DATA,串行数据输出端,在 DCLK 下降沿读出数据;ASDI,控制信号输入
端,在 DCLK 上升沿锁存数据;nCS,使能输入端,低电平有效。在系统上电期间,
两芯片进入到上电复位阶段。当一旦进入上电复位,nSTATUS 端为低电平,正在复
位;同时 CONF_DONE 端为低电平,芯片还没有被配置。复位后,延迟 100ms,FPGA
释放 nSTATUS 端,由于上拉电阻的作用,该端变为高电平,此时进入到配置状态。
一旦退出复位,所有用户 I/O 端进入三态状态。时钟信号 DCLK 是由 FPGA 内部产生
的,用来控制整个配置循环以及为配置芯片串口电路提供时钟,时钟信号的频率范围
在 14MHZ 至 20MHZ 之间。当 DCLK 下降沿到来时,使 FPGA 输出控制信号以及使
配置芯片输出配置数据;当 DCLK 上升沿到来时,使 FPGA 锁存配置数据以及使配置
芯片锁存控制信号。在所有配置数据被接收后,FPGA 释放 CONF_DONE 端,通过
10K 的上拉电阻置为高电平,开始进入初始化阶段。Cyclone FPGA 器件需要 136 个
时钟周期严格地进行初始化。然后开始进入用户状态,这时 INIT_DONE 引脚跳变到
高电平。配置模块电路原理如图
西南交通大学本科毕业设计(论文) 第 56 页

DGND
D3V3

J1
DCLK
CONF_DONE 1 2
nCONFIG 3 4 nCE
DATA0 5 6 nCSO
ASDO 7 8
9 10
AS
DGND D3V3

U4

ASDO 5 3
ASDI VCC
DCLK 6 7
DCLK VCC
nCSO 1 8
CS VCC

4 2 DATA0
GND DATA

EPCS16
DGND

图 5-5 AS 模式原理
4.外接 FLASH
Flash 在 SOPC 中的作用主要表现在两方面:一方面,可用 Flash 来保存 FPGA 的
配置文件,从而可以省去 EPCS 芯片或解决 EPCS 芯片容量不够的问题。当系统上电
后,从 Flash 中读取配置文件,对 FPGA 进行配置。另一方面,可用 Flash 来保存用
户程序。对于较为复杂的 SOPC 系统,用户程序一般较大,用 EPCS 来存储是不现实
的。系统完成配置后,将 Flash 中的用户程序转移到外接 RAM 或片内配置生成的 RAM
中 , 然 后 系 统 开 始 运 行 。 本 次 论 文 中 采 用 的 是 外 接 Flash 为 AMD 公 司 的
AM29LV160BT80RE,具有 16Mbit 的存储空间。其电路原理如图 5-6。
西南交通大学本科毕业设计(论文) 第 57 页

U6
F_A0 25 29 F_DB0
A0 D0
F_A1 24 31 F_DB1
A1 D1
F_A2 23 33 F_DB2
A2 D2
F_A3 22 35 F_DB3
A3 D3
F_A4 21 38 F_DB4
A4 D4
F_A5 20 40 F_DB5
A5 D5
F_A6 19 42 F_DB6
A6 D6
F_A7 18 44 F_DB7
A7 D7
F_A8 8 30
A8 D8
F_A9 7 32 F_DB[0..7]
A9 D9
F_A10 6 34
A10 D10
F_A11 5 36
A11 D11
F_A12 4 39
A12 D12
F_A13 3 41
A13 D13
F_A14 2 43
A14 D14
F_A15 1 45 F_ALSB
A15 D15
F_A16 48
A16
F_A17 17
A17
F_A18 16
A18
F_A19 9 15
A19 RY/BY#
F_A[0..19] 10 47
A20 BYTE#
13
A21

R17 10K 12 37 R20


D3V3 RST# VDD D3V3
C32 10K
105
F_nCE 26 27
DGND CE# VSS
F_nOE 28
OE#
F_nWE 11 46 DGND
WE# VSS
R21 10K 14
D3V3 WP#
AM29LV160BT80RE

DGND

图 5-6 外接 FLASH 原理图


5.外接 SDRAM
SDRAM(Synchronous Dynamic Random Access Memory),同步动态随机存储器,
同步是指 Memory 工作需要同步时钟,内部的命令的发送与数据的传输都以它为基
准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依
次存储,而是自由指定地址进行数据读写。本次论文采用的芯片是 HY57V641620ET-7,
具有 4Bank x 1M x 16bits 的容量。外接 SDRAM 连接原理如
图 5-7 所示。
西南交通大学本科毕业设计(论文) 第 58 页

S_DB[0..15]

U5
S_A0 23 2 S_DB0
A0 DQ0
S_A1 24 4 S_DB1
A1 DQ1
S_A2 25 5 S_DB2
A2 DQ2
S_A3 26 7 S_DB3
A3 DQ3
S_A4 29 8 S_DB4
A4 DQ4
S_A5 30 10 S_DB5
A5 DQ5
S_A6 31 11 S_DB6
A6 DQ6
S_A7 32 13 S_DB7
A7 DQ7
S_A8 33 42 S_DB8
A8 DQ8
S_A9 34 44 S_DB9
A9 DQ9
S_A10 22 45 S_DB10
A10/AP DQ10
S_A11 35 47 S_DB11
A11 DQ11
S_A[0..11] 48 S_DB12
DQ12
S_CLK 38 50 S_DB13
CLK DQ13
51 S_DB14
DQ14
S_BA0 20 53 S_DB15
BA0 DQ15
S_BA1 21
BA1
S_nCAS 17 15 S_LDQM
CAS LDQM
S_CKE 37 39 S_UDQM
CKE UDQM
S_nRAS 18
RAS
S_nWE 16
WE
S_nCS 19
CS

1 6
VDD GND
14 12
VDD GND
27 28
D3V3 VDD GND
3 41
VDDQ GND
9 46
VDDQ GND
43 52
VDDQ GND
49 54
VDDQ GND
HY57V641620ET-7

DGND
D3V3

C25 C26 C27 C28 C29 C30 C31


104 104 104 104 104 104 104

DGNG DGND

图 5-7 外接 SDRAM 原理图


6.最小系统原理图
AS U1B U1D
160 S_DB15 56 LED2
IO, LVDS37n IO, LVDS77n (DEV_OE)
BANK 2

BANK 4

DGND 161 S_DB14 57 LED3


IO, LVDS37p,
DQ0T0/DQ1T0 IO, LVDS77p, (DM1B/BWS#1B)/(DM1B1/BWS#1B1)
D3V3 162 S_DB13 58 F_A15 U1C
IO, LVDS36n,
DQ0T1/DQ1T1 IO, LVDS76p, DQ1B8/DQ1B17
163 S_DB3 59 F_A14 105 PIN105
IO, LVDS36p,
DQ0T2/DQ1T2 IO, LVDS76n, DQ1B7/DQ1B16 IO, LVDS56n
BANK 3
J1 164 S_DB12 60 F_A13 106 PIN106
IO, LVDS35n,
DQ0T3/DQ1T3 IO, LVDS75p, DQ1B6/DQ1B15 IO, LVDS56p, (DM1R/BWS#1R)/(DM1R1/BWS#1R1)
DCLK 165 S_DB4 61 F_A12 107 PIN107
1 2 IO, LVDS35p,
DQ0T4/DQ1T4 IO, LVDS75n, DQ1B5/DQ1B14 IO, LVDS54n (INIT_DONE)
CONF_DONE 168 S_DB11 63 F_A11 108 PIN108
3 4 IO, LVDS34n IO, LVDS74p, (DPCLK2/DQS1B)/(DPCLK2/DQS1B) IO, LVDS54p (nCEO)
nCONFIG nCE 169 S_DB5 64 F_A10 110 PIN110
5 6 IO, LVDS34p, (DPCLK8/DQS0T)/(DPCLK8/DQS0T) IO, LVDS74n IO, LVDS53n, DQ1R8/DQ1R17
DATA0 nCSO 170 S_DB10 67 F_A9 112 PIN112
7 8 IO, VREFB2N0 IO, VREFB4N1 IO, LVDS53p, DQ1R7/DQ1R16
ASDO 171 S_DB6 68 F_A8 113 PIN113
9 10 IO, LVDS33n, DQ0T5/DQ1T5 IO, LVDS70p, DQ1B4/DQ1B13 IO, LVDS52n, DQ1R6/DQ1R15
173 S_DB7 69 F_A19 114 PIN114
IO, LVDS33p, DQ0T6/DQ1T6 IO, LVDS70n, DQ1B3/DQ1B12 IO, LVDS52p, DQ1R5/DQ1R14
AS 175 S_DB9 70 F_NEW 115 PIN115
IO, LVDS31n, DQ0T7/DQ1T7 IO, LVDS68p, DQ1B2/DQ1B11 IO, LVDS51n, DQ1R4/DQ1R13
DGND D3V3 176 S_LDQM 72 F_A18 116 PIN116
IO, LVDS31p, _/DQ1T8 IO, LVDS68n, DQ1B1/DQ1B10 IO, LVDS51p, DQ1R3/DQ1R12
179 S_DB8 74 F_A17 117 PIN117
IO, LVDS29n, DM0T/(DM1T0/BWS#1T0) IO, LVDS67p, DQ1B0/DQ1B9 IO, VREFB3N1
U4 180 S_NWE 75 F_A7 118 PIN118
IO, LVDS29p IO, LVDS67n IO, DQ1R2/DQ1R11
181 S_UDQM 76 F_A6 127 PIN127
IO, LVDS28n IO, LVDS66p IO, LVDS48n, DQ1R1/DQ1R10
ASDO 5 3 182 S_NCAS 77 F_A5 128 PIN128
ASDI VCC IO, LVDS28p IO, LVDS66n IO, LVDS48p, (DPCLK6/DQS1R)/(DPCLK6/DQS1R)
185 S_NRAS 80 F_A4 133 PIN133
IO, LVDS26p, DQ1T0/DQ1T9 IO IO, LVDS47n, DQ1R0/DQ1R9
DCLK 6 7 187 S_CLK 81 F_A3 134 PIN134
DCLK VCC IO, LVDS25n IO, LVDS64p IO, LVDS47p, (DPCLK7/DQS0R)/(DPCLK7/DQS0R)
188 S_NCS 82 F_A2 135 PIN135
IO, LVDS25p, DQ1T1/DQ1T10 IO, LVDS64n IO, LVDS46n, DM0R/(DM1R0/BWS#1R0)
nCSO 1 8 189 S_CKE 84 F_A1 137 PIN137
CS VCC IO, LVDS24n, DQ1T2/DQ1T11 IO, LVDS63p, DM0B/(DM1B0/BWS#1B0) IO, LVDS46p, _/DQ1R8
191 S_A11 86 F_A16 138 PIN138
IO, LVDS24p, DQ1T3/DQ1T12 IO, LVDS63n, _/DQ1B8 IO, LVDS45n, DQ0R7/DQ1R7
192 S_BA0 87 F_ALSB 139 PIN139
IO, VREFB2N1 IO, LVDS62p, DQ0B7/DQ1B7 IO, LVDS45p, DQ0R6/DQ1R6
193 S_A9 88 F_DB9 141 PIN141
IO, LVDS23n, DQ1T4/DQ1T13 IO, LVDS62n, DQ0B6/DQ1B6 IO, LVDS44n, DQ0R5/DQ1R5
4 2 DATA0 195 S_BA1 89 F_DB6 142 PIN142
GND DATA IO, LVDS23p, DQ1T5/DQ1T14 IO, VREFB4N0 IO, LVDS44p, DQ0R4/DQ1R4
197 S_A8 90 F_DB5 143 PIN143
IO, LVDS21n IO, LVDS61p, DQ0B5/DQ1B5 IO, LVDS42n, DQ0R3/DQ1R3
198 S_A10 92 F_DB4 144 PIN144
IO, LVDS21p IO, LVDS61n, DQ0B4/DQ1B4 IO, LVDS42p, DQ0R2/DQ1R2
EPCS16 199 S_A7 94 F_DB3 145 PIN145
IO, LVDS19n IO, LVDS60p, (DPCLK4/DQS0B)/(DPCLK4/DQS0B) IO, VREFB3N0
DGND 200 S_A0 95 F_DB2 146 PIN146
IO, LVDS19p, (DPCLK10/DQS1T)/(DPCLK10/DQS1T) IO, LVDS60n IO, LVDS39n, DQ0R1/DQ1R1
201 S_A6 96 F_DB1 147 PIN147
IO, LVDS18n, DQ1T6/DQ1T15 IO, DQ0B3/DQ1B3 IO, LVDS39p, DQ0R0/DQ1R0
203 S_A1 97 F_DB0 149 PIN149
IO, LVDS18p, DQ1T7/DQ1T16 IO, LVDS59p, DQ0B2/DQ1B2 IO, LVDS38n
205 S_A2 99 F_NOE 150 S_DB0
IO, LVDS17p, DQ1T8/DQ1T17 IO, LVDS59n, DQ0B1/DQ1B1 IO, LVDS38p
206 S_A5 101 F_NCE 151 S_DB1
JTAG IO, LVDS17n (DEV_CLRn) IO, LVDS58p, DQ0B0/DQ1B0 IO, PLL2_OUTp
207 S_A3 102 F_A0 152 S_DB2
IO, LVDS16p, (DM1T/BWS#1T)/(DM1T1/BWS#1T1) IO, LVDS58n IO, PLL2_OUTn
DGND 208 S_A4 103 PIN103
IO, LVDS16n IO, LVDS57p
104 PIN104 EP2C8Q208C6
IO, LVDS57n
EP2C8Q208C6
J2 EP2C8Q208C6
R7 1K TCK
DGND 1 2
TDO
3 4 D3V3
R8 10K TMS U1A
D3V3 5 6
1 ASDO S_DB[0..15]
7 8 IO, (ASDO) S_DB[0..15]
BANK 1

R9 10K TDI 2 nCSO D3V3 D1V2


D3V3 9 10 IO, (nCSO)
3 PIN3
IO, LVDS15p (CRC_ERROR)
JTAG 4 PIN4 U1F S_A[0..11]
IO, LVDS15n (CLKUSR) S_A[0..11]
5 PIN5 7 32 R19 0
IO, LVDS14p PIN6 VCCIO1 VCCINT
DGND 6 29 66 S_CLK
IO, LVDS14n VCCIO1 VCCINT S_CLK
U1E 8 PIN8 42 79
IO, LVDS13p, DQ1L0/_ VCCIO1 VCCINT
TDI 19 10 PIN10 120 R24 0 S_BA0
TDI IO, LVDS13n, DQ1L1/_ PIN11 VCCINT S_BA0
TDO 16 11 166 178
RESET_KEY TDO IO, LVDS12p, DQ1L2/_ PIN12 VCCIO2 VCCINT
TCK 18 12 172 190 S_BA1
TCK IO, LVDS12n, DQ1L3/_ VCCIO2 VCCINT S_BA1
D3V3 TMS 17 13 PIN13 183
TMS IO, VREFB1N0 PIN14 VCCIO2
14 194 S_nCAS
IO, LVDS8p, (DPCLK0/DQS0L)/(DPCLK0/DQS0L) VCCIO2 S_nCAS
R10 4.7K R11 470 KEY DATA0 20 15 PIN15 202
DATA0 IO, LVDS8n VCCIO2
30 PIN30 S_CKE
IO, LVDS7p, (DPCLK1/DQS1L)/(DPCLK1/DQS1L) S_CKE
126 31 PIN31 109
K1 DGND MSEL0 IO, LVDS7n PIN33 VCCIO3
RESET 125 33 122 S_nRAS
MSEL1 IO, LVDS6n, DQ1L4/_ VCCIO3 S_nRAS
34 PIN34 136
IO, DQ1L5/_ VCCIO3
R2 10K nCE 22 35 PIN35 148 S_nWE
DGND nCE IO, LVDS5p, DQ1L6/_ VCCIO3 S_nWE
37 PIN37
IO, VREFB1N1
DGND DCLK 21 39 PIN39 62 S_nCS
DCLK IO, LVDS3n, DQ1L7/_ VCCIO4 S_nCS
R5 10K CONF_DONE 123 40 PIN40 71
D3V3 CONF_DONE IO, LVDS2p, DQ1L8/_ PIN41 VCCIO4
R3 10K nCONFIG 26 41 83 S_UDQM
D3V3 nCONFIG IO, LVDS2n, (DM1L/BWS#1L)/_ PIN43 VCCIO4 S_UDQM
R4 10K nSTATUS 121 43 91
D3V3 nSTATUS IO VCCIO4
44 PIN44 98 S_LDQM
CONFIG_KEY IO, LVDS0p VCCIO4 S_LDQM
EP2C8Q208C6 45 PIN45
IO, LVDS0n PIN46
46 EP2C8Q208C6
IO
D3V3 47 LED0
IO, PLL1_OUTp
48 LED1 F_DB[0..7]
nCONFIG IO, PLL1_OUTn F_DB[0..7]
K2 CONFIG
LED5 EP2C8Q208C6 F_A[0..9]
F_A[0..19]
DGND U1G F_nCE
F_nCE
LED 9 119 0 R23
GND GND
CONF_DONE R18 10K D1V2 D3V3 25 124 F_nOE
GND GND F_nOE
U1H U1I 0 R22 36 140
GND GND
53 54 C51 PIN129 129 38 153 F_nWE
VCCA_PLL1 GNDA_PLL1 CLK7, LVDSCLK3n INPUT GND GND F_nWE
51 52 104 PIN130 130 49 159
VCCD_PLL1 GND_PLL1 DGND CLK6, LVDSCLK3p INPUT GND GND
50 PIN131 131 55 167 F-ALSB
GND_PLL1 CLK5, LVDSCLK2n INPUT GND GND F_ALSB
Y1 PIN132 132 65 174
LED CLK4, LVDSCLK2p INPUT GND GND
157 158 4 3 R6 33 CLOCK 28 73 177 LED[0..3]
LED1 VCCA_PLL2 GNDA_PLL2 VCC OUT CLK3, LVDSCLK1n INPUT GND GND LED[0..3]
155 156 PIN27 27 78 184
VCCD_PLL2 GND_PLL2 CLK2, LVDSCLK1p INPUT GND GND
LED RN1_1 470 LED0 154 PIN24 24 85 186
GND_PLL2 CLK1, LVDSCLK0n INPUT GND GND
1 2 KEY 23 93 196
NC GND CLK0, LVDSCLK0p INPUT GND GND
EP2C8Q208C6 100 204
GND GND
20M EP2C8Q208C6 111
LED2 GND
DGND DGND
LED RN1_2 470 LED1 EP2C8Q208C6

DGND

LED3 D3V3 DGND


LED RN1_3 470 LED2

C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C21
LED4 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104
LED RN1_4 470 LED3
D1V2
DGND

C38 C39 C40 C41 C42 C43 C44 C45 C46 C47
104 104 104 104 104 104 104 104 104 104
DGND

DGND
JTAG

图 5-8 最小系统原理图
西南交通大学本科毕业设计(论文) 第 59 页

最小系统包括 FPGA 主芯片(EP2C8Q208N),JTAG 电路,AS(主动配置电路),


复位电路,和指示灯电路。

5.2 PCB 板的制作

PCB 图的生成步骤
1.在绘制完原理图的基础上,将元件导入 PCB 文件中;
2.布局,将导入的原件进行合理的布局;
3.布线,将所有有相同电气连接的引脚用线连起来,布线时要注意电源线要适当的宽
一些,芯片间的信号线要尽量短。
4.覆铜。一般是将地覆成铜。
5.电器检查,检查是否有电器气错误。
6.生成编译报告,通过编译报告,我们能得到整个 PCB 实际的情况的信息,比如是
否有遗漏的线没有连接,过孔的大小,线宽,线间距等有用的信息,以便我们做进一
步的修改。
7.送工厂,制作 PCB 板。
西南交通大学本科毕业设计(论文) 第 60 页

图 5-9 PCB 底层图

图 5-10 PCB 顶层图

5.3 小节

这一章我们主要讲的是 FPGA 硬件平台的搭建,首先我们给出了整个系统的结构


框架图,然后,对每个模块原的理图进行了分析,分析了每个模块的构成和作用。最
后,我们又介绍 PCB 的绘制过程及要点。通过这一章,我们完成了硬件平台的搭建,
在第四章用到的硬件平台就是用到这个硬件平台。
西南交通大学本科毕业设计(论文) 第 61 页

第六章结论与方案提高

6.1 结论

扩频通信技术是当今信息社会最为先进的无线电通信技术之一,而且,其技术在
无线光通信领域有着非常广泛的应用。由于扩频技术具有抗干扰能力强,扰截获,抗
多径、多址能力强,保密性好及测距精度高等一系列优点,因而越来越受到人们的重
视。随着大规模和超大规模集成电路技术、微电子技术、数字信号处理技术的迅猛发
展,以及一些新型器件的出现,使得扩频技术在无线局域网、皮网、 2G、3G移动通
信、卫星全球定位,军用通信,航天通信和深空探测等诸多领域都得到了较为广泛的
应用。
GMSK 调制与解调技术是扩频通信中不可缺少的一项重要的技术之一。而且现在
广泛使用的 GSM(Global System for Mobile communication)移动通信体制就是使用
GMSK 调制方式。因此,研究 GMSK 技术是非常有现实意义的。
传统的 GMSK 技术是通过全模拟技术或模拟技术和数字技术混合完成的,但是
随着数字技术的发展,尤其是近年来性能优越的 FPGA 和 CPLD 技术的发展,全数
字化接收机已成为未来通信的发展方向之一。全数字化的 GMSK 调制技术由传统的
模拟调制技术相比具有成本低,可维护性高,软件升级方便,能够适应多种通信速率
等优点。
本次论文的设计就是采用的全数字的 GMSK 调制与解调的方案,研究了 GMSK
调制与解调的实现方法。此次设计在导师的指导和学长的帮助下己顺利完成,设计包
括整体方案原理阐述、Verilog 代码的编写以及结合硬件电路的调试仿真、原理图设
计、PCB 板图绘制。

6.2 方案提高

本次论文的研究中还存在很多的不足,比如说在调制的输出端没有加 D/A 转
换器,因此还不能直接接入到信道中去;在解调的输入端也没有加入 A/D 转换器,
西南交通大学本科毕业设计(论文) 第 62 页

不能直接采集信道输出的信号;还有在整个系统的验证过程中用到的信道并不是真实
的信道,所以还不能完全证明本设计在实际系统中运行的情况是否能够达到要求。所
以,在方案的提高上就是将上诉的不足加以完善和改进。以适应实际的通信系统。
西南交通大学本科毕业设计(论文) 第 63 页

致谢

在此次论文完成之际,我衷心的感谢在这次毕业设计的研究、设计和论文的书写
中关心、指导、帮助我的老师和同学。
首先要向我的导师高晓蓉老师致以最衷心的感谢。从开题到论文的完成,都离不
开导师的严格要求,导师渊博的知识、严谨的学风、实事求是的科学态度和平易近人
的风格,使我受益匪浅,给予我的精神鼓励将使我终生奋斗不止。在此,向关心和培
养我的尊师表示最诚挚的谢意。
其次,我还要感谢这此论文给我很多指导的另一位老师郭建强老师和两位研究生
学长,在这此论文的完成的过程中他们给了我很多的建议和帮助,是我能够圆满完成
这次毕业设计有力的支撑。特此,在这里我也将我最诚挚的谢意送给、他们。
当然,我也要感谢我亲爱的父母,是他们这些年一直给予我默默地支持,从不要
回报的支持。没有他们对我的支持,我就不能完成我的学业。在即将毕业之际,我要
将我发自内心的爱和感谢送给我的父母。
最后,再次感谢我的导师,祝老师身体健康,工作顺利,万事如意。
西南交通大学本科毕业设计(论文) 第 64 页

参考文献
[1]樊昌信,曹丽娜编著.通信原理.第六版.国防工业出版社.
[2] 王新梅:《纠错码与差错控制》,人民邮电出版社,1989.
[3] 王新梅,肖国镇.纠错码—原理与方法(修订版).西安:西安电子科技大学出版
社,1991.
[4] 曹志刚,钱亚生.现代通信原理.北京:清华大学出版社,2002.
[5] 周炯槃.信息理论基础.北京:北京邮电大学出版社,1983.
[6] 周炯槃,庞沁华.通信原理(第 3 版).北京:北京邮电大学出版社,2008.
[7] 西瑞克斯(北京)通信设备有限公司.无线通信的 MATLAB 和 FPGA 实现.人
民 邮电出版社.2009.
[8] [美]John GProakis.数字通信(第四版)(张力军、张宗橙、郑宝玉等译).北京:
电子工业出版社,2003:355.

[9] 林茂生.基于 Matlab 的纠错码性能测试仿真[J].现代电子技术,2003(23):1-3.


[10] 薛年喜.MATLAB 在数字信号处理中的应用.清华人学出版社.2003.
[11] 樊昌信 曹丽娜.通信原理.第六版.国防工业出版社.2007.
[12] 吴伟陵,杨鸿文,续大我.通信原理.第三版.北京邮电大学出版社.2005.
[13] 仇佩亮,张朝阳,谢磊,余官定.信息论与编码(第二版).北京:高等教育出
版 社.2011.
[14] [美]John G.Proakis.现代通信系统(Matlab 版)(第二版)(刘树棠译).北京:电子
工业出版社.2005.

附录

You might also like