基于EFM32GG230单片机的红外无线自学习系统
捕获的脉冲数达到了5000多个,将信号和载波分离解调后实际波形达到了300多个,如果直接保存,将大大浪费FLASH的宝贵空间。相关的压缩代码如下所示:
由以上代码可以看出,本系统采用结构体来存储一个码的相关信息,包括该码波形的波形类型个数、各种波形的长度、数据长度、压缩后的数据以及学习标志。
经过仔细观察分析,发现现有的绝大部分遥控器的编码都有一个共性,就是其中整段码中单个脉冲的类型为有限个数,除了开头和结尾部分存在部分不同的波形,其他中间部分的波形一般为两三种,加上几种比较少见的波形,整体而看,波形个数为5或6个。
为了尽可能地适应市面上的遥控器类型,将波形总数设置为10种,基本上可以涵盖现有市面上任何一种遥控器上单个按键的码值波形类型。分别用0~9来表示这10种波形,然后再利用一个结构图数组来存储相应波形的高低电平长度。
这样,就将原先较长的高低电平长度存储值变成了脉冲类型号的存储,需要存储的数据长度大大压缩,本来需要16位甚至更多的位来存储一个脉冲,现在只需要4位即可存下一个脉冲类型,压缩率达到了75%。
发射相关码时,只需根据脉冲号发射相应脉冲的高低电平。经试验,此压缩方法转发成功率极高,几乎0失误,实现完美压缩、自如发射。
结语
本系统不必考虑需要学习的编码到底是什么协议标准,也不用考虑无线码是433还是315,其具有自适应判断能力,能够自动识别码型。不采用使用高低电平宽度存储数据的方法,避免过度地浪费宝贵的内存空间,而利用波形类型号存储,存储时所用空间会小得多,大大降低了硬件成本,提高了空间利用率,简化了电路。
本系统在实际应用中,能够很好地控制各种设备,一次学习成功率和转发成功率都很高,无线、红外转发切换流畅,获得了满意的效果,具有广阔的市场前景。
EFM32GG230 低功耗 自学习 红外 无线 数据压缩 遥控 相关文章:
- 基于μC/OS-II嵌入式系统的低功耗开发(07-08)
- 数字信号处理(DSP)应用系统中的低功耗设计(05-02)
- AVR单片机介绍(07-09)
- 基于WinCE5.0的嵌入式设备休眠唤醒技术研究(09-27)
- DSP电源系统的低功耗设计(11-13)
- 基于DSP的低功耗接收机单边带解调方法(01-10)