文档详情

usb设备的从动端分析与应用设计—固件程序设计

213****21g
实名认证
店铺
DOCX
654.50KB
约64页
文档ID:155365102
usb设备的从动端分析与应用设计—固件程序设计_第1页
1/64

毕业论文文论文题目目:USSB设备备的从动动端分析析与应用用设计 ——固件件程序设设计 学 院:: 计计算机科科学技术术学院 摘 要 USBB(Unniveersaal SSeriial Buss通用串串行总线线)是计计算机领领域中一一种全新新的工业业标准,其其技术和和产品正正在迅猛猛的发展展中因因此,研研究USSB总线线的体系系架构和和开发技技术很有有必要本本文在实实验室现现有硬件件和软件件基础上上,研究究了USSB的接接口规范范和软硬硬件开发发方法,并并应用于于实际,设设计出了了用USSB实现现的温度度采集系系统 本文围围绕设计计目标,在在简要叙叙述USSB1..1总线线协议的的基础上上,主要要论述了了两个方方面的内内容:固固件程序序的开发发和DSS16220的使使用方法法设备备以ATT89SS52单单片机作作为控制制器,PPhillipss公司的的PDIIUSBBD122作USSB收发发器,用用DALLLASS公司的的DS116200进行温温度采集集,采用用中断数数据传输输方式实实现数据据传输关键词USB;;WDMM; PDDIUSSBD112;温温度采集集; DDS16620ABSTTRACCTUSB(UUnivverssal Serriall Buus) is a ccompplettelyy neew iinduustrry sstanndarrd iin tthe fieeld of commputter.. Itts ttechhnollogyy annd pprodductt arre ttremmenddoussly devveloopinng. Theerefforee, IIt iis nneceessaary to ressearrch thee frramee annd ddeveeloppingg teechnnoloogy of USBB. BBaseed oon tthe harrdwaare andd sooftwwaree thhat ourr laaborratoory is havvingg, tthiss paaperr reeseaarchhes thee innterrfacce sstanndarrd aand sofftwaare--harrdwaare devveloopinng mmethhodss off USSB, appply it intto tthe acttuall ennvirronmmentt, aand dessignned thee teempeeratturee coolleectiion sysstemm.Centteriing on thee deesiggninng oobjeect,, ouutliininng tthe USBB 1..1 pprottocool, thiis ppapeer mmainnly exppounnd ttwo asppectts oof cconttentt: tthe devveloopinng oof ffirmmwarre pproggramm annd eemplloymmentt off DSS16220. Usiing AT889S552 aas cconttroll apppliiancce, PDIIUSBBD122 off Phhiliips Corrp. as USBB reeceiivinng-ttrannsmiittiing apppliaancee, tthe devvicee coolleect temmperratuure witth DDS16620 of DALLLASS Coorp.., aand adoopt intterrruptt daata traansmmitttingg too reealiize datta ttrannsittionn. Key worrdsUSB;;WDMM; PPDIUUSBDD12;;temmperratuure colllecctioon; DS116200USB设备的从动端分析与应用设计—固件程序设计目 录摘要iABSTTRACCTiii前言1一、本文文研究的的主要内内容1二、 USBB发展情情况1三、 USBB的设计计目标22四、 USBB的性能能特点22四、 USBB系统组组成3(一) USSB的互互连3(二) USSB设备备4(三) USSB主机机5第一章 USSB数据据传输协协议6一、 USBB电气特特征及电电平信号号6二、 USBB数据流流模型77(一) USSB主机机/设备分分层模型型7(二)端端点8(三)管管道9(三)传传输类型型9三、 USBB协议层层11(一)字字段格式式11(二)包包格式114(三)事事务格式式15第二章 USSB驱动动程序概概述177一、 WDMM驱动程程序模型型简介117二、 USBB主机驱驱动程序序体系结结构199(一)主主机控制制器驱动动程序(HCD)19(二) USSB总线线驱动程程序(UUSBDD)20第三章 USSB设备备简介222一、硬件件结构222(一)带带USBB接口的的单片机机23二、 PDIIUSBBD122通用USSB收发发器244(一) PDDIUSSBD112的性性能特点点24(二) PDDIUSSBD112的功功能框图图24(三) D112引脚脚配置及及说明226三、 D122 USSB固件件编程概概要266(一)各各端点在在固件中中的使用用26(二)UUSB设设备枚举举的数据据传输过过程288第四章 DSS16220数字字式温度度传感器器30一、特性性30二、 DS116200的3–线通信信模式330第五章固固件程序序设计332一、设计计思路332二、固件件编程的的实现概概括和流流程图334(一)硬硬件提取取层———EPPPHALL.C335(二)PPDIUUSBDD12命令接接口———D122CI..C355(三)中中断服务务程序———ISSR.CC35(四)协协议层———CHHAP__9.CC,PRROTOODMAA.C339(五)标标准设备备请求处处理———CHAAP_99.C339(六)厂厂商请求求处理———PRROTOODMAA.C441(七)主主循环———MAAINLLOOPP.C442结论433致谢444参考文献献45 USB从动端分析与设计——固件程序设计前 言言一、 本本文研究究的主要要内容 USBB总线在在各个领领域中迅迅速得到到应用,以以取代老老式的RRS-2232以以及EPPP并口口等总线线,研究究USBB总线有有重要的的实用价价值。

然而,接接口的简简单意味味着协议议的复杂杂,怎样样在现有有的实验验条件下下快速的的使用UUSB总总线开发发应用设设备便成成了我们们的研究究目标 在仔细细分析了了现有设设备和源源代码的的基础上上,我们们设计实实现了一一个采用用USBB总线实实现的温温度采集集设备, 在下位位机我们们使用了了DS116200数字式式温度传传感器,并并在上位位机设计计了客户户服务程程序,DDS16620定定时对室室温进行行采集,可可以实时时监视室室内温度度关键键的一点点是,其其接口使使用了UUSB进进行实现现,可以以适应未未来机器器多使用用USBB总线的的需求 由于本本系统对对数据传传输的速速度没有有太过苛苛刻的要要求,因因此我们们使用了了USBB总线的的控制传传输方式式二、 UUSB发发展情况况 USBB全称为为Uniiverrsall Seeriaal BBus(通通用串行行总线)),是119944年底由由IBMM、Inntell、Coompaaq、DDEC、MMicrrosooft、NNEC和和Norrtheern Tellecoom共同同开发的的PC外外设接口口标准,由由于其具具有使用用方便及及成本低低廉等优优点,迅迅速得到到业界的的强力支支持,目目前己经经成为主主流的总总线标准准,20001年年USBB设备出出货量已已超过33亿台。

USBB广泛应应用于传传统PCC外设,如如鼠标、键键盘、显显示器等等,移动动存储设设备如移移动硬盘盘、闪存存盘等,以以及新兴兴的消费费类电子子,如MMP3播播放器、数数码相机机、移动动等等同时时其应用用范围也也在不断断扩大,工工业自动动化仪器器仪表正正在成为为USBB应用的的热点之之一 USBB最初推推出的是是1.XX版本,其其总线传传输速度度较低,为为12MMbpss,19998年年推出了了USBB2.00,将数数据传输输速度提提高到了了4800Mbpps,在在保持了了USBBI ..1的优优点的基基础上,保保证了向向下兼容容性,可可以完全全支持各各种USSB 11.x的的产品UUSB22.O满满足了高高端应用用对总线线带宽的的需求,从从20002年下下半年起起,采用用USBB2.OO的设备备开始大大规模出出现,预预计20004年年USBB2.OO整体出出货量将将超过33亿台,超超过USSB1..1的出出货量 随着UUSB设设备的迅迅速增加加,设备备与设备备之间的的直接数数据传输输变得越越来越迫迫切,UUSB OTGG(ONN THHE GGO)技技术应运运而生了了,它于于20001年112月底底制定,赋赋予了设设备双重重身份,即即既可以以作为主主机,又又可以作作为设备备,其实实质是在在设备中中增加了了一个嵌嵌入式计计算机来来执行主主机任务务。

这一一技术使使USBB设备摆摆脱了对对PC的的依赖,大大大扩展展了USSB的应应用范围围,并结结合USSB2..0高速速传输技技术,严严重威胁胁到IEEEE113944的市场场三、 UUSB的的设计目目标 USBB的设计计有三大大目标:: (1)计计算机与与之之间的连连接:对对声音音音频和压压缩视频频等实时时数据给给予充分分支持,可可以广泛泛地连接接计算机机和话,这一一应用目目标到目目前为完完全实现现 (2))易用性性:强调调即插即即用、总总线供电电等特性性,以方方便用户户使用 (3)端端口扩充充:提供供快速、双双向、统统一且价价格低廉廉的串行行接口,可可以满足足PC机机发展的的现在和和未来的的需要 从中我我们可以以看出,UUSB标标准的制制定从市市场出发发,立足足于满足足用户的的实际应应用需求求,尽管管它的性性能指标标并不突突出,但但正是这这一点使使得它获获得了极极大的成成功四、 USBB的性能能特点(1)终终端用户户的易用用性:·为连接接电缆和和连接头头提供了了单一模模型;·电气特特性与用用户无关关;·自我检检测外设设,自动动地进行行设备驱驱动设置置;·可动态态连接,动动态重置置外设。

(22)广泛泛的应用用性:·适应不不同设备备,提供供低速传传输(11.5MMbpss)和全全速传输输(122Mbpps );;·支持对对多个设设备的同同时操作作;·可同时时操作1127个个物理设设备;·在主机机和设备备之间可可以传输输多个数数据和信信息流;;·支持多多功能的的设备;;·利用低低层协议议,提高高了总线线利用率率 (33)同步步传输带带宽:·确定的的带宽和和低延迟迟适合电系统统和音频频的应用用;·同步工工作可以以利用整整个总线线带宽 (44)灵活活性:·可以选选择一系系列大小小的数据据包,允允许对设设备缓冲冲器大小小进行选选择;·通过指指定数据据缓冲区区大小和和执行时时间,支支持各种种数据传传输率;;·通过协协议对数数据流进进行缓冲冲处理 (55)健壮壮性:·出错处处理/差差错恢复复机制在在协议中中使用;;·对用户户的感觉觉而言,热热插拔是是完全实实时的;;·可以对对有缺陷陷设备进进行认定定 (66)与PPC产业业的一致致性:·协议的的易实现现性和完完整性;;·与PCC机的即即插即用用的体系系结构的的一致;;·对现存存操作系系统接口口的良好好衔接 (77)成本本低廉·以低廉廉的价格格提供11.5兆兆比特率率的子通通道设施施;·将外设设和主机机硬件进进行了最最优化的的集成;;·促进了了低价格格的外设设的发展展;·廉价的的电缆和和连接头头;·运用了了商业技技术。

四、 USBB系统组组成一个USSB系统统被定义义为三个个部分::USBB的互连连、USSB设备备和USSB主机机一) USSB的互互连 USBB的互连连是指UUSB设设备与主主机之间间进行连连接和通通信的操操作,主主要包括括以下几几方面::· 总线线的拓扑扑结构::指明了了USBB设备与与主机之之间的连连接方式式;· 数据据流模式式:描述述了数据据在系统统中通过过USBB从产生生到使用用方的流流动方式式;· USSB的调调度:UUSB提提供多个个设备共共享的连连接,对对USBB设备必必须进行行调度以以分配带带宽图1(a) USB物理连接逻辑设备备 主机机逻辑设备备 逻辑辑设备逻辑设备备逻辑设设备图1(bb) UUSB逻逻辑连接接USB物物理互连连方式如如图1(aa)所示示,是一一种星形形级连结结构集集线器(HHub)位位于每级级星形的的中心这这种集线线器级连连的方式式使得外外设的扩扩展很容容易(UUSB协协议规定定最多允允许5级级集线器器进行级级连;UUSB逻逻辑互连连方式如如图1(bb)所示示,各个个设备好好象是与与主机直直接相连连的,它它们之间间的通信信不用关关心物理理连接方方式。

数据流流模式对对于USSB设备备的实现现是最关关键的,我我们将在在下一章章对其单单独进行行描述UUSB的的调度是是针对多多个设备备互连的的,不属属于功能能设备开开发者需需要关心心的内容容,在此此不作描描述二) USSB设备备 USBB设备包包括USSB集线线器和功功能设备备(Fuuncttionn)两大大类它它们都必必须有标标准的UUSB接接口,符符合USSB协议议,支持持标准的的USBB操作(如如配置,复复位等)它它们的描描述信息息也必须须具有UUSB协协议定义义的标准准格式集集线器为为USBB总线提提供扩展展和连接接;功能能设备是是具有一一定特殊殊应用功功能的设设备,它它能发送送数据到到主机,也也可以接接收来自自主机的的数据和和控制信信息三)UUSB主主机USB主主机是UUSB系系统的核核心在在一个UUSB系系统中只只有一台台主机主主机的UUSB接接口称为为USBB控制器器,通过过它主机机和外围围USBB设备进进行通信信在主主机中还还集成了了一个根根集线器器(Rooot Hubb)用于于直接与与外设相相连或与与一般UUSB Hubb级连主主机所具具有的功功能包括括:检测测USBB设备的的插入和和拔出;;管理主主机与设设备之间间的数据据流,对对设备进进行必要要的控制制;收集集各种状状态信息息;对插插入的设设备供电电。

第一章UUSB数数据传输输协议一、USSB电气气特征及及电平信信号 USBB采用四四线电缆缆,由电电源线(VVbuss )、地地线(GGND)和和两根数数据线(DD和D)组组成,如如图1--1所示示数据据线传输输差模信信号,以以降低噪噪声干扰扰可以以看出,任任何时刻刻USBB总线上上最多只只能有一一位数据据在传输输,所以以USBB是一种种完全按按照时序序进行控控制和数数据传输输的总线线图1-1 USB电缆结构USB具具有差分分NRZZI(不不归零倒倒置)代代码格式式在这这种NRRZI波波形中,dd (nn-1)位位和d (n)位位之间如如果有状状态变化化(称为为过渡),就就被解码码为一个个二进制制b(nn) ==0的数数据位,没没有过渡渡就被解解码为一一个二进进制b (n) =1的的数据位位,如图图1-22所示图1-2 NRZI数据编码 为了确确保信号号发送的的准确性性,当在在USBB上发送送一个包包时,传传输设备备就要进进行位插插入操作作所谓谓位插入入操作是是指在数数据被编编码前,在在数据流流中每六六个连续续的 ‘1’后插入入一个‘‘0’,从而而强迫NNRZII码发生生变化,位位插入操操作由传传输端强强制执行,任任何数据据都将被被执行位位插入操操作,如如图1--3所示示。

接收收端必须须能对NNRZII数据进行行解码,识识别插入入位并去去掉它们们 图1-3 位插入数据编码序列 原始数据 位插入数据 同步块 数据包NRZI编码后的数据位插入在全速传传输中,数数据K态态表示差差分1,数数据J态态表示差差分O,而而在低速速传输中中则正好好相反二、 UUSB数数据流模模型 本数据据流模型型完全引引自参考考文献,以以下不再再标注一)UUSB主主机/设设备分层层模型 数据流流发生在在主机和和USBB设备之之间,我我们以常常用的分分层模型型介绍UUSB系系统的数数据流,如如图1--4所示示它能能使不同同层次的的实现者者只关心心USBB相关层层次的特特定功能能细节,而而不必掌掌握从硬硬件结构构到软件件系统的的所有细细节,因因此,不不同层次次的实现现者其开开发工作作量将会会有极大大的不同同 主机分分客户软软件层,UUSB系系统软件件层和UUSB主主机控制制器设设备分UUSB总总线接口口层,UUSB设设备层和和功能层层USSB系统统软件是是指在某某一操作作系统上上支持UUSB的的软件,它它独立于于USBB设备和和客户软软件;UUSB主主机控制制器是主主机方的的USBB接口,它它是软硬硬件的总总和。

从从图1--4上我我们可以以看出,UUSB总总线接口口层提供供主机和和设备之之间物理理的连接接,而从从逻辑上上看,UUSB设设备层与与USBB系统软软件层对对应,它它们完成成USBB设备一一些基本本的、共共有的工工作;功功能层和和客户软软件层通通信,它它们实现现单个UUSB设设备特有有的功能能在编编程时,客客户软件件通过UUSB系系统软件件提供的的编程接接口操作作对应的的设备,而而不是直直接通过过操作内内存或II/O口口来实现现,这一一点是UUSB和和PCII总线的的显著差差异所所有USSB设备备只有在在被主机机承认并并配置后后才可进进入系统统工作,它它们实现现的功能能不同,但但对主机机都提供供一个同同样的接接口 在系统统软件层层和USSB设备备层之间间有一条条缺省管管道,主主机与设设备的端端点O通通信,用用于实现现一些UUSB设设备的基基本控制制功能在在客户软软件层和和功能层层有多组组通信管管道,它它们实现现USBB设备的的特定通通信功能能我们们所述的的这些通通信都是是从逻辑辑上分析析的,实实际的信信号的物物理流程程如图11-4所所示,以以信号从从主机流流向设备备为例::客户软软件经UUSBDD传输给给系统软软件的数数据是不不具有UUSB通通信格式式的数据据。

系统统软件对对这些数数据分帧帧,实现现带宽分分配策略略,然后后交给UUSB主主机控制制器主主机控制制器对数数据按UUSB格格式打包包,实现现传输事事务,再再经串行行接口引引擎(SSIE)后后将数据据最终转转化为符符合USSB电气气特征的的差分码码从USSB电缆缆发往设设备数数据到达达设备后后是一个个逆过程程,在设设备层中中将数据据解码,发发往不同同端点的的数据包包被分开开并正确确排列,帧帧结构被被拆除,数数据成为为非USSB格式式的,最最后数据据送往各各端点,完完成通讯讯在主机方方我们还还发现有有HCDD和USSBD两两个接口口层HHCD的的全称为为主机控控制驱动动(Hoost Conntrool DDrivver),它它是对主主机控制制器硬件件的一个个抽象,提提供和UUSB系系统软件件之间的的软件接接口不不同种PPC的主主机控制制器硬件件实现并并不一样样,但有有了HCCD,UUSB系系统软件件就可以以不必理理会各种种HCDD具有何何种资源源,数据据如何打打包等问问题尤尤其是HHCD隐隐藏了怎怎样实现现根集线线器的细细节,这这有利于于USBBD的简简化二)端端点端点在硬硬件上就就是一个个有一定定深度的的先入先先出堆栈栈(FIIFO)。

主主机和设设备的通通信最终终作用于于设备上上的各个个端点每每一个UUSB设设备都有有一组互互相独立立的端点点每一一个设备备都有一一个由主主机分配配的唯一一的地址址,而各各个设备备上的端端点都有有由设备备确定的的端点号号(Enndpoointt Nuumbeer)和和通信方方向每每个端点点只支持持单向通通信:它它要么是是输入(IInpuut)端端点,数数据流方方向从设设备到主主机;要要么是输输出(OOutpput)端端点,数数据流方方向从主主机到设设备设设备地址址、端点点号和通通信方向向三者结结合起来来就唯一一确定了了一个端端点在在设备配配置时,它它必须报报告主机机它的各各个端点点的特性性,包括括端点号号,通信信方向,端端点支持持的最大大包大小小,带宽宽要求以以及支持持的通信信方式等等其中中端点支支持的最最大包大大小称为为数据有有效负载载,是个个重要的的概念端端点O比比较特殊殊,它实实际是由由输入和和输出两两个端点点组成每每个设备备都必须须有端点点0,主主机和它它建立缺缺省控制制管道,用用于设备备枚举和和实现对对设备的的一些基基本的控控制功能能除了了端点00,其余余的端点点在设备备配置之之前是不不能和主主机通信信的。

只只有设备备在它的的配置描描述符中中向主机机报告了了这些端端点及其其特性,并并由主机机确认后后,这些些端点才才被激活活三)管管道 管道(PPipee)是设设备上端端点和主主机上的的客户软软件的连连接因因此,每每条管道道和端点点的特性性有直接接关系,它它只能支支持一种种通信方方式客客户软件件通常通通过向主主机的操操作系统统发I//O请求求包(IIRP)来来要求和和某一条条管道进进行数据据传输,而而后它进进行等待待,直到到系统通通知它传传输成功功或失败败USSB协议议规定了了流管道道(Sttreaam PPipee)和消消息管道道(Meessaage Pippe)两两种管道道,其中中消息管管道有定定义的结结构缺缺省控制制管道属属于消息息管道1.流管管道流管道中中的数据据是流的的形式,也也就是该该数据的的内容不不具有UUSB要要求的结结构数数据从流流管道一一端流进进的顺序序与它们们从流管管道另一一端流出出时的顺顺序是一一样的,流流管道中中的信息息流总是是单方向向的,或或者流进进,或者者流出流流管道支支持同步步传输,中中断传输输和批传传输,这这些在稍稍后将作作进一步步解释2.消息息管道 消息管管道与端端点的关关系同流流管道不不同,它它的数据据格式由由USBB协议规规定。

首首先,主主机向UUSB设设备发出出一个请请求;接接着,就就是数据据的传输输;最后后,是一一个状态态阶段为为了能够够容纳请请求/数数据/状状态的变变化,消消息管道道要求数数据有一一个格式式(该格格式将在在第三节节中详细细介绍),此此格式保保证了命命令能够够被可靠靠地传输输和确认认消息息管道需需要双方方向的信信息流,所所以有两两个相同同号码的的端点,一一个用于于输入,一一个用于于输出两两个号码码必须相相同缺缺省控制制管道就就是一个个消息管管道消消息管道道仅支持持控制传传输三)传传输类型型 USBB定义了了4种传传输类型型:控制制传输、批批传输、等等时传输输和中断断传输由由于我们们的应用用只涉及及控制传传输,故故只对这这种传输输类型作作进一步步的描述述 控制传传输用于于支持在在客户软软件和它它的应用用之间传传输设置置信息、命命令信息息、状态信息等等它由由以下三三个事务务组成::·建立事事务:建建立联系系,把请请求信息息从主机机传到它它的应用用设备;;·零个或或多个数数据传输输事务::按照上上一事务务中指明明的方向向传输数数据;·状态事事务:将将传输状状态信息息从应用用设备传传回到主主机。

图1-44 USSB主机机/设备备数据流流通信模模型 USBB设备必必须实现现缺省控控制管道道,并将将它设置置成一个个消息管管道这这个管道道由USSB系统统软件使使用UUSB设设备的确确认信息息、状态态信息以以及控制制信息由由该管道道传输 USBB设备框框架定义义了标准准的,设设备级的的或由销销售商提提供的请请求,这这些请求求可操作作设备的的状态UUSB设设备框架架又定义义了一些些描述符符(Deescrripttor),用用于存放放USBB设备的的各种信信息控控制机制制提供访访问设备备描述器器和请求求操作设设备的机机制,所所以使用用控制传传输的数数据必须须具有UUSB定定义的数数据格式式 应用层层和相应应的客户户软件不不能为控控制传输输指定总总线访问问频率和和带宽这这由USSB系统统软件从从全局优优化角度度加以决决定但但不管有有没有控控制传输输发生,系系统软件件至少需需要将110%的的带宽留留给控制制传输 控制传传输使用用的是消消息管道道上的双双向信息息流所所以,一一旦一个个控制管管道被建建立之后后,这个个管道就就使用具具有某个个端点号号的两个个端点,一一个输入入,一个个输出。

控控制传输输的数据据格式将将在第三三节中作作详细描描述 USBB规定了了控制传传输所能能接收或或发送的的最大数数据净负负荷区长长度高高速设备备定义的的最大数数据净负负荷区长长度为88、166、322或644字节,控控制传输输端点必必须支持持规定的的最大长长度中的的一个,设设备在自自己的设设置信息息中报告告该端点点允许的的最大净净负荷区区长度;;低速设设备的数数据净负负荷区的的长度只只能是88字节这这个规定定是针对对这些数数据包中中的数据据净负荷荷区的,不不包括包包中的协协议要求求的额外外信息 当端点点做了以以下两件件事时,控控制传输输的数据据阶段可可被认为为结束::·已传了了由建立立阶段指指定的数数据量·传了一一个数据据包,它它的长度度为O或或它的数数据区长长度小于于最大长长度三、 UUSB协协议层USB协协议层描描述了UUSB主主机与UUSB设设备交互互时的语语法和协协议,从从中定义义了字段段、包、事事务和传传输的结结构,以以及由字字段到包包、由包包到事务务、由事事务到传传输所组组成的组组织层次次关系本本节中我我们将从从底向上上展示UUSB的的数据结结构一)字字段格式式 数据位位被发送送到总线线的时候候,首先先是最低低有效位位(LSSB),跟跟着是下下一个最最低有效效位,最最后是最最高有效效位(MMSB)。

在在本文以以下描述述中,数数据均以以下列形形式给出出:包中中单个的的位和字字段从左左到右的的顺序就就是它们们通过总总线的顺顺序1 . 同步步字段任何包都都是从同同步(SSYNCC)字段段开始的的,同步步字段是是产生最最大的过过渡密度度的编码码序列同同步字段段作为空空闲状态态出现在在总线上上,后面面跟着以以NRZZI编码码的二进进制串“KJKKJKJJKK”通过过被定义义为8位位长的二二进制串串,输入入电路以以本地时时钟对齐齐输入数数据同同步字段段里的最最后两位位是同步步字段结结束的记记号,并并且标志志了包标标识符(PPID)的的开始2 .包包标识符符字段 所有包包的同步步字段后后都紧跟跟着包标标识符(PPID)如如图1--5所示示,包标标识符由由4位的的包类型型字段和和其后的的4位的的校验字字段构成成包标标识符指指出了包包的类型型包标标识符的的4位的的校验字字段可以以保证包包标识符符译码的的可靠性性,这样样包的余余项也就就能被正正确地解解释包包标识符符的校验验字段是是通过对对包类型型字段的的二进制制的求反反码产生生的,如如果4个个PIDD检验位位不是它它们的各各自的包包标识符符位的补补,则说说明存在在PIDD错。

图1-55包标识识符格式式包标识符符被分为为4个编编码组::标记,数数据,握握手和专专用如如表1--1所示示,包标标识符传传输的前前2位(PPID<)指指出了其其属于哪哪个组设设备通过过对包标标识符译译码来确确定包的的类型3 .地地址字段段 设备端端口使用用2个字字段;设设备地址址字段和和端口字字段设设备对地地址和端端口字段段都需要要进行译译码任任何一个个字段不不匹配,此此标记都都必须被被忽略另另外,对对未初始始化的端端口的访访问将使使得标记记被忽略略设备地址址(ADDDR)字字段通过过其地址址指定设设备,如如图1--6所示示,ADDDR<<6:OO>指定定了总共共1288个地址址由定定义可知知,每个个ADDDR值都都定义了了单一的的设备设设备在刚刚一复位位(Reesett)和加加电(PPoweer-uup)的的时候,其其地址默默认值为为零,并并且必须须由主机机在枚举举过程(EEnummeraatioon PProccesss)中编编程设设备地址址零被用用作为缺缺省地址址,不可可被分配配作任何何别的用用途如图1--7所示示,在设设备拥有有多个端端口的时时候通过过附加的的4位端端口(EENDPP)字段段对端口口进行寻寻址。

除除了端口口地址00之外,端端口个数数是由设设备决定定的所所有的设设备都必必须在端端口O提提供一个个控制管管道(缺缺省控制制管道)对对于低速速设备,每每个设备备最多提提供3个个管道::在端口口0的控控制管道道加上22个附加加管道(或或是2个个控制管管道,或或是1个个控制管管道和11个中断断端口,或或是2个个中断端端口)全全速设备备可以支支持最多多可达116个的的任何类类型的端端口图1-66地址字字段图1-77端口字字段表1-11 PPID 类型PID 类型PID 名PID[[3:00]描述标记Tokeen输出(OOUT)输入(IIN)帧开始(SSOF)建立(SSETUUP)00011B10011B01011B11011B在主机到到功能部部件的事事务中有有地址++端口号号在功能部部件到主主机的事事务中有有地址++端口号号帧开始标标记和帧帧号在主机到到功能部部件建立立一个控控制管道道的事务务中有地地址+端端口号数据DATAA数据0(DDATAA0)数据1(DDATAA1)00111B10111B偶数据包包PIDD奇数据包包PIDD握手Handdshaake确认(AACK)不确认(NNAK)停止(SSTALLL)00100B10100B11100B接收器收收到无措措数据包包;接收设备备部不能能接收数数据,或或发送设设备不能能发送数数据;端口挂起起,或一一个控制制管道请请求不被被支持。

专用Specciall前同步(PPRE)11000B主机发送送的前同同步字打打开到低低速设备备的下行行总线通通信4 .帧帧号字段段帧号字段段是一个个11位位的字段段,主机机每过一一帧就将将其内容容加一帧帧号字段段达到其其最大值值7FFFH时归归零,且且它仅每每个帧最最初时刻刻在SOOF标记记中被发发送,可可以用来来统计数数据传输输情况5 .数数据字段段 包含数数据字段段的数据据包大小小随着传传输类型型而变化化,但所所包含的的数据必必须是整整数个字字节图图1-88为多字字节显示示格式每每个字节节的范围围内的数数据位移移出时都都是最低低位(LLSB)在在前图1-88数据字字段格式式6 .循循环冗余余校验循环冗余余校验(CCRC)被被用来在在标记和和数据包包中保护护所有的的非PIID字段段二)包包格式1 .标标记包 图1--9显示示了标记记包的字字段格式式标记记由PIID,AADDRR和ENNDP构构成,其其中PIID指定定了包是是输入,输输出还是是建立类类型,输输入PIID定义义了从设设备到主主机的数数据事务务,输出出和建立立PIDD定义了了从主机机到设备备的数据据事务;;对于输输出和建建立事务务,地址址和端口口字段唯唯一地确确定了接接下来将将收到数数据包的的端口,对对于输入入事务的的,这些些字段唯唯一地确确定了哪哪个端口口应该传传输数据据包。

只只有主机机能发出出标记包包图1-99标记包包格式 如图11-9所所示,标标记包包包括了覆覆盖地址址和端口口字段的的5位CCRCCCRC并并不覆盖盖PIDD,因为为它有自自己的校校验字段段标记记和帧开开始(SSOF)包包是由33个字节节的包字字段数据据后面的的包结束束(EOOP,EEnd of Pacckett)界定定的如如果包被被译码为为合法标标记或SSOF,但但却没有有在3个个字节之之后以EEOP终终止,则则它被认认为是无无效的,并并被接收收器忽略略2 .帧帧开始(SSOF)包包主机以每每毫秒一一次的额额定速率率发出帧帧开始(SSOF)包包如图图1-110中所所示,SSOF包包是由指指示包类类型的PPID和和其后的的11位位的帧号号字段构构成图1-110帧开开始包3 .数数据包 如图11-111所示,数数据包由由PIDD,包括括至少OO个字节节数据的的数据区区和CRRC构成成有两两种类型型的数据据包,根根据不同同的PIID:DDATAA0和DDATAA1来识识别两两种数据据包PIID是为为了支持持数据切切换同步步而定义义的数数据必须须以整数数的字节节数发出出数据据CRCC仅通过过对包中中的数据据字段计计算而得得到,而而不包括括PIDD,它有有自己的的校验字字段。

图1-111数据据包格式式4 .握握手包 如图11-122所示,握握手包仅仅由PIID构成成,用来来报告数数据事务务的状态态,以及及在数据据事务中中表示数数据成功功接收,命命令的接接收或拒拒绝,流流控制和和停止条条件只只有支持持流控制制的事务务类型才才能返回回握手信信号握握手总是是在事务务的握手手阶段中中被返回回,也可可在数据据阶段代代替数据据被返回回握手手包由11个字节节的包字字段后的的EOPP确定界界限图1-112握手手包(三)事事务格式式 事务格格式根据据端口类类型而变变化有有4种端端口类型型:批处处理(BBulkk)、控控制(CConttroll)、中中断(IInteerruupt)和和同步(IIsocchroonouus)本本文仅描描述应用用所涉及及到的控控制端口口类型 一个典典型的控控制传输输需要33种不同同的事务务:建立立、数据据和状态态事务图图1-115显示示了三种种不同的的控制传传输事务务序列,控控制读和和写相似似,由建建立、数数据和状状态事务务组成在在某些情情况下,也也可以有有无数据据事务阶阶段的控控制传输输,它仅仅由建立立和状态态阶段构构成。

图1-115控制制传输事事务序列列 建立事事务用于于向功能能部件的的控制端端口传输输信息图图1-116说明明了建立立事务的的格式建建立包总总是在建建立事务务的数据据阶段上上使用DDATAA0 PPID收收到建立立包的设设备必须须接收建建立数据据并用AACK应应答,如如果数据据被损坏坏,则丢丢弃数据据且不返返回握手手 控制传传输的数数据事务务发生在在建立事事务阶段段之后,由由一个以以上的输输入或输输出事务务构成所所有的数数据事务务阶段里里的事务务都必须须有相同同的方向向(即全全部输入入或者全全部输出出)在在数据阶阶段中要要发送的的数据的的数量和和其方向向在建立立事务里里被指定定如果果数据的的数量超超过了先先前确定定的数据据包大小小,数据据在支持持最大的的包大小小的多个个事务中中被发送送(输入入或者输输出)任任何剩下下的数据据都作为为剩余在在最后的的事务中中被发送送状态事务务是控制制传输的的最后一一个事务务阶段,报报告整个个控制传传输的结结果是成成功还是是失败如如果成功功,则状状态事务务中返回回零长度度数据包包(即只只有PIID和CCRC校校验位);;如果失失败,则则对于控控制写,设设备在数数据包阶阶段就返返回NAAK或者者STAALL,此此时主机机不再返返回交换换包;对对于控制制读,主主机依然然发送一一个零长长度数据据包,设设备返回回NAKK或者SSTALLL。

状状态事务务的方向向是以相相对前面面的事务务阶段的的数据流流方向来来确定的的,并且且总是使使用DAATA11 PIID图1-116建立立事务结结构第二章UUSB驱驱动程序序概述本章首先先简要介介绍了UUSB驱驱动程序序的Wiin322程序模模型(WWDM),然然后介绍绍了USSB主机机体系结结构,最最后详细细介绍了了本设计计的驱动动程序及及应用程程序的编编写一、 WWDM驱驱动程序序模型简简介 随着WWinddowss98和和Winndowws200OO成成为主流流操作系系统,wwinddowss驱动程程序模型型(WDDM)取取代了原原先的VVxD技技术,成成为设备备驱动程程序的主主流模式式WDDM提供供灵活的的方式,简简化了驱驱动程序序的开发发,并能能够对UUSB、IIEEEE 13394、PPCI等等新硬件件标准提提供充分分支持,并并增强了了驱动程程序的可可靠性和和可维护护性 WDMM有两种种运行模模式,即即内核(KKernnel)模模式和用用户(UUserr)模式式在内内核模式式下,程程序的运运行不受受操作系系统的任任何限制制,对II/O设设备有完完全的访访问权,能能够访问问任何虚虚地址和和控制虚虚拟内存存硬件;;在用户户模式下下,操作作系统提提供某种种机制,可可以限制制程序的的各种II/O操操作,硬硬件也可可以防止止特权指指令的执执行,并并进行内内存和II/O空空间检查查(关于于这两种种模式的的运行过过程涉及及到操作作系统核核心和微微处理器器构架,是是一个大大得多的的话题,在在此不作作讨论)。

WDMM驱动程程序模型型分两个个方面,除除了核心心模式描描述设备备驱动程程序的标标准结构构外,WWDM还还为常见见类型的的设备实实现了一一个模块块化的、分分层次类类型的总总线驱动动程序和和类驱动动程序总总线驱动动程序实实现了支支持USSB、IIEEEE13994协议议等类类驱动程程序是为为实现标标准Wiindoows功功能提供供条件WWDM对对标准类类接口的的支持减减少了WWinddowss 988和Wiindoows NT所所需的设设备驱动动程序的的数量和和复杂性性 以往在在Winndowws988和Wiindoows NT两两个平台台上分别别运行时时需要为为同一个个设备编编写两个个截然不不同的驱驱动程序序,但WWDM是是跨平台台的,因因而只需需要编写写一个WWDM驱驱动程序序就可以以了 WDMM驱动程程序是分分层的,即即不同层层上的驱驱动程序序有着不不同的优优先级,这这使得II/0请请求进程程更加明明了,而而Winndowws 99x下的的VxDD则没有有此结构构(如图图2-ll所示) WDMM引入了了功能设设备对象象FDOO(Fuuncttionnal Devvicee Obbjecct)与与物理设设备对象象PDOO(Phhysiicall Deevicce OObjeect)两两个新类类来描述述硬件,一一个PDDO对应应一个实实际硬件件。

一个个硬件只只允许有有一个PPDO,却却可以拥拥有多个个FDOO,在驱驱动程序序中直接接操作的的不是硬硬件而是是相应的的PDOO与FDDO在在用户态态和内核核态通信信方面,系系统为每每一个用用户请求求打包形形成一个个IRPP结构,将将其发送送至驱动动程序,并并通过识识别IRRP中的的PDOO来区别别是发送送给哪一一个设备备的另另外,在在驱动程程序的加加载方面面,WDDM不通通过驱动动程序名名称识别别,而是是通过一一个1228位的的全局唯唯一标识识符GUUID来来实现驱驱动程序序的识别别FIDOFDOFIDOPDO上层过滤器驱动程序功能驱动程序下层过滤器驱动程序总线驱动程序IRP图2-11 WDDM中设设备对象象和驱动动程序的的层次结结构 在WDDM驱动动程序的的工作方方式和其其他模式式的驱动动程序模模型有很很多差别别在WWDM驱驱动程序序中,即即插即用用(PnnP)管管理器告告知何时时向操作作系统添添加或删删除一个个设备它它使用操操作系统统安装的的INFF文件查查找新设设备的正正确驱动动程序,并并按照驱驱动程序序的要求求创建设设备对象象堆栈,而而其它模模式驱动动程序必必须发现现它自己己的设备备,使用用专门的的安装程程序安装装;另外外在细节节上也存存在很多多区别,其其它模式式驱动程程序参数数一般由由注册表表提供,在在DriiverrEnttry里里调用读读注册表表的函数数,然后后根据注注册表再再调用CCreaateDDeviice创创建设备备,但是是WDMM一般不不是这样样,在加加载的时时候PnnP管理理器调用用AdddDevvicee入口点点创建设设备,一一般在DDrivverEEntrry里创创建的是是一个与与设备或或者对象象毫无关关系的虚虚拟设备备,用于于管理与与Winn32的的通讯;;另外整整个设备备驱动树树也发生生了改变变,从而而使安装装程序发发生了很很大的改改变。

WWDM本本身的PPnP管管理器被被抽象地地提升到到了ROOOT的的地位,负负责所有有的总线线驱动程程序的加加载总总线驱动动程序则则负责遍遍历所有有位于总总线上的的设备,并并且为每每个设备备创建相相应的设设备对象象 一个完完整的驱驱动程序序要完成成以下工工作:初初始化、创创建与删删除设备备、处理理应用层层程序的的打开和和关闭句句柄的请请求、处处理应用用层程序序的输入入/输出出请求、串串行化对对设备的的访问、访访问硬件件、调用用其他驱驱动程序序、取消消I/OO请求、超超时I//O请求求、处理理可热插插拔设备备的加入入和删除除事件、电电源管理理和WMMI二、 UUSB主主机驱动动程序体体系结构构 作为一一种符合合WDMM的驱动动程序,UUSB总总线驱动动程序软软件堆栈栈内的层层间通信信也使用用IRPP(l//O请求求包)的的机制但但实际的的USBB驱动程程序使用用URBB(USSB请求求块)结结构向其其硬件设设备发送送请求UUSB驱驱动程序序高度依依赖其总总线驱动动程序(UUSBDD.SYYS),而而不直接接使用硬硬件抽象象层(HHAL)函函数与硬硬件通信信,这是是USBB驱动程程序的显显著特点点,它提提高了系系统的可可靠性和和可维护护性。

USBB总线主主机通过过主机控控制器与与USBB设备进进行交互互Wiindoows对对构成一一个USSB总线线主机的的不同软软件部分分进行了了明确的的划分,如如图2--2所示示,其中中USBB客户软软件包含含了不同同总线设设备的设设各驱动动程序,它它通过WWinddowss提供的的USBB总线接接口与根根集线器器驱动程程序进行行通信,而而根集线线器驱动动程序则则要通过过通用串串行总线线驱动程程序接口口(USSBDII)来实实现与通通用串行行总线驱驱动程序序(USSBD)的的通信(客客户也可可以通过过USBBDI直直接同UUSBDD交互)然然后,UUSBDD会选择择两种主主控制器器驱动(HHCD)方方式之一一来同其其下方的的主控制制器通信信最后后,主控控制器会会直接实实现对UUSB物物理层总总线的访访问HCD与与USBBD提供供了基于于不同抽抽象层次次的USSB软件件接口,它它们协同同工作,共共同完成成USBB总线系系统能够够的功能能HCCD提供供抽象的的主机控控制器,对对主机控控制器所所见到的的USBB总线系系统的数数据传输输进行了了抽象::USBBD提供供抽象的的设备,对对USBB客户软软件和总总线外部部设备之之间的数数据传输输进行了了抽象。

UUSB总总线系统统模型简简化了UUSBDD客户和和与USSB总线线设备之之间的数数据传输输过程,并并且该模模型可以以看作是是面向UUSB总总线接口口对USSB总线线设备进进行控制制的入口口它们们均由操操作系统统提供并并维护,对对于客户户软件是是不透明明的一)主主机控制制器驱动动程序(HHCD) HCDD提供软软件界面面HCDDI(HHCD Intterffacee)对主主机控制制器实现现必要的的抽象,以以隐藏主主机控制制器硬件件的实现现细节,为为上层的的USBB驱动程程序提供供统一的的接口HHCD是是USBB总线的的最底层层,USSBD将将客户的的请求映映射到相相关的HHCD,由由HCDD转交给给主机控控制器硬硬件执行行主机机控制器器提供一一条高速速的数据据存取物物理总线线,它负负责所有有USBB物理层层的总线线操作,主主要有::状态控控制、串串行化和和反串行行化、帧帧产生、差差错控制制和数据据传输等等图2-22 USSB驱动动程序体体系结构构 如图22-2所所示,UUHCDD和OppenHHCI是是为不同同的USSB总线线设备供供应商提提出的用用于管理理系统中中的USSB总线线主控制制器的两两种接口口,Wiindoows提提供了对对这两种种接口的的支持,设设备供应应商可以以根据情情况选择择实现其其中的一一种,WWinddowss在USSB总线线和主机机控制器器之间放放置了一一个PCCI总线线枚举器器,它负负责在检检测到系系统中存存在一个个通用串串行总线线时,装装载适当当的USSB总线线系统软软件。

二) USBB总线驱驱动程序序(USSBD) 正如我我们前面面介绍的的,USSBD是是USBB。

下载提示
相关文档
正为您匹配相似的精品文档