基于红外线的可编程计算机控制系统.docx
- 文档编号:30524058
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:16
- 大小:719.29KB
基于红外线的可编程计算机控制系统.docx
《基于红外线的可编程计算机控制系统.docx》由会员分享,可在线阅读,更多相关《基于红外线的可编程计算机控制系统.docx(16页珍藏版)》请在冰豆网上搜索。
基于红外线的可编程计算机控制系统
基于红外线的可编程计算机控制系统
东南大学61010216
郝志强
1、基于红外线的可编程计算机控制系统
⏹通过FPGA开发板来编写一套系统,该系统可以识别遥控器发出的红外线并进行相应的译码、编码、存储等工作,并且可以自行定义每一红外编码的功能,同时达到通过USB接口来控制计算机的目的。
2、课题背景:
⏹在实际的使用过程中,计算机的控制依赖键盘鼠标等传统输入设备,无法进行远距离控制。
同时在生活中随着家用电器的更新,大量的遥控器因此而闲置,无法继续发挥功用。
鉴于此,我萌发了用VHDL结合实验室现有的FPGA开发板来制作一套利用红外遥控器来控制计算机的系统。
3、项目规划:
⏹功能:
1、可编程;用户可以针对遥控器上的每一个按键设定相应的功能
2、自适应;可以识别不同的遥控器发出的红外线,拜托了对单一遥控器的依赖
3、通用性;可以完成相当部分的计算机操作
4、与计算机通讯:
FPGA与计算机通讯,计算机上需要编写相应的驱动
⏹指标:
⏹面板(显示)
1、通过六个数码管来显示操作提示
SELECt:
提示选择功能
ACtiVE:
表面系统开始运作
PrESS:
选择编程区域
Pro01:
第一次编程
Pro02:
第二次编程
FiniSh:
编程完成
FAiL:
编程错误
2、操作
FPGA端操作:
数码管显示SELECt时按A键进入编程模式,B键进入运行模式
数码管显示PrESS时按下键盘相应的区域进行编程,然后在Pro01、Pro02时按下遥控器上的同一按键(防止识别出错),完成译码与存储工作,然后提示编程结果。
计算机端操作:
选择不同编程区域的功能
⏹输入、输出接口
USB-TTL转接口,FPGA端采用UART协议进行数据发送,计算机端打开相应的串口进行数据的接收
4、实现方案:
⏹核心问题
1、红外线的制式问题及编码问题
市场上的红外遥控器繁多,编码、制式可能不统一,需要相应的解决方案。
2、计算机的通讯问题
FPGA需要与计算机通讯,应该有相应的解决方案。
3、计算机端的驱动
要完成对计算机的控制功能,需要在计算机端编写相应的驱动。
4、外部接收电路的选择
解决用什么器件可以感应红外线的问题。
⏹解决方案
1、关于红外线的制式及编码问题:
市场上的红外遥控器种类繁多,一般有这些类型uPD6121、TC9012、M50560-001、SA3010等等。
但是不管遥控器的种类如何,其编码方式大多类似。
中国位于东亚地区,遥控器多采用NEC的芯片,红外线遵从NEC制式。
NEC制式载波波形:
数据格式:
数据格式包括了引导码、用户码、数据码、和数据反码,编码总占32位。
数据反码是数据码反向后的编码,编码时可用于对数据纠错。
(注:
第二段用户码也可以在遥控应用电路中被设置成第一段用户码的反码。
位定义:
用户码或者数据码中的每一位可以是位‘0’,也可以是位‘1’。
区分‘0’和‘1’是利用脉冲的时间间隔来区分,这种编码方式称为脉冲位置调制方式,英文简称PPM。
uPD6121G按键输出波形有两种方式:
一种是每次按键都输出完整的一帧数据;另一种是按键按下相同的按键后每发送完整的一帧数据后,在发送重复码,知道按键松开。
重复码
单一按键波形
连续按键波形
2、关于计算机的通讯问题
FPGA端使用UART协议发送数据(本处为红外线的译码结果)。
UART是一种通用串行数据总线,用于异步通信。
该总线双向通信,可以实现全双工传输和接收。
在嵌入式设计中,UART用来与PC进行通信,包括与监控调试器和其它器件,如EEPROM通信。
计算机端考虑到电平等问题,采用了USB-TTL模块,电路图如下
此处的转换模块采用了PL2303芯片,PL2303是Prolific公司生产的一种高度集成的RS232-USB接口转换器,可提供一个RS232全双工异步串行通信装置与USB功能接口便利联接的解决方案。
该器件内置USB功能控制器、USB收发器、振荡器和带有全部调制解调器控制信号的UART,只需外接几只电容就可实现USB信号与RS232信号的转换,能够方便嵌入到各种设备;该器件作为USB/RS232双向转换器,一方面从主机接收USB数据并将其转换为RS232信息流格式发送给外设;另一方面从RS232外设接收数据转换为USB数据格式传送回主机。
这些工作全部由器件自动完成,开发者无需考虑固件设计。
计算机端需要先安装PL2303的驱动,然后在设备管理器中分配相应的端口。
3、计算机端的驱动
为了实现对计算机的控制,需要编写相应的驱动。
此处采用易语言进行编写。
易语言是一门计算机程序语言。
以“易”著称,以中文作为程序代码表达的语言形式。
易语言的创始人是吴涛。
早期版本的名字为E语言。
易语言最早的版本的发布可追溯至2000年9月11日。
可以说,创造易语言的初衷是进行用中文来编写程序的实践。
从2000年至今,易语言已经发展到一定的规模:
功能上、用户数量上都十分可观。
程序将打开相应的端口进行监听,并可以允许用户定义计算机端相应的控制操作,涉及到易语言中的“系统核心支持库”,涉及到“收到信号”与“数据到达”两个自有事件。
开发界面:
4、关于外部接收电路的选择
本课程设计的红外接受头采用一体化红外接收解调器,如下图:
其引脚图如下:
一体化红外接收解调器的内部电路如下图:
上面详述的红外信号发射电路把发射板上的按键信息编成编码以红外信号的形式发射到接收板,该一体化红外接收解调器接收到红外信息后,把其包含的编码信息传到下一级译码电路,从而完成红外信号的接收。
5、系统结构:
⏹系统框图
⏹模块功能描述
1、核心状态机
状态跳变、工作模式切换、控制其他模块、数码管显示、键盘响应。
2、红外接收、译码
接收HS0038的输出,进行译码,编码成32位数字量输出。
3、译码存储
存储译码结果,并可以供给查询使用。
4、编码对照
对照编码输出,确定用户按下的是遥控器上的哪一个按键。
5、通讯模块
依照UART协议进行通讯。
⏹模块接口标注
EP1C6Q240C8实验箱的输入输出的实际连线与管脚表
输入输出名称
芯片引脚号
实验箱标注
钉子线连接
CLK
PIN_28
CLK
kincol[0]
PIN_124
Col0
kincol[1]
PIN_125
Col1
kincol[2]
PIN_126
Col2
kincol[3]
PIN_131
Col3
out1[0]
PIN_166
数码管
out1[1]
PIN_167
数码管
out1[2]
PIN_168
数码管
out1[3]
PIN_169
数码管
out1[4]
PIN_170
数码管
out1[5]
PIN_173
数码管
out1[6]
PIN_174
数码管
out1[7]
PIN_175
数码管
out2[0]
PIN_158
数码管
out2[1]
PIN_159
数码管
out2[2]
PIN_160
数码管
out2[3]
PIN_161
数码管
out2[4]
PIN_162
数码管
out2[5]
PIN_163
数码管
out2[6]
PIN_164
数码管
out2[7]
PIN_165
数码管
out3[0]
PIN_87
数码管
out3[1]
PIN_86
数码管
out3[2]
PIN_85
数码管
out3[3]
PIN_84
数码管
out3[4]
PIN_83
数码管
out3[5]
PIN_82
数码管
out3[6]
PIN_81
数码管
out3[7]
PIN_80
数码管
out4[0]
PIN_99
数码管
out4[1]
PIN_98
数码管
out4[2]
PIN_97
数码管
out4[3]
PIN_96
数码管
out4[4]
PIN_95
数码管
out4[5]
PIN_94
数码管
out4[6]
PIN_93
数码管
out4[7]
PIN_88
数码管
out5[0]
PIN_107
数码管
连接高两位数码管
out5[1]
PIN_106
数码管
连接高两位数码管
out5[2]
PIN_105
数码管
连接高两位数码管
out5[3]
PIN_104
数码管
连接高两位数码管
out5[4]
PIN_103
数码管
连接高两位数码管
out5[5]
PIN_102
数码管
连接高两位数码管
out5[6]
PIN_101
数码管
连接高两位数码管
out5[7]
PIN_100
数码管
连接高两位数码管
out6[0]
PIN_119
数码管
连接高两位数码管
out6[1]
PIN_118
数码管
连接高两位数码管
out6[2]
PIN_117
数码管
连接高两位数码管
out6[3]
PIN_116
数码管
连接高两位数码管
out6[4]
PIN_115
数码管
连接高两位数码管
out6[5]
PIN_114
数码管
连接高两位数码管
out6[6]
PIN_113
数码管
连接高两位数码管
out6[7]
PIN_108
数码管
连接高两位数码管
reset
PIN_132
K8
scanrow[0]
PIN_120
Row0
scanrow[1]
PIN_121
Row1
scanrow[2]
PIN_122
Row2
scanrow[3]
PIN_123
Row3
IR
PIN_180
21
连接HS0038的输出
tx
PIN_181
22
连接USB-TTL的RX
6、状态流程图:
⏹系统工作状态流程
7、各主要模块仿真结果波形
⏹各模块的仿真波形,详细注释输入输出功能端口
红外线译码模块
端口说明:
remout为红外编码序列
data[31..0]为解码的结果
核心状态机仿真结果
2,a,f为相应的键按下信号
outpro为输出的编程区域
promode为开始编程的标志
cout为数码管的现实控制
ok为外界准备好的信号
UART模块仿真结果
idle为空闲标志
tx为串行发送输出
存储模块仿真结果
actmode为运行模式的控制信号
IR为编码后的红外序列输入
outis为发送信号的标志
proarea为用户定义的编程区域
proon为编程控制信号
prook为成功编程的标志
Ready,ready1,ready2为基础编程、重复编程完成的标志
8、课程设计总结
⏹预期的目标与当前实现功能的差异详细注释
本次课程设计基本上达到了所有的既定目标,实现了上述的全部功能。
⏹可以进一步发挥提高的部分
由于FPGA的数据断电后消失,所以即使是对同一遥控器,每次使用时也需要进行反复的编程。
将来可以使用专门的Flash芯片来记录编程结果,使得系统可以更加方便。
也可以考虑将红外译码的结果上传到计算机端来保证不会断电后丢失。
⏹课程设计体会
本次的课程设计使我体会到了创新的乐趣,感受到了自己亲自动手完成项目的全过程。
同时在设计过程中遇到的诸多问题(时间分配的问题、技术问题等)都需要自己动手解决,在这个过程中,我也逐步建立起了工程师的意识,并更加注意培养自己各方面的能力。
9、参考文献
[1]王金明,杨吉斌.数字系统设计与VerilogHDL[M].北京:
电子工业出版社,2001
[2]冯小平,张林,赵焕军.一种基于CPLD实现的数字化PWM波形产生器[J].现代电子技术,2003,(3):
71-72
[3]陈桂,万其.基于FPGA的直流电机速度控制器设计[J].电子工程师,2006,
(2):
70-75
[4]张俭锋等编著.VHDL语言100例详解[M].北京:
清华大学出版社,1999
[5]周淑阁.模拟电子技术基础[M].北京:
高等教育出版社2004
[6]余孟尝.数字电子技术基础简明教程[M].北京:
高等教育出版社,1999
[7]侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计[M].西安:
西安电子科技大学出版社,2000
[8]李洪伟,袁斯华.基于QUARTUS2的FPGA/CPLD设计[M].北京:
电子工业出版社,2006
[9]潘明,许勇.基于FPGA的直流电机脉宽调制控制[J].广西科学院学报,2005,(4):
219-221
[10]张亦华,延明,肖冰.数字逻辑设计实验技术与EDA工具[M].北京:
北京邮电大学出版社,2003
[11]MarkZwolinski著,李仁发等译.VHDL数字系统设计[M].北京:
电子工业出版社,2004
[12]宋万杰.CPLD技术及其应用[M].西安:
西安电子科技大学出版社,2000
[13]潘松EDA技术实用教程[M].北京:
科学出版社,2005
[14]StefanSioholm等著,边计年等译.用VHDL设计电子线路[M].北京:
清华大学出版社,2000
[15]胡振华.VHDL与FPGA设计[M].郑州:
中国铁道出版社,2003
[16]基于VHDL的直流电机速度控制系统的设计未署名作者
[17]刘京南,王成华电子电路基础电子工业出版社
注:
程序清单不要放在报告中,将最后能下载的正确的程序打包上传(程序中请写明注释)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 红外线 可编程 计算机控制 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)