基于USB传输的数据采集及处理系统毕业设计_第1页
基于USB传输的数据采集及处理系统毕业设计_第2页
基于USB传输的数据采集及处理系统毕业设计_第3页
基于USB传输的数据采集及处理系统毕业设计_第4页
基于USB传输的数据采集及处理系统毕业设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、洛阳师范学院毕业设计2013届本科毕业论文(一号黑体居中)基于USB传输的数据采集及处理系统毕业设计院 (系) 名 称物理与电子信息学院(小三号黑体)专 业 名 称物理学(小三号黑体)学 生 姓 名张三丰(小三号黑体)学 号090514111(小三号Times New Roman)指 导 教 师何大壮教授(小三号黑体)完 成 时 间2013年5月8日(小三号黑体)目录摘要I第1章:绪论11.1 引言11.2课题背景11.3主要工作2第2章USB简介和数据采集原理32.1USB简介32.2数据采集的原理7第3章 整体系统方案的选定93.1方案构思93.2方案论证9第4章 数据采集系统的硬件设计1

2、14.1 系统硬件的结构114.2 接口硬件设计114.3 MCU外接电路12第5章 器件介绍155.1 C8051F330芯片155.2 CH375芯片16第6章 系统软件设计186.1数据采集模块的设计186.2 USB设备驱动程序开发186.3设备固件设计216.4 设备应用程序设计22致谢30参考文献31第1章:绪论1.1 引言数据采集就是将被测对象(外部世界、现场)的各种参量(可以是物理量也可以是化学量、生物量等)通过各种传感元件做适当转换后,再经信号调理、采样、量化、编码、传输等步骤,最后送到控制器进行数据处理或存储纪录的过程。控制器一般均由计算机承担,所以说计算机是数据采集系统的

3、核心,它对整个系统进行控制,并对采集的数据进行加工处理。用于数据采集的成套设备称为数据采集系统(Data Acquisition System,DAS)。数据采集系统的好坏取决于他的精度和速度。在保证精度的情况下尽可能的提高速度以满足实时采样、实时处理、实时控制的要求。数据采集监测已成为日益重要的检测技术,广泛应用于工农业等。数据采集是工业控制等系统中的重要环节,通常采用一些功能相对独立的单片机系统来实现,作为测控系统不可缺少的部分,数据采集的性能特点直接影响到整个系统。生产过程中,这一系统可对现场的工艺参数进行采集、监视和记录,为提高产品质量,降低生产成本提供信息和手段。在科学研究中应用该系

4、统可以获得大量动态是研究瞬间物理过程的重要手段,也是获取科学奥秘的重要手段之一。总之无论在哪个领域,数据采集系统,应用的越及时,工作效率就越高,获得的经济利益就越大。现代工业生产和科学研究对数据采集的要求日益提高。在许多场合要求数据采集系统向便携化方向发展,要求系统具有体积小、功耗低、传输速率快、使用方便灵活等特点。在数据采集系统中,如何节省电能以使系统工作时间更长,如何通信才能使系统数据传输速度更快,已经成为系统开发过程中考虑的主要内容。1.2课题背景在数据采集系统中,传统的外设与主机的通信口一般采用ISA、PCI、1394等标准,基于这些接口的产品,安装麻烦,价格昂贵,并受计算机插槽数量、

5、地址中断资源限制,且可扩展性差,USB的出现,很好地解决了以上问题。 USB作为一种新型的串口通信标准,具有较高的传输速率,可扩展性好,采用总线供电,使用灵活。它共有4种传输模式:控制传输、同步传输、中断传输、批量传输,以适应不同设备的需要。 信息技术与电子技术的迅猛发展,使得计算机和外围设备也得到飞速发展和应用。过去人们单纯追求计算机与外设之间的传输速度,现在纠错能力和操作安装的简易性也成为人们关注的目标。USB通讯技术的出现,使高传输速度、强纠错能力、易扩展性、方便的即插即用,有机的结合在一起1.3主要工作 本论文所设计的数据采集系统是在单片机C8051F330控制下进行数据采集,并通过沁

6、恒公司的USB 总线接口芯片CH375上传给PC机进行分析、显示和存盘。该系统用传统的USB总线取代了RS232串行总线,通过对USB协议和设备构架的充分理解,对以单片机C8051F330和USB接口芯片CH375为主的数据采集系统进行了硬件设计和软件编程,并在此设计的基础上给出相应的原理图。硬件设计主要解决的是CH375与单片机的接口电路的设计。软件设计可分为三部分:一是充分了解CH375的主要功能特点,为满足CH375在USB上的最大传输速率而编写固件程序;二是在充分了解WDM驱动程序的基础上编写USB的设备驱动程序;三是编写出界面友好、具有强大的数据处理和分析能力的应用程序。第2章USB

7、简介和数据采集原理2.1USB简介2.1.1USB的主要特点通用串行总线(Universal Serial Bus,简称USB)是康柏、微软、IBM、DEC等公司为了解决传统总线的不足推出的一种新型串行总线接口规范通用串行总线。通用串行总线是连接外部设备的一个串口总线标准,在计算机上使用广泛,但也可以用在机顶盒和游戏机上,补充标准(On-The-Go)使其能够用于在便携设备之间直接交换数据。USB的主要特点如下:1. 速度快。USB速度比平行埠并联总线(Parellel Bus,例如EPP、LPT)与串联埠总线(Serial Port,例如RS-232)等传统电脑用标准总线快上许多。原标准中U

8、SB 1.1 的最大传输带宽为 12 Mbps。 USB 有全速和低速两种方式,主模式为全速模式,速率为12Mbps,从而使一些要求高速数据的外设,如:高速硬盘、摄像头等。另外为了适应一些不需要很大吞吐量但是有很高实时性要求的设备,如鼠标、键盘、游戏杆等,USB还提供低速方式,速率为1.5Mbps。如表2-1所示。 新推出的USB2.0协议提供最高达480Mbps的数据传输速率可以适应各种不同类型的外设。性能应用特性低速:交互设备、10-20kb/s键盘、鼠标、游戏棒低价格、热插拔、易用中速:电话、音频、压缩视频、500kb/s-10Mb/sISBN、PBX、POTS低价格、易用性、动态插拔、

9、限定带宽和延迟高速:音频、磁盘、25-500Mb/s音频、磁盘高带宽、限定延迟、易用性表2-1 USB使用分类表2. 支持热插拔。 所有的USB 设备可以随时的插入和拔离系统,USB 主机能够动态的识别设备的状态,并自动给接入的设备分配地址和配置参数,添加、删除设备完全不用关闭计算机。3. 易于扩展。USB使用的是一种易于扩展的树状结构,通过使用USB Hub扩展可连接多达127个外设。标准USB电缆长度为3米(低速为5米)。通过Hub或中继器可以使外设距离达到30米。4. 使用灵活。 USB共有4种传输模式:控制传输(control),步传输(synchronization)、中断传输(in

10、terrupt)、批量传输(bulk),适应不同设备的需要。5. 能够采用总线供电。 普通使用串口、并口的设备都需要单独的供电系统,而USB设备则不需要,因为USB接口提供了内置电源, USB电源能向低压设备提供最大5V, 500mA 的电源,从而降低了这些设备的成本并提高了性价比。6. 实现成本低。 USB对系统与PC的集成进行了优化,适合于开发低成本的外设。2.1.2USB的互连USB的互连是指USB设备与主机之间进行连接和通信的操作,主要要包括以下几方面:·总线的拓扑结构:USB设备与主机之间的各种连接方式;·内部层次关系:根据性能叠置,USB的任务被分配到系统的每一

11、个层次;·数据流模式:描述了数据在系统中通过USB从产生方到使用方的流动方式;·USB的调度:USB提供了一个共享的连接。对可以使用的连接进行了调度以支持同步数据传输,并且避免的优先级判别的开销。2.1.3 USB的主机图2-1展示了USB通信模型之间基本的信息流与互连关系。主机与设备都被划分成不同的层次。由图2-1可见,主机上垂直的箭头是实际的信息流。设备上对应的接口是基于不同实现的。在主机与设备之间的所有通信最终都是通过USB的电缆进行,然而,在上层的水平层之间存在逻辑的主机-设备信息流。主机上的客户软件和设备功能部件之间的通信是基于实际的应用需求及设备所能提供的能力。

12、客户USB系统主机控制器功能部件USB设备USB总线接口逻辑的信息流实际的信息流 图2-1 通信模型层次关系图USBD提供了供操作系统组件特别是设备驱动程序访问设备的一组接口。这些操作系统组件只能通过USBD来访问USB。USBD的具体实现基于不同的操作系统。一个USBD可以访问一个或多个HCD,而一个HCD可能与一个或多个主机控制器相连。某些操作系统可能允许对USBD的初始化进行一些设置。从客户的观点来看,与客户进行通信的USBD管理着所有连接着的USB设备。2.1.4 USB的物理层USB的物理接口包括4根线,分别为电源线,数据线+,数据线-,地线。其中D+和D-是一对差模的信号线,而电源

13、线和地线提供了5V的电源,它可给一些设备(包括Hub)供电。USB信号线在高速模式下必须使用带有屏蔽的双绞线,而且最长不能超过5m。而在低速模式时中可以使用不带屏蔽或不是双绞的线,但最长不能超过30m。传输距离的限制主要是由于信号衰减原因,为了提供信号电压保证以及与终端负载相匹配,在电缆的每一端都使用了不平衡的终端负载,这种终端负载也保证了能够检测外设与端口的连接或分离,并且可以区分高速与低速设备。本文设计的基于USB总线的数据采集系统正是充分地利用了USB 总线的上述优点,从而有效地解决了传统数据采集系统的缺陷。很方便地就能够实现低成本、高可靠性、实时的数据采集,适用于对瞬态信号进行采集和处

14、理。2.1.5USB协议简介USB总线协议是以Intel为主,并由Compaq,Microsoft,IBM,DEC,NorthernTelecom以及日本NEC共7家公司共同制定的串口标准,1994年11月制订了第一个草案,1996年2月公布了USB规范版本1.0,1999年2月发布的USB规范版本2.0草案。要对USB传输有个清楚的了解首先必须要了解两个基本概念:端点和管道。(l)端点 所有的传输都是传送到设备端点,或是从设备端点发出。端点其实就是一个能够储存多个字节的缓存器。在USB规范中,端点被定义为“USB设备中唯一可寻址部分,是主机与设备之间通信流的来源或去向。” 每个端点所需的唯一

15、地址是由端点编号和方向组成的。编号范围可以是0-15,方向则基于主机的角度:创表示朝向主机,OUT表示远离主机。配置为执行控制传输的端点必须在两个方向上都能传输数据。所以控制端点实际上包含一对共享一个端点编号的创和OUT端点。 每个设备都必须将端点0配置为控制端点。其他传输类型则仅以一个方向发送数据。一个单一的端点编号既可以支持IN端点地址,也可以支持OUT端点地址。除了端点0外,中速设备还可以再增加30个端点(1-15,每个都既支持IN,又支持OUT)。低速设备仅限于再增加2个端点,采取任何方向组合。 端点的特性,主要包括数据传输方式(用于IN事务的端点、OUT事务的端点和SETUP事务的端

16、点等)、总线访问频率、带宽、端点号(由USB接口芯片定义)和数据包最大容量等。除了端点0(用作控制传输端点,默认)外,端点必须在设备被主机配置后才能使用。(2)管道 管道(PIPE),并不像端点那样具有实在的意义。它只是一种逻辑上的概念,它是指主机与设备端点之间的连接。管道就是数据传输的通道,代表了主机的数据缓冲区与设备端点之间交换数据的能力。设备被配置后,端点就可以使用了,因此管道也就存在了。每个设备都拥有一个使用端点0的默认控制管道(Default Contro1 PIPE)。 USB规范根据信息是单向传输还是双向传输,将管道定义为流管道和消息管道。控制传输是唯一使用双向消息管道的传输,其

17、他的传输则是使用单向的流管道。 在消息管道中,每一个传输都以一个包含请求的设置事务开始。要完成这个传输,主机与设备可能交换数据和状态信息,或是设备只传送状态信息。如果设备支持某个请求,它会执行该请求的动作。如果设备不支持该请求,它会用一个表示不支持的码来响应。USB规范并没有定义流管道的数据格式,设备只是接收传来的数据,主机的软件或是设备的固件再做适当的处理。 此外,还有一种特殊的管道-控制管道,为了与端点0的特殊性配合,因而这里单独提出来。所以设备必须支持端点0以构筑控制管道。通过控制管道,主机可以获得描述USB设备的完整信息,包括设备类型、电源管理、配置及端点描述等。作为USB即插即用的典

18、型体现,只要设备连接到主机上,端点就可以被访问,即与之相应的管道也就存在了。USB是一种支持在USB主机和USB设备之间进行串行数据传输的通信协议。主机作为总线的主叫方,采用两种信令模式:全速模式12Mb/s和低速模式1.5Mb/s。USB使用四种数据传输方式:控制传输(control)、中断传输(interrupt)、批量传输(bulk)及等时传输(isochronous)。其中控制模式主要用于控制指令传输及USB规范的实现,等时传输主要用于音频及视频传输。USB通过两次总线列举(Enumeration and Renumertion)来实现设备识别以及驱动程序析加载。其具体过程为:USB设

19、备连到主机后,主机依据USB规范在特定地址通过端口0(endpoint0)与外设通信,并将外设视为默认设备。外设与主机通信将其6设备标识(DID、PID、VID)发给主机进行第二次总线列举。主机根据设备标识,加载相应设备驱动程序,重新分配地址,并将控制权转交给外设固件(firmware),通过固件与设备驱动程序及主机应用程序的交互通信,来实现外设的功能。2.2数据采集的原理2.1.1概述在计算机广泛应用的今天,数据采集技术是信息采集科学的一个重要组成部分。数据采集技术是信息获取的主要手段,它随着微电子技术和计算机技术的进步而得到迅速发展。数据采集,是指从传感器和其它待测设备等模拟和数字被测单元

20、中自动采集信息的过程。数据采集系统是结合基于计算机的测量软硬件产品来实现灵活的、用户自定义的测量系统。2.2.2 数据采集原理简介采样频率、抗混叠滤波器和样本数假设现在对一个模拟信号 x(t) 每隔t时间采样一次。时间间隔t被称为采样间隔或者采样周期。它的倒数 1/t被称为采样频率,单位是采样数 / 每秒。 t=0, t,2 t,3 t 等等,x(t) 的数值就被称为采样值。所有 x(0),xt),x(2t) 都是采样值。如果对信号x(t)采集 N 个采样点,那么x(t)就可以用下面这个数列表示:这个数列被称为信号x(t)的数字化显示或者采样显示。注意这个数列中仅仅用下标变量编制索引,而不含有

21、任何关于采样率(或t)的信息。所以如果只知道该信号的采样值,并不能知道它的采样率,缺少了时间尺度,也不可能知道信号x(t)的频率。 根据采样定理,最低采样频率必须是信号频率的两倍。反过来说,如果给定了采样频率,那么能够正确显示信号而不发生畸变的最大频率叫做恩奎斯特频率,它是采样频率的一半。如果信号中包含频率高于奈奎斯特频率的成分,信号将在直流和恩奎斯特频率之间畸变。采样率过低的结果是还原的信号的频率看上去与原始信号不同。这种信号畸变叫做混叠(alias)。出现的混频偏差(alias frequency)是输入信号的频率和最靠近的采样率整数倍的差的绝对值。图2-2给出了一个例子。假设采样频率fs

22、是100HZ, 信号中含有25、70、160、和510Hz的成分。 幅度 f1 f2 f3 f4 25hz 50hz 160hz 510hz 0 50hz 100hz 500hz 频率 图2-2 说明混叠的例子采样的结果将会是低于奈奎斯特频率(fs/2=50 Hz)的信号可以被正确采样。而频率高于50HZ的信号成分采样时会发生畸变。分别产生了30 、40和10 Hz 的畸变频率 F2、F3和F4 。计算混频偏差的公式是: 混频偏差ABS(采样频率的最近整数倍输入频率) 其中ABS表示“绝对值”,例如: 混频偏差 F2 = |10070| = 30 Hz 混频偏差 F3 = |(2)100160

23、| = 40 Hz 混频偏差 F4 = |(5)100510| = 10 Hz 为了避免这种情况的发生,通常在信号被采集(A/D)之前,经过一个低通滤波器,将信号中高于奈奎斯特频率的信号成分滤去。在图3-3的例子中,这个滤波器的截止频率自然是25HZ 。这个滤波器称为抗混叠滤波器。 采样频率应当怎样设置呢?也许你可能会首先考虑用采集卡支持的最大频率。但是,较长时间使用很高的采样率可能会导致没有足够的内存或者硬盘存储数据太慢。理论上设置采样频率为被采集信号最高频率成分的2倍就够了,实际上工程中选用510倍,有时为了较好地还原波形,甚至更高一些。 通常,信号采集后都要去做适当的信号处理,例如 FF

24、T 等。这里对样本数又有一个要求,一般不能只提供一个信号周期的数据样本,希望有510个周期,甚至更多的样本。并且希望所提供的样本总数是整周期个数的。这里又发生一个困难,有时我们并不知道,或不确切知道被采信号的频率,因此不但采样率不一定是信号频率的整倍数,也不能保证提供整周期数的样本。我们所有的仅仅是一个时间序列的离散的函数 x(n) 和采样频率。这是测量与分析的唯一依据。 第3章 整体系统方案的选定3.1方案构思设计本课题时考虑了三种方案,下面综合比较三个方案的优缺点以便选者最合适的设计方案。3.2方案论证3.2.1 方案一 采用80C51系列的单片机微处器,Philips公司的PDIUSBD

25、12接口芯片和MAXIM公司的MAX122A/D转换芯片来设计本系统。Philips公司的PDIUSBD12接口芯片只支持USB1.1协议,传输速度只有低速(1.5Mbps)和全速(12Mbps),并且它与USB2.0不兼容,不能满足高速的要求。目前来看USB2.0协议已经普及。如果用PDIUSBD12芯片设计该数据采集系统在速度上没有竞争力,那么市场竞争力也不会太强。这个方案中所用的MAX122A/D转换芯片的采样速率较高,得到的数据不能通过USB总线直接传送给主机,因此需要在A/D转换器和主机之间连接数据缓冲器,A/D转换器产生的数据先存储在缓冲器中,当缓冲器数据存满后,通知主机取走数据。

26、另外,如果用这三个芯片设计,可以很明显的看出A/D转换芯片是需要外扩的。那么,整个系统的稳定度和集成度都不高。不能满足现代工业的发展需要。该方案的框图如图3-1所示。模 拟信 号单片机模 拟信 号A/D转换 器USB接 口PC机图3-1 方案框图3.2.2方案二采用80C51系列的单片机微处器和 National Semiconductor公司的专用USBN9602来设计本系统。USB接口芯片采用National Semiconductor公司的一种专用芯片USBN9602。该芯片内部集成微处理器接口、 FIFO存储器、时钟发生器、串行接口引擎(SIE)、收发器、电压转换器,支持DMA、微波接

27、口。模拟输入信号经过A/D转换器,A/D转换器经光电隔离后串行输出到移位寄存器,移位寄存器将此结果转为8位并行数据,89C51系统通过8位的并行接口传送A/D转换器采集的数据,存储在FIFO存储器中;一旦FIFO存满,SIE立刻对数据进行处理,然后89C51系统将数据从FIFO存储器中读出,由收发器通过数据线(D+、D-)送至主机。此方案的主要缺点是系统的稳定性差。3.2.3方案三采用C8051F330混合信号 ISP FLASH微控制器和通用的CH375接口芯片来设计本系统。C8051F330把A/D转换器和微处理器集成在同一芯片上,免去了设计A/D转换器和微处理器接口的麻烦,同时增强了系统

28、的稳定性。另外,CH375不仅支持USB1.1协议还兼容USB2.0,在速度上可达到480Mbps,适应日益增加的速度要求。本方案集成度高,稳定性好,在速率上也有很好的扩展性。并且芯片的价格适中可以满足对性价比的需求。所以,在此次设计中采用本方案。本方案的方案框图如图3-2所示.C8051F330微控制器多路模拟信号CH375接 口芯 片PC 图3-2 方案三框图 第4章 数据采集系统的硬件设计 4.1 系统硬件的结构基于USB总线的实时数据采集系统硬件组成包括模拟开关、A/D转换器、单片机、USB接口芯片,该系统能够实现数据的自动采集。主要包括4个组成部分:中央处理器选用C8051F330芯

29、片,完成各部分控制功能和USB传输协议;主要完成数据采集,并读入MCU处理;复位电路完成对MCU的上电复位和电源电压监视;电源电路主要为各部分提供要求的电源;外设与主机间的通信电路采用USB接口。4.2 接口硬件设计CH375 与C8051F330接口电路是该系统的重要部分。C8051F330有17个I/O引脚。每个端口引脚都可以被配置为模拟输入或数字I/O。被选择作为数字I/O的引脚还可以被配置为推挽或漏极开路输出。 数字交叉开关允许将内部数字系统资源映射到端口I/O引脚。可通过设置交叉开关控制寄存器将片内的计数器/定时器、串行总线、硬件中断、比较器输出以及微控制器内部的其它数字信号配置为出

30、现在端口I/O引脚。这一特性允许用户根据自己的特定应用选择通用端口I/O和所需数字资源的组合。CH375并口信号线包括:8 位双向数据总线 D7D0、读选通输入引脚 RD#、写选通输入引脚 WR#、片选输入引脚CS#、中断输出引脚INT#以及地址输入引脚A0。通过被动并行接口,CH375芯片可以很方便地挂接到单片机、DSP、MCU的系统总线上,并且可以与多个外围器件共存。 CH375芯片的RD#和WR#可以分别连接到单片机的读选通输出引脚和写选通输出引脚。CS#由地址译码电路驱动,用于当单片机具有多个外围器件时进行设备选择。INT#输出的中断请求是低电平有效,可以连接到单片机的中断输入引脚或者

31、普通 I/O引脚,单片机可以使用中断方式或者查询方式获知中断请求。地址输入引脚A0可以连接普通的I/O引脚。接口电路的设计如图4-1所示。 图4-1 接口电路4.3 MCU外接电路4.3.1外部时钟电路该系统使用晶体谐振器作为 MCU的外部振荡源,晶体谐振器必须并接到 XTAL1和 XTAL2 引脚,还必须在 XTAL1 和 XTAL2 引脚之间并接一个 10M的电阻。外部晶体和陶瓷谐振需要较长的起动时间,应待其稳定后才可用作系统时钟。系统时钟可以在内部振荡器和外部振荡器之间自由切换,只要所选择的振荡器被使能并稳定运行。当选择内部振荡器作为系统时钟时,外部振荡器仍然可以给外设提供时钟。外部时钟

32、电路如图4-2所示。图4-2 外部时钟电路4.3.2外部复位电路C8051F330外部/RST 引脚提供了使用外部电路强制复位手段。在/RST 引脚上加一个低电平有效信号将导致 MCU进入复位状态。外部复位电路如图4-3所示。图4-3 外部复位电路4.3.3电压基准电路C8051F330的电压基准 MUX可以被配置为连接到外部电压基准。端口引脚 P0.0 用作外部 VREF 输入。电压基准电路如图4-4所示。图4-4 电压基准电路4.3.4保护电路在设计具体的电路时应在C8051F330的前面加分压电阻,以保证C8051F330在工作电压范围内正常工作。考虑到实际中可能出现的情况,如果出现负电

33、压或过载电压,可能会损坏C8051F330,所以应该在C8051F330前面加嵌位保护电路。保护电路如图4-5所示。图4-5 保护电路4.3.5系统总原理图整个数据采集系统设计方案的电路图如图4-6所示。电容 C4用于 CH375 内部电源节点退耦,C4 是容量为 0.01F 的独石或高频瓷片电容,如果对EMI没有要求那么可以省掉C4。电容C5和 C6用于外部电源退耦,C5是容量为 0.1F的独石或高频瓷片电容。晶体 X1、电容 C1 和 C2 用于 CH375 的时钟振荡电路。USB-HOST 主机方式要求时钟频率比较准确,X1的频率是12MHz±0.4,C1和C2 是容量约为 1

34、5pF 的独石或高频瓷片电容。 如果电源上电过程较慢并且电源断电后放电时间较长,那么 CH375将不能可靠复位。可以在RSTI引脚与VCC之间跨接一个容量为0.47F 的电容 C3,同时可以减少干扰。图4-6 系统总电路图 第5章 器件介绍5.1 C8051F330芯片C8051F330器件是完全集成的混合信号片上系统型 MCU。下面列出了它的一些主要特性: *高速、流水线结构的 8051 兼容的 CIP-51 内核(可达 25MIPS)*全速、非侵入式的在系统调试接口(片内) *真正 10 位 200 ksps的 16 通道单端/差分 ADC,带模拟多路 *10 位电流输出 DAC *高精度

35、可编程的 25MHz 内部振荡器 *8KB 可在系统编程的 FLASH 存储器 *768 字节片内 RAM *硬件实现的SMBus/ I 增强型UART和增强型SPI串行接口*4 个通用的 16 位定时器 *具有 3 个捕捉/比较模块和可编程计数器/定时器阵列 *片内上电复位、VDD监视器和温度传感器 *片内电压比较器 *17 个端口 I/O(容许 5V输入) 具有片内上电复位、VDD 监视器、看门狗定时器和时钟振荡器的 C8051F330 是真正能独立工作的片上系统。FLASH 存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新 8051 固件。用户软件对所有外设具有完全

36、的控制,可以关断任何一个或所有外设以节省功耗。片内Silicon Labs二线(C2)开发接口允许使用安装在最终应用系统上的产品MCU进行非侵入式(不占用片内资源)、全速、在系统调试。调试逻辑支持观察和修改存储器和寄存器,支持断点、单步、运行和停机命令。在使用C2进行调试时,所有的模拟和数字外设都可以全功能运行。两个C2接口引脚可以与用户功能共享,使在系统调试功能不占用封装引脚。每种器件都可在工业温度范围内用2.7V3.6V的电压工作。端口I/O和/RST引脚都容许5V的输入信号电压。C8051F330芯片管脚图如图5-1所示。 图5-1 C8051F330芯片管脚图 5.2 CH375芯片C

37、H375是一个USB总线的通用接口芯片, 支持USB-HOST 主机方式和 USB-DEVICE/SLAVE 设备方式。在本地端,CH375具有 8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU/MPU 等控制器的系统总线上。在USB 主机方式下,CH375还提供了串行通讯方式,通过串行输入、串行输出和中断输出与单片机/DSP/MCU/MPU 等相连接。 CH375 的 USB 设备方式与 CH372 芯片完全兼容,CH375 包含了 CH372 的全部功能。 CH375的USB主机方式支持常用的USB全速设备,外部单片机可以通过CH375按照相应的 USB

38、 协议与 USB 设备通讯。CH375 还内置了处理 Mass-Storage 海量存储设备的专用通讯协议的固件,外部单片机可以直接以扇区为基本单位读写常用的 USB 存储设备(包括 USB 硬盘/USB 闪存盘/U 盘)。 CH375的特点 低速和全速USB-HOST 主机接口,兼容 USB V2.0,外围元器件只需要晶体和电容。 低速和全速USB设备接口,完全兼容CH372 芯片,支持动态切换主机与设备方式。 主机端点输入和输出缓冲区各64字节,支持 12Mbps 全速 USB 设备和 1.5Mbps 低速设备。 支持USB 设备的控制传输、批量传输、中断传输。 自动检测USB设

39、备的连接和断开,提供设备连接和断开的事件通知。 内置控制传输的协议处理器,简化常用的控制传输。 内置固件处理海量存储设备的专用通讯协议,支持Bulk-Only 传输协议和 SCSI、UFI、RBC 或等效命令集的USB存储设备(包括USB 硬盘/USB 闪存盘/U 盘/USB 读卡器)。 通过U盘文件级子程序库实现单片机读写USB 存储设备中的文件。 并行接口包含8位数据总线,4线控制:读选通、写选通、片选输入、中断输出。 串行接口包含串行输入、串行输出、中断输出,支持通讯波特率动态调整。 支持5V电源电压和3.3V电源电压,支持低功耗模式。 采用SOP-28无铅封装, 兼容Rohs, 提供

40、SOP28到 DIP28的转换板, 引脚基本兼容CH374芯片。  CH375芯片的RD#和WR#可以分别连接到单片机的读选通输出引脚和写选通输出引脚。CS#由地址译码电路驱动,用于当单片机具有多个外围器件时进行设备选择。INT#输出的中断请求是低电平有效,可以连接到单片机的中断输入引脚或者普通 I/O引脚,单片机可以使用中断方式或者查询方式获知中断请求。 当WR#为高电平并且CS#和RD#及A0都为低电平时,CH375 中的数据通过 D7D0输出;当 RD#为高电平并且CS#和WR#及A0都为低电平时,D7D0上的数据被写入 CH375 芯片中;当 RD#为高电平并且CS#和WR#

41、都为低电平而A0为高电平时,D7D0 上的数据被作为命令码写入 CH375 芯片中。CH375芯片具有通用的被动并行接口,可以直接连接多种单片机、DSP、MCU等。CH375 的TXD引脚通过1K左右的下拉电阻接地或者直接接地,从而使CH375工作于并口方式。第6章 系统软件设计 系统软件包括USB设备驱动程序、设备固件、应用程序。其中设备固件是整个系统的核心,它控制着芯片CH375采集数据,接受并处理USB驱动的请求和应用程序的控制指令。6.1数据采集模块的设计模拟输入信号经过A/D转换器变为数字信号,A/D转换器经串行输出到移位寄存器,移位寄存器将此结果转为8位并行数据,微处理系统通过8位

42、的并行接口传送A/D转换器采集的数据,存储在FIFO存储器中;CH375提供的FIFO为64字节,一旦FIFO存满,SIE立刻对数据进行处理,然后微处理系统将数据从FIFO存储器中读出,由收发器通过数据线(D+、D-)送至主机。在整个数据采集过程中重复上述过程。USB数据采集系统的数据采集模块的设计流程图如图6-1所示。模拟信号从ADC读采样 值存储数据 至FIFO设定标志位status重新开启A/D模块并返回图 6-1 数据采集流程图6.2 USB设备驱动程序开发设备驱动程序是一个软件组件,介于硬件与用户应用软件之间,为它们之间的通信提供桥梁。设备驱动程序主要是提供操作系统与硬件设备的接口,

43、支持用户及其应用程序要求的信息流。对于该设备驱动程序的编写,我们采用WDM(Windows32 Driver Mode)驱动程序模型,该模型主要有以下特点:1、支持即插即用(PnP)和电源管理。2、提供系统总线驱动程序。3、支持WMI(Windows Management Instrumentation), WDM驱动程序必须支持WMI,一般这种请求是通过IRP_MJ_SYSTEM_CONTROL请求传给PDO的。4、支持类驱动程序/微驱动程序分层结构。WDM驱动程序采用分层结构,可和其它驱动程序相联系,接收建立在其上的驱动程序提供的服务,也可向其它驱动程序发送IRP请求。USB系统驱动程序采

44、用分层结构模型:较高级的USB设备驱动程序和较低级的USB函数层。其中USB函数层由两部分组成:较高级的通用串行总线驱动程序模块(USBD)和较低级的主控制器驱动程序模块(HCD)。它们的层次关系如图6-2所示。 用户应用程序 User HCD模块USBD模块USB设备驱动程序 Kernel USB USB控制器 / 适配器 函数层 USB电缆 图6-2USB系统驱动程序层次关系USB设备驱动程序在本设计中由四个模块实现:初始化模块、即插即用管理模块、电源管理模块以及I/O功能实现模块。初始化模块提供一个入口函数DriverEntry(),所有对各种IRP(I/O Request Packet

45、,IRP请求包)的处理例程都在此入口函数中做出定义。即插即用管理模块实现USB设备的热拔插及动态配置。当硬件检测到USB设备接入时,WindowsXP查找响应的驱动程序,并调用它的DriverEntry例程,PnP管理器调用驱动程序的AddDevice例程,告诉它添加了一个设备;在此处理过程中,驱动程序收到一个设备启动请求(IRP_MN_START_DEVICE)的IRP。同理,当要拔除时,PnP管理器会发出一个设备删除请求(IRP_MN_REMOVE_DEVICE)的IRP,由驱动程序进行处理。通过对这些PnP请求的处理,可支持设备的热插拔和即插即用功能。电源管理模块负责设备的挂起与唤醒。I

46、/O功能实现模块完成I/O请求的大部分工作。若应用程序想对设备进行I/O操作,它便使用Windows API函数,对WIN32子系统进行WIN32调用。此调用由I/O系统服务接收并通知I/O管理器,I/O管理器将此请求构造成一个合适的I/O请求包(IRP)并把它传递给USB设备驱动程序,USB设备驱动程序接收到这个IRP以后,根据IRP中包含的具体操作代码,构造相应的USB请求块并把此URB放到一个新的IRP中,然后把此IRP传递到USB总线驱动程序,USB总线驱动程序根据IRP中所含的URB执行相应的操作(如从USB设备读取数据等),并把操作结果通过IRP返还给USB设备驱动程序。USB设备

47、驱动程序接收到此IRP后,将操作结果通过IRP返还给I/O管理器,最后I/O管理器将此IRP中操作结果返还给应用程序,至此应用程序对USB设备的一次I/O操作完成。6.2.1数据传输控制本数据采集系统有八个数据采集通道,所以需要对数据采集通道进行控制,以便于选取合适通道和进行通道的切换,这些任务就由IOCTL_ChannelControl_Handler(KIrp I)函数完成。采集后的数据通过USB总线传送的计算机的指定缓冲区中,以便于调用和进行处理,所以用IOCTL_GetData_Handler(KIrp I)函数从USB设备获取数据,并将所得数据传递给应用程序。IOCTL_GetDat

48、a_Handler(KIrp I)和IOCTL_GetData_Handler(KIrp I)函数代码如下:NTSTATUS DataCollectDevice:IOCTL_ChannelControl_Handler(KIrp I)T.Trace(TraceInfo, _FUNCTION_"+. IRP %pn", I);NTSTATUS status = STATUS_SUCCESS;ULONG inputSize = I.IoctlInputBufferSize();ULONG outputSize = I.IoctlOutputBufferSize(); PVOID

49、 inputBuffer = I.IoctlBuffer(); PVOID outputBuffer = I.IoctlBuffer();/ TODO: Validate the parameters of the IRP. if (FALSE)status = STATUS_INVALID_PARAMETER;I.Information() = 0;else/ TODO: copy dataI.Information() = 0;T.Trace(NT_SUCCESS(status)?TraceInfo:TraceWarning, _FUNCTION_"-. IRP %p, STAT

50、US %xn", I, status);return status;NTSTATUS DataCollectDevice:IOCTL_GetData_Handler(KIrp I)T.Trace(TraceInfo, _FUNCTION_"+. IRP %pn", I);NTSTATUS status = STATUS_SUCCESS;ULONG inputSize = I.IoctlInputBufferSize();ULONG outputSize = I.IoctlOutputBufferSize(); PVOID inputBuffer = I.IoctlBuffer(); PVOID outputBuffer = I.IoctlBuffer();/ TODO: Validate the parameters of the IRP. if (FALSE)status = STATUS_INVALID_PARAMETER;I.Information() = 0;else/ TODO: copy dataI.Information() = 0;T.Trace(NT_SUCCESS(status)?TraceInf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论