摘要:对USB总线的基本特性,特别是对USB2.0标准进行比较详细的介绍,并对新型8位和16位USB单片机的结构和性能特点进行了介绍。
关键词:USB总线 USB单片机 USB2.0 标准
一、 USB总线简介
通用串行总线USB(Universal Serial Bus)是由Intel等厂商制定的连接计算机与具有USB接口的多种外设之间通信的串行总线。目前,带USB接口的设备越来越多,如鼠标、键盘、数码相机、调制解调器、扫描仪、摄像机、电视及视频抓取盒、音箱等。
USB总线最多可支持127个USB外设连接到计算机系统。USB的拓扑是树形结构,有1个USB根集线器(root hub),下面还可有若干集线器。1个集线器下面可接若干USB接口。USB线缆包括4条线:Vbus(USB电源)、D+(数据)、D-(数据)和Gnd(USB地)。线缆最大长度不超过5m。USB1.1的传输速率最高为12Mb/s(低速外设的标准速率为1.5Mb/s,高速外设的标准速率为12Mb/s)。图1是典型的USB功能器件结构框图,图2是高速外设的USB线缆与电阻的连接图。图2中:FS为全速(高速);LS为低速;R1=15kΩ,R2=15kΩ。USB外设可以采用计算机里的电源(+5V,500mA),也可外接USB电源。在所有的USB信道之间动态地分配带宽是USB总线的特征之一,这大大地提高了USB带宽的利用率。当一台USB外设长时间(3ms以上)不使用时,就处于挂起状态,这时只消耗0.5mA电流。按USB1.0/1.1标准,USB的标准脉冲时钟频率为12MHz,而其总线时脉冲时钟为1ms(1kHz),即每隔1ms,USB器件应为USB线缆产生1个时钟脉冲序列。这个脉冲系列称为帧开始数据包(SOF)。高速外设长度为每帧12000bit(位),而低速外设长度只有每帧1500bit。1个USB数据包可包含0~1023字节数据。每个数据包的传送都以1个同步字段开始。
图1 典型USB功能器件结构框图
图2 高速外设的USB线缆与电阻的连接图
二、 USB 20特性
2000年生产的PC主机几乎都有了USB插口,最新的PC机还有USB集线器(Hub)和4~6个USB插口。USB集线器的结构如图3所示。但这些还是不能满足对高速外设的要求。最近推出了USB2.0标准,其速度比USB1.0/1.1快40倍,达480Mb/s。使USB推广到硬盘、电缆调制解调器、信息家电网络产品和其他的快速外设成为可能。 一些公司已开发出支持USB2.0的产品,其中,Cypress半导体公司是USB控制器的带头者。该公司已开发出了称为EZ\|USB FX2的单芯片USB2.0。
图3 USB的Hub(集线器)结构
1 设计USB2.0系统的两种方法
(1) 多芯片方法
多芯片和ASIC(专用集成电路)方法:使用多芯片方法需要购买USB2.0收发器和串行接口引擎(SIE),并把收发器(作为一种外设)与单片机相连接。这时,单片机要处理许多USB协议。 自然,用建有芯片系统的ASIC并在它上面集成有全部必需的部件,这样能获得更高的集成度,但是,这样需要面对应用和如何使用USB2.0两方面的工作。这意味着设计者需要做更大的努力,并且产品上市时间长。此方法的好处是最终部件的价格低,因此对大批量生产是有价值的。
(2) 单芯片方法
EZ-USB FX2的单芯片内有USB2.0物理层(PHY)电路和基于该公司的EZ\|USB FX结构的8051单片机。用单片EZ\|USB FX2开发USB2.0外设具有一定的优势,因此最好是用单芯片方法。这就是为什么Cypress半导体公司生产EZ\|USB FX2(以下简写FX2)单芯片的原因。
Cypress公司指出,当运行在480Mb/s时,数字和模拟之间的接口会有更多的细致差别。例如,噪声热容限会更小。USB2.0的电压摆幅比USB1.1更小。例如,要建立1个100K(10万)门的IC,小的物理层(PHY)将会存在更大的挑战。那样做不是不可能,但肯定会影响上市时间。第1个ASIC必须分两步走,这影响上市时间。
另外,USB2.0需要在USB1.1“全速度”(“full speed”)速率基础上完成。换句话说,USB2.0收发器和SIE(串行接口引擎)要做全速和高速率设计。这意味着设计时必须使USB1.1和USB2.0兼容。
2 良好的调整有助于产品的快速上市和性能提高
Cypress相信它的单芯片方法给公司提供了1个USB2.0结构的可能性。这是考虑了既要获得所需的高性能I/O(输入/输出),又要保持480Mb/s的USB2.0高速率。
此外,该公司看到了USB1.1多芯片方法中存在的引脚数问题:USB1.1的数据宽度是8位,而现在USB2.0的宽度至少是32位。这需要大的封装,如100和128引脚四方扁平封装。按该公司的方法,这正好适合作为SIE(串行接口引擎)和PHY(物理层)用,但并不包括单片机。因此,封装的费用就占了总价格的相当部分,则总系统的价格就更高。公司有3种芯片版本,最小的是56引脚的缩小外形输出封装(SSOP)。引脚数少是因为宽的数据引线都在芯片内部,封装的引脚是作为外部接口用。
总之,单芯片方法的优势可体现在性能、灵活性和价格方面。如上所述,宽数据总线在芯片内,实际上能调整结构以适应高速度。
FX2部件的特点之一是采用低价的8051单片机,仍然能获得很高的速度。至于灵活性,则体现在USB2.0的可编程接口能为特定的应用接口编程。 FX2的特点是内有8位8051单片机内核,它可工作在12,24或48MHz,这取决于应用对象。图4所示为FX2方框图,它展示了芯片的集成特性。此单片机之所以得到广泛的应用,是因为它能适应各种功耗和应用的要求,并能保持USB2.0高速度的特点。此外,USB的端点(endpoint)数据缓冲器以及从属FIFO(先入先出寄存器),现在都与经典的FIFO一样。该缓冲器可与Cypress智能USB2.0 SIE(串行接口引擎)相连接。如图4所示:数据进入收发器后,通过SIE直接转向FIFO,然后,通过8或16位数据路径,可与外部连接,存取数据。注意,这时在数据路径上没有单片机。
图4 EZ-USB FX2方框图
收发器与SIE(串行接口引擎)相连接,SIE直接与端点(endpoint)FIFO相连。仅当需要完成检验分组信息的工作时,单片机才与USB传输发生关系。
单片机仍可对FIFO进行存取。例如,它能根据信息分组(包)的头标码内容与因特网进行存取操作;但是,数据路径的速度与单片机的处理速度无关,它有独立的速度。这是调整了结构的1个例子。
Cypress USB2.0 SIE类似该公司以前的FX部件,能执行USB2.0协议的大部分内容。设计师不必考虑所有三级处理这类事情,而全由智能SIE来完成。当用户订购该公司的开发板,并插入PC插槽时,不必写入任何代码,开发板就能工作。很明显,这是由于有智能SIE之故,使用户应用时不需调整开发板。在启动这部分工作时不会影响其他部分,USB就能立即传输数据。
由智能SIE支持的另一工作是Cypress固件下载。由于固件是在FX2的RAM中,所以能通过SIE用USB下载。当单片机复位时,SIE就能做下载工作。因为USB2.0是新的,有许多问题要考虑。下载给设计师提供了一种容易升级的方法。在参数变化时,这是一个重要的优点,因此减少了风险和不确定性,增加了产品上市快的优势。
端点(endpoint)FIFO的关键之处是它按双口RAM来执行。USB是分组协议,它可立即发送整个分组信息。USB2.0的分组长度是512字节。如果用经典的FIFO,当产生坏的CRC(循环校验码)时,所有的数据必然泛滥流出,因为它是坏数据。把FIFO作为RAM来执行,它变得更像分组的FIFO。整个分组信息能送入双口存储器。如果CRC是好的,则分组信息能从USB域交换到I/O(输入/输出)域。对外来说,它看起来仍然像FIFO,但代之以每次只传送1个字或1个字节为立即传送整个分组信息。
端点FIFO的其他部分与速度有关。因为数据流入很快,所以对分组来说,至少需要双口缓冲器。 Cypress公司的器件因可编程而进了一步。端点缓冲器可能是双、三或四缓冲器,与所需的数据量或灵活性有关。例如,批量存储的外设,在高速时,要断开1个读数据信道。然后读/写头移到下一条路径,在USB上发送数据。为保证此工作,需要四重缓冲。
实际上不需要了解FIFO对外是如何进行调整工作的,因为有FIFO满标志、FIFO空标志以及可编程标志。事实上,这是一个“量子”FIFO(公司这样称呼),分组的换入、换出是完全透明的。
“量子”FIFO就是有256×16位的双口RAM块,如图5所示。它们放置在USB这边,而数据是从USB输出或输入。数据穿过虚线进行交换(见图5),达到I/O系统部分,这时能肯定整个分组是好的。8051单片机也对此存储器存取有效,这在另一种分组协议时就要用到。如以太网,在应用之前,可能要对分组进行试验。8051能视分组的头标码内容按需要进行处理。在任何给定时间,某些RAM块都是在SIE(串行接口引擎)控制下,由USB数据充满/空闲;而其他的RAM块则可由8051单片机和()或I/O控制单元使用。在USB域,RAM块是单口;在8051的I/O单元域,RAM块是双口。RAM块能构成单、双、三或四缓冲。
图5 256×16位的双口RAM块
通过USB1.1和USB2.0的比较,明确了哪些东西是不用去学习研究的。需要考虑的是如何执行USB2.0的总体结构。如果Cypress公司仍停留在使用原来的结构,则USB将包括:在I/O一边的FIFO和另一边的端点缓冲器。但是,因为USB2.0工作非常快,以至于这两种缓冲器将会是巨大的,从而增加了器件的成本。
“量子”FIFO思想是一个有创造性的方法,它把几种功能都结合起来,以便FIFO能被外界看见;而端点缓冲器在芯片内部才能看见,但它们的作用都是相同的。在以前的结构中,存储器都是分开的。作为分开的FIFO容易在不同的时间域保持。采用USB和对外部I/O执行的方法,不同的时间域仍然是必要的,但这是更合理的方法。多芯片方法的设计师必然要回到两个FIFO的布局,总体成本与这两个大的器件有关。 FX2的灵活性由于有通用可编程接口(GPIF)而得到增强,它是一个可编程状态机。它能产生全部控制信号,例如:作为ATAPI硬盘驱动、DSL(数字用户线路)的Utopia接口或打印机的增强并行接口(EPP)。关键之处是能用相同的部件来寻址所有这些不同的接口,而不需要粘合连接逻辑。这也扩展到微处理器,如PowerPC、数字信号处理器(DSP)和PCMCIA(个人电脑存储器卡国际协会)器件,其中的每一种都需要一个不同的部件作粘合连接。因此,采用单芯片方法可以降低成本。通用可编程接口使FX2能为这些设备的每一接口进行调节。
设计师必须编制GIPF(通用可编程接口)程序,但Cypress公司提供了编制适当接口的软件工具,从而不必了解如何接口的具体过程。在此领域,公司还有帮助设计师的参考设计。
如前所述,FX2有三种封装形式:一是56脚的SOPP;二是100脚的TQFP(薄形四方扁平封装);三是128脚的TQFP。引脚数的区别在于输入、输出引脚数的不同。尽管Cypress公司的重点是在前两种封装,但128脚封装正好适合设计师必须采用外部数据总线、地址总线和8KB RAM的情况。这使得结构可扩展,给了设计师一个增加路径的空间。
三、 USB单片机
下面介绍Infineon 8位和16位USB单片机的结构和性能特点。图6是8位USB单片机C541的内部结构框图;图7是16位USB单片机SABC161的内部结构框图。从图中可见,其基本结构与普通单片机没有多大区别,只是左下角增加了USB收发模块(包括锁相环PLL)。8位USB单片机C541有44个引脚P-LCC封装及P-SDIP-52封装。并口1(Port1)可作6位到8位的数字接口。快速USB总线,使开发的多媒体产品更具竞争力。
图6 8位USB单片机C514的内部结构框图
BRG:基本波特速率发生器
ASC:异步串行通信
DMA:直接存储器存储
USART:通用同步异步收发器
SCU:串行控制单元
OCDS:操作控制文件系统
RTC:实时时钟
JTAJ:测试联合行动组织
PEC:保护选通控制
图7 16位USB单片机SABC161的内部结构框图
8位USB单片机C541性能特点:
· 兼容USB1.1标准;
· 与8051完全兼容;
· 可高速及低速运行;
· 内含USB收发模块;
· 内含看门狗;
· VDD:4.25~5.5V;
· 8KB OTP P-SDIP-52及P-LCC-44两种封装。
USB单片机C541还具有技术支援,包括C541U Starter Kit套件、核心软件及USB总线应用程序。
USB单片机C541可应用于高级USB键盘、ISDN(综合业务数据网)调制解调器、入机USB接口和所有USB接口。
16位USB单片机SABC161的性能特点:
· 兼容USB1.1标准;
· 18MIPS高速运算能力及55.5ns指令周期;
· 实时时钟; · 内含USB收发模块;
· 内含看门狗; · VDD:3.3V;
· 3KB RAM及2M地址线;
· DMA(直接存储器存取)控制器;
· USART(通用同步异步收发器)支持IrDA(红外传输标准)功能;
· TQFP-100及MQFP封装。
USB单片机SABC161还具有技术支援,包括SABC161 Starter Kit套件、核心软件和仿真器与C++编译器。
USB单片机SABC161可应用于USB打印机、USB数码相机和所有高级USB接口及适配器。