第
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-