基于FPGA的FSK调制解调设计.docx
《基于FPGA的FSK调制解调设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的FSK调制解调设计.docx(30页珍藏版)》请在冰豆网上搜索。
基于FPGA的FSK调制解调设计
摘要
FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称。
它具有可编程逻辑器件现场可编程的灵活性,又有门陈列器件功能强、高集成度和高速度的优点,因此已在现代通信系统设计中被越来越广泛的应用。
VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。
论文着重使用VHDL语言对2FSK的调制与解调进行编程。
在系统仿真中,用MAX+PLUSⅡ作为仿真平台,对2FSK信号进行了调制解调的仿真。
调制方面用的键控法,解调方面用的相干解调进行解调。
基于FPGA的2FSK调制与解调在MAX+PLUSII上实现,通过VHDL语言的编程,生成调制解调所需要的几个模块,以实现整个2FSK的调制解调系统。
本论文共分四章,第一章主要是介绍了FPGA的原理以及它的应用、发展现状,另外介绍了VHDL语言的特点;第二章较为详细的讲述了FSK调制和解调的原理,其中包括FSK的多种调制和解调,及功率谱密度的特点。
第三章开始对2FSK调制解调系统的各个单元器件进行设计。
第四章开头介绍了MAX+PLUSII这款软件,接着使用这款软件实现2FSK调制解调算法,其中包括对各个功能模块的算法编程和时序仿真。
本设计的目的不是为了产生一种优于前人算法的算法,而是部分使用前人的算法,在前人算法中加入自己对2FSK调制解调算法的理解,从而产生能用于本设计的非通用算法。
关键词:
仿真,2FSK,VHDL,FPGA
Abstract
FPGAistheabbreviationforFieldProgrammableGateArray.Ithastheflexibilityoffieldprogrammabletotheprogrammablelogicdevices,alsohavestrongfunction,highlevelofintegrationandtheadvantagesofhighspeed,theseadvantagesaresamewithGateArraydevices.Therefore,ithasbeenmoreandmorewidelyusedinthemoderncommunicationsystemdesign.
VHDLlanguagehasstrongabilityofcircuitdescribedandmodeling,itcanmodelanddescribedigitalsysteminmultiplelevels,simplifiedthehardwaredesigntask,toimprovethedesignefficiencyandreliability.
ThispapermainlyusethelanguageofVHDLonprogrammingmodulationanddemodulationof2FSK.Inthesystemsimulation,usingMAX+PLUSⅡ,tosimulatemodulationanddemodulationof2FSK.Modulationusekeyingmethod,demodulationusecoherentdemodulationmethod.Basedon2FSKmodulationanddemodulationofFPGArealizingonMAX+PLUSⅡ,throughtheVHDLlanguageprogramming,producingsomeblocksofmodulationanddemodulation,realizingthewhole2FSKmodulationanddemodulationsystem.
Thisthesisinchapter4,ThefirstchapterismainlyintroduceshebasicprincipleofFPGAanditsapplication,developmentsituation,alsointroducesthecharacteristicsofthelanguageofVHDL;thesecondchaptertellsthedetailsofFSKmodulationanddemodulationbasicprinciple,includingvariousmodulationanddemodulationmethodofFSK,andpowerspectraldensitycharacteristics.Thethirdchapterbegantodesigneachunitdevicesofthe2FSKmodulationanddemodulation.ThefourthchapterbegantointroduceMAX+PLUSIIsoftware,usingthissoftwaretorealizethealgorithmof2FSKmodulationanddemodulation,includingprogrammingthealgorithmofthefunctionmoduleandtimingsimulation.
Thepurposeofthedesignisnottoproduceanalgorithmthatbetterthanpreviousalgorithm,butsomeofthepreviousalgorithmwereused,inthepreviousalgorithmtoaddmy2FSKdemodulationofthealgorithm,producingaspecialalgorithmsthatusedonthisthesis.
KeyWords:
Simulation;2FSK;VHDL;FPGA
第一章绪论
1.1FPGA介绍
FPGA是现场可编程门阵列(FieldProgrammableGateArray),它有类似于半定制门阵列的通用结构,即由逻辑功能模块排列成阵列,并由可编程的互连资源连接这些逻辑功能模块。
不同厂家生产不同型号的FPGA都有各自的特色,就结构来分析,基本由3部分组成,即可编辑逻辑块(CLB——ConfigurableLogicBlock),输入输出单元(IOB——I/OBlock)和可编程连线(IR——InterconnectResource)。
常见FPGA的结构主要有3中类型:
查表结构,多路开关结构,多极与非门结构。
1.查找表型FPGA的结构
查找表型FPGA可编程逻辑块是查找表,由查找表构成函数发生器,通过查找表来实现逻辑函数。
查找表的物理结构是静态存储器(SRAM)。
输入项的逻辑函数可以由有一个8位容量的SRAM实现,函数值存放在SRAM中,SRAM的地址线起输入线的作用,地址即输入的变量值,SRAM的输出为逻辑函数值,由连线开关与其他功能模块连接。
查找表结构函数的功能非常强。
多个输入的查找表可以实现多个输入项的组合逻辑函数,这样的函数有许多。
用查找表实现逻辑函数时,把对应函数的真值表预先存放在SRAM中即可实现相应的函数运算。
2.多开关型FPGA结构
在多路开关型FPGA中,可编辑模块是可配制的多路开关。
利用多路开关的特性对多路开关的输入和选择信号进行配制,接到固定电平或输入信号上,从而实现不同的逻辑功能。
多路开关型FPGA的代表是Actel公司的ACT系列FPGA。
在分析多路开关型结构时,必须选择一组2选1多路开关作为基本函数,然后再对输入变量进行配制,以实现所需的逻辑函数。
多路的开关
结构中,同一函数可以用不同的形式来实现,取决于选择控制信号和输入信号的配置。
3.多极与非门型FPGA结构
采用多极与非门结构的器件是Altera公司的FPGA。
Altera公司的与非门结构基于一个“与-或-异或“逻辑块。
Altera公司的FPGA的多极与非门结构同PLD的与或阵列很类似。
在多极与非门结构中的与门是可编辑的,它起着逻辑连接和布线的作用,而在其他算术功能方面,FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输入输出模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
FPGA的特点主要有:
1、采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
2、FPGA可做其它全定制或半定制ASIC电路的中试样片。
3、FPGA内部有丰富的触发器和I/O引脚。
4、FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5、FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需要一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
FPGA有多种配置模式:
并行主模式是一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器外设,由微处理器对其编程。
由于FPGA具有可编程逻辑器件现场可编程的灵活性,又具有门陈列器件功能强、高集成度和高速度的优点,因此在要求功能越来越强,体积越来越小,功耗越来越低的现代通信系统设计中被越来越广泛的应用。
1.2VHDL简介
硬件描述语言(HDL—HardwareDescriptionLanguage)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统门级描述方式相比,它更适合大规模系统的设计。
VHDL语言可读性强,易于修改和发现错误。
早期的硬件描述语言,如ABEL–HDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。
为了克服以上不足,1985年美国国防部正式推出了VHDL(VeryHighSpeedICHardwareDescriptionLanguage)语言,1987年IEEE采纳VHDL为硬件描述语言标准(IEEESTD-1076)。
VHDL语言的全称是“超高速集成电路硬件描述语言”,它是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流、行为三种描述形式的混合描述,VHDL是一种独立于实现技术的语言,它不受某一特定工艺的束缚,允许设计者在其使用范围内选择工艺和方法。
为了适应未来的数字硬件技术,VHDL还提供了将新技术引入现有设计的潜力。
VHDL语言的最大特点是描述能力极强,覆盖了逻辑设计的诸多领域和层次,并支持众多的硬件模型。
此外,VHDL较其他的硬件描述语言有如下优越之处:
1、支持从系统级到门级电路的描述,同时也支持多层次的混合描述;描述形式可以是结构描述,也可以是行为描述,或者二者兼而有之。
2、既支持自底向上的设计,也支持自顶向下的设计;既支持模块化设计,也支持层次化设计;支持大规模的设计。
3、既支持同步电路,也支持异步电路,既支持同步方式,也支持异步方式。
4、数据类型丰富,既支持预定义的数据类型,又支持自定义的数据类型;VHDL是强类型语言,设计电路安全性好。
5、支持传输延迟和惯性延迟,可以更准确地建立复杂的电路硬件模型。
6、支持过程与函数的概念,有助于设计者组织描述,对行为功能进一步分类。
7、提供了将独立的工艺集中于一个设计包的方法,便于作为标准的设计文档保存,也便于设计资源的重复使用。
8、VHDL语言具有很高的精确性,并提供了向设计传送环境信息的能力。
9、VHDL语言的断言语句可用来描述设计本身的约束信息,支持设计在描述中的书写错误和特殊约束,便于模拟调试,而且为综合提供了重要信息。
1.3论文的目标与内容安排
FPGA就是现场可编程门阵列(FieldProgrammableGateArray),它具有类似于半定制门阵列的通用结构,即由逻辑功能块排列成阵列组成,并由可编程的互连资源连接这些逻辑功能块来实现所需的设计由于FPGA具有可编程逻辑器件现场可编程的灵活性,又具有门陈列器件功能强、高集成度和高速度的优点,因此在要求功能越来越强,体积越来越小,功耗越来越低的现代通信系统设计中被越来越广泛的应用。
本论文就是用FPGA来实现2FSK的调制解调算法。
本论文用FPGA的开发平台Max+PlusⅡ来实现整个仿真系统,具体内容有:
m序列(伪随机序列)的产生;分频器的设计;数据的选择控制,具体调制模块的设计和正弦信号的产生几部分。
在Max+PlusⅡ中实现2FSK系统时,主要采用图形输入和文本输入(VHDL语言编程)相结合的方式进行,具体的模块设计都是采用VHDL语言编写,整个系统的实现则是采用图形输入。
在设计中,也存在一些误差问题,比如系统延迟问题,仿真出现毛刺,由于所有的仿真也都是在理想状态下进行的,这些问题在这篇论文中都没有进行深入讨论,这是以后对2FSK的FPGA实现需要继续研究的问题。
第二章FSK调制解调方法
2.1FSK调制方法
2.1.12FSK与MFSK调制
FSK又称频移键控,它是利用载频频率的变化来传递数字信息。
FSK是信息传输中使用得较早的一种调制方式,它的主要优点是:
实现起来较容易,抗噪声与抗衰减的性能较好。
在中低速数据传输中得到了广泛的应用。
2FSK信号为两个不同频率交替发送的ASK信号的和。
图2-12FSK波形
2FSK是二进制频移键控,2FSK信号的“0”符号对应于载频ω1,而“1”符号对应于载频ω2。
所以2FSK信号可利用一个矩形脉冲序列对一个载波进行调频而获得。
根据以上2FSK信号的产生原理,已调信号的数学表示式为
eo(t)=Σang(t-nTs)cos(ω1t+Φn)+Σang(t-nTs)cos(ω2t+θn)
(2-1)
式中g(t)为单个矩形脉冲,脉宽为Ts
(2-2)
的反码
(2-3)
,
分别为第n个信号码元的初相位
由于多进制数字调制是使被调参数在一个码元间隔内有多个可能取值,因此与二进制数字调制相比,多进制数字调制具有以下两个优点:
(1)在相同的码元传输速率下,多进制系统的信息传输速率显然比二进制的高。
(2)在相同的信息传输速率下,由于多进制码元传输速率比二进制的低,因而多进制信号码元的持续时间要比二进制的长。
显然,增大码元宽度,就会增加码元的能量,并能减少由于信道特性引起的码间干扰的影响等。
正是基于这些特点,使多进制调制方式得到了
广泛的应用。
MFSK是多进制数字频率调制,简称多频制。
它基本上是二进制数字
频率键控方式的直接推广,其组成方框图如下:
图2-2多频制系统的组成方框图
绝大多数的多频制系统,可用上图表示。
图中,串并变换器和逻辑电路将一组输入二进制码转换成有多种状态的多进制码。
当某组二进制码到来时,逻辑电路的输出一方面打开相应的一个门电路,让与该门电路相应载波发送出去;另一方面却同时关闭其余所有的门电路。
于是,当一组组二进制码输入时,经相加器送出的便是一个多进制频率键控的波形。
多频制的解调部分由多个带通滤波器、包络检波器及一个抽样判决器的有关逻辑电路组成。
各带通滤波器的中心频率就是多个载波的频率。
因而,当某一载频到来时,只有一个带通滤波器有信号通过,而其他带通滤波器只有噪声通过。
抽样判决器的任务是在给定时刻上比较各检波器输出的电压,并选出最大者作为输出。
MFSK信号带宽
BMFSK=fM-f1+△f(2-4)
2.1.2FSK信号功率谱密度
我们把二进制频移键控信号看成是两个幅移键控信号相叠加的结果,即
其中
如果s1(t)的功率谱密度为Ps1(f);s2(t)的功率谱密度为Ps2(f),利用平稳随机过程经过乘法器的结论,上式可以整理为如下形式:
核心问题:
与2ASK信号表达式中的s(t)相同,
(2-10)
当p=1/2时
2FSK功率谱密度的特点如下:
1、2FSK信号的功率谱由连续谱和离散谱两部分构成,离散谱出现在f1和f2位置;
2、功率谱密度中的连续谱部分一般出现双峰。
若两个载频之差|f1-f2|≤fs,则出现单峰;
3、所需传输带宽BFSK=|f1-f2|+2fs
2.22FSK调制
2.2.1模拟调频
2FSK信号可利用一个矩形脉冲序列对一个载波进行调频而获得,这是频率键控通信方式早期采用的实现方法,被称为模拟调频。
用模拟调频法时,由于ω1与
ω2改变时,e0(t)相位是连续的,故Φn、θn不仅与第n个信号码元有关,而且Φn与θn之间也应保持一定的关系。
图2-3模拟调频
2.2.2键控法
键控法是利用受矩形脉冲序列控制的开关电路对两个不同的独立频率源进行选通。
一般来说,键控法得到的Φn、θn是与序列n无关的,反映在e0(t)上,仅表现出ω1与ω2改变时e0(t)相位是不连续的。
图2-4键控法
理论上数字调制与模拟调制在本质上没有什么不同,它们都是属正弦波调制。
但是,数字调制是调制信号为数字型的正弦波调制,而模拟调制则是调制信号为连续型的正弦波调制,因而,数字调制具有由数字信号带来的一些特点。
这些特点主要是:
第一,数字调制信号的产生,除把数字的调制信号当作模拟信号的特例而直接采用模拟调制方式产生数字调制信号外,可以采用键控载波的方法。
第二,对于数字调制信号的解调,为提高系统的抗噪声性能,通常采用与模拟调制系统中不同的解调方式。
2.32FSK解调
2FSK信号常用的解调方法为相干解调和非相干解调,另外还有鉴频法等。
2.3.1相干解调
相干解调主要利用的是同频同相的载波频率,对已调信号进行正交,只有当频率与相位相同时,才能判断是什么信号。
原理图如下:
图2-5相干解调原理图
2.3.2非相干解调
非相干解调与相干解调不同,,它是利用脉冲检测已调信号的周期,以区分已调信号的高低电平,从而判断已调信号。
原理图如下:
图2-6非相干解调原理
2.3.3过零检测
数字调频波的过零点数随不同载频而异,故检出过零点数可以得到关于频率的差异。
这就是过零检测的基本思想,其原理如图所示。
输入信号经限幅后产生矩形波序列,经微分整流形成与频率变化相应的脉冲序列,这个序列就代表着调频波的过零点。
将其变换成具有一定宽度的矩形波,并经低通滤波器滤除高次谐波,便能得到对应于原数字信号的基带脉冲信号。
图2-7过零检测原理图
第三章2FSK调制解调设计
3.12FSK调制器设计
整个2FSK调制部分分为五个部分,分别是:
分频器,m序列产生器,数据选择器,2FSK跳变检测部分,正弦信号产生器。
整个系统的输入时钟,在硬件中是由晶体震荡器完成的。
将分频器接入这个时钟,分频器产生的系统的输入时钟、4倍频和16倍频分别输入数据选择器和m序列产生器,并和m序列产生器产生的码元信号一起完成对频率的选择,再经过跳变检测,这时产生的矩形波通过正弦信号产生器,变成调制信号。
3.1.1功能模块设计
1分频器
在数字逻辑电路设计中,分频器是一种基本电路。
通常用来对某个给定频率进行分频,以得到所需的频率。
整数分频器的实现非常简单,可采用标准的计数器,也可以采用可编程逻辑器件设计实现。
但在某些场合下,时钟源与所需的频率不成整数倍关系,此时可采用小数分频器进行分频。
图3-1分频器
如上图,分频系数为N-0.5的分频器电路可由一个异或门、一个模N计数器和一个二分频器组成。
在实现时,模N计数器可设计成带预置的计数器,这样可以实现任意分频系数为N-0.5的分频器。
2m序列产生器
n级线性移位寄存器,经过适当的抽头反馈和模2加法器能产生序列的最大可能周期是p=2
-1,这样的序列叫最长线性反馈移位寄存器序列或m序列。
m序列具有许多优良特性,是最常采用的扩谱码序列。
它具有如下性质:
1.序列的平衡性:
m序列一个周期中“1”的个数比“0”多1,且1的个数为2n-1,0的个数为2n-1-1。
2.移位可加性:
某个m序列同相移为任意值的同一m序列的模2加是另一相移的m序列。
3.在周期为p=2
-1的m序列中,总共有2
个游程,有一个长度为n的1游程,一个长度为n-1的0游程。
在实际工程应用中,m序列既可以用硬件产生,也可以用软件产生,然后存在ROM中通过相应的时钟同步输出。
在硬件中可使用移位寄存器来产生。
m序列的显著特点是:
随机特性;预先可确定性;循环特性,从而在通信领域得到了广泛的应用。
在这里用一种带有两个反馈抽头的3级反馈移位寄存器得到一串“1110010”循环序列,并采取措施防止进入全“0”状态。
通过更换时钟频率,是可以方便地改变输入码元的速率的。
m序列产生器的电路结构如图。
图3-2m序列产生器
3数据选择器
数据选择器的功能:
在多个通道中选择其中的某一路,或多个信息中选择其中的某一个信息传送或加以处理。
数据分配器的功能:
将传送来的或处理后的信息分配到各通道去。
在本设计中,数据选择器用于选择正弦波产生器的两个输入时钟,一个频率为4mHz,此时正弦波产生器产生一个1MHz的正弦波,代表数字信号“1”另一个频率4MHz,此时产生一个250kHz的正弦波信号,代表数字信号“0”。
当信号为1时,波形与f1相同,说明数据选择器选择了f1这路数据。
当信号为0时,波形与f2相同,说明数据选择器选择了f2这路数据。
跳变检测
将跳变检测引入正弦波的产生中,可以使每次基带码元上升沿或下降沿到来时应输出波形位于正弦波形的0相位处,此电路的设计主要是便于观察,确保示波器上成为一个连续的波形。
基带信号的跳变检测可以有很多方法,下图为一种便于在可编程逻辑器件中实现的方案。
图3-3信号跳变检测电路
4正弦信号产生
用数字电路和DAC变换器可以产生要求的模拟信号。
根据抽样定理可知,当用模拟信号最大频率2倍以上的速率对该模拟信号采样时,便可将模拟信号不失真地恢复出来。
本例要求得到的是2个不同频率的正弦信号,实验中对正