单片机+FPGA实现家居遥控

发布者:草莓熊猫最新更新时间:2014-11-18 来源: 21ic关键字:智能家居  单片机  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的载波调制输出。

  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电视卡的红外接收头

  现在的电视卡很多都带有红外遥控器,这样的遥控器除了可以控制电视的播放外,通过适当的软件,它还可以控制音频、视频播放、图片浏览程序及电脑的关机等,实现真正的电脑遥控功能。这种方法的缺点是需要购买电视卡,成本较高,不予采用。[page]

  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。

  进入“file\\settings”,点击选项卡上的“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 结语

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

3_201106302237581E0Ed

3_201106302237581E0Ed

3_201106302237581E0Ed

3_201106302237581E0Ed

3_201106302237581E0Ed

3_201106302237581E0Ed

3_201106302237581E0Ed

关键字:智能家居  单片机  FPGA 引用地址:单片机+FPGA实现家居遥控

上一篇:基于C8051F的恒温箱控温系统
下一篇:基于EFM32TG840F16 MCU的室内甲醛检测仪设计

推荐阅读最新更新时间:2024-03-16 13:46

51单片机并行口驱动LED数码管显示电路及程序
介绍利用51单片机的一个并行口实现多个LED数码管显示的方法,给出了利用此方法设计的多路LED显示系统的硬件电路结构原理图和软件程序流程,同时给出了采用51汇编语言编写程序。 1 硬件电路  多位LED显示时,常将所有位的段选线并联在一起,由一个8位I/O口控制,而共阴极点或共阳极点分别由另一个8位I/O口控制;也可采用并行扩展口构成显示电路,通常,需要扩展器件管脚的较多,价格较高。本文将介绍一种利用单片机的一个并行I/O口实现多个LED显示的简单方法,图1所示是该电路的硬件原理图。其中,74LS138是3线-8线译码器,74LS164是8位并行输出门控串行输入移位寄存器,LED采用L05F型共阴极数码管。     显示时
[单片机]
51<font color='red'>单片机</font>并行口驱动LED数码管显示电路及程序
设计灵活、高性能的嵌入式系统——软处理和IP定制同时确保灵活性和性能
您的下一个嵌入式系统设计项目需要的是什么:是可以让您轻松地定制设计的灵活的系统元件,还是额外的性能空间,以便您在设计周期中加入更多的功能?为什么要让自己承受过度的开发压力,并且只能舍此取彼呢?软处理和IP定制能够为同时确保灵活性和高性能提供了最佳的解决方案,将定制设计的概念和协处理带来的性能加速结合起来。 分立处理器只能提供固定的外设选择,并且一些性能受到时钟频率的限制。在嵌入式FPGA所提供的平台上,您可以创建一个具有大量定制处理器核、灵活的外设、甚至协处理减负引擎的系统。现在,您能设计出一个不折不扣的定制处理系统——不仅满足最具挑战性的项目要求,而且能够冲破性能极限,与此同时,通过使用FPGA硬件实现加速的软件指令最大限度地
[嵌入式]
数字式温湿度传感器SHT11在51单片机系统的应用
1 概述 温湿度的测量在仓储管理、生产制造、气象观测、科学研究以及日常生活中被广泛应用,传统的模拟式湿度传感器一般都要设计信号调理电路并需要经过复杂的校准和标定过程,因此测量精度难以保证,且在线性度、重复性、互换性、一致性等方面往往不尽人意。SHT11是瑞士Sensirion公司推出的基于CMOSensTM技术的新型温湿度传感器。该传感器将CMOS芯片技术与传感器技术结合起来,从而发挥出它们强大的优势互补作用。 2 性能特点 SHT11温湿度传感器的主要特性如下: ●将温湿度传感器、信号放大调理、A/D转换、I2C总线接口全部集成于一芯片(CMOSensTM技术); ●可给出全校准相对湿度及温度值输出; ●带
[单片机]
数字式温湿度传感器SHT11在51<font color='red'>单片机</font>系统的应用
一种基于SMS的智能家居远程监控系统
1 引言 随着生活节奏的加快,生活水平的提高,人们对现代家居的安全性、智能性、舒适性和便捷性提出了更高的要求。智能家居控制系统就是适应这种需求而出现的新事物, 正朝着智能化、远程化、小型化、低成本等方向发展。如今手机已经十分普及,如何让普通百姓只需要增加少量投入便可以通过手机远程遥控自己家中的电器设备,远程查看设备或安防系统状况。同时,一旦家中发生煤气泄露、火灾、被盗等安全事故时能够立即获知警报, 及时处理。为此本文提出了一种基于SMS 和Atmega128 的智能家居远程监控系统。 2 系统结构及工作原理 本文所设计的智能家居远程监控系统由CP U 模块、短信收发模块、电源模块、时钟模块、LCD 显示模块、键盘模块、驱动模
[单片机]
一种基于SMS的<font color='red'>智能家居</font>远程监控系统
基于单片机的超声波测距系统的研究与设计
电子科技 南京工程学院通信工程学院 沙爱军   在日常生产生活中,很多场合如汽车倒车、机器人避障、工业测井、水库液位测量等需要自动进行非接触测距。超声波是指频率大于20 kHz的在弹性介质中产生的机械震荡波,其具有指向性强、能量消耗缓慢、传播距离相对较远等特点,因此常被用于非接触测距。由于超声波对光线、色彩和电磁场不敏感,因此超声波测距对环境有较好的适应能力,此外超声波测量在实时、精度、价格也能得到很好的折衷。   为此,文中尝试以单片机AT89S52为核心,利用一对40 kHz压电超声传感器设计一款体积较小、价格低廉、精度较高、具有温度补偿、实时LCD显示和报警的超声波测距仪。   1 超声波测距原理   超声波传感器
[单片机]
基于<font color='red'>单片机</font>的超声波测距系统的研究与设计
基于单片机的红外微电脑自动泵液器设计
  1系统总体设计   该系统能自动探测有无物体靠近出液口,探测距离为15~20cm,LED显示器粗略显示容器内洗涤剂的剩余量,分为3种情况:   (1)最低的一段LED亮说明洗涤剂剩余量较少,需要尽快补充;   (2)最低段和中间段同时亮说明洗涤剂充足;   (3)三段同时亮说明容器内洗涤剂的已经超过安全警戒线,不能再继续加入,段间分隔误差:±5mm。   另外系统备有操作按键一个,用于选择流量,开机时默认值为小流量,按1次按键后选择中流量,按2次选择大流量,按3次后进入清洗模式,再按一次退出清洗模式并选择小流量。   自动给液系统的组成框图如图1所示。   LED显示器用于显示容器内液体的粗略剩余量,该显示器
[单片机]
基于<font color='red'>单片机</font>的红外微电脑自动泵液器设计
STM32单片机串口接收不定长无标志位字符串定时器判断结束
写在前面的话,以警示所有程序员。 你们或许还没有发现,随着我们深入编程领域的时间越久,我们程序员的思维越来越简单,情商也越来越低,这就是编程行业对我们自身的影响。整体跟逻辑的东西打交道,思维当然会固化。如何避免呢?想知道的话留个言,我会在下一篇博文中更新。 还要警示的是:做一个程序员的能力是有限的,一个程序员团队才可以做成大事。无论哪种语言,哪种程序,都不重要,重要的是我们的思路和逻辑,语言只是工具,不是目的! //串口1中断服务程序 void USART1_IRQHandler(void) { u8 rec_data; u8 i=0; if(USART_GetITStatus(USART1, USART_IT_RXNE
[单片机]
基于FPGA技术HIFI音频播放器方案
本方案DEMO板,采用了CT7601 USB音频解码+高通蓝牙QCC5125+FPGA逻辑芯片+ES9038Q2M DAC芯片等,高性能高指标高音质,针对HIFI音频播放器应用。 1.高通QC5125芯片模块 高通QC5125低功耗蓝牙音频SoC,专为主流蓝牙音箱,立体声耳机和真正的无线耳塞而设计 QCC5125特性: 极低功耗设计;蓝牙5无线电;2Mbps蓝牙低功耗(LE)支持 超小外形;强大的四核处理器架构;双核32位处理器应用子系统 双核Qualcomm Kaliimba DSP音频子系统 嵌入式rom + RAM和外部Q-spi闪存;高性能低功耗音频 2通道99dBA线路输入(单端);2-ch 98dBA耳机D级 19
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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