- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
研 究 生 试 卷
2013 年-2014 年度第1 学期
课程名称: 计算机系统分析与设计 评分:
专 业: 交通信息工程及控制 年级: 研一
研究生姓名: 朱英龙 学号: 2013124074
任课教师姓名: 马荣贵
一、光电编码器计数的设计与仿真实验
1、实验目的
1)用VHDL 语言实现光电编码器计数,然后在数码管上显示。
2 )熟悉VHDL 语言与EH2000 FPGA 实验箱。
3 )掌握光电编码器的工作原理和使用方法。
2、实验环境
Quartus II 软件、PC 、EH2000 FPGA 实验箱。
3、实验原理
光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或者数字量
的传感器。光电编码器是由光栅盘和光电检测装置组成。光栅盘是在一定直径的圆板上等分
地开通若干个长方形孔。比方说检测电动机的转速时,由于光电码盘与电动机同轴,电动机
旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干
脉冲信号,通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。此外,为
判断旋转方向,码盘还可提供相位相差90º的两路脉冲信号。当光电编码器随控制对象发生
角位移变化时,光电编码器就会发出A 、B 两路相位差为90°的数字方波信号发生器。正转
时A 超前B 为90° (如图1 (a )所示),反转时B 超前A 为90° (如图1 (b )所示)。本实
验就是利用此原理进行计数。
4、实验步骤
4.1 VHDL 编程
根据实验要求,将程序划分为以下2 个VHDL 功能模块:
1)计数模块(counter )
此模块用于对编码器输出波形进行计数和复位,输出计数结果。代码见附录。
2
2 )显示模块(display )
此模块用于对计数值进行数码管的显示和复位,输出段选和位选。代码见附录。
首先,将从光电编码器输出的A 、B 路信号分别接在计数模块的a,b 端,此模块中
的a 端也同时用作时钟信号,计数值由count 端输出。然后将计数结果接入显示模块的count
端,显示时钟信号输入clk 端,输出计数值的段选和位选。设计采用六位数码管进行对计
数结果的显示,最高位为符号位,其余五位为数据位。当光电编码器顺时针转动时进行增
计数,逆时针转动时进行减计数。两个模块的连接及管脚配置图如图2 所示。
图2 计数模块和显示模块的连接及管脚配置图
4.2 Quartus II 仿真
在 Quartus II 建立一个波形仿真文件,为了便于观察结果,仿真只用了计数模块的结
果,可方便的看出计数值的变化。仿真结果如图3 所示。
图3 仿真结果
4.3 实验箱运行
将光电编码器连接到实验箱,连接好电路后,在 Quartus II 中设置好硬件类型并配置
好管脚,将程序下载到实验箱内运行,验证输出结果。
5、分析和总结
5.1 仿真结果和分析
由图3 中可以看出,开始时让a 的相位超前于b (正转),count 计数从初始值0 逐个
增加;计数到19 的时候让a 的相位落后于b 的相位(反转),count 计数值逐个减少;计数
到-4 的时候,reset 置0,计数变为初始值0,由于a 的相位仍落后于b 的相位,所以计数
值继续减少。可以看出不管是光电编码器逆时针合适顺时针旋转本设计都可以正确的进行
计数,仿真结果完全正确。
5.2 总结
本实验的仿真还是相对来讲比较容易的,在硬件实现的时候,仿真可以准确计数的程
序,在硬件上就不那么好用,计数结果都不是很准确。经过几个计数方案的挑选,最终选
用了让光电编码器的输出信号A 作为时钟信号进行对波形的计数,结果表明此方案的计数
结果较位准确的,2000Hz 的光电编码器计数结果平均在1940Hz。
3
通过本次实验,了解了VHDL 语言、EH2000
文档评论(0)