手机端
or

欢迎您加入我爱方案网QQ群

1.智能产品外包服务群(311606115)
2.嵌入式项目开发群(491609563)

嵌入式SQlite的家居服务器设计

张青; 田跃欣| MySQLite,CGI,家庭网关| 2010-11-29
1333 收藏
分享到: 
每日精选
热门推荐

【中心议题】

  • 概括性地介绍数字家庭和嵌入式数据库的概念
  • 设计了一个嵌入式SQlite的家居服务器

【解决方案】

  • 以嵌入式数据库MySQLite为中心
  • 构造一个以S3C44B0X,嵌入式数据库MysQLite的家居服务器

引言

嵌入式系统目前的应用可以说是无处不在,它的占用资源少,专用性强,功耗低的特点使其广泛应用在移动通信领域,工业生产领域,安全监控领域等等。数字家庭这一理念从提出到现在经过了不到20年的发展,一开始只是一些个体的具有一定智能的家居设备,而现在是从整体上去设计智能家居体系结构,提出了数字家庭网关,家居服务器,家电管理等等一些概念。

1家居服务器总体设计

目前大部分的数字家庭家居服务器采用的都是以个人电脑即PC为中心,家电设备与PC相连的体系结构,这样开发的服务器降低了系统开发的难度。但必须有一台PC作为独立的服务器,增加了成本,而且这种结构有着一个最大的缺陷就是功耗大。从数字家庭的设计理念我们可以发现,数字家庭可以说是全天候服务的系统,而功耗自然成为数字家庭设计开发以及普及使用的一个重要问题。以嵌入式设备来设计家居服务器很好的解决了功耗的问题,整个数字家庭服务器作为一个专用的嵌入式设备,其功耗要比PC小的多,成本又小于个人电脑而且它不需要额外的散热装置。本文提出的数字家庭的构想在基于目前比较流行的数字家庭的体系结构的基础上提出了自己的改进,其中一个很大的不同就是采用嵌入式设计理念,使得家居服务器成为一个嵌入式设备。

在数字家庭中,家居服务器需要管理的设备,以及要进行的服务是非常繁多的,如何设计一个良好的家居服务器是数字家庭得以实现并保证良好运行的关键。数字家庭主要的功能以及将嵌入式数据库应用到家居服务器之后,其家居服务器的体系结构如图1

 

2家居服务器硬件的设计

32ARM嵌入式微处理器具有高性能、低功耗的特性,已被广泛应用于消费电子产品、无线通信和网络通信等领域,极其适合于对成本和功耗要求较苛刻的应用场合。因此,本文选取了一款三星公司生产的基于ARM7TDMI核的16/32RISC嵌入式微处理器s3c44BOX。并以此为中心,设计了其它功能模块FLASH接口模块、SDRAM接口模块、网络接口模块以及其它外围辅助电路模块诸如时钟电路、复位电路等,如图2所示。

3软件平台的构建

3.1嵌入式操作系统uCLinux的移植

uCLinuxMicroControlLinux,即“针对微控制领域而设计的Linux系统”。它它可以说是最早的嵌入式Linux发行版本,是专为没有MMU(内存管理单元)的处理器而设计的,将根据需要进行裁减后移植作为软件的平台。

3.2嵌入式数据库MySQLite的移植

嵌入式数据库MySQLite是基于Linux开发的,因此在ARMuCLinux上的移植相对简单,主要实现步骤如下:

(1)添加MySQLite作为uCLinux的一个用户应用程序;

(2)针对具体的ARMuCLinux修改MysQLite;

(3)编译生成包含有mysqliteromfs文件系统;

(4)下载romfsuCLinux的可读写目录,运行mysqlite即可。

 

3.3嵌入式WEB服务器Boa的实现

Boa是一个单任务的http服务器,源代码开放、性能高,支持认证,支持CGI。目前,uCLinux中己包含了boa的源代码,通过在boa.confmime.types文件中修改网页存放的路径以及CGI程序存放的目录,并且修改aut_check_userpass()函数完成多用户合法性验证,从而在uCLinux中实现BoaWEB服务。

3.4 MySQLite中数据表的生成和分类

家庭网关数据库MySQLite中包含有两种类型的数据表:用户信息表和家电信息表。用户信息表用于存储用户名称和密码,可与用户登录程序login、用户注册程序registration进行交互。

家电信息表主要存储家电的运行状态数据,主要与家电控制程序controller、查询程序query进行交互。

家电通过接口定义语言向家庭网关注册,家庭网关编译器对信息家电接口定义语言(IAIDL)进行扫描与分析,并将其解释成一种中间信息,再将这些信息存储在MysQLite的相关数据表中。

IAIDL能够较完备地描述信息家电的属性和功能,并在一定程度上定义了家庭网络中设备之间的互操作。但是IAIDL不是编程语言,只是说明性语言,因此它不可能被编译或解释成一个可执行的程序。这就需要有一种机制能提取信息家电向家庭网关注册时所发送的IAIDL中所描述的内容,并解释成一种中间信息,通过调用MysQLite提供的API函数,把这些信息存储在MysQLite的相关数据表中,家庭网关编译器就扮演了这样一个转换的角色。

4基于MySQLite的家居服务器程序设计

家电管理程序主要通过嵌入式数据库SQLite提供的接口函数对数据库进行操作,以达到数据的存储,查询,修改等操作。

此外,为了能够在嵌入式环境下提供交互性更好的图形界面,我们使用了Qt图形开发工具,用图形界面代替原本的字符界面也是嵌入式发展的一个趋势,这样可以使得用户对嵌入式设备的操作更加简便,界面更加人性化。家电管理程序的结构图如图3所示。

由于SQLite不象SQL Server那样是引擎响应式的数据库而是程序调用式,此外,Qt也不象Visual C++Delphi那样在程序中提供了对数据库编程的支持,所以想要在Qt环境下开发数据库相关的程序,必须在工程文件上做修改,或者直接修改Makefile文件以实现与数据库的连接。

 

设计家电管理程序的主要目的是验证我们提出的数据管理模式的可行性,并给出利用嵌入式数据库,以及Qt开发工具开发数据库相关应用程序的方法,所以模拟的家电管理程序本身功能并不复杂,要管理的家电设备也只选取了具有代表性的空调,热水器和微波炉,管理的内容包括各个电器的状态查询和状态修改设定,其功能示意如图4

开发嵌入式环境下的应用程序不同于开发PC环境下的应用程序,其步骤要更加复杂,5就说明了利用QtSQLit。开发应用程序的基本过程

 

那么为了能够使用Qt开发应用程序,首先要在宿主机端建立Qt/Embedded程序的开发环境,在这样的环境下,能够对利用使用Qt编写的应用程序在嵌入式环境下的运行提供模拟。其次要使得我们的实验环境能够对用Qt编写的应用程序提供运行支持,也就是在实验环境中要存在支持Qt程序运行的相关库文件。下面就首先介绍如何在PC上的建立Qt/Embedded的开发环境以及如何在实验环境中提供支持Qt运行的相关库文件。

5结论

本文的创新点:在综合分析当前嵌入式数据库系统的主要功能和发展现状的基础上,针对嵌入式设备的具体特点,结合在家庭网关中的实际应用需求,本文就是考虑应用嵌入式数据库来解决未来数字家庭的数据管理问题,首先提出了应用嵌入式数据库的家居服务器体系结构,并对比考虑了传统数据管理模式的优缺点,提出了以嵌入式数据库为核心的模式,然后给出了数据管理中心的建立方法,包括如何建立硬件和软件环境,以及如何使得核心数据库得以运行。最后给出了在该数据管理模式下的基于SQLite以及Qt/Embedded的应用程序的开发过程。

点赞

深圳市中电网络技术有限公司 Copyright© www.52solution.com 粤ICP备10202284号