logo资料库

基于Arm Linux的嵌入式智能家居控制系统的设计.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
第 19 卷 Vol.19 第 3 期 No.3 电子设计工程 Electronic Design Engineering 2011 年 月 2 Feb. 2011 基于 Arm-Linux 的嵌入式智能家居控制系统的设计 谭 涛, 徐晓辉, 黄晓亮, 王 盟, 温 阳 (河北工业大学 信息工程学院, 天津 300401) 摘要: 随着嵌入式技术 、网络及信息技术的发展 ,针对人们对智能家居的追求 ,提出了一种基于 ARM9 的嵌入式智能 家居控制系统的解决方案 。 介绍了嵌入式 Linux 系统的软硬件平台 ,结合实例阐述了嵌入式 QT 图形界面系统 、嵌入 式数据库 SQLite 等关键技术在嵌入式智能家居控制系统中的应用。 该方案解决了控制系统的可视化操作问题 ,提高 了系统数据管理效率 ,并具有通用性可移植到其他硬件或软件平台应用 。 关键词:智能家居; ARM9; 嵌入式 Linux; Qtopia; SQLite 中图分类号 : TP316 文章编号:1674-6236(2011)03-0160-03 文献标识码: A Design of embedded intelligent home control system based on Arm-Linux TAN Tao, XU Xiao-hui, HUANG Xiao-liang, WANG Meng, WEN Yang (College of Information Engineering,Hebei University of Technology, Tiajin 300401, China) Abstract: With the development of embedded technology,network and information technology,for the pursuit for the intelligent home,a projection of embedded intelligent home controlling systems is proposed based on ARM9.It describes the software and hardware platforms of embedded Linux systems,explains the appliance on embedded intelligent home controlling systems of key technologies such as embedded QT graphical interface system and embedded database SQLite with examples.The projection solves the problem of visual operations,and improve the efficiency of data management,what's more,it is universal portable to other hardware and software platforms to be applied. Key words: intelligent home; ARM9; embeded Linux; Qtopia; SQLite 嵌 入 式 系 统 以 其 占 用 资 源 少 专 用 性 强 、 、 功 耗 低 的 特 点 使其广泛应用在移动通信 安全 对人们对高效 舒适 、 、 工业生产 便利 安全监控等领 域 [1]。 环保的居住环境的要求 、 、 针 提 , 、 、 出了以 Arm-Linux 为平台的智能家居控制系统的设计 。 1 智能家居控制器的总体设计 层在 报警 、 Qtopia 照明控制 图形系统 数据库等 的 支 撑下 完 成 了电 话 、SQLite 安防控制 、 、 门禁控制以及网络浏览等应用 。 2 系统硬件的设计 处理器选用 CPU 资源丰富功能强大 。 Samsung S3C2440A, 内 存 为 其主频为 400 MHz, 数 据 总 线 64 M SDRAM, 存 储 器 为 32 bit, 掉 电 非 易 失 线电阻式触摸屏接口的 128 M Arm-Linux 嵌入式系统以其在性能 、 体积及功耗等方面 时 钟 频 率 高 达 100 MHz。 的优势在智能家居领域得到越来越广泛的应用 系统采用基 。 NANDFLASH。 LCD 显示部分为具有 4 的嵌入式 ARM 于 系统引导层 linux 方案 , 系统分为五层分别为硬件 层 , 所示应用 如图 应用支撑层及应用层 系统层 , , 。 1 英寸真彩色液晶屏 网卡芯片为 可自适应 3.5 网络 通过 , RJ45 。 DM9000 10/100 M 连接头可连接控制器至路由器或者交换机 [2]。 其 总线与主控制器进行通信 智能家居控制模块通过 RS485 。 硬件结构图如图 所示 。 2 图 1 系统软件体系结构示意图 Fig. 1 Schematic diagram of the system software architecture 图 2 硬件结构图 Fig. 2 Hardware structure 收稿日期:2010-09-27 作者简介:谭 涛(1985—),男,河北保定人,硕士研究生。 研究方向:电路与系统。 -160- 稿件编号:201009102
Uboot 是 专 门 针 对 嵌 入 式 Linux 系 统 设 计 的 开 源 SQLite 及串口通信程序的开发的基本过程如图 4 3 软件平台的构建 开 发 环 境 选 取 的 是 虚 拟 机 统 +arm-linux-gcc 4.3.2 编译的方式进行 主要软件 。 表 1 。 编译器 。 Vmware6.5+fedora9 Linux 系统与软件的编译采取交叉 系 是构建控制系统所需移植开发的一些 表 1 系统及应用支撑层软件 Tab. 1 System and application software support layer 项目名称 选取的软件名称及版本 bootloader 内核 Linux 文件系统 根文件系统 服务器 Boa 选用的是 Uboot-2009-11 版本 选用 植到 选 用 内核 , 经修改配置裁剪顺利移 Linux2.6.32 平台 ARM YAFFS2 可 更 好 的 支 持 的 大 页 2 K NANDLASH 选 用 Busybox-1.13.3 版 本 , 编 译 后 可 生 成 bin 和 sbin 移 植 了 和 linuxrc 初始化文件 BOA-0.94.13 版 本 可 以 在 局 域 网 访 问 控制器主页 数据库 移植了 Sqlite SQLite3.6.23 版本做为系统的数据库 图形界面系统 采用的是 Qtopia2.2.0 版本 , 程序集 , 可以选取应用 其 中有丰 富的 应用 Yaffs2, 以 配 合 Busybox1.13.3, 文件 , 移植 linuxrc 令 [4]。 SQLite bootloader, 作 系 统 其任务是初始化处理器及外设硬件资源并引 导 操 内核 为 这 版提 供 了 更多 的 驱 动 程 序 以 及 API, linux2.6.32, 。 调 用 起 来 更 加 的 方 便 [3]。 在 内 核 中 要 添 加 对 帧 缓 存 frambuffer 的 支 持 图形 系 统 需要 它 的 支持 [5]。 , 文 件 系 统 使 用 每 页 的 大 页 存 储 器 2 K 配置编译完之后会生成 目录以及 从而系统就具备了系统以及文件管 理 的 相关 命 sbin bin 和 根 文 件 系 统 选 用 。 服务器实现了嵌入式服务器的功能 Boa 是面向嵌入 式 系 统的 数 据 库 。 的数据记录 只有几百 支持 k, 2T 。 的减小应用程序管理数据的开销 译路 径 并进 行 安 装 。 在 安 装 目 录 下 生 成 。 编 译 完 成后 非 常 小 , 在嵌入式系统中可以有力 下列语句配置编译器与编 bin、include 及 lib 3 个文件夹 , 分别为可执行文件 头文件与库文件 、 。 ../configure--host=arm-linux--prefix=/usr/lo-cal/Sqlite3 ; 的信号与插槽机制提供了对象间的通信机制 linux 图 系 统 消 费 电 子 设 备 所 研 的 软 件层 次 为 3 qtopia 。 程 序 员 通 过 建 立 一 个 函 数 函 数 把 这 个 插 槽 和 一 个 信 make &&make install ; 是专 门 针对 嵌 入 式 Qtopia 发的一套应用程序 包 和开 发 库 [5]。 结构图 。Qtopia 窗 口 在 事 件 发 生 后 会 激 发 信 号 , connect() 称 作 插 槽 然 后 调 用 ), ( 号连 接 起 来 以 一 个 信 号 对 应 多 个 插 槽 函 数 个 信 号 [6]。 , , 这 样 就 完成 了 一 个事 件 和 响应 代 码 的连 接 可 也 可 以 一 个 槽 函 数 对 应 多 。 谭 涛,等 基于 Arm-Linux 的嵌入式智能家居控制系统的设计 图 3 Qtopia 软件层次结构图 Fig. 3 Qtopia software hierarchy diagram 4 应用程序的设计 通过一个应用程序为例说明如何把 图形系统 嵌入 , QT 式数据库 SQLite,linux 下的串口通信程序结合到一起完成应 通过下列语句在 与 C C++ 程序中调用 SQLite 。 完成数据库的创建 插入数据与查询数据 、 。 用程序的设计 的 API SQLite3_open ("user.db", &db);// 创 建 并 打 开 数 据 库 user.db。 char *sql="CREATE TABLE namekey (IDINTEGERPRIMARY KEY,name BLOB, KEY BLOB); //建立一个表 ,内容为包括顺序号 ,用户名,用户密码。 SQLite3_exec( db , sql , 0 , 0 , &zErrMsg );//执行 *sql 语句。 在系统中还需要在数据库系统中存储很多 其 他信 息 , 循上述步骤分别建立相应的数据表存储报警电话号码 作状态设定 设备工作信息 报警信息 等 bj zt, set, 遵 工 、 tel, 图形界面 。 所示 。 图 4 应用程序设计流程图 Fig. 4 Application flow chart 首先用 Qt Desinger 根据系统要求设计图形界面 建立槽 , 函 数 开 槽 并 且 通 过 语 句 connect (PushButton1,SIGNAL 建 立 信 号 与 (clicked()),this,SLOT( set_userandphone () ) ); 槽 函 数 的 连 接 槽 函 数 需 要 根 据 设 计 的 功 能 需 要 编 写 。 用 。 与 MOC UIC 槽 功 能的 工 具 生 成 文 件 user.h、user.cpp 及 完 成 信 号 与 插 moc_user.cpp 程 序 由 , PROGEN 与 TMAKE 生 成 工 程 文 件 码 , user.pro 与 要把库路径加 到 Makefile。 user.cpp 中 有 数 据 库 代 库 文件 的 搜 索路 径 中 否则 会 因 SQLite Makefile 为找不到 SQLite 的库文件而编译失败 。 LIBS = $ (SUBLIBS) -L $ (QPEDIR)/lib -L $ (QTDIR)/lib - -161-
《电子设计工程》2011 年第 3 期 lqpe -lqtopia -lqte -lSQLite3 //把 -lSQLite3 加 入 到 库 文 件 搜 索路径中。 要实现用户的用户名 、 密码等信息存到前面创建的 user. PC 数据库中 要把创建表与插入数据的代码放到槽函数下 和 X86 环境编译器 db 点击 , 按钮后就会产生一个信号来触发槽函数 , set 。 实现数据 arm-linux-g++, gcc 下并运行测试 write(fd,&a,1);//通过串口发送数据 完 成 环 境 下 的 编 译 之 后 需 要 修 改 Makefile 文 件 把 和 gcc 修改为嵌入式环境下的 g++ arm-linux- 编 译 完成 下 载 到文 件 系 统的 相 应 目录 系统的其他应用程序如系统工作模 式 设定 、 , 库的创建与数据的存储 。 实现串口通信的功能把设置的信息 状态查询等也遵循同样的开发流程 。 传递给智能家居的各个控制模块 结构体的各成员值实现波特率 , 校验位 需通过设置 停止位等设置 struct termios 完 成 , 之后对串口的操作就可以像普通文件一样进行读写操作 、 、 串 。 口通信程序代码也放到槽函数下边 if((fd=uart_init(1,1))<0);//打开串口 read(fd,&a,1);//读串口数据 图 5 序的图标 息后点击 为第一个为系统的总体界面 , 第二幅为示例应用程序的界面 , 。 里 面 包 含 应 用 程 在输入 相应 的 信 12 按钮 , 用户名密码以及报警电话分别保存到了 表中并发送给电话报警模块 达到了设定用户 。 set 与 namekey 信息的设计目标 tel 。 图 5 应用程序测试 Fig. 5 Application tests 5 结束语 本文 利 用嵌 入 式 数 据 库 实 现 了 对 智 能 家 居 控 制 SQLite 系 统 的 数据 管 理 , 在 管 理 效 率 上 有 了 很 大 提 高 节 省 了 系 统 , 应用 资源开销 。 面更加友好 , 图形系统实现了操作界面的可视化界 很好的满足 系统运行稳定 操作更加简单明了 Qtopia 。 , 。 了设计要求 参考文献: [1] 方策. 基于网 络 的 SQLite 的家 电 管 理系 统[J].微 计算 机 信 息,2009(25):73. FANG Ce.Appliance management system based on network 民邮电出版社 ,2008. [4] 李 永 ,何 旭 莉 ,刘 小 洋 ,等 .嵌 入 式 Linux 程 序 设 计 案 例 与 实验教程[M].机械工业出版社 ,2009. [5] 张峰 ,石 现峰.嵌 入 式数 据 库 在振 动 监 测系 统 中 的应 用[J]. 自动化与仪表,2009(8):46-48. ZHANG Feng,SHI Xian-feng. Application of embedded database in vibration monitoring system [J]. Automation & Instrumentation,2009(8):46-48. [6] 贺翔 ,孟小华. 嵌入式智能家居终端人 机界 面 设 计与 实 现 [J].计算机工程与设计 ,2010,31(10):2166-2168. HE Xiang,MENG Xiao-hua. Design and implementation of and SQLite[J].Microcomputer Information,2009(25):73. human-computer interface in embedded intelligent home [2] 韦东山. 嵌入式 Linux 应用开发完全手册[M].北京:人民邮 system [J] . Computer Engineering and Design,2010,31 电出版社,2008. [3] 杨宗德,邓玉春,曾庆华.LINUX 高级程序设计[M].北京 :人 (10):2166-2168. 欢迎投稿! 欢迎订阅! 欢迎刊登广告! " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" 国内刊号: CN61-1477/TN 在线投稿系统: http://mag.ieechina.com 国际刊号:ISSN 1674-6236 ad@ieechina.com(广告) -162-
分享到:
收藏