《FPGA步进电机细分控制电路设计方案 .docx》由会员分享,可在线阅读,更多相关《FPGA步进电机细分控制电路设计方案 .docx(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习目录1引言 3可编辑资料 - - - 欢迎下载精品名师归纳总结2步进电机简介 .42.1步进电机工作原理 .42.2步进电机的励磁方式 .42.2.1一相励磁 .42.2.2二相励磁 .52.2.3一- 二相励磁 .52.3细分驱动原理 .53 设计方案 .63.1各个模块简要介绍 .63.2各个部分仿真图介绍 .7可编辑资料 - - - 欢迎下载精品名师归纳总结4结论 7谢 辞 8参考文献 8附 录.81引言步进电机是将电脉冲信号转变成角度位移或者线性位移的开环把握元件。在非超载的
2、情形下电机的转速、停止位置只是取决于脉冲信号的频率和脉冲 数,而不受负载变化的影响,即给电机加一个脉冲信号,电机就转过一个步距角。这一线性关系的存在,加上步进电机只是周期性的误差而无累计误差的特点,使得步进电机在速度、位置等把握领域操作特殊简洁。基于步进电机具有转矩大、惯性小、响应频率高、可开环应用等优点, 它被广泛应用在工业自动把握、仪器外表等领域。然而步进电机在低频运行时存在振荡现象并且产生很大的电磁噪声 ,另外步进电机的固有步进角多在0. 451.8之间,在精密、稳固把握场合 ,用一般的方法驱动步进电机不能获得理想的步进把握精度和运行平稳度。因此需要通过步进电机细分技术来改善。步进电机的
3、细分技术实质上是一种电子阻尼技术,细分驱动技术能够大大提高步进电机的步距辨论率 , 减小转矩的波动 , 防止低频振荡 , 降低运行时的噪声,提高电机的运转精度只是细分技术的一个附带功能。比如对于步进角为1.8 的两相混合式步进电机,假如细分驱动器的细分数设置为 4,那么电机的运转辨论率为每个脉冲 0.45 ,电机的精度能否达到或接近 0.45 ,仍取决于细分驱动器的细分电流把握精度等其它因素。不同厂家的细分驱动器精度可能差别很大。细分数越大精度越难把握。现场可编程门阵列 Field Programmable Gate Array, FPGA集成度高、通用性好、设计灵敏且性能稳固,能够极大的缩小
4、电路板的面积 ,提高电路的可编辑资料 - - - 欢迎下载精品名师归纳总结稳固性。因此本次设计的步进电机细分驱动器以 FPGA为核心 , 接受脉宽调制 PulseWidthModulation, PWM 斩波恒流驱动技术 , 细分数为 8。本驱动器可使步进电机带动负载连续平稳的运行 , 把握精度高 , 灵敏性好。2 步进电机简介2.1 步进电机工作原理步进电机有三线制、五线制和六线制,但其把握方式均是相同的,都要以脉冲信号电流来驱动。假设没旋转一圈需要200 个脉冲信号来励磁,可以运算出每个励磁信号能使步进电机前进1.8 ,其旋转角度与脉冲的个数成正比。步进电机的正反转均是有励磁脉冲产生的次序
5、来把握。六线制四相步进电机是比较常见的,它的把握等效电路如图1 所示,它有四条励磁信号引线A,B,C,D,通过四条引线上励磁脉冲产生的时刻,即可以把握步进电机的转动,每显现一个脉冲信号,步进电机只走一步。因此,只要依照固定的次序不断送出脉冲信号,步进电机就能够始终连续转动。图 1 步进电机的等效电路图2.2 步进电机的励磁方式步进电机的励磁方式分为全步励磁和半步励磁两种。其中全步励磁又有一相励磁和二相励磁之分。半步励磁称为一 - 二相励磁。假设没旋转一圈需要 200 个脉冲信号来励磁,可以运算出每个励磁信号了个使步进电机前进 1.8 ,简要介绍如下。励磁方式有三种分别为一相励磁、二相励磁和一
6、- 二相励磁。2.2.1 一相励磁在每一个瞬时,步进电机只有一个线圈导通。每送一个励磁信号,步进电机旋转 1.8 度,这是三种励磁方式中最简洁的一种。其特点是:精确度好、消耗电力小,但是输出的转矩最小,产生的振动很大。假如以该方式把握步进电机正转,对应的励磁表的次序如表1 所示。假如励磁信号反向传动,就步进电机反转。表中的1 和 0 表示给电机的高电平和低电平。表 1一相励磁次序表STEPABCD11000201003001040001励磁的次序说明为:1 - 2 - 3 - 4 - 1如此循环。可编辑资料 - - - 欢迎下载精品名师归纳总结2.2.2 二相励磁在每一个瞬时,步进电机有两个线
7、圈同时导通。每送一个励磁信号,步进电机旋转 1.8 度。其特点是:输出转矩较大,振动比较小。因而成为目前使用最多的励磁方式。假如以该方式把握步进电机的正转,对应的历次方式见表2. 如励磁信号反向传送,就步进电机反转。STEP1234A1001B1100C0110D0011励磁的次序说明为: 1 - 2 - 3 - 4 - 12.2.3 一-二相励磁为一相励磁和二相励磁交替导通的方式。每送一个励磁信号,步进电机旋转 0.9 度。其特点是:辨论率高,运转较平滑,故应用也很广泛。假如以该方式把握如此循环。步进电机正转,对应的历次次序见表转。3. 如励磁信号反向传动,就步进电机反表 2 二相励磁次序表
8、表3一- 二相励磁次序表STEPABCD1100021100301004011050010600117000181001励磁的次序说明为:1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 1如此循环。本次设计接受是一 - 二相励磁的方式,次序为正转。2.3 细分驱动原理步进电机细分把握的关键在于依据什么样的细分电流波形来把握步进电机各自绕组中的电流。一般有两种实现原理。可编辑资料 - - - 欢迎下载精品名师归纳总结(1)使电流按线性规律变化,即把步进电机各相的最大电流进行了M等分。这种方法示看法图 2,其转矩角特性曲线见图 3。可以看出,各相通电状态转矩角的幅值不相等,步距角也
9、不均匀等分,当通电状态发生变化的时候,各细分微步的步距是不保持均匀的。因此这种驱动方式只是为了提高其运行性能而不是主要用来提高距角的辨论率。图 2 步进电机电流等分细分波形图 3 电流线性等分细分矩角特性(2)按等步距角细分。由上述电机各自相互通电的状态下的矩角特性曲线可知,按等步距角细分必需中意各自相矩角特性曲线幅值,位差和形状都相 同,如图 4 所示。图 4 理想的细分矩角特性由于等距细分实现起来较为复杂,基于实际需要故本次设计接受按线性电流规律变化进行设计。通过设置导通电流的占空比达到把握电流的目的。3 设计方案本次设计的硬件平台是Altera公司的 Cyclone 系列中的 EP2C8
10、Q208C8。步进电机为 5V 驱动的 4 相 5 线的步进电机,而且是减速步进电机,减速比为1:64,步进角为 5.625/64 度。假如需要转动 1 圈,那么需要360/5.625*64=4096 个脉冲信号。为了对比明显,将没有通过细分的状态和细分状态放在一起进行切换对比,并通过数码管显示细分的状态。图5 为本次设计的顶层文件图。图 5 本次设计的顶层文件图3.1 各个模块简要介绍图 6 为按键电路通过 input 锁定的按键输入,然后 xd 模块为排除抖动模块,然后通过通过 xf_cont 模块来实现电平的反转,首次按下按键的时候xf 端口输出为高电平,代表的状态为步进电机细分模式。再
11、次按下时xf 为低电平,代表的是步进电机非细分的模式。图 6 细分状态切换顶层原件图图 7 为电压上升和下降模块,两者通过共同的时钟输入,输出信号到步进电机把握模块。其中 pwmc 为电压上升模块, pwmd 为电压下降模块。图 7 步进电机细分模块和非细分模块图 8 为步进电机把握模块,本模块通过接受按键的输入信号来准备步进电机的输出是细分状态仍是非细分状态。输出的四个引脚与步进电机ABCD 四个可编辑资料 - - - 欢迎下载精品名师归纳总结脚绑定。图 8 步进电机把握模块图 9 为步进电机细分状态的显示模块,它通过接收步进电机把握模块发出的二进制把握信号,通过解码现显示出当先步进电机细分
12、的状态。本次设计只有两种模式分别为 0 细分和 8 细分模式。图 9 步进电机细分状态显示模块3.2 各个部分仿真图介绍本次设计的方针波形主要通过 modemsim软件进行仿真,用其编译的脚本文件可以便利对每个模块进行波形仿真,并验证本次设计的正确性。第一验证 的是电压上升和下降的细分模式图。本次设计在内部设置了8 位寄存器进行了256 的细分,程序里设置为每增加或者减小64 为一个步进状态。图 10 为步进电机的电压上升图,由图可以知道输出的占空比为4 个状态变化依次从窄到宽, 再回到初值状态。图 10 步进电机细分电压上升图图 11 为步进电压下降图,由图可以知道步进电机输出和上升的波形相
13、反。图 11 步进电机细分电压下降图图 12 为步进电机的细分状态模块的方针图,此模块通过接受步进电机把握电路输出的二进制信号,转化成十进制的数字在数码管上显示,如图12 可以知道,输出模块很好的实现了二进制转化为十进制的转化。输出波形为数码管的十进制编码。图 12 步进电机状态显示模块图 13 为本次设计的综合模块也就是步进电机的细分把握模块,为了辨论电压上升的状态和电压下降的状态,在此分别输入了不同频率的信号。最下边的数值为步进电机的细分状态值。由图 13 可知在未细分状态的时候 a,b,c,d电压的上升都是直接从 0 到 1 完全没有过度过程。而在细分状态的时候,如图 14 电压上升和下
14、降的时候都会有细分的过度过程,而且上升的的频率和下降的频率分别都和各自输入的 clk 信号一样。图 13 未细分状态时的仿真输出图可编辑资料 - - - 欢迎下载精品名师归纳总结4结论图 14 细分状态下的输出仿真图可编辑资料 - - - 欢迎下载精品名师归纳总结本文介绍了基于 FPGA的步进电机细分把握电路的设计,本次设计进行了模块分析和仿真分析,利用 FPGA的开发板实现了步进电机细分把握的功能。通过固化程序到开发板上,很明显的感觉到未细分时候,步进电机的振动很厉害, 细分之后步进电机能较为平稳的转动。本次设计完整的达到了预期的目的。本文设计方案在自动把握领域中有广泛的应用前景。谢辞本学期
15、我认真学习了 FPGA与 CPLD技术这一门课程,这一次设计也是作为争论生的第一个课程设计。第一要感谢老师对我们的辛勤教导,其次要感谢实 验室的同学为我供应了FPGA的开发板和技术指导。这次设计,不仅使我更加熟识 Verilog HDL语言和 Quartus 9.0 软件,而且真正体会到了实践出真知的真谛。最终,本次设计虽然是个人探究取得进步的过程,但照旧离不开同学之间的相互探讨和帮忙,集体的思维是开阔的,集体的聪慧是无限的。因此我仍要向那些给我帮忙的同学们表示感谢。参考文献1 潘松 黄继业 EDA 技术有用教程(第三版)M 北京:科学训练出版社. 20072 王金明,杨吉斌,数字系统设计与V
16、erilog HDLM.北京:电子工业出版社,20023 潘松,黄继业 .EDA 技术与 VHDL (第三版) M. 北京:清华高校出版社,20214 云创工作室 .Verilog HDL 程序设计与实践 M. 北京:人民邮电出版社,2021 5Michael D.Ciletti.Verilog HDL高级数字设计 M.6 Mara DoloresVald s, IriaVillares,Jos Fari.a,Mara Jos .FPGA-basedFrequencyMeasurement System forHigh-AccuracyQCMSensors. MoureDepartmentof
17、Electronic TechnologyUniversity of Vigo, Spain.2002:114-1177 Valdes, M.D. Moure, M.J, Rodriguez, Farina. Implementationof a Frequency Measurement Circuit for High-Accuracy QCM Sensors. Electron. Technol., Univ. of Vigo, Vigo.2004:29-388 Lee, Y .-H.G. Helton, J. Chen. Real-time FPGA-based implementat
18、ion of digital instantaneous frequency measurement receiver. WrightState Univ, Dayton.2006:35-389 Santos, EdvalJ. P. Silva,LeonardoB.M.FPGA-basedsmartsensor implementation withprecise frequencyto digital converter for flowmeasurement. Laboratory for Devices andNanostructures,ElectronicsandSystemsDep
19、artment,UniversidadeFederalde Pernambuco.2021:16-30附 录1 消抖模块程序module xd可编辑资料 - - - 欢迎下载精品名师归纳总结clk,key_in, key_out。 input clk。input key_in。output key_out。reg dout1。reg dout2。reg dout3。reg17:0 count。wire key_done。assign key_done = dout1 | dout2 | dout3。assign key_out =key_done。 always posedge clk beg
20、incount=count+1b1。endalways posedge count17 begindout1 = key_in。dout2 = dout1。dout3 = dout2。end endmodule2 输入模块程序module xf_contin,clk,xf 。input clk,in 。output xf。reg xf_r=0。assign xf=xf_r。always negedge in beginxf_r=xf_r 。end endmodule3 电压上升模块程序module pwmcclk,out。input clk。output out。wire out。reg b=
21、0。reg7:0 cnt=0。可编辑资料 - - - 欢迎下载精品名师归纳总结reg7:0 data=0。reg23:0 cnt1=0。initialbegin data=64。endalways negedge clk begincnt=cnt+1b1。cnt1=cnt1+1b1。ifcnt1=249999begin data=data+8d64。cnt1=0。endendalways negedge clk beginifcnt=0b=1 。else ifcnt=data b=0。endassign out=b。Endmodule4 电压下降模块程序module pwmdclk,out。i
22、nput clk。output out。wire out。reg b=0。reg7:0 cnt=0。reg7:0 data=0。reg23:0 cnt1=0。initialbegin data=64。endalways negedge clk begincnt=cnt+1b1。cnt1=cnt1+1b1。ifcnt1=249999begin data=data+8d64。可编辑资料 - - - 欢迎下载精品名师归纳总结endcnt1=0。end可编辑资料 - - - 欢迎下载精品名师归纳总结always negedge clk beginifcnt=0b=0 。else ifcnt=data
23、b=1。endassign out=b。endmodule5 步进电机把握模块输出模块module abcda,b,c,d,pwmc,pwmd,clk,xf,data。 input pwmc,pwmd,xf 。input clk。output a,b,c,d。output3:0 data。parameterstate0=3b000,state1=3b001, state2=3b010, state3=3b011, state4=3b100, state5=3b101, state6=3b110, state7=3b111。reg a,b,c,d。reg23:0 cnt=0。reg2:0 sta
24、te。reg3:0 data=0。initialbegin state=state0。endalwaysnegedge clk begincnt=cnt+1。ifcnt=999999begincnt=0。可编辑资料 - - - 欢迎下载精品名师归纳总结casestatestate0: state1:state=state1。state=state2。可编辑资料 - - - 欢迎下载精品名师归纳总结endendstate2: state3: state4: state5: state6: state7:endcasestate=state3。state=state4。state=state5。s
25、tate=state6。state=state7。state=state0。可编辑资料 - - - 欢迎下载精品名师归纳总结alwaysnegedge clk begin/ULN2003 是反向驱动器。当输入是 0 时,输出时 1ifxf=1 begincasestatestate0:可编辑资料 - - - 欢迎下载精品名师归纳总结state1:state2:begin a=1。b=pwmc。c=0。 d=0。 endbegin a=pwmd。b=1。 c=0。 d=0。 endbegin a=0。b=1。c=pwmc。d=0。end可编辑资料 - - - 欢迎下载精品名师归纳总结state3
26、:state4:state5:state6:state7:endcase data=4d8。endbegin a=0。b=pwmd。c=1。d=0。endbegin a=0。b=0。c=1。d=pwmc。endbegin a=0。b=0。c=pwmd。d=1。endbegin a=pwmc。b=0。 c=0。 d=1。 endbegin a=1。b=0。c=0。d=pwmd。end可编辑资料 - - - 欢迎下载精品名师归纳总结else ifxf=0 begin casestatestate0:d,c,b,a=4b0001 。state1:d,c,b,a=4b0011。可编辑资料 - - -
27、欢迎下载精品名师归纳总结endstate2:d,c,b,a=4b0010 。state3:d,c,b,a=4b0110。state4:d,c,b,a=4b0100 。state5:d,c,b,a=4b1100。state6:d,c,b,a=4b1000 。state7:d,c,b,a=4b1001 。endcasedata=0。end可编辑资料 - - - 欢迎下载精品名师归纳总结endmodule6 步进电机细分状态显示模块程序module display clk,data_in, sm_bit,sm_seg。input clk。input3:0 data_in。output sm_bit。
28、output7:0 sm_seg。reg23:0 data。reg7:0 sm_seg_r。assign sm_bit = 0。assign sm_seg = sm_seg_。r always posedge clk begincasedata_in4h0:sm_seg_r = 8hc0。 4h1:sm_seg_r = 8hf9。4h2:sm_seg_r = 8ha4。 4h3:sm_seg_r = 8hb0。 4h4:sm_seg_r = 8h99。 4h5:sm_seg_r = 8h92。 4h6:sm_seg_r = 8h82。可编辑资料 - - - 欢迎下载精品名师归纳总结end4h7
29、:sm_seg_r = 8hf8。4h8:sm_seg_r = 8h80。 4h9:sm_seg_r = 8h90。 4ha:sm_seg_r = 8hb。f default:sm_seg_r = 8hff。endcase可编辑资料 - - - 欢迎下载精品名师归纳总结endmodule7 本次设计的实物图图 15 本次设计的硬件实物版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人全部This article includes some parts, including text, pictures, and design. Copyright is Pan H
30、ongliangs personal ownership.用户可将本文的内容或服务用于个人学习、争论或观看,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵害本网站及相关权益人的合法权益。除此以 外,将本文任何内容或服务用于其他用途时,须征得本人及相关权益人的书面许可,并支付酬劳。Users may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or non-profit pur
31、poses, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon可编辑资料 - - - 欢迎下载精品名师归纳总结the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other pur
32、poses, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必需是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修 改,并自负版权等法律责任。Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.可编辑资料 - - - 欢迎下载