基于STM32万能学习型红外遥控器_第1页
基于STM32万能学习型红外遥控器_第2页
基于STM32万能学习型红外遥控器_第3页
基于STM32万能学习型红外遥控器_第4页
基于STM32万能学习型红外遥控器_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

福 建 师 范 大 学 应 用 科 技 学 院学 生 论 文论文题目:基于STM32万能学习型红外遥控器 指导教师: 吴允平 学 号: 120352010037 姓 名: 李伟雄 年 级: 2010 级 专 业: 电子信息工程 2014 年 4 月 20 日基于STM32万能学习型红外遥控器福建师范大学应用科技学院 电子信息工程专业120352010037 李伟雄 指导老师 吴允平【摘要】红外遥控技术在目前市场上众多应用领域得到了较为广泛的运用。红外遥控技术现已广泛的应用于在家用智能化家电的领域和工业化控制方面。本系统设计采用嵌入式主控芯片来设计万能学习型红外遥控器,采用ARM Cortex-M3内核的STM32系列的芯片为核心部分,结合红外发射、接收模块电路、信号调制电路,独立键盘构成本系统。从红外的发射与接收两个方面详细地介绍了红外无线传输原理,红外信号的编码解析、信号调制、信号发射与接收、解调与解码的原理。本系统实现对不同编码方式(PWMPPM)的红外信号的捕捉,解码、再生原红外信号,载波并发送红外信号,实现自学习型红外遥控器。本系统所需功能的实现应用到多种电子产品研发技术,其中主要包含C语言高级语言编程技术、单片机开发应用技术和电子线路板设计技术等相关电子应用技术。综合多种设计方案考量及其各个方面的因素,最终决定采用高性能、低成本、低功耗的ARM Cortex-M3内核的嵌入式芯片为系统的核心STM32主控芯片来设计,真正实现能对各种红外遥控信号进行捕捉和再生,真正实现万能学习型红外遥控器。 【关键词】STM32;红外遥控;C语言;智能;红外解码;红外编码;Learning infrared remote controlScience and Technology Practising College Fujian Normal UniversityElectronic Information Engineering 120352010037 Li Weixiong Tutor: Wu YunpingAbstractInfrared remote control technology on the market at present many application fields has been widely used.Infrared remote control technology has been widely applied in the field of intelligent household appliances and industrial control.This system design USES embedded master control chip to design the universal learning infrared remote control, USES the ARM architecture (M3 STM32 series chip as the core part of the kernel, combined with infrared emission and receiving module circuit, signal modulation circuit, keyboard constitute the system independently.From two aspects of the emission and receiving of infrared in detail introduces the principle of infrared wireless transmission, infrared signal code parsing, modulation, signal transmitting and receiving, signal demodulation and decoding principle.This system realize the different encoding (PWM parts per million (PPM) of infrared signal capture, decoding, regeneration of the infrared signal, the carrier and send the infrared signal, realize self learning infrared remote control.The realization of the function of this system needed to apply to a variety of electronic products research and development technology, which mainly contains the C language programming in a high-level language technology, single-chip computer application technology and electronic circuit board design techniques and related electronic application technology.Integrated a variety of design considerations and the various aspects of factors, finally decided to adopt high performance, low cost, low power consumption of the ARM architecture (M3 the kernel of the embedded chip for the system at the core of the STM32 master control chip to design, realize to capture and various kinds of infrared remote control signal regeneration, truly universal learning infrared remote control.Key Words STM32;Infrared remote control;c language;Infrared decoding;Infrared remote coding;目 录1概述31.1设计背景31.2设计目的41.3设计要求41.3设计方案选型41.4.1方案一:采用单片机(AT89C51)设计学习型红外遥控器41.4.2方案二:用STM32F103C8嵌入式芯片其红外发射接收模块电路构成学习型红外遥控器51.4.3方案的比较和选择52系统硬件设计62.1系统的总体设计62.2 STM32F103C8芯片介绍62.3 主要元器件介绍82.3.2 红外一体化接收头VS1838B82.4系统各模块介绍92.4.1电源电路92.4.2复位电路102.4.3时钟电路102.4.4下载电路112.4.5 独立键盘电路112.4.6 红外发射电路122.4.7 红外接收电路133软件部分设计133.1 Keil uVision4 集成开发环境介绍133.2软件总架构143.2.1系统主程序流程图143.2.2主程序程序代码153.2.3 红外接收模块流程图163.2.4红外接收模块程序代码173.2.5 红外发射模块流程图183.2.6红外发射模块程序代码184总结195致谢19参考文献19附录1 系统原理图20附录2 系统PCB图21 1概述1.1设计背景红外遥控器是一种应用较为广泛的遥控。它具有功耗低,体积小,成本低廉等特点。在目前的家用电器应用领域中,大部分的智能电器都是使用红外遥控器来操作控制家用电器设备,红外遥控器的应用可以说是无处不在1。但是随着科技的发展,形色各异的智能家电出现在人们的日常生活中,致使遥控器的种类越来越多。据调查数据表明,每户居民家中至少有3个以上的遥控器,而在这些遥控器中,有极大部分的遥控器是属于红外遥控器。然而随着经济的快速增长,智能家用电器越来越多,各式各样遥控器的数量也随之增长,红外遥控器的数量也在不断增长,各种不便也随之而来。人们常常会浪费过多时间来寻找控制各种各样家用智能电器遥控器。为了解决人们同时使用众多遥控器的烦恼,于是越来越多的自学习型遥控器也就诞生了。不过现在市场上的红外遥控器,基于成本的考量,绝大部分都是采用455KHz的陶振2来驱动,选择以12分频系数,其载波频率约为38KHz,此设计方法也使学习型遥控器的设计变得更加简单。但是现在市面上许多常见的遥控器大多都只能控制几种产品,并不是真正实现“万能”红外遥控器3功能。本系统采用STM32F103C8作为主控芯片,以多个发光二极管做为指示灯,分别用来提示系统工作的模式、红外信号输入输出指示及其电源指示,以独立键盘作为系统操作的键盘,高可靠性的VS1838B红外一体化接收头组成的红外接收模块和红外发射管组成的红外发射模块等构成。不仅能实现一个遥控器控制多个智能家电,真正实现万能遥控的功能,而且系统具有性能高,功耗低,成本价低等优势。1.2设计目的红外通信技术是利用红外线信号来传输数据的,红外通信技术更多的是应用与短距离无线传输的领域中,是一种高可靠、低功耗的无线传输技术。红外通信无需用实体连接线路,并且简单易用、实现成本低,而且从功率方面来考量,相对于其他无线遥控器来说,红外传输它的功耗低于其他无线遥控,因此现已广泛应用在微型的移动设备间的数据交换和家用电器设备的控制。例如智能电视、空调、智能家电、电动窗帘等。红外技术现已广泛应用于各种智能家用电器和形色各异的娱乐设施中,所以也突出了万能学习型遥控器设计的重要性4。但是由于红外遥控领域在全球并无一个统一通信协议标准,在不同地区,不同公司采用的编码格式也都不一样。因此,智能化学习型万能遥控器的产品也倍受人们的喜好,青睐。本设计首先对红外线遥控器编码原理进行了全面的分析,并结合市面上出售的随着智能家电的增长,红外遥控设备也越来越多,因此也决定了学习型遥控器的重大意义。1.3设计要求设计一个万能学习型遥控器,其具体设计指标要求如下: 用红外发射管作为系统的红外发射模块。用按键来切换学习型红外遥控的学习模式与非学习模式。当用户操作进入非学习模式下是,通过按下发射信号的按钮来控制红外编码信号的发射。当用户按下学习键,系统处于学习模式,此时将被学习的红外遥控器对准红外接收头,按下被学习遥控器的按键发射红外信号,系统完成红外编码的捕捉和记录。当学习型遥控器处于学习模式时,再按学习键退出学习模式,进入非学习模式状态。在非学习模式下按下红外发射键,还原红外编码并发送红外信号,实现控制其红外遥控的智能家电。在此硬件设计时,要尽力做到硬件模块简单方便、性能稳定且易于实现,促使整个系统电路简化。软件设计流程清晰,且软件程序思维清晰,要做到以最为简单的程序实现系统所需功能。1.4设计方案选型1.4.1方案一:采用单片机(AT89C51)设计学习型红外遥控器学习型红外遥控器采用单片机(AT89C51)、一体化红外接收头、红外发射管、红外接收发射驱动电路、串行I2C总线的EEPROM(可擦写编程存储器)24c02及其独立键盘组成学习型遥控器5的控制电路。通过按键来切换学习模式、非学习模式、控制发射红外遥控信号。切换至学习模式状态时,将红外信号捕捉并记录到单片机RAM,再存储到存储器。发射红外信号时,从EEPROM取出记录的红外信号数据,再由单片机(AT89C51)定时器产生38KHz频率的载波信号6,通过红外发射管发射出红外信号。1.4.2方案二:用STM32F103C8嵌入式芯片其红外发射接收模块电路构成学习型红外遥控器STM32系列芯片具有低成本,功耗低,芯片内部资源丰富、高性能等优点。STM32F103C8芯片是ARM Cortex-M3内核的工作频率最高可达72MHz,芯片内部集成了高速嵌入式存储器(高达20KByte的SRAM存储器,和128KByte的FLASH存储器)。STM32功能强大,本方案采用它作为主控芯片,红外接收一体头7、红外发射管组成的红外发射接收模块、独立式键盘和复位电路组成的本系统。通过此硬件平台并结合c语言编程使本系统实现所需功能。1.4.3方案的比较和选择方案一,以单片机(AT89C51)为主控搭建硬件平台系统,所需外围芯片和元器件较为繁多,成本较高。实现所需功能的原理和方法也较为复杂,需有单片机产生38KHz的载波信号,使得单片机的负荷繁重,同时单片机的主板低,捕捉红外信号时由于单片机主频低,误差较大。该方案成本高,编程算法和电路搭建较为复杂,可靠性和后期的扩展性低,所以方案一不适合该设计。方案二,采用ARM架构ARM Cortex-M3的STM32系列的芯片STM32F103C8为该系统的主控,主控内部集成了丰富的资源,且功能强大,搭建后可用ARM内核芯片推出的仿真器J-Link进行在线联调,使得编程更为方便,大大降低了系统软件编程的难度,而且具有成本低、可扩展性强、功耗低、高性能7等特点。显而易见选用方案二对系统的后期扩展较为有益,故本设计选用方案二作为系统的设计方案。2系统硬件设计2.1系统的总体设计本系统设计的学习型红外遥控器模块设计框图如图2-1所示,采用STM32F103C8为系统主控芯片,电源电路、复位电路、时钟电路、按键控制电路、键盘输入电路、VS1838B红外一体化接收头和红外接收头搭建的红外发射接收电路8所组成。整机供电采用5号电池供电,运用按键来操作系统,采用红外一体化接收头来捕捉红外信号,通过红外发射管发射所记录的红外信号。系统框图如下图2-1所示:图2-1 系统硬件框图2.2 STM32F103C8芯片介绍图2-2 STM32F103C8主控芯片(1) STM32F103C8是ARM 32-Bit Cortex-M3内核的处理器,它的主频最高可达72M,内部集成了64KByte的FLASH,20KBye的静态随机存储器SRAM,内嵌出厂已经调校好的8MHz的RC振荡器和32KHz带校准功能的RC振荡器。内部嵌有RTC时钟,两个12位的数模转换器。拥有7路支持定时器、SPI、ADC、USART和IIC的DMA通道。两种单线调试接口:JTAG和SWD接口和多路外部中断通道。7个定时器,16位定时器3个,4个可用于输出捕获和输入比较的PWM通道。芯片还内嵌了两个独立的、窗口的看门狗定时器,2个IIC通信接口,9个通信接口,两个SPI通信IO口,3个USART(串口)接口,CAN总线通信接口和USB2.0通信口。STM32F103C8是一种高效的微控制器,内嵌资源多,体积小,稳定性高,而且成本低,在目前的嵌入式系统中得到了广泛的应用。(2) STM32F103C8增强型系列MCU,工作频率可达到72MHz,其内核使用的是高可靠性,高性能的ARM Cortex-M3 的RISC32位的内核9。STM32资源丰富,包含两个ADC12位精度的采集数据通道、1 个PWM Timer和3 个通用的16位Timer定时器,还包含标准、先进的通信总线接口:拥有3 个标准的USART接口、2 个标准I2C 接口和高速通信总线SPI接口、一个通用型USB接口和一个CAN(控制局域网络)接口。芯片内部有高速存储器( 高达128KByte的闪存和20KByte的SRAM),32个增强型I/O 接口和两条高速APB总线外设。STM32F103C8芯片供电电压为2.0V3.6V,正常工作温度在-40C 至+85C 温度之间,其工作温度扩展范围在-40C 至+105C之间。主控芯片STM32的省电模式保证低功耗应用的需求。2.3 主要元器件介绍2.3.1 红外发射管红外信号发射管原理与红外发光二极管类似,也称为红外发射二极管,但是红外发射管发出的光信号是不可见光,这是与发光二极管的区别等,它属于二极管类型的器件。它能将电信号转换成不可见的红外光并发射红外信号出去的发光元器件。红外发射管的原理和结构与普通的发光二极管相似。红外发射管高效率构成材料常用有由砷化镓(GaAs)、砷铝化镓10(GaAlAs)等制作成PN结,再外加正向偏压往PN结导入电路并激发红外光信号11。红外发射二极管发射的波长,与其本身的材质有关。如以砷化镓材质制成的红外发射二极管,其所发出的红外光信号光波长一般在 940950 nm范围之间。红外线发射管的发射的光信号也是随电流变化的比例而定。同时,红外光信号也随温度变化而产生影响,当温度下降时,红外发射光信号反而增强;而温度上升时,红外光信号则会减弱。因热损耗原因,元件上的温度会随之上升,发射管的发光效率就会受到相应的影响而降低。红外发射二极管如图2-3-1所示:图2-3-1 红外发射二极管2.3.2 红外一体化接收头VS1838B目前市面上通常是用红外一体化接收头对红外遥控信号进行解调。一体化红外接收头主要特点:体积小、灵敏度高、无需多加外接元件,而且抗干扰性强,使用十分的方便。技术参数如下: 工作电压:2.75.5 V 工作电流:大于0.6 mA 工作温度:-25+85()摄氏度 储存温度:-40+125()摄氏度 静态电流:在无信号输入的条件性,静态电流处于0.10.5mA之间 接收距离:不少于2023米 接收角度:1/2 +/-35 Deg 载波频率:38KHz图2-3-22.4系统各模块介绍2.4.1电源电路图2-4-1 电源模块本设计电路采用LM1117稳压芯片将外接5V电源转换成3.3V,然后将转换得到的电源给分别给单片机和红外模块供电。LM1117是一个低压差三端可调稳压集成电路,其压差在1.2v输出,它有电流限制和热保护的作用,输出端需要一个22UF的电容来维持稳定性。它的特性有以下4点:(1) 电流限制和热保护作用;(2) 输出电流可达800mA;(3) 线性天调整率为0.2%;(4) 负载调整率为0.4%;LM1117的实物图如下:2.4.2复位电路图2-4-2 复位电路模块2.4.3时钟电路图2-4-3 时钟电路模块2.4.4下载电路下载电路模块采用SWD接口方式下载,另SWD方式下载最少需要两根线(SWDIO和SWCLK)才能下载并调试代码。SWD方式下载在产品设计过程中更为方便,因为SWD可实现在线联调功能,而且下载速度更快,在研发设计时建议采用SWD方式下载。图2-4-4 下载电路2.4.5 独立键盘电路该设计的键盘模块电路采用独立键盘的方式排列。因为该设计主要是对红外遥控学习功能的验证,所以其按键应用的个数也相对较少,所以系统最后决定采用独立键盘的方式来设计该系统的按键12。图2-4-5 独立键盘模块2.4.6 红外发射电路红外发射模块电路采用红外发光二极管来发射红外遥控信号。红外信号发射的电路原理如图2-4-6所示。发射红外信号时需由STM32F103C8芯片内部的16定时器产生一个频率为38KHz载波信号作为红外信号发射时必不可少的红外载波信号。红外发射信号为高电平时启动定时器,产生载波信号,当为低电平时,关闭定时器13。从而实现红外信号的的还原、再生。红外编码信号是先对38KHz左右的红外载波信号进行调制,而不是直接采用未调制红外光信号所产生的红外线信号来发射的14。用其载波信号来驱动红外发射二极管发光,即采用此调制的技术的主要好处是:能使红外发射管的脉冲电流很大而平均的直流电流比较小,发射管管芯不至于过热并且所产生的信号有利于接收端解调出有效的信号。提高了其信噪比和红外信号传输距离。红外遥控发射电路模块如图2-4-6所示:图2-4-6 红外发射模块2.4.7 红外接收电路红外接收模块采用的是红外接收一体头VS1838B,其频率为37.90KHz。图2-4-7 红外接收模块3软件部分设计3.1 Keil uVision4 集成开发环境介绍Keil uVision4是ARM公司在原有的的Keil的开发环境下再集成RealView MDK等一些开发工具,与2011年3月发布了功能更为强大,性能较为稳定功能更为完善的版本Keil uVision4。Keil uVision4强大的编译功能和灵活的调试工具实现与ARM器件的完美融合。KEIL uVision4采用标准C编译器ARM系列等微控制器的嵌入式软件开发提供了人性化的C语言编译环境,同时保留了汇编代码高效,快速的特点15。随着Keil uVision4编译器功能的不断完善,KEIL uVision4集成了越来越多的工具。其集成了开发环境包含:实时操作系统,汇编器,调试器,项目管理器,编译器16。Keil uVision4为ARM内核ARM7、ARM9、Cortex-M、Cortex-R4等微处理器设备提供了一个完整的软件开发环境。Keil uVision4 开发环境界面如下图所示。图3-1 Keil uVision4开发软件界面3.2软件总架构该系统采用的编程语言为C语言,C语言的功能强大,执行效率高,且可移植性高,所以采用C语言编写该系统的软件。该系统的软件主要划分为四个模块:红外接收模块、红外发射模块、独立键盘驱动模块、滴答定时器驱动模块等四个主要的软件模块代码。3.2.1系统主程序流程图图3-2-1 系统上电后开始工作,首先对外设进行初始化配置,并实时监测是否有按键操作,若有按键操作则响应相应的事件。3.2.2主程序程序代码/*Copyright (c)* 福建师范大学*-* 文件: main.c* 作者: Liwx* 日期: 2014.03.08* 版本: v1.0 *-* 版本信息:NONE* 文件信息:主函数实现* 版本特征:NONE*-*/int main( void )Device_Init( );/ 设备初始化while( 1 )switch( ReadKey( ) )case STUDYKEY:IR_Rec( ) ;/ 接收红外信号,记录高低电平时间break ;case SENDKEY:IrSend( TimeBuf_L , IRBUFSIZE );/ 发送红外编码break ;default:break ; P26 = P26 ;Delay(0xffff);3.2.3 红外接收模块流程图 图3-2-3红外接收程序主要实现对红外信号的捕捉和记录。3.2.4红外接收模块程序代码/* 函数: IR_Rec, 红外学习(轮循)*-* 参数: NONE* 返回: NONE* 作者: Liwx*/void IR_Rec( void )Ir_u8 i ;/-/ 等待(遥控或按键)按键按下NEXT:if ( WaitKey_Down( ) ) return ;i = 0;while(1)P21 = P21 ; / 闪烁 用户可修改该GPIO/-/ 记录低电平时间 (正常情况下不会return)if ( Gettime_Low(i) ) return ;/-/ 记录高电平时间 (读取完按键,goto到下一个按键)if ( GetTime_High(i) ) goto NEXT ;/-/ 指针下移i+ ; /-/ 避免指针溢出 if( i = IRBUFSIZE-1 ) i = IRBUFSIZE-1 ; / 消除指针溢出,避免数据错误Time = 0;3.2.5 红外发射模块流程图图3-2-5红外信号发射时,低电平信号需加上由STM32F103C8主控内部PWM产生的38KHz的载波信号才能发射红外低电平信号。3.2.6红外发射模块程序代码/* 函数: IrSend, 发送数据*-* 参数: 延时时间(us)* 返回: NONE* 作者: Liwx*/void IrSend( Ir_u16 buf , Ir_u8 len )Ir_u8 i ;for ( i=0 ;ilen ; i+ )Ir38KhzOpen( ); / 开启载波Delay_us(bufi);/ 低电平载波Ir38KhzClose( );/ 关闭载波Delay_us( TimeBuf_Hi );/ 延时(高电平时间)4总结该系统经过软硬件开发平台搭建、原理图绘制、代码编写、PCB布线、焊接到软硬件调试整个设计过程终于能够按照设计的要求实现所需的功能。本次毕业设计万能学习型红外遥控器的整个设计和功能实现的过程对本人来说是一个比较艰辛的过程。从论文的选题到设计方案调研和选择,软硬件开发环境的搭建以及软件硬件的设计等都是有自己去研究,琢磨。因为红外遥控器的应用范围广泛,日常生活红外遥控应用无处不在,所以在选题和整个设计过程需结合实际应用需求,才能真正的将本设计运用到日常生活中。在整个设计的过程中,遇到了许许多多的问题,有时候因一些小细节的疏忽,导致系统的功能未能实现。所以,我花了好几个月的时间和精力在设计和调试系统。整个过程中虽然遇到了重重困难,但是同时也在提高自己的技术和实践能力,学会了思考每个设计的环节,我也从中学习到不少的知识。5致谢经过几个月实践、调研、琢磨和努力,最终终于把系统预期所需的功能都基本上实现了。在这期间,我得到了吴允平老师的精心指导和同学的帮助,是我顺利的完成毕业论文和毕业设计。因为这是大学期间第一次写毕业论文也是最后一次。在这过程中,虽然有很多不懂

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论