IR常规的编码方式
IR的编码方法
红外线遥控器已被广泛使用在各种类型的家电产品上,它的出现给使用电器提供了很多的便利。红外遥控系统一般由红外发射装置和红外接收设备两大部分组成。红外发射装置又可由键盘电路、红外编码芯片、电源和红外发射电路组成。红外接收设备可由红外接收电路外解码芯片、电源和应用电路组成。通常为了使信号能更好的被传输发送端将基带二进制信号调制为脉冲串信号,通过红外发射管发射。常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。两种形式编码的代表分别为NEC和PHILIPS的RC-5、RC-6以及将来的RC-7。
PWM(脉冲宽度调制):以发射红外载波的占空比代表“0”和“1”。为了节省能量,一般情况下,发射红外载波的时间固定,通过改变不发射载波的时间来改变占空比。例如常用的电视遥控器,使用NEC upd6121,其“0”为载波发射0.56ms,不发射0.56ms;其“1”为载波发射0.56ms,不发射1.68ms;此外,为了解碼的方便,还有引导码,upd6121的引导码为载波发射9ms,不发射4.5ms。upd6121总共的编码长度为108ms。
PPM(脉冲位置调制):以发射载波的位置表示“0”和“1”。从发射载波到不发射载波为“0”,从不发射载波到发射载波为“1”。其发射载波和不发射载波的时间相同,都为0.68ms,也就是每位的时间是固定的。
数据格式
数据格式包括了引导码、用户码、数据码和数据反码编码总占32位。数据反码是数据码反相后的编码,编码时可用于对数据的纠错。(第二段的用户码也可以在遥控应用电路中被设置成第一段用户码的反码)
“1,0”位定义
NEC:用户码或数据码中的每一个位可以是位‘1’,也可以是位‘0’。区分‘0’和‘1’是利用脉冲的时间间隔来区分,这种编码方式称为脉冲位置调制方式,英文简写 PPM。
如图“0和1”的定义及引导码,用户码、用户反码、数据码、数据反码
RC5:是脉冲宽度调制,以发射红外载波的占空比代表“0”和“1”。为了节省能量,一般情况下,发射红外载波的时间固定,通过改变不发射载波的时间来改变占空比。
简要叙述程序处理流程
1. 断开中断
2. 引导脉冲判断
3. “0,1”判断
4. 判断识别码是否跟已知识别码相同
5. 判断键码是否跟反键码相同
6. 根据键码,执行相应的命令
7. 打开中断
画出程序流程图
关闭中断得到高低脉冲宽度检波判断引导码YCount=0Cflag=1N判断重复码Y判断tp1tp2Y左移4位,最低位为1N左移4位,低4位为0N判断TP3TP4N左移4位,01为高位左移4位判断重复码是否为0x12NYCount=0Cflag=0
判断低脉冲是否满足“1”Y判断高脉冲是否满足“1”NYN判断高脉冲是否满足“0”Cflag_st_level=1YCflag_st_level=0ICBUG处理如果“1”N如果“0”YY输出0x80000000输出0x7fffffff取引导码如果count=32cflag =1)rsc_irkey_debugenable==1YN输出它们判断用户码N打开中断Yflg.flag_have_ir = 1退出
Rc5流程图:
关闭中断得到高低脉宽检测判断高电平T3_CONT判断低电平T1_CONT左移2位输出0x00000002判断低电平T2_CONT左移3位,0x00000004判断高电平T1_CONT低电平位T1_CONT左移2位,0x00000002低电平位T2_CONT左移3位,0x00000004低电平T2_CONT左移4位,0x0000000c
Count=27补1个“1”Staflag=1Count=28存“1”到code中判断“0”存“0”到code adrbit tmpe stabitstaflag=0; count=0;打开中断判断高电平T2_CONT低电平T1_CONT左移3位,0x00000006
因篇幅问题不能全部显示,请点此查看更多更全内容