积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> AD/DA >> 应用论文
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
基于ADuC841的USB接口数据采集系统设计
 
作者:天津大学—ADI联合实验室 李玉国 李刚 林凌   来源:电子产品世界    点击数:137   更新时间:2008-6-10
您可以添加到网摘 让更多人关注此文章:

    

摘要: 本文提出了一种傅立叶光谱仪中USB数据采集系统的简易实现。

关键词: USB;微控制器;多通道;数据采集


引言

在微机测控系统中,经常会遇到需要输入各种模拟信号的情况,这时必然要进行A/D转换。有时在某些实际项目中,为了采集某些模拟量而选用一些专用的数据采集卡,不仅使得系统更加复杂,不容易实现功能扩展,还增加了系统设计成本。另一方面,USB接口操作简单越来越得到广泛的应用,因此设备的USB接口化也是一个发展趋势。

XFT-1型开放式傅立叶变换光谱仪采用了经典的麦克尔逊干涉仪,干涉后的光强随着动镜的移动而发生变化,光电接收器将接收到的缓慢变化的光强信号转化为了相应的电压信号。为了去除由于动镜移动速度不均匀所造成的误差,模块中采用了双通道,同时测量参考光(He-Ne 激光)和被测光源后,利用参考光的信息校正被测光测量位置误差。在XFT-1型开放式傅立叶变换光谱仪中,采用了本文提出的这种简易的USB数据采集系统。考虑到经济、实用因素,系统中采用了单片机和通用USB接口芯片,将两者结合实现USB接口的数据采集系统设计。上位PC则采用了C#语言编程,将采集到的数据实时显示、处理分析、数据保存和打印。


硬件电路设计

本系统以ADI公司的ADuC841为核心实现数据采集和控制。此单片机具有单指令周期20MIPS 8052内核和8通道高速420Ksps、12bit模/数转换器,支持在线下载。控制器和ADC集成缩短了开发时间,提高了系统的稳定性。

本文以南京沁恒的USB接口芯片CH375为核心实现USB数据传输。如下特点:兼容USB2.0;内置固件模式下屏蔽了相关的USB 协议,自动完成标准的USB 枚举配置过程,完全不需要本地端控制器作任何处理,简化了单片机的固件编程;通用Windows 驱动程序提供设备级接口,通过DLL 提供API 应用层接口。

ADuC841和CH375的接口电路图如图1所示。ADuC841和CH375有串行和并行两种数据线连接方法。模块中为了提高速度采用了并行的方法,将ADuC841的P0口与CH375的并行总线相连。除了读写信号连接外,采用A14作为地址位。A14=0,表示数据总线上是数据;A14=1,表示数据总线上是命令。USB传输过程中,ADuC841与CH375通过外部中断触发,采用ADuC841的INT0外部中断引脚直接和CH372的INT#引脚相连。CH375在正常工作时ACT#引脚输出为低电平,因此在电源和此引脚间加一个发光二极管能够指示USB接口芯片是否正常工作。发光二极管的亮灭为下位机程序的调试提供了重要的信息。


系统软件设计

系统软件是由下位机程序(固件程序)、USB系统驱动程序和应用程序三部分构成。利用USB协议传输数据的模型如图2所示。本系统的软件程序主要包括单片机C语言编写的数据采集和数据传输子程序,以及用C#编写的上位PC机采集到的数据实时显示、处理分析、数据保存和打印子程序。

下位机程序

设备的固件程序是数据采集系统的核心,下位机程序主要利用KeilC51编写。为了降低复杂程度和增加程序的可维护性,下位机程序设计采用先查询PC机通过USB接口传过来的命令再执行的方式。在上位机和下位机通讯过程中设定协议,在协议中设定相应的命令字和校验字段。主要的命令字有系统检测是否正常、设定采样频率、设定采样点数、采样启动信号等。下位机主程序为不断扫描命令字变量,看其是否有效。被监视命令字初始设为无效,上位机发出新的命令字后,下位机进入中断子程序接收命令字,命令字设为有效。下位机扫描到新命令字的内容后,执行相应的操作,然后将待监视命令字设为无效,继续等待新的命令字。这种设计细化了任务的功能,有利于开发、调试和维护。

数据采集子程序在主程序接收到启动数据采集过程命令字后运行。当单片机接收到上位机通过USB发送过来的命令字后,启动数据采集过程。它利用片内的定时器设定采集时间间隔,利用片内的ADC进行数据采集。在定时中断子程序中,单片机将采集两个通道的数据,将它们按一定的顺序存放到缓冲区中,然后检查缓冲区是否满,如果缓冲区不满,定时中断子程序结束,否则将缓冲区中的数据通过CH375发送给上位机,清空缓冲区,定时中断子程序结束。

USB驱动程序

本系统的一大优点就是开发容易。南京沁恒公司已经为用户提供了通用的USB驱动程序。只需要安装现有的USB驱动安装程序,它为应用程序的开发提供了很多接口函数。由于主要采用批量上传和批量下载方式,所以主要用到CH375ReadData,CH375WriteData等函数。这一部分不需编写程序。

上位机程序

上位机程序可以采有多种软件开发工具,本系统在Visual Studio2005开发环境下,用C#语言编写了应用程序。主要完成读取、显示、保存、打开和打印数据等工作。

数据读取过程是上位机程序的关键部分。为了在从下位机读取数据时不影响数据采集界面响应的流畅,在程序设计中利用多线程实现数据读取。数据采集工作在单独的子线程中完成,而主线程则负责完成鼠标、键盘等对用户的响应。在数据采集子线程中,通过DLL 提供API 应用层接口直接访问USB驱动程序中的缓冲区。成功打开设备后,利用CH375WriteData接口函数向缓冲区中写命令字,向单片机发送命令;利用CH375ReadData接口函数读取缓冲区中的数据,获得采集到的数据。

在Visual Studio2005开发环境下,编写上位机程序开发难度相对较低。数据实时显示增加了数据采集过程的直观性。将采集到的数据通过GDI+在PictureBox控件上绘图,设置一个软件定时器,每隔一定的时间将图形重绘一次,由于时间间隔小于0.1s,视觉上是连续变化的曲线。数据的保存和打开功能主要是利用C#中的StreamWriter类和StreamReader类完成。打印数据和图形主要使用PrintDocument类,调用Print方法后,在PrintDocument_PrintPage事件中将需要打印的文字和图形输出或重绘即可打印。


结语

利用单片机和USB接口芯片的简单连接即可扩展出一个USB接口的数据采集模块,而且无需外扩数据存储器,同时,该采集系统还可充分利用ADuC841丰富的片上外设和I/O资源进行功能上的扩展。在XFT-1型开放式傅立叶变换光谱仪系统中,利用了ADuC841通过同步电机控制麦克尔逊干涉仪动镜位置。经过测试,该系统采样数据精度较高,传输速率较快,性能稳定,通过与PC机相连后,不仅使得数据存储量大,而且更易于进行数据处理,经济简单,在XFT-1型开放式傅立叶变换光谱仪系统中性能稳定。


参考文献:
1.  http://www.analog.com/UploadedFiles/Data_Sheets/ 247905996157419352262670829ADuC841_2_3_0.pdf
2.  Universal Serial Bus Specification Reversion 1.1. www.usb.org, 1998
3.  http://winchiphead.com/download/CH372/CH372DS1.PDF
4.  http://winchiphead.com/download/CH372/CH372DS2.PDF

[1]



相关文章
· 基于LPC2378的数据采集系统的设计[270]
· AD7890型串行数/模转换器与51系列单片机的接口设计[187]
· 基于DSP的逆变电源控制系统设计[85]
· 基于ARM及蓝牙技术的无线测试系统设计[149]
· 基于AD7888的度激光器监测系统的设计[196]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM嵌入式系统基础教程(N

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
华为计划收购北电业务 华为
华为计划收购北电业务 华为
华为计划收购北电业务 华为
华为计划收购北电业务 华为
华为计划收购北电业务 华为
安森美和微芯放弃联合收购Atmel
美国国家半导体将裁员330人
2009年全球半导体市场销售额将下滑
1208万惠普双核电脑芯片被盗&nb
太阳能与LED照明相结合势在必行
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
求奇想达QXD-DM642开发...
微机电系统集成与性能、成本和可...
[分享]高频逆变器中高频变压器...
采用发光二极管制作的可调直流稳...
DSP实现方案的比较与应用选择...
DSP系统设计流程...
硬件设计中一些术语的简称...
PID调节...
[转帖]模电学习的两个重点...
最豪华适用的S3C2440开发...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网