USB系统范文10篇
时间:2022-03-05 09:34:56 版权声明
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
关键词:超低功耗MSP430数据采集USB接口设计
引言
实现系统运行的最小功耗是现代电子系统的普通取向,也是绿色电子的基本要求。采有最小功耗设计方法既能减少电子设备的使用功耗,又能减少备用状态下的功率消耗。在节省能源的同时还有利于减少电磁污染,有利于电子系统向便携式方向发展,有助于提高系统的可靠性。
现代工业生产和科学研究对数据采集的要求日益提高。在许多场合要求数据采集系统向便携化方向发展,要求系统具有体积小、功耗低、传输速率快、使用方便灵活等特点。在数据采集系统中,如何节省电能以使系统工作时间更长,如何通信才能使系统数据传输速度更快,已经成为系统开发过程中必须加以考虑的主要内容。
微控制器MSP430的超低功耗技术在众多单片机中独树一帜,同时它具有集成高度等特点,因此,选用该控制器作为系统的主控制器,实现数据采集和Flash存储等功能。此外,USB端口与以往的普通端口(串口与并口)相比具有传输速度快、功耗低、支持即插即用、维护方便等优点;因此在通信设计时,结合UART转USB芯片CP2101以实现USB接口通信。上述设计既利用了MSP430的超低功耗特性,又利用了CP2101设计USB接口的简便性,设计得到的数据采集系统可以实现便携化、低功耗、使用方便等目标。
1MSP430数据采集系统的USB接口设计
1.1采信系统简介
本系统实现多路数据的采集、Flash存储及USB通信等功能。单片机系统主要完成信息采集、A/D转换、对信号进行放大滤波处理、数据通信、Flash存储等;实时时钟记录采集数据的时间;CP2101实现USB接口,并把单片机采集到的信号传给微机;微机完成数据接收、存入数据库、数据处理、计算、显示等功能。
1.2超低功耗MSP430微控制器
MSP430是TI公司近几年推出的16位系列单片机。它采用最新的低功耗技术,工作在1.8~3.6V电压下,有正常工作模式(AM)和4种低功耗工作模式(LPM1、LPM2、LPM3、LPM4);在电流电压为3V时,各种模式的工作电流分别为AM:340μA、LPM1:70μA、LPM2:17μA、LPM3:2μA、LPM4:0.1μA,而且可以方便地在各种工作模式之间切换。它的赶低功耗性在实际应用中,尤其是电池供电的便携式设备中表现尤为突出。在系统初始化后进入待机模式,当有允许的中断请求时,CPU将在6μ的时间内被唤醒,进入活动模式,执行中断服务程序。执行完毕,在RETI指令之后,系统返回到中断前的状态,继续低功耗模式。
本设计采用MSP430F13X微控制器。它具有非常高的集成度,单片集成了多通道12位A/D转换、PWM功能定时器、斜边A/D转换、片内USART、看门狗定时器、片内数控振荡器(DCO)、大量的I/O端口、大容量的片内RAM和ROM以及Flash存储器。其中Flash存储器可以实现掉电保护和软件升级。
1.3USB接口芯片选型
通用串行总线USB是由Intel等厂商制定的连接计算机与具有USB接口的多种外设之间通信的串行总线。传统上,USB接口的开发较为复杂。在同其它USB接口芯片相比较之后,本设计选择了无需外部元件的UART转USB芯片CP2101。选择这种接口芯片,可使USB通信接口设计变得十分容易。与同类产品相比,CP2101具有以下优点:
①具有较小的封装。CP2101为28脚5mm×5mmMLP封装。这在PCB上的尺寸就比竞争对手小30%左右。
②高度成度。片内集成512字节EEOROM(用于存储厂家ID等数据),片内集成收发器、无需外部电阻;片内集成时钟,无需外部晶体。
③低成本,可实现USB转串口的解决方案。CP2101的USB功能无需外部元件,而大多数竞争者的USB器件则需要额外的终端晶体管、上拉电阻、晶振和EEPROM。具有竞争力的器件价格,简化的电路,无成本驱动支持使得CP2101在成本上的优势远超过竞争者的解决方案。
④具有低功耗、高速度的特性,符合USB2.0规范,适合于所有的UART接口(波特率为300bps~921.6kbps)。工业级温度范围为-40℃~85℃)。
2USB通信的硬件接口电路
硬件电路如图1所示。CP2101的SUSPEND与SUSPEND引脚接到MSP430F13X的普通串口上。这两个引脚传送USB挂起和恢复信号,此功能便于CP2101器件以及外部电路的电源管理。当在总线上检测到挂起信号时,CP2101将进入挂起模式,可以节省电能。在进入挂起模式时,CP2101会发出SUSPEND与SUSPEND信号。为了避免SUSPEND与SUSPEND在复位期间处于高电平,使用10kΩ的下拉电阻确保SUSPEND在复位期间处于低电平。
CP2101的USB功能控制器管理USB和UART间所有的数据传输,以及由USB主控制器发出的命令请求以及用于控制UART功能的命令等。CP2101的UART接口处理所有的RS232信号,包括控制和握手信号。CP2101的VBUS与VREGIN引脚必须始终连到USB的VBUS信号上。在VREGIN的输入端加去耦电容(1μF与0.1μF并联)。CP2101与单片机接口是标准UART电平,与计算的USB端口连接是USB标准电路,因此,无论与3V还是5V供电的单片机连接都不需要电平转换。
3USB通信接口的软件程序设计
USB接口程序设计包括三部分:单片机程序开发、USB设备驱动程序开发、主机应用程序开发。三者互相配置才能完成可靠、快速的数据传输。其中USB设备驱动程序Cygnal公司已经提供。这里所要编写的是剩下的两部分。一部分为单片机MSP430F13X的串行通信程序,即对波特率、数据位、校验位、有无奇偶校验等通信协议的设计及单片机串行通信功能控制器的设置;另一部分为主机对CP2101的通信程序,这部分要在VC++环境中调用API函数实现。
3.1单片机程序设计
在IAREmbeddedWorkbench嵌入式集成开发环境中,编写单片机通信程序,可实现在线编辑修改。MSP430的内核CPU结构是按照精简指令集和高透明指令的宗旨来设计的,使用的指令有硬件执行的内核指令和基于现有硬件结构的高效率的仿真指令。以下为系统发送数据的部分应用程序(包括初始化及触发UART端口程序):
#include"msp430x13x.h"
/*************************串口*************************/
voidsend_byte(charsdata){
TXBUF0=sdata;/*发送数据缓存(UTXBUF0)*/
while(IFG1&TUXIFG0)==0);/*目的操作数位测试,发送中断标志*/
}
/*************************main*************************/
voidmain(void){
chara;
uinta=0x0055;
WDTCTL=WDTPW+WDTHOLD;/*停看门狗,WDTCTL看门狗寄存器*/
UCTL0=CHAR;/*8位接收控制寄存器URCTL线路空闲\u24322异步\u26080无反馈8位1位停止位\u26080无校验位*/
UTCTL0=SSEL0;/*发送控制寄存器UTCTL0,UCLK=ACLK时钟*/
UBR00=0x0D;/*32Kb/2400b=13.65,波特率选择寄存器*/
UBR10=0x00;/*高字节*/
UMCTL0=0x6B;/*调节*/
ME1|=UTXE0+URXE0;
/*开USART0TXD/RXD接收/发送允许*/
IE1|=URXIF0;/*打开USART0RX接收中断允许位*/
P3SEL|=0x30;/*P3.4,5=USART0TXD/RXD,选择模块功能*/
P3DIR|=0x10;/*目标操作数置位,P3.4=1,输出模式*/
_EINT();/*开中断*/
//主循环
for(;;)
{send_byet(a++);}
}
3.2USB设备驱动程序的安装
当把开发板接到主机的USB端口时系统会提示发现新硬件,并要求安装驱动程序:
先安装CP2101的驱动程序CP2101_Drivers.exe到C:FilestoRS-232BridgeController.
完成上面两步的安装后,在系统的设备管理器中会看见CP2101虚拟的那个COM口。在以后的设计中就是对这个口进行操作。此时可能应用串口调试助手调试下位机程序,接收发送数据。
3.3主机应用程序设计
主机应用程序的编写使用VC++编译环境中的API(应用程序设计接口)函数实现。应用程序的设计方法与串口编程类似。首先必须查找设备并打开设备的句柄,然后进行读写和控制操作,最后是关闭设备句柄。为了提高效率,可使用多线程技术实现读写。具体步骤如下:
①把CP2101的动态链接库CP2101.DLL文件拷贝到,或者路径下。当程序运行时就能调用CP2101.DLL。
②在visualstudio6.0中打开CP2101SetIDs.dsw,选择Release或者Debug建立CP2101.EXE工程文件。
③在VC++6.0中链接CP2101.LIB,这时就可以应用CP2101的动态链接库了。
④在VC++里进行编程,用API功能函数对USB堆栈、CP2101的EEPROM及数据传输的通信协议等进行编程。
当数据传输完毕时,应用CP2101_Close()函数关闭设备句柄。可以根据实际应用修改CP2101的VID和PID,并用相应函数写进CP2101的EEPROM中。但须注意的是,修改后要用CP2101_Rest()函数使CP2101复位并重新安装驱动程序。
USB系统范文篇10
关键词:CH371USB接口AT89C52
通用串行总线USB(UniversalSerialBus)是由Intel、Compaq、Digital、IBM、Microsoft、NEC、NerthernTelecom七家世界著名的计算机和通信公司共同推出的新一代总线接口标准。作为一种PC机与外设之间的高速通信接口,USB具有连接灵活、可热插拔、一种接口适合多种设备、速度高(USB1.1协议支持12Mb/s,USB2.0协议支持480Mb/s)、自动配置、无需定位及运行安装程序、可为外设提供电源、低功耗、低成本、高可靠性等优点,因而在数码相机、便携式仪器、便携式存储设备等产品中广泛应用。
但是,USB接口的开发一般要求设计人员对USB的标准、Firmware(固件)编程及驱动程序的编写等有较深入的理解,因此限制了一般的硬件工程师对USB接口产品的开发使用。我们在便携式无线抄表系统中使用的USB接口芯片CH371,使用简单、性能卓越,价格低廉,只要熟悉单片机编程及简单的VB或VC应用程序编程,一般的硬件工程师在极短的周期内就能很容易地开发出相应的USB产品。
1USB总线的通用接口芯片CH371简介
CH371是一个USB总线的通用接口芯片,如图1所示。在本地端,CH371具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机、DSP等控制器的系统总线上。在计算机系统中,CH371的配套软件提供了简洁易用的操作接口,与本地端的单片机通信就如读写硬盘中的文件。CH371屏蔽了USB通信中的所有协议,在计算机应用层与本地端控制器之间提供端对端的连接。使用CH371,不需要了解任何USB协议或者固件程序,甚至驱动程序,就可以轻松地将并口、串口的产品升级到USB接口。它具有以下特点:
*屏蔽USB协议,在计算机应用层与本地端之间提供端对端的连接。
*两种通信模式:单向数据流模式、请求加应答模式,支持伪中断。
*自动完成USB配置过程,完全不需要本地端控制器作任何处理。
*标准的USBV1.1接口,即插即用,D+引脚内置上拉电阻。
*内置4个端点,支持USB的控制传输、批量传输、中断传输。
*通用Windows驱动程序,提供设备级接口和应用层接口。
图2
*通用的本地8位数据总线,4线控制,即读选通、写选通、写选输入、中断输出。
*占用16个地址,可选直接地址方式或者复用地址方式。
*内置输入输出缓冲区,以中断方式通知本地端控制器传输数据。
*内置硬件实现的I2C主接口,应用层可以直接读写外挂的I2C从设备。
*在主控方式下可以提供16根输入信号线或者12根独立控制的输出信号线。
*内置上电复位,提供高电平有效复位输出和低电平有效复位输出。
*内置可选的看门狗电路Watch-Dog,为本地端控制器提供监控。
2基于CH371USB接口的硬件设计
图2给出的是CH371与MCU的硬件接口简图。对MCUAT89C52的硬件连接比较简单,主要是在该系统的设计中,如晶振的选择连接以及复位电路等,没有什么特殊的要求,而CH371的复位完全可以采用单片机复位电路产生的复位信号。带I2C接口的串行EEPROM24C01的作用是存储产品的VID、PID、设备序列号等信息,只要地址不相同,就可以挂接多片带I2C接口的芯片,用户可以利用提供的动态连接库的函数,非常方便地完成对串地EEPROM的读出和写入。系统设计中,也可以没有EEPROM,CH371将使用默认的VID、PID、产品描述符和电源描述符,并且没有设备的序列号。
需要注意的是:最好在USB连接器的1和4之间跨接1个100μF的电解电容和1个0.1μF的独石或瓷片电容;12MHz晶振的外壳最好接地;阻抗匹配电阻为80Ω~150Ω。
3信息传输软件实现流程
下位机数据上传子程序流程简图如图3所示。
下位机中断服务程序流程如图4所示。
对于计算机应用层的程序,在计算机上装载WINCHIPHEAD提供的CH371的通用驱动程序后,不必再考虑USB通信协议、固件程序、驱动程序、自动配置过程和底层数据传输过程。只需要根据提供的动态连接库的接口函数,用VB或VC编制自己的应用程序即可。
USB系统范文
时间:2022-03-05 09:34:56 阅读:0
推荐度: