USB务虚谈



   设备、接口、端点,在USB驱动中就像等级分明的三个阶层一样,各自负责着一部分的事务,整体合作,才把USB之为物者表现得好。这是从Host的观点所看到的。
   所谓设备、接口、端点,不过是一些名称而已,务虚的成分多些。就像人的名字,固然是确定的,但如果自己起一个笔名而让大家以笔名呼之,也是可以的。名字只是虚的东西。这是从设备的观点来看的。
   但Host除了设备、接口、端点这名称,对USB设备不能了解得更多。它非常依赖于这些接口背后的实现,必须是完全正确的。
   而设备本身最重要的,并非如何设计这些接口和他们的数量,而是接口背后的固件代码。只有设计出强壮的固件,才能完成USB的本身功能。
   设备最多可以有16个端点,这是由端点的地址只有4 Bit所限制住的。设备能拥有的接口数,却多得多。接口地址为8bit值,范围从0-255,即最多可以有256个接口。不禁有人问,接口包含端点,现在接口数超出端点几十倍,几十个和尚共一碗粥,可以吗?答案是没有问题的:首先不会把全部的接口都用到,其次USB允许没有端点的接口存在。
   不包含端点的接口?可以举一个例子。一些USB控制设备仅有一个控制端点(0号端点)。控制端点很奇特,既独立于任何接口,却又隶属于全部接口。设备至少需要有一个接口,此时就可以创建一个空接口。
    接口和设备很容易混淆。因为在Windows系统中,接口被提升到了“设备”的地位。设备则另被赋予了“通用父设备”的尊号。不了解的人,常常会奇怪。
   有些USB键盘上带有一个电源按钮,按下去系统会Reset。这个按钮很奇特,它实现的功能和电脑机箱上的Reset键,并无区别。换句话说,它们是一类设备——实现电源控制的HID设备。很奇怪,明明都是键盘上的按键啊。这种USB键盘在实现的时候,把电源按钮独立开来,放在单独的接口中。USB键盘因此而包含两个接口。Windows 系统把两个接口看成不同设备,为他们安装驱动;又为接口之上的设备(注意区别),安装通用父设备驱动,以管理上述二者;于是在Windows系统中竟表现为3个设备!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值