您的位置 首页 新能源

嵌入式智能家居监控体系的规划与完成

1引言随着家庭网络研究的兴起,如何设计一种集家电管理、协议转换和家庭网络监控为一体的家庭网关,实现家用电器的网络化、智能化和远程控制,已成为当前研究的热点。本文以CGI原理为基础,以嵌入式

  1 导言

  跟着家庭网络研讨的鼓起,怎么规划一种集家电办理、协议转化和家庭网络监控为一体的家庭网关,完结家用电器的网络化、智能化和长途操控,已成为当时研讨的热门。

  本文以CGI原理为根底,以嵌入式数据库为后台,用软件编程的办法完结用户、Web服务器以及网关运用程序之间的动态交互,提出了-一种新的依据SIP协议和嵌入式数据库完结家居长途监测和操控的处理方案。

  2 总体方案

  本体系包括信息家电、智能家庭网关和长途监控端三个首要模块。信息家电被作为SIP的智能终端接入家庭网关,以SIP音讯办法向后者发送网络标识恳求帧和设备描述文件,完结注册;家庭网关依据SIP网络服务器和Web服务器,一方面完结对信息家电的认证和办理,另一方面为长途监控端供给服务;用户可经过PC浏览器和依据SIP用户署理的监控软件两种办法完结对信息家电的长途监控。其全体结构如图1所示。

  在家庭网关硬件渠道的规划进程中,本文选用模块化的办法,以中央处理单元为中心,

  规划其他相关功用模块。软件规划方面,依据ARM7TDMI核的微处理器移植了嵌入式操作体系uCLinux,为完结SIP协议栈供给底层软件支撑。依据SIP协议栈完结SIP网络服务器,完结了信息家电的注册、认证和办理。并经过移植Boa Web服务器和SQLite数据库到uCLinux体系中,以CGI原理为根底完结动态Web技能。

嵌入式智能家居监控体系的规划与完结 - qmz8682008 - 齐正确的博客

  图1 嵌入式智能家居监控体系全体结构图 图 2 家庭网关硬件渠道结构规划

  3 嵌入式数据库在监控体系中的运用

  在嵌入式长途监控体系中,需对许多的实时数据进行收集和处理,多样化的数据存储和办理需求一个后台数据库来支撑。因为嵌入式体系软硬件资源都有限,传统的企业数据库如Oracle、Sybase等显着臃肿,很难发挥作用,因而,本文选用了小型的开源嵌入式数据库SQLite,并针对家庭网关ARM-uCLinux渠道对其进行移植、削减和运用。

  3.1 SQLite在ARM-uCLinux上的完结

  SQLite是用C言语编写的开源嵌入式数据库引擎,占用资源十分低,在嵌入式设备中,只需求几百K的内存就够了[1]。它能够支撑Windows/Linux等干流操作体系,其处理速度乃至令开源国际闻名的数据库办理体系Mysql、PostgreSQL望尘莫及[2]。SQLite 对SQL92 标准的支撑包括索引、约束、触发和检查,支撑原子的、共同的、独立和耐久的(ACID)业务。

  SQLite在ARM-uCLinux上的首要移植进程如下:

  (1) 下载并解压软件包至uCLinux-dist/user目录下;

  tar zxvf sqlite-2.8.16.tar.gz –C uCLinux-dist/user/

  (2) 参照uClinux-dist/Documentation/Adding-User-Apps-HOWTO文档;

  增加SQLite作为uCLinux的一个用户运用程序

  (3) 针对ARM-uCLinux修正SQLite;

  修正sqlite/src/os.c、sqlite/src/shell.c等文件

  并以sqlite/Makefile.linux-gcc文件为蓝本,写一个适宜的Makefile

  (4) 顺次运转make dep;make lib_only;make user_only;make romfs;make image

  即在uClinux-dist/images下编译生成了包括有sqlite的romfs文件体系。

  (5) 下载romfs到ARM-uCLinux的可读写目录,运转sqlite即可。

  3.2 SQLite的C程序规划

  嵌入式数据库SQLite与操作体系和详细运用集成在一起,无须独立运转的数据库引擎,它由程序直接调用相应的API函数去完结对数据的存取操作。其中有三个中心API函数。sqlite_open()和sqlite_close()别离翻开和封闭嵌入式数据库文件即树立和开释SQLite引擎,而sqlite_exec()能够履行SQL句子并取得成果,经过自行编写回调函数可进一步对履行成果进行处理。

  本体系经过现场总线由实时数据收集、处理模块依照用户设定的操控参数(如A/D采样频率等),对信息家电信号进行收集和数字滤波,然后调要API函数将数据存入SQLite数据库。SQLite对设备信息进行办理,并且支撑查询、修正等功用。

  4 SIP协议在家庭网关中的运用分析

  SIP(Session Initiation Protocol)是由IETF(Internet 工程使命组)于1999年提出的依据IP网络完结实时通讯运用的一种信令协议[3]。它结构简略、易于扩展,供给杰出的QoS支撑。尽管首要为IP网络规划,但它也能够在ATM、帧中继等承载网中作业,是下一代网络VoIP的重要处理方案。

  4.1 家庭网关中SIP各组件的功用规划

  SIP协议包括两类组件:用户署理(User Agent)和网络服务器(Network Server)。用户署理完结呼叫的建议和接纳;网络服务器首要为用户署理供给注册、认证和路由等服务,它又分为署理服务器、重定位服务器和注册服务器。

  本体系中各网络服务器的功用规划如下:

  (1)注册服务器承受用户署理(信息家电)的注册(REGISTER)恳求,在SQLite中动态树立家电的逻辑地址和其当时联系地址之间的对应联系。然后不管在何处,都能够经过仅有的逻辑地址进行通讯,完结对家电移动性的支撑。回来状况码为200的成功呼应,完结信息家电的注册。

  (2)重定位服务器供给地址解析服务,功用类似于DNS,用于在需求时(如信息家电方位改动、完结负荷分管等)结构一个重定向呼应音讯,将新的方针地址回来给监控程序。

  (3)署理服务器类似于HTTP的Proxy和SMTP的MTA(Message Transfer Agent),担任接纳用户署理(监控软件)发来的恳求,依据网络战略将恳求发给相应的信息家电,并依据收到的应对对监控端做出呼应。

  4.2 SIP协议栈的完结

  SIP协议栈oSIP是第一个自由软件项目,运用标准c编写,结构简略而细巧,速度特别快,支撑线程安全,能够开发注册服务器、署理服务器和用户署理等[4]。oSIP开发库首要是在uCLinux上完结SIP协议的语法解析和状况机分析,为完结SIP服务器供给开发接口。

  本文规划的SIP协议栈在oSIP开发库的根底上进行了修正和二次开发,首要包括两个方面的内容:状况机模块和语法解析器模块。前者完结对某个业务(注册进程,呼叫进程等)的状况记载,并在特定状况下触发相应的事情。后者首要完结对SIP音讯结构和URL结构的分析。下面是家庭网关承受信息家电注册的部分源代码:

  (1) 初始化oSIP栈: Int osip_global_init();

  (2) 包括SIP有限状况机API的库文件: #include

  (3) 包括SIP语法分析API的库文件: #include

  (4) 部分函数声明

  void osip_setcb_rcvinvite(); /* 信息家电向SIP服务器发送恳求 */

  void osip_setcb_rcvregister(); /* SIP服务器完结信息家电的注册 */

  void osip_setcb_rcvack(); /* SIP服务器向信息家点发送应对 */

  5 依据SQLite和SIP的家庭网关的规划

  作为智能家居的中心设备,家庭网关的规划显得尤为重要。它为信息家电供给一个一致的渠道,经过该渠道能完结信息家电之间或信息家电与长途操控端之间的互连和信息交流。

  5.1 硬件渠道的规划与操作体系的选取

  32位ARM嵌入式微处理器具有高功能、低功耗的特性,已被广泛运用于消费电子产品、无线通讯和网络通讯等范畴,极端适合于对本钱和功耗要求较严苛的运用场合[5]。

  因而,本文选取了一款三星公司出产的依据ARM7TDMI核的16/32位RISC嵌入式微处理器S3C44B0X。并以此为中心,规划了其它功用模块:FLASH接口模块、SDRAM接口模块、网络接口模块以及其它外围辅佐电路模块比如时钟电路、复位电路等。如图2所示。

  uCLinux在Linux的根底上增加了对没有MMU的微处理器的支撑[6],所以它一方面承继了Linux的大部分长处:例如稳定性、各种网络协议栈的支撑以及不同类型的文件体系支撑等等;另一方面,它广泛地运用于嵌入式领

  uCLinux在Linux的根底上增加了对没有MMU的微处理器的支撑[6],所以它一方面承继了Linux的大部分长处:例如稳定性、各种网络协议栈的支撑以及不同类型的文件体系支撑等等;另一方面,它广泛地运用于嵌入式范畴,内核精简(一般小于512k),并支撑许多常用的嵌入式微操控器系列。正是出于对多使命操控、网络功用和可移植性等方面的考虑,本规划选用嵌入式操作体系uClinux,并完结在ARM微处理器上的移植。

  5.2 Web服务器和嵌入式数据库的运用

  Boa是一个单使命的http服务器,源代码敞开、功能高,支撑认证,支撑CGI。现在,uCLinux中已包括了boa的源代码,因而在uCLinux中完结Boa十分简略,只需求在boa.conf 和mime.types 文件中修正网页寄存的途径以及CGI程序寄存的目录。

  SQLite中寄存每个家电的基本信息、参数值以及状况信息等,这些信息不光反映了各种参数的前史状况,并且也是办理、决议计划的重要信息来历,在需求的时分经过对嵌入式数据库的拜访完结对信息家电的信息检索和长途监控。数据办理是长途监控体系十分重要的部分。

  本体系中SIP网络服务器在SQLite中动态树立家电的逻辑地址和其当时联系地址之间的对应联系,完结信息家电的注册。用户可经过浏览器拜访家庭网关中的Web Server,并把参数提交给Web Server接纳,Web Server再把此参数传递给CGI程序解析,CGI调入SQLite中家庭网关各种状况参数,将成果转化为web浏览器能辨认的格局,作为Http应对音讯回送到客户端,然后完结对信息家电的设置和信息交互。

  6 总结

  信息家电和家庭网络的迅猛发展、家庭网关技能的前进,必将为咱们现在的家居生活带来新的惊喜。

  ARM、uCLinux、SQLite的结合,表现了嵌入式的特色,提高了家庭网关的功能;标准SIP协议的运用,既处理了当时家电设备所存在的办理、命名和移动等一系列问题,也使长途操控程序规划者不用关怀家庭网关的完结细节,只需求依照SIP协议的标准和智能家庭网络中的信息家电进行交互,这样就增加了家庭网关的通用性,简化和拓宽了智能家庭网络的运用。期望能给长途监控体系的研讨供给一些参阅。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/xinnengyuan/247916.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部