红外遥控器的接收解调模块设计

上传人:m**** 文档编号:468616933 上传时间:2022-12-30 格式:DOC 页数:14 大小:793.01KB
返回 下载 相关 举报
红外遥控器的接收解调模块设计_第1页
第1页 / 共14页
红外遥控器的接收解调模块设计_第2页
第2页 / 共14页
红外遥控器的接收解调模块设计_第3页
第3页 / 共14页
红外遥控器的接收解调模块设计_第4页
第4页 / 共14页
红外遥控器的接收解调模块设计_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《红外遥控器的接收解调模块设计》由会员分享,可在线阅读,更多相关《红外遥控器的接收解调模块设计(14页珍藏版)》请在金锄头文库上搜索。

1、红外遥控器的接收解调模块设计-小型应用系统综合设计 姓 名:。 班 级:通信1121 学 号:1130119121 1130119122 1130119130 指导老师:刘传洋 时 间:11月3日11月14日项目设计环境使用(20分)设计任务功能理解与分析(10分)功能模块设计(编程及外围电路考虑)(30分)功能仿真与实现(10分)设计报告及提问(30分)合计(100分)得分设计要求1,设计制作一个接收红外遥控器信息的功能模块。具体设计内容包括: 2,红外遥控器的编码原理,脉宽调制码基本原理如下: 3,设计二进制数0/1的脉宽调制的解调模块; 4,设计接收32比特信息解调的控制模块; 5,设计

2、基于LCD1602的接收数据显示模块; 方案设计及硬件电路设计 1, 红外遥控电路的工作原理 红外遥控作为一种单向红外通讯技术,因其具有性能稳定、使用方便以及成本低 廉等特点,已经在消费电器中得到了普遍的应用。随着对电器产品智能化和使用便利 性要求的进一步提高,红外遥控的应用已经从传统家电领域向智能设备等新领域扩展。由于集成电路制造工艺的设计水平的不断提高,将此类分立电路功能集成到嵌入式系 统中已成为可能。本文设计脉冲信号调制采用了PPM方式,红外遥控系统采用了AHDL语言编写,来实现该电路的功能。 市场上的红外遥控器种类繁多,一般有这些类型uPD6121、TC9012、M50560-001、

3、SA3010等等 不管遥控器的种类如何,其编码方式大多类似,本文以比较典型的uPD6121为例,要想用可编程逻辑器件编写其内部电路模块,首先得了解整个电路的工作原理, 以下是uPD6121红外遥控器的主要原理。 载波波形如图3.1所示。 使用455kHZ晶体,经内部分频电路、信号被调制在37.91kHZ的频率上,占空比为: 1/3,1/3的占空比有助于提高红外线的发射效率。 数据格式: 数据格式包括了引导码、用户码、数据码和数据反码,编码总占32位。数据反码是数据码反向后的编码,编码时可用于对数据纠错。(注:第二段用户码也可以在遥控应用电路中被设置成第一段用户码的反码。) 使用455kHZ晶体

4、时各代码所占用的时间位定义: 用户码或者数据码中的每一位可以是位0,也可以是位1。区分0和1是利用脉冲的时间间隔来区分,这种编码方式称为脉冲位置调制方式,英文简称PPM。uPD6121G按键输出波形有两种方式:一种是每次按键都输出完整的一帧数据;另一种是按键按下相同的按键后每发送完整的一帧数据后,再发送重复码,直到按键松开。 重复码波形如图3.5所示。单一按键波形如图3.6所示。连续按键波形如图3.7所示。2红外遥控器模块的原理图 红外遥控模块的硬件部分原理图较为简单,该电路主要由键盘扫描电路和红外发射部分组成,而编码调制部分由软件部分负责。 图3.8 红外遥控发射电路图由于ALTERA公司的

5、3.3V/2.5V的MAX3000A芯片的IO脚兼容5V,所以键盘扫描电路的上拉电阻可以接5V电源。D1为红外发射管,D2为红外发射指示灯。3,红外遥控编码原理与设计 由于EPM3128A芯片的宏单元数量的有限性,在编写红外编码发射电路时,不得不考虑芯片资源的节约问题,所以本设计编写的红外遥控编码原理与uPD6121稍微有所差别,uPD6121格式中数据码和用户码均为8bit,这样编码或者解码时会占用很多的寄存器,及占用CPLD内部很多的可编程触发器。而本文设计的遥控器只有16个按键,没有那么多种数据要编码发射,且EPM3128A芯片资源也是有限的,所以对用户码和数据码均设定义为4bit。本文

6、设计的红外编码采用PPM编码方式,下面是其编码信息。 载波信号:f=38khz;占空比1/3; 位定义:a为一个时间单位时间长度是38kHZ的16个时钟周期,即a=138kHZ16=0.421ms(这样有助于时钟分频,减少触发器使用的数量) 图3.9 位定义数据格式: 数据格式中包含了引导码、数据码、数据反码、用户码、用户码,除引导码外其余均为4bit,编码总占16bit。其中引导码的高电平6.74ms=16a,低电平3.37ms=8a。 图3.10 编码前数据格式每按一次按键发送一帧数据 图3.11 编码后数据格式 红外遥控编码的主要电路有,键盘扫描电路、PPM编码电路、时钟分频电路、以及调

7、制电路等组成。 时钟分频电路:产生整个电路所需要的所有时钟频率; 键盘扫描电路:产生4位键值信号; PPM编码电路:对要发送的数据进行编码后发送; 调制电路:38kHZ的频率与PPM编码后的串行输出信号进行相与即可。 很明显电路的关键是对要发送的数据进行PPM编码,为了充分利用EPM3128A有限的宏单元,选择一个良好的PPM编码的实现方式显的非常的重要。 下面是两种PPM编码方式: 有PPM编码的位定义可知, 原码 11000 010红外遥控解码原理与设计 红外接收器接收到的红外信号后,输出电平与信号的有无一般是反向的,但是在硬件电路连接时,在其输出脚接了PNP管,信号从三极管的集电极输出至

8、CPLD。所以,CPLD需要解码的数据与其发射时数据的相位是同相的。一般文献在介绍红外解码时,选用VHDL语言的有限状态机对红外信号进行解码,用有限状态机解码的优点有很多,本文不再冗述。本文主要是基于寄存器或者计数器的状态对整个电路的解码流程进行详细的数据流描述,这样可以更好了解电路的硬件结构以节约整个电路资源。 下面就以其发射时的波形对红外解码电路进行阐述。 图3.12 编码后数据格式解码流程结构图如图3.13所示。 图3.13 红外解码流程图解码电路:输入信号 Din、时钟信号38khz和输出信号code7.0。 流程1:当红外信号的第一个上升沿来临时,锁存器锁存输出至1,开始起始码解码过

9、程,当起始码解码完成后,对输出标志位至1,启动数据码解码过程。(起始码电路后面详细阐述) 流程2:当红外信号的第二个上升沿来临时,位地址加1。 流程3:当红外信号的第二个下降沿(及数据码的第一个下降沿),延时计数器复位,开始倒计时计数(实际为下降沿后一个很短的低电平信号对延时计数器复位)。 流程4:延时计数器为模值为24的倒计时计数器,当计数器为1是,输出为1,即产生clk脉冲。延时计数器的模值计算:当数据码的下降沿来临时开始延时,延时的时间宽度最好在1.5a,a是数据码最小脉冲的宽度。也就是说,当下一位数据为0时,延时后的脉冲信号要对准下一位数据码的高电平的中间部分,这样即使编码器的晶振时钟

10、与解码器的晶振时钟有所误差也不会产生解码错误。至于延时计数器的时钟频率,最好远远高于红外信号的数据传输速率。当然,频率越高,计数器的模值就越大,适当就好。38k频率时钟的周期t=1/16a,所以选择了模值为24的倒计时计数器。流程5:clk时钟根据位地址将Din反向后装载于code7,上升沿触发. 流程6:再重复整个数据解码过程7次,解出所有数据码及其反码。后八位在实际测试时未解码,读者可以适当修改电路后再解码。 当完成整个解码过程后要产生一个使能信号,一个脉冲沿,还有四位有效数据。 解起始码部分如图3.14所示 图3.14 起始码解码框图起始码部分由16a的高电平和8a的低电平组成,用38k

11、hz的频率对红外信号Din进行采样。起初,当采样信号为1时累加器1加一处理,如果其中有一次为0,则对累加器清零。直到采满15次连续的1信号后,再对Din信号的低电平采样,同理采满连续7个0信号后,输出起始码有效信号。如果连续的0信号中出现一个或者多个高电平信号,则对累加器1和累加器2全部清零,恢复初始解码状态。比较器的大小并无固定的值,根据采样时钟而定,允许累加器的数值有所偏差,采样频率越高,越是能够采得比较精确的起始码,但频率越高,累加器位数也越多,适可而止即可。程序设计 本程序主要功能是接收红外,并且解码,然后在四个数码管上显示出来(32位码)。 主程序分为以下几个模块:分频和计数、状态机

12、、数码管显示。 分频计数部分主要实现50Mz与采样频率的同步问题,使得采样频率满足红外接收器的要求,同频率输入存储; 状态机部分主要依据红外编码规则,实现红外编码的解码,利用状态转换方式区分不同区域的红外编码,从而实现相应的译码。 数码管显示部分主要是将接受并解码后的编码转换成七段码由数码管进行显示,此处利用了DE2 底层函数实现,具体函数参加DE2光盘。 程序如下: module IR(clk,rst_n,IR,led_cs,led_db);input clk; input rst_n; input IR; output 7:0 led_cs; output 7:0 led_db; reg

13、3:0 led_cs; reg 7:0 led_db; reg 7:0 led1,led2,led3,led4; reg 15:0 irda_data; / save irda data,than send to 7 segment led reg 31:0 get_data; / use for saving 32 bytes irda data reg 5:0 data_cnt; / 32 bytes irda data counter reg 2:0 cs,ns; reg error_flag; / 32 bytes data期间,数据错误标志 /-reg irda_reg0; /为了避免亚稳态,避免驱动多个寄存器,这一个不使用。 reg irda_reg1; /这个才可以使用,以下程序中代表irda的状态 reg irda_reg2; /为了确定irda的边沿,再打一次寄存器,以下程序中代表irda的前一状态 wire irda_neg_pulse; /确定irda的下降沿 wire irda_pos_pulse; /确定irda的上升沿 wire irda_chang; /确定irda的跳变沿 always (posedge clk) /在此采用跟随寄存器 if(rst_n) begi

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 机械/模具设计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号