数控脉冲宽度调制信号发生器_第1页
数控脉冲宽度调制信号发生器_第2页
数控脉冲宽度调制信号发生器_第3页
数控脉冲宽度调制信号发生器_第4页
数控脉冲宽度调制信号发生器_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、 数控脉冲宽度调制信号发生器 摘 要:脉冲宽度调制(pwm),简称脉宽调制,是利用微处理器等的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制于变换的许多领域中。在本设计中设计了一种输出频率高、结构简单、控制方便的数控脉冲宽度调制信号发生器,脉冲的占空比及周期由两个8位的预置输入a、b确定。核心器件采用altera公司的cpld芯片,大大缩减了电路的体积,提高了电路的稳定性,产生的pwm能达到较高的频率。信号发生器输出脉冲的占空比及周期可通过拔码开关方便地改变。关键词:脉冲宽度调制,信号发生器,cpld abstract: the pulse width mo

2、dulation (pwm), hereinafter referred to as the pulse width modulation is the use of microprocessors etc to the digital output to the analog circuit to control a very effective technology, widely used in measuring, from communication to power control to transform in many areas. in this design design

3、a kind of high frequency output, simple structure, convenient control numerical control pulse width modulation signal generator, the pulse of empty ratio and cycle by two of the eight preset input of a and b sure. the core device using altera company cpld chip, greatly curtailed the volume of the ci

4、rcuit, improve the stability of the circuit, and the resulting pwm can achieve higher frequency. the output pulse signal generator of empty ratio and cycle can be pulled through code switch convenient to change.keywords: pulse width modulation, signal generator, cpld 目 录1、简介21.1 eda简介21.2 verilog hd

5、l简介21.3 quartusii简介22、总体方案设计52.1设计内容52.2设计方案比较52.3方案论证62.4方案选择73、单元模块设计83.1有源晶振电路83.2 供电电路93.3 ps配置电路103.4 八位计数器输入电路113.5 d触发器电路114、特殊器件的介绍124.1 cpld器件介绍124.2 fpga器件介绍124.3 ep1k30tc144器件介绍135、最小系统原理图146、软件实现156.1软件设计156.2思考题扩展177、系统仿真及调试197.1仿真197.2 调试208、总结228.1设计小结228.2设计收获228.3设计改进228.4 致谢229 、参考

6、文献231.1 eda简介 eda是电子设计自动化(electronic design automation)的缩写,在20世纪90年代初从计算机辅助设计(cad)、计算机辅助制造(cam)、计算机辅助测试(cat)和计算机辅助工程(cae)的概念发展而来的。eda技术就是以计算机为工具,设计者在eda软件平台上,用硬件描述语言hdl完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。 1.2verilog hdl简介 verilog hdl是一种硬件描述语言(hdl:hardware discrip

7、tion language),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 verilog hdl和vhdl是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由gateway design automation公司(该公司于1989年被cadence公司收购)开发。两种hdl均为ieee标准。1、3qartusii 软件简介quartusii是altera提供的fpga/cpld开发集成环境,altera是世界上最大的可编程逻辑器件供应商之一。quartusii在21世纪初推出,

8、是altera前一代fpga/cpld集成开发环境max+plusii的更新换代产品,其界面友好,使用便捷。它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。altera的quartusii提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(sopc)设计的综合性环境和sopc开发的基本设计工具,并为altera dsp开发包进行系统模型设计提供了集成组合环境。quartusii设计工具完全支持vhdl、verilog设计流程,其内部嵌有vhdl、verilog逻辑综合器。quartusii也可利用第三方的综合工具。同样,quartus

9、ii具备仿真功能,同时也支持第三方的仿真工具,如modelsim。此外,quartusii与matlab和dsp builder结合,可以进行基于fpga的dsp系统开发和数字通信模块的开发。quartusii包括模块化的编译器。编译器包括的功能模块有分析/综合器(analsis & synthesis)、适配器(fitter)、装配器(assembler)、时序分析器(timing analyzer)、设计辅助模块(design assistant)、eda网表文件生成器(eda netlist writer)、编辑数据接口(compiler database interface)等。可以通

10、过选择start compilation来运行所有的编译器模块,也可以通过选择start单独运行各个模块。还可以通过选择compiler tool(tools菜单),在compiler tool窗口中运行该模块来启动编译器模块。在compiler tool窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。此外,quartusii还包含许多十分有用的lpm(library of parameterized modules)模块,它们是复杂或高级系统构建的重要组成部分,在sopc设计中被大量使用,也可以与quartusii普通设计文件一起使用。altera提供的lpm函数均基于alt

11、era器件的结构做了优化设计。在许多实用情况中,必须使用宏功能模块才可以使用一些altera特定器件的硬件功能,如各类片上存储器、dsp模块、lvds驱动器、pll以及serdes和ddio电路模块等。quartusii编译器支持的硬件描述语言有vhdl(支持vhdl87及vhdl97标准)、verilog hdl及ahdl(altera hdl)。quartusii支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与hdl混合输入设计的问题。在设计输入之后quartusii的编译器将给出设计输入的错误报告。可以使用quartusii

12、带有的rtl viewer观察综合后的rtl图。quartusii作为目前cpld/fpga开发工具理想的综合、仿真软件,具有许多优良的特性。(1)继承了max+plusii的优点图形输入依然形象,图形符号与max+plusii一样符合数字电路的特点,大量74系列器件符号使能初学者在较短的时间里利用图形编辑设计出需要的电路。文本输入几乎和max+plusii相同,而且在文本的每一行都有行号,使用语言编写的电路清晰易读。低层编辑仍然采用chipview方式,引脚排列位置映射了实际器件引脚,只要简单地鼠标拖放即可完成低层编辑。(2)支持的器件更多除了支持max3000、max7000、flex60

13、00、flex10ke、acex1k等max+plusii已经支持的器件外,还支持pex20k、apex20ke、arexii、excalibur-arm、mercury、stratix等max+plusii下无法支持的大容量高性能的器件。(3)增加了网络编辑功能quartusii支持一个工作组环境下的设计要求,包括支持基于internet的协作设计,与cadence、exempiarlogi、mentorgraphics、synopsys和synpicity等eda供应商的开发工具相兼容。(4)提升了调试能力 quartusii增加了一个新的快速适配编译选项,可保留最佳性能的设置,加快了编译

14、过程,可缩短50%的编译时间,对设计性能的影响小。(5)不足之处软件结构庞大,使用复杂,不如max+plusii简单、易学易用。2、总体方案设计2.1设计内容设计一个能够均匀输出给定占空比的脉冲宽调制信号,通过两个可加载8位计数器lcnt8.v实现本设计。若初始时d触发器输出为高电平时, u1不能加载a,若已复位只能完成0到255的加计数,在计到255时产生输出cao1,经反相后异步清除d触发器,经反相后,ld1变高,使u1完成加载a,但只能保持加载状态,直到u2计数完成,产生cao2使d触发器输出高电平,ld1变低,u1开始从a的加计数,计到255后,产生输出cao1,经反相后异步清除d触发

15、器,如此循环。d触发器输出高电平使u2加载,但持续的高电平维持加载使u2计数状态维持在b,只有当d触发器清除后,u2开始从b的加计数,计到255后产生输出cao2,使d触发器输出为高电平,如此循环。2.2设计方案比较方案一:由单片机at89s52来实现数控脉冲宽度调制信号发生器的设计,外围电源采用+5v电源供电,时钟由12mhz的晶振产生,中央处理器由at89s52单片机来完成,设计中高低电平持续时间由输入a、b与255的差值控制。这种方案,结构简单容易掌握,各部分电路实现起来都非常容易,在传统的设计中也应用得较为广泛,技术成熟。其原理框图如下图2-1所示:at89s52单片机电源供电电路时钟

16、产生电路输入a、b控制电路路pwm的输出图2-1单片原理实现框图方案二:基于现场可编程逻辑门阵列fpga,通过eda技术,采用verilog hdl硬件描述语言实现数控脉冲宽度调制信号发生器设计。程序设计思想为:对输入信号a、b采用不同的八位二进制代码表示高低电平持续时间,由时钟上沿触发加计数器进行加计数功能,至于计数器u1、u2谁工作取决于其后接的d触发器输出的高低电平状态,低电平使u1工作,高电平使u2工作。再通过组合逻辑电路输出结果状态。其原理框图如下图2-2所示: 图2-2数控脉冲宽度调制信号发生器电路控制框图2.3方案论证通过方案一二的比较,可以看出方案一的设计使用分立元件电路较为多

17、,因此会增加电路调试难度,且电路的不稳定性也会随之增加,而采用fpga芯片实现的电路,由于在整体性上较好,在信号的处理和整个系统的控制中,fpga的方案能大大缩减电路的体积,提高电路的稳定性。此外其先进的开发工具使整个系统的设计调试周期大大缩短,一般来讲,同样的逻辑,基于fpga要比基于单片机要快很多,因为它们工作的原理是完全不同的。单片机是基于指令工作的,同样的激励到达单片机后,单片机首先要判断,然后读取相应的指令,最后作出响应,这每一步都是需要在单片机的时钟驱动下一步步的进行。而基于fpga则是把相应的逻辑“暂时”固化为硬件电路了,它对激励作出的响应速度就是电信号从fpga的一个管脚传播另

18、一个管脚的传播速度,当然这指的是异步逻辑,同时电信号也要在芯片内进行一些栅电容的充放电动作,但这些动作都是非常非常快的。 2.4方案选择结合现代测量技术的要求和精确,对其各个部件的性能提出了更高的要求,精确度是高于一切的,也是衡量一个器件的标准。在器件的合理使用和再度利用的考虑下,可编程的逻辑器件是占优势的,而且更方便,低功耗,体积小,结合本设计的要求及综合以上比较的情况,我们选择了基于fpga的数控脉冲宽度调制信号发生器的方案,即,选择方案二。3、单元模块设计本设计由现场可编程门阵列(fpga)作为控制芯片,通过vreilog hdl硬件描述语言设计,运用自顶而下的设计思想,按功能逐层分割实

19、现层次化的设计。下面介绍主要模块的功能及作用。3.1有源晶振电路有源晶振电路如下图3-1所示:图3-1有源晶振电路采用有源晶振作为时钟信号源,有源晶振常用的为4个引脚,1-nc 、2-gnd 、3-out、 4-vcc,它是一个完整的振荡器,其内部除了石英晶体外还有阻容软件和晶体管,有源晶振信号质量好,比较稳定,而且连接方式比较简单。主要是作为电源滤波,通常使用的为一个电容和电感组成的pi型滤波网络,输出端使用一个小阻值电阻过滤信号。串电阻可减小反射波,避免反射波叠加引起过冲,减少谐波以及阻抗匹配,减小回波干扰及导致的信号过冲。由于本设计所用的为20mhz的晶振,而20mhz以下的晶体晶振基本

20、上都是基频的器件,稳定度好,20mhz以上的大多是谐波的(如3次谐波、5次谐波等等),稳定度差,因此我们选用基频的器件,毕竟倍频用的pll电路需要的周边配置主要是电容、电阻、电感,其稳定度和价格方面远远好于晶体晶振器件。3.2 供电电路供电电路原理图如下图3-2所示:图3-2供电电路原理图本设计中使用到了三个电源,第一是+5v的电源,用于为上拉电阻提供电压,该设计中用集成三端稳压器cw7805来得到,输入电压经降压,整流,滤波,稳压后得到+5v的电压供本设计使用;第二是+3.3v电源,用于为fpga芯片提供工作电压,本设计中电源芯mic29302来得到3.3 v输入输出引脚工作电压;第三是+2

21、.5v电源,用于为fpga芯片内核工作提供电压,本设计中电源芯片spx1117m来得到+2.5v芯片工作的内核电压。在fpga芯片管脚上,+2.5v电源必须接在内核电源输入端(vccint)上,而vccio是芯片输入输出引脚工作电源,根据输入输出的设备不同,可以接2.5 v、3.3 v或5.0 v。特别注意的是epc1pc8的工作电压必须为3.3v,且该配置芯片属于flash memory闪存)器件,具有可擦写的功能。3.3 ps配置电路配置电路如下图3-3所示:图3-3 配置电路原理图配置电路采用被动串行(ps)模式,为了利用byteblastermv下载电缆配置ep1k30tc144器件,

22、3.3v的电源应该接上拉电阻,电缆的vcc脚连到3.3v电源,而器件的vccint的引脚连接到相应的2.5v,对于ps配置电路,器件的vccio引脚必须连接到2.5v。上拉电阻接到配置器件的电源端,这里接到了+5v电源端。nce接到conf_done端,oe接到nstatus端,nint_conf接到nconfig端,dclk与dclk相连接,data与data0相连接。nceo引脚端悬空。3.4 八位计数器输入电路8位计数器的原理图如下图5-4所示:图3-4 8位计数器件原理图此试验选用的是8位的计数器进行加计数功能,从0加到255。计数器是数字系统中用的较多的基本逻辑器件,它的基本功能是统

23、计时钟脉冲的个数,即实现计数操作,它也可用与分频、定时、产生节拍脉冲和脉冲序列等。例如,计算机中的时序发生器、分频器、指令计数器等都要使用计数器。计数器的种类很多。按构成计数器中的各触发器是否使用一个时钟脉冲源来分,可分为同步计数器和异步计数器;按进位体制的不同,可分为二进制计数器、十进制计数器和任意进制计数器;按计数过程中数字增减趋势的不同,可分为加法计数器、减法计数器和可逆计数器;还有可预制数和可编计数器等等。3.5 d触发器电路d触发器的原理图如下图3-5所示:图3-5 触发器件原理图d触发器的输入端由时钟信号端clk、数据信号端、反相复位端clrn和反相置位端prn组成,clrn、pr

24、n控制信号分别从方框小圆圈处输入,表示低电平控制信号有效。d触发器输出端由两个互为反相的q端和q端组成。d触发器的d代表延迟或数据,它的输出是发生在早于一个时钟脉冲之前的d输入的函数。在时钟脉冲期间,在d输入提供“1”会导致输出变为1,否则输出变为0。4、特殊器件的介绍4.1 cpld器件介绍cpld是complex programmable logic device的缩写,它是有最早的pld器件发展形成的高密度可编程逻辑器件,它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点。 cpld是

25、一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。许多公司都开发出了cpld可编程逻辑器件。比较典型的就是altera、lattice、xilinx世界三大权威公司的产品。如 altera公司的maxii器件,就是其极具代表性的一类cpld器件,是有史以来功耗最低、成本最低的cpld。max ii cpld基于突破性的体系结构,在所有cpld系列中,其单位i/o引脚的功耗和成本都是最低的。 altera公司的max7000a系列器

26、件是高密度、高性能的epld,它是基于第二代max结构,采用cmos eprom工艺制造的。该系列的器件具有一定得典型性,其他结构都与此结构非常的类似。它包括逻辑阵列块、宏单元、扩展乘积项、可编程连线阵列和io控制部分。由于大多数cpld是基于乘积项的“与或”结构,故适合设计组合逻辑电路。4.2 fpga器件介绍fpga(fieldprogrammable gate array)可以达到比pld更高的集成度,它是在pal、gal、epld等可编程器件的基础上进一步发展起来的,具有更复杂的布线结构和逻辑实现。pld器件和fpga的主要区别在于pld是通过修改具有固定内连电路得逻辑功能来进行编程,

27、而fpga是通过修改一根或多根分割宏单元的基本功能块的内连线的布线来进行编程。它一般由可嵌入式阵列块(eab)、逻辑阵列块(lab)、快速互联通道(fast track)、io单元(ioe)组成。altera cyclone ii 采用全铜层、低k值、1.2伏sram工艺设计,裸片尺寸被尽可能最小的优化。采用300毫米晶圆,以tsmc成功的90nm工艺技术为基础,cyclone ii 器件提供了4,608到68,416个逻辑单元(le),并具有一整套最佳的功能,包括嵌入式18比特x18比特乘法器、专用外部存储器接口电路、4kbit嵌入式存储器块、锁相环(pll)和高速差分i/o能力。cyclo

28、ne ii 器件扩展了fpga在成本敏感性、大批量应用领域的影响力,延续了第一代cyclone器件系列的成功。由于fpga是基于查找表(lut)结构的器件,且每个lab由10个le组成,一个le由lut和寄存器组成,适合于时序逻辑电路的设计。4.3 ep1k30tc144器件介绍acex1k器件是altera公司在2000推出的2.5v低价格sram工艺fpga结构与10ke类似,带嵌入式存储块(eab),部分型号带pll,主要有1k10、1k30、1k50、1k100等型号。ep1k30tc144器件中,ep1k表示器件类型,30表示器件内有30k个逻辑门,t代表封装类型,c表示用途为商用,

29、144表示管脚数为144。其引脚图如图4-3所示图4-3 ep1k30tc原理图5、最小系统原理图整个设计用到的模块组成的最小系统原理图如下图5-1所示:图5-1最小系统原理图本设计的电路实现是基于fpga最小系统原理图,再配以所需的外设。最小系统设计包含了时钟产生电路模块、ps程序下载配置电路模块、电源电路模块,右边的是fpga芯片ep1k30tc143器件。通过连线将各个模块进行连接成最小系统。由于本设计电路比较简单,外设比较少。将外设与最小系统进行合理正确连接,即可实现本设计的电路原理要求。图中将各外设模块和芯片电路各对应管脚进行合理正确连接,即可实现本设计的电路原理要求,a,b的输入由

30、程序来实现,在输出端口,可以外接一个示波器,用来检查电路是否输出了脉冲宽度调制信号,以及占空比是否符合要求,用以验证电路的功能。6、软件实现通过至顶向下(top-down)的设计方法,我们对电路的设计要求作了分析,从电路要实现的功能着手,逐层分析电路设计的步骤,再具体到各个模块的设计实现以及各模块实现方案的选择。从本设计的电路要求,通过两个可加载8位计数器lcnt8.v实现本设计。6.1软件设计设计程序如下: a、代码顶层:模块pwm_gn.v/pwm generatormodule pwm_gn(clk,rst_n,a,b,pwmout,ld1,ld2,cao1,cao2); input c

31、lk;/system clock input rst_n;/reset input 7:0 a;/pulse width control input input 7:0 b;/pulse width control input output pwmout; output ld1,ld2,cao1,cao2;/only for observation, can be removed wire cao1; wire cao2; wire ld1; wire ld2; wire pwmout; reg pwmint;/intantiate two loadable 0255 counter lcnt

32、8 u1_lcnt8( .clk(clk), .rst_n(rst_n), .ld(ld1), .d(a), .cao(cao1); lcnt8 u2_lcnt8( .clk(clk), .rst_n(rst_n), .ld(ld2), .d(b), .cao(cao2);/two loadable counter control and reloading controlalways(posedge cao2 or posedge cao1) begin if (cao1=1b1) begin pwmint=1b0; end else if (cao2=1) begin pwmint=1b1

33、; end end assign ld1=!pwmint; assign ld2=pwmint; assign pwmout=pwmint;endmoduleb、8位可加载计数器:lcnt8/8bit loadble increment countermodule lcnt8(clk,rst_n,ld,d,cao); input clk; input ld; input 7:0 d; input rst_n; output cao; reg 7:0 count; reg cao; always(posedge clk ) begin if (!rst_n) begin count=8b0000

34、0000; end else if (ld) begin count=d; end else begin count=count+1b1; end end always(posedge clk) begin if (count=254) begin cao=1b1; end else begin cao=1b0; end endendmodule6.2思考题扩展本设计电路中,脉冲调制信号的占空比由a,b与255的差值决定,扩展电路的实现占空比由a,b的值决定,即高低电平持续时间由a,b来决定,具体电路由两个八位可加载减计数器,d触发器和非门等组成,八位可加载减计数器的程序和仿真图如下:程序:m

35、odule subb(clk,rst_n,ld,d,cao); input clk; input ld; input 7:0 d; input rst_n; output cao; reg 7:0 count; reg cao; always(posedge clk ) begin if (!rst_n) begin count=8b11111111; end else if (ld) begin count=d; end else begin count=count-1b1; end end always(posedge clk) begin if (count=0) begin cao=1

36、b1; end else begin cao=1b0; end endendmodule7、系统仿真及调试7.1仿真通过quartusii软件,我们进行了仿真,其仿真波形如下图所示:图7-1 a=12,b=12的输出波形图7-2 a=136,b=128的输出波形在图7-1中,我们设置a=12,b=12。当lcnt8:u1完成从12到255计数时cao1发生一个脉冲,d触发器清零,变为低电平,lcnt8:u1又从12开始计数;当lcnt8:u2完成从12到255计数时cao2发生一个脉冲,d触发器置数为高电平,lcnt8:u2又开始从12到255计数;如此循环。图7-2将a设置为136,b为12

37、8,因此计数器将从136和128开始计数,从而调节了脉冲的宽度。在quartus i i 6.0软件中利用硬件描述语言描述电路后,用tools/netlist viewers/rtl viewer生成的对应的电路图如下:图7-3 数控脉冲宽度调制信号发生器电路图7.2 调试在quartusii软件中,通过对所设计的硬件描述语言代码进行波形仿真后,达到了预期效果,于是,我们在该软件上进行下载配置设置。在assignments菜单下选中devices,在family栏选择acex1k,选中ep1k30tc144-2器件。再在assignments菜单下选中pins按照相应要求对管脚进行锁定。最后在tools菜单下,选中programmer,对配置方式进行设置,这里选择passive seril(ps)被动串行模式。选择好要下载的硬件设备后点击start即可开始编程下载了。调试过程为在线调试。在通过调试中,我们需要注意很多问题,现归纳如下:(1)在软件上能实现仿真的程序不一定在硬件电路上就

温馨提示

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

评论

0/150

提交评论