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 的晶振,晶振电路接近主控芯片,尽量削减输入噪声。复位电路选用低电平复位。
图1 体系结构图
矩阵键盘选用3*3 的规划,设置了8 个功用键,便运用户进行手动操作。其间独自规划了一颗形式切换键,可在学习、发射、通讯形式中切换。为了完成学习功用, 红外接纳模块运用了一体化接纳头NB1838,其光电检测和前置扩大器集成于同一封装,中心频率为37.9KHz. NB1838 的环氧树脂封装结构为其供给了一个特别的红外滤光器,对天然光和电场搅扰有很强的防护性。NB1838 对接纳到的红外信号进行扩大、检波、整形,并调制出红外编码,得到TTL 波形,反相后输入单片机,再由单片机进行进一步的处理,存储到EEPROM 中,接纳电路如图2 所示。
图2 接纳硬件电路图。
考虑到体系需求的存储空间比较大,规划了独自的存储模块,选用的EEPROM 是AT24C64,它供给了8KB 的容量,经过I%&&&&&% 协议与Atmega16 TWI 接口通讯,将学习到的红外指令存储在此,掉电不丢掉。
在发射形式下,体系从EEPROM 读取相应数据信息,运用三极管9013 组成的扩大电路,经过大功率红外发射管将调制好的红外信号发射出去。发射电路如图3所示,非发送状况时,三极管作业在截止状况,红外发射管不作业,有利于降低功耗以及延伸红外发射管的运用寿命。经实践测验,发射距离可到达10m 左右。
图3 发射硬件电路图。
通讯形式中,体系经过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 所示。
图4 学习程序流程图。
3.1.2 紧缩存储
因为不考虑详细的码型数据含义,只记载脉冲的宽度,体系的学习功用通用性得到了进步,但这种办法学习到的数据量很大,对存储的要求就变得很高。
虽然体系针对存储的大容量需求规划了独自的存储模块,但考虑到应在不添加硬件开支的情况下确保满意的存储容量,以及满意未来扩展的需求,在进行数据存储时,采取了数据紧缩技能。