红外协议

Posted D·Kingson.Mo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了红外协议相关的知识,希望对你有一定的参考价值。


NEC红外线编码协议


一、NEC标准

在NEC标准中,部分遥控码表示方法如下,并且数据都是使用LSB低位先发送方式传输。当某个按键按下时,系统首先会发送一个完整的全码,而当某个按键被一直按着持续108ms以上还没松开时,系统就会发送不携带任何数据的连发码,其中前16位为用户识别码,用于区分其他的红外遥控设备,避免不同机种的遥控码之间互相干扰,接下来的16位是8位的操作码和8位的操作反码,用于判断数据是否准确接收。

1.遥控码表示方式

遥控码 表示方式
逻辑0 0.56ms高电平+0.565ms低电平
逻辑1 0.56ms高电平+1.69ms低电平
引导码 9ms高电平+4.5ms低电平
连发码 9ms起始码+2.5ms结束码
全码 引导码+用户码(8bit)+用户反码(8bit)+数据码(8bit)+数据反码8(bit)

2.时序图

1)逻辑“0”与逻辑“1”

2)NEC典型脉冲链

红外协议解析


title: 红外协议解析
tags: ARM
date: 2018-11-06 17:55:26
---

红外协议解析

设计思路

NEC红外波形是由引导码,数据码,结束码组成,不同的编码时间间隔不一致.可以采用环形缓冲区的形式先将波形存储,然后处理.环形缓冲区存储着电平状态以及持续时间.

  1. 中断配置双边沿,作为生产者存储数据

  2. 主循环读取环形缓冲区,根据时间参数解析

  3. 这里使用定时器产生系统时间,采用10ms定时器中断,那么如何获得到us的精度?这里再次读取定时器寄存器值

    unsigned long long get_system_time_us(void)
    {
     unsigned long long us = (50000 - TCNTO0)/5;
     return g_system_time_10ms_cnt * 10 * 1000 + us;
    }



以上是关于红外协议的主要内容,如果未能解决你的问题,请参考以下文章

Arduino 红外协议解析和接收码获取示例程序

STM32入门开发: NEC红外线协议解码(超低成本无线传输方案)

Linux驱动开发-编写NEC红外线协议解码驱动

蓝桥杯板子红外线使用,NEC协议

STC单片机获取红外解码从串口输出

智能电表DLT698.45-2017协议规约红外无线抄表报文解析示例说明