论文部分内容阅读
摘要:该系统以嵌入式Linux平台作为服务端,采用三星公司的Cortex-A8处理器作为主控芯片,选用了X210开发板进行设计,并通过ZC301摄像头采集图像,完成相应平台的搭建。通过将嵌入式Linux操作系统与图像处理技术及网络传输技术相结合,利用WIFI通信技术进行数据传输,然后在嵌入式平台上完成视频采集处理,并能在多种智能终端同时实现视频监控,设计出一种基于嵌入式视频流服务器的C/S模式的远程监控系统,从而达到远程跟踪拍摄进行视频监控的目标。
关键词:Cortex-A8;嵌入式Linux;多终端;视频流服务器;远程监控
中图分类号:TP277 文献标识码:A 文章编号:1009-3044(2017)05-0180-03
Abstract: This system uses embedded Linux platform as a server-side, the Cortex-A8 processor of Samsung Corp as the master control chip, choses X210 development board to carry on the design, and uses ZC301 camera to capture images,finally,builds the corresponding platform .It makes embedded Linux operating system combined with image processing technology and network transmission. Using wi-fi communication technology in data transmission, the system completes video acquisition processing on embedded platform, and can achieve video surveillancein a variety of intelligent terminals at the same time.In order to achieve the goal of remote tracking shooting for video surveillance ,in this paper, a C/S remote monitoring system based on embedded video stream server is designed .
Key words: Cortex-A8; Embedded Linux; Multi terminal;Video stream server; Remote Monitoring
1概述
近年來,视频技术在各行各业获得了广泛的应用,视频监控是其中一个重要的方面,同时随着电子信息技术特别是计算机视觉与多媒体技术、通信技术的兴起与发展,视频监控领域的研究取得了许多重大突破,视频信息的智能分析与处理、视频信息的压缩与传输是最活跃的两个方面。嵌入式Linux系统是源代码公开的、免费的操作系统,且为微控制系统的开发提供了良好的任务管理平台和底层驱动平台,也为上层软件模块的管理提供了有力的保证。本系统通过使用无线网络最终实现了在PC端、LCD、Android手机客户端等多种终端对视频的实时监控,方便多样化。因此,系统可以真正实现监控系统的信息数字化、网络智能化、小型化和无线控制化。
2远程监控系统的总体设计
本系统以嵌入式Linux平台为基础,采用无线网络实现通讯,将远程采集的视频信息传输到终端设备,实现了基于无线通信的嵌入式远程视频监控系统。系统主体设计思想是通过嵌入式视频流服务器提供视频流,采用无线Wifi技术接入因特网,用户通过浏览器的交互操控而实现系统监控。系统总体功能方案如图1所示。系统将采用嵌入式技术、数字图像处理技术以及视频流媒体服务器等技术,采用无线Wifi技术为其通信途径。此系统具有搭建无需布线,组网安装便捷,处理方式灵活及传输监控方式多路径等优点。
本系统采用的是基于Cortex-A8内核的S5PV210开发平台,该平台是Samsung公司研发设计的,采用高性能Cortex-A8内核,主频可达1GHz。开发板的主要外围硬件电路有:内存512MB DDR2;512M nand flash/4GB inand flash;四路USBHost接口,符合USB2.0;两路RS232接口;两路SD卡接口等。主模块是ARM控制平台,外围模块包括电源模块、调试模块、以太网接口模块、SD卡存储模块、显示模块、USB摄像头模块和WIFI无线模块组成。由各模块搭建的外围硬件如图2所示。
3系统软件设计
3.1嵌入式系统工作平台搭建
交叉开发平台是专为嵌入式系统服务的平台,而搭建该平台关键是嵌入式操作系统开发环境的创建。简单地说,所谓的搭建交叉编译环境,即安装、配置交叉编译工具链,在该环境下编译出嵌入式Linux系统所需的操作系统、应用程序等,然后再上传到目标机上。本系统需安装交叉编译工具链为 arm-none-linux-gnueabi-gcc,编译出来的程序可在S5PV210平台上运行。嵌入式开发模型如图3示。
3.2配置编译linux内核
Linux内核的功能非常强悍,支持兼容多种设备。不同的嵌入式硬件环境对内核的要求是不同的,所以我们要在配置内核的时候对其进行定制裁剪,修改内核中与特定CPU和硬件相关的代码,这样既可以增加系统运行效率、节约系统资源,同时也提升了系统的安全。对于裁剪的内核要尽量精简,使系统运作在最佳的状态。将开发板资料提供的Linux内核压缩包解压,并配置Makefile文件。 1) #tar xvf qt210X3.tar.gz; #viMakefile
2) 找到CROSS_COMPILE在Makefile配置文件中位置,并将其修改为CROSS_COMPILE?= arm-none-linux-gnueabi-gcc,指定针对本系统应用的嵌入式平台的交叉编译器。对系统内核的配置方式本步骤使用make menuconfig命令,在终端输入:#make menuconfig,即可根据需求对内核进行选择性的裁剪配置。
3.3 USB摄像头驱动程序移植
USB摄像头的驱动实现采用了标准的V4L2架构,可以简洁地实现视频的传输显示。Linux内核都已集成了大部分USB摄像头的驱动,大部分使用的都是UVC(免驱),因此在配置内核的过程中加载相应的配置选项就可以实现对摄像头的驱动,其配置界面如下:
3.4无线网卡驱动程序移植
移植USB Wifi设备,首先配置开发板的USBHost功能,配置网络协议支持80211协议,加载进入内核配置界面支持USBWifi,对内核配置并进行编译。在官网下载相对应的无线网卡驱动下载包并解压,修改生成目录文件下的Makefile文件,修改交叉编译工具的路径和对应的内核版本,对应的内核源码的路径等方面。进行配置编译后 make 生成无线Wifi模块wlan.ko,将生成的模块通过U盘或通过NFS拷贝到开发板/lib/modules,在开发板上加载该驱动。加载成功后,在开发板开启无线模块:
查看无线网络设备的配置,若打印终端出现wlan0的相关信息,则无线设备驱动移植成功。
3.5视频采集传输的实现以及多终端显示
本系统监控视频采集的实现是通过嵌入式服务器来完成,然后用户可以通过多种终端来实现对视频的监控。本系统通过开发移植Mjpg-streamer视频流服务器来实现对视频的数据采集处理与传输。Mjpg-streamer是基于jpeg库来处理摄像头数据的,因此在移植Mjpg-streamer之前必须先移植jpeg库。通过配置编译jpeg库,在相应目录下会生成需要的bin、include、lib、share等文件。通过NFS文件系统将生成的相应文件拷贝到开发板文件系统。完成了jpeg库的移植,接着就要移植Mjpg-streamer,其步骤如下
1) 通过网络下载最新源码包,进入到解压产生相应的目录文件
cd /home/dax/mjpg-streamer/
2) 配置源码包,修改Makefile以及plugins目录下各级Makefile,指定用到的交叉编译器CC= arm-none-linux-gnueabi-gcc修改plugins/input_uvc/Makefile,增加对mjpg图形库的支持。修改plugins/input_uvc/input_uvc.c文件,修改摄像头采集YUYV格式V4L2_PIX_FMT_MJPEG为V4L2_PIX_FMT_YUYV。
3.5.1 PC端监控视频
在开发板运行视频监控可执行程序,即开启了视频监控程序,然后在PC端的瀏览器输入开发板IP地址http://192.168.1.113:8080/?action=stream,即可进入如图5所示的网页视频监控界面,其视频采集图像分辨率为640*480。
3.5.2 LCD端视频监控
本设计通过修改Mjpg-streamer源码文件下的output_file.c文件,对采集到的JPG图片进行格式转换,转为可在32位LCD屏上显示的RGB图片。将格式转换完毕的图片对应的字节信息写入LCD显示缓存区,从而可在LCD屏上显示出视频信息,这样不断地采集、转换和显示,便可以在LCD屏上看到流畅的视频图像。
3.5.3Android手机客户端视频监控
Android客户端通过发送Http网络请求至嵌入式平台内的网络视频服务器Mjpg-streamer,服务器会通过流向客户端返回请求的数据信息,从而使采集到的视频信息在手机终端进行显示。
4 结论
嵌入式系统和网络技术相融合,使嵌入式视频监控具有灵活性强和无边界传输、远程控制采集视频信息的优势,解决了传统视频监控不便于拓展、造价高等不足。本课题的研究是以嵌入式Linux系统为开发平台,设计了基于无线Wifi通信的远程视频监控系统。系统采用以Cortex-A8处理器为核心的开发板来扩展视频采集模块、无线通信模块等其他外围模块硬件电路,软件是以移植的嵌入式Linux操作系统为平台,进行相关程序的设计开发操作,从而实现了多终端监控:
1)通过对嵌入式视频监控的发展特点及现状的研究,综合分析了嵌入式技术的优势特点,提出了系统的总体设计方案和相关软硬件的设计。
2)完成了基于嵌入式Cortex-A8处理器的视频采集和无线通信等外围硬件电路的搭建,并实现了相关功能。
3)完成了对嵌入式Linux的内核的裁剪配置,根文件系统的移植下载,嵌入式Linux的应用程序编程以及底层驱动的设计等开发实现了视频的采集,无线Wifi的通信以及多终端监控的功能。
参考文献:
[1] 马强.基于嵌入式Linux的视频采集系统设计与实现[D].西安电子科技大学,2011.
[2] 徐士强.基于ARM9的嵌入式Linux系统的研究与应用[D].南京:南京邮电大学,2012.
[3] 陈书益,黄永慧.开源视频服务器软件MJPG-streamer的研究和应用[J].电子设计工程,2012(05):172-176..
[4] 周立功.ARM与嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2005.
[5]刘志华.基于ARM和Linux的视频图像采集系统[J].微型机与应用,2014(03):12-14 17.
[6] 谢波,崔志强,王正.基于云计算的一体化高清视频会议组网研究[J]. 电视技术. 2014(23):180-183.
[7] 李保国.基于嵌入式ARM的远程视频监控系统研究[D].南京理工大学,2009.
[8]刘云峰.基于嵌入式Linux的视频编解码技术研究[D].中国科学院研究生院(光电技术研究所),2013.
[9]龚文冲.基于wifi的嵌入式视频监控系统设计[D].华中科技大学,2011.
[10] 赵智雅.基于嵌入式Linux的图像采集系统的设计[D].西南交通大学,2010.
关键词:Cortex-A8;嵌入式Linux;多终端;视频流服务器;远程监控
中图分类号:TP277 文献标识码:A 文章编号:1009-3044(2017)05-0180-03
Abstract: This system uses embedded Linux platform as a server-side, the Cortex-A8 processor of Samsung Corp as the master control chip, choses X210 development board to carry on the design, and uses ZC301 camera to capture images,finally,builds the corresponding platform .It makes embedded Linux operating system combined with image processing technology and network transmission. Using wi-fi communication technology in data transmission, the system completes video acquisition processing on embedded platform, and can achieve video surveillancein a variety of intelligent terminals at the same time.In order to achieve the goal of remote tracking shooting for video surveillance ,in this paper, a C/S remote monitoring system based on embedded video stream server is designed .
Key words: Cortex-A8; Embedded Linux; Multi terminal;Video stream server; Remote Monitoring
1概述
近年來,视频技术在各行各业获得了广泛的应用,视频监控是其中一个重要的方面,同时随着电子信息技术特别是计算机视觉与多媒体技术、通信技术的兴起与发展,视频监控领域的研究取得了许多重大突破,视频信息的智能分析与处理、视频信息的压缩与传输是最活跃的两个方面。嵌入式Linux系统是源代码公开的、免费的操作系统,且为微控制系统的开发提供了良好的任务管理平台和底层驱动平台,也为上层软件模块的管理提供了有力的保证。本系统通过使用无线网络最终实现了在PC端、LCD、Android手机客户端等多种终端对视频的实时监控,方便多样化。因此,系统可以真正实现监控系统的信息数字化、网络智能化、小型化和无线控制化。
2远程监控系统的总体设计
本系统以嵌入式Linux平台为基础,采用无线网络实现通讯,将远程采集的视频信息传输到终端设备,实现了基于无线通信的嵌入式远程视频监控系统。系统主体设计思想是通过嵌入式视频流服务器提供视频流,采用无线Wifi技术接入因特网,用户通过浏览器的交互操控而实现系统监控。系统总体功能方案如图1所示。系统将采用嵌入式技术、数字图像处理技术以及视频流媒体服务器等技术,采用无线Wifi技术为其通信途径。此系统具有搭建无需布线,组网安装便捷,处理方式灵活及传输监控方式多路径等优点。
本系统采用的是基于Cortex-A8内核的S5PV210开发平台,该平台是Samsung公司研发设计的,采用高性能Cortex-A8内核,主频可达1GHz。开发板的主要外围硬件电路有:内存512MB DDR2;512M nand flash/4GB inand flash;四路USBHost接口,符合USB2.0;两路RS232接口;两路SD卡接口等。主模块是ARM控制平台,外围模块包括电源模块、调试模块、以太网接口模块、SD卡存储模块、显示模块、USB摄像头模块和WIFI无线模块组成。由各模块搭建的外围硬件如图2所示。
3系统软件设计
3.1嵌入式系统工作平台搭建
交叉开发平台是专为嵌入式系统服务的平台,而搭建该平台关键是嵌入式操作系统开发环境的创建。简单地说,所谓的搭建交叉编译环境,即安装、配置交叉编译工具链,在该环境下编译出嵌入式Linux系统所需的操作系统、应用程序等,然后再上传到目标机上。本系统需安装交叉编译工具链为 arm-none-linux-gnueabi-gcc,编译出来的程序可在S5PV210平台上运行。嵌入式开发模型如图3示。
3.2配置编译linux内核
Linux内核的功能非常强悍,支持兼容多种设备。不同的嵌入式硬件环境对内核的要求是不同的,所以我们要在配置内核的时候对其进行定制裁剪,修改内核中与特定CPU和硬件相关的代码,这样既可以增加系统运行效率、节约系统资源,同时也提升了系统的安全。对于裁剪的内核要尽量精简,使系统运作在最佳的状态。将开发板资料提供的Linux内核压缩包解压,并配置Makefile文件。 1) #tar xvf qt210X3.tar.gz; #viMakefile
2) 找到CROSS_COMPILE在Makefile配置文件中位置,并将其修改为CROSS_COMPILE?= arm-none-linux-gnueabi-gcc,指定针对本系统应用的嵌入式平台的交叉编译器。对系统内核的配置方式本步骤使用make menuconfig命令,在终端输入:#make menuconfig,即可根据需求对内核进行选择性的裁剪配置。
3.3 USB摄像头驱动程序移植
USB摄像头的驱动实现采用了标准的V4L2架构,可以简洁地实现视频的传输显示。Linux内核都已集成了大部分USB摄像头的驱动,大部分使用的都是UVC(免驱),因此在配置内核的过程中加载相应的配置选项就可以实现对摄像头的驱动,其配置界面如下:
3.4无线网卡驱动程序移植
移植USB Wifi设备,首先配置开发板的USBHost功能,配置网络协议支持80211协议,加载进入内核配置界面支持USBWifi,对内核配置并进行编译。在官网下载相对应的无线网卡驱动下载包并解压,修改生成目录文件下的Makefile文件,修改交叉编译工具的路径和对应的内核版本,对应的内核源码的路径等方面。进行配置编译后 make 生成无线Wifi模块wlan.ko,将生成的模块通过U盘或通过NFS拷贝到开发板/lib/modules,在开发板上加载该驱动。加载成功后,在开发板开启无线模块:
查看无线网络设备的配置,若打印终端出现wlan0的相关信息,则无线设备驱动移植成功。
3.5视频采集传输的实现以及多终端显示
本系统监控视频采集的实现是通过嵌入式服务器来完成,然后用户可以通过多种终端来实现对视频的监控。本系统通过开发移植Mjpg-streamer视频流服务器来实现对视频的数据采集处理与传输。Mjpg-streamer是基于jpeg库来处理摄像头数据的,因此在移植Mjpg-streamer之前必须先移植jpeg库。通过配置编译jpeg库,在相应目录下会生成需要的bin、include、lib、share等文件。通过NFS文件系统将生成的相应文件拷贝到开发板文件系统。完成了jpeg库的移植,接着就要移植Mjpg-streamer,其步骤如下
1) 通过网络下载最新源码包,进入到解压产生相应的目录文件
cd /home/dax/mjpg-streamer/
2) 配置源码包,修改Makefile以及plugins目录下各级Makefile,指定用到的交叉编译器CC= arm-none-linux-gnueabi-gcc修改plugins/input_uvc/Makefile,增加对mjpg图形库的支持。修改plugins/input_uvc/input_uvc.c文件,修改摄像头采集YUYV格式V4L2_PIX_FMT_MJPEG为V4L2_PIX_FMT_YUYV。
3.5.1 PC端监控视频
在开发板运行视频监控可执行程序,即开启了视频监控程序,然后在PC端的瀏览器输入开发板IP地址http://192.168.1.113:8080/?action=stream,即可进入如图5所示的网页视频监控界面,其视频采集图像分辨率为640*480。
3.5.2 LCD端视频监控
本设计通过修改Mjpg-streamer源码文件下的output_file.c文件,对采集到的JPG图片进行格式转换,转为可在32位LCD屏上显示的RGB图片。将格式转换完毕的图片对应的字节信息写入LCD显示缓存区,从而可在LCD屏上显示出视频信息,这样不断地采集、转换和显示,便可以在LCD屏上看到流畅的视频图像。
3.5.3Android手机客户端视频监控
Android客户端通过发送Http网络请求至嵌入式平台内的网络视频服务器Mjpg-streamer,服务器会通过流向客户端返回请求的数据信息,从而使采集到的视频信息在手机终端进行显示。
4 结论
嵌入式系统和网络技术相融合,使嵌入式视频监控具有灵活性强和无边界传输、远程控制采集视频信息的优势,解决了传统视频监控不便于拓展、造价高等不足。本课题的研究是以嵌入式Linux系统为开发平台,设计了基于无线Wifi通信的远程视频监控系统。系统采用以Cortex-A8处理器为核心的开发板来扩展视频采集模块、无线通信模块等其他外围模块硬件电路,软件是以移植的嵌入式Linux操作系统为平台,进行相关程序的设计开发操作,从而实现了多终端监控:
1)通过对嵌入式视频监控的发展特点及现状的研究,综合分析了嵌入式技术的优势特点,提出了系统的总体设计方案和相关软硬件的设计。
2)完成了基于嵌入式Cortex-A8处理器的视频采集和无线通信等外围硬件电路的搭建,并实现了相关功能。
3)完成了对嵌入式Linux的内核的裁剪配置,根文件系统的移植下载,嵌入式Linux的应用程序编程以及底层驱动的设计等开发实现了视频的采集,无线Wifi的通信以及多终端监控的功能。
参考文献:
[1] 马强.基于嵌入式Linux的视频采集系统设计与实现[D].西安电子科技大学,2011.
[2] 徐士强.基于ARM9的嵌入式Linux系统的研究与应用[D].南京:南京邮电大学,2012.
[3] 陈书益,黄永慧.开源视频服务器软件MJPG-streamer的研究和应用[J].电子设计工程,2012(05):172-176..
[4] 周立功.ARM与嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2005.
[5]刘志华.基于ARM和Linux的视频图像采集系统[J].微型机与应用,2014(03):12-14 17.
[6] 谢波,崔志强,王正.基于云计算的一体化高清视频会议组网研究[J]. 电视技术. 2014(23):180-183.
[7] 李保国.基于嵌入式ARM的远程视频监控系统研究[D].南京理工大学,2009.
[8]刘云峰.基于嵌入式Linux的视频编解码技术研究[D].中国科学院研究生院(光电技术研究所),2013.
[9]龚文冲.基于wifi的嵌入式视频监控系统设计[D].华中科技大学,2011.
[10] 赵智雅.基于嵌入式Linux的图像采集系统的设计[D].西南交通大学,2010.