版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨工业大学工学硕士学位论文-PAGEII--PAGEII-高清图像实时采集处理系统摘要近年来,随着数字信息技术的快速发展,数字视频处理已经成为我们日常生活中不可缺少的一部分,中医药领域和军事用品领域都非常广泛,我们经常可以感受到技术的变化。特别是随着电子产品的不断更新换代,便携式、小型化、稳定化、智能化、功能集成化和高性价比已成为电子设备的主要研究目标。图像的数字化对图像处理有着十分重要的意义,量化后的图像方便分析,量化的越细致,图像就越精致。本设计结合嵌入式硬件平台-基于Cortex-A9的迅为iTOP-4412开发板进行高清图像数据实时处理系统的研究。以三星推出的芯片exynos4412作为核心处理器,采用基于Cortex-A9的iTOP-4412开发板,采用ov5640摄像模块实现图像数据的采集,调用v412接口完成视频信号的采集,运用H.264进行图像编码压缩处理,通过TCP/IP协议对处理后的数据进行传输,在web终端上实时显示。本设计移植了Linux系统的开发板通过摄像头采集图像帧,硬件环境包括itop4412开发板、摄像机和计算机。软件环境包括运行在arm开发板的Linux系统、运行在Linux系统开发版本中的boa(网络服务器)、编译文件中PC使用的VMworkstation以及在其上设置的Ubuntu12.04.2系统的工作原理。进程实现高清图像实时采集和处理功能。关键词嵌入式系统;iTOP-4412;移植Linux系统;ov5640高清摄像头左下角I左下角IAbstractInrecentyears,withtherapiddevelopmentofdigitalinformationtechnology,digitalvideoprocessinghasbecomeanindispensablepartofourdailylife,thefieldoftraditionalChinesemedicineandmilitarysuppliesareveryextensive,wecanoftenfeelthechangeoftechnology.Especiallywiththecontinuousupgradingofelectronicproducts,portable,miniaturized,stable,intelligent,functionalintegrationandhighcostperformancehavebecomethemainresearchobjectivesofelectronicequipment.Imagedigitizationisofgreatsignificancetoimageprocessing.Thequantizedimageiseasytoanalyze.Themoredetailedthequantizationis,themoredelicatetheimagewillbe.Thisdesigncombinestheembeddedhardwareplatform,whichisbasedoncortex-a9andXunweiitop-4412developmentboard,tostudythereal-timeprocessingsystemofhigh-definitionimagedata.Takingexynos4412chipintroducedbySamsungasthecoreprocessor,adoptingitop-4412developmentboardbasedoncortex-a9,adoptingov5640cameramoduletorealizeimagedataacquisition,callingv412interfacetocompletevideosignalacquisition,usingH.264forimagecodingandcompressionprocessing,transmittingtheprocesseddatathroughTCP/IPprotocol,anddisplayingontheWebterminalinrealtime.ThisdesigntransplantedthedevelopmentboardofLinuxsystemtocollectimageframethroughcamera.ThehardwareenvironmentincludesiTOP4412developmentboard,cameraandcomputer.ThesoftwareenvironmentincludesLinuxsystemrunningonARMdevelopmentboard,boa(networkserver)runningonLinuxsystemdevelopmentversion,vmworkstationusedbyPCincompiledfileandtheworkingprincipleofUbuntu12.04.2systemsetonit.Theprocessrealizesthefunctionofreal-timeacquisitionandprocessingofhigh-definitionimage.KeywordsKeywordsembeddedsystem;itop-4412;PortingLinuxsystem;ov5640HDcameraPAGEII---PAGEVI-目录摘要 IIAbstract III第1章绪论 81.1课题背景 81.2国内外研究现状 81.2.1高清图像实时采集处理系统研究现状 81.2.2高清图像实时采集处理系统分析 91.3本课题研究的内容 101.3.1图像采集 101.3.2图像编码 101.3.3采样频率 111.3.4传输速率 11第2章高清图像实时采集处理总体设计 122.1研究/设计方法 122.1.1图像采集 122.1.2图像编码 132.1.3图像传输 132.2实验方法与步骤 14第3章高清图像实时采集处理硬件模块概述 163.1存储器模块 163.1.1EMMC简介 163.1.2EMMC选型指标 163.1.3EMMC参数 163.2Camera模块 163.2.1ov5640摄像头简介 163.2.2摄像头选型指标 173.2.3摄像头引脚图及连接 173.3WIFI模块 173.3.1Wifi简介 173.3.2Wifi模块选型指标 183.3.3Wifi引脚图及连接 183.4RJ45网络接口 183.4.1RJ45简介 183.4.2RJ45选型指标 193.4.3RJ45引脚图及连接 193.5电源电路模块 193.5.1电源电路引脚图 19第4章软件模块开发与移植 214.1嵌入式系统 214.2编译环境搭建 214.2.1交叉编译环境介绍 214.2.2USB驱动开发与移植 214.2.3摄像头ov5640的开发与移植 23第5章高清图像实时采集处理软件编程概述 255.1软件编程各模块的实现 255.1.1实现V4l2视频采集 265.1.2实现视频压缩 275.1.3实现视频传输 285.2嵌入式WEB服务端的搭建 295.2.1嵌入式web服务端的介绍 295.2.2BOA的移植搭建 29第6章高清图像实时采集处理系统测试 346.1系统总体测试 346.2系统总体实现 34结论 36致谢 38参考文献 39catalogSummary IIAbstract IIIChapter1introduction 81.1background 81.2researchstatusathomeandabroad 81.2.1researchstatusofreal-timeHDimageacquisitionandprocessingsystem 81.2.2analysisofHDimagereal-timeacquisitionandprocessingsystem 91.3contentsoftheresearch 101.3.1imageacquisition 101.3.2imagecoding 101.3.3samplingfrequency 111.3.4transmissionrate 11Chapter2overalldesignofHDimagereal-timeacquisitionandprocessing 122.1research/designmethods 122.1.1imageacquisition 122.1.2imagecoding 132.1.3imagetransmission 132.2experimentalmethodsandsteps 14Chapter3highdefinitionimagereal-timeacquisitionandprocessinghardwaremoduleoverview 163.1memorymodule 163.1.1EMMCintroduction 163.1.2EMMCselectionindex 163.1.3EMMCparameters 163.2cameramodule 163.2.1introductiontoov5640camera 173.2.2cameraselectionindex 173.3WiFimodule 173.3.1introductiontoWiFi 173.3.2WiFimoduleselectionindex 183.3.3WiFipindiagramandconnection 183.4RJ45networkinterface 183.4.1introductiontoRJ45 183.4.2RJ45selectionindex 193.4.3RJ45pindiagramandconnection 193.5powercircuitmodule 193.5.1powercircuitpinfigure 19Chapter4softwaremoduledevelopmentandtransplantation 214.1embeddedsystem 214.2buildcompilationenvironment 214.2.1introductiontocrosscompilationenvironment 214.2.2USBdriverdevelopmentandtransplantation 214.2.3developmentandtransplantationofcameraov5640 23Chapter5highdefinitionimagereal-timeacquisitionandprocessingsoftwareprogrammingoverview 255.1realizationofsoftwareprogrammingmodules 255.1.1realizationofv4l2videocollection 265.1.2videocompression 275.1.3realizingvideotransmission 285.2buildingofembeddedwebserver 295.2.1introductiontoembeddedwebserver 295.2.2transplantationandconstructionofboa 29Chapter6driveandtestofHDimagereal-timeacquisitionandprocessingsystem 346.1overallsystemtest 346.2overallsystemrealization 34Conclusions 36Acknowlegements 38References 39-PAGE10--PAGE27-绪论课题背景近年来随着科学技术飞速的提升,高清图像实时采集处理系统已经成为我们日常生活中不可缺少的一部分,中医药领域和军事用品领域都非常广泛,我们经常可以感受到技术的变化。特别是随着电子产品的不断更新换代,便携式、小型化、稳定化、智能化、功能集成化和高性价比已成为电子设备的主要研究目标。图像的数字化对图像处理有着十分重要的意义,量化后的图像方便分析,量化的越细致,图像就越精致。近年来国内图像编码发展也有了长足的发展,各大科技公司、高校及研究所等均对我国图像编码的发展做出了巨大的贡献,呈现出百家争鸣的景象,拥有良好的市场应用前景,北京奇虎科技有限公司于2018年设计了一种基于层级式的图像编码方式及设备,针对不同层级匹配与之相对应的处理设备进行实时图像处理,我国高校也在图像编码研究方向做出了突出贡献,辽宁师范大学宋传鸣等人通过分别对高频子带和低频子带进行二次小波变换及迭代处理,发明了一种基于能量泄露和放大的改进SPIHT图像编码和解码方法,可有效改善解码图像在低码率下的主客观质量,西安交通大学侯兴松和陈赞通过重建多层测量模型,基于前一层的测量值预测下一层,多次利用预测残差得到更加精确的重构图像,相比于传统的测量编码方法在失真性能方面有着显著的提高,诸如上述国内公司及高校,还有很多出众的团队为图像编码的研究领域做出了巨大的贡献,相信这种百家争鸣的科研势头定会与日俱增[1]。国内外研究现状高清图像实时采集处理系统研究现状随着科学技术日新月异的快速发展,人们的生产和生活方式发生了巨大的变化,高清图像实时采集处理系统逐渐成为人们生活的重要组成部分,同时它也经历了三个发展阶段。第一代高清图像实时采集处理系统是基于模拟信号的模拟高清图像实时采集处理系统,也是最早的高清图像实时采集处理系统,这个名字由来正是由于系统中采用模拟信号实现视频采集,传输,显示等处理,常见的普通模拟图像实时采集处理系统可以划分为四个部分,即图像采集,图像传输,系统控制以及显示部分和存储部分,其中最重要的部分就是完成图像采集的摄像机和录像机的部分,第一代的图像实时采集处理系统已经存在较长时间,经历了长时间的发展,技术水平比较成熟了,系统的功能在发展中不断的完善,在是图像实时采集处理整个系统中占有相当的地位,但是这种系统也有着较多的缺点由于模拟信号的本身的特点,限制了信号的传输距离,不能实现长距离的图像实时采集处理系统,而且系统中设备较多,扩展能力下降,种种因素制约了图像实时采集处理系统的发展脚步[2]。第二代是基于微机平台的多媒体图像实时采集处理系统,系统发展其得益于通用计算机图像数据处理能力的提高,这一代系统与第一代系统的突出区别就是采用了数字信号作为系统采集处理信号,系统的核心部分使用性能较高的工控机,实现模块化结构,将系统前端采集设备整体集成在一起,同时随着图像技术的进步,给这一代系统提供了新的技术实现方式,使得系统能够具有较强的系统功能,有利于现场的操作,但是也存在着不少的缺陷不具备良好的系统整体稳定性,结构也比较复杂,在系统的能耗和费用方面都比较高,而且系统软件没有优秀的兼容性,需要由专人管理。第三代基于嵌入式网络的图像实时采集处理系统,人们生活水平的提高,对图像实时采集处理系统提出了越来愈高的要求,例如简单的操作,良好的交互,高效的实时性,可靠的稳定性以及可以联入互联网等,随着微处理器技术的飞速发展,全球的网络化,以及各种视频图像处理技术的成熟和发展,基于嵌入式技术的远程网络图像实时采集处理系统诞生,并获得了迅猛的发展其不但解决了图像传输、远程控制、现场信号采集等图像实时采集处理功能,还可以提供高质量的图像和便捷的操作方式。用户要求视频采集的更加的高清化,智能化,在这种社会责任的驱使下,目前的嵌入式网络图像实时采集处理系统的设备正在向着这一目标发展。高清图像实时采集处理系统分析高清图像实时采集处理系统是指由一整套完善的高清图像实时采集处理设备组成的采集系统,包括图像采集、传输、存储以及显示等均要达到高清标准的系统[2]。所以为了到达“高清”的指标系统就需要做出相应调整,只要一个环节满足不了要求,就达不到“高清”要求,之所以近年来高清图像实时采集处理技术得以迅速发展,就是由于系统解决了人们在采集处理过程中看不起“细节”的问题,高清又称为高分辨率,最早在来源于数字电视领域,即高清电视,是由美国电影电视工程师协会规定的高清晰度电视标准格式,电视的清晰度的计量是水平扫描线数,高清可以分为三种格式720p,1080p,1080i[2]。这三种格式都是标准的数字信号电视的显示格式,它们的垂直扫描线分别为750条,1125条,1125条,而可见垂直扫描线都要稍微低一点,分别为720条,1080条,1080条,这也是三种高清格式名称的由来,分辨率分别为1280x720,1920x1080,1920x1080,对于1080p和1080i的区别就在于是否是逐行扫描,P代表采用逐行扫描,i代表隔行扫描[3]。如果系统分辩率达到1080i和720p,就称为高清系统,1080p则为全高清系统。本课题研究的内容本设计结合嵌入式硬件平台-基于Cortex-A9的迅为4412开发板进行高清图像数据实时处理系统的研究。以三星推出的芯片exynos4412作为核心处理器,采用了讯为的iTOP-4412开发板,摄像头模块使用的是500w像素的ov5640高清摄像头。并且将移植linux系统到开发板上,通过ov5640摄像头采集一帧一帧的视频,完成对高清晰度图像的采集,处理,压缩,传送,存储,显示等。嵌入式系统下的高清图像实时采集处理系统具有高集成性,且性能更加安全,开发成本较低,携带也较为方便。图像采集本设计的系统中所使用的图像均为高清图像,图像分辨率至少在720P,目前图像采集的传感器主要采用基于CCD(ChargeCoupledDevice)和基于CMOS(ComplementaryMetalOxideSemiconductor)两种,CCD作为发展较早,且较为成熟,但是CMOS近几年在高速发展,并在高清图像采集方面提现出了众多的优势,本系统正是使用后者设计系统采集模块[4]。图像编码图像编码做为高清图像处理的关键技术,直接决定着图像的质量,考虑到图像信号最终是通过网络进行传输的,由于网络带宽的限制,就要求编码协议能够对图像信号进行高压缩比的编码,目前比较常用的编码协议有MPEG-4,JVT,H.264等,但在压缩比方面H.264表现出色[2]。本设计使用是H.264编码协议。采样频率连续信号在时间(或空间)上以某种方式变化着,而采样过程则是在时间(或空间)上,以T为单位间隔来测量连续信号的值,T称为采样间隔,在实际中,如果信号是时间的函数,通常他们的采样间隔都很小,一般在毫秒、微秒的量级[4]。本系统对高清图像的采样频率为100MHz。传输速率传输速率是泛指数据从一点向另一点传输的速率,如从网络节点向打印服务器传输打印数据的速率,Modem对数据传输的速率,信道传输数据的速率等,传输速率的单位有bts,波特等[2]。本系统对高清图像的传输速率为115200bts。高清图像实时采集处理总体设计研究/设计方法本设计使用嵌入式系统进行实现,嵌入式与PC机非常大的不同。嵌入式系统具有目标性和效率性的特点。嵌入式系统是一个特殊的系统,以满足特定的应用要求。系统要求硬件和软件的设计都能满足效率需求,设计目的能够实现功能系统最小化,嵌入式软件具有高可靠性和高效率。本系统实现高清图像实时采集处理的功能,硬件环境包括itop4412开发板、摄像机和计算机。软件环境包括运行在arm开发板的Linux系统、运行在Linux系统开发版本中的boa(网络服务器)、编译文件中PC使用的VMworkstation以及在其上设置的Ubuntu12.04.2系统的工作原理。进程实现高清图像实时采集和处理功能。应用程序首先通过调用V4l2接口采集视频帧,然后创建socket接口,并对其进行传输和压缩,而对于采集到的视频帧,通过压缩线程完成对单元块视频帧的压缩,进而对线程进行解压缩和发送线程,发送线程拷贝压缩数据并发送。传输完成后视频数据可以通过解码显示在web网络客户端。图像采集本系统使用的图像都为高清晰度图像,图像分辨率至少为720p,目前图像采集传感器主要采用基于CCD(电荷耦合器件)和CMOS(复杂金属氧化物半导体)的两种传感器,CCD的发展比较早,也比较成熟,但CMOS近年来发展迅速,在高清晰度图像采集方面有许多优势,高清晰度图像效果的保证来自于高清晰度图像信息的采集,如果前端模块没有采集到高清图像,就无法实现后端的高清图像显示效果,前端高质量图像采集模块分为两类敏感元件:基于CCD和CMOS的高质量图像采集模块[2]。敏感元件的性能决定了高质量图像采集模块的性能。CCD和CMOS有各自的优势。用于高清晰度图像的实时采集和处理。CCD和CMOS都均已应用于高清市场,而CCD具有较好的场景适应性,在高像素方面,CMOS具有一定的优势,从最初的1/4英寸到1/3英寸,甚至2/3英寸,CCD表面了自身技术的不断进步,同时,采用图像处理芯片,显示图像的分辨率分别能达720p和1080i,但在成像方面,CMOS技术也在不断发展,CMOS具有成本低、易于集成等特点,被广泛接受,使用CMOS的高清图像采集处理设备的分辨率可以达到1600x1200以上[5]。图像编码随着技术的发展,高清质量编码技术已经发展成了高清图像处理的核心,在某种意义上来说,高清图像非常需要图像编码技术的支持,对获取到的高清视频信号进行编码并将其传输到网络中是它的首要任务。视频编码层(VCL视频编码层(VCL)控制数据控制数据编码编码后的宏块数据划分数据划分编码编码后的Slice或分区网络抽象层(网络抽象层(NAL)…MPEG-2H.323/IPMP4FF…MPEG-2H.323/IPMP4FFH.320图2-1H.264协议标准的整体框架图像传输图像信号的传输是高清图像采集系统采集高清图像后的一个重要的问题,针对高清图像系统图图像信号的传输要求就更高,为了实现一路高清图像信号就需要三根同轴线缆同时进行传输,HDMI或HD-SDI、DVI是数字信号一般采用的传输方式,但这几种方式传输的距离都有限,最多只有几百米,而且成本高,都不能用于高清图像采集系统的传输[2]。图像分辨率码率与分辨率成正比,常见的分辨率是D1(704x586)和CIF(352x288),D1和CIF分别对应于DVD和VCD的定义,D1的编码速率是CIF的4倍,相对占用网络带宽较大,所以通常还是CIF分辨率运用得广泛,本系统的设计实现的是高分辨率的图像传输,至少720p以上,完全流畅的图像是PAL制25帧/秒,NTSC每秒生成30帧,帧速率一般可调,我们可以降低帧率来降低编码速率[2]。一般情况下,可以调到10-15帧。在没有连续图像的情况下,可以进一步降低编码速率。图像复杂度的编码率与图像复杂度成正比。然而,随着互联网技术的发展,通过对高质量图像信号的压缩,可以在现有的网络上传输,这也是目前的高清图像实时采集处理系统。继数字化之后,产生网络化的另一个发展方向。采用IP网络来提高视频信号的传输质量。这样,高清图像实时采集与标清图像的实时采集成本没有明显的差别。首先,这种传输方式对高质量的视频压缩编码技术提出了很高的要求。此外,高清图像实时采集的传输应基于IP网络,才能有效控制高清视频传输成本。从而使高清的图像实时采集处理系统具有重要的现实意义。实验方法与步骤系统硬件方面主要包括基于Cortex-A9的arm开发板和ov5640摄像头两个模块,ov5640模块摄像头负责视频信号的采集。iiTOP-4412开发板路由器InternetR路由器InternetRJ45网络端口Web客户端Web客户端WIFIWIFI模块WIFI模块图2-2系统总体构造图首先完成软件开发环境的搭建,包括虚拟机和Ubuntu系统的安装、SSH软件和Vim编辑器的安装以及超级终端和交叉编译器的安装,然后对Linux系统进行了移植,完成USB和摄像头驱动的开发与移植。其次完成构建高清图像实时采集处理系统所需各功能模块的建立,包括视频采集、视频压缩、视频传输以及嵌入式web服务器的建立。视频采集使用的是V412接口,上层应用程序通过该接口来完成对摄像头驱动的调用,视频压缩采用的是H.264编解码算法,boa服务器具有嵌入式系统所要求的占用资源少、执行效率高的特点。最终运行系统实现高清图像实时采集处理,高清图像采集进程,高清图像采集进程完成视频的采集、压缩、传输及在web客户端的解码显示功能。高清图像实时采集处理硬件模块概述主控CPU模块Cortex-A9简介存储器模块EMMC简介EMMC(EmbeddedMultiMediaCard)是MMC协会订立、主要针对手机或平板电脑等产品的内嵌式存储器标准规格,EMMC在封装中集成了一个控制器,提供标准接口并管理闪存,使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间,这些特点对于希望通过缩小光刻尺寸和降低成本的NAND供应商来说,同样的重要[6]。EMMC选型指标视频采集系统以EMMC为存储介质可以避免传统存储方案对NANDflash的复杂控制问题。4片K4B4G型号的芯片为16G,可完全供摄像头采集到图像后的存储,而其接口的速度高达每秒400兆字节,并且EMMC具有快速和可扩展的性能。其接口处电压可为1.8V或为3.3V。EMMC参数核心板SCP1G和SCP2G,判断核心板内存的方法是看芯片型号,k4b2g是一片256M;k4b4g是一片512M。如果是k4b2g,则内存大小是k4b2gx4=1G;如果是k4b4g,则内存大小是k4b4gx4=2G。eMMC大小型号为:KLM4G对应4G;KLM8G对应8G;KLMAG对应16G;KLMBG对应32G。Camera模块ov5640摄像头简介图像传感器是摄像头的核心部件,摄像头中的图像传感器是一款型号为OV5640的CMOS类型数字图像传感器,该传感器支持输出最大为500万像素的图像(2592x1944分辨率),支持使用VGA时序输出图像数据,输出图像的数据格式支持YUV(422/420)、YCbCr422、RGB565以及JPEG格式,若直接输出JPEG格式的图像时可大大减少数据量,方便网络传输,它还可以对采集得的图像进行补偿,支持伽玛曲线、白平衡、饱和度、色度等基础处理,根据不同的分辨率配置,传感器输出图像数据的帧率从15-60帧可调,工作时功率在150mW-200mW之间[7]。摄像头选型指标OV5640摄像头配置了500w(2592x1944)分辨率像素的摄像头,1080p(1920x1080)就已达成为全高清,ov5640已达到高清图像实时采集设备的基准,并且ov5640摄像头设备轻巧,集成度高,便于装配。摄像头电路图图3-1数据采集电路图如图所示,ov5640摄像头共有20个引出脚,D0-D7为数据引脚,RESET为复位引脚,PWDN为工作模式选择引脚,MLCK为源时钟引脚,HREF为行同步信号引脚,DVDD18为数值电源输入,VDDIO18,VDDIO28为数值I/O电源输入。摄像头模块CPU部分接口电路如图所示。WIFI模块Wifi简介WIFI一般指Wi-Fi(无线上网),是一个创建于IEEE802.11标准的无线局域网技术。无线网络上网可以简单的理解为无线上网,是当今使用最广的一种无线网络传输技术,实际上就是把有线网络信号转换成无线信号[2]。Wifi模块选型指标开发板的底板有WIFI接口,接上迅为设计的WIFI/蓝牙模块并在内核中移植好对应的驱动即可使开发板连接到网络,摄像头与开发板完成连接后,通过摄像头来采集视频帧,用户就可以实时的使用移动设备通过互联网查看图像场景。WIFI模块采用的是SDIO接口,网络标准是IEEE802.11b/g/n,模块的芯片采用的是MT6620。所示为WIFI模块与底板接口的电路原理图。此外,MT6620是复合芯片,还支持GPS、蓝牙、FM功能。Wifi电路图及连接图3-2Wifi电路图除了SDIO接口以及用于收发数据的UART接口外,WIFI模块还需一些引脚与CPU进行交互,引脚14是中断引脚,引脚16是使能引脚,核心处理器与WIFI的接口原理图如图所示。RJ45网络接口RJ45简介RJ45是布线系统中信息插座(即通信引出端)连接器的一种,连接器由插头(接头、水晶头)和插座(模块)组成,插头有8个凹槽和8个触点,RJ是RegisteredJack的缩写,意思是“注册的插座”,在FCC(美国联邦通信委员会标准和规章)中RJ是描述公用电信网络的接口,计算机网络的RJ45是标准8位模块化接口的俗称[2]。RJ45选型指标开发板配置有Wifi接口和RJ45有线网络接口,在这里为了信号稳定传输而采用有线网络来连接Web客户端,用户可以使用自己的手机等移动设备通过网络来获取采集实时的高清图像信息。RJ45电路图3-3RJ45电路图开发板的RJ45接口可以使用一条网线连接到电脑PC机的网口,从而实现以太网的连接通讯。连接好网线之后,开发板和电脑的网络IP地址要设置在同一个局域网下,这样上层的应用就可以通过socket协议实现开发板到PC机的数据通讯,完成各式各样的网络应用。电源电路模块电源电路电路图若使各模块运行时,电源以及电源开关,只需输入5V电源即可。电源电路的引脚图如下图所示:图3-4电源电路图软件模块开发与移植嵌入式系统嵌入式系统由硬件和软件组成,是能够独立进行运作的器件,其软件内容只包括软件运行环境及其操作系统,硬件内容包括信号处理器、存储器、通信模块等在内的多方面的内容,相比于一般的计算机处理系统而言,嵌入式系统存在较大的差异性,它不能实现大容量的存储功能,因为没有与之相匹配的大容量介质,大部分采用的存储介质有E-PROM、EEPROMDENG等,软件部分以API编程接口作为开发平台的核心[2]。编译环境搭建交叉编译环境介绍交叉编译环境是嵌入式开发的前提,这是由于嵌入式系统硬件的特殊性,资源有限,导致不能直接使用通用计算机平台的Linux操作系统安装,开发时要根据系统应用的背景、需求等,对系统进行裁减、交叉编译环境包括三部分:通用计算机(即宿主机),目标开发板,以及中间的连接部分用计算机是主要的开发平台,开发完成的程序,在交叉编译的文件环境中生成交叉编译的二进制文件,而后通过中间的连接端口和连接工具将可执行文件下载到目标板上,当目标板运行时可以通过交叉编译环境调试,修改,中间的连接部分可以是串口,以太网接口,USB接口以及JTAG接口等[8]。USB驱动开发与移植本设计所选用的iTOP-4412Arm开发平台配备有usb接口,方便连接U盘、鼠标等设备,usb(UniversalSerialBus)是通用串行外部总线的意思,使用usb设备首先要完成驱动程序的移植。Usb总线由usb主机控制器、根集线器、集线器和usb设备等部分构成,呈星状结构。通往主机的数据通道只有一条,由所有设备共享,-次只能有一个设备与主机进行通信。在开发usb设备驱动的时候,为了便于调试,采用动态加载的模式将usb设备驱动编译为模块。staticstruetusb_dirverskel_driver={.owner_THIS_MODULE,.name="skeleton",id_uable=skel_table,.probe=skel_probe,.disconnect=skel_disconect,};structusb_driver是usb驱动,其成员函数包括模块所有者THIS_MODULE,模块名字skeleton,probe函数skel_discnnet和id_table五个部分。staticstructusb_skel{structusb_device*udev;structusb_interface*interface;structsemaphorelimit_sem;unsignedchar*bulk_in.buffer;size_1bulk_in.size;structkrefkref;};structusb_ske是一个局部结构体,用于与端点进行通信。structusb_interfiace;{structusb_host_interface*alsetting;structusb_host_jinterface*cur_altscting;unsignednum_alsetting;intminor;enumusb_interface_conditioncondition;unsignedis_active:l;unsignedneeds_remote_wakeup:l;structdevicedev;strucedevice*usb_dev;intpm_usage_cnt;};摄像头ov5640的开发与移植本设计采用的是ov系列500万摄像头模块ov5640,具有自动对焦功能,接口采用10*2(20P)2.0间距插针,在arch/arm/mach-exynos/mach-itop4412.c文件中对ov5640设备的抽象结构体进行了描述。staticstructs3c_platform_cameraov5640={.id=CAMERA_PARA,.clk_name="sclk_cam0",.i2c_busnum=7,.cam_power=smdk4x12_caml_reset,.type=CAM_TYPEJTU,.fimt=ITU_601_YCBCR422_8BIT,.order422=CAM_ORDER422_8BIT_CBYCRY,.info=&ov5640_i2c_info,.pixelformat=v4I2_PIX_FMT_UYVY,//mnodifybycymv4I2_PIX_FMT_UYVY,.srelk_name="xusbxti",.clk_rate=24000000,.line_length=1920,.width=640,.height=480,.window={.left=0,.top=0,.width=640,.height=480,},/*Polarity*/.inv_pelk=0,.inv_vsync=1,.inv_href=0,.inv_hsync=0,.reset_camera=1,.initialized=0,.layout_rotate=0/forshuping,/180,0.};Staticstruces3c_platform_fimcfimc_plat={#ifdefCONFIG_ITU_A.default_cam=CAMERA_PAR_A,#endif….…..camera={#if0/addedyqf,adjustformiddlewarerequest#ifdefCONFIGVIDEO_S5K4ECGX&s5k4ecgx,#endif...#ifdefCONFIG_VIDEO_ov5640&ov5640,#eddif…}完成对ov5640驱动文件的开发后,在内核主目录中执行makemenuconfig对ov5640摄像头驱动进行配置。DeviceDrivers--><*>Multimedeasupport--><*>Videocaptureadapters--<*>0mniVisionov5640sensorsupport通过以上目录选中OmniVisionov5640sensorsupport完成了对ov5640摄像头驱动的配置,在内核主月录中执行makezlmage即可生成包含此驱动的Linux内核文件,将其烧写到开发板就可以正常使用ov5640摄像头。高清图像实时采集处理软件编程概述 软件编程各模块的实现本系统实现的是高清图像实时采集处理的功能,硬件环境包括iTOP4412开发板、摄像头和PC机,软件环境包括运行于Arm开发板上的Linux系统和移植到iTOP4412上面的web服务器、PC端用于交叉编译的虛拟机VMware及安装在其上面的Ubuntu12.04.2。通过调用V4L2采集视频帧创建socket套接字建立发送线程SEND_THREAD上锁发送线程上锁压缩线程等压缩线程完成压缩拷贝发送压缩完的数据压缩视频帧是否完成单位块视频帧压缩拷贝发送压缩完的数据解码数据建立压缩线程CAM_THREAD解锁发送线程通过调用V4L2采集视频帧创建socket套接字建立发送线程SEND_THREAD上锁发送线程上锁压缩线程等压缩线程完成压缩拷贝发送压缩完的数据压缩视频帧是否完成单位块视频帧压缩拷贝发送压缩完的数据解码数据建立压缩线程CAM_THREAD解锁发送线程图5-1系统流程图进程实现高清图像实时采集处理功能,应用程序首先通过调用V4L2接口采集视频帧,然后创建socket接口,建立发送和压缩线程,对于釆集到的视频帧,首先通过压缩线程进行压缩,完成单位块数量视频帧的压缩后,解锁压缩线程并通知发送线程,发送线程拷贝压缩的数据并完成发送,传输后的视频数据经过解码即可在web客户端显示。 实现V4l2视频采集v4l是Linux系统中位于内核部分的一个接口,它的设计是为了方便Linux上下层之间的通信,主要功能是为配合各种多媒体设备如视频、音频设备等完成对图像、声音信号的采集,驱动开发人员完成视频、音频采集设备相应驱动的开发后,可以通过v4l提供的接口完成对设备的操作[9][10]。v4l2相比v4l做了许多改进,改善了很多不足之处,支持的设备也更加广泛,在Linux内核代码中,v4l2做到了很好的融合,提供了大量的处理视频信息的接口,包括视频采集、输出、预览、编解码等[11]。Linux内核包含了v4l2的核心代码,在编写驱动程序调用v4l2进行视频采集之前,要先完成配置工作。按以下操作完成对v4l2的配置。在Linux内核代码中,V4l2具有很好的集成性,为图像信息的处理提供了大量的接口。包括图像采集、输出、预览、解码等。Linux内核包含V4l2的核心代码,在创建视频采集驱动程序之前必须完成配置操作。在Linux内核主目录下执行makemenuconfig命令,进入主界面,即可完成V4l2的设置。DeviceDrivers-->Multimediasupport-->Videocaptureadapters-->[*]V4LUSBdevices-->[*]V4L2APIfordigitalcameratobecontributedbysamsung[*]SamsungCameraInterface(FIMC)driver向驱动申请帧缓冲打开设备文件设置视频制式和帧格式向驱动申请帧缓冲打开设备文件设置视频制式和帧格式开始视频采集将帧缓冲入队列将申请到的帧缓冲映射到用户空间开始视频采集将帧缓冲入队列将申请到的帧缓冲映射到用户空间停止视频采集将上一步的帧缓冲入队列尾,进行循环采集将队首取得采集数据的帧缓冲出队列,获取视频数据停止视频采集将上一步的帧缓冲入队列尾,进行循环采集将队首取得采集数据的帧缓冲出队列,获取视频数据关闭设备关闭设备图5-2调用V4L2实现视频采集如图所示,使用V4l2接口进行视频采集的基本过程如下。上层程序无法直接访问此部分,因此必须将获取的视频数据复制到用户空间,但是这样会造成内存资源的大量占用。对于用户指针模式,内存空间获取需要一个应用程序。也就是说,需要在V4l2_Requestbuffers完成设置:内存映射到内核部分,从用户空间直接完成对设备的访问,相对比其他两种方法更有效,所以本设计使用这种方法进行图像采集。实现视频压缩应用程序需要调用v412接口来采集视频信号并通过网络上传到服务器。用户可以通过网络客户端实时观看视频画面。视频由一帧一帧图像组成。随着图像采集时间的增加,图像帧数迅速增加。直接传输会占用大量的网络带宽。造成传输速度慢且滞后。所以在视频传输之前,需要对视频压缩算法传输的数据进行压缩。目前在视频采集领域主要的视频压缩算法有MPEG[1213]、M-JPEG、H.264等,MPEG成立于1988年,最初用于CD压缩和编码标准。后来,MPEG引入了MPEG-1、2、4、7压缩算法。其中,MPEG-4常用于高清图像实时采集处理。与其他编码算法相比,所有的视频帧都是通过像素的组合来编码的,因此可以对目标进行编码。即在编码前对视频帧进行处理,区分运动目标和静态背景。不同的对象使用不同的编码方法。例如,如果不想降低移动对象的显示效果,使用较低的压缩比,而相对静态的图像则使用较高的压缩比来减少静态背景的数据量。M-JPEG压缩算法将图像排列成一帧一帧,然后分别压缩每个帧的图像。由于视频的排列包括背景和前景,所以在相似的图像帧中,背景只能有轻微的变化。在这个时候,压缩不可避免的会造成资源的浪费,所以这种压缩算法会留下大量的数据,而且压缩的程度相对较低。实现视频传输视频的传输是基于TCP/IP协议来实现的,TCP/IP协议是因特网中一个比较早的而且一直很流行的协议,在本质上它是对互联网中一些协议的一个整合,定义了数据在因特网中的传输标准,该协议从上到下分为应用、传输、网络和数据链路层,各层之间相互分工。图5-3视频传输本设计的开发基于Linux系统,采用socket、Linux底层应用层和TCP/IP协议接口,创建一个音频socket监听客户端的连接请求:然后创建一个线程客户端client_thread。准备协议头并开始图像数据循环传输。通过上锁线程对传输线程上锁,复制并传输数据。使用pthread_mutex_unlock(&Mutex)在数据传输完成时解锁传输线程。嵌入式WEB服务端的搭建嵌入式web服务端的介绍Web服务器本质上是一个运行于因特网上面的应用程序,其可以存放网页、文档等供浏览的内容,也可以存放图片、视频等数据供下载。将ARM开发板的摄像头链接到视频后,可以通过网页实时查看屏幕。此时在开发板上建立一个存储图像数据的网络服务器。因为服务器是建立在嵌入式设备上的,所以它们被称为嵌入式网络服务器。目前,它主要由四种类型的内置网络服务器组成,具体描述如下。Thttpd是一个占用内存较小、相对比较简单的web服务器,具有方便植、安全性高的特点,可以在Linux、Solaris、Sunos、BSD等大部分操作系统上运行。该服务器采用多路复用技术来处理并发请求,为了防止非授权的访问带来的潜在危险,其默认运行于普通用户模式下,支持CGI接口。Shttpd相对于thttpd来说在保持轻量级特点的基础上,支持更多的功能扩展,如SSL、MD5等,而且其可以不加配置的整合到其它应用程序里面,开发人员可以使用此功能快速开发特定需求服务器Apache是多进程网络服务器。其优点是可以同时处理多个任务,并且每个任务不会相互干扰。缺点是占用内存大,不适合安装在嵌入式设备上。对于移植在嵌入式系统上的服务器来说,boa是最合适的。它一次只处理一个进程,而不能像apache那样同时处理多个请求,但是对于嵌入式设备来说速度已足够满足要求,而且其源码开放、支持CGI接口,可以方便的在嵌入式上面搭建和使用。BOA的移植搭建使用tar命令解压boa-0.94.13.tar.gztopeet@ubuntu:~/linux/app$lsboa-0.94.13.tar.gztopeet@ubuntu:~/linux/app$sudotar-vxfboa-0.94.13.tar.gzboa-0.94.13/boa-0.94.13/src/webindex.pltopeet@ubuntu:~/linux/app$lsboa-0.94.13boa-0.94.13.tar.gztopeet@ubuntu:~/linux/app$cdboa-0.94.13/topeet@ubuntu:~/linux/app/boa-0.94.13$lsboa.confcontribdocsextrasREADMEChangeLogCREDITSexamplesGnu_Licensesrctopeet@ubuntu:~/linux/app/boa-0.94.13$cdsrctopeet@ubuntu:~/linux/app/boa-0.94.13/src$./configurecreatingcache./config.cache……creatingconfig.htopeet@ubuntu:~/linux/app/boa-0.94.13/src$viMakefile图5-4makefile程序图topeet@ubuntu:~/linux/app/boa-0.94.13/src$makearm-none-linux-gnueabi-gcc-static-g-O2-pipe-Wall-I.-c-oalias.oalias.c……arm-none-linux-gnueabi-gcc-static-oboa_indexerindex_dir.oescape.o-g图5-5生成boatopeet@ubuntu:~/linux/app/boa-0.94.13/src$arm-none-linux-gnueabi-stripboatopeet@ubuntu:~/linux/app/boa-0.94.13/src$sudocpboa/home/topeet/minLinux/system/bin/topeet@ubuntu:~/minLinux/system/etc$sudomkdirboatopeet@ubuntu:~/minLinux/system$sudomkdirwwwtopeet@ubuntu:~/minLinux/system/www$sudomkdircgi-bintopeet@ubuntu:~/linux/app/boa-0.94.13$sudocpboa.conf/home/topeet/minLinux/system/etc/boa/topeet@ubuntu:~/minLinux/system$sudocp/etc/mime.types/home/topeet/minLinux/system/etc/topeet@ubuntu:~/minLinux/system/etc$sudovigroup图5-6添加root图打开NFS文件系统的etc/init.d/rcS文件,topeet@ubuntu:~/minLinux/system$sudovietc/init.d/rcS图5-7修改字符使用viindex.html命令建立index.html文件topeet@ubuntu:~/minLinux/system/www$sudoviindex.html保存并退出网页,自此在嵌入式系统上的boa服务器就搭建完成。高清图像实时采集处理系统测试系统总体测试连接电源准备就绪,下图为讯为iTOP-4412开发板初始画面:图6-1Itop-4412开发板面板构造图将RJ45串口连接PC端,按下开发板开关按钮形成连接:图6-2Itop-4412连接图接着查询itop4412开发板的ip地址,如下图所示:图6-3itop4412ip地址图点击打开电脑端IE浏览器,在网址栏输入查询好的开发板ip地址,如图所示:图6-4web浏览器网页图系统总体实现图6-5PC端高清图像显示图图6-6PC端高清图像显示2烧写在开发板上的视频高清图像处理在开发板上电运行后,使用电脑端的web浏览器中输入,目前可以查看高清显示的图像。开发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吸氧患者的吸氧患者教育材料
- 2026版承揽合同范本解析与应用
- 婴儿神经系统发育观察
- 2026年物业服务合同模板与解析
- MMO钛带阳极在多腐蚀环境下的寿命规律与工程应用研究
- 区妇幼卫生保健工作计划(2篇)
- 护理发明的用户体验设计
- 2025年AR农业监测的生长数据交互
- 2026九年级下新课标相似三角形综合
- 2026北师大版实践活动乐园经济决策制定
- 2025年开封文化艺术职业学院单招职业技能考试题库带答案解析
- 社区信访培训
- 2026年国企法务岗位招聘面试案例分析与实务考核含答案
- 福建省房屋建筑和市政基础设施工程概算编制规程(2026版)
- 2025年大学机械设计制造及其自动化(机械制造技术)试题及答案
- DB13∕T 6056-2025 涉路工程技术评价规范
- TCECS10011-2022聚乙烯共混聚氯乙烯高性能双壁波纹管材
- 工程款催收合同范本
- 室内水箱拆除施工方案
- 河南建院考试单招题目及答案
- 盐城广播电视总台招聘3人笔试模拟试题附答案详解
评论
0/150
提交评论