APP下载

一种基于红外遥控器的控制方案设计

2015-06-24邱永华

电脑知识与技术 2015年11期
关键词:协议编码

邱永华

摘要:介绍一种基于红外遥控器的控制方案,其通过特殊的编码方式,可以避免由于红外信号在传输过程中产生的误码,造成遥控器控制异常、失效等情况,进而大大提升了红外遥控器的控制性能,免除人们在使用红外遥控器控制过程中遇到的各种失效烦恼。

关键词:红外遥控器;协议;编码

中图分类号:TP202 文献标识码:A 文章编号:1009-3044(2015)11-0221-03

One Design for Infrared Remote Control Solution

QIU Yong-hua

(Guangdong Womens Polytechnic College, Guangzhou 510450, China)

Abstract: Introduces a control solution design for infrared remote, which through special coding methods,Can avoid the error caused by the infrared signal during transmission,abnormal failure caused by remote controller, and so on and so forth,Improve the reliability of the infrared signal transmission,From people in the use of various failure problems encountered in the process of infrared remote control.

Key words: IR remote control; protocol; coding methods

红外遥控器使用方便,价格便宜,目前广泛应用于电视、DVD、空调、投影机等各种家用电器,在每个家庭日常生活中已经成为不可或缺的部分。一个优秀的红外遥控器必须具有精准的控制方案,如果人们在使用遥控器的过程中不时出现控制不灵敏,失效异常等情况,将会极大的影响人们使用电器的娱乐心情,给人们的正常生活造成困扰。本文提出一种基于红外遥控器的控制方案,该控制方案通过特殊的编码方式,提高了红外遥控器的控制性能。

1 总体描述

红外遥控器的控制方案分为如下几部分:微控制单元MCU初始化、键盘扫描和处理、通信协议和数据发送流程等。MCU初始化根据实际选型的芯片进行配置,键盘处理函数根据遥控器的需求来编写,为了便于控制数据发送的时间和提高效率,通信协议和数据发送函数这部分采用汇编来编写,其他部分采用C言语编写。

2 MCU初始化

MCU的初始化是初始化MCU的寄存器,并将MCU的寄存器配置成为一个已知的工作状态。MCU的初始化由几个主要的部分组成:时钟配置、中断配置、端口配置。下面以P89LPC931单片机为例进行介绍。P89LPC931是一款单片封装的微控制器,适用于要求高度集成、低成本的应用场合,可以满足多种多样的性能要求。P89LPC931基于高性能的处理架构,执行指令仅需2到4个时钟周期,速度是标准80C51器件的6倍。P89LPC931集成了多种系统级功能,以便减少元件数目和减小电路板面积,从而降低系统成本。P89LPC931内部框图如图1所示。

图1 P89LPC931内部框图

2.1 时钟配置

MCU 用455 KHz的陶瓷晶体振荡器作为时钟输入源,所以要设置FOSC[2:0](UCFG寄存器,地址0x63)= 001,选择一个中等频率的时钟源,即图中的OSC CLK时钟频率为455KHz。设定分频寄存器DIVM#(地址0x95)=0,则CCLK = OSC CLK = 455 KHz。同时由于FOSC[2:0] = 001所以RTC的时钟源被设置为CCLK。通过WDCON[WDCLK]=1,选择PCLK作为看门狗电路的时钟源,其中PCLK = CCLK/2。

2.2 中断配置

在红外遥控的设计中将用到4个中断:键盘中断、实时时钟中断和看门狗中断。

键盘中断:键盘中断相应用户按键事件。在省电的模式下键盘扫描的输出管脚被锁存在一个电平上,当用户按下键盘上的任意键,都会导致P0端口的P2~P7中的某一管脚的电平产生变化,使得P0端口锁存器的数值同

KBPATN寄存器(键盘模式寄存器)的数值不相同,从而导致了键盘中断的产生。

实时时钟中断:在设计中运用实时时钟来产生一个10s的中断,完成10s无按键进入掉电模式的功能。由于红外遥控器采用的时钟频率为455KHz,考虑功耗问题设定FOSC[2:0]= 001。无论RTCS1和RTCS2为什么数值,实时时钟的输入时钟源都是CCLK时钟(CCLK = OSC CLK = 455 KHz)。

看门狗中断:在软件的设计过程中,为了避免程序陷入一个死循环或者用户不可预料的错误,用硬件看门狗来作为避免出现错误的手段。在一段时间内程序没有去“喂狗”且看门狗递减计数器的数值为零时,MCU将会产生一个硬件的复位信号导致硬件的重启。可以通过配置监视计时器控制WDCON和户配置字UCFG1寄存器来控制看门狗的停止/运行,时钟源的选择,预扫描的数值和是否看门狗产生复位的信号。

2.3 端口配置

端口配置过程配置了P0端口、P1端口和P2端口的属性。P0端口主要用来作为键盘扫描的输入端口,应该配置成为Input Only 配置模式,P2端口部分作为键盘扫描的输出端口;P1部分作为串口提供测试端口,部分用来作为红外发送二级管的控制端口。键盘扫描的输出端口应配置为Open Drain 配置模式。其他的部分配置成为准双向的IO端口。

3 键盘扫描和处理

键盘扫描首先检测是否有键盘按下,这时触发键盘中断,接着通过逐行扫描来判断那个键被按下。当判断出那个按键被按下之后,进行相应的按键处理:如按键编码、数据发送。假如扫描完成或按键处理完后,按键还没有松开,就判断是否是左右键曾被按下,若是就重新扫描键盘和进行按键处理。若不是,就等待键盘松开。按键处理在通常情况下选取按键后就按通信协议向外发送数据。

4 遥控器控制通信协议

遥控器控制通信协议的数据包由7部分组成:开始和结束波形、系列号、ID号、广播位、键码。具体见下图2:

图2 通信协议数据包

如图2所示,通信内容总共为40bit = 5 字节。全部采用压缩BCD编码的8421码。每8bit为一个正码,一个反码。也就是说一个数据包里面包括10个字节的编码,里面 “0”和“1”bit的数目是相同的。在发送字节的过程中,将先发送位置高的bit,再发送位置低的bit。

那么具体来说就相当于数据包里的第1bit到第8bit为序列号,第9bit到第16bit为序列号的反码;第17bit到第24bit为系统号(第17bit到第20bit保留不用,数据恒为0,第21bit到第24bit用来记录系统号);第25bit到32bit为系统号的反码;第33bit到第40bit为ID号的高8位;第41bit到第48bit为ID号高8位的反码;第49bit到第56bit为ID号的低8位;第57bit到64bit为ID号低8位的反码;第65bit为广播位,第66bit到第72bit为键码;第73bit为广播位的反码,第74bit到第80bit为键码的反码。

通信协议开始和结束位有1M宽度的调试波形和7M宽度的无调试波形构成。1M的带宽由18个频率为37.917KHZ的方波组成,总时间为:474.7uS。那么7M的时间为:474.7*7=3322.9us。数据中的“1”和“0”用以下波形表示:数据“0”的波形高低电平的时间相等,都是M(474.7us)。协议开始和结束波形如图3所示、

图3 开始和结束的波形

数据“1”的波形的高电平时间为M(474.7us),低电平的时间是3M(474.7us×3=1424.1us)每个字节的数据都由这些“1”和“0”组成。数据“0”和“1”波形如图4所示。

图4 数据“0”和“1”波形

按协议发送一个数据包所耗的时间:8M+(2*M+4*M)×8×5+8M =256M = 121523.2us=121.5232ms。

5 协议数据发送流程

因为数据发送函数对时序要求很高,而且为了便于时间控制和效率的提高,所以这部分采用汇编编写,然后在C语言里调用。它们之间留有5个参数作接口,共40bit。协议发送流程如下:首先保护现场,接着产生表示数据包开始的波形,然后发送完毕10个字节的数据,发送完毕后产生数据包结束波形,最后恢复一个字节的数据,接着发送它的反码。最后产生数据包结束波形,完成后恢复现场。

在发送一个字节数据的时候,先产生1M带宽的载波,接着将相应端口拉高,紧接着累加器左移一位,然后判断累加器的进位位。若这一位为1则延时3M的时间,若为0则延时1M的时间。

图5 发送一个字节函数流程

6 结束语

本红外遥控器控制方案在数据传输时采用的编写方式,可以避免由于红外信号在传输过程中产生的误码造成遥控器控制异常、失效等情况,提升了红外信号传输的可靠性,进而大大提升了红外遥控器的控制性能,免除人们在使用红外遥控器控制过程中遇到的各种失效烦恼。

参考文献:

[1] 方红萍, 王阳. 具有学习功能的通用红外遥控系统关键技术的研究[J]. 计算机时代, 2009 (3): 20-21.

[2] 王红美. 基于单片机的红外线遥控器设计[J]. 自动化应用, 2013 (9): 31-32.

[3] 施伟. 基于单片机的学习型红外遥控器设计[J]. 硅谷, 2011 (9): 43, 68.

[4] 陈祖爵, 王建毅. 智能型红外遥控器的设计[J]. 微计算机信息, 2008 (2).

[5] 李宝营, 赵永生, 祁建广. 基于单片机的红外遥控系统设计[J]. 机电工程技术, 2008 (12): 77-79.

[6] 李志超, 周华. 基于单片机的红外遥控器的设计与应用[J]. 中州大学学报, 2008 (2) : 111-112.

猜你喜欢

协议编码
编码中心(一)
中国编码APP
基于SAR-SIFT和快速稀疏编码的合成孔径雷达图像配准
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
Genome and healthcare
基于数字化变电站SV报文通信可靠性问题研究
Modbus设备在机房温度监控系统中的应用
负面清单的管理研究
对无线传感器网络MAC层协议优化的研究与设计