USB系统范文10篇

时间:2023-03-30 20:43:36

USB系统

USB系统范文篇1

关键词:通用串行总线USB接口接口标准

一、USB接口背景

在早期的计算机系统上常用串口或并口连接设备。每个接口都需要占用计算机的系统资源(如中断,I/O地址,DMA通道等)。无论是串口还是并口都是点对点的连接,一个接口仅支持一个设备。因此每添加一个新的设备,就需要添加一个ISA/EISA或PCI卡来支持,同时系统需要重新启动才能驱动新的设备。

USB总线是INTEL、DEC、MICROSOFT、IBM等公司联合提出的一种新的串行总线标准,主要用于PC机与设备的互联。USB总线具有低成本、使用简单、支持即插即用、易于扩展等特点,已被广泛地用在PC机及嵌入式系统上。

二、USB总线优缺点

1.优点

(1)使用简单

所用USB系统的接口一致,连线简单。系统可对设备进行自动检测和配置,支持热插拔。新添加设备系统不需要重新启动。

(2)应用范围广

USB系统数据报文附加信息少,带宽利用率高,可同时支持同步传输和异步传输两种传输方式。一个USB系统最多可支持127个物理设备。USB设备的带宽可从几Kbps到几Mbps(在USB2.0版本,最高可达几百Mbps)。一个USB系统可同时支持不同速率的设备,如低速的键盘、鼠标,全速的ISDN、语音,高速的磁盘、图像等(仅USB2.0版本支持高速设备)。

(3)较强的纠错能力

USB系统可实时地管理设备插拔。在USB协议中包含了传输错误管理、错误恢复等功能,同时根据不同的传输类型来处理传输错误。

(4)总线供电

USB总线可为连接在其上的设备提供5V电压/100mA电流的供电,最大可提供500mA的电流。USB设备也可采用自供电方式。

(5)低成本

USB接口电路简单,易于实现,特别是低速设备。USB系统接口/电缆也比较简单,成本比串口/并口低。

2.缺点

USB技术还不是很成熟,特别是高速设备。市场上现有的USB设备价格都比较昂贵,但随着USB技术的日益成熟,设备的不断增加和广泛应用,其价格将会有所降低。

三、USB系统拓扑结构

一个USB系统包含三类硬件设备:USB主机(USBHOST)、USB设备(USBDEVICE)、USB集线器(USBHUB),如图1所示。

(1)USBHOST

在一个USB系统中,当且仅当有一个USBHOST时,USBHOST有以下功能:

◇管理USB系统;

◇每毫秒产生一帧数据;

◇发送配置请求对USB设备进行配置操作;

◇对总线上的错误进行管理和恢复。

(2)USBDEVICE

在一个USB系统中,USBDEVICE和USBHUB总数不能超过127个。USBDEVICE接收USB总线上的所有数据包,通过数据包的地址域来判断是不是发给自己的数据包:若地址不符,则简单地丢弃该数据包;若地址相符,则通过响应USBHOST的数据包与USBHOST进行数据传输。

(3)USBHUB

USBHUB用于设备扩展连接,所有USBDEVICE都连接在USBHUB的端口上。一个USBHOST总与一个根HUB(USBROOTHUB)相连。USBHUB为其每个端口提供100mA电流供设备使用。同时,USBHUB可以通过端口的电气变化诊断出设备的插拔操作,并通过响应USBHOST的数据包把端口状态汇报给USBHOST。一般来说,USB设备与USBHUB间的连线长度不超过5m,USB系统的级联不能超过5级(包括ROOTHUB)。

四、USB总线数据传输

USB总线上数据传输的结构如图2所示。

从物理结构上,USB系统是一个星形结构;但在逻辑结构上,每个USB逻辑设备都是直接与USBHOST相连进行数据传输的。在USB总线上,每ms传输1帧数据。每帧数据可由多个数据包的传输过程组成。USB设备可根据数据包中的地址信息来判断是否响应该数据传输。在USB标准1.1版本中,规定了4种传输方式以适应不同的传输需求:

(1)控制传输(controltransfer)

控制传输发送设备请求信息,主要用于读取设备配置信息及设备状态、设置设备地址,设置设备属性、发送控制命令等功能。全速设备每次控制传输的最大有效负荷可为64个字节,而低速设备每次控制传输的最大有效负荷仅为8个字节。

(2)同步传输(isochronoustransfer)

同步传输仅适用于全速/高速设备。同步传输每ms进行一次传输,有较大的带宽,常用于语音设备。同步传输每次传输的最大有效负荷可为1023个字节。

(3)中断传输(interrupttransfer)

中断传输用于支持数据量少的周期性传输需求。全速设备的中断传输周期可为1~255ms,而低速设备的中断传输周期为10~255ms。全速设备每次中断传输的最大有效负荷可为64个字节,而低速设备每次中断传输的最大有效负荷仅为8个字节。

(4)块数据传输(bulktransfer)

块数据传输是非周期性的数据传输,仅全速/高速设备支持块数据传输,同时,当且仅当总线带宽有效时才进行块数据传输。块数据传输每次数据传输的最大有效负荷可为64个字节。

五、典型应用

USB系统的典型应用如图3所示。

在图3所示系统中,显示器、Audio、Modem皆为全速设备,键盘、鼠标为低速设备。其数据传输为:

◇USBHOST通过控制传输更改显示器属性。

◇USBHOST通过块数据传输将要显示的数据送给显示器。

◇USBHOST通过控制传输更改键盘、鼠标属性。

◇USBHOST通过中断传输要求键盘、鼠标输入读入系统。

◇USBHOST通过控制传输更改Audio属性。

◇USBHOST通过同步传输与Audio设备传输数据。

◇USBHOST通过控制传输更改Modem属性。

◇USBHOST通过块数据传输与Modem设备传输数据

六、一个USBHOST接口的软硬件设计

市场上现已有很多公司提供的USB接口器件,如PHILIPS的PDIUSBD11/PDIUSBD12,OKI的MSM60581,NATIONAL的USBN9602,LUCENT的USS-820/USS-620,SCANLOGIC的SL11,等等。

同时也有很多带USB接口的处理器,如CYPRESS的EZ-USB,AMD的AM186CC,ATMEL的AT43320,MOTOROLA的PPC823/PPC850,等等。下面给出用SCANLOGIC的USB接口器件SL11HT实现嵌入式USBHOST的例子。

1.SL11HT特点

◇遵从USB1.1标准;

◇支持全速/低速传输;

◇支持主机/设备端两种模式;

◇3.3/5.0V供电;

◇片内包含256个字节的SRAM;

◇48MHz晶振输入。

当SL11HT被用作USBHOST接口时,对系统有以下要求:

◇由系统维护SOF帧数目;

◇由系统生成CRC5效验码;

◇要求系统中断潜伏期小于1.5μs。

2.SL11HT接口硬件框图

图4简单地给出了使用SL11HT扩展USB接口的框图,更详细的硬件连线图请见参考文献2,3。

3.USBHOST端软件结构

USBHOST端软件结构如图5所示。

(1)USB接口驱动程序

USB接口驱动程序需实现以下功能:

◇USB接口器件的初始化;

◇计算上层数据包的效验和,发送上层的数据包;

◇发送SOF帧;

◇接收从USB接口传送来的数据,并检查数据的有效性;

◇将接收到的数据送往上层。

(2)USB协议栈驱动程序

USB协议栈驱动程序需实现以下功能:

◇提供与设备驱动程序的接口;

◇读取并解析USB设备描述符,配置描述符;

◇为USB设备分配唯一的地址;

◇使用默认的配置来配置设备;

◇支持基本的USB命令请求;

◇连接设备与相应的驱动程序;

◇转发设备驱动程序的数据包。

(3)设备驱动程序

设备驱动程序需实现以下功能:

◇提供与应用程序的接口;

◇读取并解析USB设备特有的描述符,获得设备提供的传输通道;

◇发送设备特有的和基本的USB命令请求;

USB系统范文篇2

关键词:通用串行总线USB接口接口标准

一、USB接口背景

在早期的计算机系统上常用串口或并口连接设备。每个接口都需要占用计算机的系统资源(如中断,I/O地址,DMA通道等)。无论是串口还是并口都是点对点的连接,一个接口仅支持一个设备。因此每添加一个新的设备,就需要添加一个ISA/EISA或PCI卡来支持,同时系统需要重新启动才能驱动新的设备。

USB总线是INTEL、DEC、MICROSOFT、IBM等公司联合提出的一种新的串行总线标准,主要用于PC机与设备的互联。USB总线具有低成本、使用简单、支持即插即用、易于扩展等特点,已被广泛地用在PC机及嵌入式系统上。

二、USB总线优缺点

1.优点

(1)使用简单

所用USB系统的接口一致,连线简单。系统可对设备进行自动检测和配置,支持热插拔。新添加设备系统不需要重新启动。

(2)应用范围广

USB系统数据报文附加信息少,带宽利用率高,可同时支持同步传输和异步传输两种传输方式。一个USB系统最多可支持127个物理设备。USB设备的带宽可从几Kbps到几Mbps(在USB2.0版本,最高可达几百Mbps)。一个USB系统可同时支持不同速率的设备,如低速的键盘、鼠标,全速的ISDN、语音,高速的磁盘、图像等(仅USB2.0版本支持高速设备)。

(3)较强的纠错能力

USB系统可实时地管理设备插拔。在USB协议中包含了传输错误管理、错误恢复等功能,同时根据不同的传输类型来处理传输错误。

(4)总线供电

USB总线可为连接在其上的设备提供5V电压/100mA电流的供电,最大可提供500mA的电流。USB设备也可采用自供电方式。

(5)低成本

USB接口电路简单,易于实现,特别是低速设备。USB系统接口/电缆也比较简单,成本比串口/并口低。

2.缺点

USB技术还不是很成熟,特别是高速设备。市场上现有的USB设备价格都比较昂贵,但随着USB技术的日益成熟,设备的不断增加和广泛应用,其价格将会有所降低。

三、USB系统拓扑结构

一个USB系统包含三类硬件设备:USB主机(USBHOST)、USB设备(USBDEVICE)、USB集线器(USBHUB),如图1所示。

(1)USBHOST

在一个USB系统中,当且仅当有一个USBHOST时,USBHOST有以下功能:

◇管理USB系统;

◇每毫秒产生一帧数据;

◇发送配置请求对USB设备进行配置操作;

◇对总线上的错误进行管理和恢复。

(2)USBDEVICE

在一个USB系统中,USBDEVICE和USBHUB总数不能超过127个。USBDEVICE接收USB总线上的所有数据包,通过数据包的地址域来判断是不是发给自己的数据包:若地址不符,则简单地丢弃该数据包;若地址相符,则通过响应USBHOST的数据包与USBHOST进行数据传输。

(3)USBHUB

USBHUB用于设备扩展连接,所有USBDEVICE都连接在USBHUB的端口上。一个USBHOST总与一个根HUB(USBROOTHUB)相连。USBHUB为其每个端口提供100mA电流供设备使用。同时,USBHUB可以通过端口的电气变化诊断出设备的插拔操作,并通过响应USBHOST的数据包把端口状态汇报给USBHOST。一般来说,USB设备与USBHUB间的连线长度不超过5m,USB系统的级联不能超过5级(包括ROOTHUB)。

四、USB总线数据传输

USB总线上数据传输的结构如图2所示。

从物理结构上,USB系统是一个星形结构;但在逻辑结构上,每个USB逻辑设备都是直接与USBHOST相连进行数据传输的。在USB总线上,每ms传输1帧数据。每帧数据可由多个数据包的传输过程组成。USB设备可根据数据包中的地址信息来判断是否响应该数据传输。在USB标准1.1版本中,规定了4种传输方式以适应不同的传输需求:

(1)控制传输(controltransfer)

控制传输发送设备请求信息,主要用于读取设备配置信息及设备状态、设置设备地址,设置设备属性、发送控制命令等功能。全速设备每次控制传输的最大有效负荷可为64个字节,而低速设备每次控制传输的最大有效负荷仅为8个字节。

(2)同步传输(isochronoustransfer)

同步传输仅适用于全速/高速设备。同步传输每ms进行一次传输,有较大的带宽,常用于语音设备。同步传输每次传输的最大有效负荷可为1023个字节。

(3)中断传输(interrupttransfer)

中断传输用于支持数据量少的周期性传输需求。全速设备的中断传输周期可为1~255ms,而低速设备的中断传输周期为10~255ms。全速设备每次中断传输的最大有效负荷可为64个字节,而低速设备每次中断传输的最大有效负荷仅为8个字节。(4)块数据传输(bulktransfer)

块数据传输是非周期性的数据传输,仅全速/高速设备支持块数据传输,同时,当且仅当总线带宽有效时才进行块数据传输。块数据传输每次数据传输的最大有效负荷可为64个字节。

五、典型应用

USB系统的典型应用如图3所示。

在图3所示系统中,显示器、Audio、Modem皆为全速设备,键盘、鼠标为低速设备。其数据传输为:

◇USBHOST通过控制传输更改显示器属性。

◇USBHOST通过块数据传输将要显示的数据送给显示器。

◇USBHOST通过控制传输更改键盘、鼠标属性。

◇USBHOST通过中断传输要求键盘、鼠标输入读入系统。

◇USBHOST通过控制传输更改Audio属性。

◇USBHOST通过同步传输与Audio设备传输数据。

◇USBHOST通过控制传输更改Modem属性。

◇USBHOST通过块数据传输与Modem设备传输数据

六、一个USBHOST接口的软硬件设计

市场上现已有很多公司提供的USB接口器件,如PHILIPS的PDIUSBD11/PDIUSBD12,OKI的MSM60581,NATIONAL的USBN9602,LUCENT的USS-820/USS-620,SCANLOGIC的SL11,等等。

同时也有很多带USB接口的处理器,如CYPRESS的EZ-USB,AMD的AM186CC,ATMEL的AT43320,MOTOROLA的PPC823/PPC850,等等。下面给出用SCANLOGIC的USB接口器件SL11HT实现嵌入式USBHOST的例子。

1.SL11HT特点

◇遵从USB1.1标准;

◇支持全速/低速传输;

◇支持主机/设备端两种模式;

◇3.3/5.0V供电;

◇片内包含256个字节的SRAM;

◇48MHz晶振输入。

当SL11HT被用作USBHOST接口时,对系统有以下要求:

◇由系统维护SOF帧数目;

◇由系统生成CRC5效验码;

◇要求系统中断潜伏期小于1.5μs。

2.SL11HT接口硬件框图

图4简单地给出了使用SL11HT扩展USB接口的框图,更详细的硬件连线图请见参考文献2,3。

3.USBHOST端软件结构

USBHOST端软件结构如图5所示。

(1)USB接口驱动程序

USB接口驱动程序需实现以下功能:

◇USB接口器件的初始化;

◇计算上层数据包的效验和,发送上层的数据包;

◇发送SOF帧;

◇接收从USB接口传送来的数据,并检查数据的有效性;

◇将接收到的数据送往上层。

(2)USB协议栈驱动程序

USB协议栈驱动程序需实现以下功能:

◇提供与设备驱动程序的接口;

◇读取并解析USB设备描述符,配置描述符;

◇为USB设备分配唯一的地址;

◇使用默认的配置来配置设备;

◇支持基本的USB命令请求;

◇连接设备与相应的驱动程序;

◇转发设备驱动程序的数据包。

(3)设备驱动程序

设备驱动程序需实现以下功能:

◇提供与应用程序的接口;

◇读取并解析USB设备特有的描述符,获得设备提供的传输通道;

◇发送设备特有的和基本的USB命令请求;

USB系统范文篇3

关键词:USBRS485数据采集

在工业生产和科学技术研究的各行业中,常常利用PC或工控机对各种数据进行采集。这其中有很多地方需要对各种数据进行采集,如液位、温度、压力、频率等。现在常用的采集方式是通过数据采集板卡,常用的有A/D卡以及422、485等总线板卡。采用板卡不仅安装麻烦、易受机箱内环境的干扰,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备。而通用串行总线(UniversalAerialBus,简称USB)的出现,很好地解决了以上这些冲突,很容易就能实现低成本、高可靠性、多点的数据采集。

1USB简介

USB是一些PC大厂商,如Microsoft、Intel等为了解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾而制定的一种串行通信的标准,自1995年在Comdex上亮相以来至今已广泛地为各PC厂家所支持。现在生产的PC几乎都配备了USB接口,Microsft的Windows98、NT以及MacOS、Linux、FreeBSD等流行操作系统都增加了对USB的支持。

1.1USB系统的构成

USB系统主要由主控制器(HostController)、USBHub和USB外设(PeripheralsNode)组成系统拓扑结构,如图1所示。

1.2USB的主要优点

·速度快。USB有高速和低速两种方式,主模式为高速模式,速率为12Mbps,另外为了适应一些不需要很大吞吐量和很高实时性的设备,如鼠标等,USB还提供低速方式,速率为1.5Mb/s。

·设备安装和配置容易。安装USB设备不必再打开机箱,加减已安装过的设备完全不用关闭计算机。所有USB设备支持热拔插,系统对其进行自动配置,彻底抛弃了过去的跳线和拨码开关设置。

·易于扩展。通过使用Hub扩展可拨接多达127个外设。标准USB电缆长度为3m(5m低速)。通过Hub或中继器可以使外设距离达到30m。

·能够采用总线供电。USB总线提供最大达5V电压、500mA电流。

·使用灵活。USB共有4种传输模式:控制传输(control)、同步传输(Synchronization)、中断传输(interrupt)、批量传输(bulk),以适应不同设备的需要。

2采用USB传输的数据采集设备

2.1硬件组成

一个实用的USB数据采集系统包括A/D转换器、微控制器以及USB通信接口。为了扩展其用途,还可以加上多路模拟开关和数字I/O端口。

系统的A/D、数字I/O的设计可沿用传统的设计方法,根据采集的精度、速率、通道数等诸元素选择合适的芯片,设计时应充分注意抗干扰的性能,尤其对A/D采集更是如此。

在微控制器和USB接口的选择上有两种方式,一种是采用普通单片机加上专用的USB通信芯片。现在的专用芯片中较流行的有NationalSemiconductor公司的USBN9602、ScanLogic公司的SL11等。笔者曾经采用Atmel公司的89c51单片机和USBN9602芯片构成系统,取得了良好的效果。这种方案的设计和调试比较麻烦,成本相对而言也比较高。

另一种方案是采用具备USB通信功能的单片机。随着USB应用的日益广泛,Intel、SGS-Tomson、Cypress、Philips等芯片厂商都推出了具备USB通信接口的单片机。这些单片机处理能力强,有的本身就具备多路A/D,构成系统的电路简单,调试方便,电磁兼容性好,因此采用具备USB接口的单片机是构成USB数据采集系统较好的方案。不过,由于具备了USB接口,这些芯片与过去的开发系统通常是不兼容的,需要购买新的开发系统,投资较高。

USB的一大优点是可以提供电源。在数据采集设备中耗电量通常不大,因此可以设计成采用总线供电的设备。

2.2软件构成

Windows98提供了多种USB设备的驱动程序,但好象还没有一种是专门针对数据采集系统的,所以必须针对特定的设备来编制驱动程序。尽管系统已经提供了很多标准接口函数,但编制驱动程序仍然是USB开发中最困难的一件事情,通常采用WindowsDDK来实现。目前有许多第三方软件厂商提供了各种各样的生成工具,象Compuware的driverworks,BlueWaters的DriverWizard等,它们能够很容易地在几分钟之内生成高质量的USB的驱动程序。

设备中单片机程序的编制也同样困难,而且没有任何一家厂商提供了自动生成的工具。编制一个稳定、完善的单片机程序直接关系到设备性能,必须给予充分的重视。

以上两个程序是开发者所关心的,用户不大关心。用户关心的是如何高效地通过鼠标来操作设备,如何处理和分析采集进来的大量数据,因此还必须有高质量的用户软件。用户软件必须有友好的界面,强大的数据分析和处理能力以及为用户提供进行再开发的接口。

3实现USB远距离采集数据传输

传输距离是限制USB在工业现场应用的一个障碍,即使增加了中继或Hub,USB传输距离通常也不超过几十米,这对工业现场而言显然是太短了。

现在工业现场有大量采用RS-485传输数据的采集设备。RS-485有其固有的优点,即它的传输距离可以达到1200米以上,并且可以挂接多个设备。其不足之处在于传输速度慢,采用总线方式,设备之间相互影响,可靠性差,需要板卡的支持,成本高,安装麻烦等。RS-485的这些缺点恰好能被USB所弥补,而USB传输距离的限制恰好又是RS-485的优势所在。如果能将两者结合起来,优势互补,就能够产生一种快速、可靠、低成本的远距离数据采集系统。

这种系统的基本思想是:在采集现场,将传感器采集到的模拟量数字化以后,利用RS-485协议将数据上传。在PC端有一个双向RS-485~USB的转换接口,利用这个转接口接收485的数据并通过USB接口传输至PC机进行分析处理。而主机向设备发送数据的过程正好相反:主机向USB口发送数据,数据通过485~USB转换口转换为485协议向远端输送,如图3所示。

在图3的方案中,关键设备是485~USB转换器。这样的设备在国内外都已经面市。笔者也曾经用NationalSemiconductor公司的USBN9602+89c51+MAX485实现过这一功能,在实际应用中取得了良好的效果。

需要特别说明的是,在485~USB转换器中,485接口的功能和通常采用485卡的接口性能(速率、驱动能力等)完全一样,也就是说,一个485~USB转换器就能够完全取代一块485卡,成本要低许多,同时具有安装方便、不受插槽数限制、不用外接电源等优点,为工业和科研数据采集提供了一条方便、廉价、有效的途径。

4综合式采集数据传输系统的实现

现在的数据采集系统通常有分布式和总线两种。采用USB接口易于实现分布式,而485接口则易于实现总线式,如果将这两者结合起来,则能够实现一种综合式的数据采集系统。实现方法是:仍然利用上面提到过的USB~485转换器实现两种协议的转换。由于USB的数据传输速率大大高于485,因此在每条485总线上仍然可以挂接多个设备,形成了图4所示的结构,其中D代表一个设备。

这种传输系统适用于一些由多个空间上相对分散的工作点,而每个工作点又有多个数据需要进行采集和传输的场合,例如大型粮库,每个粮仓在空间上相对分散,而每个粮仓又需要采集温度、湿度、二氧化碳浓度等一系列数据。在这样的情况下,每一个粮仓可以分配一条485总线,将温度、湿度、二氧化碳浓度等量的采集设备都挂接到485总线上,然后每个粮仓再通过485总线传输到监控中心,并转换为USB协议传输到PC机,多个粮仓的传输数据在转换为USB协议后可以通过Hub连接到一台PC机上。由于粮仓的各种数据监测实时性要求不是很高,因此采用这种方法可以用一台PC机完成对一个大型粮库的所有监测工作。

5前景展望

USB系统范文篇4

关键词:通用串行总线USB接口接口标准

一、USB接口背景

在早期的计算机系统上常用串口或并口连接设备。每个接口都需要占用计算机的系统资源(如中断,I/O地址,DMA通道等)。无论是串口还是并口都是点对点的连接,一个接口仅支持一个设备。因此每添加一个新的设备,就需要添加一个ISA/EISA或PCI卡来支持,同时系统需要重新启动才能驱动新的设备。

USB总线是INTEL、DEC、MICROSOFT、IBM等公司联合提出的一种新的串行总线标准,主要用于PC机与设备的互联。USB总线具有低成本、使用简单、支持即插即用、易于扩展等特点,已被广泛地用在PC机及嵌入式系统上。

二、USB总线优缺点

1.优点

(1)使用简单

所用USB系统的接口一致,连线简单。系统可对设备进行自动检测和配置,支持热插拔。新添加设备系统不需要重新启动。

(2)应用范围广

USB系统数据报文附加信息少,带宽利用率高,可同时支持同步传输和异步传输两种传输方式。一个USB系统最多可支持127个物理设备。USB设备的带宽可从几Kbps到几Mbps(在USB2.0版本,最高可达几百Mbps)。一个USB系统可同时支持不同速率的设备,如低速的键盘、鼠标,全速的ISDN、语音,高速的磁盘、图像等(仅USB2.0版本支持高速设备)。

(3)较强的纠错能力

USB系统可实时地管理设备插拔。在USB协议中包含了传输错误管理、错误恢复等功能,同时根据不同的传输类型来处理传输错误。

(4)总线供电

USB总线可为连接在其上的设备提供5V电压/100mA电流的供电,最大可提供500mA的电流。USB设备也可采用自供电方式。

(5)低成本

USB接口电路简单,易于实现,特别是低速设备。USB系统接口/电缆也比较简单,成本比串口/并口低。

2.缺点

USB技术还不是很成熟,特别是高速设备。市场上现有的USB设备价格都比较昂贵,但随着USB技术的日益成熟,设备的不断增加和广泛应用,其价格将会有所降低。

三、USB系统拓扑结构

一个USB系统包含三类硬件设备:USB主机(USBHOST)、USB设备(USBDEVICE)、USB集线器(USBHUB),如图1所示。

(1)USBHOST

在一个USB系统中,当且仅当有一个USBHOST时,USBHOST有以下功能:

◇管理USB系统;

◇每毫秒产生一帧数据;

◇发送配置请求对USB设备进行配置操作;

◇对总线上的错误进行管理和恢复。

(2)USBDEVICE

在一个USB系统中,USBDEVICE和USBHUB总数不能超过127个。USBDEVICE接收USB总线上的所有数据包,通过数据包的地址域来判断是不是发给自己的数据包:若地址不符,则简单地丢弃该数据包;若地址相符,则通过响应USBHOST的数据包与USBHOST进行数据传输。

(3)USBHUB

USBHUB用于设备扩展连接,所有USBDEVICE都连接在USBHUB的端口上。一个USBHOST总与一个根HUB(USBROOTHUB)相连。USBHUB为其每个端口提供100mA电流供设备使用。同时,USBHUB可以通过端口的电气变化诊断出设备的插拔操作,并通过响应USBHOST的数据包把端口状态汇报给USBHOST。一般来说,USB设备与USBHUB间的连线长度不超过5m,USB系统的级联不能超过5级(包括ROOTHUB)。

四、USB总线数据传输

USB总线上数据传输的结构如图2所示。

从物理结构上,USB系统是一个星形结构;但在逻辑结构上,每个USB逻辑设备都是直接与USBHOST相连进行数据传输的。在USB总线上,每ms传输1帧数据。每帧数据可由多个数据包的传输过程组成。USB设备可根据数据包中的地址信息来判断是否响应该数据传输。在USB标准1.1版本中,规定了4种传输方式以适应不同的传输需求:

(1)控制传输(controltransfer)

控制传输发送设备请求信息,主要用于读取设备配置信息及设备状态、设置设备地址,设置设备属性、发送控制命令等功能。全速设备每次控制传输的最大有效负荷可为64个字节,而低速设备每次控制传输的最大有效负荷仅为8个字节。

(2)同步传输(isochronoustransfer)

同步传输仅适用于全速/高速设备。同步传输每ms进行一次传输,有较大的带宽,常用于语音设备。同步传输每次传输的最大有效负荷可为1023个字节。

(3)中断传输(interrupttransfer)

中断传输用于支持数据量少的周期性传输需求。全速设备的中断传输周期可为1~255ms,而低速设备的中断传输周期为10~255ms。全速设备每次中断传输的最大有效负荷可为64个字节,而低速设备每次中断传输的最大有效负荷仅为8个字节。

(4)块数据传输(bulktransfer)

块数据传输是非周期性的数据传输,仅全速/高速设备支持块数据传输,同时,当且仅当总线带宽有效时才进行块数据传输。块数据传输每次数据传输的最大有效负荷可为64个字节。

五、典型应用

USB系统的典型应用如图3所示。

在图3所示系统中,显示器、Audio、Modem皆为全速设备,键盘、鼠标为低速设备。其数据传输为:

◇USBHOST通过控制传输更改显示器属性。

◇USBHOST通过块数据传输将要显示的数据送给显示器。

◇USBHOST通过控制传输更改键盘、鼠标属性。

◇USBHOST通过中断传输要求键盘、鼠标输入读入系统。

◇USBHOST通过控制传输更改Audio属性。

◇USBHOST通过同步传输与Audio设备传输数据。

◇USBHOST通过控制传输更改Modem属性。

◇USBHOST通过块数据传输与Modem设备传输数据

六、一个USBHOST接口的软硬件设计

市场上现已有很多公司提供的USB接口器件,如PHILIPS的PDIUSBD11/PDIUSBD12,OKI的MSM60581,NATIONAL的USBN9602,LUCENT的USS-820/USS-620,SCANLOGIC的SL11,等等。

同时也有很多带USB接口的处理器,如CYPRESS的EZ-USB,AMD的AM186CC,ATMEL的AT43320,MOTOROLA的PPC823/PPC850,等等。下面给出用SCANLOGIC的USB接口器件SL11HT实现嵌入式USBHOST的例子。

1.SL11HT特点

◇遵从USB1.1标准;

◇支持全速/低速传输;

◇支持主机/设备端两种模式;

◇3.3/5.0V供电;

◇片内包含256个字节的SRAM;

◇48MHz晶振输入。

当SL11HT被用作USBHOST接口时,对系统有以下要求:

◇由系统维护SOF帧数目;

◇由系统生成CRC5效验码;

◇要求系统中断潜伏期小于1.5μs。

2.SL11HT接口硬件框图

图4简单地给出了使用SL11HT扩展USB接口的框图,更详细的硬件连线图请见参考文献2,3。

3.USBHOST端软件结构

USBHOST端软件结构如图5所示。

(1)USB接口驱动程序

USB接口驱动程序需实现以下功能:

◇USB接口器件的初始化;

◇计算上层数据包的效验和,发送上层的数据包;

◇发送SOF帧;

◇接收从USB接口传送来的数据,并检查数据的有效性;

◇将接收到的数据送往上层。

(2)USB协议栈驱动程序

USB协议栈驱动程序需实现以下功能:

◇提供与设备驱动程序的接口;

◇读取并解析USB设备描述符,配置描述符;

◇为USB设备分配唯一的地址;

◇使用默认的配置来配置设备;

◇支持基本的USB命令请求;

◇连接设备与相应的驱动程序;

◇转发设备驱动程序的数据包。

(3)设备驱动程序

设备驱动程序需实现以下功能:

◇提供与应用程序的接口;

◇读取并解析USB设备特有的描述符,获得设备提供的传输通道;

◇发送设备特有的和基本的USB命令请求;

USB系统范文篇5

关键词:USBRS485数据采集

在工业生产和科学技术研究的各行业中,常常利用PC或工控机对各种数据进行采集。这其中有很多地方需要对各种数据进行采集,如液位、温度、压力、频率等。现在常用的采集方式是通过数据采集板卡,常用的有A/D卡以及422、485等总线板卡。采用板卡不仅安装麻烦、易受机箱内环境的干扰,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备。而通用串行总线(UniversalAerialBus,简称USB)的出现,很好地解决了以上这些冲突,很容易就能实现低成本、高可靠性、多点的数据采集。

1USB简介

USB是一些PC大厂商,如Microsoft、Intel等为了解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾而制定的一种串行通信的标准,自1995年在Comdex上亮相以来至今已广泛地为各PC厂家所支持。现在生产的PC几乎都配备了USB接口,Microsft的Windows98、NT以及MacOS、Linux、FreeBSD等流行操作系统都增加了对USB的支持。

1.1USB系统的构成

USB系统主要由主控制器(HostController)、USBHub和USB外设(PeripheralsNode)组成系统拓扑结构,如图1所示。

1.2USB的主要优点

·速度快。USB有高速和低速两种方式,主模式为高速模式,速率为12Mbps,另外为了适应一些不需要很大吞吐量和很高实时性的设备,如鼠标等,USB还提供低速方式,速率为1.5Mb/s。

·设备安装和配置容易。安装USB设备不必再打开机箱,加减已安装过的设备完全不用关闭计算机。所有USB设备支持热拔插,系统对其进行自动配置,彻底抛弃了过去的跳线和拨码开关设置。

·易于扩展。通过使用Hub扩展可拨接多达127个外设。标准USB电缆长度为3m(5m低速)。通过Hub或中继器可以使外设距离达到30m。

·能够采用总线供电。USB总线提供最大达5V电压、500mA电流。

·使用灵活。USB共有4种传输模式:控制传输(control)、同步传输(Synchronization)、中断传输(interrupt)、批量传输(bulk),以适应不同设备的需要。

2采用USB传输的数据采集设备

2.1硬件组成

一个实用的USB数据采集系统包括A/D转换器、微控制器以及USB通信接口。为了扩展其用途,还可以加上多路模拟开关和数字I/O端口。

系统的A/D、数字I/O的设计可沿用传统的设计方法,根据采集的精度、速率、通道数等诸元素选择合适的芯片,设计时应充分注意抗干扰的性能,尤其对A/D采集更是如此。

在微控制器和USB接口的选择上有两种方式,一种是采用普通单片机加上专用的USB通信芯片。现在的专用芯片中较流行的有NationalSemiconductor公司的USBN9602、ScanLogic公司的SL11等。笔者曾经采用Atmel公司的89c51单片机和USBN9602芯片构成系统,取得了良好的效果。这种方案的设计和调试比较麻烦,成本相对而言也比较高。

另一种方案是采用具备USB通信功能的单片机。随着USB应用的日益广泛,Intel、SGS-Tomson、Cypress、Philips等芯片厂商都推出了具备USB通信接口的单片机。这些单片机处理能力强,有的本身就具备多路A/D,构成系统的电路简单,调试方便,电磁兼容性好,因此采用具备USB接口的单片机是构成USB数据采集系统较好的方案。不过,由于具备了USB接口,这些芯片与过去的开发系统通常是不兼容的,需要购买新的开发系统,投资较高。

USB的一大优点是可以提供电源。在数据采集设备中耗电量通常不大,因此可以设计成采用总线供电的设备。2.2软件构成

Windows98提供了多种USB设备的驱动程序,但好象还没有一种是专门针对数据采集系统的,所以必须针对特定的设备来编制驱动程序。尽管系统已经提供了很多标准接口函数,但编制驱动程序仍然是USB开发中最困难的一件事情,通常采用WindowsDDK来实现。目前有许多第三方软件厂商提供了各种各样的生成工具,象Compuware的driverworks,BlueWaters的DriverWizard等,它们能够很容易地在几分钟之内生成高质量的USB的驱动程序。

设备中单片机程序的编制也同样困难,而且没有任何一家厂商提供了自动生成的工具。编制一个稳定、完善的单片机程序直接关系到设备性能,必须给予充分的重视。

以上两个程序是开发者所关心的,用户不大关心。用户关心的是如何高效地通过鼠标来操作设备,如何处理和分析采集进来的大量数据,因此还必须有高质量的用户软件。用户软件必须有友好的界面,强大的数据分析和处理能力以及为用户提供进行再开发的接口。

3实现USB远距离采集数据传输

传输距离是限制USB在工业现场应用的一个障碍,即使增加了中继或Hub,USB传输距离通常也不超过几十米,这对工业现场而言显然是太短了。

现在工业现场有大量采用RS-485传输数据的采集设备。RS-485有其固有的优点,即它的传输距离可以达到1200米以上,并且可以挂接多个设备。其不足之处在于传输速度慢,采用总线方式,设备之间相互影响,可靠性差,需要板卡的支持,成本高,安装麻烦等。RS-485的这些缺点恰好能被USB所弥补,而USB传输距离的限制恰好又是RS-485的优势所在。如果能将两者结合起来,优势互补,就能够产生一种快速、可靠、低成本的远距离数据采集系统。

这种系统的基本思想是:在采集现场,将传感器采集到的模拟量数字化以后,利用RS-485协议将数据上传。在PC端有一个双向RS-485~USB的转换接口,利用这个转接口接收485的数据并通过USB接口传输至PC机进行分析处理。而主机向设备发送数据的过程正好相反:主机向USB口发送数据,数据通过485~USB转换口转换为485协议向远端输送,如图3所示。

在图3的方案中,关键设备是485~USB转换器。这样的设备在国内外都已经面市。笔者也曾经用NationalSemiconductor公司的USBN9602+89c51+MAX485实现过这一功能,在实际应用中取得了良好的效果。

需要特别说明的是,在485~USB转换器中,485接口的功能和通常采用485卡的接口性能(速率、驱动能力等)完全一样,也就是说,一个485~USB转换器就能够完全取代一块485卡,成本要低许多,同时具有安装方便、不受插槽数限制、不用外接电源等优点,为工业和科研数据采集提供了一条方便、廉价、有效的途径。

4综合式采集数据传输系统的实现

现在的数据采集系统通常有分布式和总线两种。采用USB接口易于实现分布式,而485接口则易于实现总线式,如果将这两者结合起来,则能够实现一种综合式的数据采集系统。实现方法是:仍然利用上面提到过的USB~485转换器实现两种协议的转换。由于USB的数据传输速率大大高于485,因此在每条485总线上仍然可以挂接多个设备,形成了图4所示的结构,其中D代表一个设备。

这种传输系统适用于一些由多个空间上相对分散的工作点,而每个工作点又有多个数据需要进行采集和传输的场合,例如大型粮库,每个粮仓在空间上相对分散,而每个粮仓又需要采集温度、湿度、二氧化碳浓度等一系列数据。在这样的情况下,每一个粮仓可以分配一条485总线,将温度、湿度、二氧化碳浓度等量的采集设备都挂接到485总线上,然后每个粮仓再通过485总线传输到监控中心,并转换为USB协议传输到PC机,多个粮仓的传输数据在转换为USB协议后可以通过Hub连接到一台PC机上。由于粮仓的各种数据监测实时性要求不是很高,因此采用这种方法可以用一台PC机完成对一个大型粮库的所有监测工作。

5前景展望

USB系统范文篇6

1、USB总线特点

(1)数据传输速率高

(2)数据传输可靠

(3)同时挂接多个USB设备

(4)USB接口能为设备供电

(5)支持热插拔。

USB还具有一些新的特性,如:实时性(可以实现和一个设备之间有效的实时通信)、动态性(可以实现接口间的动态切换)、联合性(不同的而又有相近的特性的接口可以联合起来)、多能性(各个不同的接口可以使用不同的供电模式)。

2、USB接口的结构与典型应用

USB接口引脚定义如图4所示。USB接口数据传输距离不大于5米。其典型应用如下图5所示。

USB总线上数据传输方式有控制传输、同步传输、中断传输、块数据传输。在图5所示系统中,USBHOST根据外部USB设备速度及使用特点采取不同的数据传输特点。如通过控制传输更改键盘、鼠标属性,通过中断传输要求键盘、鼠标输入数据;通过控制传输改变显示器属性,通过块数据传输将要显示的数据送给显示器。

3、器件选用:

USB2.0器件:Cypress公司FX2系列;

高速ADC:TI、LT、AD公司的高速(40MSPS~80MSPS)8位ADC系列;

高精度ADC:TI、LT、AD公司的中高速(2MSPS~40MSPS)12/14位ADC系列;

高速DAC:AD、LT公司的高速(40MSPS~80MSPS)8位DAC系列;

高精度DAC:AD、LT公司的中高速(20MSPS~80MSPS)12/14位DAC系列;

4、EX-USBFX2的主要特点

EZ-USBFX2芯片包括1个8051处理器、1个串行接口引擎(SIE)、1个USB收发器、8.5KB片上RAM、4KBFIFO存储器以及1个通用可编程接口(GPIF),如图2所示。FX2是一个全面集成的解决方案,它占用更少的电路板空间,并缩短开发时间。

EZ-USBFX2拥有1个独特的架构,其中包括1个智能串行接口引擎(SIE)。它执行所有基本的USB功能,将嵌入式MCU解放出来以用于实现专用的功能,并保证其持续的高性能的传输速率。FX2还包括2个通用可编程接口(GPIF),允许它“无胶粘接”,即可与任何ASIC或DSP进行连接,并且它还支持所有通用总线标准,包括ATA、UTOPIA、EPP和PCMCIA。EZ-USBFX2完全适用于USB2.0,并向下兼容USB1.1。

FX2有3种封装形式:56脚SOPP、100脚的TQFF(薄形四方扁平封装)、128脚的TQFP。引脚数的区别在于输入、输出引脚数的不同,以针对不同的应用要求。

5、本系统的功能:

1、有PGA(可编程增益放大器),ADC采用20MSP~40MSPS中高速8位ADC,DAC采用20MSPS~40MSPS中高速8位DAC。

2、SRAM采用128K×8高速SRAM。

3、3、具备16通道数字输入和16通道数字输出,也可以配置为32通道数字输出或32通道数字输入。

4、编写了USB2.0器件的介绍文档,让用户熟悉Cypress公司USB器件各种特性。

5、根据USB2.0器件各种内部特性,编写了相应的固件代码和上层测试程序。

6、编写了USB2.0内部传输速度测试程序,以多媒体图象显示程序为例(将图象下载到FX2中,读回主机显示,计算每秒显示帧数)。

7、将USB2.0的SlaveFIFO引出,用户可以将SlaveFIFO通道连接到用户板上试验。

8、配套模拟数据采集显示软件,可以作为功能较为完全的数字存储示波器使用。

USB系统范文篇7

关键词:USBRS485数据采集

在工业生产和科学技术研究的各行业中,常常利用PC或工控机对各种数据进行采集。这其中有很多地方需要对各种数据进行采集,如液位、温度、压力、频率等。现在常用的采集方式是通过数据采集板卡,常用的有A/D卡以及422、485等总线板卡。采用板卡不仅安装麻烦、易受机箱内环境的干扰,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备。而通用串行总线(UniversalAerialBus,简称USB)的出现,很好地解决了以上这些冲突,很容易就能实现低成本、高可靠性、多点的数据采集。

1USB简介

USB是一些PC大厂商,如Microsoft、Intel等为了解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾而制定的一种串行通信的标准,自1995年在Comdex上亮相以来至今已广泛地为各PC厂家所支持。现在生产的PC几乎都配备了USB接口,Microsft的Windows98、NT以及MacOS、Linux、FreeBSD等流行操作系统都增加了对USB的支持。

1.1USB系统的构成

USB系统主要由主控制器(HostController)、USBHub和USB外设(PeripheralsNode)组成系统拓扑结构,如图1所示。

1.2USB的主要优点

·速度快。USB有高速和低速两种方式,主模式为高速模式,速率为12Mbps,另外为了适应一些不需要很大吞吐量和很高实时性的设备,如鼠标等,USB还提供低速方式,速率为1.5Mb/s。

·设备安装和配置容易。安装USB设备不必再打开机箱,加减已安装过的设备完全不用关闭计算机。所有USB设备支持热拔插,系统对其进行自动配置,彻底抛弃了过去的跳线和拨码开关设置。

·易于扩展。通过使用Hub扩展可拨接多达127个外设。标准USB电缆长度为3m(5m低速)。通过Hub或中继器可以使外设距离达到30m。

·能够采用总线供电。USB总线提供最大达5V电压、500mA电流。

·使用灵活。USB共有4种传输模式:控制传输(control)、同步传输(Synchronization)、中断传输(interrupt)、批量传输(bulk),以适应不同设备的需要。

2采用USB传输的数据采集设备

2.1硬件组成

一个实用的USB数据采集系统包括A/D转换器、微控制器以及USB通信接口。为了扩展其用途,还可以加上多路模拟开关和数字I/O端口。

系统的A/D、数字I/O的设计可沿用传统的设计方法,根据采集的精度、速率、通道数等诸元素选择合适的芯片,设计时应充分注意抗干扰的性能,尤其对A/D采集更是如此。

在微控制器和USB接口的选择上有两种方式,一种是采用普通单片机加上专用的USB通信芯片。现在的专用芯片中较流行的有NationalSemiconductor公司的USBN9602、ScanLogic公司的SL11等。笔者曾经采用Atmel公司的89c51单片机和USBN9602芯片构成系统,取得了良好的效果。这种方案的设计和调试比较麻烦,成本相对而言也比较高。

另一种方案是采用具备USB通信功能的单片机。随着USB应用的日益广泛,Intel、SGS-Tomson、Cypress、Philips等芯片厂商都推出了具备USB通信接口的单片机。这些单片机处理能力强,有的本身就具备多路A/D,构成系统的电路简单,调试方便,电磁兼容性好,因此采用具备USB接口的单片机是构成USB数据采集系统较好的方案。不过,由于具备了USB接口,这些芯片与过去的开发系统通常是不兼容的,需要购买新的开发系统,投资较高。

USB的一大优点是可以提供电源。在数据采集设备中耗电量通常不大,因此可以设计成采用总线供电的设备。

2.2软件构成

Windows98提供了多种USB设备的驱动程序,但好象还没有一种是专门针对数据采集系统的,所以必须针对特定的设备来编制驱动程序。尽管系统已经提供了很多标准接口函数,但编制驱动程序仍然是USB开发中最困难的一件事情,通常采用WindowsDDK来实现。目前有许多第三方软件厂商提供了各种各样的生成工具,象Compuware的driverworks,BlueWaters的DriverWizard等,它们能够很容易地在几分钟之内生成高质量的USB的驱动程序。

设备中单片机程序的编制也同样困难,而且没有任何一家厂商提供了自动生成的工具。编制一个稳定、完善的单片机程序直接关系到设备性能,必须给予充分的重视。

以上两个程序是开发者所关心的,用户不大关心。用户关心的是如何高效地通过鼠标来操作设备,如何处理和分析采集进来的大量数据,因此还必须有高质量的用户软件。用户软件必须有友好的界面,强大的数据分析和处理能力以及为用户提供进行再开发的接口。

3实现USB远距离采集数据传输

传输距离是限制USB在工业现场应用的一个障碍,即使增加了中继或Hub,USB传输距离通常也不超过几十米,这对工业现场而言显然是太短了。

现在工业现场有大量采用RS-485传输数据的采集设备。RS-485有其固有的优点,即它的传输距离可以达到1200米以上,并且可以挂接多个设备。其不足之处在于传输速度慢,采用总线方式,设备之间相互影响,可靠性差,需要板卡的支持,成本高,安装麻烦等。RS-485的这些缺点恰好能被USB所弥补,而USB传输距离的限制恰好又是RS-485的优势所在。如果能将两者结合起来,优势互补,就能够产生一种快速、可靠、低成本的远距离数据采集系统。

这种系统的基本思想是:在采集现场,将传感器采集到的模拟量数字化以后,利用RS-485协议将数据上传。在PC端有一个双向RS-485~USB的转换接口,利用这个转接口接收485的数据并通过USB接口传输至PC机进行分析处理。而主机向设备发送数据的过程正好相反:主机向USB口发送数据,数据通过485~USB转换口转换为485协议向远端输送,如图3所示。

在图3的方案中,关键设备是485~USB转换器。这样的设备在国内外都已经面市。笔者也曾经用NationalSemiconductor公司的USBN9602+89c51+MAX485实现过这一功能,在实际应用中取得了良好的效果。

需要特别说明的是,在485~USB转换器中,485接口的功能和通常采用485卡的接口性能(速率、驱动能力等)完全一样,也就是说,一个485~USB转换器就能够完全取代一块485卡,成本要低许多,同时具有安装方便、不受插槽数限制、不用外接电源等优点,为工业和科研数据采集提供了一条方便、廉价、有效的途径。

4综合式采集数据传输系统的实现

现在的数据采集系统通常有分布式和总线两种。采用USB接口易于实现分布式,而485接口则易于实现总线式,如果将这两者结合起来,则能够实现一种综合式的数据采集系统。实现方法是:仍然利用上面提到过的USB~485转换器实现两种协议的转换。由于USB的数据传输速率大大高于485,因此在每条485总线上仍然可以挂接多个设备,形成了图4所示的结构,其中D代表一个设备。

这种传输系统适用于一些由多个空间上相对分散的工作点,而每个工作点又有多个数据需要进行采集和传输的场合,例如大型粮库,每个粮仓在空间上相对分散,而每个粮仓又需要采集温度、湿度、二氧化碳浓度等一系列数据。在这样的情况下,每一个粮仓可以分配一条485总线,将温度、湿度、二氧化碳浓度等量的采集设备都挂接到485总线上,然后每个粮仓再通过485总线传输到监控中心,并转换为USB协议传输到PC机,多个粮仓的传输数据在转换为USB协议后可以通过Hub连接到一台PC机上。由于粮仓的各种数据监测实时性要求不是很高,因此采用这种方法可以用一台PC机完成对一个大型粮库的所有监测工作。

5前景展望

USB系统范文篇8

关键词:USBγ能谱数据采集WDM

野外地面γ能谱测量技术主要研究地壳岩石土壤中产生的能量范围约为30keV~3000keV的γ射线,这里面包含着轴、钾等天然放射性核元素信息、核工程活动产生的大量人工放射性核元素信息以及γ射线与地壳相互作用产生的相关信息。而用于获取和处理γ能谱数据的多道γ能谱仪是重要的研究课题,其功能是把从γ射线探测器得到的脉冲信号转换为X-Y轴的能谱形式并显示出来(X轴代表能量,Y轴代表脉冲计数)。

传统的多道γ能谱仪一般采用NIM(NuclearInstrumentModule)插件的标准模式。但其存在体积庞大、抗干扰能力差等缺点,不适合于野外现场测量。为适应多道γ能谱仪智能化、微机化、便携化的实际需要,本设计采用笔记本电脑作为γ能谱仪的上位机。常用接口方式主要有RS-232C串口、红外线端口、EPP并口、USB、1394、Ethernet等。这几种接口方式的特点比较如表1所示。

表1接口方式特点比较

方式长度(m)速度(b/s)主要优点主要缺点

串口1520k应用广泛,研发简单速度慢,逐渐被淘汰

并口108M速度较快,研发简单逐渐被淘汰

红外线2115k无线传输距离短,可靠性差,耗电大

USB1.1512M传输稳定,速度快,使用方便,具有弹性,代表接口发展方向协议复杂,研发难度较大

13941.5400M传输速度快,具有弹性特定用途(视频),研发难度大

Ethernet50010M传输可靠,使用方便,资源共享特定用途(LAN),研发难度大

经过比较轮证发现,USB作为近年出现的一种代表微机接口发展方向的新型总线规范,其便捷易用、速度快、可靠性高等特点,使之非常适合作为便携式多道γ能谱仪的接口方式。目前大多数笔记本电脑一般都有两个以下的USB端口,USB规范规定每个端口提供5V、500mA的电量,而笔记本电脑在实际应用时,通常是通过自带锂电池供电的,无法提供足够的电量给外设,这时就会造成外设工作不正常,甚至使系统崩溃。考虑到本系统下位机部分功耗较大,因此供电方式使用外置电源。

笔者在吸收借鉴γ能谱测量技术最新研究成果的基础上,进行了USB便携式多道γ能谱仪的设计。本设计主要完成硬件、固件、设备驱动程序以及应用程序等的设计工作。

图2

1硬件设计

1.1系统总线结构

图1所示为USB便携式多道γ能谱仪的总体结构框图。下位机硬件部分主要由γ射线探测系统(探头)、脉冲信号调理电路、数字电位器、多道脉冲幅度分析器、USB接口电路以及电源电路等构成,其中探头部分包括闪烁探测器、前置电路和高压电路等,多道脉冲幅度分析器主要包括峰值别电路、控制电路、A/D转换电路以及微控制器系统等。上位机由笔记本电脑系统构成。

软件部分由固件、设备驱动和应用程序组成。

1.2USB接口电路

由于USB本身的控制协议较为复杂,需要使用相应的USB接口芯片。本设计采用了Philips公司的USB接口芯片PDIUSBD12(简称D12),其优点是可以选择合适的微控制器及其开发系统进行外设开发。

D12内部集成了串行输入引擎(SIE)、320字节的多结构FIFO存储器、收发器以及电压调整器,支持DMA方式,采用双缓冲区技术,遵从USB1.1标准。芯片中串行输入引擎(SIE)模块起着至关重要的作用,完成所有USB协议层功能,如同步模式识别、并/串转换、位填充/解填充、CRC检验/产生、包PID产生/确认、地址识别、握手信号包响应产生等。另外,D12还集成了SoftConnect、GoodLink、可编程时钟输出、低频晶振和终端电阻等特性,提高了系统的性价比。

图4

微控制器采用HYUNDAI公司的GMS90L32,它是一种兼容Intel8032微控制器的产品,其主要特点是工作电压范围宽(2.7V~5.5V)、功耗低、性价比高。D12与GMS90L32的连接如图2所示。本设计使用了多路地址/数据总线复用方式。

此外,本系统选用了美国ST公司的PSD913F2,它是用于8位微控制器的具有大容量FLASH存储器、在系统编程(ISP)能够和可编程逻辑的器件。它将地址锁存器、FLASH、SRAM、PLD等集成在一个芯片内,成功地实现了微控制器系统的“MCU+PSD”两芯片解决方案。这种方案既可简化电路设计,节省PCB印制板空间,缩短产品开发周期,又可增加系统可靠性,降低产品功耗。

2系统软件设计

2.1微控制器固件程序

所谓固件程序就是固化在程序存储器中的程序代码。本系统的固件存储在PSD913F2的Flash存储器中,固件开发使用的是KeilC51语言,开发平台为μVision2集成开发环境。

固件的开发是移植与开发相结合。本设计参考了Philips公司提供的D12固件程序范例,对于USB协议操作的相关代码可以直接移植使用,而数据采集、传输、存储等部分则是全新的开发工作。

固件程序结构如图3所示。硬件抽象层对D12的数据读、写以及各种指令的写入进行函数封装;D12命令接口层对D12的所有控制指令的函数进行封装;USB向量请求模块完成USB上电配置、向量请求等各类事件的响应处理;USB协议层包括对USB协议操作的封装以及对USB标准请求的响应;中断服务进程包括USB中断、ADC中断以及定时器0中断(记录测量时间)等。

主程序及ADC中断服务程序流程图如图4所示。主程序首先完成各种初始化,然后进入主循环,等待中断的发生,并根据标志变量执行相应的函数。当打开控制电路时,脉冲峰值别电路自动启动A/D转换,转换结束信号会触发微控制器外部中断1,进入ADC中断服务程序,读取A/D转换结果并存入缓存中,然后中断返回。

当D12有事件需要处理时,将触发微控制器外部中断0,微控制器读取D12的中断状态寄存器,判断中断的来源并作出相应的处理。若由数据端点触发,则相应地读取或写入数据;若由控制端点0触发,则判断请求的类型。标准请求由USB协议处理模块处理,用户自定义向量请求由USB向量请求模块处理。

2.2USB设备驱动程序的设计

在Windows环境下,USB设备驱动程序遵循WDM(Win32DriverMode)方式。为了简化设计,并兼顾驱动程序的运行效率,笔者选用了DriverStudio2.7工具软件中的DriverWorks组件进行USB设备驱动程序的开发。DriverWorks为WDM设备驱动程序的开发提供了完善的支持。其中包含一个非常完善的源代码生成工具DriverWizard以及相应的类库和驱动程序范例,它还支持在C++下进行设备驱动程序的开发。通过DriverWizard生成的代码只需要进行少量的修改可以使用,这使得驱动程序开发者可以将精力集中在驱动功能的实现上,而不必理会太多的WDM开发细节。

本设计在DriverWizard的最后自定义了三个IOCTL接口对USB设备进行控制,如表2所示。然后在自动生成的驱动程序代码中向相应的IOCTL函数添加代码,用函数BuildVerdorRequest构建USB协议的自定义向量请求(VendorRequest)。由编译修改后的源代码即可得到驱动程序文件McaD12.SYS。

表2自定义IOCTL接口

自定义IOCTL接口功能说明

Mca_IOCTL_START启动多道采集数据

Mca_IOCTL_READ开始读取数据

Mca_IOCTL_START停止多道数据

2.3USB应用程序的设计

应用程序的设计在VisualC++6.0开发环境下进行。根据实际要求,本设计需要在软件中对采集的数据进行整理、分析并显示。其功能模块主要有数据采集、谱数据显示、ROI操作、系统刻度、谱分析等,其结构框图如图5所示。

在Win32系统中,USB设备被抽象为一个文件,应用程序只需要通过几个API函数就可以实现与驱动程序中USB设备的通信。API函数如表3所示。

表3设备文件操作API函数

API函数功能说明

CreateFile打开设备

ReadFile从设读取数据

WriteFile向设备发送数据

CloseHandle关闭设备

DeviceIoControlI/O控制操作

本程序设计使用MFC多线程技术。单击开始按钮,程序就创建一个用户接口线程,并且通过IOCTL启动USB设备,然后在此线程每隔一定时间(10~20ms)从USB总线上读取一次数据;而程序自身的主线程则不断地依据读取的数据刷新屏幕,显示多道能谱。当单击停止按钮或是设定采集时间到时,程序则通过IOCTL停止USB设备的数据采集,终止用户接口线程,并且停止屏幕谱线的更新。

当创建用户接口线程时,首先从CwinThread类派生一个CioThread类,然后调用AfxBeginThread()函数创建CioThread类的对象进行初始化,启动线程运行。根据需要可将初始化和结束代码分别放在类的InitInstance()和ExitInstance()函数中。其中,InitInstance()函数是从USB采集数据的线程的主要函数。从中实现对IOCTL的调用、对USB设备数据的读取等功能。其流程如图6所示。

3测试与结论

实测Cs放射源γ能谱如图7所示。根据能量为0.6641MeV的谱峰,系统可以自动计算能量分辨率,实测能量分辨率小于10%。

USB系统范文篇9

关键词:USB2.0FPFOFPGA固件程序主从系统

引言

数据采集在现代工业生产及科学研究中的重要地位日益突出,并且实时高速数据采集的要求也不断提高。在信号测量、图像处理、音频信号处理等一些高速、高精度的测量中,都需要进行高速数据采集。现在通用的高速数据采集卡一般多是PCI卡或ISA卡,这些采集卡存在很多缺点,比如安装麻烦,价格昂贵,尤其是受计算机插槽数量、地址、中断资源的限制,可扩展性差。

通用串行总线USB是用来连接设备与计算机之间的新式标准接口总线。它是一种快速、双向、同步传输、廉价的并可以实现热拔插的串行接口。USB技术是为实现计算机和通信集成而提出的一种用于扩充PC体系结构的工业标准。基于USB接口的高速数据采集卡,充分利用了USB总线的优点,它也必将被越来越多的用户所接受。

1USB数据采集卡原理

1.1USB简介

USB是英文UniversalSerialBus的缩写,中文含义是“通用串行总线”。它支持在主机与各式各样即插即用的外设之间进行数据传输。它由主机预定传输数据的标准协议,在总线上的各种设备分享USB总线带宽。当总线上的外设和主机在运行时,允许自由添加、设置、使用以及拆除一个或多个外设。USB总线技术的提出就是想利用单一的总线技术,来满足多种应用领域的需要。USB1.1协议支持两种传输速度,即低速1.5Mbps和高速12Mbps。为了在高速接口之争中占有一席之地,2000年了USB2.0协议,它向下兼容USB1.1协议,数据的最高传输速率提高到480Mbps,这就使USB对打印机和其它需要快速传递大容量数据的外设更具吸引力。

为了满足实际数据采集USB传输速度较高的需要,选择了Cypress公司的内置USB接口微控制器芯片EZUSBFX2系列,开发了具有USB接口的高速数据采集卡。

1.2系统框图

USB系统是一个主从系统,而非对等(peer-to-peer)系统。在主从系统中,命令是由主设备发出,而从设备只能接收命令,只有在主设备读取数据时,从设备才能提交数据。如图1所示,在USB控制器与电路之间需要一个FIFO,来充当数据的缓存区。那么,在USB从设备向主设备发送数据时存在一个问题:FIFO多大才能满足要求。为了满足数据采集中高速实时流数据垢应用,避免FIFO溢出,在我们的系统中,通过FPGA及SDRAM构造一个容量的FIFO(图1虚线框内所示),可以提供一个低成本并能满足高速实时流数据传输的解决方案。

图2

2USB数据采集卡硬件

2.1EZ-USBFX2(CY7C68013)芯片

Cypress公司的EZ-USBFX2系列芯片是最早符合USB2.0协议的微控制器之一,它集成了符合USB2.0协议的收发器(transceiver),串行接口引擎(SIE),增强型的8051内核以及可编程的接口。FX2系列芯片独特的结构使得数据传输速度最高可达56Mbps,最大限度地满足了USB2.0的带宽。

EZ-USBFX2的微处理器是一个增强型的8051内核,性能可达标准8051的5~10倍,并与标准8051的指令完全兼容。增强型的8051内核使用RAM世馘作程序指令和数据存储器,从而使得EZ-USBFX2具有“软”特性,也就是说,可以通过自行编写程序指令来实现所需的功能。EZ-USBFZ2使用增强型SIE/USB接口(称为USB核),通过执行USB部本身的协议来简化8051代码编写的工作。这样采用硬件完成USB塄,简化了固件代码的编制。对于固件代码的使用,主机通过软件下载的方法实现。这种方法充分利用FZ2内部的8KBRAM来装载8051代码和数据。由于EZ-USBFZ2具有重新枚举的能力,所以在初始化枚举时,用户并不需要断天设备就可以装载新的描述符。设备描述符和8051程序代码都能通过主机中的磁盘文件下载,只有制造商号、产品号和设备号从启动时从一个16字节的EEPROM下载到硬件中的。通过这种方式,可以比较容易地从主机升级软件和修改USB总线设备的固件代码。

EZ-USBFX2的通用可编程接口GPIF以及Master/Slave端点FIFO所对应的8/16位数据总线,可以很容易地实现FX2与当前一些主流通过接口(如ATA、UTOPIA、EPP、PCMCIA和大部分DSP处理器)的互连。它共有7个端点,端点0,端点1和IN和OUT,还有端点2、4、6和8。其中,前3个端点的大小是固定的64字节,后4个端点默认大小是2级512字节的FIFO,端点2和端点4默认是OUT端点,端点6和端点8默认是IN端点,而端点2和6分别可以定义为2级、3级或4级的存储器,每级的大小也可以是512字节或1024字节。从EZ-USBFX2方向来看,一个端点相当于通过总线收发数据的缓冲区,EZ-USBFX2从OUT缓冲区中读取端点数据,将通过USB传的端点数据写入IN缓冲区。它求全责备速(12Mbps)和高速(480Mbps)传输速率,并具有USB协议所规定的4种传输方式,即控制方式(controlmode)、中断传输方式(interruptmode)、批量传输方式(bulkmode)和等时传输方式(isochronousmode)。

EZ-USBFX2系列是基于RAM的“软”结构,在开发过程中允许无限制设置和升级;它支持全速USB总线吞吐量的传输,使用EZ-USBFX2进行设计,可以不受端点数、缓冲区大小和传输速度的限制;此外,其内核中做了大量的辅助指令,简化了编码,同时也加快了对USB特性的了解。基于以上EZ-USBFX2系列芯片的特性,在开发的过程中,采用了EZ-USBFX2系列中的CY7C68013芯片(128引脚),其简化结构如图2所示。

FX2可配置成三种不同的接口模式Ports、GPIFMaster和SlaveFIFO,本项目采用SlaveFIFO模式。在该模式下,外部逻辑或外部处理器直接连接到FX2的端点FIFO,GPIF没有被激活,因为外部逻辑可以直接控制FIFO,所以FIFO的基本控制信号(标志、片选、使能)由FX2的引脚引出。外部控制可以是同步或异步,可以使用内部时钟,也可以向FX2的接口提供外部时钟。

2.2FPGA芯片EP1C6-Q240

在本设计中,所用的FPGA采用Altera公司最新的CYCLONE芯片EP1C6-Q240。它是一款高速价比的FPCA芯片,工作电压为1.5V,采用0.13μm工艺技术,全铜SRAM工艺,其存储器密度可达5980个逻辑单元,包含20个128×36位的RAM块,总的RAM空间达到92160位,内嵌了2个锁相环电路和一个用于连接SDRAM的特定双数据率(deficateddatarate)接口。此外,该芯片还支持多种不同的I/O标准(包括PCI接口,可连接ASSP和ASIC设备的接口以及串行设备接口等)。

这里FPGA的作用除了与SDRAM构成一个大容量的FIFO以外,还需要完成一些控制功能。对于本文的应用,需要完成HDB3码到NRZ码的转换及数据的串并转换等。具体问题要具体分析,用户可根据自己的需求对FPGA进行编程。

2.3A/D转换芯片MAX1180

MAX1180是Maxim公司的双通道105Msps、3.3V工作电压、低功耗的高速A/D芯片,采样数据10位电平量化。它是采用差分输入,带有宽带跟踪/保持(track-and-hold)的双通道9级流水线型结构的ADCs,如图3所示。实际的芯片包括两个图示的电路,作为输入的两路通道,互不干扰。各路采样信号每半个时钟周期通过一个STAGE,完成连续转换到数据输出共需5个时钟周期。每个流水线首先通过一个1.5位的快闪ADC对输入电码量化,然后再由DAC产生一个对应于量化结果的电压并与输入电压作差,输出电压放大2倍后送到下一级流水线处理。A/D-D/A两次变化以及差分处理的目的在于进行差错校正,以保证在流水线上的各个阶段,ADC的偏移量得到补偿并且无代码丢失。

2.4硬件连接

根据系统对数据传输的速度和实时性的要求,配置CY7C68013工作的接口模式为SlaveFIFO模式。当进行数据采集时,硬件连接方式如图4所示。

A/D转换器的采样时钟同时作为CY7C68013的SlaveFIFO模式的读写控制时钟,即CY7C68013的接口时钟连接到IFCLK引脚。SCWR/SLRD是CY7C68013SlaveFIFO的写使能/读允许信号。FPGA向C7C68013SlaveFIFO提供SlaveFIFO输出允许信号SLOE,仅在数据输出时有效。FD[15:0]为16位双向数据总线。FIFOADR1:0》为端点FIFO选择信号。在数据输入时固定为00,选择的是端点2;在数据输出时固定为10,选择的是端点6。

3USB数据采集卡软件

软件设计是一个USB设备开发的必备环节。USB应用系统软件设计分为三部分:初始化软件、主机操作系统上的客户驱动程序以及主机应用程序。初始化软件是下载到控制器中的固件代码,它响应各种来自系统的USB标准请求(包括USB设备的枚举、驱动程序的选择加载等),完成连接设备和主机的任务。主机应用软件通过客户驱动程序与系统USBI(USBDeviceInterface)进行通信,其主要任务是将采集进来的数据流,根据所需处理功能的要求来完成各种基于Windows程序的处理。

3.1EZ-USBFX2的初始化

通过固件程序的调度,主机才能得到设备的描述符以及完成端点数据的传输。对于固件程序的编程,其基本结构如下:

①初始化,包括处理器和电路的初始化;

②主函数,包括完成符合设备特定要求的代码;

③中断处理,包括处理各种中断的程序代码。

总的来说,固件程序的编写有两种方式。其一,对于熟悉8051汇编语言的用户来说,可以直接利用汇编语言编写结构紧凑、高效率的固件代码;其二,EZ-USB以利用现成的固件程序框架函数,根据设备的需求添加相庆的用户,来完成特定的目的。

为了加快USB接口的开发过程,利用EZ-USBFX2提供的一些框架函数来简化用户代码,使用相应端口(端口2输入,端口6输出)利用EZ-USBFX2的SlaveFIFO结构采用此处理传输,基本的固件程序框架函数如下:

voidTD_Init(void)//该函数用来完成EZ-USBFX2的初始化

{CPUCS=0x10;//工作频率48MHz

IFCONFIG=0xC3;//决定FX2的工作模式(slaveFIFO)及相关设置

IN07VAL=bmEP2;

OUT07VAL=bmEP6;//使能端点2输入和端点6输出

EP2FIFOCFG=0x6D;//AUTOOUT=0,AUTOIN=1,WORDWIDE=1

SYNCODELAY;

EP6FIFOCFG=0x75;//AUTOOUT=1,AUTOIN=0,WORDWIDE=1

SYNCDELAY;//对端点2和端点6的配置,WORDWIDE=1配置的是使用16位数据线。

EP2CFG=0xEA;//端点2:输入、批量传输、最大包字节为1024,双缓冲

SYNCDELAY;

EP6CFG=0xAA;//端点6:输出、批量传输、最大包字节为1024、双缓冲

SYNCDELAY;

}

voidTD_Poll(void)//此函数在设备运行时反复被调用,它包括完成用户任务的函数

{

}

BOOLTD_Suspend(void)//该函数在设备进行挂起状态前调用

{

return(TRUE);

}

BOOLTD_Resume(void)//设备重启后调用

{

return(TRUE);

}

在整个固件程序中,EZ-USBFX2设备上电或复位后,首先对所有的内部状态变量初始化,随后调用TD_Init()函数,并开中断,此时固件程序不断检测控制端口0是否收到SETUP包。一旦收到,固件程序就开始调用用户函数TD_Poll(),其中用户需要完成的功能代码就在TD_Poll()函数一。调用完成后,重复检测端口0是否收到SETUP包,若有,继续执行设备请求,调用TD_Poll()函数;否则,检测USB核是否有USB挂起事件,若有,调用TD_Suspend()函数,其返为真时,检测USB核是否有重新开始事件,没有时,设备进入挂起状态,反之,调用TD_Resume(),进行下一次循环;当TD_Suspend()函数返回为假时,直接转入下次循环。

此外,固件程序框架中还定义了许多中断处理函数,当用到时可以在相应的九加入自己编写的代码,这样既清晰又便于理解,用户就可以在不用改变整个程序的前提下,仅仅通过改变相应的模块,来实现自己的功能。

3.2主机软件部分

主机软件部分包括USB客户驱动程序主和机应用程序。USB客户驱程序是支持即插即用功能的标准WDM驱动程序,它为实现控制传输、中断传输和批传输提供了标准接口函数。而主机应用程序的作用在于与操作系统相互作用,当操作系统认为有新设备接入时,就会自动调用相应的设备驱支以。加之该软件需要一个图形用户界面来控制所用的函数,这里采用VC++来编制应用程序,利用CreateFile得到USB句柄,用DeviceIoControl来向设备驱动程序发送请求,完成在EZ-USBFX2中的数据批传输的读取与写入。程序实例如下:

HANDLEDeviceHandle;

DeviceHandle=CreateFile(\\.\ezusb0,GENERIC_WRITE,

FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);

//得到设备ezusb0的句柄

DeviceIoControl(DeviceHandle,

IOCTL_EZUSB_BULK_WRITE,

LPVOIDlpInBuffer,//;输入数据存储地址指针

Sizeof(BULK_TRANSFER_CONTROL),

LPVOIDlpOutBuffer,//输出数据存储地址指针

DWORDnOutBufferSize,//输出缓存大小

LPDWORDlpBytesReturned,//接收输出数据字节计数器变量的指针

NULL);

//写数据到EZ-USBFX2设备

DeviceIoControl(DeviceHandle,IOCTL_EZUSB_BULK_READ,

LPVOIDlpInBuffer,//输入数据存储地址地

Sizeof(BULK_TRANSFER_CONTROL),

LPVOIDlpOutBuffer,//输出数据存储地址批晚霞

DWORDnOutBufferSize,//输出缓存大小

LPDWORDlpBytesReturned,//接收输出数据字节计数器变量的指针

NULL);

//从EZ-USBFX2设备中读数据

ColseHandle(DeviceHandle);//关闭USB句柄

USB系统范文篇10

关键词:USB2.0主机适配卡PCIEMC

USB接口可提供双向、实时的数据传输,具有即插即用、性能可靠、价格低廉等优点,目前已成为计算机和通信电子产品连接设备的首选接口。由于高速USB集线器、高速USB功能部件的不断涌现,如数字图像器、扫描仪、视频会议摄像机、大容量数字存储设备等新型USB设备,在计算机和这些复杂的USB外设之间需要建立一个高速、高性能的数据传输。USB2.0正是为了满足这种需求提出的,它的传输速率为480Mbps。高速USB2.0与全速USB1.1和低速USB1.0完全兼容。虽然新式的计算机至少提供两个USB端口,但多数都只能用于USB1.1和USB1.0的数据传输,不能支持USB2.0的数据传输。USB2.0高速主机适配卡,可直接插入计算机的扩充槽内,利用PCI总线接口、可支持USB的操作系统,实现USB2.0的高速数据传输。

USB界面通过USB主控制器与计算机主机系统相连接。USB主控制器不但提供与主机的PCI总线接口,同时也包含根集线器。根集线器可提供一个或多个连接点用于USB设备的连接,从而使主机操作系统与USB设备之间可以彼此通信。USB2.0主控制器是设计USB2.0高速主机适配卡的主要芯片。目前世界上许多大公司如NEC、PHILIPS、VIA等都相继推出USB2.0主控制器。本文采用NEC公司生产的USB2.0主控制器uPD720100,设计出新型USB2.0高速主机适配卡,测量结果良好,满足USB2.0的设计规范,达到USB2.0设计要求,并已经通过EMC国际认证。

1USB2.0高速主机适配卡的设计

1.1USB2.0主机系统与USB设备之间的工作流程

USB主机系统可分成客户、USB系统、USB主控制器三层。USB设备也可分成功能部件、USB逻辑设备、USB总线接口三层,如图1所示。

USB主控制器实际上是主机系统方面的USB总线接口,它主要处理电气层和协议层之间的相互作用。USB系统包括主控制器驱动程序、USB驱动程序、主机软件三部分,利用主控制器管理主机和USB设备之间的数据传输。客户负责管理与USB设备直接作用的全部软件。总之,整个USB主机系统可以提供以下功能:检测USB设备的连接和断开、管理主机与USB设备之间的标准控制流和数据流、收集状态和事务的统计信息、控制主控制器与USB设备之间的电气接口,如数据线有限功率的供给等。

图1也表示出USB主机系统与USB设备之间存在功能层、USB设备层、USB总线接口层三个逻辑层。USB总线接口层代表USB主控制器与USB总线接口之间的传输关系,在主机与设备之间提供物理、信号、信息包的连接;USB设备层代表USB系统软件和USB逻辑设备之间的传输关系,USB系统软件可以执行许多关键的和一般的功能,用于给定设备的传输特性;功能层代表客户软件与功能部件之间的关系,通过相应的匹配客户软件提供给主机额外的功能。虽然在USB设备层和功能层内都有各自的逻辑通信,但是实际的数据传输必须通过USB总线接口层完成。USB总线接口层提供USB数据的底层传输,即USB数据的传输最终还是发生在USB数据线上。

1.2USB2.0高速主机适配卡的设计框图

图2为利用NEC公司的USB2.0主控制器uPD720100所设计的基本电路框图。可以看出,USB2.0主控制器是一个核心芯片,可提供32-bits33MHzPCI总线接口,用于与主机PCI总线接口的连接。它还包含两个开放主控制器OHCI#1、OHCI#2和一个增强主控制器EHCI,支持5个用于连接设备的下游端口。OHCI#1主控制器用于处理1、3、5三个端口全速和低速信号的传输,OHCI#2主控制器用于处理2、4两个端口全速和低速信号的传输,EHCI主控制器用于处理1、2、3、4、5五个端口高速信号的传输。仲裁器(Arbiter)用来选择OHCI#1、OHCI#2主控制器和EHCI主控制器。根集线器完成主控制器内集线器的功能,控制主控制器和5个端口之间的连接。物理层(PHY)包含高速、全速和低速的收发器等。

5V/3.3V的降压调节器用于将PCI总线提供的5V电源转换成主控制器需要的3.3V直流电源;系统时钟由30MHz晶振提供;电源控制开关提供短路和过流保护,而且每个下游端口都有各自的控制开关;串行EEPROM用于存储子系统标识符、子系统厂商标识符等相关信息。

USB2.0高速主机适配卡,通过主控制器和根集线器,使得主机操作系统与下游5个端口的USB设备或集线器之间实现同步通信,可以处理USB1.0、USB1.1、USB2.0三种传输速率。它支持热插拔、总线供电,每个端口最大可有500mA电流。连接USB2.0设备或集线器的USB电缆的最大长度为5m,设备连接采用不超过7层的星形拓扑结构,可连接多达127个USB设备或集线器。

1.3USB2.0高速主机适配卡的设计要点

由于USB2.0高速的传输速率,如何提高USB2.0信号的传输质量,减小电磁干扰(EMI)和静电放电(ESD)成为设计的关键。本文从电路设计和PCB设计两个方面进行分析。

在电路设计中,应在数字电源VDD和数字地VSS之间尽可能多放一些去耦电容,同时在靠近USB2.0主控制器芯片处多放一些旁路电容,以减少耦合,降低高频辐射噪声;在尽可能靠近主控制器信号管脚处放负载电阻,维持对地45Ω的高速负载;在下游每个端口,放15kΩ下拉电阻;在尽可能靠近接插元件处放差分模式阻抗较低的共模扼流元件和ESD抑制元件,如图3所示,以提高差分信号质量,降低干扰,确保在EMI测试中得到足够的余量。

PCB设计采用四层印刷电路板,第一、四层为信号层,第二层为电源层,第三层为地层。第四层为USB2.0最佳布线层,在地层应将模拟地和数字地严格分开。在可能的情况下,不要将USB布线在晶振、时钟和磁性设备或IC的下面。分层厚度和主要信号的走线宽度,都必须采用阻抗控制并进行阻抗匹配,以满足规定的阻抗值,其中包括保持D+和D-两条信号线同样长度且始终平行,以得到D+/D-90Ω的差分对阻抗及45Ω的共模阻抗。时钟电路也是产生电磁辐射的主要来源,故应将晶振元件放在距离USB2.0芯片尽可能远的区域,保证信号线D+/D-和高速时钟线之间的距离越远越好,以减少高频辐射影响。同时还要限定D+/D-以及高速时钟线的长度,使线长最短。尽可能增大每对信号线之间的距离,避免90°直角布线等。

在选择附件时,必须选择USB2.0电缆、USB2.0连接器,并将面板等机械部件正确地与高速主机适配卡、主机相连,保证良好的屏蔽,以减少静电放电干扰。

2测试结果及结论

USB实施者论坛(USB-IF)提供USB设备与主机软件的测试,Microsoft提供Windows硬件品质实验室测试WHQLTesting。对于USB2.0高速主机适配卡,除了上述两个标准测试外,还包括高速信号传输质量的测试、功能测试、电磁兼容国际认证测试等。

利用TektronixTDS694C、TDS544示波器进行高速信号传输质量的测试,其中包括高速差分对D+/D-眼图、信号传输速率、接收灵敏度、振幅、差分对D+/D-输出阻抗等测试。测试结果满足USB2.0主控制器的设计标准,满足USB2.0的设计规范,测试连接见图4。