基于定时器捕获功能的红外解码程序(NEC协议)

本文介绍了红外遥控的基础知识及几种常见的红外协议,重点讲解了NEC协议的特点及其在MSP430单片机上的实现方法。包括硬件配置、定时器捕获中断的应用及红外信号的解析流程。


前言

在可视范围内,红外遥控是设备最廉价的遥控实现方式。该技术兼具应用实现原理简单、器件廉价的优势,成为我们日常设备控制的理想方式。目前几乎所有的视频和音频设备都可以通过这种方式遥控。

本文将简单介绍一些日常使用到的消费类电器红外控制协议,着重介绍NEC协议,并基于MSP430单片机的定时器捕获功能实现红外解码


一、红外协议简介

1. ITT Protocol

ITT 红外协议不使用调制信号,直接发送是区别于其他协议的重要特点。
每个信号都是由 14 个 10us 时间间隔的脉冲信号组成来发送,解码则是根据脉冲的间隔进行。
该协议非常实用,并耗能很低,大大提高了电池寿命。

在这里插入图片描述
一个红外信号通过 14 个脉冲发送,每个脉冲都是 10us 长。
通常使用三个不同的时间间隔去区分一个信号:
100us 表示逻辑 0;
200us 表示逻辑 1;
300us 则表示起始条件脉冲(lead-in)和结束条件脉冲(lead-out);

在这里插入图片描述

2. NEC 协议

该协议由 NEC 开发,具有以下特征:
8 位地址码,8 位命令码;
完整发射两次地址码和命令码,以提高可靠性;
脉冲时间长短调制方式;
38KHz 载波频率;
位时间 1.12ms 或 2.25ms;

在这里插入图片描述
NEC 协议根据脉冲时间长短解码。每个脉冲为 560us 长的 38KHz 载波(约 21 个载波周期)。
逻辑”1”脉冲时间为 2.25ms;
逻辑”0”脉冲时间为 1.12ms。
推荐的载波周期为 1/4 或者 1/3,即 38K 载波信号的周期里,只有 1/4 或者 1/3是高电平。

在这里插入图片描述

在这里插入图片描述

注:发送端与接收端的信号电平正好发生翻转;

3. Nokia NRC17 协议

Nokia 协议使用 17 位比特发送红外指令;
8 位命令码,4 位地址码 4 子码;
38K 载波,双向解码;
位传送时间 1ms ;
在这里插入图片描述
该协议采用所谓的不归零法解调 38K 载波,所有位的时间都相等且都为 1ms,每位都有一半的时间(500us)都是 38K 载波,剩下一半时间时空闲的低电平。逻辑 1 位表示为前面的一半时间为 38K 的载波,后面一半时间为低电平,反之逻辑 0 位刚好相反。

注:此外市场上也存在其他的协议,如夏普协议、索尼 SIRC 协议、飞利浦 RC-5 协议等。

二、红外解码程序(NEC协议)

1. 软硬件环境及红外解码状态图

芯片:MSP430FR57xx;
编译环境:Code Composer Studio;
在这里插入图片描述

注:下面程序中新增加了一个用于检验传输地址、数据的状态:IRDA_RECEIVE_CHECKOUT;

2. 基于定时器捕获中断方式的NEC协议红外解码程序

代码如下:

#include <string.h> 
#include "sysclock.h"

#include "gpio.h"
#include "timer.h"
#include "mcu_api.h"
#include "protocol.h"

// 红外解码状态机
//(空闲、下降沿9ms、上升沿4.5ms、接收数据、信号检验、0、1信号判断、重复发送——2.25秒)
#define IRDA_IDLE_STATE                  0
首先将板子连接好;接着将红外接收头按照上述方法接好,将VOUT接到数字11口引脚 载波频率都是38khz 每一位癿时间为1.125ms戒2.25ms •逻辑 0和1的定义如下图 协议如下: •按键按下立刻松开的发射脉冲: 上面图片显示了NEC协议典型的脉冲序列。注意:这首先发送LSB(最低位)的协议。在上面癿脉冲传输的地址为0x59命令为0x16。一个消息是由一个9ms的高电平开始,随后有一个4.5ms的低电平,(返两段电平组成引寻码)然后由地址码和命令码。地址和命令传输两次。第二次所有位都取反,可用于对所收到的消息中的确认使用。总传输时间是恒定的,因为每一点与它取反长度重复。如果你不感兴趣,你可以忽略这个可靠性取反,也可以扩大地址和命令,以每16位! 按键按下一段时间才松开的发射脉冲: 一个命令发送一次,即使在遥控器上的按键仍然按下。当按键一直按下时,第一个110ms癿脉冲与上图一样,之后每110ms重复代码传输一次。返个重复代码是由一个9ms的高电平脉冲和一个2.25ms低电平和560μs癿高电平组成。 •重复脉冲 注意:脉冲波形进入一体化接收头以后,因为一体化接收头里要迕解码、信号放大和整形,故要注意:在没有红外信号时,其输出端为高电平,有信号时为低电平,故其输出信号电平正好和发射端相反。接收端脉冲大家可以通过示波器看到,结合看到的波形理解程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值