(微电子学与固体电子学专业论文)基于嵌入式linux的视频图像采集实现.pdf_第1页
(微电子学与固体电子学专业论文)基于嵌入式linux的视频图像采集实现.pdf_第2页
(微电子学与固体电子学专业论文)基于嵌入式linux的视频图像采集实现.pdf_第3页
(微电子学与固体电子学专业论文)基于嵌入式linux的视频图像采集实现.pdf_第4页
(微电子学与固体电子学专业论文)基于嵌入式linux的视频图像采集实现.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(微电子学与固体电子学专业论文)基于嵌入式linux的视频图像采集实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕,仁论文 基于嵌入式l i n u x 的视频图像采集实现 摘要 目前,图像采集系统在工业生产、军事、医学等多个领域得到了广泛的应用。主流 的图像采集系统由c c d 摄像头、采集卡和计算机组成,然而这类系统往往暴露出结构 复杂、成本高、体积大等缺点。近年来,随着传感技术、半导体技术以及嵌入式系统的 不断发展,一种新的图像采集系统基于嵌入式的图像采集系统得到广泛的关注和研 究。嵌入式图像采集系统以其结构简单、成本低、体积小、灵活性好等众多优点有效地 克服传统图像采集系统的缺点,具有广阔的发展前景。 本论文把嵌入式系统与图像采集相结合的理念,研究与开发了一款由u s b 摄像头、 嵌入式系统开发板以及p c 主机三部分组成的嵌入式图像采集系统,达到了视频图像采 集和监控的目的。本论文主要完成了以下任务:针对本论文所使用的$ 3 c 2 4 4 0 嵌入式 系统以及内置0 x 3 0 5 b 芯片的u s b 摄像头,在研究l i n u x 内核体系结构和驱动程序结构 的基础上,修改和优化了u s b 摄像头驱动程序源代码,解决了摄像头传感器不能被识 别的问题;在分析各种网际协议适用场合的基础上,采用t c p i p 协议实现了服务器和 客户端,解决了视频图像数据网络传输的问题。本论文的创新之处在于通过在不同平台 上反复试验,解决了驱动程序不能识别传感器芯片的问题;修改了u s b 摄像头驱动程 序,实现了帧速可调的目的。 关键字:嵌入式系统,图像采集,u s b 摄像头驱动程序,t c p i p 网络传输 a b s t t a c t硕士论文 a b s t r a c t n o w a d a y s ,t h ei m a g ec o l l e c t i o ns y s t e mh a sb e e nw i d e l yu s e di nm a n yf i e l d ss u c ha s i n d u s t r i a lm a n u f a c t u r e m i l i t a r ya n dm e d i c i n e t h es y s t e mi sc o m p o s e dw i t hc c dc a m e r a , c o l l e c t i o nc a r da n dc o m p u t e r , h o w e v e r ,t h e r ea r ea l w a y ss o m ed e f i c i t sc o m b i n e dw i t ht h e s y s t e m ,f o re x a m p l e ,t h ec o m p l e xs t r u c t u r e ,h i g hc o s ta n dl a r g ev o l u m e e t c i nr e c e n ty e a r s ,a n e wi m a g ec o l l e c t i o ns y s t e m - as y s t e mb a s e do ne m b e d d e df u n c t i o nh a sr e c e i v e dw i d e a t t e n t i o na n dr e s e a r c hi n p a c ew i t ht h ed e v e l o p m e n to ft h es e n s i n g ,s e m i - c o n d u c t o r t e c h n o l o g y , a sw e l la st h ee m b e d d e ds y s t e m t h ee m b e d d e di m a g ec o l l e c t i o ns y s t e mh a st h e f e a t u r eo fs i m p l es t r u c t u r e ,l o wc o s ta n ds m a l lv o l u m e ,w h i c hm a k e si tc a na c h i e v eg r e a t d e v e l o p m e n ti nt h ef u t u r e t h i st h e s i sr e s e a r c h e da n dd e v e l o p e dan e we m b e d d e di m a g ec o l l e c t i o ns y s t e mb a s e do n t h et h e o r yo ft h ec o m b i n a t i o no fe m b e d d e ds y s t e ma n dt h ei m a g ec o l l e c t i o n ,w h i c hm a i n l y h a st h r e ep a n s _ c h eu s bc a m e r a , e m b e d d e ds y s t e md e v e l o p i n gb o a r da n dt h eh o s t i t a c h i e v e st h ea i mo fm o n i t o r i n ga n dc o l l e c t i n gt h ev i d e oi m a g e t h ef o l l o w i n gt a s k sh a v e b e e na c c o m p l i s h e d :t h es o u r c ec o d eo ft h ed r i v i n gp r o c e d u r e so ft h eu s bc a m e r ah a sb e e n m o d i f i e da n do p t i m i z e db a s e do nt h eb a s i c so ft h el i n u xk e r n e la n dd r i v e ra r c h i t e c t u r e s t r u c t u r e ,w h i c hs o l v e dt h ep r o b l e mo ft h eu n r e c o g n i t i o no ft h ec a m e r as e n s o r m e a n w h i l e , t h et c p i pp r o t o c o lh a sb e e na p p l i e dt or e a l i z et h es e r v e ra n dt h ec l i e n tb a s e do nt h ea n a l y s i s o ft h ea p p l y i n go c c a s i o no fa l lk i n d so ft h ei n t e m e tp r o t o c o l ,w h i c hs o l v e dt h ep r o b l e mo ft h e t r a n s m i s s i o no ft h ev i d e oi m a g ed a t an e t w o r k t h ei n i t i m i o no ft h i st h e s i si s :t h e u n - r e c o g n i t i o no ft h e s e n s o rc h i ph a sb e e nc o n q u e r e db yl a r g ea m o u n te x p e r i m e n to n d i f f e r e n tp l a t f o r m s ;t h ef r a m es p e e dc a nb ec h a n g e da ta n yt i m ea c c o r d i n gt ot h ei m a g e q u a l i t yb yc h a n g i n gt h ep a r a m e t e r si nt h ed r i v i n gp r o c e d u r e k e yw o r d s :e m b e d d e ds y s t e m ,i m a g ec o l l e c t i o n ,u s bc a m e r ad r i v i n gp r o c e d u r e ,t c p i p n e t w o r kt r a n s m i s s i o n u 声明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在 本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发 表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学 历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均 已在论文中作了明确的说明。 研究生签名:年月日 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅 或上网公布本学位论文的部分或全部内容,可以向有关部门或机构送 交并授权其保存、借阅或上网公布本学位论文的部分或全部内容。对 于保密论文,按保密的有关规定和程序处理。 研究生签名:年月日 硕1 :论文基于嵌入式l i n u x 的视频图像采集实现 1 绪论 1 1 引言 嵌入式系统( e m b e d d e ds y s t e m ) ,是一种“完全嵌入受控器件内部,为特定应用而设 计的专用计算机系统”,根据英国电机工程师协会的定义,嵌入式系统为控制、监视或 辅助设备、机器或用于工厂运作的设备。 随着网络技术和集成电路技术的高速发展,嵌入式系统已经成为i t 的一个焦点。 嵌入式图像采集系统大量的应用于自动控制、工业生产、军事技术和家用消费电子等各 个领域。 传统的图像采集方法是采用c c d 摄像机获取视频信息,这种方法易于实现,但成 本较高。随着a r m 系列处理器应用的越来越广和基于l i n u x 的嵌入式技术的迅速发展, 利用l i n u x 自身带有的t c p i p 协议来实现远程监控和图像传输已成为可能【l 】。 开发具有自主知识产权的嵌入式处理器,嵌入式操作系统和嵌入式高端产品,对我 国的民族工业来讲,将有十分重要的战略意义。 1 2 课题研究的意义 本课题研究的是基于嵌入式l i n u x 的视频图像采集。利用市场上很常见的中星微系 列的u s b 摄像头来得到现场的图像数据,利用l i n u x 内核中的v i d e 0 4 l i n u x 编程接口函 数采集图像,并把得到的图像通过i n t e m e t 传输到宿主机p c 上,在p c 上实现图像的保 存和实时显示。此类视频图像采集系统对于各个领域都有重要的意义。 军用方面,图像采集搜集的情报通过无线传输到监控指挥中心,为战场行动提供了 重要的情报依据,在强大空中侦察下,敌方大规模行动难逃我军掌握,其部署和移动很 容易暴露,灵活、机动、可靠的情报搜集,战时能起到很好侦察保障作用,为决策人员 提供了有力的决策依据 2 1 。 民用方面,在视频监控,智能交通和智能小区的发展,卫星遥感图像识别,生物医 学学科中诸如x 射线成像、染色体分类技术,办公自动化中的手写识别、票据及人民 币的识别以及工业视觉,虚拟现实等等领域,图像的采集都有着极其重要的应用1 3 】。 也许以后我们在各种需要身份验证和识别的时候需要的不再是钥匙或密码而仅仅 是一个摄像头的时候,就可以想象这项技术的发展将会给我们的生活带来多么深远的影 响。因此,研究图像采集及其处理有着重大的意义。 l 绪论 硕 :论文 1 3 国内外研究现状 目前国内外对图像采集系统的研究主要着重于基于p c 机的图像采集,利用p c 机 上通用的接口和强大的处理能力,来实现图像的采集,各种基于p c 机的图像采集卡及 相关软件层出不穷。可以肯定的是,基于p c 机的图像采集系统功能强大,软件丰富, 具有成熟的技术及产品,有很大的应用范围。然而,这样的采集系统也有局限性,主要 就是携带性差,很多特殊场合下采集不方便。成本高,而且采集起来占用资源也很多, 造成很大浪引训。 近年来,微电子技术的不断得到创新和发展,大规模集成电路的集成度和工艺水平 也持续提高;同时高性能的e d a ( e l e c t r o n i cd e s i g na u t o m a t i o n ) 综合开发工具得到了 长足发展;而软件技术的进步,特别是嵌入式实时操作系统e o s ( e m b e d d e do p e r a t i o n s y s t e m ) 的推出,更为开发复杂嵌入式系统应用软件提供了底层支持和高效率开发平台。 因此,在应用需求的牵引和i t 技术的推动下,嵌入式系统的开发在图像采集处理领域 的应用也日益增多【5 j 。 1 4 本人的工作及创新之处 本论文采用在嵌入式系统上通过u s b 摄像头以及网络传输实现了图像实时的采集。 本人的工作有: l 、选择$ 3 c 2 4 4 0 嵌入式系统和内置0 x 3 0 5 b 芯片的u s b 摄像头作为硬件平台,在 研究l i n u x 内核体系结构和驱动程序结构的基础上,修改和优化了u s b 摄像头驱动程 序源代码,解决了摄像头传感器不能被识别的问题,最终成功的移植了u s b 摄像头驱 动程序。 2 、选择t c p i p 作为网络通信协议,实现了服务器和客户端,解决了视频图像数据 网络传输的问题 本论文的创新之处在于通过在不同平台上反复试验,解决了驱动程序不能识别传感 器芯片的问题;修改了u s b 摄像头驱动程序,实现了帧速可调的目的。 1 5 文章内容安排 本论文在以三星$ 3 c 2 4 4 0 处理器为主体的丌发板的基础上设计出一种基于嵌入式 l i n u x 系统的u s b 视频采集系统。 本论文共分六章,各章内容安排如下: 第一章绪论。主要介绍了课题的背景和意义、国内外图像采集技术的研究状况 和发展方向、以及本人的工作和创新之处。 第二章嵌入式系统开发平台的建立。本章首先对嵌入式系统开发环境做了简 2 硕上论文基于嵌入式l i n u x 的视频图像采集实现 介,然后对嵌入式开发过程中用到的工具软件做了阐述,最后描述了嵌入式系统开发环 境的建立以及用非常简单的驱动程序测试了开发平台。 第三章嵌入式图像采集系统方案的讨论。本章首先讨论了方案,最后概述了具 体任务。 第四章叫y s b 摄像头驱动程序的研究与实现。本章首先概述了编写u s b 驱动程 序所需要掌握的知识以及u s b 驱动程序编写接口,最后研究和移植了u s b 驱动程序。 第五章网络传输的研究与实现。本章首先概述了编写网络应用程序所需要掌握 的知识以及t c p 1 p 编程接口,最后实现了服务器和客户端应用程序。 第六章测试结果与总结。本章首先通过一系列的实际操作得到帧速与压缩质量 的关系表格,最后进行了总结并提出了本论文不足之处。 2 嵌入式系统开发甲台的建逆硕十论文 2 嵌入式系统开发平台的建立 本章首先介绍了建立和安装交叉开发环境的必要性,进而引出了对开发环境的两个 主体( 宿主机和目标机) 以及它们之间的关系( 物理连接和逻辑连接) 介绍,在这些理 论和实践的基础上,通过对开发环境逻辑图和实物连接图的展示,说明了本论文的开发 环境;然后通过具体的l i n u x 命令查看是否成功安装了嵌入式开发中所用到的工具;最 后在前面的基础上,通过对一个模块的试验,来说明开发环境连接的正确性以及工具安 装的正确性。 本章建立起来的开发环境对于后面研究、裁截和移植驱动程序和应用程序是必须 的,也是整个嵌入式系统开发的首要任务。 2 1 嵌入式l i n u x 系统开发环境概述 建立和安装交叉开发环境通常是在开发嵌入式软件之前要做的第一件事情。因为针 对嵌入式程序的编译、连接与通常的w i n d o w s 程序开发不同:在嵌入式系统中,由于 其硬件能力所限( 嵌入式系统可能没有键盘、屏幕、磁盘驱动,以及其他的一些编程所 必需的外设;也可能没有足够的存储空间来运行程序编辑器,或者根本就没有可以运行 于该系统所使用的专门的微处理器之上的编辑器) ,不可能在嵌入式系统上安装编译器 和连接器,然后在嵌入式系统上编写代码、编译并连接程序【7 儿8 1 。 因此嵌入式系统的开发通常采用所谓的交叉丌发环境。它是指用于嵌入式系统软件 开发的所有工具软件的集合,一般包括文本编辑器、交叉编译器、交叉调试器、仿真器 和下载器等工具。从开发方式来看,交叉开发环境由宿主机和目标机组成。宿主机和目 标机之间在物理连接的基础上建立起逻辑连接。 宿主机是用于开发嵌入式操作系统的计算机。从硬件配置来讲,他们一般为 通用的p c 、工作站,其上的软件配置很丰富,除了功能强大的桌面操作系统外,还具 备各种开发工具,为编辑、编译、连接、调试、测试及其固化嵌入式应用软件提供全过 程的支持。 目标机即所开发的嵌入式操作系统,是嵌入式软件的运行环境。目标机一般 都是裸机,没有任何软件资源。目标机的嵌入式操作系统是用于支撑嵌入式应用的,不 是用于开发的环境平台。在开发过程中,目标机端接受和执行宿主机发出的各种命令, 如读内存和写内存,将结果返回给宿主机,配合宿主机各方面的工作。 物理连接是指宿主机与目标机上的一定物理端口通过物理线路连接在一起。其连接 方式主要有3 种:串口、以太i s l 和o c d ( o nc h i pd e b u g ) 方式( 如j t a g ,b d m ) 等。 物理连接是逻辑连接的基础。 4 耐i ,论i拈十嵌 al i n u x 的视频图像采复窑现 逻辑连接是指宿主机与目标机间按某种通信协议建立起柬的通信连接目日口逐步形 成了一些通信协议的标准。 要顺利地建立起柬交叉丌发环境,需要正确设置这两种连接,缺不可。在物理连 接l ,要注意是硬件线路i f 确连接,且硬件设备完好,能f 常工作,连接线路的质量要 好。逻辑连接在于正确配置宿主机和目标机的物理端口的参数并且与实际的物理连接 一致n 本论文丌发环境逻辑结构图如图2l 所示: 硬 件 日标机( t a r g e t ) 串l 1 ( 超级终端m i n i m ) “太m 接口( 倍输数据) :撼箬“l 一i 忑9 0 一荔i j 2 交z * 垃环境 3 、超级终端r a i n 删 图2 i 开发环境逻辑结构酗 本论文丌发环境实际硬件设备连接图如图2 2 所示: 宿土机 嵌入式系统 2 性 止系统开发r 白的螳fm | 。镕z 2 2 工具软件 幽2 2 开发环境实际硬什殴前连接蚓 嵌入式系统 2 2 1r e d h a t9 0 开发环境 鉴于嵌入式丌发一般都足基于流行的稳定l i n u x 发行版本,因此本论文采用r e d h a t 9 0 作为宿主机的操作系统。 整个开发过程中需要用到的最基本的工具有g e c ( g n u 编译器) 、g d b ( g n u 调试 器) 、m a k e ( g n u 建构工具) 以及超级终端m i n i e o m 。冈23 说明了上述的工具是否已 安装。 r o o t o l o c a l h o s tr o o t # g e e - - v e r s i o n g c c ( g c c ) 3 2 22 0 0 3 0 2 2 2 ( r e dh a tl i n u x3 2 2 - s ) r o o t o l o c a l h o s tr o o t # g a b v e r s i o n g 删g d br e dh a tl i n u x ( s 3 p o s t 一02 0 0 2 1 1 2 9 x r r h ) r o o t l o c a h o s tr o o t # m i n i c o m v e r s i o n m i n i c o mv e r s i o n2 0 0 0 ( c o m p i l e dj a n 2 52 0 0 3 ) r o o t o l o c a l h o s tr q o t # m a k e v e r s i o n g n um a k ev e r s i o na 7 9 i b yr i c h a r ds t a l l m a na n dr o l a n dm c g r a t h 注:命令一v e r s i o n 农不卉看该i 儿的版本 幽2 3 嵌入式系统丌,发虽基本的。几 整个开发过程叫1 需篮用到的包主要是r e d h a t9 0 内核源代码包,如图2 4 所j 硕十论文 基于嵌入式l i n u x 的视频图像采集实现 r o o t o l o c a l h o s tl i n u x 一2 4 2 0 8 1 擎l s a r c hd o c u m e n t a t i o nk e r n e lr e a d m e c o n f i g s d r i v e r s l i br e p o r t i n g b u g s c o p y i n gf sm a i n z a i n e r sr u l e s m a k e c o p y i n g m o d u l e si n c l u d e m a k e f i l e s c r i p t s c r e d i t si n i tf u n t m p i n cl u d e d e p e n d s c r y p t o i p c n e t r o o t o l o c a l h o s tl i n u x 一2 4 2 0 一8 寄p w d u s r s r c l i n u x 一2 4 2 0 - 8 r o o t l o c a l h o s tl i n u x 一2 4 2 0 8 襻u n a m e r 2 4 2 0 一8 注:i s 查看当前目录下的文件:p w d 夯看当前路径;u n a m e - r 查看当前内核版本 2 2 2 交叉开发环境 图2 4r e d h a t9 0 内核源代码包 整个开发过程中需要用到的交叉工具有a r m 1 i n u x g c c 、a r m l i n u x 1 d 等。如图2 5 所 r o o t 孽l o c a l h o s tb i n # p w d u s r 1 0 c a l a r m 2 9 5 3 1 b i n r o o t o l o c a l h o s tb i n 带i s a r m l i n u x - a d d r 2 1 i n e a r 鬣一1 i n u x g a 8 p a r m - l i n u x - p r o t o i z e a r m l i n u x a r a r m l i n u x g c c 丑r 舶一l j n u x - r a n l i b a r m l i n u x a s a r m l i n u x 一琶c j a r m l i n u x r e a d e l f a r m l i n u x e + +a r 孤一l i n u x l da r m l i n u x s i z e a r m l i n u x c + + f i l ta r 舶一l i n u x n 弱 a r m l i n u x s t r i n g s a r 扔一1 i n u x - g + +a r m 一1 i n u x o b j e o p ya r m - l i n u x - s t r i p a r m - l i n u x - 9 7 7 a r m 一1 i n u x o b j d u 豫pa r m - l j n u x u n p r o t o i z e r o o t 尽l o c a l h o s tb i n 】誉a r m - l i n u x g c c v e r s i o n 2 9 5 3 r o o t l o c a l h o s tb i n 】群a r m l i n u x l d 一一v e r s i o n g 舳l d2 n 2 c p p g c j h g c o v j c f - d u m p 3 v s c a n 图2 5 交叉编译工具 整个开发过程中需要用到的包主要是嵌入式系统的内核包。如图2 6 所示: r o o t e l o c a l h o s t l a r c h a r m s y i a r m s y b 幔m 髓 a r m s y | r o o t i r o o t k e r n e l 2 4 d o 孝l s s 2 4 4 0 _ l 3 5 t 2 3 c f g $ 2 4 4 0 l 3 5 t 3 2 c f g s2 4 4 0 _ l 7 _ c f g s 2 4 4 0 _ l x k ”r 6 4 _ c f g c ha n g e l o g c o p y i n g c r e d i t s d o c u m e n t a t i o n d r i v e r s o l o c a l h o s tk e r n e l 2 4 4 0 存p w d k e r n e l 2 4 4 0 f s i n c l u d e i n i t x p c k e r n e l l i b 晴工n t a i n e r s m a k e f i l e m m m o u s e c o n f i g 图2 6 嵌入式系统内核包 n e t r e a d 旺 r e p o r r i n g b u g r u l e s m a k e s c r i p t s 7 2 嵌入式系统开发甲台的建立硕十论文 2 3 嵌入式开发环境测试 下面主要通过一个基于2 4 内核的模块来测试这个开发环境。源代码如图2 7 所示: # i n cl u d e # i n cl u d e 1 i n u x k e r n e l - h m o d u l e _ 工i c e n s ec d u a lb s d g p l ”) ; i n ti n i t _ m o d u l e ( v o i d ) p r i n t k ( ”h e l l o w o r l d n ”) ; r e t u r no ; l v o i dc l e a n u p _ m o d u l e ( v o i d ) p r i n t k ( ”g o o d b y ew o r l d n ”) : 图2 7 事例模块源代码 事例模块的主要功能是:在驱动程序被插入时( i n s m o d ) 打印“h e l l o ,w o r l d 字 符串,被移除时( r m m o d ) 打印“g o o d b y ew o r l d 字符串。这段源代码也是驱动程序 的骨架。 2 3 1 在宿主机上实现 m a k e f i l e 文件如图2 8 所示: k e r n e l d i r = l i b m o d u l e s $ ( s h e l lu n a m e - r ) b u i l d c y l a g s = 一d j e r n e l 一d m o d u l e - i s ( k e r n e l d i r ) i n c l u d e - o a l l :t e s t 0 c l e a n : 8 一r m r f o 图2 8 基于宿主机的m a k e f i l e 文件 整个建构( 编译链接) 过程如图2 9 所示: 硕十论文 基于嵌入式l i n u x 的视频图像采集实现 r o o t 露l o c a l h o s tt e s t # i s m a k e f i l et e s t c 【r o o t 囝l o c a l h o s tt e s t 孝m a k e c c d k e r n e l - d m o d u l e - i l i b m o d u l e s 2 4 2 0 8 b u i l d i n c l u d e 一0 一c ot e s t ot e s t c 【r o o t 1 0 c a l h o s tt e s t 】孝i s m a k e f i l et e s t c t e s t o r o o t l o c a l h o s tt e s t 存i n s m o d t e s t o r o o t 昏l o c a l h o s tt e s t 弃d m e s git a i l n1 h e l l o 。w o r l d r o o t o l o c a l h o s tt e s t # h e a d p r o c m o d u l e s n1 t e s t6 9 6 0 ( u n u s e d ) r o o t l o c a l h o s tt e s t l 群r m m o dt e s t 【r o o t 露1 0 c a l h o s tt e s t 】群d m e s gl t a i l - 1 11 g o o d b y ew o r l d 注:m a k e 调用m a k f i l e 文件来编译和链接模块;i n s m o d 装载模块剑内核; d m e s g 打印系统消息;h e a d 查看模块是否已装载;r m m o d 从内核中卸载模块 图2 9 m a k e 建构过程 上述一系列步骤说明了r e d h a t9 0 开发环境配置正常。 2 3 2 在嵌入式系统上的实现 m a k e f i l e 文件如图2 1 0 所示: k e r n e l d i r = r o o t k e r n e l 2 4 4 0 c f l a g s = 一d k e r n e l - d m o d u l e - 1 5 ( k e r n e l d i r ) i n c l u d e 一0 c c = a r m - l i n u x - g c c a l l :t e s t o c l e a n : 一r m r f 蕾0 图2 10 基于嵌入式系统的m a k e f i l e 文件 整个建构过程如图2 1 1 所示: r o o t l o c a l h o s tt e s t # l s m a k e f i l et e s t e 【r o o t l o c a l h o s tt e s t 存m a k e a r m - l i n u x - g c c dk e r n e l - d m o d u l e i r o o t k e r n e l 2 4 4 0 i n c l u d e 一0 一c o t e s t c r o o t o l o c a l h o s tt e s t # i s m a k e f i l et e s t c t e s t o 图2 11m a k e 建构过程 通过邱下载t e s t o 模块到开发板上进行测试,如图1 1 2 所示: 9 r o o t # l y t t r a p 群l s l e d c o n t r o l q c o p - m s g - q u i c k l a u n c h e r t e s t - 0 q c o p - m s g - q p e q t e m b e d d e d - u n k n o m r o o t l y tl t m p # c a t p r o c m o d u l e s r o o t q l y t t m p 】弃i n s m o d t e s t 0 u s i n g t e s t 0 h e l l o w o r l d 【r o o t l y t t m p # c a t p r o c m o d u l e s t e s t 2 0 8 0 ( u n u s e d ) r o o t 0 i y t t m p # r m m o dt e s t l o 注:c a t 查看模块是否已装载 图2 1 2 测试结果 上述一系列步骤说明了交叉开发环境运行正常。 硕 :论文幕于嵌入式l i n u x 的视频图像采集实现 3 嵌入式图像采集系统方案的讨论 本章首先概述了对于本论文所使用的硬件条件采用无线传输的不可行性,进而引出 所需要完成的三个主要任务( 驱动程序、服务器、客户端) ;然后说明了针对本论文u s b 接口的工作情况,进而引出我们所关心的帧速问题;最后得出了影响帧速的因数,解决 办法以及本论文在有限的硬件条件下所采用的方法。 本章具有承上启下的作用,通过对于本章内容的分析,为本论文所需要完成的任务 指明了方向。 3 1 方案的确定 由于本论文所使用的u s b 摄像头采集到的数据为2 4 位真彩色的原始数据,其数据 量非常大,以一个像素3 b y t e 来计算,分辨率为6 4 0 x 4 8 0 的一幅图像的数据量为 6 4 0 x 4 8 0 x 3 b y t e ,即9 0 0 k b 。 如果采用现有的无线通信信道,传一幅图像数掘需要数1 0 秒,不能满足实时性的 要求。即使压缩比为2 0 ,传一幅图像数据也至少需要半秒的时间。而对于a r m 处理器 而言,由于在高速数据处理方面的劣势,如果保证图像质量的情况下采取无线传输,则 必须采取硬件压缩的方法。这样势必增加设备成本和运行成本。 鉴于项目总体的要求,本论文采用有线传输的方式。需要完成3 个部分的任务: 1 、驱动程序的实现 2 、图像采集端的实现 3 、图像接收端的实现 项目总体概况及其任务分解图如图3 1 所示: ,隰u s b 相连粤有线传输影哆 :相连 ; 有线传输 ;,u s b ? 嵌入式 9 宿 己一。琴j 三意 图3 1 项目总体概况及任务分解图 3 嵌入式图像采集系统方案的讨论 硕士论文 由于嵌入式系统到宿主机之间传输方式的硬件实现对上层软件的实现是透明的,因 此本论文完成的服务器和客户端任务,对于将来采用无线通信信道传输还是适用的。 3 2 驱动程序任务分析 针对本论文,u s b 接口工作的情况如图3 2 所示: 厂人 厂人- 、厂人- 、 书 匹竺竺缸| :二一、。_ _ : 三三:三:j 将p e 模g = ) u s b 摄像头内置芯片的作用:砸件压缩并传输数椐流j 的作用:解压缩数据流并缓存下来主机缓冲区 图3 2u s b 接口工作情况 从图中可知,决定帧速率有两个因数: 1 、j p e g 硬件压缩比 2 、u s b 接口标准 目前a r m 9 丌发板基本上都只是配备u s b l 1 的接1 2 1 ,速度为1 2 m b p s 。通用u s b 摄像头的内置硬件压缩比一般为5 8 。摄像头采集的数据为2 4 位真彩色的原始数据, 以一个像素3 b y t e 来计算,分辨率为6 4 0 x 4 8 0 的一幅图像的数据量为9 0 0 k b ,理论上能 达到的最大帧速为1 2 m b p s ( 9 0 0 k b 8 ) ,即1 3 f p s 。 以上分析结论:在分辨率为6 4 0 x 4 8 0 、保证图像质量的情况下,用通用u s b 摄像头 以及u s b l 1 标准,要把帧速理论上提高到3 0 f p s 是不可能的。 所采取的解决办法只能: l 、采用u s b 2 0 标准 2 、采用其他类型的接口标准 3 、采用高硬件压缩比的摄像头 由于硬件条件的限制,本论文没有解决这个问题。而是通过研究与移植已有的驱动 程序来解决u s b 摄像头驱动程序问题,最后得出帧速与图像质量的大致关系。对于将 来采用u s b 2 0 标准还是其它的解决办法,本论文的驱动程序都是适用的。 1 2 硕士论文皋于嵌入式l i n u x 的视频图像采集实现 4 驱动程序的研究与实现 本章首先概述了u s b 系统结构以及u s b 设备;然后通过部分代码片断展示了u s b 驱动程序编程接口;最后深入地研究了针对本系统的u s b 驱动程序代码以及完成了驱 动程序的任务。 本章是对第三章中阐述的驱动程序任务的具体展开,也是第五章内容的基础。 4 1u s b 概述以及系统结构 通用串行总线( u s b ) 是主机和外围设备之间的一种连接。u s b 最初是为了替代许 多不同的低速总线( 包括并行、串行和键盘连接) 而设计的,它以单一类型的总线连接 各种不同类型的设备。u s b 的发展已经超越了这些低速的连接方式,它现在可以支持 几乎所有可以连接到p c 上的设备。最新的u s b 规范修订增加了理论上高达4 8 0 m b p s 的高速连接l l o l 。 从拓扑上来看,一个u s b 子系统并不是以总线的方式来布置的;它是一棵由几个 点对点的连接构建而成的树。这些连接是连接设备和集线器( h u b ) 的四线电缆( 地线、 电源线和两根信号线) ,这和以太网双绞线类似。u s b 主控制器( h o s tc o n t r o l l e r ) 负责 询问每一个u s b 设备是否有数据需要发送。因为这种拓扑布局的原因,一个u s b 设备 在没有主控制器要求的情况下是不能发送数据的。这种配置便于搭建一个非常简易的即 插即用类型的系统,藉此,设备可以由主机自动地配置。 u s b 总线在技术层面上是非常简单的,因为它是一个单主方式的实现,在此方式下, 主机轮询各种不同的外围设备。尽管存在这种内在的局限性,u s b 总线有一些吸引人 的特性,例如设备具有要求一个固定的数据传输带宽的能力,以可靠地支持视频和音频 i o 。u s b 另一个重要的特性是它只担当设备和主控制器之间通信通道的角色,对它所 发送的数据没有任何特殊的内容和结构上的要求。 u s b 协议规范定义了一套任何特定类型的设备都可以遵循的标准。如果一个设备遵 循该标准,就不需要一个特殊的驱动程序。这些不同的特定类型称为类( c l a s s ) ,包括 存储设备、键盘、鼠标、游戏杆、网络设备和调制解调器。对于不符合这些类的其他类 型的设备,需要针对特定的设备编写一个特定于供货商的驱动程序。视频设备和u s b 到串口转换设备是一个很好的例子,对于他们没有己定义的标准,来自不同制造商的每 一种不同的设备都需要对应的驱动程序。 这些特性,加上设计上与生俱来的热插拔能力,使得u s b 成为一个便利和低成本 的机制,它可以连接多个设备到计算机,而不需要关闭系统、打开机箱、拧螺丝钉和插 拔电线。 4 驱动程序的研究与实现 硕j j 论文 l i n u x 内核支持两种主要类型的u s b 驱动程序:宿主( h o s t ) 系统上的驱动程序和 设备( d e v i c e ) 上的驱动程序。从宿主的观点来看( 一个普通的u s b 宿主是一个桌面计 算机) ,宿主系统的u s b 驱动程序控制插入其中的u s b 设备,而u s b 设备的驱动程序 控制该设备如何作为一个u s b 设备和主机通信。由于术语“u s b 设备驱动程序( u s b d e v i c ed f i v e r s ) 非常易于混淆,u s b 开发者创建了术语“u s b 器件驱动程序 ( u s bg a d g e t d r i v e r s ) 来描述控制连接到计算机的u s b 设备的驱动程序。 如图4 1 所示,u s b 驱动程序存在于不同的内核子系统( 块设备、网络设备、字符 设备等等) 和u s b 硬件控制器之中。u s b 核心为u s b 驱动程序提供了一个用于访问和 控制u s b 硬件的接口,而不必考虑系统当6 存在的各种不同类型的u s b 硬件控制器 【l o 】【1 1 1 。 用户 v f s块网络字符 t t y 层设备层设备层设备层层 u s b 设备驱动程序 u s b 核心 u s b 主控制器 彳 4 2u s b 设备概述 硬件 图4 1u s b 驱动程序概观 内核 4 2 1u s b 设备基础 u s b 设备是一个非常复杂的东西。l i n u x 内核提供了一个称为u s b 核一t = , ( u s bc o r e ) 的子系统来处理大部分的复杂性。下面描述了驱动程序和u s b 核心之间的接口。图4 2 展示了u s b 设备的构成,包括配置、接口和端点,以及u s b 驱动程序如何绑定到u s b 1 4 硕i 论文基于嵌入式l i n u x 的视频图像采集实现 接口上,而不是整个u s b 设备【1 0 】【1 5 】。 。一一。一。一。一。一一一。一一一一- - 一一。1 设备; i 接口u s b 配置驱动程序 端点 日日镕掰镕辫绷黝 端点 端点 接口 u s b 驱动程序 端点 麟黼辩瞄黼躐黼辩溢瓣 端点 端点 图4 2u s b 设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论