学习型红外遥控器设计(0) 摘要 (1) 绪论 (2) 方案设计 (3) 遥控解码 (4) 编码还原 (5) 硬件实现 (6) 总结展望
如方案设计所述,制作红外接收解码装置,该装置至少具有面向用户和设计者的两种检测方法,能够完成采用RC-5编码协议遥控器(SAA3010)的红外接收和解码,要求基于用户的检测方法简单直观,基于设计者的检测能准确显示解码数据格式。
3.1 基本原理
3.1.1 红外接收
接收部分的红外接收管是一种光敏二极管。最近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。成品红外接收头的封装大致有两种,如图3.1所示:
成品红外接收头均有三只引脚,即VDD(5V)、GND和OUT。当红外接收头接收到38KHZ红外载波引脚OUT为低电平,否则为高电平(5V),供单片机查询。红外遥控常用的载波频率为38kHz,它是由专用编码芯片的晶振(一般455kHz)12分频得到的。
3.1.2 ISP技术
ISP(In-System Programming)即在系统编程技术,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。
ISP技术是未来发展方向,实现简单,一般做法是内部的存储器可以由上位机的软件通过串口来改写。对于单片机来讲可以通过SPI或其它的串行接口接收上位机传来的数据并写入存储器中。所以将芯片焊接在电路板上,只要留出串口,就可以实现芯片内部存储器的改写,无须再取下芯片,ISP革命性编程方式使得修改程序的容易程度接近仿真器。
参考STC89C52RC的datasheet,得到其ISP编程电路如图3.2所示:
ISP技术的优势是不需要编程器就可以进行单片机的实验和开发,芯片可以直接焊接到电路板上,免去了调试时频繁地插入取出芯片带来的不便。
3.2 红外接收解码装置设计
3.2.1 RS232串口红外接收板
仿效网络流行的PC遥控DIY制作[5],本文选取了电脑作为红外接收设备(基于用户检测方法)。
首先对接收板的原理作简要介绍,RS232串口红外接收板通过SM0038接收红外信号,送至单片机AT89C2051的串口RXD,由软件通过查询采集红外信号进行解码,简单处理后通过串口送至PC,PC软件Grider3.2收到解码信息按照预定义命令执行相应操作(比如显示音量、运行软件、关机等)。
RS232串口红外接收板的电路设计如图3.3所示:
上述电路图有两点需要注意:
1、串口窃电,电脑串口被打开后,RS232的4和7脚电平会发生变化,产生高于10V的电压,通过整流二极管D1和D2,采用电阻R2分压后得到5.1V的稳压(通过稳压二极管D3实现),再加上串口供电电流最大20mA,基本满足供电要求。
2、串口通信,单片机的串口一般使用TTL正逻辑电平标准,其逻辑1电平是5V,逻辑0电平是0V,而电脑串行口所使用的是RS232C的负逻辑电平标准,它的逻辑1电平是-3V--12V,逻辑0电平是+3V-+12V。两者的电平范围相差很远,所以连接时需要用到电平转换电路,一般来说商业化的成品会用到MAX232,DS275等专用的RS232、TTL电平转换集成电路,由于系统采用波特率为9600,要求不高,故依据经验使用小功率三极管搭建的电平转换电路,节约设计成本。
RS232串口红外接收板的软件流程如图3.4所示:
3.2.2 带液晶显示的红外接收板
带液晶显示的红外接收板的解码部分跟RS232串口红外接收板大致相同,不同在于增加显示功能、更换单片机型号为AT89S52,显示部分采用型号为12864带汉字字库的液晶屏(全屏最多可显示4*8个字符)。单片机AT89S52运行速度高(可支持24M晶振),片上资源丰富(8K字节程序存储器,256字节数据存储器),借助P3_2引脚接收红外信号,经过软件处理,分离出起始码、控制码、系统码、用户码,然后送显示。
带液晶显示的红外接收板的硬件电路如图3.5所示:
带液晶显示的红外接收板的软件流程如图3.6所示:
3.2.3 制作遥控矩阵表
利用带液晶显示的红外接收板制作,本文解析SAA3010遥控器所有按键编码,制作了SAA3010遥控矩阵表,如表3.1所示:
表3.1 SAA3010遥控矩阵表
按键 | 起始(2b) | 控制(1b) | 系统码(5b) | 指令码(6b) | 全码(14b) | |
开关 | 11 | 1 | 00000 | 001100 | 11100000001100 | |
静音 | 11 | 1 | 00000 | 001101 | 11100000001101 | |
1 | 11 | 1 | 00000 | 000001 | 11100000000001 | |
2 | 11 | 1 | 00000 | 000010 | 11100000000010 | |
3 | 11 | 1 | 00000 | 000011 | 11100000000011 | |
4 | 11 | 1 | 00000 | 000100 | 11100000000100 | |
5 | 11 | 1 | 00000 | 000101 | 11100000000101 | |
6 | 11 | 1 | 00000 | 000110 | 11100000000110 | |
7 | 11 | 1 | 00000 | 000111 | 11100000000111 | |
8 | 11 | 1 | 00000 | 001000 | 11100000001000 | |
9 | 11 | 1 | 00000 | 001001 | 11100000001001 | |
0 | 11 | 1 | 00000 | 000000 | 11100000000000 | |
单双 | 11 | 1 | 00000 | 001010 | 11100000001010 | |
调谐 | 11 | 1 | 00000 | 011110 | 11100000011110 | |
节目+ | 11 | 1 | 00000 | 100000 | 11100000100000 | |
节目- | 11 | 1 | 00000 | 100001 | 11100000100001 | |
微调+ | 11 | 1 | 00000 | 101011 | 11100000101011 | |
微调- | 11 | 1 | 00000 | 101100 | 11100000101100 | |
音量+ | 11 | 1 | 00000 | 010000 | 11100000010000 | |
存储 | 11 | 1 | 00000 | 101001 | 11100000101001 | |
召回 | 11 | 1 | 00000 | 001111 | 11100000001111 | |
音量- | 11 | 1 | 00000 | 010001 | 11100000010001 | |
爱好 | 11 | 1 | 00000 | 001110 | 11100000001110 | |
定时 | 11 | 1 | 00000 | 100110 | 11100000100110 | |
对比+ | 11 | 1 | 00000 | 011100 | 11100000011100 | |
色彩+ | 11 | 1 | 00000 | 010100 | 11100000010100 | |
亮度+ | 11 | 1 | 00000 | 010010 | 11100000010010 | |
录像 | 11 | 1 | 00000 | 111000 | 11100000111000 | |
对比- | 11 | 1 | 00000 | 011101 | 11100000011101 | |
色彩- | 11 | 1 | 00000 | 010101 | 11100000010101 | |
亮度- | 11 | 1 | 00000 | 010011 | 11100000010011 | |
电视 | 11 | 1 | 00000 | 111111 | 11100000111111 |
以上编码信息均符合按照RC-5协议,其中的控制码每按键一次,其值反转一次。
3.3 装置性能检测
装置性能检测之前,先给出两个装置的实物图,分别如图3.7、图3.8所示:
3.3.1 红外干扰测试
由于遥控器多数时间用于室内,为此本文选择了带有日光灯的寝室作为测试环境,如图3.9所示:
以上测试环境中充满了红外辐射源,如日光灯、人体等,所以必然造成红外接收受到干扰,借助串口调试工具,在遥控器没有工作的情况下,打开日光灯,并将手掌置于遥控接收头周围,串口接收情况如图3.10所示:
按照Grider32的要求,单片机一次发送的数据为6个字节,其中前三个字节相同,后三个字节相同,故串口得到的干扰信号解码后得到数据如表3.2所示:
表3.2 干扰数据
D7 D7 D7 FC FC FC | C7 C7 C7 F8 F8 F8 |
E3 E3 E3 FE FE FE | E3 E3 E3 FC FC FC |
F1 F1 F1 FE FE FE | F1 F1 F1 FE FE FE |
CF CF CF F8 F8 F8 | CF CF CF F8 F8 F8 |
E7 E7 E7 FC FC FC | C7 C7 C7 FC FC FC |
E3 E3 E3 FE FE FE | E3 E3 E3 FE FE FE |
8F8F8F F1 F1 F1 | E3 E3 E3 FC FC FC |
C7 C7 C7 F8 F8 F8 | E3 E3 E3 FE FE FE |
E3 E3 E3 FC FC FC | 8F8F8F F1 F1 F1 |
F1 F1 F1 FE FE FE | C7 C7 C7 F8 F8 F8 |
8F8F8F F1 F1 F1 | E3 E3 E3 FC FC FC |
C7 C7 C7 F8 F8 F8 | F1 F1 F1 FE FE FE |
E3 E3 E3 FC FC FC | 8F8F8F F1 F1 F1 |
F1 F1 F1 FE FE FE | C7 C7 C7 FE FE FE |
8F8F8F F9 F9 F9 |
数据的波动正是外界红外辐射源随机信号的体现,通过反复测试发现,人体对于接收的影响最大,处于三米外的日关灯只有在开启和关闭时刻产生干扰,处于0.5m范围外的人体干扰基本可以忽略,为此遥控接收板使用时尽量远离人体(2-3m),据此,将遥控作为发射装置,电脑串口接收情况如图3.11所示:
接收的数据如表3.3所示:
表3.3 正确数据
55 55 55 D2 D2 D2 | 55 55 55 B2 B2 B2 |
55 55 55 D2 D2 D2 | 55 55 55 B2 B2 B2 |
55 55 55 D3 D3 D3 | 55 55 55 B3 B3 B3 |
55 55 55 D3 D3 D3 | 55 55 55 B3 B3 B3 |
55 55 55 AB AB AB | 55 55 55 B4 B4 B4 |
55 55 55 AB AB AB | 55 55 55 B4 B4 B4 |
55 55 55 AC AC AC | 55 55 55 B5 B5 B5 |
55 55 55 AC AC AC | 55 55 55 B5 B5 B5 |
55 55 55 AC AC AC | 55 55 55 CA CA CA |
55 55 55 AD AD AD |
不难发现,接收的数据稳定性较好,没有干扰出现,这说明上述使用策略是有效的。
3.3.2 红外解码测试
从用户的角度考虑,本文选取grider32作为上位机软件,测试遥控接收有效性。Girder是个能接收几乎任何计算机输入(键盘、遥控器、网络等等),并利用这些信号来控制你的计算机,如千千静听、暴风影音或是关闭计算机。Girder能控制红外线接收装置、各种serial(RS-232)装置等等。Girder操作界面如图3.12所示:
按照测试要求对SAA3010遥控器部分按键进行预定义,如表3.4所示:
表3.4 遥控器的部分按键功能定义
1 | 2 | 3 | 4 |
界面窗口居中 | 界面窗口位于左上角 | 显示一张照片 | 显示音量 |
5 | 6 | 7 | 8 |
增加音量 | 静音显示 | 屏幕保护 | 关闭显示 |
测试的结果如图3.13、图3.14所示:
这说明装置成功的实现了遥控PC操作,遥控接收板接收解码有效。