USB芯片简介

时间:2008-12-20

  一般USB的专用芯片种类大致可分为:主机控制器(host controllers)、根集线器(hub solutions)、接口芯片(interface  chips)以及具有USB接口的微控制器(mlcrocontr°llers with USB interface)。若要针对某种特殊的功能又可再细分:HID、 USBB→Par-allel Port芯片、USB→RS232芯片、声音解决方案(audio solutions)、影像解决方案(video/camera solutions)等 设各。种类确实繁多,功能也截然殊异。但其中,也有一些共同之处,即是它们之所以称为USB专用芯片的原因。

  USB是连接PC与外围设各的接口。前一章介绍了USB设备列举的工作。但这些繁琐的工作若单纯地由一般的微控制器来加以实现,不仅无法达到预期的工作成效,也严重地拖累原先正在执行的固件程序代码。 当然,重要的是,一般的微控制器并不具各有模拟差动电路,无法产生或接收D+与D一的信号q更别说要执行NRZI的编码与译码、 填塞与反填塞的工作。

  因此,一定要有个硬件组件(单元)或电路能够帮用户解决这个问题。当然,这也就是USB微控制器与一般微控制器的差异之处。 如图1与2显示了在USB的系统中,所具备的基本的硬件单元以及功能。图2是图1的逻辑电路的简化图。

图1 USB芯片中的基本硬件单元SIE

图2 USB芯片中的基本硬件单元SIE的简化图

  USB接口连接主机与外围设各,而其中,串行接口引擎(serial interface engine,SIE)则是USB重要的功能单元。在串行 接口引擎中,详细地掌握了在USB总线上的接收与传送的个别位。这就如同UART对于异步串行通信的处理一样。在此,对SIB做个归纳 与整理。也就是,SIE执行了下列的各项工作:

  ●封包辨识,数据交换的持续产生;

  ●SOP、E0P、RESET、RESUME信号检测/产生;

  ●时钟/数据的分离;

  ●NRZI数据译码/编码以及位填塞;

  ●CRC的产生与检查、令牌(token)封包(使用CRC5)与数据(data)封包(使用CRC16);

  ●封包ID(PID)的产生以及检/译码·

  ●串行并行/并行串行的转换;

  ●USB地址与端点译码;

  ●端点层流程控制;

  ●作为USB数据缓冲器;

  ●维持Data Toggle位的状态;

  ●提供至后端区域设备控制器(function controller)或专用控制器(ASIC或FPGA)的接口。

  图1与图2中的设各控制器负责了USB数据/缓冲区的管理、起始地址/端点值,以及维护USB管线协议。此外,它还存储USB配置/控制 空间、主机时钟同步或采样率控制,以及连至实际设各所应用的接口。

  该设各控制器能够使用缓冲器与SiE的微控制器(如8051)或专用的ASIC或FPGA连接。此外,介于设各控制器与SIE之间的缓冲器, 用户可以使用标准的FIFO、双端口的RAM或连至单端口RAM的DMA。

  端点流程控制能够通过SiE送至设备控制器的信号来达成,而设备控制器可单独决定个别的端点响应。从图3中可以了解到USB收发器 用来接收与传送D+与D—的数据差动信号。

图3 USB收发器用来接收与传送D+与D-差动数据信号图

  有了USB芯片的基本概念后,以下就依此架构来延伸出各类型的USB芯片。当然,在此不再深人探讨有关USB芯片的细部功能,因为这 已超过本章或本书的范围了。

  目前USB芯片大致分为5大类型:

  ●PC端或主机端的USB控制器;

  ●集线器芯片;

  ●特定的接口转芯片,如USB转RS232或USB转ATA/ATAPI等芯片;

  ●单独运作的USB接口芯片;

  ●内含USB单元的微处理器(MPU)。

  由于前两种是属于PC主机板与单片机制造商所开发的领域,较不适合用户来开发USB外围设备。因此,对于一般USB接口的开发者而 言,可以经过后面的两种途径加以切人与学习。以下,将分别介绍这两种USB芯片的基本特性以及应用。

  


  
上一篇:ARM指令介绍
下一篇:ARM指令集

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料