NEC协议规范及应用介绍

嵌入式赋能千行百业 1.7w人浏览 17人参与

AI助手已提取文章相关产品:
NEC协议基础与应用

NEC协议是一种广泛应用于红外遥控领域的通信协议,由日本电气公司(NEC)制定。该协议具有结构简单、抗干扰能力强、编解码容易等特点,在家用电器、多媒体设备、工业控制等领域得到了广泛应用。

NEC协议的主要特点
  1. 调制方式:采用38kHz载波频率进行脉冲位置调制(PPM)
  2. 数据格式:每帧数据包含32位,包括8位地址码、8位地址反码、8位命令码、8位命令反码
  3. 传输速度:标准传输速率约为562.5μs/bit
  4. 可靠性高:通过反码校验机制确保数据传输的准确性
  5. 支持连发:长按按键时可发送重复码,减少数据传输量
NEC协议的应用场景
  • 消费电子:电视机、空调、音响等家用电器的遥控器
  • 多媒体设备:投影仪、DVD播放器、机顶盒等设备控制
  • 智能家居:智能灯光、窗帘、安防系统的无线控制
  • 工业控制:机器人、自动化设备的无线遥控
  • 教学实验:FPGA、单片机开发板的红外通信实验
红外发送与接收原理
1. 红外发射原理

物理原理:
红外发射是通过红外发光二极管(IR LED)产生特定波长的红外光信号。红外LED的发光波长通常在850nm-950nm之间,其中940nm是最常用的波长,这个波段的红外光不可见,且硅光电二极管对此波段敏感度高。

发射过程:

  • 载波调制:在相同平均功耗下,脉冲驱动可实现更高的峰值亮度,提升瞬时光功率,从而延长通信距离。为了提高抗干扰能力和传输距离,红外信号采用38kHz载波调制。当需要发射信号时,控制电路以38kHz的频率开关红外LED,产生调制后的红外脉冲。
  • 脉冲编码:根据NEC协议规范,通过控制载波脉冲的持续时间和间隔来编码数据。逻辑"0"和"1"通过不同的脉冲宽度组合来区分。
  • 功率控制:红外LED的发射功率通过限流电阻和驱动电流控制,典型驱动电流为50-100mA,峰值可达200-500毫安。

硬件配置:
MCU/FPGA GPIO → 三极管/MOSFET驱动电路 → 限流电阻 → 红外LED

电路设计要点:

  • 驱动电路需要足够的电流驱动能力,单片机GPIO口通常无法直接驱动
  • 添加续流二极管保护驱动管
  • PCB布局时红外LED应远离接收头,避免直接串扰
2. 红外接收原理

接收器件结构:
红外接收头(如HS0038B、VS1838B)是一个集成化的红外接收模块,内部集成了:

  • 光电二极管:将红外光信号转换为电信号
  • 前置放大器:放大微弱的光电流信号
  • 带通滤波器:滤除38kHz以外的干扰信号
  • 解调电路:提取出调制信号中的数据部分
  • 输出整形电路:将信号整形为标准TTL/CMOS电平

电平转换原理:
接收头的电平转换遵循以下规则:

红外发射端接收头输出
发射38kHz载波(LED亮)输出低电平(0)
停止发射(LED灭)输出高电平(1)

这种"反逻辑"的原因是:

  • 有红外信号时,光电二极管导通,经过解调后输出低电平
  • 无红外信号时,输出端通过上拉电阻保持高电平
  • 这种设计符合红外接收头的内部电路特性,也便于后续的数字电路处理

硬件配置:
红外接收头 → 去耦电容(滤波) → MCU/FPGA GPIO输入

电路设计要点:

  • 电源引脚需要添加0.1μF去耦电容,减少电源纹波干扰
  • 接收头输出端可串联100Ω-1kΩ电阻保护MCU输入口
  • 接收头应避免直射日光和强光照射,必要时加遮光罩
  • PCB布局时接收头远离高频信号源和电源模块
3. 收发系统完整流程

发送流程:
数据编码 → 38kHz载波调制 → 驱动电路 → 红外LED发射 → 红外光信号

接收流程:
红外光信号 → 光电转换 → 放大滤波 → 38kHz解调 → 电平输出 → 数据解码

关键时序匹配

  • 发射端的载波频率必须与接收头的中心频率匹配(38kHz±2kHz)
  • 接收端需要根据电平持续时间判断逻辑"0"和"1"
  • 软件解码时需要设置合理的时间容差范围(通常±20%)
NEC协议详细规范
1. 时序参数定义

NEC协议使用38kHz的载波频率,提高红外信号频率,提高发射效率。关键时序参数如下:
发送端时序(发送端输出):

  • 引导码:9ms载波 + 4.5ms静默
NEC协议引导码
  • 逻辑"0":560μs载波 + 560μs静默(总计1.12ms)
逻辑码
  • 逻辑"1":560μs载波 + 1.69ms静默(总计2.25ms)
  • 结束位:560μs载波
  • 重复码:9ms载波 + 2.25ms静默 + 560μs载波
NEC协议重复码

接收端时序(接收头输出):

  • 引导码:9ms低电平 + 4.5ms高电平
  • 逻辑"0":560μs低电平 + 560μs高电平(总计1.12ms)
  • 逻辑"1":560μs低电平 + 1.69ms高电平(总计2.25ms)
  • 结束位:560μs低电平
  • 重复码:9ms低电平 + 2.25ms高电平 + 560μs低电平
2. 数据帧格式

一个完整的NEC协议数据帧由以下部分组成:

[引导码] + [地址码8位] + [地址反码8位] + [命令码8位] + [命令反码8位] + [结束位]

数据传输顺序:每个字节从低位(LSB)到高位(MSB)依次传输。

发射端与接收端时序对应关系:

  • 发射端逻辑"1":560μs载波 + 1.69ms静默
  • 接收端逻辑"1":560μs低电平 + 1.69ms高电平
  • 发射端逻辑"0":560μs载波 + 560μs静默
  • 接收端逻辑"0":560μs低电平 + 560μs高电平

每个载波脉冲都是由560μs长度的38kHz载波构成,载波占空比为1/4或1/3(约21个周期)

示例帧结构:
示例帧结构

发射端波形:
引导码:9ms载波 + 4.5ms静默
地址码:0x59 (01011001) - 从LSB开始依次发送
地址反码:0xA6 (10100110) - 从LSB开始依次发送
命令码:0x16 (00010110) - 从LSB开始发送,实际发送顺序为01101000
命令反码:0xE9 (11101001) - 从LSB开始发送,实际发送顺序为10010111
结束位:560μs载波

接收端电平:
引导码:9ms低电平 + 4.5ms高电平
地址码:0x59 (01011001) - 从LSB开始依次接收
地址反码:0xA6 (10100110) - 从LSB开始依次接收
命令码:0x16 (00010110) - 从LSB开始接收
命令反码:0xE9 (11101001) - 从LSB开始接收
结束位:560μs低电平

3. 重复码机制

当用户持续按住遥控器按键时,遥控器会先发送一次完整的数据帧,然后每隔110ms发送一次重复码,直到按键释放。

发射端重复码格式:

9ms载波 + 2.25ms静默 + 560μs载波

接收端重复码格式:

9ms低电平 + 2.25ms高电平 + 560μs低电平
重复码

重复码的作用是减少数据传输量,提高响应速度,同时节省电池电量。

4. 载波调制细节

38kHz载波的细节:

  • 载波周期:T = 1/38kHz ≈ 26.3μs
  • 占空比:通常为1/3或1/4
  • 每个载波脉冲包含约21个周期(560μs / 26.3μs ≈ 21.3)
总结

NEC协议通过简单的时序和数据格式,实现了高效的红外遥控通信。其主要特点包括:

  • 采用38kHz载波频率,提升了抗干扰能力和传输距离
  • 数据帧结构清晰,易于解析和处理
  • 支持重复码机制,提升了用户体验

在实际应用中,NEC协议广泛应用于家电遥控、智能家居等场景,成为红外通信领域的重要标准。

您可能感兴趣的与本文相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值