基于FPGA的直流电机伺服系统的设计与实现.doc_第1页
基于FPGA的直流电机伺服系统的设计与实现.doc_第2页
基于FPGA的直流电机伺服系统的设计与实现.doc_第3页
基于FPGA的直流电机伺服系统的设计与实现.doc_第4页
基于FPGA的直流电机伺服系统的设计与实现.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

摘要直流电机由于其响应速度快、精度高、效率高、调速范围宽、负载能力强、控制性能好等特点,使其得到广泛的应用。现在社会随着EDA技术的不断发展,实现电机数字控制的方法也随之发生创新,基于FPGA(现场可编程门阵列)的电子控制系统来对直流电机进行伺服控制也是众多方法中的一种。本设计以FPGA现场可编程逻辑器件做为中央控制器件,对信号进行处理,速度快,可靠性高;并以AD1674为数据采集系统的核心部件;硬件驱动电路采用大功率MOSFET管所构成的单极可逆H桥电路,并采用PWM方式驱动电路。设计采用前、反馈复合算法,使用VHDL语言编程。设计采用三环控制原理,既对位置环、速度环、电流环进行控制,从而使得电流的静态跟动态性能都得到提高。本设计用Quartus II对直流电机伺服系统的各个环节进行程序的编写与仿真。论文中给出了各个模块的VHDL代码,以及这些模块相对应的时序仿真。本设计主要以用Quartus II软件进行编程与仿真为主。关键字:直流电机,伺服控制,VHDL,FPPGA,PWM AbstractDc motor to be used widely because of high speed, high accuracy, high efficiency, wide range of speed , load ability, good control performance and other characteristics, widely used. Now society as EDA the development of technology, digital control method of realization motor has been changed innovation, based on FPGA (field programmable gates array) of electronic control system of dc motor servo to control is also one of the many methods.This design with FPGA field programmable logic devices as the central control device, the signal processing, speed and reliability; And with AD1674 of data collection system for core components; Hardware circuit adopts high power MOSFET tube drivers made of a unipolar reversible H bridge circuit, drive circuit and using PWM way. Design the previous, feedback composite algorithm, the use of VHDL language programming. Design USES three-loop control principle, not only the position loop, speed loop, current loop control, so that the current static dynamic performance with are improved.This design with qartus II to dc motor servo system every link of the programs to write and simulation. Paper gives each module of VHDL code, and the corresponding simulation of the succession of the module.This design mainly use quartus ii software programming and simulation.KEYS: Dc motor,servo-control , VHDL , FPGA , PWM目录摘要2Abstract3第一章 引言51.1 伺服系统的概念51.1.1 伺服系统的发展历史51.1.2 伺服系统的发展趋势51.2 电机控制的发展概况51.3 电机控制器的发展61.4 功率半导体器件的发展6第二章 系统控制原理72.1 PWM控制原理(Pulse Width Modulation)72.2 控制原理8第三章 算法的设计93.1 前馈算法设计93.2 反馈算法设计103.2.1 PI算法原理103.2.2 模糊算法原理11第四章 系统硬件结构概况134.1 硬件电路结构134.2 驱动电路134.3 FPGA控制电路144.4 隔离电路144.5 调理电路模块15第五章 系统软件设计原理165.1 VHDL语言的简介165.1.1 VHDL 的全称165.1.2 VHDL 语言的特点:165.2 Quartus II 简介175.2.1 Quartus II 的特点175.2.2 Quartus II 对第三方EDA工具的支持175.3 软件框图组成185.4 软件系统主要控制模块205.4.1 ADC0809控制模块205.4.2 AD1674控制模块235.4.3 前馈控制模块时序仿真图265.4.4 反馈控制模块的时序仿真图275.4.5 PWM波生成模块305.4.6 过流模块325.4.7两个分频模块的VHDL代码:335.4.8前馈和反馈求和模块35第六章 结论及展望37参考文献38致谢39 第一章 引言1.1 伺服系统的概念伺服系统是用来准确的跟随或复现某个特定过程的反馈控制系统,又被称为随动系统。在大多情况下,伺服系统专指系统的输出量是机械位移、位移速度或是加速度的反馈控制系统,它的用是使输出的机械位移(转角)准确的跟踪输入的位移(转角) 【3】。1.1.1 伺服系统的发展历史伺服系统从最早的液压,气动到现在的电气化。由伺服电机与控制器及反馈装置组成的伺服系统已经走过了50多年。1.1.2 伺服系统的发展趋势伺服系统的发展趋势即向大功率,高速度,高精度的方向进行发展。即伺服系统的发展要充分利用计算机技术和电子技术,采用数字式伺服系统,通过利用微机来实现调节控制,增强其软件控制功能,排除各种因素的影响,由此可以大大提高伺服系统的性能。1.2 电机控制的发展概况自电机诞生以来,电机作为一种机械能与电能转换的装置,它已经被广泛的应用与各个领域中。近些年来,随着电力电子技术,计算机技术以及控制技术的发展,电机的应用得到了进一步的发展。实际上电机从简单的提供动力的装置,发展成为对速度,转矩,位置等方面进行精确的控制。这已经不算是传统意义上的电机控制,而上升为一种运动控制。因此现在的电机控制技术已经离不开功率器件以及电机控制器的发展。1.3 电机控制器的发展电机的控制器经历了由模拟到数字控制器的发展,其中早期的模拟控制器受外界环境影响较大,控制精度不高,跟现在的数字控制器比较起来相差比较大,数字控制器可靠性能高并且在调整参数的时候比较的方便,能够灵活的更改控制策略,对外界环境所造成的影响不敏感,并且控制精度还高。随着时代的发展,传统的8位单片机由于内部结构等条件的制约,在实现先进的电机控制理论时遇到了困难。随着EDA技术的诞生于不断地发展,用基于FPGA(现场可编程门阵列)的电子系统对电机进行控制,为电机控制的数字化提供了一种新的方法,并将以前大模块电路板式的产品集成为微型芯片级的产品。以此降低了功耗,提高了可靠性。1.4 功率半导体器件的发展随着电力电子技术的迅猛发展以及功率半导体器件的发展对电机的控制的发展影响很大。从50年的硅晶闸管问世以来,60年代的可关断晶闸管GTO到70年代中期的功率MOSFET问世,再到80年代的绝缘栅双极型晶体管IGBT的问世,功率半导体器件可谓发展飞速。数字控制技术用于功率器件的控制有这两方面的有点:(1) 可严格控制最小关断时间和最小开通时间。(2) 可严格控制死区时间。 第二章 系统控制原理2.1 PWM控制原理(Pulse Width Modulation)PWM简称为脉宽调制,他是一种利用微处理器数字输出来对模拟电路控制的一种非常有效的技术。这种技术被广泛的应用的很多不同的行业,比如:通信方面,功率控制及功率变换等。它是一种模拟控制方式,随着相应载荷的变化来调晶体管基极的偏置或栅极的偏置,以此来改变开关稳压电源输出晶体管或者晶体管的导通时间,它能使电源的输出电压在工作条件不断变化时保持恒定不变。它是一种对模拟电平信号进行数字式编码的方式,通过使用高分辨率的计数器,方波的占空比被调制,用来对一个具体的模拟的电平信号进行编码。PWM信号是一种数字信号,因为在系统给定的任何时刻,满幅值的直流供电要么为ON,要么为OFF。电压及电流源是以一种以通或断的重复脉冲序列的方式被加到模拟负载上去的,当状态为通的时候直流供电被加到负载上,断的时候直流供电被断开。所以只要带宽足够,任何模拟值都可以使用PWM方式进行编码。在对直流电动机的电枢电压控制及驱动中,在对半导体功率器件的使用上可分为两种方式:(1)线性放大驱动方式;(2)开关驱动方式。其中第一种驱动方式是使半导体功率器件工作在线性区内。这种驱动方式的优点是:控制原理较为简单,输出波动较小,线性比较好,对邻近的电路干扰不大;但是存在的问题是功率器件在线性区工作时会将大部分电功率用在器件所产生的热量,散热以及效率等问题较为严重,因此这种驱动方式只用于对那些较小功率直流电机的驱动。大部分的直流电机都是采用第二种驱动方式,通过PWM来控制电枢电压,实现速度调节。DiOUst2t1TtUiOUiViUoOUs直流电动机tOUo图2.1 PWM控制电路图图2.2 输入输出电压图 PWM 控制原理图 PWM输入输出电压图 在图2.1中,当MOSFET的栅极的输入电压为高电平时,MOSFET导通。在图2.2中直流电机两端的电压Us,等t1秒后,栅极的电压变成低电平,即MOSFET截止,电动机两端的电枢电压为零,t2秒过后,栅极端电压变成高电压,至此MOSFET重复前面的过程。 = -(2.1-1)式2.1-1中:为电动机电枢绕组两端的平均电压;为占空比。由此可见当不变时,的大小取决于的大小,因而只要改变的大小即可改变端电压的平均值达到我们所要的调速的目的,这种原理就是PWM的调速原理。2.2 控制原理控制系统采用三环控制原理,即由位置环,速度环,电流环构成。Tz-+-+位置调节器速度调节器电流调节器Cr图2.3 三环控制的原理图图2.3中位置环是系统主控制环,它实现对位置的控制;速度环具有抑制电机速度波动的作用,它增强了系统的抗扰动的能力;再者就是电流环,它能够及时的限制电机的最大电流,能达到保护电机的作用。三环相互结合,保证了系统的静态精度和动态特性,使系统的工作状态平稳而可靠。第三章 算法的设计3.1 前馈算法设计引入前馈算法是因为前馈算法能够有效的提高系统对输入信号的响应速度,也能够消除部分因积分而滞后的影响,使系统能迅速的消除偏差,并提高系统的带宽。根据不变性的原理特点可得下式:-(3.1-1)将式3.1-1进行离散化得到,差分方程:; -(3.1-2)在式3.1-2中根据前馈控制原理: 一次偏差: = ; -(3.1-3)二次偏差: = ; -(3.1-4) 其中: ; ;3.2 反馈算法设计反馈控制采用的是模糊PI算法,在大范围内使用模糊控制原理,来提高系统的动态响应的速度;而在小范围中采用PI控制原理,以提高系统的控制精度,通告调节各项参数,来使系统达到控制精度高,响应速度快。3.2.1 PI算法原理P(比例环节):按一定比例系数来反应控制系统所产生的偏差信号,其中一旦有偏差产生,控制器就会产生控制的作用,以此来减小偏差的大小。I(积分环节):积分环节主要是用于消除静差,来提高系统的性能。PI的控制规律:; - (3.2-1)在式3.2-1中:-比例系数; -积分时间常数。采用微处理器,需要引入数字PI控制规律进行控制,即是用一系列采样的时刻点KT代表连续的时间T,以矩形法进行数值积分近似代替积分环节,即可得其离散PID表达式: -(3.2-2) ; -(3.2-3)在3.2-3中:T是采样的周期;K为采样序号。3.2.2 模糊算法原理经典模糊控制是由模糊控制器和控制对象组成。其中模糊控制器是由模糊化过程,知识库,模糊推理以及清晰化计算四部分组成,它是一种反映人类智慧思维却不需要知道被控对象的精确数学模型的智能控制。无论被控对象是线性还是非线性的,模糊控制器都能对其执行有效的控制,它具有很好的适应性和鲁棒性。模糊算法中采用双输入,单输出的方式。指的是星号的差值跟差值的变化率这两个来作为模糊控制的输入量,单输出这是PWM波的控制信号。本设计中去位移误差E跟位移误差变化率Ec作为模糊控制系统的输入量。参数自整定模糊控制器是利用E,Ec,PWM控制信号的各自的系数Ke,Kec,Kw,这三个系数对系统的性能影响不同。根据不同的误差范围对Ke,Kec,Kw进行调整。当误差大时,Ke占的比重就大些,能够快速的消除误差;当误差小时,Kec占的比重就大,能够减小超调尽快的实现系统稳定;而Kw则类似于系统的中的放大倍数,通过调节这三个系数来优化系统。以下为具体的实现步骤:(1):对输入和输出值进行分配第一个输入:位置误差E设定量化论域E=-10, ,10,模糊语言子集E为NB(负大)、NM(负中)、NS(负小)、ZE(零)、PS(正小)、PM(正中)、PB(正大)。第二个输入:位移误差变化量设定量化论域EC=-1,0,1, EC模糊语言子集取N (负)、ZE (零)、P(正)。输出:PWM波控制信号设定量化论域U=-10, ,10,模糊语言子集也为NB(负大)、NM(负中)、NS(负小)、ZE(零)、PS(正小)、PM(正中)、PB(正大)。(2):模糊控制规则表:模糊控制规则EEcNBNMNSZEPSPMPBNNBNBNMNSZEPMPBZENBNBNSZEPSPBPBPNBNMZEPSPMPBPB(3):模糊控制表的编制1),求总的模糊关系2),制备模糊编制表(4):模糊量跟确定量之间的转换要对系统实现有效的控制就需要有个准确的清晰量,这个时候就需要对模糊量进行去模糊化的操作。第四章 系统硬件结构概况因为本设计对硬件电路设计要求比较低,主要做软件功能实现及时序仿真,所以在此附上少量的硬件电路设计模块来加强对系统的了解。4.1 硬件电路结构伺服电机的硬件电路主要由FPGA控制器,驱动电路,数据采集电路,过流保护电路以及隔离电路等模块组成,并且各个模块在FPGA(现场可编程门阵列)的一致控制下协调的工作。图4.1 为整个硬件系统的结构图。FPGA指令信号指令信号数据采集器AD1674AD1674ADC0809 系统控制器隔离电路驱动电路执行机构被控对象位置检测传感器电流检测传感器图4.1 整个硬件系统的结构图4.2 驱动电路在本设计中驱动电路采用的是单极可逆式驱动电路并有MOSFET构成H桥来控制电机的正反转。此中采用单极受限式的PWM波控制两组NMOS跟PMOS互补电路来驱动直流电机并分别驱动电机的正和反转。当其中的一组MOSFET工作时,另一组MOSFET截止。而且只有当电机换向时才会有两组MOSFET同时导通的问题,这个问题就是PWM波的死区问题,所以来适当的调节死区,从而来避免可能因两组MOSFET同时导通而导致的过流情况。4.3 FPGA控制电路本设计中采用的是EPF10K10LC84-4,它是ALTERA公司的FLEX10K系列中的一种。FLEX10K是工业界中诞生的第一个嵌入式可编程逻辑器件。它采用可重构的CMOS SRAM工艺,在其中把连续的快速通道互相连接与独特的嵌入式相结合。在其内部有10W门级电路,课实现复杂的数据运算跟逻辑运算。在FLEX10K系列器件中,主要是由逻辑阵块,嵌入式阵块,I/O单元及快速通道互连这四个部分构成的。4.4 隔离电路由于直流电机驱动部分对控制那部分的电路存在干扰,可以采用光电隔离式电路来对系统电路进行隔离,以此来提高系统的稳定性。本设计使用光耦6N173实现隔离作用。图4.2中PWM1,PWM2,PWM3,PWM4 是FPGA生成的PWM信号经过电平变换之后的输入信号。PWM2+5PWM1R12390R11390R10390R939087652341876512348765123487651234330R6PWM4PWM3Nc VccLED+ ENLED- OUTNC GNDNc VccLED+ ENLED- OUTNC GNDNc VccLED+ ENLED- OUTNC GND330R6330R6330R6Nc VccLED+ ENLED- OUTNC GND图4.2 隔离电路原理图4.5 调理电路模块在PWM波加到驱动电路上时,需要对其进行调整,即需要调理电路来进行调整,来使它适合后面的驱动电路的要求。光耦隔离后的信号经过调理电路后,作为驱动电路MOSFET的栅极驱动电压。第五章 系统软件设计原理5.1 VHDL语言的简介5.1.1 VHDL 的全称它的全称(Very-High-Speed Integrated Circuit Hardware Description Language)始于1982年。5.1.2 VHDL 语言的特点:(1)VHDL 语言功能强大,设计方式多样它具有很强大的语言结构,只需用简单的VHDL语言程序就可以描述很复杂的硬件电路功能。同时,它还有多层次电路设计及电路描述功能。VHDL 语言能够同时支持同步、异步和随机电路的设计与实现,这是其他硬件描述语言所无法比拟的。它的设计方法灵活多变,既支持由顶向下的设计模式,也支持由底向上的设计模式,同时并兼模块化及层次化设计方法。(2)VHDL 语言含有强大的硬件描述功能它具有多层次电路设计及描述功能,既可描述系统级电路,同时也可以描述门级电路。它还支持惯性及传输延迟,这样能准确地建立硬件电路的模型。它的强大描述能力还体现在其具有丰富的数据类型,它不仅支持标准定义的数据类型,还支持用户自定义的数据类型,这样会给硬件的描述带来很大的自由性。(3) VHDL 语言有强大的可移植能力它的可移植性主要体现在: 对于具有同一个硬件电路系统而言,它的相同部分的代码可以从一个模拟器移到另一个上、从一个综合器移到另一个上或从一个工作平台移到另一个上去执行。(4) VHDL 语言的设计描述与器件无关采用它描述硬件电路时,设计人员不需要先选择进行设计的器件,这样做可以使设计人员集中精力进行电路设计的优化,不需要考虑别的问题,当硬件电路的设计描述完成之后,它允许采用多种不同的器件来实现。(5) VHDL 语言程序便于复用与共享它是基于库library的设计方法,在设计时设计人员可以建立多个可重复利用的模块。一个大规模硬件电路的设计,不可能从一个个门级电路开始进行设计,而是一些不同模块的累加。这些模块可以是预先设计好的,也可以使用以前设计中的模块,将这些常用的模块存放在库中,就可以在以后的设计中进行重复使用。由于它是一个描述、优化、综合、模拟及布线的标准的硬件描述语言,因此它可以使设计者的设计成果在不同的设计人员之间方便的进行共享,以此减小硬件电路设计的工作量。5.2 Quartus II 简介它是Altera公司的综合性PLD开发软件,它支持原理图,VHDL,VerilogHDL及AHDL等多种设计输入形式,自带综合器和时序仿真器。它可以完成设计输入到硬件配置的完整的PLD设计流程。5.2.1 Quartus II 的特点它具有友好的用户界面,便捷的使用方式,强大的功能,是一个完全集成化的可编程逻辑的设计环境,是一款先进的EDA工具软件。它可以在多个系统上使用例如XP和LINUXL,除了可以使用TCL脚本完成设计流程以外,它还提供给用户完善的用户图形界面设计模式。5.2.2 Quartus II 对第三方EDA工具的支持它对第三方EDA工具的支持能更便于用户在设计时使用自己熟悉的第三方EDA工具。Altera的Quartus II是属于第四代PLD开发平台的可编程逻辑软件。它支持一个工作组环境下的设计要求。Quartus 与Synopsys、Cadence、Synplicity等EDA的开发工具相兼容。增加了FastFit编辑选项,推进了网络的编辑性能并且提升了调试能力。5.3 软件框图组成否否否是是否是否是是开始控制ADC0809进行转换控制AD1674进行转换 进行数字滤波电机是否过流误差是否1V是否溢出PI控制模糊控制计算前馈量与反馈量之和是否溢出对溢出数据归类判断电机正、反转,产生PWM波控制信号输出返回对溢出数据进行归类反馈误差及计算指令控制AD1674进行转换计算机指令二次差值计算机前馈控制量计算机指令一次差值是否溢出误差滤波生成PWM波屏蔽信号生成PWM波使能信号对溢出数据进行归类图5.1 系统的软件框图图5.2是用Quartus II软件绘制出整体软件原理图。图 5.2 系统的整体软件设计原理图5.4 软件系统主要控制模块在FPGA中,采用VHDL语言进行编程。VHDL是一种采取自上而下设计方法的语言,我们利用其优秀的EDA平台的通用性及优秀的可移植性和具有硬件结构无关性等等的特点,来实现系统的软件模块设计。5.4.1 ADC0809控制模块FPGA中使用的是一种Moore型的有限状态机,产生时序对ADC0809的模数装换进行控制,以此来完成对电流量的采样。图5.3为软件设计中ADC0809控制模块电路器件图。图5.3 ADC0809控制模块电路器件图ADC0809代码:library ieee;use ieee.std_logic_1164.all;entity adc0809ctrl is port(D:in std_logic_vector(7 downto 0); -8位输入信号;clk,eoc:in std_logic; -状态机时钟和状态信号;ale,start,oe:out std_logic; -ADC0809控制信号;clkn:out std_logic; -内部锁存信号LOCK的测试端;q:out std_logic_vector(7 downto 0); -锁存数据输出;end entity adc0809ctrl;architecture one of adc0809ctrl istype states is (st0,st1,st2,st3,st4,st5,st6);signal current_ state , next_state:states := st0;-状态机转换及信号控制进程;signal reg1:std_logic_vector(7 downto 0);signal lock:std_logic; -转换后数据输出锁存时钟信号;beginpro : process( current_state , eoc) -状态转换及信号控制进程;begincase current_state iswhen st0=ale=0 ; start=0 ; oe=0 ; lock=0 ; clkn=0;next_state ale=1; start=0 ; oe=0 ; lock=0 ; clkn=0;next_state ale =0; start=1; oe=0 ; lock=0; clkn=0;-数据采样;next_state ale =0; start=0; oe=0; lock=0 ; clkn=0;if eoc=1 then next_state = st3 ; -EOC=1表示转换结束;else next_state ale=0; start=0; oe=0; lock=0; clkn=1;if eoc=0 then next_state = st4 ; -输出有效;else next_state ale =0; start=0 ; oe=1 ; lock=0 ; clkn=1;-锁存数据;next_state ale =0 ; start=0 ; oe=1 ; lock=1 ; clkn=1 ;next_state ale=0;start=0; oe=0; lock=0; clkn=0;next_state = st0 ; -其他状态返回初始状态;end case ;end process pro ;con:process( clk ) -时序进程;beginif clkevent and clk=1 thencurrent_state = next_state ; -状态转换;end if;end process con;-由信号current_state将当前状态值带出此进程output:process( lock ) -数据锁存器进程;beginif lock=1 and lockevent thenreg1 = D; -数据输出;end if;end process output;q = reg1;end one ;先输入地址且使ale=1,这时将地址存入地址锁存器中,这个地址译码选通8路模拟输入中的一个到比较器,START为上升沿将逐次逼近寄存器复位;为下降沿时启动 A/D转换,之后eoc输出信号变低,这时转换正在进行;直到A/D转换完成后,EOC变为高电平A/D转换结束,结果数据存入锁存器,且这个信号可用作中断申请,当OE输入为高电平时输出三态门打开。转换后的数字量输出到数据总线上。 图5.4中D为8位输入信号,q为8为输出信号。当ale信号为高,允许地址锁存,eoc为高时为转换结束等待转换时间,oe为高允许输出,有图5.4可知,功能实现,仿真成功。图5.4 ADC0809的控制仿真波形图5.4.2 AD1674控制模块FPGA中使用的是Moore型有限状态机,产生的时序来控制AD1674的模数转换,以此来完成对位置跟前馈量的同步采样。这也充分的利用了现场可编程门阵列(FPGA)的快速性,使得用在模数转换上的时间只相当于AD1674进行的转换所用的时间。图5.5为AD1674的控制流程图。图5.6是软件设计中AD1674控制模块电路器件图。是否开始对AD1674初始化开片选并启动12位转换是否转化完毕数据锁存数据输出图5.5 AD1674的控制流程图图5.6 AD1674控制模块电路器件图AD1674 的VHDL代码:library ieee ;use ieee.std_logic_1164.all;entity AD1674 isport( D:in std_logic_vector(11 downto 0);clk:in std_logic ; -状态机时钟;status:in std_logic ; -AD1674状态信号;clkn:out std_logic ; -内部锁存信号LOCK的测试端;cs, a0, rc, k12x8:out std_logic ;-AD1674控制信号;q:out std_logic_vector(11 downto 0) ;-锁存数据输出; end entity AD1674; architecture one of AD1674 istype states is(st0,st1,st2,st3,st4) ;signal current_state , next_state:states:=st0 ; -状态转换及信号控制过程;signal reg1:std_logic_vector(11 downto 0) ;signal lock:std_logic ;begink12x8 = 1 ;clkn cs =1 ; a0=1 ; rc=1 ; lock=0 ; clkn=0 ; -初始化;next_state cs =0 ; a0=0 ; rc=0 ; lock=0 ; clkn=0 ;-启动12位转换;next_state cs =0 ; a0=0 ; rc=0 ; lock=0 ; clkn=0 ;-等待转换;if status=1 then next_state=st2 ;else next_state cs =0 ; a0=0 ; rc=1 ; lock=0 ; clkn=1 ;-12位并行输出有效;next_state cs =0 ; a0=0 ; rc=1 ; lock=1 ; clkn=1;-锁存数据;next_state next_state = st0 ; -其他状态返回初始状态;end case ;end process pro;con:process( clk ) -时序进程;beginif clkevent and clk=1 thencurrent_state = next_state ; -状态转换;end if ;end process con ;output:process( lock ) -数据锁存器进程; beginif lock=1 and lockevent thenreg1 = D ;end if ; end process output ;q = reg1 ;-数据输出;end one;在q宽度为1us的低电平脉冲使rc的转换有效,a0及cs可在AD转换前有效,当读取转换后数据AD的使能信号启动数据读,这时rc=1即rc有效开始12位数据读取,当a0=0的时候读取高八位,当a0=1的时候读取低四位,读取完后a0=0,这时准备下一次的AD转换。图5.7为系统中AD1674的时序仿真图。图5.7 AD1674的时序仿真图5.4.3 前馈控制模块时序仿真图图5.8 前馈控制模块电路器件图图5.8为软件设计中前馈控制模块的电路器件图。前馈控制的VHDL代码:Library ieee ;Use ieee.std_logic_1164.all ;Use ieee.std_logic_unsigned.all ;Use ieee.std_logic_arith.all ;Entity qiankuictrl isport(input:in std_logic_vector(11 downto 0) ; -输入信号; clk:in std_logic; -时钟信号; output:out std_logic_vector(7 downto 0) ; -输出信号; end entity qiankuictrl ;architecture one of qiankuictrl is signal reg1:std_logic_vector(11 downto 0) ;signal reg2:std_logic_vector(11 downto 0) ;signal reg3:std_logic_vector(11 downto 0) ; -自定义信号量;beginprocess( clk, reg3)begin if clkevent and clk=1 thenreg1 = input ; -第一次输入量保存;reg2 = reg1 ;-第二次输入量保存;reg3 = input + reg2 - reg1 - reg1;-三次输入量做运算;end if ;output qinput then -如果反

温馨提示

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

评论

0/150

提交评论