1、基于FPGA的PWM直流电机控制器开发摘 要本设计是基于FPGA的PWM直流电机控制器开发,采用FPGA芯片设计数字硬件PWM直流电机控制器。其具有两种控制方式可供选择,分别是单片机控制或者上位机控制,系统通过调节直流电机的平均电压方法实现对直流电机调速控制,PWM直流电机控制器可以提供8路独立的PWM控制信号,并且每一路PWM信号均可以独立调节,能同时控制8个直流电机工作/停止、正反转及实现直流电机转速调节。本设计主要包括硬件和软件两大部分。硬件部分主要包括PWM控制电路、RS232串行接口和电机驱动电路。软件部分主要分为三大部分:第一部分是PWM的控制模块程序;第二部分是上位机的VB 界面
2、及串行通讯控制程序;第三部分是单片机的串行通讯程序。关键词:直流电机控制器 PWM FPGA AbstractThe design is the title of the control exploitation of DC Motor Using Pulse-Width Modulation Based on FPGA. FPGA chip design using digital hardware PWM DC motor controllers. Its control with two options, namely the MCU control or PC control, the
3、 system through the adjustment of the average voltage direct current method of DC motor speed control, PWM DC motor controller can provide 8 independent PWM Control signals, and each path can be independent PWM signal conditioning, can simultaneously control of eight motor work / stop, and achieving
4、 positive and DC motor speed regulation.The design of hardware and software including the two most. Hardware including main PWM control circuit, RS-232 serial interface and the motor drive circuit. Some software can be divided into three parts: The first part is the PWM control module; PC is the sec
5、ond part of the VB interface and serial communication control procedures; SCM is the third part of the serial communication procedures.Key Words: DC motor based PWM FPGA 目 录第1章 绪 论 1第2章 整体方案设计 32.1 设计任务 32.2.设计方案论证 32.3设计方案结构框图 5第3章 硬件电路设计 73.1 PWM控制模块电路设计 73.1.1 芯片的选择 73.1.2 PWM控制模块电路设计 73.2单片机控制模块
6、设计 93.2.1 AT89S51芯片性能 103.2.2 单片机控制模块电路设计 113.3串行通讯电平转换电路设计 133.3.1 芯片选择 133.3.2串行通讯电平转换电路设计 133.4电机驱动电路设计 143.4.1直流电机特点 143.4.2直流电机驱动电路设计 15第4章 控制系统的软件开发 174.1 PWM控制模块的控制元件及后台程序 174.1.1 UART接收状态机元件设计 184.1.2源程序文件的编译和封装 184.1.3.创建工程 224.1.4 UART发送状态机元件设计 234.1.5建立嵌入式锁相环元件设计 264.1.6 数据存储器的设计 274.1.7
7、地址计数器的设计 304.1.8按地址分配数据元件设计 314.1.9数字比较器元件设计 324.1.10锯齿波发生器元件设计 334.1.11 二选一选择输出器元件设计 344.1.12 时钟选择元件设计 354.2 上位机串行通讯控制程序设计 374.2.1 MSComm控件简介 374.2.2 MSComm控件提供的串行通讯方式 374.2.3 上位机与PWM控制模块的串行通讯程序 384.3单片机与PWM控制模块的串行通信程序设计 39第5章 系统调试 425.1 八路各自独立的PWM波形产生的调试 425.2 PWM控制模块与上位机通讯的调试 435.3 单片机对控制系统的程序控制
8、44结 论 45参考文献 46致 谢 47第1章 绪 论20世纪末,电子技术获得了飞速的发展,在其推动下现代电子技术几乎渗透到社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。特别是微电子技术的发展,更是令人应接不暇。在这其中尤其以EDA技术和单片机技术的发展更为迅速。现在对EDA技术和单片机技术的应用十分广泛,包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有它们的应用。目前这两项技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在实际的生产过程中的设计和控制,从设计、性能的
9、测试及特性分析到模拟,都可能涉及到。在电机调速方面,PWM(脉宽调制)调速方式得到广泛应用,且有很大的发展潜力,通常采用单片机系统作为直流电机PWM控制实现手段,但是单片机IO口少,且采用PWM调速方式需使用定时器参与控制,对于51系列的单片机定时器只有2个,要实现多路直流电机控制比较困难,而且单片机控制不够精确。目前使用MCU或者DSP(数字信号处理器)来研制直流电机控制器很普遍,通过在MCU 或DSP中预置用于电机控制的指令、接口和外设,可以很方便地实现对于直流电机的控制。但是,受程序控制系统工作模式的限制,其控制精度一般不高;受处理器芯片内部资源限制,无法实现多路的PWM波形输出。用于实
10、现PWM调速控制,利用FPGA芯片设计PWM控制器是一种很好的选择。FPGA芯片具有很好的精度而且在资源方面有很多可供开发的空间,能实现直流电机的多路控制;FPGA芯片的功能强大,在开发方面有很大的优势;编程设计使用VHDL描述语言,其编程功能很强大,编程的思路简单。基于FPGA芯片在直流电机控制器开发方面的诸多优势,因此本次设计中采用FPGA芯片设计直流电机PWM控制器。设计中选用了Altera公司Cyclone系列FPGA芯片EP1C3T144C8,因为该芯片资源丰富,控制精度高,稳定性好,成本低,用于多路直流电机控制具有很大的优势,能实现多台直流电机独立调节;容易实现与上位机之间的通讯。
11、本文对基于FPGA 的PWM直流电机控制器的设计进行论述。设计采用FPGA芯片作为数字硬件PWM直流电机控制器的核心芯片,直流电机的驱动采用H桥驱动电路,控制器部分主要由FPGA芯片的程序模块组成可以提供8路独立的PWM控制信号,并且每一路PWM信号均可以独立调节,能同时控制8个直流电机工作/停止、正反转及实现直流电机转速调节;设置了FPGA芯片和PC机、FPGA芯片和单片机的串行通讯接口,可以分别通过上位机的VB界面或单片机设置FPGA直流电机PWM控制模块的参数,从而实现对直流电机的调节与控制。系统设计的目的在于建立一个直流电机控制平台,用户可以方便的在本设计的基础上,通过在外围搭建一些辅
12、助电路,即可实现用户应用系统的进一步开发。第2章 整体方案设计2.1 设计任务(1)PWM直流电机控制器可以提供8路独立的PWM控制信号,并且每一路PWM信号均可以独立调节;(2)设计上位机程序,直流电机控制调试过程PWM控制器每一路的PWM信号的脉宽可根据需要通过上位机程序设定来调节;(3)PWM控制信号采用由FPGA芯片中配置的PWM波形产生电路产生;(4)PWM直流电机控制器应设置与单片机控制单元的合理接口,以便于实现程序控制功能。2.2设计方案论证(1)直流电机控制器转速控制方法选择直流电动机转速的控制方法可分为两类,即励磁控制法与电枢电压控制法。常用的控制方法是改变电枢端电压调速的电
13、枢电压控制法,通过调节电阻R即可改变端电压达到调速目的。但是,这种调压调速的方法效率较低。PWM (脉宽调制)是另一种常用的调速方法,其基本原理是改变电机电枢(定子)电压的接通和断开的时间比(占空比)来控制马达的速度。在脉宽调速系统中,当电机通电时,其速度增加;电机断电时,其速度减低。只要按照一定的规律改变通、断电的时间,即可使电机的速度达到并保持稳定值。改变占空比的方法有3种:A.定宽调频法:这种方法是保持t1不变,只改变t2,这样周期T(或频率)也随之改变;B.调宽调频法:其采用保持t2不变,而改变t1的方式,同样会造成周期T(或频率)的改变;C.定频调宽法:这种方法使周期T(或频率)不变
14、,同时改变t1和t2。由于前两种方法都改变周期(或频率),当控制频率与系统的固有频率接近时,将会引起振荡,因此其使用受到一定的限制。故在本设计中采用定频调宽法作为直流电机控制器转速调节的控制方法。(2)直流电机控制器的比较直流电机控制器经历了从模拟控制器到数字控制器的发展。由于模拟器件的参数受外界影响较大,精度也较差,因此直流电机模拟控制器逐渐为数字控制器所取代。数字控制器与模拟控制器相比较,具有可靠性高、参数调整方便、控制策略灵活、控制精度高、对环境因素不敏感等优点。随着工业电气化、自动控制和家电产品领域对电机控制产品的需求增加,对电机控制技术要求也不断提高。传统的8位单片机由于其内部体系结
15、构和计算机功能等条件限制,单片机一些应用场合其内部资源显得有点捉襟见肘,在实现各种先进的电机控制理论和高效的控制算法时遇到了困难。使用高性能的数字信号处理器(DSP)来解决电机控制器不断增加的计算量和速度需求是目前最为普遍的做法。将一系列外围设备如模数转换器、脉宽调制发生器和数字信号处理器集成在一起组成复杂的电机控制系统。这样的系统外部电路复杂,控制的灵活度不够,开发周期长。随着EDA技术的发展,用基于现场可编程门阵列(FPGA)的数字电子系统对电机进行控制,为实现电动机数字控制提供了一种新的有效方法。现场可编程门阵列(FPGA)器件集成度高、体积小、速度快,以硬件描述语言描述硬件电路实现算法
16、程序,将原来的电路板级产品集成为芯片级产品,从而降低了功耗,提高了可靠性。综上所述,本设计中选用现场可编程门阵列(FPGA)器件作为直流电机PWM控制器设计元件。 图1.1系统硬件结构 2.3设计方案结构框图根据设计任务及方案论证所得结论,将整个系统分为控制部分和驱动部分两个部分,并以FPGA作为控制器的核心。系统硬件结构图如图1.1所示。驱动模块功能:将由控制模块发出的PWM信号经过处理,再通过驱动电桥实现对直流电机的驱动;控制模块由上位机控制模块、单片机控制模块、基于FPGA的PWM控制模块三个部分组成。其中,上位机控制模块或者单片机控制模块用于完成上位机或者单片机通过串行通讯的方式与FP
17、GA芯片的UART接收单元交换数据,从而将PWM波形的控制数据准确传送到FPGA的RAM中进行储存。 图1-2 PWM控制模块结构示意图PWM控制模块结构示意图如图1-2所示,主要包括RAM数据存储器、地址数据分配器、锯齿波发生器、旋转方向控制电路、工作/停止控制器等几个组成部分。RAM数据存储器:用于存储与上位机通讯的数据,即八路转速控制数据;地址数据分配器:确保将数据存储器的数据按照地址送到相应电机的数字比较器的比较输入端;锯齿波发生器:用于产生锯齿波形数据,并将其连接在数字比较器的另一比较输入端;数字比较器:对相应地址的数据和锯齿波发生器的当前值进行比较,如相应地址数据大于锯齿波当前值时
18、输出高电平、小于当前值时输出低电平;旋转方向控制电路:用于控制电机的旋转方向,正转或者反转;工作/停止控制器:用于对电机工作/停止进行选择控制。第3章 硬件电路设计3.1 PWM控制模块电路设计硬件设计是设计的基础,可以说是一切设计的根本。要完成硬件的整体设计,首先要明白你的硬件需要做什么,需要什么样的硬件支持。硬件系统的电路系统设计包括:芯片的选择、电路的设计、PCB制板、电路焊接、电路调试等过程。3.1.1 芯片的选择FPGA(现场可编程门列阵)器件分为很多系列,其制造公司主要有Xilinx、Altera、Actel等几家公司,各公司的器件都有各自的结构特性,通过查相关的资料,最终锁定Al
19、tera公司FPGA器件系列。因为该系列芯片的资料详细全面,分为9个系列,每一个系列都具有特殊的优点。经过对芯片功能的比较及本设计所需求资源的分析,在确保尽量不浪费资源又能兼顾系统的可开发性的前提下,选择Altera公司的Cyclone系列FPGA芯片EP1C3T144C8作为PWM控制模块核心芯片。Cyclone系列FPGA芯片是Altera公司的低成本系列FPGA,平衡了逻辑、存储器、锁相环(PLL)和高级I/O接口,Cyclone FPGA是价格敏感应用的最佳选择。EP1C3T144C8拥有2910个LE, 支持接近5万逻辑门设计,内置13个独立的RAM块,104个可用I/O口,内置PL
20、L,方便的在线可编程下载及在线内存编辑能力。3.1.2 PWM控制模块电路设计 设计选用Altera公司的Cyclone系列FPGA芯片EP1C3T144C8作为PWM控制模块核心芯片,PWM波形正反转工作/停止功能通过VHDL硬件描述语言生成硬件电路来实现控制,PWM控制模块的VHDL程序将在第4章中详细介绍。下面就PWM控制模块的硬件电路及外围控制电路作详细说明。PWM控制模块的硬件电路由EP1C3T144C8型号FPGA芯片及外围控制电路组成。为实现PWM控制功能需要对FPGA芯片的引脚做出详细规划。PWM控制模块硬件电路原理图如图3-1所示,各模块的作用详述如下:U1B、U1D:表示E
21、P1C3T144C8的IO接口模块。其中,网络标号Z1Z8、F1F8定制的IO口分别连接8路电机驱动电路控制端,用于直流电机PWM信号输出。Z1Z8为正转控制PWM信号输出;F1F8为反转控制PWM信号输出;DERE1 DERE8网络标号定制的IO口与S1S8开关相连用于实现8路电机正反转控制信号输入。由于S1S8开关为波动开关,故开关置于高电平时,PWM控制模块发出正转PWM控制波;开关置于低电平时,PWM控制模块发出反转PWM控制波;DERE9网络标号定制的IO口与S9开关相连用于控制时钟的选择;ENA1ENA8网络标号定制的IO口与S11集合波段开关连接,故开关置于高电平时,PWM控制模
22、块发出电机工作信号;开关置于低电平时,PWM控制模块发出电机停止信号;UART_RXD,UART_TXD网络标号定制的IO口与S10波动开关连接,当开关置于CX_RXD,CX_TXD端时,与上位机串口连通;开关置于RXD,TXD端时,与单片机串口连通。U1EU1I均为FPGA芯片EP1C3T144C8的不同组成部分,其中U1E为配置模块;U1F 为电源模块;U1G为接地模块;U1H为锁相环模块。U1I为时钟模块。EP1C3T144C8芯片的配置可以分别通过ByteBlaster和JTAG接口进行,通过ByteBlaster接口可以直接实现对FPGA芯片的配置;JTAG接口与FPGA配置芯片EP
23、C2连接,可以实现对FPGA的编程。在PWM控制模块电路图2.1中,当开关SW1拨向下时,此时通过P10即JTAP接口把相应的数据下载到U2中,把数据进行存贮,在断电状态下数据也不会丢失,因此在断电状态下也能利用FPGA配置器件进行加载。当开关SW1拨向上此时可以通过ByteBlaster端口对EPC2进行ISP方式下载,并将其配置数据传送给FPGA芯片进行控制,在断电状态下,数据不能保持。EPC2特点:EPC2本身的编程由JTAG接口来完成,EPC2器件将配置数据存放于EPROM中,并按照内部晶振产生的时钟频率将数据输出。OE,nCS和DCLK引脚提供了地址计数器和三态输出缓存的控制信号。配
24、置器件将配置数据按串行的比特流由DATA引脚输出。 图3-1 PWM控制模块电路3.2单片机控制模块设计在本设计选用单片机控制模块进行程序控制,通过程序控制来改变PWM控制模块存储器里的数据来控制电机的速度。3.2.1 AT89S51芯片性能AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的
25、微型计算机AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。(1)AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件
26、复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。主要性能参数:与MCS-51产品指令系统完全兼容4k字节在系统编程(ISP)Flash闪速存储器1000次擦写周期4.0-5.5V的工作电压范围全静态工作模式:0Hz-33MHz三级程序加密锁128*8字节内部RAM32个可编程I/O口线2个16位定时/计数器6个中断源全双工串行UART通道低功耗空闲和掉电模式中断可从空闲模唤醒系统看门狗(WDT)及双数据指针掉电标识和快速编程特性灵活的在系统编程(2)功能特性概述:AT89S51提供以下标准功能:4字节Flash闪速锁存器,128字节内部RAM,32个可编
27、程I/O口线,看门狗(WDT),两个数据指针,2个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时AT89S51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,穿行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作至到下一个硬件复位。(3)振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分
28、频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.2.2 单片机控制模块电路设计单片机控制模块其最主要功能是实现对PWM控制模块RAM中的调速数据进行程序控制,所以单片机控制模块和PWM控制模块需要进行数据传输。设计选用串行通讯的方式实现两模块之间的通讯,由于PWM控制模块还需要与上位机进行串行通讯,且使用同一个接口,设置单片机或者上位机通信控制选择电路如图3-2,图中RXDTXD接单片机P3口的RXD,TXD串口,CX_TXD CX_RXD为上位机串口接入端,UART_TXDUART_RXD接PWM控制模块的串行接口。图3-2 选择单片或者上位机控制电路A
29、T89S51单片机,由于其内部具有4K的程序存储器,在外部只要增加时钟电路和复位电路即可构成单片机控制模块。设计以AT89S51为核心芯片的单片机控制模块原理图如下图3-3:图3-3单片机控制模块电路3.3串行通讯电平转换电路设计3.3.1 芯片选择FPGA芯片采用的是TTL 电平、正逻辑,而PC机采用RS232 与外部设备进行通讯,RS232采用负逻辑,因此FPGA芯片设计串行口与PC 机的RS232 接口相连进行通讯时必须进行电平的转换。通常的转换芯片有独立器件MC1488、MC1489和MAX232电平转换芯片。本设计选用最为常用的MAX232。3.3.2串行通讯电平转换电路设计一个完整
30、的RS-232接口是一个25针的D型插头座,25针的连接器实际上只有9根连接线,所以就产生了一个简化的9针D型RS-232插头座,常用的就是一个9针的D型插头座。通常只用到一根发送信号线、一根接收信号线和一条地线,其余的振铃指示、请求传送、清除传送、准备就绪及数据载波检测等线可以做悬空处理。 RS-232标准规定逻辑1的电平为 -15-3V,逻辑0的电平为+3+15V。CMOS电路的电平范围一般是从0V到电源电压,FPGA的I/O输入输出电压通常为03.3V,为了与FPGA 供电电压保持一致,必须加电平转换芯片。选用Maxim公司的MAX232电平转换芯片,电路原理图如图3-4所示:图3-4串
31、行口模块电路图连线采用最简单的3 线制连接模式,因此只需要两根信号线和一根地线来完成数据收发。FPGA芯片只需要选择两个普通I/O引脚分别与接口芯片MAX3232 对应引脚T2IN、R2OUT相连即可完成将串口电平转换为设备电路板的工作电平,即实现RS-232电平和TTL/ CMOS 电平的转换。 3.4电机驱动电路设计3.4.1直流电机特点永磁式换向器直流电机,是应用很广泛的一种直流电机。其使用方便,只要加载适当电压,电机就会转动。图3-5是这种电机的符号和简化等效电路。图3-5电机的简化等效工作原理这种电机由定子、转子、换向器(又称整流子)、电刷等组成。定子用于产生磁场,转子在定子磁场作用
32、下,得到转矩而旋转。换向器及时改变了电流方向,使转子能连续旋转下去。也就是说,直流电压加在电刷上,经换向器加到转子线圈,转子线圈流过电流而产生磁场,这磁场与定子的固定磁场作用,转子被强迫转动起来。当转子线圈转动时,由于磁场的相互作用,也将产生反电动势,反电势的大小正比于转子的速度,方向和所加的直流电压相反。图9(b)给出了等效电路。Rw代表转子绕组的总电阻,E代表与速度相关的反电动势。 永磁式换向器电机的特点如下:1、当电机直流电源固定时,电机的工作电流正比于转子负载的大小;2、加于电机的有效电压,等于外加直流电压减去反电动势。因此当用固定电压驱动电机时,电机的速度趋向于自稳定。因为负载增加时,转子有慢下来的倾向,于是反电动势减少,而
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2