網站導航: 首頁 > 設計參考 > 正文 文章搜索
USB簡介
 
文章編號:
090917133914
文章分類: 接口技術 USB
点 击:
...
关 键 词: USB簡介,USB基础,USB的优点
文章來源:
網絡
摘 要:
USB(通用串行总线)是用于将适用USB的外围设备连接到主机的外部总线结构,其主要 是用在中速和低速的外设。USB是通过PCI总线和PC的内部系统数据线连接,实现数据 的传输。USB同时又是一种通信协议,他支持主系统(host)和USB的外围设备(device)之间 的数据传输

USB的動機

  1. 連接PC與電話。PC具有很強的運算能力,而電話提供最爲廣泛的通信互連。運算與通信成爲計算機應用的基礎,而計算機與通信是兩個相對獨立發展的産業。USB旨在提供可以廣泛應用于PC到電話的互連的普遍性的連接。
  2. Plug-and-Play。從用戶端來看,PC的串行口並行口和鍵盤鼠標端口都不能Plug-and-Play。USB則提供真正的Plug-and-Play。
  3. 端口扩展。PC的已有的串行/并行口等端口只适用于一两种的外设,并且不易扩展。USB提供双向低成本、低速到中速(USB 2.0可达480Mb/s)的通用外设总线,适用于连接各种各样的外设,并且易于扩展。

USB的拓樸結構

  USB的拓樸結構如图1:

图1 USB的拓樸結構

  在USB的網絡协议中,每个USB的系统有且只有一个host,它负责管理整个USB系统,包括USB Device的连接与删除、Host与USB Device的通信、总路线的控制等等。Host端有一个Root Hub,可提供一个或多个USB下行端口。每个端口可以连接一个USB Hub或一个USB Device。USB Hub是用于USB端口扩展的,即USB Hub可以将一个USB端口扩展为多个端口。图1中的每个Func(Function)就是一个USB Device,如USB键盘、USB鼠标、USB MODEM、USB硬盘等等。Compound Device是指带一个Hub和一个或多个不可删除的USB Device的复合设备。一个USB系统可连接多达127个Function。

  USB的系统有且只有一个host,而PC端的USB都是Host,所以将两台PC的USB口通过A-A USB电缆连接起来,是不能实现通信。如果将两个host连起来通信,这样一来的一个USB的系统有了两个的host,与它的網絡协议冲突。Anchorchip 、Prolific等厂家有USB到USB的设备控制器,可以实现两个USB Host的相连。

USB設備

  USB的设备可以接在PC上的任意的USB接口上。而使用Hub还可以扩展使更多的USB設備连接到系统中,USB的Hub有一个上行的端口(到host),有多个的下行端口(连接其它的设备),從而可以使整个的系统可以扩展的连接127个外设,其中Hub也算外设。对于USB系统来说,USB的host永远在PC边,所有的其他连接到host都称为设备,在设备与设备之间是无法实现直线通信的,只有通过host的管理与调节才能够实现数据的互相传送。在系统中,通常会有一个根Hub,这个Hub一般有两个下行的端口。

USB的设备类型(device class)

  虽然USB設備都会表现USB的一些基本的特征。但是USB的设备还是可以分成多个不同类型,同类型的设备可以拥有一些共同的行为特征和工作协议,從而使设备的驱动程序的书写变得简单一些。下表中就给出一些基本的USB的设备类型分类。

USB的優點有以下幾條:

  1. USB爲所有的USB外設提供了單一的、易于使用的標准的連接類型。這樣一來就簡化了USB外設的設計,同時也簡化了用戶在判斷哪個插頭對應哪個插槽時的任務,實現了單一的數據通用接口。
  2. 整個的USB的系統只有一個端口和一個中斷,節省了系統資源。
  3. USB支持热插拔(hot plug)和PNP(Plug-and-Play),也就是说在不关闭PC的情况下可以安全的插上和断开USB設備,计算机系统动态地检测外设的插拔,并且动态地加载驱动程序。其他普通的外围连接标准,如SCSI设备等必须在关掉主机的情况下才能插拔外围设备。
  4. USB在設備供電方面提供了靈活性。USB直接連接到Hub或者是連接到Host的設備可以通過USB電纜供電,也可以通過電池或者其它的電力設備來供電,或使用兩種供電方式的組合.並且支持節約能源的挂機和喚醒模式。
  5. USB提供全速12Mbps的速率和低速1.5Mbps的速率來適應各種不同類型的外設。USB2.0還支持480Mbps的高速傳輸速率 。
  6. 爲了適應各種不同類型外圍設備的要求,USB提供了四種不同的數據傳輸類型:控制傳輸、Bulk數據傳輸、中斷數據傳輸和同步數據傳輸。同步數據傳輸可爲音頻和視頻等實時設備的實時數據傳輸提供固定帶寬。
  7. USB的端口具有很灵活的扩展性,一个USB端口串接上一个USB Hub就可以扩展为多个USB端口。

傳輸方式

  USB有四种的傳輸方式:控制(Control)、同步(isochronous)、中断(interrupt)、大量(bulk)。如果你是從硬件开始来设计整个的系统,你还要正确选择传输的方式,而作为一个驱动程序的书写者,就只需要弄清楚他是采用的什么工作方式就行了。通常所有的傳輸方式下的主动权都在PC边,也就是host边。

  1. 控制(Control)方式传输:控制传输是双向传输,数据量通常较小。USB系统软件用来主要进行查询、配置和给USB設備发送通用的命令∝制傳輸方式可以包括8、16、32和64字节的数据,这依赖于设备和传输速度∝制传输典型地用在主计算机和USB外之间的端点(Endpoint)0之间的传输,但是指定供应商的控制传输可能用到其它的端点。
  2. 同步(isochronous)方式传输:同步传输提供了确定的带宽和间隔时间latency)。它被用于时间严格并具有较强容错性的流数据传输,或者用于要求恒定的数据传输率的即时应用中例如执行即时通话的網絡电话应用时,使用同步传输模式是很好的选择同步数据要求确定的带宽值和确定的最大传输次数。对于同步传输来,说即时的数据传递比完美的精度和数据的完整性更重要一些。
  3. 中断(interrupt)方式传输:中断方式传输主要用于定时查询设备是否有中断数据要传输。设备的端点模式器的结构决定了它的查询频率,從1到255ms之间。这种傳輸方式典型的应用在少量的分散的、不可预测数据的传输。键盘、操纵杆和鼠标就属于这一类型。中断方式传输是单向的并且对于host来说只有输入的方式。
  4. 大量(bulk)傳輸主要應用在數據大量傳輸傳輸和接受數據上同時又沒有帶寬和間隔時間要求的情況下,要求保證傳輸。打印機和掃描儀屬于這種類型。這種類型的設備適合于傳輸非常慢和大量被延遲的傳輸,可以等到所有其它類型的數據的傳輸完成之後再傳輸和接收數據。

  USB将其有效的带宽分成各个不同的帧(frame),每帧通常是1ms时间长。每个设备每帧只能传输一个同步的传输包。在完成了系统的配置信息和连接之后,USB的host就会对同的传输点和傳輸方式做一个统筹安排,用来适应整个的USB的带宽通常情况下,同步方式和中断方式的传输会占据整个带宽的90%,剩下的就安排给控制方式传输数据。

數據交換(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。

USB設備的开发

  1. 從Http://www.usb.org/developer处得到USB的Specification。阅读相关内容同,时可参考The USB Handbook by Jaff Kosar、 Developing USB Peripherals 、by Wooi Ming Tan等参考书。
  2. 需要一台支持USB的PC。如果要开发WDM驱动程序则需要一台有以下配置的PC:Windows NT 4.0、Windows NT DDK、USB DDK、Win 32 DDK、Visual C++。先装VC,然后DDK,然后Nemega公司的DriverStudio或是WinDriver(开发工具)。
  3. 编写USB Device的规格书
  4. 無論如何,不要做無謂的重複,可以購買相應的評估板和評估軟件,並找到盡可能多的實例源程序代碼。然後需要有你所選的MCU的程序編譯器。
  5. 申请成为USB論壇(USB forum)的成员(每年大约需要支付$2500),同时就可以获得一个Vendor ID。也可以向他们购买Vendor ID,每个Vendor ID的零售价格是$200。不过USB論壇的成员可以在USB相关的支持方面可以得到许多的好处。
  6. 购买其它在开发中要用到的设备,如总线分析仪、USB Hubs、竞争者的相应USB設備以及USB鼠标USB键盘等
  7. 編寫或改寫USB驅動程序、MCU固件程序和客戶程序代碼。
  8. 参加USB遵從试验,在不同的系统与配置验证你的USB設備。

驅動程序編寫

  USB的驅動程序和以往的直接跟硬件打交道的WIN95的VXD的方式的驅動程序不
同,它應該是WDM類型的。Windows下的USB軟件總體框圖如圖2:

图2 USB软件总体框图

 
相關文章:

 
最新開源項目
 
 
  查看更多...  
 
本站相关産品   淘寶網店
 




 
  查看更多...  

 

本站程序由百合電子工作室開發和維護
Copyright @ baihe electric studio
渝ICP備09006681號-4