版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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位,即是红外编码加上前面的0
6、X20和后面0XA9、0X20的结束标志,为一个编码周期。如何取得有效的编码,就成为一个关键的问题。分析可用两种方案:1、以引导码为标志(即0X20)接收后面的32位。此方案因为产生0X20的干扰脉冲的概率较高,所以容易产生错码。2、以结束位两位为标志(即0XA9、0X20)为标志向前取32位。由于连续产生0XA9和0X20的干扰脉冲的概率极低,所以采用了第二种方案。把采集的数组IRWcount进行从后往前的分析。如有IRWIcount=0X20并且IRWCount-1=OxA9,则由EN=1并开始处理,否则为无用脉冲,可以不处理。编程如下:void CS(void) for (count=6
7、0;count>1;count-) if(IRWcount=0x20)&&(IRWcount-1=0xA9)|(EN=1) EN=1; if(EN=1)&&(IRWcount<0x09) 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”。这样
8、可以每采集1位IRCode向左移一位,每8位为一字节、每4个字节为一组有效编码。此时4字节,前1字节与第2字节为功能控制码和其反码,第3、4字节为地址码,所以只要满足条件IRCode0=! IRCode1和IRCode2=IRCode3 即有正确编码,可以向串口发送,否则有错码,应该排除。编程如下:void CL(void) if (IRCON<4) if (IRCON2<8) IRCON2+; IRCodeIRCON=IRCodeIRCON<<1; /每读一次放入变量中的二进制的一个位,每次左移一位 IRCodeIRCON=IRCodeIRCON|b; /每八次填满一个字节,一个字节存放遥控编码4个位 else IRCON+; /填满一个字节,指向下一个变量 IRCON2=0; /计数清零 else for (a=0;a<2;a+)/只传送功能码,地址码不用传送 ComOutChar(IRCodea);/向PC串口软件发送数据 ComOutChar(IRCodea); ComOutChar(IRCodea); 下图7是经过转换处理后的红外编码(HEX格式)图7制作的关健:由于不同的遥控器有不同的编码方式,所以必须对常见类型的遥控编码板式有一定的了解。采集编时对不同的键都要多采样几次,然后进行分析。找到引导码和结束标志,如本文图1中的引导码0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国千斤顶压力机行业投资前景及策略咨询研究报告
- 2024至2030年便携式书写板项目投资价值分析报告
- 《学生会礼仪培训》课件
- 2024年鱼缸泵项目可行性研究报告
- 2024年中国硝酸毛果芸香碱片市场调查研究报告
- 出师表-复习课件
- 2024年工作计划和目标措施
- 《广告词赏析》课件
- 《干体重的计算》课件
- 《英法美政体比较》课件
- 药剂科考核标准(临床药学室)
- 小班数学《帮瓢虫找家》课件
- 现代化工HSE技能大赛考试复习题库大全-中(多选题汇总)
- 勿忘国耻国家公祭日主题班会课件
- 七年级语文上册期末测试卷及答案
- 企业审计大数据分析方法及案例
- 冀美2011版二年级美术下册《壮美的长城》教案及教学反思
- 学校国家安全教育工作实施方案
- 【知识解析】三大战役主题图集
- 干眼共识专题知识讲座
- 针对食堂服务质量承诺和保证措施
评论
0/150
提交评论