关闭

关闭

关闭

封号提示

内容

首页 基于S3C2410的网络视频采集.pdf

基于S3C2410的网络视频采集.pdf

基于S3C2410的网络视频采集.pdf

没文化的老者 2012-05-18 评分 0 浏览量 0 0 0 0 暂无简介 简介 举报

简介:本文档为《基于S3C2410的网络视频采集pdf》,可适用于IT/计算机领域,主题内容包含兵工自动化测控技术OIAutomation年第卷第期MeasurementandControlTechnique,Vol,No文章编号:()基于SC符等。

兵工自动化测控技术OIAutomation年第卷第期MeasurementandControlTechnique,Vol,No文章编号:()基于SC的网络视频采集张雄叶念渝田俊(华中科技大学控制科学与工程系湖北武汉)摘要:基于IP网络的实时视频采集、处理及传输系统采用ARMSC+Linux组成嵌入式软硬件系统。并由开发板引出相关接口连接USB数码摄像头实现视频的实时采集。同时利用SC的高速运算能力对视频图像进行压缩。实现过程包括:在内核中编写USB数码摄像头驱动程序编写上层应用程序以获取视频数据。关键词:视频采集SCLinuxUSB数码摄像头中图分类号:TN文献标识码:ANetworkVideoCollectionBasedonSCZHANGXiong,YENianyu,TIANJun(DeptofControlScienceEngineering,HuazhongUniversityofScienceTechnology,Wuhan,China)Abstract:BasedonIPnetwork,theARMSC+Linuxwasadoptedbyrealtimevideocollection,operationandtransmissionsystemtoconsistembeddedsoftwareandhardwaresystemTheUSBinterfaceswereexportedfromthedevelopboardtoconnectwithUSBdigitalcameraandrealizetherealtimevideocollectionAtthesametime,thevideowascompressedbythestrongandhighspeedoperationcapabilityofSCTherealizationprocessincludesprogrammingUSBdigitalcameradevicedriverinLinuxkernelandprogrammingtheupperapplicationprogramofvideocollectiontoacquirevideodataKeywords:VideocollectionSCLinuxUSBdigitalcameraa引言基于IP网络的实时视频采集、处理及传输系统采用ARMSC+Linux组成的嵌入式软硬件系统无需其它硬件就可实现通用视频采集的应用如远程视频监控和网络视频会议。这里着重讨论网络视频采集的实现。系统组成系统的硬件框架系统的硬件设计是基于优龙公司开发的armSC开发板ST其硬件系统如图。RS接口SCCPUJTAG数码摄像头FLASH存储器SDRAMUSB接口UART接口以太网控制器CSA连接宿主机PC互联网图基于SC网络采集系统硬件功能框图系统的软件结构系统软件是在Linux基础之上构建的。ST板使用的Linux内核是在linux内核上打上patch补丁后利用交叉环境编译而成。ST板使用的文件系统是针对Flash的无缓冲机制的jffs文件系统文件系统中包含应用程序、模块、配置文件和库等。视频信号的采集、压缩和传输建立在Linux内核之上如图。应用程序(采集、压缩、传输)文件系统图系统软件结构摄像头驱动Linux内核引导程序(Uboot)视频采集的具体实现视频采集实现分为:在内核中为USB数码摄像头编写驱动程序编写上层应用程序来获取视频数据。USB数码摄像头驱动的实现在Linux中USB驱动程序由主控制器驱动程序、USB内核、USB客户驱动程序组成如图。USB内核分别为客户端驱动程序层和主机控制器驱动程序层提供一套函数集。USB内核USB客户驱动程序(设备驱动)图Linux的USB子系统结构上层APIHC驱动HC驱动下层APIUSB主机控制器集成在SC内部并提收稿日期:修回日期:作者简介:张雄()男湖北人华中科技大学在读硕士从事计算机集成控制及嵌入系统应用研究。兵工自动化测控技术OIAutomation年第卷第期MeasurementandControlTechnique,Vol,No供个USB主机接口与OHCI和USB相兼容支持低速(MBS)和全速(MBS)的USB设备。在编译内核时需将OHCI编进内核。选用网眼V作为USB数码摄像头进行视频采集。V的驱动模块是ovo可将它编译成可加载的模块。用usbregister和usbderegister向USB内核分别进行注册和注销此驱动程序以一个structusbdriver的结构体作为参数。Structusbdriver{constchar*name模块名字void*(*probe)(structusbdevice*,unsignedint)插入设备时调用void(*disconnect)(structusbdevice*,void*)拔出设备时调用structlistheaddriverlistusbcore内部初始化structfileoperationsfops对驱动函数文件列表intminor}当设备被总线检测到时调用一个入口点:void*probe(structusbdevice*,unsignedint)当设备从总线上取下时调用另一个入口点:staticvoiddisconnect(structusbdevice*,void*)当Linux正常启动后必须加入USB摄像头的驱动模块在控制终端使用如下命令:modprobeusbohci加载ohc主机控制器模块modprobeusbcore加载usb核心模块modprobevideodev加载VL接口模块modprobeov加载数码摄像头芯片驱动模块加载videodev和ov模块后将为摄像头V创建设备文件devvldevice这样就可以驱动V然后编写视频采集程序。USB数码摄像头视频采集编程Linux内核针对USB数码摄像头等视频设备提供VL接口函数。VL提供针对视频设备进行基本IO操作的接口函数如open、read、write、close、中断处理、内存映射及IO通道的控制ioctl等并定义在structfileoperations数据结构体中。当应用程序对设备文件进行诸如open、close、read、write等系统调用操作时Linux内核将通过fileoperations结构访问驱动程序提供的函数接口。具体的采集程序如下:()USB摄像头视频采集流程如图。()USB摄像头设备数据结构的定义。typedefstruct{intfd设备文件描述符intusemmap-不使用内存映象,-使用intwidth,height每帧图像的宽度和高度intframerate采集帧的速率structvideocapabilitycapabilitystructvideopicturepicturestructvideowindowvwinstructvideommapvmmapstructvideombufvmbufunsignedchar*framebuffer}vldevice()USB摄像头设备操作函数的设计intcameraopen(chardev,vldevice*vd)intcameraclose(vldevice*vd)intcameragetcapability(vldevice*vd)intcameragetpicture(vldevice*vd)intcamerapictinit(vldevice*vd)unsignedchar*cameragrabimage(vldevice*vd)intcamerammapinit(vldevice*vd,intwidth,intheight)intcameragetmbuf(vldevice*vd)开始图Linux下视频采集流程开启视频设备cameraopen()获取设备信息和图像信息cameragetcapability()cameragetpicture()cameragetmbur()初始化内存映射信息camerammapinit()设置颜色模式camerapictinit()采集视频帧数据cameragrabimage()帧数据处理是否中止视频采集关闭视频设备cameraclose()结束NYVL为视频设备采集图像提供两种方法:read()直接读取mmap()内存映射。read()通过内核缓冲区来读取数据而mmap()通过把设备内存映射到用户进程地址空间中绕过内核缓冲区所以mmap()方式加速IO访问。另外mmap()系统调用使得进程间通过映射同一文件实现共享内存各进程可像访问普通内存一样对文件访问访问时只需用指针而不用调用文件操作函数。因此用mmap()采集图像重点讨论初始化函数(camerapictinit,camerammapinit,cameragetmbuf)和采集图像函数(cameragrabimage)。cameragetmbuf()通过ioctl获取设备的图像帧信息ioctl(vd>fd,VIDIOCGMBUF,vd>vmbuf)camerammapinit()设置图像帧的水平和垂直分辨率及彩色显示格式并且调用mmap进行内存映射vd>vmmapheight=heightvd>vmmapwidth=widthvd>vmmapformat=VIDEOPALETTERGBvd>framebuffer=mmap(,vd>vmbufsize,PORTREAD|PORTWRITE,MAPSHARD,vd>fd,)兵工自动化测控技术OIAutomation年第卷第期MeasurementandControlTechnique,Vol,Nocamerapictinit()通过ioctl初始化颜色模式vd>picturedepth=ioctl(vd>fd,VIDIOCSPICT,vd>picture)cameragrabimage()利用内存映射方式实现图像的采集for(i=i<vd>vmbufframesi)摄像头连续采集支持的帧数{vd>vmmapframe=i*帧的序号*if(ioctl(vd>fd,VIDIOCMCAPTURE,vd>vmmap)<)采集图像{perror("VIDIOCMCAPTURE:")return}}vd>vmmapframe=vd>capturing=检查帧是否采集完成*if(ioctl(vd>fd,VIDIOCSYNC,vd>vmmapframe)<)returnvd>framebuffervd>vmbufoffsetsvd>vmmapframe小结按照这些函数和上述流程设计的视频采集程序可适用于所有的视频设备只需在videoopen()中带相应的设备文件即可。经测试在Kbps~Kbps的带宽下对CIF(fps)格式的视频有较好的表现能力。视频处理如MPEG压缩和视频传输(ASF流格式)可组成一个网络摄像机用于远程网络监控和网络视频会议具有广泛的应用前景。参考文献:肖踞雄USB技术及应用设计M北京:清华大学出版社,ALESSANDRORUBINILINUX设备驱动程序M魏永明,等译北京:中国电力出版社,AlanCoxVideoLinuxProgrammingalanredhatcomKWallGNULINUX编程指南M王勇,等译北京:清华大学出版社,*************************************************************************************************(上接第页)调制控制和发光电路接收光电转换电路接受放大电路信号整形电路调制振荡器图红外光电反射式传感器的典型运用框图发光和接收电路的伺服电路传统调制型红外光电反射式传感器的典型运用电路图如图。ICCµFICWKRKVCCVRRWKCFNPNLED(发)VCCVRKVCCVRKLED(收)CCµFRKRKRKVCCVKICLMOUTC图红外光电反射式传感器典型运用电路在历年大学生电子设计大赛和机器人大赛中寻线小车大多数都是用反射式红外光电传感器。较好效果寻线小车采用的是调制型红外光电传感器电路。将电路里的三极管和低价位运放用TL替换后的电路如图。ICCµFICWKRKVCCVRRWKTLLED(发)VCCVRKVCCVRLED(收)CCRKRKRKVCCVICOUT图含TL的调制型红外光电传感器电路KRVCCVCPPTLRRk因TL器件精度高、可靠性好和很宽的调整范围使整个电路的可靠性及调试性能得到提高。在超声波接受电路中的应用竞赛机器人在寻找目标的行走中有一个测距功能多数采用超声波传感器。超声波具有穿透性强、方向性好、传输衰减小、反射能力强等特点。超声波接受电路中放大单元电路通常采用三极管或运放完成。研究中用TL代替三极管或运放如图。RCCRKRKVCCVICOUT图TL构成的超声波接受电路VCCVCPPTLRKRYR结束语三端并联稳压器TL主要用于开关电源的稳压控制电路经红外光电反射式传感器电路和超声波接受电路的调试证明它还可构成运算放大器。基于TL的应用电路很多廉价稳定的TL具有广泛的应用前景。参考文献:MichaelO’Loughlin三端并联稳压器的隐藏应用J电子技术设计,,():林萌森集成运算放大器的使用技巧和应用M北京:人民邮电出版社,冈村迪夫OP放大电路设计M王玲,等译北京:科学出版社,宗光华,等机器人创意设计与实践M北京:航空航天大学出版社,

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +1积分

资料评分:

/3
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部

举报
资料