| 网站首页 | 精品文章 | 下载中心 | 本站教程 | 邮购须知 | 电子商城 | 网站简介 | 常见问题集锦 | 
您现在的位置: 新启点单片机 >> 精品文章 >> 通信与网络 >> 文章正文 用户登录 新用户注册
[组图]基于EZ-USB的数据采集卡的设计与实现            【字体:
基于EZ-USB的数据采集卡的设计与实现
作者:谢兰英 马…    文章来源:PLC&FA    点击数:    更新时间:2006-7-4

1  引言
在工业生产与科学研究中,经常需要通过计算机对一些模拟量进行采集,如温度、压力、湿度、酸碱度等等。目前最常用的采集方式是A/D数据采集卡和RS-232、RS-485等总线板卡。数据采集设备与计算机之间的接口有多种形式,如串口、并口、PCI总线等。这些方式安装麻烦,使用不灵活。
USB作为现在越来越流行的计算机必备的接口有着它强大的功能—“即插即用”。这对数据采集卡与PC机通讯提供极大的方便。基于USB的数据采集卡是设计数据采集卡发展的方向之一。

2  USB特性
通用串行总线(Universal Serial Bus, USB)对连接PC机外围设备是一种很好的解决方案。设备连接后由USB自动检测,并由软件自动配置,完成后即可使用,不需要用户干涉。USB的特点如下:
(1) 通讯速度快。支持三种总线速度,即低速1.5Mbps、全速12Mbps和高速480Mbps。
(2) 支持真正意义上的热插拔。对设备的插入和断开,主机软件都会作出动态的调整。
(3) 可以采用总线供电。USB总线可以提供+5V,最大电流500mA的电源,USB芯片一般是3.3V供电。
(4) 通过Hub扩展,最多可连接多达127个外设。
USB还定义四种不同传输类型来满足不同设备需求。传输类型:块传输、同步传输、中断传输和控制传输。

3  数据采集卡的硬件设计
3.1  数据采集卡构成
数据采集卡主要由A/D转换、微控制器以及USB通讯接口构成。为了在不与PC机相连的情况下进行数据采集,所以需要扩展外部FLASH来存储采集的数据与程序。扩展数据采集卡的数据I/O口使采集过程更加方便。数据采集卡的结构图如图1。

图1     数据采集卡硬件结构图
3.2  A/D转换器的选择
A/D 转换器的选择应根据采集的精度、速率、通道数等元素进行选择。为了使采集系统更加灵活应用,应选择比较通用的A/D转换芯片。本采集系统采用了AD公司的 AD571,它是一款多输入范围的10位模数转换,需要电压源15V,输入的范围为0~10V与-5V~+5V这两种。用户可非常方便地与输出信号标准为 4~20mA的非电量变送器或者12V和5V供电的传感器接口。芯片带有采样保持器,转换时间为25,不需要外部时钟,非线性误差为LSB;该芯片提供数据读取,采用并行接口,与外部标准的微处理器连接简单。
3.3  微控制器选择
数据采集卡的微控制器采用CYPRESS公司的CY7C68013 56脚的EZ-USB控制芯片。它集成了1个增强型的8051、1个智能USB串口接口引擎、1个USB数据收发器、3个8位I/O口、16位地址线、8 位数据线和1个口。增强型的8051内核完全与标准的8051兼容,而性能可达标准8051的3倍以上。
CY7C68013内部有16K的程序与数据存储空间,它提供了6个端点:端点0、端点1、端点2、端点4、端点6、端点8。在内部数据区的0x200到0xfff为端点分配一定大小的数据区作为端点的缓冲数据区。其中,端点0是控制端点,64K的缓冲区,PC机通过端点0来初始化EZ-USB。端点1分为in型端点1和out型端点1,两者的缓冲区分开。端点2、端点4、端点6、端点8为大小可以配置的类型可配置的缓冲端点,PC机可以直接对其进行操作。其引脚图如图2。

图2     68013的引脚图
数据采集卡设计中,PA、PB、PC口都作为普通的I/O口用,其中PA和PB口作为A/D转换的数据口;通过I/O口扩展外部FLASH,用来存储采集的数据与程序;除I/O口外的其它引脚含义如表1。

4  数据采集卡软件设计
USB数据采集卡需要固件和驱动程序两方面的开发,而数据采集卡的程序开发重点是USB固件程序开发。下面笔者对数据采集卡的固件程序进行详细地介绍。
4.1  数据采集卡的固件程序开发
Cypress 公司为USB外设开发做了很多工作,特别是再枚举过程,为USB开发提供了很大的方便。外设未通过USB接口到PC机之前,外设的固件程序已经存储在PC 机中,一旦连接到PC机,PC机则先询问该外设是“谁”(即读设备描述符)才开始枚举。之后将该外设的固件下载到EZ-USB的RAM中,然后再模拟与主机断开连接之后又重新进行连接上,这就是第二次枚举。图3是固件程序框架图。

图3     固件程序框架图
EZ-USB固件程序上电或者在复位时,初始化所有的内部状态变量,然后调用函数TD_Init()初始化端口。总线设备接口为非配置状态,并同时打开中断。当完成上面的任务后,EZ-USB固件程序开始重新枚举设备直到端点0收到SETUP包为止。一旦接收到 SETUP包,固件程序就开始进行任务分配,任务分配是依次执行下面过程:
(1) 调用用户函数TD_Poll(),执行一次数据采集,并将采集数据送到out型端点缓冲区。
(2) 检测是否有标准的设备请求,如果有,则执行指令并作出相应的操作。
(3) 检测USB是否有挂起事件。如果有USB挂起事件,则调用用户程序TD_Suspend(),当TD_Suspend()返回为真时,处理器挂起,USB 检测是否有重新开始事件,如果没有USB重新开始事件,USB继续挂起,直到USB检测到有重新开始事件发生,才调用用户程序TD_Resume(),并继续执行步骤(3),当TD_Resume()返回为真或者检测到TD_Suspend()返回为假时,则调用用户程序TD_Poll(),完成数据采集的功能,依次循环。
另外,固件程序中还定义了EZ-USB中断,可以利用中断来开发满足特定要求的程序。
4.2  数据采集卡的驱动程序
利用VC++6.0、2000DDK和NuMega DriverStudio来配置DriverWorks开发环境,在VC++6.0的主菜单DriverStudio中利用Driver Wizard驱动程序设计向导很容易设计出USB数据采集卡的驱动程序,本文不作具体介绍,请参考有关书籍。

5  USB数据采集卡在人体皮肤老化中的应用实例
人体皮肤老化是将人体皮肤的多种指标(例如:温度、湿度、酸碱度、红色素、黑色素等十多种)采集,并通过对这些指标进行综合分析,经过专家系统的推理,推理出不同人体皮肤是否患皮肤病以及皮肤老化的程度。对人体皮肤多指标的采集是人体皮肤老化中的重要的第一步。人体皮肤指标的采集就是基于EZ-USB数据采集卡而设计的。数据经 USB通道采集进PC机中,供用户程序使用,用户程序的主界面如下图,图中只对温度、湿度、酸碱度三个指标进行了测试。具体数据如图4所示:

图 4     人体皮肤检测系统(测试)


结束语
基于USB的数据采集卡为采集数据提供了很大的方便,在设计过程中更能突显出USB即插即用的特性,为数据采集卡将数据传输至PC机中提供了方便。基于EZ-USB的数据采集卡已经实现,笔者相信,基于USB的数据采集卡将是数据采集卡设计发展的重要方向。

 

文章录入:candy    责任编辑:candy 
  • 上一篇文章:

  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)