基于S3C2440和USB摄像头的网络视频采集系统
扫描二维码
随时随地手机看文章
本文根据网络视频采集的需要,将网络传输与视频采集相结合,设计了以S3C2440为核心的USB摄像头视频采集和嵌入式Linux系统下的视频服务器,从而实现了远程网络视频信息采集。
1 系统总体设计
该系统是以ARM9处理器S3C2440为核心,在嵌入式Linux系统平台下,通过USB摄像头采集视频信息,然后对所得到的视频数据通过内部总线送到视频服务器MJPG-streamer上,视频服务器经过对图像压缩处理,经过以太网传输出去,远端客户机通过浏览器或者专用软件访问视频服务器,即可浏览现场信息,从而实现网络视频采集。系统总体如图1所示。
2 系统硬件设计
系统的硬件框图如图2所示。
系统处理器采用高性能ARM9处理器S3C2440,S3C2440是基于ARM920T核心的RISC处理器,主频为400 MHz,实现了MMU,具有AMBA总线和哈佛结构高速缓冲体系结构,有独立的16 KB的指令缓存和16 KB的数据缓存。主要应用于高性能,低价格,低功耗的嵌入式设备和手持设备。处理器内部集成了完备的硬件资源,外部存储控制器,4通道DMA,3通道的UART,2通道SPI,2通道USB主机和1通道USB设备,4通道PWM定时器和内部看门狗定时器,130个GPIO等。
NAND FLASH采用K9F2G08,该存储芯片容量大,高达256 MB,改写速度非常快,易于使用,具有可靠的耐用性,适合用于大量数据存储,该FLASH以512 B为块进行读写操作,通过输入输出接口传送地址和命令,传递专门的数据接口与CPU相连,数据总线为8 b,写入操作必须在空白区域进行,所以在改写数据时要先进行擦除,然后再写入。
NAND FLAsH在本系统中用来存放bootloader引导代码,Linux内核代码以及Yaffs文件系统。SDRAM为同步动态随机存储器,类似于PC机的内存,在系统启动时,先将内核代码从FLASH复制到SDRAM中,用来程序的读取,存储,执行,从而提高CPU读取和写入数据的速度。本采用2片32 MB的HY57V作为系统内存,把他们并联起来形成32位的数据总线,提高CPU的访问速度,增加运行Linux系统的流畅性。由于SDRAM掉电不能保存数据,所以要不断的进行动态刷新来保存数据,使用之前要进行初始化。
目前最流行的以太网控制器是DAVICOM公司的DM9000网卡芯片,该芯片自适应10 Mb/s和100 Mb/s的网络,处理器通过GPIO与网卡相连,支持3.3 V接口电压,32位接口存储器可以方便直接与S3C2440相连,在连接RJ-45接口,即可实现以太网物理层和数据链路层的连接。设备驱动程序在Linux操作系统下可以方便的移植,故选择此网卡芯片作为以太网控制器。摄像头采用市场普通USB摄像头,即插即用,处理器通过USB控制器控制摄像头。
3 系统软件设计
本系统软件可分为Bootloader,Linux内核,Yaffs文件系统和MJPG-streamer视频服务器,系统框图如图3所示。
“Bootloader是在操作系统运行之前运行的一段小程序,来完成硬件设备的初始化,从而将系统软硬件环境带到合适状态,为最终调用操作系统做好准备”。Bootloader可以从SAMSUNG公司官方网站下载,经过交叉编译生成Bin文件,下载到板子上。