一种基于USB协议的数据采集系统02.pdf

上传人:qwe****56 文档编号:74644490 上传时间:2023-02-27 格式:PDF 页数:5 大小:317.95KB
返回 下载 相关 举报
一种基于USB协议的数据采集系统02.pdf_第1页
第1页 / 共5页
一种基于USB协议的数据采集系统02.pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《一种基于USB协议的数据采集系统02.pdf》由会员分享,可在线阅读,更多相关《一种基于USB协议的数据采集系统02.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、USB协议及其接口实现罗钧桂杰出(重庆大学光电技术及系统国家教育部重点实验室400044)摘要U SB总线接口现已被广泛应用于高速或大量数据存贮的系统中,文章从U SB总线协议出发,对通用串行总线的原理、特点做了详细的论述,并从协议应用角度以philips的U SB接口芯片PD I U SBD12为例讨论了U SB主机端和设备端开发的基本方法。关键词U SB协议外设主机USB Protocol and Its I mplement of USB InterfaceL uoJunGui Jiechu(OT ES L aboratory,Chongqing U niv,Chongqing 4000

2、44,China)AbstractU SB interface has been w idely used in the system required high speed or mass storage.It discussesthe principle and characteristic of universal serial bus to begin w ith protocol of universal serial bus,and discussesthe ways to development of U SB host and device interface w ith a

3、example of PhilipsU SB interface chipset in theviewpoint of protocol application.Key wordsU SBProtocolDeviceHost1引言111USB总线协议概述U SB总线属一种轮讯方式的总线,主机控制器初始化所有的数据传输,并按制定好的原则传输数据12。每一总线执行动作最多传送三个数据包。在每次传送开始时,主机控制器发送一个描述传输运作的种类、方向(由主机到设备或由设备到主机)、U SB设备地址和端口地址的U SB数据包,这个数据包通常称为令牌包(token packet)。然后发送端开始发送包含信

4、息的数据包或表明没有数据传送。U SB设备从解码后的数据包的适当位置取出属于自己的数据,接收端也要相应发送一个握手的数据包表明是否传送成功(同步传输除外)。3种数据包的格式如表1所示。发送端和接收端之间的U SB数据传输模型可描述为一个通道(pipe)。U SB有两种类型的通道:流和消息。流的数据不像消息的数据,它没有U SB所定义的表1数据包格式类型令牌包数据包握手包区P I D ADDR ENDP CRCP I D DATA CRCP I D位数bits8745808192168结构,流通道的作用在于可由系统的传输进度动态控制,这样就保证了同步,并防止由于使用握手包应答信号而造成的硬件缓冲

5、区的欠载或溢出以及由此造成的交换率下降。通道包含数据带宽、传送服务类型,端口特性(如方向和缓冲区大小)等信息。多数通道在U SB设备设置后就形成了。U SB中有一个特殊的通道缺省控制通道,它属于消息通道,当设备一启动即存在,从而为设备的设置、查询状况和输入控制信息提供一个入口。在物理结构上,设备通过Hub连到主机上。但在逻辑上,主机是直接与各个逻辑设备通信的,就好像它们是直接被连到主机上一样。一个U SB逻辑设备对U SB系统来说就是一个端点集合。端点可以根据它们实现的接口来分类。U SB系统软件通过一个缺省的控制通道来管理设备。而客户软件用通道束管理接口。通道束的一端为第25卷第4期增刊仪器

6、仪表学报2004年8月本文系重庆市科技攻关项目(200113013)。端点,一端为缓冲区。客户软件要求通信数据在主机上的一个缓冲和U SB设备上的一个端点之间进行。主机控制器或U SB设备(取决于数据传送方向)将数据打包后在U SB上传。由主机控制器(HC)协调何时用总线访问在U SB上传递数据。一个客户软件一般都通过I?O请求包(IRP)来要求数据传送。然后,或者等待,或者当传送完成后被通知。IRP的细节是由操作系统来指定的。客户软件提出与设备上的端点建立某个方向的数据传送的请求,IRP就可简单地理解为这个请求。一个客户软件可以要求一个通道回送所有的IRP。当关于IRP的总线传送结束时,无论

7、它是成功地完成,还是出现错误,客户软件都将获得通知说IRP完成了。112USB数据传输方式U SB体系结构包括4种基本的数据传输方式4。(1)同步传输:占用大量U SB带宽,以稳定的速率发送和接收实时的信息,例如语音数据的传输,又被称为实时流传输。(2)控制传输:在设备连接时用来对设备进行设置,还可对指定设备进行控制,如通道控制;它是双向传输,传输数据量小,但要求交付无损且强调实时效果。(3)中断传输:用于少量的、分散的、不可预知的数据传输。用来描述或匹配人的感觉或对特征反应的回馈。(4)批量传输:用于大量数据传送和接受,且没有对带宽和时间间隔的严格要求。如对打印机和扫描仪的数据传输。U SB

8、实行一种分块的带宽分配方案,如果外设超过当前带宽分配或等待时间要求,那么将拒绝访问。在中断和同步传输中可使用高达90%的总线带宽,剩余10%被保留用于控制传输。批量传输只能在带宽有效时进行。113传输过程的数据切换同步和重试在多事务中数据发送器和接收器之间的数据序列同步很重要,U SB提供了一种机制以保证这种同步。这种机制提供一种保证发送器和接收器正确地解释事务的握手时相的方法。同步通过DATAO和DATA 1的包标志符(P ID),以及分别从属于数据发送器和接收器的切换时序位的使用而完成:仅在接收器能接受数据并且收到带有正确的数据P ID的无错数据包的时候,接收器时序位才切换;而仅在数据发送

9、器收到合法的ACK握手的时候,发送器时序位才切换。数据发送器和接收器必须在事务开始的时候同步它们的时序位。使用的同步机制随着事务类型而变化。同步传输不支持数据切换同步。控制传送使用建立标记初始化主机和功能部件的时序位。如图1所示。主机向功能部件发送建立包,其后跟着输出事务。圆圈里的数代表发送器和接收器的时序位。功能部件必须接受数据并返回ACK。当功能部件接受事务的时候,它必须设置其时序位,以便主机和功能部件的时序位在建立事务的最后都等于1。图1建立初始化图2说明了有两个成功的事务的情况。在每个事务中,接收器比较发送器的时序位(在数据包P ID中编码为DATA 0和DATA 1)和接收器的时序位

10、。如果数据不能被接受,接收器必须发出NAK,并且,发送器和接收器的时序位保持不变。如果数据能被接受,并且接收器的时序位和P ID相匹配,则数据被接受,并且时序位被切换。没有数据包的两时相的事务不会使发送器和接收器改变其时序位。图2连续的传送图3说明了如果数据不能被接受,或者得到的数据包被损坏,接收器将根据情况发出NAK或STALL握手信号,或者超时(Timeout),并且,接收器将不切换其时序位。事务被返回NAK,然后被重试的情况。任何非ACK握手或是超时都将产生类似的重试动作。没有收到ACK握手的发送器,将不切换其时序位。其结果是失败的数据包事务使得发送器和接收器的时序位同步并不切换。然后事

11、务将被重试,如果成功,将引发发送器和接收器时序位的切换。发送器是根据其收到ACK握手确切地知道事务是否成功的最后并且唯一代理。图4所示的是丢失或者损坏的ACK握手使得发送器和接收器之间的暂时716第4期增刊U SB协议及其接口实现失去同步的情况处理。这里发送器在发出合法的数据包,且接收机成功地收到;但是ACK握手损坏。在事务i的最后,由它们各自的时序位间的失配可看出发送器和接收器暂时失去了同步。接收器已经收到了正确的数据,但是,发送器不知道它是否成功地发送了数据。在下一个事务中,发送器将重发使用DATA 0 P ID的先前的数据。接收器时序位和数据P ID将不匹配,于是接收器知道它以前接受了这

12、个数据。从而它丢弃此数据包且不切换其时序位。然后接收器发放ACK,使得发送器知道被重试的事务成功了。ACK的接收使得发送器切换其时序位。在事务i+1的开头,其时序位被切换,于是再一次同步了。图3重试不被确认的事务图4重试ACK被损图5U SB通信分层模型114USB系统通信模型U SB系统中的通信分层模型如图5所示。2USB设备端的接口设计U SB设备端一般由硬件接口芯片和软件组成,目前市场上U SB的接口产品有两种:一种是集成了U SB接口的单片机;另一种是专用的U SB接口芯片。前者由于集成了单片机,因此控制电路比较简单。如目前市场上比较流行的Cypress公司的EZ2U SB系列U SB

13、接口芯片,它内部嵌入了增强型的MCS251兼容微处理器,因此开发起来比较方便。后者由于是专用集成芯片,可移植性好,与其它芯片接口的通用性好。选用了专用集成芯片来处理U SB接口,对于系统处理器的选择就比较自由,可以使用单片机,也可以使用DSP等控制芯片。这类的接口芯片如Philips公司的PD IU SBD12等U SB接口芯片。现在又有了U SB210的接口芯片ISP1581等。下面以PD IU SBD12为例来说明设备端的开发。具体可参考文献1接口硬件的主要任务:检测新的进入事物。翻译以用于U SB的数据线的格式编码的接受到的信息。决定一个事物是否直接指向芯片的U SB地址。如果不是,则忽

14、略该事物。决定事物的类型(SETU P、IN或OU T)和设置终端寄存器的接受(RX)寄存器的一位来指示它是哪种类型。对接受到的字节,硬件也要做如下处理:保存有效的接受到的数据到中断的缓冲器或者切换一个寄存器位来指示在接受到的数据中有一个错误。计算CRC值,与接受到的CRC值做比较,然后在检测到一个错误时采取合适的动作。发送合适的交换信息给主机。对将要被发送的数据,硬件也要做如下处理:把保存在U SB缓冲器中的将要被传输的字节翻译成用于U SB的数据线上的格式。发送TX寄存器指定的字节数到U SB线以响应主机的请求。计算并随数据一起发送CRC位。在从主机接受到一个交换信息时触发一个中断。U S

15、B设备接口除了硬件外还必须有相应的固件816仪器仪表学报 第25卷代码,像PD IU SBD12这样的接口芯片,它是完全的中断方式来通知固件消息的。固件的代码流程如图6所示。3USB接口主机端实现主机在U SB系统中是唯一的,主机通信图如图7图6U SB中断服务程序流所示,它包括如下几层:U SB总线接口、U SB系统(U SBSystem)、U SB客户(Client)。位于U SB主机控制器与U SB系统软件之间的是主机控制器的驱动程序(HCD)。主机控制器可以有一系列不同的实现,而系统软件独立于任何一个具体实现。一个驱动程序可以支持不同的控制器,而不必特别了解这个具体的控制器。一个U S

16、B控制器的实现者必须提供一个支持它自己的控制器的主机控制器驱动器(HCD)实现;位于U SB系统软件与客户软件之间的接口是U SB驱动程序(U SBD),提供给客户软件一些方便的使用U SB设备的功能。311主机控制器功能概况主机控制器由硬件和软件组成,硬件部分由根集线器(Root Hub)和数据缓冲区(Data Buffer)构成。软件部分由Host Controller Driver(HCD)构成,HCD通过硬件软件接口与主控制器相互作用。下面是主机控制器所提供的功能的概况:(1)状态处理:作为主机的一部份,主机控制器报告及管理它的状态。图7主机通信图(2)串行化与反串行化:对于从主机输出

17、的数据,主机控制器将协议及数据信息从它原始形状转换为字位流。而对于主机接收的数据主机控制器进行反向操作。(3)帧产生:主机控制器以每1m s为单位产生SOF标志包。(4)数据处理:主机控制器处理从主机输入输出数据的请求。(5)协议引擎:主机控制器支持U SB具体规定的协议。(6)传输差错控制:所有的主机控制器在发现和处理已定义的错误时表现出相似的行为。(7)远程唤醒:所有的主机控制器都应具有将总线置于挂起状态及在远程唤醒事件下重新启动的能力。(8)集线器:集线器提供了标准的将多个U SB设备连到主机控制器的功能。(9)主机系统接口:主机控制器在主机系统控制器之间建立一个高速的数据通道。916第

18、4期增刊U SB协议及其接口实现312USB设备驱动程序开发U SB系统驱动程序采用分层结构模型:较高级的U SB设备驱动程序和较低级的U SB函数层,其中U SB函数层由两部分组成:较高级的通用串行总线驱动模块(U SBD)和较低级的主控制器驱动程序模块(HCD)。其中U SB函数层(U SBD及HCD)由W in2dow s98提供,负责管理U SB设备驱动程序和U SB控制器之间的通信;加载及卸载U SB驱动程序;与U SB设备通用端点建立通信来执行设备配置、数据与U SB协议框架和打包格式的双向转换任务。有时用W in2dow s自带的函数可能还不能满足要求,就需要用DDK或W IND

19、R IVER等开发工具设计专用的U SB设备驱动程序。一般由4个模块组成:初始化模块、即插即用管理模块、电源管理模块以及I?O功能实现模块。初始化模块提供一个DriverEntry入口点来执行大量的初始化函数。即插即用管理模块实现U SB设备的热插拔及动态配置。当硬件检测到U SB设备接入时,W indow s98查找相应的驱动程序,并调用它的DriverEntry例程,PnP管理器调用驱动程序的AddDevice例程,告诉它添加了一个设备;然后,驱动程序为U SB设备建立一个FDO(功能设备对象),在此处理过程中,驱动程序收到一个IRPMNSTARTDEV ICE的IRP,包括设备分配的资源

20、信息。至此,设备被正确配置,驱动程序开始与硬件进行对话。当然,在设备运行过程中,如果设备的状态发生变化(拔除、暂停等),PnP管理器也同样发出相应的IRP,由驱动程序进行相应的处理。电源管理模块负责设备的挂起与唤醒。I?O功能实现模块完成I?O请求的大部分工作。当应用程序提出I?O请求时,它调用W in32 AP I函数DeviceIoControl来向设备发出命令。然后由I?O管理器构造一个IRP并设置其M ajorFunction域为IRPMJDEV ICECONTROL。U SB设备驱动程序收到该IRP后取出其中的控制码,并利用一个开关语句来找到对应的例程入口。4总结U SB接口已经成为

21、PC机的标准配置,由于U SB协议提供的高速可靠传输性能,将有越来越多的外设使用U SB接口,尤其在音频、视频等需要实时和大批量传输数据的领域。目前U SB接口的设备端的接口芯片也比较多,方便了各种开发的需要。对于主机部分的开发由于许多开发工具的支持,可以满足各种开发的需要。U SB接口将被越来越多的仪器所采用。而且现在又提出了OnTheGo技术,它可以不用电脑而直接在设备间通过U SB通信。达到了点对点的通信目的。参考文献1Compaq,Intel,L ucent,M icrosoft,N EC,Philips.U ni2versal serial bus specificati,Revis

22、ion 2.0S.2000.2Intel,M icrosoft,Compaq,etc.U niversal serial busspecification.Revision 1.1.U SB i mplementersforum,September 23,1998.3U SB I mplementers Forum.The U SB on2the2go supple2ment specification,Revision 1.0S.2001.4A xelson J.U SB大全M.北京:中国电力出版社,2001.5吕阳,陈露晨,顾雪琳.U SB总线协议信息包分析J.微型机及应用,2002,(1):2829.6来晓阳,都思丹,高敦堂.PD I U SBD12接口芯片及其在M P3播放器中的应用J.电子技术,2001,(11):1214.7陈启美,吴琨,丁传锁,等.U SB协议层J.电力自动化设备,2001,(5):5963.8Chris Cant.W indow sWDM设备驱动程序开发指南.北京:机械工业出版社,2000.026仪器仪表学报 第25卷

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁