- 收藏
- 加入书签
基于NEC的红外遥控实现
【摘要】红外(IR)是红外线的简称,红外遥控是一种无线、非接触控制技术,常用于遥控器、无线键盘、鼠标等设备之间的通信。IR协议是红外线通信协议的总称,NEC协议是IR协议中的一种具体实现。其工作原理是,发送方通过红外线发送一个特定的编码,接收方通过识别该编码来执行相应的操作。为防止信号干扰等,红外遥控器的信号通常使用载波方式传输,常用的载波频率为38KHz。本文从具体项目出发,通过软件设计实现了在GD32微控制单元(MCU)平台下红外信号处理及信息传输,并充分验证了GD32F103/GD32F450芯片的收发处理能力、准确性和稳定性,各项指标均满足协议要求,可为其他类似红外遥控软件设计开发提供参考。
【关键词】红外;IR协议;GD32;NEC协议
1 引言
红外(IR)遥控是一种无线、非接触控制技术,常用于遥控器、无线键盘、鼠标等设备之间的通信。IR协议的工作原理是,发送方通过红外线发送一个特定的编码,接收方通过识别该编码来执行相应的操作。红外遥控系统分为发射和接收两部分,发射部分的发射元件为红外发光二极管,它发出的是红外线而不是可见光;接收部分的红外接收管是一种光敏三极管。红外遥控实现框图如图1所示。
本文选取了GD32F103/GD32F450芯片作为主设计芯片,通过软件设计及实现在GD32微控制单元(MCU)平台下红外信号处理及信息传输,红外遥控器产品实物如图2所示。产品通过功能测试、逻辑测试及强度测试等方式对芯片的收发处理能力、准确性和稳定性进行验证。
2 NEC协议介绍
IR协议是红外线通信协议的总称,而NEC协议是IR协议中的一种具体实现,协议收发信号说明见图3。
NEC遥控指令的数据格式为:同步码头、地址码、地址反码、命令码、命令反码,以接收为例说明如图4所示。同步码由一个9ms的低电平和一个4.5ms的高电平组成,地址码、地址反码、命令码、命令反码均是8位数据格式。按照低位在前,高位在后的顺序发送。采用反码是为了增加传输的可靠性(可用于校验)。每次信息都是按照同步码(9ms载波脉冲+4.5ms空闲信号)、地址码、地址反码、命令码和命令反码的格式进行传输,因此,单次信息传输的时间是固定不变的。
接收到的信号分为以下三种情况:
a)信息头,图4中的红色信号,提示将要发送信号;
b)信息体,图4中的蓝色信号,真正需要传输的内容;
c)重复信号,图4中的绿色信号,代表前面发送的内容重复发送。
3 红外发送
3.1 详细介绍
红外遥控常用的有通过脉冲宽度来实现信号调制的PWM(Pulse Width Modulation脉宽调制)和通过脉冲串之间的时间间隔来实现信号调制的PPM(Pulse Position Modulation脉冲位置调制)两种方法,本文采用PWM的方式进行编码,红外遥控发送信号波形如图5所示。
数据的每一位(Bit)脉冲长度为560us,由38KHz的载波脉冲(carrier burst)进行调制,如图6所示,推荐的载波占空比为1/3至1/4。
有载波脉冲的地方,其宽度都为560us,而载波脉冲的间隔时间是不同的。NEC协议逻辑电平编码格式如图7所示。
逻辑“1”的载波脉冲加载波脉冲间隔时间为2.25ms,如图8所示。
逻辑“0”的载波脉冲加载波脉冲间隔时间为逻辑“1”的一半,即1.125ms,如图9所示。
当红外遥控器上的按键被一直按下时,红外遥控器只会发送一次完整的信息,其后会每隔110ms发送一次重复码(连发码),如图10所示。重复码同样是由9ms的载波脉冲开始,紧接着是2.25ms的空闲信号,随后是560us的载波脉冲。
3.2 红外发送流程图
4 红外接收
4.1 详细介绍
红外接收装置是由红外接收电路、红外解码、电源和应用电路组成,主要作用是将红外发射装置发过来的红外线转换为电信号,再经过放大、限幅、检波、整型,最终形成遥控指令脉冲传输到微控制器当中。红外接收头通常被厂家集成在一个元件中,成为一体化红外接收头,如图12所示。
红外接收头共有三个引脚VOT(传出解码数据)、GND、VCC,内部的三极管电路具有信号反向的功能,也就是正好和发射端相反,即将1变为0,0变为1。红外接收信号波形如图13所示。
同步码中9ms高电平变为低电平,4.5ms低电平变为高电平,如图14所示。
数据0是560us的低电平和560us的高电平,如图15所示。
数据1是560us的低电平和1690us的高电平,如图16所示。
4.2 红外接收流程图
红外接收的过程使用一个有限状态机来完成,这个状态机共有三种状态:
a)开始状态:接收到第一个下降沿开始计时,转为“状态2接收信息头状态”。
b)接收信息头状态:当再次接收到一个信号下降沿时计算经过的时间。经过时间为9ms+4.5ms=13.5ms,判断为开始信号,转为“状态3接收信息体状态”;经过时间为9ms+2.25ms=11.25ms,判断为repeat信号,转为“状态1开始状态”,否则一直维持“状态2接收信息头状态”。
c)接收信息体状态:每接收到一个下降沿根据经过的时间判断是0还是1,并将这些数据存储起来,当接收完4*8=32个bit之后转变为“状态1开始状态”,若接收到的数据非0或1(数据异常),则返回“状态2接收信息头状态”。
红外接收状态转换流程图如图17所示:
5 结论
本文依托具体项目,主要论述了基于GD32F103/GD32F450为主控芯片的某型加固显示器红外遥控软件的开发设计,并给出了基于NEC协议的红外发送和红外接收功能的具体实现方式。本设计充分验证了GD32F103/GD32F450芯片的收发处理能力、准确性和稳定性,各项指标均满足协议要求,可为后续其他红外遥控软件设计开发提供参考。
参考文献:
[1] 赵巍,冯娜.《单片机基础及应用》[M].北京:清华大学出版社,2009,94-103
[2] 邓俊波.红外线遥控解码的软硬件设计方法[J].广西轻工业,2008,4(4):67-68.
作者简介:
作者姓名:王雅东 出生年月:1989.12.09 民族:汉 性别:男 学历:本科
单位:苏州长风航空电子有限公司 单位省市:江苏省苏州市 单位邮编:215100户籍所在地省市:江苏省苏州市
















京公网安备 11011302003690号