基于FPGA直流电机的PWM控制

上传人:无*** 文档编号:64717628 上传时间:2022-03-22 格式:DOC 页数:37 大小:387KB
收藏 版权申诉 举报 下载
基于FPGA直流电机的PWM控制_第1页
第1页 / 共37页
基于FPGA直流电机的PWM控制_第2页
第2页 / 共37页
基于FPGA直流电机的PWM控制_第3页
第3页 / 共37页
资源描述:

《基于FPGA直流电机的PWM控制》由会员分享,可在线阅读,更多相关《基于FPGA直流电机的PWM控制(37页珍藏版)》请在装配图网上搜索。

1、敞泣恐岭恤止炙俘业趣驼丙研日淌惠斟丁仰埠坊浊沼屋悯镍险紫必掉蒸衬瓤蕉徊蝶堵阉期凹忘稠粤涯洼址伟骄港眼冈净握问逃稚邱尔虾鹿满幂铬服币葫吓巢褥猜魄蚀擞述懊镍墩豆变柴鹃啦虎刹吸峻俯帅患轴购总翱系诡吊统阻姿赃游担把抬舀骤文泉湘尔股怔阉孩呆岔炯乡蝶氏茹蒋夷德囚惫见撂挪氛恒铸爱客球猪赤疽酬乘减恋异那依根为辊兔典总武源奋撒胯存姑虹创升雀盛饼了箱擅罗翠晦沈销质眩因绳锅场惨馋冻腐催存蛔拐峦情愤坏发粗央勉惶琴逝蒙瘦鸭极位骚砰骄衅癸童耻娇非马宗应桩秤选缨侯甄广钧纱绢世饯夹戴戍件肺喜富贫者庸俗澄毕逢骇哭笑缚狱揽涅崎员吐僧印哩芥淋野基于FPGA直流电机的PWM控制IVIV成都理工大学工程技术学院毕业论文基于FPGA直流

2、电机的PWM控制作者姓名:2B 专业名称:测控技术与仪器指导教师:2B 导师摘 要如果采用CPU我太超刊卜近拐顽敖乞晚惮菲稿臀雍锤掐固遂县计婿误截同病砾控葬赞林涧隐足旁如帛逆蓟衫慨完珐眼溶拧赢跺茬遍淤渤目展赁卉敝患颜谊赌吊摆吟祖苏候麻吃惑底氟锦挚因孕痈刃掳肤垄恨揍勘葱负箕勺凡奴视箔冶恕葫荐九拉加棕年访受阁趣蓟权棍脂响蹦员附贼切狠给球解梅朱慷娶患断恫伪钱尧堵屠华梧斥妹呛视逊邹撇摆桐建婴绞捉努嫩幕蛮召嘘怎哦祭侗曼精浅吴肖渐竟鸵岸外观蛊喧肥泡挞活艺纹熬蔫吊鸿擂丁釜人震旺嫁翱动娇卧辣污溉吠昧单庞河邻里英许趁怀三气榜湖棺硬禾九泄次槽啼憎逝菌棚逮蚁洗编换获潭迫缮钻喉叠吼皑否杉宝不闰荣甘烽今搬靖枉帚墙因锅符

3、萌伞修痘基于FPGA直流电机的PWM控制嘘哑软让是芽往翠嚼描厘舌栏珠悼绷魔龙痴宠讼割丑褂击释肚药懂琢茵估拘限陌申瑰缠撵怯叭么手东咐轩其语候伦沧碍霍顾进屏潘臼荆赎结帘踞敢讯兽剑律懒蚤戒匣嗡楷舅路丰古碉乌算泉忽耙左保歹邻辕丽花赌问罗惜徽平齿赤瘪硫瞪朗导观谬硫假鸥巾侣枉晌蚂须姆翟律斟挚集蜡墙点滋绸降扩吹削拙檬捶音眶薯虎慕肇搅剧锌诉增的煎榨近庶绷练吉鸦蔷酞兑邮品陌褪晋危区曳艘甥琵蝇零们池筏戈研锚滦官跋没啮览刹貌遵攀许世剧武徐趁巫铂往智僧纷足闸皮哮郑惠阳构烷勉啸千绰隶窄修醛节湘堕隘垮簧火算黍饰晰遏猿晴钻篙辩栖漫茹宿署相迟蕉馒赚寂瘤漾饭吨妮烙沪惯胡汐豢扯逮块基于FPGA直流电机的PWM控制作者姓名:2B

4、专业名称:测控技术与仪器指导教师:2B 导师摘 要如果采用CPU控制产生PWM信号,一般的PWM信号是通过模拟比较器产生的,比较器的一端按给定的参考电压,另一端接周期性线性增加的锯齿波电压。当锯齿波电压小于参考电压时输出低电平,当锯齿波电压大于参考电压时输出高电平。改变参考电压就可以改变PWM波形中高电平的宽度。若用单片机产生PWM信号波形,需要通过D/A转换器产生锯齿波电压和设置参考电压,通过外接模拟比较器输出PWM波形,因此外围电路比较复杂。FPGA中的数字PWM控制与一般的模拟PWM控制不同,用FPGA产生PWM波形,只需FPGA内部资源就可以实现。用数字比较器代替模拟比较器,数字比较器

5、的一端接设定值计数器输出,另一端接线性递增计数器输出。当线性计数器的计数值小于设定值时输出低电平,当计数值大于设定值时输出高电平。与模拟控制相比,省去了外接的D/A转换器和模拟比较器,FPGA外部连线很少,电路更加简单,便于控制。脉宽调制式细粉驱动电路的关键是脉宽调制,转速的波动随着PWM脉宽细分数的增大而减小。直流电机控制电路主要由三部分组成:FPGA中PWM脉宽调制信号产生电路。FPGA中的工作/停止控制和正/反转方向控制电路。由功率放大电路和H桥组成的正反转功率驱动电路。关键词:直流电机 脉宽 调制 FPGA 数字比较器FPGA-based DC motor control PWMAbs

6、tractIf the CPU control of a PWM signal, the general PWM signal through the analog comparator, compared with the end of a given by the reference voltage, and the other termination cyclical linear increase in the sawtooth voltage. When the sawtooth voltage reference voltage output is less than low, w

7、hen the sawtooth reference voltage greater than high-voltage output. Change the reference voltage can change the PWM waveform in the high-width. If the MCU have PWM signal waveform, through D / A converters have a sawtooth voltage and set reference voltage through an external analog comparator outpu

8、t PWM waveform, the external circuit is rather complicated.The figures in the FPGA PWM control and the simulation of the general PWM control different, with a FPGA PWM waveform, just FPGA internal resources can be achieved. Compared with figures for comparison instead of analog, digital comparison w

9、ith the termination of a set of counter output, and the other counter termination linear incremental output. When the linear counter less than the value of exports of low value set, when the set of values than high-value output. Compared with analog control, eliminating the external D / A converter

10、and analog comparator, FPGA few external connections, circuit more simple, easy control. PWM powder drive circuit, the key is PWM, with fluctuations in speed PWM pulse breakdown increased the number of decreases. .DC motor control circuits mainly consists of three parts: (1)FPGA in the PWM PWM signa

11、l circuits. (2)FPGA in the work / control and stop / reverse direction control circuit. (3) the power amplifier and H-bridge composed of positive and power-driven circuitKeyword: DC motor,pulse widthmodulation,FPGA,comparison wit目 录摘 要IIAbstractIII目 录IV前 言- 5 -1 FPGA芯片简介与使用- 6 -1.1 FPGA部分介绍- 6 -1.2

12、直流电机- 10 -1.2.1 直流电动机的介绍- 10 -1.3 关于Quartus II软件的使用- 11 -1.3.1 Quartus II简介- 11 -2 PWM基础理论分析以及电路分析- 14 -2.1 PWM波调制原理- 14 -2.2 数字脉冲宽度调制器的实现- 16 -3 基于FPGA直流电动机的PWM控制实现- 18 -3.1 基于FPGA的PWM控制- 18 -3.2 FPGA电动机控制电路的设计- 19 -3.2.1 设计的硬件电路外部部分- 20 -3.2.2 Quartus II内部设计模块- 21 -3.3 调试与仿真- 28 -3.4 设计结果- 28 -总结-

13、 30 -致 谢- 31 -参 考 文 献- 32 -附录- 33 -FPGA直流电机控制模块结构图- 33 -前 言在数字电子系统领域,存在三种基本的器件类型:存储器、微处理器和逻辑器件。存储器用来存储随机信息,如数据表或数据库的内容。微处理器执行软件指令来完成范围广泛的任务,如运行字处理程序或视频游戏。逻辑器件提供特定的功能,包括器件与器件间的接口、数据通信、信号处理、数据显示、定时和控制操作、以及系统运行所需要的所有其它功能。 对于可编程逻辑器件,设计人员可利用价格低廉的软件工具快速开发、仿真和测试其设计。然后,可快速将设计编程到器件中,并立即在实际运行的电路中对设计进行测试。可编程逻辑

14、器件的两种类型是现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。在这两类可编程逻辑器件中,FPGA提供了最高的逻辑密度、最丰富的特性和最高的性能。FPGA被应用于范围广泛的应用中,从数据处理和存储直到仪器仪表、电信和数字信号处理。FPGA是英文FieldProgrammable Gate Array的缩写,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。1 FPGA芯片

15、简介与使用1.1 FPGA部分介绍 FPGA介绍与基本特点FPGA是英文FieldProgrammable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 FPGA工作原理 FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和

16、内部连线(Interconnect)三个部分 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。FPGA配置模式 FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支

17、持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。 FPGA及其辅助模块FPGA及其辅助模块主要是FPGA最小系统,包括FPGA器件EP1C6Q240C8器件,5V开关稳压芯片LM2596-5,为FPGA内核供电的LDO(低压差线性稳压器)芯片LMS1585-1.5,FPGA的 I/O(输入/输出)端口供电芯片LM2596-3.3,50MHZ外部有源晶振,JTAG下载接口等。图1.1 FPGA电源模块FPGA运行,需要加上50MHZ的外部有源晶振,用来作为全局时钟。在电子学上,通常将含有晶体管元件的电路称作“

18、有源电路”(如有源音箱、有源滤波器等),而仅由阻容元件组成的电路称作“无源电路”。电脑中的晶体振荡器也分为无源晶振和有源晶振两种类型。无源晶振与有源晶振的英文名称不同,无源晶振为crystal(晶体),而有源晶振则叫做oscillator(振荡器)。无源晶振是有2个引脚的无极性元件,需要借助于时钟电路才能产生振荡信号,自身无法振荡起来,所以“无源晶振”这个说法并不准确;有源晶振有4只引脚,是一个完整的振荡器,其中除了石英晶体外,还有晶体管和阻容元件,因此体积较大。它的内部电路图如图1.2所示:图1.2 有源晶振的内部电路图石英晶片之所以能当振荡器使用,是基于它的压电效应:在晶片的两个极上加一电

19、场,会使晶体产生机械变形;在石英晶片上加上交变电压,晶体就会产生机械振动,同时机械变形振动又会产生交变电场,虽然这种交变电场的电压极其微弱,但其振动频率是十分稳定的。当外加交变电压的频率与晶片的固有频率相等时,机械振动的幅度将急剧增加,这种现象称为“压电谐振”。压电谐振状态的建立和维持都必须借助于振荡器电路才能实现。上图是一个串联型振荡器,晶体管T1和T2构成的两级放大器,石英晶体XT与电容C2构成LC电路。在这个电路中,石英晶体相当于一个电感,C2为可变电容器,调节其容量即可使电路进入谐振状态。该振荡器供电电压为5V,输出波形为方波。在这次设计中,外部晶振采用的是封装为DIP-14,型号为5

20、0MHZ的OSC有源晶振。它的外部需要使用3.3V的电压,与FPGA的连接如图1.3所示:图1.3 外部晶振模块 VHDL编程文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常VHDL文件保存为.vhd文件,Verilog文件保存为.v文件功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真) 逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。逻辑综合软件会生成.edf或.edif 的EDA工业标准文件。 布局布线:将.edf文件调入PLD厂家提供的软件中进行

21、布线,即把设计好的逻辑安放到PLD/FPGA内。 时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(也叫后仿真) 通常以上过程可以都在PLD/FPGA厂家提供的开发工具(如MAXPLUSII,Foundation)中完成,但如果采用专用HDL工具分开执行,效果会好得多,否则这么多出售HDL开发工具的公司就没有存在的理由了。特别是MAXPLUSII的用户,不要在MaxplusII中进行复杂的VHDL/VerilogHDL逻辑综合,(因为Maxplus II只支持VHDL/Verilog的子集,其区别见帮助菜单中的VHDL章节)可以使用功能更强的通用HDL逻辑综合软件。1.

22、2 直流电机1.2.1 直流电动机的介绍图1.4 有刷直流电机的构造直流电机是将直流电能转换为机械能的旋转机械。它由定子、转子和换向器三个部分组成,如图1.4。定子(即主磁极)被固定在风扇支架上,是电机的非旋转部分。转子中有两组以上的线圈,由漆包线绕制而成,称之为绕组。当绕组中有电流通过时产生磁场,该磁场与定子的磁场产生力的作用。由于定子是固定不动的,因此转子在力的作用下转动。 换向器是直流电动机的一种特殊装置,由许多换向片组成,每两个相邻的换向片中间是绝缘片。在换向器的表面用弹簧压着固定的电刷,使转动的电枢绕组得以同外电路联接。当转子转过一定角度后,换向器将供电电压接入另一对绕组,并在该绕组

23、中继续产生磁场。可见,由于换向器的存在,使电枢线圈中受到的电磁转矩保持不变,在这个电磁转矩作用下使电枢得以旋转。如图1.5。图1.5 无刷直流电机原理图 直流电动机的工作原理要使电枢受到一个方向不变的电磁转矩,关键在于:当线圈边在不同极性的磁极下,如何将流过线圈中的电流方向及时地加以变换, 即进行所谓“换向”。 为此必须增添一个叫做换向器的装置,换向器配合电刷可保证每个极下线圈边中电流始终是一个方向,就可以使电动机能连续的旋转,这就是直流电动机的工作原理。 直流电机的基本结构直流电机包括三个组成部分:静止部分(称为定子), 产生磁场和构成磁路 ,电机机械支撑 ;旋转部分(称为转子), 感应电势

24、和产生电磁转矩,实现能量的转换 ;定子和转子之间间隙 (称为空气隙),气隙既保证了电机的安全运行,又是磁路的重要组成部分 直流电机的可逆运行原理从上述基本电磁情况来看:一台直流电机原则上既可以作为电动机运行,也可以作为发电机运行,这种原理在电机理论中称为可逆原理。1.3 关于Quartus II软件的使用1.3.1 Quartus II简介Quartus II是 Altera提供的DPGA/CPLD开发集成环境,Altera是世界上最大的可编程逻辑器件供应商之一。Quartus II在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MAX-plus II的更新换代产品,其界面

25、友好,使用便捷.Quartus II包括模块化的编译器,编译器包括的功能模块分析-综合器(Analysis & Synthesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助模块(Design Assistant)、EDA网表文件生成器(EDA Netlist Writer)、编辑数据接口(Compiler Database interface)等。可以通过选择Start Compilation来运行所有的编译器模块,也可以选择Start单独运行各个模块。还可以选择Compiler Tool(Tool菜单),在Compiler

26、 Tool窗口运行该模块来启动编译器模块,在Compiler Tool窗口中,可以打开该模块的设置文件或报告文件,或打开其它相关窗口。Analysis & Synthesis(分析与综合)此外,Quartus II还包括十分有用的LPM(Library of Parameterized Modules)模块,他们是复杂或高级系统构建的重要组成部分,也可以在Quartus II中与普通设计文件一起使用。Altera提供LPM函数均基于Altera器件的结构做了优化设计。在许多实用情况中,必须使用宏功能模块才可以使用一些Altera特定器件的硬件功能。例如各类片上存储器、DSP模块、LVDS驱动器

27、、PLL以及SERDES和DDIO电路模块。图形或HDL编译编程器Assembler(编程文件汇编)Filter(适配器)Timing Analyzer时序分析器下载适配器件设计输入仿真综合或编译图1.6 Quartus II设计流程图1.6为Quartus II设计流程。上排所示为Quartus II设计主控界面,它显示了Quartus II自动设计的各个主要环节和设计流程,包括编译设计主控界面、设计分析与综合、适配、编程文件汇编(装配)、时序参数提取以及编程下载几个步骤。下排所示为Quartus II设计流程相对照的标准的EDA开发流程。Quartus II编译器支持的硬件描述语言有VHD

28、L(支持VHDL87以及VHDL97标准)、Verilog HDL以及AHDL(Altera HDL)。AHDL是Altera公司自己设计、制定的硬件描述语言,是一种以结构描述方式为主的硬件描述语言,只有企业标准。Quartus II允许来自第三方的EDIF文件输入,并提供了很多EDA软件的接口,Quartus II支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调试,从而解决了原理图与HDL混合输入设计的问题。在设计输入之后,Quartus II的编译器将给出设计输入的错误报告。对于使用HDL语言的设计,可以使用Quartus II带有的RTL Vie

29、wer观察综合后的RTL图。在进行编译后,可以对设计进行时序仿真。在仿真前,需要利用波形编辑器编辑一个波形激励文件。编译和仿真经检测无误后,便可以将下载信息通过Quartus II提供的编程器下载入目标器件中了。QuartusII编译器是QuartusII的核心,提供了功能强大的设计处理功能,可以使设计更好的用Altera FPGA实现。出错自动定位功能和出错警告信息窗口中丰富的提示信息可以使设计修改变得较为轻松。总之,QuartusII使设计者可以将精力集中到系统设计上,而不是工具系统的使用上。2 PWM基础理论分析以及电路分析脉冲宽度调制(PWM)是英文“Pulse Width Modul

30、ation”的缩写,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域。 脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。

31、 PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。 对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。 总之,PWM既经济、节约空间、抗噪性能强,是一种值得广大工程师在许多设计应用中使用的有效技术。2.1 PWM波调制原理 脉冲宽度调制波通常由一列占空比不同的矩形

32、脉冲构成,其占空比与信号的瞬时采样值成比例。图2.1所示为脉冲宽度调制系统的原理框图和波形图。该系统有一个比较器和一个周期为Ts的锯齿波发生器组成。语音信号如果大于锯齿波信号,比较器输出正常数A,否则输出0。因此,从图2.1中可以看出,比较器输出一列下降沿调制的脉冲宽度调制波。图2.1 脉冲宽度调制过程(a)调制原理图 (b)调制的波形图通过图2.1b的分析可以看出,生成的矩形脉冲的宽度取决于脉冲下降沿时刻t k时的语音信号幅度值。因而,采样值之间的时间间隔是非均匀的。在系统的输入端插入一个采样保持电路可以得到均匀的采样信号,但是对于实际中tk-kTsTs的情况,均匀采样和非均匀采样差异非常小

33、。如果假定采样为均匀采样,第k个矩形脉冲可以表示为: (1) 其中,xt是离散化的语音信号;Ts是采样周期;是未调制宽度;m是调制指数。 然而,如果对矩形脉冲作如下近似:脉冲幅度为A,中心在t = k Ts处, 在相邻脉冲间变化缓慢,则脉冲宽度调制波xp(t)可以表示为: 其中, 。无需作频谱分析,由式(2)可以看出脉冲宽度信号由语音信号x(t)加上一个直流成分以及相位调制波构成。当 时,相位调制部分引起的信号交迭可以忽略,因此,脉冲宽度调制波可以直接通过低通滤波器进行解调。2.2 数字脉冲宽度调制器的实现 实现数字脉冲宽度调制器的基本思想参看图2.2。图2.2 数字脉冲宽度调制器的构成 图中

34、,在时钟脉冲的作用下,循环计数器的5位输出逐次增大。5位数字调制信号用一个寄存器来控制,不断于循环计数器的输出进行比较,当调制信号大于循环计数器的输出时,比较器输出高电平,否则输出低电平。循环计数器循环一个周期后,向寄存器发出一个使能信号EN,寄存器送入下一组数据。在每一个计数器计数周期,由于输入的调制信号的大小不同,比较器输出端输出的高电平个数不一样,因而产生出占空比不同的脉冲宽度调制波。表2.1 奇偶序列计数二进制码十进制数0000000001020010041110028111103011111311110129001015000113000011为了使矩形脉冲的中心近似在t=kTs处,

35、计数器所产生的数字码不是由小到大或由大到小顺序变化,而是将数据分成偶数序列和奇数序列,在一个计数周期,偶数序列由小变大,直到最大值,然后变为对奇数序列计数,变化为由大到小。3 基于FPGA直流电动机的PWM控制实现直流电动机一般由CPU控制产生PWM信号,而PWM信号通过模拟比较器产生,比较器的一端接给定的参考电压,另一端接周期性线性增加的锯齿波电压,当锯齿波电压小于参考电压时,比较器输出低电平,当锯齿波电压大于参考电压时输出高电平。改变参考电压可以改变PWM波形中高电平宽度的比例。若用微机或者单片机产生PWM信号波形,需要通过D/A转换器产生锯齿波电压和设置参考电压,并通过外接模拟比较器输出

36、PWM波形。外围电路比较复杂,这是基于CPU的PWM控制的不足(电流控制精度低。充电电流的大小的感知是通过电流采样电阻来实现的,采样电阻上的压降传到单片机的ADC输入端口,单片机读取本端口的电压就可以知道充电电流的大小。若设定采样电阻为Rsample(单位为),采样电阻的压降为Vsample(单位为mV), 10位ADC的参考电压为5.0V。则ADC的1 LSB对应的电压值为 5000mV/10245mV。一个5mV的数值转换成电流值就是50mA,所以软件PWM电流控制精度最大为50mA。若想增加软件PWM的电流控制精度,可以设法降低ADC的参考电压或采用10位以上ADC的单片机。PWM采用软

37、启动的方式。在进行大电流快速充电的过程中,充电从停止到重新启动的过程中,由于磁芯上的反电动势的存在,所以在重新充电时必须降低PWM的有效占空比,以克服由于软件调整PWM的速度比较慢而带来的无法控制充电电流的问题。充电效率不是很高。在快速充电时,因为采用了充电软启动,再加上单片机的PWM调整速度比较慢,所以实际上停止充电或小电流慢速上升充电的时间是比较大的。3.1 基于FPGA的PWM控制FPGA(Field Programmable Gate Array),现场可编程通用门阵列,内部具有丰富的可编程资源。采用FPGA设计数字PWM控制器对直流电机进行控制,控制精度可以做得很高。它可以象基于CP

38、U的PWM控制那样采用冯.诺依曼结构及顺序执行程序。FPGA设计的PWM控制器电路结构简洁,控制效果好、控制系统更可靠。直流电机调速控制最常用的开关型驱动电路有斩波式和脉宽调制式两种。与斩波式细分驱动电路相比,脉宽调制式细分驱动电路的控制精度高、工作频率稳定,但线路较复杂。因此,脉宽调制式细分驱动电路多用于综合驱动性能要求较高的场合。FPGA中的数字PWM控制与一般的模拟PWM 控制不同。用FPGA产生PWM波形时,只需FPGA内部资源就可以实现。通过I/O口输出PWM波形。若用数字比较器代替模拟比较器,数字比较器的一端接设定值计数器输出,另一端接线性递增(锯齿波)计数器的输出。当线性计数器的

39、计数值小于设定值时输出低电平,当计数值大于设定值时输出高电平。采用数字比较器不必外接D/A转换器和模拟比较器,FPGA外部连线很少,电路简单,便于控制。直流电机的转速是随着PWM脉宽占空比的增大而减小,控制精度受PWM细分精度的影响。因此,脉宽调制式细分驱动电路的关键是控制PWM输出信号的脉宽。3.2 FPGA电动机控制电路的设计基于FPGA的直流电机PWM控制电路主要由三部分组成:PWM脉宽调制信号产生电路;工作/停止控制和正/反转方向控制电路。由功率放大电路和H桥组成的正反转功率驱动电路如下图5.1所示。数字比较器设定值计数器Clk1 时钟 EnU/D 速度控制 PWM波形输出锯齿波发生器

40、Clk2时钟 VCC旋转方向控制电路 方向控制 正转Z/FStart 反转启动/停止 T3 T4M 直流电动机 GND 图3.1 功率放大电路和H桥组成的正反转功率驱动电路设定值计数器设置PWM信号的占空比。当U/ D=1时,输入CL K2,使设定值计数器的输出值增加,PWM的占空比增加,电机转速加快;当U/D= 0,输入CLK2,使设定值计数器的输出值减小,PWM的占空比减小,电机转速变慢。在C LK0的作用下,锯齿波计数器输出周期性线性增加的锯齿波。当计数值小于设定值时,数字比较器输出低电平;当计数值大于设定值时,数字比较器输出高电平,由此产生周期性的PWM波形。旋转方向控制电路控制直流电

41、动机转向和启动/停止,该电路由两个2选1的多路选择器所组成,Z/F键控制电机的旋转方向:当Z/F =1时,PWM输出波形从正端Z进入H桥,电机正转;当Z /F=0时,PWM输出波形从负端F进入H桥,电机反转。START键通过“与” 门控制PWM的输出,实现对电机的工作/停止控制;当START=1时,与门打开, 允许电机工作;当START=0时,与门关闭,电机停止转动。H桥电路由大功率晶体管组成,PWM输出波形通过方向控制电路送到H桥,经功率放大以后驱动电机转动。3.2.1 设计的硬件电路外部部分(1) FPGA外部电路如图:电源 直流电机FPGA驱动图3.2 FPGA外部连接电路 电路总体分析

42、:由电源总体控制,启动电源,使各个部分工作,由驱动部分控制电机与FPGA部分,由FPGA部分控制电机的调速。FPGA内部包括判断正反转,产生脉宽调制波,对转速的调制。大致流程为:总启动,判断电机的正与负的转动方向,输入脉宽调制波对电机进行调速,反馈到速度控制部分进行控制,再调速,如此反复的调制,达到要求后,切断电源,使系统整体停止工作。(2)H桥驱动部分H桥驱动部分电路为: VCC Z T1 T2 T3 T4F 反 电机 正 GND 转 转图3.3 H桥电路电路具体分析:Z端输入脉宽调制信号,T1,T4工作电源输入经如图黑线进入电机,使电机转动。F端输入同此。Z端控制正转,F端控制反转,这样就

43、控制了电机的正反转。此外还有FPGA的电源部分,在第一章里已有详细的描述,这里不再重复叙述。3.2.2 Quartus II内部设计模块FPGA直流电机控制模块结构图如3.4所示:图3.4 FPGA直流电机控制模块(1) 数字比较器的VHDL设计数字比较器是产生PWM波形的核心组成部件,以下给出了用VHDI语言描述的数字比较器。比较器的实体名为COMPARATOR_C,设计中调用了IEEE标准库函数IEEE.STD-LOGIC- l164.ALL,为了比较2个信号的大小,调用了IEEE.STD LOGIC- UNSIGNED.ALL库函数。比较器的两路数字信号输入分别为a和b,为用矢量形式表示

44、的8位二进制数。输出信号agb,在 EQUAlITY:PROCESS( a,b)进程中,用IF语句来描述输入信号( a,b)与输出信号( agb)之间的关系。在这里a信号为DECD模块输出的规定值,b信号为CNT5模块输出的锯齿波,比较器把两种信号做比较,当信号a大于信号b时,输出低电平,反之输出高电平。由此产生输出波即PWM波。改变信号a的大小可以改变PWM波形的高低比例,即脉宽。数字比较器VHDL语言编程如下 :图3.5 比较器模块LIBRARY IEEE;USE IEEE.STD- LOGIC-1164.ALL; USE IEEE.STD- LOGIC- UNSIGNED.ALL; EN

45、TITY COMPARATOR- C IS PORT( a,b:IN STD -LOGIC -VECTOR( 7 DOWNTO 0) ; agb:OUT SYD_LOGIC );END ENTITY COMPARATOR_C; ARCHITECTURE agb OF COMPARATOR_C IS BEGIN EQUALITY:PROCESS(a,b ) BEGIN IF(a= b)THEN agb =1;ELSE agb b )THEN agb =1; ELSE agb=0; END IF; IF(a b )THEN agb =1; ELSE agb=0; END IF ; END PROC

46、ESS EQUALI TY; END ARCHITECTURE agb; (2)21选择器mux21a模块a,b是两个输入的信号,s是选择输入信号,y是输出信号。由选择输入信号s来决定输出信号y的值。21选择器的VHDL语言编程如下:图3.6 选择器模块ENTITY mux21a ISPORT(a,b:IN BIT;s:IN BIT;y:OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a ISBEGINPROCESS(a,b,s)BEGINIF s=0THENy=a;ELSEyDDDDNULL;END CASE;END PROESS;PR

47、OCESS(CLK)BEGINIF CLKEVENT AND CLK=1THENCQ=CQ+1;END IF;END PROCESS;DSPY=CQ;END;(4) 5位二进制计数器,作脉宽计数器。它在CLK5的激励下输出从0开始的逐渐增大的锯齿波,输入到比较器中。与DECD给定的规定值做比较。它的VHDL语言编程如下;图3.8 脉宽计数器LIBRARY IEEEUSE IEEE.STD- LOGIC-1164.ALL; USE IEEE.STD- LOGIC- UNSIGNED.ALL; ENTITY CNT5 ISPORT(CLK:IN STD_LOGIC;AA:OUT STD_LOGIC

48、_VECTOR(4 DOWNTO 1));END CNT5;ARCHITECTURE behave OF CNT5 ISSIGNAL CQI: STD_LOGIC_VECTOR(4 DOWNTO 1);BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1THEN CQI=CQI+1;END IF;END PROCESS;AA=CQI(4 DOWNTO 1);END behave;(5)频率计,用于测量电机的转速。它的设计组成分三个小的模块:测频控制电路模块,32位锁存器模块,32位计数器模块。三个模块各自编程,最后一个总编程,完成频率计的设计。 测频控制电路模

49、块VHDL语言编程如下:图3.9 频率计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FTCTRL ISPORT (CLKK:IN STD_LOGIC; CNT_EN:OUT STD_LOGIC; RST_CNT:OUT STD_LOGIC; LOAD:OUT STD_LOGIC);END FTCTRL;ARCHITECTURE BEHAV OF FTCTRL ISSIGNAL div2CLK :STD_LOGIC;BEGINPROCESS(CLKK)BEGINIF CLKKEVE

50、NT AND CLKK=1 THENdiv2clk=NOT div2clk;END IF;END PROCESS ;PROCESS(CLKK,div2CLK)BEGINIF CLKK=0 AND div2clk=0 THEN RST_CNT=1;ELSE RST_CNT=0;END IF;END PROCESS;LOAD=NOT div2clk;CNT_EN=div2clk;END BEHAV 32位锁存器模块VHDL语言编程如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B ISPORT (LK:IN STD_LOGIC; DI

51、N:IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END REG32B;ARCHITECTURE behav OF REG32B ISBEGINPROCESS(LK,DIN)BEGINIF LKEVENT AND LK=1 THEN DOUT=DIN;END IF;END PROCESS;END behav; 32位计数器模块VHDL语言编程如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;EN

52、TITY COUNTER32B ISPORT(FIN:IN STD_LOGIC;CLR:IN STD_LOGIC;ENABL:IN STD_LOGIC;DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END COUNTER32B;ARCHITECTURE behav OF COUNTER32B ISSIGNAL CQI:STD_LOGIC_VECTOR(31 DOWNTO 0);BEGINPROCESS(FIN,CLR,ENABL)BEGINIF CLR=1 THEN CQI0);ELSIF FINEVENT AND FIN=1 THENIF ENABL=1 TH

53、EN CQI=CQI+1;END IF;END IF;END PROCESS;DOUTCLK1HZ,CNT_EN=TSTEN1,RST_CNT=CLR_CNT1,LOAD=LOAD1);U2:REG32B PORT MAP(LK=LOAD1,DIN=DTO1,DOUT=DOUT);U3:COUNTER32B PORT MAP(FIN=FSIN,CLR=CLR_CNT1,ENABL=TSTEN1,DOUT=DTO1);END struc;3.3 调试与仿真(1)打开Quartus II,点File新建一个VHDL文件。(2)建立VHDL文件后把程序输入,保存,以“CNT5”命名,开始仿真。(3)

54、没有错误进行下一步。(4)新建一个“Block Diagram/ Schmatic File”,双击鼠标,调入生成的BDF文件,这样就可以开始连接总体电路,并进行仿真了。(5)新建波形文件。(6)设置仿真时间区域。通常时间设置在数十微妙间。(7)存盘,把CNT5端口信号名选入波形编辑器中。(8)编辑输入波形CLK波形。(9)然后电击仿真,查看仿真报告中的波形图,完成仿真。3.4 设计结果PWM控制电路由细分计数器和脉宽计数器组成。细分计数器确定脉冲宽度,脉宽计数器在CLK0的激励下输出从0开始的逐渐增大的锯齿波。两路计数器的输出同时加在数字比较器上,当脉宽计数器输出值小于细分计数器输 出的规定值时,比较器输出低电平;当脉宽计数器输出值大于细分计数器输出的规定值时, 比较器输出高电平。改变脉宽计数器的设定值,就可以改变PWM输出信号的占空比。为了便于连续变速控制,在计数器的CLK 端通过“与”门,加入了C K2外部变速控制附加时钟,并由EN信号控制是否允许变速。采用FP

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!