微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于嵌入式的智能家居监控系统设计

基于嵌入式的智能家居监控系统设计

时间:01-24 来源:电子技术应用 点击:

随着信息技术和Internet技术的发展,实现家居网络化和智能化已经成为当前研究的热点。具有用户界面、能远程控制、智能管理的电器是未来的发展趋势。在此形势下,基于ARM、PowerPC等32位微处理器的出现,使嵌入式Internet成为现实,传统PC的Web服务完全可以通过嵌入式控制器实现。正如早已为人们熟知的"把互联网带入生活中",使用嵌入式Web技术的家居计算机网络成为目前网络发展的一个重要方向。

基于PC架构的智能家居由于实用性较差已经逐步退出了市场,目前只有一些国外厂商和极少数国内厂商选择了基于嵌入式的技术方案。而基于嵌入式系统的家庭智能系统在国内才刚刚出现,随着嵌入式技术更加广泛的应用,成本的逐步降低,智能家居最终将走向嵌入式[1]。

经过比较,嵌入式智能家居具有明显的优势,因此本文选择嵌入式系统作为智能家居的核心。由于ARM处理器具有体积小、功耗低、成本低、性能高以及Linux开源等优点,本系统选择三星公司的ARM9处理器S3C2410作为嵌入式处理器,操作系统为Linux。

1 系统整体模块设计

本系统主要在嵌入式系统上进行视频监控模块和远程电器控制模块的设计。嵌入式系统由嵌入式处理器S3C2410和Linux系统组成。视频监控模块由Web服务器、视频服务器和客户端以及实现通信的通道组成。远程电器控制模块在Web服务器上,通过CGI交互,实现对家电的控制。本系统采用模块化设计,由嵌入式系统模块、视频采集模块、视频服务器模块、视频客户端模块和远程电器控制模块组成。系统的整体框架图如图1所示。嵌入式处理器S3C2410是一款基于ARM920T内核的16/32位RISC微处理器。内部带有全性能的MMU(内存管理单元),它适用于设计移动手持设备类产品,具有性能高、功耗低、接口丰富和体积小等优良特性[2]。


2 系统的软件设计实现

2.1 图像采集模块的实现

本系统采用USB接口的PC350摄像头,该摄像头的后端采用OV511+视频芯片, 图像传感器采用新一代CMOS感光芯片,摄像头硬件压缩率超过5:1,非常适合视频监控的图像采集[3]。目前Linux内核中已经有支持OV511芯片的驱动,因此无须下载驱动程序。该驱动可以用模块化的方式加载,也可以编译进内核,本系统采用编译进内核的方法。

在内核加载了OV511摄像头驱动之后,系统就能识别并支持该摄像头,再只需编写视频采集程序就可工作。视频采集应用程序的设计通过Linux内核中的Video4Linux实现。

Video4Linux是Linux中关于视频设备的内核驱动,它为针对视频设备的应用程序编程提供了一系列接口函数。在视频采集中,应用程序首先通过open( )函数打开视频采集设备并返回一个文件描述符号,这个文件描述符就代表了捕获的设备硬件。成功开启设备档后,调用ioctl( )取的设备文件的相关信息,并且将取得的信息放到video capability结构中,同样调用ioctl( )将视频窗口信息放到video picture结构中。视频设备的关闭通过close( )函数实现。在本系统中,视频图像的获取采用mmap( )的方式共享内存来实现。此方法不必再调用read( )、write( )等操作,不仅进程可以直接读写内存,进程通信效率高,而且不需要拷贝任何数据。

2.2 远程视频监控模块的实现

视频监控模块采用"浏览器-服务器"模式,即在采集端构建嵌入式Web服务器,并在Web服务器的基础上移植视频服务器webcam,在客户端利用Java Applet 来接受视频服务器发送过来的视频信息。本模块包括嵌入式Web服务器设计和视频服务器webcam的移植实现。

2.2.1 嵌入式Web服务器设计

嵌入式Web服务器器是指将Web服务器引入到嵌入式系统中,在相应的硬件平台和软件系统的支持下,根据应用的需要实现通用的Web服务器的全部或者部分功能。嵌入式Web服务器仍然以TCP/IP协议为底层,在该Web中使用的应用层的通信协议是HTTP协议,通过HTTP协议实现客户端(一般为浏览器)和嵌入式Web服务器的信息交换[4]。

在嵌入式领域,常用的Web服务器有thttpd和boa,boa目前用的最多。boa是一个非常小巧的Web服务器,可执行代码只有约60 KB,占用系统资源少,而且速度快、安全性好[5]。目前使用的Linux2.6内核还没有包含boa代码,因此需要移植到本系统中。首先从www.boa.org下载boa源代码(目前最新版本boa-0.94.13),解压到Linux系统目录下,用交叉编译器编译。这样在boa-0.94.13/src目录下生成boa应用程序,把生成的boa应用程序下载到开发板上Linux系统中的/bin目录下,让boa在系统启动时自动运行,这样在开发板上就移植了boa服务器。

2.2.2 视频服务器webcam的移植实现

视频信息通过摄像头采集到的图像需要通过网络传送到另一端,并通过浏览器显示出来,这一过程通过视频服务器实现。视频服务器的工作主要是与客户端建立链接,并根据客户端用户的指令,调用相应的函数处理客户端的控制要求。视频服务器工作流程如图2所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top