基于ARM和CCD的视频采集模块驱动设计
摘要:宠物智能喂养系统是一种高效的远程喂养系统,可以通过WEB及移动终端(平板、手机)远程控制宠物的科学喂食和喂水。文中以S3C6 410为核心处理器、红外CCD摄像头为视频采集模块以及为视频解码器,构建了高度集成的嵌入式实时视频采集平台,在此基础上完成了宠物智能喂养系统的设计。该设计具有体积小、成本低、功耗低、稳定性高、安全性好、操作便利等特点,极好地满足了智能科学喂养宠物的需求。文中提出了一种适用于该喂养系统的视频采集驱动设计方案,在Linux3.0.1版本内核下,以Linux下处理视频设备的最新标准-V4L2为基准完成驱动程序编写。通过实验证明该方案能成功实现视频数据的采集。
随着我国社会经济的快速发展,城市化进程不断加速。我国国民生活水平不断得到提高,我国宠物业也得到了飞速的发展。由于城市生活的封闭性、个性化和人口老龄化等问题不断凸显出来。人民生活中休闲、消费和情感寄托方式也呈多样化的发展。家庭宠物的饲养已经成为了城市居民生活消遣的新方式。
宠物的喂养和看护往往是宠物主人最关心的问题,目前宠物主要还是依靠人工进行喂食,宠物看护系统还停留在专人看护和宠物店托管的模式下。现有的宠物看护装置只解决了不让宠物饿肚子的简单层面,而没有解决主人不在家时,宠物和主人的互动要求。主人比较关心的问题,比如宠物现在在做什么,有没有吃饭,宠物健康状况怎么样等,这些心理诉求的满足才是一套宠物看护系统要解决的问题。而现在的设备还不能满足这一需求。
目前的家庭宠物看护系统为数不多,算得上看护系统的产品功能单一,只是简单的测量宠物环境和喂食,不能同时满足用户既可以远程喂养宠物又可以在线观看宠物进食情况和活动状况的需求。近年来随着嵌入式技术迅速的发展,嵌入式系统已经成熟并得到广泛应用,把嵌入式系统与Web技术结合起来,将Web技术引入到测控系统,实现基于嵌入式Web服务器的远程测控系统,有良好的应用前景。在嵌入式Linux平台下利用Boa作为Web服务器的远程测控系统可以实现上述需求,搭载有高度集成的嵌入式实时视频采集平台的宠物智能喂养系统能很好的满足客户的不同需求。通过嵌入式实时视频采集平台上的红外CCD摄像头,宠物主人可以在白天或者晚上用智能手机、平板电脑、PC电脑等通过WEB控制宠物进食同时可以查看宠物进食和活动情况。
在本系统中,驱动程序用来完成用户和硬件的交互,是硬件设备正常工作的先决条件,充当着不可缺少的角色。本文提出一种基于S3C64 10的Linux3.0.1内核版本下的视频采集系统驱动设计方案,并已成功用于宠物智能喂养系统中,收到良好的效果。
1 硬件系统构架
宠物智能喂养系统主要由图像采集模块、视频解码模块、S3C6410、喂食模块、喂水模块和显示模块组成。红外CCD摄像头用于采集智能喂养系统工作状态中的宠物的进食和活动情况图像,由于S3C6410不能识别采集到的PAL制式信号,因此需要做视频解码处理,这里选用TI公司推出的Tvp5150解码器,用于将采集到的PAL制式信号转换成YCrCb格式。S3C6410是整个系统的核心部分,转换后的数字信号数据经编码DMA通道进入Camera单元的编码缩放器,经过高编码质量和压缩比的H264编码后保存到用户程序开辟的缓存区中,然后传输到live555流媒体服务器接收程序中,live555实现了对编码后视频流的流化和相关的处理,最后通过嵌入网页端的流媒体播放器VLC media player播放器实时显示。系统中的喂食模块可以实现宠物所需食物的定量投放,喂水模块可以实现自动喂水和远程喂水的功能。另外为了方便对图像进行相关处理,需要NAND FLASH用于存储截取的图像,同时,SDRAM、JTAG和供电部分等常用外围接口是开发过程中不可缺少的部分。由此搭建的高度集成的实时视频采集系统具有显著的小型化效果。系统整体框架如图1所示。
![](../img/eep/emb/emb-45562dvzyyy4d3e0.jpg)
1.1 S3C6410开发平台
S3C6410是基于16/32-bit RISC ARM1176JZF-S内核的低成本、低功耗、高性能微处理器,具有高达533 MHz的主频,4 G ROM和512 M RAM,性能强大,堪比当今主流智能手机。S3C6410内部集成了许多功能强大的硬件加速器,像视频处理、移动图像处理、显示控制和图像缩放等,集成了Camera接口单元、系统管理器、LCD控制器、定时器、通用I/O端口、I2C总线接口等硬件外设,具有先进的OTG接口和能支持SLC/MLC等主流的NAND FLASH。与本系统直接相关的Camera接口单元由7个模块组成:图形多路选择器、捕获单元、预览缩放器、编码缩放器、预览DMA通道、编码DMA通道和SFR(特殊功能寄存器)。系统中的两个
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)