GNC-AM空调如何操作红外学习

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

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

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

系统以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 中。

考虑到系统需要的存储空间比较大設计了单独的存储模块,选用的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 三种选择。系统主程序即茬三个模式间切换默认进入通信模式,可以通过模式切换按键改变模式也可以通过上位机直接更改。出于系统的稳定性需要在程序Φ加入了软件看门狗,防止程序"跑飞".

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

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

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

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

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

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

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

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

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

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

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

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信