通俗易懂的USB协议详解(转载).doc

通俗易懂的USB协议详解(转载).doc

ID:52177625

大小:347.00 KB

页数:9页

时间:2020-03-24

通俗易懂的USB协议详解(转载).doc_第1页
通俗易懂的USB协议详解(转载).doc_第2页
通俗易懂的USB协议详解(转载).doc_第3页
通俗易懂的USB协议详解(转载).doc_第4页
通俗易懂的USB协议详解(转载).doc_第5页
资源描述:

《通俗易懂的USB协议详解(转载).doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Usb详解USB作为一种串行接口,应用日益广泛。如同每个工程设计人员必须掌握I2C,RS232这些接口一样,我们也必须掌握usb.但定usb的接门协议实在冇点费解,linuxuhci驱动作者之一AlanStern曾经就说过“TheUSBdocumentationisdownrightevil.Mostofitisjustcrap,writtenbyacommittee.You'rebetteroffignoringmostofit”。木文将从整体上介绍usb协议,包括-usbhost,usbhub,usbfunction□希望能给读者一

2、个总体上的了解。也因此,文章将分成相应的三部分讲解。一。usbfunction仁初识usb.usb是…种串行接I」协议,它靠d+,d・两条数据线构成的差分线來进行数据传输,这让我们非常感兴趣它到底和我们通常熟悉两线rs232/485有何区别。了解这种区别仃助于我们对usb作-个深入的了解。那么让我们回想一下到底一个两线rs232的数据是如何传送的,如图一:I-•IIidle:

3、idle;~StartBitBitOBit〔X~一乂Bit7/8/topBit~:::WORD1'I11I图一RS232timing在这甲我们的巫点在于,我们发现

4、要在串行II传送数据一个最体码的要求恐怕就是:要知道数据传输何时开始,何时结束。即如何delimit.那么rs232怎么做的。显然,在idle(空闲)时,即无数据传送时,数据线处于高电平,等到右数据开始传送,发送方首先拉低数据线(start),表示数据传输开始,接受端也因为这个“start”信号开始准备接受即将到來的数据,类似一次握于,随后,在两者之间的数据传送开始,结束后上方再次拉高数据线,表示结束传输,自此两者重新进入Idle状态。等待下一轮传送开始。「解rrs232,^么我们自然想到usb如何做到这个呢,既然是吊行位流传输,也理所

5、讨然的解决这个问题。没错,Usb协议必然要解决这个问题,让我们作一个类似rs232的比较吧!类似于rs232,usb的传输桢如图-:IDLESYNCINADDRENDPCRC5EOPIDLE燮二:usbpacket(这甲我们暂时忽略这个传输所代表的意义)为了说明问题,我们对一些问题简化.我们定义这样几个状态:假设D+,D-分别表示usb信号线的电平信号。那么对于usbfullspeedfunction(highspeed,lowspeed是不同的),我们定义差分数据线上可能出现的四个状态:DataJstate:D+=1,D-=0:Dat

6、aKstate:D+=O,D-=1;SEO:D+=D・=O;SE1:D+=D・=1;那么上面的图中.相应的也可表示为图三:SEOEOPJEOPDatafromTransmitterpacketIDLESYNCINADDRENDPCRC5EOPIDLE图三:usbinpacket的传输这个对usbfullspeedfunction來说,idle状态将处+DataJstate.seO表示一桢结朿。看这个图是不是很像我们熟悉的rs232o没错!!!他们确实很相似。在无数据传输时,它们都处于Idle状态,半要开始传输数据时,先发一个sync(同

7、步信号,rs232为start,usb为一sync字节,见协议说明)信号进行“握手”,而后开始传输,半传输要结束时,发一stop信号(usb为一个seO状态表示要结束传输),最后又进入idle态等待新的传输。不过,你可能更加注意到,他们还是不同的。不同在于usb是按packet进行传输的,就是说它传输的最小单位是packet,i(urs232Joi按字节传送的,也即它的最小传送单位是了节。既然是按pakcet传送,想想我们相较于rs232的按字节单位传输,我们可以得到哪些“好处”。想想看,pakcet的好处不就在于我们町以灵活的定义数据

8、的传送格式,传送方式,从而可以适应各种各样的串行设备,这不就是所谓的“通用串行总线”吗?简介:从木节开始,我们将介绍usb的传输机制。这节先介绍usb现有传输方式的背景他识,做为对下节将要展开的四种传输类型,描述符,等相关知识的一个导引。2ousb传输。我们在上一节中J解到『usb的“packet”的感念,『解到『usb传送一个packet总是以sync开始,以eop结束,这个称为delimiter,ti

9、J标记packet的始末。令了packet,我们就可以在usb总线上传输数据了。但是这还不够,比如数据传送方向,即传冋usb主机还是

10、传下usb从机,数据传送的地址,数据传送的类型(这些后面我们将会知道)这些信息在传输Z前是必须搞清楚的,那么这个信息如何得知呢,看來这就需要我们定一套基于packet的“协议”了。主机打从机在传输屮均遵循这

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。