嵌入式数据库的智能家居网关设计

发布时间:2010-11-29 阅读量:2499 来源: 发布人:

【中心议题】

  • 以嵌入式数据库MySQLite为中心构造一个以S3c44BoX+uLinux+Boa+MysQLite的家庭网关
  • 重点介绍了信息家电在MysQLite中数据表的生成及分类

【解决方案】

  • 以嵌入式微处理器s3c44BOX为中心进行硬件设计
  • 嵌入式操作系统uCLinux和嵌入式数据库MySQLite的移植

引言

智能家居是通过综合采用先进的计算机、通信和控制技术(3C),建立一个由家庭安全防护系统、网络服务系统和家庭自动化系统组成的家庭综合服务与管理集成系统,从而实现全面的安全防护、便利的通讯网络以及舒适的居住环境的家庭住宅。

从上世纪80年代开始,西方发达国家率先掀起了智能家居技术研究的热潮。随着研究的飞速进展,人们对智能家居概念的理解逐步深入,越来越多的新思想、新技术应用到这个领域,从而有力地推动了现代智能家居的蓬勃发展。

1总体设计

本文构造了一个基于S3C44BOX+uCLinux+MysQLite+Boa的嵌入式家庭网关。如图1所示。以嵌入式微处理器S3C44BOX为中心设计其他功能模块作为家庭网关硬件平台,裁减并移植嵌入式操作系统uCLinux为家庭网关提供底层软件支撑。信息家电通过IAIDL(信息家电接口定义语言)向家庭网关注册,MySQLite存放每个家电的注册信息、参数值以及状态信息等,在需要的时候通过对嵌入式数据库的访问实现对信息家电的信息检索和远程监控。它同时保存用户信息表,赋予不同的用户检索、修改家电信息的相应权限。远程监控端浏览器通过访问家庭网关嵌入式WEB服务器Boa,调用相应的CGI应用程序来执行目标操作。

 

2家庭网关硬件的设计

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

3软件平台的构建

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

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

3.2嵌入式数据库MySQLite的移植

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

(l)添加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的相关数据表中,家庭网关编译器就扮演了这样一个转换的角色。在MySQLite,表的逻辑功能图如图3所示。

4基于MySQLite的家庭网关程序设计

家庭网关嵌入式WEB服务器端的应用程序是建立在CGI基础之上的。因此,基于MySQLite的应用开发就是如何应用CGI程序建立、访问、更新MySQLite数据库的过程。大致可以分为三步来完成:首先建立一个家庭网关数据库,然后通过HTML文档制作一个WEB页面及内建表单,最后编写一个由解码部分、功能部分、输出部分三部分组成的CGI程序。

CGI程序的功能部分中利用MySQLite提供的C语言API函数完成与数据库的交互。首先提供文件名和访问模式来调用mysqlite_open()连接数据库,然后调用mysqlite_exec()函数执行SQL语句,最后执行mysqlite_close()关闭数据库。

 

在家庭网关应用程序中是如何将客户的注册信息,通过CGI程序写入数据库文件IAdatabase中表users中的,其代码如下:

#include

#include

#indude

#define MAXQRY 300

Voidmain()

{char*errrQsg;

Int ret;

Char qry[MAXQRY];

/*以可读写方式打开数据库文件IA_database*/

mysqlite*db=mysqlit_open(IA_database”,0777&errmsg);

if(db==0)

{fPrintf(stderr“,CoundnotoPendatabase:%s\n”,errmsg);

Mysqlit_freemem(errmsg);

exit(1);}

sPrintf(qry,“INSERTINTOUSERS(namePassword)\n

VALUES(%s’,‘%s),namePassword);

/*执行SQL语句,向数据库表USERS中插入记录*/

ret=mysqlite_exec(dbqry,null,null,&errmsg);

 

if(ret!=MYSQLITE_OK)

{fprintf(stderr,"SQL error:%s\n%s\n",emnsg,qry);}

else{printf("%s%s was inserted fin",name,password);}

/*关闭数据库*/

mysqlite close(db);}

CGI应用程序将标准输出(stdout)作为向WEB服务器传递数据的一种重要途径。通常,CGI应用程序将执行结果输出到标准输出,WEB服务器从中读取信息,并将这些信息返回给客户端。因此,如果要将SQL查询结果输出给远程用户,CGI应用程序可以使用prinitf()函数将查询结果以HTML的形式输出到标准输出,进而家庭网关服务器向客户端返回动态页面,实现用户、WEB服务器与数据库MysQLite的交互。其网关服务流程图如图4所示。

 

整个家庭网关程序设计都以嵌入式数据库MysQLite为核心,它是网关能否实现信息家电监控功能的关键,也是实现信息家电之间协作的重要存储库。实现远程监控端用户通过浏览器对嵌入式数据库的访问至关重要。

5结论

本文的创新点:在综合分析当前嵌入式数据库系统的主要功能和发展现状的基础上,针对嵌入式设备的具体特点,结合在家庭网关中的实际应用需求,在Linux下用C语言设计了一款能有效存储、操作和管理信息家电数据的嵌入式数据库系统MySQLite,并基于此数据库构造了一个S3C44BOX+uCLinux+MySQLite+Boa的嵌入式家庭网关。

相关资讯
全球组织瘦身:英特尔启动新一轮裁员应对业绩挑战与战略转型

英特尔公司新一轮全球裁员行动正式启动。根据内部信息,其核心制造部门——英特尔代工厂(Intel Foundry)的“初步”裁员已于7月中旬展开,预计在本月底完成首阶段人员调整。公司高层在致工厂员工的备忘录中强调,该决策旨在“打造一个更精简、更敏捷、以工程及技术能力驱动的制造体系”,此举对于“赢得客户信任”及提升市场竞争力至关重要。

全球DRAM产业加速转向DDR5,美光正式启动DDR4停产计划

全球三大DRAM巨头——三星电子、SK海力士和美光科技——已正式拉开DDR4内存大规模停产的序幕,标志着主流内存技术加速进入更新换代期。继三星率先宣布其DDR4产品线将在2025年底结束生命周期后,美光也正式向核心客户发出通知,确认其DDR4/LPDDR4产品在未来2-3个季度内将逐步停止出货。

三星试产115英寸RGB MicroLED电视,高端显示技术再升级

据行业消息,三星电子近期在其越南工厂启动115英寸RGB MicroLED电视的试生产。电视业务负责人Yong Seok-woo亲赴产线视察流程,标志着该技术正式进入量产准备阶段。尽管产品命名包含"MicroLED",但技术本质为采用RGB三色MiniLED背光的液晶电视(LCD),通过创新背光方案实现画质跃升。

AMD与三星深化AI芯片合作,HBM3E加速量产推动AI服务器升级

AMD在AI Advancing 2025大会上正式宣布,其新一代MI350系列AI加速器将搭载三星电子与美光的12层堆叠HBM3E高带宽内存芯片。这是AMD首次公开确认三星的HBM3E供货身份,标志着双方战略合作进入新阶段。MI350X与MI355X两款芯片采用相同架构设计,仅在散热方案上存在差异,均配备288GB HBM3E内存,较上一代MI300X的192GB提升50%,比MI325X提升12.5%。

舜宇光学5月出货数据解析:车载业务强势增长,高端化战略重塑手机业务格局

全球光学龙头舜宇光学科技(02382.HK)近期披露2025年5月出货量数据,呈现“车载领跑、手机承压、新兴品类崛起”的鲜明态势。在汽车智能化浪潮与消费电子结构性升级的双重驱动下,公司业务版图正经历深度调整。