基于单片机的智能学习型红外空调遥控器
只发送一次、完整帧重复发送两次、先发 送一个完整帧,后重复发送帧头和一个脉冲。面对如此多样化的编码方式,如果区分每种编码的含义进行学习,学习的复杂度将会很高,并且通用性也会受到影响。 所以,为了避开各色码型的干扰,系统在学习时并不关心码型数据的实际意义,只记录脉冲的时间宽度。系统主要针对载波频率为38KHz(周期为26us)的 红外遥控器,利用变量IR_time记录接收到的脉冲宽度。学习程序流程如图4所示。
图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%.因此, 在存储时针对学习到的数据特点采取游程编码压缩,可以有效节约存储空间。
图5一组典型的空调数据帧。
Atmega16 单片机 芯片 EEPROM 红外 相关文章:
- 基于ATmega16的数控直流稳压电源设计(08-07)
- 单片机与串行AD转换器TLC0834的接口设计(01-22)
- 单收/单发RS-232接口芯片 ADM101E及其应用(01-25)
- 基于单片机的通用型智能充电器设计(01-06)
- 一种通信用高频开关型整流器监控系统的实现方案(02-13)
- 基于16位单片机的逆变电源系统的设计(05-26)