浅谈AT91RM9200的嵌入式网络摄像机的设计与实现

时间:2013-09-09来源:网络

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等芯片设计的嵌入式网络摄像机。经测试,该系统稳定、可靠、实时性好、图像质量出色。该产品可广泛应用于交通监控和工业监控以及家庭监控、视频会议话等众多领域。

1 2

关键词: AT91RM9200 网络摄像机 MPG440

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版