毕业设计(论文)-直接数字频率合成器设计.doc

上传人:yyf 文档编号:3951017 上传时间:2019-10-11 格式:DOC 页数:35 大小:3.52MB
返回 下载 相关 举报
毕业设计(论文)-直接数字频率合成器设计.doc_第1页
第1页 / 共35页
毕业设计(论文)-直接数字频率合成器设计.doc_第2页
第2页 / 共35页
毕业设计(论文)-直接数字频率合成器设计.doc_第3页
第3页 / 共35页
毕业设计(论文)-直接数字频率合成器设计.doc_第4页
第4页 / 共35页
毕业设计(论文)-直接数字频率合成器设计.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《毕业设计(论文)-直接数字频率合成器设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-直接数字频率合成器设计.doc(35页珍藏版)》请在三一文库上搜索。

1、直接数字频率合成器设计The Design of Direct Digital Frequency Synthesizer摘 要利用可编程逻辑阵列FPGA(Field Programmable Gate Array)实现DDS专用电路芯片,主要特点是能满足用户对特殊功能的要求,而且在使用过程中也灵活地改变系统结构。商用DDS专用芯片虽然为电路设计者提供了很多机会并满足了很多场合的需要.但是也有它的局限性,并不能满足所有的要求。本文在对现有DDS技术的大量文献调研的基础上,提出了符合FPGA结构的DDS设计。方案利用Quartus开发工具在ALTERA FLEX10K系列器件上进行了实现。关键词

2、 直接数字频率合成器 单片机 数模转换 温度漂移补偿AbstractThe main features of realization of dedicated direct digital frequency synthesizer circuit chips using FPGA are the ability to meet user requirements for special functions, but also flexibility change structural of the system in the use of the process. Although comm

3、ercial DDS dedicated chip circuit provide a lot of opportunities for the designers and meet the needs of many occasions, there are its limitations and cannot meet all the requirements. On a large number of investigation of existing research literature,the papers involves the proposed structure of th

4、e direct digital frequency synthesizer FPGA design. The Programmer uses the Quartus II development tool for designing the Altera FLEX10K series devices.Keywords DDS MCU DAC Temperature drift compensation目 录前 言1第1章 设计思路及原理21.1 研究意义21.2 总体设计任务21.3 设计思路及原理31.3.1 DDS工作原理框图31.3.2 具体工作过程3第2章 系统电路的设计及原理52.

5、1 系统框图52.2 各模块具体实现原理分析和说明52.2.1 相位累加器模块52.2.2 ROM查找表模块102.2.3 单片机输入输出控制模块122.2.4 温漂误差补偿132.2.5 D/A转换模块182.2.6 滤波输出电路模块192.3 软件仿真结果19第3章 硬件电路的构建213.1 FPGA芯片的选择与使用213.2 硬件连接电路图23第4章实验开发系统系统254.1 实验开发系统的选择与使用254.2 实验过程与结果分析27总 结30谢 辞31参考文献32前 言频率合成技术是现代电子系统中非常关键的技术。在通信、雷达、导航和电子战方面,都需要在一个很宽的频率范围内以快捷的速度提

6、供大量高精度、高稳定度的频率信号。现实应用的频率合成技术主要有直接频率合成法、锁相频率合成法、直接数字频率合成法。直接频率合成法采用单个或多个不同频率的晶体振荡器作为基准信号源,经过具有加减乘除四则运算功能的混频器、倍频器、分频器和具有选频功能的滤波器的不同组合来实现频率合成。这种方法的主要优点是频率转换时间短,理论上可产生任意小的频率间隔。主要缺点有频率范围有限、频率间隔不能太多、采用的大量倍频器、分频器和混频器等,增大了输出信号的噪声以及设备庞大,造价较高等。随着集成技术和数字技术的发展,直接频率合成器的发展受到了限制。锁相频率合成法基于锁相环路的同步原理,是从一个高准确度、高稳定度的参考

7、晶体振荡器综合出大量离散频率的一种技术。它由基准频率产生器提供一个高稳定度的参考频率,锁相环路利用其良好的窄带跟踪特性,使频率准确的锁定在参考频率或其N次谐波频率上。当锁相环路 (PLL)达到稳定状态后,若输入信号为一固定频率的正弦波,则压控振荡器的输出信号频率与输入信号频率相等,它们之间的相位差为一常值。这种状态为环路的锁定状态。这种方法的优点是结构简单,输出频率纯度高,易于得到大量的离散频率,虽然锁相环频率合成技术发展非常快,应用也很广泛,但其频率转换速度不快,分辨率低,电路和微机控制复杂。1971年,美国学者J.Tierncy,C.M.Rader和B.Gold提出了以全数字技术,从相位概

8、念出发直接合成所需波形的一种新的频率合成方法。限于当时的技术和器件水平,它的性能指标尚不能与已有技术相比,故未受到重视。近30年间,随着集成电路技术和器件水平的提高,直接数字频率合成技术DDS(Direct Digital Frequency Synthesizer)得到了飞速的发展,它以有别于其它频率合成方法的优越性能和特点成为现代频率合成技术中的佼佼者1。直接数字频率合成器的基本优点是在微处理器的控制下,能够准确而快捷地调节输出信号的频率、相位和幅度。由于应用全数字的大规模集成技术,除了具有体积小、价格低、频率分辨率高、快速换频,易于智能控制等突出特点此外,DDS还具有频率和相位分辨率高、

9、频率切换速度快、易于智能控制等突出特点。这些特点使新出现的DDS技术已经成为频率合成技术的理想的解决方案之一。4第1章 设计思路及原理1.1 研究意义随着现代电子技术的高速发展,常用的晶体振荡器无法满足电子业日新月异的发展和要求,因为,尽管晶体振荡器能提供高稳定度的振荡频率,但其频率值是单一的,最多只能在很小的频段内进行微调。DDS具有较高的频率分辨率,可实现快速的频率切换且在频率改变时能够保持相位的连续,很容易实现频率、相位和幅度的数控调制。因此,在现代通信领域,直接数字频率合成器的应用越来越广泛,在数字化的调制解调模块中,DDS取代了VCO(模拟的压控振荡器)而被大量应用。随着微电子技术的

10、飞速发展,目前市场上性能优良的DDS产品不断推出,主要有Qualcomm、AD、Sciteg和Stanford等公司单片电路。虽然这些专用DDS芯片的功能也比较多,但控制方式却是固定的,因此不一定是我们所需要的。而利用可编程逻辑门阵列FPGA(Field Programmable Logic Gate Array)则可以根据需要方便地实现各种比较复杂的调频、调相和调幅功能,具有良好的实用性。就合成信号质量而言,专用DDS芯片由于采用特定的集成工艺,内部数字信号抖动很小,可以输出高质量的模拟信号;利用 FPGA也能输出较高质量的信号,虽然达不到专用DDS芯片的水平,但信号精度误差在允许范围之内。

11、2就本例而言,我们的设计要求功能灵活,而且尽可能的留下扩展的空间,我们固然可以应用专用的DDS芯片来实现,但是采用FPGA来实现,不仅能够让我们尽可能的熟悉可编程器件的选择,而且能使我们熟悉硬件描述编程语言VHDL(Very High Speed Integrated Circuit Hardware Description Language)和相关的开发环境。DDS是现今一种重要的频率合成手段,高速集成电路的发展进一步改善了DDS的性能,它与传统技术相结合组成的各种混合设计方案将频率源的性能提升到了一个新的水平,因此,未来的DDS不仅可应用于需要使用信号源的传统领域,而且也必将开拓出许多新的

12、应用领域。1.2 总体设计任务设计一个基于FPGA的直接数字频率合成系统。设计目标为:可以实现稳定的正弦波输出,输出最高频率256KHz,且频率可调,工作温度范围:-4065,且能够实现温度漂移的补偿。1.3 设计思路及原理DDS的工作原理是以数控振荡器的方式产生频率、相位可控制的正弦波。电路一般包括输入控制、基准时钟、相位累加器、幅度/相位转换电路、D/A转换器和低通滤波器(LPF)。输入控制电路负责采集频率字和温度值并进行转换,相位累加器由N位全加器和N位累加寄存器级联而成,对代表频率的2进制码进行累加运算,是典型的反馈电路,产生累加结果。幅度/相位转换电路实质上是一个波形寄存器,以供查表

13、使用。读出的数据送入D/A转换器和低通滤波器。数字频率合成芯片正弦查找表同步寄存器相位寄存器低通滤波相位累加D/A转换模拟输出输入控 制数字输入温度传感器1.3.1 DDS工作原理框图图1.1所示是一个DDS电路的基本工作原理框图。图1.1 DDS工作原理框图1.3.2 具体工作过程相位累加器是整个DDS的核心,它由N位加法器和N位相位寄存器级联构成,类似一个简单的加法器,完成相位累加的功能。每来一个时钟脉冲,加法器就将输入的N位频率字与相位寄存器输出的累加相位数据相加,然后将相加后的结果送至相位寄存器的输入端,相位寄存器就在下一个时钟到来后产生的新相位数据反馈到相位累加器的输入端,以使加法器

14、在时钟的作用下继续将相位数据与输入的频率字相加。当相位累加器累加满量时,就会产生一次溢出,完成一个周期性的动作,这个周期就是合成信号的一个周期,累加器的溢出频率就是DDS的合成信号频率。同步寄存器的使用是为了当输入的频率字改变时不会干扰相位累加器的正常工作。正弦ROM查找表的作用是完成相位幅度的查表转换。将相位累加器输出的相位数据作为取样地址,来寻找正弦ROM表进行相位到幅度的变换,输出不同的幅度编码。再经D/A转换器得到相应的阶梯波,最后经过低通滤波器对阶梯波进行平滑处理,衰减和滤除不需要的取样分量,得到由输入频率字决定的连续变化的输出正弦波。输入控制系统主要完成输入频率字的转换和温度漂移的

15、自动补偿。由于频率字是由前级的模拟器件产生,难免会受到较大温度工作范围的影响而产生漂移,而且我们得到的输入频率字并不与我们的直接数字合成芯片所需要的数字相匹配,因此我们用单片机读入频率字和数字温度传感器的数字温度输入通过查表转换的方法转为与芯片相匹配的数据,利用不同的温度值下输出不同的控制字实现。3系统时钟由一个高稳定度的晶体振荡器产生,用来同步整个合成器的各组成部分。模拟部分包括D/A转换器和低通滤波器,D/A转换器作用是将合成的数字信号转换为模拟信号,D/A转换器输出的模拟锯齿信号再经过低通滤波产生平滑的正弦信号。第2章 系统电路的设计及原理2.1 系统框图根据要求,经过仔细分析,充分考虑

16、各种因素,制定了整体的设计方案:以FPGA芯片FLEX10K为核心,处理输入单片机控制电路送来的频率控制字,将存在ROM中的波形数据相应输出给D/A转换器MAX507完成数模转换,继而经过低通滤波器进行滤波,从而得到纯净的正弦波。系统总体框图如图2.1所示。单片机AT89S52D/A转换MAX507FPGAFLEX10K温度传感器DS18B20数字输入低通滤波信号输出图2.1 DDS总体设计框图2.2 各模块具体实现原理分析和说明2.2.1 相位累加器模块这一模块是由FPGA实现的,FPGA完成相位累加器的功能,而频率控制字是由单片机AT89S52给出的。相位累加器是实现DDS的核心,它由一个

17、10位字长的二进制加法器和一个固定时钟脉冲取样的10位相位寄存器组成。DDS的基本原理是利用采样定理,通过查表法产生波形,对于正弦信号发生器,其输出的波形可以用下式来描述:Sout=Asint=Asin(2foutt) 上式的表述对于时间是连续变化的,式中Sout是指输出信号波形,fout指输出信号对应的频率。对上式进行离散化处理,以便能用数字逻辑实现。用基准时钟clk进行抽样,令正弦信号的相位:=2foutt在一个clk周期Tclk,相位的变化量为:=2foutTclk= 2fout/ fclk式中,fclk为clk的频率,为了对信号进行数字量化,把信号切割成2N份,由此每个clk周期的相位

18、增量用量化值来表述,则B2N /2且B为整数,与的表达式联立,可得B/2N =fout/ fclk ;B=2Nfout/ fclk由上式可知,相位增量量化值B与输出频率fout为线性关系。当系统时钟的频率fclk为2N时,B就等于fout。显然,信号发生器的输出可描述为:Sout=Asin(k-1+)=Asin2(Bk-1+B)=Afsin(Bk-1+B)其中k-1指前一个clk周期的相位值,同样得出Bk-12Nk-1/2由上面的推导,可以看出,只要对相位的量化值进行简单的累加运算,就可以得到正弦信号的当前相位值,而用于累加的相位增量量化值B决定了信号的输出频率fout,并呈现简单的线性关系。

19、直接数字频率合成器DDS就是根据上述原理而设计的数字控制频率合成器。4由于受到FPGA芯片资源限制,所能达到的频率不是很高,范围也不是很广。根据设计目标,本设计中的系统时钟采用12MHz晶振经过16分频得到750KHz的频率信号,当正弦信号采样周期为Tclk=1/fclk时,每个采样周期相应的相位增量为根据Nyquist准则,DDS允许输出频率最高为fo=fclk/2。在实际情况中受低通滤波器的限制,一般fomax=40%fclk=300KHz,满足系统要求的最高输出频率256KHz的要求。频率分辨率可用频率输入值步进一个最小间隔对应的频率输出变化量来衡量:fout=fclk /2N=750K

20、Hz /1024=750Hz,DDS的频率输入字B的计算:B=2Nfout/ fclk,注意B要取整,有时会有误差。基于上面的讨论,在Quartus II开发环境中实现相位累加器模块。图2.2 Quartus II开始向导界面Quartus II软件是Altera公司新一代PLD开发软件,适合大规模FPGA的开发,支持Altera最新的FPGA和CPLD,其向导界面如图2.2所示,Quartus II软件用来进行所有新的设计。MAX+PLUSII 软件适用于已经做过的设计,对于新设计不推荐使用。Quartus II软件目前包括一个MAX+PLUS II用户界面设置,用户能够轻松的从MAX+PL

21、US II软件转换到Quartus II。Quartus II是本设计所应用的核心工具,提供从设计输入到器件编程的全部功能,用来完成DDS的核心部分的设计与仿真,支持Altera最新的FPGA和CPLD和几乎所有老的器件系列5。Quartus II可以产生并识别EDIF网表文件、VHDL网表文件和Verilog HDL网表文件,为其他EDA工具提供了方便的接口;可以在Quartus II集成环境中自动运行其他EDA工具。利用Quartus II软件的开发流程可概括为以下几步,如图2.3所示: 设计输入设计输入包括使用硬件描述语言HDL、状态图与原理图输入三种方式。HDL设计方式是现今设计大规模

22、数字集成电路的良好形式,除IEEE标准中VHDL与Verilog HDL两种形式外,尚有各自FPGA厂家推出的专用语言,如Quartus下的AHDL。通常,FPGA厂商软件与第三方软件设有接口,可以把第三方设计文件导入进行处理。如Quartus与Foundation都可以把EDIF网表作为输入网表而直接进行布局布线,布局布线后,可再将生成的相应文件交给第三方进行后续处理。 设计综合综合,就是针对给定的电路实现功能和实现此电路的约束条件,如速度、功耗、成本及电路类型等,通过计算机进行优化处理,获得一个能满足上述要求的电路设计方案。也就是是说,被综合的文件是HDL文件(或相应文件等),综合的依据是

23、逻辑设计的描述和各种约束条件,综合的结果则是一个硬件电路的实现方案,该方案必须同时满足预期的功能和约束条件。对于综合来说,满足要求的方案可能有多个,综合器将产生一个最优的或接近最优的结果。因此,综合的过程也就是设计目标的优化过程,最后获得的结构与综合器的工作性能有关。 仿真验证输入原理图/VHDL代码设计综合功能仿真及波形分析行为仿真验证 转换映射FPGA配置时序分析编程下载/配置和硬件测试从广义上讲,设计验证包括功能与时序仿真和电路验证。仿真是指使用设计软件包对图2.3 Quartus II软件设计开发流程图已实现的设计进行完整测试,模拟实际物理环境下的工作情况。前仿真是指仅对逻辑功能进行测

24、试模拟,以了解其实现的功能否满足原设计的要求,仿真过程没有加入时序信息,不涉及具体器件的硬件特性,如延时特性;而在布局布线后,提取有关的器件延迟、连线延时等时序参数,并在此基础上进行的仿真称为后仿真,它是接近真实器件运行的仿真。 设计实现实现可理解为利用实现工具把逻辑映射到目标器件结构的资源中,决定逻辑的最佳布局,选择逻辑与输入输出功能连接的布线通道进行连线,并产生相应文件(如配置文件与相关报告)。在实现过程中可以进行选项设置。因其支持增量设计,可以使其重复多次布线,且每次布线利用上一次布线信息以使布线更优或达到设计目标。在实现过程中应设置默认配置的下载形式,以使后续位流下载正常。 时序分析在

25、设计实现过程中,在映射后需要对一个设计的实际功能块的延时和估计的布线延时进行时序分析;而在布局布线后,也要对实际布局布线的功能块延时和实际布线延时进行静态时序分析。从某种程序来讲,静态时序分析可以说是整个FPGA设计中最重要的步骤,它允许设计者详尽地分析所有关键路径并得出一个有次序的报告,而且报告中含有其它调试信息,比如每个网络节点的扇出或容性负载等。静态时序分析器可以用来检查设计的逻辑和时序,以便计算各性能,识别可靠的踪迹,检测建立和保持时间的配合,时序分析器不要求用户产生输入激励或测试矢量。 下载验证下载是在功能仿真与时序仿真正确的前提下,将综合后形成的位流下载到具体的FPGA芯片中,也叫

26、芯片配置。FPGA设计有两种配置形式:直接由计算机经过专用下载电缆进行配置;由外围配置芯片进行上电时自动配置。6将位流文件下载到FPGA器件内部后进行实际器件的物理测试即为电路验证,当得到正确的验证结果后就证明了设计的正确性。电路验证对FPGA投片生产具有较大意义。基本DDS结构的VHDL描述如下:- DDSC: DDS主模块library IEEE;use IEEE.STD_LOGIC_1164.all;use IEEE.STD_LOGIC_UNSIGNED.all;use ieee.std_logic_arith.all;library lpm; - Altera LPMuse lpm.l

27、pm_components.all;entity ddsc is - DDS主模块generic( freq_width : integer := 10; - 输入频率字位宽adder_width : integer := 10; - 累加器位宽romad_width : integer := 10; - 正弦ROM表地址位宽rom_d_width : integer := 10); - 正弦ROM表数据位宽port( clk: in std_logic; - DDS合成时钟 freqin: in std_logic_vector (freq_width-1 downto 0); - 频率字输

28、入 ddsout: out std_logic_vector(rom_d_width-1 downto 0); - DDS输出end entity ddsc;architecture behave of ddsc issignal acc : std_logic_vector(adder_width-1 downto 0);signal romaddr : std_logic_vector(romad_width-1 downto 0);signal freqw : std_logic_vector(freq_width-1 downto 0);beginprocess (clk)begini

29、f(clkevent and clk = 1) thenfreqw = freqin; - 频率字输入同步acc = acc + freqw; - 相位累加器end if;end process;romaddr rom_d_width,lpm_widthad = romad_width,lpm_address_control = UNREGISTERED,lpm_outdate = REGISTERED,lpm_file = sim_rom.mif ) -指向rom文件PORT MAP ( outclock = clk,address = romaddr,q = ddsout );end ar

30、chitecture behave;这段程序中的正弦ROM查找表是采用了Altera的LPM_ROM模块,所以该程序必须在Altera含有EAB(嵌入式阵列块)的器件上使用,如FLEX10K系列,也可以经过适当的转化,在其他FPGA上实现时,使用其他FPGA厂家的ROM模块。“sin_rom.mif”是正弦ROM中的值,放置幅度相位的查表值。在上面的程序中大量使用了generic语句,是为了便于在DDS主模块调用时更改设计,并放大使VHDL程序便于阅读。下面给出一个实际的正弦信号发生器的源程序,调用了DDS主模块。- 简易频率合成器- DDS(10bit频率字,1024 points 10bi

31、t out) library ieee;use ieee.std_logic_1164.all;entity ddsall isport( sysclk : in std_logic; - 系统时钟ddsout : out std_logic_vector(9 downto 0);- DDS输出fpin : in std_logic_vector(9 downto 0);end ddsall;architecture behave of ddsall iscomponent ddsc isgeneric( freq_width : integer := 10; - 输入频率字位宽 adder_

32、width : integer := 10; - 累加器位宽romad_width : integer := 10; - 正弦ROM表地址位宽port(clk:in std_logic; - DDS合成时钟 freqin:in std_logic_vector(freq_width-1 downto 0); - 频率字输入ddsout:out std_logic_vector(rom_d_width-1 downto 0);- DDS输出end component ddsc;signal clk : std_logic;signal freqind : std_logic_vector(9 d

33、ownto 0); - 频率字begini_ddsc : ddsc - 例化DDSCport map(clk = clk,ddsout = ddsout,freqin = freqind);clk = sysclk;process(sysclk)beginif(sysclkevent and sysclk = 1) thenfreqind(9 downto 0) = fpin; end if;end process; end behave;2.2.2 ROM查找表模块FPGA的结构是由基于半定制门陈列的设计思想而得到的。从本质上讲, FPGA是一种比半定制还方便的ASIC 设计技术。FPGA的

34、结构主要分为三部分: 可编程逻辑块、可编程IO 模块、可编程内部连线。查找表型FPGA的可编程逻辑单元是由功能为查找表的SRAM构成逻辑函数发生器, 实现与其它功能块的可编程连接。在此,选用FLEX10K系列FPGA作为目标芯片。FLEX10K系列是Altera公司于1995年推出的产品,它的集成度达到了10万门,而且在FPGA中首次集成了嵌入式存储器块的芯片。它是查找表型FPGA , 由输入输出控制模块( IOC )、嵌入式阵列块(EAB)、逻辑阵列块(LAB)和快速通道(FASTTRACK)构成。其中EAB是一种输入输出端带有寄存器的非常灵活的RAM ,它既可以用来作为存储器使用,也可以用

35、来实现逻辑功能。每一个EAB有容量为2048位的RAM , 可配置为存储器或逻辑函数,FLEX10K系列中不同型号的芯片其中包含的EAB的数目不同, FLEX10K10有3个EAB。另外Altera还在它们公司的VHDL设计平台Quartus II上提供了LPM ROM核,利用MAX+PLUS综合可以自动编译包含LPM ROM元件的文件, 在FLEX10K10的EAB上产生ROM功能。本设计利用LPM ROM核预置正弦查找表在FPGA上。“sin_rom.mif”是正弦ROM中的值,放置幅度相位的查表值,可由文本形式生成,也可由高级语言如C语言生成。ROM查找表在整个设计中是一个比较重要的部分

36、,为了保证波形的平滑,设计时可将一个周期分为1024个点。但是,点数太多时,用文本方式输入可能有很多困难。因此,应当用C语言描述正弦方程式,最后再将其转化为所需的mif文件。下面是用Turbo C在“sin_rom.mif”文件里产生1024个点的正弦波数据的源程序:#include #include math.hmain( )int i;float s;for(i=0;i sin_rom.mif;生成sin_rom.mif文件,再加上下面的头部说明即可具体参数:LPM_WIDTH:输出数据的宽度(164任选);LPM_WIDTHAD:输入地址的宽度(112任选);LPM_FILE:存储器初始

37、化文件名(.mif或.hex)。本设计中各参数设置如下:LPM_WIDTH =10;LPM_WIDTHAD=10; LPM_OUTDATA=”UNREGISTERED”;LPM_ADDRESS_CONTROL=UNREGISTERED;LPM_FILE=”sim_rom.mif实际上,DDS还可以产生任意频率的正弦信号发生器,可用来作任意波形发生器,只要改变ROM查找表中的数据就可以实现,程序中介绍了正弦波形实现,直接频率合成技术还有一个很重要的为了让频率发生器产生任意波形,从上面直接数字频率合成的原理可知,其输出波形取决于波形存储器的数据。因此,产生任意波形的方法取决于向该存储器(RAM)提

38、供数据的方法,只需要改变查找表中的数据。目前有以下几种方法7。(1) 表格法将波形画在小方格纸上,纵坐标按幅度相对值进行二进制量化,横坐标按时间间隔编制地址,然后制成对应的数据表格,按序放入RAM。对经常使用的定了“形”的数据,可将数据固化于ROM或存入非易失性RAM中,以便反复使用。(2) 数学方程法对能用数学方程描述的波形,先将其方程(算法)存入计算机,在使用时输入方程中的有关参数,计算机经过运算,提供波形数据。(3) 折线法对于任意波形可以用若干线段来逼近,只要知道每一段的起点和终点的坐标位置(X1Y1和X2Y2)就可以按照下式计算波形各点的数据YiY1+(Xi-X1)(4) 作图法在计

39、算机显示器上移动光标作图,生成所需波形数据,将次数据送入RAM。(5) 复制法将其他仪器(如数字存储示波器,X-Y绘图仪)获得的波形数据通过微机系统总线传输给波形数据存储器。图2.4 双列直插式AT89S52在自然界有很多无规律的现象,例如,雷电、地震及机器运转时产生的震动等现象都是无规律的,甚至不能再现。为了研究这些问题,就要模拟这些现象的产生。过去只能采用很复杂的方法实现,现在采用任意波形发生器则方便的多。2.2.3 单片机输入输出控制模块为了实现多个查找表,从本设计的实际需要出发,要求选用的单片机有较大的程序存储空间,但对单片机的字长要求不高,并从工程造价考虑,所选的单片机价格不能不能太

40、高,综合考虑后选择了ATMEL公司的AT89S52单片机(外形如图2.4),AT89系列单片机是采用了8051作为内核,结合自己的技术优势构成的,所以它和8051是兼容的系列8。因此,AT89系列对于以8051为基础的应用系统而言,是十分容易进行取代和转换的。而且对于熟悉8051的用户来说,选用AT系列单片机进行系统设计也是轻而易举的。AT89S52单片机具有下列特点15:l 8K字节在系统可编程Flash 存储器l 1000次擦写周期l 全静态操作:0Hz33Hzl 三级加密程序存储器l 32个可编程I/O 口线l 三个16位定时器/计数器l 八个中断源l 全双工UART 串行通道l 低功耗

41、空闲和掉电模式l 掉电后中断可唤醒l 看门狗定时器l 双数据指针l 掉电标识符本设计中采用单片机的P0口读入控制数据量,转换为DDS的频率输入字,根据3.2.1节的介绍,输入频率输入字B=2Nfout/ fclk,注意B要取整,有时会有误差,数据的转换通过查表的方法实现。这样,既保证了一定的精度要求,又避免了复杂的浮点运算,在基于微处理器的系统中通常可将浮点运算转换位定点运算。查表法的前提是,必须事先找到温度和输出频率误差的二维关系表,表格的密度可根据精度的需要和微处理器的分配来决定。2.2.4 温漂误差补偿图2.5(a)正面图单片机读入的控制数据来自于前级的模拟电路,是通将微弱的电流信号通过

42、放大器放大后,在经过一级A/D转化而来,该模拟电路手温度的影响会产生一定的飘移,为了最终的频率能有较高的稳定度,需要实现温漂的自动补偿。温度信号的采集选用了DS18B20,数字化温度传感器DS18B20是美国Dallas半导体公司新推出的一种改进型智能温度传感器9,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单编程实现912位的数字值读数方式,其正面和俯视图分别如图2.5(a)和图2.5(b)所示。DS18B20的性能特点可归结如下:图2.5(b)顶面图l 独特的单线接口仅需一个端口引脚进行通讯l 多个DS18B20可以并联在唯一的3线上,实现简单的多点组网功

43、能l 无需外部器件l 可通过数据线供电,电压范围为3.05.5Vl 零待机功耗l 测温范围-55+125,以0.06250.5递增l 温度以912位数字量读出l 温度数字量转换时间93.75750msl 用户可定义的非易失性温度报警设置l 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件l 负电压特性,电源极性接反时,温度计不会因发热而烧毁,只是不能正常工作现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向

44、传输,而对AT89S52单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先10。 DS18B20的复位时序(如图

45、2.6):图2.6 DS18B20的复位时序图DS18B20的读时序(如图2.7):图2.7 DS18B20的读时序图对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15us秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。DS18B20的写时序(如图2.8):图2.8 DS18B20的写时序图对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。最后,由单片机AT89S52完成对DS18B20的读

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1