DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1410|回复: 0
打印 上一主题 下一主题

[安防] 基于S3C2410网络视频监控系统的设计与实现

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 19:27:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    1     引言
  视频监控系统是日常生产生活中的重要辅助设备,应用十分广泛。当前视频监控系统正逐步由模拟化走向数字化。随着视频压缩技术和网络技术的发展,开发新一代的基于计算机网络和多媒体MPEG-4压缩算法的视频监控系统已成为整个行业技术发展的主要方向之一。通常人们采用DSP与MPEG-4算法结合的方案来实现,在编程的工作上有巨大的复杂程度,而且成本也过高。本文提出并研究设计一种基于MPEG-4专用压缩芯片MPG440、以嵌入式Linux为操作系统的视频监控系统方案,不仅开发便捷、成本低廉,而且实时性较好,适应范围广。
  2          视频监控系统总体设计
  整个系统的总体设计分为硬件和软件系统两部分。硬件设计部分主要包括以下几个模块:系统主控制器、压缩编码部分、网络接口模块、摄像机控制模块以及PC端监控部分。系统的主控制器模块主要有主控制芯片S3C2410、数据存储Nand Flash以及内存单元SDRAM组成。其中主控制芯片S3C2410主要负责系统的整体调度,为整个系统的核心;Nand Flash里固化了Linux的Bootloader、系统内核、文件系统、应用程序以及环境变量和系统配置文件等;SDRAM作为内存单元供系统运行时使用。压缩编码部分主要由视频数据采集芯片、MPEG-4压缩芯片以及SDRAM组成,负责将视频流转化为MPEG-4数据流。网络接口模块主要负责传输MPEG-4视频流。摄像机的控制部分主要由串口芯片组成,用于实现转发控制相机命令的功能。PC端则通过浏览器进行视频的监测并可发送控制命令对摄像机状态进行控制。主控制器通过对片内Nand Flash控制器的操作将Linux内核从Nand Flash中转入SDRAM中,Linux系统内核从内存单元启动。系统启动后,主控制器通过主机接口(HPI)控制MPEG-4压缩编码模块,系统结构框图如图(1)所示。




  图(1)      系统结构框图
  系统的软件部分主要由嵌入式Linux的Bootloader和内核的移植、MPEG-4压缩编码模块、CGI控制程序的实现以及MPEG-4解码程序的实现等四部分组成。Linux系统存储在Nand Flash中,负责系统软件的调度。MPEG-4压缩编码模块主要负责模拟视频流的采集和A/D转换,并将数字视频流压缩为MPEG-4数据流以便网络的传输。CGI控制程序主要实现摄像机的控制以及对MPEG-4视频流的相关设置。MPEG-4解码程序则是在PC端对通过网络取得的MPEG-4数据流进行解码播放。
  3          系统硬件设计
  3.1     主控制器模块
  在整个系统中,主控制器是核心部件。文中选用的是三星公司的S3C2410,是一款基于ARM920T核的32位微控制器,其主频可达203HZ,性价比较高,能很好的满足嵌入式Linux系统的性能需求。其主要功能是在正常工作状态下调度控制整个系统工作,在系统上电时配置所有需工作的芯片的功能寄存器,并通过以太网控制器控制物理层芯片发送视频码流。
  S3C2410通过片内的Nand Flash控制器和SDRAM控制器对外围的 Nand Flash和内存单元SDRAM进行控制,利用片内的标准UART实现对串口芯片的控制,通过片内地址、数据以及控制总线对片外的网络芯片进行控制。系统控制原理框图如图(2)所示。




  3.2     压缩编码模块
  压缩编码模块包括两部分:模拟视频信号采集和MPEG-4压缩模块。视频输入解码芯片采用TI公司的TVP5150,压缩编码芯片采用映佳公司的MPG440。TVP5105支持NTSC/PAL/SECAM等3种制式,实现模拟视频信号转换为数字并行信号ITU-R BT.601 或ITU-R BT.656码流格式,正常工作时的功耗仅为115mW。MPG440具有采用符合工业标准的16b/32b的双向主机接口,用来与视频解码芯片和主控制器进行通信,而且支持VGA、QVGA、CIF、QCI、D1五种分辨率模式。主控制芯片通过HPI接口实现MPG440寄存器的初始化配置,接收MPEG-4数据流,整个压缩编码模块硬件原理图如图(3)所示。




  图(3)   压缩编码模块电路     
[1] [2] [3]  下一页
         
          [/td]
        [/tr]
      
  
         
   
解码芯片TVP5150的AIPIA模拟信号输入口与摄像头的信号输出端相连,并向压缩编码芯片MPG440传送视频信号。由于TVP5150分场同步脉冲和行同步脉冲,分别对应的输出端为VSYNC和HSYNC,MPG440根据与之相连的VSYNC和HSYNC信号线来实现图象的场同步和行同步操作,MPG440的视频信号输入数据线DATA_TV[7:0]与TVP5150的输出端YOUT[7:0]相连。MPG440将接收到的数据流传送到压缩编码单元,压缩编码后的视频数据存储到外部SDRAM中,TVP5150所需的14.31818M赫兹时钟频率由外部硬件电路提供,MPG440可通过I/O口对TVP5150的参数进行设置。MPG440通过片内的PDMA控制器和SDRAM控制器来实现对SDRAM的访问,并同时将数据流通过HPI总线发送到S3C2410以便通过网络进行传输。

  3.3    网络传输模块
  S3C2410通过地址、数据、控制线以及片选信号线对CS8900A网络芯片进行控制和通信。主芯片发送信号时首先置发送使能信号,数据发送信号端TXD0"TXD1与CS8900A的
  TXD0"TXD1引脚连接,作为数据的发送通道。数据接收端RXD0"RXD1与CS8900A的RXD0"RXD1引脚对应连接,为数据接收通道。CS8900A由S3C2410选通信号线nCS3来选通,通过对CS8900A一系列寄存器的设置,可以访问CS8900A系统存储空间。CS8900A的INtrQ0端用来产生中断信号。
  以太网控制芯片通过DMA通道进行数据的传输。首先设置好传输控制和传输地址寄存器的参数,依次从指定的数据存储区域读取数据,送入内部发送缓冲器中,用MAC对数据进行封状发送,并同时记录已发送完的字节数,等到整个数据块发送完毕。一组数据发送完后,请求DMA中断,由S3C2410进行处理。整个网络模块硬件设计原理图如图(4)所示。




  4     系统软件设计
  整个Linux系统由四部分组成:引导加载程序(BootLoader)、Linux内核(Kernel)、文件系统(filesystem)以及用户空间(user)。四者分别被存储在Nand Flash的四个分区模块中。本文中采用的是较节省空间的CRAMFS只读文件系统,而Bootloader以及内核Kernel等在移植完成后可不需动态改变,user用户空间则用来存放一些可以动态更新的配置文件,需要进行多次的读写操作,故可以使用支持动态擦写保存的JFFS2文件系统。由于Linux系统移植技术已经很成熟,本文中不再细述,下文主要介绍MPEG-4压缩编码和CGI模块的程序设计。
  4.1     MPEG-4压缩编码程序设计
  整个压缩编码模块完成了MPG440和TVP5150相关寄存器的配置,保证了MPEG-4数据流的正常输出。系统启动后,首先配置MPG440的寄存器,初始化完成后,通过I2C总线对TVP5150进行初始化配置。在压缩编码过程中,MPEG-4数据流接收存储程序由MPG440的数据流缓冲器标志信号来进行控制。当缓冲器满时,RISC_INT0置低,主控制器通过DMA通道把从MPG440的HPI接口接收过来的码流通过网络通道传输到PC端。其压缩编码模块程序流程图如图(5)所示。




  4.2     CGI程序设计
  CGI(Common Gateway Interface)是外部应用程序与万维网(WWW)服务器交互通信的一个标准接口。在本系统中,其工作过程如下:在监控端的PC机的浏览器中输入网络摄像机的IP地址,嵌入式网络服务器根据请求,将相应的控制页面反馈给IE浏览器,用户填写完表单,然后提交,CGI程序根据表单的信息,来处理相应的事件,如设置MPG440相关属性、相机的云台和镜头的相关操作等。CGI的控制原理图如图(6)所示。




  CGI模块程序的设计主要包括如下几部分:WEB服务器的配置、html页面的编写、CGI程序的设计。嵌入式WEB服务器采用的是Boa,其配置是以文件的形式提供,放在文件系统中的/etc/httpd/conf/目录下面,其配置主要涉及以下几个方面:
  (1)配置根文件的路径:“DocumentRoot /home/httpd/html/”,html页面必须放到此目录下。
  (2)配置CGI程序所存放路径:“ScriptAlias /cgi-bin/ home/httpd/cgi-bin/”。
  (3)配置环境变量:“SetEnv D_LIBRARY-_PATH=/lib:/usr/local/lib:/usr/lib”,该变量将会被传送到CGI脚本和SSI页面,以保证CIG程序能正确找到所依赖的库文件。
上一页  [1] [2] [3]  下一页
         
          [/td]
        [/tr]
      
  
         
   
网页页面的编写采用html与shtml相结合的方法。Html的解析速度较快,而shtml可以在普通网页中嵌入外部CGI程序,通过这种方式将系统的默认配置反馈给客户端。
  CGI程序的设计采用的是C语言和shell脚本相结合的方式,其编写过程和Linux下其他程序的编写相同,在此不在赘述。
  4.3     MPEG-4解码程序
  由于映佳科技已经提供了供二次开发的MPEG-4解码插件OCX,OCX在PC机注册后可以方便的被网页调用,实现在PC端实时观看图象。
  5          结语
  本文叙述了一种基于S3C2410、MPG440以及TVP5150等芯片设计的嵌入式网络视频监控系统的实现方案。在测试过程中,该系统实时性好、稳定可靠、图象质量也比较优越,可广泛应用于银行、交通以及工业监控、视频会议等众多领域。
  本文作者创新点:设计了一个基于S3C2410的远程图像监控系统的实现方案,详细讨论了整个系统中的硬、软件设计与实现。
  参考文献:
  [1]赵印伟,谢胜利. 基于AT91RM9200的嵌入式网络摄像机的设计与实现[J]微计算机信息2006,5:26-28
  [2]缐崴,孙先仿. 摄像机运动参数估计中的8点算法及其改进[J]微计算机信息2005, 8:99-100
  [3]Ken Arnold, Embedded Controller Hardware Designe, USA, LLH Technology Publishing上一页  [1] [2] [3]
         
          [/td]
        [/tr]
      
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-4-25 02:32 , 耗时 0.099074 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表