基于FPGA的2DPSK信号产生器的设计_第1页
基于FPGA的2DPSK信号产生器的设计_第2页
基于FPGA的2DPSK信号产生器的设计_第3页
基于FPGA的2DPSK信号产生器的设计_第4页
基于FPGA的2DPSK信号产生器的设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE 2基于FPGA的2DPSK信号产生器的设计摘 要:随着时代的进步,FPGA的应用也越来越广泛,FPGA用硬件描述语言(Verilog HDL)来实现2DPSK信号的调制系统,不仅简单方便,而且还能满足现代设备快速、准确、功耗低的特点。Verilog语言有着灵活多样的电路描述风格,语言功能性强,并且简单易学,这些优良的性能使其得到广泛流行。数字通信技术与FPGA的结合是现代通信系统发展的一个必然趋势。FPGA实现2DPSK信号可用如下方法,先通过FPGA产生时钟信号,经过分频器产生两路时钟,一路用于基带码的产生,也就是用于驱动M序列信号发生器产生绝对码,另一路用于采样正弦信号。M序列产

2、生的绝对码经过差分运算转换成相对码,再把相对码加到正弦信号上输出,这就相当于对原码进行了调相输出。而FPGA只能处理数字信号,因此要经过DAC器件转换为模拟信号,从而产生2DPSK信号。通过对仿真波形的分析可知,该方案很好的实现了2DPSK信号产生器的功能。关键词:FPGA;Verilog HDL;2DPSK信号产生器;数字调制;串并转换;Design of 2DPSK Signal Generator Based on FPGAAbstract:With the progress of the times, FPGA is used more and more popularly. FPGA

3、 used hardware description language ( Verilog HDL ) to achieve the 2DPSK signal modulation system. Its not only simple and convenient, but also equipped with many excellent characteristics of modern devices, such as fast, accurate, low power consumption. Verilog language can descript circuit various

4、ly and flexibly, and has powerful function. Whats more, its easy to learn for us. These excellent properties make Verilog language applied widely. The combination of digital communication technology and FPGA is a certainly trend of the development of modern communication system. The process of produ

5、cing 2DPSK signal by FPGA is as follows. The clock signal generated by FPGA will generate two signals with different frequency. One is used to sampling, the other is to drive M array signal generator. It will be converted to absolute code, and be used to modulate. Because only the digital signal can

6、 be processed by FPGA, DAC is needed to generate 2DPSK signal. Key words:FPGA;Verilog HDL;2DPSK signal generator;digital modulation;目 录 TOC o 1-3 h z u HYPERLINK l _Toc343266898 1 绪 论 PAGEREF _Toc343266898 h 3 HYPERLINK l _Toc343266899 2 应用软件及器件介绍 PAGEREF _Toc343266899 h 4 HYPERLINK l _Toc343266900

7、2.1 信号发生器简介 PAGEREF _Toc343266900 h 4 HYPERLINK l _Toc343266901 2.2 EDA技术简介 PAGEREF _Toc343266901 h 4 HYPERLINK l _Toc343266902 2.3 FPGA和CPLD器件简介 PAGEREF _Toc343266902 h 5 HYPERLINK l _Toc343266903 2.4 Verilog HDL简介 PAGEREF _Toc343266903 h 6 HYPERLINK l _Toc343266904 2.5 Quartus II简介 PAGEREF _Toc343

8、266904 h 7 HYPERLINK l _Toc343266905 3 2DPSK信号产生器的设计 PAGEREF _Toc343266905 h 8 HYPERLINK l _Toc343266906 3.1 2DPSK信号产生器的基本原理 PAGEREF _Toc343266906 h 8 HYPERLINK l _Toc343266907 3.1.1 2DPSK信号原理 PAGEREF _Toc343266907 h 8 HYPERLINK l _Toc343266908 3.1.2 设计思路及方法 PAGEREF _Toc343266908 h 9 HYPERLINK l _To

9、c343266909 3.2 软件设计 PAGEREF _Toc343266909 h 10 HYPERLINK l _Toc343266910 3.2.1 分频器 PAGEREF _Toc343266910 h 10 HYPERLINK l _Toc343266911 3.2.2 M序列产生器 PAGEREF _Toc343266911 h 11 HYPERLINK l _Toc343266912 3.2.3 差分运算 PAGEREF _Toc343266912 h 12 HYPERLINK l _Toc343266913 3.2.4 选相调制 PAGEREF _Toc343266913 h

10、 12 HYPERLINK l _Toc343266914 3.2.5 正弦信号发生器 PAGEREF _Toc343266914 h 13 HYPERLINK l _Toc343266915 3.2.6 2DPSK信号波形仿真 PAGEREF _Toc343266915 h 14 HYPERLINK l _Toc343266916 3.3 硬件设计 PAGEREF _Toc343266916 h 15 HYPERLINK l _Toc343266917 3.3.1 器件说明 PAGEREF _Toc343266917 h 16 HYPERLINK l _Toc343266918 3.3.2

11、并行输入方式设计 PAGEREF _Toc343266918 h 19 HYPERLINK l _Toc343266919 3.3.3 串行输入方式设计 PAGEREF _Toc343266919 h 21 HYPERLINK l _Toc343266920 3.3.4 串并对比分析 PAGEREF _Toc343266920 h 23 HYPERLINK l _Toc343266921 4 调试 PAGEREF _Toc343266921 h 24 HYPERLINK l _Toc343266922 5 总结 PAGEREF _Toc343266922 h 25 HYPERLINK l _T

12、oc343266923 参考文献 PAGEREF _Toc343266923 h 26 HYPERLINK l _Toc343266924 附 录 PAGEREF _Toc343266924 h 27 HYPERLINK l _Toc343266925 致 谢 PAGEREF _Toc343266925 h 361 绪 论人们为了掌握足够的信息,适应复杂多变的客观世界,满足生活、工作和学习的需要就必须进行信息的获取、传递、交换和处理。通信技术的发展水平代表着人类社会的文明与进步程度。特别是复杂可编程逻辑芯片的应用已经渗透到生产和生活的各个方面,有力推动了社会的发展。其中,FPGA在实时控制方面

13、有着比较强的功能,其性能不断提高,应用的范围越来越广。FPGA近年来在国内发展得非常快,他以编程方便、集成度高、速度快、价格低等特点受到了广大电子设计人员的青睐。FPGA的应用领域最初为通信领域,但目前,随着信息产业和微电子技术的发展,可编程逻辑嵌入式系统设计技术已经成为信息产业最热门的技术之一,应用范围遍及航空航天、医疗、通讯、网络通讯、安防、广播、汽车电子、工业、消费类市场、测量测试等多个热门领域。FPGA具有可编程性,开发周期短,集成化程度高等特点,它可以将部分器件完成的功能在该芯片内部实现,这样原有的系统体积大大减小的同时还提高了系统的稳定性。同时可以运用EDA 软件进行在线仿真,调试

14、,易于进行功能的扩展和升级。目前以硬件描述语言(Verilog HDL 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。利用硬件描述语言对数字系统的硬件电路进行描述是EDA的关键技术之一。Verilog HDL语言是目前主流的硬件描述语言,它具有很强的电路描述和建模能力,且有与具体硬件电路无关和与设计平台无关的特性,在语言易读性和层次化结构设计方面表现出强大的生命力和应用潜力。另外随着电子技术的不断发展,电子系统的设计方法也随之发生变革,基于EDA 技术的设计方法正在成为现代电子系统设计的主流。12 应用软件及器件

15、介绍2.1 信号发生器简介凡是产生测试信号的仪器,统称为 HYPERLINK /view/1884886.htm t _blank 信号源,也称为信号发生器。它用于产生被测电路所需特定参数的电测试信号。在测试、 HYPERLINK /view/104381.htm t _blank 研究或调整 HYPERLINK /view/3476.htm t _blank 电子电路及设备时,为测定 HYPERLINK /view/134362.htm t _blank 电路的一些电参量,如测量 HYPERLINK /view/30964.htm t _blank 频率响应、 HYPERLINK /view

16、/141441.htm t _blank 噪声系数,为 HYPERLINK /view/327738.htm t _blank 电压表定度等,都要求提供符合所定技术条件的电信号,以模拟在实际工作中使用的待测设备的 HYPERLINK /view/4767757.htm t _blank 激励信号。当要求进行系统的稳态特性测量时,需使用振幅、频率已知的正弦信号源。当测试系统的瞬态特性时,又需使用前沿时间、脉冲宽度和重复 HYPERLINK /view/120466.htm t _blank 周期已知的矩形脉冲源。并且要求信号源输出信号的参数,如频率、 HYPERLINK /view/145398

17、9.htm t _blank 波形、输出电压或 HYPERLINK /view/44147.htm t _blank 功率等,能在一定范围内进行精确调整,有很好的稳定性,有输出指示。2信号源可以根据输出波形的不同,划分为正弦波信号发生器、矩形 HYPERLINK /view/971776.htm t _blank 脉冲信号发生器、函数信号发生器和随机信号发生器等四大类。 HYPERLINK /view/696288.htm t _blank 正弦信号是使用最广泛的测试信号。这是因为产生正弦信号的方法比较简单,而且用正弦信号测量比较方便。正弦信号源又可以根据工作频率范围的不同划分为若干种。32.

18、2 EDA技术简介EDA技术的概念: EDA是电子设计自动化(E1ectronic Design Automation)的缩写。由于它是一门刚刚发展起来的新技术,涉及面广,内容丰富,理解各异,所以目前尚无一个确切的定义。但从EDA技术的几个主要方面的内容来看,可以理解为:EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真。完成对于特定目标芯

19、片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片。4EDA技术是伴随着计算机、集成电路、电子系统的设计发展起来的,至今已有30多年的历程。大致可以分为三个发展阶段。20世纪70年代的CAD(计算机辅助设计)阶段:这一阶段的主要特征是利用计算机辅助进行电路原理图编辑,PCB布同布线,使得设计师从传统高度重复繁杂的绘图劳动中解脱出来。20世纪80年代的CAE(计算机辅助工程设计)阶段:这一阶段的主要特征是以逻辑摸拟、定时分析、故障仿真、自动布局布线为核心,重点解决电路设计的功能检测等问题,使设计而能在产品制作之前预知产品的功能与性能。20世纪90年代是EDA(电子设计自动

20、化)阶段:这一阶段的主要特征是以高级描述语言,系统级仿真和综合技术为特点,采用“自顶向下”的设计理念,将设计前期的许多高层次设计由EDA工具来完成。EDA是电子技术设计自动化,也就是能够帮助人们设计电子电路或系统的软件工具。该工具可以在电子产品的各个设计阶段发挥作用,使设计更复杂的电路和系统成为可能。在原理图设计阶段,可以使用EDA中的仿真工具论证设计的正确性;在芯片设计阶段,可以使用EDA中的芯片设计工具设计制作芯片的版图:在电路板设计阶段,可以使用EDA中电路板设计工具设计多层电路板。特别是支持硬件描述语言的EDA工具的出现,使复杂数字系统设计自动化成为可能,只要用硬件描述语言将数字系统的

21、行为描述正确,就可以进行该数字系统的芯片设计与制造。有专家认为,21世纪将是EDA技术的高速发展期,EDA技术将是对21世纪产生重大影响的十大技术之一。 2.3 FPGA和CPLD器件简介 CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。CPLD主要是由可编程逻辑宏单元(MC,Macro Cell)围绕中心的可编程互连矩阵单元组成。其中MC结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成

22、特定的电路结构,完成一定的功能。由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。 FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA与CPLD的辨别和分类主要是根据其结构特点和工作原理。CPLD是以乘积项结构方式构成逻辑行为的器件,FPGA是以查表法结构方式构成逻辑行

23、为的器件。CPLD是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。5FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编

24、程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(161RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。6如今,随着FPGA向更高密度、更大容量、更

25、低功耗和集成更多IP的方向发展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA前所未有的性能和能力水平而带来的新的设计挑战。2.4 Verilog HDL简介 硬件描述语言(HDL)是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。它可以使数字逻辑电路设计者利用这种语言来描述自己的设计思想,然后利用电子设计自动化(在下面简称为EDA)工具进行仿真,再自动综合到门级电路,再用ASIC或FPGA实现其功能。目前,这种称之为高层次设计(High-Level-Design)的方法已被广泛采用。据统计,在美国硅谷目前约有90以上的ASIC和FPGA已采用硬件描述语言方法进行设计

26、。 Verilog HDL是硬件描述语言的一种,用于数字电子系统设计。它允许设计者用它来进行各种级别的逻辑设计,可以用它进行数字逻辑系统的仿真验证、时序分析、逻辑综合。它是目前应用最广泛的一种硬件描述语言。据有关文献报道,目前在美国使用Verilog HDL进行设计的工程师大约有60000人,全美国有200多所大学教授用 Verilog 硬件描述语言的设计方法。在我国台湾地区几乎所有著名大学的电子和计算机工程系都讲授Verilog有关的课程。 Verilog HDL和VHDL都是用于逻辑设计的硬件描述语言,并且都已成为IEEE标准。Verilog HDL和VHDL作为描述硬件电路设计的语言,其

27、共同的特点在于:能形式化地抽象表示电路的结构和行为、支持逻辑设计中层次与领域的描述、可借用高级语言的精巧结构来简化电路的描述、具有电路仿真与验证机制以保证设计的正确性、支持电路描述由高层到低层的综合转换、硬件描述与实现工艺无关(有关工艺参数可通过语言提供的属性包括进去)、便于文档管理、易于理解和设计重用。但是Verilog HDL和VHDL又各有其自己的特点。由于Verilog HDL早在1983年就已推出,至今已有十三年的应用历史,因而Verilog HDL拥有更广泛的设计群体,成熟的资源也远比VHDL丰富。与VHDL相比Verilog HDL的最大优点是:它是一种非常容易掌握的硬件描述语言

28、。7Verilog HDL较为适合系统级(System)、算法级(Algorithm)、寄存器传输级(RTL)、逻辑级(Logic)、门级(Gate)、电路开关级(Switch)设计,而对于特大型(几百万门级以上)的系统级(System)设计,则VHDL更为适合,由于这两种HDL语言还在不断地发展过程中,它们都会逐步地完善自己。2.5 Quartus II简介 Quartus是Altera公司推出的新一代CPLD/FPGA开发软件,适合于大规模逻辑电路设计。Quartus软件的设计流程概括为设计输入、设计编译、设计仿真和设计下载等过程。Quartus支持多种编辑输入法,包括图形编辑输入法,VH

29、DL、Verilog HDL和AHDL的文本编辑输入法,符号编辑输入法,以及内存编辑输入法。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发

30、平台。8Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。 Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来

31、越受到数字系统设计者的欢迎。3 2DPSK信号产生器的设计3.1 2DPSK信号产生器的基本原理3.1.1 2DPSK信号原理二进制差分相移键控常简称为二相相对调相,记作2DPSK。它不是利用载波相位的绝对数值传送数字信息,而是用前后码元的相对载波相位值传送数字信息。所谓相对载波相位是指本码元初相与前一码元初相之差。与2PSK的波形不同,2DPSK波形的同一相位并不对应相同的数字信息符号,而前后码元的相对相位才唯一确定信息符号。这说明解调2DPSK信号时,并不依赖于某一固定的载波相位参考值,只要前后码元的相对相位关系不破坏,则鉴别这个相位关系就可正确恢复数字信息。这就避免了2PSK方式中的“倒

32、”现象发生。9单从波形上看,2DPSK与2PSK是无法分辩的,一方面,只有已知移相键控方式是绝对的还是相对的,才能正确判定原信息;另一方面,相对移相信号可以看作是把数字信息序列(绝对码)变换成相对码,然后再根据相对码进行绝对移相而形成。绝对码(a)和相对码(b)是可以互相转换的,其转换关系为: bn=anbn-1 传输系统中要保证信息的有效传输就必须要有较高的传输速率和很低的误码率!为了获得较低的误码率,就得让传输的信号有较低的误码率。在传输信号中,2PSK信号和2ASK及2FSK信号相比,具有较好的误码率性能,但是,在2PSK信号传输系统中存在相位不确定性,并将造成接收码元“0”和“1”的颠

33、倒,产生误码。为了保证2PSK的优点,又不会产生误码,将2PSK体制改进为二进制差分相移键控(2DPSK),即相对相移键控。2DPSK因其在抗噪声性能及信道频带利用率等方面的优越性,被广泛应用于数字通信中。103.1.2 设计思路及方法2DPSK方式即是利用前后相邻码元的相对相位值表示数字信息的一种方式。当数字信号b(t)为“1”时,码元中载波的相位相对于前一个码元的载波相位变化; 当数字信号b(t)为“0”时,码元中载波的相位相对于前一码元的载波相位不变化,反之亦然。这种调相方式称为二相相对调相。实现相对调相的最常用方法,是对数字信号进行差分编码,即由绝对码表示变为相对码表示,然后再进行绝对

34、调相。2DPSK信号为模拟信号,而FPGA只能处理数字信号,因此,需对正弦信号采样再经过数/模变换得到所需的2DPSK信号,FPGA产生正弦信号的采样值。整个系统共分为分频器、m序列产生器、差分运算器、选相调制、正弦波信号产生器和DAC (数/模变换器)6部分,其中前5部分由FPGA芯片完成。2DPSK信号产生器原理框图如图1所示。图1 2DPSK信号产生器原理框图 首先,将50MHz时钟信号输入到FPGA中。FPGA对时钟信号进行分频,分成两路时钟信号,一路用于驱动M序列的产生,一路用于驱动正弦信号的产生。M序列发生器产生“1110010”循环序列,然后再对该序列进行差分编码,得到相对码。最

35、后用相对码对正弦信号进行绝对调相,这就产生了2DPSK信号,不过,这时FPGA输出的2DPSK信号是数字编码信号,要经过DAC转换成模拟信号,这样就能在示波器上看到完整的2DPSK信号波形了。3.2 软件设计3.2.1 分频器本设计由一个50MHz的晶振提供基准时钟。因为频率偏高,DAC的速率达不到这么快,所以不能直接用于DAC输入频率,应在开始时进行分频处理,以满足DAC速率要求。综合考虑,对基准时钟进行20分频产生2.5MHz的时钟信号,用于正弦信号采样。每个周期100个采样点,正弦信号频率为25KHz,那么2DPSK信号的数据率就为25kb/s。这就需要设计两个分频器,一个模20分频器产

36、生2.5MHz信号,另一个模100分频器产生25KHz信号。下面设计一个模20分频器,占空比50%,其它的分频器以此为基础,照例进行设计,主程序如下,仿真波形如图2所示。always(posedge clk_in) begin if (b=19) b=0; else b=b+1; endalways(b)begin if (b=9) clk100=1;else clk100=0; end图2 模20分频器仿真波形图 3.2.2 M序列产生器m序列,又叫做伪随机序列、伪噪声(PN)码或伪随机码。可以预先确定并且可以重复实现的序列称为确定序列;既不能预先确定又不能重复实现的序列称随机序列;不能预先

37、确定但可以重复产生的序列称伪随机序列。本设计用一种带有两个反馈抽头的3级反馈移位寄存器得到一串“1110010”循环序列,并采取措施防止进入全“0”状态。通过更换时钟频率,可以方便的改变输入码元的速率。M序列产生器的设计程序和波形仿真如图3所示。always (posedge clk) begin m0=(m1m2)|(m0|m1|m2); m2:1=m1:0; code = m2; endm为一个三位信号量。 code是m最低位的输出,它就是信号码即基带码元。图3 m序列仿真波形图3.2.3 差分运算2DPSK信号是通过鉴别前后两个波形相位是否一致来实现信息的传递的,所以要产生2DPSK信号

38、,就必须把基带码元转换成相对码。这个过程可采用差分编码来实现。差分编码程序如下:always(posedge clk) beginif(code=1) x=x; endcode为绝对码,x为相对码。 当原码为1时,将相对码取反;当相对码为0时,相对码保持不变。这样就将原码转换成了相对码。3.2.4 选相调制每次时钟上升沿或下降沿到来,当相对码为0时,对应输出波形位于正弦波的sin0处;否则,当相对码为1时,对应输出波形位于正弦波的sin180处,并且确保每个周期都能输出一个完整正弦波。这就需要选相部分来进行控制和调制。选相电路程序如下:always (negedge clk100)begin

39、if (c=1&x=1) begin cnt100=50; end else if (c=1&x=0) begin cnt100=0; end else if (cnt100=99) begin cnt100=0; end else begin cnt100=cnt100+1; end endx为相对码,用于调相检测。c为模100计数器,这里用于使调相后的波形完整输出100个正弦波采样点。每当c=1时,检测x的值,并进行相应调相,然后输出100个采样点。3.2.5 正弦信号发生器正弦波产生器可以用模100状态机来实现,根据抽样定理可知,当用模拟信号最大频率两倍以上的速率对该模拟信号采样时,便可

40、将原模拟信号不失真地恢复出来。本实验要求得到的是两个不同频率的正弦信号,实验中对正弦波每个周期采样100个点,即采样速率为原来正弦信号频率的100倍。因此完全可以在接收端将原来正弦信号不失真的恢复出来,从而可以在接受端对2DPSK信号正确地解调。首先设计一个模100累加器,用于依次输出100个采样点。本实验方案共需100个状态,分别用S1-S100, 状态机共有8位输出(Y0-Y7),经DAC变换为模拟信号输出。部分程序如下,波形仿真图如图4所示。always(negedge clk100) begin if(cnt100=99) cnt100=0; else cnt100=cnt100+1;

41、endalways(posedge clk100) begin if(reset_n) begin y=0; end else begin case(cnt100) 0:y=127; 1:y=135; 2:y=143; 3:y=151; 94:y=80; 95:y=88; 96:y=95; 97:y=103; 98:y=111; 99:y=119; default: y=0; endcase end end endmodule图4 正弦波采样点仿真图3.2.6 2DPSK信号波形仿真 对以上五个部分进行综合设计,实现2DPSK信号的产生。本实验的全部描述过程用Verilog HDL语言编程实现

42、,具体程序见附录,2DPSK波形仿真如图5、图6所示。图5 2DPSK数字波形仿真图(1)图6 2DPSK数字波形仿真图(2)3.3 硬件设计本设计选取Altera公司Cyclone系列的EP2C5T144C8 FPGA芯片实现,由于FPGA不能处理模拟信号,所以要在FPGA后端添加一个DAC(数模转换器)。此时可有两种选择,一种是采用并行输入型DAC,另 一种是采用串行输入型DAC。基于实验目的,分别对两种情况都进行实践,观察实验现象,分析利弊。3.3.1 器件说明本设计用到器件有50M晶振、EP2C5T144C8 FPGA芯片、运算放大器、DAC器件TLC7524、DAC器件TLC5615

43、。在此对部分器件加以说明介绍。(1)DAC器件TLC7524TLC7524是8位乘法DAC组成的一个倒置的R-2R梯形,模拟开关和数据输入锁存器。二进制加权的电流之间的OUT1和OUT2总线线切换,从而保持一个恒定的电流,在每个梯子支腿独立的开关状态.高序位被解码。这些解码比特,通过R-2R阶梯的变形例中,控制三个相等的加权电流源。大多数应用程序只需要增加一个外部运算放大器和电压基准。其引脚图如图7所示。图7 TLC7524引脚图 TLC7524有两种输出方式,一种是单极性输出,一种是双极性输出。因为本设计不考虑电压输出的两极情况,所以选择较为简单的单极性输出方式。单极性二进制代码如表1所示。

44、表1 单极性二进制代码数字输入模拟输出11111111Vref(255/256)10000001Vref(255/256)10000000Vref(255/256)= Vref/201111111Vref(255/256)00000001Vref(255/256)000000000(2)运算放大器TLC7524为电流输出型数模转换器,不能直接用来检测2DPSK信号,必须添加一个运算放大器,使其电流输出转换为电压输出。这样就能直接在示波器上看到2DPSK波形。运算放大器采用器件TL082,引脚功能如表2,内部框图如图8所示。TL082是一通用的J-FET双运算放大器。其特点有:较低的输入偏置电压

45、和偏移电流;输出设有短路保护;输入级具有较高的输入阻抗;内建频率补偿电路;较高的压摆率。最大工作电压:Vccmax=18 V。图8 TL082内部框图表2 TL082引脚功能脚名功能Output1输入1Invering input 1反向输入1Non-inverting input 1正向输入1Vcc-电源Non-inverting input 2正向输入2Invering input 2反向输入2Output2输入2Vcc+电源+(3)DAC器件TLC5615 TLC5615是具有串行接口的数模转换器,其输出为电压型,最大输出电压是基准电压值的两倍。带有上电复位功能,即把 DAC 寄存器复位

46、至全零。性能比早期电流型输出的 DAC 要好。只需要通过 3 根串行总线就可以完成 10 位数据的串行输入。TLC5615引脚图如图9所示,引脚功能如表3所示。图9 TLC5615引脚图表3 TLC5615 引脚功能脚名功能DIN串行数据输入端SCLK串行时钟输入端cs芯片选用通端,低电平有效DOUT用于级联时的串行数据输出端AGND模拟地REFIN基准电压输入端,2V (VDD - 2)OUTDAC 模拟电压输出端VDD正电源端,4.55.5V ,通常取 5VTLC5615有两种工作方式:(A)16位移位寄存器分为高4位虚拟位、低两位填充位以及10位有效位。在单片TLC5615工作时,只需要

47、向16位移位寄存器按先后输入10位有效位和低2位填充位,2位填充位数据任意,这是第一种方式,即12位数据序列。(B)第二种方式为级联方式,即16位数据列,可以将本片的DOUT接到下一片的DIN,需要向16位移位寄存器按先后输入高4位虚拟位、10位有效位和低2位填充位,由于增加了高4位虚拟位,所以需要16个 HYPERLINK /view/1539297.htm t _blank 时钟脉冲。本实验设计采用第一种工作方式。TLC5615工作时序如图10所示。可以看出,只有当片选 CS 为低电平时,串行输入数据才能被移入16位移位寄存器。当CS为低电平时,在每一个SCLK时钟的上升沿将DIN的一位数

48、据移入16位移寄存器。注意,二进制最高有效位被导前移入。接着,CS的上升沿将16位移位寄存器的10位有效数据锁存于10位DAC寄存器,供DAC电路进行转换;当片选CS为高电平时,串行输入数据不能被移入16位移位寄存器。注意,CS的上升和下降都必须发生在SCLK为低电平期间。图10 TLC5615工作时序3.3.2 并行输入方式设计采用8位并行DAC器件TLC7524,将波形数据转换为波形输出,实验电路图11所示,照图连接电路。将程序下载到FPGA芯片中,打开电源,对2DPSK信号进行检测和调试。并行输入方式产生2DPSK信号实验电路及实验结果,如图12、图13所示。图11 并行DAC实验原理图

49、50M晶振FPGA芯片运算放大器并行数模转换器图12 2DPSK设计实验实际电路(并行输入)图13 2DPSK设计实验结果(示波器显示)从示波器上看出,输出波形信号编码为“0001101000110100011”。其实,就是在不断重复0100011这7位编码,这7位编码正是m序列1110010的相对码,所以产生的2DPSK信号正确。3.3.3 串行输入方式设计因为8位串行DAC基本淘汰,很难买到,所以直接采用10位串行DAC器件TLC5615,低两位置0不用,实验原理图如图14所示。由于串行方式的反应时间长,速度慢,所以要将晶振多次分频以得到合适频率,使TLC5615有足够建立时间。调相输出的

50、8位正弦采样值为并行数据,所以要进行串并转换,将其转换为串行数据,依次传输到DAC中,这样就能很好实现2DPSK信号的波形。串行输入方式产生2DPSK信号实验电路及实验结果,如图15、图16所示。图14 串行DAC实验原理图串行数模转换器FPGA芯片50M晶振图15 2DPSK设计实验实际电路(串行输入)图16 2DPSK设计实验结果(示波器显示) 从示波器上看出,串行同并行一样,输出0100011这7位循环编码,而这7位编码正是m序列1110010的相对码,所以产生的2DPSK信号正确。3.3.4 串并对比分析并行输入型DAC转换速率快,稳定性好,但线路繁多,波形有些失真,略有毛刺。串行输入

51、型DAC转换速率较慢,但线路简洁方便,稳定性强,波形完整不失真,毛刺少。在速度要求高的领域可采用并行输入型DAC器件,能保证高速稳定的信号输出。在信号质量要求高,线路精简,成本低的应用方面,更适合采用串行输入型DAC。它们各有优势,针对不同用途可以选择不同方式。4 调试(1)频率过高程序编写完成后,下载到FPGA运行,但是示波器上并没又出现我所期待的2DPSK波形。我便立马开始寻找错误与遗漏,对程序仔进行细检查,但没有发现语法和算法上的错误。我突然意识到一点,是不是频率太高的缘故,我便对其进行了降频处理。果然,降频后基本上能看到2DPSK波形,可是波形上毛刺很多。(2)毛刺过多在进行实际电路的

52、调试时,发现电路有明显的噪声,主要是由于帧同步时钟中的毛刺引起的,想要消除毛刺,可在波形输出端加一个触发器。D触发器的D输入端对毛刺不敏感,只要毛刺不出现在时钟的上升沿,并且满足建立和保持时间,就不会对系统产生影响,利用这一特性,可以有效消除毛刺。(3)调相的输出问题在初期设计时,有个问题曾把我难倒,就是选相调制后怎么保证它依然输出完整波形。想要波形完整就必须输出100个采样点,调相后采样点不是从头开始取值,那就需要另一个计数器进行监控,保证100个采样点的输出。所以,通过两个周期相同模100计数器进行协调工作,控制正弦波采样点输出,这样就实现了调相和波形的完整输出。(4)TLC5615时钟控

53、制当DAC采用串行输入时,TLC5615的转换时间和建立时间都有很高的要求。既不能使数据频率太高,又要保证足够的建立时间,这就使2DPSK信号的传输频率大大减低。那么,我在保证转换时间和建立时间的前提下,尽量提高2DPSK信号的产生速率。充分把握TLC5615工作特性,进行精确的时钟设计,最后得到了不错的波形产生。5 总结 我刚选2DPSK信号产生器这个题目时,对FPGA还很不了解,只是大致有些印象,但我还是抱着极大的兴趣尝试深入这门学科。经过三个月的学习和研究,在完成毕业设计的时,我认真学习了FPGA工作原理,物理结构,编程语言等等一些重要内容。我现在对FPGA有了更深一层的认识和掌握,Ve

54、rilog语言的运用也基本熟练,编写简单的程序已没有障碍。但是在实验设计过程中,我还是遇到了相当多的问题。首先是程序编写,既要保证每个部分的功能实现,又要使每个部分都能相得益彰的工作,这就需要不断的调试和修改,最后还得将噪声降到最低,这些都曾使我苦恼。再就是外围电路的设计,开始时我做了个不太合适的设计,一度导致信号的极不稳定,毛刺多,失真大。虽然是实现了,但却很不乐观。后来经过不断的修改,总算找到了好的解决方案。整个实验设计过程颇为艰难,但我还是耐心的一个一个的去克服,争取将波形更好的实现。通过这一路的困难,我学会了坚持,实验只有坚持下去了才会有结果,才会取得成功!参考文献1 徐志军.CPLD

55、/FPGA的开发与应用M.北京:电子工业出版社,20022 康华光.电子技术基础数字部分M.第5版.北京:高等教育出版社,20063 樊昌信.通信原理M .第6版.北京:国防工业出版社,20114 潘松.EDA技术实用教程M.第3版.北京:科学出版社,20065 任晓东. CPLD/ FPGA 高级应用开发指南M . 北京:电子工业出版社.20036 段吉海.基于CPLD/ FPGA 的数字通信系统建模与设计M. 黄智伟. 北京:电子工业出版社,20047 王金明.数字系统设计与Verilog HDL M .第4版.北京:电子工业出版社,20118(美)Samir Palnitkar.Veri

56、ling HDL数字设计与综合M. 夏宇闻,胡燕祥,刁岚松. 第2版.北京:电子工业出版社,20049 马静婕.关于2DPSK波形调制的思考J. 硅谷,2008,710 郝晓冉.基于FPGA的2DPSK/QDPSK数字调制系统的设计方案J. 电子科技,2005,711 侯伯亨.硬件描述语言与数字逻辑电路设计M.第3版.西安:电子科技大学出版社,200912 黄智伟. FPGA系统设计与实践M.北京:电子工业出版社,200513 刘常澍.数字电路与FPGAM. 赵雅兴. 北京:人民邮电出版社,2004.8.14 吴志敏.软件无线电中2DPSK数字化解调算法的研究J. 电脑与信息技术,2006,1

57、415 濮振华.李勇成.基于CPLD/FPGA的通信原理实践教学的改进J. 科技信息,2008,1416 车仁信.基于FPGA的数字相位调制系统的设计与实现J. 大连交通大学学报,2009,3017 谭华.2DPSK信号发生器的设计J. 邢台职业技术学院学报,2007,24(1)18 李春杰.郑江超.基于FPGA的2DPSK调制解调器设计J.大连民族学院学报2010,12(3)19 兰世战,李建平.基于FPGA实现M序列2DPSK调制C,2006附 录附录1:总体Verilog语言编程设计(并行输入方式)module dpsk(clk_in,reset_n,y);input clk_in;in

58、put reset_n;output y; reg7:0 y;reg x;reg code;reg clk100;reg clk;reg temp1;reg temp2;reg 4:0 b;reg 6:0 c;reg 2:0 m; reg 6:0 cnt100;/分频器always(posedge clk_in) begin if(b=19)b=0; else b=b+1;endalways(posedge clk_in) /添加触发器,减少毛刺 begin clk100=temp1;endalways(b) begin if(b=9) temp1=1;else temp1=0;endalwa

59、ys(posedge clk100) begin if(c=99)c=0; else c=c+1;endalways(posedge clk100) /添加触发器,减少毛刺 begin clk=temp2;endalways(c) begin if(c=9) temp2=1;else temp2=0;end/M序列的生成always (posedge clk) begin m0=(m1m2)|(m0|m1|m2); m2:1=m1:0; code = m2; end/差分编码,code为原码,x为差分编码always(posedge clk) beginif(code=1) x=x; end/

60、选相电路always(negedge clk100)begin if(c=1&x=1)begin cnt100=50;end else if(c=1&x=0)begin cnt100=0;end else if(cnt100=99)begin cnt100=0;end else begin cnt100=cnt100+1; end end/正弦信号采样,100点正弦波数据 always(posedge clk100) begin if(reset_n) begin y=0; end else begin case(cnt100) 0:y=127; 1:y=135; 2:y=143; 3:y=1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论