NEC协议详解
Posted 旧年不在cd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NEC协议详解相关的知识,希望对你有一定的参考价值。
NEC协议详解
NEC协议载波:38khz
其逻辑1与逻辑0的表示如图所示:
逻辑1为2.25ms,脉冲时间560us;逻辑0为1.12ms,脉冲时间560us。所以我们根据脉冲时间长短来解码。推荐载波占空比为1/3至1/4。
在发送端:
- 每一位时间为1.12ms(560us+560个低电平)或22.25ms(560us+1680us),调制采用脉冲时间长短调制每一位。
- 每一个脉冲都是由560us长度的38KHZ载波脉冲构成的,占空比为1/4或1/3。
逻辑1:2.25ms 逻辑0:1.12ms
在接收端:
- 没有脉冲的时候为高电平,接收到脉冲的时候为低电平,故逻辑“1”为560us低+1680us,逻辑“0”变为560us低+560us高。(因为560us是载波脉冲,故为低了,剩余的没有脉冲,故为高了,从而根据接收到的高电平的脉宽可以区分0与1)
NEC协议格式:
- 首次发送的是9ms的高电平脉冲,其后是4.5ms的低电平,接下来就是8bit的地址码(从低有效位开始发),而后是8bit的地址码的反码(主要是用于校验是否出错)。然后是8bit的命令码(也是从低有效位开始发),而后也是8bit的命令码的反码。
协议说明:
-
一个信息发送是由9ms的AGC自动增益控制脉冲开头,在早期的IR红外接收器中用来设置增益。接着是4.5ms空闲,然后是地址、命令。
-
地址和命令都传送两次,第二次的地址和命令是反码,可以用来校验接收的数据。
-
以下是一个正常的序列,但可能存在一种情况:你一直按着1个键,这样的话发送的是以110ms为周期的重复码,如下图:
- 就是说,发了一次命令码之后,不会再发送命令码,而是每隔110ms时间,发送一段重复码。
-
重复码由9ms高电平和2.25ms的低电平以及560us的高电平组成。
-
由以上可知:在接收端高电平的持续时间最长为4.5ms,表示为引导码。由此我们在一个5ms的时间内的脉冲的高电平持续时间,从而判断是引导码、重复码、还是1和0。
高/低电平时间 | 4.5/9ms | 2.25/9ms | 1.68/0.56ms | 0.56/0.56ms |
---|---|---|---|---|
码类型 | 引导码 | 重复码 | 1 | 0 |
- 在5ms内,只要是上面的任意码,都会出现高低电平的变化的,如果超过5ms都没有出现变化,如果超过5ms都没有出现变化,则这个码就是无效码。
红外NEC协议编码说明:
以上是关于NEC协议详解的主要内容,如果未能解决你的问题,请参考以下文章
STM32入门开发: NEC红外线协议解码(超低成本无线传输方案)
STM32入门开发: 制作红外线遥控器(智能居家-万能遥控器)