基于STM32的学习型通用红外遥控设备的设计实现(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013686019/article/details/19834441
CPU: STM32
调试平台: STM32F103ZET和STM32F103VBT
软件平台: Keil uVision4
电路设计: Altium Designer v6.9
http://blog.csdn.net/u013686019/article/details/19834441

1、红外通信技术理论介绍

1.1 红外通信技术理论及示波器验证

先说下红外遥控的知识。这方面的资料Google一下到处都是,归纳起来有:
  • 红外通信的介质-波长为0.76~1.5μm的红外线
  • 现今主流且常用的有两种编码格式-脉冲位置调制(PPM, Pulse Position Modulation)和脉冲宽度调制(PWM, Pulse Width Modulation)
  • 调制和发送-红外协议-NEC协议夏普协议索尼SIRC协议等,应用最广泛的是NEC协议。

NEC标准规定红外通信的载波频率为38KHz占空比为1:3;按键按下后,发送一个全码,如果108ms后按键仍没松开,则发送重发码。协议编码的一帧全码由引导码、用户码、用户反码、按键数据码、按键数据反码和尾部的重发码组成,如下图所示


NEC标准规定的引导码由9000μs左右的低电平和4500μs左右的高电平组成,重复码由9000μs左右的低电平和2250μs左右的高电平组成,数据“1”由560μs左右的低电平和1685μs左右的高电平组成,数据“0”由560μs左右的低电平和565μs左右的
高电平组成,如下图所示:

通信设备的按键按下后,周期性的发出同一种32位的二进制码,整个周期约为108ms。通信设备发送的编码持续时间与其包含的二进制“1”和“0”的个数有关,发射波形图如下图所示:

1.2 红外协议的验证

NEC协议的理论在1.1节有论述,为使自己有一个感官上的认识,对协议进行波形的提取分析,即通过抓取红外一体接收头输出的红外信号,测量脉冲的高低电平宽度是否在协议规定的范围。    
用示波器(RIGOL DG1102E)检测VS838输出的红外信号, 示波器接收到的引导码下图所示:


示波器接收到的“1”码如下图:


示波器接收到的“0”码如下图:


引导码持续时间13.6ms,“1”码持续时间2.22ms,“0”码持续时间1.10ms,完全在NEC协议规定的范围内。
 

1.3 通用红外通信设备的实现

通用红外通信设备按照学习方式的不同可以分为两类:
  • 固定码格式的通信设备
  • 波形拷贝式的通信设备
第一种通信设备需要收集保存不同种类的红外设备信号,然后识别比较,最后再记录。这种红外设备的优点是硬件要求相对简易,控制器的CPU频率可以较低;缺点是因为红外编码格式太多,实现红外设备的成功复制比较难。
第二种红外设备是把原来红外设备发出的信号进行完全的复制,不管原来红外设备红外信号是什么格式,然后存储到非易失性的存储器(如EEPROM)中,发送时再把保存的波形数据取出,还原成原始信号。其优点是可以对任何一种红外设备进行学习;缺点是对控制器CPU的频率要求较高,RAM要大。
为了对尽可能多的设备进行控制,本设计完成的是第二种红外通信设备波形拷贝式的通信设备
 
红外信号的接收由一体化接收管完成,然后送入微控制器进行处理。接收管图片如下图所示:

微控制器通过中断的方式对红外脉冲信号的脉宽进行测量。红外接收管在没有收到红外信号的情况下,输出端一直输出高电平;一旦由红外信号输入,按照NEC协议,会产生下降沿的跳变。通过把单片机的中断设置为下降沿模式,就可以捕获该信号,进入中断处理函数,实现脉宽的宽度测量。

随着集成电路集成度的日益增大,许多单片机都已具备内部FALSH且容量完全可以满足对脉宽数据的存储。这样,可以省去额外的存储器,节省成本,简化硬件电路,而且对内部FLASH的读写速度很快。

红外信号的调制发送设计两方面,一是从FLASH中读取按键对应的键值码的信息,二是完成对复原的红外信号的发送。按键按下,从按键对应的地址读出键码信息;发送需要先把信息调制在38KHz的载波上,38KHz载波由单片机的定时器产生占空比1:3的PWM波得到,其中调制部分的原理电路如下图所示:

当Txd端输出是低电平0时,三极管Q1导通,38KHz载波信号由Q2输出,驱动红外发射管L1发送信号;当Txd端输出是高电平1时,三极管Q1截止,38KHz载波信号无法输出,接收端接收不到红外信号,输出高电平。红外发送波形信息如下图所示:
 

1.4 系统实现的流程

整个系统主要由7个模块组成,它们是:
  • 38KHz载波模块
  • 键盘模块
  • 红外脉宽测量模块
  • FLASH存储器的读写模块
  • 红外信号的调制发送模块
  • 学习键的中断实现模块
  • TFT液晶的显示模块。
整个系统的流程图如下图所示:

猜你喜欢

转载自blog.csdn.net/u013686019/article/details/19834441