首页 > 微机单片机 >接口电路 > 简单的USB接口数据采集系统

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

来源:互联网发布者:张三叔 关键词: 数据采集电路 MAX197 CH371 更新时间: 2024/08/21

用USB接口的数据采集系统,使用简单方便,无需外接电源,还可以利用PC机强大的运算能力处理数据。这类系统一般都要用单片机做接口控制,对于不会使用单片机的人是个难题。这里介绍一个不用单片机的USB数据采集系统,只要会用VB编程就可以实现。

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

一、系统的硬件构成

本系统的电原理如上图,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写入控制字,设定模数转换器的工作方式、选择输入通道、启动模数转换,最后读入转换结果,存入电脑,再做进一步处理。

提问/讨论

这里还没有内容,您有什么问题吗?

我要提问/讨论

推荐帖子 最新更新时间:2024-11-21 18:33

温度问题为您解决(一)温度传感基本原理
在个人电子产品、工业或医疗应用的设计中,工程师必须应对同样的挑战,即如何提升性能、增加功能并缩小尺寸。除了这些考虑因素外,他们还必须仔细监测温度以确保安全并保护系统和消费者免受伤害。 众多行业的另一个共同趋势是需要处理来自更多传感器的更多数据,进一步说明了温度测量的
 EEWORLD社区模拟与混合信号
关于firstboot的问题
似乎是很傻的问题。。。就是怎样才能定制firstboot?我用的是AT9263的官方BSP,我看了一下firstboot.bib,里面firstboot的大小是4k,而我编译出来的firstboot总是大于4k,也就是说被分成了nb0和nb1两个文件,我该怎样才能定制firstb
 hoohoo2002嵌入式系统
我的M8学习板卖不出去,现在把PCB这里就共享给大家吧!
希望对初学者有帮助! 我的M8学习板卖不出去,现在把PCB这里就共享给大家吧! 截图 实物图 谢谢楼主了,唉好人啊 板子06年画的!请多多指教啊! 板子虽然用不上,但是感谢楼主共享!~ 很不错呀。 曾经不小心买零件时搭了一片ATTiny13,一直拿来欣赏用…… 感谢了,楼主
 蓝雨夜Microchip MCU
想请教Vxworks操作系统如何用U盘做启动盘??
我最近想学习用U盘做启动盘!! 想请教Vxworks操作系统用U盘做启动盘的具体步骤?? 不知能否给些建议??? 我按照《VxWork驱动及分布式编程》做. 下面的代码不知道是不是该放在bootconfig里面. 具体应该放在什么地方呢?? #define FIND_CHCI 1
 renrongwen实时操作系统RTOS
msp430经典讲解
msp430经典讲解,适合初学者 对430玩的不熟练,,看看这个资料有用哦,, msp430经典讲解 还不错,不过汇编太多了点 还不错,不过汇编太多
 qwqwqw2088微控制器 MCU
PCB导入问题求助
如下图,不知问题出在哪,求指教,谢谢~ PCB导入问题求助 另附:原理图为9se所画,上面所用为Protel DXP 直接打开的还是导入的? 一般都是PCB封装的问题,检测这些元件是否有封装 99软件画的原理图,导入到ad中,先加入工程中,编译一下即可。 qwqwqw2
 dirtyPCB设计

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

EEWORLD 电路图 站点相关: 下载中心 Datasheet 参考设计

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved