(计算机应用技术专业论文)基于usb总线的高速数据采集系统设计.pdf_第1页
(计算机应用技术专业论文)基于usb总线的高速数据采集系统设计.pdf_第2页
(计算机应用技术专业论文)基于usb总线的高速数据采集系统设计.pdf_第3页
(计算机应用技术专业论文)基于usb总线的高速数据采集系统设计.pdf_第4页
(计算机应用技术专业论文)基于usb总线的高速数据采集系统设计.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

基于u s b 总线的高速数据采集系统设计中文摘要 基于u s b 总线的高速数据采集系统设计 中文摘要 通用串行总线u s b ( u n i v e r s a ls e r i a lb u s ) 是一种新型的微机总线接口规范。随 着客户对系统数据采集速度要求的不断提高,u s b 以其使用方便、易于扩展、速度快 等优点而越来越多的应用于数据采集系统中。在工控生产中,由于各类数据信号数量 庞大、种类繁多,本文设计了一种基于u s b 总线的数据采集系统,采用p h i l i p s 公司 的u s b 接口芯片p d i u s b d l 2 与单片机a t 8 9 c 5 1 进行通信,并和p c 机通信而编制出友 善的设备应用程序,能较好地解决各类数据信号的高速采集。 开发该系统的主要任务是:编程调试器、硬件评估系统、p c 方软件等,开发难 点有:为满足d 1 2 在u s b 上的最大传输速率而编写的固件程序、编写u s b 设备驱动程 序、编写p c 通信应用程序。 通过测量目标板与p c 通信后的数据,在此基础上测试了该系统数据采集的有效 性和数据传输的准确性,有效地验证了目标器的性能。p d i u s b d l 2 的固件设计成完全 的中断驱动,当c p u 处理前台任务时,u s b 的传输可在后台进行,这就确保了最佳的 传输速率和更好的软件结构,同时简化了编程和调试。p c 方程序完成对代码的编辑、 编译和对目标文件的分析。在本文中通过分析u s b 驱动结构,给出了驱动栈模型, 并且完成了u s b 驱动的开发。 关键词:u s b 总线;单片机;数据采集;固件;w i n d o w s 驱动程序模型;设备驱动 程序;客户应用程序 作者:张翼颉 指导老师:王宜怀 t h e d e s i g no fh i g hs p e e dd a t ac o l l e c t i o ns y s t e m b a s eo nu s bb u s a b s t r a c t u n i v e r s a ls e r i a lb u si san e w s p e c i f i c a t i o nf o rm i c r o c o m p u t e rb u si n t e r f a c e w i t ht h e c o n t i n u i n ga d v a n c eo ft h ec l i e n t s d e m a n df o rt h es p e e do fad a t ac o l l e c t i o ns y s t e m ,u s bi s m o r ea n dm o r ew i d e l yu s e di nd a t ac o l l e c t i o n s y s t e mf o ri t sa d v a n t a g e ss u c h a s c o n v e n i e n c e ,e x p a n d i n gp o r tw i t he a s ea n dh i g hs p e e de t c t h i sa r t i c l ep r e s e n t sap a r t i c u l a rd e s c r i p t i o no ft h ed e s i g na n dd e v e l o p m e n to fad a t a c o l l e c t i o ns y s t e mb a s e do nu s b s i n g l ec h i pp r o g r a m st h ef u e w a r et ot h eu s bi n t e r f a c e c h i p _ - p d i u s b d1 2 ;c o m m u n i c a t i o na p p e a r sb e t w e e nd1 2a n du p l o c a t i o nc o m p u t e ra n d m a n m a c h i n em u t u a li n t e r f a c ec o m e si n t ob e i n g ;l o t so fd a t af r o mt h ei n d u s t r ys p o ta r e p r i n t e d ,a n a l y z e da n dd i s p o s e do nt i m e o nt h eb a s eo fw o n d e r f u lu n d e r s t a n d i n gt ou s b p r o t o c o la n dd e v i c et r u s s , if i n i s ht h eh a r d w a r ed e s i g na n ds o f t w a r ep r o g r a m m eo ft h ed a t a c o l l e c t i o ns y s t e m a n dd r a wt h ep r i n c i p l ec h a r t t h es o f t w a r ep r o g r a m m em a i n l yi n c l u d e s :t h ef i r e w a r ec o d ei nn e e do fd12 s m a x i m u mt r a n s m i s s i o nr a t e ;u s bd e v i c ed r i v e ra n dc l i e n t a p p l i c a t i o nu n d e rt h e c i r c u s t a n c eo fw i n 2 0 0 0 o p e r a t i o ns y s t e mi nc o m p u t e r a f t e rt h i sd a t ac o l l e c t i o ns y s t e m ,w e c a nu n d e r s t a n dt h eu s bp r o t o c o lp r o f o u n d l ya n da p p l yt h ei n t e r f a c ec h i p - p d i u s b d l 2 p r o f i c i e n t l y i na l l ,t h ea d v a n t a g e so ft h i si n t e r f a c et e c h n i q u em a yh e l p st oy o u rd e s i g n a r r a n g e m e n t k e yw o r d s :u s b b u s ;d a t ac o l l e c t i o n ;m c u ;f n e w a r e :w d m :d e v i c ed r i v e p r o g r a m ;c l i e n ta p p l i c a t i o n h w r i t t e n b y :z h a n gy i j i e s u p e r v i s e db y :w a n gy i h u a i 苏州大学学位论文独创性声明及使用授权声明 学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进行研究工作所 取得的成果。除文中已经注明引用的内容外,本论文不含其他个人或集体已经发表或 撰写过的研究成果,也不含为获得苏州大学或其它教育机构的学位证书而使用过的材 料。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本人承 担本声明的法律责任。 研究生签名:i ! 垄j 勉r ! i2 日 期:趔2 生! q 且! 旦 学位论文使用授权声明 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论文合作部、中国 社科院文献信息情报中心有权保留本人所送交学位论文的复印件和电子文档,可以采 用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一 致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布( 包括刊登) 论 文的全部或部分内容。论文的公布( 包括刊登) 授权苏州大学学位办办理。 研究生签名: 导师签名:。垄:玺! ! 三日期:塑z 生! q 旦! 旦 基于i j s b 总线的高速数据采集系统设计第一章概述 1 1 课题背景 第一章概述 随着数字化的广泛应用,数据采集也越来越重要,传统的外设与主机的通信口一 般采用i s a 、p c i 、cp c i 、1 3 9 4 等标准,基于这些接口的产品,安装麻烦,价格昂贵, 并受计算机插槽数量、地址中断资源限制,且可扩展性差,u s b 的出现,很好地解决 了以上问题。u s b 作为一种新型的串口通信标准,具有较高的传输速率,可扩展性好, 采用总线供电,使用灵活。它共有4 种传输模式:控制传输、同步传输、中断传输、 批量传输,以适应不同设备的需要。 信息技术与电子技术的迅猛发展,使得计算机和外围设备也得到飞速发展和应 用。过去人们单纯追求计算机与外设之间的传输速度,现在纠错能力和操作安装的简 易性也成为人们关注的目标。u s b 通讯技术的出现,使高传输速度、强纠错能力、易 扩展性、方便的即插即用,有机的结合在一起。u s b 设备需要依据u s b 协议进行数据的 解包与打包,底层硬件设备与操作系统之间需要以驱动程序为桥梁。驱动程序以w d m 为模型,以d d k 为开发工具,以i r p 为消息传播载体,来实现与w i n d o w s 系统底层核心 机制相交互的功能。 1 2 课题的提出 尽管r s 2 3 2 是一种十分成熟且应用广泛的通讯方式,但是随着控制系统的日益复 杂,所要采集的量也会越来越多。因此寻求一种高速、安全、方便的通讯形式是十分 必要的。u s b 技术虽然出现的时间并不长,但是由于它的种种优点,被越来越多的厂 商和用户所接受,出现了u s b 打印机、摄像头等产品。尽管目前u s b 接口的应用主要集 中在电脑的周边外设,但是u s b 产品进入工控领域将是必然的趋势。采用p d i u s b d l 2 芯片并1 8 9 c 5 1 单片机设计的基于u s b 总线的数据采集系统,具有可靠性高、数据不丢失、 抗干扰性强、便于数据传输和处理等优点,可在信号测试、信号采集场合广泛使用。 所以本课题的研究是具有一定的现实意义和经济意义的。 第一章概述基于u s b 总线的高速数据采集系统设计 1 3u s b 简介 通用串行总线( u n i v e r s a ls e r i a lb u s ,简称u s b ) 是康柏、微软、i b m ,d e c 等公 司为了解传统总线的不足推出的一种新型串行总线接口规范,自1 9 9 5 年在c o m d e x 上 亮相以来至今己广泛地为各p c 厂家所支持。现在生产的p c 机几乎都配备了,u s b 接口, m i c r o s o f t 的w i n d o w s 9 8 ,n t 以及m a c o s ,l i n u x ,f r e e b s d 等流行操作系统都增加了 对u s b 的支持。u s b 的主要特点如下: 速度快。u s b 有全速和低速两种方式,主模式为全速模式,速率为1 2 m b p s ,从 而使一些要求高速数据的外设,如:高速硬盘、摄像头等,都能统一到同一个总线框 架下。另外为了适应一些不需要很大吞吐量但是有很高实时性要求的设备,如鼠标、 键盘、游戏杆等,u s b 还提供低速方式,速率为1 5 m b p s 。如表1 - 1 所示。新推出的u s b 2 0 协议提供最高达4 8 0 m b p s 的数据传输速率可以适应各种不同类型的外设。 表1 - 1u s b 使用分类表 性能应用特性 低速键盘、鼠标、游戏棒低价格、热插拔、易用 交互设备性 1 0 2 0 k b s 中速 i s b n 、p b x 、p o t s 低价格、易用性、动态 电话、音频、压缩视频插拔、限定带宽和延迟 5 0 0 k b s 1 0 m b s 高速音频、磁盘高带宽、限定延迟、易 音频、磁盘 用性 2 5 5 0 0 m b s 支持热插拔和即插即用。所有的u s b 设备可以随时的插入和拔离系统,u s b 主机 能够动态的识别设备的状态,并自动给接入的设备分配地址和配置参数,添加、删除 设备完全不用关闭计算机,也不必像过去那样需要手动跳线和拨码开关来设置新的外 设。 易于扩展。u s b 使用的是一种易于扩展的树状结构,通过使用u s bh u b 扩展可连接 多达1 2 7 个外设。标准u s b 电缆长度为3 米( 低速为5 米) 。通过h u b 或中继器可以使外设 距离达到3 0 米。 使用灵活。u s b 共有4 种传输模式:控制传输( c o n t r 0 1 ) ,步传输( s y n c h r o n i z a t i 基于u s b 总线的高速数据采集系统设计 第一章概述 - 0 1 3 ) 、中断传输( i n t e r r u p t ) 、批量传输( b u l k ) ,适应不同设备的需要。 能够采用总线供电。普通使用串口、并口的设备都需要单独的供电系统,而u s b 设备则不需要,因为u s b 接口提供了内置电源,u s b 电源能向低压设备提供最大5 v , 5 0 0 m a 的电源,从而降低了这些设备的成本并提高了性价比。 实现成本低,u s b 对系统与p c 的集成进行了优化,适合于开发低成本的外设。i i j 本文设计的基于u s b 总线的数据采集系统正是充分地利用了u s b 总线的上述优点, 从而有效地解决了传统数据采集系统的缺陷。很方便地就能够实现低成本、高可靠性、 实时的数据采集,适用于对瞬态信号进行采集和处理。 1 4 主要工作 该数据采集系统是在单片机8 9 0 5 1 控制下进行数据采集,并通过p h i l i p s 公司的 u s b 接口芯片p d i u s b d l 2 上传给p c 机进行分析、显示和存盘。该系统用传统的u s b 总线 取代了r s 2 3 2 串行总线,通过对u s b 协议和设备构架的充分理解,对以单片机8 9 c 5 1 和 u s b 接口芯片d 1 2 为主的数据采集系统进行了硬件设计和软件编程,并在此设计的基础 上给出相应的原理图。硬件设计主要解决的是d 1 2 与单片机的接口电路的设计。软件 设计可分为三部分:一是充分了解d 1 2 的主要功能特点,为满足d 1 2 在u s b 上的最大传输 速率而编写固件程序,用c 5 1 语言编写:二是在充分了解w d m 驱动程序的基础上编写u s b 的设备驱动程序;三是编写出界面友好、具有强大的数据处理和分析能力的应用程序。 3 第二章u s b i 1 协议基于u s b 总线的高速数据采集系统设计 2 1u s b 的互连 面: 第二章u s b i i 协议 一个u s b 系统主要被定义为三个部分: 1 u s b 的互连; 2 u s b 的设备; 3 u s b 的主机。 u s b 的互连是指u s b 设备与主机之间进行连接和通信的操作,主要包括以下几方 1 总线的拓扑结构:u s b 设备与主机之间的各种连接方式; 2 内部层次关系:根据性能叠置,u s b 的任务被分配到系统的每个层次; 3 数据流模式:描述了数据在系统中通过u s b 从产生方到使用方的流动方 式; 4 u s b 的调度:u s b 提供了一个共享的连接。对可以使用的连接进行了调度 以支持同步数据传输,并且避免的优先级判别的开销。 总线拓朴结构包括四个重要的组成部分: 2 1 【3 】【4 】 1 主机和设备:u s b 系统的基础组成部分。 2 物理拓朴结构:描述u s b 系统中的各组成部分是如何连接起来的。 3 逻辑拓朴结构:描述u s b 系统中各种组成部分的地位和作用,以及描述从 主机和设备的角度观察到的u s b 系统。 4 客户软件层与应用层的关系:描述从客户软件层看到的应用层的情况, 以及从应用层看到的客户软件层的情况。 u s b 系统中的设备与主机的连接方式采用的是星形连接【5 】,如图2 - i 。 4 基于u s b 总线的高速数据采集系统设计 第二章u s b i 1 协议 ii li i 。i , ,! l 。o :, 图2 - 1u s b 物理总线的拓扑 图中的h u b 是一类特殊的u s b 设备,它是一组u s b 的连接点,主机中有一个被嵌入 的h u b p q 根h u b ( r o o th u b ) 。主机通过根h u b 提供若干个连接点。为了防止环状连接, 采用星形连接来体现层次性,如图4 - 5 。这种连接的形状很像一棵树。 用于提供具体功能的设备叫应用设备。许多不同功能的设备放在一起被看作一个 整体,叫包。例如,键盘和轨迹球可以被视作一个整体,在它的内部,提供具体功能 的设备被永久地接至u h u b 上,而这个h u b 被接至i j u s b 上。所有这些设备及这个h u b 被看作 一个复合设备,而这个h u b 又被看作这个复合设备的内部h u b 。在主机看来,这个复合 设备和一个带着若干设备的单独h u b 是一样的。图中也标出了一个复合设备。 总线逻辑拓朴结构。在物理结构上,设备通过h u b 连到主机上。但在逻辑上,主 机是直接与各个逻辑设备通信的,就好像它们是直接被连到主机上一样。这个逻辑关 系如图2 2 所示。与之对应的物理结构就是图2 1 中的结构。h u b 也是逻辑设备,但在 图2 2 中,为了简化起见,未被画出,虽然u s b 系统中的工作都是从逻辑角度来看待的, 但主机必须对物理结构有个了解。例如,在处理h u b 被移去的情况时,当一个h u b 被移 出,通过它与主机相连的设备也应一起被移去,这是由其物理结构决定的【6 】。 第二章u s b l 1 协议基于u s b 总线的高速数据采集系统设计 图2 - 2u s b 逻辑总线的拓扑 u s b 系统的物理上、逻辑上的拓朴结构反映了总线的共享性。操纵u s b 应用设备 的客户软件只关心设备上与它相关的接口,客户软件必须通过u s b 软件编程接口来操 纵应用设备。这与另一些总线女h p c l ,e l s a ,p c m u a 等不同,这些总线是直接访问内存 或i o 的。在运行中,客户软件必须独立于u s b 上的其它设备。这样,设备和客户软件 的设计者就可以只关心该设备与主机硬件的相互作用和主机软件的相互作用的细节 问题。 2 2u s b 的主机 2 2 1u s b 主机概述 图2 3 展示t u s b 通信模型之间基本的信息流与互连关系: 图2 - 3 通信模型层次关系图 由图2 - 3 可见,主机与设备都被划分成不同的层次。主机上垂直的箭头是实际 的信息流。设备上对应的接口是基于不同实现的。在主机与设备之间的所有通信最终 都是通过u s b 的电缆进行,然而,在上层的水平层之间存在逻辑的主机一设备信息流。 6 基于u s b 总线的高速数据采集系统设计第二章u s b i 1 协议 主机上的客户软件和设备功能部件之间的通信是基于实际的应用需求及设备所能提 供的能力 7 1 。 客户软件与功能部件之间的透明通信的要求,决定主机和设备下层部件的功能以 及它们的界面( i n t e r f a c e ) ,图2 4 描述了从主机角度看到的它与设备的连接。 u s b 驱动器ii 主机软件 u s b 系统硬件定义 主机控制器驱动 = 标准通道( 到缺省端口地址) i主机控制器譬辇望征_ - 。一 u s b 电缆 通道,代表相应层之间连接 图2 4 主机通信图 主机在整个u s b 系统中是唯一的,它包括如下几个层次。 1 u s b 总线接口 2 u s b 系统( u s bs y s t e m ) 3 u s b 客户( c 1i e n t ) 其中,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 系统与主机控制 器之间的界面基于主机控制器的硬件特性。u s b 系统层相对于主机控制器而言,处理 的是以客户观点见到的数据传输及客户与设备的交互。这包括附加的l s b 信息,比如 7 第二章u s b i i 协议基于u s b 总线的高速数据采集系统设计 协议头。u s b 系统还必须管理u s b 的系统资源,以使得客户的访问成为可能。 u s b 系统有三个主要组成部份: 1 主机控制器驱动 2 u s b 驱动 3 主机软件 主机控制器驱动的存在,方便地将各种不同的主机控制器实现映射至u u s b 系统, 客户可以不必知道设备到底接在哪个主机控制器上就能同设备进行通信。u s b 驱动提 供了基本的面向客户的主机界面。在h c d 与u s b 之间的接口称为主机控制器驱动接口 ( h o s tc o n t r o l l e rd r i v e ri n t e r f a c eh c d i ) 。这层接口不能被客户直接访问,所以 也不是由u s b 具体来完成的。一个典型的h c d i 是由支撑各种不同主机控制器的操作系 统来定义的。 u s b d 提供i 0 请求包( i 0r e q u e s tp a c k e t s ) 形式的数据传输,以某一特定通道 来传输数据。另外,u s b d 为它的客户提供一个容易被支配及配置的抽象的设备。作为 这种抽象的一部份,u s b d 拥有标准通道对设备进行一些标准的控制。这标准通道实现 了u s b d 与抽象设备之间的逻辑通信【8 】【9 】【1 0 1 。 在有些操作系统中,提供了额外的非u s b 系统软件以支持设备的配置及设备驱动 程序的加载。在这样的操作系统中,设备驱动程序应使用提供的主机软件接口而不是 直接访问u s b d i 。 客户层描述的是直接与u s b 设备进行交互所需要的软件包。当所有的设备都己连 上系统时,这些客户就可以直接通设备进行通信。一个客户不能直接访问设备的硬件。 总而言之,主机可提供如下的功能: 1 检测u s b 设备的连接与断开。 2 管理主机与设备之间的标准控制流。 3 管理主机与设备之间的数据流。 4 收集状态及一些活动的统计数字。 5 控制主机控制器与u s b 设备的电气接口,包括提供有限的能源。 2 2 2u s b 驱动( u s b d ) u s b d 提供了供操作系统组件特别是设备驱动程序访问设备的一组接口。这些 基于u s b 总线的高速数据采集系统设计第二章u s b l 1 协议 操作系统组件只能通过u s b d 来访问u s b 。u s b d 的具体实现基于不同的操作系统。一个 u s b d 可以访问一个或多个h c d ,而一个h c d 可能与一个或多个主机控制器相连。某些操 作系统可能允许对u s b d 的初始化进行一些设置。从客户的观点来看,与客户进行通信 的u s b d 管理着所有连接着的u s b 设备。 1 u s b d 概况【1 l 】 u s b d 的客户直接命令设备或从通道直接输入和输出数据流。u s b d 为客户提供两组 工具。命令工具和通道工具。 命令工具允许客户配置和控$ 1 j u s b d 操作同时配置及控n u s b 设备。命令工具提供 了对设备标准通道的所有访问。 通道工具允许u s b d 客户管理特定设备的数据和控制数据的传输。通道工具不允客 户直接访问设备的标准通道。 图2 - 5 给出了u s b d 的总体框架。 圈罡 图2 5u s b 驱动结构 ( 1 )u s b d 初始化 具体的u s b d 初始化工作是与操作系统有关的。当u s b 系统初始化时,u s b 的管理信 息被创建,其中包括缺省地址设备及它的标准通道。 9 第二章u s b i 1 协议基于u s b 总线的高速数据采集系统设计 当一个设备连上u s b 时,它响应特殊的缺省地址,直到他的唯一地址由主机给出。 为了让u s b 系统能与新的设备进行通信,设备在刚连上总线时,设备的却省地址必须 是可用的。在设备的初始化期间,设备的缺省地址被修改成一个唯一的地址。 ( 2 )u s b d 通道使用 通道是设备与主机的逻辑连结。一个通道由且仅由一个客户所拥有。虽然通道的 基本属性不因通道的拥有者而改变,但在两类不同客户所拥有的通道之间还存在一定 的差异: 标准通道他们由u s b d 拥有和管理。 其他的通道它们由u s b d 的客户拥有和管理。 虽然标准通道经常用于完成一些客户通过命令接h 所传递的请求,但是它们不能 由客户直接访问的。 ( 3 )u s b d h 艮务功能 u s b d 提供如下种类的服务: 通过命令工具配置设备 通过命令工具及通道工具提供传输服务 事件通知 状态报告及错误恢复 2 u s b d 命令工具功能 u s b d 命令工具允许客户访问设备。通常,这些命令允许客户以读写形式访问某个 设备数据及控制部份。客户要做的仅是提供设备的标识码和相关数据缓冲区或空缓冲 区指针。 u s b d 命令传输时并不需要u s b 设备是已被配置好。u s b d 提供的设备配置设施大部 分使用是用命令传输。 下面的是有关命令工具提供的功能【12 】: ( 1 ) 接口状态控制 u s b d 客户必须能够设置具体的接口。接口状态的改变使得所有与该接口相连的 通道都进入新的状态。另外接口的所有通道都能够被重新设置或废弃。 ( 2 ) 通道状态控制 u s b d 通道状态由两部份组成 1 0 基于u s b 总线的高速数据采集系统设计第二章u s b l 1 协议 主机状态。 反映的端口状态。 通道状态值总是包含上述两部份。u s b d 的客户管理由u s b d 报告通道状态,且客 户能够与端口交互以改变它状态。 ( 3 ) 获取描述码 u s b d 提供取得标准设备描述符,设备配置描述符,字串描述符和设备类或者厂 商定义的描述符的功能。 ( 4 ) 取得当前配置参数 u s b d 提供取得任何设备当前配置参数的描述符的功能。如果设备没有被配置, 则不返回描述符。当客户请求为设备设置特定的参数时也返回当前配置的描述符。返 回的配置信息中包括如下一些内容: 所有存放在设备上的配置描述符,包括接口的所有其他可替换配置。 返回接口的当前的配置的描述符。 接口当前配置中的某一端口( 一个接口可能具有多个端口) 的通道句柄。 接口当前配置中的某一端口的最大允许包长。 另外,对于任一通道,u s b d i 必须提供返回该通道的当前正使用的最大包长的值 的机制。 ( 5 ) 增加设备 u s b d i 必须提供某种机制以便于当增加新的设备的时候,集成器驱动器能通知 u s b d 并能取得该新u s b 设备的u s b d 标识。u s b d 的任务包括分配设备地址并且为设备准 备使用的标准通道。 ( 6 ) 设备断开 u s b d i 必须提供某种机制以便于集线器控制器通矢h u s b d 特定的设备已断开。 ( 7 ) 管理状态 u s b d i 必须提供取得和清除设备或接口或通道上与设备有关的状态的功能。 ( 8 ) 向设备发送与设备类有关的命令 u s b d 的客户,特别是特定类的和自适应的驱动器使用u s b d 提供的该种机制向设 备送出一个或多个设备类命令。 ( 9 ) 向设备发送特殊的厂商定义的命令 第二章u s b i i 协议基于u s b 总线的高速数据采集系统设计 客户使用u s b d i 提供的该种机制向设备送出一到多个厂商定义的命令。 ( i 0 ) 更改接口配置 u s b d i 必须提供更改特定接口配置的机制。修改了配置后,接口的新通道句柄替 换了旧的通道句柄。在上述的请求执行的过程中,接口必须是空闲的。 ( 1 1 ) 创建设备配置 配置软件向u s b d 提出进行设备配置的请求时提供一个包含配置信息的数据缓冲 区。u s b d 根据提供的配置信息为设备端口请求资源。如果所有的资源请求都得到满足, u s b d 设置设备配置参数,并且返回当前设备所有活跃态接口句柄和与该接口中的某一 端口相连的通道句柄。接口的设置可使用缺省参数。 ( 1 2 ) 设置描述符 对于支持该项行为的设备,u s b d i 允许升级设备上的描述符或者增加新的描述 符。 3 u s b d 通道设施 u s b d 的通道设施使客户与设备之间高速的低附加信息的数据传输成为可能。数据 传输的高性能是通过将u s b d 的一部份通道管理任务转交给客户来实现的。所以通道设 施 = l u s b d 命令设施所提供的数据传输服务更直接。通道设施不允许访问设备的标准通 道。 只有在u s b 及设备的配置都顺利完成后,客户才有可能进行u s b d 的通道传输。当 设备被配置的时候u s b d 根据配置参数为设备的所有通道请求资源。当特定的接口或通 道空闲的时候,客户可以更改配置。 客户为输出的通道提供一个满的数据缓冲区,并且在请求完成以后取得传输状态 信息。客户可以根据返回的状态信息判断传输是否顺利完成。 客户为输入通道提供空的数据缓冲区,并且在请求完成以后得到一个具有数据的 缓冲区及传输的状态信息。客户可根据该状态信息判断传输数据的数量及质量。根据 所支持的数据传输类型,u s b d 共有四种通道类型:控制传输、同步数据传输、中断传 输、块传输。 2 3u s b 设备 u s b 设备可被划分三层【1 3 】: 1 2 基于u s b 总线的高速数据采集系统设计第二章u s b i 1 协议 i 底层是传送和接收数据包的总线接口 2 中间层处理总线接口与不同端点之间的数据路由端节点是数据的终 结提供处或使用处,它可被看作数据源或数据接收端( s i n k ) 3 最上层的功能由串行总线设备提供,比如鼠标,或i s d n 接口。 2 3 1u s b 设备状态 u s b 设备有若干可能的状态,其中一些对于u s b 与主机( h o s t ) 来说是外置的,而另 外一些对u s b 设备来说是内置的,表2 1 描述的就是这些外置状态之间的转化关系n 4 1 。 表2 - i 外呈( 可见) 的设备状态 连接 加电缺省编址配置挂起说明 不设备尚未连接至接口,其他特性无关。 是不设备已连接至接口,但未加电,其他特性无关。 是 是 不 设备己连接至接口,并且已加电,但尚未被复位。 设备已连接至接口,已加电,并被复位。但尚未分 是是是 不 配地址设备在缺省地址处可寻址。 设备已连接至接口,已加电,井被复位,且分配了 是是是是 不 唯一地址,尚未被配置。 设备已连接至接口,已加电,并被复位,且分配了 是是是是是 不 唯一地址,并被配置,设备功能可被使用。 设备在至少3 毫秒以内探测不到总线活动,自动进 是是是 行挂起,设备功能不可用。 2 3 2 通用u s b 设备操作 所有的u s b 设备支持通用的操作集,下面简要地描述这些操作1 5 】: 1 动态插接与拔开 u s b 设备必须在任意时刻允许被插接与拔开。提供连接点或端口的集线器应当负 责汇报端口的状态改变情况。 当主机探测到连接操作后,会使得所连的集线器端口生效,设备也会因此而复位, 一个被复位了的u s b 设备有如下特性: ( 1 ) 对缺省u s b 地址发生响应 ( 2 ) 没有被配置 ( 3 ) 初始状态不是挂起 第二章u s b i 1 协议基于u s b 总线的高速数据采集系统设计 当设备从一个集线器端口移去时,集线器会使得原来连接的端口失效,并且通 知主机设备己移去。 2 地址分配 当u s b 设备连接以后,由主机负责给此设备分配一个唯一的地址,这个操作是在 设备复位及端口使能操作以后。 3 配置 u s b 设备在正常被使用以前,必须被配置,由主机负责配置设备。主机一般会从 u s b 设备获取配置信息后再准定此设备有哪些功能。 作为配置操作的一部分,主机会设置设备的配置值,并且,如果必要的话会选择 合适的接口的备选设置。 只须一个简单配置,一个设备可能支持多重接口。一个接口是一组端结点集合, 它们代表了设备向主机提供的单一的功能或特性,用来与这组相关端结点通信的协议 以及接口内各端结点的目的可以作为一个设备类的一部分或者由厂商制定具体定义。 另外,一个配置中的结口可能有备选设置。这些备选设置会重定义相关端结点的 数目或特性。如果是这样的话,设备必须支持g e t i n t e r f a c e ( 接口请求) 与s e t i n t e r f a c e ( 接口设置) 请求,来汇报及选择指定的接口的设备选设置。 4 数据传送 数据可能以四种方式在u s b 设备端结点与主机之间传送。四种传送方式参见第五 章。在不同设置下,一个终端结点可能被用于不同的传输方式,但一旦设置选定,传 送方式就选定了。 5 电源管理 u s b 总线电源是一个有限的资源,在设备标识阶段,主机估测电源的需求。如果 电源的需求量超过u s b 总线所能提供的电量,主机软件则不能选择那个配置。 u s b 设备应将电源需求量限制在一个单元以下,直到被配置。中止( 挂起) 的设备, 不管是否已经配置过了,应将总线耗电降到第7 章定义的标准以下。视接到设备的端 口电源负载能力而定,u s b 设备在配置了以后可从v b u s 汲取达5 个单元的电量。远程唤 醒能力参许一个被挂起的u s b 设备发达信号给处于挂起状态的主机。这个信号会使得 主机醒来,处理触发事件。u s b 设备通过配置描述来向主机汇报其远程唤醒的能力。 u s b 设备的远程唤醒能力应能被禁止的。 1 4 基于u s b 总线的高速数据采集系统设计第二章u s b l 1 协议 6 请求处理 除s e t a d d r e s s ( ) 请求以外,在安装完成返回a c k 信号以后,设备就开始处理请求。 在某一状态成功结束以前,设备应当“完成”对请求的处理。许多请求费时较多,像 这样的请求,该设备类应定义一个方法而不是等待交换状态信息阶段的结束来表示该 操作已经完成。像这样的操作有:集线器端口的复位至少需1 0 m s 来完成。当端口复位 产生时,s e t p o r t f e a t u r e ( p o r t r e s e t ) 请求就结束了。当端口状态改变并表明此端口 已经生效时,一个信号就会产生表明复位信号已经结束。这种技术可以防止当主机知 道某一个请求费时较长的情况一直探测此请求是否已完成。 7 请求错误 如果一设备收到一个请求,它或是在设备中无定义,或是不适用于当前设置,或 是数值不对,这时就会产生一个请求错误。设备在下一个数据传输阶段或状态交换阶 段返回一个表明错误的s t a l lp i d 信号,一般在下一个数据传输返回更好,这样可减 少不必要的总线活动。 2 3 3u s b 设备请求 所有的u s b 设备在“设备的缺省控制通道 处对主机的请求发出响应。这些请求 是通过使用控制传输来达到的,请求及请求的参数通过s e t u p 包发向设备,由主机负 责设詈_ s e t u p 包内的每个域的值。每个s e t u p 包有8 个字节。见表2 2 【1 6 1 。 表2 2s e t u p 数据包的格式 偏移量域 大小 值描述 请求特征: d 7 :传输方向 0 - 主机至设备 l t 设备至主机 d 6 5 :种类 0 - 标准 b m r e q u e 8 t t y p 1 - 类 1 位图 2 一厂商 e 3 - 保留 o d 4 0 :接受者 0 - 设备 1 - 接口 2 - 端点 3 - 其他 4 31 - 保留 1 5 第二章u s b i i 协议基于u s b 总线的高速数据采集系统设计 1breque st l 值具体请求 2w v a l u e2 值 字长域,根据不同的请求含义改变 字长域,根据不同的请求含义改变典 tv i n d e x2 索引或偏移 型用于传送索引或偏移 6w l e n g t h2 如有数据传送阶段,此为数据字节数 2 4u s b 的物理层 u s b 的物理接口包括电气特性和机械特性。 u s b 通过一个四线电缆来传输信号与电源如图2 6 所示【1 7 1 。 v b 峭 d + g n d s m e 豫r s m a x 图2 击u s b 电缆定义 v b u s d + 阻 g n d 其中d + 和d 一是一对差模的信号线而v b u s 和g n d 贝u 提供了5 v 的电源它可以给一些设 备( 包括h u b ) 供电当然要有一定的条件限制。 u s b i 1 提供了两种数据传输率一种是1 2 m b 的高速模式,另一种是1 5 m b 的低速模 式,这两种模式可以同时存在于一个u s b 系统中。而引入低速模式主要是为了降低要 求不高的设备的成本,比如鼠标、键盘等等。 u s b 信号线在高速模式下必须使用带有屏蔽的双绞线,而且最长不能超过5 m 。而 在低速模式时中可以使用不带屏蔽或不是双绞的线,但最长不能超过3 0 m 。这主要是 由于信号衰减的限制,为了提供信号电压保证以及与终端负载相匹配,在电缆的每一 端都使用了不平衡的终端负载,这种终端负载也保证了能够检测外设与端口的连接或 分离,并且可以区分高速与低速设备。 所有的设备都有上行的接口,上行和下行的接头是不能互换的,这保证了不会有 非法的连接出现。插头与插座有两个系列分别为a 和b 系列,a 用于基本固定的外围设 备,而系列b 用于经常拔插的设备,这两个系列是不能互换的。 1 6 基于u s b 总线的高速数据采集系统设计第二章u s b i 1 协议 2 5u s b 数据流 从逻辑上讲u s b 数据的传输是通过管道进行的1 8 1 1 9 1 。图2 7 描述 u s b 数据传输的 过程。u s b 系统软件通过缺省管道( 与端点0 相对应) 管理设备,设备驱动程序通过其它 的管道来管理设备的功能接口。实际的数据传输过程是这样的:设备驱动程序通过对 u s b d 接口( u s bd r i v e ri n t e r f a c e ) 的调用发出输入输出请求( i r pi or e q u e s tp a c k - e t ) :u s b 驱动程序接到请求后,调用h c d 接口( h o s tc o n t r o ll e rd r i v e ri n t e r f a c e ) , 将i r p 转化为u s b 的传输,一个i r p 可以包含一个或多个u s b 传输;然后h c d 将u s b 传输分 解为总线操作,由主控制器以包的形式发出。需要注意的是所有的数据传输都是由主 机开始的,任何外设都无权开始一个传输。 i r p 是由操作系统定义的,而u s b 传输与总线操作是u s b 规范定义的。为了进一步 说明u s b 传输,本文引出帧( f r a m e ) 的概念。 帧:u s b 总线将i m s 定义为一帧,每帧以一个s o f 包为起始,在这i m s 里,u s b 进行 一系列的总线操作。引入帧的概念主要是为了支持与时间有关的总线操作。为了满足 不同外设和用户的要求,u s b 提供了四种传输方式:控制传输、同步传输、中断传输、 批传输。它们在数据格式、传输方向、数据包容量限制、总线访问限制等方面有着各 自不同的特征。 1 控制传输( c o n t r o lt r a n s f e r ) :通常用于配置命令状态等情形;其中的设置 操作( s e t u p ) 和状态操作( s t a t u s ) 的数据包,具有u s b 定义的结构,因此控制传输只能 通过消息管道进行; 1 7 第二章u s b l 1 协议 基于u s b 总线的高速数据采集系统设计 主机 连接物理设备 8 数据传递机制 的抽象。 l 被传递的数据 图2 7 u s b 数据流 支持双向传输:对于高速设备允许数据包最大容量为8 ,1 6 ,3 2 或6 4 字节,对于 低速设备只有8 字节一种选择;端点不能指定总线访问的频率和占用总线的时间,u s b 系统软件会做出限制;具有数据传输保证,在必要时可以重试。 1 基于u s b 总线的高速数据采集系统设计第二章u s b i 1 协议 2 同步传输( i s o c h r o n o u st r a n s f e r ) :是一种周期的连续的传输方式,通常用 于与时间有密切关系的信息的传输;数据没有u s b 定义的结构数据流管道;单向传输, 如果一个外设需要双向传输,则必须使用另一个端点;只能用于高速设备,数据包的 最大容量可以从0 ! u 1 0 2 3 个字节;具有带宽保证,并且保持数据传输的速率恒定,每 个同步管道每帧传输一个数据包;没有数据重发机制要求,具有一定的容错性;与中 断方式一起占用总线的时间不得超过一帧的9 0 。 3 中断传输( i n t e r r u p tt r a n s f e r ) :用于非周期的自然发生的数据量很小的信 息的传输,如键盘、鼠标等;数据没有u s b 定义的结构数据流管道;只有输入这一种 传输方式,即外设到主机;对于高速设备允许数据包,最大容量为小于或等于6 4 字节, 对于低速设备只能小于或等于8 字节;具有最

温馨提示

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

评论

0/150

提交评论