




免费预览已结束,剩余20页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录一、 引言.1二、 USB的结构与工作原理.2(一) 物理结构.2(二) USB设备逻辑结构.2(三) USB通信分层模型.2(四) 四种传输方式.3(五) USB通信协议.3(六) USB宽带分析.4(七) Windows USB驱动程序接口.4三、 USB接口与其他串行接口的对比. 5(一) RS232/422/485串行总线接口. 5(二) 通用串行总线接口USB .8(三) MODEM芯片 91. MODEM通信原理.92. MODEM通信系统操作模式.10(四) IEEE1394(火线).111. IEEE1394界面特点.112. USB与IEEE1394比较.11(五) INTERNET芯片12四、 USB接口高速数据采集卡的设计与实现.13(一) USB数据采集卡原理131. USB简介132. 系统原理图.13(二) USB高速数据采集卡的软件141. USB接口编程142. 主机软件设计.16五、 具有USB2.0接口的高速数据采集卡的设计16(一) USB2.0数据采集卡原理.161. USB简介162. 系统框图.17(二) USB2.0数据采集卡的软件.181. EIUSB FX2的初始化182. 主机软件部分.20六、 结束语.22致谢.22参考文献.23附录.24(一)中南民族大学本科毕业论文专家评阅书.24(二)中南民族大学本科毕业论文(设计)量化评分标准.25(三)中南民族大学本科毕业论文评定表.26(四)中南民族大学本科毕业论文(设计)过程检查情况记录.28(五)论文答辩问题记录.29USB接口技术与设计 摘要 本文以USB1.1为基础讨论了USB的基本原理、工作流程、通信协议和相应的关键技术,还论述了USB2.0的改进和优点。USB是通用串行接口,本文中也介绍了其他几种串行接口并和和USB接口进行了比较。并且分别讨论了基于USB1.1和USB2.0接口的高速数据采集卡的设计与实现。还简要介绍固件程序、驱动程序和应用软件的设计。关键词 USB1.1 USB2.0 设备驱动程序 固件程序 主从系统一引言通用串行总线USB(Universal serial bus)是Intel、microsoft等大厂商为解决计算机外设种类的日益增加与有限的主板插槽和端口之间的矛盾而与1995年提出制定的。它是一种用于将适用USB的外围设备连接到主机的外部总线结构,主要用在中速和低速的外设。USB同时又是一种通信协议,支持主机和USB的外围设备之间的数据传输。USB1.1有全速和低速两种方式,低速方式的速率为1.5 Mbps,支持一些不需要很大数据吞吐量和很高实时性的设备,如鼠标等;全速模式为12 Mbps,可以外接速率更高的外设。在USB2.0中,增加了一种高速方式,数据传输率达到480 Mbps,可以满足更加高速的外设的需要。安装USB设备不必打开主机箱,它支持即插即用(Plug and Play) 和热插拔(Hot Plug)。当插入USB设备的时候,主机检测该外设并且通过自动加载相关的驱动程序来对该设备进行配置,并使其正常工作。通讯接口种类繁多,除了USB接口外,还有传统的通用外围电路、RS-232、RS-422/485、MODEM和现在运用比较广的IEEE 1394、Internet网络芯片等,它们在不同的领域得到了广泛的应用。在文中介绍了其他几种串行接口并和和USB接口进行了比较。 现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要进行高速数据采集。现在通用的高速数据采集卡一般多是PCI卡或ISA卡,存在以下缺点:安装麻烦;价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。USB总线接口具有安装方便、高带宽、易于扩展等优点,已逐渐成为现代数据传输的发展趋势。基于USB的高速数据采集卡充分利用USB总线的上述优点,有效解决了传统高速数据采集卡的缺陷。 通用串行总线USB是用来连接外围设备与计算机之间的新式标准接口总线。它是一种快速、双向、同步传输、廉价的并可以实现热拔插的串行接口。USB技术是为实现计算机和通信集成而提出的一种用于扩充PC体系结构的工业标准。基于USB接口的高速数据采集卡,充分利用了USB总线的优点,它也必将被越来越多的用户所接受。二U的结构与工作原理(一)物理结构在USB2.0中,高速方式下Hub使全速和低速方式的信令环境独立出来。 通过使用集线器(Hub)扩展可外接多达127个外设。USB的电缆有四根线,两根传送的是5V的电源,另外的两根是数据线。功率不大的外围设备可以直接通过USB总线供电,而不必外接电源。USB总线最大可以提供5V 500mA电流,并支持节约能源的挂机和唤醒模式。(二)USB设备逻辑结构 USB的设备可以分成多个不同类型,同类型的设备可以拥有一些共同的行为特征和工作协议,这样可以使设备驱动程序的编写变得简单一些。USB Forum在USB类规范2中定义了USB的设备类型,比如音频、通信、HID、HUB等设备类。 每一个USB设备会有一个或者多个的逻辑连接点在里面每个连接点叫端点。在USB的规范中用4位地址标识端点地址,每个设备最多有16个端点。端点0被用来传送配置和控制信息。在NS公司的USB接口芯片USB N9604中有7端点。 管道实现了在主机的一个内存缓冲区和设备的端点之间的数据传输,连接端点0叫做缺省管道。管道是具有多个特征的信道,如带宽分配,包大小,管道类别以及数据流向。管道有两种类型分别是流管道(stream pipe)和消息管道(message pipe)。流管道传输的数据包的内容不具有USB要求的结构,它是单向传输的;流管道支持批量、等时和中断传输方式。而消息管道与流管道具有不同的行为。首先,由主机发请求给USB设备,然后在适当的方向上传输数据,最后是到达一个状态阶段。为了保证三个阶段的数据传输,消息管道定义了一个数据结构使命令可靠地被识别和传输。消息管道是双向的,它只支持控制传输方式。 对于同样性质的一组端点的组合叫做接口,如果一个设备包含不止一个接口就可以称之为复合设备。 对于同样类型接口的组合可以称之为配置。但是每次只能有一个配置是可用的,而一旦该配置被激活,里面的接口和端点就都同时可以使用。主机从设备发过来的描述字中来判断用的是哪个配置、哪个接口等等,而这些描述字通常是在端点0传送的。(三)通信分层模型 一台主机到设备的连接需要许多层与实体之间的相互作用。USB总线接口层提供了主机和设备之间的物理信令包的连接。在系统软件看来,USB设备层执行的是一般的USB操作。功能接口层提供和应用软件层相对应的附加功能。虽然逻辑上USB设备层和功能层各自与主机上的相应层通信,但物理上都是通过USB总线接口层实现数据传输的。(四)四种传输方式 USB提供了四种传输方式,以适应各种设备的需要。这四种传输方式分别是:控制传输方式:控制传输是双向传输,数据量通常较小,主要用来进行查询、配置和给USB设备发送通用的命令。控制传输主要用在主计算机和USB外设中端点0间。 等时传输方式:等时传输提供了确定的带宽和间隔时间。它被用于时间严格并具有较强容错性的流数据传输,或者用于要求恒定的数据传送率的即时应用中。例如进行语音业务传输时,使用等时传输方式是很好的选择。 中断传输方式:中断方式传送是单向的并且对于主机来说只有输入的方式。中断传输方式主要用于定时查询设备是否有中断数据要传送,该传输方式应用在少量的、分散的、不可预测的数据传输。键盘、游戏杆和鼠标就属于这一类型。 大量传输方式:主要应用在没有带宽和间隔时间要求的大量数据的传送和接收,它要求保证传输。打印机和扫描仪属于这种类型。 在开发USB设备时通过设置接口芯片中相应的寄存器使端点处于不同的工作方式。(五)USB通信协议 USB的物理协议规定了在总线上传输的数据格式,一个全速的数据帧有1500字节,而对于低速的帧有187字节。帧的作用是分配带宽给不同的数据传送方式。 一个最小的USB的数据块叫做包,包通常有同步信号,包标识,地址、传送的数据和CRC。包的ID由八位组成,其中后四位是纠错位。根据包功能的不同,在USB1.1中定义了以下四类十种:token OUT IN SOF SETUP data DATA0 DATA1 handshake ACK NAK STALL special PRE在USB2.0中又增加了几种类型的包以满足高速传输的需要。其中data类型增加了DATA2和MDATA,handshake类型增加了NYET,special类型则增加了ERR,SPLIT,PING,Reserved。 事务是在主机和设备之间不连续地数据交换。一个事务通常由主机开始,一般分三个阶段,第一阶段发送token包,第二阶段发送是data包(可以向上也可以向下),在数据包传送完之后,就会由设备返回一个handshake包。 当客户端程序通过一个USB管道发送或接收数据时,它首先会调用Win32API,API会发送一个IRP到USB设备驱动程序。USB设备驱动程序的任务就是把客户端的请求通过一个管道发送到外设合适的端点。为了实现这个任务,USB设备驱动程序会递交请求给总线驱动程序,总线驱动程序可以把这些请求转变成事务,然后将这些事务组合成帧在总线上传输。(六)USB带宽分析 在USB1.1标准中将其有效的带宽分成帧,每帧通常是1ms长。但由于USB2.0的传输速率可高达480Mbps,因此在USB2.0增加了一种微帧,它只有原来帧的1/8,这使得在传输数据时使用更小的缓冲。在完成了系统的配置信息和连接之后,USB的主机就会对不同的端点和传输方式做一个统筹安排,用来适应它的带宽。对全速和低速的端点,系统为等时和中断方式的传输保留整个带宽的90%,即占每个帧时间的90%,剩下的就安排给控制方式传送数据。在USB2.0中,对于高速的端点,则为等时和中断方式的传输保留每个微帧的80%。 以等时传输为例,在某个配置中作为一个等时传输管道的端点,定义了它能传输的数据有效负载的长度。USB系统软件用这个长度限制去保证足够的总线时间使每帧的内容能容纳最多的数据有效负载。如果有足够的总线时间,配置才会建立。每个等时管道的数据有效负载可以是1,2,4,.512,1023字节。1.28 例如,当数据包最大有效负载为512个字节时,一个全速帧(1500字节)最多可以传输2个这样的包。除去协议开销的18个字节,剩余458个字节可以用于其他事务的传输。因此每帧有效字节数为2个包的字节即1024字节,因此最大带宽为1.024Mbyte/s,每个包的有效字节占整个帧的35%。同样可推算,数据有效负载长度为64、128或256时其最大带宽值最大,为1.28 Mbyte/s。在USB2.0高速工作方式下,每个等时管道的数据有效负载可以是1,2,4,2048,3072字节。当数据有效负载长度为1024时其最大带宽值最大,为5.7344 Mbyte/s,每个包的有效字节占整个微帧的14%。(七) windows USB驱动程序接口 USB的驱动程序和以往的直接跟硬件打交道的Win95的VD(Virtual Device Driver)驱动程序不同,它属于WDM(Windows Driver Model)类型的,Win98、Win2000等操作系统均支持该类型的驱动程序。首先定义了一个基本的核心驱动程序模型,处理所有类型的数据,使驱动程序模型的内核实现更加的固定。WDM驱动程序还是一种分层的程序结构,可以看做是Windows驱动程序的改进,WDM驱动程序支持即插即用、电源管理和WMI(Windows Management Instrumentation)特性。Win98和Win2000提供了一系列的系统驱动程序,它们具有为许多标准类型设备服务所需的所有基本功能。Windows提供了USB的系统类驱动程序,它处理USB上的所有底层通信,这样其他驱动程序就有了一个定义好的接口可以使用。USB Hub.sys是USB集线器的驱动程序。USB D.sys是USB类驱动程序,它使用UHCD.sys或OpenHCI.sys分别驱动两种类型的控制器UHCI(USB Host Controller Driver),OHCI(Open Host Controller Interface)。当PCI枚举器发现USB主机控制器后,就会装入相关的驱动程序。通常一些设备都需要开发者写一个核模式的驱动程序来使硬件正常工作。在核模式下驱动程序通过IRP(I/O Request Packet)来组织和操作一些由其他部分发过来的要求和命令。而IRP又是通过URB(USB Request Blocks)来实现的。但对于一些HID(Human Interface Device)的USB设备,像键盘、鼠标和游戏操纵杆之类的设备可以被操作系统自动识别并且支持,开发者不需要再另写驱动程序。三USB接口与其它串行接口的对比通讯接口种类繁多,除了USB接口外,还有传统的通用外围电路、RS-232、RS-422/485、MODEM和现在运用比较广的IEEE 1394、Internet网络芯片等,它们在不同的领域得到了广泛的应用。 数字信号的传输随着距离的增加和信号传输速率的提高,在传输在线的反射、串扰、衰减和共地噪声等影响将引起信号的畸变,从而限制了通信距离。普通的TTL电路,由于驱动能力差,输入电阻小,灵敏度不高以及抗干扰能力差,因而信号传输的距离短。借助接口电路,可以进行较长距离的数据传输。 通信接口(interface)按电气标准及协议来分包括RS-232、RS-422、RS485、USB等。 RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。而本文介绍的USB是近几年发展起来的新型界面标准,主要应用于高速数据传输领域。 MODEM芯片通常配合串行口实现数字信号与模拟信号之间的相互转换,从而可以利用电话线或电力线进行远程通信。 (一)RS-232/422/485串行总线接口 1、 RS-232串行总线接口 图1 RS-232接口连接器引脚 目前RS-232是PC机与通信工业中应用最广泛的一种串行界面。RS-232被定义为一种在低速率串行通信中增加通信距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通信,如图1。 典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5+15V,负电平在-5-15V电平。当无数据传输时,在线为TTL,从开始传送数据到结束,在线电平从TTL电平到RS-232电平再返回TTL电平。接收器典型的工作电平在+3+12V与-3-12V。 RS-232是为点对点(即只用一对收、发设备)通信而设计的,其驱动器负载为37k。由于RS-232发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。所以RS-232适合本地设备之间的通信。有关电气参数参见表1。 2、RS-422串行总线接口 RS-422由RS-232发展而来。为改进RS-232通信距离短、速度低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mbit/s,并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范。 平衡传输 RS-422的数据信号采用差分传输方式,也称作平衡传输。它使用一对双绞线,将其中一线定义为A,另一线定义为B,如图2。 通常情况下,发送驱动器A、B之间的正电平在+2+6V,是一个逻辑状态,负电平在-26V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端, “使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。 接收器也作与发送端相应的规定,收、发端通过平衡双绞线将AA与BB对应相连,当在收端AB之间有大于+200mV的电平时,输出正逻辑电平,小于-200mV时,输出负逻辑电平。接收器接收平衡在线的电平范围通常在200mV至6V之间。 图2 RS-422的数据信号平衡传输 RS-422电气特性 RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。RS-422支持点对多的双向通信。RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。 RS-422的最大传输距离为4000英尺(约1219米),最大传输速率为10Mb/s。其平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为1Mb/s。 RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输电缆的最远程。 (RS-422有关电气参数见表1 ) 3、RS-485串行总线接口 为扩展应用范围,EIA在RS-422的基础上制定了RS-485标准,增加了多点、双向通信能力,通常在要求通信距离为几十米至上千米时,广泛采用RS-485收发器。 RS-485收发器采用平衡发送和差分接收,即在发送端,驱动器将TTL电平信号转换成差分信号输出;在接收端,接收器将差分信号变成TTL电平,因此具有抑制共模干扰的能力,加上接收器具有高的灵敏度,能检测低达200mV的电压,故数据传输可达千米以外。 RS-485许多电气规定与RS-422相仿。如都采用平衡传输方式、都需要在传输在线接终接电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信。而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS-422有改进, 无论四线还是二线连接方式总线上可连接多达32个设备。 RS-485与RS-422的共模输出电压是不同的。RS-485共模输出电压在-7V至+12V之间, RS-422在-7V至+7V之间,RS-485接收器最小输入阻抗为12K;RS-422是4k;RS-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用。但RS-422的驱动器并不完全适用于RS-485网络。 RS-485与RS-422一样,最大传输速率为10Mb/s。当波特率为1200bps时,最大传输距离理论上可达15千米。平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能使用规定最长的电缆长度。 RS-485需要2个终接电阻,接在传输总线的两端,其阻值要求等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻(RS-485有关电气参数见附录中表1 )。 表1 RS-232 /422/485接口电路特性比较 规定RS232RS422RS485工作方式单端差分差分节点数1收、1发1发10收1发32收最大传输电缆长度50英尺400英尺400英尺最大传输速率20Kb/S10Mb/S10Mb/S最大驱动输出电压+/-25V-0.25V+6V-7V+12V驱动器输出信号电平(负载最小值)+/-5V+/-15V+/-2.0V+/-1.5V驱动器输出信号电平(空载最大值)+/-25V+/-6V+/-6V驱动器负载阻抗()3K7K10054摆率(最大值)30V/usN/AN/A接收器输入电压范围+/-15V-10V+10V-7V+12V接受器输入门限+/-3V+/-200mV+/-200mV接受器输入电阻()3K7K4K(最小)12K驱动器共模电压-3V+3V-1V+3V接受器共模电压-7V+7V-7V+12V(二)通用串行总线接口USB 我们前面讲了USB全称是通用串行总线,它是在1994年底由康柏、IBM、Microsoft等多家公司联合制订的。但是直到1999年,USB才真正被广泛应用。自从1994年11月11日发表了USB V0.7以后,USB接口经历了六年的发展,现在USB已经发展到了2.0版本。 1、USB总线特点 USB除了在第二节提到的特点,和其它的串行接口比较还具有一些新的特性,如:实时性(可以实现和一个设备之间有效的实时通信)、动态性(可以实现接口间的动态切换)、联合性(不同的而又有相近的特性的接口可以联合起来)、多能性(各个不同的接口可以使用不同的供电模式)。2、USB接口的结构与典型应用 USB接口引脚定义如图4所示。USB接口数据传输距离不大于5米。其典型应用如图5所示。 USB总线上数据传输方式有控制传输、同步传输、中断传输、块数据传输。在图5所示系统中,USB HOST根据外部USB设备速度及使用特点采取不同的数据传输特点。如通过控制传输更改键盘、鼠标属性,通过中断传输要求键盘、鼠标输入数据;通过控制传输改变显示器属性,通过块数据传输将要显示的数据送给显示器。 目前USB接口主要应用于计算机周边外部设备,与其它的串行接口相比,现在可以以USB接口与计算机相联结的外设有电话、Modem、键盘、光驱、摇杆、磁带机、软驱、扫描仪、打印机等。 (三)MODEM芯片 从通信距离来讲,RS-485在波特率为1200bps的条件下,最远传输距离可达15km,但更远的距离则需借助专门的MODEM芯片利用电话线或电力线进行远程数据传输。 1MODEM通信原理 电话线或电力线传输的是模拟信号,微处理器处理的是数字信号,MODEM芯片实现数字信号到模拟信号及模拟信号到数字信号的转换。利用MODEM芯处通过电话线进行远程通信的原理如图6所示。来自发送端的数字信号被Modem转换成模拟音频信号,利用公共电话网传输到接受端的Modem上。在接收端接收到的模拟音频信号被Modem转换为相应的数字信号,传输到接收数据终端。 2MODEM通信系统操作模式 MODEM通信系统主要分为两种操作模式,一个叫全双工系统模式,另一个叫半双工系统模式。两种模式可以通过电话线进行传输。 A)四根导线全双工通信方式(两根电话线) 应用方法是采用两根专用的电话线,一根电话线用于发送,另一根电话线用于接收,发送的同时可以接送。 B)两根导线半双工通信方式(一根电话线) 应用方法是采用一根专用的电话线,任何时刻只有一个方向在工作。当一端处在发送状态时,另一端必须处在接受状态。这样就限制了它在某些领域的应用。 C)两根导线全双工通信方式(一根电话线) 发送和接收在同一根专用电话线同时进行传输,该方法与上述半双工相比更经济。 在基于电话线的远程通信系统中,上位机一般都具有拔号功能,下位机则根据需要分为有拔号功能及无拔号功能两种。拔号功能的实现一般要借助8250或GM16C550等通用异步收发器或专用的拔号芯片如HT9200A。下图为一远程通信系统,上位机及下位机均有拔号功能。其中MSM7512B为OKI公司的MODEM芯片,其数字信号端为TTL电平。 MODEM芯片已经广泛应用于远程通信、远程控制等场合。 (四)IEEE 1394(火线) IEE1394接口适合视频数据传输,支持外设热插拔、同步数据传输,同时可为外设提供电源。Apple称之为火线FireWire,Sony称之为i.Link,Texas Instruments称之为Lynx)。目前主要用于计算机及接口设备。1. IEEE1394界面特点IEEE1394总线是一种目前为止最快的高速串行总线,最高的传输速度为400Mbps/s。对于各种需要大量带宽的设备提供了专门的优化,接口可以同时连接63个不同设备,IEEE1394同USB一样,支持带电插拨设备。IEEE1394支持即插即用,现在的WIN98 SE、WIN2000、WIN ME、WIN XP都对IEEE1394支持的很好,在这些操作系统中用户不用再安装驱动程序,也能使用IEEE1394设备。火线(IEEE1394)支持的传输速率有100Mbps,200Mbps,400Mbps,将来会提升到800Mbps,1Gbps,1.6Gbps。不需要控制器,可以实现对等传输,最大联机4.5米,大于4.5米可采用中继设备支持,同样支持即插即用。火线是目前唯一支持数字摄录机的总线。IEEE1394既可作为外部总线,又可成为内部总线使用,不过由于已经有了PCI这样历史悠久的总线存在,而且现在PCI正向64位过渡,各厂商并不愿意做总线上的调整改动,所以市面上的IEEE1394是作为外部总线连接外设使用。它的缺点主要表现于两个方面:应用少。现在支持IEEE1394的设备也不太多,只有一些数码相机与MP3等一些使用高带宽的设备使用IEEE1394。其它的设备其实也用不了那么高的带宽。IEEE1394总线需要占用大量的资源,所以需要高速度的CPU。2. USB与IEEE1394比较 两者的传输速率不同。过去,很多人都会选用IEEE1394作传输檔用,因为其流量比USB1.1版本快百倍。USB的传输速率现在只有12Mbps/s,只能连接键盘、鼠标与麦克风等低速设备,而IEEE1394可以使用400Mbap/s,可以用来连接数码相机、扫描仪和信息家电等需要高速率的设备。而后来,推出了USB2.0,虽然有所赶上IEEE1394,但是火线的流量还可以增加至1G。两者的结构不同。USB在连接时必须至少有一台计算机,并且必须需要HUB来实现互连,整个网络中最多可连接127台设备。IEEE1394并不需要计算机来控制所有设备,也不需要HUB,IEEE1394可以用网桥连接多个IEEE1394网络,也就是说在用IEEE1394实现了63台IEEE1394设备之后也可以用网桥将其它的IEEE1394网络连接起来,达到无限制连接。两者的智慧化不同。IEEE1394网络可以在其设备进行增减时自动重设网络。USB是以HUB来判断连接设备的增减了。两者的应用程度不同。现在USB已经被广泛应用于各个方面,几乎每台PC主板都设置了USB接口,USB2.0也会进一步加大USB应用的范围。IEEE1394现在只被应用于音频、视频等多媒体方面。有关数两者的比较见表2。表2 IEEE1394与USB数据接口比较接口传输数据启动程序普及程度USB1.112 MB/s需要每个主板上都有接口,普及率广泛USB2.0480 MB/s需要每个主板上都有接口,普及率广泛Intel 1815或以下的主板不支持2.0格式IEEE1394400 MB/s1GB/s需要大部分台式机主板不包括接口,需要另外购买PCI卡,适用于媒体方面的数据传输(五)INTERNET芯片 随着互联网时代的到来,基于INTERNET的相关通信集成电路也纷纷面世,如webchip系列产品可方便地实现基于INTERNET远程通信、控制,其应用原理如图8所示。 通过上述比较,USB接口比之较早出的RS-232、RS-422、RS485在各个方面都有了较大的提高,得到了更广泛的应用。但随着科技在不断的进步,如今已出现的IEEE 1394、Internet网络芯片在某些领域已经得到更广泛的应用。四USB接口高速数据采集卡的设计与实现基于USB接口的高速数据采集卡的实现。该系统采用TUSB3210芯片作为USB通信及主控芯片,完全符合USB1.1协议,是一种新型的数据采集卡。现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要进行高速数据采集。现在通用的高速数据采集卡一般多是PCI卡或ISA卡,存在以下缺点:安装麻烦;价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。 通用串行总线USB是1995年康柏、微软、IBM、DEC等公司为解决传统总线不足而推广的一种新型的通信标准。该总线接口具有安装方便、高带宽、易于扩展等优点,已逐渐成为现代数据传输的发展趋势。基于USB的高速数据采集卡充分利用USB总线的上述优点,有效解决了传统高速数据采集卡的缺陷。(一)USB数据采集卡原理1. USB简介 通用串行总线适用于净USB外围设备连接到主机上,通过PCI总线与PC内部的系统总线连接,实现数据传送。同时USB又是一种通信协议,支持主系统与其外设之间的数据传送。USB器件支持热插拔,可以即插即用。USB1.1支持两种传输速度,既低速1.5Mbps和高速12Mbps,在USB2.0中其速度提高到480Mbps。USB具有四种传输方式,既控制方式(Control mode)、中断传输方式(Interrupt mode)、批量传输方式(Bulk mode)和等时传输方式(Iochronous mode)。 考虑到USB传输速度较高,如果用只实现USB接口的芯片外加普通控制器(如8051),其处理速度就会很慢而达不到USB传输的要求;如果采用高速微处理器(如DSP),虽然满足了USB传输速率,但成本较高。所以选择了TI公司内置USB接口的微控制器芯片TUSB3210,开发了具有USB接口的高速数据采集卡。2. 系统原理图 系统原理图如图9所示。信号处理电路A/D转换FIFO采样频率产生电路USB控制芯片TUSB310USB接口 图9 系统原理图整个系统以TUSB3210为核心,负责启动A/D转换,控制FIFO的读写及采样频率的设定,与主机之间的通信及数据传输。 (二)USB高速数据采集卡的软件开发一个USB设备,软件设计是必不可少的。USB应用系统软件设计分为三部分:USB外设端的固件(Firmware)、主机操作系统上的客户驱动程序以及主机应用软件。主机应用软件通过客户驱动程序与系统USBI(USB Device Interface)进行通信,由系统产生USB数据的传送动作;固件则响应各种来自系统的USB标准请求,完成各种数据的交换工作和事件处理。 1.USB接口编程 固件程序主要是实现USB通信。TUSB3210采用SIE来管理USB通信。当主机与芯片进行USB通信时,会产生外部中断0,通过中断矢量寄存器判断。Setup_packed_Int、Input_endpoint0_Int、Output_endpoint0_Int这三个中断主要用于与主机建立连接、进行控制传输或中断传输;Input_endpoint1_Int、Output_endpoint1_Int这两个中断主要在批量传输时使用。在固件中分别执行不同的中断程序来实现USB的数据传输。Void EX0_int(void) interrupt 0 /外部中断0EA=DISABLE; /关中断case VECINT_OUTPUT_ENDPOINT0:bVECFINT=0x00;Ep0QutputInterruptHandler();break;case VECINT_INPUT_ENDPOINT0:bBECINT=0x00;Ep0InputInterruptHandler();break;case VECINT_OUTPUT_ENDPOINT1:bVECINT=0x00;Ep 1 OutputInterruptHandler();Break;case VECI NT_INPUT_ENDPOINT1: bVECINT=0x00 Ep1InputInterruptHandler();break;case VECINT_SETUP_PACKET_RECEIVED:SetupPacketInterruptHandler();bUSBSTA=USBSTA_SETUP;bVECINT=0x00;break;default:break; /不知道中断IDEA=ENABLE; /开中断2. 主机软件设计 我们首先开发TUSB3210在主机中的驱动程序。用WinDK3.0开发了Win2000下的驱动程序,实现了控制传输、中断传输和批传输的标准接口函数。 在应用程序开发中,可用VC+编制应用程序。可以把USB设备当成文件来操作,利用CreateFile得到USB句柄,用DeviceIoControl来进行控制传输,用ReadFile、WriteFile进行批量传输。程序实例如下:HANDLE m_hUsbSample; /USB句柄m_hUsbSample=CreateFile(.USBSampl0,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULI,OPEN_EXISTING,0,NULL); /打开USB句柄DeviceIoControl(m_hUsbSample,IOCTL_USBSAMPL_REBOOT, NULL,0,NULL,0,&length,NULL); /控制传输WriteFile(m_hUsbSample,pBuffer,writelength,&writelength,NULL); /批量输出传输ReadFile(m_hUsbSample,pBuffer,64,&lgngth,NULL); /批量输入传输CloseHandle(m_hUsbSample); /关闭USB句柄使用上述函数编制USB高速数据采集卡的主机软件。 通过以上设计实现了基于USB数据采集卡的基本功能。但还有一些如信号的触发、事件的捕获功能还需完善;需进一步提高数据传输的速率。五. 具有USB2.0接口的高速数据采集卡设计(一) USB2.0数据采集卡原理1.USB简介上面已经讲了USB支持在主机与各式各样即插即用的外设之间进行数据传输。它由主机预定传输数据的标准协议,在总线上的各种设备分享USB总线带宽。当总线上的外设和主机在运行时,允许自由添加、设置、使用以及拆除一个或多个外设。USB总线技术的提出就是想利用单一的总线技术,来满足多种应用领域的需要。USB1.1协议支持两种传输速度,即低速1.5Mbps和高速12Mbps。为了在高速接口之争中占有一席之地,2000年发布了USB2.0协议,它向下兼容USB1.1协议,数据的最高传输速率提高到480Mbps,这使USB对打印机和其它需要快速传递大容量数据的外设更具吸引力。为满足实际数据采集USB传输速度较高的需要,选择了Cypress公司的内置USB接口微控制器芯片EZUSB FX2系列,开发了具有USB接口的高速数据采集卡。2.系统框图USB系统是一个主从系统,而非对等(peer-to-peer)系统。在主从系统中,命令是由主设备发出,而从设备只能接收命令,只有在主设备读取数据时,从设备才能提交数据。如图10所示,在USB控制器与外围电路之间需要一个FIFO,来充当数据的缓存区。那么,在USB从设备向主设备发送数据时存在一个问题:FIFO多大才能满足要求。为了满足数据采集中高速实时流数据垢应用,避免FIFO溢出,在我们的系统中,通过FPGA及SDRAM构造一个容量的FIFO,可以提供一个低成本并能满足高速实时流数据传输的解决方案。USB控制器FPGA外围功能模块(包括信号处理电路、A/D转换)SDRAM主设备图10 系统框图(二) USB2.0数据采集卡软件软件设计是一个USB设备开发的必备环节。USB应用系统软件设计分为三部分:初始化软件、主机操作系统上的客户驱动程序以及主机应用程序。初始化软件是下载到控制器中的固件代码,它响应各种来自系统的USB标准请求(包括USB设备的枚举、驱动程序的选择加载等),完成连接设备和主机的任务。主机应用软件通过客户驱动程序与系统USBI(USB Device Interface)进行通信,其主要任务是将采集进来的数据流,根据所需处理功能的要求来完成各种基于Windows程序的处理。1. EZ-USB FX2的初始化通过固件程序的调度,主机才能得到设备的描述符以及完成端点数据的传输。对于固件程序的编程,其基本结构如下:初始化,包括处理器和外围电路的初始化;主函数,包括完成符合设备特定要求的代码;中断处理,包括处理各种中断的程序代码。总的来说,固件程序的编写有两种方式。其一,对于熟悉8051汇编语言的用户来说,可以直接利用汇编语言编写结构紧凑、高效率的固件代码;其二,EZ-USB以利用现成的固件程序框架函数,根据设备的需求添加相庆的用户,来完成特定的目的。为了加快USB接口的开发过程,利用EZ-USB FX2提供的一些框架函数来简化用户代码,使用相应端口(端口2输入,端口6输出)利用EZ-USB FX2的Slave FIFO结构采用此处理传输,基本的固件程序框架函数如下:void TD_Init(void) /该函数用来完成EZ-USB FX2的初始化 CPUCS=0x10; /工作频率48MHzIFCONFIG=0xC3; /决定FX2的工作模式(slave FIFO)及相关设置IN07VAL=bmEP2;OUT07VAL=bmEP6;/使能端点2输入和端点6输出EP2FIFOCFG=0x6D;/AUTOOUT=0,AUTOIN=1,WORDWIDE=1SYNCODELAY;EP6FIFOCFG=0x75;/AUTOOUT=1,AUTOIN=0,WORDWIDE=1SYNCDELAY; /对端点2和端点6的配置,WORDWIDE=1配置的是使用16位数据线。EP2CFG=0xEA; /端点2:输入、批量传输、最大包字节为1024,双缓冲SYNCDELAY;EP6CFG
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消防安全考试及答案
- 2024疼痛营养自理能力评估试题库与答案
- 2024普外科主治医师考试题及答案
- 院感相关知识培训试题及答案
- 初级护师《基础知识》真题测试题库(附答案)
- 2025年双评双促检讨发言材料
- 专业硕士毕业论文知网
- 谢辞毕业论文
- 二本毕业论文要盲审吗
- 2024年省社区《网格员》点睛提分卷(含答案)
- 2024在役立式圆筒形钢制焊接储罐安全附件检验技术规范
- 托管老师培训课件
- 大客户营销管理策略下的客户激励与忠诚度提升
- 管道改造管道吹扫安全方案
- 非营利组织战略管理机制的构建-以上海市青少年发展基金会为例的中期报告
- 煤矿与环境保护
- 脑梗死后遗症护理查房
- 竞价采购文件示范文本
- Office2021基础与应用中职全套教学课件
- 中国特色社会主义思想概论 课件 第四章 坚持以人民为中心
- 2022工程设计资质标准
评论
0/150
提交评论