• NEC协议


       

    注意:

    用示波器在接收头抓的电平看起来和NEC协议刚好相反,

    那是因为:HS0038B 这个红外一体化接收头,当收到有载波的信号的时候,会输出一个低电平,空闲的时候会输出高电平。

    具体情况,具体分析。

     

       

    1. 红外协议之NEC协议 http://www.linuxidc.com/Linux/2014-09/106408.htm

       

    NEC协议载波:38khz

    其逻辑1与逻辑0的表示如图所示:

    逻辑12.25ms,脉冲时间560us

    逻辑01.12ms,脉冲时间560us

    所以我们根据脉冲时间长短来解码。推荐载波占空比为1/31/4

       

    The NEC protocol uses pulse distance encoding of thebits. Each pulse is a 560µs long 38kHz carrier burst (about 21 cycles). Alogical "1" takes 2.25ms to transmit, while a logical "0"is only half of that, being 1.125ms.

    The recommended carrier duty-cycle is 1/4 or 1/3. 

       

       

       

    NEC协议格式:

    首次发送的是9ms的高电平脉冲,其后是4.5ms的低电平,接下来就是8bit的地址码(从低有效位开始发),而后是8bit的地址码的反码(主要是用于校验是否出错)。然后是8bit 的命令码(也是从低有效位开始发),而后也是8bit 的命令码的反码。

       

    重复码:

    以上是一个正常的序列,但可能存在一种情况:你一直按着1个键,这样的话发送的是以110ms为周期的重复码,如下图:

    就是说,发了一次命令码之后,不会再发送命令码,而是每隔110ms时间,发送一段重复码。

    重复码由9ms高电平和2.25ms的低电平以及560us的高电平组成。

         NEC Protocol http://www.sbprojects.com/knowledge/ir/nec.php

       

    2. NEC协议红外遥控器 http://c.biancheng.net/cpp/html/1957.html

    HS0038B 这个红外一体化接收头,当收到有载波的信号的时候,会输出一个低电平,空闲的时候会输出高电平,我们用逻辑分析仪抓出来一个红外按键通过HS0038B 解码后的图形来了解一下,如图。

     

                              红外遥控器按键编码

          

                                 红外接收程序流程图

       

       

       

       

    总结:

    {

    注意:

    用示波器在接收头抓的电平看起来和NEC协议刚好相反,那是因为:HS0038B 这个红外一体化接收头,当收到有载波的信号的时候,会输出一个低电平,空闲的时候会输出高电平。

       

    }

       

       

       

       

       

  • 相关阅读:
    Elasticsearch 配置优化
    一个Elasticsearch嵌套nested查询的实例
    apache kafka配置中request.required.acks含义
    filebeat配置介绍
    Linux nohup命令详解
    elasticsearch中如何手动控制全文检索结果的精准度
    elasticsearch中filter执行原理深度剖析(bitset机制与caching机制)
    logback与log4j比较
    Markdown常用语法
    Asp.NetCore3.1中JWT认证入门使用(一)
  • 原文地址:https://www.cnblogs.com/mylinux/p/5084264.html
Copyright © 2020-2023  润新知