用USB接口的数据采集系统,使用简单方便,无需外接电源,还可以利用PC机强大的运算能力处理数据。这类系统一般都要用单片机做接口控制,对于不会使用单片机的人是个难题。这里介绍一个不用单片机的USB数据采集系统,只要会用VB编程就可以实现。
一、系统的硬件构成
本系统的电原理如上图,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写入控制字,设定模数转换器的工作方式、选择输入通道、启动模数转换,最后读入转换结果,存入电脑,再做进一步处理。
这里还没有内容,您有什么问题吗?
电子电路资源推荐
- 零起步轻松学数字电路(第2版) 蔡杏山
来源:下载中心
- 工程师应该掌握的20个电路
来源:大学堂
- 天祥电子 单片机开发板proteus仿真原理图 (8051,AVR,PIC)
来源:下载中心
- 高频电子线路
来源:大学堂
- 戴维宁定理:概念介绍及其求解过程
来源:电路图
- 叠加原理:概念及其求解过程
来源:电路图
推荐帖子 最新更新时间:2024-11-13 08:52
- 温度问题为您解决(一)温度传感基本原理
- 在个人电子产品、工业或医疗应用的设计中,工程师必须应对同样的挑战,即如何提升性能、增加功能并缩小尺寸。除了这些考虑因素外,他们还必须仔细监测温度以确保安全并保护系统和消费者免受伤害。 众多行业的另一个共同趋势是需要处理来自更多传感器的更多数据,进一步说明了温度测量的
- 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大学堂---- TIDA-050007 超低功耗真无线耳机盒电源管理方案
- 变频电源的应用目的及领域
- 低功耗
- 问一个wince5.0触摸屏驱动的问题 ?
- GPIO_Config 是什么意思
- 【TI荐课】#直播回放:TI 毫米波传感器在智能家居中的应用#
- C语言高效编程的的四大绝招
- 学模拟+《运算放大器噪声优化手册》05 跳跃噪声
- 液晶显示器出现白色横线问题
- 求助
- ccs的三种颜色格式
- 为什么在FatFs文件系统下写文件会出现这个问题?
- 开发板申请-基于eZ430-RF2500的无线收发实验
- PID调节如何实现无超调高响应速度?
- 关于FPGA接收突发数据的问题
- 算法
- 工具开关
- EMI强化放大器介绍
- 【Atmel SAM R21创意大赛周计划】第4周 无线部分初探
- 400G DR4、FR4、LR4、SR8 QSFP-DD 光模块概述