信息工程学院vhdl毕业设计_第1页
信息工程学院vhdl毕业设计_第2页
信息工程学院vhdl毕业设计_第3页
信息工程学院vhdl毕业设计_第4页
信息工程学院vhdl毕业设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录摘 要21 引 言41.1相位测量的应用41.2 相位测量技术的历史和现状51.3 鉴相型系统的工作原理61.4 相位测量的各种方法及其基本原理61.5 相位测量误差的产生72 光电编码器测量原理及应用82.1 光电编码器分类82.2 光电编码器原理及应用102.2.1 光栅测量原理102.2.2 辨向原理122.2.3 细分技术132.2.4 本设计对光电编码器的要求133 CPLD及VHDL语言143.1 CPLD和VHDL语言简介143.1.1 CPLD143.1.2 VHDL语言163.2 VHDL开发环境174 四倍频细分法测相位的VHDL语言实现184.1 测量原理及方案18

2、4.2具体实现过程194.2.1 四倍频的实现194.2.2 鉴向的原理及实现224.3 vhdl语言程序设计224.4结果分析244.4.1 编译仿真244.4.2 比较分析264.4.3 误差分析265 总 结27致 谢28参考文献29附 录30摘 要利用CPLD和VHDL语言的相位精确测量,相位测量在很多测量系统中占有重要的位置,采用光电编码器可以精确地完成这项工作。光电编码器是一种可以传递位置信息的传感器,它利用光栅衍射原理实现位移数字变换。当编码器转轴旋转时,有相应的脉冲输出,编码器轴转一圈会输出固定的脉冲,脉冲数由编码器光栅的线数决定。当需要提高分辨率时,可利用 90 度相位差的

3、A、B 两路信号进行倍频,因此如何处理光电编码器的信号是一个十分重要的研究内容。本设计采用四倍频细分法提高系统的分辨力。在相差四分之一莫尔条纹的间距的位置上安装两个光电元件,得到两个相位相差/2的电信号,然后通过对两个信号的处理转化为四个计数脉冲,实现四倍频细分。最后将计数脉冲进行计数,所得的计数值即为相位偏移量。要求计数器具有预置,清零等功能。本课题采用CPLD和VHDL语言进行该系统设计。关键词:光电编码器,CPLD 数据采集,计数器 1 引 言 相位测量广泛应用于各个行业的系统检测和智能控制中。比如机床的精确定位,机器人关节的位置感应都需要精确的相位测量。在现代工业、科学研究、自动控制、

4、工程技术以及国防建设中,精确的相位测量和校准有着重要的地位和广泛的应用。相位的定义是同一频率的二信号之间的时间差。如图-1所示: 图1-1 正弦信号间的时间关系1.1相位测量的应用相位的测量通常是指两个同频率信号之间相位差。相位计是一种应用非常广泛的电子测量仪器。随着科学技术的发展,相位测量技术的应用己深入到各个领域,包括电力、机械、航空航天、医疗、化工等。正确使用相位测量技术可以解决电气、电子及其它非电量测量的许多问题。例如:(1)测量网络的传输特性。只要测出幅频特性及相位特性,就可了解网络的全部传输特性。(2)测量谐振频率。根据谐振时其相位移为零特性即可求出其谐振频率。(3)测量时延特性。

5、通过测量被测网络的相位,可得到被测网络的相时延、频率特性及群时延频率特性。(4)测量和校正伺服系统。相位测量技术经常应用于光电伺服控制中。光电伺服控制技术经历了交磁电机扩大机系统、磁放大器控制、晶体管控制、集成电路控制、计算机控制的发展过程,至今已进入了一个全新的时期,其主要标志为智能功率集成电路和数字信号处理器的出现,使得伺服系统模块化和全数字化容易实现,长期以来建立在现代控制理论或其它一些复杂控制算法基础上的控制原理得以快速在线计算及进行对系统的优化处理。在伺服系统的设计中,在实时性允许的前提下,一般来说,总是尽可能的用软件资源代替硬件资源,以降低成本,简化硬件系统结构,提高系统的性价比,

6、因此,采用CPLD是一个不错的选择。1.2 相位测量技术的历史和现状相位测量技术的研究由来己久,最早的研究和应用是在数学的矢量分析和物理学的圆周运动以及振动学方面,随之在电气及电力方面也相应得到重视和发展。随着电子技术和计算机技术的发展,相位测量技术得到了迅速的发展,相位测量仪器已系列化和商品化,广泛应用于测量RC、LC网络、放大器相频特性以及依靠信号相位传递信息等方面的电子设备。现代相位测量技术的发展可分为3个阶段:(1)是在早期采用的诸如李沙育法、阻抗法、和差法、三电压法等,这些测量方法通常采用比对法和平衡法,虽然方法简单,但测量精度较低。(2)是利用数字专用电路、微处理器等来构成测试系统

7、,使测量精度得以大大提高。(3)是充分利用计算机及智能化测量技术,如在美国等发达国家采用了LABVIEW虚拟仪器来构成测试系统,从而大大简化设计程序,增强功能,使得相应的产品精度更高、功能更全。同时随着各种新的算法、测量手段和新的设计方法和器件出现,相位测量技术也孕育着改进和突破的新机。 在相位测量技术方面,美国一直处于领先地位,主要的研究机构及公司有NBS、HP、WD.YU公司及DRJWET2实验室。俄罗斯在此领域也具有较高的水平。商品化的通用相位计的水平为低频段uHz数量级,最高频率可达100GHz. 相位分辨率可达0.0010,相位测量范围为360度,-180度180度,少数可达720度

8、。 随着电子技术的迅速发展,国外从60年代后期开始设计和制造低频相位计,并开始用于工频相位的测量。在国内,60和70年代是相位测量研究的黄金时代,有众多的研究所、工厂及其它行业部门均进行了相位测量技术的研究并取得了一定的成果。1964年我国第一台相位测量仪器US2型交流相位差计问世,其极限误差为30度。1979年12月国家计量总局正式批准进行相位量值传递。从80年代开始,将微处理机广泛地用于各个技术领域,多种型号的电子相位计投入市场,取代了以往的相位计。在70年代中期以后,由于资金、技术、管理、市场等因素的原因,国内相位测量技术的发展进入了低潮,研究相位测量的单位和科技人员越来越少。目前,国内

9、生产商品化相位计的主要厂家仅有两三家,而且型号少。总的说来,我国的相位测量技术与先进国家相比尚有较大的差距,主要体现在产品品种较少,配套产品少;产品测试功能单一;仪器精度、数字化和自动化程度不高;相位计量标准不完备。 目前国外提出了改进相位测量精确度的方法,包括有: (1)采用专用数字处理芯片,利用正余弦表格及付立叶变换等方法来计算相位差,可大大提高测量精度。 (2)采用新器件及设计方法提高相位测量精度及展宽工作频率范围。 (3)采用新的算法来进行相位测试。 (4)采用高精度相位测量设备,得到相位输出信号(可精确到0.0010),利用桥路与输入信号相位进行比较,从而测出相位差。 现代电子测量仪

10、器与智能测量技术、计算机技术紧紧结合在一起,每一次计算机技术和电子技术的革命都带来电子测量仪器的革命。因此,只有不断的采用新技术和新方法,才能使相位计的性能和精度得以不断的提高。1.3 鉴相型系统的工作原理 在鉴相型系统中,激磁电压是频率、幅值相同,相位差为 /2的交变电压: Us = Um sint Uc = Um cost 则: Uo =Uos +Uoc=KUscos1KUcsin1 = KUm sint cos1KUmcost sin1 = K Um sin(t 1)结论:只要能测出Uo与Us相位差1,就可求得相对位移量X。1.4 相位测量的各种方法及其基本原理相位测量方法很多:大致可分

11、为模拟方法和数字方法两类。模拟方法(如矢量法、相乘器法、二极管鉴相法等)是先对多个相位差脉冲进行积分,然后计算这多个相位差脉冲的宽度,再取平均值求相位,这种方法有一定精度,但是电路复杂,而且对元器件要求很高。而数字方法具有精度高、速度快、频带宽和便于实时测量和实现测量的自动化、智能化等特点,因此相位测量技术逐渐向数字化发展。下面分述常见各种相位测量方法。(1)直接示波器测量法 主要有比较法和椭圆法(李沙育图形法)(2)相位差转换为时间间隔进行测量 其基本思想是将被测信号过零点时间差t与周期T应用模拟或数字(计数)方法加以测量,找出导关系,由电表或显示屏直接显示出被测信号相位差。(3)过零鉴相法

12、又分单向过零鉴相和双向过零鉴相单向过零就是在信号的一个周期限内只用一个过零点(如正向过零或负向过零)来检测信号相位,此方法由于测量误差较大而被双向过零法和中心测距法取代。双向过零技术是指每个周期的两个过零点均用于测量相位,这种测相方法是最后来用前后过零值平均的方法。分析表明,由于通过前后沿引起的随机误差具有双方向性,即正、负过零点引起的误差大小相等,方向相反,使得误差得以明显减小。(4)用频率计数器进行测量相位:使用频率计数器测量相位实际上是通过测量信号A、B之间的时间间隔t=tA-tB和信号的周期T,并以此为基础计算相位值而实现的。 (式中:f为被测信号频率) (1-1)1.5 相位测量误差

13、的产生相位测量的不确定度会受到很多因素影响:目前,国内的相位计,由于测量方法引入的误差及干扰,大大影响了测量精确度,因此对相位误差的研究,具有较大的意义。 相位计电路引入的误差主要包括以下几种:(1)标准频率误差和计数器的误差。(2)相位计输入电路及接口引入的误差。如输入引线及输入电阻、电容的分布电容引入的相位误差。(3)信号的形成误差。如信号周期不均匀,信号中含有干扰信号或由于波形畸变产生谐波引入的误差,此类误差广泛存在于种相位计中。由于各种因素的影响,使得信号包括了基形信号、谐波信号、噪声、直流电平等,从而对相位测量精度产生了较大的影响。(4)过零比较器检测引入的误差。目前大多数相位计均采

14、用过零比较器转变成矩形波的方法测量相位,则测量信号幅度(斜率)的改变,门坎电平不同等而引起过零点的改变就会引入误差。 ( 5 ) 其他误差。主要包括: a.基本误差。当两路信号电平相等时,由于相位计两路信号处理通道不平衡引入的误差 b.当两路信号电平不相等时而引入的附加相位误差c.两通道由于隔离不足而引起的交叉稳合和非线性引入的误差。d.工频干扰引入的误差 e.正弦信号整形成方波造成的误差。为了克服以往相位测量的缺点,迫切需要找到一种更好的相位测量方法论,本设计在综合以往相位测量方法优缺点的基础上,研究一种更效更精确的相位测量技术。其原理是通过光电编码器为传感器,通过细分原理和四倍频技术来实现

15、相位的精确测量。2 光电编码器测量原理及应用光电编码器是一种可以传递位置信息的传感器,通过光电编码器我们可以比较准确的知道机器人行走的距离和转弯角度,它是一个红外发射接收模块,经常与码盘配合使用。它是一种集光、机、电为一体的数字化检测装置。在精密定位、速度、长度、加速度、振动等方面得到广泛的应用,它具有分辨率高、精度高、结构简单、体积小、使用可靠、易于维护、性价比高等优点。近10几年来,发展为一种成熟的多规格、高性能的系列工业化产品,在数控机床、机器人、雷达、光电经纬仪、地面指挥仪、高精度闭环调速系统、伺服系统等诸多领域中得到了广泛的应用,在国内外受到重视和推广。在本设计中起了重要的作用。2.

16、1 光电编码器分类表2-1 光电编码器分类数字式模拟式增量式绝对式增量式绝对式回转式脉冲编码盘圆光栅绝对式脉冲编码盘旋转变压器圆感应同步器圆磁尺三速圆感应同步器直线式直线光栅激光干涉仪多通道透射光栅直线感应同步器磁尺三速感应同步器绝对磁尺 a. 增量式编码器特点: 增量式编码器转轴旋转时,有相应的脉冲输出,其计数起点任意设定,可实现多圈无限累加和测量。编码器轴转一圈会输出固定的脉冲,脉冲数由编码器光栅的线数决定。需要提高分辨率时,可利用 90 度相位差的 A、B 两路信号进行倍频或更换高分辨率编码器。其结构如下: 图2-1 增量式编码器结构图b. 绝对式编码器特点:绝对式光电编码器可有若干编码

17、,根据读出码盘上的编码,检测绝对位置。它精度高、惯量小、稳定性好,能够直接输出数字量形式的绝对位置信息,与控制单元的连接简单方便,已成为中小功率伺服系统使用的主流位置反馈。这种编码器的特点是不要计数器,在转轴的任意位置都可以读出一个固定的与位置相对应的数字码。绝对式编码器有与位置相对应的代码输出,通常为二进制码或 BCD 码进行光电转换的。从代码数大小的变化可以判别正反方向和位移所处的位置,绝对零位代码还可以用于停电位置记忆。绝对式编码器的测量范围常规为 0360 度。增量式码盘通常刻两个码道,每道对应于一个光电接收元件,两道有相同数目的等间隔光栅线,两道之间空间相差90°(即1/

18、4 d , d 为光栅线间距) 以实现四倍频输出。绝对式码盘对圆周上连续的确定位置进行编码,位置不同编码不同。普通绝对式码盘的码道数与其二进制位数(即码盘的位置分辨率。分辨率越高,可能达到的精度也越高) 相同,每道对应于一个光电接收元件。图2-2给出了普通增量式码盘的图形 图2-2 普通增量式码盘2.2 光电编码器原理及应用光电编码器是利用光栅衍射原理实现位移数字变换的。 光栅测量原理光栅是在基体上刻有均匀分布条纹的光学元件。用于位移测量的光栅称为计量光栅。光栅主要由标尺光栅、指示光栅、光路系统和光电元件等组成。标尺光栅的有效长度即为测量范围。必要时,标尺光栅还可接长。指示光栅比标尺光栅短得多

19、,但两者刻有同样栅距。 在玻璃的表面上制成的透明与不透明间隔相等的线纹,称为透射光栅;在金属镜面上制成的全反射与漫反射间隔相等的线纹,称为反射光栅,也可以把线纹做成具有一定角度的衍射光栅。前者使光线通过光栅后产生明暗条纹,后者反射光线并使之产生明暗条纹。测量位移的光栅称为长光栅,测量角位移的光栅称为圆形光栅。在长光栅中,若a为刻线宽度,b为缝隙宽度,则Wa+b称为光栅的栅距(也称光栅常数)。通常ab,或a:b1.1:0.9。线纹密度一般为每毫米100、50、25和10线。有些栅距达12mm,但很少用。 .使用时两光栅相互重叠,两者之间有微小的空隙d(取dW 2/,为有效光波长),使其中一片固定

20、,另一片随着被测物体移动,即可实现位移测量。光栅式位移传感器具有分辨力高(可达1m或更小)、测量范围大(几乎不受限制)、动态范围宽等优点,且易于实现数字化测量和自动控制,是数控机床和精密测量中应用较广的检测元件。其缺点是对使用环境要求较高,在现场使用时要求密封,以防止油污、灰尘、铁屑等的污染。 . 当指示光栅和标尺光栅的线纹以一个微小的夹角相交时,由于挡光效应(当线纹密度50条/mm时)或光的衍射作用(当线纹密度100条/mm时),在与光栅线纹大致垂直的方向上(两线纹夹角的等分线上)产生出亮、暗相间的条纹,这些条纹称为“莫尔条纹”,如图2-3莫尔条纹的生成所示。图2-3莫尔条纹的生成莫尔条纹有

21、如下的重要特征: 。(1)莫尔条纹由光栅的大量刻线共同形成,对线纹的刻划误差有平均抵消作用,能在很大程度上消除短周期误差的影响。 。(2)在两光栅沿刻线的垂直方向作相对移动时,莫尔条纹在刻线方向移动。两光栅相对移动一个栅距W,莫尔条纹也 同步移动一个间距BH,固定点上的光强则变化一周。而且在光栅反向移动时,莫尔条纹移动方向也随之反向。 。(3)莫尔条纹的间距与两光栅线纹夹角之间的关系为   (2-1)式中BH莫尔条纹的间距; W光栅栅距; 两光栅刻线间的夹角(rad)。 从上式可知,当W一定时,越小,则B越大。这相当于把栅距放大了1/倍,提高了测量的灵敏度。一般夹角很小,W

22、可以做到约0.01mm,而B可以做到68mm。采用特殊电子线路可以区分出B/4的大小,因此可以分辨出W/4的位移量。例如W=0.01mm的光栅可以分辨0.0025mm的位移量。 . 若用光电元件接收莫尔条纹移动时光强的变化,则光信号被转换为电信号(电压或电流)输出。输出电压信号的幅值为光栅位移量x的函数,即 : (2-2) 上式中u0输出信号中的直流分量;Um输出正弦信号的幅值; x两光栅间的瞬时相对位移。.将该电压信号放大、整形使其变为方波,经微分电路转换成脉冲信号,再经过辨向电路和可逆计数器计数,则可在显示器上以数字形式实时地显示出位移量的大小。位移量为脉冲数与栅距的乘积。当栅距为单位长度

23、时,所显示的脉冲数则直接表示出位移量的大小。 辨向原理在一固定点观察时,无论可动光栅片是向左或向右移动,莫尔条纹同样都是作明暗交替的变化,后面的数字电路都将发生同样的计数脉冲,从而无法判别光栅移动的方向,也不能正确测量出有往复移动时位移的大小。因而必须在测量电路中加人辨向电路。 . .在图2-4辨向逻辑原理中,两个相隔1/4莫尔条纹间距的光电元件,将各自得到相差/2的电信号u1和u2。它们经整形转换成两个方波信号u1和u2。从图中波形的对应关系可看出,当光栅沿A方向移动时,u1经微分电路后产生的脉冲(图中充填的脉冲)正好发生在u2处于“l”电平时,从而经 Yl 输出一个计数脉冲;而u1经反相并

24、微分后产生的脉冲(图中未充填的脉冲)则与u2的“0”电平相遇,与门Y2被阻塞,没有脉冲输出。当光栅沿方向移动时,u1的微分脉冲发生在u2为“0”电平时,与门Y1无脉冲输出;而u1的反相微分脉冲则发生在u2的“1”电平时,与门Y2输出一个计数脉冲。u2的电平状态实际上是与门的控制信号,移动方向不同,u1所产生的计数脉冲的输出路线也不同。于是可以根据运动方向正确地给出加计数脉冲或减计数脉冲,再将其输入可逆计数器,即可实时显示出相对于某个参考点的位移量。 图2-4 辨向逻辑原理图 细分技术。 细分技术是在莫尔条纹信号变化的一个周期内,给出若干个计数脉冲来减小脉冲当量的方法。细分方法有机械细分和电子细

25、分两类。若以移过的莫尔条纹的数来确定位移量,其分辨力为光栅栅距。为了提高分辨力和测得比栅距更小的位移量,可采用细分技术。电子细分法中较常用的是四倍频细分法。在辨向原理中已知,在相差 BH/4 位置上安装两个光电元件,得到两个相位相差/2的电信号。若将这两个信号反相就可以得到四个依次相差/2 的信号,从而可以在移动一个栅距的周期内得到四个计数脉冲,实现四倍频细分。也可以在相差BH/4 位置上安放四只光电元件来实现四倍频细分。这种方法不可能得到高的细分数,因为在一个莫尔条纹的间距内不可能安装更多的光电元件。但它有一个优点,就是对莫尔条纹产生的信号波形没有严格要求。 本设计对光电编码器的要求增量式码

26、盘是根据轴所转过的角度,输出一系列脉冲,并通过计数电路,对脉冲进行累计计数,得到相对角位移。由于单个绝对码盘的角位移的测量范围仅为0°360°,需多个码盘才能测量大于360°的角位移,从而提高了系统的价格和复杂程度;而增量式码盘转角测量范围只受计数电路的位数限制,结构简单,价格较低,因此得到广泛应用。而绝对式码盘在任意位置都可给出与位置相对应的数字转角输出量,不存在四倍频的问题。本设计提到的光电码盘,都是指增量式码盘。3 CPLD及vhdl语言3.1 CPLD和VHDL语言简介 CPLDCPLD(Complex Programmable Logic Device,

27、复杂可编程逻辑器件)是在PAL、GAL等逻辑器件的基础之上发展起来的。同以往的PAL、GAL相比较,CPLD的规模比较大,适合于时序、组合等逻辑电路应用场合,它可以替代几十甚至上百块通用IC芯片,这样的CPLD实际上就是一个子系统部件。由于它具有集成度高、速度快、开发周期短、费用低、用户可定义功能及可重复编程和擦写等许多优点,其应用领域不断扩大。这些器件的灵活性和通用性使得它们已成为研制和开发复杂数字系统的理想选择。其结构图如下:PIALABLABLABLABLABLABLABLABLABLABLABLABLABLABLABLAB输入输出块逻辑单元连线资源 图3-1 CPLD结构图 (1)CP

28、LD的发展历程由于数字集成电路广泛应用的社会,因此数字集成电路本身在不断地进行更新换代。它由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC 的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC 芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。 这一阶

29、段的产品主要有PAL(可编程阵列逻辑)和GAL(通用阵列逻辑)。 PAL 由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。 PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM 技术和EEPROM 技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。 PLA 器件既有现场可编程的,也有掩膜可编程的。在PAL 的基础上,又发展了一种通用阵列逻辑GAL (Generic Array Logic),如GAL16V8,GAL22V10 等。它采用了 E

30、EPROM工艺,实现了电可按除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。 这些早期的PLD 器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。 为了弥补这一缺陷,20 世纪 80 年代中期。 Altera 和Xilinx 分别推出了类似于PAL 结构的扩展型 CPLD(Complex Programmab1e Logic Dvice)和与标准门阵列类似的 FPGA(Field Programmable Gate Array),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。

31、这两种器件兼容了PLD 和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它 ASIC(Application Specific IC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用门阵列、PLD 和中小规模通用数字集成电路的场合均可应用FPGA 和CPLD 器件。(2)CPLD的特点: 单片机在时序和延迟方面优于FPGA/CPLD,但在速度、芯片容和数字逻辑方面不及FPGA/PLD。 CPLD 能完成任何数字器件的功能,上

32、至高性能CPU,下至简单的 74 电路,都可以用 CPLD 来实现。单片机在时序和延迟方面优于FPGA/CPLD,但在速度、芯片容和数字逻辑方面不及FPGA/PLD。 CPLD 能完成任何数字器件的功能,上至高性能CPU,下至简单的 74 电路,都可以用 CPLD 来实现。 CPLD 如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB 完成以后,还可以利用CPLD的在线修改能力,随时修改设计而不必改动硬件电路。使用CPLD 来开发数字电路,可以大大缩短设计时间,减少PCB 面积,提高系统的可靠

33、性。 CPLD的这些优点使得CPLD技术在90年代以后得到飞速的发展,同时也大大推动了EDA 软件和硬件描述语言(HDL)的进步。目前有多家公司生产CPLD/FPGA,最大的三家是:Altera ,Xilinx, Lattice。 VHDL语言随着EDA 技术的发展,使用硬件语言设计PLD/FPGA 成为一种趋势。目前最主要的硬件描述语言是VHDL 和Verilog HDL。 VHDL发展的较早,语法严格,而 Verilog HDL 是在C 语言的基础上发展起来的一种硬件描述语言,语法较自由。 VHDL 和Verilog HDL 两者相比,VHDL 的书写规则比Verilog 烦琐一些,但ve

34、rilog 自由的语法也容易让少数初学者出错。VHDL语言是美国国防部在1981年提出了一种新的HDL,全称为VHSIC Hardware Description Language,VHDL的主要优点是:(1) 功能强大.设计灵活(2)强大的系统硬件描述能力(3) 移植能力强 (4)VHDL语法规范 标准,易于共享与复用(5)支持广泛易于修改(6)与工艺无关 (7) 易于ASIC移植 (8)上市时间短,成本低在使用VHDL/VerilogHD 语言设计之前,有必要先了解整体VHDL/VerilogHD 语言的设计完整流程为:(1)文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL 编辑

35、环境。通常VHDL文件保存为.vhd 文件,Verilog 文件保存为.v 文件 (2)功能仿真:将文件调入 HDL 仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真) (3)逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式和信号的连接关系。逻辑综合软件会生成.edf(edif)的EDA 工业标准文件。 (4)布局布线:将.edf 文件调入PLD 厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD/FPGA 内。 (5)时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。 (6)

36、编程下载:确认仿真无误后,将文件下载到芯片中。VHDL 与原理图输入法的关系:VHDL和传统的原理图输入方法的关系就好比是高级语言和汇编语言的关系。VHDL 的可移植性好,使用方便,但效率不如原理图;原理图输入的可控性好,效率高,比较直观,但设计大规模 CPLD/FPGA时显得很烦琐,移植性差。在真正的PLD/FPGA 设计中,通常建议采用原理图和VHDL 结合的方法来设计,适合用原理图的地方就用原理图,适合用VHDL 的地方就用VHDL,并没有强制的规定。在最短的时间内,用自己最熟悉的工具设计出高效,稳定,符合设计要求的电路才是我们的最终目的。 3.2 VHDL开发环境本设计通过vhdl语言

37、编程,实现对光电编码器输出信号的处理,以达到相位测量的目的。开发环境采用Altera公司的Quartus 6.0为Altera公司的专门开发平台,它包括设计输入、编译、仿真、延迟分析,器件编程等功能。该平台使用方便,允许用户用原理图、VHDL语言、波形图等多种输入方法进行设计。设计实体文件的输入综合布局连线时序分析仿真器件编程与配置时序测试、极限逼近设计调试过程整体设计工程更改管理图3-2 Quartus II设计流程 4 四倍频细分法测相位的vhdl语言实现4.1 测量原理及方案光栅尺是通过对信号变化周期的测量来测出动就与定就职相对位移。它输出的是电信号,动尺移动一个栅距,输出电信号便变化一

38、个周期。目前使用的光栅尺的输出信号一般有两种形式,一是相位角相差90度的2路方波信号,二是相位依次相差90度的4路正弦信号。这些信号的空间位置周期为W。输出方波的光栅尺有A相、B相和Z相三个电信号,A相信号为主信号,B相为副信号,两个信号周期相同,均为W,相位差90度。Z信号可以作为较准信号以消除累积误差。以下是光电码盘的典型输出为两个相位差为90°的方波信号(A和B)的形式。以及零位脉冲信号Z。如图4-1; 图4-1光电编码器输出信号其中,A、B两相信号的脉冲数标志码盘轴所转过的角度,A、B之间的相位关系标志码盘的转向,即当A相超前B相90°时,标志码盘正转,当B相超前A

39、相90°时,码盘反转。 如下图4-2所示: 图4-2 光电编码器相位关系用光电编码器测量位移 ,准确无误的计数起着决定性作用。由于在位置控制系统中 ,电机既可以正转 ,又可以反转,所以要求计数器既能实现加计数 ,又能实现减计数。相应的计数方法可以用软件实现 ,也可以用硬件实现。使用软件方式对光电编码器的脉冲进行方向判别和计数降低了系统控制的实时性 ,尤其当使用光电编码器的数量较多时 ,且其可靠性也不及硬件电路。但其外围电路比较简单 ,所以在计数频率不高的情况下 ,使用软件计数仍有一定的优势。由于码盘尺寸、光栅刻划精度、光电接收元件尺寸及信号处理精度的限制,分辨率、高精度的光电编码器不

40、可能仅靠光栅线的密度来实现,必须采用细分技术来提高编码器的分辨率。对于每个确定的码盘,其脉冲周期对应的码盘角位移固定为,故其量化误差为/2。如果能够将A或B信号四倍频,则计数脉冲的周期将减小到T/4,量化误差下降为/8,从而使光电码盘的角位移测量精度提高4倍。由于伺服系统中的码盘转速具有不可预见性,造成脉冲周期具有不确定的特点,从而无法使用锁相环等常用倍频方案。在脉冲周期T内,A、B两相信号共产生了四次变化,即t1、t2时刻的上升沿和t3、t4时刻的下降沿。尽管不确定,但由于A、B两方波信号之间相位关系确定,使这四次变化在相位上平均分布,如果利用这四次变化产生四倍频信号,则可以实现光电码盘测量

41、精度的提高。四倍频后的码盘信号,需经计数器计数后,才能转化为相对位置。计数过程一般有两种实现方法:一是由可编程计数器或微处理器内部定时/计数器实现计数;二是由可逆计数器实现对正反向脉冲的计数。当需控制的电机数量少时,前一方案附加元件少,结构简单,较为容易实现。当需控制的电机数量较多时,则采用后一种方案,利用复杂可编程逻辑器件(PLD),实现会更为简单。本设计就是重点讨论后一种方案,利用VHDL语言编程实现鉴向,四倍频和计数器功能。4.2具体实现过程 四倍频的实现(1)实现方法一:由光电编码器反馈输出信号图的A、B两相脉冲关系可以看出:a.无论编码器正转还是反转,A、B两相脉冲在一个周期都有四种

42、状态,即00、01、10、11,这样在每次状态变化时都对电机的反馈脉冲进行计数,在一个周期内就有四次计数,从而实现了电机计数的四倍频;b.在编码器正转时,A、B两相脉冲变化有以下四种:0010、1011、1101、0100;电机反转时,A、B两相脉冲也有四种变化:0001、0111、1110、1000。根据A、B两相脉冲状态变化的关系就可以得到电机的转向。c.编码器不动时,A、B两相脉冲没有变化。这种情况下,不需要对光编码器的反馈脉冲进行四倍频,方向也保持在原来的值。其原理图如下: 图4-3四倍频实现原理图根据以上的分析可以写出相应的VHDL程序。process(M1_A,M1_B,clk,d

43、b1) BEGIN if (clk'event and clk='1') then state(1)<=M1_A; state(0)<=M1_B;prestate<=state; if (prestate="00") and (state="10") then db1<=db1+"01" elsif (prestate="10") and (state="11") then db1<=db1+"01" elsif (pre

44、state="11") and (state="01") then db1<=db1+"01" elsif (prestate="01") and (state="00") then db1<=db1+"01" elsif (prestate="00") and (state="01") then db1<=db1+"01" elsif (prestate="01") and (

45、state="11") then db1<=db1+"01" elsif (prestate="11") and (state="10") then db1<=db1+"01" elsif (prestate="10") and (state="00") then db1<=db1+"01" else db1<=db1; end if; end if; END process ;其中CLK是扫描时钟,其频率大于四

46、倍A,B频率。DB1是四倍频计数值。(2)实现方法二:用数字移相技术实现四倍频,原理如下:如图所示,原始信号A,B通过移相后得到NA,NB,其中A,B,NA,NB相位依次相差90°,用这四路时钟信号同时驱动四个相同的计数器对待测信号进行计数。四个计数器的计数个数分别为m1、m2、m3和m4。 等效计数值为M1,M2,M3,M4的和。 图4-4四倍频实现原理图可以看到,这种方法实际等效于将原始计数时钟四倍频,以4f的时钟频率对待测信号进行计数测量,从而将测量精度提高到原来的4倍,如果不考虑各路计数时钟间的相对延迟时间误差,其测量的最大误差将降为原来的四分之一。VHDL 语言描述如下:b

47、egin na<=not a; nb<=not b;if (clk'event and clk='1') then if a='1' then dbm<=dbm+"00000001" end if; if b='1' then dbm<=dbm+"00000001" end if; if na='1' then dbm<=dbm+"00000001" end if; if nb='1' then dbm<=dbm

48、+"00000001" end if; end if;其中CLK是扫描时钟,其频率大于四倍A,B频率。DBM是四倍频计数值。 鉴向的原理及实现由于在相位的测量过程中,不但要判断相位值的大小,还要通过光电编码器的转动方向,判断两路信号相位的超前和滞后。所以要在程序中实现鉴向功能,当码盘正转时,码盘输出的A相信号超前B相90°,输出DIR=1。当码盘反转时,码盘输出的A相信号滞后B相90°,输出DIR=0。在方法一中,当码盘正转时,A、B两相脉冲变化有以下四种:0010、1011、1101、0100,DIR=1。如果每发生一次变化,计数器便实现一次加计数,则

49、一个周期内,共可实现四次加计数,从而实现正转状态的四倍频计数。当码盘反转时,A、B两相脉冲变化如下:0001、0111、1110、1000,DIR=0。如果每发生一次变化,计数器便实现一次减计数,则一个周期内,共可实现四次减计数,从而实现反转状态的四倍频计数。方法二中,可由如下程序实现鉴向功能。process(a)beginif a'event and a='1' then if b='0' then dir<='1' else dir<='0' end if;end if;pre<=dir;end pr

50、ocess ;CLK 是扫描时钟,如果A超前B则DIR=1,反之则DIR=0;4.3 vhdl语言程序设计程序设计流程图如下:图4-5 程序设计流程图程序设计的过程是先实现各个子功能,经过验证无误后,然后将各个子功能整合到一个程序中,再次验证仿真无误,才最后获得通过。主程序主要由鉴向、四倍频、计数、控制四个功能模块构成。鉴向、四倍频、计数,控制的具体关系如下图所示,其中A和B分别是电机输出的正交编码脉冲信号,CLK是比A、B两相脉冲频率高得多时钟信号,以保证A、B两相脉冲的每次状态变化都可以被检测到。图4-6子功能实现图(1)前面已经重点讨论过四倍频与鉴向模块,下面重点讨论控制与计数模块(2)

51、控制模块的实现:控制模块主要是实现对计数器的清零,预置数,和实现计数器的开始与停止功能要求CLR的优先级最高,CLR信号不必等待CLK时钟信号的高电平就可以将计数器清零,其次是预置数信号,最后是计数使能信号。beginif (clr='0') then dbm<="00000000" elsif (clk'event and clk='1') then if (preset='0') then dbm<=datain; elsif (cnten='0') thenif a='1

52、9; then计数器开始计数。dbm<=dbm+"00000001" end if;end if;end if;(3)计数模块计数模块由鉴向模块的输出信号DIR来控制,如果DIR=1,则计数器加,如果DIR=0则计数器减。程序如下:if dir='1' then dbm<=dbm+"00000001" else dbm<=dbm-"00000001" end if;4.4结果分析 编译仿真仿真输入信号preset(预置数),cnten(计数使能) ,datain(预置数值),clr(清零), clk(

53、外部时钟信号),以及信号a,b。输出信号计数db,方向判断信号pre.仿真图如下: 图 4-8 程序1仿真图图 4-9 程序2仿真图 比较分析(1)随机误差的产生由程序1和程序2的仿真图可以发现系统的随机误差主要发生在计数开始阶段,计 数开始时有一段延时导致误差的产生。这段延时程序1和程序2各不相同,程序1要等待信号A或B出现上升沿才开始计数,而程序2则必须等到信号A的上升沿计数器才开始计数。因此不难看出,在计数开始阶段,由于信号波形出现的随意性,程序1等待A或B上升沿的延时显然要小于程序2等待信号A上升沿的延时。因此程序1的随机误差要小于程序2的随机误差。(2)延迟 比较程序1和2的延迟,可

54、知1的延时小于2的延迟。综合考虑程序1的表现要优于程序2。 误差分析本设计的误差主要有以下几类:(1)随机误差。(2)标准频率误差和计数器的误差。(3)延迟误差。(4)计数器的量化误差(加减1误差)。若需进一步提高这种方法的测量精度,可以通过以下两个方面进行改进:(1)提高外部时钟clk频率,寻求速度更快的FPGA芯片。外部时钟clk频率越高,系统原理误差越小。(2)减小信号延迟误差。由前面可以看到,信号的延迟误差对系统精度的影响占了很大的比例。减小各计数时钟和待测信号到计数器的信号延迟的差异,可以有效地提高测量精度。由于FPGA内部信号延迟的时间均可以很方便地得到,因此在设计时可以通过调整内

55、部各元件的放置位置以及连线来尽量减小延迟误差,或者通过添加一些门电路来增加延时以使各信号延迟时间尽可能相同。5 总 结在设计过程中,我首先综合了解了当前国内外相位测量的现状和存在的一些问题。其次研究了光电编码器的原理和分类,以及应用。然后深入了解了CPLD技术和vhdl语言。最后提出了四倍频细分法测相位的原理及方案,并且成功地用VHDL语言完成了系统的开发和仿真。总的来说,这次设计是非常成功的。(1)精确的相位测量和校准在现代工业、科学研究、自动控制、工程技术以及国防建设中有着重要的地位和广泛的应用。因此,本设计是有极强的现实应用意义的。(2)用CPLD来开发系统除了具有造价低,易于实现的优点外。还具有速度快、开发周期短、用户可定义功能及可重复编程和擦写等许多优点。(3)由于采用了细分技术,大大地提高了测量的精确度。而且本设计电路简单,干扰信号小,克服了以往相位测量的一些缺点。(4)经过仿真和具体的结果分析,本次设计完美的达到了预期的设计要求。因此综

温馨提示

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

评论

0/150

提交评论