您好,欢迎来到微智科技网。
搜索
您的当前位置:首页一种基于USB的数据采集系统设计

一种基于USB的数据采集系统设计

来源:微智科技网
维普资讯 http://www.cqvip.com

2006年第4期 工业仪表与自动化装置 ・4l・ 一种基于USB的数据采集系统设计 戴海峰。,付翠玉 (1.同济大学汽车学院,上海201804;2.同济大学机械制造研究所,上海200092) 摘要:介绍了一种基于USB接12:的数据采集系统的设计,通过合理的电路设计以及基于硬件 的高效软件,使得系统在实际应用中取得了较好的运行效果。 关键词:USB;数据采集;接口 中图分类号:TP274.2 文献标识码:A 文章编号:1000-0682(2006)o4-oo41-02 The design of a data acquisition system based on USB DAI Hai.feng‘,FU Cui.yu . (1.Automotive College under Ton ̄i Unievrsity,Shanghai 201804,China; 2.Institute ofAdvanced Manufacturing Technology under Tongfi Unievrsity,Shanghai 200092,Chian) Abstract:This paper presents the design of a data acquisition system based on the USB interface, which has its rational hardware structure and corresponding software.This system has been put into opera- tion,which has produced a wonderful effect. Key words:USB;data acquisition;interface 数据采集是现代检测控制技术的重要环节,在 输接口电路用于将采样后的数据传输到USB接口 诸如高速数据传输、实时信号分析、故障诊断、信号 模块。 处理等应用领域,往往需要数兆甚至数十兆的高速 数据采集系统。对于实时性要求较高的应用场合 (如汽车动力系统响应数据采集等)还需要足够的 数据缓存,以满足被检测信号能实时无间歇的采集 图1 数据采集模块的组成 传输。USB总线接口所具有的高速数据传输速率是 系统设计中,A/D转换接口电路在单片机的控 这类数据采集系统的理想选择。 制下,通过时序控制电路启动或停止采样,并通过时 1硬件设计 序控制电路将数据存储到数据存储模块。A/D转 换采用MAXIM公司的l4位刻字校准ADC芯片 1.1数据采集、存储部分硬件设计 MAX1201,其采样速度可达到2.2 Msps,采样值输 数据采集系统有两个十分重要的指标:采样频 出采用二进制补码格式。MAX1201工作过程中需 率和采样精度。针对具体应用场合,数据采样频率 要RFPS,RPFF,RFNS,RFNF和CM五种电压。 和采样精度应以满足后续的信号处理过程为准 数据存储模块具有两组数据总线,一组用于同 则…。该采集系统采集的数据主要应用于汽车车 A/D转换接口电路连接,接收从A/D转换模块中写 身结构的动力性能分析,所以其设计的采样频率为 入的数据,总线宽度为l6位;另一组总线用于同单 2 M,采样精度为14位。 片机的连接,将数据存储模块中的数据读人单片机 采集系统包含3个部分:数据采集、数据存储和 并从单片机经过数据传输接口电路传输到USB接 数据传输,结构框图见图l。 口模块,其总线宽度为8位。系统采用4片SRAM 单片机选用ATMEL公司的AT89C52,数据传 芯片IDT71V416(256K×16 bits)构成2 084K的存 储容量。其内部结构见图2。 收稿日期:2005—12—19 1.2 USB接口模块硬件设计 作者简介:戴海峰(1981一),男,江苏南通人.博士生,主要研究 数据存储模块在数据采样过程中不需要单片机 方向为汽车电子。 的介入,通过从A/D引出的CLK信号驱动时序控 维普资讯 http://www.cqvip.com

・42・ 工业仪表与自动化装置 2006年第4期 制电路产生采样数据写入的时序,在整个1 024K× 16bits的数据缓存写满后,时序控制电路向单片机 操作(避免出现竞争),将CY7C136的地址单元分为 两个页面,第1个页面从0x0000~0xO3FF,第2个 页面从0x0400~0x07FD,其中,USB接El模块可以 产生一个中断,通知单片机开始读取数据。读取中, 由于5l单片机是8位的数据宽度,而存储器是l6 位的数据宽度,所以单片机在读取时先读取高8位 数据,再读取低8位,每读取64位,就将数据写入 USB接El数据传输模块的双端RAM,并触发USB 接El数据传输模块的中断,在中断服务子程序中将 对第1个页面进行写操作,对第2个页面进行读操 作,而数据采集模块对第2个页面进行写操作,对第 1个页面进行读操作。CY7C136中有两个特殊信箱 单元分别对应存储器一端,地址分别是0xO7FE和 0x07FF,这两个信箱通过分别使另一端产生中断来 数据传送至PC。 0 0 0 g 口 ID若 g 89C52 CLK 地址发生器I1时序控制电路 RINDT  时序控制模块 I: SRTS_TAD C 图2数据存储模块结构原理图 模块主要由3部分组成:USB总线接El部分,包 括B类USB插座和PDIUSBD12接El芯片;微处理 器逻辑控制部分,包括AT89C52及逻辑控制电路; 双端数据存储区,包括双端RAM芯片CY7C136 (2 048×8 bits)和一个8位并行数据接El,结构原 理见图3 USB插座 电源插座 逻辑控制电路 口行 图3 USB接口模块结构示意图 该模块中,USB通信协议由PDIUSBD12和 AT89C52单片机共同解释并完成与Pc的数据交 换,从Pc接收到的数据或准备送往Pc的数据暂存 在CY7C136中,8位并行数据接El则用于连接上面 的数据采集模块以实现USB接El模块与数据采集 存储模块的通信。该模块相对于Pc而言是一个外 部USB设备,相对于数据采集模块而言相当于一个 占用2 048个外部存储数据空间地址单元的外部 RAM。 CY7C136是一个高速CMOS双端El RAM,每个 端El有独自的地址线、数据线和控制线,因此使用它 的两个单片机模块可以分别地读写任一地址单 元。它支持内部硬件优先权判决和硬件信箱中断. 采用这种芯片进行数据交换比较方便可靠。由于其 上述特点,实际使用中,为了防止USB接口模块与 数据采集模块同时对CY7C136的某一存储单元写 协调两端单片机模块对存储器的读写。 1.3硬件设计中应注意的问题 系统的数据采集模块中,数据存储单元 IDT71V416采用3.3 V供电,而其他单元基本采用5 V供电,对于这样的混合电平系统,在设计时要注意 以下几个问题: (1)两个电源之间电流互串问题。在等待或者 掉电时,3.3 V电源降到0 V,大电流将流通到地, 这使得总线上的高电压被下拉到低,容易引起数据 丢失或元件损坏。因此必须注意无论何时都不允许 电流流向VCC。 (2)接El输入转换门限问题。5 V器件和3.3 v 器件的接El以及rI1’L和CMOS间的电平转换存在 多种可能,因此驱动器必须满足接收器的输入转换 电平并要有足够的容限以保证不损坏电路元器件。 (3)另外,考虑到采样 精度以及USB的正常通 信,还应该考虑PCB的电 模块初始化 磁兼容问题。这里不再详 数据采集 述,具体可参考文献[2]。 二[ 采集数据存储 2软件设计 存储空间满?二≥=>,_  系统中程序采用Keil c编译 ,跟硬件系统相对 应,软件主要包括数据采集 写入CY7C136 程序和数据传输程序及PC 端的程序。数据采集模块 ≤垂 ≥ 软件的整体流程见图4。 触发USB模块的数据I 数据传输模块的程序 读入中断 l 中用于解释USB数据传 输协议的部分采用Philips 公司提供的USB51S函数 库,该库提供了l4个函数 、写入完毕?二:—二  、—谴 ._,,一 可以用来设置工作模式、 l Y (下转第36页) 图4数据采集模块 软件流程图 维普资讯 http://www.cqvip.com

・36・ 工业仪表与自动化装置 2006年第4期 Invoke函数方法的调用 』。下面给出了实现对OD— 测系统将核子非接触式测量技术、虚拟仪器技术、自 BC数据源连接和访问的主要源代码: 动测试技术结合起来,较好的解决了目前高压汽包 ADO—New—Recordset(NULL,&objHandle);//6,1建新 水位测量误差较大的问题,并具有直观显示、连续测 的记录集对象,并返回一个该对象的句柄 量、稳定可靠等优点,该仪表已在天津、石家庄、哈尔 CA—CstringToBSTR(”Select 4 from SWTable”, 滨等地的多台30万千瓦机组锅炉上连续工作3年 &varBstr);//SQL语句转换为命令字符串 左右,较好的满足了锅炉运行对水位监测的要求,取 sourceStr=CA_VariantBSTR(varBstr);//指定对数据 得了显著的经济效益。 源进行操作的命令字符串 参考文献: CA[1] 孙普男,王铁流.高压汽包核子水位计的研制及应用 —CStringToBSTR(”Provider=MSDASQL;Data Source=SWData”,&varBstr); [J].同位素,1996,9(1):1—6. ActiveC0nnecting CA—VariantBSTR(varBstr);//指 [2] 复旦大学,清华大学,北京大学.原子核物理实验方法 定与数据源连接的命令字符串 (上册)[M].北京:原子能出版社,1981. [3]PCL818HD User"s Manual[z].Taiwan:Advantech Co. ADOR—RecordsetOpen(objHandle,&errlnfo,sourceS ̄, Ltd,1994. ActiveC0nnecting, [4] 刘君华.基于LabWindows/CVI的虚拟仪器设计[M]. ADORConst—adOpenUnspecified, 北京:电子工业出版社,2003. ADORConst—adLockUnspeciifed,一1)//建立连接 [5] 杨刚,亢 洁,施 仁.基于Iabwind0ws/cVI和局 并打开记录集 域网的多机组振动监测分析系统[J].工业仪表与自 建立连接并打开记录集之后,即可对记录集进行 动化装置,2005,(2):38—39. 操作。需要注意的是在退出程序、结束数据库访问之 [6] 徐波,李行善.数据库访问技术在虚拟仪器开发平 前,应关闭记录和连接,并释放参数和对象句柄 。 台Iabwind0ws/cVI上的应用研究[J].电子测量与仪 器学报,2002,16(3):66—70. 5结束语 基于LabWindows/CVI的高压汽包核子水位监 (上接第42页) PDIUSBD12各端点数据缓冲区读写操作、PDIUS— 3结论 BD12各端点输人中断服务函数以及各端点输出中 系统所采用的器件性能较好,并且满足一定的 断服务函数。数据传输程序中用于双端RAM数据 经济性,由于在设计中考虑了诸如带宽、数据缓冲、 交换的程序为数据采集模块通过USB与Pc交换数 电磁兼容等因素,并且设计了高效的软件,因此在实 据提供一个透明的协议。程序主要包括初始化、主 际使用中,该系统的数据采集和通信效率均较高,运 循环和中断处理。初始化主要对单片机系统及外围 行也比较可靠,取得了良好的效果。 (包括PDIUSBD12)进行初始化操作,主循环主要是 参考文献: 等待来自上位机(Pc)的命令以及来自数据采集部 [1]佟德纯.工程信号处理及应用[M].上海:上海交通大 分的信息,中断处理完成来自PDIUSBD12以及 学出版社,1989. CY7C136的中断 , 。 [2] 吴建辉.印刷电路板的电磁兼容设计[M].北京:国防 Pc端的程序可以利用Philips公司提供的 工业出版社,2005. EasyD12库来编写。该库提供4个可以调用的函 [3] 尹 勇,王洪成.单片机开发环境uVision2使用指南 及USB固件编程与调试[M].北京:北京航空航天大 数,用于对PDIUSBD12端点l、端点2进行读写操 学出版社。2004. 作。考虑到系统既有较大流量的采样数据发送至 [4] 杨金岩.8051单片机数据传输接口扩展技术与应用 Pc,也有较小流量命令数据从Pc发送到系统,为避 实例[M].北京:人民邮电出版社,2004. 免数据在传送过程中丢失或数据混乱的情况,以 [5]Chits Cant著,孙义译.Windows WDM设备驱动程序 Visual C++为例,可以在应用程序中启动2个线程 开发指南[M].北京:机械工业出版社,2000. 来分别管理端点l和端点2的数据读写操作 。 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务