一种基于STM32的嵌入式遥控器设计

2012-09-09 01:16李和平
关键词:遥控器按键学习型

李和平

(娄底职业技术学院,湖南娄底 417000)

一种基于STM32的嵌入式遥控器设计

李和平

(娄底职业技术学院,湖南娄底 417000)

提出了一种基于STM32的低功耗、高性能的嵌入式学习型遥控器解决方案,阐述了系统的工作原理及其软硬件设计.该遥控器解决了传统单片机因时钟频率低而无法对载波频率进行测量的瓶颈,实现了对任何一款普通遥控器的按键编码学习,并且利用STM32丰富的内部资源,实现一遥控器控制多设备的一种集成化智能遥控,真正地完善了嵌入式学习型遥控器的智能化功能.

uClinux;STM32;遥控器;ARM-CORTEX-M3

目前国内学习型遥控器大部分采用复制遥控器红外波形的思想,方法很多.针对目前市面上已有的学习型遥控器都只能对一些特定的红外遥控编码进行学习的情况,设计了一种基于STM32的红外学习型遥控器,该遥控器把载波频率测量、红外信号解调、脉宽测量、调制发送IP核集中到STM32(ARM)器件上,极大地简化外围硬件电路,并且利用uClinux软核CPU的32位处理器,可以对脉宽进行精确测量,同时提高处理速度,能够精确地对载波频率进行测量,将原始的红外信号进行最大程度上无失真还原.该学习型遥控器能成功地学习、记忆和再现各种红外遥控编码,真正地完善了学习型遥控器的学习功能.

1 系统设计方案

系统主要由uClinux(ARM-CORTEX-M3)处理器、输入输出I/O口、红外接收电路、按键和显示电路、红外发送调制逻辑电路、中断控制器等组成,如图1所示.

图1 系统结构图

系统上电后,首先进行初始化,然后进入低功耗模式等待按键中断进行相对应操作.当有按键按下时,通过I/O口产生一个中断请求信号,此时唤醒系统,并对按键进行相对应的操作,如一段时间后对系统没有做任何操作,将继续进入低功耗模式.如学习功能键按下,“学习”指示灯亮,表示系统被唤醒并进入了学习状态,用户只需要将家电遥控器对准学习型遥控器的接收窗口,然后把想要学习的家电遥控器按键按下并在学习型遥控器上按下相对应的按键即可.此时“学习”指示灯会闪烁,等到变成常亮,表示该按键学习完成,遥控器将学习到的数据对应记录到刚按下的功能键下,同时将记录在SRAM当中的数据存入STM32的FLASH中.学习操作完成后,用户按一下学习型遥控器的“学习”功能键,系统将退出学习状态.当用户需要进行实际遥控操作时,只需要根据自己的功能需求,按一下学习型遥控器的指定功能键,系统将从FLASH当中将对应功能键的数据读出,并加载等精度载波调制,启动高速DMA控制器,通过高分辨率的PWM端口将红外信号发送到红外发送电路,完成红外信号的还原,实现此次遥控操作.

2 硬件电路设计

2.1 主控制电路设计

主控制电路(图2)主要以STM32系列STM32F107VB(LQFP100)器件为载体,通过uClinux Cortex-M3处理器平台,运用C语言设计等精度测量载波频率、红外信号解调、红外编码脉宽测量和红外发送调制逻辑电路,以实现载波的精确测量、红外信号解调、脉宽测量和调制等功能.复位电路采用专用看门狗芯片CAT1025以避免电路的死循环,同时也可以通过手动按下复位键使系统重新启动.主控电路时钟频率通过PLL倍频到64 MHz.STM32芯片内部具有大容量的FLASH和SRAM,所以学习到的红外编码数据利用内部资源作储存器,不必在硬件上增加额外的FLASH存储芯片和SRAM芯片,降低了成本.

图2 主控制电路

2.2 外围硬件电路设计

2.2.1 按键与指示电路 结合STM32多I/O口的优势,本设计采用独立按键方式.当按键按下时,STM32对应的I/O口会检测到低电平,按键弹起时,STM32对应的I/O口会检测到高电平,从而STM32实现按键对应的操作.这样设计简化了软件程序,多按键操作时也不会相互不冲突.对于指示电路,采用多个多色的发光二极管组合的形式来指示不同的状态或控制不同的家用电器.当其中的1个指示灯以指定颜色闪烁时,表示正在学习对应的家电遥控器或发送对应的家电遥控信号,显示非常的直观,同时节约了“指示”成本.

图3 红外发送和接收电路

2.2.2 红外接收和发送电路 红外发射、接受头采用的是集成对管.电路采用的是传统的红外发射接受电路.整个电路都是以常用的三极管(9014)、电阻、电容和红外对管(红外二级管)组成,通过简单的信号过滤,直接输入到STM32的I/O上.信号的处理工作全部由资源丰富的STM32来处理,利用内部资源的逻辑电路结合软件对信号进行调制与解调,来实现对红外信号的发送与接收(图3).

3 软件设计

当系统上电后进入等待状态.当检测到学习键按下时候,系统进入学习状态.在学习过程中,ARMCORTEX-M3处理器对按键与信号进行多次检测与测量,取多次测量结果,测量完成后,对测量结果进行分析取中间值,作为该功能键的数据信号,并储存到指定的储存区域,完成本次学习过程(图4).还原信号时,调用储存器内相对应的数据,处理器写入发送调制控制字,发送完成后返回等待状态,等待下一次发送.发送信号流程如图5所示.

图4 遥控器学习流程

图5 遥控器发送信号流程

4 结语

实验表明,该嵌入式遥控器解决了传统单片机因时钟频率低而无法对载波频率进行准确测量的问题,实现了对任何一款普通遥控器的按键编码学习,并且能学习多个遥控器,使用方便,完全具备自学习功能,从而实现了对多个红外遥控装置的统一管理.

[1] 陈天水,秦 文.基于ATmega128单片机的学习型红外遥控器设计[J].微型机与应用,2011(30):26-28.

[2] 韦禄民,卢丹萍,卢勇威.基于ATmega16的万能型遥控器设计[J].低压电器,2009(8):23-26.

[3] 陈祖爵,王建毅.智能型红外遥控器的设计[J].微计算机信息,2008,24(2):305-307.

[4] 徐 志,何明华.一类基于软件载波的学习型遥控器的设计与实现[J].现代电子技术,2009(6):36-38.

[5] 梅运华.基于uClinux的无线监控终端的设计与实现[J].仪表技术与传感器,2009(2):56-58.

Design of Embedded Remote Controller Based on STM32

LI He-ping
(Loudi Vocational &Technical College,Loudi 417000,Hunan China)

This paper proposes a solution for a learning-oriented remote controller based on uClinux system and with low consumption and high efficiency.The working principle of the system and the design of the hardware and software are illustrated.This remote controller solves the bottleneck that because of the SCM’s low frequency of clock,it can’t measure the carrier frequency,realizes the key coding learning of any common remote control,and really achieves the learning function of a learning-oriented remote controller.

uClinux;STM32;remote controller;ARM-CORTEX-M3

book=66,ebook=158

TP368.1

A

10.3969/j.issn.1007-2985.2012.04.014

(责任编辑 陈炳权)

1007-2985(2012)04-0066-03

2012-04-11

湖南省科技计划资助项目(2011SK3069)

李和平(1971-),男,湖南涟源人,娄底职业技术学院副教授,高级技师,硕士,主要从事嵌入式系统及其应用研究.

猜你喜欢
遥控器按键学习型
我是“糊涂虫”
基于有限状态机的按键检测程序设计
时间遥控器
爸妈有个“遥控器”
行走的飞行遥控器
做学习型父母 和孩子共成长
一种多方向导光按键结构设计
建设学习型党组织的实践与思考
创建学习型教师团队
按键的多种状态检测及消抖处理方法