基于USB传输的数据采集系统(上位机)

基于USB传输的数据采集系统(上位机)[20191213105256]
摘要
随着数字化技术在工业领域的快速发展,数据采集系统呈现巨大的市场需求,其应用领域涉及工业领域的各个方面。USB技术具有传输速度快、传输准确率高和即插即用(PnP)的优势,因此将其引入工业领域的数据采集具有很大的意义。
本文从USB通信协议出发,介绍了USB数据传输方式,并详细阐述了USB设备的驱动及用户应用程序的开发,其中重点介绍了用户应用程序的开发环境及各个模块功能;然后本文介绍了FFT(快速傅里叶变换)的算法以及对其优化的基2-DIT-FFT算法。最后对所做的工作进行了总结和展望。
本文的具体设计和实现包括以下几个方面:
1、根据Windows操作系统设备编程基础知识,实现USB设备驱动编程;
2、深入探究USB2.0通信协议,实现USB2.0数据传输;
3、利用C#开发语言完成用户应用程序的开发,并在程序开发中应用多线程机制;
4、对FFT算法深入分析,并通过C#语言实现FFT算法,运用到数据采集后的频域分析中;
5、对用户应用程序中的数据传输进行了多次试验;
6、使用基于GDI+的绘图控件ZedGraph完成波形绘制。
 查看完整论文请+Q: 351916072 
关键字:字USB2.0;数据采集;驱动程序;ZedGraph;FFT
目录
摘要 I
ABSTRACT II
第1章 绪论 1
1.1 课题背景及意义 1
1.2 国内外研究现状 1
1.3 本课题研究的主要内容 2
第2章 基于USB传输的数据采集系统的概要设计 3
2.1 基于USB传输的数据采集系统的性能指标 3
2.2 基于USB传输的数据采集系统的整体构成 3
2.3 基于USB传输的数据采集系统的流程设计 5
2.4 本章小结 5
第3章 基于USB传输的数据采集系统的详细设计 6
3.1 USB接口芯片的选择 6
3.2 数据传输模式设计 7
3.2.1 USB通信协议 7
3.2.2 USB数据传输方式 9
3.2.3 基于USB的数据采集系统传输方式的选择 15
3.3 应用层协议设计 16
3.3.1 数据包结构设计 16
3.3.2 控制数据传输数据帧 16
3.3.3 采样数据传输数据帧 17
3.4 频域分析算法设计 17
3.5 本章小结 21
第4章 设备驱动程序设计 22
4.1 Windows驱动程序开发概述 22
4.2 USB设备驱动的WDM结构 24
4.3 基于USB的数据采集系统驱动程序的设计及实现 25
4.4 设备驱动开发环境 27
4.5 本章总结 29
第5章 用户应用程序的开发 30
5.1 用户应用程序模块划分 30
5.2 用户应用程序开发环境配置 30
5.3 用户应用程序界面设计 31
5.4 USB设备识别 32
5.5 USB数据传输模块 32
5.6 波形绘制模块 33
5.7 频域分析 33
5.8 本章总结 34
第6章 系统测试与分析 35
6.1 测试环境 35
6.2 测试结果 35
第7章 总结与展望 37
7.1 总结 37
7.2 展望 37
致 谢 38
参考文献 39
附录 41
附录一:FFT算法代码 41
附录二:实物图片 42
第1章 绪论
1.1 课题背景及意义
随着信息技术的不断发展,数字化技术在工业领域中得到广泛应用。AD的转换速度进一步的提升,对工业总线的传输速率提出了更高的要求。以RS232和RS485为代表传统的总线传输方式传输速率慢、抗干扰能力差,很大程度上制约了工业数字化技术的发展。因此寻求一种高速、安全、方便的总线技术就显得尤为重要。
虽然USB技术出现时间并不长,但由于它高速、安全、方便的优点被越来越多的厂商和用户所接受,形成了电脑周边的外设和数码产品必备USB接口的局面。因此USB进入工控领域是必然趋势。基于USB的数据传输技术具有传输速度快、数据丢失率低、可靠性高、抗干扰能力强以及便于数据的处理和存储的优点,可以广泛应用与工控领域的信号采集。
所以针对本课题的研究可以很好的解决制约工业领域数字化发展的数据采集、数据传输的问题,可以在一定程度上推进工业领域的数字化建设,直接或间接创造经济效益。因此对本课题的研究具有一定的现实意义和经济意义。
1.2 国内外研究现状
目前,国内外对于USB设备的研究已经处于高速发展阶段。不少企业、科研院所开始研究基于USB的数据采集技术,并且在市场上已经出现了USB数据采集产品,比如NI(美国国家仪器有限公司)的USB数据采集卡。NI于2005年8月推出了八款最新USB2.0高速数据采集设备。从而扩展了其业界领先的高性能USB数据采集设备USB-9000系列产品,实现了高达800kb/s的采样速率。
国内USB技术的应用在近年也得到了飞速的发展,水平不断提升。USB产品也越来越被厂商和用户所认同,USB设备被运用到很多领域。基于USB的数据采集技术也在不断发展之中,市场上也出现了比如中泰研创的USB数据采集卡等等的国内自主开发的产品。
与国外相比,国内的USB数据采集技术仍然比较落后,在一些采集数据量大、实时性要求高的场合依旧以国外的产品为主导。随着USB接口技术的进一步普及和发展,结合工业领域对于数据采集技术的要求不断提升,有必要开展对基于USB的数据采集技术的研究。高性能、高可靠性的先进数据采集设备的国产化研究已经成为了亟待解决的现实问题。
1.3 本课题研究的主要内容
本课题是结合实际需求,为了弥补当前串口通信技术对于大量实时数据无法传输的缺点,提出基于USB2.0的数据采集系统的设计方案,并实现对于不同速率的多通道电压信号的采样系统的实例。
本课题主要研究内容如下:
1、 掌握USB2.0的总线协议及传输方式;
2、 了解USB接口芯片的使用;
3、 了解USB外围设备的驱动程序的编写;
4、 掌握USB的通信方式,实现用户程序的编写,并对用户程序进行测试;
5、 掌握频域分析方法,对时域采样信号进行频谱分析。
第2章 基于USB传输的数据采集系统的概要设计
基于USB传输的数据采集系统(上位机)主要包括两个方面:系统驱动程序的设计和用户应用程序的设计。系统驱动程序主要完成USB设备的识别,并向用户应用程序提供数据传输的接口;用户应用程序主要包括数据传输、数据处理和波形绘制等等功能。上位机程序设计的整体思路为:用户应用程序通过驱动程序的接口向固件程序发送采样命令,并开始接受下位机传输的采样数据,同时在用户应用程序中实现对数据的接收、处理、显示等。
2.1 基于USB传输的数据采集系统的性能指标
基于USB传输的数据采集系统的主要性能指标:
1、 接口方式:USB总线接口,兼容USB1.1和USB2.0,支持设备的热插拔;
2、 输入通道:8路可选的采样通道;
3、 测量信号:可以测量-2.5~2.5V信号或0~5V信号;
4、 采样率:1MHZ;
5、 采样分辨率:8bit;
6、 设备驱动程序功能:识别设备和提供用户应用程序和硬件的接口;
7、 用户应用程序功能:采样数据的传输、显示和处理。
2.2 基于USB传输的数据采集系统的整体构成
基于USB传输的数据采集系统(上位机)主要包括:系统驱动程序和用户应用程序。图2.1描述了基于USB传输的数据采集系统上位机程序及硬件的结构层次。
图2.1 系统结构层次图
基于USB传输的数据采集系统(上位机)可以完成USB设备的识别、数据传输、采样波形绘制以及后期的数据处理(频域分析)。如图2.2描述了上位机程序的整体构成和主要功能。
图2.2 上位机整体结构
USB设备驱动程序提供软件和硬件连接的通道。USB设备驱动程序可以给用户应用程序提供数据传输接口和硬件控制句柄。
用户应用程序也可以称为用户界面程序。用户应用程序的主要功能是绘制数据采集波形,显示动态曲线和对数据的频域分析。
2.3 基于USB传输的数据采集系统的流程设计
基于USB传输的数据采集系统(上位机)的用户应用程序设计运用了可视化的Windows窗体应用程序,在程序架构上同时使用了多线程的技术,这就使得用户应用程序的设计在整体流程结构上有别于顺序结构的程序设计方法。
图2.3形象的描述了基于USB传输的数据采集系统用户应用程序的设计流程。
图2.3 用户应用程序设计流程图
2.4 本章小结
本章首先对基于USB传输的数据采集系统提出了主要性能指标的期望,然后分析了整个系统上位机的结构,并设计了用户应用程序的流程图。
第3章 基于USB传输的数据采集系统的详细设计
通过对基于USB传输的数据采集系统(上位机)的概要设计,已经基本明确该数据采集系统上位机包含USB数据传输、采样波形绘制及采样数据的频谱分析等功能。本章将在此基础上对该数据采集系统选用的USB接口芯片、USB数据传输方式选择等方面详细介绍。
3.1 USB接口芯片的选择
随着USB技术应用的普及,各大硬件开发商相继推出各种符合USB总线协议的USB接口控制芯片如CMD公司的USB0670、Cypress公司的7C68013A、Intel公司的440BX AGP等等。
USB协议规定USB通信必须遵循严格的主-从模式,即必须是主-从,不能是从-从或者主-主。在本课题中USB接口芯片需要向PC机发送数据,PC机上的USB接口控制芯片已经设置为主机模式,所以我们选择的接口芯片必须可以设置为从机。
在种类繁多的USB接口芯片中,我们发现Cypress公司生产的Cy7C68013A接口控制芯片比较符合本课题的需求。该芯片是基于USB2.0协议开发的,可以兼容USB1.1的通信协议,但是不兼容USB1.0的通信协议,同时Cy7C68013A内置8051单片机内核,可以开发固件程序。
Cy7C68013A是Cypress公司的EZ-USB FX2LP系列低功耗版本单片机,具有和8051兼容的CPU和指令集,同时包括完整的USB接口和USB2.0协议引擎,并且提供了完善的固件程序开发包。
在Cy7C68013A芯片上电序列期间,内部逻辑验证I2C兼容端口连接的EEPROM的第一个字节是否0xC0或0xC2。如果找到EEPROM,内部逻辑使用存储在EEPROM中的VID/PID/DID值代替内部存储的值(第一个字节为0xC0时),或者启动加载EEPROM的内容到内部RAM(第一个字节为0xC2时);如果没有检测到EEPROM,FX2使用内部存储的描述符进行枚举。FX2默认的ID值是VID/PID/DID (0x04B4, 0x8613, 0xxxyy)。上位机根据设备的VID/PID/DID来识别USB设备的类型。FX2默认的ID值代表含义见表3.1所示。
表3.1 FX2默认的ID值
默认VID/PID/DID
发行者ID 0x04B4 Cypress半导体公司
产品ID 0x8613 EZ-USB FX2
设备版本 0xxxyy 根据修订情况(0x04表示 Rev E)
3.2 数据传输模式设计
数据传输是任何数据采集系统设计的重中之重,基于USB传输的数据采集系统也不例外,对于系统的数据传输模式的选择不容忽视。这就要求我们必须了解USB总线的通信协议。
3.2.1 USB通信协议
USB数据传输采用轮询的广播机制,所有的数据传输都是由主机发起的。任何时刻,整个USB总线上只能有一个数据包在传输数据,即不同的物理线路上都在广播同一个数据包。
USB数据传输采用“令牌包”—“数据包”—“握手包”的传输机制,令牌包用以指定数据包的去向或者来源的设备地址和端点(EndPoint),使得总线中只能有一个设备对线路中广播的数据包作出响应;数据包用于传送数据;握手包用来确认数据包是否成功传送。
数据包是USB总线上数据传输的基本单元,任何数据在USB总线上传输必须封装成数据包。USB总线上的数据包一般包含SYNC同步字段、PID标志字段、数据字段、CRC校验字段和EOP结束字段。数据包的基本格式如表3.2所示。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jxgc/zdh/4916.html

好棒文