24小时论文定制热线

热门毕设:土木工程工程造价桥梁工程计算机javaasp机械机械手夹具单片机工厂供电采矿工程
您当前的位置:论文定制 > 毕业设计论文 >
快速导航
毕业论文定制
关于我们
我们是一家专业提供高质量代做毕业设计的网站。2002年成立至今为众多客户提供大量毕业设计、论文定制等服务,赢得众多客户好评,因为专注,所以专业。写作老师大部分由全国211/958等高校的博士及硕士生设计,执笔,目前已为5000余位客户解决了论文写作的难题。 秉承以用户为中心,为用户创造价值的理念,我站拥有无缝对接的售后服务体系,代做毕业设计完成后有专业的老师进行一对一修改与完善,对有答辩需求的同学进行一对一的辅导,为你顺利毕业保驾护航
代做毕业设计
常见问题

嵌入式Linux系统下USB摄像头驱动程序

添加时间:2019/08/20 来源:北方工业大学 作者:李彦龙
在网络远传时,传输的视频数据为Mjpeg动态压缩格式,该格式针对单独每一帧冗余信息进行压缩,所以压缩比不高,可考虑采用通用做法H.264进行硬件压缩后远传,这样可使远端PC机解码播放更加流畅。
以下为本篇论文正文:

ABSTRACT

  Along with the continuous development of science and technology, more and more industry control domain has realized the automatic control. In order to improve the remote control and management, video monitoring and data gathering technology is urgently needed now. Along with the development of embedded technology and widespreading of video monitoring system, the development of video device driver and data gathering technology have become a hot spot.

  Now there are many kinds of companies to produce cameras, and there are also lots of camera products, but the camera driver of one type can not be used by the other type of cameras, especially the drivers in Linux system. This makes the video monitoring system hander to be used.

  Therefore, the design of the camera driver appears to be particularly important.

  In this paper, a video broadcast system based on Exynos 4 Quad SOC platform and Logitech C930E USB camera will be presented.To make the high definition USB camera c930 properly work on embedded Linux system, and get high quality image of 1080P*30fps, the design of the driver based on the function and parameters of C930E will be introduced. Specifically, the driver will be described  with  graphics  language.  All  primary codes will  be  presented.  Furthermore, the implementation of local video acquisition module, the decompression display of MJPEG module, and the remote transmission through the network module will be proposed.Tests have verified that the system can work stably, and the frames of the video are clear, smooth, and real-time displayed.

  KEY WORDS: EXYNOS4412; Logitech C930E; USB camera driver; MJPEG uncompress;1080P

摘要

  随着科学技术的不断发展,越来越多的工业控制领域实现了自动控制。为了更好的进行远程控制与管理,视频监控与数据采集的技术迫切需要。随着嵌入式技术的不断发展和视频监控系统应用的日益广泛,视频设备驱动程序的幵发与数据采集技术也成为了开发的热点。

  目前生产摄像头的厂家繁多,产品的种类也琳琅满目,不同类型摄像头的驱动程序几乎不能通用,尤其在嵌入式Linux系统下摄像头驱动程序更是不完善,这给视频监控系统的普及以及应用带来了不便。因此,对于摄像头驱动程序的研究显得尤为重要。

  本文设计了一种基于三星最新四核EXYNOS4412平台和罗技C930E高清USB摄像头的视频采集播放系统。针对原生Linux内核没有高清USB摄像头驱动,C930E在嵌入式Linux系统下无法工作的问题,提出了一种高清USB摄像头驱动的设计方法,用图形化语言描述了驱动框架,给出了所实现驱动的核心代码,加载驱动后可使C930E稳定输出1080P*30fpsMJPEG.格式视频数据。同时额外介绍了视频本地采集、MJPEG解压缩显示及通过网络远传等功能模块应用程序实现方法,最后给出实验结果。经测试表明,系统运行稳定,视频画面清晰流畅实时性好。

  关键词:EXYN0S4412;罗技C930E; USB摄像头驱动;MJPEG解压缩;1080P

  随着多媒体技术网络技术的迅猛发展,利用嵌入式系统实现远程视频监控、可视电话、视频会议等已越来越普及。为实现这些应用,设备的驱动程序开发是一个重要环节。

  当前大部分的视频监控系统都采用嵌入式Linux操作系统,所谓嵌入式Linux操作系统即Linux操作系统经过裁剪后,运行于嵌入式平台上的操作系统。

  在Linux操作系统下开发设备的驱动程序不同于Windows等其它操作系统,这是因为Linux操作系统对于设备有着特殊的定义。在Linux下,所有外围设备都被看成是一种特殊的文件,称为设备文件。系统调用是内核和应用程序之间的接口,而设备驱动程序则是内核和外围设备之间的接口。设备的驱动程序完成设备的初始化和释放,并对设备进行各种相关操作和处理中断,为应用程序屏蔽了外围设备硬件的细节,使得应用程序可以像对普通文件一样对外设进行操作。因此USB摄像头在Linux下也被看作是一种设备文件,USB摄像头的驱动程序也就是负责实现内核和USB摄像头硬件之间的接口。

  目前常用的摄像头设备大都釆用USB接口,这是因为USB摄像头具有良好的性能和低廉的价格,同时USB摄像头还具有灵活、方便的特性,易于集成到嵌入式系统中。基于USB摄像头幵发符合video for Linux标准的驱动程序并配合视频应用程序软件,可以满足实时监控等应用的要求。

  因此开发基于嵌入式Linux系统的USB摄像头驱动程序对于视频监控系统的普及与发展有着重要的意义,本文就是在嵌入式Linux操作系统与USB接口技术不断发展,以及当前社会对视频应用系统的需求越来越广泛的情况下,讨论USB摄像头驱动程序的技术框架并开发USB摄像头驱动程序,在此基础上实现性能更优良的高清视频监控系统。

  目前嵌入式监控相关领域大量采用互补型金属氧化物半导体(Complementary Metal-OxideSemiconductor, CMOS)摄像头,由于一般的CMOS摄像头通讯线抗干扰能力很弱,要求CMOS摄像头与处理器(Central Processing Unit,CPU)距离处于厘米级范围内,否则传输信号出现串扰及反射,导致电平翻转系统运行不稳定_]。而采用通用串行总线(USB,Universal Serial Bus)接口摄像头,其数据线传输差分信号,抗干扰能力强,使摄像头与CPU间距延伸至数米。但是,目前未见有对1080P高清USB摄像头在嵌入式Linux平台下驱动实现方法的公开报道。

  本设计采用罗技C930E高清USB摄像头分辨率高达2304*1536,支持逐帧压缩(MotionJoint Photographic Experts Group, MiPEG)与数码变焦特性,但罗技公司仅为安装Windows或苹果系统的台式机提供配套驱动,没有为安装Linux系统的嵌入式设备提供配套驱动。为将C930E高清USB摄像头应用到安装Linux系统的嵌入式设备中,作者针对C930E USB摄像头的功能和硬件参数,重点研究并给出了 Arm-Linux环境下驱动的具体设计和实现方案。实验平台采用市售Tiny 1312通用开发板,配备2G DDR3 (Double Data Rate SDRAM 3)内存,4GB高速闪存,1280*800高清显示屏,CPU为三星最新32nm HKMG (High-K Metal Gate)工艺4核处理器EXYNOS4412,主频高达1.5GHz,能流畅实现1080P高清MjPEG视频流的软解播放。

  此外,Linux内核直接从官网下载GNU (GNU'S Not Unix)较新发布的3.5稳定版本。

 嵌入式Linux系统下USB摄像头驱动程序:

访问Samba服务器
访问Samba服务器

开发板LCD视频画面1280*800
开发板LCD视频画面1280*800

远传PC机浏览器显示1920*1080
远传PC机浏览器显示1920*1080

浏览器菜单栏显示内容
浏览器菜单栏显示内容

目录

  摘要
  Abstract
  1 绪论
    1.1 研究背景
    1.2 研究意义
    1.3 研究内容
  2 系统总体描述
    2.1 C930E USB摄像头介绍
    2.2 实验平台介绍
    2.3 MJPEG格式介绍
    2.4 USB系统架构
      2.4.1 逻辑结构
      2.4.2 USB描述符
      2.4.3 USB数据传输
      2.4.4 USB设备枚举
    2.5 摄像头参数配置
      2.5.1 打印描述符信息
      2.5.2 配置摄像头参数
    2.6 系统可行性分析
  3 驱动程序设计
    3.1 USB接口驱动实现
      3.1.1 Linux USB设备驱动介绍
      3.1.2 Linux USB描述符
      3.1.3 Linux USB URB
      3.1.4 C930E USB接口驱动实现
    3.2 视频捕获驱动实现
      3.2.1 Linux内核V4L2框架分析
      3.2.2 C930E视频捕获驱动实现
      3.2.3 驱动的编译
  4 应用程序设计
    4.1 V4L2应用编程
    4.2 本地解压显示应用程序
      4.2.1 Libjpeg-turbo使用
      4.2.2 本地解压显示应用程序实现
      4.2.3 本地解压显示应用程序编译
    4.3 网络远传显示应用程序
  5 系统测试
    5.1 开发环境搭建
      5.1.1 搭建SAMBA服务器
      5.1.2 搭建TFTP服务器
      5.1.3 搭建NFS服务器
      5.1.4 编译烧写U-BOOT
      5.1.5 编译启动内核
      5.1.6 构建NFS根文件系统
    5.2 测试及结果
  参考文献
  申请学位期间的研究成果及发表的学术论文

(如您需要查看本篇毕业设计全文,请您联系客服索取)

相关内容
好优论文定制中心主要为您提供代做毕业设计及各专业毕业论文写作辅导服务。 网站地图
所有论文、资料均源于网上的共享资源以及一些期刊杂志,所有论文仅免费供网友间相互学习交流之用,请特别注意勿做其他非法用途。
如有侵犯您的版权或其他有损您利益的行为,请联系指出,论文定制中心会立即进行改正或删除有关内容!