1 引言
红外遥控是目前常用的一种通信和遥控方法,有体积小、功耗低、功能强、成本低等特点,可广泛应用于各种家电产品、金融和商用设施以及工业设备中。但目前各种产品的红外遥控不能互相兼容,给实际应用带来不便。因此,这里给出了一种基于凌阳SPCE061A单片机的通用学习型红外遥控设计系统,能够学习各种红外遥控指令,较好地解决了产品兼容问题。
2 红外遥控原理
通用红外遥控系统由发射和接收两大模块组成,使用编/解码专用集成电路控制操作。发射部分包括键盘矩阵、编码调制、LED红外发送器;而接收部分包括光电转换放大器、解调、解码电路。
当按下遥控器按键时,其内部信号发射器周期性地发出同一种脉宽调制的二进制串行码,由红外发射管输出。红外遥控器发射的遥控编码脉冲由前导码、系统码、功能码、功能码的反码组成。这些编码经载波脉宽调制后发射,经常使用的是38 kHz载波。遥控接收完成对遥控信号的接收、放大、检波、整形、解调出遥控编码脉冲,然后通过微控制器实现相应的控制功能。
3 系统硬件电路设计
该学习型红外遥控器能记忆16个不同的红外指令,这些指令存在片外存储器中。当其学习时,微处理器解码后,将数据存入片外存储器中,学习指示灯亮。当遥控时,通过按键选择对应的控制功能,微处理器调用相应功能的红外编码,遥控指示灯亮。该系统设计是利用凌阳SPCE061A单片机强大的语音功能,可在不同模式下进行语音提醒。其系统硬件设计电路原理框图如图1所示。
3.1 凌阳SPCE061A单片机
该系统设计采用凌阳SPCE061A单片机作为处理器。SPCE061A是以μ'nSPTM 16位微控制器及信号处理器为内核的16位单片机,采用模块式集成结构,片内集成了2 KBRAM、32 KB Flash、A/D转换器、D/A转换器、并行I/O接口等。其主要性能为:单片机SPCE061 A(晶振频率32.768 KHz,Flash 32 KB,3.3 V供电);32位可编程并行I/O接口;2个16位可编程定时/计数器,自动预置计数初值;具有运行/睡眠模式下看门狗维护功能。
3.2 红外发射电路
红外发射是由编码后的串行数据通过载波脉冲幅度调制而产生,发射电路中采用常用的载频38 kHz遥控器。调制方波可由16位可编程定时器对TimerA脉宽调制输出引脚IOB8周期取反得到,而脉冲信号则由双向I/O接口IOB6输出。红外发射电路如图2所示。
3.3 红外接收电路
红外接收电路用于接收红外信号并解调遥控器二进制控制脉冲信号。该红外接收电路采用HS0038。HS0038集光电转换、解调和放大于一体,只需少数外接元件就能实现从红外接收到输出与TTL电平兼容的所有工作。HS0038输出高电平,当输人为遥控信号时,HS0038则输出高低电平脉冲。接收的遥控码是由一个低电平与一个高电平构成,不同脉宽高低电平的组合组成不同控制码。此设计将解调的信号直接输入外部中断源EXTI引脚IOB2,通过内部中断服务程序实现脉冲的计数和存储。红外接收电路如图3所示。
3.4 数据存储电路
此设计选用24LC16实现数据存储功能。24LC16是具有I2C接口的EEPROM,其容量为2 048×8位,分为8页,每页256字节,其较大的存储空间和控制方式能够满足存储及性能要求。将凌阳SPCE061A的串行数据发射引脚(IOB10)与接收引脚(IOB7)相连,然后再与24LC16的串行I/O引脚SDA相连。由系统程序软件提供这两引脚的串行时钟,即可完成数据的接收和发送。
4 系统软件设计
4.1 初始化程序
初始化程序的任务是清除存储脉宽数据单元、关闭学习及发射指示灯,关闭遥控输出口,设置相应定时器模式,设置中断等。
4.2 遥控码读入程序
遥控码的学习处理程序主要是:将原控制器发送的脉冲依次存人存储单元。其偶数地址单元存储高电平脉宽数据,奇数地址单元存储低电平脉宽数据。数据均存入外存储器24LC16中。
读遥控码读人程序,通过大量、不同类型的遥控码波形实验测试分析,遥控码的帧间歇位宽均大于10 ms,起始位码宽为100μs~20 ms,编码位为100μs~3.5 ms。为确保大部分遥控器学习成功,采用方法:
(1)读起始位法 由于起始位的码宽范围较大,因此技术单元采用单独的2字节,计数周期约15μs,按65 535×15μs计算,存储起始位脉宽为983 ms。当输入为高电平时,停止起始位计数,进入高电平计数。
(2)读遥控码法 采用1字节计数单元计数码宽(高电平或低电平),当电平跳变时计数结束,将数据存储到规定地址。在高电平码汁数时,当计数器值大于255(码宽大于3.825ms),则为结束帧间隔位,在相应存储单元写入数据0x00作为结束标志。其程序流程如图4所示。
4.3 遥控码发射程序
遥控码发射程序是将原存于存储单元的脉冲数据通过38 kHz方波调制,将存储的原始控制码和载波相与,即可发送遥控脉冲码。其程序流程如图5所示。
4.4 主程序
系统主程序在完成上电初始化后,端口按键查询。当确认有按键按下时,从外部存储器中调用相应的遥控编码将其发出。主程序流程如图6所示。
5 结语
实验证明,该学习型红外系统完全满足实验需要。在学习遥控信号时,综合分析了大量红外遥控码,具有一定的通用性。遥控码发射时不是采用硬件设计而是以软件方式产生载波,这样节约了硬件设备,简化了电路,有效实现红外遥控信号的接收和发射。此学习型红外遥控器已成功应用于多媒体教室、智能家居、家庭集中控制器等遥控设备,获得了满意效果。当然,由于目前遥控器信号尚未完全统一标准,利用红外学习技术并不能保证学习到所有电器设备的遥控器信号,这也是学习型红外今后的需要改进的方向。
[1]. SPCE061A datasheet https://www.dzsc.com/datasheet/SPCE061A_1082153.html.
[2]. TTL datasheet https://www.dzsc.com/datasheet/TTL_1174409.html.
[3]. 24LC16 datasheet https://www.dzsc.com/datasheet/24LC16_62586.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。