USB入门系列之一USB概述
技术分类: 通信与网络 作者:computer00 发表时间:<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2007-08-17 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
|
|
引自EDN博客:computer00
[原创] USB入门系列之一 —— USB概述
USB是什么呢?一说USB是You SB的意思,即“你傻B”的意思。另一种说法是USB其实是美国的弟弟,因为美国叫USA,USB当然是他的弟弟
了。
那么USB到底是什么呢?其实USB是通用串行总线(Universal Serial Bus)的简写,它已经有了10多年的历史了。USB协议出现过的版本有
USB1.0,USB1.1,USB2.0。由于USB是主从模式,设备与设备之间、主机与主机之间不能互连,为了解决这个问题,扩大USB的使用范围,就出
现了USB OTG(On The Go)。USB OTG的做法是,同一个设备,在不同的场合下可以在主机或从机之间切换。在USB1.0和USB1.1版本中,只支持
1.5Mbps的低速(Low Speed)模式和12Mbps的全速(High Speed)模式。在USB2.0中,又加入了480Mbps的高速模式。值得注意的是,USB2.0并不是
高速设备的代名词,详述
|
请看《误区》一文。
USB具有很多优点,例如即插即用,容易使用,方便携带,传输速度快,可扩展性强,标准统一,价格便宜等等。目前流行的USB设备有移动硬盘,数码相机,MP3,U盘,USB鼠标、键盘、游戏杆,USB MIDI键盘,USB摄相头,USB打印机,USB扫描仪,USB声卡,USB话筒,USB网卡,
USB显示器,USB电话,具有USB口的各种仪表仪器等等,只要是能跟电脑打交道的,就基本上可以通过USB来实现,足见USB功能的强大。
然而USB也有一些缺点,例如传输距离短,开发、调试较困难等等。当然,它还有一个更大的缺点,那就是你发现要找出它的缺点很件很令
人头疼的事情。
要开发USB,一个网站是开发者必须要知道的,那就是小组:http://group.ednchina.com/93/。呵呵,不好意思,搞错了,其实
是USB开发者论坛,网址是Http://www.usb.org。此外,还有其它一些USB相关的网站也不错,例如驱动程序开发网:
http://www.driverdevelop.com/,程序员联合开发网:http://www.pudn.com/等等。
要开发USB,看书是少不了的。推荐一本叫做《计算机USB系统原理及其主/从机设计》(马伟 编著,北京航天航空大学出版社)的书,我
觉得这本书写得很不错,而且也不贵,只要29.5$,如果你去http://www.2688.com网站购书的话,还可以打7.5折,只需22$。至于协议,我
还是推荐大家看英文原版的,这样理解起来更准确。当然现在也有好多协议翻译的书,大家可以在网上搜索一下。也有很多电子版的,这样可
以节省一些钱。
我们的口号是:“现在USB技术已经很流行了,就像以前的串口一样。以前的电子工程师不会搞串口通信就落伍了,而现在的电子工程师如
果不会搞USB通信,那就落伍了。电子工程师门,还等什么,赶紧加入小组来学习USB吧……”,恩,这个口号有点长,将就一下吧。
(来自USB小组专区:http://group.ednchina.com/93/
By computer00 @ 2007-07-21)
USB入门系列之二USB的连接模型
技术分类: 通信与网络 作者:computer00 发表时间:2007-08-18
|
|
引自EDN博客:computer00
USB是一种主从结构。主机叫做Host,从机叫做Device(也叫做设备),集线器也被当作一种特殊的设备处理。USB的数据交换只能发生在主机和设备之间,主机和主机,设备和设备之间不能互连。为了在物理上区分主机和设备,使用了不同的插头和插座,这个在USB的连接器一节中会讲到。所有的数据传输都由主机主动发起,而设备只是被动的负责应答。例如,在读数据时,USB先发出读命令,设备收到该命令后,才返回数据。在USB OTG中,一个设备可以在从机和主机之间切换,这样就可以实现设备与设备之间的连接,大大增加了USB的使用范围。但这时依然没有脱离这种主从关系,两个设备之间必然有一个作为主机,另一个作为从机。USB OTG增加了一种MINI USB接头,比普通的4线USB多了一个ID表识线,用来表明它是主机还是设备,这个以后会讲到。
USB的拓扑结构为金字塔型。由一个USB主控制器出发,下面接USB集线器,USB集线器将一个USB口扩展为多个USB口,多个USB口又可以通过集线器为更多个接口。但USB协议
|
中对集线器的层数是有限制的,USB1.1规定最多为4层,USB2.0规定最多为6层。理论上,一个USB主控制器最多可接127个设备,这是由数据包中的7位地址位决定的,但是实际上不会接这么多的设备。我们所说的一个USB主控制器可以连接多个USB设备,并不是直接简单的将多个设备并联或者串联,而是要由集线器负责端口扩展,才能连接更多的设备。在我们的电脑上,也有一个(或者多个,视USB主控制器的个数而定)集线器,它叫做根集线器,直接连在USB主控制器上。在设备管理器中,我们可以看到USB主控制器和根集线器。如下图所示。USB数据传输路径如下:USB主控制器发出数据包,通过根集线器,再通过下面的集线器(如果有的话),再发给USB设备;设备返回数据,交给它上层的集线器,上层的集线器再交给更上层的集线器,直到USB主控制器为止。而USB主控制器就可以跟CPU打交道了。在标准的PC机上,USB主控制器是挂在PCI总线上的。在Windows中,USB由各种驱动程序负责管理,最后由驱动程序产生功能设备(FDO),这就是我们所看到的实际设备了。我们的应用程序就可以通过Windows提供的各种API进行访问USB设备了,例如CreateFile,ReadFile,DeviceIOControl等等。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
(来自USB小组专区:http://group.ednchina.com/93/
By computer00 @ 2007-07-22)
USB入门系列之三USB的电气特性
技术分类: 通信与网络 作者:computer00 发表时间:2007-08-19
|
|
引自EDN博客:computer00
标准的USB使用4根线:5V电源线(Vbus),差分数据线负(D-),差分数据线正(D+),地(Gnd)。在USB OTG中,又增加了一种mini接口,使用的是5根线,比标准的USB多了一根身份识别(ID)线。USB使用的是差分传输模式,有两根数据线,分别是D+和D-。在USB的低速和全速模式中,采用的是电压传输模式。而在高速模式下,则是电流传输模式。关于具体的高低电平门限值,请参看USB协议。为了防止出现长时间的0或者1(这样不利于时钟信号的提取),在发送数据前要经过位填充处理。然后再将数据串行化,发送到数据线上,由两根数据线的差分值来表示0或者1。而在接收端,则刚好是相反的过程。接收端采样数据线,将数据并行化,并同时去掉未填充,然后解析数据。通常,我们使用现成的USB芯片,像位填充,串行化这些芯片内部的硬件已经帮我们做好了,因此通常我们并不用关心这些细节。在设备接收数据时,芯片的串行接口引擎(SIE)会接收属于自己地址的数据,并根据相应的端口号,放到相应的缓冲
|
区内,并返回ACK给主机进行确认,然后产生中断请求,通知我们的程序,已经收到数据包了。在我们还未处理完缓冲区的数据之前,如果再收到对该端点的输出请求,USB芯片将会使用NAK返回,告诉主机端点现在忙,主机检测到NAK后,过段时间会重试输出数据,直到超时为止;发送数据时,用户将数据写入USB芯片的缓冲区,并通知USB芯片缓冲区内数据可用,然后USB芯片检测到主机请求对应的端点输入时,它就会将数据返回,数据发送完毕并收到主机的ACK确认之后,产生中断请求通知应用程序数据已经发送完毕。如果USB芯片已经收到了输入请求,但是用户程序还未填充好缓冲区,它也会用NAK返回,告诉主机数据还未准备好。主机收到NAK后,过段时间会重试,直到超时为止。
在USB协议中规定,设备在未配置之前,可以从Vbus上最多获取100mA的电流;在配置之后,最多可从Vbus上获取500mA的电流。Vbus是5V的电压,具体的参数请参看USB协议。
(来自USB小组专区:http://group.ednchina.com/93/
By computer00 @ 2007-08-17)
用户1501842 2009-12-3 16:59
用户1501842 2009-12-3 16:59