FPGA在电机测速系统中的应用_第1页
FPGA在电机测速系统中的应用_第2页
FPGA在电机测速系统中的应用_第3页
FPGA在电机测速系统中的应用_第4页
FPGA在电机测速系统中的应用_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE41存档日期:存档编号:本科生毕业设计(论文)论文题目:FPGA在电机测速系统中的应用姓名:XX学院:电气工程及自动化学院专业:电气工程及其自动化指导教师:XXXXX大学教务处印制PAGE1摘要基于FPGA的电机速度测量系统设计,以MAX+PLUSⅡ为软件平台,采用原理图和VHDL文本设计并通过数码管驱动电路静态显示电机转速。该系统能够完成对电机转速参数和数据的采集,实时记录、处理、分析显示的功能,通过软件设计省去了大量硬件电路设计,具有一定的电路设计集成化,经实际应用证实,该系统运行稳定、安全可靠、抗干扰能力强、高速精确。本文介绍了FPGA的国内外研究现状和它的工作原理、发展历史、结构和特点,简单介绍光电编码器的原理,Max+plusII的流程等。并对增量式光电编码器脉冲信号进行倍频、鉴向、锁存、运算、数据位选择和显示模块进行了详细的介绍。编码器输出的数据在FPGA芯片中进行倍频、鉴相、计数、锁存、运算、数据位选择等传输处理;最后,所得的数据经数码管显示。关键词:光电编码器FPGAVerilogHDL语言电机测速AbstractFPGAbasedmotorspeedmeasurementsystemdesign,withMAX+PLUSIIasasoftwareplatform,theschematicdiagramandVHDLtextdesignandthroughdigitaltubedrivingcircuitforstaticdisplayofmotorspeed.Thesystemcancompletethespeedofrotationofthemotorparametersanddataacquisition,real-timerecording,processing,analysisanddisplayfunctions,throughthesoftwaredesignsavesthehardwarecircuitdesign,hasacertaincircuitdesignintegration,throughthepracticalapplicationconfirms,thesystemhasstableoperation,safetyandreliability,strongantiinterferenceability,highspeedprecision.ThisarticleintroducedtheFPGAresearchstatusathomeandabroadanditsworkingprinciple,developinghistory,structureandcharacteristic,introducedtheprincipleofphotoelectricencoder,theMax+plusIIprocess.Andtheincrementalopticalencoderpulsesignalfrequency,phase,frequency,tocounterlatch,operation,databitselectionanddisplaymoduleindetail.TheencoderoutputdataintheFPGAchipforfrequency,phase,counter,latch,operation,databitselection,transmissionandprocessing;finally,thedatacollectedbyadigitaltubedisplay.Keywords:Optical-electricalEncoderFPGAVerilogHDLMotorspeed目录摘要 IAbstract II1绪论 11.1课题研究的目的和意义 11.2本课题的研究现状及分析 11.3本课题的主要工作 22FPGA芯片简介 32.1FPGA的工作原理 32.2典型的FPGA结构 42.3FPGA的优点 62.4VerilogHDL语言介绍 83方案选择 103.1光电编码器简介 103.1.1光电编码器的分类 113.1.2增量式光电编码器的原理 123.2数字测量方法 123.2.1M法测速 133.2.2T法测速 133.2.3M/T法测速 143.3三种测速方法的精度指标 153.3.1分辨率 153.3.2测速误差率 163.4测速方法的比较和选择 173.5光电耦合器介绍 184VerilogHDL编程工具 194.1MAX+plusⅡ简介 194.2MAX+plusⅡ开发系统的特点 195系统总体设计 215.1系统总体结构图 215.2总体设计流程 215.2.1系统主要模块的划分 225.2.2各个模块的功能 226系统详细设计 236.1详细功能设计 236.2系统层次结构设计 236.2.1倍频、鉴向模块 246.2.2计数模块 276.2.3锁存器模块 306.2.4运算模块 326.2.5译码模块 346.3整体模块设计 366.4本章小节 37致谢 39[参考文献] 40XXX大学本科生毕业设计FPGA在电机测速上的应用XXX大学本科生毕业设计FPGA在电机测速系统中的应用1绪论1.1课题研究的目的和意义基于FPGA的电机测速显示系统是生产工业中不可缺少的一个系统。它的开发具有十分重要的意义。转速是指作圆周运动的物体在单位时间内所转过的圈数,它是电机极为重要的一个状态参数。转速检测的快速性和精度高低将直接影响系统的效果和动静态性能,也会直接影响生产工业的经济。如何提高测量的速度和精度,如何减轻工作人员的工作负担,如何采取有效措施减少经济损失,如何保障工农业顺利进行等问题迫在眉睫。因此,电机测速系统的研究与实现具有了十分重要的意义!这个测速系统采用FPGA芯片,光电编码器,光电耦合器,七段数码管等,提高了电机转速测量的速度和精度[1],杜绝了误测现象的发生。电机测速显示系统可以应用于各种机械的转速测量,例如在发动机,电动机,卷扬机,机床主轴等旋转设备,具有十分重要的意义。1.2本课题的研究现状及分析到目前为止,国内外测量电机转速的方法有许多种,例如永磁直流测速发电机,无刷直流测速,单片机电机测速系统,同步测速法等等。传统的电机测速装置主要采用测速发电机,但由于电刷和换向器的摩擦,增加了被测电极的粘滞转矩;电刷的接触压降造成了输出低速的不灵敏区,电刷与换向器的间断接触或不良接触引起射频噪声,产生无线电干扰的高频纹波;以及电枢压降引起输出电压的不稳定。应用最多的是光电测量法[2],其灵敏度高、重量轻、尺寸小、抗电磁干扰性强,可以测量种类繁多的物理量。而采用光电编码器的电机转速测量系统测量准确率高、采样速度快、测量范围宽和测量精度高等优点,具有十分广阔的应用前景。人们习惯用PLC,单片机,DSP来开发电机测速系统[3]。近年来随着FPGA技术的日趋成熟,在此技术上开发的电机测速系统包含PLC,单片机,DSP的很多优点。以FPGA为核心技术再加上使用先进的光电测速方法,以光电编码器作为载体,是目前的电机测速系统无法比拟的。1.3本课题的主要工作本课题对FPGA在电机测速上的应用作如下研究,主要包括以下几方面:(1)对电机转动发出的脉冲的采集所选器件的选择(2)比较几种测速方案的优缺点并选择最终测速方案(3)详细地介绍系统设计中的各个模块并仿真2FPGA芯片简介FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。2.1FPGA的工作原理FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。现场可编程门阵列(FPGA)是可编程器件。与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了即可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及个模块之间或模块与I/O间的连接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程[6]。2.2典型的FPGA结构(1)可编程输入输出单元(I/O)可编程输入/输出单元简称I/O单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求,其示意结构如下面所示。FPGA内的I/O按组分类,每组都能够独立地支持不同的I/O标准。通过软件的灵活配置,可适配不同的电气标准与I/O物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。目前,I/O口的频率也越来越高,一些高端的FPGA通过DDR寄存器技术可以支持高达2Gbps的数据速率。外部输入信号可以通过I/O模块的存储单元输入到FPGA的内部,也可以直接输入FPGA内部。当外部输入信号经过I/O模块的存储单元输入到FPGA内部时,其保持时间(HoldTime)的要求可以降低,通常默认为0。为了便于管理和适应多种电器标准,FPGA的I/O被划分为若干个组(bank),每个bank的接口标准由其接口电压VCCO决定,一个bank只能有一种VCCO,但不同bank的VCCO可以不同。只有相同电气标准的端口才能连接在一起,VCCO电压相同是接口标准的基本条件。(2)可配置逻辑块(CLB)CLB是FPGA内的基本逻辑单元。CLB的实际数量和特性会依器件的不同而不同,但是每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些选型电路(多路复用器等)和触发器组成。开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。在Xilinx公司的FPGA器件中,CLB由多个(一般为4个或2个)相同的Slice和附加逻辑构成,如图所示。每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。Slice是Xilinx公司定义的基本逻辑单位,一个Slice由两个4输入的函数、进位逻辑、算术逻辑、存储逻辑和函数复用器组成。算术逻辑包括一个异或门(XORG)和一个专用与门(MULTAND),一个异或门可以使一个Slice实现2bit全加操作,专用与门用于提高乘法器的效率;进位逻辑由专用进位信号和函数复用器(MUXC)组成,用于实现快速的算术加减法操作;4输入函数发生器用于实现4输入LUT、分布式RAM或16比特移位寄存器(Virtex-5系列芯片的Slice中的两个输入函数为6输入,可以实现6输入LUT或64比特移位寄存器);进位逻辑包括两条快速进位链,用于提高CLB模块的处理速度。(3)数字时钟管理模块(DCM)业内大多数FPGA均提供数字时钟管理(Xilinx的全部FPGA均具有这种特性)。Xilinx推出最先进的FPGA提供数字时钟管理和相位环路锁定。相位环路锁定能够提供精确的时钟综合,且能够降低抖动,并实现过滤功能。(4)嵌入式块RAM(BRAM)大多数FPGA都具有内嵌的块RAM,这大大拓展了FPGA的应用范围和灵活性。块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。RAM、FIFO是比较普及的概念,在此就不冗述。CAM存储器在其内部的每个存储单元中都有一个比较逻辑,写入CAM中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址,因而在路由的地址交换器中有广泛的应用。除了块RAM,还可以将FPGA中的LUT灵活地配置成RAM、ROM和FIFO等结构。在实际应用中,芯片内部块RAM的数量也是选择芯片的一个重要因素。单片块RAM的容量为18k比特,即位宽为18比特、深度为1024,可以根据需要改变其位宽和深度,但要满足两个原则:首先,修改后的容量(位宽深度)不能大于18k比特;其次,位宽最大不能超过36比特。当然,可以将多片块RAM级联起来形成更大的RAM,此时只受限于芯片内块RAM的数量,而不再受上面两条原则约束。(5)丰富的布线资源布线资源连通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用以完成芯片Bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。在实际中设计者不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上讲,布线资源的使用方法和设计的结果有密切、直接的关系。(6)底层内嵌功能单元内嵌功能模块主要指DLL(DelayLockedLoop)、PLL(PhaseLockedLoop)、DSP和CPU等软处理核(SoftCore)。现在越来越丰富的内嵌功能单元,使得单片FPGA成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向SOC平台过渡。DLL和PLL具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。Xilinx公司生产的芯片上集成了DLL,Altera公司的芯片集成了PLL,Lattice公司的新型芯片上同时集成了PLL和DLL。PLL和DLL可以通过IP核生成的工具方便地进行管理和配置。(7)内嵌专用硬核内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(HardCore),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。例如:为了提高FPGA的乘法速度,主流的FPGA中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的FPGA内部都集成了串并收发器(SERDES),可以达到数十Gbps的收发速度。2.3FPGA的优点使用FPGA器件设计数字电路,不仅可以简化设计过程,而且可以降低整个系统的体积和成本,增加系统的可靠性。它们无需花费传统意义下制造集成电路所需大量时间和精力,避免了投资风险,成为电子器件行业中发展最快的一族。使用FPGA器件设计数字系统电路的主要优点如下:(1)设计灵活使用FPGA器件,可以不被标准系列器件在逻辑功能上所限制,而且修改逻辑可在系统设计和使用过程的任一阶段中进行,并且只须通过对所用的FPGA器件进行重新编程即可完成,给系统设计提供了很大的灵活性。(2)增大功能密集度功能密集度是指在给定的空间能集成的逻辑功能数量。可编程逻辑芯片内的组件门数高,一片FPGA可代替几片、几十片乃至上百片中小规模的数字集成电路芯片。用FPGA器件实现数字系统时用的芯片数量少,从而减少芯片的使用数目,减少印刷线路板面积和印刷线路板数目,最终导致系统规模的全面缩减。(3)提高可靠性减少芯片和印刷板数目,不仅能缩小系统规模,而且它还极大的提高了系统的可靠性。具有较高集成度的系统比用许多低集成度的标准组件设计的相同系统具有高得多的可靠性。使用FPGA器件减少了实现系统所需要的芯片数目,在印刷线路板上的引线以及焊点数量也随之减少,所以系统的可靠性得以提高。(4)缩短设计周期由于FPGA器件的可编程性和灵活性,用它来设计一个系统所需时间比传统方法大为缩短。FPGA器件集成度高,使用时印刷线路板电路布局布线简单。同时,在样机设计成功后,由于开发工具先进,自动化程度高,对其进行逻辑修改也十分简便迅速。因此,使用FPGA器件可大大缩短系统的设计周期,加快产品投放市场的速度,提高产品的竞争能力。(5)工作速度快FPGA/CPLD器件的工作速度快,一般可以达到几百兆赫兹,远远大于DSP器件。同时,使用FPGA器件后实现系统所需要的电路级数又少,因而整个系统的工作速度会得到提高。(6)增加系统的保密性能很多FPGA器件都具有加密功能,在系统中广泛的使用FPGA器件可以有效防止产品被他人非法仿制。(7)降低成本使用FPGA器件实现数字系统设计时,如果仅从器件本身的价格考虑,有时还看不出来它的优势,但是影响系统成本的因素是多方面的,综合考虑,使用FPGA的成本优越性是很明显的。首先,使用FPGA器件修改设计方便,设计周期缩短,使系统的研制开发费用降低;其次,FPGA器件可使印刷线路板面积和需要的插件减少,从而使系统的制造费用降低;再次,使用FPGA器件能使系统的可靠性提高,维修工作量减少,进而使系统的维修费用降低。总之,使用FPGA器件进行系统设计能节约成本。2.4VerilogHDL语言介绍VerilogHDL是一种硬件描述语言(HDL:HardwareDiscriptionLanguage),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。VerilogHDL是目前世界上最流行的两种硬件描述语言之一。(1)基本逻辑门,例如and、or和nand等都内置在语言中。(2)用户定义原语(UDP)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。(3)开关级基本结构模型,例如pmos和nmos等也被内置在语言中。(4)提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。(5)可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模。(6)VerilogHDL中有两类数据类型:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。(7)能够描述层次设计,可使用模块实例结构描述任何层次。(8)设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。(9)人和机器都可阅读Verilog语言,因此它可作为EDA的工具和设计者之间的交互语言。(10)VerilogHDL语言的描述能力能够通过使用编程语言接口(PLI)机制进一步扩展。PLI是允许外部函数访问Verilog模块内信息、允许设计者与模拟器交互的例程集合。(11)设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL)到算法级,包括进程和队列级。(12)能够使用内置开关级原语在开关级对设计完整建模。(13)同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。(14)VerilogHDL能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。(15)在行为级描述中,VerilogHDL不仅能够在RTL级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述。(16)能够使用门和模块实例化语句在结构级进行结构描述。(17)在VerilogHDL的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模。(18)VerilogHDL还具有内置逻辑函数,例如&(按位与)和|(按位或)。(19)对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。(20)可以显式地对并发和定时进行建模。(21)提供强有力的文件读写能力[8]。3方案选择电机转速测量装置是工业自动化设备的重要组成部分。根据工业环境下高可靠性的特点,提出了在自动化设备运行的PLC上增加部分硬件,实现转速测量。以PLC为控制核心,结合光电码盘,设计一种测速系统,测速原理如下:码盘固定于电机轴上,随着电机一起转动,接收管接收透过码盘孔的光源,在t时间内输出一串方波。假设与电机同轴连接的光电码盘每旋转一周,电机的转速为:n=60N/Zt输出脉冲数为N,电机转速为n(r/min),检测时间为t(s),在t内的计数脉冲数为N。系统是利用控制设备运行PLC的两个晶体管输出点和一个高速输入点,增加转速信号检测单元及转速显示单元组成转速测量装置。PLC程序中任意指定的数据,如数量、时间、温度、压力等通过计数器、计时器、数据寄存器等将数据送入指定的显示缓冲区内,经驱动子程序通过两个输出端口送出编码至PLC外部的数显表上。但是基于PLC的电机转速测量系统功能密集度低,可编程性和灵活性没有太大优势,反应速度和精度不是太好,而且PLC成本较高。经过综合考虑,决定开发基于FPGA的电机转速测量系统。FPGA的集成度很高且速度很快,比较容易满足测速系统的要求,同时使系统可靠性比采用通用IC芯片更高。另外,FPGA还具有设计方便、灵活和校验快的特点,并且设计可随时改变。利用FPGA对电机转速进行检测的方法,利用可编程器件具有现场可编程的优点,可方便地对测速系统的数字处理部分进行修改与完善使用VerilogHDL语言编写程序,并且在MAX+plus2平台上完成,编译,调试,仿真。总之这样既解决了测速装置的可靠性问题,又降低了系统的成本,是一种较为理想的方案。3.1光电编码器简介光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测装置组成。光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。此外,为判断旋转方向,码盘还可提供相位相差90o;的两路脉冲信号。3.1.1光电编码器的分类根据检测原理,编码器可分为光学式、磁式、感应式和电容式。根据其刻度方法及信号输出形式,可分为增量式、绝对式以及混合式三种。(I)增量式编码器增量式编码器是直接利用光电转换原理输出三组方波脉冲A、B和Z相;A、B两组脉冲相位差90o;,从而可方便地判断出旋转方向,而Z相为每转一个脉冲,用于基准点定位。它的优点是原理构造简单,机械平均寿命可在几万小时以上,抗干扰能力强,可靠性高,适合于长距离传输。其缺点是无法输出轴转动的绝对位置信息。(II)绝对编码器绝对编码器是直接输出数字量的传感器,在它的圆形码盘上沿径向有若干同心码道,每条道上由透光和不透光的扇形区相间组成,相邻码道的扇区数目是双倍关系,码盘上的码道数就是它的二进制数码的位数,在码盘的一侧是光源,另一侧对应每一码道有一光敏元件;当码盘处于不同位置时,各光敏元件根据受光照与否转换出相应的电平信号,形成二进制数。这种编码器的特点是不要计数器,在转轴的任意位置都可读出一个固定的与位置相对应的数字码。显然,码道越多,分辨率就越高,对于一个具有N位二进制分辨率的编码器,其码盘必须有N条码道。绝对式编码器是利用自然二进制或循环二进制(葛莱码)方式进行光电转换的。绝对式编码器与增量式编码器不同之处在于圆盘上透光、不透光的线条图形,绝对编码器可有若干编码,根据读出码盘上的编码,检测绝对位置。编码的设计可采用二进制码、循环码、二进制补码等。它的特点是:(1)可以直接读出角度坐标的绝对值;(2)没有累积误差;(3)电源切除后位置信息不会丢失。但是分辨率是由二进制的位数来决定的,也就是说精度取决于位数,目前有10位、14位等多种。(III)混合式绝对值编码器混合式绝对值编码器,它输出两组信息:一组信息用于检测磁极位置,带有绝对信息功能;另一组则完全同增量式编码器的输出信息[9]。3.1.2增量式光电编码器的原理增量式光电编码器的工作原理是由旋转轴转动带动在径向有均匀窄缝的主光栅码盘旋转,在主光栅码盘的上面有与其平行的鉴向盘,在鉴向盘上有两条彼此错开90o相位的窄缝,并分别有光敏二极管接收主光栅码盘透过来的信号。工作时,鉴向盘不动,主光栅码盘随转子旋转,光源经透镜平行射向主光栅码盘,通过主光栅码盘和鉴向盘后由光敏二极管接收相位差90o的近似正弦信号,再由逻辑电路形成转向信号和计数脉冲信号。为了获得绝对位置角,在增量式光电编码器有零位脉冲,即主光栅每旋转一周,输出一个零位脉冲,使位置角清零。利用增量式光电编码器可以检测电机的位置和速度。其原理示意图如图3-1所示。当码盘转动时,它的输出信号是相位差为90o的A相和B相脉冲信号。从A,B两个输出信号的相位关系(超前或滞后)可判断旋转的方向。当码盘正转时,A道脉冲波形比B道超前π/2,而反转时,A道脉冲比B道滞后π/2。图3-13.2数字测量方法由光电脉冲发生器产生与被测转速成正比的脉冲,测速装置将输入脉冲转换为以数字形式表示的转速值[3]。常用的脉冲数字(P/D)转换方法有三种:(1)M法—脉冲直接计数方法;(2)T法—脉冲时间计数方法;(3)M/T法—脉冲时间混合计数方法。3.2.1M法测速在一定的时间T内测取光电脉冲发生器所产生的脉冲信号的个数M1,用以计算这段时间内的平均转速,称作M法测速(如公式3.1所示)。把M1除以T就可得到脉冲发生器输出脉冲的频率,所以又称频率法。电动机每转一圈共产生Z个脉冲(Z=倍频系数*光电脉冲发生器码盘孔数或光栅数),把F除以Z就得到电动机的转速,在习惯上,时间T以秒为单位,而转速是以每分钟的转数r/min为单位,则电动机的转速为(3.1)在上式中,Z和T均为常数,因此转速n正比于脉冲个数M1。转速较高时M1大,量化误差较小,随着转速的降低误差增大,转速过低时M1将小于1,测速装置便不能正常工作。所以M法测速只适用于高速段。图3-2M测速发3.2.2T法测速在光电脉冲发生器所产生的相邻两个转速脉冲信号的间隔时间内,用一个计数器对已知频率为f0的高频时钟脉冲进行计数,并由此来计算转速,称作T法测速(如公式3.2所示)。在这里测速时间源于光电脉冲发生器输出脉冲的周期,所以又称周期法。在T法测速中,准确的测速时间Tt是用所得的高频时钟脉冲个数M2计算出来的,即Tt=M2/f0,则电动机转速为 (3.2)高速时M小,量化误差大,随着转速的降低误差减小,所以T法测速适用于低速段,与M法恰好相反。图3-3T测速发3.2.3M/T法测速把M法和T法结合起来,即检测T时间内光电脉冲发生器所产生的脉冲信号个数M1,又检测同一时间间隔内的高频时钟脉冲个数M2用来计算转速,称作M/T法测速(如公式3.3所示)。设高频时钟脉冲的频率为f0,则准确的测速时间T=M2/f0,而电动机转速为 (3.3)采用M/T法测速时,应保证高频时钟脉冲计数器与光电脉冲发生器输出脉冲计数器同时开启与关闭,以减少误差(如图3-3),只有等到光电脉冲发生器输出脉冲图3-4M/T法测速上升沿到达时,两个计数器才同时允许开始或停止计数。由于M/T法的计数值M1和M2都随着转速的变化而变化。当电机高速时,相当于M法测速,到最低速时M=1,自动进入T法测速。通过图3-3分析可知M法测量转速在极端情况下会产生±1个转速脉冲的误差,而T法在极端情况下,时间的测量会产生±1个高频脉冲周期。由于转速脉冲的频率远小于高频脉冲的频率,因此如果用转速脉冲信号的上升沿(或下降沿)来同步计数器的起止,在预定的测速时间内,转速脉冲信号的计数值将为整数(无误差),只有高频时钟脉冲会产生±1的误差,因其很小,影响可以忽略,所以用M/T法实现测速具有较高的测速精度[11]。3.3三种测速方法的精度指标3.3.1分辨率分辨率是用来衡量一种测速方法对被转速变化的分能力的在数字测速方法中,用改变一个计数字所对应的转速变化量来表示分辨率,用Q表示。设被测转速由N1变为N2时,引起测量计数值改变了一个数字,则测速装置的分辨率是(转/分)。Q越小,测速装置的分辩能力越强,系统控制精度越高。(1)M法测速的分辨率在M法测速中,当计数值由M1变为M1+1时,按式(3.1)。相应的转速由变为,则M法测速分辨率为 (3.4)可见,M法测速的分辨率与实际转速的大小无关。从式(3.4)还可看出,要提高分辨率(即减小Q),必须增大T或Z。但在实际中,两者都受到限制,增大Z受到脉冲发生器制造工艺的限制,增大T势必使采样周期变长。(2)T法测速的分辨率为了使结果得到正值,T法测速的分辨率定义为时钟脉冲个数由M2变为M2-1时转速的变化量,于是可得下式(3.5) 综合(3.2)和(3.5),可得 (3.6)由上式可以看出,T法测速的分辨率与转速高低有关,转速越低,Q值越小,分辨率越强,这也说明,T法更适于测量低速。(3)M/T法测速的分辨率M/T法测速在高速段与M法相近,在低速段与T法相近,所以兼有M法和T法的特点,在高速和低速都有较强的分辨能力。 (3.7)3.3.2测速误差率测速误差率是指测速装置对实际转速测量的精确程度,常用测量值与实际值的相对误差来表示,即(3.8)测速误差率反映了测速方法的准确性,测量误差越小,准确度越高,系统控制精度越高。δ的大小取决于测速元件的制造精度和测速方法。(1)M法测速误差率在M法测速中,测速误差决定于脉冲发生器的制造精度,以及脉冲发生器输出脉冲前沿和测速时间采样脉冲前沿不齐所造成的误差等等,最多可能产生1个脉冲的误差。因此,M法测速误差率的最大值为 (3.9)由上式可知,δmax与M1成反比,即转速愈低,M1愈小,误差率愈大。(2)T法测速误差率采用T法测速时,产生误差的原因与M法中相仿,M2最多可能产生1个脉冲的误差。因此,T法测速误差率的最大值为(3.10)低速时,脉冲发生器相邻脉冲间隔时间长,测得的高频时钟脉冲个数M2多,所以误差率小,测速精度高,故T法测速适用于低速段。两种测速方法的比较:M法测速在高速段分辨率强;T法测速在低速段分辨率强。(3)M/T法测速误差率在低速时M/T法趋向于T法,在高速段M/T法测速相当于T法的M1次平均,而在这M1次中最多产生一个高频时钟脉冲的误差。因此,M/T法测速可在较宽的转速范围内,具有较高的测速精度。3.4测速方法的比较和选择从测量分辨率上看,T法测低速时分辨率较高,但随着转速的增大,分辨率变坏;M法则相反,高速时分辨率较高,而低速时分辨率变低;同步M/T法结合了前两者的优点,在整个转速范围内有较高的分辨率。从测量精度上看,T法测速的测量精度随着转速的增加而减小;M法的测速精度在高速时较高,而在低速时变低;同步M/T法的测速精度介于二者之间。综合以上两方面,同步M/T法是一种比较好的方法。在许多系统中都采用这种方法。而本论文要求的转速测量范围是50~3000r/min,测量的相对误差不大于1%,M/T法综合了二者的优点在测量中误差更小,所以采用M/T法就能达到要求。本文使用M/T法。3.5光电耦合器介绍在光电耦合器输入端加电信号使发光源发光,光的强度取决于激励电流的大小,此光照射到封装在一起的受光器上后,因光电效应而产生了光电流,由受光器输出端引出,这样就实现了电一光一电的转换。基本工作特性:(1)共模抑制比很高在光电耦合器内部,由于发光管和受光器之间的耦合电容很小(2pF以内)所以共模输入电压通过极间耦合电容对输出电流的影响很小,因而共模抑制比很高。(2)输出特性光电耦合器的输出特性是指在一定的发光电流IF下,光敏管所加偏置电压VCE与输出电流IC之间的关系,当IF=0时,发光二极管不发光,此时的光敏晶体管集电极输出电流称为暗电流,一般很小。当IF>0时,在一定的IF作用下,所对应的IC基本上与VCE无关。IC与IF之间的变化成线性关系,用半导体管特性图示仪测出的光电耦合器的输出特性与普通晶体三极管输出特性相似。(3)光电耦合器可作为线性耦合器使用。在发光二极管上提供一个偏置电流,再把信号电压通过电阻耦合到发光二极管上,这样光电晶体管接收到的是在偏置电流上增、减变化的光信号,其输出电流将随输入的信号电压作线性变化。光电耦合器也可工作于开关状态,传输脉冲信号。在传输脉冲信号时,输入信号和输出信号之间存在一定的延迟时间,不同结构的光电耦合器输入、输出延迟时间相差很大。4VerilogHDL编程工具4.1MAX+plusⅡ简介MAX+plusⅡ的英文全称是MultipleArraymatrixandProgrammableLogicUserSystemⅡ(多阵列矩阵及可编程逻辑用户系统Ⅱ),它是altera公司专为本公司生产的第三代PLD(ProgrammableLogicdevice,可编程逻辑器件)的研制和应用而开发的软件(altera第四代PLD开发系统被称为:quartusⅡ,主要用于设计大规模的CPLD/FPGA)。MAX+plusⅡ中图形输入方式和文本输入方式是主要的两种输入方式。MAX+plusⅡ是一个完全集成化的可编程逻辑环境,为数字系统开发提供了设计输入、编译处理、性能分析、功能验证及器件编程等应用程序,具有突出的灵活性和高效性。MAX+plusⅡ还具有适用范围广、器件结构独立、通用性强、兼容性好、集成度与自动化程度高等特点,另外,它的界面良好,使用便捷,被誉业界最易用易学的EDA软件。利用EDA技术中的MAX+plusⅡ作为开发工具,将设计的电路图综合成网表文件写入其中,制成ASIC芯片,突出优点是可反复编程,集成度非常高,数据速率快,自顶向下设计,查找和修改错误方便,同时先仿真,正确后再下载测试并应用,因而具有较大的灵活性;根据本文提出的设计思路,可方便的设计其它卷积码编解码器,有广阔的应用前景[8]。MAX+plusⅡ是一种与结构无关的全集成化设计环境,使设计者能对Altera的各种FPGA系列方便地进行设计输入、快速处理和器件编程。MAX+plusⅡ开发系统具有强大的处理能力和高度的灵活性。其主要优点:与结构无关、多平台、丰富的设计库、开放的界面、全集成化、支持多种硬件描述语言(HDL)等。4.2MAX+plusⅡ开发系统的特点(1)开放的界面Max+plusⅡ支持与Cadence,Exemplarlogic,MentorGraphics,Synplicty,Viewlogic和其它公司所提供的EDA工具接口。(2)与结构无关Max+plusⅡ系统的核心Complier支持Altera公司的FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX5000和Classic可编程逻辑器件,提供了世界上唯一真正与结构无关的可编程逻辑设计环境。(3)完全集成化Max+plusⅡ的设计输入、处理与较验功能全部集成在统一的开发环境下,这样可以加快动态调试、缩短开发周期。(4)丰富的设计库Max+plusⅡ提供丰富的库单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑功能(Macro-Function)以及新型的参数化的兆功能(Mage-Function)。(5)模块化工具设计人员可以从各种设计输入、处理和较验选项中进行选择从而使设计环境用户化。(6)硬件描述语言(HDL)Max+plusⅡ软件支持各种HDL设计输入选项,包括VHDL、VerilogHDL和Altera自己的硬件描述语言AHDL。(7)Opencore特征Max+plusⅡ软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函数[12]。5系统总体设计5.1系统总体结构图图图5-1系统总体设计框图显示模块输出FPGA(数据处理模块)增量式旋转光电编码器数字信号电机输入5.2总体设计流程自顶向下、由粗到细,逐步分解的设计是数字系统的设计的基本,最顶层电路是指系统的整体要求,最下层是具体的逻辑电路的实现。将一个复杂的系统逐渐分解成若干功能模块,从而进行设计描述,并且应用EDA软件平台自动完成各功能模块的逻辑综合与优化,门级电路的布局,再下载到硬件中实现设计叫做自顶向下的设计方法。具体设计过程如下:(1)设计输入。MAX+plusⅡ支持多种设计输入方式,如原理图输入、波形输入、文本输入和它们的混合输入。(2)设计处理。设计的核心环节是设计输入完后,用MAX+plusⅡ的编译器编译、查错、修改直到设计输入正确,同时将对输入文件进行逻辑简化、优化,最后生成一个编程文件。(3)设计仿真。检查方法设计仿真和定时分析在MAX+plusⅡ平台上完成的。其目的是检验电路的逻辑功能是否正确,同时测试目标器件在最差情况下的时延。对于检验组合逻辑电路的竞争冒险和时序逻辑电路的时序、时延等起到了很重要的作用。(4)器件编程。当电路设计、校验之后,实现目标器件的物理编程是用MAX+plusⅡ的Programmer将编译器所生成的编译文件下载到具体的CPLD器件中[13]。5.2.1系统主要模块的划分经过分析后此系统可划分三个功能模块1.信号采集模块;2.信号处理模块;3.数据显示模块。5.2.2各个模块的功能信号采集模块主要是完成电动机数据的采集工作,利用增量式光电编码器,经光电隔离,将电机转速的模拟信号转化为数字脉冲信号。信号处理模块采用FPGA主要是完成对电机转速信息数据的接收、倍频、比较、处理、控制输出等操作。利用verilogHDL语言对FPGA进行编程,完成对数据采集模块产生的脉冲信号进行计数,并作相应处理。信号显示模块是完成对电动机测速后的转速显示工作。通过显示数码管来完成度转速、转向的显示。6系统详细设计6.1详细功能设计本课题是利用光电编码器、光电耦合器、FPGA芯片、七段LED数码管来完成电机转速的测量。为了实现测量电路的小型化、集成化,充分发挥FPGA的输入输出口和内部逻辑单元,整个数据处理处理工作都在FPGA芯片中进行。为了使系统更加清晰,我们把系统分成模块来处理。系统详细结构图如下图6-1和下图6-2所示。光电编码器光电编码器数码管显示光电隔离FPGA图6-1系统框图FPGAFPGA倍频鉴相译码倍频鉴相译码计算锁存器计数器计算锁存器计数器图6-2FPGA内部框图图6-2FPGA内部框图6.2系统层次结构设计光电编码器、光电耦合器上面章节作了详细介绍,这里不再详细说明。下面接着详细说明FPGA内部的数据处理部分。按照FPGA自顶向下的设计方法,在FPGA内部,将光电编码器输入的信号分成倍频、鉴向模块、计数模块、时钟模块、运算模块和译码模块这几部分。倍频、鉴向模块主要功能是产生四倍频信号和方向信号分别提供给计数器和数码管输出;计数模块的主要功能是对倍频信号和标准时钟信号分别计数并向锁存器提供数据和数据锁存信号。时钟模块的主要功能是控制整个系统的时钟信号,避免时钟偏斜的发生。运算模块的功能是对锁存器输出的信号进行运算使之得到电机的相应转速。译码模块的功能是将运算模块输出的四组分别代表个、十、百、千位的四位BCD码进行译码。6.2.1倍频、鉴向模块光电编码器信号的倍频是提高测量精度的关键。我们采用信号上升沿鉴别方法的原理来进行倍频输入信号与其延时信号异或后,就可得到相应的倍频信号。而对于延时的处理方法也很多,如图所示,微分型电路其信噪比小,抗干扰性差,积分型电路可以提高信噪比,但和微分型电路一样有大缺点,就是当输入信号频率高时,电容充放电不及时,导致输出信号失真;对于各种倍频电路来说,电阻和电容的参数不可能完全一致,所以倍频后的各路脉冲宽度不等。因此,本系统设计采用了数字延时线路(寄存器延时)可以很好的克服了以上延时电路的缺点,延时的时间和各路倍频的脉冲宽度由时钟控制,倍频后的脉冲宽度均匀一致。鉴向主要判段A相脉冲超前B相还是滞后B相。1.倍频A相信号和其时延信号异或后可得到A相的二倍频信号,同理B相信号和其时延信号异或后可得到B相的二倍频信号。最后将A相和B相的倍频信号异或后赋给输出CNT,即可得到4倍频信号。倍频程序如下:modulebp(cnt,a,b,clk);inputa,b,clk;outputcnt;regcnt;regs10,s11,d3,d2,s12,s13;always@(posedgeclk)begins10<=a;s11<=b;d2<=s10;d3<=s11;s12<=s10^d3;s13<=d2^s11;cnt<=s12^s13;endendmodule生成模块图如下:图6-5倍频器模块图对于该倍频模块而言,它的作用是将采集的电机脉冲进行倍频处理,即对A,B相的脉冲的频率放大到4倍。将倍频后输出的脉冲提供给计数器计数。A,B对应于通道编码器经光电隔离后的输出信号;BEIPIN为倍频后的输出信号。CLK式中为在给定的400KHz的时钟脉冲,仿真波形图如下所示:图6-6倍频信号的仿真波形上图为4倍频模块的仿真图形,由图可知A,B的输出信号经过倍频模块处理后得到CNT这个4倍频于A,B的输出信号。4倍频模块的功能符合设计要求。2.鉴相鉴向主要判段A相脉冲相位超前B相还是滞后B相。当A相脉冲相位超前B相脉冲90°时,电机正转,DIRECT输出为‘1’;当A相脉冲相位落后B相脉冲90°时,电机即为反转,DIREC输出为‘0’。鉴相程序如下:modulejx(direct,a,b);inputa,b;outputdirect;regdirect;always@(posedgeb)begindirect<=a;endendmodule模块图和仿真图形如下所示:图6-7鉴相模块图模块的主要管脚描述:A,B为输入端口,光电编码器采集经过光电隔离的输入信号;DIRECT为输出端口,用于判别电机正反转后的结果输出。图6-8鉴相信号的仿真波形CLK时钟为在分频模块产生的400KHz的时钟信号;A,B对应于通道编码器经光电隔离后的输出信号;DIRECT,CNT为鉴相、倍频后的输出信号,其中CNT为四倍频后的输出,DIRECT为鉴向后的输出信号。模块图和仿真图下图所示。图6-9倍频鉴相模块图图6-10倍频鉴相仿真波形6.2.2计数模块对于信号的测量方式,一般有两种方法:一、直接对四倍频后的信号进行乘法运算,二、使用等精度测量方法。为了提高测量精度,本设计使用的是等精度测量方法。等精度测量技术的闸门时间不是固定的值,而是被测信号的整数倍的时间内对标准时钟脉冲信号进行计数再通过数学公式推导得到被测信号的频率。本设计当中计数用的标准脉冲频率为400KHz,而一般电机的转速不会超过3000r/min,经光电编码器1000P/R和四倍频后,频率也就不会超过200kHz。本设计的计数模块包含两个部分:1.四倍频信号计数;2.高频时钟信号计数。以下进行两个部分介绍:四倍频信号计数器Lpm_counter是Megafunctions库中的一个常用模块,是参数化的计数器模块。调用计数器模块并设置参数,得到下图:图6-10倍频计数器模块原理图参数设置说明:LPM_DIRECTION为计数方向,由于我们设计功能需要加计数,故将其设置为“UP”(UP为加计数,DUWN为减计数);LPM_WIDTH为计数器位宽,由于计数器的模为201,故设置位宽为8;LPM_MODULES为模,由于采样周期短,故这是201即可;生成计数器模块图如下:图6-11计数器1模块图管脚说明如下:CNT:来自编码器的倍频信号;CLR:系统的复位信号;Q[7..0]:计数器对CNT的计数结果输出;COUT:计数器的进位输出端。计数器模块仿真图如图6-11所示。图6-11计数器1仿真波形图每次在CNT倍频信号的上升沿的时候计数器对CNT信号计数加“1”,当计数达到200时,COUT进位输出为高电平,CLR为高电平时,计数器清零。高频时钟信号计数器调用计数器模块并设置参数,得到下图:图6-13高频计数器模块原理图参数设置说明:LPM_DIRECTION为计数方向,由于我们设计功能需要加计数,故将其设置为“UP”(UP为加计数,DUWN为减计数);LPM_WIDTH为计数器位宽,由于计数器的模为401,故设置位宽为9;LPM_MODULES为模,由于采样周期短,故这是401即可;生成计数器模块图如下:图6-14计数器2模块图管脚说明如下:CLK:来自系统时钟信号;CLR:系统的复位信号;Q[7..0]:计数器对CLK的计数结果输出;COUT:计数器的进位输出端。高频计数器仿真波形图如图6-15所示。图6-15计数器2仿真波形图6.2.3锁存器模块锁存模块连接计数模块和乘法模块。计数器模块的输出是随着clk和cnt信号不断变化的,当给定一个锁存信号时(即向锁存器发出一个写入信号load),锁存器在load上升沿将计数器输出的数据锁入。锁存器在load的上升沿将最近一次锁入的计数器计数值输出给运算模块。由于要对倍频信号和高频信号进行计数后的锁存,故设置2个锁存器。1.倍频信号锁存器倍频信号锁存器的程序如下:modulelatch_18(qn,din,load);inputload;input[7:0]din;output[7:0]qn;reg[7:0]qn;always@(posedgeload)beginqn=din;endendmodule生成倍频信号锁存器模块图如下:图6-16倍频信号锁存器模块图倍频信号锁存模块介绍如下:DIN[7..0]:来自倍频小号计数器模块的计数结果;LOAD:控制计数器结果的写入;QN[7..0]:锁存器对计数器结果的输出。2.高频信号锁存器高频信号锁存器的程序如下:modulelatch_19(qn,din,load);inputload;input[8:0]din;output[8:0]qn;reg[8:0]qn;always@(posedgeload)beginqn=din;endendmodule生成高频信号锁存器模块图如下:图6-17高频信号锁存器模块图锁存模块介绍如下:DIN:来自计数器模块的计数结果;QN:来自计数模块的写信号输出。LOAD:控制锁存器锁入6.2.4运算模块因为本设计最终目的是显示电机转速的数值,而计数模块所能的得到的只是光电编码器在规定时间内倍频后的脉冲个数,所以设计当中必然要对锁存器输出的计数值进行计算才能得到电机的十进制各位转速值。本设计调用了LPM宏功能模块中的乘法器模块和除法器模块,来实现转速计算的功能。1.乘法器模块调用参数化乘法器模块lpm_mult并设置参数,得到下图:图6-18乘法器模块原理图具体参数设置如下:INPUT_A_IS_CONSTANT=NO是定义dataa[]为变量不是常量;INPUT_B_IS_CONSTANT=YES是定义datab[]为常量;LPM_WIDTHA=8定义dataa[]端口的数据宽度为8;LPM_WIDTHB=16定义datab[]端口的数据宽度为16;LPM_CONSTANT为常数模块,LPM_CAVLUE=6000定义常数为6000。生成乘法器模块图如下:图6-19乘法器模块图管脚说明:A[7..0]为倍频锁存器存入的数据;R[23..0]为乘法器结果输出。2.除法器模块调用参数化除法器模块lpm_divide并设置参数,得到下图:图6-20除法器模块原理图除法器模块参数说明:LPM_WIDTHD=9,定义除数的位宽为9。LPM_WIDTHN=24,定义被除数的位宽为24。生成除法器模块图如下:图6-21除法器模块图模块管脚说明:N[23..0]被除数的输入端口;D[8.

温馨提示

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

评论

0/150

提交评论