• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 初中学习 > 正文

    USB摄像头_基于ARM9和USB摄像头的网络视频采集系统设计

    时间:2020-03-11 07:34:07 来源:雅意学习网 本文已影响 雅意学习网手机站

       摘 要:随着互联网的不断普及,利用现有网络采集视频信息已经成为远程视频信息采集的主要手段。系统以ARM9处理器S3C2440为硬件平台,通过USB摄像头采集视频信息。DM9000网卡作为以太网控制器,在嵌入式Linux操作系统下,通过移植视频服务器MJPG-streamer,来实现远程视频信息的采集。此系统克服了现有视频采集的距离问题,开发简单,可移植性高,并且系统运行稳定。
       关键词:ARM9; S3C2440; USB摄像头; MJPG-streamer
       中图分类号:TN948-34 文献标识码:A 文章编号:1004-373X(2011)24-0049-03
      
      
      Design of Network Video Image Acquisition System Based on ARM9 and USB Camera
      
      YU Yan-ping1, ZHU Xiao-zhi2, WANG Zhong-xun2
      
      (1. Computerized Numerical Control department, Yantai engineering vocational and technical college,Yantai 264006, China;
      2. Institute of Science and Technology for Optoelectronics Information, Yantai University, Yantai 264005, China)
      
       Abstract: With the growing popularity of Internet, the video information acquisition by means of the existing networks has become the main method of the remote video information collection. The acquisition system takes S3C2440 ARM9 processor as a hardware platform, and collects video information through the USB camera. The remote video information acquisition is realized by transplanting the video server MJPG-streamer and by taking DM9000 network card as Ethernet controller based on the embedded Linux operating system. The system overcomes the problems existing in available video acquisition modes. It is easy to develop, has high portability and running stability.
       Keywords: ARM9; S3C2440; USB Camera; MJPG-streamer
      
       收稿日期:2011-07-29
       基金项目:山东省自然科学基金资助项目(ZR2009GM026)
      
      0 引 言
       通信网络已经普及到人类生活的各个方面,布控区域广阔的网络视频采集系统也在迅速的发展,嵌入式视频采集系统的服务器直接连入已经建成的网络,既没有线缆长度的限制,也没有信号衰减的限制,通过没有距离概念的网络,彻底抛弃了地域的限制。系统具有几乎无限的无缝扩展能力,所有设备都以IP地址划分,增加设备只是意味着IP地址的增加,可组成非常复杂的视频采集系统,服务器输出的视频数据已完成模拟到数字的转换并压缩,采用TCP/IP协议在网络上传输,支持跨网关、跨路由器的远程视频信息传输。
       本文根据网络视频采集的需要,将网络传输与视频采集相结合,设计了以S3C2440为核心的USB摄像头视频采集和嵌入式Linux系统下的视频服务器,从而实现了远程网络视频信息采集。
       1 系统总体设计
       该系统是以ARM9处理器S3C2440为核心,在嵌入式Linux系统平台下,通过USB摄像头采集视频信息,然后对所得到的视频数据通过内部总线送到视频服务器MJPG-streamer上,视频服务器经过对图像压缩处理,经过以太网传输出去,远端客户机通过浏览器或者专用软件访问视频服务器,即可浏览现场信息,从而实现网络视频采集[1]。系统总体如图1所示。
      
      2 系统硬件设计
       系统的硬件框图如图2所示。
       系统处理器采用高性能ARM9处理器S3C2440,S3C2440是基于ARM920T核心的RISC处理器,主频为400 MHz,实现了MMU,具有AMBA总线和哈佛结构高速缓冲体系结构,有独立的16 KB的指令缓存和16 KB的数据缓存。主要应用于高性能,低价格,低功耗的嵌入式设备和手持设备。处理器内部集成了完备的硬件资源,外部存储控制器,4通道DMA,3通道的UART,2通道SPI,2通道USB主机和1通道USB设备,4通道PWM定时器和内部看门狗定时器,130个GPIO等[2]。
      
      图2 系统硬件框图NAND FLASH采用K9F2G08,该存储芯片容量大,高达256 MB,改写速度非常快,易于使用,具有可靠的耐用性,适合用于大量数据存储,该FLASH以512 B为块进行读写操作,通过输入输出接口传送地址和命令,传递专门的数据接口与CPU相连,数据总线为8 b,写入操作必须在空白区域进行,所以在改写数据时要先进行擦除,然后再写入。
       NAND FLASH在本系统中用来存放bootloader引导代码,Linux内核代码以及Yaffs文件系统[3-4]。SDRAM为同步动态随机存储器,类似于PC机的内存,在系统启动时,先将内核代码从FLASH复制到SDRAM中,用来程序的读取,存储,执行,从而提高CPU读取和写入数据的速度。本采用2片32 MB的HY57V作为系统内存,把他们并联起来形成32位的数据总线,提高CPU的访问速度,增加运行Linux系统的流畅性[5]。由于SDRAM掉电不能保存数据,所以要不断的进行动态刷新来保存数据,使用之前要进行初始化。
       目前最流行的以太网控制器是DAVICOM公司的DM9000网卡芯片,该芯片自适应10 Mb/s和100 Mb/s的网络,处理器通过GPIO与网卡相连,支持3.3 V接口电压,32位接口存储器可以方便直接与S3C2440相连,在连接RJ-45接口,即可实现以太网物理层和数据链路层的连接[6-7]。设备驱动程序在Linux操作系统下可以方便的移植,故选择此网卡芯片作为以太网控制器。摄像头采用市场普通USB摄像头,即插即用,处理器通过USB控制器控制摄像头。
       3 系统软件设计
       本系统软件可分为Bootloader,Linux内核,Yaffs文件系统和MJPG-streamer视频服务器,系统框图如图3所示。
      
      “Bootloader是在操作系统运行之前运行的一段小程序,来完成硬件设备的初始化,从而将系统软硬件环境带到合适状态,为最终调用操作系统做好准备”。Bootloader可以从SAMSUNG公司官方网站下载,经过交叉编译生成Bin文件,下载到板子上。
       Linux内核采用Linux 2.6.32版本,运行make menuconfig配置万能驱动USB摄像头,在Device Drivers下,选择Multimedia device,选择Video Capture adapters,选择V4L USB devices,选择GSPA based webcams,即可选择万能驱动USB摄像头。
       系统采用Yaffs文件系统,Yaffs是专为嵌入式系统使用 NAND型闪存而设计的一种日志型文件系统。它减少了一些功能,速度更快,挂载时间很短,对内存的占用较小,所以系统采用Yaffs文件系统[8]。
       MJPG-streamer 是一款免费基于IP地址的视频流服务器,它的输入插件从摄像头读取视频数据,这个输入插件产生视频数据并将视频数据复制到内存中,它有多个输出插件将这些视频数据经过处理,其中最重要的输出插件是网站服务器插件,它将视频数据传送到用户浏览器中,MJPG-streamer的工作就是将其中的一个输入插件和多个输出插件绑定在一起,所有的工作都是通过它的各个插件完成的[9-10]。MJPG-streamer源码包可从SourceForge网站下载使用。各个文件如下:
       (1) input_testpicture.so。这是一个图像测试插件,它将预设好的图像编译成一个头文件,可以在没有摄像头的情况下传输图像,从而方便调试程序。
       (2) input_uvc.so。此文件调用USB摄像头驱动程序V4L2,从摄像头读取视频数据。
       (3) input_control.so。这个文件实现对摄像头转动的控制接口。
       (4) output_http.so。这是一个功能齐全的网站服务器,它不仅可以从单一文件夹中处理文件,还可以执行一定的命令,它可以从输入插件中处理一幅图像,也可以将输入插件的视频文件根据现有M-JPEG标准以HTTP视频数据服务流形式输出。
       (5) output_file.so。这个插件的功能是将输入插件的JPEG图像存储到特定的文件夹下,它可以用来抓取图像。
       将MJPG-streamer视频流服务器移植到目标板上运行,从而可以实现网络视频数据的采集,具体移植过程:
       (1) 首先移植MJPG-streamer依赖的jpeg库。在/usr/local目录下解压源码包tar xvzf jpegsrc.v8b.tar.gz。
       (2) 修改配置文件./configure --prefix=/usr/video/jpeg --host=arm-linux-gnueabi,编译:make,安装:make install,最后将/usr/local/video/jpeg/lib目录下的libjpeg.so.8文件拷贝到文件系统中的lib目录下。
       (3) 解压源码包:tar zxvf mjpg-streamer.tar.gz;
       (4) 修改源码:修改顶层Makefile及plugins目录中的各级Makefile将所有CC=gcc修改为 CC=arm--linux-gcc。修改/usr/local/mjpg-streamer-r63/plugins/input_uvc目录下的Makfile文件,在CFLAGS +=-O2-DLINUX-D_GNU_SOURCE-Wall-shared-fPIC后加上I//usr/local/video/jpeg//include,把$(CC)$(CFL-AGS)-ljpeg -o$@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo代码修改为$(CC)$(CFLAGS) -ljpeg -L/ usr/local/video/jpeg /lib -o$@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo,从而加载前面编译安装的jpeg库文件,使得MJPG-streame能够调用到jpeg库。
       (5) 交叉编译:make CC=arm-linux-gcc,交叉编译器为arm-linux-gcc4.3.2,生成ARM板可执行的二进制文件。
       网络视频采集系统软件流程图如图4所示。
       4 系统测试
       将应用程序通过超级终端工具传输到ARM板上,设置视频服务器应用程序start_uvc.sh开机启动,将交换机引出的双绞线通过RJ-45接口连接到ARM板,在超级终端下进入ARM板,用ifconfig命令配置服务器相应网段的IP地址,将板子上电之后即可执行视频采集程序。从客户端浏览器输入ARM板IP地址发出访问请求,服务器接收到请求后与客户端建立连接,将视频数据发送到客户端监听端口,客户端就可以得到连续的现场现场画面,从而实现网络视频采集功能。客户端测试画面如图5所示。
      
      5 结 语
       随着互联网的不断发展,视频信息采集进入到一个新的时代,本系统设计基于S3C2440的高速信息处理能力和丰富的硬件接口,在网络功能强大的Linux操作系统平台下,移植MJPG-streamer视频流服务器,模块结构清晰,易于管理,利用现有网络资源,很容易实现远程的网络视频采集,克服了现有视频采集的距离问题,开发简单,可移植性高,并且系统运行稳定。
       系统改进思路:无线局域网WLAN成为无线通信使用热点,通过移植WIFI模块可以实现无线网络视频采集,从而摆脱网线的限制,更加方便使用,在MJPG-streamer软件中有一个input_control.so的输入插件没有用到,加上该插件可以实现摄像头的位置的控制,比如自动跟踪的功能,另外可以加入智能模式识别算法,从摄像头读取的视频信息识别物体,辨别出人、动物、汽车等物体,从而是系统功能更加强大。
      
      参 考 文 献
      [1] 李晶.嵌入式Linux系统的移植技巧[J].现代电子技术,2008,31(24):40-43.
      [2] Samsung Electronics. S3C2440A 32BIT coms microcontroller user"s manual [M ]. Republic of Korea: Samsung Electronics, 2006.
      [3] 俞辉,李永,刘凯,王晓红.ARM嵌入式Linux系统设计与开发[M].北京:机械工业出版社,2010.
      [4] 王黎明,陈双骄,闫晓玲,等.ARM9嵌入式系统开发与实践[M].北京:北京航空航天大学出版社,2010.
      [5] 王学龙.嵌入式Linux系统设计与应用[M].北京:清华大学出版社,2001.
      [6] 李明,练秋生.嵌入式视频监控系统的设计[J].电子技术,2008,45(11):37-39.
      [7] 柯飞雄.基于ARM9网络视频监控系统的设计与实现[D].厦门:厦门大学,2008.
      [8] 王戬.基于ARM9的USB Camera驱动程序开发[D].武汉:武汉科技大学,2008.
      [9] 冯丽芳,孙俊,周俊华,等.基于ARM9的网络视频监控系统实现[J].电力自动化设备,2006,26(10):95-97.
      [10] 刘良,赖万昌,黎明.基于ARM9的GPRS图像传输系统的设计与实现[J].计算机工程与设计,2010,31(7):1477-1480.
       作者简介: 于艳萍 女,1963年出生,山东烟台人,高级讲师。主要研究方向为信号检测。
      朱晓智 男,1987年出生,山东人。主要研究电子技术、通信信号处理。
      王中训 男,1965年出生,山东人,烟台大学光电信息科学技术学院副院长,教授,博士,硕士生导师。主要研究方向为信道编码、通信信号处理、水下通信。
      
      

    推荐访问:网络视频 摄像头 采集系统 基于ARM9和USB摄像头的网络视频采集系统设计 基于arm9系统的软硬件设计 操作系统既是硬件与其他软件的接口

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章