(硕士论文)基于USB接口的数据采集系统设计

更新时间:2023-07-17 09:48:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

USB接口

西安理工大学硕士学位论文

基于USB接口的数据采集系统设计

姓名:吴超申请学位级别:硕士专业:测试计量技术及仪器

指导教师:高宗海

20080301

USB接口

摘要

论文题目:基于IJSB接口的数据采集系统设计学科专业:测试计量技术与仪器研究生:吴超

签名:导师姓名:高宗海教授

签名:

捅要:

随着现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,基于USB接口的数据采集平台的优势日益突显出来。目前基于USB的数据采集卡已经成为一种流行趋势。

本文以基于USB接口的数据采集平台为研究对象,选取了通用USB接口芯片PDIUSBDl2,A/D转换芯片MAXl166和89C52单片机作为系统核心芯片,设计并研制了一套基于USB接口的数据采集硬件板卡,并开发了相应的单片机板卡程序、PC机底层驱动及VC++开发环境下的用户应用程序,实现了从底层单片机到以WindowsXP操作系统为基础的PC机的USB双向通信,最终构建了一个基于USB接口的数据采集平台。

本文重点内容主要分为2个部分:硬件设计部分和软件开发部分。

硬件电路设计部分主要论述了:基于ATEML半导体公司89C52芯片的时钟电路,电源电路,按键复位电路设计;基于PHILIPS半导体公司PDIUSBDl2芯片的USB接口电路及基于MAXIM半导体公司MAXll66芯片的A/D采集电路,基于MAX232芯片的串口电路的设计,最后介绍整体硬件电路的调试过程。

软件开发部分主要论述了:基于KEIL开发环境底层固件程序设计;基于MICROSOFT

DDK的Windows

XP

WDM上位机驱动程序设计和通过使用SOFTICE工具对其调试的过

程,最后介绍了基于VC++开发环境的用户应用程序设计。

本文的研究设计成果为今后研究基于USB接口的测控系统及相关项目奠定了坚实的基础,达到了课题的研究目的。

关键字:USB;数据采集;软硬件设计

USB接口

AbStract

Title:DATA

ACQUISITIONSYSTEM

BASEDONUSBINTERFACE

DESIGN

Major:Technology&Instrumentation

Name:Chao

ofTestingandMeasuring

Wu

SignatureSignature

Supervisor:Prof.ZonghaiGao

fieldsofmodem

industrialwithUSB

and

Abstract

With

theincreasing

demands

on

dataacquisitionin

the

productions

and

scientificresearches,thesuperiorityofdata

acquisitionplatforms

obviousinsome

(Universal

Serial

Bus)interface

hasbecomemoreandmore

hi曲speed

lli曲precision

measurementsystemssuchastransientsignaldetectingandimageprocessing

systems.TheusageofUSB—baseddataacquisitioncardhasalreadybecome

present.

Thisthesisaimstoconstruct

dataacquisitioncard

prevalenceat

dataacquisition

platformbasedonUSBinterface.Firstly,a

MAX1166and

the

user

based

is

Oll

USBinterfacechipPDIUSBD12,A/Dchip

layers

microcontroller

corresponding

89C52

developed.Secondly,three

ofprograms,namely

MCUprogram

forcard,PCbuttomdriversforUSBinterface,andPC

applicationprogram

underVC++developmentenvironment

arc

developed,whichWindows

realize

bidirectionalcommunicationfromlowlayer

MCU

on

toPCbaesdOil

XPoperating

system.Finally,adataacquisitionplatformbased

Themainpartsofthisthesis

USBinterfaceisbuiltsucessfully.

comprisetwoimportant

contents,namely

based

on

hardware

and

software

design.The

based

hardwaredesignintroducestheclockcircuit

on

89C52,power

supplycircuit,A/Dacquisitioncircuitbasedinterfacecircuit

on

MAXl

166,keystrokeresetcircuit,USB

PDIUSBD12andserial

circuit.

The

software

design

introducesfirmwareXP

program

013

design

based

on

KEILdevelopment

environment,WINDOWS

This

thesislays

WDM

driverbasedMICROSOFT

DDK

and

on

debugusingVC.

SOFTICEtoolforthedriver.Finally,userapplication

design

isintrducedbased

solidfoundationforthefuturestudyand

projects

on

dataacquisition

systembasedonUSBinterface,whichachievesthepurposeofsubjectresearch.

Key

Words:USB,DataAcquisition,SoftwareandHardwareDesign

USB接口

前言

刖昌

随着现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,基于USB接口的数据采集平台的优势日益突显出来。目前基于USB的数据采集卡已经成为一种流行趋势。

本文以基于USB接口的数据采集平台为研究对象,选取了在USB数据采集卡中被广泛应用的PDIUSBDl2芯片、89C52芯片和MAXll66芯片为核心,系统实现了以USB

数据采集卡及WINDOWSXP操作系统为基础构建一个基于USB接口的数据采集平台。

本文共分六章,各章内容安排如下:

第1章,简单介绍了USB总线的概念、发展背景、优点、USBl.1协议及系统构成。同时,本章也就课题的主要内容和意义作了简单的阐述;

第2章,系统硬件电路设计。本章首先对选定芯片和工作原理做了介绍,然后详细说明了如何围绕选定芯片进行硬件电路设计。同时,本章也给出了在实验中对硬件电路的调试过程;

第3章,本章介绍了USB数据采集平台的底层软件设计;t

第4章,本章详细介绍了USB数据采集平台系统的客户端驱动程序的设计。包括了驱动程序的基本相关概念,驱动程序的编译环境设置及驱动程序的编写;

第5章,上位机应用程序设计;第6章,系统整体测试。

USB接口

独创性声明

秉承祖国优良道德传统和学校的严谨学风郑重申明:本人所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的成果。尽我所知,除特别加以标注和致谢的地方外,论文中不包含其他人的研究成果。与我一同工作的同志对本文所研究的工作和成果的任何贡献均已在论文中作了明确的说明并已致谢。

本论文及其相关资料若有不实之处,由本人承担一切相关责任

论文作者签名:.显袁釜

。秀年弓月“日

学位论文使用授权声明

本人幺.趁

.在导师的指导下创作完成毕业论文。本人已通过论文的答辩,

并已经在西安理工大学申请博士/硕士学位。本人作为学位论文著作权拥有者,同意授权西安理工大学拥有学位论文的部分使用权,即:1)已获学位的研究生按学校规定提交印刷版和电子版学位论文,学校可以采用影印、缩印或其他复制手段保存研究生上交的学位论文,可以将学位论文的全部或部分内容编入有关数据库进行检索:2)为教学和科研目的,学校可以将公开的学位论文或解密后的学位论文作为资料在图书馆、资料室等场所或在校园网上供校内师生阅读、浏览。

本人学位论文全部或部分内容的公布(包括刊登)授权西安理工大学研究生部办

理。

(保密的学位论文在解密后,适用本授权说明)

论文作者签名:差&

导师签名:

。易年3月l6日

USB接口

绪论

1绪论

1.1背景介绍

随着计算机的普及,在工业生产中用计算机来控制外设实现在线检测,监测已经成为一种趋势。因此对数据采集的要求日益提高。通用串行总线USB,是一种快速、灵活的总线接口。与其它通用接口比较,USB接口的特点是易于使用,这也是USB的主要设计目标。作为一种高速总线接口,USB适用于多种设备,比如数码相机、MP3播放机、高速数据采集设备等。易于使用还表现在USB接口支持热插拔,并且所有的配置过程都由系统自动完成,无需用户干预,USBl.1接口支持1.5Mb/s(低速)、12Mb/s(全速)和

高达480Mb/s(USB2.0规范)的数据传输速率,远高于一般的串行总线接口。USB接口

芯片价格低廉,这大大促进USB设备的开发与应用。所以目前基于USB的数据采集卡已经成为一种流行趋势。但目前让有一些问题尚在研究发展之中,如,高速实时同步数据采

集。1.2

USB简介

USB(UniversaI

Serial

Bus)是一种通用串行总线USB是1995年康柏、微软、mM、

DEC等公司为解决传统总线不足而推广的一种新型的快速双向同步传输并可热插拔数据传输总线。该总线接口具有以下优点:

(1)低成本。为了把外设连接到计算机上,USB提供了一种低成本的解决方案,即所有系统的智能机制都驻留在主机并嵌入芯片组中,方便了外设的制造。

(2)可以热插拔。这就让用户在使用外接设备时,不需要重复“关机将并口或串口电缆接上再开机’’这样的动作,而是直接在PC开机时,就可以将USB电缆插上使用。

(3)携带方便。USB设备大多以“小、轻、薄"见长,对用户来说,同样20G的硬盘,USB硬盘比IDE硬盘要轻一半的重量,在想要随身携带大量数据时,当然USB设备会是首要之选。

(4)标准统一。大家常见的是IDE接口的硬盘,串口的鼠标键盘,并口的打印机扫描仪,可是有了USB之后,这些应用外设统统可以用同样的标准与PC连接,这时就有了USB硬盘、USB鼠标、USB打印机。

(5)单一连接器类型。USB定义了一种简单的连接器,仅适用一个四芯电缆即可链接任何一个USB设备。

(6)独立供电。USB通过集线器向设备提供电源,当外设的电源要求电压5v电流小于500mA时,可以直接从USB总线获取电源,这样USB无需专用电源线,从而降低成本。

(7)错误检测和恢复。USB事务处理包括错误检测机制,他们可以确保数据无错

误发送。

USB接口

西安理工大学硕士学位论文

(8)USB系统在设计保持了向上的继承性。

1.3

USBl.1协议简介

USB系统构成

在USB系统中,设备端点作为通信管道的一个终点。如图1.1显示了一个多层次结

1.3.1

构的通信模型,它表明了端点和管道所扮演的角色。在最低一级,USB电缆把主控制器与设备的总线接口连接起来。在第二级,一个控制管道把系统软件与逻辑设备连接起来。在第三级,一捆数据管道把客户软件与一组接口连接起来,这些接口组成设备的功能层。信息实际上是在图中两侧垂直流动m。

主机

USe渔备

l一

I+—◆物理信息流I

。虚拟信台、滤I

图1-1USB的多层次通信模型

Fig.1-1USBCommunication

Mode

1.3.2数据流动

在USB协议中定义了四种数据传输模式,如表1.1所示。它们的区别在于:单个事务能携带的数据量、能否保证特定的周期或延迟、能否自动校正错误。每种传输方式对应特定类型的端点。实际上,给定类型的端点(控制、批量、中断、等时)总是使用对应类

型的传输“1。

表1-1.数据传输类Ⅲ

Tab.1.1dataTransmit

传输类控制

描述

用于发送和接受USB定义的结构化

信息

纠错是

包容量(字节)小于等于8、16、

32、64

延迟保证尽可能不延迟

批量

用于发送或接受小块无结构数据是小于等于8、16、

32、64

中断等时

与批量管道相似

用r发送或接受有周期保证的数据

是不

小于等丁64小丁.等于1023

保证最小速度轮询每帧中的固定部分

USB接口

绪论

在USB中,事务由一个或多个阶段(phase)组成。阶段有令牌(token)、数据(data)、握手(aek)三种类型。根据不同的类型,事务有一个令牌阶段、一个可选的数据阶段、和一个可选的握手阶段组成,如图1—2所示。在令牌阶段,主控制器向所有已配置的设备广播该令牌包。令牌包中含有设备地址,通常还有端点号,仅有被寻址的设备才会处理事务;当事务寻址设备时,任何设备都不读写总线。在数据阶段,数据被放到总线上。对于输出事务,主机把数据放到总线上,而被寻址的设备消耗这些数据。对于输入事务,情况相反,设备把数据放到总线上由主机消耗。在握手阶段,由设备或主机把握手包放到总线上,包中含有状态信息。当设备发出握手包时,ACK包指出成功地接收了信息,NAK包指出忙并且不试图接收信息,STALL包指出事务被正确接收但在逻辑上无效。当主机发送握手包时,它仅能发送ACK包n1。

.◆—————一一个事务——————_

图1-2总线事务的阶段

Fig.1-2BusEventStep

1.3.3

USB标准设备请求

表l之标准设备请求例

Tab.1—2StandardDeviceReqirement

请求代码

0l23456789101l12

符号名

GET——STATUS

描述

获得状态信息清除一个双态特征

(保留)

可能的接受者

任何任何

CLEAR——FEATURE

SE唧ATURE

SET.—ADDRESSGET——DESCRIPTORSET——DESCRIPTOR

设置一个双态特征

(保留)设置设备地址

取设备、配置,或串描述符设置一个描述符(可选)

取当前配置索引设置一个新的当前配置取当前的接口索引使能接口设置

任何

设备设备设备设备设备接口接口

GET——CONFIGURATION

SET——CONFIGURATION

GET——INTERFACE

SET——INTERFACE

SYNCH

FRAME

报告同步帧号(等时)端点

USB接口

西安理工大学硕士学位论文

1.3.4描述符

USB设备硬件中的数据结构称为描述符,它主要作用是可以让主机识别、检测出设备。表1—3列出了不同种类的描述符。每个描述符开始于一个两字节的头,描述符头中指出该描述符的字节长度(包括头)和描述符类型。如果不讨论特殊的串描述符,描述符的长度对于相同的描述符类型是固定的,即所有给定类型的描述符长度相同。在描述符头中保存明确的长度便于描述符将来的扩展。

表1-3描述符表Ⅲ

Tab.I-3DescriptionFlagTable

描述符类型

设备设备配置接口端点

描述描述整个设备

描述整个设备描述设备的一个配置描述配置中的一个接口

描述接口中的一个端点

一个Unicode串,该串片j自然语言描述设备、配置、接口,或端点

描述电源管理能力

电源配置

1.3.5设备描述符

USB设备的描述符是对USB属性的说明。标准USB设备有5种USB描述符,分别是设备描述符,配置描述符,接口描述符,端点描述符和字符串描述符。

每个设备都有一个唯一的设备描述符,它向主机软件标识该设备。主机使用

GET

DESCRIPTOR控制事务直接从设备的0号端点即控制端点读取该描述符。该描述符

在DDK中的定义如下:

typedefstruct_USB_DEVICE_DESCRIPTOR{

UCHARbLength;

UCHARbDescriptorType;

USHOIU’bcdUSB;

UCHARbDeviceClass;UCHARbDeviceSubClass;UCHARbDeviceProtocol;UCHARbMaxPacketSize0;USHORTVid;USHORTPid;

USHORTbcdDevice;UCHAR

iManufacturer;

UCHARiProduct;

USB接口

绪论

UCHARiSerialNumber;UCHARbNumConfigurations;

)USB—DEVICE_DESCRIPTOR, PUSB_DEVICE_DESCRIPTOR;

设备描述符的bLength域应等于18,bDescriptorType域应等于1以指出该结构是一个设备描述符。bcdUSB域包含该描述符遵循的USB规范的版本号(以BCD编码)。现在,设备可以使用值0x0100或Ox0110来指出它所遵循的是1.0版本还是1.1版本的USB规范。bDeviceCiass、bDeviceSubClass、bDeviceProtocoi指出设备类型。可能的设备类代码在USB规范中定义,USB所包括的类代码在表l一4中列出。独立设备类工作组为每个设备类定义子类和协议代码。例如,音频类有控制、流,和MIDI流接口的子类代码。大容量存储类为使用各种端点的数据传输方法定义了协议代码n1。

一般整个设备或仅在接口级指定一个类,但事实上,设备类、子类、和协议代码通常出现在接口描述符中而不是出现在设备描述符中。USB还为特殊类型的设备指定了一个特殊的设备类代码255。厂商可以使用这个代码指出其设备是一个非标准设备,并且在子类和协议域中填入厂商设定的值‘21。

设备描述符的bMaxPacketSizeO域给出了默认控制端点(端点O)上的数据包容量的最大值。每个设备都必须提供0号控制端点,由于USB规范并没有为该端点规定一个单独的端点描述符,所以这个域是唯一描述这个端点的地方。因为这个域在设备描述符的偏移7处,所以即使该端点使用最小的传输容量(8字节)主机也能读到这个域。一旦主机知道了端点0的最大传输容量,它就可以分块读出整个描述符‘21。

Vid和Pid域指定厂商代码和厂商专用的产品标识。bcdDevice指出设备的发行版本号(0x0100对应版本1.O)。当主机软件检测设备时,这三个域决定了主机应该装入哪个驱动程序。USB组织提供厂商代码,厂商提供产品代码‘21。

USB接口

西安理工大学硕士学位论文

表1-4USB设备类代码Ⅲ

Tab.1_4USBDeviceClassCode

符号名

USB——DEVICE——CLASS——RESERVED

类代码

描述

指出类代码存在于接口描述符

USB—DEVICE—CLASs_.AUDIO

操作模拟或数字音频、语音、和其它与声音相关的数字设备

USB—.DEVICE——CLASS——COMMUNICATIONS

电讯设备,如调制解调器、电话、

应答机,等等

USB——DEVICE——CLASSUSB——HUMAN——INTERFACE

USB——DEVICE——CLASS——MONITOR

345

人工接口设备,如键盘、鼠标、

显示器

USB—DEVICE—CLASS_PHYSICAL—INTERFACE

含有实时物理反馈的人工接口

设备,如力反馈游戏杆

USB——DEVICE——CLASS——POWER

执行电源管理的人工接口设备,

如电池、充电器,等等

USB~DEVICE—CLASS』RINTER

USB—DEVICE—CLASs_STORAGE

USB——DEVICE——CLASS——HUB

789

打印机

大容量存储设备,如磁盘和光驱

USBhubs

设备版本号

Microsoft强烈建议厂商在硬件或固件的修订版中增加设备版本号以便于下层软件更新。一般,厂商发行新版本硬件的同时也带来驱动程序的修订版。同样,硬件升级应该使以前用于掩盖硬件错误的软件补丁或过滤器驱动程序无效。系统的自动升级机制在遇到一个版本不明确的硬件时会失败。

iManufacturer、iProduet、和iSerialNumber域指向一个串描述符,该串描述符用人工可读的语言描述设备生产厂商、产品、和序列号。这些串是可选的,0值代表没有描述

串。

最后,bNumConfigurations指出该设备能实现多少种配置。Microsoft规定驱动程序仅工作于设备的第一种配置(1号配置)。

配置描述符

每个设备有一个或多个配置描述符,它们描述了设备能实行的各种配置方式。DDK

中定义的配置描述符结构如下:

typedefstruct——USB——CONFIGURATION——DESCRIPTOR

UCHARbLength;

USB接口

绪论

UCHARbDescriptorType;

USHORTwTotalLength;UCHARbNumInterfaces;UCHARbConfigurationValue;UCHARiConfiguration;UCHARbmAttributes;

UCHARMaxPower;

}USB_CONFIGURATION_DESCRIPTOR,宰PUSB_CONFIGURATIONDESCRIPTOR;

bLength和山DescriptorType域应为9和2,即是一个9字节长的配置描述符。wTotalLength域为该配置描述符长度加上该配置内所有接口和端点描述符长度的总和。通常,主机在发出一个GETDESCRIPTOR请求并正确接收到9字节长的配置描述符后,就会再发出一个GETDESCRIPTOR请求并指定这个总长度。第二个请求把这个大联合描述符传输回来。

bNumInterfaces指出该配置有多少个接口。这个值仅是接口的数量,不包括接口中的替换设置。这个域的目的是允许多功能设备存在,如一个有定位器(类似于鼠标)的键

盘。

bConngurationValue域是该配置的索引值。可以用这个值SET设备置入未配置状态,此时仅有端点0是活动的)

CONFIGURATION

控制请求中选择这个配置。注意设备的第一个配置描述符的索引为1。(选择配置0将把

iConfiguration域是一个可选的串描述符索引,指向描述该配置的Unicode字符串。此值为0表明该配置没有串描述符。

bmAttributes字节包含描述该配置中设备电源和其它特性的的位掩码,见表l一5。一个支持远程唤醒的配置应有远程唤醒属性位。该字节最高两位与MaxPower域一起描述配置中的电源特性。基本上,设置了最高位的配置都同时在MaxPower域中指出要从tJSB总线上获取的最大电流量(单位为2mA)。使用外接电源的配置需要设置自供电属性位。

表I-5.配置属性位‘¨

Tab.1-5ConfigurContributionBit

位掩码

80h40h20h

符号名称

USB—CONFIG—BUs-POWERED

描述废弃应总为1该配置为白供电该配置有远程唤醒特征

USB—CONFlqSELF—POWERED

USB—CONFIG—REMO理肜AKEUP

接口描述符

每个配置有一个或多个接口描述符,它们描述了设备提供功能的接口。

typedef

struct_USB—INTERFACE_DESCRIPTOR{

USB接口

西安JE_z.大学硕士学位论文

UCHARbLength;

UCHARbDescriptorType;UCHARbInterfaceNumber;UCHARbAltemateSetting;UCHARbNumEndpoints;UCHARbInterfaceClass;UCHARbInterfaceSubClass;

UCHARbInterfaceProtocol;UCHARiInterface;

,USBINTERFACEDESCRIPTOR,*PUSBINTERFACEDESCRIPTOR;

bLength和bDescriptorType域应为9和4。

bInterfaceNumber和bAlternateSetting是索引值,用在SET_INTERFACE控制事务

中以指定要激活的接口。这些值可以是任意的,但习惯上,配置中的接口号从0开始,每个接口中的替换设置也是从0开始的。

bNumEndpoints域指出该接口有多少个端点,不包括端点0,端点0被认为是总存在的,并且是接口的一部分。

bInterfaceClass、bInterfaceSubClass、和bInterfaceProtocol域描述了接口提供的功能。一个非0的类代码应该是上面讨论的类代码中的一个,同时子类和协议代码也必须有与该类相类似的含义。这些域不允许有0值。最后,iInterface是一个串描述符的索引,0表示该接口无描述串。

端点描述符

接口可以没有或有多个端点描述符,它们描述了处理事务的端点。DDK中定义的端

点描述符结构如下:

typedefstruct_USB_ENDPOINT_DESCRIPTOR

UCHARbLength;

UCHARbDescriptorType;UCHARbEndpointAddress;UCHARbmAttributes;USHORT

wMaxPacketSize;

UCHARbInterval;

,USBENDPOINTDESCRIPTOR,木PUSBENDPOINTDESCRIPTOR;

bLength和bDescriptorType域应为7和5。bEndpointAddress域编码端点的方向性和端点号。例如,地址值0x82指出该端点是一个端点号为2的IN端点,而0x02地址指出~个端点号为2的OUT端点。除了端点0,两个端点可以有相同的端点号但方向相反。

USB接口

绪论

bmAttributes的低两位指出端点的类型。见表1-6。其余的位保留给将来使用,应设

为0。

表1-6.端点类型代码n1

Tab.1-6EndpointTypeCode

符号名称值

0123

端点类型控制端点等时端点批量端点中断端点

USB—ENDPO哐m二RPE—CONTROL

USB—ENDPOINl婴PE—ISOCHRONOUS

USB—ENDPOIN^RPE—BULK

USB—ENDPOIN\弋NPE—INTERRUPT

种端点的可能值。

wMaxPacketSize值指出该端点在一个事务中能传输的最大数据量,表1.I列出了每

中断端点和等时端点描述符还有一个用于指定循检间隔时间的bInterval域,时间单位为毫秒。这个数指出主机以多长的周期循检这些端点,以查看是否有可能的数据传输。对于中断端点,该值的范围为l到255毫秒,代表两次循检间的最大时间间隔。对于等时端点,该值应该为1,因为帧周期固定为1毫秒,每帧都应该循检。

串描述符

设备、配置、端点描述符都可以包含一个指向人工可读串的指针。串本身以USB串描述符的形式保存在设备中,串字符使用Unicode编码。

typedefstruct_usB——STRING——DESCRIPTOR

UCHARbLength;

UCHARbDescriptorType;

WCHARbString[1];

)USB—STRING_DESCRIPTOR,PUSB—STRING_DESCRIPTOR;

bLength值根据串数据长度可变。bDescriptorType域的值应为3。bString域包含串数据本身。串的空结尾符应包含在描述符长度内。USB设备可以以多种语言支持串描述符。0号串描述符是设备所支持语言的标识符数组,它不是一个真正的串描述符。语言标识与Win32程序中使用的LANGID相同。如果向设备询问串描述符的某种未支持语言的表达,其结果在USB规范中没有规定,所以应该先读取串0数组。

1.3.6

USB设备枚举过程

要主机识别一个USB设备必须经过枚举的过程,主机使用总线枚举来识别和管理必要的设备状态变化。总线枚举过程如下‘2们:

(1)主机检测到有设备插入,总线复位

当设备与主机连接时,主机会检测到一个连接条件并且D+的数据线拉至Ves以上2.5us,主机就开始总线复位。

USB接口

西安理工大学硕士学位论文

(2)主机读取设备描述符

主机使用默认地址读取设备描述符。在这里主机使用地址0对设备的设备描述符进行读取。由于D12的端点0的缓冲区只有16个字节,所以单片机就先发送16个字节设备描述符。当主机接收到这16个字节描述符后,就认为真正有没有设备连接了,即发送1个0字节的数据包到设备作为状态应答。

(3)地址分配

在地址分配阶段里,主机分配给设备一个地址在以后的通讯罩设备就只对这个地址的信息作出应答。

(4)主机从新的地址获取设备描述符

分配好了设备地址后,主机就从新的地址获取设备描述符。由于受D12芯片的限制,设备分两次从端点0把设备描述符发送出去,第一次发送16个字节,第二次发送2个字节。最后主机发送一个字节数据包作为应答。

(5)主机读取配置描述符

主机读完设备描述符后就读取设备配置描述符。(6)读取描述符集合

主机除了读取设备描述符和配置描述符外,还要读取接口描述符和端点描述符。在这里主机使用再次读取配置的方法来读取配置描述符,接口描述符,端点描述符的集合。

(7)设置配置

主机读完描述符后,就需要对设备进行配置,使得设备从地址状态进入配置状态。(8)读取配置状态

主机设置完配置以后,设备即可使用但有时主机会对设备的配置状态进行读取。

1.4基于IJSB接口数据采集系统构成

数据采集系统于3部分组成(如图l一3)分别为:数据采集卡,数据采集卡驱动程序和用户应用程序。

数据采集卡包括系统硬件电路及固件程序,它是本采集系统系统的基础。它用来完成信号的AD转换,并把转换好的信号传给USB接口。

数据采集卡驱动程序完成数据采集卡和应用程序之间的通信,它提供了应用程序与采集卡之间的软件接口,在装入后成为操作系统内核信任的部分,供用户应用程序使用标准的WIN32API函数对硬件进行I/O操作。

用户应用程序是整个采集卡的最高层,直接与用户进行交互。主要功能是与采集卡驱动程序接口来获得数据,并把得到的数据进行处理、显示等操作,同时把用户命令通过驱动程序传递给采集卡,从而控制采集卡的参数设置。

lO

USB接口

绪论

f蠹譬入

数摄浆绽转氍幼挫膨埘产癍捌狂膨

图1-3数据采集系统构成

Fig.1-3DataAcquisitionSystemStructure

1.5课题内容

本课题为研究室的研究项目,旨在研究开发一款目前比较流行的基于USB接口的数据采集卡。本课题分为以下几个主要方面:

(1)熟悉USB协议及体系结构,掌握操作系统知识,学习编写WDM驱动程序(2)完成USB接口数据采集卡硬件电路设计并完成调试。(3)编写底层单片机程序并完成调试。(4)编写WDM驱动程序并完成调试。

(5)完成上位机与下位机通讯接口编程及上位机软件的开发。其中难点是在于对协议的理解、WDM驱动程序的编写及调试。

1.6课题意义

随着USB接口在PC机上已经成为标配以及现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,基于USB接口的数据采集平台的优势日益突显出来。目前在基于USB的数据采集卡已经成为二种流行趋势。但目前让有一些问题尚在研究发展之中,如,高速实时同步数据采集。本课题旨在研究开发一款目前比较流行的基于USB接口的数据采集卡,为今后的大量应用奠定基

础。

USB接口

系统硬件电路设计

2.数据采集系统硬件电路设计

本课题选取了PHILIPS公司的PDIUSBDl2,MAXIM公司的MAXl166和ATEML公司的89C52芯片作为整个采集系统的核心芯片。下文将对这三款芯片进行详细介绍并进行相关硬件电路设计及调试。

2.1主要芯片介绍

2.1.1

PDIUSBDl

2简介

PDⅡ毽BDl2

鼬m抛㈣Ⅸi兰;耋m越雠一淞娜

蚀一阱~一吼一Ⅷ如

图2.1PDIUSBDl2引脚定义

Fig.2-1PDIUSBDl2PinDefinition

PDIUSBDl2是一款飞利浦公司生产的基于USBt.1协议的USB控制器具体器件特性

如下:

(t)符合USBl.1版规范;

(2)高性能USB接口器件,集成了SIE,FIFO储存器,收发器以及电压调整器:(3)符合大多数器件分类规格;

(4)可与任何外部微控制器/微处理器实现高速并行接口(2MB/S);(5)完全自治的直接内存存取(DMA)操作;(6)集成320B多结构FIFO存贮器;

(7)主端点的双缓冲配置增加了数据吞吐量并轻松实现实时数据传输;(8)在批量模式和同步模式下均可实现1MB/s的数据传输速率;(9)具有良好的EMI特性的总线供电能力;(10)在挂起时可控制LazyClock输出:

13

USB接口

西安理工大学硕士学位论文

(11)可通过软件控制与USB的连接;

(12)采用GoodLink技术的连接指示器,在通讯时LED闪烁;(13)可编程的时钟频率输出;

(14)符合ACPI,OnNOW和USB电源管理的要求;(15)内部上电复位和低电压复位电路;(16)有S028和TSSOP28封装;

(17)工业级操作温度:.40℃_+85℃;

(18)高于8kv的在片静电防护电路,减少了额外元件的费用;(19)具有高错误恢复率的全扫描设计以确保其高品质;(20)双电源操作:3.3V或5V电源,范围3.6V一5.5V:(21)多中断模式实现批量和同步传输。

2.1.2MAXl1

66简介

MAXll66是美国MAXIM公司生产的逐次逼近型16位模数转换器,该芯片片内除集成了逐次逼近型ADC所必须的逐次逼近寄存器SAR、高精度比较器和控制逻辑外,还集成了时钟、4.096V精密参考源和接口电路,其内部结构框图如图2.2所示。MAXll66的数据总线为8位,因此与目前广泛使用的8位微处理器连接非常方便“1。

图2-2MAXl166内部结构框图

Fig。2-2MAX1166InternalStructure

MAXl166的典型参数如下:

(1)并行数据输出接口:8位;(2)采样频率:165ksps;

(3)精度:最大线性误差+2LSB,16位无误码;(4)内部参考源电压:4.096V;

(5)外部参考源电压输入范围:+3.8~5.25V;

(6)模拟电压输入范围:+4.75~+5.25V;(7)数字电压输入范围:+2.7~+5.25V;

14

USB接口

系统硬件电路设计

(8)小电流:外部参考电源流为1.8mA,内部参考电源流为2.7mA,采样率在10ksps

时的外部参考电源电流为0.1pA;

(9)采用20管脚TSSOP封装。

MAXl166共有20个引脚,图2为其引脚排列图,这些引脚大体可分为三类。

2.1.3

89C52简介

89C52是ATMEL公司生产的一款非常经典的基于8051内核的MCU,具体器件特性

如下:

(1)可编程I/O口32个;(2)硬件计数器3个;

(3)片内RAM256B,ROM8K可扩展为64K;

(4)有‘个中断源和一个通用串口。’

P10,r

1Poo

PIl,T

l坳l

1.12l’02

P13P03

Plj

]P04

;::

耪c,z

P17

]P07n叮n

nm

p20

l崆lp】2Tl

P23TO

P24毫A舯

抛5

P26ⅪP27

RESlH’

RⅪ,

薇;

17aD

AI鼍罨

V,lL

P8lEN

图2—389C52引脚定义

Fig.2-389C52PinDefinnition

2.2系统硬件电路设计

2.2.1系统硬件总框图

本系统硬件电路包括:时钟电路、按键复位电路、电源电路、A/D转换电路、USB接口电路、串口电路。

缩蛩入

图2-4系统硬件总框图

Fig.2-4SystemHadwareTotalBlockDiagram

15

USB接口

31L—3Tl)1

西安理工大学硕士学位论文

2.2.2

A/D转换电路设计

模拟电源AVDD和数字电源DVDD应分别通过O.1lxF的钽电容与模拟地和数字地相连接。而数字地DGND和模拟地AGNDl、AGND2通常共地。因为使用内部参考电源所以REFADJ端通过O.1laF钽电容,REF该脚应通过4.7pF钽电容接模拟地;AIN为信号

输入脚;R/C、HEN、EOC、CS分别接P1.㈣1.3口;D0-D15接P2口。

如图2—5所示。

120

2】》4月隆王2

I)3月p11

\3I)5履)13

D2江)lO19/。

/’\

D6堰)14

DI以)918D7/D15Dlo矗)8

17

P2

p1.O—‘■一.

R/(?D(娃铘D

171.2.—皂一…

EoCDⅥ)D

;65

||I.

牛O一_111

l害

≯^rtldA(n哪D

船J默呵

CS

14t)1.1

An呵薹≮EF.It2’…‘

A(n娜D墨鄹A王)J

1l

图2-5MAXll66外围电路

Fig.2—5

MAXI166

PeripheryCircuit

2.2.3

USB接口电路设计

因为采取总线形式传输所以硬件连接如下:

PDIUSBDl2(下面简称D12)ALE与89C52(下面简称52)的ALE相连,D12数据口与P0口相连D12的CS、INT、WR、RD分别和52的P1.6、.INT0、WR、RD脚相连;D12的D+、D一接18欧姆限流电阻,D12的INT、SUSPEND、RESET、DMACK、EOT接上拉电阻。如图2.6所示。

图2-6USB接口电路

Fig.2-6USBInterfaceCircuit

16

USB接口

系统硬件电路设计

2.2.4串口电路设计

考虑到板子的扩展性,加入了MAX232芯片电路如图2—7。

….扎乙。

时、l

口6、I、

,r、+

l,l+

0.1uf

_L

、./I

口.1ut"

GND

o-

N∞-一

U2

13

12

R2IN

RXD1l

邕2IN:;釜R1UTuUTTR2O

14

TXD

10TlIN

TlOffTl

T2IN

T2OUT

7T20UT

4l

乏;:

曷:

lI

l+c7

高o.11lf

+I

一下旬

J,一

—、l

图2.7串口连接图

Fig.2—7SerialInterfaceCircuit

2.3电路调试

焊接前首先对PCB光板进行检查,确定电路板制作过程中没有出现短路以及断路等

问题。

由于该电路板大部分核心器件为贴片封装,对焊接要求较高,因此焊接时要格外小心,注意不要将有极性的元件焊反。同时贴片电容,电容较小,焊接时要避免出现阻值,容值错误两脚短路等现象。并且,元器件要分步焊接,分步调试检测。

确认电路基本焊接无误后,上电,用示波器查看引脚波形。包括:

(1)查看89C52晶振频率是为12M,D12晶振频率是为6M。说明系统主时钟电路

正常:

(2)用示波器查看89C52的ALE脚为2M方波,说明单片机工作正常;

(3)查看89C52的reset脚并按复位键看到reset脚可以拉高并回低,说明复位电路正常;

(4)测量D12的Vout脚,电平为3.3V,说明基本D12工作正常。

完成上面几步后,往MCU中下载AD采集测试程序(见3.2.6节),然后用示波器看CS、R/C、EOC段的波形,时序如图2-8,AD芯片工作正常。给AD信号端分别输入

0V、2.5V、3V3.5

V和5V三个固定电平用数码管显示分别为0.01V、2.48V、2.96V、3.52V、

4.99V,AD电路基本工作正常。

17

本文来源:https://www.bwwdw.com/article/w1a1.html

Top