最近发现家里遥控器老是弄混(唉,遥控器多了,也是一件麻烦事)。如果有一种可对家中各种红外遥控器发射的控制信号进行识别、存储和再现的智能型红外遥控器,用这样一个遥控器控制家中所有电器该多好。这就是大家称作的学习型红外遥控器。于是,下了不少工夫查找了许多资料,对红外遥控也做了一点表面研究,现总结一点文档,与大家一同探讨(有不对之处,请大家指正!);另外由于本人愚顿还未开窍,还有部分东西想不太明白,在此也向专家们请教,请知道的老兄支点招,在此小弟先谢过了!!!
一、红外遥控概述
红外遥控系统一般都是由发射部分和接收部分组成。
1、发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它发出的便是红外线而不是可见光。目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通Φ5发光二极管相同,只是颜色不同。
2、接收部分主要元件是红外接收管,它是一种光敏二极管(实际上是三极管,基极为感光部分)。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。
由于红外发光二极管的发射功率一般都较小(100mW左右),所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。前些年常用μPC1373H、CX20106A等红外接收专用放大电路。最近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。成品红外接收头的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装(如图中的HS0038),均有三只引脚,即电源正(VDD)、电源负(GND)和数据输出(VO或OUT)。红外接收头的引脚排列因型号不同而不尽相同,可参考厂家的使用说明。成品红外接收头的优点是不需要复杂的调试和外壳屏蔽,使用起来如同一只三极管,非常方便。但在使用时注意成品红外接收头的载波频率。
http://bbs.21ic.com/upfiles/img/200682114849807.jpg(图一)
3、红外通信的基本原理是发送端将基带二进制信号调制为一系列的脉冲串信号,通过红外发射管发射红外信号。常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。
红外遥控常用的载波频率为38kHz,这是由发射端编码芯片所使用的455kHz晶振来决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz÷12≈37.9 kHz≈38kHz。也有一些遥控系统采用36kHz、40kHz、56kHz等。
红外遥控的特点是不影响周边环境、不干扰其它电器设备。由于其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作;编解码容易,可进行多路遥控。
由于各生产厂家生产了大量红外遥控专用集成电路,需要时按图索骥即可。因此,红外遥控在家用电器、室内近距离(小于10米)遥控中得到了广泛的应用。
二、红外遥控编码标准
目前市面上出现的遥控编码有很多种,但常用的红外遥控编码主要是NEC标准和PHILIPS标准,其它都是这两类的变种。
1、NEC编码标准:编码芯片有PT2221/PT2222、HT6221/HT6222等
此标准下的发射端所发射的一帧码含有一个引导码、8位用户码、8位用户反码,8位键数据码、8位键数据反码。引导码由一个9ms的高电平和4.5ms的低电平组成。当按下持续时间超过108ms时,则发送简码(简码由9ms高电平和2.25ms的低电平组成)来告之接收端是某一个按一直按着,象电视的音量和频道切换键都有此功能,简码与简码之间相隔是108ms。"1"和"0"的区分采用脉冲位置调制方式(PPM)。如下图所示:
http://bbs.21ic.com/upfiles/img/200682114659710.jpg(图二)
2、PHILIPS的RC-5编码标准:编码芯片有SAA3010、PT2210/PT2211/PT1215、HT6230等
RC-5编码标准的一帧有以下几部分组成:
1)起始码部分 2个逻辑1;
2)控制码部分,1位;
3)系统码部分,5位;
4)指令码部分,6位。
连续发射时,重复波形与第一次发射波形相同。控制码位在前后再次按键中交替改变。0和1码传送采用双相位编码发送技术。编码规则如下图所示:
http://bbs.21ic.com/upfiles/img/20068211485728.jpg(图三)
3、其它变种的编码类型
像TC9028、PT2212、PT2213等芯片的码型与NEC标准类似,只是引导码变为4.5ms高电平+4.5ms低电平,简码4.5ms高电平+4.5ms低电平+0.56ms高电平+1.68ms低电平+1.56ms高电平组成。
像PT2461、LC7461等芯片的码型也是与NEC标准类似,数据帧长度变长了,引导码+13位用户码+13位用户反码+8位键数据码+8位键数据反码。简码为9ms高电平+4.5ms低电平+0.56ms高电平组成。
三、红外信号的学习与再生(学习型遥控器的电路和编程实现)
目前大多数人采用的方法都是用一体化接收头做为信号的接收,然后把解调出来的信号送入单片机进行学习(记录各个高低电平的时间长度),然后存入EEPROM内,学习OK后再发送的是把EEPROM的高低电平的时间数据读取并与38KHz载波进行调制然后发送出去。如下图所示:
http://bbs.21ic.com/upfiles/img/200682114921928.jpg(图四)
例如:由AVR系列单片机ATmega8、一体化红外接收头HS0038、存储器、还原调制与红外发光管驱动电路组成。一体化红外接收头负责红外遥控信号的解调,将调制在38kHz上的红外脉冲信号解调并反向后再输入到ATmega8的INT0引脚,边沿触发方式,并由单片机计数器进行高电平与低电平宽度的测量。
这里使用具有I2C总线接口的E2PROM 芯片AT24C32作为存储器,其容量为4KB,用来保存识别出来的遥控信号的高电平与低电平宽度数据。通常遥控信号的二进制脉冲码长为32位,每位由一个高电平与一个低电平组成,应保存的信号宽度数据为64个,再加上引导码2个数据,共计66个数据,每个数据用一个字节来表示,一个遥控信号命令就需要66个字节来保存。考虑到不同的遥控系统有一定的区别,有些遥控信号命令长度较长,所以存储空间应适当留有余量。在实际应用中,可根据红外遥控设备的数量及每个设备的遥控命令数量等具体情况来决定E2PROM 芯片的容量和型号。
遥控信号的还原和发射是通过单片机的一个IO口输出二进制脉冲码(高电平与低电平的维持时间为学习识别时保存的一组宽度数据)与38KHz载波进行调制,调制后的信号经驱动后通过红外发光管发射出去。
但这样的处理方法,因为一体化红外接收头工作电压一般都要求是5V,在供电能力方便的情况下采用这种方式还是不错的,但如果想象普通遥控器一样只能采用两节干电池供电,那以上方法是没法做到的。
我看到过一款自学习型遥控器,其电路原理如下图所示:
http://bbs.21ic.com/upfiles/img/200682114949720.jpg(图五)
现在有两点我没想明白:
1、这里接收红外信号是采用红外接收二级管,但这里经三极管放大反向之后送入单片机口线上的信号还是调制在38KHz的波形,也就是说这个波形是没有经过解调的。
我想弄明白的事:单片机是如何对这波形进行解调的吗?或者说这单片机处理程序是并没有进行解调而是直接记录特征数据,然后存入EEPROM,这样又是如何做到的吗?
2、存储于EEPROM的32字节数,是个什么样的特征数据,它能再生重新原样的发射出去。
能只用32个字节的数据记录一个按键的红外遥控信息,这比之前用66个字节(甚至更多)的方法来得更加简洁,一个4K的EEPROM(AT24C32)能够记录的按键数就多得多了。
一、红外遥控概述
红外遥控系统一般都是由发射部分和接收部分组成。
1、发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它发出的便是红外线而不是可见光。目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通Φ5发光二极管相同,只是颜色不同。
2、接收部分主要元件是红外接收管,它是一种光敏二极管(实际上是三极管,基极为感光部分)。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。
由于红外发光二极管的发射功率一般都较小(100mW左右),所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。前些年常用μPC1373H、CX20106A等红外接收专用放大电路。最近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。成品红外接收头的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装(如图中的HS0038),均有三只引脚,即电源正(VDD)、电源负(GND)和数据输出(VO或OUT)。红外接收头的引脚排列因型号不同而不尽相同,可参考厂家的使用说明。成品红外接收头的优点是不需要复杂的调试和外壳屏蔽,使用起来如同一只三极管,非常方便。但在使用时注意成品红外接收头的载波频率。
http://bbs.21ic.com/upfiles/img/200682114849807.jpg(图一)
3、红外通信的基本原理是发送端将基带二进制信号调制为一系列的脉冲串信号,通过红外发射管发射红外信号。常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。
红外遥控常用的载波频率为38kHz,这是由发射端编码芯片所使用的455kHz晶振来决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz÷12≈37.9 kHz≈38kHz。也有一些遥控系统采用36kHz、40kHz、56kHz等。
红外遥控的特点是不影响周边环境、不干扰其它电器设备。由于其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作;编解码容易,可进行多路遥控。
由于各生产厂家生产了大量红外遥控专用集成电路,需要时按图索骥即可。因此,红外遥控在家用电器、室内近距离(小于10米)遥控中得到了广泛的应用。
二、红外遥控编码标准
目前市面上出现的遥控编码有很多种,但常用的红外遥控编码主要是NEC标准和PHILIPS标准,其它都是这两类的变种。
1、NEC编码标准:编码芯片有PT2221/PT2222、HT6221/HT6222等
此标准下的发射端所发射的一帧码含有一个引导码、8位用户码、8位用户反码,8位键数据码、8位键数据反码。引导码由一个9ms的高电平和4.5ms的低电平组成。当按下持续时间超过108ms时,则发送简码(简码由9ms高电平和2.25ms的低电平组成)来告之接收端是某一个按一直按着,象电视的音量和频道切换键都有此功能,简码与简码之间相隔是108ms。"1"和"0"的区分采用脉冲位置调制方式(PPM)。如下图所示:
http://bbs.21ic.com/upfiles/img/200682114659710.jpg(图二)
2、PHILIPS的RC-5编码标准:编码芯片有SAA3010、PT2210/PT2211/PT1215、HT6230等
RC-5编码标准的一帧有以下几部分组成:
1)起始码部分 2个逻辑1;
2)控制码部分,1位;
3)系统码部分,5位;
4)指令码部分,6位。
连续发射时,重复波形与第一次发射波形相同。控制码位在前后再次按键中交替改变。0和1码传送采用双相位编码发送技术。编码规则如下图所示:
http://bbs.21ic.com/upfiles/img/20068211485728.jpg(图三)
3、其它变种的编码类型
像TC9028、PT2212、PT2213等芯片的码型与NEC标准类似,只是引导码变为4.5ms高电平+4.5ms低电平,简码4.5ms高电平+4.5ms低电平+0.56ms高电平+1.68ms低电平+1.56ms高电平组成。
像PT2461、LC7461等芯片的码型也是与NEC标准类似,数据帧长度变长了,引导码+13位用户码+13位用户反码+8位键数据码+8位键数据反码。简码为9ms高电平+4.5ms低电平+0.56ms高电平组成。
三、红外信号的学习与再生(学习型遥控器的电路和编程实现)
目前大多数人采用的方法都是用一体化接收头做为信号的接收,然后把解调出来的信号送入单片机进行学习(记录各个高低电平的时间长度),然后存入EEPROM内,学习OK后再发送的是把EEPROM的高低电平的时间数据读取并与38KHz载波进行调制然后发送出去。如下图所示:
http://bbs.21ic.com/upfiles/img/200682114921928.jpg(图四)
例如:由AVR系列单片机ATmega8、一体化红外接收头HS0038、存储器、还原调制与红外发光管驱动电路组成。一体化红外接收头负责红外遥控信号的解调,将调制在38kHz上的红外脉冲信号解调并反向后再输入到ATmega8的INT0引脚,边沿触发方式,并由单片机计数器进行高电平与低电平宽度的测量。
这里使用具有I2C总线接口的E2PROM 芯片AT24C32作为存储器,其容量为4KB,用来保存识别出来的遥控信号的高电平与低电平宽度数据。通常遥控信号的二进制脉冲码长为32位,每位由一个高电平与一个低电平组成,应保存的信号宽度数据为64个,再加上引导码2个数据,共计66个数据,每个数据用一个字节来表示,一个遥控信号命令就需要66个字节来保存。考虑到不同的遥控系统有一定的区别,有些遥控信号命令长度较长,所以存储空间应适当留有余量。在实际应用中,可根据红外遥控设备的数量及每个设备的遥控命令数量等具体情况来决定E2PROM 芯片的容量和型号。
遥控信号的还原和发射是通过单片机的一个IO口输出二进制脉冲码(高电平与低电平的维持时间为学习识别时保存的一组宽度数据)与38KHz载波进行调制,调制后的信号经驱动后通过红外发光管发射出去。
但这样的处理方法,因为一体化红外接收头工作电压一般都要求是5V,在供电能力方便的情况下采用这种方式还是不错的,但如果想象普通遥控器一样只能采用两节干电池供电,那以上方法是没法做到的。
我看到过一款自学习型遥控器,其电路原理如下图所示:
http://bbs.21ic.com/upfiles/img/200682114949720.jpg(图五)
现在有两点我没想明白:
1、这里接收红外信号是采用红外接收二级管,但这里经三极管放大反向之后送入单片机口线上的信号还是调制在38KHz的波形,也就是说这个波形是没有经过解调的。
我想弄明白的事:单片机是如何对这波形进行解调的吗?或者说这单片机处理程序是并没有进行解调而是直接记录特征数据,然后存入EEPROM,这样又是如何做到的吗?
2、存储于EEPROM的32字节数,是个什么样的特征数据,它能再生重新原样的发射出去。
能只用32个字节的数据记录一个按键的红外遥控信息,这比之前用66个字节(甚至更多)的方法来得更加简洁,一个4K的EEPROM(AT24C32)能够记录的按键数就多得多了。
评论
发表评论