基于U采集电压信号的设计.docx

上传人:b****6 文档编号:8185874 上传时间:2023-01-29 格式:DOCX 页数:45 大小:713.02KB
下载 相关 举报
基于U采集电压信号的设计.docx_第1页
第1页 / 共45页
基于U采集电压信号的设计.docx_第2页
第2页 / 共45页
基于U采集电压信号的设计.docx_第3页
第3页 / 共45页
基于U采集电压信号的设计.docx_第4页
第4页 / 共45页
基于U采集电压信号的设计.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

基于U采集电压信号的设计.docx

《基于U采集电压信号的设计.docx》由会员分享,可在线阅读,更多相关《基于U采集电压信号的设计.docx(45页珍藏版)》请在冰豆网上搜索。

基于U采集电压信号的设计.docx

基于U采集电压信号的设计

摘要:

本设计以USB总线的采集系统为主要研究内容,阐述了利用美国Cygnal公司的C8051F320等芯片组成的一套数据采集系统的设计方案、开发方法和开发过程,并给出了具体实现方案。

首先简要介绍了USB总线的相关内容,然后介绍了数据采集系统的设计。

数据采集系统的设计包括硬件设计、固件程序开发、驱动程序开发和应用程序开发四大部分。

在硬件设计部分,首先介绍了设计中所用的C8051F320芯片的性能和特点,然后给出了具体硬件设计方案,并重点介绍了设计中应该注意的问题。

固件程序开发部分是设计中的重点,论文先从总体上介绍了程序的设计思想及其层次结构,随后详细介绍了各层次程序的设计过程,并给出了部分源代码和程序流程图。

驱动程序开发部分论述了驱动程序开发工具的选择的原则,介绍了驱动程序的结构和驱动程序的开发过程。

主机应用程序的设计比较简单,主要是提供一个友好的人机界面,对采集系统进行控制并显示采集后的数据,因此在文中没有作过多的介绍。

本设计己完成了基于USB总线的数据采集的设计,并实现了基本的数据采集功能。

使用USB总线传输数据,为数据采集系统与计算机之间的通讯开辟了新的道路。

关键字:

USB总线,固件,驱动程序,C8051F320,数据采集

 

BasedoncollectingUSBvoltagedesign

Abstract:

ThepaperismainlyconcernedwiththedesignprocessofdataacquisitionsystemthatisbasedonUSBbus.Thedesignscheme,developingmethodanddevelopingprocessofasuitofdataacquisitionsystemusedwithAmericaCygnal'sC8051F320areexpatiated.Inaddition,thepaperalsogivestheMaterialrealizationscheme.

Atfirst,thepaperintroducestheprotocolofUSBbusinbrief,andthendiscussesthedesignofdataacquisitionsystem,whichincludesfoursegments,hardwaredesign,firmwaredesign,devicedriverandapplicationprogramdesign.Inhardwaredesignsegment,theperformanceofC805IF320firstlyisdescribed;thenthehardwaredesignschemeisgivenindetail;thequestionsindesignareexplained,whichshouldbepaidattentionto.Themostimportantprojectisthefirmwarewriting.Thepapershowstheideaoffirmwareprogramdesignandthehierarchyandthenintroducestheprogramdesignindetailandgivessomecode.Indevicedriversegmenttheprincipleofchoosingdriverdeveloptoolsisexplained,atlastthestructureandwritingstepsofdevicedriverarediscussed.Thedesignofhostapplicationprogramisrelativelysimple.Itmainlyprovidesafriendlyuserinterfacetocontroltheacquisitionsystemanddisplaythedata.Sothereisnotmuchcontentinthepaper.

ThepaperhasfinishedthedesignofdataacquisitionsystembasedonUSBbusandrealizedthebasaldataacquisitionfoundation.UsingUSBbustotransferdatablazedawayincommunicationbetweendataacquisitionsystemandcomputer.

KeyWords:

USBbus,firmware,devicedriver,C805IF320,dataacquisition

 

1.2课题的预定7

1.2.1USB总线的机械和电气特性7

1.2.2USB数据流模型8

1.2.3USB总线的数据传输类型11

1.2.1USB总线的枚举13

第2章USB采集电压信号的设计方案15

2.1USB采集电压信号的总体设计方案15

2.1.1硬件系统构成15

2.1.2软件系统构成16

2.2USB采集电压信号的硬件设计18

2.2.1USB接口方案18

2.2.2硬件调试19

2.3USB采集电压信号的固件设计26

2.3.1USB描述符声明程序28

2.3.2中断服务程序33

2.3.3标准设备请求程序34

2.3.4主程序35

2.4设备驱动程序及应用程序设计36

2.4.1相关知识点36

2.4.2USB设备驱动程序设计39

2.4.3USB数据采集系统的程序设计开发43

2.4.4应用程序的设计49

附录

附录一电路原理图

附录二PCB电路图

基于USB采集电压信号的设计

前言

在工业生产和科学技术研究的各行业中,常常要利用PC或工控机对各种数据进行采集,如液位、温度、压力、频率等。

现在常用的采集方式是在PC机或工控机内安装数据采集卡,如A/D卡及422卡、485卡。

采用采集卡不仅安装麻烦、易受机箱内环境的干扰,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备。

而通用串行总线(UniversalSerialBus,简称USB)的出现,能很好地解决以上这些冲突,很容易就能实现低成本、高可靠性、多点的数据采集。

数字采集和处理技术的发展日新月异,随着集成电路技术和软件技术的不断发展和解决复杂问题能力的不断提高,数据采集系统的概念和内涵也在不断地调整,从最初单纯的采集,到现在包括高速、复杂的运算和信号处理,可扩展性和易用性的提高。

人们在不停地寻求更先进优越的数据采集方法。

USB技术一出现,人们就逐渐将其应用到了工业现场的数据采集系统中。

发展到今天,结构清晰、流程简洁、性能强大的数据采集系统己离不开USB技术的发展。

本设计以基于USB总线的数据采集系统的研制过程为主要内容,利用美国Cygnal公司的C8051F320制作基于USB的数据采集系统,并给出了具体实现方案。

其中具体设计包括硬件设计、固件程序开发、驱动程序开发和应用程序开发四大部分。

在硬件设计部分,我给出了C8051F320芯片具体硬件设计方案,并重点介绍了设计中应该注意的问题。

固件程序开发部分是设计中的重点,先从总体上介绍了程序的设计思想及其层次结构,随后详细介绍了各层次程序的设计过程。

驱动程序开发部分论述了驱动程序开发工具的选择的原则,介绍了驱动程序的结构和驱动程序的开发过程。

主机应用程序的设计比较简单,主要是提供一个友好的人机界面,对采集系统进行控制并显示采集后的数据,因此在文中没有作过多的介绍。

本设计既能实现基本的数据采集功能,还上位机还能够通过USB对采集电路的控制,使用USB总线传输数据,为数据采集系统与计算机之间的通讯开辟了新的道路。

第1章绪论

1.1课题的意义和目的

1.1.1意义

为了解决传统PC机在发展过程中所遇到的一些问题,如外设通信端口数量不足,外设连接繁琐、配置困难,数据传输速率低等,Compaq,DEC.IBM.Intel,Microsoft.NEC和NorthernTelecom七家公司共同研制开发了USB(UniversalSerialBus,即通用串行总线)。

USB是一种快速的、双向的、同步传输的、廉价的并支持热插拔的串行端口,它把网络的拓扑结构思想引入计算机组织结构,从而增强了PC端口的扩展性。

从1994年到USB论坛的成立到今天USB设备的普及,事实说明USB己成为一种在实际应用中具有重要地位的技术。

因此研究USB具有非常重要的意义。

鉴于电子玩具对于儿童成长的重要性及越来越智能化和多样化,受到了消费者的喜爱,因此电子智能玩具的设计有着很好的市场前景。

本次设计是基于单片机控制的玩具萤火虫,以单片机AT89S51芯片为核心,附以外围电路,采用传感器进行检测障碍物,运用单片机的处理能力来实现玩具萤火虫的自动前进、后退、左转、右转、闪光等智能控制系统。

1.1.2目的

既能实现基本的数据采集功能,还上位机还能够通过USB对采集电路的控制,使用USB总线传输数据,为数据采集系统与计算机之间的通讯开辟了新的道路。

1.2课题的预定

1.2.1USB总线的机械和电气特性

USB数据传输采用四根电缆,其中两根(D十、D-)是用来传送数据的串行通道,另两根(VBUS,GND)是符合标准的电源线,为下游的USB设备提供电源,如图1.1所示。

USB电缆

其中,D+、D-是串行数据通信线,它支持两种数据传输速率,对于高速且要有高带宽的外设,USB以全速12Mbps或高速480Mbps传输数据;对于低速外设,USB则以1.5Mbps的传输速率传输数据。

USB总线会根据外设情况在不同的传输模式中自动地动态转换VBUS通常为+5V电源,GND是地线。

USB总线是基于令牌的总线,类似于令牌环网络或FDDI基于令牌的总线。

USB电源主要包括两方面:

电源分配:

即USB的设备如何通过USB总线获得USB主机提供的电源。

电源管理:

即通过电源管理系统,USB系统软件和设备如何与主机协调工作。

(1)电源分配

每个USB单元通过电缆只能提供有限的电源。

主机对那种直接相连的USB设

备提供电源使用,并且每个USB设备都可能有自己的电源。

那些完全依靠电缆提

供能源的设备称作“总线供电”设备。

相反,那些可选择电源来源的设备称作“自供电”设备,而且,集线器也可由与之相连的USB设备提供电源。

(2)电源管理

USB主机与USB系统有相互独立的电源管理系统。

USB的系统软件和主机电

源管理系统相互作用,以此来控制挂起、唤醒等系统电源事件.另外,USB设备

可以具有USB技术规范所规定的电源管理信息,从而系统软件或类驱动程序可对

其进行电源管理。

1.2.2USB数据流模型

USB按照通信服务协议为主机和连接的设备提供通信服务。

通信服务的协议按照不同的功能分为功能层、设备层和接口层,这些层之间的通信模型如图1.2所示

模型中的USB设备、客户软件、USB系统软件和USB主控制器是USB系统的四个执行范围,其解释如下:

●USB设备:

一种位于USB电缆末端的硬件,完成一些有用的终端用户的功能,如打印、扫描、采集等。

●客户软件:

负责和USB设备的功能单元进行通信,以实现其特定功能。

一般包括USB设备驱动程序和界面应用程序。

●USB系统软件:

负责和USB逻辑设备进行配置通信,并管理客户软件启动的数据传输。

●USB主控制器(主机端的总线接口):

允许USB设备连接到主机的硬件和底层软件。

主机和设备间的连接要求不在一层的实体之间有相互作用。

USB总线接口层为主机和设备间提供物理/信号的连接。

USB设备层的USB系统软件必须具有完成一般USB操作的功能。

功能层通过一个特定的与功能模块匹配的客户软件层来实现USB设备的功能。

每个USB设备层和功能层都没有一个在层内的逻辑通信流。

实际上,USB中真正的数据传送是通过USB的总线接口层来完成的。

USB总线拓扑是指USB设备和主机之间的连接模型,包括USB主机、设备以及他们之间的相互连接。

1.USB主机

主机由三部分构成:

主机控制器、USB系统软件(包括USB驱动程序、主机控制器驱动程序及主机软件)和客户软件。

USB主机是USB中唯一的一个用于协调工作的实体。

除了他的特殊物理位置,对于USB和与之相连的设备而言,主机还有一些特殊的责任。

对USB的访问都由主机控制,只有当主机允许其访问时,一个USB设备才能获得对总线的访问权。

另外,主机还负责整个USB的拓扑结构。

2.USB设备

USB物理设备由USB总线接口、USB逻辑设备和功能模块构成。

USB设备为主机提供补充的功能,功能类型范围很广,如打印、视频和音频等。

然而,所有的USB设备对主机有着相同的基本接口,这就允许主机以相同的方式管理USB设备中与USB相关的部分。

为帮助主机识别和配置USB设备,每个设备都带有并报告和配置相关的信息。

一些报告信息是所有逻辑设备共有的信息,另外的一些信息是提供给设备特定的功能。

这些信息的具体格式依赖于设备的类型而变化。

3.USB主机和设备的连接

(1)物理总线拓扑结构

USB系统中的设备与主机的连接方式采用的是星型连接,主机通过根Hub提供若干个连接点。

用于提供具体工作的设备叫应用设备。

许多不同功能的设备放在一起被看作一个整体,叫包。

所有这些设备及这个Hub被看作一个复合设备,而这个Hub又被看作这个复合设备的内部Hub。

在主机看来,这个复合设备和一个带着若个设备的单独Hub是一样的。

(2)总线逻辑拓扑结构

在物理结构上,设备通过Hub连接到主机上。

但在逻辑上,主机是直接与各个逻辑设备通信的,就好像他们是直接被连到主机上一样。

虽然USB系统中的工作都是从逻辑角度来看待的,但主机必须对物理结构有所了解。

例如,在处理Hub被移去的情况时,当一个Hub被移出,通过它与主机相连的设备也应一起被移去,这是由其物理结构决定的。

USB提供了主机上的软件和USB功能块之间的通信服务。

根据不同的客户与功能块之间的相互作用的要求,功能块可具有不同的通信流。

通过分离允许连接到USB功能块的不同的通信流。

USB较好地使用了整个总线。

每个通信流利用一些总线访问来完成功能块之间的通信。

每个通信流终止于设备上的一个端点(Endpoint)。

设备的端点是USB设备唯一的可标识部分,用来标识每个通信流的方向,它是主机和设备之间的通信流的信息源或终点。

主机上的软件通过一组通信流与逻辑设备进行通信.通信流由设备的软/硬件设计者选择,以使设备的通信要求与USB提供的传输特性有效匹配。

(一)设备端点(DeviceEndpoint)

每个USB逻辑设备由各个独立操作的端点的集合构成。

软件可经由一个或几个端点与USB设备进行通信。

每个逻辑设备有一个唯一的在设备连接上USB时由系统分配的地址。

设备上的每个端点有一个唯一的端点号。

端点号是USB设备上的一个唯一的管道端点。

设备地址和端点号的组合可唯一的确定每个端点。

在被配置前端点处于未知状态,此时端点不能被主机访问。

(1)端点0的要求:

所有USB设备都要求有一个端点号为0的特殊端点来初始化设备和配置逻辑设备。

端点0提供对设备配置信息的访问和允许一般的USB状态和控制信息的访问。

端点0支持控制传输。

一旦设备被连接和加电,端点0就被配置。

(2)非端点0的端点要求:

在实际功能需要时,功能块可有另外的端点。

低速功能块在端点0以上不多于2个端点;而全速功能块可有16个输入和输出端点。

端点只有在配置以后才可使用。

除端点0外,端点作为正常配置过程的一部分进行配置。

(二)管道(Pipe)

管道表示主机软件通过存储缓冲器与设备上的端点进行数据传送的能力。

USB设备被配置时,管道开始存在。

因为端点0是设备一旦加电就被配置,所以主机和设备间总有对应于端点0的一根管道存在,此管道称之为缺省管道.

(1)流管道,在流管道中传输的数据不具有USB定义的结构。

流管道在它们的通信流中通常是无方向性的。

USB系统软件不要求在可能使用相同的流管道的多客户之间提供同步。

提交给流管道的数据以连续的顺序通过流管道移动—先进先出。

到设备的流管道在合适的方向(对应于IN或OUT标记)被捆绑到单个设备端点号上。

相反方向上的设备端点号可用于一些其他的流管道。

流管道支持批量、同步和中断传输类型。

(2)消息管道,消息管道是用请求傲据袱态范例传送数据的管道。

通过信息管道的数据具有允许请求被可靠识别和传送的强制结构。

它们以与流管道不同的方式与端点相连。

首先,一个请求从主机发送到USB设备,这个请求后紧跟适当方向(IN或OUT)的数据传送。

最后,在稍晚的时候,紧跟从端点响应的一个状态级(Stage).

缺省管道是由USB系统软件创建的消息管道,用于在主机和USB设备的端点0之间传送控制和状态信息。

系统软件用此管道来确定设备标志和配置要求,以及用来配置设备。

USB系统软件保证多个请求不会同时发送给一个端点。

在某一时刻,一个端点只被要求为单个信息请求服务。

主机上的多个软件客户通过缺省管道能产生请求,但它们以先进先出的顺序被送到端点上。

在基于响应主机事务能力的数据和状态级(Stage),端点能控制信息的流动。

只有当端点上的当前信息处理完成后,端点才会正常地发送下一个信息。

到一个设备的消息管道在2个方向(IN或OUT标记)要求有一个单一的设备端点号。

对于每个方向USB不允许信息管道与不同的端点号相联系。

消息管道只支持控制传送类型。

1.2.3USB数据传输类型

USB数据传输类型是从USB系统软件的管理角度来描述的。

传输(Transfer)指在客户软件和它的功能块之间的一个或多个消息传输的总线事务(BusTransaction)。

传输类型决定在客户软件和它的功能块之间的数据流的特性。

USB通过管道与主机的客户软件相关联的存储缓冲器和USB设备上的端点之间传输数据。

通过消息管道传输的数据带有USB定义的结构。

但也允许在USB定义的消息数据有效载荷(Playload)之内传输设备特定的结构数据。

USB也定义在总线传输的打包的数据,但在一个总线事务的数据有效载荷之内传输的数据格式和解释最终由客户软件和使用管道的功能块确定。

然后,USB提供的不同数据传输类型更完美的匹配了客户软件和使用管道的功能块的服务要求。

当为一个端点建立管道时,大多数管道的传输特性就已被决定。

为适应设备的多样性,USB协议定义了4种传输类型:

控制传输、同步传输、中断传输、批量传输。

控制(Control)传输允许对一个设备的不同部分进行访问。

控制传输用于支持在客户软件及其功能模块之间的配置信息、命令信息、状态信息等类型的通信流。

一个控制传输由以下几个事务组成:

(1)总线建立操作,负责将请求信息由主机送至功能模块;

(2)零个或多个数据传送事务,按照

(1)事务中指明的方向传送数据;(3)状态信息回传,将状态信息从应用设备传到主机。

当端点成功地完成了被要求的操作时,回传的状态信息为“SUCCESS”省控制管道,并将它实现成一个消息管道。

这个管道由USB设备必须实现缺USB系统软件使用。

USB设备的确认信息、状态信息以及控制信息由该管道传递。

如果需要的话,一个应用设备可以为端点实现额外的控制管道。

同步传输类型是指在主机和设备之间的同步传输,典型的应用于时间相关的连续的且具有固定速率的信息传输。

这个传送类型也保留封装在数据中的时间概念。

同步传输能保证总线访问和固定的数据传输率以支持CTI(ComputerTelephonyIntegration)和音频系统等,它所需的带宽与所传输数据的采样率有关。

在非USB环境中,对于同步传输具有一般恒定速率的容错传输。

在USB环境中,对于请求同步传输类型的请求这应提供:

●在限定的时间内保证访问USB的带宽;

●在数据提供给管道的时间内,保证数据以恒定速率通过管道;

●由于错误引起的传送失败的情况,不重新进行数据传送。

中断(Interrupt)传输类型指小数据、非周期、低频率、限定的服务周期的从设备开始的通信,应用于告知主机设备需要服务。

中断传输支持像游戏棒、鼠标和键盘之类的人机输入设备与主机的通信.这些设备需不经常地传送少量随机数据,如果事件告知信号、输入字符或坐标等,它们应以不低于USB设备所期望的速率进行传输。

对这类传送的要求是:

必须保证管道的最大服务周期;因总线错误而传送失败的情况下,将在下一个周期重试。

批量(Bulk)传输类型是非周期的大量突发数据的通信,典型的应用于能使用任何有效带宽且允许延迟到带宽有效时再传输数据的通信。

批量传输通常用于发送大量数据,而分配给批量传输的带宽必须保证可以使用,不能被其它数据传输类型所占用。

它是为打印机、扫描仪和数码相机之类的设备设计的,当总线带宽变得有效时,这些设备传送大量数据给主机。

批量传输支持在高度可变的时间内需要相当大数据量的数据的设备的通信.对这类传输的要求是:

基于带宽有效来访问USB;因总线错误导致传送失败的情况将重新发送;保证数据的传送,但不保证带宽或同步时间。

USB采用分块带宽分配方案,若外设超过当前带宽分配或潜在的要求,则拒绝进入该设备。

同步和中断传输类型的终端保留带宽,并保证数据按一定的速率传送。

集中和控制终端按可用的最佳带宽来传输数据。

但是,10%的带宽为批量处理和控制传送而保留,数据批量传输仅在带宽满足要求的情况下才会出现。

1.2.4USB总线的枚举

当一个USB设备被挂接到总线上时,USB通过枚举过程识别和管理新加入的设备。

这个过程使得USB设备是“热即插即用气在USB枚举阶段,设备状态可分为:

接入态、供电态、缺省态、地址态、配置态、和挂起态。

其具体过程如下:

1.设备连接到Hub或根Hub的下行端口上。

接着Hub就通过其状态变化管道把这个连接的事件通知主机。

这时,设备所连接的端口上有电流供应,但是该端口的其他属性被禁止,以便主机进行其他操作。

设备的这个状态便是接入态。

2.主机通过一系列命令来询问Hub,已确定设计连接的时间的细节情况。

3.通过以上两步,主机便确定了设备所接入的端口。

接下来,主机会等待looms以使设备的接入过程顺利完成井使供电稳定。

紧接着,主机便激活该端口,并发送复位的命令。

设备处于低电流供电态和接入态复合的状态。

.Hub在设备接入的端口上保持复位命令looms。

然后,该端口就处于被激活的状态。

这时,设备处于缺省态,可以从端口上获取最高达100mA的电流。

设备的所有寄存器等均以复位,并通过地址0与主机通信。

4.主机获取设备描述符,获得缺省管道的最大数据长度等一系列信息。

主机给设备分配一个总线上唯一地址,使设备进入地址态。

因此,在以后的各种数据传输中,设备就将使用这个新的地址。

5.主机获取所有设备的配置描述符。

6.在得到配置描述符等一系列信息后,主机就给该设备分配配置值。

这样,设备就完成了配置,并处于配置态。

所有接口和端点的属性也得到了主机的确认。

接下来,设备就可以从端口上获取其要求的最大电流数。

也就是说,这个USB己经可以开始使

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1