USB芯片简介
发布时间:2008/12/22 0:00:00 访问次数:740
一般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芯片的基本特性以及应用。
欢迎转载,信息来自维库电子市场网(www.dzsc.com)
一般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芯片的基本特性以及应用。
欢迎转载,信息来自维库电子市场网(www.dzsc.com)