李敏 阮玮琪 周宇楠 俞逸菲
摘 要:设计了一种利用TF卡存储编码信息的学习型红外遥控器,通过软件解码技术测量遥控信号各个码位的脉冲宽度,将包含时间信息的编码信息直接存储到TF卡,发射时根据编码信息复现波形,达到提高兼容性的目的。通过对编码规律的分析,实现了编码信息的压缩存储,采用STM32单片机验证了设计,系统的通用性好,文件交互方便,具有广阔的发展前景。
关键词:TF存储卡;学习型红外遥控器;解码;编码信息存储
引言
现代家用电器和数码产品普遍配备了红外遥控器,一方面给用户带来方便,另一方面,与日俱增的遥控器也造成管理上的不便,无论从购置还是使用成本考虑,都是一种资源的浪费。为此,不少研究者致力于学习型红外遥控器的开发[1-3],将按键编码信息解码后存储至EEPROM存储器[4],采用适当的存储规范在一个遥控器上实现多个遥控器的功能,并能在不同功能遥控器之间自由切换。这一方案对于用户来说,方便了管理,节省了电池消耗,但由于编码文件交流的不便,并未节省遥控器的购置成本,用户需要通过产品的原配遥控器获取编码信息。对于厂商来说,仍有必要搭配产品原装遥控器捆绑销售,并未达到降低成本提高竞争力的目的。
文章提出一种基于TF卡存储技术的学习型遥控器,遥控器按键的编码信息既能通过原装遥控器的学习获得,也可以通过编码文件的直接拷贝实现,甚至可以对按键的布局和功能进行个性化的修改。这项技术一旦得到普及,原装遥控器将不再是必备的附件,厂商只需在网络发布遥控器的编码文件,用户下载编码文件至遥控器的存储卡即可,这对资源的节省是巨大的,同时方便的个性化修改功能也能提升用户的使用体验。
1 解码与存储
插卡式学习型遥控器普及之前,用户从现有遥控器复制编码信息将是一种常见的学习方式,因此遥控解码在一定时期内仍是必备的功能。遥控解码方式主要包括硬件解码和软件解码两种,前者需要针对确定的编码方式选择专用解码电路,在学习型遥控器上使用不能保证其兼容性。软件解码则易于设计为直接复制编码脉冲的方式工作,一体化红外接收头首先将频率为38KHz的间断脉冲串进行放大、检波和整形,结合微处理器的定时中断功能计数得到由电平及其时间序列构成的编码信息,并原封不动存储至存储卡,这一工作方式的优点是兼容性好,适用于学习型遥控器,缺点是所需存储空间较大,然而可通过遥控编码规律的分析对数据进行压缩[5]。本设计选用了第二种方案对编码信息进行解码并压缩后存储,发射时则读取相应存储位置的编码信息再经载波信号调制为38KHz间断脉冲串发射。
图1 常用红外遥控编码数据格式
目前应用中的红外遥控编码原理大同小异[6],如图1所示编码信号通常由引导码、用户码和键值码构成,引导码也称引导脉冲,一般由一定宽度比的高低电平脉冲构成,用于辨识遥控编码脉冲信号的开始,可有效剔除其它信号的干扰,同一遥控器具有确定的引导脉冲;用户码也称识别码,通常由8位原码和8位反码构成,一般由厂商定义,用于区分遥控系统的种类和用户,它也不随按键的不同而改变;键值码也称功能码,通常也是由8位原码和8位反码构成,与键盘的按键相对应。引导码的电平脉冲宽度通常较大,在十毫秒量级,分辨率在十分之一毫秒,而用户码和键值码所构成的32位串行二进制码的脉冲宽度在毫秒量级,分辨率可低至千分之一毫秒,因此在解码时可以千分之一毫秒为计数单元,分别采用两个字节保存引导码的高低电平脉冲宽度,而串行码的“0”、“1”二进制数也需要分别以两个字节来保存脉宽及间隔时间,学习存储时则每只遥控器只需存储一次引导码高低电平时间计数值、二进制数“0”、“1”的脉宽及间隔时间计数值、用户码8位原码,合计9个字节,从第十个字节开始则每个字节存储一个键值码原码,这在很大程度上能够降低复制编码脉冲方式对存储容量的需求。
2 硬件设计
系统的硬件组成如图2所示,中央控制单元MCU对系统的工作过程进行整体调度,MCU芯片选型时性能的要求不高,除了功耗、成本因素,需要注意的就是内部RAM的大小应尽量大于512字节,以满足TF卡512字节最小写入单位的要求,部分微处理器是需要借助外部RAM的,例如大多数的51系列单片机,这会增加开发的难度和成本。作者在测试系统中选择了STM32F103C8T6芯片,该芯片从成本角度考虑在这里并非最佳选择,然而STM32单片机强大的接口单元和丰富的内部资源,对于提升原理样机的研制速度不失为好的选择;TF卡存储器用于存储遥控器的编码信息,在本系统中SPI读写模式及其支持的2G以下存储卡对于绝大多数用户已足够;STM32内部RAM在学习模式时用于临时存储解码信息,在发射模式时用于临时存储从TF卡中读取的当前遥控器编码信息;LED指示灯有两个用途,在学习模式时用于判断某一按键的学习是否顺利完成,在发射模式时与红外发光管同步闪烁,有利于用户判断按键编码是否顺利发送;数码管用于显示当前遥控器的序号,学习模式时显示当前学习的遥控器即将在存储卡中的存储序号,发射模式时为用户选定的遥控器序号,数码管显示电路也可用液晶显示电路替代,可以更为详细地显示当前遥控器相关信息,在功耗上也有一定优势;矩阵键盘电路如图3所示,行线为输入线,列线为输出线,采用定时查询的方式检测按键;红外接收电路采用HX1838一体化红外接收头,可实现38KHz、940nm红外遥控信号的放大、检波、整形,解调并输出TTL电平的编码信号;红外发射电路采用IO口低电平驱动940nm红外发光管的连接方式,为了提高遥控距离,也可选用三极管电流放大电路的驱动方式。
图2 系统硬件框图
图3 矩阵键盘电路
3 程序设计
系统程序的主要流程如图4所示,工作模式分为学习模式和发射模式,模式选择键用于切换工作模式,上电后默认进入发射模式。在發射模式下,通过遥控器选择键切换遥控器功能,同时微处理器将对应的遥控器编码信息从TF卡对应位置读入内存,当某一遥控键按下时,微处理器首先计算合并引导码、用户码原码、用户码反码、键值码原码和键值码反码,生成对应按键的编码信息,并在时间计数字节的控制下与定时器产生的38KHz载波进行调制,再通过红外发射电路发射红外脉冲信号。
在学习模式下,首先打开红外接收头端口的中断,由于红外接收头输出电平为接收电平的反码,因此检测到低电平到来时表明有红外信号的输入,同时打开定时器进行千分之毫秒定时,对每一码位高低电平的脉冲持续时间进行计数,当脉冲宽度超出预设阈值时认为遥控信号的一帧数据接收完毕,待所有按键编码信息学习完成后,微处理器再对各脉冲宽度的持续时间求中间值,最后将处理完成的遥控器编码信息存储到TF卡相应位置。
4 结束语
学习型遥控器的TF卡存储方案较EEPROM存储方案,从技术角度考虑并无本质差异,然而TF存储卡作为一种通用的数码产品,文件复制与修改等基本操作已为大多数人掌握,用户可以TF存储卡为存储媒介,通过文件交互、下载、修改等方式实现所需的遥控器功能,这在以往的学习型遥控器中是无法做到的,这一细小的改进甚至可能引起商业模式的改变,厂商为了提升竞争力不再捆绑遥控器进行销售,用户为了环保节能也不再购买专用遥控器,而是通过文件下载获得所需的遥控器功能,该项技术有着广阔的应用和发展前景。
参考文献
[1]肖卫初,邓曙光,朱珍奇,等.基于NiosⅡ的学习型遥控器设计[J]. 现代电子技术,2010(19):147-150.
[2]宋瑞,刘华珠,林树涛.一种新型自学习型红外遥控器设计[J].东莞理工学院学,2011,18(3):42-45.
[3]孙田星.基于软件载波技术学习型遥控器的实现[J].电气开关, 2015(1):71-73.
[4]刘永广,张宏怡.适于数字家庭的学习型红外遥控器设计[J].厦门理工学院学报,2014,22(3):71-75.
[5]曾炼成,周小云.基于波形存储型红外学习的数据压缩方法[J].计算机与现代化,2014(24):195-198.
[6]顾晓红.学习型遥控器中的码型识别[J].电子与封装,2009,9(10):42-45.
作者简介:李敏(1979-),男,讲师,研究方向为MEMS传感器与系统。