基于FPGA的电机转速测速系统设计.docx
- 文档编号:23342075
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:58
- 大小:1.15MB
基于FPGA的电机转速测速系统设计.docx
《基于FPGA的电机转速测速系统设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的电机转速测速系统设计.docx(58页珍藏版)》请在冰豆网上搜索。
基于FPGA的电机转速测速系统设计
基于FPGA的电机转速测速系统设计
摘要
在现代工农业生产和日常工作生活中对机器设备的各方面要求越来越高,温度控制,电机测速等都是工农业生产中经常遇到的问题。
我们之所以研究基于FPGA的电机转速测速系统,那是迫于时代发展的需要。
随着科技的发展,我们发现当我们在对运动物体的速度量进行测量时由于器件选择不当产生了误差,从而直接或间接地影响了测量结果的精度,这就满足不了生产和生活的需要。
于是我们提出一种使用增量式光电编码器对运动物体速度进行测量的方法,避免了上述误差的产生,节约了成本而且实现简单,理论上可以达到更高的精度。
基于FPGA的速度测量系统设计,以QuartusⅡ为软件平台,采用模块化设计并通过数码管驱动电路静态显示最终结果。
具有外围电路少,集成度高,可靠性强等特点。
接下来本文详细的研究了对增量式光电编码器脉冲信号进行倍频、鉴向、计数器分频、锁存、运算、数据位选择和显示。
首先,介绍了FPGA的国内外研究现状,光电编码器的原理、FPGA的发展史、它的设计方法,它的原理与特点,可编程逻辑器件的基本设计思想,一般性可编程逻辑设计的理论,光电耦合器以及数码管显示;其次,针对以往设计的不足,采用了以高度集成的FPGA芯片为核心的设计方式,来实现增量式光电编码器输出信号的处理。
编码器输出的数据在FPGA芯片中进行倍频、鉴相、计数、锁存、运算、数据位选择等传输处理;最后,所得的数据经数码管显示。
关键词:
FPGA光电编码器VHDL语言电机
DesignofMotorRotationalSpeedMeasuringSystembasedonFPGA
Abstract
Inmodernindustrialandagriculturalproductionanddailylifeinallaspectsofthemachineryandequipmenthavebecomeincreasinglydemanding,temperaturecontrol,motorspeedandotherindustrialandagriculturalproductionareoftenproblems.ThereasonwhywestudymotorspeedFPGA-basedsystem,itisforcedtotheneedsofthetimes.Astechnologydevelops,wefoundthatwhenweareonthemovingobject'svelocitymeasuredamountofchoicewhenthedeviceisimproperbecausetheerrorproduced,therebydirectlyorindirectlyaffecttheaccuracyofthemeasurement.Thiscannotmeettheneedsofproductionandlife.Soweproposeauseofincrementalopticalencodertomeasurethespeedofthemovingobjectmethod,toavoidtheseerrorsgeneratecostsavingsandsimple,intheory,canachievehigheraccuracy.
ThespeedmeasurementsystemintheFPGAdesigntoQuartusⅡasthesoftwareplatform,modulardesignanddigitalcontroldrivecircuitthroughthedynamicdisplayofthefinalresult.Withlessperipheralcircuit,highintegration,highreliabilityandsoon.
Next,adetailedstudyofthisincrementalphotoelectricencoderpulsesignalmultiplier,Kam-to,count,clockmodule,control,dataselectionanddisplay.First,theintroductionoftheFPGAcurrentstudies,introducedthedevelopmenthistoryofopticalencoder,FPGAdevelopmenthistory,itsdesign,itsprinciplesandcharacteristics;thebasicprogrammablelogicdevicedesign,andgeneralprogrammablelogicdesigntheory.Second,forlessthanthepreviousdesign,usingahighlyintegratedFPGAchipasthecoreofthedesignapproachtoachieveincrementalphotoelectricencodersignalprocessing.EncoderoutputdataintheFPGAchipforfrequencydoubling,phase,counting,control,datatransmissionchoice;atlast,thedatacollectedbythedigitaldisplay.
Keywords:
FPGA;PhotoelectricalEncoder;VHDLLanguage;motor
1引言
1.1目的及意义
基于FPGA电机转速系统是工业和农业以及日常生活中不可缺少的一个系统。
它的开发引起了广泛的关注。
转速是指作圆周运动的物体在单位时间内所转过的圈数,它是电机极为重要的一个状态参数。
转速检测的快速性和精度将直接影响系统的效果和动静态性能,如何提高测量精度,如何减轻工作人员的工作负担,如何采取有效措施减少经济损失,如何保障工农业顺利进行等问题迫在眉睫。
因此,电机测速系统的研究与实现就具有了十分重要的意义!
这个系统采用FPGA芯片,光电编码器,光电耦合器,数码管等技术相结合,提高电机转速测量精度[1],有效杜绝测量不准确和误测等现象的发生。
电机转速测量系统可以应用于测量各种机械的转速,如冰箱压缩机、空调压缩机以及其它发动机、电动机的转速测量,也可用于电机转速的反馈以控制电机平稳运行和调速。
1.2研究现状及前景
目前国内外测量电机转速的方法很多,按照不同的理论方法,先后产生过模拟测速法(离心式转速表)、同步测速法(机械式或闪光式频闪测速仪)以及计数测速法。
计数测速法又可分为机械式定时计数法和电子式定时计数法。
传统的电机转速检测多采用测速发电机,也有采用电磁式(利用电磁感应原理或可变磁阻的霍尔元件等)、电容式(对高频振荡进行幅值调制或频率调制)等,还有一些特殊的测速器是利用置于旋转体内的放射性材料来发生脉冲信号。
其中应用最广的是光电式[2],光电式测速系统具有低惯性、低噪声、高分辨率和高精度的优点。
由于光电测量方法灵活多样,可测参数众多,一般情况下又具有非接触、高精度、高分辨率、高可靠性和反应快等优点,加之激光光源、光栅、光学码盘、CCD器件、光导纤维等的相继出现和成功应用,使得光电传感器在检测和控制领域得到了广泛的应用。
而采用光电编码器的电机转速测量系统测量准确度高、采样速度快、测量范围宽和测量精度高等优点,具有广阔的应用前景。
以前人们经常习惯于用单片机、PLC来开发电机转速测速系统[3]。
随着科学技术的不断提高,FPGA日益成熟,其强大的功能已被人们深刻认识。
使用FPGA来开发电机转速测速系统具有无法比拟的优点。
再加上光电编码器发展如此迅速,十分具有诱惑力。
于是,此次毕设采用光电编码器作为载体,以FPGA为核心进行设计开发。
这次的毕设我们主要是针对目前出现的测速系统进行改善和提高。
2FPGA和器件介绍
2.1FPGA概述
早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(EEPROM)三种。
由于结构的限制,它们只能完成简单的数字逻辑功能[4]。
随后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD,ProgrammableLogicDevice),它能够完成各种数字逻辑功能。
而任意一个组合逻辑都可以用“与一或”表达式来描述,所以,PLD能以乘积和的形式完成大量的组合逻辑功能。
PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。
它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。
还有一类结构更为灵活的逻辑器件是可编程逻辑阵列,它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。
在PAL的基础上,又发展了一种通用阵列逻辑(GAL),如GAL16V8,GAL22V10等。
它采用了EEPROM工艺,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。
随着数字电路应用越来越广泛,传统通用的数字集成芯片已经难以满足系统的功能要求,而且随着系统复杂程度的提高,所需通用集成电路的数量呈爆炸性增长,使得电路的体积膨大,可靠性难以保证。
此外,现代产品的生命周期都很短,一个电路可能需要在很短的周期内做改动以满足新的功能需求,对于采用通用的数字集成电路设计的电路系统来说即意味着重新设计和重新布线。
2.1.1FPGA设计方法
FPGA的常用设计方法包括自顶向下(Top-down)和自下而上(Down–top)[5],[6]。
所谓“自顶向下”设计方法,简单说就是先上后下,在功能级对产品设计进行定义,并结合功能仿真技术,以确保设计的正确性,在功能定义完成后,利用逻辑综合技术,将功能描述转化成为某一具体结构芯片的网表文件,输出给厂商的布局布线器进行布线。
布局布线结果还可通过仿真器,进行包括功能和时序后的验证,可以保证布局布线所带来的门延时和线延时不影响设计的性能。
由于功能描述可以完全独立于芯片的结构,在设计的初级阶段,设计师可不受芯片结构的约束,集中力量进行产品设计,进而避免了传统设计方法带来的重新设计风险。
大大缩短了设计周期;其次设计的再利用得到保证。
目前的电子产品正向着规模化方向发展,所谓的模块化就是对以往设计成果进行修改、组合和再利用,产生全新的或派生设计。
而“自顶向下”设计的功能描述可与芯片无关,因此可以同过EDA元件库的方式进行存档,以便将来重新利用。
设计规模大大提高,简单的语言描述即可完成复杂的功能,而不需要手工绘图。
芯片选择灵活,从而在设计规模、速度、芯片价格及系统性能要求等方面进行平衡,选择最佳结果。
由于自顶向下设计方法的优越性,所以目前大规模FPGA设计一般选择“自顶向下”的设计方法。
2.1.2FPGA原理及特点
FPGA的基本特点主要有[7]:
1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片;
2)FPGA可做其它全定制或半定制ASIC电路的中试样;
3)FPGA内部有丰富的触发器和I/O引脚;
4)FPGA电路设计周期最短、开发费用最低、风险最小;
5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
综合考虑,使用FPGA的成本优越性是很明显的。
第一,使用FPGA器件修改设计方便,设计周期缩短,使系统的研制开发费用降低;第二,FPGA器件可使印刷线路板面积和需要的插件减少,从而使系统的制造费用降低;第三,使用FPGA器件能使系统的可靠性提高,维修工作量小,进而使系统的维修服务费用降低。
总之,使用FPGA器件进行系统设计能够节约成本。
2.1.3FPGA的设计流程
一般来说,完整的FPGA设计流程包括电路设计与输入、功能仿真、综合、综合后仿真、实现、布线后仿真与验证和下板调试等主要步骤[8]。
编写本流程的目的是:
1)在于规范整个设计流程,实现开发的合理性、一致性、高效性;
2)形成风格良好和完整的文档;
3)实现在FPGA不同厂家之间以及从FPGA到asic的顺利移植;
4)便于新员工快速掌握本部门FPGA的设计流程。
其设计流程图如图2-1
所示。
2.1.4VHDL代码基本结构
一段完整的VHDL代码包含库声明(Library)、实体(Entity)、结构体(Architecture)、配置(Configuration)和包集合(Package)五部分。
1.库声明
库是经编译后的数据的集合,它存放包集合定义、实体定义、构造体定义和配置定义。
库的功能类似于操作系统中的目录,库中存放设计的数据。
在VHDL语言中,库的说明总是放在设计单元的最前面。
这样在设计单元内的语句就可以使用库中的数据。
由此可见,库的好处就在于使设计者可以共享已经编译过的设计结果。
在VHDL语言中可以存在多个不同的库,但是库和库之间是独立的。
不能相互嵌套。
当前在VHDL语言中存在的库大致可以分为两类,一类是用户自行生成的IP库,可以汇集自身设计需要所开发的共用包集合和实体等。
使用时要首先说明库名。
另一类是PLD,asic芯片制造商提供的库。
比如常用的74系列芯片、rom,rom控制器、Counter计数器等标准模块。
用户可以直接引用,而不必从头编写。
这类库又可以分为4种:
ieee库、std库、asic矢量库和work库。
在ieee库中有一个“std_logic_1164.all”的包集合是ieee正式认可的标准包集合。
std库是VHDL的标准库,在库中存放有称为“standrad”的包集合,库中还包含有称作textio的包集合,使用时应先说明库和包集合名。
asic库中存放着与逻辑门一一对应的实体,使用时要对库进行必要的说明。
work库是现行作业库,设计者所描述的VHDL语句不需要任何说明,都将存放在work库中,使用时无需进行任何说明。
2.实体
实体是VHDL程序的基本单元。
简单到可以是一个与门(ANDGate),但复杂到可以是一个系统。
但是,不管是简单的数字电路还是复杂的数字电路,其基本构成是一致的,都由实体说明和结构体两部分组成。
在层次化系统设计中,实体说明用于描述设计系统的外部接口信号,结构体用于描述系统的行为,系统数据的流程或者系统组织结构形式。
3.结构体
结构体是一个基本设计单元的实体,具体指明了该设计单元的行为,元件及内部的连接关系,它定义了设计单元具体的功能,结构体对其基本设计单元的输入输出关系,可以用3种方式描述,即行为描述、寄存器传输描述)和结构描述。
不同的描述方式,其描述语句不同。
而结构体的结构是完全一样的。
一个电路系统的程序设计只有一个实体,可以有多个结构体。
系统设计中的实体提供该设计系统的公共信息,结构体定义了各个模块内的操作特性。
一个设计实体至少包含一个结构体或多个结构体,构成一个电子系统的设计模型。
4.配置
配置用于从库中选取所需单元来组成系统设计的不同规格的不同版本,使被设计系统的功能发生变化。
配置语句描述层与层之间的连接关系以及实体与结构之间的连接关系,在仿真每一个实体时,可以利用配置来选择不同的结构体,进行性能对比试验以得到性能最佳的结构体。
5.程序包
程序包单纯地用来罗列VHDL语言中所要用到的信号定义、常数定义、数据类型、元件语句、函数定义和过程定义等。
它是一个可编译的设计单元,程序包的主要任务是共享相同的单元,多数设计实体共同分享所特有的数据时,程序包是公共存储区,在程序包内说明的数据允许其他的实体所引用。
因此,这些数据是可共享的,也就是对其他设计项目可见。
程序包由包体说明和包体两部分组成,包体说明是主设计单元,可以单独编译并插入设计库中,包体说明为程序包定义接口,声明包中的类型元件、函数和子程序,其方式与实体定义模块接口非常相似,区别在于Entity中指定哪些信号在元件外部可用而Package的说明语句则指定哪些子程序、常量和数据类型在Package外部可用。
包体是次级设计单元,可以在其对应的主设计单元之后,独立编译并插入设计库中。
包体用来存放程序包中指定的函数和过程本身的程序体,其方式与模块中结构体语句方法相同,包体中建立的内部子程序在程序包之外不可见。
即不能在VHDL程序中使用包体内部的子程序。
包体可以与元件的一个Architecture类比。
Architecture描述元件的行为,而包体描述包中所说明的子程序的行为。
2.2光电编码器简介
光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器[9]。
这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测装置组成。
光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。
由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。
此外,为判断旋转方向,码盘还可提供相位相差90o的两路脉冲信号。
增量式光电编码器是码盘随位置的变化输出一系列的脉冲信号,然后根据位置变化的方向用计数器对脉冲进行加或减计数,以此达到位置检测的目的。
2.2.1光电编码器的工作模型
光电编码器的模型有四部分:
图中1发光二极管,2光电圆盘,3转盘缝隙,4遮光板ABC光敏元件。
其模型如图2-2所示。
2.2.2光电编码器的分类
根据检测原理,编码器可分为光学式、磁式、感应式和电容式。
根据其刻度方法及信号输出形式,可分为增量式、绝对式以及混合式三种[10]。
1.增量式编码器
增量式编码器是直接利用光电转换原理输出三组方波脉冲A、B和C相;A、B两组脉冲相位差90o,从而可方便地判断出旋转方向,而C相为每转一个脉冲(一圈),用于基准点定位。
它的优点是原理构造简单,机械平均寿命可在几万小时以上,抗干扰能力强,可靠性高,适合于长距离传输。
其缺点是无法输出轴转动的绝对位置信息。
2.绝对式编码器
绝对编码器是直接输出数字量的传感器,在它的圆形码盘上沿径向有若干同心码道,每条道上由透光和不透光的扇形区相间组成,相邻码道的扇区数目是双倍关系,码盘上的码道数就是它的二进制数码的位数,在码盘的一侧是光源,另一侧对应每一码道有一光敏元件;当码盘处于不同位置时,各光敏元件根据受光照与否转换出相应的电平信号,形成二进制数。
它的特点是:
1)可以直接读出角度坐标的绝对值;
2)没有累积误差;
3)电源切除后位置信息不会丢失。
分辨率是由二进制的位数来决定的。
3.混合式绝对值编码器
混合式绝对值编码器,它输出两组信息:
一组信息用于检测磁极位置,带有绝对信息功能;另一组则完全用于增量式编码器的输出信息。
2.2.3光电编码器的工作原理
增量式光电编码器的工作原理是由旋转轴转动带动在径向有均匀窄缝的主光栅码盘旋转,在主光栅码盘的上面有与其平行的鉴向盘,在鉴向盘上有两条彼此错开90o相位的窄缝,并分别有光敏二极管接收主光栅码盘透过来的信号。
工作时,鉴向盘不动,主光栅码盘随转子旋转,光源经透镜平行射向主光栅码盘,通过主光栅码盘和鉴向盘后由光敏二极管接收相位差90o的近似正弦信号,再由逻辑电路形成转向信号和计数脉冲信号。
为了获得绝对位置角,在增量式光电编码器有零位脉冲,即主光栅每旋转一周,输出一个零位脉冲,使位置角清零。
利用增量式光电编码器可以检测电机的位置和速度。
其原理示意图如图2-3所示。
当码盘转动时,它的输出信号是相位差为90o的A相和B相脉冲信号。
从A,B两个输出信号的相位关系(超前或滞后)可判断旋转的方向。
当码盘正转时,A道脉冲波形比B道超前π/2,而反转时,A道脉冲比B道滞后π/2。
2.3光电耦合器简介
光电耦合器亦称光电隔离器,简称光耦[11]。
它是以光为媒介来传输电信号的器件,通常把发光器(发光二极管)与受光器(光敏半导体管)封装在同一管壳内。
当输入端加电信号时发光器发出光线,受光器接受光线之后就产生光电流,从输出端流出,从而实现了“电—光—电”转换。
以光为媒介把输入端信号耦合到输出端的光电耦合器,由于它具有体积小、寿命长、无触点,抗干扰能力强,输出和输入之间绝缘,单向传输信号等优点,在数字电路上获得广泛的应用
1.光耦的工作原理
耦合器以光为媒介传输电信号。
它对输入、输出电信号有良好的隔离作用,所以,它在各种电路中得到广泛的应用。
光耦合器一般由三部分组成:
光的发射、光的接收及信号放大。
输入的电信号驱动发光二极管,使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。
这就完成了电—光—电的转换,从而起到输入、输出、隔离的作用。
由于光耦合器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。
又由于光耦合器的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力。
所以,它在长线传输信息中作为终端隔离元件可以大大提高信噪比。
2.光电耦合器的优点
(1)输入和输出端之间绝缘,绝缘电阻可大于一万欧,耐压可超过一千伏。
(2)由于“光”传输的单向性,所以信号从光源只单向传输到光接收器,其输出信号也不会影响输入端。
(3)光电耦合器件的共模抑制比很大,可以很好地抑制干扰并消除噪音。
(4)容易和逻辑电路配合。
(5)响应速度快。
时间常数通常在微秒级。
(6)无触点、寿命长、体积小、耐冲击。
3.光电耦合器发展状况
光电耦合器的市场虽不太大,但却以近五成的年增长率上升,其主要原因是每一个程序控制器里都要用到更多的光电耦合器。
现在,光电耦合器已显示出一种朝大容量和高速度方向发展的明显趋势。
USA、JAPAN两国生产的光电耦合器以红外发光二极管和光敏器件管组成的器件为主,该类器件大约占整个USA、JAPAN两国生产的全部光电耦合器的六成。
因为这种类型的器件不仅电流传输效率高,而且响应速度比较快,因而能够满足大多数应用场合要求。
JAPAN横河电机公司的三种高速光电耦合器的绝缘电压都在3000伏以上,其中5082-43610型超高速数字光电耦合器和5082-4361型高共模抑制型光电耦合器的响应速度均可达到10Mb/s,它们的电流传输效率高达60%以上。
USA摩托罗拉公司生产的4N25、4N26、4N27型光电耦合器具有很高的输入、输出绝缘性能,其频率响应可达300kHz,而开关时间只有几微秒。
中国国内有关单位投入大量人力物力也研究和开发了各种光电耦合器件。
如上海半导体器件八厂、上海无线电十七厂等。
重庆光电技术研究
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 电机 转速 测速 系统 设计