




已阅读5页,还剩84页未读, 继续免费阅读
(机械电子工程专业论文)windows下带usb接口设备的软件开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着u s b ( 通用串行总线) 的问世和发展成熟,传输速度的不断提高,已经有越 来越多的人们关注其发展。基于u s b 总线的数据采集设备以其诸多不同于传统总 线设备的优越性如:热插拔特性,被广泛的应用到生活、工业、制造业、航空航 天等各个领域。 n i 公司提出“软件就是仪器”,那么关注基于u s b 总线的数据采集设备,就需 要关注其核心部分一软件系统。一个u s b 设备的软件系统包括p c 端软件部分( 设 备驱动程序、客户应用程序) 和固件程序 本文针对w i n d o w s 系统下u s b 设备的软件开发给出了具体的开发实例,开发 对象为m i c r o c h i p 公司的以p i c i s f 4 5 5 0 芯片为核心的u s b 数据采集器。文章首先 对开发u s b 设备必须要掌握的基本知识如u s b 通信协议、虚拟仪器开发环境等做 了叙述,接着给出了u s b 设备驱动开发的方法和具体的实现过程,并且说明了应 用程序与驱动程序之间的通信,完成了驱动程序的开发,其中重点针对l a b w 砌o w 她下没有提供u s b 总线设备的标准函数库的问题说明了在l a b w m d o w s c v l 中创建动态链接库的意义,并将驱动程序中的主要接口函数在l a b w i n d o w s c v i 中创建成动态链接库( d l l ) 文件以便应用程序开发时调用。然后在 l a b w i n d o w s c v i 开发环境中开发出了数据采集器的应用程序用户界面,同时说明 了在其开发环境下如何使用生成的动态链接库( d l l ) 文件中的函数以及应用程序 开发时完成对硬件的具体操作。最后完成了u s b 数据采集设备的p c 端软件开发, 实现了对硬件的简单操作,验证了在l a bw i n d o w s c v i 中开发u s b 设备驱动程序 的正确性。 关键词:u s bl a bw i n d o w s c v i动态链接库( d l l )驱动程序 a b s t r a c t m o r ea n dm o r ep e o p l ea r ec o n c e r n e dw i t ht h ed e v e l o p m e n to fu s b ( u n i v e r s a l s e r i e sb u s ) ,f u ri t si n c r e a s i n gs p e e d m a n yd a t aa c q u i s i t i v ed e v i c e sb a s e do nu s ba 聘 w i d e l yu s e di nt h ef i e l d so fl i f e i n d u s t r y , a v i a t i o n , m i l i t a r ya n ds oo n , o w i n gt ot h e i r m e r i t ss u c ha sp l u gi na n dp l u go u t n i ( n a t i o n a li n s t r u m e n t ) c o m p a n yc l a i m st h a t “s o r w a l ei si n s t r u m e n t s a sa r e s u l t ,i fw ep a ya t t e n t i o nt oad a t aa c q u i s i t i v ed e v i c eb a s e do nu s b ,w ec o u l dc a r e a b o u tt h es o f t w a r es y s t e mo ft h ed a t aa c q u i s i t i v ed e v i c e ,b e c a u s et h es o f t w a r es y s t e mi s t h em o s ti m p o r t a n tp a r to ft h ed e v e l o p m e n to ft h ed e v i c e as o f t w a r es y s t e mm a i n l y i n c l u d e st w op a r t s o n ei st h es y s t e mo np c t h eo t h e ri st h ef i r m w a r e 1 1 把s o t t w a r e s y s t e mo np ca l s oh a sau s b d e v i c ed r i v e ra n da l la p p l i c a t i o n n 玲t h e s i sp r e s e n t sad e v e l o p i n ge x a m p l eo fau s bd e v i c ea i m i n ga tt h es o f t w a r e d e v e l o p m e n ta b o u tt h eu s b d a t aa c q u i s i t i v ed e v i c ew h i c hi sg i v e nb ym i c r o c h i po n w i n d o w s n 嵋t h e s i sf i r s ti n t r o d u c e sm u c hk n o w l e d g ea b o u tu s bc o m m u n i c a t i o n p r o t o c o la n dt h ev i r t u a li n s t r u m e n td e v e l o p i n ge n v i r o n m e n t t h e ni ts h o w sh o wt o d e v e l o pa d r i v e rt ot h eu s bd a t aa c q u i s i t i v ed e v i c ea n df i n i s h e st h ed r i v e rd e v e l o p m e n t s u b s e q u e n t l y , a n da l s o i t e x p l a i n sh o wt oc o m m u n i c a t eb e t w e e nad r i v e ra n da l l a p p l i c a t i o n t h e t h e s i s e m p h a s i z e s t h e m e a n i n g o fc r e a t i n gad l lo n l a b w i n d 们s ,c v it a c l d i n gt h ep r o b l e mt h a tl a bw m d o w s c v ld o e sn o ts u p p o r tt h e s t a n d a r df u n c t i o nb a s ea b o u tu s bd e v i c e sf u ru s e r o nl a bw 铀d o w 们s o m eu s e f u l f u n e t i o u si nt h ed r i v e rp r o g r a m m i n ga l ec r e a t e dt oad l l ( d y n a m i cl i n kl i b r a r y ) f u r t h ea p p l i c a t i o nd e v e l o p m e n tu s i n g b yu s i n gt h ed l l ,w ec o m p l e t et h eu s e r sw i n d o w o ft h eu s bd a t aa c q u i s i t i v ed e v i c e ,m e a n t i m e ,e x p l a i n i n gh o wt ou s et h ed l lo ft h e d i v e ri nt h e d e v e l o p i n ge n v i r o n m e n t f i n a l l y , t h i st h e s i s f i n i s h e st h es o f t w a r e d e v e l o p m e n to ft h eu s bd a t aa c q u i s i t i v ed e v i c eo np ca n dr e a l i z e ss o m es i m p l e i m p l e m e n t so ft h eh a r d w a r e i tp r o v e st h a tt h ed e v e l o p m e n to fu s bd e v i c ed r i v e ro n l a bw i n d o w s d c v li sc o r r e c t k e y w o r d s :u s b ( u n i v e r s a ls e r i e sb u s ) l a bw i n d o w s c v i d l l ( d y n a m i c l i n kl i b r a r y ) d r i v e r 西安电子科技大学 学位论文独创性( 或创新性) 声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名:自堕 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。 ( 保密的论文在解密后遵守此规定) 本学位论文属于保密,在年解密后适用本授权书。 本人签名: 导师签名: 日期勿呈厶狴 日期2 = ! ! p 第一章绪论 第一章绪论 1 1 课题的研究背景 数据采集( d a t a a c q u i s i t i o n ,d a q ) 从最纯粹的意义上来说,是个以自动化形 式收集信息的过程,包括模拟量和数字量,并能以某种有效的方式充分表现信息。 数据采集越来越广泛的应用于工业控制、仪器仪表、航空航天等工业发展的各个 领域,数据采集卡的发展包括以下的几个阶段: ( 1 ) i s a 总线阶段:对于工业控制与采集系统来说,i s a 总线是一个非常经济实用 的实现方案,但是由于它存在着接口速度较慢,需要用户手动配置系统资源,不 能实现板卡的即插即用等不足,已经逐渐被淘汰了。 ( 2 ) p c i 总线阶段:i s a 总线的继任者p c i 总线早在上世纪9 0 年代就已经出现。p c i 总线是i n t e l 公司开发的一套局部总线系统,它支持3 2 位或6 4 位总线宽度,频率 通常是3 3 m h z 。p c i 2 0 总线速度是6 6 m h z 。p c i 总线还支持即插即用,系统会自 动为p c i 板卡分配中断和基地址,无需用户费心。它代表了一种更先进的总线技 术,也是目前主流的总线形式。 ( 3 ) c o m p a c tp c i 总线阶段:随着工业的发展,人们对系统可靠性的要求越来越高, c o m p a c tp c i 总线应运而生,它是由p i c m g 制定的一种开放式技术规范,融合p c i 总线的电气规范、标准针孔连接器和欧式卡规范,将p c i 标准特性与坚固的机械 外型完美地结合在一起,既具有常规i p c 中p c i 总线的高性能,又具有欧卡式结 构的高可靠性,适合于对可靠性要求较高的场合。 ( 4 ) p c 一1 0 4 总线阶段:随着嵌入式系统得发展,用户对嵌入式总线数据采集板卡的 需求也越来越多。p c 1 0 4 总线是目前最常用的一种嵌入式总线规范。 ( 5 ) u s b 总线阶段:虽然以上四种总线都各有应用范围,但是他们都需要使用的时 候关闭计算机插入板卡再重新开机,面u s b 数据采集卡的出现打破了这种局面。 随着2 0 世纪9 0 年代末u s b 出现以来,它简化了键盘及鼠标等计算机外部设备的 连接与安装,由于它的热插拔特性,u s b 数据采集设备得到了广泛的应用,很多 的国内外公司都纷纷推出了自己的u s b 数据采集设备。p c i 等内部总线要求用户 关机并重启计算机后才能安装硬件,而具有热插拔特性的u s b 连接功能为需要频 繁断开、然后重新连接硬件的便携性的用户带来了极大的益处。而且花费在安装 上的时间被缩短了很多,节省了成本,提高了效率。 由此可见,基于u s b 总线的数据采集卡的研究是目前最受人们关注的。我们 提出u s b 设备的开发正顺应了这种潮流。 虚拟仪器技术则是综合运用了计算机技术,数字信号处理技术,标准总线技 w i n d o w s 下带u s b 接口设备的软件开发 术和软件工程方法,代表了测量仪器与自动测试系统未来的发展方向。虚拟仪器 是一个开放式的结构,它以通用计算机为核心,通过配置f o 接c i 设备( 如数据采 集卡d a q ,g p i b 总线仪器、v x i 总线仪器模块、串口总线仪器等) 实现信号的获 取与控制,可以用数字信号处理器d s p 实现信号的处理,加上实现不同测量功能 的软件对采集获得的信号数据进行分析处理及显示,从而实现仪器的功能。 虚拟仪器技术是测控技术领域出现的一项突破性进展,是当今计算机辅助测 试( c a d 的一项重要技术。虚拟技术的开发和应用的活跃源于1 9 8 6 年美国n i 公司 设计的l a bv i e w ,n i 公司无论是在软件开发平台还是在虚拟仪器产品上都处于 领先水平。在软件体系结构的各个层次上,形成了完整的设备驱动程序、系统开 发平台、使用支持软件、应用软件相互支撑的格局。 虚拟仪器的核心是功能强大的软件系统。n i 公司的软件工具一般由测量驱动 程序和仪器驱动软件、应用开发环境( 如l a bv l e w ,l a bw i n d o w s c v i 和 m e a s u r e m e n ts t u d i o ) 以及高阶测试与数据管理工具三部分组成。使用者利用这种集 成式的软件构造,就可以自由地定义和生成功能强大的测量与控制系统。通过降 低多种测量设备集成在一起使用的复杂性,集成式软件架构减少了建立一个高级 测量系统所需要花费的时间和投资。 未来的几年内,我国将会有大部分的仪器为虚拟仪器,大批的企业用虚拟仪 器系统对生产设备的运行状况进行实时监测。虚拟仪器技术是现代电子测量仪器 发展的主潮流,必将在更多、更广的领域得到应用、普及。 1 2 课题提出的意义 u s b 总线以其传输速度快( 尤其是u s b 2 0 的出现) 、可靠性高、使用灵活、移 植性好、价格低廉等优势成为了人们关注的焦点。由于u s b 总线的种种优越性, 国内外的公司纷纷推出了各种带u s b 接口的各种计算机於设和数据采集设备,这 些设备越来越广泛的应用于航空、航天、工业控制等相关领域。美国n i 公司则处 于数据采集方面领先地位,n i 公司的数据采集设备遍布全球,它们的虚拟仪器应 用开发环境如l a bv i e w 、l a bw i n d o w s c v l 等都被广泛的应用于数据采集系统客 户应用程序的开发。l a bw m d o w s c v i 采用标准c 语言来开发应用程序,它支持 动态链接库的创建以及其它与其兼容的开发环境中动态链接库的调用,用它开发 出的用户程序功能模块具有很好的移植性,正因为这种使用的灵活性和很好的移 植性,才使得用户在为其硬件设备的开发上不用再花费大量的精神和重复性的劳 动,用户只需要将开发好的用户功能模块创建成d l l 文件,以后的开发中调用这 种d l l 文件,就可以很方便的开发出适合自己的应用程序。所以研究数据采集设 备软件系统的关键就是要掌握l a bw i n d o w s c v i 或l a bv i e w 开发环境以及其环 第一章绪论3 境中d l l 文件的生成过程和调用方法。 为了尝试开发出适合自己项目要求的、既节省时间、工作量又少的带u s b 接 口的数据采集设备软件,我们提出了w i n d o w s 下带u s b 接口设备的软件开发 的论文题目。这个题目的提出,有三个主要目的: 第一个目的是要说明在l a bw i n d o w s c v l 下开发u s b 数据采集设备软件系统 时创建静态库和动态链接库( d l l ) 的重要性。l a bw i n d o w s c v l 中虽然提供了很多 种总线设备的标准函数库( 这种标准函数库一般是用动态链接库来表示的) ,可是遗 憾的是并没有提供u s b 总线设备的标准函数库,而且c v i 中也只是提供了关于 n i 公司数据采集设备的驱动程序,其它公司的数据采集设备开发时会受到限制, 如果是其它公司的设备就必须要自己开发设备驱动程序。作为一般的用户,使用 数据采集设备都希望设备能很好的完成自己所制定的某些特殊要求,而且有些时 候所需的要求并不是购买某一种数据采集设备能够解决的,这就需要用户可以利 用现有的资源自己来开发,这些开发可以包括设备的驱动程序开发和应用程序开 发,如果是u s b 设备,则还需要固件部分的设计。用户如果需要在现有的设备上 添加硬件资源,那么就需要更改以前的设备驱动程序使得p c 机( 主机) 可以识别新 的硬件,接着相应的固件程序和应用程序都需要根据要求和需要来修改。或者用 户可以根据自身的需要自己来开发所需的数据采集产品。不管以某种形式来开发, 这都需要修改或重新编写设备的新的软件系统。鉴于以上的原因,为了使这种开 发变得简单省力,那么开发过程中使用动态链接库( d l l ) 就很重要了,把u s b 驱 动程序中重要的功能函数封装起来,跟a p i 函数起组成功能模块,在t a b w i n d o w s c v l 中将这些模块创建成驱动函数动态链接库,这种u s b 动态链接库可 以被当作是标准库来被其它程序所调用,开发人员不用再去编写复杂的程序,只 需要根据自己的需求在调用d l l 时做适当的修改即可。文章中动态链接库的创建 和调用的例子可以说明这点。 第二个目的是想让大家重视在l a bw i n d o w s c v i 下开发设备驱动的重要性和 其研究的价值,并且给出了u s b 数据采集卡的驱动程序开发的实例,对驱动程序 和应用程序之间的通信做了详细的说明。 第三个目的是想说明数据采集设备的应用程序开发可以考虑使用n i 公司推出 的虚拟仪器开发环境l a bw i n d o w s c v i ,利用它可以开发出功能强大且方便使用 的应用程序用户界面 1 3 课题研究的现状 u s b ( i t 噩用串行总线) 从1 9 9 5 年的问世到1 9 9 9 年u s b 2 0 规范的发布,使得u s b 的传输速度提高了几十倍,随着u s b 总线技术的逐渐发展成熟,现在u s b 的使用 w i n d o w s 下带u s b 接口设备的软件开发 越来越广泛,市场上用于电脑外设的u s b 设备种类层出不穷,不光h i d 类的发展 迅速,用户自己开发的u s b 接口设备也逐渐多了起来。嵌入式u s b 主机也成为了 人们关注的对象。同时,开发u s b 设备驱动的工具也在不断的升级和更新。 m i c r o e h i p 公司也在不断的更新其带u s b 接口的单片机,促进了这种嵌入式单片机 在数据采集领域的应用。一 p c i 总线、i s a 总线等以前一直以来占据着数据采集系统的主导地位,但是由 于它们的使用没有u s b 总线灵活,外场工作时携带不方便,在突发条件下不能进 行热插拔,这些都或多或少的限制了他们的应用性。u s b 总线的即插即用特性以 及其它有优点使得u s b 数据采集设备被越来越多的设备厂商看中而致力来发展 它。最著名的要数美国的n i 公司,它率先提出“软件就是仪器”的口号,它推出的 l a b w i n d o w s c v l 或l a b v i e w 开发环境被广泛的应用于数据采集应用开发的各个 领域,而且它每年都在推出各种系列的数据采集设备,有基于p c i 总线、p x i 总线、 v x i 总线、u s b 总线的产品,同时它还很重视设各的软件开发,在不断的对设备 的软件系统进行更新和升级。国外还有其它公司如:德国m e i l h a u s 公司、德国 s p e c t r u m 公司、美国吉时利( k e i t h l e y ) 公司、美国i o t e c h 公司、美国m c c 公司 等。台湾的研华公司、凌华等公司都致力于数据采集卡的开发和研究。国内知名 公司如:北京阿尔泰公司,它专注于研制生产基于p c 机的数据采集产品,在国内 率先研发了u s b 总线的系列产品,公司从数据采集板卡拓展为嵌入式系列主板及 嵌入式系统、信号调理模块、分布式采集系列产品等。 而u s b 设备驱动的开发,则是以w d m 模型为主,目前最常采用的开发工具 有d d k 、d r i v e rs t u d i o 、w i n d r i v e r 。d d k 和d r i v e rs t u d i o 它们要求开发人员要熟 悉w d m 模型,需要有经验或是专业的驱动开发人员使用,而w i n d r i v c r 开发工 具则不需要开发人员熟悉w d m 模型,开发驱动简单省时,有较好的移植性。当 然还可以在l a bw i n d o w s c v i 下根据u s b 设备的驱动结构利用操作系统提供的 w i n d o w sa p i 函数来自己编写驱动程序。本文中的驱动程序开发就是在l a b w i n d o 、v s c v i 下完成的。 数据采集技术的发展趋势:i s a 总线板卡将被取代;其次,数据采集卡越来越 多的被应用到野外、深海等环境恶劣的场合,这些场合往往不能提供稳定的外接 电源,只能靠电池供电,这就对系统的功耗提出了严格的要求,低功耗数据采集 设备的需求在不断的提高;再者,分布式的数据采集系统也将成为发展的新趋势。 随着现代科技及工业的发展,数据采集系统的发展趋势是地域分散化、数据海量 化、采集环境复杂化,并且由于网络技术的迅速发展,仅在本地采集处理数据已 经不能满足现实应用的需要,因此我们可以把计算机技术、传感器技术、网络技 术、数据库技术等有机结合起来,组成网络化、分布式的数据采集系统。 尽管以上所说的l a b w i n d o w s c v i 和u s b 总线具有很多不可比拟的优点,然 第一章绪论 而遗憾的是他们之间却没有很好的结合,l a bw i n d o w s c v l 虽然功能强大,它提供 给开发者很多种总线设备的标准函数库供用户开发时使用,但是却没有提供基于 u s b 总线的标准函数库,使用基于u s b 总线设备的用户必须得自己开发设备驱动 以及应用程序,这个过程往往很复杂也很费时间。针对这一问题,我们提出了在 l a bw i n d o w s c v i 中实现u s b 设备驱动的开发,同时在其环境中将驱动中的接口 函数创建成动态链接库来方便用户开发时使用,使其能完成与其它总线标准函数 库相同的功能。这种做法可以节省在l a bw i n d o w s c v l 中开发u s b 数据采集设备 的时间和工作量,为以后的开发工作提供了便利。 1 4 1 本论文的架构 l 。4 课题研究的内容 论文主要分为六大部分,分别为: ( 1 ) 绪论部分:主要介绍了课题研究的背景、数据采集系统的发展和国内外的概况, 最后对论文主要研究的内容和解决的问题作了说明 ( 2 ) u s b 协议的介绍:这章是作为下面几章内容的知识铺垫,它主要对u s b 协议 的各部分内容作了大概的介绍,如:u s b 总线的系统结构,u s b 设备,u s b 的通信流和传输类型,u s b 事务处理等。 ( 3 ) 虚拟仪器及l a bw i n d o w s c v l 简介部分:这章内容也是作为知识储备来说明 的,其中介绍了虚拟仪器的发展,然后主要叙述了l a bw m d o w s c v l 的情况, 还包括了l a bw m d o w g c v i 中静态库和动态链接库技术 ( 4 ) 驱动程序的设计部分:这章是本文的重点部分,本章首先说明了为什么要在 l a bw i n d o w s ,c v l 中开发u s b 数据采集设备驱动程序,接着描述了驱动开发对 象u s b 数据采集器,给出了开发硬件驱动程序的方法和具体的实现过程,用 操作系统提供的有关w i n d o w sa p i 函数来完成了驱动程序与应用程序的通信 并实现了对驱动程序以及设备的打开、关闭、读写等功能。并且在l a b w i n d o w s c v i 下将该驱动程序中的重要接口函数和常用的通信函数创建成驱 动函数动态链接库文件( d l l 文件) ,方便了应用程序用户界面开发时的调用, 同时也为其他应用程序的开发提供了便利。 ( 5 ) 应用程序用户界面的实现部分:应用程序的开发同样作为本文的重点内容,它 重点介绍了在虚拟仪器开发环境一l a bw i n d o w s c v i 下我们应用程序的开发及 实现过程,说明了应用程序读取硬件时的数据传输过程。开发的应用程序可以 完成l e d 指示灯的开、关的状态转换,电位器电阻值的读取和显示以及设备 的链接和版本号的读取等功能。最后,还重点说明了l a b w i n d o w s c v l 下动态 链接库的创建过程和它是如何调用其驱动程序接口函数的动态链接库文件的。 w i n d o w s 下带u s b 接口设备的软件开发 验证了在l a bw i n d o w s c v l 中实现u s b 设备驱动的正确性和可行性。 ( 6 ) 论文的总结和展望部分:本章对全文的工作内容作了简要的总结,指出了继续 工作的设想。最后给出了本文以后研究的方向和参考意见。 1 4 2 论文研究的主要内容 本文主要研究基于u s b 总线的数据采集卡的软件系统开发,一般包括p c 端 的软件开发和u s b 固件的开发。但是由于工作时间的限制,本论文只完成p c 端 软件的开发,u s b 固件系统的开发工作以后可以继续。 p c 端的软件开发部分主要包括硬件驱动程序的设计和客户应用程序的开发。 由于l a bw i n d o w s c v l 并没有提供u s b 设备标准函数库,用户不能方便的利用其 资源来开发u s b 数据采集设备。为了解决这一现状我们决定将u s b 数据采集设备 驱动程序的实现和应用在l a bw i n d o w s c v i 下完成,并且还利用了w i n d o w sa p i 函数来实现硬件驱动程序的通信;客户端的应用程序用户界面的开发也同样使用 虚拟仪器开发工具l a bw m d o w s c v l ,由于虚拟仪器开发环境l a bv i e w 对用户 封装的太多,使得其使用起来很受限制,所以我们采用了对用户封装少、透明度 高的l a bw i n d o w g c v i 。l a bw i n d o w s c v i 可以开发出功能强大且方便友好的用 户界面,最重要的是l a bw i n d o w s ,c v i 环境可以调用其它兼容的编译器下生成的 动态链接库文件使开发工程变得方便简单。 再者重点研究了l a bw i n d o w s c v l 下刨建函数库的技术,包括:动态链接库 的创建和静态库的创建,以及库函数的调用方法。本文利用动态链接库技术在l a b w m d o w s c v i 下生成了驱动程序接口函数的d l l 文件,使得应用程序能顺利调用 d l l 文件,实现了应用程序的各项功能,通过应用程序的成功开发和成功调用动 态链接库函数,验证了l a bw i n d o w s c v i 下驱动程序开发的正确性。本文最终完 成了设备驱动程序和应用程序的开发,为以后的研究工作和后期开发做好了准备。 1 5 本章小结 本文简要的介绍了数据采集技术和虚拟仪器技术的发展,并给出了研究数据 采集的国内外概况,说明了论文题目提出的重要意义和在l a bw i n d o w s c v i 中实 现设备驱动以及研究动态链接库技术是很重要的,很具有研究价值的。最后给出 了本文章节的架构和主要研究和完成的内容。 第二章u s b 协议简介 第二章u s b 协议简介 2 1 u s b 简介 u s b 总线是一种新型的总线,随着协议版本的升高、u s b 总线不断完善,发展 非常迅速。尤其是m i c r o s o f t 的w i n d o w s 操作系统增强了对u s b 的支持后,它开始广 泛的应用于i t 产品中。作为一种新型的总线,u s b 具有其他总线接口所不具有的特 点,其特点如下: ( 1 ) 终端用户的易用性:a 电气特性与用户无关;b 自检外设;c 夕 设可以动态连接、 动态重置。 ( 2 ) 广泛的通用性:乱适应不同设备,传输速率从几k b ,s 到几百m b s ;b 在同一总线 上支持同步、异步两种传输模式;c 支持对多个设备的同时操作;d 可同时操作1 2 7 个物理设备;e 在主机和设备之间可以传输多个数据和信息流;支持多功能的设 备;h 利用底层协议,提高了总线利用率。 ( 3 ) 同步传输带宽:a 确定的带宽和低延迟适合电话系统和音频的应用;b 同步传输 操作可以利用整个总线带宽。 ( 4 ) 灵活性:a 直接发送一系列指定大小的数据包,允许对设备缓冲器的大小进行选 择;b 通过指定数据缓冲区大小和执行时间,支持各种数据传输率;c 通过协议流 和数据流进行缓冲处理。 ( 5 ) 健壮性:丸在协议中使用差错处理差错恢复机制b 完全热插拔;c 可以对有缺 陷的设备进行鉴别。 ( 6 ) 与p c 产业的一致性:a 协议的易实现性和完整性;b 与p c 机的即插即用体系 结构一致;c 与现存操作系统有良好衔接的接口。 ( 7 ) 高性价比 - a 以低廉的价格提供传输速率为1 5 m b s 的子通道;b 将外设和主机 硬件进行了最优化的集成;c 促进了低价格外设的发展;d 廉价的电缆和连接头; e 运用商业技术降低成本。 ( 8 ) 可升级性:体系结构的可升级性支持在一个系统中同时存在多个u s b 主杌控 制器。 2 2u s b 系统 了解u s b 系统是开发u s b 设备软件系统的核心,以下就介绍一下该系统: u s b 系统是u s b 设备到主机的简单连接,可分为3 个逻辑层:功能层、u s b 设备 层和u s b 总线接口层,且每一层都由主机和u s b 设备的不同功能模块组成。 u s b 系统组成包括3 大部分:0 ) u s a 主机:负责检测设备的插拔,控制与设 备之间的数据传输等;( 2 ) u s bh u b :通过h u b 可以连接多个外设,主机上的h u b w i n d o w s 下带u s b 接口设备的软件开发 称为根h u b ;( 3 ) u s b 设备:指连接到主机上的外设,接受主机发送的信息。下图 说明了这3 大部分的逻辑关系( 包括硬软件) ,主机是核心,每次u s b 数据通信都 必须是由主机发起的( 远程模式除外) 。 完整的u s b 系统组成如图2 1 所示:硬件包括:u s b 主控器维集线器、u s b 集线器、u s b 设备。u s b 通用软件包括:u s b 设备驱动程序、u s b 驱动程序( u s b d ) 、 u s b 控制器驱动程序。 p c 主机系统u s b 设备 o s b 功能层 1 r s b 设备层 u s b 接口层 图2 1 完整的u s b 系统组成( 软件和硬件元素) u s b 系统中的主机被分为3 个功能不同的功能模块:客户软件、u s b 系统软 件和u s b 总线接口,以下分别介绍这三个模块。 ( 1 ) 客户软件 该软件负责和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 的主控制 器硬件,同时初始化缓冲区,用于存储所有的u s b 通信中的数据。h i d 和m a s s s t o r a g e 类设备,操作系统对其直接提供了设备驱动程序,而一般的u s b 设备还得 用户自己开发设备驱动程序。界面应用程序负责和u s b 设备驱动程序进行接口, 来操纵u s b 设备,并向用户提供可视化的操作,它是最上层的软件,只能看到向 u s b 设备发送的原始数据和从u s b 设备接收的最终数据。 f 2 ) u s b 系统软件 该软件负责和u s b 逻辑设备进行配置通信,并管理客户软件启动的数据传输。 它包括:u s b 总线驱动程序、u s b 主控制器驱动程序和非u s b 主机软件三部分。 这些部分的开发人员不必掌握,操作系统会提供的。 ( 3 ) u s b 总线接口 第二章u s b 协议简介 9 该接口包括:主控制器和根集线器两部分。根集线器为系统提供连接起点, 主控制器负责完成主机和u s b 设备之间数据的实际传输。该模块与u s b 系统软件 的接口依赖于主控制器的硬件实现,开发人员也不必掌握。 p c 机上的u s b 主机与外围的u s b 设备之间的数据交换( 读和写操作) 读操作 过程:u s b 主控制器接收到p c 软件和驱动程序发来的读事务请求,并将此请求发 送到根h u b ,然后根h u b 在确定了目标设备存在并连接正常的情况下,通过u s b 的数据管道发送读事务请求给u s b 设备。目标设备在准确接收到请求命令后,准 备好主机要求的数据,并发送给根h u b 。最后,u s b 主控制器将来自设备的串行 数据转换成并行数据,通过p c i 总线发送到p c 系统内存缓冲区中,供驱动和软件 使用。写操作过程:整个过程与读操作过程类似,数据流向与读操作相反,由主 机发送给设备。读、写操作相同点是:整个操作都是由主机发起的。 2 3 u s b 总线的拓扑结构 2 3 1u s b 总线的物理拓扑 u s b 系统中的设备与主机的连接方式采用的是星形连接,如图2 2 所示。图中 的h u b 是一类特殊的u s b 设备,它是一组u s b 设备的连接点,称为u s b 集线器。 为了防止环状连接,采用星形连接来体现层次性,这种连接的形状很像一棵树。 还有一类特殊的集线器,那就是在主机上提供了两个u s b 接口的根集线器。 无论是集成在键盘或显示器上的集线器,还是独立的集线器,或者是集成了其他 功能模块的集线器,都带有若干个u s b 接口。其中一个用于连接通往主机方向的 上行u s b 电缆,剩下的接口就可以用来连接别的u s b 功能设备或是另外的集线器, 从而构成一个星型拓扑结构。 用于提供具体功能的设备叫功能设备。许多不同功能的设备放在一起被看作 一个整体,叫做包。例如,键盘和轨迹球可以被视作一个整体,在它的内部,提 供具体功能的设备被永久地接到h u b 上,而这个h u b 被接到u s b 设备上。所有这些 设备及这个h u b 被看作一个复合设备,而这个h u b 又被看作这个复合设备的内h u b 。 在主机看来,这个复合设备和一个带着若干设备的单独h u b 是一样的。图2 2 中也 标出了一个复合设备。 1 0w i n d o w s 下带u s b 接口设备的软件开发 图2 2u s b 总线的物理拓扑图 目前几乎所有u s b 显示器上都有两个具有4 个端口和8 个端口的集线器。这样 一来,u s b 显示器就成了所有u s b 设备的核心,机箱上也不用连接那么多很长的电 缆了。 在u s b 系统上一个u s b 设备可以插在任何一个端口上。一个设备接在一台4 端 口的集线器上时的性能,和它直接接到机箱上的根集线器时的性能不会有任何差 别。问题的关键是根据自己的系统环境进行恰当的配置,这一点也体现了u s b 总 线技术布线的灵活性。例如,拥有了u s b 键盘、游戏杆和音箱,那么就可以把他 们都与u s b 显示器上集成的集线器相连。当然,也可以将其中的某个u s b 设备直 接与机箱上的另外一个u s b 端口相连。 2 3 2u s b 总线的逻辑拓扑 在物理结构上,设备通过h u b 连到主机上。但在逻辑上,主机是直接与各个逻 辑设备通信的,就好像它们是直接被连到主机上一样。这个逻辑关系如图2 3 所示。 与之对应的物理结构就是图2 2 中的结构。h u b 也是逻辑设备,但在图2 2 中,为了 简化起见,未被画出,虽然u s b 系统中的工作都是从逻辑角度来看待的,但主机 必须对物理结构有个了解。例如,在处理h u b 被移去的情况时,当一个h u b 被移去, 通过它与主机相连的设备也应一起被移去,这是由其物理结构决定的。 图2 3u s b 总线的逻辑拓扑图 第二章u s b 协议简介 2 4u s b 设备 对于u s b 通信来说,u s b 设备和其传输方式是很重要,u s b 设备包括如:设备 端点,管道,u s b 标准请求以及u s b 描述符等等的重要知识,下面将分别介绍。 2 4 1u s b 设备端点和接口 端点是一个u s b 设备唯一可以确认的部分,它是主机和设备之间的通信流的 终点。每一个u s b 逻辑设备都包含了一个独立的进行操作的端点集合。软件只能 通过一个或多个端点与一个u s b 设备通信。在设备接入时,每一个逻辑设备都有 一个由系统分配的唯一的地址,而一个设备上的任何一个端点都有一个由设备而 定的( 设计时) 唯一的标志和端点号。利用设备的地址和端点号就可以唯一的指定 一个端点。用于一个接口的每一个端点都有自己的描述符。该描述符也包括了主 机确定每一个点对点的带宽请求所要求的信息。一个端点描述符总是作为一个配 置描述符内的一部分而返回。不能利用获取描述符( g e td e s c r i p t o r ) 请求来直接对 其访问。对于端点0 来说,它永远都不会具有一个端点描述符。 端点描述符可以决定端点和客户之间通信所需要的传输服务类型,一个端点 由以下内容来描述:( 1 ) 总线访问频率延时要求;( 2 ) 带宽要求;( 3 ) 端点号; ( 4 ) 差错控制要求;( 5 ) 端点可以接收和传递数据的最大分组;( 6 ) 端点的传输 类型;( 7 ) 对于同步传输方式而言,还要包括端点和主机之间的数据传送方向。 在对其进行配置之前,端点处于一种不确定的状态。所以只有在对其进行了配 置之后,主机才能访问某个端点。 1 端点0 要求 所有u s b 设备都要使用端点0 ,该端点用于对一个逻辑设备进行初始化和一般 的操作( 即对个逻辑设备进行配置) 。端点0 提供了对设备配置信息的访问权,通 过它还允许访问一般的u s b 状态和控制操作。端点0 支持控制传输,并且它总是在 设备一经接入和上电时就进行配置。 2 非o 端点要求 由于具体应用的需要,功能设备还具有别的端点。除了端点0 之外,低速功能 设备有两个端点可供选择。而对于全速设备来说,它的附加的端点数仅受到协议 的限制,即最多可有1 6 个输入端点和1 6 个输出端点。 一个u s b 设备接1 :3 是指设备上所有端点的集合,而一个配置则是指若干个接 口的集合。 1 2 w i n d o w s 下带u s b 接i e i 设备的软件开发 2 4 2 u s b 管道 一个u s b 管道是设备上的一个端点和主机上的软件的联合体。管道表示经过 一个存储器缓冲区和一个设备上的端点,可以和主机上的软件之间传输数据的能 力,有以下两种不同的管道通信类型: ( 1 ) 流管道:数据通过管道时不具有确定的u s b 定义的结构。 ( 2 ) 消息管道:数据通过管道时具有u s b 定义的某种结构。 u s b 并不对通过一个管道传递的数据进行翻译,即使是消息管道要求根据 u s b 的规定对数据进行打包,u s b 也不会翻译这些数据的内容。 另外,管道还需要以下三个参数:( 1 ) 对u s b 总线访问和带宽使用的声明; ( 2 ) 传输类型;( 3 ) 所对应的端点的特征,如:数据流方向和最大数据负载尺寸 等。其中数据负载指的是总线操作中,一个数据分组的数据域中所携带的分组。 流管道在传送数据时对数据分组没有结构要求。数据流从一端进入总线,并 以同样的顺序从另一端流出,而且在通信流中流管道通常不是双向的。 通过一个流管道进行数据的传输时,总是希望与一个u s b 认为是单个的客户 进行交互。u s b 系统软件不必在可能使用同一个流管道的多个客户之间提供同步 机制。流管道中的数据以顺序的方式经过管道,即先进先出方式。 流管道可以支持批量传输、同步传输和中断传输类型。 消息管道用于与流管道完全不同的方式来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨领域项目合作协议
- 工业设计产品设计理念与案例分析
- 航空航天材料工程考试试题集
- 现代管理学基础理论学习题集
- 运动训练理论与实践题
- 2025年工程成本预测试题及答案
- 2024年天然植物纤维及人造纤维编织工艺品项目投资申请报告代可行性研究报告
- 犯罪分析测试题及答案
- 跨部门协作的成功要素计划
- 多元化工作方法的探索计划
- 2025年山东省威海市威海经济技术开发区中考一模英语试题(含答案)
- GB/T 536-2017液体无水氨
- GB/T 11361-2008同步带传动梯形齿带轮
- GB 5009.121-2016食品安全国家标准食品中脱氢乙酸的测定
- 《电业安全工作规程》
- 处置室工作制度(6篇)
- 二次配线工艺标准守则
- 骨髓穿刺术评分表
- 海底捞火锅店各岗位职责
- 发证机关所在地区代码表
- Q∕GDW 10799.7-2020 国家电网有限公司电力安全工作规程 第7部分:调相机部分
评论
0/150
提交评论