




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、08电信通信技术应用课程设计报告 通信技术应用课程设计报告 院系:电子工程系班级:08电信 班姓名:蒯 乐学号:01408239同组:张庭坚东南大学成贤学院2011.823目 录第一章 课题介绍11.1 课题内容11.2 课题背景11.3 课程目的2第二章 调制原理32.1 DDS频率合成原理32.2 ASK调制原理42.3 PSK调制原理42.4 FSK调制原理5第三章 平台介绍63.1 ESD-7 设计实验箱结构组成63.3 发射接收模块63.4 软件平台7第四章 软件设计84.1用DDS实现方波信号的合成84.2用DDS实现ASK调制信号的合成94.3 用DDS实现PSK调制信号的合成1
2、34.4 用DDS实现FSK调制信号的合成17第五章 总结22参考文献22第一章 课题介绍1.1 课题内容1. 用AT89S52单片机实现在LED数码管上显示数字和字符。2. 用Max+Plus II,通过ROM查表法实现对方波信号的DDS合成。3. 用Max+Plus II,通过ROM查表法实现对ASK调制信号的DDS合成。4. 用Max+Plus II,通过ROM查表法实现对PSK调制信号的DDS合成。5. 用Max+Plus II,通过ROM查表法实现对FSK调制信号的DDS合成。1.2 课题背景DDS同 DSP(数字信号处理)一样,是一项关键的数字化技术。DDS是直接数字式频率合成器(
3、Direct Digital Synthesizer)的英文缩写。DDS是一种全数字化的频率合成器,由相位累加器、波形ROM、D/A转换器和低通滤波器构成。时钟频率给定后,输出信号的频率取决于频率控制字,频率分辨率取决于累加器位数,相位分辨率取决于ROM的地址线位数,幅度量化噪声取决于ROM的数据位字长和D/A转换器位数。与传统的频率合成器相比,DDS具有低成本、低功耗、高分辨率和快速转换时间等优点,广泛使用在电信与电子仪器领域,是实现设备全数字化的一个关键技术。直接数字频率合成(DDSDigital Direct Frequency Synthesis)技术是一种新的频率合成方法,是频率合成
4、技术的一次革命,JOSEPH TIERNEY等3人于1971年提出了直接数字频率合成的思想,但由于受当时微电子技术和数字信号处理技术的限制,DDS技术没有受到足够重视,随着电子工程领域的实际需要以及数字集成电路和微电子技术的发展,DDS技术日益显露出它的优越性。DDS有如下优点:(1) 频率分辨率高,输出频点多,可达 个频点(N为相位累加器位数);(2) 频率切换速度快,可达us量级;(3) 频率切换时相位连续;(4) 可以输出宽带正交信号;(5) 输出相位噪声低,对参考频率源的相位噪声有改善作用;可以产生任意波形; 全数字化实现,便于集成,体积小,重量轻。在各行各业的测试应用中,信号源扮演着
5、极为重要的作用。但信号源具有许多不同的类型,不同类型的信号源在功能和特性上各不相同,分别适用于许多不同的应用。目前,最常见的信号源类型包括任意波形发生器,函数发生器,RF信号源,以及基本的模拟输出模块。信号源中采用DDS技术在当前的测试测量行业已经逐渐称为一种主流的做法。1.3 课程目的通过实验巩固AT89S51/AT89S52单片机程序设计、VHDL语言以及EDA技术。能够使用单片机实现数码管的显示,并熟练掌握用VHDL语言对FPGA编程实现方波信号和ASK、PSK、FSK等调制信号的DDS频率合成。提高对以前学过的单片机、通信原理、EDA技术等科目的理论知识的综合工程应用能力。第二章 调制
6、原理2.1 DDS频率合成原理DDS(Direct Digital Synthesizer)即直接数字合成器,是一种新型的频率合成技术,具有较高的频率分辨率,可以实现快速的频率切换,并且在改变频率的同时能够保持相位的连续,很容易实现频率、相位和幅值的数控调制。因此,在现代电子系统及设备的频率源设计中,尤其在通信领域,DDS应用越来越广泛。对于正弦信号发生器。首先对DDS基本原理作一简单介绍。对于正弦信号发生器,它的输出可表示为其中,指该信号发生器的输出信号波形,指输出信号对应的频率。对于时间是连续的。为了用数字逻辑实现该表达式,必须进行离散化处理。用基准时钟 CLK 进行抽样,令正弦信号的相位
7、为在一个 CLK 周期,相位的变化量为其中,指 CLK 的频率,对于可以理解成“满”相位。为了对进行数字量化,把切割成份,由此每个 CLK 周期的相位增量用量化值来表述,即且为整数。由此可得即显然,信号发生器的输出可描述为其中,指前一个 CLK 周期的相位值,同样也可得出通过推导可以看出,只要对相位的量化值进行简单的累加运算,就可以得到正弦信号的当前相位值;而用于累加的相位增量量化值,决定了信号的输出频率,并呈现简单的线性关系。直接数字合成器DDS就是根据上述原理而设计的数字控制频率合成器。2.2 ASK调制原理振幅键控是利用载波的幅度变化来传递数字信息,而其频率和初始相位保持不变。在2ASK
8、中,载波的幅度只有两种变化状态,分别对应二进制信息的“0”或“1”。一种常用的、也是最简单的二进制振幅键控方式称为通-断键控(On Off Keying, OOK),其表达式为发送“1”时发送“0”时在OOK中,某一种符号(“0”或“1”)用没有电压来表示。2ASK信号的一般表达式为其中式中:为马原持续的时间;为持续时间为的基带脉冲波形。2ASK/OOK信号的产生方法通常有两种:模拟调制法(相乘器法)和键控法。2.3 PSK调制原理相移键控是利用载波的相位变化来传递数字信息,而振幅和频率保持不变。在2PSK中,通常用初始相位0和分别表示二进制“1”和“0”。因此,2PSK信号的时域表达式为发送
9、“0”时发送“1”时其中,表示第n个符号的绝对相位:发送“0”时发送“1”时因此由于表示信号的两种码元的波形相同,极性相反,故2PSK信号一般可以表述为一个双极性全占空矩形脉冲序列与一个正弦载波的相乘,即其中 2.4 FSK调制原理频移键控是利用载波的频率变化来传递数字信息。在2FSK中,载波的频率随二进制基带信号在和两个频率点间变化。故其表达式为发送“0”时发送“1”时一个2FSK信号可以看成是两个不同载频的2ASK信号的叠加。因此,2FSK信号的时域表达式又可以写成和分别是第n个信号码元(1或0)的初始相位。第三章 平台介绍3.1 ESD-7 设计实验箱结构组成1. 89S51 单片机系统
10、为便于应用,扩展了一个与 89S52 管脚对应的40芯插座。2. 10K10 可编程逻辑器件模块与单片机,键盘,RAM, ispPAC20相联结。可以利用 89S51 的 ALE 作为 CLK,亦可通过板右上方的 CLK 插座,外接 CLK。3. ispPAC20 可编程模拟芯片模块内部资源有可程控的放大器,低通滤波器,模拟量比较器,DAC等。与 10K10相联,对来自 FPGA 或 RAM 的数字量,实现DAC。该芯片有8个输入和8个输出,通过两个4选1输入跳线插座和两个4选1输出跳线,插座分别与 J1J4耳机插座相联,每次可以实现两个模拟量的输入输出 P5,P6。4. 数码管显示模块数码管
11、由移位寄存器 74164 驱动, 6个74164(串入并出移位寄存器)由右至左串联。MCU 的 P10 为时钟信号,连到6个 74164 的 CLK,构成同步计数器,MCU 的 P11 为数据信号,连至最右边一块 74164。每次时钟信号上升沿6个 74164 里的数据一起左移1位。5. 12864点阵图形LCD显示屏与 89S51总线相联。板上带有对比度调节电位器和背光开关。亦可构造新的接口,配接320240 LCD显示屏。6. 下载插座两个下载插座,分别用于10K10 和 ispPAC20 的编程。7. 电源箱内自带+5V 电源和指示灯,可以提供大于1A 的电流。板上有5V 产生电路,可以
12、提供200mA电流,供DAC的电流电压转换运放使用。3.3 发射接收模块发射卡,通过混频变频,将基带信号搬移到46MHz的载频上,并发射。实验箱上有一个拉杆天线,可以提高发射效率,用于在一个实验室的范围内进行通讯。接收卡,通过拨码开关,与发射卡设置在同一个频段,接收相应设计平台发射的信号。有16对频率可供选择。每个频段相隔50kHz。发射端选择一个通讯制式,通过DDS方法产生调制信号,送给本平台上的发射卡,经天线发出。该信号同时可以在本设计平台上,通过平台的示波器功能显示。接收卡收到信号,并由接收卡解调,还原为基带信号。该信号经ESD-7平台上的AD转换为数字信号,并利用平台的数字示波器功能,
13、将波形显示出来。通讯过程正常,应该看到与发射平台上一样的波形。用于通讯通道存在干扰和噪声,接收到的波形将可能有不同程度的失真。通过实验观察,接收端的输出波形与输入端的波形基本一致。接收端输出波形有轻微的噪声叠加在有用信号的波形上。接收端输出波形与发射端波形有大约半个周期的延迟。3.4 软件平台操作系统:Windows开发工具:Keil Vision 3, Max+Plus II第四章 软件设计4.1 用DDS实现方波信号的合成本实验用一个VHDL代码模块即可实现,其主要代码如下:ENTITY ddsc ISPORT(CLK:IN STD_LOGIC; CS4:OUT STD_LOGIC; SO
14、UT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY;ARCHITECTURE one of ddsc ISSIGNAL VOLTAGE:STD_LOGIC;SIGNAL DATA:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL COUNT:INTEGER RANGE 0 TO 10000;SIGNAL INDEX:INTEGER RANGE 0 TO 3;BEGINDATA=1001;CS4=CLK;PROCESS (CLK)BEGINIF CLKEVENT AND CLK=1 THENIF COUNT=10000 THENCO
15、UNT=0;IF DATA(INDEX)=1 THENSOUT=11111000;ELSESOUT=00000000;END IF;IF INDEX=0 THENINDEX=3;ELSEINDEX=INDEX-1;END IF;ELSECOUNT=COUNT+1;END IF;END IF;END PROCESS;END;其中,CLK为输入时钟信号,SOUT为输出到ispPAC20 D/A芯片中的8位数字信号。当CLK的上升沿到来时,计数器COUNT加1。当COUNT计到10000时,COUNT重新回零,由此实现对时钟的10000分频;并读取DATA中存放的数字基带信号,为“1”则输出高电平,
16、为“0”则输出低电平。INDEX表示DATA中待读取的数字基带信号的下标,每次完成对一个数字基带信号的输出后,INDEX的值减1,供读取下一个数字基带信号。4.2 用DDS实现ASK调制信号的合成通过ROM查表法实现对ASK信号的DDS合成的原理图如下:1. FP模块FP模块用于实现对时钟CLK的256分频。sin函数的一个完整周期在LPM_ROM中共存放了64个数值。每当一个CLK的上升沿到来时,存放sin函数的LPM_ROM向CONVERTER输出一个sin函数值。把sin函数的一个完整周期输出到CONVERTER中需要64个CLK。经过256分频后的一个CLK周期就对应于4个sin函数的
17、周期。这样就使每间隔4个sin函数的周期,从LPM_ROM中读取一次数字基带信号,即使每一个数字基带信号维持4个sin函数周期。FP模块的主要代码如下:ENTITY FP ISPORT(INCLK:IN STD_LOGIC; OUTCLK:OUT STD_LOGIC);END ENTITY;ARCHITECTURE one of FP ISSIGNAL COUNT:INTEGER RANGE 0 TO 255;SIGNAL OC:STD_LOGIC;BEGINPROCESS(INCLK)BEGINIF INCLKEVENT AND INCLK=1 THENIF COUNT=255 THENCO
18、UNT=0;OC=NOT OC;ELSECOUNT=COUNT+1;END IF;END IF;END PROCESS;OUTCLK=OC;END one;2. CNT64 模块CNT64模块实现063的循环计数。CLK为输入时钟信号,CQ为输出计数值的5位二进制码。该模块在CLK的触发下向存放sin函数的LPM_ROM提供待输出的sin函数值的地址。CNT64模块的主要代码如下:ENTITY CNT64 ISPORT(CLK:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END;ARCHITECTURE BEHAVE OF CNT64 IS
19、SIGNAL CQI:STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THENCQI=CQI+1;END IF;CQ=CQI;END PROCESS;END;3. CNT8模块CNT8模块实现08的循环计数。CLK为输入时钟信号,CQ为输出计数值的3位二进制码。该模块在CLK的触发下向存放数字基带信号的LPM_ROM提供待输出的二进制码的地址。CNT8模块的主要代码如下:ENTITY CNT8 ISPORT(CLK:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(2 DO
20、WNTO 0);END;ARCHITECTURE BEHAVE OF CNT8 ISSIGNAL CQI:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THENCQI=CQI+1;END IF;CQ=CQI;END PROCESS;END;4. CONVERTER 模块CONVERTER模块为数字调制模块,将数字基带信号通过ASK调制到正弦载波信号上。CLK为输入时钟信号,OD为输入的数字基带信号,DATA为输入的正弦载波信号,SOUT输出的是调制信号的数字量。在时钟信号CLK的触发下,若OD为
21、“1”,则输出正弦载波信号,若OD为“0”,则输出0电平信号。CONVERTER模块的主要代码如下:ENTITY CONVERTER ISPORT(CLK:IN STD_LOGIC; DATA:IN STD_LOGIC_VECTOR(7 DOWNTO 0); OD:IN STD_LOGIC_VECTOR(7 DOWNTO 0); SOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY;ARCHITECTURE one of CONVERTER ISBEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THENIF OD
22、=11111111 THENSOUT=DATA;ELSESOUT=10000000”;END IF;END IF;END PROCESS;END;5. 存放sin函数和数字基带信号的LPM_ROM模块LPM_ROM模块按照输入的地址值ADDRESS 读取“sin64.mif”文件中相应的sin函数数值,或读取“serial.mif”文件中相应的数字基带信号。“sin64.mif”中用64个数据表示sin函数的一个周期,数据中的最大值为0xFF,最小值为0x00。“serial.mif”中存放8个数字基带信号,用0xFF表示二进制数码1,用0x00表示二进制数码0。6. 管脚锁定端口名称引脚号对
23、应管脚CLK19AT89S52的ALE脚,用作时钟信号CS469ispPAC20的CS4端SOUT058ispPAC20的数据输入端D0SOUT154ispPAC20的数据输入端D1SOUT253ispPAC20的数据输入端D2SOUT352ispPAC20的数据输入端D3SOUT451ispPAC20的数据输入端D4SOUT550ispPAC20的数据输入端D5SOUT649ispPAC20的数据输入端D6SOUT758ispPAC20的数据输入端D74.3 用DDS实现PSK调制信号的合成1. FP模块FP模块用于实现对时钟CLK的256分频。sin函数的一个完整周期在LPM_ROM中共存
24、放了64个数值。每当一个CLK的上升沿到来时,存放sin函数的LPM_ROM向CONVERTER输出一个sin函数值。把sin函数的一个完整周期输出到CONVERTER中需要64个CLK。经过256分频后的一个CLK周期就对应于4个sin函数的周期。这样就使每间隔4个sin函数的周期,从LPM_ROM中读取一次数字基带信号,即使每一个数字基带信号维持4个sin函数周期。FP模块的主要代码如下:ENTITY FP ISPORT(INCLK:IN STD_LOGIC; OUTCLK:OUT STD_LOGIC);END ENTITY;ARCHITECTURE one of FP ISSIGNAL
25、COUNT:INTEGER RANGE 0 TO 255;SIGNAL OC:STD_LOGIC;BEGINPROCESS(INCLK)BEGINIF INCLKEVENT AND INCLK=1 THENIF COUNT=255 THENCOUNT=0;OC=NOT OC;ELSECOUNT=COUNT+1;END IF;END IF;END PROCESS;OUTCLK=OC;END one;2. CNT64 模块CNT64模块实现063的循环计数。CLK为输入时钟信号,CQ为输出计数值的5位二进制码。该模块在CLK的触发下向存放sin函数的LPM_ROM提供待输出的sin函数值的地址。C
26、NT64模块的主要代码如下:ENTITY CNT64 ISPORT(CLK:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END;ARCHITECTURE BEHAVE OF CNT64 ISSIGNAL CQI:STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THENCQI=CQI+1;END IF;CQ=CQI;END PROCESS;END;3. CNT8模块CNT8模块实现08的循环计数。CLK为输入时钟信号,CQ为输出计数值的3位二进制
27、码。该模块在CLK的触发下向存放数字基带信号的LPM_ROM提供待输出的二进制码的地址。CNT8模块的主要代码如下:ENTITY CNT8 ISPORT(CLK:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END;ARCHITECTURE BEHAVE OF CNT8 ISSIGNAL CQI:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THENCQI=CQI+1;END IF;CQ=CQI;END PROCESS;END;4. CONVE
28、RTER 模块CONVERTER模块为数字调制模块,将数字基带信号通过ASK调制到正弦载波信号上。CLK为输入时钟信号,OD为输入的数字基带信号,DATA为输入的正弦载波信号,SOUT输出的是调制信号的数字量。在时钟信号CLK的触发下,若OD为“1”,则将DATA端的正弦载波信号原样输出,若OD为“0”,则输出11111111-DATA,即将DATA端输入的正弦载波信号反相(取反)后输出。CONVERTER模块的主要代码如下:ENTITY CONVERTER ISPORT(CLK:IN STD_LOGIC; DATA:IN STD_LOGIC_VECTOR(7 DOWNTO 0); OD:IN
29、 STD_LOGIC_VECTOR(7 DOWNTO 0); SOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY;ARCHITECTURE one of CONVERTER ISBEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THENIF OD=11111111 THENSOUT=DATA;ELSESOUT=11111111”-DATA;END IF;END IF;END PROCESS;END;5. 存放sin函数和数字基带信号的LPM_ROM模块LPM_ROM模块按照输入的地址值ADDRESS 读取“si
30、n64.mif”文件中相应的sin函数数值,或读取“serial.mif”文件中相应的数字基带信号。“sin64.mif”中用64个数据表示sin函数的一个周期,数据中的最大值为0xFF,最小值为0x00。“serial.mif”中存放8个数字基带信号,用0xFF表示二进制数码1,用0x00表示二进制数码0。6. 管脚锁定管脚锁定同“用DDS实现ASK调制信号”实验。4.4 用DDS实现FSK调制信号的合成1. FP模块FP模块用于实现对时钟CLK的256分频。sin函数的一个完整周期在LPM_ROM中共存放了64个数值。每当一个CLK的上升沿到来时,存放sin函数的LPM_ROM向CONVE
31、RTER输出一个sin函数值。把sin函数的一个完整周期输出到CONVERTER中需要64个CLK。经过256分频后的一个CLK周期就对应于4个sin函数的周期。这样就使每间隔4个sin函数的周期,从LPM_ROM中读取一次数字基带信号,即使每一个数字基带信号维持4个sin函数周期。FP模块的主要代码如下:ENTITY FP ISPORT(INCLK:IN STD_LOGIC; OUTCLK:OUT STD_LOGIC);END ENTITY;ARCHITECTURE one of FP ISSIGNAL COUNT:INTEGER RANGE 0 TO 255;SIGNAL OC:STD_L
32、OGIC;BEGINPROCESS(INCLK)BEGINIF INCLKEVENT AND INCLK=1 THENIF COUNT=255 THENCOUNT=0;OC=NOT OC;ELSECOUNT=COUNT+1;END IF;END IF;END PROCESS;OUTCLK=OC;END one;2. CNT64 模块CNT64模块实现063的循环计数。CLK为输入时钟信号,CQ为输出计数值的5位二进制码。该模块在CLK的触发下向存放sin函数的LPM_ROM提供待输出的sin函数值的地址。CNT64模块的主要代码如下:ENTITY CNT64 ISPORT(CLK:IN STD
33、_LOGIC;CQ:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END;ARCHITECTURE BEHAVE OF CNT64 ISSIGNAL CQI:STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THENCQI=CQI+1;END IF;CQ=CQI;END PROCESS;END;3. CNT8模块CNT8模块实现08的循环计数。CLK为输入时钟信号,CQ为输出计数值的3位二进制码。该模块在CLK的触发下向存放数字基带信号的LPM_ROM提供待输出的二进制码的地址。CNT8模块的主要代码如下:ENTITY CNT8 ISPORT(CLK:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END;ARCHITECTURE BEHAVE OF CNT8 ISSIGNAL CQI:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年护士执业资格考试实践技能操作护理管理案例分析试卷
- 2025年欧洲女子数学奥林匹克(EGMO)模拟试卷(几何证明组合分析)-高中竞赛提升版
- 法人委托协议书
- 寺庙转让管理协议书
- 物品更换协议书
- 电商客服协议书
- 工程临时搭建协议书
- 2025年注册会计师CPA审计科目冲刺模拟试卷(风险评估与应对)强化训练
- 小孩弄伤赔偿协议书
- 工程单项木工协议书
- 六年级下册数学课件 整理和复习6.5比和比例 人教版 (共14张PPT)
- 福州市历史建筑保护管理办法(试行)
- JHA及SCL风险评价方法讲解(参考)
- DB11T 1933-2021 人乳库建立与运行规范
- 1.3.1动量守恒定律课件(共13张PPT)
- 国网北京市电力公司授权委托书(用电)
- 中小学教育惩戒规则(试行)全文解读ppt课件
- 调度指挥与统计分析课程教学设计
- 常暗之厢(7规则-简体修正)
- 终端塔基础预偏值(抬高值)计算表格
- 海外医疗服务委托合同协议书范本模板
评论
0/150
提交评论