Windows驱动_USB驱动之一

                  今天看到一篇文章,讲程序员应该善待自己。如果一个人对自己都不好,还怎么奢望他对家人好。程序员承受的压力是非常大的。面对无数的BUG.进度,新知识的学习。如果想一直吃这碗饭,就不能不学习。IT资讯,知识的迭代速度之快,是无法想象的。NOKIA之前的手机巨头,手机霸主,就是因为在激烈的市场竞争中,稍微慢了半拍,没能敢上智能手机的这一波,立马败下阵来,一下就到了倒闭的边缘。作为一个IT人,我们在知识的最前沿,稍微的落后,就必将被被别人超越。被人淘汰。

 

                 早就想看看现在最最通用的驱动-USB驱动了,一直没有时间,与其说没有时间,其实是自己还没有理解到那种程度。目前感觉还好,虽然不清楚USB的详细的业务逻辑,不过对于WDF驱动,已经熟记于心了,接下来,我会分几个篇幅,从上到下,介绍下Windows系统中的USB功能驱动的开发。主要的着重点在于,对USB整个通讯的流程进行阐述,还有就是对于WDF中的USB驱动的例子,加入自己的注释。

 

                众所周知,目前在PC上,最流程的总线接口就是USB接口,而且,USB也普及到了移动手机上,目前,几乎所有的手机的数据线都是USB的接口。

 

                USB即通用串行总线(Universal Serial BUS),是一种支持即插即用的的串行接口。数据传输率在4Mb到5Gb之间,目前发展到了USB3.0.我们知道目前在PC上USB控制器一般都是PCI设备,一般一个总控制器下带一个根HUB,根HUB下面又可以接HUB,HUB下面可以接设备。USB的通讯模式是HOST和DEVICE的模式,所有的请求都是Host向Device发出。

 

                 USB有4中传输模式;

 

                 1,Bulk传输事务。

 

                      顾名思义,这种事务主要是大块的数据,传送这种事务的管道叫做BULK管道。这种事务传输的时候分为三个部分。

 

                      第一部分是Host端发出一个Bulk的令牌请求,如果令牌是IN请求则是从Device到Host的请求,如果是OUT令牌,则是从Host到Device,所以这里的IN和OUT都是相对于Host来说的。

 

                      第二部分是传送数据的阶段,根据先前请求的令牌的类型,数据传输有可能是IN方向,也有可能是OUT方向。数据传输的时候用DATA0和DATA1令牌携带着数据交替传送。我们讲的差分传输:可以更大限度的抗干扰。提高传输速度。

 

                      第三部分,是握手信号,如果数据是IN方向,握手信号由Host发出,如果是OUT方向,握手信号是Device端发出。握手信号可以为ACK,表示正常响应,也可以是NAK表示没有正确传送。STALL表示主机不可预知的错误。

 

                 2,控制传输事务。

 

                     控制传输是负责向USB设置一些控制信息,传送这种事务的管道是控制管道。在每个USB设备中都会有控制管道,也就是说控制管道在USB设备中是必须的。控制传输也分为三个阶段,即令牌阶段,数据传送阶段,握手阶段。

 

                3,中断船速事务。

 

                    在USB设备中,有种处理机制类似于中断的机制,这就是中断事务。中断事务的数据量很小,一般用于通知Host某个事务的来临,例如USB鼠标,鼠标移动或者鼠标单击等操作都会通过中断管道来向Host端传送事件。在中断事务中,也分为三个阶段,即令牌阶段,数据传输阶段,握手阶段。

 

               4,同步传输事务。

 

                    USB设备中还有一种事务叫同步传输事务,这种事务能保证传输的同步性。例如,在USB摄像头中传输视频数据的时候会采用这种事务,这种事务能保证每秒有固定的传输量,但与Bulk 传输不同,它允许有一定的误码率,这样符合视频会议等传输的需求,因为视频会议一般保证实时性,在一定的条件下,允许有一定的误码率。同步传输事务只有两个阶段,即令牌阶段,数据阶段,没有握手阶段。

 

                  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值