您的当前位置:首页正文

基于FPGA的FSK调制解调

2023-02-28 来源:客趣旅游网
命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

FPGA/CPLD课程设计报告

[FSK调制解调器设计]

学生姓名: X X 学生学号: 200XXXXXX 院 (系): 电气信息工程学院 年级专业: 20XX级电子信息工程 指导老师: XX X XX 联系电话: XXXXXXXX

二〇XX年六月

你今天的日积月累,终会变成别人的望尘莫及。 11

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

摘 要

调制解调器是通信系统中的关键设备,其性能的好坏直接关系到整个系统的性能。经过近两个星期的的实验,我们四个组员齐心协力,利用Quartus II软件中的VHDL语言对FSK频移键控系统就行调制、解调的程序设计。终于制作出了FSK调制解调器。本次设计的FSK调制解调器的各项参数分别为:载频f1=12.5MHz,f2=2MHz,调制信号f=1MHz。本次设计的FSK电路可广泛用于远程自控系统及移频通信中。采用FSK调制方式的主要优点是:①无需载波恢复,大大降低了系统复杂度。②对幅度的非线性抗干扰能力强。因为FSK信号为恒包络信号,其信息完全包含在信号的过零点上,所以比起调幅信号,其对幅度非线性抗干扰能力要强。③调制解调易用软硬件实现,简单易懂。

关键字 VHDL语言,FSK调制,FSK解调

你今天的日积月累,终会变成别人的望尘莫及。 22

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

ABSTRACT

The modem communication system is the key equipment, its performance has a direct relationship to the entire system performance. After nearly two weeks of experiments, we four members together, use Quartus II in the software of VHDL language to FSK FSK system will do modulation and demodulation of the program design. Finally made FSK modem. The design of FSK modems are: to determine the parameters of f1 = 12.5 MHz, f2 = 2 MHz, modulation signal f = 1 MHz. The design of FSK circuit can be widely used in remote control system and frequency shift in communications. Utilize FSK modulator way of main advantage is: (1) no carrier recovery, and greatly reduce the system complexity. (2) the amplitude of the nonlinear of anti-jamming ability. Because FSK signal is a constant envelope signal, the information is fully contained in the signal zero, so, the amplitude modulated signal than by nonlinear anti-interference ability is ambitious. (3) demodulation is easy to use software and hardware realization, simple and understandable.

Key word VHDL Language, FSK make, FSK solution adjust

你今天的日积月累,终会变成别人的望尘莫及。 33

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

目 录

摘 要…………………………………………………………………………………Ⅰ ABSTRACT…………………………………………………………………………Ⅱ

1 绪 论………………………………………………………………………………1

1.1 题目的意义………………………………………………………………………1 1.2 设计要求…………………………………………………………………………1

2 FSK设计的基本原理………………………………………………………………2

2.1 FSK的调制………………………………………………………………………2 2.2 FSK的解调………………………………………………………………………3

3 设计方案……………………………………………………………………………5

3.1 FSK基于VHDL语言调制程序……………………………………………………5 3.2 FSK基于VHDL语言解调程序……………………………………………………6

4 测 试………………………………………………………………………………8

4.1 FSK调制仿真……………………………………………………………………8 4.2 FSK解调仿真……………………………………………………………………11

5 结 论………………………………………………………………………………14 6 参考文献…………………………………………………………………………15

你今天的日积月累,终会变成别人的望尘莫及。 44

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

1 绪 论

1.1 题目的意义

数字调制技术是现代通信的一个重要内容,在数字通信系统中,由于数字信号具有丰富的低频成份,不宜进行无线传输或长距离电缆传输,因而需要将基带信号进行数字调制(Digital Modulation)。数字调制同时也是数字信号频分复用的基本技术。

数字调制与模拟调制都属于正弦波调制,但是,数字调制是调制信号为数字型的正弦波调制,因而数字调制具有自身的特点,一般说来数字调制技术分为两种类型:一是把数字基带信号当作模拟信号的特殊情况来处理;二是利用数字信号的离散取值去键控载波,从而实现数字调制。后一种方法通常称为键控法。例如可以对载波的振幅、频率及相位进行键控,便可获得振幅键控(ASK)、移频键控(FSK)、相移键控(PSK)等调制方式。

移频键控(FSK)是数字信息传输中使用较早的一种调制形式,它由于其抗干扰及衰落性较好且技术容易实现,因而在集散式工业控制系统中被广泛采用。

以往的键控移频调制解调器采用“定功能集成电路+连线”式设计;集成块多,连线复杂,容易出错,且体积较大,本设计采用Lattice公司的FPGA芯片,有效地缩小了系统的体积,降低了成本,增加了可靠性,同时系统采用VHDL语言进行设计,具有良好的可移植性及产品升级的系统性。

1.2 设计要求

1.了解了FSK信号的基本概念后,利用Quartus II软件中的VHDL语言对2FSK频移键控系统就行调制、解调的程序设计。

2.程序设计运行成功后,在利用VHDL语言对FSK频移键控系统进行调制、解调的波形仿真。

3.最后通过VHDL语言制作出FSK频移键控系统调制、解调的电路图。

你今天的日积月累,终会变成别人的望尘莫及。 55

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

2 FSK设计的基本原理

2.1 FSK的调制

频移键控即FSK(Frequency-Shift Keying)数字信号对载波频率调制,主要通过数字基带信号控制载波信号的频率来来传递数字信息。在二进制情况下,“1”对应于载波频率,“0”对应载波频率,但是它们的振幅和初始相位不变化。FSK信号产生的两种方法:

一、直接调频法

用二进制基带矩形脉冲信号去调制一个调频器,使其输出两个不同频率的码元。一般采用的控制方法是:当基带信号为正时(相当于“1”码),改变振荡器谐振回路的参数(电容或者电感数值),使振荡器的振荡频率提高(设为f1);当基带信号为负时(相当于“0”码),改变振荡器谐振回路的参数(电容或者电感数值),使振荡器的振荡频率降低(设为f2);从而实现了调频。这种方法产生的调频信号是相位连续的,虽然实现方法简单,但频率稳定度不高,同时频率转换速度不能做得太快,但是其优点是由调频器所产生的FSK信号在相邻码元之间的相位是连续的。

二、频率键控法

频率键控法也称频率选择法。它有两个独立的振荡器,数字基带信号控制转换开关,选择不同频率的高频振荡信号实现FSK调制。

图1 频率健控法原理框图

键控法产生的 FSK信号频率稳定度可以做得很高并且没有过渡频率,它的转换速度快,波形好。频率键控法在转换开关发生转换的瞬间,两个高频振荡的输出电压通常不可能相等,于是uFSK(t)信号在基带信息变换时电压会发生跳变,这种现象也称为相位不连续,这是频率键控特有的情况。

三、FSK的调制方框图及电路符号

你今天的日积月累,终会变成别人的望尘莫及。 66

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

clkstart基带信号FPGA分频器1分频器2载波f1载波f2二选一选通开关调制信号 图2 FSK调制方框图

图3 FSK调制电路符号

2.2 FSK的解调

数字频率键控(FSK)信号常用的解调方法有很多种如:

一、同步(相干)解调法

在同步解调器中,有上、下两个支路,输入的FSK信号经过1和2两个带通滤波器后变成了上、下两路ASK信号,之后其解调原理与ASK类似,但判决需对上、下两支路比较来进行。假设上支路低通滤波器输出为x1,下支路低通滤波器输出为x2,则判决准则是:

x1x20x1x20判输入为f1信号判输入为f2信号

图4 相干解调法原理框图

接收信号经过并联的两路带通滤波器进行滤波与本地相干载波相乘和包络检波后,进行抽样判决,判决的准则是比较两路信号包络的大小。假设上支路低通滤波器输出为cos1t,下支路低通滤波器输出为cos2t,则判决准则是:如果上支的信号包络较大,则判决为“1”;反之,判决为收到为“0”。

你今天的日积月累,终会变成别人的望尘莫及。

77

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

二、FSK滤波非相干解调法

输入的FSK中频信号分别经过中心频为、的带通滤波器,然后分别经过包络检波,包络检波的输出在t=kTb时抽样(其中k为整数),并且将这些值进行比较。根据包络检波器输出的大小,比较器判决数据比特是1还是0。

图5 非相干解调法原理框图

三、FSK

的解调方框图及电路符号

FPGAclkstart基带信号分频器q计数器m寄存器XX判决调制信号图6 FSK解调方框图

图7 FSK解调电路符号

你今天的日积月累,终会变成别人的望尘莫及。 88

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

3 设计方案

3.1 FSK基于VHDL语言调制程序

文件名: FSKTZ

--功能:基于VHDL硬件描述语言,对基带信号进行FSK调制 LIBRARY IEEE;

USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY FSKTZ IS

PORT(CLK:IN STD_LOGIC; START:IN STD_LOGIC; X:IN STD_LOGIC; Y:OUT STD_LOGIC); END FSKTZ;

ARCHITECTURE BEHAV OF FSKTZ IS SIGNAL Q1:INTEGER RANGE 0 TO 11; SIGNAL Q2:INTEGER RANGE 0 TO 3; SIGNAL F1,F2:STD_LOGIC; BEGIN

PROCESS(CLK) BEGIN

IF (CLK'EVENT AND CLK='1') THEN IF START='0' THEN Q1<=0;

ELSIF Q1<=5 THEN F1<='1';Q1<=Q1+1;

ELSIF Q1=11 THEN F1<='0';Q1<=0; ELSE F1<='0';Q1<=Q1+1; END IF; END IF; END PROCESS; PROCESS(CLK) BEGIN

你今天的日积月累,终会变成别人的望尘莫及。

99

--系统时钟 --开始调制信号 --基带信号 --调制信号

--载波信号F1的分频计数器 --载波信号F2的分频计数器 --载波信号F1,F2

--产生载波F1

--改变Q1可以改变载波F1 --的占空比

--产生载波F2

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

IF (CLK'EVENT AND CLK='1') THEN IF START='0' THEN Q2<=0; ELSIF Q2=1 THEN F2<='0';Q2<=0; ELSIF Q2<=0 THEN F2<='1';Q2<=Q2+1; ELSE F2<='0';Q2<=Q2+1; END IF; END IF; END PROCESS; PROCESS(CLK,X) BEGIN

IF (CLK'EVENT AND CLK='1') THEN IF X='0' THEN Y<=F1; ELSE Y<=F2; END IF; END IF; END PROCESS; END BEHAV;

--X=’0’时,输出F1 --X=’1’时,输出F2

--此进程完成对基带信号的FSK调制

3.2 FSK基于VHDL语言解调程序

文件名:FSKJT

--功能:基于VHDL硬件描述语言,对基带信号进行FSK解调 LIBRARY IEEE;

USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY FSKJT IS

PORT(CLK:IN STD_LOGIC; START:IN STD_LOGIC; X:IN STD_LOGIC; Y:OUT STD_LOGIC); END FSKJT;

ARCHITECTURE BEHAV OF FSKJT IS SIGNAL Q:INTEGER RANGE 0 TO 11; SIGNAL XX:STD_LOGIC;

SIGNAL M:INTEGER RANGE 0 TO 5;

--分频计数器 --寄存器 --系统时钟 --同步信号 --调制信号 --基带信号

--计数器

你今天的日积月累,终会变成别人的望尘莫及。 1010

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

BEGIN

PROCESS(CLK) BEGIN

IF (CLK'EVENT AND CLK='1') THEN XX<=X; --在CLK信号上升沿时

--X信号对中间信号XX赋值

--IF语句完成对Q的循环计数

IF START='0' THEN Q<=0; ELSIF Q=11 THEN Q<=0; ELSE Q<=Q+1; END IF; END IF; END PROCESS; PROCESS(XX,Q) BEGIN

IF Q=11 THEN M<=0; ELSIF Q=10 THEN

--此进程完成对FSK解调

--M计数器清零

IF M<=3 THEN Y<='0'; --IF语句通过对M大小,来判决Y输出的电平 ELSE Y<='1'; END IF;

ELSIF XX'EVENT AND XX='1' THEN M<=M+1; --计XX信号的脉冲个数 END IF; END PROCESS; END BEHAV;

你今天的日积月累,终会变成别人的望尘莫及。 1111

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

4 测 试

4.1 FSK调制仿真

工程编译通过后,必须对其功能和时序性能进行仿真测试,以验证设计结果是否满足设计要求。整个时序仿真测试流程一般有建立波形文件、输入信号节点、设置波形参数、编辑输入信号、波形文件存盘、运行仿真器和分析方针波形等步骤。假设需要调制的二进制序列为[1 1 0 1 0 0 1 0 1 1 0 0 1],且码元宽度为480ns。

一、FSK调制波形仿真

①建立仿真测试波形文件。

选择Quartus II主窗口的File菜单的New选项,在弹出的文件类型编辑对话框中,选择Other Files中的Vector Weaveform File项,单击OK按钮,即出现如图8所示的波形文件编辑窗口。

图8 波形文件编辑窗口

②设置仿真时间区域。

对于时序仿真测试来说,将仿真时间设置在一个合理的时间区域内是十分必要的,通常设置的时间区域将视具体的设计项目而定。

设计中整个仿真时间区域设为6us、时间轴周期为40ns,其设置步骤是在Edit菜单中选择End Time,在弹出的窗口中Time处填入6,单位选择us,同理在Gride Size中Time period输入40ns,单击OK按钮,设置结束。

③输入工程信号节点

你今天的日积月累,终会变成别人的望尘莫及。 1212

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

选择View菜单中的Utility Windows项的Node Finder,即可弹出如图4.1.2所示的对话框,在此对话框Filter项中选择Pins:all&Registers:Post-fitting,然后单击List按钮,于是在下方的Nodes Found窗口中出现设计中的PL_FSK工程的所有端口的引脚名。用鼠标将时钟信号节点clk、start、x、q1、f1、q2、f2和y分别拖到波形编辑窗口,如图9所示,此后关闭Nodes Found窗口即可。

图9 FSK调制波形编辑器输入信号窗口

④设计信号波形。

单击图9左侧的全屏显示按钮,使之全屏显示,并单击放大缩小按钮,再用鼠标在波形编辑窗口单击(右击为放大,左击为缩小),使仿真坐标处于适当位置。单击图9窗口的时钟信号clk使之变成蓝色条,再单击右键,选择Value设置中的Count Value项,设置clk为连续变化的二进制值,初始值为“0”。单击start使之变成蓝色,再单击右键,选择Value设置中的Forcing High项,使start变成高电平信号。单击x使之变成蓝色,再单击右左侧Waveform Editing按钮,把x变成高低电平连续变化信号。

⑤文件存盘

选择File中的Save as项,将波形文件以默认名FSKTZ.vwf存盘即可。 ⑥ 所有设置完成后,即可启动仿真器Processing︱Start Simulation直到出现Simulation was successful,仿真结束。仿真波形输出文件FSKTZ Simulation Report将自动弹出如图10所示。注意,Quartus II的仿真波形文件中,波形编辑文件(*.vwf)与波形仿真报告输出文件(Simulation Report)是分开的,而Maxplus II的激励波形编辑文件与波形仿真报告输出文件是合二为一的。

你今天的日积月累,终会变成别人的望尘莫及。 1313

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

图10 FSK调制VHDL程序仿真全图

图11 FSK调制VHDL程序仿真局部放大图

二、FSK调制电路

FSK调制电路如图12所示:

图12 FSK调制电路图

Quartus II可实现硬件描述语言或网表文件(VHDL、Verilog、BDF、TDF、EDIF、VQM)对应的RTL电路图的生成。其方法为:选择Tools︱RTL Viewer,可以打开FSKTZ工程个层次的RTL电路图,双击图形中有关模块,或选择左侧各项,可了解个层次的电路结构。

你今天的日积月累,终会变成别人的望尘莫及。 1414

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

4.2 FSK解调仿真

工程编译通过后,必须对其功能和时序性能进行仿真测试,以验证设计结果是否满足设计要求。整个时序仿真测试流程一般有建立波形文件、输入信号节点、设置波形参数、编辑输入信号、波形文件存盘、运行仿真器和分析方针波形等步骤。以FSK调制的输出作为FSK解调的输入。

一、FSK解调波形仿真

①建立仿真测试波形文件。

选择Quartus II主窗口的File菜单的New选项,在弹出的文件类型编辑对话框中,选择Other Files中的Vector Weaveform File项,单击OK按钮,即出现波形文件编辑窗口。

②设置仿真时间区域。

对于时序仿真测试来说,将仿真时间设置在一个合理的时间区域内是十分必要的,通常设置的时间区域将视具体的设计项目而定。设计中整个仿真时间区域设为6us、时间轴周期为40ns,其设置步骤是在Edit菜单中选择End Time,在弹出的窗口中Time处填入6,单位选择us,同理在Gride Size中Time period输入40ns,单击OK按钮,设置结束。

③ 输入工程信号节点

选择View菜单中的Utility Windows项的Node Finder,即可弹出如图4.2.1所示的对话框,在此对话框Filter项中选择Pins:all&Registers:Post-fitting,然后单击List按钮,于是在下方的Nodes Found窗口中出现设计中的PL_FSK2工程的所有端口的引脚名。用鼠标将时钟信号节点clk、start、x、y、q、m和xx分别拖到波形编辑窗口,如图13所示,此后关闭Nodes Found窗口即可。

图13 FSK解调波形编辑器输入信号窗口

你今天的日积月累,终会变成别人的望尘莫及。 1515

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

④设计信号波形。

单击图13左侧的全屏显示按钮,使之全屏显示,并单击放大缩小按钮,再用鼠标在波形编辑窗口单击(右击为放大,左击为缩小),使仿真坐标处于适当位置。单击图13窗口的时钟信号clk使之变成蓝色条,再单击右键,选择Value设置中的Count Value项,设置clk为连续变化的二进制值,初始值为“0”。单击start使之变成蓝色,再单击右键,选择Value设置中的Forcing High项,使start变成高电平信号。单击x使之变成蓝色,再单击右左侧Waveform Editing按钮,把x变成高低电平连续变化信号。

⑤ 文件存盘

选择File中的Save as项,将波形文件以默认名FSKJT.vwf存盘即可。 ⑥所有设置完成后,即可启动仿真器Processing︱Start Simulation直到出现Simulation was successful,仿真结束。仿真波形输出文件FSKJT Simulation Report将自动弹出如图14所示。注意,Quartus II的仿真波形文件中,波形编辑文件(*.vwf)与波形仿真报告输出文件(Simulation Report)是分开的,而Maxplus II的激励波形编辑文件与波形仿真报告输出文件是合二为一的。

图14 FSK解调VHDL程序仿真全图

图15 FSK解调VHDL程序仿真局部放大图

你今天的日积月累,终会变成别人的望尘莫及。 1616

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

二、FSK调制电路

FSK调制电路如图16所示:

图16 FSK解调电路图

Quartus II可实现硬件描述语言或网表文件(VHDL、Verilog、BDF、TDF、EDIF、VQM)对应的RTL电路图的生成。其方法为:选择Tools︱RTL Viewer,可以打开PL_FSK2工程个层次的RTL电路图,双击图形中有关模块,或选择左侧各项,可了解个层次的电路结构,如图16所示。

你今天的日积月累,终会变成别人的望尘莫及。 1717

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

5 结 论

传统的FSK调制解调方式都是采用硬件电路实现,电路复杂、调试不便。文中采用硬件描述语占设计的基于FPGA调制解调器,设计灵活、修改方便,有效地缩小了系统的体积,增加了可靠性,同时系统采用VHDL语言进行设计,具有良好的可移植性及产品升级的系统性;由于使用FPGA芯片,可随时在线更改逻辑设计及有关参数,充分体现现场可编程器件的优越性。

本次设计,由于数字调制技术与FPGA的结合,使得通信系统的性能得到了迅速的提高。通过FSK系统调制与解调建模,以Quartus II 9.0软件为平台,基于VHDL语言,达到了预期的仿真结果。通过本次设计,了解了频移键控数字通信系统的用途及工作原理,熟悉了FSK基于VHDL语言的设计步骤,提高了绘图能力,锻炼了设计实践和语言组织能力,培养了自己独立设计能力。但由于个人的能力有限,设计还存在不足。本次毕业设计是对专业基础知识一次实际检验和巩固,同时也是走向工作岗位前的一次热身。

你今天的日积月累,终会变成别人的望尘莫及。 1818

命运如同手中的掌纹,无论多曲折,终掌握在自己手中。

6 参 考 文 献

[1] 樊昌信等.通信原理(第五版).北京:国防工业出版社,2001 [2] 刘昌华.数字逻辑EDA设计与实践. 北京:国防工业出版社,2006

[3] 苏青,张红.基于CPLD/FPGA技术的数字频率设计.北京:清华大学出版社,2007 [4] 黄智伟.FPGA系统设计与实践.北京:电子工业出版社,2005

[5] 张凤言.大规模逻辑器件与数字系统设计. 北京:北京航空航天大学出版社,1998 [6] 段吉海,黄智伟. 基于CPLD/FPGA的数字通信系统建模与设计.北京:电子工业出版社,2004.

[7] 董在望.通信原理.北京:高等教育出版社,2002 [8] 王小军.VHDL简明教程. 北京:清华大学出版社,1997 [9] 潘松,黄继业.EDA技术实用教程.北京:科学出版社.2005

[10] 张文艳,陈立强,程方,程刚.用FPGA实现MFSK信号.探测与控制学报,2004(4):19-21 [11] 黄正瑾.可编程逻辑器件设计[M].上海:复旦大学出版社,1997. [12] 边计年.用VHDL设计电子线路[M].薛宏熙译.北京:清华大学出版社.

[13] 刘爱荣,王振成. EDA技术与CPLD/FPGA开发应用简明教程.北京:清华大学出版社,2007

你今天的日积月累,终会变成别人的望尘莫及。 1919

因篇幅问题不能全部显示,请点此查看更多更全内容