姓名:王国栋 学号:19020100289
转自:https://blog.csdn.net/anwu0979/article/details/101676403
【嵌牛导读】近 随着通信技术和网络技术的迅猛发展,通过网络远程实时监控重要场所已倍受人们关注,网络摄像机在此背景下产生,并成为人们关注的焦点。网络摄像机是一种结合传统摄像机与网络技术所产生的新一代摄像机,它可以将影像通过网络传至地球另一端,且远端的浏览者不需用任何专业软件,只要标准的网络浏览器(如"Microsoft IE或Netscape)即可监视其影像。网络摄像机要将高清晰度的实时视频信息通过互联网传送到监控终端,因其信息量巨大,所以必须压缩。通常人们采用DSP与MPEG-4算法相结合的方案来实现,不仅编程工作量大,而且产品的成本高。网络摄像机采用专用的MPEG-4压缩芯片、以嵌入式Linux作为操作系统,不仅开发便捷、成本低廉,而且实时性好,适用范围广。
【嵌牛鼻子】网络摄像机
【嵌牛提问】网络摄像机的原理与构成
【嵌牛正文】
软件设计部分主要包括嵌入式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数据流的解码工作。
硬件设计
1.微控制器模块
微控制器是本系统的核心部件,选用的是ATMEL公司的AT91RM9200.它是一款基于ARM920T核的32位微控制器。其主频为180MHz,处理速度快,功能强,性价比高,能很好满足嵌入式Linux系统的需求。它在系统中的主要作用是在系统上电时配置其他芯片的功能寄存器,在正常工作状态下调度控制整个系统工作,通过片内以太网控制器控制物理层芯片发送码流。
AT91RM9200通过片内的SPI总线和SDRAM控制器实现对外围DataFlash和SDRAM的控制,利用片内的USART实现对串口芯片的控制,通过片内的以太网控制器对片外网络芯片进行控制。其控制原理图如图2所示。
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所示
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.网络模块
AT91RM9200的在片以太网卡端口和网络物理层芯片DM9161E的MII接口通信。发送数据时,首先置发送使能信号ETXEN有效。数据发送端ETX0~ETX1与DM9161E的TXD0~TXD1引脚对应连接,作为数据发送通道,通过DM9161E的时钟信号REF_CLK发送数据。数据接收端ERX0~ERX1与DM9161E的RXD0~RXD1引脚对应连接,作为数据接收通道。管理时钟信号EMDC和管理数据输入输出信号EMDIO用来芯片控制参数的写入和读取。DM9161E的MDINTR端用来产生中断信号。
片内以太网卡通过DMA通道进行数据的发送,不影响AT91RM9200的正常运行。首先正确设置传送控制寄存器和传送地址寄存器的传送数据块字节数、数据块存储首地址等参数,随后依次从指定数据存储区地址读取1024b数据,送入内部发送缓冲器中,由MAC对数据进行封装发送,同时记录已传送字节数,直到数据块发送完毕。当发送完一组数据后,发出DMA中断请求,由AT91RM9200进行相应的处理。整个网络子系统电路由AT91RM9200控制和调度。