基于S3C6410的无线视频监控系统设计
伴随电子信息技术,网络技术及多媒体技术的快速发展,嵌入式无线视频监控技术也在不断的飞速发展。视频监控系统正在向数字化、网络化和集成化方向发展,因此研究基于嵌入式的视频监控系统是必要的。基于嵌入式的无线视频监控是以高性能处理器为核心,控制外围部件进行视频采集和压缩编码,再将视频流以无线的方式发送到中断进行存储显示。与其他监控系统相比,利用嵌入式技术的无线视频监控系统易安装,体积小,可以实现无人值守,对于各种特殊场合需求的视频监控能够满足应用要求。
钱华明等人提出了一种基于S3C2410硬件平台和嵌入式Linux操作系统,将采集的视频数据进行MPEG-4编码,再通过CDMA模块,完成无线网络视频传输。涂继辉等人提出了以高性能ARM9芯片作微处理器,通过嵌入式Linux采集USB摄像头视频数据,经MJPEG-4压缩,通过2.4 GHz无线发送/接受模块实现无线视频监控。张伟男等人提出了一种基于3G无线网络传输的移动视频监控系统的方案,实现了实时监控的功能。
为了实现室内视频监控系统的网络传输,在保证传输稳定和多用户的需求前提下,本文选取了主频更高的ARM11作为处理器,以802.11g的无线局域网和Mjpg—streamer视频服务器为传输媒介的无线视频监控系统。
1 系统方案设计
1.1 核心控制器
微处理器是系统硬件的核心,考虑到ARM低功耗、低成本、高性能等特点,本文采用ARM11 S3C6410微处理器为核心的飞凌OK6410开发板,S3C6410是一款高性能32位的RISC微处理器,主频高达667 MHz,它采用64/32位内部总线架构,具有视频处理、二维图形显示和缩放等硬件加速器功能。该开发板有256MB DDR和2 GB NAND FLASH,CPU内部集成SDRAM控制器、32通道DMA、4通道UART、SD接口、USB接口及以太网接口等,为各种应用开发提供了强大的支持。系统硬件架构图如图1所示。
1.2 数字摄像头
OK6410有1个CMOS摄像头接口,但由于摄像头只能固定在开发板上,不便于安装和放置,故本设计采用USB摄像头。考虑到成本问题,摄像头选用天敏10moons,经测试该设备可以用于OK6410开发板上,且输出YUV格式的视频帧数据。
1.3 WIFI模块
本设计使用的WIFI模块为飞凌公司自行设计生产的,接口为2.0间距的双排插孔“CN4”,主芯片型号为“WM-G-MR-09”。在连无线网络之前,先关闭DM9000网卡,再启动SDIO WIFI,命令分别为:ifconfig ethO down和ifconfig wlanO up。
2 系统软件平台
软件设计包括嵌入式操作平台的搭建以及视频服务器软件的移植。为此,首先搭建嵌入式交叉编译环境。Ubuntu是一个以桌面应用为主的Linux操作系统,且具有安装系统简单和图形界面人性化特点,故选用Ubuntu 12.04为宿主机电脑操作系统。交叉编译器选择arm—linux —gcc 4.3.2版本。
2.1 嵌入式操作系统的选择和移植
现阶段主流的嵌入式操作系统有Linux、WinCE和μC/OS—II,其中Linux以其充分的开源性和良好的可移植性被广泛使用,此次设计选取Linux 3.0.1版本的系统。
2.1.1 内核的裁剪与移植
内核的裁剪就是对各个功能进行裁剪,选取满足特定平台和需求的功能。Linux内核采用模块化设计,并且各个模块源码以文件目录的形式存放,在对内核的裁剪和编译时非常方便。
1)USB摄像头驱动模块的添加
进入内核文件目录,执行make menuconfig命令,进入Linux内核配置界面一次选择Device Drivers->Muhimedia devices->Video For Linux->Video capture adapters->V4L USB devices->USB Video Class (UVC1->UVC input events device support将USB摄像头驱动编译进内核。
2)SDIO WIFI驱动模块的加载
系统的通信方式采用的是无线传输,由于这是系统的基本功能,可以采用将无线网卡驱动直接编译进内核的方式来实现。具体过程如下:
进入Linux内核配置主界面后,首先配置网络支持:Networking support->Wireless,然后配置网卡驱动支持:Device Driver->Network device->Wireless LAN->Wireless LAN(IEEE802.11),最后配置SD HOST驱动支持:Device Driver->MMC/SD/SDIO card support。
对内核配置完成后,使用make zImage指令编译Linux内核,将生成可引导的、压缩的zImage映像文件,可直接烧写到开发板。
2.1.2 引导加载程序Bootloader的移植
Bootloader是操作系统运行前执行的一段小程序,在对系统硬件进行初始化,完成内存空间映射表的建立等操作后,实现对操作系统的加载。常用的Bootloader种类主要有:RedBoot、ARMboot、Vivi、U—Boot和Blob等。由于U—
嵌入式Linux 视频监控 无线传输 Mjpg―streamer 相关文章:
- 嵌入式Linux技术在工业控制网络中的应用(10-30)
- 基于嵌入式Linux的组态软件实时数据库的设计(02-01)
- 基于ARM+DSP的嵌入式Linux数控系统设计(11-18)
- 基于嵌入式Linux的细胞特征提取算法设计(11-19)
- 基于S3C2410的嵌入式Linux系统构建(03-02)
- 嵌入式Linux网络编程之:网络基础编程(08-13)