数控脉冲宽度调制信号发生器Word格式.docx

上传人:b****5 文档编号:17425362 上传时间:2022-12-01 格式:DOCX 页数:17 大小:238.21KB
下载 相关 举报
数控脉冲宽度调制信号发生器Word格式.docx_第1页
第1页 / 共17页
数控脉冲宽度调制信号发生器Word格式.docx_第2页
第2页 / 共17页
数控脉冲宽度调制信号发生器Word格式.docx_第3页
第3页 / 共17页
数控脉冲宽度调制信号发生器Word格式.docx_第4页
第4页 / 共17页
数控脉冲宽度调制信号发生器Word格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数控脉冲宽度调制信号发生器Word格式.docx

《数控脉冲宽度调制信号发生器Word格式.docx》由会员分享,可在线阅读,更多相关《数控脉冲宽度调制信号发生器Word格式.docx(17页珍藏版)》请在冰豆网上搜索。

数控脉冲宽度调制信号发生器Word格式.docx

2.4方案选择 

7

3、单元模块设计 

8

3.1有源晶振电路 

3.2供电电路 

9

3.3PS配置电路 

10

3.4八位计数器输入电路 

11

3.5D触发器电路 

4、特殊器件的介绍 

12

4.1CPLD器件介绍 

4.2FPGA器件介绍 

4.3EP1K30TC144器件介绍 

13

5、最小系统原理图 

14

6、软件实现 

15

6.1软件设计 

6.2思考题扩展 

17

7、系统仿真及调试 

19

7.1仿真 

7.2调试 

20

8、总结 

22

8.1设计小结 

8.2设计收获 

8.3设计改进 

8.4致谢 

9、参考文献 

23

1.1EDA简介

EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

1.2VerilogHDL简介

VerilogHDL是一种硬件描述语言(HDL:

HardwareDiscriptionLanguage),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。

VerilogHDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。

前者由GatewayDesignAutomation公司(该公司于1989年被Cadence公司收购)开发。

两种HDL均为IEEE标准。

1、3QartusII软件简介

QuartusII是Altera提供的FPGA/CPLD开发集成环境,Altera是世界上最大的可编程逻辑器件供应商之一。

QuartusII在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MAX+PLUSII的更新换代产品,其界面友好,使用便捷。

它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。

Altera的QuartusII提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并为AlteraDSP开发包进行系统模型设计提供了集成组合环境。

QuartusII设计工具完全支持VHDL、Verilog设计流程,其内部嵌有VHDL、Verilog逻辑综合器。

QuartusII也可利用第三方的综合工具。

同样,QuartusII具备仿真功能,同时也支持第三方的仿真工具,如ModelSim。

此外,QuartusII与MATLAB和DSPBuilder结合,可以进行基于FPGA的DSP系统开发和数字通信模块的开发。

QuartusII包括模块化的编译器。

编译器包括的功能模块有分析/综合器(Analsis&

Synthesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(TimingAnalyzer)、设计辅助模块(DesignAssistant)、EDA网表文件生成器(EDA 

NetlistWriter)、编辑数据接口(CompilerDatabaseInterface)等。

可以通过选择StartCompilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。

还可以通过选择CompilerTool(Tools菜单),在CompilerTool窗口中运行该模块来启动编译器模块。

在CompilerTool窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。

此外,QuartusII还包含许多十分有用的LPM(LibraryofParameterizedModules)模块,它们是复杂或高级系统构建的重要组成部分,在SOPC设计中被大量使用,也可以与QuartusII普通设计文件一起使用。

Altera提供的LPM函数均基于Altera器件的结构做了优化设计。

在许多实用情况中,必须使用宏功能模块才可以使用一些Altera特定器件的硬件功能,如各类片上存储器、DSP模块、LVDS驱动器、PLL以及SERDES和DDIO电路模块等。

QuartusII编译器支持的硬件描述语言有VHDL(支持VHDL’87及VHDL’97标准)、VerilogHDL及AHDL(AlteraHDL)。

QuartusII支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与HDL混合输入设计的问题。

在设计输入之后QuartusII的编译器将给出设计输入的错误报告。

可以使用QuartusII带有的RTL 

Viewer观察综合后的RTL图。

QuartusII作为目前CPLD/FPGA开发工具理想的综合、仿真软件,具有许多优良的特性。

(1)继承了MAX+PLUSII的优点

图形输入依然形象,图形符号与MAX+PLUSII一样符合数字电路的特点,大量74系列器件符号使能初学者在较短的时间里利用图形编辑设计出需要的电路。

文本输入几乎和MAX+PLUSII相同,而且在文本的每一行都有行号,使用语言编写的电路清晰易读。

低层编辑仍然采用Chipview方式,引脚排列位置映射了实际器件引脚,只要简单地鼠标拖放即可完成低层编辑。

(2)支持的器件更多

除了支持MAX3000、MAX7000、FLEX6000、FLEX10KE、ACEX1K等MAX+PLUSII已经支持的器件外,还支持PEX20K、APEX20KE、AREXII、EXCALIBUR-ARM、Mercury、Stratix等MAX+PLUSII下无法支持的大容量高性能的器件。

(3)增加了网络编辑功能

QuartusII支持一个工作组环境下的设计要求,包括支持基于Internet的协作设计,与Cadence、ExempiarLogi、mentorgraphics、Synopsys和Synpicity等EDA供应商的开发工具相兼容。

(4)提升了调试能力

QuartusII增加了一个新的快速适配编译选项,可保留最佳性能的设置,加快了编译过程,可缩短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触发器,如此循环。

D触发器输出高电平使u2加载,但持续的高电平维持加载使u2计数状态维持在B,只有当d触发器清除后,u2开始从B的加计数,计到255后产生输出cao2,使D触发器输出为高电平,如此循环。

2.2设计方案比较

方案一:

由单片机AT89S52来实现数控脉冲宽度调制信号发生器的设计,外围电源采用+5V电源供电,时钟由12MHZ的晶振产生,中央处理器由AT89S52单片机来完成,设计中高低电平持续时间由输入A、B与255的差值控制。

这种方案,结构简单容易掌握,各部分电路实现起来都非常容易,在传统的设计中也应用得较为广泛,技术成熟。

其原理框图如下图2-1所示:

图2-1单片原理实现框图

方案二:

基于现场可编程逻辑门阵列FPGA,通过EDA技术,采用VerilogHDL硬件描述语言实现数控脉冲宽度调制信号发生器设计。

程序设计思想为:

对输入信号A、B采用不同的八位二进制代码表示高低电平持续时间,由时钟上沿触发加计数器进行加计数功能,至于计数器u1、u2谁工作取决于其后接的D触发器输出的高低电平状态,低电平使u1工作,高电平使u2工作。

再通过组合逻辑电路输出结果状态。

其原理框图如下图2-2所示:

图2-2数控脉冲宽度调制信号发生器电路控制框图

2.3方案论证

通过方案一二的比较,可以看出方案一的设计使用分立元件电路较为多,因此会增加电路调试难度,且电路的不稳定性也会随之增加,而采用FPGA芯片实现的电路,由于在整体性上较好,在信号的处理和整个系统的控制中,FPGA的方案能大大缩减电路的体积,提高电路的稳定性。

此外其先进的开发工具使整个系统的设计调试周期大大缩短,一般来讲,同样的逻辑,基于FPGA要比基于单片机要快很多,因为它们工作的原理是完全不同的。

单片机是基于指令工作的,同样的激励到达单片机后,单片机首先要判断,然后读取相应的指令,最后作出响应,这每一步都是需要在单片机的时钟驱动下一步步的进行。

而基于FPGA则是把相应的逻辑“暂时”固化为硬件电路了,它对激励作出的响应速度就是电信号从FPGA的一个管脚传播另一个管脚的传播速度,当然这指的是异步逻辑,同时电信号也要在芯片内进行一些栅电容的充放电动作,但这些动作都是非常非常快的。

2.4方案选择

结合现代测量技术的要求和精确,对其各个部件的性能提出了更高的要求,精确度是高于一切的,也是衡量一个器件的标准。

在器件的合理使用和再度利用的考虑下,可编程的逻辑器件是占优势的,而且更方便,低功耗,体积小,结合本设计的要求及综合以上比较的情况,我们选择了基于FPGA的数控脉冲宽度调制信号发生器的方案,即,选择方案二。

本设计由现场可编程门阵列(FPGA)作为控制芯片,通过VreilogHDL硬件描述语言设计,运用自顶而下的设计思想,按功能逐层分割实现层次化的设计。

下面介绍主要模块的功能及作用。

3.1有源晶振电路

有源晶振电路如下图3-1所示:

图3-1有源晶振电路

采用有源晶振作为时钟信号源,有源晶振常用的为4个引脚,1-NC、2-GND、3-OUT、4-VCC,它是一个完整的振荡器,其内部除了石英晶体外还有阻容软件和晶体管,有源晶振信号质量好,比较稳定,而且连接方式比较简单。

主要是作为电源滤波,通常使用的为一个电容和电感组成的PI型滤波网络,输出端使用一个小阻值电阻过滤信号。

串电阻可减小反射波,避免反射波叠加引起过冲,减少谐波以及阻抗匹配,减小回波干扰及导致的信号过冲。

由于本设计所用的为20MHZ的晶振,而20MHz以下的晶体晶振基本上都是基频的器件,稳定度好,20MHz以上的大多是谐波的(如3次谐波、5次谐波等等),稳定度差,因此我们选用基频的器件,毕竟倍频用的PLL电路需要的周边配置主要是电容、电阻、电感,其稳定度和价格方面远远好于晶体晶振器件。

3.2供电电路

供电电路原理图如下图3-2所示:

图3-2供电电路原理图

本设计中使用到了三个电源,第一是+5V的电源,用于为上拉电阻提供电压,该设计中用集成三端稳压器CW7805来得到,输入电压经降压,整流,滤波,稳压后得到+5V的电压供本设计使用;

第二是+3.3V电源,用于为FPGA芯片提供工作电压,本设计中电源芯MIC29302来得到3.3V输入输出引脚工作电压;

第三是+2.5V电源,用于为FPGA芯片内核工作提供电压,本设计中电源芯片SPX1117M来得到+2.5V芯片工作的内核电压。

在FPGA芯片管脚上,+2.5V电源必须接在内核电源输入端(VCCINT)上,而VCCIO是芯片输入输出引脚工作电源,根据输入输出的设备不同,可以接2.5V、3.3V或5.0V。

特别注意的是EPC1PC8的工作电压必须为3.3V,且该配置芯片属于FlashMemory闪存)器件,具有可擦写的功能。

3.3PS配置电路

配置电路如下图3-3所示:

图3-3配置电路原理图

配置电路采用被动串行(PS)模式,为了利用ByteBlasterMV下载电缆配置EP1K30TC144器件,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-48位计数器件原理图

此试验选用的是8位的计数器进行加计数功能,从0加到255。

计数器是数字系统中用的较多的基本逻辑器件,它的基本功能是统计时钟脉冲的个数,即实现计数操作,它也可用与分频、定时、产生节拍脉冲和脉冲序列等。

例如,计算机中的时序发生器、分频器、指令计数器等都要使用计数器。

计数器的种类很多。

按构成计数器中的各触发器是否使用一个时钟脉冲源来分,可分为同步计数器和异步计数器;

按进位体制的不同,可分为二进制计数器、十进制计数器和任意进制计数器;

按计数过程中数字增减趋势的不同,可分为加法计数器、减法计数器和可逆计数器;

还有可预制数和可编计数器等等。

3.5D触发器电路

D触发器的原理图如下图3-5所示:

图3-5D触发器件原理图

D触发器的输入端由时钟信号端clk、数据信号端、反相复位端CLRN和反相置位端PRN组成,CLRN、PRN控制信号分别从方框小圆圈处输入,表示低电平控制信号有效。

D触发器输出端由两个互为反相的Q端和~Q端组成。

D触发器的D代表延迟或数据,它的输出是发生在早于一个时钟脉冲之前的D输入的函数。

在时钟脉冲期间,在D输入提供“1”会导致输出变为1,否则输出变为0。

4、特殊器件的介绍

4.1CPLD器件介绍

CPLD是ComplexProgrammableLogicDevice的缩写,它是有最早的PLD器件发展形成的高密度可编程逻辑器件,它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点。

CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。

其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。

许多公司都开发出了CPLD可编程逻辑器件。

比较典型的就是Altera、Lattice、Xilinx世界三大权威公司的产品。

如Altera公司的MAXII器件,就是其极具代表性的一类CPLD器件,是有史以来功耗最低、成本最低的CPLD。

MAXIICPLD基于突破性的体系结构,在所有CPLD系列中,其单位I/O引脚的功耗和成本都是最低的。

Altera公司的MAX7000A系列器件是高密度、高性能的EPLD,它是基于第二代MAX结构,采用CMOSEPROM工艺制造的。

该系列的器件具有一定得典型性,其他结构都与此结构非常的类似。

它包括逻辑阵列块、宏单元、扩展乘积项、可编程连线阵列和IO控制部分。

由于大多数CPLD是基于乘积项的“与或”结构,故适合设计组合逻辑电路。

4.2FPGA器件介绍

FPGA(Field-ProgrammableGateArray)可以达到比PLD更高的集成度,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展起来的,具有更复杂的布线结构和逻辑实现。

PLD器件和FPGA的主要区别在于PLD是通过修改具有固定内连电路得逻辑功能来进行编程,而FPGA是通过修改一根或多根分割宏单元的基本功能块的内连线的布线来进行编程。

它一般由可嵌入式阵列块(EAB)、逻辑阵列块(LAB)、快速互联通道(FastTrack)、IO单元(IOE)组成。

AlteraCycloneII采用全铜层、低K值、1.2伏SRAM工艺设计,裸片尺寸被尽可能最小的优化。

采用300毫米晶圆,以TSMC成功的90nm工艺技术为基础,CycloneII器件提供了4,608到68,416个逻辑单元(LE),并具有一整套最佳的功能,包括嵌入式18比特x18比特乘法器、专用外部存储器接口电路、4kbit嵌入式存储器块、锁相环(PLL)和高速差分I/O能力。

CycloneII器件扩展了FPGA在成本敏感性、大批量应用领域的影响力,延续了第一代Cyclone器件系列的成功。

由于FPGA是基于查找表(LUT)结构的器件,且每个LAB由10个LE组成,一个LE由LUT和寄存器组成,适合于时序逻辑电路的设计。

4.3EP1K30TC144器件介绍

ACEX1K器件是Altera公司在2000推出的2.5V低价格SRAM工艺FPGA结构与10KE类似,带嵌入式存储块(EAB),部分型号带PLL,主要有1K10、1K30、1K50、1K100等型号。

EP1K30TC144器件中,EP1K表示器件类型,30表示器件内有30K个逻辑门,T代表封装类型,C表示用途为商用,144表示管脚数为144。

其引脚图如图4-3所示

图4-3EP1K30TC原理图

5、最小系统原理图

整个设计用到的模块组成的最小系统原理图如下图5-1所示:

图5-1最小系统原理图

本设计的电路实现是基于FPGA最小系统原理图,再配以所需的外设。

最小系统设计包含了时钟产生电路模块、PS程序下载配置电路模块、电源电路模块,右边的是FPGA芯片EP1K30TC143器件。

通过连线将各个模块进行连接成最小系统。

由于本设计电路比较简单,外设比较少。

将外设与最小系统进行合理正确连接,即可实现本设计的电路原理要求。

图中将各外设模块和芯片电路各对应管脚进行合理正确连接,即可实现本设计的电路原理要求,A,B的输入由程序来实现,在输出端口,可以外接一个示波器,用来检查电路是否输出了脉冲宽度调制信号,以及占空比是否符合要求,用以验证电路的功能。

6、软件实现

通过至顶向下(TOP--DOWN)的设计方法,我们对电路的设计要求作了分析,从电路要实现的功能着手,逐层分析电路设计的步骤,再具体到各个模块的设计实现以及各模块实现方案的选择。

从本设计的电路要求,通过两个可加载8位计数器lcnt8.v实现本设计。

6.1软件设计

设计程序如下:

A、代码顶层:

模块pwm_gn.v

//PWMgenerator

modulepwm_gn(clk,rst_n,a,b,pwmout,ld1,ld2,cao1,cao2);

inputclk;

//systemclock

inputrst_n;

//reset

input[7:

0]a;

//pulsewidthcontrolinput

0]b;

outputpwmout;

outputld1,ld2,cao1,cao2;

//onlyforobservation,canberemoved

wirecao1;

wirecao2;

wireld1;

wireld2;

wirepwmout;

regpwmint;

//intantiatetwoloadable0~255counter

lcnt8u1_lcnt8(

.clk(clk),

.rst_n(rst_n),

.ld(ld1),

.d(a),

.cao(cao1));

lcnt8u2_lcnt8(

.ld(ld2),

.d(b),

.cao(cao2));

//twoloadablecountercontrolandreloadingcontrol

always@(posedgecao2orposedgecao1)

begin

if(cao1==1'

b1)begin

pwmint<

=1'

b0;

end

else

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

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1