引言
近年来高性能、低功耗的ARM处理器成为嵌入式应用的主流;开源的嵌入式Linux操作系统由于系统稳定、兼容性和移植性好、网络功能强等优点也成为嵌入式操作系统之一,但目前嵌入式Linux支持的USB摄像头(如OV511)市场上已淘汰,使用现有USB摄像头需开发相关驱动程序,由于采用中芯微公司的USB摄像头在市场中的占有率很高,可实现网络摄像机,所以本文针对这类USB摄像头设计了基于AT91RM9200的嵌入式网络摄像机设计, 不仅开发便捷、成本低廉, 而且实时性好, 适用范围广。
系统总体设计
系统总体设计包括硬件设计和软件设计两部分。硬件设计模块主要包括微控制器模块、压缩编码模块、网络接口模块和相机控制模块四部分。微控制器模块主要由主控芯片、DataFlash 和SDRAM(1)组成。其中, 主控芯片是整个控制系统的, 它负责整个系统的调度工作。DataFlash 里固化了嵌入式Linux 内核、及其文件系统、应用软件和系统配置文件。SDRAM(1)作为内存供系统运行使用。压缩编码模块由视频数据采集芯片、MPEG- 4 压缩编码芯片、SDRAM(2)组成,负责将视频流转化为MPEG- 4 码流。网络接口模块主要是配合主控芯片传送MPEG- 4 码流。相机的控制模块主要由串口芯片组成, 其完成转发控制相机命令的功能。当系统启动时, 微控制器通SPI( Serial PeripheralInterface, 串行外设接口) 将Linux 内核转入SDRAM( 1) 中, 系统从SDRAM( 1) 中启动。系统启动后, 微控制器通过HPI(Host Peripherial Interface, 主机接口)控制MPEG- 4 编码模块。统结构如图1 所示。
软件设计部分主要包括嵌入式Linux 移植、MPEG- 4 压缩编码模块、CGI 控制程序和MPEG- 4 解码程序四部分。嵌入式Linux 系统存放到由AT91RM9200 控制的DataFlash 里,它负责整个系统软件的调度工作。MPEG- 4 压缩编码模块主要负责模拟视频流的采集, 并将数字视频流压缩为MPEG- 4 数据流。CGI 控制程序主要负责对摄像机的控制和对MPEG- 4 视频流的相关设置。MPEG- 4 解码程序主要负责对通过网络得到的MPEG- 4 数据流的解码工作。
硬件设计
微控制器模块
微控制器是本系统的部件, 选用的是ATMEL公司的AT91RM9200。它是一款基于ARM920T 核的32位微控制器。其主频为180MHz, 处理速度快, 功能强, 性价比高, 能很好满足嵌入式Linux 系统的需求。它在系统中的主要作用是在系统上电时配置其他芯片的功能寄存器, 在正常工作状态下调度控制整个系统工作, 通过片内以太网控制器控制物理层芯片发送码流。
AT91RM9200 通过片内的SPI 总线和SDRAM控制器实现对外围DataFlash 和SDRAM的控制, 利用片内的USART 实现对串口芯片的控制, 通过片内的以太网控制器对片外网络芯片进行控制。其控制原理图如图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 等五种分辨率模式。微控制器通过主机接口实现MPG440 的初始配置, 也由此接收MPEG- 4 码流。压缩编码模块的硬件设计原理如图3 所示。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。