找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于Linux及S3C2440A的嵌入式远程视频监控系统的设计

[复制链接]
admin 发表于 2013-3-24 06:38:54 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘  要: 介绍了一种远程视频监控系统的实现方案。其以嵌入式Linux和S3C2440A为核心平台,通过嵌入式平台将摄像头采集的视频信号进行压缩,同时进行入侵检测,再通过网络将数据传送至Web服务器。实现了一种体积小、成本低、数字化的监控解决方案,具有广泛的应用价值。
关键词: 嵌入式Linux;S3C2440A;图像采集;Video4Linux;JPEG压缩
    随着网络、通信和数字信息技术的不断发展,监控系统的组成模式也在快速变化和发展中,当前网络技术与嵌入式系统技术的结合催生了全新的基于嵌入式Web服务器的监控系统。与传统的视频采集监控系统相比,它具有可靠性高、组网方便、可远程监控等优点,因而更适用于机要部门、工厂、市场、交通运输的安防监控系统中[1]。
 本文介绍了一种以S3C2440A开发板为基础的嵌入式远程监控系统的实现,该系统基于嵌入式Web服务器技术,在嵌入式硬件平台和Linux操作系统下进行。采用ov511芯片的网眼300CMOS摄像头进行数字图像采集,利用JPEG图像压缩编码方式,进行视频图像入侵检测,可以直接在以太网上解码显示。
1 视频监控系统总体设计
1.1 系统总体结构

 硬件系统是嵌入式系统的核心,它是承载软件的实体,软件通过它来控制各种接口。本系统中硬件的总体构架包括系统存储器、外围接口电路、电源及复位电路等几个部分。系统的总体结构如图1所示。
    2012110705100654678175.gif
   1.2 S3C2440A处理器概述
 本系统使用的微处理器是三星公司生产的S3C2440A芯片,该芯片采用ARM公司的ARM920T的32 bit CPU核,并集成了ARM结构的MMU单元,各有16 KB的指令缓存和数据缓存,最大寻址空间为1 GB,主频为400 MHz(最高可达533 Hz)。
 S3C2440A提供了丰富的片内资源:64 MB SDRAM、256 MB Nand Flash、2 MB的NOR Flash、LCD控制器(STN/TFT)、DM9000E型网卡、4通道的DMA、3通道的异步串口(UART)、两通道的高速同步串行口(SPI)、4通道的带脉宽调制的PWM定时器和1通道内部定时器/看门狗定时器、双端口的USB(主机)、1端口的USB(设备)、8通道10 bit ADC、触摸屏接口、锁相环(PLL)片上时钟发生器、通用I/O端口、相机接口、SD卡和MMC卡接口。其支持各种型号的ROM引导(Nor/Nand Flash,EEPROM或其他),1.2 V内核供电,1.8 V/2.5 V/3.3 V存储器供电,3.3 V外部I/O供电,具备16 KB的I-Cache和16 KB D Cache/MMU微处理器。
2 系统软件开发平台的建立
 本系统使用Linux操作系统,编译环境采用交叉编译调试方式。内核采用Linux 2.6.30.4版本,使用Cramfs根文件系统。
2.1 嵌入式交叉编译环境搭建
 在裁剪和定制嵌入式Linux之前,必须先建立起编译环境。由于一般的嵌入式开发系统的存储空间有限,因此通常使用交叉编译环境。简单地说,交叉编译就是在一个平台上生成另一个平台上的可执行代码,即在宿主机(PC机)安装开发工具,编辑、编译开发板上的引导程序(Bootloader)、内核和根文件系统,使其能在开发板上运行。本系统使用的编译系统为arm-linux-gcc-3.4.1版本。
2.2 Linux系统的移植
 从网上下载标准的Linux-2.6.30.4版本内核,使用解压命令#tra xvfj linux2.6.30.4tra.bz-C/opt/EmbedSky/,然后解压到PC的“opt/EmbedSky”目录下。由于系统还不支持ARM,因此必须在系统中添加对ARM的支持,进入内核源码,修改“Makefile”文件,将“ARCH?= (SUBARCH)”修改为“ARCH=arm”,将“CROSS_COMPILE?=”修改为“CROSS_COMPILE=arm_linux_”,进行保存。在配置单中导入对内核的默认配置,再在此基础上选择需要的功能,如Nand Flash、Video4Linux编程接口函数,MTD设备、USB设备的支持及Cramfs文件系统的支持。再使用Cramfs制作工具mkcramfs把根文件目录制作成映像文件,最后安装DM9000E芯片网卡的驱动程序,即完成了系统移植。
3 视频数据处理模块设计
3.1 基于V4L的视频采集设计

 Linux对于视频数据采集设备的支持是通过Video4Linux(V4L)来实现的。V4L是在Linux下用于视频和音频数据的API接口,它为视频设备的应用程序提供了一系列的接口函数。这些视频设备包括市场上常见的电视捕获卡和USB接口的摄像头等[2]。
 在编写图像采集程序时,根据需要定义一个结构体来保存采集过程中需要的各种参数。该结构体如下:
typedef struct v4l_struct{
in fd;
struct video_capability capability; //设备的基本信息
struct video_channel channel[4];//各个信号源是属性
struct video_picture picture;//设备采集的图像的各种属性
struct video_window window;//capture area的信息
struct video_capture capture;
struct video_buffer buffer;//最底层对buffer的描述
struct video_mmap mmap;//用于mmap
struct video_mbuf mbuf;//利用mmap进行映射的帧的信息
unsigned char *map;
int frame;
int framestat[2];
}v4l_device;
 从上面的结构体可以看出,想要完成视频数据的采集,首先要获得对应视频采集设备的信息和图像的信息,同时需要对采集的窗口、颜色模式和帧的状态进行初始化,然后才能进行视频图像的采集。视频采集流程如图2所示。
    2012110705100660928176.gif
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-25 13:11 , Processed in 0.060083 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表