简单的USB接口数据采集系统

jackxiang 2008-6-2 20:20 | |
http://www.picavr.com/news/2008-02/4172.htm
用USB接口的数据采集系统,使用简单方便,无需外接电源,还可以利用PC机强大的运算能力处理数据。这类系统一般都要用单片机做接口控制,对于不会使用单片机的人是个难题。这里介绍一个不用单片机的USB数据采集系统,只要会用VB编程就可以实现。
参考链接:http://www.picavr.com/news/2008-02/4172.htm
点击在新窗口中浏览此图片
一、系统的硬件构成

本系统的电原理如上图,CH371是USB接口芯片,MAX197多路AD转换器做数据采集,电脑对采集的数据进行处理。

CH371是南京沁恒电子出品的一种简单易用的USB接口芯片,它包括芯片本身和计算机端的通用驱动程序。CH371以硬件逻辑实现了USB通信协议传输控制的整个过程,通用驱动程序通过软件向计算机应用层提供设备级接口,因此用户不必考虑USB通信协议、固件程序、驱动程序、底层数据传输过程等,就可以设计出各种USB接口设备。

CH371有多种工作方式,除了数据传输方式外,它还可以工作在一种主控方式,即使没有连结单片机、DSP等控制器,也可以输出控制信号和输入数据。CH371的D7~D0、A3~A0都是双向引脚,它们可以被分为两组,分别设置用于输入或输出。把CH371的A3~A0与MAX197的CS、WR、RD、HBEN四根输入控制线相连,把D7~D0和MAX197的并行数据端口相连,就可以通过软件直接控制MAX197的工作。

MAX197是MAXIM推出的12位AD转换器,单5伏供电,内置4.096伏电压基准,外围电路很简单,仅需外接几只电容就可以工作。MAX197有内外两种时钟和采样模式,模拟输入量程和极性可选,有0~5伏、0~10伏、±5伏、±10伏四种。有8个模拟输入通道。所有这些都可以通过软件来选择,即向MAX197写入一个字节的控制字来实现,控制字的各位功能见下表:



PD1

PD0

ACQMOD

RNG

BIP

A2

A1

A0

功能

内外时钟和电源管理模式

内外控制采样模式

模拟信号量程

模拟信号极性

模拟输入通道选择

二、系统的软件设计

1.       CH371计算机端的软件接口

CH371在计算机端提供了三个层次的软件接口,最高层是应用层接口。应用层接口是由CH371动态链接库DLL提供的面向功能应用的API函数。每个函数实现一个具体的功能,并用简便易用的API参数代替设备级接口中所要求的数据格式,所有API在调用后都有操作状态返回,用户只要选择特定的API函数就可以实现所需的功能。

CH371动态链接库DLL提供的的API函数包括设备管理、数据传输、中断查询、I2C操作和直接控制等几类,我们这里要用的是两个直接控制函数。

CH371GetStatus(ByVal iIndex As Long, ByVal iStatus As Long,ByRef iDataReg As Long)As Boolean

它的功能是通过CH371直接输入数据和状态,其中iIndex指定CH37设备序号,iStatus指向一个双字单元,用于保存状态数据。Bit7~Bit0对应CH371的D7~D0引脚。IDataReg指向一个双字单元,用于保存数据寄存器的数据。

CH371SetControl(ByVal iIndex As Long, ByVal iCtrData As Byte, ByVal iCtrlAddr As Byte,ByVal iData0e As Boolean, ByVal iAddr0e As Boolean)As Boolean

它的功能是通过CH371直接输出控制信号。ICtrData是准备写入D7~D0数据寄存器的数据, iCtrlAddr是准备写入A3~A0数据寄存器的数据, 它们都必须在输出使能时才可以输出数据。iData0e控制D7~D0输出使能,1输出、0输入。iAddr0e控制A3~A0输出使能,1输出、0输入。

2.       VB应用程序

应用程序是用VB编写的,它的核心就是调用上述两个API函数,通过CH371的D7~D0和A3~A0向MAX197写入控制字,启动模数转换,最后读出转换结果。VB要使用CH371动态链接库中的API函数,首先要用Declare语句在全局模块的代码段声明这些函数,CH371芯片厂商在其提供的VB DEMO中,有两个MODULE已经包含了CH371所有的API函数,用户只需要在自己的工程项目中将其加入即可。通过这两个函数调用,向MAX197写入控制字,设定模数转换器的工作方式、选择输入通道、启动模数转换,最后读入转换结果,存入电脑,再做进一步处理

参考链接:http://www.picavr.com/news/2008-02/4172.htm

由于CH371芯片的功能有限,对于新客户建议用下列芯片代替CH371,
新的芯片比CH371功能更多,更易使用,数据传输速度更快,成本更低

1、如果应用电路中有单片机或者DSP等,打算通过USB与计算机通讯,
那么建议用CH372或者CH375或者CH374代替CH371,
因为CH372/CH375/CH374的缓冲区是CH371的8倍,所以传输速度更快,
可达每秒300K甚至800K字节以上,即使是MCS51单片机也能够达到300KB

2、如果应用电路中没有单片机和DSP,只是打算通过CH371直接控制
外部逻辑电路,那么建议用CH341代替CH371,
因为CH341可以提供异步串口、并口以及类似I2C的两线串行接口,
CH341的串口波特率支持从50bps到2000000bps,支持速率控制,
CH341的并口有两种时序,分别是8位仿EPP并口和8位仿MEM并口,
并口的速度可达每秒300K字节,不但速度快而且容易I/O扩展,
CH341的仿I2C接口的时钟约为200KHz,传输速度约为每秒7KB

3、CH372或CH375或CH374必须在单片机或DSP的控制下才能与计算机通讯,
CH375和CH374还能与USB设备(如U盘、USB打印机、USB摄像头)通讯,
CH341可以直接与计算机通讯,不需要单片机或者DSP,可以用于
I/O扩展,I/O控制,简单的AD或者DA,USB转串口、USB转并口等。

4、网站上有用CH375或者CH374或者CH372升级CH371的详细说明,
注意,CH372/CH375/CH374和CH341与CH371的部分引脚不同

5、如果有其它技术问题,请联系技术支持EMAIL:
tech@winchiphead.com

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/1064/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2008-6-3 17:26
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]