红外线遥控接收器设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、题目要求

数字系统课程设计包括EDA实验板组装调试及红外遥控系统设计制作两个部分,各部分要求如下:

红外遥控系统由发射编码和接收解码两个部分组成,本课程设计要求制作发射编码电路板(遥控器)以及编写程序在EDA实验板上实现接收解码,具体说明如下:

1、发射编码部分

发射编码部分要求使用指定的元器件在万用板上完成红外遥控器的制作,该部分电路原理图参照《PT2248数据手册》,制作前请详细阅读《红外遥控器制作说明》,制作时要求元器件在万用板上排列整齐,布局合理,焊接良好,各按键功能正常,均能发送编码。

2、接收解码部分

接收解码用VHDL语言编写程序,在EDA实验板上实现解码,要求具有以下功能:(1)基本要求:

(a)将一体化红外接收解调器的输出信号解码(12个单击键、6个连续键,单击键编号为7-18,连续键编码为1-6),在EDA实验板上用七段数码管显示出来;

(b)当按下遥控器1—6号连续键时,在EDA实验板上用发光二极管点亮作为连续键按下的指示,要求遥控器上连续键接下时指示灯点亮,直到松开按键时才熄灭,用于区别单击键。

(c)EDA实验板上设置四个按键,其功能等同于遥控器上的1—4号按键,当按下此四个按键时七段数码管分别对应显示“1”、“2”、“3”、“4”。

(d)每当接收到有效按键时,蜂鸣器会发出提示音。

(2)扩展功能:(能完成的加分)

通过遥控器跳线改变用户码,EDA实验板上用三个发光二极管正确显示发送端的用户码。

二、解题分析

根据题目意思,此设计关键在于如何将接收器接收到的信号解码并显示。这是本设计的难点所在。其中解码的信号来源有两种,分别是:

一、从键盘上直接按键输入。二、从遥控器上按键以后将信号发射出去,然后键盘上的接收器将其接收。这当中有一个优先权的问题,在本次设计中我将其设置为遥控器接收优先,即,当在按下键盘后,若此时遥控也按下则显示数码管优先显示遥控器按下的信号。

接收解码红外编码信号并成功解码以后,需要将解码出来的相应信息(用户码,连续键等)进行显示!经分析实际的电路原理图,发现在控制数码管显示只有一个4511去控制,这说明一次只能显示一个数码,因此如何显示两位数码是数码管控制的难点所在!这时应该编写一个专门的模块来解决这个问题。

三、设计方案

为了实现题目中的要求,程序采用单进程并将系统划分为下列两个模块:

一、接收编码信号及翻译模块二、输出显示模块

各模块功能描述:

接收编码信号及翻译模块:该模块的主要功能是接收从键盘或者从遥控器发出的信号,将其翻译成可以让CD4511用来控制数码管显示的编码。

输出显示模块:输出显示模块主要是对两个数码显像管的输出进行控制,该模块根据翻译出的BCD码,将此编码输入到CD4511驱动显像管循环显示。

系统结构框图:

说明:

1、CLK是的系统时钟信号。

2、DATAIN是38kHz一体化红外接收解调器输入到CPLD中的串行信号。

3、RESET是系统复位信号,高电平有效。

4、KEYIN4是小键盘输入的信号。

5、BIT指示选中的数码管

6、NUM是数码管个位或十位的BCD码

7、BEEP是控制蜂鸣器信号,根据电路原理图,其低电平有效

8、USER是三位的用户码

9、LED是LED灯控制信号,用来显示用户码和连续键

注:两个模块间相连的CODE信号是翻译出来后的五位的BCD码。

详细设计思路:

一、接收编码信号及翻译模块:

(1)分析解码原理:

(一)键盘输入解码:

该模块中接收编码信号分为从键盘接收信号和从遥控器接收信号,本程序设置为从遥控器发射优先。从键盘接收到的信号直接翻译对应的二进制编码然后再输出到显示模块。

(二)遥控器发射信号解码:

如何解码是本次设计的关键。发射端编码方式已经在“附录一”中给出,要接收发射端发射的编码最关键的地方是解决发射段频率和接收段频率不一致的问题。发射端频率为38KHz,程序中设计的接收端频率为2.048MHz的2的8次方分频,分出来以后即为8KHz。

发射端每四个周期(4a)代表一个二进制编码,时间为1/38KHz*16*4=1.684ms,四个周期的时间换算成接收端周期数为 1.684ms/(1/8KHz)=13.47个。一个a所占的周期数为13.47/4=3.37个,三个a共占的周期数为13.47/4*3=10.1个。由于编码中一个周期的低电平代表“1”,三个周期的低电平代表“0”。

如下形式的1位的编码时分别表示“0”和“1”:

1个a的低电平,3个a的高电平表示编码“0”

3个a的低电平,1个a的高电平表示编码“1”

再考虑到同步的问题,取(10.1+3.37)/2=6.7 7作为判断“0”、“1”的分界线,即当检测到连续收到等于或超过7个接收端周期的低电平后即可认为接收到的是“1”,否则为“0”。以上就是解码的基本原理。翻译出编码信号后根据编码的规则,分析用户码和所应显示的数字即可。

(2)解码的具体流程:

从“附录一”中的说明可知,按下一个按键将会发送出去一串编码,而无论是连续信号还是单发信号,接收的波形中有用部分仅其中的十二位码,且其中的H、S1、S3位已经能名区分单发与连续信号,为节约资源,只需对接收信息中的十二位码进行编码即可。而从接收到的波形图可看出,仅当接收有编码时才有低电平,其余时间均为高电平。这样就可从低电平开始,对BIT‘0’和BIT‘1’进行编码。而BIT‘0’和BIT‘1’的区别在于其占空比不同,可以考虑用这样一个计数器cnt1:在低电平时被启动开始计数,当计数器的输入变为高电平时停止计数,这时可以比较计数值的大小。根据以上“分析解码原理”中分析可知:当计数值大于或等于7时编码为“1”,否则编码为“0”。这样便完成一位编码的接收,照此方法继续接收其他编码。

当接收到的编码位数满足12位时,表明按下一个键发射的编码已被解码完毕,此时即可输出一串完整的翻译后的编码。这就需要一个计数值上限为12的计数器cnt2来指示接收到的编码位数,以此来控制编码的输出。

当接收到一个有效按键后在显示的同时还需要用响铃来提示,可以考虑预设一个上限值为常量的计数器cnt3来控制响铃时间。

本程序用状态机来完成这些功能,其ASM图如下,图中各个状态的说明如下:

S0:复位等待状态,键盘输入状态,低电平检测计数器cnt1、编码位数计数器cnt2和响铃时间计数器cnt3清零,12位移位寄存器清零,响铃标志位输出为低电平。因

为设置为遥控器接收优先,所以此时若接收到遥控器发射的信号则转入遥控器发射

信号解码状态,否则就进行键盘输入解码。

S1:接收信号有低电平,转入S2状态低电平检测计数器开始计数,否则继续检测是否有低电平。

相关文档
最新文档