来源:中国一卡通网 作者:不详 发布时间:2012-07-10 09:07:46 字体:[大 中 小]
摘 要:伴随着社会经济水平的提高,人们对家居生活质量的要求也越来越高。同时随着嵌入式技术的不断发展,以及移动通讯设备的普及,远程控制普通家电的条件已经逐步成熟。为了实现手机远程控制家电的目的,提出了一种基于ARM+linux 的嵌入式家庭网关,以32 位的ARM9S3C2440 微处理器为核心,配有短信接收模块、红外遥控器自学习模块、以及无线Zigbee 通讯模块。实现了短信的接收,红外遥控器信号的接收、存储及发送。经过测试与分析,达到了预期的效果,证明该方案确实可行。
在信息、通讯不断发展的今天,随着人类社会的进步和科学技术的迅猛发展,及国内消费者生活水平的不断提高,人们更加注重生活质量,对生活的舒适度有了更高的要求。而家电的性能对人们生活的舒适度有着直接的影响。家电远程控制系统使人们可异地控制家庭内部设备,拓展了人们的生活空间,为人们管理家庭设备提供了方便的手段。但由于很多普通家电却不具备智能控制所需的条件,为了实现对普通家电的智能控制,需要设计一个中间设备--家庭网关。
本系统应用现阶段流行的ARM9 系列微处理器芯片和嵌入式Linux 操作系统进行了家庭网关的软硬件设计,利用人们随身携带的手机与家庭网关进行短信通信,并在家庭网关的控制下,实现对家电的远程控制。
1 家庭网关整体结构
远程家电控制系统一般可以划分为外部网,家庭网关和内部网三个部分。而家庭网关是家庭内部网与外部网的连接枢纽,也是整个系统的核心设备,整个系统构成图如图 1 所示。用户使用手机发送家电控制短信到家庭网关,经过家庭网关的处理将其转换为遥控器红外指令,发送给各个分控节点驱动红外发射器发送红外指令对该设备进行控制,从而实现手机远程控制家电的功能。
图1 系统构成图
2 家庭网关的实现
家庭网关中央处理器的选择有多种方案,但考虑到家庭网关的功能、成本以及以后的升级,本课题决定采用三星公司的S3C2440A 处理器作为家庭网关的中央处理单元。S3C2440 主要面向手持设备以及高性价比、低功耗的应用,S3C2440A 提供一组完整的系统外围设备,从而大大减少了整个系统的成本,省去了为系统配置额外器件的开销,通过外扩存储器(SDRAM/Flash)、触摸屏、短信接收模块、遥控器自学习模块、Zigbee 模块来构建家庭网关的硬件平台,其系统结构如图 2 所示。家庭网关所具有的功能包括:
遥控器红外指令的对码学习、短信的接收及处理、家庭内部网的主节点。
图2 家庭网关系统结构图
2.1 遥控器自学习模块
家庭中的家电普遍采用红外遥控设备,要控制家电就要知道所对应的红外遥控码。遥控器红外脉冲码一般由引导码、地址码、数据码、数据码反码和结果码组成。由于各个公司生产的红外编/解码芯片采用的编/解码方式和脉宽周期不同,导致了市场上的各类遥控器的功能互不兼容。为了能拥有各种遥控器的遥控功能,首先必须要正确地原样接收并存储遥控器的红外脉冲码,为此设计了红外遥控接收模块,接收遥控器的红外指令并保存在SQlite 数据库。
2.1.1 硬件设计
一般红外遥控接收电路要包括红外接收二极管(光敏二极管)、前置放大电路、滤波器、检波解调电路等处理电路。但是随着技术发展,红外接收专用集成电路逐渐被红外接收头所代替,红外接收头是一种三端集成器件,它将红外接收二极管、前置放大电路以及解调电路等集成在同一芯片上。本设计采用红外一体化接收头TL538,它具有宽电压适应、功耗低、成本低、高接收灵敏度以及优良的抗干扰特性,是通用接收红外信号并解调的元件,不需要任何外接元件,就可以完成从红外线接收到输出TTL 电平的数字信号,目前广泛的应用于家用电器及玩具等各种红外遥控和红外接收装置中。
红外一体化接收头接收到的红外脉冲信号解调成合适电平的数字脉冲基带信号,直接送到S3C2440A 的GF2 引脚进行采集,红外接收电路原理图如图3 所示。
图3 红外信号接收电路原理图
2.1.2 软件实现
系统软件实现红外脉冲信号的接收和存储,GF2是个复用端口,要把它设置为外部中断功能,中断设置模式为双沿中断,实现红外脉冲信号的接收。程序流程图如图 4 所示。
图4 红外接收程序流程图
设计采用定时器对信号高低电平计时的方法来采集数据,TL538 在无红外信号时一直处于高电平,当红外信号到来时,有一个下降沿,触发外部中断,系统启动内部定时器,当再次触发外部中断时,读取计数器的值,然后依次读取计数器的值。由于一条红外指令的长度不会超过220ms,如果采集到编码信号的长度大于220ms,就认为编码采集已经结束,触发定时器溢出中断,关闭定时器,计算计时器每两个计数的差值(红外脉冲信号的脉宽值),这样红外脉冲信号就被原封不动的全部记忆。
为了方便调用遥控器的红外脉冲信号,要将其接收到红外码保存,而保存数据就需要一个嵌入式的数据库,在目前Linux 下常用的数据库产品中,Oracel、BIMDB 等功能强大,但系统宠大,需付费使用,适用于大型商业型数据库。而MysQL 在保持中等体积的情况下,提供了较为适用的功能己成为中小规模数据库应用的首选,但商业应用也需付费,而且对于嵌入式系统来说空间占用仍然太大。小型数据库msQL 适用于嵌入式系统,但只有30 天的使用期限,并非完全开源。而在开源的数据库中,PostgreSQL 功能完善,但体积较大。而Berkeley DB 则是开发难度比较大。
SQlite 则在体积与功能之间做到了较好的平衡,是"理想的嵌入式数据库"。此系统创建文件名为dc_main.
db 的sqlite3 数据库文件,并在以创建的dc_main.db中创建一张数据表study 用来存储各个房间各遥控器的红外指令,SQL 命令为:
create table study(
id integer primary key autoincrement,--id 号,自动产生
room varchar(10), --房间名称
appliance varchar(10), --电器名称
key varchar(10), --按键名称
command varchar(500)); --红外脉冲信号
为了用户方便与系统进行交互,采用QT4 设计遥控器自学习界面,Qt 是Trolltech 公司开发的一个多平台的C++图形用户界面应用程序框架。包括直观的API 和丰富C++ 类库、用于GUI 开发和国际化的集成工具,支持使用JavaTM 和C++ 语言进行开发。该图形系统最大的优点是采用面向对象设计,移植性好,基于X Window 的Qt 桌面应用程序可以非常方便的移植到嵌入式系统上。在对硬件和容量都有限制的嵌入式环境上,Qt 可以直接在Framebuffer 上显示图形。
Qt 的这种特性在一定程度上提高了嵌入式GUI 程序的执行效率,这对硬件和容量都有限制的嵌入式环境非常重要。同时Qt4 为数据库访问提供的QtSQL 模块实现了数据库与Qt 应用程序的无缝集成。
此系统用Qt4 和SQLite3 技术实现了遥控器自学习系统的前台界面及数据的存储,遥控器自学习界面如图 5 所示。
图 5 遥控器自学习界面
为了存储时能将按键与其红外指令对应,在遥控器自学习前台界面要输入房间、电器、按键的名称,因此设计了键盘进行内容输入,用户在界面输入房间、电器、按键,之后对着红外一体化接收头按下遥控器的对应按键接收红外指令,按确认后,将房间、电器、按键信息以及所对应的遥控器红外指令存入sqlite3 数据库。
推荐文章
4口RS485串口服务器
微功率无线通讯模块
协议转换器
232转换器--无源转换器
485转换器--有源转换器
TCP/IP-485转换器
16串口服务器
485转换器
Link-Max 4-20mA电流环隔离配电器
论坛热帖