基于FPGA的红外遥控器设计【开题报告+文献综述+毕业论文】

基于FPGA的红外遥控器设计【开题报告+文献综述+毕业论文】

ID:463632

大小:3.66 MB

页数:48页

时间:2017-08-05

上传者:U-944
基于FPGA的红外遥控器设计【开题报告+文献综述+毕业论文】_第1页
基于FPGA的红外遥控器设计【开题报告+文献综述+毕业论文】_第2页
基于FPGA的红外遥控器设计【开题报告+文献综述+毕业论文】_第3页
基于FPGA的红外遥控器设计【开题报告+文献综述+毕业论文】_第4页
基于FPGA的红外遥控器设计【开题报告+文献综述+毕业论文】_第5页
资源描述:

《基于FPGA的红外遥控器设计【开题报告+文献综述+毕业论文】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

本科毕业论文系列开题报告电子信息工程基于FPGA的红外遥控器设计一、课题研究意义及现状红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。红外遥控技术在工农业生产,通信技术,家用电器等多种领域中得到了广泛的应用,特别是在门禁系统中的应用,更加受到了人们的瞩目。由于红外线遥控不具有像无线电遥控那样穿过障碍物去控制被控对象的能力,所以,在设计家用电器的红外线遥控器时,不必要像无线电遥控器那样,每套(发射器和接收器)要有不同的遥控频率或编码(否则,就会隔墙控制或干扰邻居的家用电器),所以同类产品的红外线遥控器,可以有相同的遥控频率或编码,而不会出现遥控信号“串门”的情况。这对于大批量生产以及在家用电器上普及红外线遥控提供了极大的方便。由于红外线为不可见光,因此对环境影响很小,再由红外光波动波长远小于无线电波的波长,所以红外线遥控不会影响其他家用电器,也不会影响临近的无线电设备。目前国外(主要是欧美市场)的遥控器几乎都是多功能遥控器,它们能够控制全球的绝大部分的视频设备甚至包括空调器。这些遥控器一般由MCU进行控制,其价格一般都比较贵,达上百美金。值得一提的是,目前全球的遥控器的80%是由中国大陆代工贴牌生产的,但关键芯片是别人的。国外的遥控器主要通过超市等渠道进行销售,消费者可以根据自己的需要进行选择,其发展趋势是根据家庭的需要遥控器拥有更多的功能和更人性化的设计。 而在国内市场,遥控器绝大部分是单一型的遥控器,也就是一个遥控器控制一个视频设备,这与我国经济状况和消费习惯有关。多功能(所谓万能)遥控器只是单一型的遥控器的补充,在一般的主流渠道是没有多功能遥控器销售的,许多消费者也就不知道有或者如何购买多功能遥控器,因此多功能遥控器的销量是相对很少的。也缘于此多功能遥控器的质量是参差不齐的,大部分使用不方便,或者名为多功能遥控器但对很多设备却难以控制。但正如西方的情况,我国也会经历从使用单一型遥控器走向多功能遥控器,尤其是在信息化迅速发展的情况下,多功能遥控器有着广阔的需求和发展空间。启动这一块市场的关键是使多功能遥控器确实好用,能够完全替代单一型遥控器的功能以及有效的市场推广。二、课题研究的主要内容和预期目标在设计之前查阅关于遥控器的资料,全面了解遥控器的原理及其功能应用,主要了解红外遥控器和无线遥控器等,本课题涉及的主要内容:1、了解关于FPGA及红外遥控专用芯片PT2248的原理。2、实用指定的元器件在万勇板上完成红外遥控器的发射编码部分,并且在万用板上排列整齐,布局合理,焊接良好。3、用VHDL编写接收解码器的程序,下载到EDA实验板上实现解码,实现如下基本功能:(1)基本功能a、将一体化红外接收解调器的输出信号解码,在EDA实验板上有七段数码管来显示。b、当按下遥控器1—6号连续键时,在EDA实验板上点亮一个发光二极管作为连续键按下的指示,要求遥控器上连续键接下时指示灯点亮,直到松开按键时才熄灭,用于区别单击键。c、在EDA实验板上设置8个按键,其功能等同于遥控器上的1—8号按键。d、每当接收到有效按键时,蜂鸣器会发出提示声。(2)扩展功能通过遥控器跳线改变用户码,EDA实验板商用3个发光二极管正确显示发送端的用户码。4、做出基于FPGA的红外遥控器,并且实现指定功能。三、课题研究的方法及措施由红外遥控专用芯片PT2248及外围udianlu作为编码及发送部分,PT2248最大可作用18路红外遥控系统的编码,其内部已集成了38KHZ的红外载波振荡及相应的数字脉码调制电路,只需外接3x6的矩阵式按键、红外发光二极管及其驱动电路等少量元器件便可完成编码发送功能。系统的完成接收解码、键盘扫描、数码管的动态扫描显示等各模块。解码器用por1、por2和por3三个进程实现对各模块的波形进行仿真与分析,最后进行整体仿真。在课题设计过程中专心做好实验中的笔记,发现问题后仔细记录分析,尽可能的通过自己的努力和专研的精神去解决问题,必要时通过导师的辅导解决。并按时完成毕业设计, 撰写毕业论文。四、课题研究进度计划2010/2011(第一学期):明确任务,收集相关FPGA原理应用、遥控专用芯片PT2248及红外遥控设计的资料,确定系统总体设计方案:基于FPGA的红外遥控设计。完成外文翻译、文献综述及开题报告,并做好开题答辩。2011/2012(第二学期):第1周至第3周:查找FPGA原理的相关资料,掌握FPGA的功能应用及实现原理,了解PT2248芯片的具体功能及使用方法,深入了解红外遥控器的设计原理,初步确定红外遥控总体设计方案;第3周至第4周:购买所需的元件-主要元器件清单:红外编码芯片PT2248、DIP16IC座、双5号电池座、PNP中功率三极管8550、红外发射二极管、3.3k欧姆1/4W金属膜电阻、3.3欧姆1/4W金属膜电阻、二极管1N4148、47uF25V电解电容、455kHz陶瓷滤波器、按键、120pF(121)瓷片电容、万用板等。做好前期准备工作,完成电路原理图绘制,整理相关资料。第5周至第6周:使用万用板作成红外遥控设计的电路板,在万用板上焊接元器件,完成发射、接收、解码、译码等模块的设计。对各子模块进行测试,实现各子模块的各项相关功能。第7周至第8周:连接各子模块,进行综合调试,实现该设计的各项功能并且完善。总和所有设计内容,撰写毕业论文,完善与修改毕业论文。最后,做好论文答辩的PPT资料,准备答辩,并提交所有电子文档材料。五、参考文献[1]倪建,董强.编码解码技术在红外遥控器中的实现[J].中国民航飞行学院学报,2004,15(1):35-36.[2]佟国香,孙国强,李广军.红外遥控器控制系统的VHDL设计与FPGA实现[J].上海理工大学学报,2004,26(2):189-192.[3]张波,石广范,张凝,闫广明.红外遥控英/俄文LED条形显示屏设计与实现[J].哈尔滨商业大学学报(自然科学版),2004,20(3):370-373.[4]宝金.基于单片机设计实用型无线遥控器原理[J].阴山学刊,2007,21(1):45-46.[5]Y.Cu.H.0,Wang.andK,Tanaka.FuzzyControlofNolinearTime-Delay Sysyems:StabilityandDesignIssues[C].Arlington,2001,(6):25-27.[6]HONIGM,MADHOWU,VERDUS.Blindadaptivemultiuserdetection[J].IEEETransonInformationTheory,1995,41(4):944-960.[7]JYOTIS,RAICS,BANSALPK.Near-farresistantICAbaseddetectorforDS-CDMAsysteminthedownlink[J].WirelessPersonalCommunications,2007,43(2):341-353.[8]丁颖,肖功宝,杨仁顺,张存库.红外遥控技术在工业电视中的应用[J].自动化与仪表,1997,12(2):45-65.[9]丁跃华,陈艳峰.基于EDA技术的红外遥控系统设计[J].电子元器件应用,2006,13(4):78-80.[10]吴彪,朱立新,赵佳.基于CPLD的红外遥控发射接收设计与仿真[J].计算机仿真,2006,23(8):269-272.[11]李跃宇,付梦印.红外遥控在车辆导航定位系统中的应用[J].红外技术,2003,25(6):69-71.[12]徐爱钧.80C5单片机实践教程[M].北京:电子工业出版社,2005,5.[13]钱敏,曹云鹏,章敏,钱春花,张成,李运宁.基于FPGA/HDL的红外遥控接收信号解码器设计[J].通信技术,2009,42(8):219-224.[14]赵雅兴.FPGA原理设计与应用[M].天津:天津大学出版社,1999,4.[15]金韦.多功能通用遥控器原理及制作[J].实用电子文摘,1995,(2):35-44.[16]李迟生.智能遥控器的设计[J].电子技术,1996,(12):540-544. 毕业论文文献综述电子信息工程遥控器的综述摘要:随着人们生活水平的提高,家用电器种类的增多,遥控器的种类也随之增加,不同种类的遥控器之间一般不能相匀_替代,这给人们的生活带来诸多不便。在许多现存的通用家居遥控器中,大多是先将需使用遥控器的红外遥控编码人工分析出来,按“0”、"1”序列方式存储,使用时,先选择型号再进行控制。日前家庭使用的电器越来越多,新的遥控编码组合层出不穷,无法得到所有类型的编码,因此此类通用型遥控器只适用于某一类电器的有限种品牌。另一类通用遥控器是先将原遥控器的遥控波形完全记录下来,使用时再进行还原。此类遥控器解决了无限编码的海量存储问题,但在需要遥控多个电器或遥控功能复杂时,不能满足需求。关键字:遥控器;红外;FPGA;遥控实现1遥控器的概述各类遥控器功能大致相同。大多都有数字键、启动停止键、前进键、快进键和后退键。现实生活中,由于用户的需求差异,特殊功能键的使用频率很低,甚至部分用户自始至终就从未使用过这类按键。因此,这些按键完全可以简化和归类使用。对于那些不宜简化和归类的少量特殊功能键,可以通过开辟自定义按键区的方法予以解决。目前国外(主要是欧美市场)的遥控器几乎都是多功能遥控器,它们能够控制全球的绝大部分的视频设备甚至包括空调器。这些遥控器一般由MCU进行控制,其价格一般比较贵,至少上百美金。值得一提的是,目前全球的遥控器的80%是由中国大陆代工贴牌生产的,但是关键芯片是别人的。国外的遥控器主要通过超市等渠道进行销售,消费者可以根据自己的需求进行选择,其发展趋势是根据家庭的需要遥控器拥有更多的功能和更人性化的设计。而在国内市场,遥控器绝大部分是单一型的遥控器,也就是一个遥控器控制一个视频设备,这与我国经济状况和消费习惯有关。多功能(万能)遥控器只是单一型的遥控器的补充,在一般的主流渠道是没有多功能遥控器销售的,许多消费者也就不知道如何购买多功能遥控器,因此多功能遥控器的销量是相对很少的[15]。2遥控器的种类和应用(1)红外遥控器 红外遥控器(IRRemoteControl)是利用波长为0.76~1.5μm之间的近红外线来传送控制信号的遥控设备。常用的红外遥控系统一般分发射和接收两个部分。红外遥控无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰,因此,现在红外遥控在家用电器、室内近距离(小于10米)遥控中得到了广泛的应用[8]。(2)无线电遥控器无线电遥控器(RFRemoteControl)是利用无线电信号对远方的各种机构进行控制的遥控设备。这些信号被远方的接收设备接收后,可以指令或驱动其它各种相应的机械或者电子设备,去完成各种操作,如闭合电路、移动手柄、开动电机,之后再由这些机械进行需要的操作。作为一种与红外遥控器相补充的遥控器种类,在车库门、电动门、道闸遥控控制,防盗报警器,工业控制以及无线智能家居领域得到了广泛的应用。(3)超声波遥控器超声波遥控是利用超声波来传送指令的遥控,可以应用于需要遥控、遥测的场合。采用AX5326与AX5327构成的遥控系统具有体积小、功耗低、功能强大、抗干扰能力强、成本低等优点[1]。(4)智能遥控器为了减少家庭中红外线遥控器的数目,已经有很多厂家设计和生产了一种称为万能遥控器的红外线遥控装置.万能遥控器具有接收、存储和发送红外线编码的功能,通过对不同普通遥控器发出的红外线编码进行学习和存储,万能遥控器可以对多个家用电器进行遥控,从而可以减少家庭中遥控器的数目[2].(5)声控遥控器声控属于遥控的一种方式,声控是以声音为传媒控制其他设备的一种方法。包括声音大小、频率、音色等,如声控灯、声控开关。3遥控器的原理(1)红外遥控原理红外遥控是利用红外线进行传递信息的一种控制系统。常用的红外遥控系统一般分发射和接收两个部分。发射部分的主要元件为红外发光二极管。目前大量使用的红外发光二极管发出的红外线波长为850nm和940nm,外形与普通Ф5发光二极管相同。接收部分是红外光敏二极管,有三只引脚,即VDD、GND和数据输出OUT。该系统主要分为调制、发射和接收三部分,如图所示[8]: 图1红外遥控系统(2)无线遥控原理常用的无线电遥控系统一般分发射和接收两个部分。发射部分一般分为两种类型,即遥控器与发射模块,遥控器和遥控模块是对于使用方式来说的,遥控器可以当一个整机来独立使用,对外引出线有接线桩头;而遥控模块在电路中当一个元件来使用,根据其引脚定义进行应用。图2无线遥控器接收部分一般来说也分为两种类型,即超外差与超再生接收方式,超再生解调电路也称超再生检波电路,它实际上是工作在间歇振荡状态下的再生检波电路。超外差式解调电路与超外差收音机相同,它是设置一本机振荡电路产生振荡信号,与接收到的载频信号混频后,得到中频(一般为465kHz)信号,经中频放大和检波,解调出数据信号[4]。(3)超声波遥控原理超声波遥控系统的结构如图1所示,分为发射与接收两部分,应用编码/解码专用芯片来控制操作。发射部分包括键盘矩阵、编码调制、驱动电路、超声波发送器(将电信号转换为超声机械波)等;接收部分包括超声波接收器(将超声机械波转换为电信号)、前置放大、解调与指令译码、驱动与执行等电路[6]。发射电路 接收电路图3超声波遥控系统组成图4遥控器的实现(1)红外遥控解码器电路的HDL设计用HDL和可编程逻辑器件(FPGA/CPLD)设计数字系统有传统方法无可比拟的优越性,它已经成为大规模集成电路设计最有效的[3]。图4红外数据解码系统框(2)嵌入式系统的智能遥控器的实现智能遥控器包括三个子系统:接收子系统、发送子系统和核心子系统.接收子系统包括光电转换、信号放大、高速采样以及数据分析等模块,发送子系统包括遥控发送、发送保持和电光转换模块,核心子系统包括中央处理、键盘控制、LCD显示以及存储等模块[4]。图5智能遥控器的系统构架(3)单片机设计实用型无线遥控器很多家电遥控收发系统用PT2272来解码(图1中虚线箭头所示)。PT2272可以获得较快的解码速度,但是PT2272采用并行输出的方式,占用单片机I/O 资源多,整个系统的开销和成本相对较大。如果采用单片机兼作解码器的技术(图1中实线箭头所示),不仅可以省去芯片PT2272,减少中间环节,增强系统的可靠性,而且仅占用了单片机上两个I/O口,充分利用了单片机资源,节省了电路板上的空间,降低了成本,具有很好的实用价值[9]。图6遥控系统结构图(4)射频遥控器在家电遥控上,射频方式比红外方式有一定的长处,它可以隔墙异地控制,在额定范围内没有控制死角。但它的缺点是在没有数字编解码电路时易受其它杂散电磁波干扰。若在设计时增加有编译码电路,不仅解决了可靠性间题,而且使大批量生产的品质控制来得容易[12]。图7射频遥控器的原理框图5总结本论文的工作是在遥控器市场的需求下完成的。通过对各类遥控器的分析对比,让我以后的设计中能够综合他们的各自的特点来为我们的设计锦上添花,不过我们也不能盲目用,要有针对性的吸取它们在某方面的精华,避开冲突。同时,我们必须在老的设计方式上有所突破,当然在考虑到这些方面的同时,我们还应注意采取哪种实现方式来完成函数信号发生器的设计,因地制宜,节约成本,例如:采用VHDL语言设计的红外遥控器的控制系统,通过下载到FPGA,外加红外驱动和放大电路可以实现红外遥控功能。用此种方法设计硬件电路,将有助于提高开发的效率,增加已有开发成果的可继承性以及缩短开发时间。到底是谁发明第一个遥控器已不可考,但是我们可以设计越来越多的遥控器,能够满足各种生活生产科研并且具有很强实用性的遥控器的设计与实现方案一直是我们努力的方向。 参考文献[1]倪建,董强.编码解码技术在红外遥控器中的实现[J].中国民航飞行学院学报,2004,15(1):35-36.[2]佟国香,孙国强,李广军.红外遥控器控制系统的VHDL设计与FPGA实现[J].上海理工大学学报,2004,26(2):189-192.[3]张波,石广范,张凝,闫广明.红外遥控英/俄文LED条形显示屏设计与实现[J].哈尔滨商业大学学报(自然科学版),2004,20(3):370-373.[4]宝金.基于单片机设计实用型无线遥控器原理[J].阴山学刊,2007,21(1):45-46.[5]Y.Cu.H.0,Wang.andK,Tanaka.FuzzyControlofNolinearTime-DelaySysyems:StabilityandDesignIssues[C].Arlington,2001,(6):25-27.[6]HONIGM,MADHOWU,VERDUS.Blindadaptivemultiuserdetection[J].IEEETransonInformationTheory,1995,41(4):944-960.[7]JYOTIS,RAICS,BANSALPK.Near-farresistantICAbaseddetectorforDS-CDMAsysteminthedownlink[J].WirelessPersonalCommunications,2007,43(2):341-353.[8]丁颖,肖功宝,杨仁顺,张存库.红外遥控技术在工业电视中的应用[J].自动化与仪表,1997,12(2):45-65.[9]丁跃华,陈艳峰.基于EDA技术的红外遥控系统设计[J].电子元器件应用,2006,13(4):78-80.[10]吴彪,朱立新,赵佳.基于CPLD的红外遥控发射接收设计与仿真[J].计算机仿真,2006,23(8):269-272.[11]李跃宇,付梦印.红外遥控在车辆导航定位系统中的应用[J].红外技术,2003,25(6):69-71.[12]徐爱钧.80C5单片机实践教程[M].北京:电子工业出版社,2005,5.[13]钱敏,曹云鹏,章敏,钱春花,张成,李运宁.基于FPGA/HDL的红外遥控接收信号解码器设计[J].通信技术,2009,42(8):219-224.[14]赵雅兴.FPGA原理设计与应用[M].天津:天津大学出版社,1999,4.[15]金韦.多功能通用遥控器原理及制作[J].实用电子文摘,1995,(2):35-44.[16]李迟生.智能遥控器的设计[J].电子技术,1996,(12):540-544. 本科毕业设计(20届)基于FPGA的红外遥控器设计 摘要红外遥控器成本低廉、功耗低、连接方便、简单易用,在很多小型移动设备中得到了广泛的应用。目前,红外遥控器已经成为家用电器的标准部件。电视机、录像机、DVD、音频功放、空调等设备的几乎所有功能都可以通过红外遥控器来控制。本文介绍了红外遥控的设计以及完整的软件解码方案、源程序、应用方法。并且探讨了了一种较为典型的红外遥控系统的设计思路,介绍了由PT2248作为发送器,用VHDL编写程序,运用FPGA实现,下载到EDA实验板上实现解码的设计方法。为各类遥控器的开发应用提供了一个非常有用的参考。系统原理简单,可靠性好,能够及时发现误码,防止误操作的产生。可应用于一般控制场合。该实现方法,外部电路连接简单,操作方便。已在实际中得到应用。关键词:红外遥控嚣;FPGA;VHDL;PT2248 AbstractInfraredremotecontrolandlowcost,lowpowerconsumption,easyconnection,easytouse,inmanysmallmobiledeviceshavebeenwidelyused.Atpresent,theinfraredremotecontrolhasbecomeastandardpartofhouseholdappliances.TV,VCR,DVD,audioamplifier,airconditioningandotherequipmentforvirtuallyallfunctionscanbecontrolledbyinfraredremotecontrol.Thistentintroducesthedesignoftheinfraredremotecontrolsystemandintactsoftwaredecodescheme,sourcecodeandapplicationmethod.At1astitoffersapracticaalreferencefora11kindsofinfraredremetecontroller.Theimplementationmethod,theexternalcircuitconnectionissimple,easytooperate.IntroducedbythePT2248asatransmitter,VHDLprogramming,theuseofFPGA,EDAdownloadedtotheexperimentalboarddesigntoachievedecoding.Foralltypesofdevelopmentandapplicationofremotecontrolprovidesaveryusefulreference.Systemissimpleinprinciple,reliability,abilitytodetecterrors,topreventmisuseoftheproduction.Canbeappliedtocontrolapplications.Hasbeenappliedinpractice.KeyWords:remotecontrol;VHDL;FGPA;PT2248; 目录1 引言11.1遥控器的发展历程11.2遥控器的种类及应用21.3论文的研究内容及安排42红外遥控的方法52.1发射系统52.2接收系统62.3红外原理73基于FPGA的红外遥控器的实现93.1设计要求93.2设计分析与设计思路93.3遥控器原理103.4各模块的设计与实现164波形仿真与分析184.1解码器184.2译码器184.3键盘扫描模块194.4动态扫描显示模块204.5用户显示模块204.6整体设计、仿真21结论23致谢24参考文献25 1 引言IT技术的快速发展使得越来越多的新生家电走向市场。国内经济的迅速提高更使得居民有能力购买各式各样的家电。因此常常要因为操控不同的家电而更换不同的遥控器,这让用户倍感不便。能够用一个遥控器控制不同家电的多功能遥控器,就应允而生。本文运用FPGA设计了一种红外遥控器。操作简单方便,并且功能强大。1.1遥控器的发展历程遥控器是一种用来远控机械的装置。现代的遥控器,主要是由集成电路电板和用来产生不同讯息的按钮所组成。到底是谁发明了第一个遥控器已无可考证了。但最早的遥控器之一,是一个叫尼古拉·特斯拉(NikolaTesla)(1856—1943)的发明家(他曾经为爱迪生工作,同样被誉为天才发明家)在1898年时开发出来的(美国专利613809号),叫做“MethodofandApparatusforControllingMechanismofMovingVehicleorVehicles”。到了60年代初,一些发达国家开始研究民用产品的遥控技术,但由于受当时技术条件的限制,遥控技术发展很缓慢。70年代末,随着大规模集成电路和计算机技术的发展,遥控技术才得到快速发展。在遥控方式上大体经历了从有线到无线的超声波、从振动子到红外线、再到使用总线的微机红外遥控这样几个阶段。无论采用何种方式,准确无误地传输信号,最终达到满意的控制效果是非常重要的。最初的无线遥控装置采用的是电磁波传输信号,由于电磁波容易产生干扰,也易受干扰,因此逐渐采用超声波和红外线媒介来传输信号。与红外线相比,超声传感器频带窄,所能携带的信息量少,易受干扰而引起误动作。较为理想的是光控方式,采用红外线的遥控方式逐渐取代了超声波遥控方式,出现了红外线多功能遥控器,并且成为当今时代的主流[1]。由于红外线在频谱上位于可见光之外,所以抗干扰性强,具有光波的直线传播特性,不易产生相互间的干扰,是很好的信息传输媒体。信息可以直接对红外光进行调制传输,例如,信息直接调制红外光的强弱进行传输,也可以用红外线产生一定频率的载波,再用信息对载波进调制,接收端再去掉载波,取到信息。 从信息的可靠传输来说,后一种方法更好,这就是目前大多数红外遥控器所采用的方法。红外遥控技术在这十年来得到了迅猛发展,在家电和其他电子领域都得到了广泛应用。随着生活水平的提高,人们对产品的追求是使用更方便、更具智能化,红外遥控技术正是一个重点的发展方向。各类遥控器功能大致相同。大多都有数字键、启动停止键、前进键、快进键和后退键。现实生活中,由于用户的需求差异,特殊功能键的使用频率很低,甚至部分用户自始至终就从未使用过这类按键。因此,这些按键完全可以简化和归类使用。对于那些不宜简化和归类的少量特殊功能键,可以通过开辟自定义按键区的方法予以解决。目前国外(主要是欧美市场)的遥控器几乎都是多功能遥控器,它们能够控制全球的绝大部分的视频设备甚至包括空调器。这些遥控器一般由MCU进行控制,其价格一般比较贵,至少上百美金。值得一提的是,目前全球的遥控器的80%是由中国大陆代工贴牌生产的,但是关键芯片是别人的。国外的遥控器主要通过超市等渠道进行销售,消费者可以根据自己的需求进行选择,其发展趋势是根据家庭的需要遥控器拥有更多的功能和更人性化的设计[8]。而在国内市场,遥控器绝大部分是单一型的遥控器,也就是一个遥控器控制一个视频设备,这与我国经济状况和消费习惯有关。多功能(万能)遥控器只是单一型的遥控器的补充,在一般的主流渠道是没有多功能遥控器销售的,许多消费者也就不知道如何购买多功能遥控器,因此多功能遥控器的销量是相对很少的。1.2遥控器的种类及应用(1)红外遥控器红外遥控器(IRRemoteControl)是利用波长为0.76~1.5μm之间的近红外线来传送控制信号的遥控设备。常用的红外遥控系统一般分发射和接收两个部分。红外遥控无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰,因此,现在红外遥控在家用电器、室内近距离(小于10米)遥控中得到了广泛的应用。 图1-1红外遥控器(2)无线遥控器无线电遥控器(RFRemoteControl)是利用无线电信号对远方的各种机构进行控制的遥控设备。这些信号被远方的接收设备接收后,可以指令或驱动其它各种相应的机械或者电子设备,去完成各种操作,如闭合电路、移动手柄、开动电机,之后再由这些机械进行需要的操作。作为一种与红外遥控器相补充的遥控器种类,在车库门、电动门、道闸遥控控制,防盗报警器,工业控制以及无线智能家居领域得到了广泛的应用。图1-2无线遥控器(3)超声波遥控器超声波遥控是利用超声波来传送指令的遥控,可以应用于需要遥控、遥测的场合。采用AX5326与AX5327构成的遥控系统具有体积小、功耗低、功能强大、抗干扰能力强、成本低等优点。(4)智能遥控器为了减少家庭中红外线遥控器的数目,已经有很多厂家设计和生产了一种称为万能遥控器的红外线遥控装置.万能遥控器具有接收、存储和发送红外线编码的功能,通过对不同普通遥控器发出的红外线编码进行学习和存储, 万能遥控器可以对多个家用电器进行遥控,从而可以减少家庭中遥控器的数目。红外遥控是目前家用电器中用得较多的遥控方式,在车载影音导航系统也被广泛的应用。红外遥控的特点是不影响周边环境、不干扰其他电器设备。由于其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作;编解码容易,可进行多路遥控。由于各生产厂家生产了大量红外遥控专用集成电路,需要时按图索骥即可。因此,现在红外遥控在家用电器、近距离(小于10米)遥控中得到了广泛的应用[2]。自2005年起,台湾与中国大陆遥控设备产量约占全球总产量的80%,且受海外市场对家用自动化与娱乐应用产品需求的快速增长的刺激,其出口总值仍在上升。近年来,随着遥控制造产业的不断成熟,遥控器市场竞争十分激烈,遥控器的价格也出现下滑趋势,但高端产品的价格上升势头较好,因此,在未来一两年内,国内供应商主要生产中低端红外产品,而技术较强的台湾同行则将把重点集中在高端红外线或转向射频遥控器。由于国内及香港供应商可提供多种规格的红外线遥控器,而台湾制造商则转向采用更新的技术,因此,中国制造商可为海外买家提供各种规格的遥控器。除了国外市场,国内自身的需求量也十分巨大。就拿福建省来说,福建是国内的电子大省之一,厦华、厦新、万利达和灿坤等电子厂商对红外遥控设备需求量十分巨大,而省内主要的红外遥控设备厂商是厦门华联,其每年对红外遥控芯片的需求量在两千万以上,如果能研制出一款同等类型的芯片,不但能带来可观的利润,更能完善红外遥控设备的相关产业链,促进整个行业的发展。1.3论文的研究内容及安排本文主要对于基于FPGA的红外遥控进行深入解析。全面分析红外遥控的各个模块及各个模块的程序设计。对每个子模块进行仿真测试,并且最后通过整体仿真对整个设计深入了解。1研究内容发射编码部分使用指定的元器件在万用板上完成红外遥控器的制作。 接收解码部分用VHDL编写程序,下载到EDA实验板上实现解码,实现下列功能。(1)基本功能:1)将一体化红外接收解码解调器的输出信号解码(12个单击键、6个连续键,单击键编号为7~8,连续键编码为1~6),在EDA实验板上用七段数码管来显示。2)当按下遥控器1~6号连续键时,在EDA实验板上点亮一个发光二极管作为连续键按下的指示,遥控器上连续键按下时指示灯全亮,直到松开按键时才熄灭,用于区别单击键。3)在EDA实验板上设置8个按键,其功能等同于遥控器上的1~8号按键。(2)扩展功能通过遥控器跳线改变用户码,EDA实验板上用3个发光二极管正确显示发送端的用户码。2论文安排1、本论文首先对遥控器的原理及功能应用等基本理论和现有的工作基础进行全面系统的介绍;然后再充分了解遥控器的基本理论知识后,重点对红外遥控进行深入的研究;2、对遥控进行综述,了解遥控优缺点,并进行比较,着重阐述红外遥控的方法。3、详细分析基于FPGA红外遥控的设计及思路。首先对遥控器的原理进行讲解分析,并对各个子模块:解码、译码、键盘扫描、动态扫描、用户码显示模块进行逐个分析设计并且仿真,然后对各个子模块进行连接,做出整体设计仿真。 2红外遥控的方法红外遥控系统主要分发射和接收2部分,如图2-1所示:图2-1红外遥控系统2.1发射系统目前有很多种芯片可以实现红外发射,可以根据选择发出不同种类的编码。由于发射系统一般用电池供电,这就要求芯片的功耗要很低,芯片大多都设计成可以处于休眠状态,当有按键按下时才工作,这样可以降低功耗.芯片所用的晶振应该有足够的耐物理撞击能力,不能选用普通的石英晶体,一般是选用陶瓷共鸣器,陶瓷共鸣器准确性没有石英晶体高,但通常一点误差可以忽略不计。红外线通过红外发光二极管发射出去,红外发光二极管是特殊的发光二极管,其内部材料和普通发光二极管不同,因而在其两端施加一定电压时,它发出的是红外线而不是可见光。目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通妒5发光二极管相同[3]。a简单驱动电路b射极输出驱动电路图2-2红外发光二极管驱动电路如图2—2是红外发光二极管的驱动电路,a图是最简单的驱动电路,选用元件时要注意三极管的开关速度要快,还要考虑到红外发光二极管的正向电流和反向漏电流,一般流过红外发光二极管的最大正向电流为lOOmA,电流越大,其发 射的波形强度越大。a图电路有一点缺陷,当电池电压下降时,流过红外发光二极管的电流会降低,发射波形强度降低,遥控距离就会变小。b图所示的射极输出驱动电路可以解决这个问题,两个二极管把三级管基极电压钳位在1-2V左右,因此三级管发射极电压固定在0.6V左右,发射极电流IE基本不变,根据IE,≈IC,所以流过LED的电流也基本不变,这样即使电池电压有所下降,仍然可以保证一定的遥控距离[9]。2.2接收系统图2-3红外信号接收系统结构图红外信号接收系统的基本电路结构如图2-3所示,该电路包括红外光电二极管,前置放大电路,限幅放大电路,带通滤波器,积分电路,比较器等。图左侧的红外光电二极管将接收到的红外光信号转化为电信号,然后把信号送到放大电路进行放大,限幅放大电路在放大信号的同时又把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近。交流信号进入带通滤波器,带通滤波器滤除中心频率外频率的噪声,出来的信号通过解调电路和积分电路进入比较器,比较器输出高低电平,还原出发射端的二进制信号波形[4]。图2-4一体化红外接收头红外接收头的种类很多,引脚定义也不相同,一般都有三个引脚,包括供电脚,接地和信号输出脚,也有些红外接收头添加了可以调节解调频率的端口。应用时必须保证发射端调制载波的频率与接收端相应的解调频率之间互相匹配[16]。2.3红外原理1识别、编码、调制 除了发送器,接收器以外,红外遥控系统还需要一系列外围电路。有些接收器内已经集成了专用的解码芯片,而无需自行设计解码器。若设计者不用专用解码器而想自主解码,则还要设计一个用于白行解码的控制器。其中发送器是用来发送控制信号的,如果把按键的动作称为信源的话,那么发送器是一个信源信号的转换装置,把转换后的信号通过红外信道传输出去。而信源信号的转换方式有频分制和码分制两种[]。频分制就是以不同频率的信号代表不同的按键信号。遥控信号的频率范围在几百HZ到几十KHZ之间[12]。这种识别/编码方式可以使得发送出去的遥控信号抗干扰能力较强,但是由于不同的按键信号要占用不同的频带,所以在遥控按键指令集复杂的场合,他需要较多的遥控通道,即要占用更多的频率资源。因而这种方式只适合指令集简单的场合。而码分制则适用于按键指令集复杂的场合,他是以不同的脉冲或者脉冲组合代表不同的按键指令。与频分制相比,码分制电路简单,使用灵活,在实际应用中多采用这种方式。下面将要用到的PT2248就是这种方式。码分制的编码方式主要有:频率调制(FM),脉宽调制(PWM),脉位调制(PPM),实际上各种红外系统的主要区别在于信号的编码方式不相同。然而如果仅把经过码分制处理的脉冲以红外光波的形式发送出去,由于其编码频率低,周期在毫秒级,抗干扰能力不强,因此实际的发送器往往把脉冲序列经过调制后才发送出去以提高系统的抗干扰能力。目前常用的载频有30kHz,38kHz,40kHz及56kHz等几种[5]。2信号的解调与解码红外接收器用来接收来自红外发送器的红外光波信号,将接收到的信号放大、检波、整形,直到解调出发送端的基带脉冲序列,如果红外接收器是专用设备,则他的功能还应包括对基带信号的解码。此时他内部的解码器往往集成了专用的解码芯片。但是对于独立研发生产,可以按照编码方式自行解码。接收器的结构功能很大程度上取决于发送器的结构及对信源信号的处理方式[6]。 3基于FPGA的红外遥控器的实现3.1设计要求红外遥控系统由发射编码和接收解码两个部分组成,本设计制作了发射编码电路板(遥控器)一级编写程序在EDA实验板上实现接收解码。3.2设计分析与设计思路本次课程设计的红外遥控器由红外遥控专用芯片PT2248作为编码及发送部分,PT2248最大可用作18路红外遥控系统的编码,其内部己集成了38kHz的红外载波振荡及相应的数字脉码调制电路,只需外接3×6的矩阵式按键、红外发光二极管及其驱动电路等少量元器件便可完成编码发送的功能。由PT2248和少量外围元件组成的红外遥控发射电路如下图3-1所示图3-1遥控器发送电路 芯片的发送指令由12位码组成,其中C1~C3是用户码,可用来确定不同的模式。用户码设定是以列线内接入二极管为界线,当T1~T3与CODE之间分别接入二极管时,用户码(C1~C3)为“1”;当T1~T3引脚不接二极管时,用户码为“0”。如果该芯片与BL9150相结合,则C3引脚必须接入二极管;如果该芯片与BL9149相结合,则C2必须接二极管,H、S1和S2是代表连续发送或单次发送的码,且分别与T1、T2和T3列的键对应。D4~D6是发送的数据码(也是键输入码)上图中3V电源电压一方面为芯片提供推荐工作电压并加到引脚16,另一方面作为信号输出指示复合管的工作电压。为了使振荡频率为455kHz,特采用外接晶振,并外接两个电容120pF旁路到地。图7中三列T1、T2、T3和CODE分别接一个二极管,目的是为了使用户码(C1、C2、C3)为“1”[7]。3.3遥控器原理1发射板部分发射板主要由红外线编码芯片PT2248构成红外编码这个模块。PT2248的管脚图如下图3-2所示:图3-2PT2248管脚图其各个管脚的功能如下表3-1[14]:表3-1PT2248管脚功能表 PT2248组成的18路遥控发送器其编码规则:(1)设a为一个时间单位,时间长度是38kHz的16个时钟周期,即a=1÷38kHz×16=0.421ms编码是以串行形式发送的,在接收端(38kHz一体化红外接收解调器)接收到如下形式的1位的编码时分别表示“0”和“1”:1个a的低电平,3个a的高电平表示‘0’:3个a的低电平,1个a的高电平表示‘1’,编码以串行形式发送,接收端的一体化红外接收解调器输出波形如图3-3所示:图3-3一体化红外接收解调器输出波形(2)遥控器的每个按键编码由12位按以上编码规则所代表的“0”、“1”组成,时间长度为48a,当按下遥控器的7~18号单击按键,则以12位为一组(48a)发送两次编码,如图3-4所示:图3-4单击按键发送的编码 图中60a为自按下按键到发送编码的等待时间,80a是前后两次发送12位48a编码的高电平时间间隔。7~18号单击按键无论发送端按键时间持续多长只发送一次这样形式的两组相同的12位编码。其中第二个48a起校验作用。(3)当按下1到6号连续按键时,编码按如下格式连续发送。当按着连续键不放,会每隔208a发送一次有效编码[10]。图3-5连续按键发送的编码(4)具体每个12位的串行编码规则如下:图3-6按键12位编码规则C1、C2、C3位用户识别码,可通过在遥控器发射电路中是否接入IN4148二极管决定其为‘0’或‘1’,接入二极管为‘0’,对应着TP2248的第10管脚到第12管脚,若只有第10管脚不接入二极管,11和12接入,用户码位“011”,表3-2用户码第10管脚第11管脚第12管脚C1C2C3用户码不接入不接入不接入0000不接入不接入接入0011不接入接入不接入0102不接入接入接入0113接入不接入不接入1004接入不接入接入1015接入接入不接入1106接入接入接入1117 H、S1、是区别单击键和连续键的标志位,相当于列坐标,D1~D6为按键输入码,相当于行坐标,低9位的按键编码规则如下表3-3[13]。表3-3低9位按键编码按键低9位编码HS1S2D1D2D3D4D5D61100100000210001000031000010004100000100510000001061000000017010100000801001000090100010001001000010011010000010120100000101300110000014001010000150010010001600100010017001000010180010000012接收解码原理红外接收解调器输出的波形如图3-3所示。编程的主要工作是将这一系列波形进行解码得到12位编码。根据前面对遥控器发射信号的分析,编码‘0’和‘1’的区别在于占空比不痛,编程的方法也从这里入手。对于每位编码,设置一个计数器,在接收到低电平时开始计数,遇到高电平停止计数,通过对计数值大小的比较判断编码是‘0’还是‘1’。具体原理:由于一位编码由4a组成,选择频率为16KHZ的系统时钟(2.048mHz晶振进行1028分频,即27分频),a的频率为2.375khz(啊的时间长度为0.421ms),由此可算得,'0'的编码由6.7个低电平和20.2个高电平组成,‘1’则由20.2个低电平和6.7个高电平组成。这样通过计数器对低电平计数,取一个判断值为15,当低电平结束时计数值大于15则编码为‘1’,小于15则编码为‘0‘。当接收到12位时,输出一串完整的编码。此处的关键在于频率的选择,如频率选的太低,区分’0‘和’1‘ 时容易出现频率偏移过多导致误码等错误[11]。3键盘扫描电路EDA实验板上有个4*4的按键矩阵,当按键被按下时,其输出引脚为低电平,而其余时间内均为高电平。当按下每一行的四个键时,七段码显示管应显示1—4,必须将四个按键并行输入的按键编码转换成1—4的BCD码才能输出显示。按键输入与遥控输入应共用两个七段码显示管输出,这样就需要在程序中将输入的遥控信号与按键信号先进行选择再输出。这部分电路如下图3-7所示:图3-74x4矩阵键盘的原理图4数码管的动态扫描显示这部分电路将译码后得到的十二位普通高低电平‘0、’‘1’编码译成相应的压缩BCD码1~18,应十位仅有0、1两种可能,将译得的BCD码直接接芯片4511的输入引脚,4511的译码输出并接到4位LED数码显示管,再在程序中写入十位和个位选择的进程,即可得到相应1~18数字显示输出。显示部分电路由芯片HCC4511BF构成,译码后的高低电平从CPLD的44,45,46,48,49管脚传输到HCC4511BF,进行译码,这部份电路如图3-8: 图3-8数码管的动态扫描的原理图3.4各模块的设计与实现1解码器解码器用pro1、pro2和pro3三个进程实现。进程pro1:通过对高电平持续计数检查红外线接收是否出错,有错则重新接收。接收12位编码时,高电平持续时间最多为3a,所以当检查到高电平持续了4a长的时间,就可以认为接收的红外信号有错,对12位寄存器清零。进程pro2:对接收到的红外信号进行解码,并将一个48a存在12位寄存器中,用一个单进程状态机来实现,ASM图如下所示。每按下一个单击键,会解出两个相同的12位编码,两次解码输出的间隔约为128a(80a+48a),其中第二次收到的12位编码起校验作用,只有当两次收到的12位编码相同时,蜂鸣器才会发声,表示接收到有效按键,否则这次按键不发生任何作用。当按下连续键时,解码原理与单击键相同[15]。进程pro3:延长蜂鸣器响的时间,将bell的响铃时间延长为50a,即50x6.74=337个clk。经过这样处理后,当按下连续键时,会每隔334a(208a+48a+80a+48a-50a),约为0.14s听到滴滴的响铃声。BEGINIF(rising_edge(clk))THENCASEstate1IS WHENt0=>reg_clr<='0';cnt3:=0;IFx='1'THENstate1:=t1;ENDIF;WHENt1=>cnt3:=cnt3+1;IFx='1'THENIFcnt3=27THENreg_clr<='1';state1:=t0;ELSEstate1:=t1;ENDIF;ELSEstate1:=t0;ENDIF;ENDCASE;图3-9解码器端口图2译码器模块12位编码的最高3位为用户码,可直接赋给用于显示用户的LED2,但由于发光二极管的驱动电路是低电平有效,故要对最高3位进行取反在赋给LED2.另外,将低9位转换为两个4位BCD码。当按下连续键时,用解码器的输出bell来控制发光二极管LED1亮的时间。WHEN"100100000"=>reg2<="00000001";IFcontrol='1'THENreg1<='0';ELSEreg1<='1';ENDIF;WHEN"100010000"=> reg2<="00000010";IFcontrol='1'THENreg1<='0';ELSEreg1<='1';ENDIF;图3-10译码器端口图3键盘扫描模块不断扫描键盘,当有键被按下时,对扫描输出keyout进行编码输出两个4位BCD码,同时蜂鸣器响。其中,键盘上的按键1~6对应遥控器的连续键1~6,当键盘按键1~6被按下时,蜂鸣器开始响,直到按键被松开为止;键盘上的按键7~8对应着遥控器的单击键7~8,无论按下多久,蜂鸣器只会响很短的滴一声,在程序中我们设为30个clk。BEGINPro1:PROCESS(clk)BEGINIFrising_edge(clk)THENIFkeyin="1111"THENPre_state<=next_state;ENDIF;ENDIF;ENDPROCESSpro1;Pro2:PROCESS(pre_state,keyin)BEGINCASEpre_stateISWHENs0=>reg3<="1110"; next_state<=s1;WHENs1=>reg3<="1101";next_state<=s0;ENDCASE;ENDPROCESSpro2;图3-11键盘扫描模块图4动态扫描显示EDA板除了用3个发光二极管指示用户码外,还将用户码用一个7端数码管进行显示。用户码、按键的个位以及按键的十位采用动态扫描方式进行显示。按键有遥控器和键盘两种,这里模仿电视机将键盘的优先级设为最高。以Keyboard模块的bell输出信号作为键盘按键的指示信号sel,当sel为高电平说明键盘有按键被按下。IFcnt=0THENBCD<=BCD2(3DOWNTO0);LSD<="100";cnt:=cnt+1;ELSIFcnt=1THENBCD<=BCD2(7DOWNTO4);LSD<="010";cnt:=0;ENDIF; 图3-12动态扫描显示端口图5用户码显示模块在模块划分中,用户码显示模块是合并在显示模块中的。设置本机用户码为“111”,所以当按下EDA的键盘按键时,显示用户码位7.当接收到遥控器的信号时,用户码由发射板电路决定。在本设计中,以键盘输入优先,故用Keyboard模块输出bell信号作为控制信号use_sel,当use_sel为高电平时说明键盘有键按下,寄存本机用户码,否则当接收到红外遥控信号时,寄存红外遥控器的用户码。BEGINPROCESS(clk,use_sel)BEGINIFuse_sel='1'THENreg_user<="111";ELSIFrising_edge(clk)THENreg_user<=use_in;ENDIF;ENDPROCESS;Use_BCD<='0'®_user;ENDbehav;图3-13用户码显示模块图 4波形仿真与分析4.1解码器1)按下遥控器的单击键7,当发送的校验码与前面发送的编码不一致时,输出z为“000000000000”,bell始终为低电平,仿真如下图所示。这里的仿真是测试解码是否成功,所以输入信号并没有严格按照两个48a之间相隔80a进行设置。(clk模拟16kHz的系统时钟,后面的仿真都一样),如图4-1。图4-1发生校验错误的情况2)当按下遥控器的单击键7时,若2次接收到的48a相同,则编码输出z为“111010100000”,单击键解码仿真如下图4-2。图4-2单击键解码仿真3)当按下遥控器的连续键1时,编码输出z为“111100100000”(设计的发射电路用户码为“111”)。连续仿真键解码仿真如下图4-3。图4-3连续键解码仿真4.2译码器1)当接收到遥控器的连续键1,设遥控器用户码为“111”,即z为“111100100000”时,译码器的输出BCD1为“00000001” 。3个显示用户码的二极管全亮(LED2=“000”,低电平驱动),且当control=’1‘时,连续键指示灯亮(LED1='0')。仿真结果如图4-4。图4-4译码器仿真12)当接收到的遥控器单击键7,设遥控器用户码为“111”,即z为“111010100000”时,译码器的输出BCD1为“00000111”,3个显示用户码的二极管全亮(LED2=“000”),连续键指示灯灭(LED1=’1‘)。仿真结果如图4-5。图4-5译码器仿真24.3键盘扫描模块当没有按键被按下时,keyin为“1111”,输出的keyout为键盘扫描信号。仿真结果如图,BCD2译码正确。同时,当按下5、6号按键时,LED1点亮知道松开按键为止,蜂鸣器bell也一样;当按下7、8号按键时,LED1指示灯熄灭,蜂鸣器只响很短一段时间(30个clk),符合设计要求,如图4-6。图4-6键盘扫描仿真波形4.4动态扫描显示模块1)当按下键盘按键3时,数码管显示用户码为7,设本机用户码为“111” ,其他两个数码管显示0和3,仿真结果如图4-7。图4-7动态扫描显示仿真11)当接收到红外遥控发射信号“111100100000”,即BCD1=“00000001”,则数码管显示用户码为7,其他两个数码管显示0和1,仿真结果如图4-8。图4-8动态扫描显示仿真24.5用户显示模块设红外遥控器的用户码为“011”,键盘用户吗为“111”。当use_sel为‘1’时,键盘优先,所以use_BCD输出为”0111“,否则use_BCD输出为”0011“。仿真结果如图4-9。图4-9用户码显示仿真4.6整体设计、仿真对各个子模块进行连接,其连接如下图4-10。 图4-10各子模块的连接1)当按下遥控器的单击键7时(发射板上用户码设为101),指示灯LED1不亮,LED2显示的用户码为5(LED2的驱动低电平有效)。仿真结果如图4-11。图4-11整体仿真12)当按下遥控器的连续键1时(发射板上用户码设为101),蜂鸣器滴滴的响直到按键被松开,且指示灯LED1也一闪一闪的发亮直到按键被松开为止,LED2显示用户码为5(LED2的驱动低电平有效)。仿真结果如图4-12。图4-12整体仿真2 4结论红外遥控系统应用很广泛,了解一些红外遥控的知识是有必要的。本论文研究了基于FPGA的红外遥控器,进行QuartusII仿真校验并通过CPLD下载到EDA实验板上实现接收解码。论文大体对遥控器的的整体设计原理及各个子模块进行分析设计并对个子模块进行了仿真。仿真过程中有时候仿真结果老师错误、出不来,经过导师指导发现了是由于没有控制好输入信号的编码间隔,在重新多次操作下终于得出了正确仿真。该红外遥控系统已经得到实践验证,而且该系统的解码是由CPLD来完成的。由于VHDL与EDA工具软件平台的强大功能,许多工作都能在计算机上以软件仿真的形式完成,这样不仅可以大大缩短产品的开发周期,还可以随时根据实际需要更改或者添加新的功能,设计模式更加灵活。从而为各类红外控制应用系统提供了一类实用的参考。论文中只进行了大体的,有正对性的仿真,还有很多种情况要考虑,可以在今后的学习工作中进一步改进。 参考文献[1]倪建,董强.编码解码技术在红外遥控器中的实现[J].中国民航飞行学院学报,2004,15(1):35-36.[2]佟国香,孙国强,李广军.红外遥控器控制系统的VHDL设计与FPGA实现[J].上海理工大学学报,2004,26(2):189-192.[3]张波,石广范,张凝,闫广明.红外遥控英、俄文LED条形显示屏设计与实现[J].哈尔滨商业大学学报(自然科学版),2004,20(3):370-373.[4]宝金.基于单片机设计实用型无线遥控器原理[J].阴山学刊,2007,21(1):45-46.[5]Y.Cu.H.0,Wang.andK,Tanaka.FuzzyControlofNolinearTime-DelaySysyems:StabilityandDesignIssues[C].Arlington,2001,(6):25-27.[6]HONIGM,MADHOWU,VERDUS.Blindadaptivemultiuserdetection[J].IEEETransonInformationTheory,1995,41(4):944-960.[7]JYOTIS,RAICS,BANSALPK.Near-farresistantICAbaseddetectorforDS-CDMAsysteminthedownlink[J].WirelessPersonalCommunications,2007,43(2):341-353.[8]丁颖,肖功宝,杨仁顺,张存库.红外遥控技术在工业电视中的应用[J].自动化与仪表,1997,12(2):45-65.[9]丁跃华,陈艳峰.基于EDA技术的红外遥控系统设计[J].电子元器件应用,2006,13(4):78-80.[10]吴彪,朱立新,赵佳.基于CPLD的红外遥控发射接收设计与仿真[J].计算机仿真,2006,23(8):269-272.[11]李跃宇,付梦印.红外遥控在车辆导航定位系统中的应用[J].红外技术,2003,25(6):69-71.[12]徐爱钧.80C5单片机实践教程[M].北京:电子工业出版社,2005,5.[13]钱敏,曹云鹏,章敏,钱春花,张成,李运宁.基于FPGA/HDL的红外遥控接收信号解码器设计[J].通信技术,2009,42(8):219-224.[14]赵雅兴.FPGA原理设计与应用[M].天津:天津大学出版社,1999,4.[15]金韦.多功能通用遥控器原理及制作[J].实用电子文摘,1995,(2):35-44.[16]李迟生.智能遥控器的设计[J].电子技术,1996,(12):540-544. 附录1应用程序源代码红外遥控解码器的源程序如下:LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;USEIEEE.std_logic_unsigned.ALL;ENTITYRelieve_codeISPORT(clk:INstd_logic;--时钟频率16KHZx:INstd_logic;--接收到的红外信号z:OUTstd_logic_vector(11DOWNTO0);--12位解码输出bell:OUTstd_logic);--提示音ENDRelieve_code;ARCHITECTUREbehavOFRelieve_codeISTYPEstate_typeIS(s0,s1,s2,s3,s4,s5);SIGNALstate:state_type:=s0;SIGNALreg12,qreg12:std_logic_vector(11DOWNTO0);SIGNALcnt1:IntegerRANGE0TO30;SIGNALcnt2:IntegerRANGE0TO11;SIGNALreg_clr:std_logic;SIGNALreg_bell:std_logic;SIGNALflag:std_logic;BEGIN--进程prol:检查红外接收是否出错,有错则重新接收。pro1:PROCESS(x,clk)TYPEstate_type1IS(t0,t1);VARIABLEstate1:state_type1:=t0;VARIABLEcnt3:IntegerRANGE0TO30;BEGINIF(rising_edge(clk))THENCASEstate1ISWHENt0=>reg_clr<='0';cnt3:=0;IFx='1'THENstate1:=t1;ENDIF;WHENt1=>cnt3:=cnt3+1;IFx='1'THENIFcnt3=27THENreg_clr<='1';state1:=t0;ELSEstate1:=t1;ENDIF;ELSEstate1:=t0;ENDIF;ENDCASE; ENDIF;ENDPROCESSpro1;--进程pro2:对红外接收信号解码pro2:PROCESS(clk,reg_clr,state,flag)BEGINIF(reg_clr='1')THENstate<=s0;reg12<="000000000000";ELSIF(rising_edge(clk))THENCASEstateISWHENs0=>cnt1<=0;cnt2<=0;reg_bell<='0';reg12<="000000000000";IFx='0'THENstate<=s1;ENDIF;WHENs1=>cnt1<=cnt1+1;IFx='1'THENIFcnt1>=15THENstate<=s2;ELSEstate<=s3;ENDIF;ENDIF;WHENs2=>cnt2<=cnt2+1;reg12<=reg12(10DOWNTO0)&'1';IFcnt2=11THENstate<=s4;ELSEstate<=s5;ENDIF;WHENs3=>cnt2<=cnt2+1;reg12<=reg12(10DOWNTO0)&'0';IFcnt2=11THENstate<=s4;ELSEstate<=s5;ENDIF;WHENs4=>state<=s0;IFflag='0'THENqreg12<=reg12;flag<='1';ELSEflag<='0';IFreg12=qreg12THENz<=reg12;state<=s0;reg_bell<='1';ELSEz<="000000000000";ENDIF;ENDIF;WHENs5=>cnt1<=0;IFx='0'THENstate<=s1;ENDIF;ENDCASE;ENDIF;ENDPROCESSpro2;Pro3:PROCESS(clk,reg_bell) TYPEstate_typeIS(t0,t1);VARIABLEstate:state_type:=t0;VARIABLEcnt4:IntegerRANGE0TO400;BEGINIF(rising_edge(clk))THENCASEstateISWHENt0=>bell<='0';cnt4:=0;IFreg_bell='1'THENstate:=t1;ENDIF;WHENt1=>cnt4:=cnt4+1;bell<='1';IFcnt4=337THENstate:=t0;ELSEstate:=t1;ENDIF;ENDCASE;ENDIF;ENDPROCESSpro3;ENDbehav;红外遥控译码器的源程序如下:LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;USEIEEE.std_logic_unsigned.ALL;ENTITYdecoderISPORT(clk:INstd_logic;control:INstd_logic;z:INstd_logic_vector(11DOWNTO0);BCD1:OUTstd_logic_vector(7DOWNTO0);LED1:OUTstd_logic;LED2:OUTstd_logic_vector(2DOWNTO0));ENDdecoder;ARCHITECTUREbehavOFdecoderISSIGNALreg1:std_logic;SIGNALreg2:std_logic_vector(7DOWNTO0);BEGINPROCESS(clk,control)BEGINIFrising_edge(clk)THENCASEz(8DOWNTO0)ISWHEN"100100000"=>reg2<="00000001";IFcontrol='1'THENreg1<='0'; ELSEreg1<='1';ENDIF;WHEN"100010000"=>reg2<="00000010";IFcontrol='1'THENreg1<='0';ELSEreg1<='1';ENDIF;WHEN"100001000"=>reg2<="00000011";IFcontrol='1'THENreg1<='0';ELSEreg1<='1';ENDIF;WHEN"100000100"=>reg2<="00000100";IFcontrol='1'THENreg1<='0';ELSEreg1<='1';ENDIF;WHEN"100000010"=>reg2<="00000101";IFcontrol='1'THENreg1<='0';ELSEreg1<='1';ENDIF;WHEN"100000001"=>reg2<="00000110";IFcontrol='1'THENreg1<='0';ELSEreg1<='1';ENDIF;WHEN"010100000"=>reg2<="00000111";reg1<='1';WHEN"010010000"=>reg2<="00001000";reg1<='1';WHEN"010001000"=>reg2<="00001001";reg1<='1';WHEN"010000100"=>reg2<="00010000";reg1<='1';WHEN"010000010"=>reg2<="00010001";reg1<='1';WHEN"010000001"=>reg2<="00010010";reg1<='1';WHEN"001100000"=>reg2<="00010011";reg1<='1';WHEN"001010000"=>reg2<="00010100";reg1<='1';WHEN"001001000"=>reg2<="00010101";reg1<='1';WHEN"001000100"=>reg2<="00010110";reg1<='1';WHEN"001000010"=>reg2<="00010111";reg1<='1';WHEN"001000001"=>reg2<="00011000";reg1<='1';WHENothers=>reg2<="00000000";reg1<='1';ENDCASE;ENDIF;ENDPROCESS;BCD1<=reg2;LED1<=reg1;LED2<=notz(11DOWNTO9); ENDbehav;键盘扫描源程序如下:LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;USEIEEE.std_logic_unsigned.ALL;ENTITYKeyboardISPORT(clk:INstd_logic;keyin:INstd_logic_vector(3DOWNTO0);keyout:OUTstd_logic_vector(3DOWNTO0):="1110";LED1:OUTstd_logic;bell:OUTstd_logic;BCD2:OUTstd_logic_vector(7DOWNTO0));ENDKeyboard;ARCHITECTUREbehavOFKeyboardISTYPEstate_typeIS(s0,s1);SIGNALpre_state,next_state:state_type:=s0;SIGNALreg1:std_logic;SIGNALreg2:std_logic_vector(7DOWNTO0);SIGNALreg3:std_logic_vector(3DOWNTO0);BEGINPro1:PROCESS(clk)BEGINIFrising_edge(clk)THENIFkeyin="1111"THENPre_state<=next_state;ENDIF;ENDIF;ENDPROCESSpro1;Pro2:PROCESS(pre_state,keyin)BEGINCASEpre_stateISWHENs0=>reg3<="1110";next_state<=s1;WHENs1=>reg3<="1101";next_state<=s0;ENDCASE; ENDPROCESSpro2;--进程pro3对扫描结果编码,只扫描1110和1101这两排pro3:PROCESS(clk,keyin,reg3)TYPEstate_typeIS(t0,t1,t2);VARIABLEstate:state_type:=t0;VARIABLEcnt:IntegerRANGE0TO30;BEGINIFrising_edge(clk)THENCASEreg3&keyinISWHEN"11101110"=>reg2<="00000001";reg1<='0';bell<='1';state:=t0;WHEN"11101101"=>reg2<="00000010";reg1<='0';bell<='1';state:=t0;WHEN"11101011"=>reg2<="00000011";reg1<='0';bell<='1';state:=t0;WHEN"11100111"=>reg2<="00000100";reg1<='0';bell<='1';state:=t0;WHEN"11011110"=>reg2<="00000101";reg1<='0';bell<='1';state:=t0;WHEN"11011101"=>reg2<="00000110";reg1<='0';bell<='1';state:=t0;WHEN"11011011"=>reg2<="00000111";reg1<='1';CASEstateISWHENt0=>cnt:=0;bell<='1';state:=t1;WHENt1=>cnt:=cnt+1;bell<='1';IFcnt=30THENstate:=t2;ELSEstate:=t1;ENDIF;WHENt2=>cnt:=0;bell<='0';state:=t2;ENDCASE;WHEN"11010111"=>reg2<="00001000";reg1<='1';CASEstateISWHENt0=>cnt:=0;bell<='1';state:=t1;WHENt1=>cnt:=cnt+1;bell<='1';IFcnt=30THENstate:=t2;ELSEstate:=t1;ENDIF;WHENt2=>cnt:=0;bell<='0';state:=t2; ENDCASE;WHENothers=>reg2<="00000000";reg1<='1';bell<='0';state:=t0;ENDCASE;ENDIF;ENDPROCESSpro3;LED1<=reg1;BCD2<=reg2;keyOUT<=reg3;ENDbehav;动态扫描源程序如下:LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;ENTITYdisplayISPORT(clk:INstd_logic;Sel:INstd_logic;BCD1:INstd_logic_vector(7DOWNTO0);BCD2:INstd_logic_vector(7DOWNTO0);user_BCD:INstd_logic_vector(3DOWNTO0);BCD:OUTstd_logic_vector(3DOWNTO0);LSD:OUTstd_logic_vector(2DOWNTO0));ENDdisplay;ARCHITECTUREbehavOFdisplayISBEGINPROCESS(clk)VARIABLEcnt:integerRANGE0TO2;BEGINIFrising_edge(clk)THENIFsel='1'THENIFcnt=0THENBCD<=BCD2(3DOWNTO0);LSD<="100";cnt:=cnt+1;ELSIFcnt=1THENBCD<=BCD2(7DOWNTO4);LSD<="010";cnt:=0;ENDIF;ELSEIFcnt=0THENBCD<=BCD1(3DOWNTO0);LSD<="100";cnt:=cnt+1;ELSIFcnt=1THEN BCD<=BCD1(7DOWNTO4);LSD<="010";cnt:=cnt+1;ELSIFcnt=2THENBCD<=user_BCD;LSD<="001";cnt:=0;ENDIF;ENDIF;ENDIF;ENDPROCESS;ENDbehav;用户码显示的源程序如下:LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;USEIEEE.std_logic_unsigned.ALL;ENTITYUserISPORT(clk:INstd_logic;use_sel:INstd_logic;use_in:INstd_logic_vector(2DOWNTO0);use_BCD:OUTstd_logic_vector(3DOWNTO0));ENDUser;ARCHITECTUREbehavOFUserISSIGNALreg_user:std_logic_vector(2DOWNTO0);BEGINPROCESS(clk,use_sel)BEGINIFuse_sel='1'THENreg_user<="111";ELSIFrising_edge(clk)THENreg_user<=use_in;ENDIF;ENDPROCESS;Use_BCD<='0'®_user;ENDbehav;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭