步进电机角度控制系统的VHDL设计2003.doc

步进电机角度控制系统的VHDL设计2003

步进电机角度控制系统的VHDL设计 20世纪80年代后期,美国国防部开发的VHDL语言(VHSIC硬件描写语言,VHSIC是非常高度迅速综合的电路的缩写)是IEEE标准化的硬件描述语言,并且已经成为系统描述的国际公认标准,得到众多EDA公司的支持。其设计描述可以是描述电路具体组成的结构描述,也可以是描述电路功能的行为描述.这些描述可以从最抽象的系统级直到最精确的逻辑级,甚至门级。 传统的电子设计技术通常是自底向上的,即首先确定构成系统的最底层的电路模块或元器件的结构和功能,然后根据主系统的功能要求,将它们组合成更大的功能块,使它们的结构和功能满足高层系统的要求[10]。以此流程,逐步向上递推,直至完成整个目标系统设计。 而在“自顶向下”的设计中,首先需要进行行为设计。接着进行结构设计,根据该电子系统或芯片的特点,将其分解为接口清晰、相互关系明确、尽可能简单的子系统,得到一个总体结构。下一步是把结构转换成逻辑图,即进行逻辑设计。接着进行电路设计,逻辑图将进一步转化成电路图。在很多情况下,这时需进行硬件仿真,以最终确定逻辑设计的正确性。最后是进行版图设计,即将电路图转化成版图。 在本设计中采用的是自顶向下的设计方法,首先从系统功能设计开始,对系统高层模块进行行为描述和功能仿真.系统的功能验证完成后,将抽象的高层设计自顶向下逐级细化,直到与所用可编程逻辑器件相对应的逻辑描述。 在本设计中,具有4个模块: 1)单步运行模块:控制步进电机单步运行。实现的方式就是当按下单步运行按键时步进电机就转动一个角度,按两下转动两个角度,简明的说就按几下单步运行按键步进电机就转动几个角度。 2)角度定位控制模块:控制步进电机的角度,就是当你需要它转几个角度时,通过此程序能实现它就转几个角度。 3)正、反转控制模块:实现步进电机的能朝两个方向的运行。 4)转速控制模块:对步进电机运行快、慢的控制。 下面具体介绍各个部分的设计。 3.1单步运行模块 实体图 图3-1 单步运行实体图 danbu :控制单步运行的,当按下此键时,步进电机电机就转一步,不按时就停止不转。 clk :脉冲信号。 phase[3..0]:输出信号。 (2)单步运行的VHDL设计 为了实现步进电机的单步运行的要求,CPLD要能够产生一种信号,例如当danbu为‘1’时产生phase(3)→phase(2)→phase(1)→phase(0)依次为高电平之后使输出信号为零,当danbu 再次为‘1’时才产生信号。也就是当按下danbu键时,步进电机就转一个角度;反之,步进电机就停止不转。主要程序如下: ...... architecture arc1 of danbu is type states is (s0,s1,s2,s3,s4);--中间变量的定义 signal current_state:states; begin process(clk) begin if clkevent and clk=1 then if danbu=1 then current_state=s0; --当danbu=’1’时将s0赋值给current_state else case current_state is when s0= current_state=s1; when s1 = current_state =s2; when s2 = current_state =s3; when s3 = current_state =s4; when others = current_state =s4; end case; end if; end if; end process; process(current_state) begin case current_state is --给步进电机所需的脉冲信号 when s0= phase=0001; when s1= phase=0010; when s2= phase=0100; when s3= phase=1000; when s4= phase=0000; end case; end process; en

文档评论(0)

1亿VIP精品文档

相关文档