红外线遥控的软件抗干扰与排错方法已修正整体电路

上传人:枫** 文档编号:497670493 上传时间:2023-05-30 格式:DOC 页数:7 大小:1.19MB
返回 下载 相关 举报
红外线遥控的软件抗干扰与排错方法已修正整体电路_第1页
第1页 / 共7页
红外线遥控的软件抗干扰与排错方法已修正整体电路_第2页
第2页 / 共7页
红外线遥控的软件抗干扰与排错方法已修正整体电路_第3页
第3页 / 共7页
红外线遥控的软件抗干扰与排错方法已修正整体电路_第4页
第4页 / 共7页
红外线遥控的软件抗干扰与排错方法已修正整体电路_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《红外线遥控的软件抗干扰与排错方法已修正整体电路》由会员分享,可在线阅读,更多相关《红外线遥控的软件抗干扰与排错方法已修正整体电路(7页珍藏版)》请在金锄头文库上搜索。

1、红外线遥控的软件抗干扰与排错方法莫锋 讲师 东莞市高级技工学校摘要:大家在使用家电遥控器时,经常会遇到这种情况:按下某键后无控制事件产生,有时要多按几下才有效。不要以为是按键接触不良,这实际上是系统在进行排错处理。本文研究单片机应用在红外线遥控系统中,提供了一种软件抗干扰与排错的技术,顺利地解决了干扰问题。一、 干扰源从何而来笔者一次偶然的机会在设计一个普通电视机红外线遥控器的编码解码电路时发现:即使在不按任何按键的情况下,接收头会不断的产生红外线脉冲(见图1)。图1 图中画横线的为有效编码,画圈的为开始位和结束位其它的都是干扰脉冲。当时怀疑是电脑、日光灯或是手机等设备的干扰,于是将接收头换成

2、带金属屏蔽型,且关闭所有的设备、远离电脑,发现干扰依旧。下图2是采用两种不同的红外接收头分析干扰源。图2只有用黑色电工胶布盖住红外线接收头时,干扰脉冲才消失,所以肯定干扰来自自然界红外线或可见光。对此可采用一硬件措施来降低干扰,如加遮光罩等,但笔者反复实验发现,即使采用了这些措施还是不能完全避免干扰信号。要想使红外遥控更可靠就必须采用必要的软件抗干扰措施。下面就软件排错方法谈一些体会。二、 红外线遥控的编码格式要想用软件来实现排除错码,必须弄清红外遥控的编码格式。不同的遥控系统则采用不同的编码方式,主要有PWM方式(脉冲调宽)与PPM( 脉冲调位)型。笔者所采用的是我校家电实习所有的(三洋机芯

3、)彩电的遥控器,该遥控器是脉冲调宽型的,其编码方式为引导码+8位地址码+8位地址码+8功能码+8位功能码反码+4位结束位。地址码是用来识别设备的型号的,所以同一个遥控器的所有按键地址码都是相同的。功能码定义各键的功能,为了便于抗干扰与排错的软件处理,功能码采用正码反码的方式发送,这才是我们要提取的有用编码。图3由上图3可看出逻辑0与逻辑1的脉冲宽度不同,为降低遥控器的能耗和抗干扰,所有脉冲都调制在38KHZ的载波上。下图4是用示波器测量出来编码的实际波形,由于测量精度的步长问题,逻辑1的宽度示波器显示为2.2ms。不同的遥控器所采取的格式也有所不同,大家在实验之前可自行测试一下。如没有示波器可

4、按以下的电路和程序通过电脑测试出来。图4三、 编码的采集根据编码格式我们可采用测量脉冲宽度的方式来检测编码。电路如图5所示: 图5图5图6电路用51单片机89C2051为处理器,为能向电脑串口输入数据,系统中加了一个接口电路MAX232。晶振为11.0592M通讯波特率为9600,D1为工作指示灯。编程环境是Keil51,编程语言采用C语言。红外线从CPU的外部中断INT1脚输入。当单片机51进入中断服务时:启动定时器1开始计数,一个周期后进入第二次中断,关定时器1,记下周期IRW=TH1 (由于0和1宽度都是定值,所以只要记下TH1就可以,TL1可以舍去)然后清除TH1、TL1,再启动定时器

5、1,如此类推。为全面完整地记录红外脉冲周期一次记录的脉冲个数,一般取5060个,接收完后向串口发送所记录的数据。编程如下:void INT1Fun(void) interrupt 2 using 1TR0=1;if(TH0=TL0&TL0=0)/是否是第一次中断TR0=1;else TR0=0; IRWcount=TH0;/将宽度记入数组 TH0=TL0=0; TR0=1; count+; if(count=60)/是否满60个数据 TR0=0; EX1=0; count=0; CS();/编码提取函数 四、 有效编码的提取由上图1可知下划线的32位,即是红外编码加上前面的0X20和后面0XA

6、9、0X20的结束标志,为一个编码周期。如何取得有效的编码,就成为一个关键的问题。分析可用两种方案:1、以引导码为标志(即0X20)接收后面的32位。此方案因为产生0X20的干扰脉冲的概率较高,所以容易产生错码。2、以结束位两位为标志(即0XA9、0X20)为标志向前取32位。由于连续产生0XA9和0X20的干扰脉冲的概率极低,所以采用了第二种方案。把采集的数组IRWcount进行从后往前的分析。如有IRWIcount=0X20并且IRWCount-1=OxA9,则由EN=1并开始处理,否则为无用脉冲,可以不处理。编程如下:void CS(void) for (count=60;count1;

7、count-) if(IRWcount=0x20)&(IRWcount-1=0xA9)|(EN=1) EN=1; if(EN=1)&(IRWcount0x09) if (IRWcount=0x04)|(IRWcount=0x03) b=0; CL();/转换函数 else b=1; CL();/转换函数 IRWcount=0; IRCodeIRCON=0; IRCON=0; IRCON2=0; EX1=1; EN=0; 五、 转换验证处理分析采集的脉冲宽度,可知0X08为bit“1”,0X04、0X03都为bit“0”。这样可以每采集1位IRCode向左移一位,每8位为一字节、每4个字节为一组

8、有效编码。此时4字节,前1字节与第2字节为功能控制码和其反码,第3、4字节为地址码,所以只要满足条件IRCode0=! IRCode1和IRCode2=IRCode3 即有正确编码,可以向串口发送,否则有错码,应该排除。编程如下:void CL(void) if (IRCON4) if (IRCON28) IRCON2+; IRCodeIRCON=IRCodeIRCON1; /每读一次放入变量中的二进制的一个位,每次左移一位 IRCodeIRCON=IRCodeIRCON|b; /每八次填满一个字节,一个字节存放遥控编码4个位 else IRCON+; /填满一个字节,指向下一个变量 IRCO

9、N2=0; /计数清零 else for (a=0;a2;a+)/只传送功能码,地址码不用传送 ComOutChar(IRCodea);/向PC串口软件发送数据 ComOutChar(IRCodea); ComOutChar(IRCodea); 下图7是经过转换处理后的红外编码(HEX格式)图7制作的关健:由于不同的遥控器有不同的编码方式,所以必须对常见类型的遥控编码板式有一定的了解。采集编时对不同的键都要多采样几次,然后进行分析。找到引导码和结束标志,如本文图1中的引导码0X20和后面0XA9、0X20的结束标志,这样才能对有效码进行准确的提取。 作者简介: 广东省东莞市高级技工学校 莫锋 讲师 高级电工技师。二十多年来,主要研究单片机及PLC实用电路的制作。联系手机: 13712096061 邮政编码 523112地址:广东省东莞市莞龙路下桥路段36号市高级技工学校培训部7

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

当前位置:首页 > 建筑/环境 > 施工组织

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