FPGA帮您实现家居遥控

发布者:ananan一二三四五最新更新时间:2011-07-07 来源: 维库关键字:家居遥控  FPGA 手机看文章 扫描二维码
随时随地手机看文章
    引言

  人们生活中的家用电器种类日益增多,遥控器的种类也随之增加,不同种类的遥控器之间一般不能相互替代,这给人们的生活带来诸多不便。

  各类遥控器功能大致相同,大多都有数字键、启动停止键、前进键、快进键、后退键,复杂的也就是增加几个功能键,现实生活中,由于用户的个体差异,特殊功能键的使用频率很低,甚至部分用户自始至终就从未使用过这类键,因此,这些键完全可以简化和归类使用,对于那些不易简化和归类的少量特殊功能键,可以通过开辟自定义按键区的方法予以解决。

  鉴于此,本文以单片机和大规模可编程门阵列FPGA为基础,以记录波形的思想设计了一款自学习式通用家居遥控器,又为原本无遥控功能的电灯、电扇、窗帘等设施追加了教练+学习+控制的遥控模型,在电脑上安装了Girder软件后还可实现对电脑的遥控。

  1 红外遥控简介

  1.1 关于红外线

  红外线是波长在0. 75μm 至100μm 之间的电磁波,它的频率高于微波而低于可见光,是一种人的眼睛看不到的光线。红外通讯一般采用红外波段内的近红外线,波长在0. 75μm 至25μm 之间。红外数据协会( IRDA) 成立后,为了保证不同厂商的红外产品能够获得最佳的通讯效果,红外通讯协议将红外数据通讯所采用的光波波长的范围限定在850nm 至900 nm 之内。

  由于红外线的波长较短,对障碍物的衍射能力差,所以适合应用在需要短距离无线通讯的场合,进行点对点的直线数据传输。

  1.2 红外遥控编码格式

  用于遥控的控制代码大都以不同的编码标准调制在38 kHz 左右的载波频率之上,再以串行格式通过红外载波的通断被发送。下面简单介绍一下常见的编码标准:

  1) Pulse 编码(Pulse Coded)

  脉冲的长度根据表示的数据‘0’、‘1’而不同,Sony 的遥控用此种编码。

  2) Space 编码(Space Coded)

  与脉冲编码正好相反,它是以脉冲之间space 的长度不同来表示数据, Panasonic 的遥控用的就是这种编码。

  3) Shift 编码(Shift Coded)

  此种编码是用电平转换的方向表示数据的,因此所有的位都有着连续的时段,Philips 就用该编码方式。

  2 系统的软硬件划分

  该系统采用“电脑主机+单片机+FPGA”的结构,系统软件分为两部分:一部分是在主机上运行的Girder程序,用于解码接收到的信号并控制电脑执行指定的动作,另一部分运行在单片机上,用于驱动遥控器的液晶(LCD)显示。系统的硬件分为四部分:学习器,教练器,接收器以及与主机的接口电路,其中学习器兼有学习与遥控的功能,通过学习原有遥控器的编码可以遥控任何拥有遥控功能的电器,它包括单片机和FPGA两部分,由FPGA执行主要的学习与遥控功能以提高运行速度和集成度,单片机用来驱动液晶显示;教练器与接收器负责对原本无遥控功能的设备追加遥控功能,具体来说就是教练器产生种类足够多的编码地址供学习器来学习,接收器则在电器端负责解码对应的地址并产生相应的动作;为实现对电脑的遥控功能而设计的主机接口电路负责把红外信号转换为数字信号传入主机。硬件电路实现的总体框图如图1所示:

图1 硬件系统总体框图

  3  系统的硬件设计与实现

  3.1 学习器

  学习器是硬件电路的主要部分,兼有学习与遥控的功能,它以FPGA为核心,外围电路力求简单,主要由键盘、存储器、接收电路和发射电路组成,考虑到用纯硬件来控制LCD显示的困难较大 ,决定采用微控制器协助FPGA来实现。这里的接收电路与后面要讲的接收器不同,它专为学习功能设置,负责接收已有遥控器的红外信号并送至FPGA内部进行识别、译码以及存储,发射电路由驱动电路和红外发光二极管两部分电路组成,负责将编码信号以红外光的形式发射出去。

  总体原理框图如图2所示:

图2.学习器硬件结构

  3.1.1 FPGA的设计

  包括键盘模块、发射编码调制模块、接收译码存储模块三个模块,另外还有一个总控制模块,其内部结构如图3所示:

图3.FPGA内部结构

  总控制模块是一个有限状态机,它负责协调其他各个模块的工作并提供与显示电路和存储器的接口;键盘模块接收用户的按键信息,并编码输出给总模块,这些信息包括按键的地址,按键的类型和用户选择要遥控的器件编码;接收译码存储模块由计数器记录接收信号高低电平的宽度,并将数据存入存储器相应地址中,存储时序由状态机来控制;发射编码调制模块负责由存储器中读取当前按键的数据信息,产生与学习到的信号相似的高低变化的电平,并以38kHz的载波调制输出。[page]

  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.串行红外接口电路

  由于目前应用串口的技术比较成熟,网上有很多现成的插件可以借鉴,因此我们决定采用串口的方式实现。

  4 软件设计

  4.1 液晶(LCD)驱动程序

  我们采用89S51单片机来控制液晶屏,通过不断循环读取FPGA的状态编码来控制液晶显示器实时地刷新其显示内容,其中包括遥控系统当前所处的状态(是处于学习状态还是遥控状态)以及当前处理的对象类别和编号,防止用户由于不清楚当前遥控的对象而产生误操作,同时在每一个状态液晶屏都要提示用户下一步该如何操作,为用户提供一个十分人性化的使用界面,软件使用Keil C编写。其程序流程如图6所示。

图6.LCD显示软件流程

  4.2 Girder程序

  Girder是一款完全免费的软件,从本质上说它可接收来自任何输入设备的指令,识别后做事先定义好的动作,如启动某个程序或鼠标双击等。首先要设置好硬件,从网上下载串口驱动文件IgorPlug.dll拷贝到Girder目录下的子目录Plugins中。Girder软件的界面如图7。

  进入“filesettings”,点击选项卡上的“Plugins”,找到滚动窗口中的“Igor SFH-56 device”,在它前面的小框中打上勾,再点击左边的“Setting”, 选择你所使用的串口,点击OK就可以通过串口来控制电脑了。           

                       

图7.Girder的主界面

  对于像关机,关闭显示器等动作,Girder已经有设置好的现成的命令可用,对于一些较复杂的播放软件的控制可以通过简单的设置来完成。

  5 关键技术--对编码信号的学习方法

  红外遥控信号的编码方式多种多样,例如图8所示的是一种电视卡自带的遥控器的编码波形,它采用的是Space编码,前面9ms的脉冲加4ms低电平是引导码,中间是8位地址码00H、8位地址反码FFH、8位数据码E8H、8位数据反码17H,从引导码开始计时发送108ms后若按键仍没有松开则以后每隔108ms发送一个9ms高+2ms底+0.5ms高的重复简码,直到按键松开为止。

图8. 一种电视卡的遥控器编码波形

  如果每一种遥控器都通过解码后存储“0”“1”的数字信号,那么解码的工作将是非常繁重而且不经济的,一个简单的方法是记录下波形中每个高低电平的宽度,使用时再按照原始形式将波形发射出去。

  6 结语

  智能家居各类产品的智能化加速必将推动家居产业发展,让我们共同期待,相信智能时代还会创造更多的智能奇迹,智能家居生活终会飞入寻常百姓家,普通百姓也能享受高科技时代下的智慧生活。

关键字:家居遥控  FPGA 引用地址:FPGA帮您实现家居遥控

上一篇:多通道频率检测技术的FPGA实现
下一篇:基于FPGA的100G光传送网设计

推荐阅读最新更新时间:2024-05-02 21:28

DSP+FPGA实时信号处理系统
  实时信号处理系统要求必须具有处理大数据量的能力,以保证系统的实时性;其次对系统的体积、功耗、稳定性等也有较严格的要求.实时信号处理算法中经常用到对图象的求和、求差运算,二维梯度运算,图象分割及区域特征提取等不同层次、不同种类的处理.其中有的运算本身结构比较简单,但是数据量大,计算速度要求高;有些处理对速度并没有特殊的要求,但计算方式和控制结构比较复杂,难以用纯硬件实现.因此,实时信号处理系统是对运算速度要求高、运算种类多的综合性信息处理系统.   1 信号处理系统的类型与常用处理机结构   根据信号处理系统在构成、处理能力以及计算问题到硬件结构映射方法的不同,将现代信号处理系统分为三大类:   ·指令集结构(ISA)
[嵌入式]
DSP+<font color='red'>FPGA</font>实时信号处理系统
基于FPGA的飞机电源参数测试设备设计
当前,飞机上电力电子设备日益多样化、复杂化,飞机电源系统的品质直接影响飞行安全。因此在进行飞行时,需要对飞机提供的直流电源、交流电源进行工作特性测量,并给出其参数的基本特性和动态特性。   对于电源瞬态特性参数,目前没有相应的测量设备,从而需研制专用的瞬态电源动态特性参数测量设备对其进行测试,以满足民机适航性试飞要求。   本设备是一种专用测试设备,主要用于飞机交、直流电网参数采集测试,捕获飞机电源系统的负荷突变、电压突变,然后提供给地面数据卸载及预处理系统,以评估被测飞机电网络供电特性是否满足相关国军标或设计规范的要求。   一、飞机电源特性参数   飞机电源系统是飞机上电能产生、调节、控制和电能变换部分的总称。
[电源管理]
基于<font color='red'>FPGA</font>的飞机电源参数测试设备设计
阿里巴巴携手英特尔开发一款基于 FPGA 的解决方案
Alibaba Cloud(阿里云)已宣布与英特尔合作开展基于云的现场可编程门阵列(FPGA) 加速服务试点计划,该计划旨在帮助客户虚拟访问云中的丰富计算资源,更高效地管理业务、科学和企业数据应用工作负载。 通过使用英特尔® Arria® 10 FPGA、基于英特尔® 至强® 处理器的服务器及软件开发工具构成即用型预配置基础设施以进行应用加速,阿里云可为系统设计师提供投资于内部 FPGA 基础设施的替代选择:基于云的工作负载加速。该服务可借助 FPGA 提供工作负载加速的按需可扩展性,同时降低前期投资风险和加快新基础设施服务的交付速度。 阿里云高级总监李津表示:“阿里云可帮助客户访问云中的大量服务,基于 FPGA 的全新
[嵌入式]
高云半导体:推进智能制造,FPGA作用明显
作为一种可编程逻辑器件,FPGA在二十多年的发展历程中,从电子设计的外围器件逐渐演变为数字系统的核心。随着人工智能、机器学习、工业控制、无人驾驶、大数据等对并行计算有强烈的需求,以及半导体工艺技术的进步,FPGA的未来被持续看好。在此背景下,中国发展FPGA有着重要意义。为此,《中国电子报》在“中国工业强基战略推进论坛”上采访了广东高云半导体科技股份有限公司董事长陈天成、副总裁兼首席技术执行官朱璟辉。 FPGA在工业控制中应用不断扩大 《中国制造2025》是我国工业制造业的十年发展规划,它的出台将互联网和制造业更加紧密地结合起来,工业设备的自动化、控制技术的智能化发展趋势已经成为人们的共识。受益于工业自动化与智能化
[嵌入式]
高云半导体:推进智能制造,<font color='red'>FPGA</font>作用明显
FPGA实现的FIR算法在汽车动态称重仪中的应用
引言   车辆在动态称重时,作用在平台上的力除真实轴重外,还有许多因素产生的干扰力,如:车速、车辆自身谐振、路面激励、轮胎驱动力等,给动态称重实现高精度测量造成很大困难。若在消除干扰的过程中采用模拟方法滤波,参数则不能过大,否则将产生过大的延迟导致不能实现实时处理,从而造成滤波后的信号仍然含有相当一部分的噪声。所以必须采用数字滤波消除干扰。 FIR滤波的原理及实现   本文采用FIR数字滤波,其原理如公式1所示。   Y(n)= (1)   其中h(k)为系统滤波参数,x(n)为采集的信号,Y(n)为滤波后的输出信号。   FIR滤波器的h(n)0≤n≤N-1   H(z)= (2)   在本文中N=17。由于h(n
[应用]
Altium 发布FPGA 开发板的部署外壳产品
日前,Altium 宣布为其最新 NanoBoard 3000 FPGA 开发板添加即时部署选项。设计人员将无需创建定制的 PCB,便可使 FPGA 设计直接从概念创建过程进入部署实施阶段。 在不到冲泡并品尝一杯咖啡的时间内,使用部署选项便可帮您完成工作,设计人员只需将 NanoBoard 3000 放入 Altium 自主设计的各种新型外壳中即可。 使用它们的模块化结构,设计人员可以使用如下众多方式快速部署放置于 NanoBoard 3000中的基于 FPGA 芯片的设计方案,例如放在桌面上的、挂在墙壁上的、在商业或工业场所应用的、多电路板设计应用的,以及外壳上配有 TFT 显示屏的或者没有配置TFT 显示
[嵌入式]
Mercuryr推出赛灵思FPGA适用的串行RapidIO IP内核
Mercury Computer已经加盟Xilinx联盟项目,为Xilinx Virtex和Spartan系列FPGA新推出Mercury串行RapidIO IP内核。Xilinx联盟项目具有最新的IP内核、EDA、DSP和嵌入式开发工具及设计业务、电路板级产品、集成电路和电子元件。成员公司提供优化的产品及业务,以提供更多适合使用Xilinx可编程逻辑器件的方案。 Serial RapidIO具有全功能IP内核,集成了逻辑层、传输层和物理层,支持I/O和信息传递。Mercury IP内核符合Serial RapidIO 1.2规范,适合用于嵌入式产品、通讯、无线、存储和国防市场。使用Xilinx Virtex FPGA的设计师可
[新品]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved