当前位置:首页 > 单片机 > 单片机
[导读]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技术。

图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的大部分优点:例如稳定性、各种网络协议栈的支持以及不同类型的文件系统支持等等;另一方面,它广泛地应用于嵌入式领

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

双方的合作促成了尖端人工智能视觉解决方案,提高了效率、连通性和成本效益

关键字: 人工智能 智能家居 机器学习

在智能家居日益普及的今天,无线开关作为实现家居自动化的重要工具,受到了越来越多消费者的青睐。然而,对于许多家庭来说,如何将现有的普通灯具接入无线开关,实现远程控制,仍然是一个值得探讨的问题。本文将详细阐述普通灯具接入无线...

关键字: 无线开关 智能家居

今天,小编将在这篇文章中为大家带来语音识别的有关报道,通过阅读这篇文章,大家可以对语音识别具备清晰的认识,主要内容如下。

关键字: 语音识别 智能家居

一直以来,语音识别都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来语音识别的相关介绍,详细内容请看下文。

关键字: 语音识别 智能家居 智能客服 人工智能

本文中,小编将对语音识别技术予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 语音识别 智能家居 物联网

LED灯作为现代照明领域的重要一员,以其高效节能、环保长寿命等优势,广泛应用于家居、商业、工业等各个领域。然而,在使用过程中,LED灯也可能遇到一些故障。本文将针对LED灯的三种常见故障进行详细分析,并给出相应的解决方法...

关键字: led灯 智能家居

语音识别技术,作为人工智能领域的重要分支,近年来取得了显著的进步。它能够将人类语音转化为计算机可理解的文本或指令,为人们的生活和工作带来了极大的便利。那么,语音识别技术究竟可以做什么呢?本文将从多个角度探讨其应用与价值。

关键字: 语音识别 智能家居

台湾新竹 – 2024年3月26日 – 新唐科技宣布推出基于微控制器的终端AI平台,使AI生态系扩展至微控制器领域。此解决方案是基于新唐全新架构设计的微控制器和微处理器,包括NuMicro® MA35D1、NuMicro...

关键字: AI 智能家居 机器学习

2024年3月25日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 即日起开售英飞凌CYW20822 AIROC™低功耗蓝牙模块。CYW208...

关键字: 低功耗蓝牙模块 工业物联网 智能家居

随着科技的飞速发展,智能家居、楼宇自动化等概念逐渐深入人心,而作为其中不可或缺的组件之一,双控开关扮演着举足轻重的角色。双控开关,顾名思义,是指可以在两个不同的位置控制同一盏灯或其他电器设备的开关。本文将深入探讨双控开关...

关键字: 双控开关 智能家居
关闭
关闭