红外线遥控是目前应用最广泛的一种通信和遥控手段。由于红外线遥控器具有体积小、功耗低、功能强、成本低等特点。因此在家电产品中有着广泛的应用。
相比与专用的控制芯片,微控制器具有开发灵活的特点,用户可以随意制定编解码格式。
但是,长期以来大家,特别是DIY爱好者对红外遥控的编码和解码原理和现实不太理解,以至于
无法根据自己的想法写出相应的程序,东奔西走,求爷爷告奶奶也无从得到,于是,今天在这里,咱们有心人开辟一个专题,来深刻地讨论,红外的编码和解码原理,以及实现程序,推而广之,电路的设计和电路图的分享。
好了,废话不多说了。我就把我所知道的和盘托出吧,高手们不要吝啬拍砖啊。
先说红外的编码吧:
一、 红外编码格式说明
用户采用红外模块时,编码格式非常灵活。目前市场上的红外编码格式非常多,每家公司都可以自己定义一种编解码格式。下面以一种比较常用的格式来做分析说明(示意图中高电平代表38K载波输出):
上面的波形格式包括前导码(Load Code)、身份码和身份反码(ID Code)、数据码和数据反码(Data Code)。
引导码(Load Code):引导码用来通知接受器其后为遥控数据,解码部分在接受到这个信号后就可以开始解码。
系统码(ID Code): 系统码用来区分是哪一机型的数据,接收端依此来判断后续的数据是否为须执行的指令。
数据码(Data code): 数据码用来区分是哪一个键被按下,接收端根据数据码做出应该执行什么动作的判断。
数据帧间的空闲时间:有用信号中两帧数据间的空闲时间。
红外遥控数据传输系统中的关键是数据传输的可靠性。因此有些公司也会在系统码和数据码后面分别再传送一个同样的码或反码,供误码校验用。
在红外遥控编码中数据位的格式一般如下图所示,通过低电平的时间不同,来区别0和1。在解码的时候既可以根据总的时间长度不同来解码,也可以根据低电平时间的不同来解码。
[
本帖最后由 libin200899 于 2011-5-16 22:21 编辑 ]