预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

http://www.cdtarena.com 基于ARM11+Linux的无线视频监控系统 1引言随着无线网络的普及,ARM处理器运算的能力不断地增强以及计算机处理图像的技术不断地提高,基于ARM的视频监控正越来越广泛的应用于学校,社区,酒店,网吧,医疗等各种各样地领域。传统的视频监控系统布线复杂,设备庞大,智能化低,以及软硬件资源得不到充分的发挥。而arm嵌入式系统的小型化、占用空间小、成本低廉、结构紧凑、支持无线网络等特点,使得利用S3C6410的arm11+linux系统构成各种各样的无线网络数字监控系统具有广泛的应用价值。HYPERLINK"http://www.cdtarena.com"http://www.cdtarena.com2系统整体设计2.1硬件总体设计本系统采用韩国三星公司arm11内核的S3C6410作为微处理器,该款处理器体积小,尺寸仅相当于一个48mm*67mm方块的大小,同时集成了丰富的接口,32位数据总线和32位外部地址总线,SROM控制器、SRAM控制器、NAND闪存控制器、64个中断源的中断控制器、五个三十二位定时器、四个UART、四个DMA控制器、STN与TFTLCD控制器、看门狗、IIS音频接口、IIC-Bus接口、两个USBhost口、一个USBdevice口、两个串行外围接口电路、三个SD卡接口、camera_if接口、TV_out接口、MFC接口、2路SPI、TouchScreen接口,其主频可达800MHz,扩展总线最大频率133MHz.在此基本上,还进行了相关的扩展,引出了一个四线RS-232串口,该串口用于开发主机与S3C6410开发平台进行通信;配置了1GB的NANDflash,用于存放嵌入式linux操作系统,应用程序和数据,128MB的DDR内存,用于存放运行程序,摄像头捕获的数据;扩展了一个WIFI模块,用于开发平台与服务器传输视频数据,通过无线网络实现视频远程监控。2.2软件总体设计软件总体结构包括引导加载程序Bootloader、操作系统内核,设备驱动程序和应用层程序,其软件结构如图1所示。图1软件总体结构框图该系统上电后,先运行引导加载程序Bootloader,该程序的作用是初始化硬件设备、建立内存空间的映射表,引导和加载操作系统内核,然后启动嵌入式操作系统linux,接着加载Nandflash驱动程序、LCD驱动程序、WIFI驱动程序等一些必要的驱动程序。3视频数据采集和编码设计3.1基于V4L2视频数据采集设计在Linux系统下,对视频设备的各种操作是通过Video4Linux2实现的,简称V4L2.应用程序通过V4L2提供的接口函数实现视频设备的操作。整个视频数据采集的过程如图2所示。 (1)打开视频设备,intopen(constchar*pathname,intflags)。调用该函数,若返回值为-1,表示打开失败,否则,表示所打开设备的文件描述符。(2)取得设备信息。通过ioctl(cam_fp,VIDIOC_QUERYCAP,&cap)函数来取得设备文件的属性参数并存储于cap结构中,其中cam_fp指的是打开的视频设备的文件描述符。(3)选择视频输入方式。通过ioctl(cam_fp,VIDIOC_S_INPUT,&chan)函数设置视频设备的输入方式,其中chan的数据结构类型是v4l2_input,用来指定视频的输入方式。(4)设置视频帧格式。通过ioctl(cam_fp,VIDIOC_S_FMT,&fmt)函数设置视频的帧格式,其中fmt的数据结构类型是v4l2_format,用来指定视频的宽度、高度、像素大小等。(5)读取视频数据。通过read(cam_fp,g_yuv,YUV_SIZE)函数,把摄像头一帧的数据存放到g_yuv中,其中YUV_SIZE指的是每帧数据的大小。(6)关闭视频设备。通过close(cam_fp)函数来实现视频设备的关闭。图2视频数据采集流程框图。3.2视频数据的H264编码为了提高视频数据编码速度,本系统采用的是H264硬编码方式,硬编码具有不占用CPU资源,运算速度快等优点,从而满足视频数据实时性的要求。具体编码的过程如图3所示。(1)创建H264编码结构。调用SsbSipH264EncodeInit(width,height,frame_rate,bitrate,gop_num)函数实现的,其中width表示图像的宽度,height表示图像的高度,frame_rate表示帧频,bitrate表示比特率或码率,gop_num表示两个相离关键帧之间最多包含多少个帧(B或P帧)。(2)初始化H264编码结构,调用SsbSipH264EncodeExe(handle)函数。(3)获取视频输入地址,SsbS