嵌入式远程视频监控系统软件设计研究

2019-03-07 05:22赵雪梅
电脑知识与技术 2019年35期
关键词:软件设计嵌入式

摘要:嵌入式系统设计中,硬件设计是基础,软件设计是核心。文章提出了一种行之有效的嵌入式软件设计方案,并以此为核心,完成了一种基于嵌入式的远程网络视频监控系统的软件设计。系统软件设计中完成以下几方面的工作:首先完成对系统软件结构的设计,其次完成对嵌入式Linux开发的软件操作平台的搭建,最后完成对视频监控软件中USB摄像头的驱动模块及对视频图像的采集、显示等应用程序模块的设计与实现。

关键词:嵌入式;软件设计;Linux

中图分类号:TP391.4 文献标识码:A

文章编号:1009-3044(2019)35-0061-02

随着计算机网络、通信以及数字信息处理技术的不断进步,基于嵌入式Web的远程网络视频监控系统就是在计算机网络技术与嵌入式技术完美结合下的催生产物,它是现代高科技信息产业的结晶。基于嵌入式Web的远程网络视频监控系统把视频图像的处理和Web功能都集成到一个体积很小的设备之内,通过接入Internet网络,利用Web浏览器即可实现对采集到的视频图像进行查看,这样也就省掉了对传统的视频监控系统设备铺设很多复杂的电缆这个烦琐过程,而且系统的安装非常方便,因而使得基于嵌入式Web的远程网络视频监控系统获得人们的一致肯定和广泛应用。

1 嵌入式系统的软件设计

1.1系统软件设计的基础环节

基于嵌入式的远程网络视频监控系统的设计是在ARM9+Linux平台上进行研究开发设计的,因此,在完成系统的硬件设计及硬件平台的构建之后,就要开始进行软件方面的设计。而整个软件设计又紧密围绕嵌入式Linux操作系统而展开,也就是说,嵌入式Linux操作系統是整个嵌入式系统软件设计的核心。

从软件的角度来讲,一个嵌入式Linux操作系统通常分为四个主要部分:

1)引导加载程序BootLoader;

2)嵌入式Linux内核;

3)文件系统;

4)用户应用程序。包含满足使用用户需求的某些应用程序。

倘若要使一个嵌入式Linux操作系统能够在嵌入式硬件平台上正常的运行,就必须要先完成对BootLoader、嵌入式Linux内核及其文件系统的烧写工作,即将BootLoader、Linux内核及其文件系统全部下载到嵌入式硬件平台上才能运行,三者缺一不可。

1.2系统软件总体框架

嵌入式系统软件设计的目的是要为嵌入式的远程网络视频监控系统构建一种B/S(即浏览器,服务器)的工作模式。并在这种B/S工作模式下,实现嵌入式Web服务器端与客户端(这里指Web浏览器)之间的通信和信息交互,从而完成设计系统的各项系统功能。嵌入式系统的服务器端主要由系统软件和应用软件两个部分组成。对系统软件部分的设计包括对引导加载程序BootLoader的移植、对嵌入式Linux系统内核的配置、裁剪和移植、对文件系统的移植等工作,也就是要完成系统软件设计基础环节。

1.3系统软件功能模块设计

软件设计的最终目的就是实现嵌入式系统的远程网络视频监控的各项功能。而在进行系统软件设计的过程中,应该遵循软件工程设计的方法:首先要根据系统需要实现的各项功能,对系统进行功能模块的划分和抽象,然后进行抽象到具体的深入分析,从而构造出系统软件设计的层次结构,提高系统软件设计的可理解性。

嵌入式系统及其相应设备驱动模块需要完成以下几个方面内容:

首先是对整个嵌入式系统软件操作平台Linux内核的裁剪、编译及其移植;其次是完成硬件平台上所用设备的驱动程序的加载;最后是对系统视频数据采集程序模块的加载。

而Boa Web服务器模块要完成的内容包括:

1)采用B/S模式的监测结构,ARM板是服务端,选用Boa作为Web服务器;

2)因为Boa服务器支持CGI编程,可设计CGI程序产生浏览器的监控页面;

3)远程用户可以通过连接Internet网络,利用Web浏览器打开视频监控的Web主页面,从而收看由嵌入式系统的USB摄像头采集到的对现场场景的实时视频图像数据。

后台处理程序模块需要完成的内容主要包括利用网络功能的Telnet技术实现监测端用户远程登录到嵌入式设备,并实现对设备的一系列控制操作;同时还需要完成其他一些后台处理程序。

2 嵌入式系统软件操作平台的构建

2.1嵌入式Linux交叉编译环境的建立

在裁减和定制嵌入式Linux内核,并将其应用于特定的嵌入式系统硬件平台之前,考虑到一般嵌入式系统硬件平台内部的存储空间是有限的,通常需要在PC机(或称宿主机)上建立一个嵌入式交叉编译环境,用于为特定的嵌入式系统进行嵌入式开发设计服务。

整个交叉编译的过程就是首先在宿主机(PC机)上通过跨平台嵌入式交叉编译器把源文件编译成嵌入式系统硬件平台上的可执行文件,然后通过串口、并口、USB口或者网络传送等方式,将经过交叉编译后生成的可执行文件下载到目标系统硬件平台(即嵌入式系统的硬件平台)上的Flash或者其他存储介质中,最后在目标系统硬件平台上运行这些文件。

2.2嵌入式Linux的内核裁剪与编译

由于嵌入式系统内部的硬件资源有限,所以对整个嵌入式Linux内核源码包进行完全编译,势必会造成系统内部资源的浪费,也会因此影响到系统的功能实现及运行速度,所以在对嵌入式Linux内核编译之前,先要根据嵌入式系统的硬件及其要实现的具体功能,在保证内核稳定工作的前提下,对嵌入式Linux内核进行裁剪。虽然对内核源代码进行修改和裁剪可以达到精简内核的目的,但也容易导致嵌入式Linux内核代码的不稳定或者Linux内核代码的灵活性丧失。通过对嵌入式Linux内核进行配置,从中选取系统能够用到的功能,去除系统不需要或者用不到的功能,从而达到节省资源、系统优化和精简嵌入式Linux内核的目的。

3 系统应用程序模块的设计与实现

3.1USB摄像头驱动程序加载

首先,加载USB摄像头驱动模块,并重新编译内核,因为Linux所选的2.6.12版本系统内核中没有中星微ZC30IP的USB摄像头驱动,因此,要下载对应的内核补丁usb-2.6.12LE06.patch.tar.gz。

其次,要把下载的驱动程序复制到文件目录/Linux-2.6.12/driver/usb/下,然后进行解压,之后是打补丁。具体操作命令如下所示:

tar——xvzf usb-2.6.12LE 06.patch.tar.gz

patch——pl

然后是编译内核,进入嵌入式Linux操作系统kernel源码目录下/Linux-2.6.12,执行make menuconfig命令。然后在弹出的窗口中,选中下面的几项:

1)Multimedia devices一>

<*>Video For Linux

这一步的目的是加载video4linux模块,为视频采集设备提供了编程接口。

2)USB support一>

<*>Support for Host-side USB

—USB Host Controller Drivers

<*>OHCI HCD support

3)—USB Multimedia devices

<*>USB SPCA5XX Sunplus/Vimicro/Sonix jpeg Cameras

这两步的目的就是在嵌入式Linux内核中加入了对中星微ZC301P系列芯片的USB摄像头的驱动支持。

4)对以上配置进行保存,然后退出。

5)make dep; make zlmage。

3.2视频图像采集与显示模块加载

视频图像采集与显示模块采用的是Servfox+Spcaview的组合。首先,要下载Servfox的源码,它是视频图像的采集模块。这里用到的是servfox-R1_1_3.tar.gz,进行解压之后修改make-file里面的交叉编译器的路径,直接make,就生成了开发板上的可执行文件,然后通过超级终端下载到开发板上,接着用chmod+x servfox修改可执行的属性,最后运行:

#ln—s/dev/v41/video0/dev/video0

#servfox—g—s 320x240—w 7070

可以得到如下所示的测试界面:

视频图像的采集与显示模块要下载Spcaview源码,直接make即可生成可执行文件spcaview。在PC機上的虚拟机运行的Linux环境下运行,192.168.1.130是视频图像采集端嵌入式系统主机的IP地址,7070是端口号。

spcaview—w 192.168.1.130:7070

视频图像经过Servfox+Spcaview的组合模块完成采集和显示,实现功能模块加载过程。

3.3Telnet技术

Telnet是利用Internet网络实现远程登录服务的标准协议和主要方式,Telnet协议属于TCP/IP协议族中的重要一员。通过Telnet技术,远程用户实现了在本地计算机对嵌入式远程网络视频监控系统的远程登录和远程控制。用户在本地计算机上输入操作命令,然后这些操作命令将会在嵌入式系统上执行,就如同远程用户在现场嵌入式系统的控制台上直接进行操控一样,实现对嵌入式远程网络视频监控系统的远程控制功能。

参考文献:

[1]孙继坤,张小全.嵌入式Linux开发技术详解一基于ARM[M].北京:人民邮电出版社,2006:113-134.

[2]韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008:34-56.

【通联编辑:李雅琪】

收稿日期:2019-10-11

基金项目:河南省高等学校重点科研项目计划支持(项目编号:13B520320)

作者简介:赵雪梅(1966-),女,河南郑州人,郑州升达经贸管理学院,教授,硕士,研究方向为智能控制与计算机应用。

猜你喜欢
软件设计嵌入式
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器