当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读] 为了解决空调遥控器不兼容问题,设计了一款基于Atmega16单片机的智能空调遥控器。该遥控器采用测量脉冲宽度的方法学习红外信号,同时使用游程编码算法对数据进行压缩后存储,

为了解决空调遥控器不兼容问题,设计了一款基于Atmega16单片机的智能空调遥控器。该遥控器采用测量脉冲宽度的方法学习红外信号,同时使用游程编码算法对数据进行压缩后存储,并利用单片机内部定时器PWM模式产生红外载波,成功实现了对红外遥控的学习与再现,并可通过上位机进行控制。经运行测试表明,该智能遥控器操作灵活,性能稳定,为智能遥控器设计提供了一种新方案。

1 引言

本文设计了一款针对空调设备的智能学习型红外遥控器,采用记录脉冲宽度的方法,成功实现了对多种红外空调遥控信号的学习与再现,真正实现了"万能"。本文在阐述了系统的总体结构及硬件设计的基础上,详细研究了系统学习,发送及通信功能的软件设计与实现。

2 系统总体结构与硬件设计

系统采用模块化设计,各模块通过接口电路与主控芯片相连。主要模块有:矩阵键盘,液晶显示,存储模块,红外发送模块,红外接收模块,RS232、RS485 通信模块,以及温度检测模块。系统结构图如图1 所示。

系统以Atmega16 单片机作为主控芯片,Atmega16具有16K 字节的系统内可编程Flash ,512 字节EEPROM,1K 字节SRAM,32 个通用I/O 口线,32 个通用工作寄存器,用于边界扫描的JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8 路10 位具有可选差分输入级可编程增益的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及六个可以通过软件进行选择的省电模式。该芯片功能强大,满足系统设计需要并提供了充分的扩展空间。主控芯片使用8MHz 的晶振,晶振电路靠近主控芯片,尽量减少输入噪声。复位电路采用低电平复位。

矩阵键盘采用3*3 的设计,设置了8 个功能键,方便用户进行手动操作。其中单独设计了一颗模式切换键,可在学习、发射、通信模式中切换。为了实现学习功能, 红外接收模块使用了一体化接收头NB1838,其光电检测和前置放大器集成于同一封装,中心频率为37.9KHz. NB1838 的环氧树脂封装结构为其提供了一个特殊的红外滤光器,对自然光和电场干扰有很强的防护性。NB1838 对接收到的红外信号进行放大、检波、整形,并调制出红外编码,得到TTL 波形,反相后输入单片机,再由单片机进行进一步的处理,存储到EEPROM 中,接收电路如图2 所示。

考虑到系统需要的存储空间比较大,设计了单独的存储模块,选用的EEPROM 是AT24C64,它提供了8KB 的容量,通过IIC 协议与Atmega16 TWI 接口通信,将学习到的红外指令存储在此,掉电不丢失。

在发射模式下,系统从EEPROM 读取相应数据信息,利用三极管9013 组成的放大电路,通过大功率红外发射管将调制好的红外信号发射出去。发射电路如图3所示,非发送状态时,三极管工作在截止状态,红外发射管不工作,有利于降低功耗以及延长红外发射管的使用寿命。经实际测试,发射距离可达到10m 左右。

通信模式中,系统通过RS232 电路与上位机通信,在与上位机通信时使用DS18B20 反馈温度信息,DS18B20 一线总线设计大大提高了系统的抗干扰性,独特而且经济。系统还增加了RS485 模块,便于组网,以实现对多个红外设备进行控制。RS485 在组网时只需要用一对双绞线将子设备的"A"、"B"端连接起来,这种接线方式为总线式拓扑结构,在同一总线上可挂接多个结点,连接方便。

为了增加设备的实用性,系统设计了两个电源方案,一个是直接接入5V 直流电源,一个是接入12V直流电源,然后通过L7805 构成的变压电路降压为5V使用。

3 系统软件设计与实现

系统程序主要分为三个部分:学习模式,发送模式以及通信模式。当第一次进入系统时,初始化设置设备地址,然后设置通信的波特率,提供1200、9600 以及19200 三种选择。系统主程序即在三个模式间切换,默认进入通信模式,可以通过模式切换按键改变模式,也可以通过上位机直接更改。出于系统的稳定性需要,在程序中加入了软件看门狗,防止程序"跑飞".

3.1 学习功能设计

3.1.1 学习模式

红外遥控器的码型多样,编码一般包括:帧头、系统码、操作码、同步码、帧间隔码、帧尾,且同步码与帧间隔码出现的位置不固定,因此码型格式灵活多变,很难区分各种码型的编码含义;各个红外遥控的编码长度不尽相同,发送方式也多种多样,最常用的有三种:完整帧只发送一次、完整帧重复发送两次、先发送一个完整帧,后重复发送帧头和一个脉冲。面对如此多样化的编码方式,如果区分每种编码的含义进行学习,学习的复杂度将会很高,并且通用性也会受到影响。所以,为了避开各色码型的干扰,系统在学习时并不关心码型数据的实际意义,只记录脉冲的时间宽度。系统主要针对载波频率为38KHz(周期为26us)的红外遥控器,利用变量IR_time 记录接收到的脉冲宽度。学习程序流程如图4 所示。

3.1.2 压缩存储

由于不考虑具体的码型数据意义,只记录脉冲的宽度,系统的学习功能通用性得到了提高,但这种方式学习到的数据量很大,对存储的要求就变得很高。

尽管系统针对存储的大容量需求设计了单独的存储模块,但考虑到应在不增加硬件开销的情况下保证足够的存储容量,以及满足未来扩展的需要,在进行数据存储时,采取了数据压缩技术。

从学习到的电平数据可以发现,无论数据是1 还是0,都有相同时长的电平出现,这符合游程编码的特点。游程编码是一种简单的非破坏性资料压缩法,其好处是加压缩和解压缩都非常快,其方法是计算连续出现的资料长度压缩之。比如:一张二值图像的数据为:

WWWWWWWWBWWWWBBBWWWWWWWBWWWWW

使用游程编码压缩可得:8W1B4W3B7W1B 5W.

可见,压缩效率极高,且可避免复杂的编码和解码运算。所以,在存储时,系统对学习到的数据进行游程编码压缩[7,8].例如,学习到的一组空调遥控器的数据为[157 153 23 53 … 23 53 23 180 156 152 23 53 …53 23],如图5 所示,对重复的电平数据采用游程编码压缩后,原本需要199 字节的空调遥控码,只需要106个字节即可存储,压缩率达53.27%.因此,在存储时针对学习到的数据特点采取游程编码压缩,可以有效节约存储空间。

3.2 发射功能设计

现有的红外遥控器很多都是采用外部电路产生载波信号,例如使用NEC555 振荡器产生载波信号。为了减少硬件开销,本系统使用单片机内部的定时器产生载波。系统使用的是Atmega16 单片机,其定时器功能强大,具有普通模式、CTC 模式、快速PWM 模式、相位修正PWM 模式等工作模式,系统利用定时器1,使其工作在快速PWM 模式,产生占空比为1:3 的38KHz 的PWM 波。当发送某条指令时,单片机从对应的EEPROM 中提取指令信息,然后调制到生成的载波上,再通过发射电路即可完成红外信号的发射。

3.3 通信功能设计

3.3.1 上位机通信

本遥控器除了能通过功能按键实现手动操作外,还可以通过上位机软件对遥控器进行控制。遥控器与上位机通过RS232 模块进行通信,首先配置上位机软件,确定串口号,选择与设备相同的波特率及主从设备地址,然后根据需要选择相应的指令,点击发送即可通过上位机对设备进行控制。由于本遥控器是基于空调遥控器进行研究的,在与上位机通信时,系统中的温度检测模块会上传实时温度,便于用户进行调整。图6 为上位机软件流程图。

3.3.2 组网控制

为了实现对多个设备的联网控制,还设计了RS485 模块。各子遥控器通过RS485 模块的"A"、"B"端连接在一起,组成控制网络,如图7 所示,其中一个作为主遥控器,与上位机通过RS232 模块进行串口通信。当上位机需要对某个子设备进行控制时,选择相应的子设备地址号,发送指令即可,主遥控器收到指令信息后,会将指令发给对应的子设备。与主遥控器相连的上位机PC 连接Internet,作为本地服务器,可实现远程控制。

用户登录远程客户端,经身份验证后与服务器建立连接,可发送指令给本地服务器,本地服务器再经过串口通信对遥控器进行相应操作。如果遥控器主机与上位机距离较远,RS232 不能满足通信需要,也可不使用遥控器主机,在上位机PC 上使用RS232-485 转接头,通过RS485 直接将遥控器网络与PC 机485 接口相连,利用上位机对遥控器网络直接进行控制。

4 结语

本文设计了一款智能空调遥控器。该系统采用只记录红外信号脉冲宽度,不考虑红外编码格式的方式,通过游程编码算法将红外信号压缩后保存到EEPROM 中,并直接利用主控芯片定时器的PWM 模式产生38KHz 的载波,节约了硬件成本,除手动操作外还可以通过上位机对遥控器进行控制,使用方便。

系统成功实现了对多种空调遥控器的学习与功能再现,操作灵活,性能稳定。本系统还可用于智能家居中,对不同的红外设备进行控制,也可用于远程网络控制,为智能家居及远程监控提供了一种实现方法。

0次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭