(信号与信息处理专业论文)usb实验系统的研究与开发.pdf_第1页
(信号与信息处理专业论文)usb实验系统的研究与开发.pdf_第2页
(信号与信息处理专业论文)usb实验系统的研究与开发.pdf_第3页
(信号与信息处理专业论文)usb实验系统的研究与开发.pdf_第4页
(信号与信息处理专业论文)usb实验系统的研究与开发.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(信号与信息处理专业论文)usb实验系统的研究与开发.pdf.pdf 免费下载

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

文档简介

硕士论文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 通信的内在机制,进行基于u s b 软硬件的开发。通过 这个u s b 应用系统的设计和实现,掌握基于u s b 总线接口技术的应用和开发。 本文首先介绍了u s b 总线接口的发展,u s b 总线协议和u s b 总线接口芯片 p d i u s b d l 2 :然后着重论述了根据u s b 总线协议,进行了u s b 接口电路的设计;接着 详细讨论了u s b 实验系统的固件程序设计、u s b 接口w d m 驱动程序的设计和基于 v i s u a lc + + 主机端的应用软件的开发。 关键字:u s b 总线接口、数据传输、固件、w d m 驱动程序、v i s u a lc + + 硕士论文u s b 实验系统的研究与开发 a b s t r a c t u s b ( u n i v e r s a ls e r i a lb u s ) i san e ws t a n d a r di n t e r f a c et oc o n n e c t p ca n dp e r i p h e r a l s ,n o w a d a y si ti su s e df r e q u e n t l yi np c p e r i p h e r a l s c o n s i d e r i n gt h en e e do f t h ed e v e l o p m e n to ft h eu s bt e s ts y s t e m ,t h e t h e s i s c a r r yt h ed e s i g no fh a r d w a r ea n ds o f t w a r eb a s e do nu s bi n t o e x e c u t i o n ,s oa st ok n o w t h ei n h e r e n tm e c h a n i s mo fu s bc o m m u n i c a t i o n t h r o u g ht h ed e s i g na n dr e a l i z a t i o no f t h eu s b a p p l i c a t i o ns y s t e m ,t h e a p p l i c a t i o na n dd e v e l o p m e n tb a s e do nu s b i n t e r f a c et e c h n o l o g yc o u l d b em a s t e r e d t h i st h e s i sf i r s ti n t r o d u c e dt h ed e v e l o p m e n to fu s bb u si n t e r f a c e u s bb u s p r o t o c o l a n dt h eu s bb u si n t e r f a c eh a r d w a r e c h i p p d i u s b d l 2 t h e n t u r n e de m p h a s i st od e s i g n i n gt h eu s bt e s ts y s t e m c i r c u i ta c c o r d i n gt ou s bb u sp r o t o c o l ;f i n a l l nd i s c u s s e di nd e t a i lt h e d e s i g no f t h ef i r m w a r ef o ru s bt e s ts y s t e m t h ed e s i g no ft h ew d m d r i v e rp r o g r a ma n dt h ed e v e l o p m e n to ft h ea p p l i c a t i o ns o f t w a r eo ft h e h o s tt e r m i n a ld e v e l o p e dw i 血v i s u a lc * k e yw o r d :u s bb u si n t e r f a c e ,d a t at r a n s f e r , f i r m w a r e ,w d md r i v e r p r o g r a m v i s u a lc + + i i 硕士论文u s b 实验系统的研究与开发 l 绪论 1 。l 课题研究的目的和意义 随着计算机技术的飞速发展及其在现代电子系统中的应用,嵌入式系统的概念应 运而生。事实上,计算机工程领域和电子工程领域的相互结合和相互渗透历来是广大 计算机应用工程师和电子应用工程师共同关注的问题。如何设计出一款符合电子系统 应用要求的高性能的计算机接口是非常重要的。 u s b 总线具有低成本、使用简单、支持即插即用、易于扩展等优点,已被广泛地 应用在p c 机及嵌入式系统上。因此课题结合雷达数据采集和数据传输的需要,进行 基于u s b 接口技术的软硬件开发,这对于推广u s b 总线的应用、增强新的或现有的通 信及雷达设备的互联性和可编程性有着重要的意义。 本课题以建立主机和外设通信为主题,通过设计一款支持u s b 控制传输、中断传 输和批量传输的u s b 实验系统,理解和快速掌握u s b 协议,了解u s b 通信的内在机制, 掌握基于u s b 接口技术的外围设备的开发。 1 2 总线发展概况( u s b ) 总线是计算机各模块阃进行信息传输的通道。按总线传送的信息类别,总线可分 为地址总线、数据总线和控制总线;按总线在微机结构中所处的位置,可分为片内总 线、部件内总线( 片级总线) 、系统总线( 板级总线) 和外总线( 外部总线) 。外总 线用于微机系统之间的通讯网络或用于微机系统与电子仪器或其它设备的连接。常用 的外总线如串行总线r s 一2 3 2 ,并行总线i e e e 一4 8 8 、v x i 等,u s b 总线也属于此类。u s b 总线必须通过系统总线( f c i 到u s b 的主控制器) 来实现和主机的通信。 不同的总线是为了解决某一方面问题而产生的。u s b 总线旨在解决相对而言速度 较慢的设备的i o 操作问题;p c i 和i s a 总线则是用于提高系统的性能;s c s i 和i d e 总线则专门用于解决磁盘和主机之间的i o 操作;v e s a 则是为了提高系统的视频性 能。就格式( 同步异步,串行并行) 、外联设备典型的最大值、延伸距离、最大传 输速度、用途而言,r s - 2 3 2 、r s - 4 8 5 、i c 、i e e e 1 3 9 4 、并行打印机端口各有千秋, 结果见衰1 1 “1 。 硕士论文u s b 实验系统的研究与开发 表1 1 常用外部总线比较 总线接格式外联设备延伸距离最大速度典型用途 口类型最大数 5 m ,通过5 个1 5 m b s 、1 2 m b s键盘、鼠标、硬 u s b 异步串行 1 2 7集线器达3 0 m( 2 0 可达盘、调制解调 4 8 0 m b s )器、音频 r s 一2 3 2 2 0 k b s ( 有达调制解调器、鼠 e i a t i a 一2 3异步串行 21 5 3 0 ml1 5 k b s ) 标、仪器 r s 一4 8 5异步串行3 2 ( 有达1 2 0 0 ml o m b s数据获取与控 t i a e i a 4 8 52 5 6 )制系统 1 2 c 同步串行 4 05 m 左右4 0 0 k b s徽处理器通信 4 0 0 m b s视频、大容量存 i e e e 一1 3 9 4串行6 44 5 m( i e e e 一1 3 9 4 b 可达储系统 3 2 0 ) 并行打印并行 23 9 m8 m b s打印机、扫描 机端口仪、磁盘驱动器 u s b 英文全称是u n i v e r s a ls e r i a lb u s ,翻译成中文是通用串行总线,支持在主 机和各式各样的即插即用的外设之间进行数据传输。u s b 是一种标准的连接接口,即 插即用,具有热插拔的特性,有单一专用的接头型号,最多可以连接1 2 7 个接口设备。 u s b 在1 9 9 5 年被提出,并由c o m p a g ,d e c ,i b m ,i n t e l ,m i c r o s o f t ,n e c 和n o r t h e r nt e l e c o m 七个计算机与通信工业领先的公司所组成的联盟所定义和加以 推广。1 9 9 6 年,u s b i f 公布了u s b 规范1 0 ,这是第一个为所有的u s b 产品提出设 计请求的标准。1 9 9 8 年,在进一步对以前版本的标准进行阐述和扩充的基础上,发 布了u s b 标准的1 1 规范。u s b i 1 规范1 1 的接口采用两种不同的速度:1 2 m b p s ( 全 速) 和1 5 m b p s ( 慢速) ,其中,慢速主要是应用于人机接口( h i d ) 上。这是个用 于连接鼠标、键盘、摇杆等设备的u s b 的群组。尽管当前的u s b i 1 的最大带宽速度 为1 2 m b p s ,但是主机端应用程序与其他的接口设备仍占据了部分的带宽。第三个版 本的u s b 2 0 是发布于1 9 9 9 年。u s b 2 0 的传输速度最高可以达到4 8 0 m b p s ,这不但是 u s b i 1 版的4 0 倍,而且也高过另一种传输接口i e e e l 3 9 4 的4 0 0 m b p s 。另外,u s b 2 0 具有向下兼容的特性。 1 3 主要研究内容和论文结构 本课题首先开发u s b 实验系统,通过其硬件电路上指示灯( l e d 显示) 、按键和 板上酽p r o m 对p c 机的u s b 响应过程来了解u s b 通信的传输机制;在p c 机端用v c 编 写应用程序实现主机端与u s b 设备的通信。 硕士论文u s b 实验系统的研究与开发 该u s b 实验系统的主要功能如下: 利用p d i u s b d l 2 的g o o d l i n k 技术,特设一个l e d 连接指示器,借以实现通信 信号指示。当该l e d 被点亮时,表示u s b 主机和u s b 器件已经装配和枚举,若它正在闪 烁表示数据正在发送或接收。 通过u s b 总线对板上的l e d 显示灯进行点亮和熄灭的控制来测试管道。 通过主机端的应用程序对实验板上按键状态( 按下或是松开) 的辨别,进一步 测试管道和评价中断传输的实现情况。 在主机端通过u s b 总线对单片机进行读写操作,测试批量传输的实现能力。 通过按钮实现复位或恢复系统。 本文组织如下: 第一章简要阐述本课题的任务、目的意义,介绍串行总线了发展概况,最后给 出本文的内容和组织体系。 第二章从u s b 外设开发的角度简要阐述与开发密切相关的u s b 协议。介绍u s b 的系统组成和软硬件框架,阐述u s b 系统中的通信数据流,解释端点、管道和事务等 核心概念,说明数据传输的各层次和四种数据传输类型。 从第三章开始是本论文介绍的重点和难点,包括硬件电路设计和软件设计。 第三章对测试用的u s b 实验系统进行硬件的设计。介绍了一般u s b 芯片的类型 与选择原则,p d i u s b d l 2 的一些特性。最后,给出了系统框图和各个模块的电路图。 第四章详细讨论u s b 外设的积木式结构的固件编程。具体讨论了固件中主循环 和中断服务程序;结合u s b 协议中设备描述符的规定和p d i u s b d l 2 的命令,介绍了协 议层程序和厂商请求程序以及p d i u s b d l 2 的接口函数:同时还介绍了硬件提取层的编 程。 第五章介绍了u s b 开发中驱动程序的设计。概述了u s b 驱动程序的开发中的关 键技术;指出了u s b 驱动程序的分层模型和内部分工:最后对重要程序段的部分源代 码进行了分析。 第六章介绍了u s b 接口中主机端应用程序的设计。首先简单介绍了应用程序开 发所用的软件一v c ,接着给出了应用程序的实现流程,最后重点介绍应用程序用到的 几个关键的a p i 函数以及对部分重要源代码进行了分析。 硕士论文u s b 实验系统的研究与开发 2 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 标准设备请 求。 2 2u s b 的基本特性 2 2 1u s b 基本架构 一般u s b 系统的基本架构可以分为三个主要的部分 u s b 主机控制器根集线器; u s b 集线器; u s b 设备: u s b 主机控制器负责激活u s b 系统上的处理动作,简而言之,就是整个u s b 系统 的大脑。目前有“o h c - - o p e nh o s tc o n t r o l l e r 开放式主机控制器”与“u h c - - u n i v e r s a l h o s tc o n t r o l l e r 通用式主机控制器”两种。这两种主机控制器的功能完全相同,只 是内部的运作方法稍有不同而已。 u s b 根集线器提供u s b 连接端e l 给u s b 设备或u s b 集线器来使用。一台计算机可 以同时连接1 2 7 个u s b 设备,不可能由主机控制器去搜寻某个设备,主机控制器只要 对根集线器下命令,然后再由根集线器传到正确的设备地址。 u s b 集线器的功用主要是提供另外的u s b 连接端口供用户串接设备,整个u s b 连 接的方式像金字塔型的结构。 u s b 设备可以分为全速设备、低速设备、高速设备三种类型。 2 2 2u s b 的总线结构 u s b 的总线结构是采用阶梯式星形的拓扑结构,如图2 1 所示。从图中可以看到 u s b 的设备包含了两种类型:u s b 集线器与u s b 设备。位于最顶端的就是h o s t ( 主机 硕士论文u s b 实验系统的研究与开发 端) 。从h o s t 的联机往下连接至h u b ( 集线器) ,再由集线器按阶梯式以一层的方式 往下扩展出去,连接在下一层的设备或另一个集线器上。集线器也可视为一种设备。 而其中最大阶层数为6 层( 包括计算机内部的根集线器) 。 图2 1u s b 的总线结构 2 2 3u s b 数据流的模式与管线的概念 2 2 3 1u s b 逻辑总线拓扑结构 3 t i e r 4 在物理结构上,设备通过h u b 连到主机上。但在逻辑上,主机是直接与各个逻辑 设备通信的,就好像它们是直接被连到主机上一样。这个逻辑关系如图2 2 所示。而 数据流模式则是以这些逻辑连接为基本的架构。 图2 2u s b 逻辑总线的拓扑 硕士论文 u s b 实验系统的研究与开发 2 2 3 2u s b 通信流 一个u s b 逻辑设备对u s b 系统来说就是一个端点集合。端点可以根据它们实现 的接口来分类。u s b 系统软件通过一个缺省的控制通道来管理设备。而客户软件用通 道束管理接口。通道束的一端为端点,一端为缓冲区。客户软件要求通信数据在主机 上的一个缓冲和u s b 设备上的一个端点之间进行。主机控制器或u s b 设备( 取决于数 据传送方向) 将数据打包后在u s b 上传。由主机控制器( h c ) 协调何时用总线访问在 u s b 上传递数据。 在所有u s b 技术中,管道和端点是十分基本的概念,在此先介绍: 端点( e n d p o i n t ) :是一个u s b 设备唯一可以确认的部分,是主机和设备之间通 信流的终点。 管道( p i p e ) :u s b 主机上的一个软件功能和一个u s b 设备之间建立的一个虚连。 是设备上的一个端点和主机上的软件的联合体。 图2 3 说明了在端点和主机一侧的存储器缓冲区之间的管道是如何承载通信 流。 l 查主逖广:。 u 逻馨设备l 竺 图2 3u s b 通信流 主机上的软件通过一系列的通信流来与一个逻辑设备进行通信。 2 2 3 3 管线的概念 对于u s b 的通信,用户可以将其视为一种虚拟管线的概念,如图2 4 所示。 硕士论文u s b 实验系统的研究与开发 图2 4 虚拟管线的概念 在整个u s b 的通信中包含了一个大的虚拟管线( 1 2 m b p s ) 以及高达1 2 7 个小的虚 拟管线,而每一个小的虚拟管线可比拟为u s b 的设备。这是由于在u s b 令牌封包中都 含有7 个用来寻址的位( i y - 于令牌封包的地址数据域a d d r ) ,因此最多可寻址1 2 8 个 设备。但是由于地址o 是预设地址,且用来指定给所有刚连上的设备。这也就是为何 u s b 总线上最多能连接到1 2 7 个设各的原因。每一个连接到设备的小虚拟管线又可再 细分为许多的微虚拟管线。这些微虚拟管线可比拟为端点。由于在令牌封包中,包含 了4 个位的端点地址( 位于端点数据域,e n d p ) 以及一个位于端点描述符中的输入 输出方向( i n o u t ) 位,所以在一个单独的小虚拟管线内最多可再分割成1 6 组的微 虚拟管线( 端点) ,也就是可对1 6 组输入输出的端点( 共3 2 个端点) 寻址,并可将 u s b 的令牌封包中定义为i n ( 设备至主机) 或o u t ( 主机至设备) 两类型的令牌封包。 这种端点( 微虚拟管线) 的概念非常重要。因为每一个设备实际上就是一个u s b 专用微处理器或r i s c 芯片。而相对的,这个端点就是其所包含的多组内存、r a m 或 f i f o 。这些端点( 微管道) 可视为数据流中最基本的通信单元。 2 2 4u s b 硬件规范 2 2 4 1u s b 的硬件特性 从u s b 的阶层梯式星形的拓扑结构,可以看到主机端与集线器或设备必须依循由 上到下或由下到上的连接方向。为了避免连接错误,在u s b 规范中定义了两种不同大 小形状的u s b 连接头,即a 与b 型连接头。a 型连接头用来连接下游端口的设备,为 长扁形;b 型连接头用来连接上游端口的设备或集线器,为正方形。 u s b 总线中的物理介质由一根4 线的电缆组成:v b u s 、g n d 、d + 、d - - 。v b u s 是+ 5 v 供电:g n d 是v b u s 还有d + 和d 一的接地电位参考;d + 和d 一是差分信号对。 硕士论文u s b 实验系统的研究与开发 在全速电缆中,信号线的特性阻抗为9 0 q 。为了使两个信号通道相互排除和抵消 干扰,增加数据传输的可靠性,利用差分方式传输信号,即d + 和d 一为差分信号, 利用这种差分传输方式,接收端的灵敏度可以达到不低于2 0 0 m y 。在全速电缆中,两 根信号线必须形成双绞线。 2 2 4 2 u s b 接口的电气特性 为了提供可靠的输入电压和适当的终端阻抗,在电缆的每一端都有一个带偏压的 终端,该终端可以发现任一端口上的u s b 设备的“插入”和“拔除”操作,并能区分 全速和低速设备。根据不同的u s b 设备的传输速度,改变在设备端的提升电阻1 5 ( 1 5 ) k q 的位置。这个提升电阻,也可视为设备端电阻。对应全速设备,就将提 升电阻接至d + 信号线与电源之间的位置,如图2 5 所示。如果是慢速设备,就将提 升电阻接到d 一信号线与电源之间的位置,如图2 6 所示。但对于u s b 2 0 的高速传 输,这个提升电阻被省略,改以自动切换的方式。d + 与d 一两条信号线在p c 主机的 根集线器或集线器端同时接上1 5 kq 的下拉电阻并连至地端。这些下拉电阻也可称为 集线器端电阻。 i 高低速u s b 艘产l 匀 l ji 1习b j 惜 * 盛 i 巴博 :一 】 r 一t & k n 5 h u b 上行墙疵高遣设备 主机m u bo 守 r , s mt 6 * 图2 5 全速设备与p c 主机之间电气特性的连接图 目 hf盎 低速u s b 设备 慢速旋转 r 一8 缓冲器 主帅。奇 r _ 1 1 岫5 帕删 国疆蕃一 图2 6 低速设备与p c 主机之间电气特性的连接图 主机通过d + 和d 一上的电压变化来检测到设备的状态,当没有设备连接到u $ 8 端口时,d + 和d 一线上的下拉电阻就将2 条数据线拉到近地,当检测到任一条数据 线电压接近v c c ,而其他保持近地电压,那么主机就知道该设备已经准备好了。 硕士论文u s b 实验系统的研究与开发 2 2 4 3u s b 的电源管理 u s b 可以使用总线供电模式和自供电模式两种电源分配模式。完全依赖于u s b 电 缆为其供电的u s b 设备称为总线供电设备( b u s p o w e r e dd e v i c e ) ,与之相对,那些 具有可替换电源供应的u s b 设备称之为自供电没备( s e l f p o w e r e dd e v i c e ) 。总线供 电又可再区分为低功率和高功率两种。此外,根据u s b 规范,所有的集线器或设备都 必须支持中止( s u s p e n d ) 模式,而且中止模式下的消耗电流不能超过5 0 0 u a 。这是 非常重要的特性。 2 2 5u s b 的编码方式 在包传送时,u s b 使用一种n r z i ( n o n er e t u r nz e r oi n v e r t ,即无回零反向码) 编码方案。在该编码方案中,“1 ”表示电平不变,“0 ”表示电平改变。图2 7 列出 了一个数据流及其它的n r z i 编码,在该图的第二个波形图中,一开始的高电平表示 数据线上的j 态,后面就是n r z i 编码。 踟协习! h : ! ! :! ! ! h !踟协丽 广 几厂一广 厂 n r z l0 1 石广厂 n 厂 图2 7n r z i 数据编码 为了确保信号发送的准确性,当在u s b 上发送一个包时,传送设备就要进行位插 入操作。所谓位插入操作是指在数据被编码前,在数据流中每六个连续的1 后插 入一个0 ,从而强迫n r z i 码发生变化。 2 。3u s b 通信协议 2 3 1u s b 封包中的数据域类型 u s b 通信协议建立在令牌包基础上,p c 机负责启动一切的沟通而掌握总线的主控 权,严谨的协议保证了u s b 不占用任何p c 的中断向量或输入输出的资源。在u s b 线 上执行一个或多个事务处理,都是基于一系列的信息包的传输。传输过程从u s b 设备 驱动程序要求执行一次传输开始,到通过u s b 数据线传送结果信息包结束。u s b 传输 涉及到以下层次:( 1 ) 数据域:( 2 ) 封包;( 3 ) 数据交易;( 4 ) i r p ( i o 请求包) 。 根据不同的封包类型,就含有不同数量与类型的数据域。以下顺次介绍各种数据 9 硕士论文u s b 实验系统的研究与开发 域。 同步域( s y n c ) s y n c 字段由8 位所组成,作为每一个数据封包的前导。它是用来产生同步作用的, 它的数值固定位0 0 0 0 0 0 0 1 。 封包标识域( p i d ) 每一个u s b 包都有一个p i d ( 包标识符) ,它处于同步域之后,用来表示包的类 型。一个f i d 由四位包标识域和四位检查域组成,检查域是包标识域的取反,用于保 证p i d 的可靠性。包标识符被分为4 个编码组:令牌,数据,握手和专用。 地址域( a d d r ) 设备上的端点用设备地址域( a d d r ) 和端点域( e n d p ) 两个域来确定。设备地址 域由7 个比特组成,用来确定唯一的设各地址。a d d r 6 :o 指定了总共1 2 8 个地址, 每个a d d r 值都定义了单一的设备地址。刚一复位和加电的时候,设备地址默认值为 0 ,并且必须由主机在枚举过程中编程。设各地址零被用作为缺省地址,不可被分 配作任何别的用途。 端点域( e n d p ) 端点域由4 个位组成,用于确定设备上的端点号。通过这4 个位,最多可寻址出 3 2 个端点。 循环冗余码校验域( c r c ) 根据不同的封包类型,c r c 数据域由不同数目的位所组成。其中,最重要的数据 封包采用c r c l 6 的数据域( 1 6 个位) ,而其余的封包类型则采用c r c 5 的数据域( 5 个 位) 。 帧号域( f r a m en u m b e r ) 帧号域长度为1 1 比特,逐帧加1 ,到达7 f f h 后清0 。主机在每帧的开始发个 帧开始( s o f ) 令牌,帧号域是其中的一个域。 数据栏( d a t af i e l d ) 它仅存于d a t a 封包内,数据域的长度根据不同的传输类型,拥有不同的字节大 小,可以是0 1 0 2 3 个整数字节的长度( 仅能在等时传输时设置) 。 闲置栏( i d l e ) 在每个封包的结尾处,且当d + 与d 一都为低电位时出现闲置栏。 2 3 2 封包格式 通过上述所介绍的各种封包数据域就可以组成各种封包类型,进而执行一个完整 的u s b 通信协议。以下介绍各种封包类型。 硕士论文u s b 实验系统的研究与开发 令牌包 令牌包由p i d 域,地址域,端点域和5 位的e r c 循环冗余码校验域组成。其中地 址域和端点域唯一确定了某个设备上的某一个端点。只有主机才可以发出令牌包。令 牌封包的p i d 数据域中包含了o u t 、i n 、s e t u p 等3 种p i d 类型名称,即包含了o u t 令牌封包、i n 令牌封包、s e t u p 令牌封包。 帧起始封包 帧起始封包( s o f ) 虽然属于令牌封包的一种,但有独自的p i d 类型名称s o f 。这 个封包常用于等时传输,并不用于低速设备。帧起始封包由主机每隔i m s 发出,它 由p i d 域、帧号域和5 比特的c r c 检查域组成。 数据封包 数据包由p i d 域、o 一1 0 2 3 字节长度的数据域和1 6 位的c r c 检查域组成。有2 种 类型的数据包,根据不同的p i d :d a t a o 和d a t a l 来识别。2 种数据包p i d 是为了支 持数据切换同步而定义的。数据必须以整数的字节数发出。数据c r c 仅通过对包中的 数据字段计算而得到,而不包括p i d ,它有自己的校验字段。 握手封包 握手包用来表示一个事务的完成状态。它的格式最简单,只有一个8 位的p i d 域。 握手包用来报告数据事务的状态,还能表示数据成功接收,命令的接收或拒绝,流控 制和停止条件。有3 种类型的握手包:a c k 表示数据包没有位填充或数据字段上的c r c 错,并且数据p i d 被正确收到。n a k 表示设备不会从主机接受数据( 对于输出事务) , 或者设备没有传输数据到主机( 对于输入事务) 。s t a l l 表示设备不能传输,或者接 收数据,或者不支持一个控制管道请求。在任何条件下都不允许主机返回s t a l l 。 特殊封包 这个特殊先导封包拥有独自的p i d 类型名称p r e 。它是仅适用于主机想要从高 速传输变成低速传输时所送出来的封包。 2 3 3u s b 传输的类型 u s b 上的数据传输有四种类型:控制传输、中断传输、批量传输、实时传输。不 同的传输类型就会执行不同的数据交易。 控制传输 控制传输是一种双向传输,用来发送与设备的能力和配置有关的请求和数据,也 可以传输任何其它用途的信息块。每个设备必须在端点0 的缺省管道中支持控制传 输。控制传输包含2 至3 个阶段:设置阶段、数据阶段( 也可能没有) 和状态阶段。 每一个阶段对应一个数据交易( 即事务) ,每个数据交易由令牌包、数据包和握手包 硕士论文u s b 实验系统的研究与开发 组成。主机控制器为了尽最大努力确保所有的控制传输尽可能快地进行而为控制传输 保留了1 0 的u s b 带宽,若大部分时间不需要这些带宽,批量传输可使用剩下的部 分。 批量传输 批量传输可以发送大量的数据而不会阻塞总线,它可以为其他的传输而延迟,并 且等到总线可用时再传,因此对传输时间不严格的数据传输很有用。只有全速设备可 以使用批量传输,打印机和扫描仪使用这种传输。一个批量传输由一个或多个i n 或 o u t 事务组成,每一个事务由令牌包、数据包和握手包组成。 中断传输 中断传输是一种单向传输,从设备输入到p c 机,作i n 的传送( 后在协议1 1 和 2 0 中增加了o u t 的传送模式,从而使之成为准双向传输,也就是说,在两个方向传 输数据时,每个方向都需要一个独立的管道) 。注意,u s b 不支持通常意义上的硬件 中断,而靠主机周期性地“轮询”来知悉设备是否要传送数据给主机。为了保证数据 不被丢失,必须要有一个合适的轮询速度,或者说要有一个最大的潜伏期,以确保主 机控制器在事务之间不超过规定的时间间隔。中断传输用来支持那些偶然需要少量数 据通信,但服务时间受限制的入机接口设备( h i d ) 。中断传输的事务组成同批量传输, 事务的结构也是三种。 实时传输 实时传输是一种保证大块数据迅速从繁忙的总线上通过的方法,它和中断传输组 合可以最多使用9 0 的u s b 带宽。实时传输对数据必须以一个恒定的速率或在规定 的时间内传输,每帧传输规定数量的字节数。由于传输必须遵循时间表,接收者在其很 忙或者检测到一个错误时不能要求重发。实时传输通过一个或多个连续的帧来实现, 每帧由一个i n 或o u t 事务组成,因为实时传输不支持对总线上的差错作出数据重传响 应,所以每个事务不具有握手包。实时传输也是单向的,欲在两个方向上传输数据,每 个方向要有独立的管道和端点”3 。 2 3 4u s b 描述符 u s b 标准设备请求用于配置一个u s b 设备,控制u s b 接口的状态。在配置前,设 备对它的缺省地址0 作出响应,这就允许了配置软件在配置过程中用设备地址o 从端 点0 处要求获取任何设备配置描述符的内容。 u s b 设备的描述符掌握了关于设备的所有信息,设备的实现便是通过建立描述符 来体现其特征和行为的。描述符的层次结构体现为一个描述符树,如图2 8 。 硕士论文u s b 实验系统的研究与开发 图2 8u s b 描述符树 每种描述符类型都有一个特定的值与之对应,如下表2 1 所示。 表2 1 描述符的类型值 描述符类型数值 设备( d e v i c e ) o x 0 1 配置o x 0 2 ( c o n f i g u r a t i o n ) 字符串( s t r i n g ) o x 0 3 接口( i n t e r f a c e )o x 0 4 端点( e n d p o i n t ) 0 x 0 5 所有描述符的数据结构相似,其中b y t e o 是以字节为单位的该描述符的长度, b y t e l 便放置上述的类型值,其余字节的定义和次序,以及位字段随不同的描述符而 各自不同,现以列表的形式,分述于后。 设备描述符 设备描述符是主机向设备请求的第一个描述符,它包含设备的一般信息和有关设 定此设备时所采用的缺省控制管道的信息。其结构如表2 2 。1 。 表2 2 设备描述符 偏移值字段名称字段大字段取说明 小 值 0 b l e n g t h l数字描述符的字节大小= 1 2 h l b d e s c r i p a t o r t y p e 1常数设备描述符类型值= 0 1 h 2b c d u s b2b c du s b 规格发布号 4b d e v i c e c l a s sl类型类型代码,由u s b 指定 5b d e v i c e s 曲c l a s sl子类型子类型代码,由u s b 分配 6b d e v i c e p r o t o c o l1协议协议代码,由u s b 分配 7b m a x p a c k e t s i z e 01 数字端点0 的最大封包大小( 唯 8 ,1 6 ,3 2 ,6 4 有效) 8i d v e n d o r2i d制造商的i d ,由u s b 分配 1 0i d p r o d u c t2i d产品的i d 。由厂商分配 1 2b c d d e v i c e2b c d设备发行序号( 设备出厂编码) 硕士论文u s b 实验系统的研究与开发 1 4i m a n u f a c t u r e r1 索引制造商的字符串描述符索引 1 5i p r o d u c tl 索引产品的字符串描速符索引 1 6i s e r i a l n u m b e r1 索引设备发行序号的字符串描述符索引 1 7 b n u m c o n f i g u r a t i o n s l 数字可能的配置数 配置描述符 配置描述符定义了设备的配置信息,它描述了设备的特征和能力,它包含了关于 设备的电源使用和支持的接口数目的信息。配置结构如表2 3 3 表2 3 配置描述符 偏移值字段名称字段大小字段取说明 值 0 b l e n g t h 1 数字描述符的字节大d 、= o g h l b d e s c r i p a t o r t y p e l常数配置描述符类型值= 0 2 h 返回描述符的总长度( 3 4 b ) :包括该 2 w t o t a l l e n g t h 2数字 配置所返回的所有描述符( 配置、接 口、端点和类型或供应商) 的总长度 4b n u m i n t e r f a c e1数字配置所支持的接口数 作为s e tc o n f i g u r a t i o n 的一个参数 5 b c o n f i g u r a t i o n v a l u e l 数字选择配置值,0 值的s e t c o n f i g u r a t i o n 导致该设各进入未配 置状态 6 i c o n f i g u r a t i o n 1索引配置的字符串描述符的索引 7b m a t t r i b u t e s1 位图配置属性:d 7 总线供电;d 6 自我供电; d 5 远程唤醒:d 4 、0 保留: 当设备完全可操作时。在这种特定配 8m a x p o w e rlm a置下总线供电的u s b 设备的最大消耗 电流,以2i i l a 为单位 接口描述符 该描述符描述了由相应的配置所提供的某个接口。其结构如表2 4 。1 。 表2 4 接口描述符 偏移字段名称字段字段取值说明 值大小 o b l e n g t h l 数字描述符的字节大小= 0 9 h l b d e s c r i p a t o r t y p e l常数接口描述符类型值= 0 4 h 2b i n t e r f a c e n u m b e r1数字接口的编号 3 b a l t e r n a t e s e t t i n g l数字用于为上一个字段选择可供替换的设置 4 b n u m e n d p o i n t l数字 使用的端点数目( 端点0 除外) 5b i n t e r f a c e c l a s s1 类型类型代码,由u s b 指定 6b i n t e r f a c e s u b c l a s s1子类型 子类型代码,由u s b 指定 7b i n t e r f a c e p r o t o c o l1协议 协议代码,由u s b 指定 8i i n t e r f a c e1索引接口的字符串描述符的索引 1 4 硕士论文u s b 实验系统的研究与开发 端点描述符 端点描述符用来描述端点的属性以及各个端点的位置。除了端点0 ,每个接口描 述符中指定的端点都有一个端点描述符。端点0 不需要一个描述符,设备描述符中已 经包含了它的最大包的大小。端点描述符中包含了此端点的传输形态( 控制、实时、 批量、中断传输) 以及最大传输率。一个端点描述符总是作为一个配置描述符内的一 部分而返回的。其数据结构如表2 5 。1 。 表2 5 端点描述符 偏移值字段名称字段字段说明 大小取值 o b l e n g t h 1数字描述符的字节大小= 0 7 h 1 b d e s c r i p a t o r t y p e 1 常数端点描述符类型值= 0 5 h u s b 设备的端点地址:b i t o 3 端点号:b i t 4 6 2 b e n d p o i n t a d d r e s s l 端点保留。复位为0 ;b i t 7 :方向,0 为o u t 端 点,1 为i n 端点,对于控制端点可忽略。 3b m a t t r i b u t e sl 位图端点属性:b i t o 1 传输类型( 0 0 控制:o l 同步;0 2 批量;0 3 中断) ,其它位保留。 本端点接收或发送的最大信息包的大小。对 于同步传输此值用于为每帧的数据净负荷 预留时间,而通道可能在实际运行时不需要 4 w m a x p a c k e t s i z e 2 数字预留的带宽。实际带宽可由设备通过一种非 u s b 定义的机制汇报给主机。对于中断传输、 批传输、控制传输,端点可能发送较小的数 据包,且在传输结束后有间隙时间来重启, 或不需要这段时间。 轮询数据传送端点的时间间隔。 6b i n t e r v a l1 数字对于批传送和控制传送的端点此值可忽略, 对于同步传送的端点此域的值必为1 ,对于 中断传送的端点此域值的范围从1 到2 5 5 。 字符串描述符 字符串描述符是可选的,若一个设备不支持字符串描述符,在设各、配置和接口 描述符内的所有字符串描述符的索引值必须为o 。一个字符串描述符包含了描述文本。 字符串描述符的结构如表2 6 所示。1 。 表2 6 字符串描述符 偏移量字段字段大小宇段取值说明 0 b l e n g t h 1数字 该描述符的大小( - 7 节长度) 1 b d e s c r i p t o r 1常数 字符串描述符类型,固定为0 3 h t y p e 2 b s t r i n g n数字 一种或多种语言标识符标识符代码 硕士论文u s b 实验系统的研究与开发 2 3 5u s b 设备请求 在u s b 接口的通信协议中,主机取得绝对的主控权。因此,主机与设备之间就 必须遵循某种已沟通的特定命令格式,以达到通信的目的。u s b 标准设备请求是用来 完成u s b 设备枚举的命令,u s b 设备必须对设备请求做出响应,不管该设备是否已经 被分配了一个默认的地址或该设备目前正在配置。 u s b 的设备请求由8 个字节组成,格式定义如表2 7 所示。 表2 7u s b 设备请求 偏移值字段名称字段长度字段取值 说明 请求特性: d 7 :数据传输方向 o = 主机到设备1 = 设备到主机 0设备请求1位图d 6 :5 :类型 类型o = 标准1 = 类型2 = 厂商3 = 保留 d 4 :0 :接收方 0 = 设备1 = 接口2 = 端点3 = 其他 4 3 1 = 保留 1 设备请求 1数值u s b 设备请求 2值2值根据不同的请求,以字节为单位来定义 4索引2字段索引根据不同的请求,以字节为单位来定义 6 长度 2计数如果传输一组数据,指出要传输数据的字 节数。 在这种u s b 设备请求格式下,u s b 协议定义了1 1 种标准设备请求。所有的u s b 设备 必须对标准设备请求作出响应,不管该设备是否已经被分配了一个非缺省地址或该设 备目前正在被配置。当然,设备还可以支持类的特定请求和设备供应商自定义的请求。 1 1 种标准设备请求所对应的代码和说明如表2 8 。3 。 表2 8u s b 标准设备请求 请求类型设备请求值索引长度数据资料 ( b m r e q u e s t t( b r e q u e s t )( w v a l u e ) ( w i n d e x ) ( w l e n g t h y p e ) 1 0 0 00 0 0 0 bg e ts t a t u s0 设备 2 b设备、接 1 0 0 00 0 0 1 b( o o h )接口口或端 1 0 0 00 0 1 0 b端点点的状态 1 6 硕士论文u s b 实验系统的研究与开发 0 0 0 00 0 0 0 b c l e a r _ f e a t u r e特性选设备 0 0 0 0 00 0 0 l b( o i h ) 择符接口 无 0 0 0 00 0 l o b 端点 1 0 0 00 0 0 0 bs e tf e a t u r e 特性选设备o 1 0 0 00 0 0 1 b ( 0 3 h )择符接口 无 1 0 0 00 0 1 0 b 端点 0 0 0 00 0 0 0 bs e ta d d r e s s 设备地00无 ( 0 5 h )址( 1 1 2 7 ) 1 0 0 00 0 0 0 b g e t _ d e s c r i p t o描述符的类0 或语言i d描述符长描述符 r ( 0 6 h )型和索引度 0 0 0 00 0 0 0 b s e t _ d e s c r i p t i描述符的类0 或语言i d描述符长描述

温馨提示

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

评论

0/150

提交评论