红外解码方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
红外解码方案
1. 红外发射的原理
遥控器部分的工作原理较为简单,主要就是编码IC 通过三极管进行放大调变,然后将此电信号(脉冲波)经有红外发射管(940nm 波长)转变为光信号发射出去。现在国产遥控器的电路主要有:455kHz 晶振,编码IC ,放大三极管,发射管等主要几个电子原件组成;
通常使用38kHz 载波,这样可以提高红外线的抗干扰能力,避免大气中的红外线干扰。调制载波频率一般在30kHz 到60kHz 之间,大多数使用的是38kHz ,占空比1/3的方波,这是由发射端所使用的455kHz 晶振所决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kH z÷12≈37.9kH z≈38kHz 。
2.
红外接收的原理
红外接收头内部结构主要由光电二极管+红外接收IC 组成,工作原理为:光
电二极管(俗称接收管)其接收到红外发射管发射出的光信号后转换为电信号(为
微安级的电流),此电信号输入到接收IC 内部经过放大--增益--滤波--解调变--整形还原,还原遥控器给出的原始编码,通过接收头信号输出脚输入到后面的代码
3. 几种编码格式
3.1 NEC 制
NEC 制的数据格式分为引导码、16位用户码(地址码)、8位数据码、8位数据反码构成。
用户码或数据码中的每一个位可以是位‘1’,也可以是位‘0’。区分‘0’和‘1’是利用脉冲的时间间隔来区分,这种编码方式称为脉冲位置调制方式(PPM)(注意NEC每一位的长度不一样,1.125ms或者2.25ms)。
按键保持按下状态时每发送完整的一帧数据后,再发送重复码,再到按键被松开。此芯片用两种不同的重复码,当用户码的C0位为1时用一种,C0位为0时使用另一种。
3.2RC5制
RC5编码相对NEC编码简单一些。RC5编码有2位起始位(为‘1’)、1位控制、5位系统码(地址码)、6位指令码,一共14位数据。
在这个协议里所有位是平等的长度都等于1.778ms,位时间的一半填满脉冲是36KHz的载波,另外一半被闲置。其中逻辑‘0’代表脉冲位于前半时。逻辑‘1’代表位于后半时。
每次按键重复完整14位数据,重复时间1.778ms×16×4=113.792ms。占空比1/4。
4. 解码
4.1 NEC 解码
由于每一位的长度不一样, 所以定义四个状态。初始状态、9ms 状态、4.5ms 状态、读入数据状态。当其中条件不满足时,重置为初始状态。
读数据时采用50M —1750分频后频率(周期0.035ms )采样。
将读入的8位数据码存入寄存器,通过对比确定发射的信息。如果8位数据码没有对应信息,判定读取失败,读入数据反码,取反,然后继续对比。
附:FPGA 开发板提供的红外遥控器8位数据位与对应信息。
8'b01101000: //遥控板0的码值
8'b00110000: //遥控板1的码值
8'b00011000: //遥控板2的码值
8'b01111010: //遥控板3的码值
8'b00010000: //遥控板4的码值
初始状
态
•读到19ms 状态
•9ms 时读
到下降沿 4.5ms 状
态
•4.5ms 时
读到上升
沿读入数据状态
8'b00111000: //遥控板5的码值
8'b01011010: //遥控板6的码值
8'b01000010: //遥控板7的码值
8'b01001010: //遥控板8的码值
8'b01010010: //遥控板9的码值
4.2 RC5解码
由于每位的长度均为1.778ms ,解码是相对容易。分为两个状态。初始状态与读入数据状态。当读到16位‘0’时进入初始状态,再读到2位‘1’时进入读入数据状态。采用50M —6350分频(周期127us )采样。
将读出的指令码存入寄存器,通过对比6位指令码,确定发射的信息。如果没有相对应的信息,判定读取失败,重新读取。
读到16
位‘0’
初始状态
•读到2
位‘1’读入数据
状态