红外遥控协议详解:NEC Protocol

需积分: 17 9 下载量 78 浏览量 更新于2024-08-05 收藏 186KB DOC 举报
"红外遥控协议的讲解涉及到NEC和Philips RC-5两种协议,主要讲解NEC协议的特征和实现。" 红外遥控协议在现代电子设备中扮演着至关重要的角色,尤其是家用电器和多媒体设备的远程控制。NEC协议是其中一种广泛采用的编码方式,它基于PWM(脉冲宽度调制)技术来传输数据。本篇文档将深入剖析NEC协议的工作原理和解码机制。 NEC协议的主要特征包括以下几点: 1. 地址与指令:NEC协议使用8位地址和8位指令长度,总共16位数据用于区分不同的设备和操作。 2. 双重传输:为了提高传输的可靠性,地址和命令都会被传输两次。 3. PWM调制:通过调整红外载波的占空比,NEC协议用高占空比代表"1",低占空比代表"0"。载波频率固定为38KHz。 4. 位时间:每个位的时间分为1.125ms和2.25ms两种,分别代表逻辑"0"和逻辑"1"。 5. 脉冲定义:一个逻辑1的传输由一个560us的脉冲加上1680us的低电平构成,逻辑0则由一个560us的脉冲加上560us的低电平构成。在接收端,低电平对应脉冲,高电平代表无脉冲。 NEC遥控指令的结构由同步码(引导码)、地址码、地址反码、控制码和控制反码组成。同步码由9ms低电平和4.5ms高电平组成,其他数据按高位在前低位在后的顺序发送,反码的使用增加了数据传输的准确性。 解码过程中,当按键按下不放时,会发送重复码(连发码),由特定的脉冲序列表示,以指示按键的持续按下。例如,连发码由9ms低电平、2.5ms高电平、0.56ms低电平以及97.94ms高电平组成。 在实现红外遥控解码的程序中,通常会使用定时器的输入捕获功能。如正点原子的代码所示,关键步骤包括初始化(Remote_Init())、中断服务程序(TIM4_IRQHandler())和扫描函数(Remote_Scan())。初始化时,需要设置定时器中断优先级,确保中断处理的顺序正确。中断服务程序则处理捕获到的脉冲,根据脉冲宽度判断是逻辑"0"还是逻辑"1"。扫描函数则持续监测并解析接收到的红外信号,识别出对应的地址和指令。 红外遥控协议的解码涉及对硬件定时器的精确控制和对脉冲序列的解析,是嵌入式系统和物联网应用中的重要组成部分。理解这些基础知识对于设计和调试红外遥控系统至关重要。