您的位置 首页 分销

USB的开发之规范篇

通用串行总线(UniversalSerialBus)是用于将适用USB的外围设备连接到主机的外部总线结构,其主要是用在中速和低速的外设。USB是通过PCI

通用串行总线(Universal Serial Bus)是用于将适用USB外围设备衔接到主机的外部总线结构,其首要是用在中速和低速的外设。USB是经过PCI总线和PC的CPU衔接,完结数据的 传送。USB一起又是一种通讯协议,他支撑主体系(host)和USB的外围设备(device)之间的数据传送。

USB的长处有以下几条:

USB为一切的USB外设供给了单一的、易于操作的规范的衔接类型。这样一来就简化了USB外设的规划,一起也简化了用户在判别哪个插头对应哪个插槽时的使命,完结了单一的数据通用接口。

USB排除了对各个鼠标、调制解调器、键盘和打印机接口的需求,因此减少了硬件的复杂性和对端口的占用,节省了体系资源。

USB支撑热插拔(hot plug),也便是说在不关PC的状况下能够安全的插上和断开USB设备。其他一般的外围衔接规范,如SCSI设备等有必要在关掉主机的状况下才干添加或移走外围设备。

USB支撑PNP。当刺进USB设备的时分,主计算机设备检测该外设而且经过主动的加载相关的驱动程序来对该设备进行装备,并使其正常作业。

USB在设备供电方面供给了灵敏性。USB直接衔接的设备能够经过USB电缆供电,也能够经过电池或许其它的电力设备来供电,或运用两种供电方法的组合.而且支撑节约能源的挂机和唤醒方式。

USB供给全速12Mbps的速率和低速1.5Mbps的速率来习惯各种不同类型的外设。

针对不能处理忽然产生的非接连传送的设备,如音频和视频设备,USB能够确保其固定带宽。

为了习惯各种不同类型外围设备的要求,USB供给了四种不同的数据传送类型。

USB使得多个外围设备能够跟主机通讯。

USB的意图:1,运用方便 2,能够供给实时的数据给PC 3,端口的灵敏扩展性

USB规范能够在www.usb.org/developer/中 找到,而且你还能够在该站点找到别的的一个USB的测验东西:usbcomp.exe,它包含一个usbcheck的东西能够检测到设备是否一些USB的 高层次的要求。一起它还有一个usbcheck的东西能够检测HID(human interface device)的设备。而W98还有一个”Ignore hubs”(Memphis only)的检测窗口。在W2K DDK中包含的一个USBView的东西能够看出体系中一切的USB总线以及USB总线上的一切的设备。

USB论坛(USB forum)的成员每年只需求付出$2500就能够取得一个Vendor ID,其实,每个Vendor ID的零售价格仅仅$200,不过每个USB论坛的成员能够在关于USB的支撑方面能够得到许多的优点。(关于俺们中国人来说,去弄一个什么USB成员是 很浪费钱的)

USB的设备类型(device class)

尽管USB设备都会体现USB的一些根本的特征。但是,USB的设备仍是能够分红多个不同类型,同类型的设备能够具有一些一起的行为特征和作业协议,然后使设备的驱动程序的书写变得简略一些。下表中就给出一些根本的USB的设备类型分类。

设备类型(device class) 设备举例 类型常量(Class constant)
音频(audio) 扬声器 USB_DEVICE_CLASS_AUDIO
通讯 MODEM USB_DECICE_CLASS_COMMUNICATIONS
HID 键盘 鼠标 USB_DEVICE_CLASS_HUMAN INTERFACE
显现 监视器 USB_DEVICE_CLASS_MONITOR
物理回应设备 动力回馈式游戏操纵杆 USB_DEVICE_CLASS_PHYSICAL_INTERFACE
电源 不间断电源供给 USB_DEVICE_CLASS_POWER
打印机 USB_DEVICE_CLASS_PRINTER
许多的存储器 硬盘 USB_DEVICE_CLASS_STORAGE
HUB USB_DEVICE_CLASS_HUB

USB的根本特性
每一个设备(device)会有一个或许多个的逻辑衔接点在里边,每个衔接点叫endpoint.每个endpoint有四种数据传送方法:操控 (Control)方法传送;同步(isochronous)方法传送;中止(interrupt)方法传送;许多(bulk)传送.但是一切的 endpoint0都被用来传送装备和操控信息。
在host和设备的endpoint之间的衔接叫作管道”pipe”,endpoint0叫做缺省(default pipe)。
关于相同性质的一组的endpoint的组合叫做接口(interface),假如一个设备包含不止一个的接口就能够称之为复合设备(composite device)。
相同的道理,关于相同的类型的接口的组合能够称之为”装备”(configuration)。但是每次只能有一个装备是可用的,而一旦该装备激活,里边的接口和endpoint就都一起能够运用。
host从设备发过来的描绘字(des criptors)中来判别用的是哪个装备,哪个接口等等,而这些的描绘字一般是在endpoint0中传送。

Windows USB 驱动程序接口
体系中的USB的驱动程序完结许多的作业。
实际上关于一些HID的USB设备,象键盘,鼠标和游戏操纵杆之类的设备能够主动的被体系辨认而且支撑.而除此之外的设备就需求自己写一个驱动程序来完结 硬件和软件之间的联络。在中心方式(kernel mode)下,驱动程序用IOCTL来安排和操作一些由其他部分发过来的要求和指令。而IOCTL又是经过URB(USB request blocks)来完结的。
在正式的介绍USB的驱动程序之前,先仍是来看看USB的物理和逻辑结构。

传输方法
在USB的数据传送的方法下,有四种的传输方法:操控(Control)同步(isochronous)中止(interrupt)许多(bulk)。如 果你是从硬件开端来规划整个的体系,你还要正确挑选传送的方法,而作为一个驱动程序的书写者,就只需求弄清楚他是选用的什么作业方法就行了。
一般一切的传送方法下的主动权都在PC边,也便是host边。

操控(Control)方法传送:操控传送是双向传送,数据量一般较小。USB体系软件用来首要进行查询、装备和给USB设备发送通用的指令。操控传送方 式能够包含8、16、32和64字节的数据,这依赖于设备和传输速度。操控传输典型地用在主计算机和USB外设之间的端点(Endpoint)0之间的传 输,但是指定供给商的操控传输或许用到其它的端点。

同步(isochronous)方法传送:同步传输供给了确认的带宽和间隔时刻(latency)。它被用于时刻严厉并具有较强容错性的流数据传输,或许 用于要求稳定的数据传送率的即时运用中。例如履行即时通话的网络电话运用时,运用同步传输方式是很好的挑选。同步数据要求确认的带宽值和确认的最大传送次 数。关于同步传送来说,即时的数据传递比完美的精度和数据的完整性更重要一些。

中止(interrupt)方法传送:中止方法传输首要用于守时查询设备是否有中止数据要传送。设备的端点方式器的结构决议了它的 查询频率,从1到255ms之间。这种传输方法典型的运用在少数的涣散的、不行猜测数据的传输。键盘、操纵杆和鼠标就归于这一类型。中止方法传送是单向的 而且关于host来说只要输入的方法。

许多(bulk)传送:首要运用在数据许多传送传送和承受数据上,一起又没有带宽和间隔时刻要求的状况下,要求确保传输。打印机和扫描仪归于这种类型。这 种类型的设备适合于传输非常慢和许多被推迟的传输,能够比及一切其它类型的数据的传送完结之后再传送和接纳数据。

USB将其有用的带宽分红各个不同的桢(frame),每桢一般是1ms时刻长。每个设备每桢只能传送一个同步的传送包。在完结了体系的装备信息和衔接之 后,USB的host就会对不同的传送点和传送方法做一个统筹安排,用来习惯整个的USB的带宽。一般状况下,同步方法和中止方法的传送会占有整个带宽的 90%,剩余的就安排给操控方法传送数据。

USB的低层结构
USB设备
USB的设备能够接在PC上的恣意的USB接口上。而运用HUB还能够扩展使更多的USB设备衔接到体系中,USB的HUB有一个上行的端口(到 host),有多个的下行端口(衔接其它的设备),然后能够使整个的体系能够扩展的衔接127个外设,其间HUB也酸外设。关于USB体系来说,USB的 host永远是PC边,一切的其他衔接到host都称为设备,在设备与设备之间是无法完结直线通讯的,只要经过host的办理与调理才干够完结数据的彼此 传送.在体系中,一般会有一个根HUB,这个HUB一般有两个下行的端口。
一个PC能够具有一个或多个的USB host操控器。一般有两种类型的操控器:UHCI(USB host操控器接口),OHCI(敞开的host操控器接口)。Windows的USB类驱动程序关于每一种的操控器类型都有一种miniclass驱动程序来支撑。

USB的物理信号
USB的电缆有四根线,两根传送的是5V的电源,有一些直接和电源HUB相连的设备能够直接利用它来供电。别的的两根是数据线,数据线是单工的,在整个的 一个体系中的数据速率是必定的,要么是高速,要么是低速,没有一个能够中心变速的设备来完结数据码流的变速.在这一点上,USB和1394有显着的不同。
USB的总线能够在不运用的时分被挂起,这样一来就能够节约能源。
在有些时分的总线还有或许挡机(stall),比如说象数据传送的时分忽然被打断,这个时分经过host的从头装备能够完结总线的从头作业。

低层协议
USB的物理协议规则了大多数的在总线上的数据格局,一般一个全速的数据桢能够最多有的1500bytes,而关于低速的桢最多有187bytes。
桢一般是用来分配带宽给不同的数据传送方法。一起因为桢结构的规律性,桢的这种特性也能够用来做同步信号来运用。
一个最小的USB的数据块叫做包(packet),包包含同步信号,包标识(packet ID),CRC和传送的数据。Packet ID共有以下十种:

token OUT IN SOF SETUP
data DATA0 DATA1
handshake ACK NAK STALL
special PRE

Transactions(数据交流)
一个transaction是在host和设备(device)之间的不接连彼此数据交流,一般由host开端交流,交流的开端是由Token的包开端 的,接下来是两边向上的数据包,在数据包传送完之后,就会由设备(device)回来一个握手(handshake)包。USB体系经过IN,OUT,和 SETUP的包来指定USB地址和endpoint(最多是128个,0一般被用来用做缺省的传送装备信息的),而且这些被指定的设备有必要经过上面方式的 包来回应这种方式的指定。每个SETUP的包包含8个byte的数据,数据用来指示传送的数据类型。关于DATA数据包来说,设置两种类型的数据包是为了 能够在传送数据的时分做到愈加的准确。ACK handshake的包用来指示数据传送的正确性,而STALL handshake则表明数据包在传送的过程中出了缺点,而且请示host从头发数据或许铲除这次传送。PRE格局的包首要是用在在一个USB的体系中如 果存在不同速率的设备的时分,将不同于总线速度的设备中就会回应一个PRE的包然后会疏忽该设备。
各种不同类型的包的巨细是不同的,DATA的数据包最大是1023bytes.

Start of Frame(SOF)
SOF是host用来指示frame的最初的。SOF的包包含11个bit的桢序号,从0到0X7FF(i.e. USBD_ISO_START_FRAME_RANGE-1),SOF关于一切的高速设备来说是有用的。

Power
每个设备能够从总线上取得100mA的电流,假如特别的向体系请求,最多能够取得500mA的电流,在挂机的状态下,电流只要500uA.

驱动程序的装置过程
Windows用设备描绘字或许接口描绘字来了解到底是什么样的设备被接入到体系。Windows初始化的Hardware ID中有设备供给商的ID域(idVendor,idProduct,和bcdDevice)。假如你没有向体系供给一个INF文件的话,体系就会主动选 择供给一个兼容ID(或许不是作业得很好,就像你买了一个Rockswell的Modem,而你运用规范Modem的驱动程序,你的Modem或许会作业 的有许多的缺点,也或许跑得飞快,电脑的工作,什么都或许产生,就像中国足球……..我在九四年就立誓不再为中国足球动火,但是俺前不久仍是骂了 一下那个叫章鱼鳞的小伙子…….好歹仍是一孩子,就宽恕一回把,哎)

USB的新特性
共享性 一个物理设备能够运用许多不同的pipe
实时性 能够完结和一个设备之间有用的实时通讯
动态性 能够完结接口间的动态切换
联合性 不同的而又有附近的特性的接口能够联合起来,
多能性 各个不同的接口能够运用不同的供电方式
主动性 缺省的pipe的运用使基体系的树立和装备变得主动而且快速

 

以上几个方面仅仅扼要的介绍了一下USB的规范的一些状况,介绍得非常之浅,还有象USB的host在体系中的唯一性和device的带宽散布,以及 hub,和USB的电气特性等等,以及网络分层结构等方面我就不赘述了,在规范里边有具体的叙说。不才仅致力于用中文给我们一个比较粗浅的介绍,期望不会 给我们不正确的引导。(诸位大虾倘要做USB设备,当阅览美利坚合众国之原版文章。牢记,牢记!不瞒我们,朕亦非常恶感大不列颠国之文字,一日,吾弟问 朕,国人何故皆学洋文,朕曰寡人怎么得知,意料倘念好洋文,就有机会去诳洋人金钱。)

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/234129.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部