>
首页 » 业界动态 » 一种新型的USB数据采集系统的研究

一种新型的USB数据采集系统的研究

作者:  时间:2007-11-05 20:36  来源:
引 言

随着计算机技术的发展和普及,数据采集技术已在通信、智能仪器、地质勘探、工业自动控制等领域广泛应用。在生产过程中,应用这一技术可对生产现场的工艺参数进行采集、监视和记录,可提高产品质量,降低成本。在科学研究中运用数据采集系统可以获得大量的动态信息,是研究瞬问物理过程的有力工具,总之,无论哪个应用领域中,数据采集与处理运用恰当时,工作效率就会有很大的提高[1]。

鉴于以上的原因,各种数据的实时采集和处理在现代工业控制中已必不可少。我们经常采用PCI总线或RS-232串行总线,PCI总线有很高的传输率(可达132 Mbit/s),还能即插即用,但是它们的扩展槽相当有限,且插拔并不方便。RS-232串行总线连接方便,但其带宽非常有限,传输速度太慢,而且一条RS-232串口通信电缆只能连接1个物理设备。USB(通用串行总线)能很好地解决以上这些冲突,其接口简单灵活且有较高的数据传输率;主机能够对实时数据做出快速响应,并及时进行分析和处理,USB的优势相当明显。

在USB数据采集系统中,微控制器和USB接口的选择上有两种方式[2]:一是采用具备USB通信功能的单片机,如PDIUSBD12、USBN 9602;二是采用带USB接口的单片机,如,EZ2USB等。这两种方法需要自己写设备驱动程序,还需要了解应用系统程序与设备驱动程序的接口,当然还需把专用USB接口芯片的固件编程及接口了解清楚。另一种方法就是该系统采用CP2101转换芯片,CP2101内置有与计算机通信的USB协议,工作时,会在计算机上产生一个虚拟COM口,用户就可以按照通用串行口的控制方式来使用这个COM口。对于微机系统它是COM 3或COM 4,对于单片微机或其他信号处理单元,它是一个简单的I/O端口。

1 C8051F020单片机简介[3]

C8051F020单片机是集成的混合信号SOC(片上系统)的MCU。主要特点如下:具有与MCS51内核及指令集完全兼容的微控制器,除了具有标准8051的数字外设部件外,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件;内置SMBus、I2C、UART、SPI、WDT(看门狗定时器)和时钟振荡器等;高速8051微控制器内核流水线指令结构70%的指令的执行时间为1个或2个系统时钟周期;速度可达25 MHz,22个矢量中断源;4 352字节内部数据RAM 256+4k;64kB在系统可编程Flash程序存储器;外部并行数据存储器接口可达5 MB/s。2.7 V~3.6 V的工作电压;典型工作电流10 mA/25 MHz,多种节电休眠和停机模式。片内。JTAG调试电路提供全速非侵入式的电路内调试不需要仿真器;支持断点单步观察点堆栈监视器;比使用仿真芯片目标仿真头和仿真插座的仿真系统有更好的性能;完全符合IEEE 1149.1边界扫描标准。

C8051F020的ADC0子系统包括一个9通道的可编程模拟多路选择器(AMUX0),一个可编程增益(4、2、l、0.5)放大器(PGA0)和一个100 ksps(百万次采样每秒),12位分辨率的逐次逼近寄存器型ADC(A/D转换器),ADC中集成了跟踪保持电路和可编程窗口检测器。AMUX0、ADC数据转换方式及窗口检测器都可用软件通过特殊功能寄存器来控制[4]。

2 CP2101与驱动程序

CP2101是一种高度集成的USB转UART(异步串行数据总线)桥接器,提供一个使用最小化的元件和PCB(印制电路板)空间实现RS-232转USB的简便的解决方案。该芯片包含一个USB 2.0全速功能控制器、USB收发器、振荡器和带有全部的调制解调器,控制信号的UART,只需外界几个电容就可以实现USB信号转为RS-232 TTL电平信号;全部功能集成在IC中。无需其他的外部USB元件。

当第一次带电插人PC机USB接口时,系统会提示安装相应的驱动程序,驱动程序可从相关网站免费下载。驱动程序安装完后,系统会自动增加一个COM口,用户就可以按照传统的串行口控制方式来使用这个"COM口"。

3 数据采集系统结构

本次基于C8051F020与CP2101的数据采集系统是通过单片机的12位的ADC0(100 ksps)所采集到信号,通过UART0口经CP2101芯片连接到USB接口,最终送入计算机,基本的原理框图见图1。

4 系统的硬件设计

该系统硬件部分主要包括信号采集电路、传输电路、复位电路、程序下载电路、电源电路。信号采集直接由单片机自带的ADC完成,使用USB接口的传输电路需用CP2101进行电平转换,复位电路采用常用的硬件按钮复位,程序下载则采用片内JTAG调试电路。由于系统统一采用3.3 V供电,故将USB提供的5 V电压需LM1117元件进行转换,这样可以减少外在的设备,又可以提高系统的稳定性。具体电路图如图2所示。

5 系统软件设计

5.1 开发工具简介

a)开发工具主要技术指标:支持的目标系统为所有C8051Fxxx系列单片机,系统时钟最大可以达到25 MHz,通过USB接口与PC机连接,第三方工具支持Keil C。

b)IDE软件运行环境:要求PC机能够运行开发工具软件,并能与串行适配器通信。对PC机有如下系统要求:windows 95/98/Me/NT/2000/XP操作系统;32 MB RAM;40 MB自由硬盘空间;空闲的COM口。

5.2 软件编程

系统功能的实现除了有准确的硬件系统外,软件中的编程也是至关重要的。而要正确应用ADC功能,应按下列顺序编程[5]:设置参考电压→设置允许ADC→设置跟踪(启动)方式→设定数据对齐→配置通道→选择通道→设置转换时钟和增益→启动转换。操作SFR的顺序为:REF0CN→ADC0CN→AMX0CF→AMUX0SL→ADC0CF→ADC0CN。程序流程见图3。

由于篇幅有限。只给出ADC0的初始化程序:

6 系统测试结果与分析

系统通过ADC0,对片内集成的温度传感器所传输出来的信号进行采集。温度传感器的传输函数图如图4所示[6]。

其传输函数为:

式中:VT为传感器传输出来的电压信号;TE为传感器的输入温度。

12位ADC结果数据字在ADC0数据寄存器中存放如下:ADC0H[3:0]:ADC0L[7:0],USB调试窗口(此处从略)对数据寄存器中的数据(转换代码)显示在0x042D上下。

单片机内部ADC数据字转换公式如下:

式中:G为增益(G=1,在编程时由ADC0CF寄存器控制);Vref为参考电压(Vref=3.30V,在编程已经初始化);n为ADC0的位数,n=12。

由以上条件可得:Vin=0.861,Vin=VT,将VT=0.861代入式(1)得:TE=29.8℃,由于内置温度传感器的误差为±3℃,故温度71=29.8 ℃±3℃。

7 结束语

本文所介绍的基于C8051F020单片机的数据采集系统能够应用到许多领域,例如可以把ADC软件设置为差分输入,一路作为信号输入,另一路可以提供给DAC作为输出,实现滑尺电路,对微弱信号(核探测器、心音等信号)进行有效的测量。

相关推荐

SoC验证走出实验室良机已到

SoC  ICE  2014-01-17

蓝牙整合无线充电方案领舞穿戴式产品

SoC  Bluetooth  2013-12-31

Microchip推出全新领先的32位MCU系列

Microchip  MCU  2013-11-21

半导体商情:集成电路整体下行 MCU大跌

集成电路  MCU  2013-11-06

集成LIN系统基础芯片功能的三通道半桥驱动控制器

艾尔默斯  LDO  MCU  2013-11-04

低功耗MCU助力智能手表电池寿命大增

MCU  智能手表  2013-10-23
在线研讨会
焦点