3.1 学习器
学习器是硬件电路的主要部分,兼有学习与遥控的功能,它以FPGA为核心,外围电路力求简单,主要由键盘、存储器、接收电路和发射电路组成,考虑到用纯硬件来控制LCD显示的困难较大 ,决定采用微控制器协助FPGA来实现。这里的接收电路与后面要讲的接收器不同,它专为学习功能设置,负责接收已有遥控器的红外信号并送至FPGA内部进行识别、译码以及存储,发射电路由驱动电路和红外发光二极管两部分电路组成,负责将编码信号以红外光的形式发射出去。
总体原理框图如图2所示:
图2.学习器硬件结构
3.1.1 FPGA的设计
包括键盘模块、发射编码调制模块、接收译码存储模块三个模块,另外还有一个总控制模块,其内部结构如图3所示:
图3.FPGA内部结构
总控制模块是一个有限状态机,它负责协调其他各个模块的工作并提供与显示电路和存储器的接口;键盘模块接收用户的按键信息,并编码输出给总模块,这些信息包括按键的地址,按键的类型和用户选择要遥控的器件编码;接收译码存储模块由计数器记录接收信号高低电平的宽度,并将数据存入存储器相应地址中,存储时序由状态机来控制;发射编码调制模块负责由存储器中读取当前按键的数据信息,产生与学习到的信号相似的高低变化的电平,并以38kHz的载波调制输出。
3.1.2 单片机实现的LCD显示电路
显示电路采用RT12864M-2型液晶显示器,由我们较为熟悉的单片机控制液晶来显示遥控器所处的状态并提示用户进行正确的操作。
3.2 教练器
教练器的作用是产生种类足够多的编码信号供学习器来学习,进而控制不同的接收器。
SC2262是一种CMOS工艺制造的低功耗低价位通用编码电路,最多可有12位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441地址码, SC2262最多可有6位(D0-D5)数据端管脚,其编码方式如图4所示。
图4.SC2262的编码脉冲
3.3 接收器
SC2272 是与SC2262 配对使用的一块遥控解码专用集成电路。它可支持多达531441个地址的编码,极大的减少了码的冲突。SC2272 对从Din(14脚)端子送入的信号进行解码。解码出来的地址码与所设置地址输入端进行比较。如果所设置的地址与连续2个字码匹配,则SC2272 做以下动作:
a)当解码得到有“1”数据时,驱动相应的数据输出端为高电平;
b)驱动VT (17脚)输出为高电平。
将SC2272与继电器结合就可以控制电灯、电扇等用电器的电源开关,再加上小型直流电动机就可控制窗帘等机械装置。
3.4 与主机接口
为了能使此遥控器控制电脑就须将红外信号送入主机内,有两种可行的接口,分别为电视卡的红外接收头和串口。
3.4.1电视卡的红外接收头
现在的电视卡很多都带有红外遥控器,这样的遥控器除了可以控制电视的播放外,通过适当的软件,它还可以控制音频、视频播放、图片浏览程序及电脑的关机等,实现真正的电脑遥控功能。这种方法的缺点是需要购买电视卡,成本较高,不予采用。
3.4.2 串口
现在流行的有半软半硬和全软两种方案,半软半硬方案在红外接收头与串口间加入了数据预处理电路,使数据符合串口规范,降低了编程难度,减少了CPU占用率;而全软方案则是直接把红外接收头收到的数据送入串口,完全由软件处理,其编程难度和CPU占用率偏大,但硬件电路非常简单。图5是“软”方案的硬件电路。
图5.串行红外接口电路
由于目前应用串口的技术比较成熟,网上有很多现成的插件可以借鉴,因此我们决定采用串口的方式实现。