基于USB总线数据采集系统设计与实现Word文档格式.docx
- 文档编号:16953993
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:14
- 大小:70.26KB
基于USB总线数据采集系统设计与实现Word文档格式.docx
《基于USB总线数据采集系统设计与实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于USB总线数据采集系统设计与实现Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
评
价
评阅人:
2010年6月日
湘潭大学兴湘学院
毕业论文(设计)鉴定意见
学号:
2006183833学生姓名:
罗杰专业:
机械设计制造及其自动化
毕业论文(设计说明书)56页图表3张
论文(设计)题目:
基于USB总线数据采集系统设计与实现
内容提要:
本文介绍了一种基于通用串行总线USB(UniversalSerialBus)数据采集系统设计。
随着用户对数据采集系统要求的不断提高,USB接口以其简单易用、速度快而被广大
用户所接受.本论文所阐述的数据采集系统采用了集成了微处理器的USB接口芯片
PDIUSBDI2来完成采样控制并与PC机应用程序完成系统通信功能。
由应用程序完成
用户命令及数据的显示。
该系统采用USB总线取代传统的数据采集总线,通过对USB
协议和设备构架的理解,对数据采集系统进行了硬件设计和软件设计。
硬件设计主要解
决了控制器与主机通信问题,数据采样、模拟输出、I/O扩展等电路设计以及它们之间的
接口.软件编程主要分为三部分:
一是为满足获得最大传输速率和运行效率的固件程序
编程;
二是为用户提供的以动态链接库形式封装的功能函数;
三是提供演示和测试的
控制面板程序,并为系统提供了两个应用实例。
除此之外,论文还介绍了设备驱动程
序的开发,并在文章结尾对USB的应用前景进行了探索。
指导教师评语
罗杰同学在毕业设计中,工作态度端正,能积极努力地学习与钻研。
毕业设计选题较合适,系统设计方案较合理,毕业说明书书写、编辑较规范,论述较充分、通顺、清晰,图表及文献引用较为规范,反映了该生具有一定的分析问题、解决问题的能力,文献资料检索、利用和外文阅读翻译能力得以提高,较好地完成了毕业设计任务要求。
建议评定毕业设计成绩为:
良好。
指导教师:
年月日
答辩简要情况及评语
答辩小组:
答辩委员会意见
答辩委员会主任:
第一章绪论5
1.1课题背景5
1.2课题的提出5
1.3USB串行总线优势6
1.4本课题研究的内容和意义7
第二章USB概要设计9
1USB传输要件9
2事务、信息包和联络信号9
3USB的传输结构10
2.4USB总线枚举过程13
5USB的设备描述符14
6USB请求15
第三章数据采集系统的硬件设计17
3.1硬件系统的结构17
3.2芯片选择17
3.2.1ADC080918
3.2。
2AT89C5120
3.2.3PDIUSBD1221
3接口硬件电路设计24
3.3。
1A/D与单片机接口电路25
3.2PDIUSBDI2与单片机接口电路25
第四章数据采集系统软件设计27
1A/D转换时序控制27
4.2固件的开发27
3采用PDIUSBD12的固件设计28
4.3.1驱动的开发工具28
4.3.2PDIUSBD12固件程序的编写29
4固件结构30
5固件的编程实现32
5。
1底层函数32
4.5。
2命令接口32
3中断服务程序ISR.C34
4.5.4主循环MAINLOOP.C36
第五章USB设备驱动及应用程序设计40
5.1USB设备驱动程序40
2USB设备应用程序设计46
第六章结论49
参考文献50
附录51
基于USB总线的数据采集系统设计
摘要:
本文介绍了一种基于通用串行总线USB(UniversalSerialBus)的数据采集系统设计。
随着用户对数据采集系统要求的不断提高,USB接口以其简单易用、速度快而被广大用户所接受。
本论文所阐述的数据采集系统采用了集成了微处理器的USB接口芯片PDIUSBDI2来完成采样控制并与PC机应用程序完成系统通信功能,由应用程序完成用户命令及数据的显示。
该系统采用USB总线取代传统的数据采集总线,通过对USB协议和设备构架的理解,对数据采集系统进行了硬件设计和软件设计。
硬件设计主要解决了控制器与主机通信问题,数据采样、模拟输出、I/O扩展等电路设计以及它们之间的接口.软件编程主要分为三部分:
一是为满足获得最大传输速率和运行效率的固件程序编程;
二是为用户提供的以动态链接库形式封装的功能函数;
三是提供演示和测试的控制面板程序,并为系统提供了两个应用实例。
除此之外,论文还介绍了设备驱动程序的开发,并在文章结尾对USB的应用前景进行了探索。
关键词:
USB总线;
单片机;
数据采集;
固件;
Windows驱动程序模型;
设备驱动程序
USBbus—baseddataacquisitionsystemdesignandimplementation
Abstract:
ThispaperdescribesthedesignofadataacquisitionsystembasedonUSB.Withtheadvanceoftheclient”srequirementondatacollectionofasystem,asalate—modelinterfacetechnology,USBiswellacceptedbyvastclientsbecauseofitssimplicityandhighspeed。
ThesystemusingtheUSBinterfacechipwithon—chipmicroprocessorPDIUSBDI2controlsthedataacquisitionprocessandcommunicateswiththecomputer.Throughtheman—machineinterfaceclientscansendcommendanddatacanbeprinted.WithgoodunderstandingofUSBprotocolanddevicetruss,thesystemisdesignbyusingUSBinsteadofotherbuses.Thehardwaredesignincludesthecommunicationbetweenthecontrollerandcomputer,thedataacquisitionpart,analogoutput,I/Oextensionandtheinterfacebetweenthem.Thesoftwareprogrammainlyincludesthefirmwarecodeinthecontroller,functionsforclientswithDLLencapsulationandthecontrolpaneldesign.AlsothedevicedriverdevelopmentisintroducedandtheforegroundofUSBapplicationisexploredattheend。
KEYWORDS:
USBbus;
datacollection;
MCU;
fireware;
WDM;
devicedriveprogram
第一章绪论
本次毕业设计的数据采集系统是在单片机AT89C51控制下进行数据采集,并通过PHILIPS公司的USB接口芯片PDIUSBDI2上传给PC机进行分析、显示和存盘。
该系统用传统的USB总线取代了RS232串行总线,通过对USB协议和设备构架的充分理解,对以单片机89C51和USB接口芯片D12为主的数据采集系统进行了硬件设计和软件编程,并在此设计的基础上给出相应的原理图。
硬件设计主要解决的是D12与单片机的接口电路的设计.软件设计可分为三部分:
一是充分了解D12的主要功能特点,为满足D12在USB上的最大传输速率而编写固件程序,用C51语言编写:
二是了解USB的设备驱动程序与应用。
1.1课题背景
现代工业生产和科学研究对数据采集的要求日益普遍,在瞬态信号测量、图像处理等一些测量中,都需要进行数据采集。
现在通用的数据采集卡一般多是利用微机机箱内的PCI插槽或ISA插槽进行扩展。
通过数据采集系统,可以简洁、通用化的硬件配合以相应的软件实现以往专用测试仪器的功能;
完成“软件既仪器"
的理念.
信息技术与电子技术的迅猛发展,使得计算机和外围设备也得到飞速发展和应用。
过去人们单纯追求计算机与外设之间的传输速度,现在纠错能力和操作安装的简易性也成为人们关注的目标。
USB通讯技术的出现,使高传输速度、强纠错能力、易扩展性、方便的即插即用,有机的结合在一起。
USB设备需要依据USB协议进行数据的解包与打包,底层硬件设备与操作系统之间需要以驱动程序为桥梁。
驱动程序以WDM为模型,以DDK为开发工具,以IRP为消息传播载体,来实现与Windows系统底层核心机制相交互的功能。
1.2课题的提出
对于数据采集系统而言有两个关键性问题:
一是控制A/D转换和数据传输的控制器,一是采集系统与上位机PC的传输方式。
其中控制器一般采用通用的单片机,包括4位、8位、16位以至32位的各类单片机;
这些单片机芯片优势在于价格低廉、结构简单、接口扩展能力强等,但是其数字运算能力较差,所以目前出现了许多以DSP芯片作为数据采集系统控制器的数据采集系统.本课题为简化开发难度,充分利用现有的工作环境采用较常用的AT89C52单片机作为系统控制器。
对于数据采集系统与上位机的通讯方式,现行的常用方式是利用PC机箱内的PCI,ISA插槽进行扩展:
其传输速度分别为132M/S。
16M/S、但是由于PC机接口资源有限,且需要对接口卡硬件资源进行合理配置,故其存在以下缺点:
安装麻烦;
价格昂贵;
受计算机插槽数量、地址、中断资源限制,可扩展性差;
在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,易导致采集的数据失真。
本课题旨在使用新型的通用串行总线USB完成数据采集系统的构架,充分发挥USB总线接口简洁、使用方便的优势;
并为后续的使用USB总线对实验室
现有的“频率特性测试系统”改进作前期准备工作。
课题主要完成四个方面的工作:
数据采集系统硬件设计、固件设计、应用程序及WDM设备驱动程序设计。
使用到的软件工具包括Prote199,KeilC51,MicrosoftVisualStudio6.0,Win2000DDK:
使用到的硬件工具包括单片机写入器、万用表、示波器等等.采用的操作系统平台为Windows200。
3USB串行总线优势
通用串行总线USB(UniversalSerialBus)是1995年康柏、微软、IBM,DEC等公司为解决传统总线不足而推广的一种新型的通信标准。
该总线接口具有安装方便、高带宽、易于扩展等优点,已逐渐成为现代数据传输的发展趋势。
基于USB的高速数据采集卡充分利用USB总线的上述优点,有效解决了传统数据采集卡的缺陷。
USB从传统I/O模式的栓桔中解放出来,开辟了一条外设同PC机连接的方法.与其他的老式PC机接口相比,USB具有如下优点:
1.热插拔:
用户可以把USB外设连接到一台正在运行的PC机上,操作系统能自动识别,并且用户可以立即使用,而不需要重新启动.用户也可以在任何时候断开USB设备,而不管计算机是否正在运行,这都不会损坏计算机。
2.即插即用:
USB实现了自动配置,它不需要用户手动配置I/O地址和中断请求(URQ).当USB外设接入PC时,操作系统会自动检测到这个连接。
并加载适合的驱动程序。
对用户来说,只需要等待几秒钟,USB外设的安装就会完成。
共享式接口:
USB端口支持多个外设的连接,通过USB集线器,一个USB主控制器可以连接多达126个外设。
接口体积小巧:
和其它老式的PC接口相比,USB接口小且薄,更适合于外设体积的小型化。
使用灵活:
USB支持三种类型的传输速率,1.5Mb/s的低速传输、12Mb/s的全速传输和480Mb/s的高速传输。
USB支持四种传输类型,块传输、同步传输、中断传输和控制传输。
这使得USB总线适合多种外设的传输需要。
6.提供电源:
USB电缆向外设提供一根+5V的电源线,电流的大小取决于集线器端口。
用户可以直接使用这个总线电源。
当然,USB总线还存在许多缺陷,比如USB2.0所支持的480Mb/s速率不及IEEE-1394的六分之一;
USB总线传输距离有限;
USB总线协议复杂等。
但随着操作系统、硬件厂商对USB的进一步支持,其在PC外设方面的将大有可为。
1.4本课题研究的内容和意义
本课题旨在对USB总线的结构、协议和系统体系进行充分研究的基础上,完成一个实际的USB数据采集系统软硬件的构架。
具体需要做的工作包括软件和硬件两部分。
硬件方面,该系统使用Philips公司的PDIUSBD12芯片作为设备的USB接口芯片;
采用常用的AT89C51作为系统的CPU:
ADC0809芯片作为AD转换芯片。
配合其它辅助芯片和单片机固件完成输入模拟信号的采集、存储和向PC主机的传输。
软件方面分如下几部分:
1。
单片机固件:
本系统中的单片机固件采用C语言编写,使用KeilC51编译器为开发工具。
固件中主要完成对USB协议规定的诸多标准请求以及用户自定义请求的响应;
此外还包括控制ADC0809芯片完成对模拟信号的转换代码,以及USB设备所需各种描述符的定义.
2。
主机设备驱动程序:
USB外设的驱动程序只能为WDM(WindowsDriverModle)形式的驱动,课题中采用以DDK2000为开发工具,在VC6。
0集成开发环境编写,编译时直接在DDK2000的DOS窗口中编译。
3.用户应用程序:
应用程序是采集到数据最终显示、处理的地方.系统用户应用程序界面模仿传统示波器的外形;
以图形的方式动态的显示采样数据;
具体的采样数值也可以写入“记事本”文件中,进而可以用其它专门软件进行处理。
Philips公司提供了PDIUSBD12的开发包,包括软件和硬件两部分。
为用户使用该种型号的USB接口芯片进行设备开发提供一个基础和工作平台.
该数据采集系统的目的在于为实验室现有的一套频率特性测试仪的改进做前期工作.但系统应用的潜力并不局限与此,比如在增加与被测信号相适应的传感器、采样保持、滤波和隔离电路后系统可以方便的应用于家庭医疗护理方面,可以用于对人体的心率、脉搏、体温等参数的测试。
在个人电脑逐步进入家庭的当今,这样的系统应当具有一定的应用前景。
第二章USB概要设计
1USB传输要件
1、端点
端点是USB设备的一个部分,所有的传输都是将端点作为发出点或者接收点.通常情况下,设备端点是一个内存区域,或者是控制芯片的一个缓存器,端点的作用是数据缓存.每个USB设备有一个唯一的地址,这个地址是在设备连上主机时由主机分配的,而设备中的每个端点在设备内部有唯一的端点号,这个端点号是在设备设计时被给定的.端点号可以是0-15,方向可以是IN(设备发送数据给主机)或者OUT(主机发送数据给设备)。
每个设备必须将端点0设置为控制端点。
控制端点是双向传输数据,其他端点都是单向数据传输。
2、管道
管道是设备端点和主机控制器之间的连接,在一个传输发生之前,必须首先建立一个管道.管道随着主机和设备的连接的建立而建立,当移除设备时,管道也跟着被移除。
每一个设备都会和主机建立一个默认的控制管道(DefaultControlPipe),此管道使用端口0。
不同的传输类型使用不同的管道,此外管道还可以被分为消息管道(MessagePipe)和流管道(StreamPipe)消息管道是指具有某种USB定义格式的数据流,是双向的管道;
而流管道则是不具有USB定义格式的数据流,不具有双向性。
控制传输是唯一使用双向消息管道的传输,其他传输都是使用单方向的流管道。
2.2事务、信息包和联络信号
每一个USB传输包含一个或多个事务,每一个事务又包含一到三个信息包。
事务根据其数据流方向以及传输目的,可以分为3类:
输入、输出与设置.每一个传输类型的传输包括一个或多个阶段(Stage),一个阶段即一种类型的事务。
每个阶段又可以分为一个或几个相位(Phase),相位包含几个或两个事务信息包。
信息包是一个区块的固定格式信息,每个信息包由一个信息包标示符(PID)开头,作为信息包的识别.根据事务种类的不同,PID后面可能有端点地址、数据、状态信息,或者是一个在帧号码、错误校验位。
在控制传输、批量传输和中断传输中都有一个相位是联络数据包,它包含的是联络信息。
但是联络信号不是仅仅在联络数据包中,有些数据信息包中也包含联络信号。
USB定义的联络信号如下:
①ACK(Acknowledge):
表示主机或设备已成功接收数据。
②NAK(NegativeAcknowledge):
表示设备在忙中。
③STALL:
表示3种意义,即不支持的控制要求、控制要求失败或端点失败.
④NYET(NotYet):
表示设备是否已准备好接收数据,只有高速设备使用。
⑤ERR(Error):
表示在集线器和主机事务中,设备没有传回预期的联络信号.ERR只有在高速集线器完成事务分割时才会使用。
3USB的传输结构
USB的传输结构描述的是各个类型USB传输的时序、数据包和特征.下面分别介绍一下4种USB传输类型的传输结构:
1、控制传输
控制传输用于在设备初次连接时对器件进行配置,以及对设备的状态进行实时检测,还有在设备配置完成后用于特殊传输目的。
端点0只可以采用控制传送的方式.每一个控制传输都必须有设置与状态阶段,数据阶段则是选择性的。
控制传输的设置事务传输结构如图2-1所示:
图2—1控制传输结构示意图
控制传送的数据阶段,由一个以上的输入或输出事务构成,遵守和批处理传送相同的协议规则.所有的数据阶段里的事务都必须有相同的方向(即全部输入或全部输出)。
在数据项中要发送的数据的数量和其方向在建立阶段被指定。
如果数据的数量超过了先前确定的数据包的大小,数据在支持最大的包大小的多个事务中被发送(输入或输出)。
任何剩下的数据都作为剩余在最后的事务中被发送。
2、批量传输
批量传输包含一个或者多个传输事务,其传输是单方向的,即所有的事务都必须是输入或输出事务。
如果需要双向传数据,需要另建立一个管道.
批量传输的传输结构如图2—2所示:
图2-2批量传输结构示意图
3、中断传输
中断传输适用于小批量的、点式、非连续的数据传输应用的场合。
中断传输必须在指定的时间内完成,它一般应用于鼠标、键盘、游戏杆等HID(HumanInterfaceDevice)类设备以及集线器的状态报表中。
中断传输的传输结构如图2—3所示:
图2-3中断传输结构示意图
4、同步传输
同步传输的意义在于每一个帧或者微帧内必须传输固定数目的字节数据,它适用于固定速度或者特定时间的传输。
同步传输没有联络阶段,所以不能保证传输的完全可靠性。
同步传输的传输结构如图2—4所示:
图2-4同步传输结构示意图
2.4USB总线枚举过程
USB规范定义的设备状态总共有6个,分别是连接(Attached)、上电(Powered)、默认(Default)、地址(Address)、配置(Configured)和挂起(Suspend)。
USB总线枚举过程中,USB设备需要经历后4种状态.
USB集线器负责监测设备的连接情况,而USB主机会通过集线器轮询地查询设备。
当主机发现一个新的设备时,会要求集线器建立与设备的通信通道,即设备的端点0,控制传输端点。
之后,主机会通过此通道向设备发送一系列的标准USB请求以获取所需的信息,设备必须响应这些请求并且采取适当的动作.这个过程即称为USB的总线枚举。
总线枚举的过程如下:
1设备连接
USB设备通过USB总线与主机相连.
2设备上电
USB设备可以采用USB总线供电,也可以使用外部电源供电。
3主机检测到设备,进行复位
设备连接到总线后,主机通过检测设备在差分信号线的上拉电阻检测到有新的设备连接,并获释该设备是全速设备还是低速设备,如果上拉电阻与D+线相连,则为全速设备,如果上拉电阻与D-线相连,则为低速设备,主机确认有设备连接后,向该端口发送一个复位信号。
4设备默认状态
设备收到一个复位信号后,连接到主机的所有设备的地址为默认地址(00H),主机会首先发送一个获取设备描述符的请求,设备通过这个默认地址向主机发送第一次设备描述符。
5地址分配
当主机接收到有设备对默认地址(00H)来响应的时候,就确认有设备连接,主机对设备分配一个空闲的地址(如02H),以后设备就只对02H地址进行响应.
6读取USB设备描述符
主机分配给设备地址后,通过这个地址主机读取该设备描述符,确认USB设备的属性。
7设备配置
主机依照读取的USB设备描述符来进行配置,如果设备所需的USB资源得以满足,主机就会查找驱动,当正确找到驱动后,主机给设备发送配置命令,配置完毕后,这个USB设备就枚举成功了。
8挂起
为了节省电源,当总线保持空闲状态超过3ms以后,设备驱动程序就会进入挂起状态,在挂起状态时,设备的消耗电流不超过500µ
A.当被挂起时,USB设备保留了包括其地址和配置信息在内的所有的内部状态。
5USB的设备描述符
标准的USB描述符包括设备(Device)描述符、配置(Configuration)描述符、接口(Interface)描述符、端点(Endpoint)描述符以及字符串(String)描述符,字符串描述符不是必须的。
不同的描述符从不同的层级来表示设备的属性。
设备描述符包含了整个设备的信息以及设备支持的配置号码,每一个设备只能由一个设备描述符.但每一个设备可以有几个配置描述符,它包含了电源管理信息以及所支持的接口号码.接口描述符包含了与端点通信所需要的信息,它可以有零个或多个端点描述符.各个描述符的树状结构如图2-5所示:
图2—5描述符的树状结构
设备描述符描述了一个USB设备的总
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 USB 总线 数据 采集 系统 设计 实现