(电路与系统专业论文)基于USB20的视频处理系统软硬件设计与实现[电路与系统专业优秀论文].pdf_第1页
(电路与系统专业论文)基于USB20的视频处理系统软硬件设计与实现[电路与系统专业优秀论文].pdf_第2页
(电路与系统专业论文)基于USB20的视频处理系统软硬件设计与实现[电路与系统专业优秀论文].pdf_第3页
(电路与系统专业论文)基于USB20的视频处理系统软硬件设计与实现[电路与系统专业优秀论文].pdf_第4页
(电路与系统专业论文)基于USB20的视频处理系统软硬件设计与实现[电路与系统专业优秀论文].pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

ab s t r a c t a s t h e m o s t c o m p a t i b l e h a s t h e t r a n s m i t t i n g s p e e d a t p r o c e s s i n g s y s t e m. s e r i a l b u s i n t e r f a c e , t h e u n i v e r s a l s e r i a l b u s v e r s i o n 2 . 0 4 8 0 mb p s a n d w as a p p l i c a b l e f o r v i d e o a c q u i s i t i o n a n d t h i s t h e s i s m a i n l y d e a l s w i t h t h e d e s i g n o f v i s i o n a n d v i d e o p r o c e s s i n g s y s t e m s o ft w a r e b a s e d o n t h e i m a g e a c q u i s i t i o n h a r d w a r e p l a t f o r m w i t h u s b 2 . 0 i n t e r f a c e , i n o r d e r t o b u i l d i n g a s t r o n g b a s i s f o r m o t io n p i c t u r e a n a l y s i s . i t i n c l u d e s t h e d e s ig n o f f i r m w a r e , u s b d e v i c e d r i v e r a n d v i s i o n / v i d e o p r o c e s s i n g s o ft w a r e . t h i s t h e s i s a l s o p r o p o s e d a v i d e o c o m p r e s s i o n d r a ft b a s e d o n w a v e l e t t r a n s f o r m a n d a r i t h m e t i c c o d i n g m o d e c o m p a t i b l e t h e l o w b i t - r a t e c o m m u n i c a t i o n s t a n d a r d h . 2 6 3 . f u r t h e r , t h e v l s i a r c h i t e c t u r e o f t h e f u l l s e a r c h a r i t h m e t i c o f m o t i o n e s t i m a t i o n h a s b e e n i n v e s t i g a t e d t h e s y s t e m u t i l iz e s t h e f e a t u r e o f u s b 2 . 0 h i g h - s p e e d t r a n s m i s s i o n s p e e d o f d a t a a n d r e a l i z e s t h e v i s i o n / v i d e o p r o c e s s i n g f u n c t i o n s b y s o ft w a r e . t h e s y s t e m d e s i g n i s b a s e d o n a g r e a t a m o u n t o f e d a s o ft s i m u l a t i o n , w h i c h m a k e s t h e d e s i g n m o r e c o n c i s e a n d r e a s o n a b l e . a l s o , t h e h a r d w a r e a n d s o f t w a r e c o u l d b e t r a d e - o f f d e p e n d i n g o n t h e d e m a n d o f p i c t u r e p r o c e s s i n g . k e y w o r d : u s b 2 . 0 v i s i o n v i d e o c o m p r e s s i o n mo t i o n e s t i m a t i o n y5 8 3 7 3 5 独创性 ( 或创新性)声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名 i k . : fih怀 i l -4 -日 期 ) - 认 关于论文使用授权的说明 本人完全了 解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文 ( 与学位论文相关)工作成果时署名单位仍然为 西安电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学 校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保 存论文。( 保密的论文在解密后遵守此规定) 本人签名 导师签名 : 泉 能辉 二乒匹 n 期 .2- v _ i _ i 日 期 一 夕 竺 2 竺 2 竺止 绪论1 -一一一-一-一一-一一一 绪论 随着计算机软件、硬件技术的日 新月异的发展和普及,人类已 经进入一个高 速发展的信息化时代,人类大概有 8 0 %的信息来自图像,科学研究、技术应用中 图像处理技术越来越成为不可缺少的手段。 计算机视觉是指用摄像机和计算机代替人眼对目 标进行识别、 跟踪和测量等: 图像处理的主要功能是将获得的低质量图像 ( 反差小,模糊,变形等) 用计算机 处理成更适合人眼观察或仪器检测的图像。 计算机视觉是一门新兴的发展迅速的学科, 八十年代以 来, 计算机视觉的研究 已经历了从实验室走向实际应用的发展阶段。从简单的二值图像处理到高分辨率 多灰度的图像处理, 从一般的二维信息 处理到三维视觉机理以 及模型和算法的研究 都取得了很大的进展。而计算机工业水平的飞速提高以及人工智能、并行处理和 神经元网 络等学科的发展, 更促进了 计算机视觉系统的实用化和涉足许多复杂视觉 过程的 研究。目 前,计算机视觉系统正在广泛地应用于视觉检测、 机器人的视觉 引导和自 动化装配领域中。 在现代化的大生产之中,视觉检测往往是不可缺少的环节。近年来发展迅猛 的 计算机视觉技术解决了 这一问 题。 计算机视觉系统一般采用c m o s 或者c c d照 相机摄取检测图像并转化为数字信号,再采用先进的计算机硬件与软件技术对图 像数字信号进行处理,从而得到所需要的各种目 标图像特征值,并由 此实现模式 识别,坐标计算,灰度分布图等多种功能。然后再根据其结果显示图象,输出数 据,发出指令,配合执行机构完成位置调整,好坏筛选,数据统计等自 动化流程。 与人工视觉相比较,计算机视觉的最大优点是精确,快速,可靠,以 及数字化。 视觉视频运动图像分析和处理就是在检测几何信息的基础上对空间物体运动 的参数进行求解和预测外推。数字图像处理超大规模集成专用集成电 路的结构与 电 路设计从八十年代起就是数字信号处理类芯片设计中最活跃的领域。而视觉视 频运动图像处理系统集成芯片设计属于其中的前沿课题,其应用前景诱人。 我们认真研究了国内外的相关结果, 认为要使图像分析和处理真正走向实用, 必须: 寻找高效可行的各种算法理论,如运动检测,视频压缩; 研究适用的 体系结构和硬件电路设计。 我们探索的是一条在视觉视频运动处理方面进行成像接口后尽早进行图像的 运动分析的单芯片c mo s系统集成之路,力图在国内设计研制出有应用前景的实 时视觉视频运动图像分析专用系统集成芯片。 本论文的研究和设计工作是国家自 然科学基金 “ 运动图像分析系统集成芯片 设计, 项目 的一部分,主要完成其处理系统软件体系结构的研究和设计,即视觉 基于u s b 2 . 0 的视频处理系统软硬件设计与实现 视频运动图 像的软件处理平台和视频压缩的研究。 众所周知,视觉视频图像数字化后数据量非常庞大,对如此大量高速的数据 进行实时处理是计算机应用领域中技术难度最大的部分,如何实现视觉视频图像 的数字化分析处理和传输是该领域中必须解决的首要问题。 我们设计实现了基于 u s b 2 .0总线的视觉视频处理系统软件,它可以完成视 频图像的采集、 处理, 并通过u s b 2 .0 接口送进计算机进行显示和更进一步的处理。 随着多 媒体技术的发展, 对大信息量图像数据的压缩、传输和存储变得越来 越重要,因此对多媒体信息的处理己经开发了许多种有效的视频与图像压缩标准 和硬件结构。h .2 6 x系列标准正是适应于视频处理技术的发展而制定的。其中, h . 2 6 3己经被广泛应用,包括会议电视,可视电话及其他一些设备。 我们研究了h .2 6 3 的可选项内容之一的算术编码,提出了一种兼容 h .2 6 3 标 准的结合小波变换和算术编码算法的视频压缩方案。该方案和基于离散余弦变换 ( d c t )的h .2 6 3 相比, 在具有相似压缩比的情况下,重建图像质量有明显提高。 论文还进一步研究了视频序列图像的运动估计全搜索算法的v l s i 结构设计, 在视频压缩国际标准中,视频编码器的复杂性最主要取决于运动估计。运动估计 是活动图像编码和计算机视觉领域中的一项关键技术,大约占整个编码时间的 6 0 %,因此, 运动估计的硬件实现结构研究对实时压缩具有重要的意义。 为此, 我们以基于u s b 2 .0 的视觉视频处理系统为平台, 结合f p g a的灵活性, 开发了一套性能优越的视觉视频处理系统软件,并完成了视频数据的压缩。 论文共分以下几个部分。 第一章: 总体方案设计,在分析u s b 2 . 0 视觉视频图像处理系统的基础上提出 了总体设计方案。 第二章:视觉视频图像处理系统的相关软件技术,介绍u s b总线,系统固件 程序和 wd m驱动程序。 第三章:详细论述了基于 u s b 2 .0的视觉视频图像处理软件平台的设计及实 现。 第四章:提出结合小波变换和算术编码在h . 2 6 3 视频压缩标准新方案。 第五章: h .2 6 3 压缩标准中运动估计的v l s i 结构的 研究设计, 提出基于s y s t o l i c 的全搜索算法的硬件结构。 第六章:总结与展望,对比h .2 6 3和 h . 2 6 4标准的编码性能,讨论国际视频 压缩标准和我国自己的视频压缩标准的发展趋势。 第一章 总体方案设计 第一章总体方案设计 计算机视觉系统是用计算机来实现人的视觉功能,也就是用计算机来实现对 客观的三维世界的识别。按现在的理解,人类视觉系统的感受部分是视网膜,它 是一个三维采样系统。三维物体的可见部分投影到网膜上,人们按照投影到视网 膜上的二维的图像来对该物体进行三维理解。所谓三维理解是指对被观察对象的 形状、尺寸、离开观察点的 距离、 质地和运动特征 ( 方向和速度) 等的理解。 计算机视觉系统的输入装置可以是摄像机、转鼓等,它们都把三维的影像作 为输入源,即输入计算机的就是三维客观世界的二维投影。 如果把三维客观世界 到二维投影像看作是一种正变换的话,则计算机视觉系统所要做的是从这种二维 投影图像到三维客观世界的逆变换,也就是根据这种二维投影图像去重建三维的 客观世界。 计算机视觉系统主要由三部分组成:图 像的获取、图像的处理和分析、输出 或显示。 现代视觉视频图像处理技术发展非常迅速,各种图像采集卡已能在市场上买 到,但是价格比较昂贵,使用起来不方便,并且处理功能简单。 又 寸 于特殊需要不 能很好的满足,往往还需要加上后续处理部分 的不方便。 正是为了解决以上的缺点, 我们采用 ,这给特殊需要的用户带来了极大 u s b 2 .0 总线作为图像传输的接口, f p g a作为图像处理芯片,开发了一套性能优越的视觉视频处理系统 ( 见图1 . 1 ) . 此系统可以根据不同的需要进行现场编程, 具有通用性好、价格相对便宜等特点 图1 . 1系统原理图 1 . 1 视频处理系统的实时显示及处理平台的设计 系统设计中首先考虑的是通过何种外部总线来传送数据,u s b技术的提出是 基于实现外设的简单快速连接,以达到方便用户、降低成本、 范围的目的。 u s b设备不占用p c的硬件资源, 设备的控制、 扩展p c机连接外设 管理和信息交换完全 基于u s b 2 .0的视频处理系统软硬件设计与实现 是由 系统软 件按u s b协议进行传输的, 因此具有更高的可靠性和兼容性。 u s b 2 .0 的推出使u s b 技术得到了 迅速地发展, 那高达4 8 0 m b p s 的带宽一举突破瓶颈成为 人们瞩目的焦点。 我们开 发的基于u s b 2 .。 的视觉视频处理系统采集速度快, 采集c i f ( 3 5 2 x 2 8 8 ) 格式的图 像最高能达到2 3 帧/ 秒, 这使图像数据在计算机屏幕上的显示成为一个瓶 颈。 视频图 像显示的关键是做到平滑显示, 根据h v s ( h u m a n v i s u a l s y s t e m ) 对时间 频率的响 应特征,在中等亮度环境下, 平滑显示视频图 像的帧速率一般应为2 23 0 帧 / 秒, 而产生 平滑视频的临界帧率大约为2 0 帧/ 秒。 因 此, 要做到视频实时显示, 其关键 是要保证图像更新的帧速率不小于2 0 帧j 秒。 wi n d o w s 系统提供了3 种图形图像处 理接口 , 即g d i ( g r a p h i c s d e v i c e i n t e r f a c e ) , d r a w d i b函 数集及d i r e c t x s d k中的 d i r e c t d r a w组件。 这3 种图形图像接口 都具有各自 的 特点 , 适合不同的场合。 根据 视觉视频处理系统的要求, 在我们的视频实时显示中采用了d r a w d i b函数集作为 图像显示接口,显示最高速度能达到2 0 0 帧/ 秒以上, 保证了视觉视频处理系统实 时采集图像的实时显示。 在u s b 2 .0 视觉视频处理硬件平台的基础上, 进一步开发了视觉视频处理软件 平台,包括控制系统的固件程序,wi n d o w s wd m 设备驱动程序,结合 i p l和 o p e n c v类 库, 可以 进行图 像滤波、 阐 值计算、 图 像统计学处理、以 及图 像的 形态 学处理等操作。 另外, 还可以 实现物体轮廓跟踪、 图像的几何处理、 形态学处理、 图像特征提取、背景分离、金字塔算法、种子填充算法、光流算法、主动轮廓算 法、相机的校正、姿势的识别等很多操作。 由此可见,视觉视频处理软件平台作为我们开发各种应用的平台是非常合适 的,它不仅方便, 而且具有广泛的应用范围。 1 .2 h . 2 6 3 视频压缩标准的改进及运动估计的硬件结构设计 基于u s b 2 .0 的视觉视频处理系统采集速度很快,采集c i f ( 3 5 2 x 2 8 8 ) 格式的 图像最高能达到2 3 帧/ 秒,这使图像数据在计算机硬盘上的存储也成为一个问题。 以黑白图 像为例, 每个像素为8 b i t , 则每秒的存储量为2 3 x 3 5 2 x 2 8 8 = 2 .2 2 m b , 每 分钟大约为1 3 3 .5 mb ,因此,视频数据压缩是必不可少的。 视频数据编码般采用预测编码,即将图像数据的空间变化规律和序列变化 规律用一个预测公式表示,如果知道了某一像素的前面各相邻像素值之后,可以 用公式预测该 像素值。采用预测编码,一般只需传输图像数据的起始值和预测误 差。 变换压缩方法是将整幅图像分成一个个小的 ( 取8 x 8 或1 6 x 1 6 ) 数据块, 再 第一章 总体方案设计 将这些数据块分类、变换、 量化, 从而构成自 适应的变换压缩系统。该方法可将 一幅图像的数据压缩到为数不多的几十个比 特传输,在接收端再变换回去即可。 h .2 6 3 建议标准的制定是为了满足对活动图像进行低码率编码的需要, 为了改 进性能又包含了四个可选的编码选项。详细研究 h .2 6 3的四个可选项内容之一的 算术编码, 提出了一种兼容 h .2 6 3标准的结合小波变换和算术编码算法的视频压 缩方案。在wi n d o w s 2 0 0 0 操作系统下,用v i s u a 工 c + 十6 . 0 为开发平台,编写了模 拟实现小波变换和算术编码的 h .2 6 3编码过程的软件,该方案和基于离散余弦变 换 ( d c t )的 h .2 6 3相比, 在具有相似压缩比的情况下, 重建图 像质量有明显提 局 . 视频序列图像在时间土有很强的相关性,利用运动估计和运动补偿技术可以 比 较有效的去除图像帧间的 冗余信息,实 现高压缩比, h .2 6 x系列和m p e g - x系 列都采用这种技术。但是运动估计是视频压缩中的一项复杂和计算费时的关键技 术,因此,运动估计的全搜索算法的硬件实现设计具有非常重要的意义。设计中 采用了s y s t o l i c 阵列来实 现算 法; 在结构 设 计上 利用f p g a内 部r a m资 源, 集内 部缓存结构与处理单元于一体;体系结构上采用并行和流水线结构。结果证明, 与同类其他处理机相比,该设计具有实时处理的优点,并且有很大的灵活性和通 用性。 基于u s b 2 . 0 的视频处理系统软硬件设计与实现 第二章 u s b 2 .0 视频处理系统相关软件设计 2 . 1 u s b 2 . 0总线体系结构 随着通信领域和计算机领域技术的不断发展,传统的通信和计算机功能已经 出现了融合趋势,并很有可能成为下一代应用产品的基础。而且社会的 匕 速发展 使得人们需要交换的信息种类越来越多,数量也越来越大,这就要求提供一种廉 价的, 遍布全球的 连接手段。 新一代通用串 行总线( u n i v e r s a l s e r i a l b u s ) 接口 的优 良特性给我们提供了极佳的解决方案。 u s b 2 . 0 协议提供4 8 0 mb / s 的传输速度,向下完全兼容流行的u s b i a协议。 支持以 下3 种速度模式: 低速模式 ( l o w s p e e d ) 1 . 5 m b / s , 全速模式 ( f u l l s p e e d ) 1 2 m b / s , 高 速模式 ( h i g h s p e e d ) 4 8 0 m b / s . u s b 2 .0 协议支持现存的所有u s b设 备, 既可以把u s b 1 . 1 设备插入 u s b 2 . 0的p c机接口, 并且在电气上兼容u s b 1 . 1 的连接线。 u s b 2 .0 技术由三部分组成: 具有u s b接口的p c系统、 能够支持u s b 的系统软件和使用u s b接口的设备。u s b 2 .0 设备受到人们的瞩目,是由于u s b 不仅改变了以往串行总线低速的局面,同时还引入许多串行总线技术不具有的新 特性。 和u s b解决方案相联系的基本硬件和软件包括: .u s b硬件 u s b 主控制器/ 根集线器 u s b 集线器 u s b 设备 . u s b 软件 u s b 设备驱动程序 u s b 驱动程序 i j s b 神制器_i v 动程序 2 . 1 . 1 u s b 2 . 0 总线信号环境 u s b 2 .0 采用四线电缆, 其中两根是用来传送数据的串行通道, 另两根为下游 ( d o w n s t r e a m ) 设备提供电 源,如图2 . 1 所示。 第二章 u s b 2 .0 视频处理系统相关软件设计 最长5 米 万o vb酬压份 vbu d十 d gnd 二 1 斌 一 _一 _: 一 三 l m 图2 . 1 u s b电缆 其中,d + , d 一 是串行数据通信线,它支持两种数据传输率,对于高速且 需要高带宽的外设, u s b 2 .0 以4 8 0 m b p s 传输数据: 对于低速外设, u s b 2 .0 兼容 u s b 1 . 1 的传输速率。u s b 2 . 0总线会根据外设情况在两种版本模式中自动地动态 转换。 v b u s 通常为+5 v电 源, g n d是地线。 u s b是基于令牌的总线, 类似于 令牌环网络或f d d i 基于令牌的总线。 2 . 1 . 2 u s b 2 . 0 数据流类型 u s b 2 .0 提供了在主机和连接的u s b设备间的通信服务协议,协议按不同的 功能分为功能层、 设备层和接口 层。 图2 . 2 显示了标识系统的不同的u s b多层次 通信模型。 应用 层 , 甲 一 闷 扣 嘴 - , 、 , 令 u s b 设 备 骆 动 层 d.枷 心一口- .卜 u s b b u s 接p 层 u s b 主 机 u s b 系 统 图2 . 2 u s b 2 . 0 的多层次通信模型 u s b总线接口层在主机和设备间提供物理/ 信号/ 包的连接。u s b设备层是 u s b系统软件为完成与设备的操作所必须具有的功能。 功能层通过一个特定的与 功能块相匹配的客户软件层实现u s b设备的功能。每个u s b设备层和功能层都 设有一个在层内的逻辑通信流, 实际上u s b中真正的数据传送是通过u s b的总 线接口层来完成的。 u s b 2 .0 总线拓扑结构 u s b总线拓扑是指u s b设备和主机之间的连接模型, 涉及u s b主机、设备 以它们之间的相互连接。 基于u s b 2 . 0 的视频处理系统软硬件设计与实现 底层: 有串 行总线设备提供的功能, 如:鼠 标或i s d n接口。 图2 . 5 给出了u s b 2 .0 设备的逻辑结构。 设 iql i a(inw-2 2 xftaclw-2 n 配一霎o)s o ptr1). 节点0 管道。 ) 节点i 管道, ) 节点n 摘口,其他节点 接口n 配里2其他接口 配里 饰 图2 . 5 u s b 设备的逻辑结构 侮个设备内有一个或多个逻辑连接点,称为端点,每个端点指定下面的传输 类型之 一 :控制传输、中断传输、批传输和等时传输。 所有设备都有一个端点 。 传输,用于配置和控制设备。 主机和设备的端点0 之间的连接称为管道, 主机u s b系统软件和设备的端点 之间的连接称为缺省管道。 一个设备对主机表现为一组合适的端点,一组相关的端点称为一个接口。有 多个接口的设备称为组合设备。 最后,设备可以有多组接口,每一组称为一个配置,一次只能有一个配置是 活动的。 但是,当前配置中的所有接口 和它们的端点) 可以同时活动。大多数 的设备只有一个配置和一个接口。当一个设备第一次插入系统时,wi n d o w s 提示 用户选择合适的配置。 2 . 2 u s b 2 . 0 控制系统固件代码设计 j i 发一个 u s b设备,软件设计是必不可少的,u s b应用系统软件设计分为 三部分:u s b外设端的固件 ( fi r m w ar e)、主机操作系统上的客户驱动程序以及 操作界面程序。 界面程序通过客户驱动程序与系统u s b i ( u s b d e v i c e i n t e r f a c e ) 进 行通信,山系统产生u s b数据的传送动作,固件则响应各种来自系统的u s b标 准请求,完成各种数据的交换工作和事件处理。 山于图像数据自身的格式以及u s b同步传输和批传输都适合传输大量数据, 但是同步传输设备和进程的同步设计有较大的难度,且它不提供错误检查机制, 所以我们采用了批传输模式。 第二章 u s r 3 2 . 0 视频处理系统相关软件设计 2 . 2 . 1 系统固件代码设计 固件代码是u s b和用户应用代码之间的接口, 是设备运行的核心。 本系统的 固 件代码主要实现两个功能: 第一、 控制e z - u s b f x 2 芯片c y 7 c 6 8 0 1 3 , 初始化 f x 2 芯片和所有的外围电路 ( 如请求设备描述符、请求或设置设备状态、设置设 备工作方式和设置设备接口 等u s b 标准请求) ; 第二、 接受并处理u s b设备驱动 程序的请求,实现视频图像数据的传输,并通过 1 2 c子程序控制 摄像头芯片 o v 6 6 3 0的输出图像数据的色度、亮度、快门时间和格式等。进行固件代码设计 所采用的软件是k e i l u v i s i o n 2 软件, 该软件可支持c语言和汇编语言的混合输入, 编程比 较灵活。 u s b视频采集系统设备的固件主要由主程序、 u s b总线枚举、 功 能 子 程序、 帧传送子 程序和1 1 c 子 程序 等组 成, 其功能框图 如图2 . 6 所示。 该u s b 设备的端点0 被设置成 “ 控制”传送方式,端点2 被设置成批传送方式。 图2 . 6固件 ( f i r m w a r e )代码的功能框图 主程序主要完成:堆栈设置,各种工作状态标志,各种变量的r a m空间分 配和u s b模块的初始化,端点0 的t x和r x中断允许,数字c a m e r a 芯片各寄 存器初始值的设定,设置主程序的工作指示灯以及循环等待中断的产生等。 u s b总线枚举子程序: 该部分主要完成u s b主机与u s b设备之ilil 的“ 连接” 过程。即响应u s b主机用缺省地址 的访问,送设备类型、版本号、 端点设置和参数设置等给u s b主机。接收u s b主机分配的唯一的地址值,接收 u s b主机确定的一种设备配置参数等。 功能子程序:该程序主要包括功能子程序1 和功能子程序2 两个部分。主要 功能包括判断中断源是哪个端点产生的,然后调相应的中断服务子程序。即首先 检查中断源是哪个端点产生的,然后检查是“ 配置” 、 “ 输入”还是“ 输出”? 若是端点。 的“ 输出” 包,则固 件将要检查u s b主 机送来的命令是哪一类命令, 以 方便回答。若是 “ 输入” 包,固件将要检查它的 “ 状态阶段” , 在 “ 数据阶段” 中, 固件将要按照u s b主机的要求回答( 送端点设置和参数设置等给u s b主机) 。 基于u s b 2 . 0 的视频处理系统软硬件设计与实现 若是端点2 的“ 输出” 包, 它主要是u s b主机送给u s b设备的命令或数据, 若 是“ 输入” 包, 则主要是u s b设备回应u s b主机的消息。 它们包括: 对数字c a m e r a 芯片寄存器值和u s b模块值的修改;u s b设备传送或接收u s b主机的参数或状 态。 帧传送子程序:该部分程序主要是利用端点2 的批传输方式来传送大批量的 数据。具体考虑如下:( 1 ) u s b视频采集设备要求较高的传输速度,( 2 )需要考 虑e z - u s b f x 2 芯片的运算速度。 1 2 c子程序: 主要是用来控制数字c a m e r a 芯片的。 即控制输出图像数据的色 度,亮度,对比度,曝光时间和格式等。 山于e z - u s b f x 2 芯片采用了一种基于r a m的方案,实现数据格式转换的 程序并未固化在芯片中,是一种软硬结合的固件代码 ( f i r m w a r e ) 。当设备插入 u s b 接口 时, 主机对设备进行了轮询, 获取了设备的i d号后, 系统程序将f i r m w a r e 下 载到芯片内部,执行数据格式的逻辑转换。 开发工具中的f i r m w a r e 框架是自 动生成的, u s b外设开发者根据外设功能 具体要求,选择感兴趣的函数逐一填写函数体。 开始是一段初始化程序,当 外设检测到一个s e t u p p a c k e t 时, 框架启动调度 程序,由调度程序按顺序反复执行以下三个任务。 1 t d _ p o 1 1 q 中调用实现外设主要功能的 用户子程序。 2 l 决 定设备是否有未处理完的 任务。 如果 有, 则 解析收到的 命令, 然后 给 主机相应的回复。 3 决定u s b核心是否有u s b悬挂事件。如果是,调度程序调用用户子 程 序丁 d _ s u s p e n d ( ) , 如返回t r u e , 处理器挂 起, 当 检测到唤醒事 件, 子 程序 继续 运行:如 返回f a l s e , 程序继续运行。 其它函数的含义为: t d _ i n i t ( ) :用于初始化f i r m w a r e 的全局状态变量; t d r e s u m e q : 此函数用于响应外部恢复事件, 使器件恢复正常工作状态。 2 . 2 . 2 批传输方式的实现 我们采用的u s b 2 .0 的接口芯片为e z - u s b c y 7 c 6 8 0 1 3 ,它提供了一种独持 架构,使u s b接口 和应用环境直接共享f i f o ,而微控制器可不参与数据传输但 允许以 f i f o或 r a m 的方式访问这些共享 f i f o。这种被称之为 “ 量子 f i f o ( q u a n t u m f i f o )的处理架构, 较好地解决了 在u s b高速传输模式下由于微控 制器本身的工作频率而限制u s b带宽的问题。 e z - u s b c y 7 c 6 8 0 1 3 有2 种接口方式: s l a v e f i f o s 和可编程接口g p i f o s l a v e 第二章 u s b 2 . 0 视频处理系统相关软件设计 f i f o s 方式是从机方式, 外部控制器可像普通f i f o一样对c y 7 c 6 8 0 1 3 的多层缓 冲f i f o进行读写。s l a v e f i f o s 和可编程接口g p i f 工作方式都可以 通过内部寄 存器设为同步或异步,工作时钟可选为内部产生或外部输入,其它控制信号也可 以通过内部寄存器灵活地设置为高有效或低有效,非常灵活。为了达到图像数据 的快速传输, 在本系统中, 我们采用了s l a v e f i f o s 传输方式,即在t d _ p o l l ( ) a 数中实现批传输,这是固件代码设计的关键部分。 e z - u s b 监测累加器和f i f o 之间的数据传输。 此外, 对于批传输, e z - u s b f x 2 提供了一个特殊的自 增加 ( a u t o - i n c r e m e n t i n g ) 数据指针a u t o p t r h / l o 8 0 5 1 把 1 6 位r a m地址装入到a u t o p t r h / l寄存器中, 然后把r a m当一个f i f o来进 行寻址。 下面给出了e z - u s b f x 2 传输图像数据的8 0 5 1 寄存器初始化代码,为了 提 高代码的可读性及可维护性,加快数据传输的速率,我们采用c语言来编写: r e v c t l“0 x 0 3 ; / / mu s t s e t r e v c t l .o a n d r e v c t l . 1 t o 1 s y n c d e l a y ; / / c p uc s=o x o a; / / c k c o n=0 x 0 0 ; f i f o r e s e t= o x 8 o ; / / r e s e t a l l f i f o s s y n c d e l a y ; f i f o r e s e t=0 x 0 2 ; s y n c d e l a y ; f i f o r e s e t=0 x 0 4 ; s y nc d e l a y ; f i f o r e s e t = 0 x 0 6 ; s y n c d e l a y ; f i f o r e s e t=0 x 0 8 ; s y n c d e l a y ; f i f or e s e t = 0 x 0 0 ; s y n c d e l a y ; / t h i s d e f i n e s t h e e x t e rn a l i n t e r f a c e t o b e t h e f o l l o w i n g : i f c o n f i g =o x c b ; / u s e i f c l k p i n d r i v e n b y e x t e r n a l l o g i c ( 5 mh z t o 4 8 mh z ) / / c b / u s e s l a v e f i f o i n t e r f a c e p i n s d r i v e n s y n c b y e x t e r n a l m a s t e r e p 8 f i f o c f g=o x 0 c ; /t h i s l e t s t h e f x 2 a u t o c o m mi t i n p a c k e t s , g i v e s t h e / / a b i l i t y t o s e n d z e r o l e n g t h p a c k e t s , /a n d s e t s t h e s l a v e f i f o d a t a i n t e r f a c e t o 8 - b i t s e p 8 c f g=o x e o ; / / s e t s e p 8 v a l i d f o r i n s 基于u s b 2 . 0 的视频处理系统软硬件设计与实现 / a n d d e fi n e s t h e e n d p o i n t f o r 5 1 2 b y t e p a c k e t s , 2 x b u ff e r e d p i n f l a g s a b=0 x 0 0 ; /d e f i n e s f l a g a a s p r o g - l e v e l fl a g , p o i n t e d t o b y f i f o a d r 1 : 0 s y n c d e l a y , /f l a g b a s f u l l fl a g , as p o i n t e d t o b y f i f o a d r 1 : 0 p i n f l a g s c d=0 x 0 0 ; /f l a g c a s e mp t y fl a g , a s p o i n t e d t o b y f i f o a d r 1 : 0 /w o n t g e n e r a l l y n e e d f l a g d p o r t a c f g二 0 x 0 0 ; /u s e d p a 7 / f l a g d a s a p o rt p i n , n o t a s a f i f o fl a g f i f o p i n p o l a r=0 x 0 0 ; /s e t a l l s l a v e f i f o i n t e r f a c e p i n s a s a c t i v e l o w s y n c de l a y ; e p 8 a u t o i n l e n h= 0 x 0 2 ; / / y o u c a n d e f i n e t h e s e as y o u w i s h , s y n c d e l a y ; / / t o h a v e t h e f x 2 a u t o m a t i c a l l y l i m i t i n s e p 8 a u t o i n l e n l = 0 00 ; s y n c d e l a y ; e p 8 f i f o p f h= 0 x 8 2 ; / / y o u c a n d e f i n e t h e p r o g r a m m a b l e fl a g ( f l a g a ) s y n c d e l a y ; / / t o b e a c t i v e a t t h e l e v e l y o u w i s h e p 8 f i f o p f l = 0 00 ; s y n c d e l a y ; /o u t e n d p o i n t s d o n o t p o r ( p o w e r - o n r e s e t ) a r me d / / e p 2 b c l = 0 x 8 0 ; / / s i n c e t h e d e f a u l t s a r e d o u b l e b u ff e r e d w e mu s t / / s y n c d e l a y ; /w r i t e d u m m y b y t e c o u n t s t w i c e / / e p 2 b c l=0 x 8 0 ; / / a r m e p 2 0 u t / / e p 4 b c l = 0 x 8 0 ; / / s y nc d e l a y ; / / e p 4 b c l二0 x 8 0 ; a u t o p t r s e t u p=0 x 0 1 ; r w u e n = t r u e ;/ / e n a b l e r e m o t e - w a k e u p 2 .3 u s b 2 . 0 设备w d m 驱动程序的设计 微软不断推出新的操作系统,在 w i n d o w s 9 8 和w i n d o w s 2 0 0 0中设备驱动程 序将根据 wi n d o w s 驱动程序模型 ( wd m)来设计。wd m通过提供一种灵活的 方式来简化驱动程序的开发,在实现对新硬件支持的基础上减少并降低所必须开 发的驱动程序的数量和复杂性。 wi n d o w s 驱动程序模型分两个方面,除了 核心模型描述设备驱动程序的标准 基十u s b 2 . 0 的视频处理系统软硬件设计与实现 2 . 3 . 2 w d m 驱动程序基本结构框架 wd m型驱动程序是内核态程序, 与标准的wi n 3 2 用户态程序有很大的区别, 它是通过对各个回调例程的组合而形成的,每个回调例程都有确定的函数原形。 梅当wi n d o w s 系统发现满足某个回调例程的调用条件时, 就会自 动地对相应的回 调例程进行调用,调用结束后,又返回win d o w s 系统。 w d m型驱动程序采用了分层处理的方法( 如图2 . 8 ) , 通过它, 用户不需要直 接和硬件打交道 ( 在u s b驱动程序中尤为明显) ,而只需通过下层驱动程序提供 的接口来访问硬件 图2 . 8 w d m 中设备对象和驱动程序的层次结构 图2 . 1 1 中右边是一 个设备对象堆栈。 设备对象是系统为帮助软件管理硬件而 创建的数据结构。一个物理硬件可以有多个这样的数据结构。wd m 还引入了功 能设备对象f d o ( f u n c t i o n a l d e v i c e o b j e c t ) 与物理设备对象p d o ( p h y s i c a l d e v i c e o b j e c t ) 两 个新类来 描述硬 件, 一 个p d o 对应一 个真实 硬件。 一个硬件只允许有 一个p d o , 却可以 拥有多个f d o , 在驱动程序中直接操作的不是硬件而是相应的 p d o与f d o , f d o和p d o处于堆栈的最底层。在f d o的上面和下面还会有一 些过滤器设备对象( f i l t e r d e v i c e o b j e c t ) 。 位于f d o上面的 过滤器设备对象称为上 层过滤器驱动程序, 通常也叫做最高 层驱动程序, 位于f d o下面( 但仍在p d o之 上) 的过滤器设备对象称为下层过滤器驱动程序, 通常也叫做最低层驱动程序。 在 用户态和内核态通讯方面,系统为每一个用户请求打包形成一个i k p结构,将其 第_章 u s b 2 . 0 视频处理系统相关软件设计 发 送至驱动程序, 并通过识别i r p 中的p d o来区别是发送给哪一个设备的。 为了适应这种机制,wd m 型驱动程序采用了驱动程序栈的方法,用户态程 序的请求进入内核态时生成了一个i r p( 输入/ 输出请求包)结构, 每个i r p包对 于驱动程序栈中的每层驱动程序都提供了一个1 0 - s t a c k

温馨提示

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

评论

0/150

提交评论