跟着通讯技能和网络技能的迅猛开展,经过网络长途实时监控重要场所已倍受人们重视,网络摄像机在此布景下发生,并成为人们重视的焦点。网络摄像机是一种结合传统摄像机与网络技能所发生的新一代摄像机,它能够将印象经过网络传至地球另一端,且远端的阅读者不需用任何专业软件,只需规范的网络阅读器(如“Microsoft IE或Netscape)即可监视其印象。网络摄像机要将高清晰度的实时视频信息经过互联网传送到监控终端,因其信息量巨大,所以有必要紧缩。一般人们选用DSP与MPEG-4算法相结合的计划来完结,不只编程作业量大,并且产品的本钱高。本文所介绍的网络摄像机选用专用的MPEG-4紧缩芯片、以嵌入式Linux作为操作体系,不只开发快捷、本钱低价,并且实时性好,适用规模广。
2. 体系总体规划
体系总体规划包含硬件规划和软件规划两部分。这两部分作业是互相联系的,需求穿插进行,体系规划是开发人员进行的作业,他们将体系规划阶段得到的方针体系的逻辑模型转换为方针体系的物理模型,该阶段得到作业效果――体系规划说明书是下一个阶段体系施行的作业依据。硬件规划模块首要包含微操控器模块、微操控器是将微型计算机的首要部分集成在一个芯片上的单芯片微型计算机。微操控器诞生于20世纪70年代中期,经过20多年的开展,其本钱越来越低,而功用越来越强壮,这使其运用现已无处不在,广泛各个范畴。例如电机操控、条码阅读器/扫描器、消费类电子、游戏设备、电话、HVAC、楼宇安全与门禁操控、工业操控与自动化和白色家电(洗衣机、微波炉)等。紧缩编码模块、网络接口模块和相机操控模块四部分。微操控器模块首要由主控芯片、DataFlash和SDRAM(1)组成。其间,主控芯片是整个操控体系的中心,它担任整个体系的调度作业。DataFlash里固化了嵌入式Linux内核、及其文件体系、运用软件和体系装备文件。紧缩编码模块由视频数据收集芯片、MPEG-4紧缩编码芯片、SDRAM(2)组成,担任将视频流通化为MPEG-4码流。网络接口模块首要是合作主控芯片传送MPEG-4码流。相机的操控模块首要由串口芯片组成,其完结转发操控相机指令的功用。当体系发动时,微操控器通SPI(Serial Peripheral Interface,串行外设接口)将Linux内核转入SDRAM(1)中,体系从SDRAM(1)中发动。体系发动后,微操控器经过HPI(Host Peripherial Interface, 主机接口)操控MPEG-4编码模块。统结构如图1所示。
图1 体系结构框图
软件规划部分首要包含嵌入式Linux移植、MPEG-4紧缩编码模块、CGI操控程序和MPEG-4解码程序四部分。嵌入式Linux体系存放到由AT91RM9200操控的DataFlash里,它担任整个体系软件的调度作业。MPEG-4紧缩编码模块首要担任模仿视频流的收集,并将数字视频流紧缩为MPEG-4数据流。CGI操控程序首要担任对摄像机的操控和对MPEG-4视频流的相关设置。简称CGI.在物理上是一段程序,运转在服务器上,供给同客户端 HTML页面的接口。这样说大约还欠好了解。那么咱们看一个实践比方: 现在的个人主页上大部分都有一个留言本。留言本的作业是这样的:先由用户在客户端输入一些信息,如姓名之类的东西。接着用户按一下”留言“(到目前为止作业都在客户端),阅读器把这些信息传送到服务器的CGI目录下特定的cgi程序中,所以cgi程序在服务器上依照预订的办法进行处理。在本例中便是把用户提交的信息存入指定的文件中。然后cgi程序给客户端发送一个信息,表明恳求的使命现已结束。此刻用户在阅读器里将看到”留言结束“的字样。整个进程结束。MPEG-4解码程序首要担任对经过网络得到的MPEG-4数据流的解码作业。
3. 硬件规划
3.1微操控器模块
微操控器是本体系的中心部件,选用的是ATMEL公司的AT91RM9200.它是一款依据ARM920T核的32位微操控器。其主频为180MHz,处理速度快,功用强,性价比高,能很好满意嵌入式Linux体系的需求。它在体系中的首要作用是在体系上电时装备其他芯片的功用寄存器,在正常作业状态下调度操控整个体系作业,经过片内以太网操控器操控物理层芯片发送码流。
AT91RM9200经过片内的SPI总线和SDRAM操控器完结对外围DataFlash和SDRAM的操控,运用片内的USART完结对串口芯片的操控,经过片内的以太网操控器对片外网络芯片进行操控。其操控原理图如图2所示。
图2 操控原理图
3.2紧缩编码模块
紧缩编码模块包含模仿视频收集模块和MPEG-4紧缩模块。视频收集芯片选用TI公司的TVP5150,数据紧缩芯片选用映佳公司的MPG440.TVP5150输入端但是两种混合视频信号也但是S-Video端子的视频信号,支撑NTSC、PAL、SECAM等3种制式,其输出的数据颜色格局能够为8bit 4:2:2数字信号或许8bit同步ITU-R BT.656数字信号。MPG440芯片具有契合工业规范的16b/32b的双向主机接口,别离用来与视频收集芯片和微操控器芯片通讯。一起,具有移动侦测、防伪水印、动态调整IP画格比率、动态调整图画质量等特性,支撑D1、VGA、CIF、QVGA、QCI等五种分辨率方法。微紧缩编码模块的硬件规划原理如图3所示。
图3 紧缩编码电路
TVP5150的AI模仿输进口与模仿摄像头输出端衔接,向视频处理芯片传送模仿视频信号。模仿信号经过采样处理之后经过YOUT0~YOUT7引脚送到MPG440,采样数据在PCLK的上升沿有用,MPG440的VIDEO_CLK在收到PCLK的上升沿时取得YOUT的信号。TVP5150分场同步脉冲和行同步脉冲,别离对应其输出端VSYNC、HSYNC.MPG440正是依据与之相连的VSYNC和HSYNC信号线来完结图画的场同步和行同步操作。MPG440的视频输入数据线DATA_TV0~DATA_TV7与TVP5150的YOUT0~YOUT7相连。MPG440在接纳数据的一起,将其得到的数据撒播送给MPEG-4紧缩编码单元,编码后的MPEG-4数据流暂存到SDRAM(2)中。MPG440片内PDMA操控器依据装备寄存器的设置精确建议对SDRAM(2)拜访,一起将得到的数据流输送往HPI(主机总线接口,Host Peripherial Interface),以等候AT91RM9200经过DMA通道将数据发送到网络。
MPG440经过HPI与AT91RM9200通讯,AT91RM9200将MPG440的寄存器、存储空间等资源作为其自身内存寻址拜访。MPG440由AT91RM9200选通线NCS4来选通,其在AT91RM9200寻址空间中的地址段为0X50000000到0X5FFFFFFF.经过对MPG440一系列寄存器的设置,能够拜访MPG440体系存储空间。MPG440中止信号RSC_INT0从通用I/O引脚的PB29输入,当缓冲器填满时,RSC_INT0引脚置低提示AT91RM9200经过DMA通道提取MPEG-4数据流。编码后视频数据读取进程和MPG440与主机通讯进程由AT91RM9200读信号CFRD和写信号CFWE操控。
3.3网络模块
网络模块硬件规划原理如图4所示。
图4 网络模块电路
AT91RM9200的在片以太网卡端口和网络物理层芯片DM9161E的MII接口通讯。发送数据时,首要置发送使能信号ETXEN有用。数据发送端ETX0~ETX1与DM9161的ETXO~ETX1引脚对应衔接,作为数据发送通道,以DM9161E的时钟信号REF_CLK发送数据。数据接纳端ERX 0~ERX1与DM9161E的RXDO~RXD1引脚对应衔接,作为数据接纳通道。办理时钟信号EMDC和办理数据输入输出信号EMDIO用来芯片操控参数的写入和读取。DM9161E的MDINTR端用来发生中止信号。
片内以太网卡经过DMA通道进行数据的发送,不影响AT91RM9200的正常运转。首要正确设置传送操控寄存器和传送地址寄存器的传送数据块字节数、数据块存储首地址等参数,随后顺次从指定数据存储区地址读取1024b数据,送入内部发送缓冲器中,由MAC对数据进行封装发送,一起记载已传送字节数,直到数据块发送结束。当发送完一组数据后,宣布DMA中止恳求,由AT91RM9200进行相应的处理。整个网络子体系电路由AT91RM9200操控和调度。
4.软件规划
嵌入式Linux体系首要由四个部分组成引导内核发动的文件(bootloader)、Linux内核文件(kernel)、虚拟磁盘文件(ramdisk)、用户空间文件(user)。它们别离被放在DataFlash内的四个分区模块中。依据不同模块的详细功用选用不同的文件体系:bootloader、kernel、ramdisk,移植完结后不需求动态改动,运用较节约空间的ROMFS只读文件体系;user模块内放置一些能够动态更新的装备文件等,需求进行较多的读写操作,所以运用支撑动态擦写保存的JFFS2文件体系。inux做嵌入式的优势,首要,Linux是开放源代码的,不存在黑箱技能,遍及全球的许多Linux爱好者又是Linux开发者的强壮技能支撑;其次,Linux的内核小、效率高,内核的更新速度很快,linux是能够定制的,其体系内核最小只有约134KB.第三,Linux是免费的OS,在价格上极具竞争力。 Linux还有着嵌入式操作体系所需求的许多特征,杰出的便是Linux适应于多种CPU和多种硬件渠道,是一个跨渠道的体系。到目前为止,它能够支撑二三十种CPU.并且功用安稳,裁剪性很好,开发和运用都很简单。
Linux移植技能现已老练,本文不作详细的论述。下文首要介绍MPEG-4紧缩编码模块和CGI模块的程序规划。
4.1 MPEG-4紧缩编码模块程序规划
该模块首要完结MPG440和TI5150相关寄存器的装备,并确保MPEG-4码流的正常输出。当嵌入式Linux体系发动后,首要装备MPG440的相关寄存器,其初始化完结后,经过I2C总线对TVP5150进行初始化装备。当体系开端紧缩编码时,MPEG-4码流接纳存储程序由MPEG-440的数据流缓冲器标志信号操控。
MPEG-4紧缩编码模块程序流程如图4所示。
图5 MPEG-4紧缩编码模块程序流程图
4.2 CGI程序模块规划
CGI(Common Gateway Interface)是外部扩展运用程序与WWW服务器交互的一个规范接口。本体系CGI的作业进程:在PC机端的IE阅读器中输入网络摄像机IP地址,嵌入式网络服务器依据恳求,将相应的操控页面反馈给IE阅读器,用户填写表单,然后提交,CGI程序提取表单的信息,依据不同信息来别离处理相应的事情,如调理MPEG-4相关特色、相机的相关操作等。CGI操控原理如图5所示。
图6 CGI操控原理图
CGI模块的规划首要包含三部分:嵌入式web服务器的装备、html页面的编写、CGI程序的规划。
嵌入式web服务器选用的是Apache,其装备是以装备文件的方法供给,放在Ramdisk中/etc/httpd/conf/目录下。其装备首要触及以下三个方面:
1装备根文件的途径:”DocumentRoot /home/httpd/html“,html页面有必要放到此目录下。
2装备CGI外部程序所放的途径:”ScriptAlias /cgi-bin/ home/httpd/cgi-bin/“。
3装备环境变量:”SetEenv D_LIBRARY_PATH=/lib:/usr/local/lib:/usr/lib“,该变量将会被传送到 CGI 脚本和SSI页面,以确保CGI程序能正确找到所依靠的库。
网页编写选用html与shtml相结合的方法。html的解析速度较快,shtml能够在一般网页中嵌入外部CGI程序,经过这种方法将体系的默许装备反馈给客户端。
CGI程序选用的是C言语和shell脚本相结合的方法,C言语是一种计算机程序规划言语。它既具有高档言语的特色,又具有汇编言语的特色。它能够作为作业体系规划言语,编写体系运用程序,也能够作为运用程序规划言语,编写不依靠计算机硬件的运用程序。因而,它的运用规模广泛,不只仅是在软件开发上,并且各类科研都需求用到C言语,详细运用比方单片机以及嵌入式体系开发。 详细编写进程,与一般的了Linux下编程相同。
4.3 MPEG-4解码程序
MPEG4于1998 年11 月发布,原估计1999 年1月投入运用的国际规范MPEG4不仅仅针对必定比特率下的视频、音频编码,愈加重视多媒体体系的交互性和灵敏性。MPEG专家组的专家们正在为MPEG-4的拟定努力作业。MPEG-4规范首要运用于视像电话(Video Phone),视像电子邮件(Video Email)和电子新闻(Electronic News)等,其传输速率要求较低,在4800-64000bits/sec之间,分辨率为176X144.MPEG-4运用很窄的带宽,经过帧重建技能,紧缩和传输数据,以求以最少的数据取得最佳的图画质量。与MPEG-1和MPEG-2比较,MPEG-4的特色是其更适于交互AV服务以及长途监控。MPEG-4是第一个使你由被迫变为自动(不再仅仅观看,答应你参加其间,即有交互性)的动态图画规范,它的另一个特色是其综合性。从本源上说,MPEG-4企图将自然物体与人造物体相溶合(视觉效果意义上的)。MPEG-4的规划方针还有更广的适应性和更灵敏的可扩展性。映佳科技已供给供二次开发的MPEG-4解码插件OCX,OCX在PC机端注册后,OCX函数可方便地被网页调用,然后完结在PC机端观看实时图画。
5 总结
本文介绍了一种运用AT91RM9200、TVP5150,MPG440和DM9161E等芯片规划的嵌入式网络摄像机。经测验,该体系安稳、牢靠、实时性好、图画质量超卓。该产品可广泛运用于交通监控和工业监控以及家庭监控、视频会议话等许多范畴。