红外NEC通信协议

1 NEC

1.1 NEC简介

NEC协议采用PPM(Pulse Position Modulation,脉冲位置调制)的形式进行编码,数据的每一位(Bit)脉冲长度为560us,由38KHz的载波脉冲 (carrier burst) 进行调制,推荐的载波占空比为 1/3至 1/4。有载波脉冲的地方,其宽度都为 560us,而载波脉冲的间隔时间是不同的。

1.1.1 特性

  • 8位地址和8位命令长度
  • 扩展模式可用,地址大小加倍
  • 为保证可靠性,地址和命令传输两次
  • 脉冲位置调制(PPM)
  • 载波频率38kHz
  • 位时间为1.125ms或2.25ms

1.2 调制协议

NEC协议由【引导码、用户码(地址码)、用户反码(地址反码)、数据码、数据反码、结束码】构成
其中用户码、用户反码、数据码、数据反码,每个码为8位共4个字节(32位)。

  • 引导码:用于同步接收器和发送器之间的通信。

  • 地址码:用于标识接收器,8位数据,通常代表设备类型或者具体的设备地址,确保遥控器只能控制相应的设备;数据以二进制格式发送,遵循“先低位后高位”。

  • 地址反码:用于错误校验,地址码的8位二进制反码。

  • 控制码:8位数据,代表具体的命令或操作码,比如开关机、温度调节等。

  • 控制反码:控制码的8位二进制反码,用于校验数据的正确性。

  • 重复码:是为了实现持续按住遥控器上某一个按键时,连续发送同一命令的功能,当用户长时间按下遥控器上的按键时,遥控器除了在初次按下时发送一个完整的命令数据包外,后续会以110ms间隔不断发送一个比较短的重复码,以维持先前命令的效果,比如电视保持音量增大状态。

  • 整个数据包发送完成后,通常没有明确的停止位,而是通过一段时间的静默期来区分相邻的数据包。

  • 发送端在未发送时默认为低电平;接收端在没有接收到信号时默认为高电平;所以发送端和接收端的信号为反相电平


1.3 发送端具体通信过程

1.3.1 NEC协议典型脉冲序列

请添加图片描述

  • 上图为NEC协议典型脉冲序列(发送)。协议遵循传输LSB(低位在前 高位在后)。发送0x16命令到0x59地址。
  • 消息由9ms的AGC启动,用于设置早期IR接收器的增益。AGC后跟着4.5ms的“space”,然后传输“Address”和“Command”。
  • Address和Command传输两次,Address和Command的第二次传输所有位都进行反转,可用于校验消息。总传输时间是恒定的,因为每个bit都与其反转的长度重复。
  • 消息的末尾必须额外加一个560us的脉冲,以便确认最后一位的值。

1.3.2 引导码

9ms的高电平+4.5ms的低电平
请添加图片描述

1.3.3 数据

发送数据时(用户码(地址码)、用户反码(地址反码)、数据码、数据反码)共4字节
0是560us高电平(有脉冲)+ 560us低电平(无脉冲)= 1.12ms
1是560us高电平(有脉冲)+ 1680us低电平(无脉冲)= 2.24ms
每个脉冲是一个560us长的38kHz载波脉冲(约21个周期),建议的载波占空比为1/4或1/3。
请添加图片描述

1.3.4 结束码

560us高电平

1.3.5 重复码(不一定包含)

9ms高电平+2.25ms低电平+560us高电平
请添加图片描述

此后重复码只包含一个固定的脉冲序列,不包含地址码、地址反码、控制码、控制反码。固定序列通常是一个9ms的高电平脉冲,紧跟一个2.25ms的低电平和560us的高电平。
请添加图片描述


1.4 接收端具体通信过程:

1.4.1 引导码

9ms的低电平+4.5ms的高电平

1.4.2 数据

接受数据时(用户码(地址码)、用户反码(地址反码)、数据码、数据反码)共4字节
0是560us低电平(无脉冲)+560us高电平(有脉冲)=1.2ms
1是560us低电平(无脉冲)+1680us高电平(有脉冲)=2.24ms

1.4.3 结束码

结束码:560us低电平

1.4.4 重复码(不一定包含)

9ms低电平+2.25ms高电平


2 扩展NEC协议

NEC协议被广泛使用之后,很多地址都用完了。通过牺牲地址冗余可以把地址范围从原先256个扩展到65000个,这样地址从8位扩展到16位,而无需修改协议的任何其他属性。
通过以这种方式扩展地址范围,总消息时间不再是恒定的。 现在,它取决于消息中 1 和 0 的总数。 如果您想保持总消息时间不变,则必须确保地址字段中的数字 1 是 8(这自动意味着 0 的数量也是 8)。 这会将不同地址的最大数量减少到大约 13000 个。

扩展协议的256个地址的无效的,因为它们实际上是正常的NEC协议地址。每当低字节是高字节的倒数时,它就不是有效的扩展地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chen_mangoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值