1、 数据采集综合性训练 目 录一、科研训练目的以及内容3二、科研训练设备3三、采集系统构成3四、驱动程序说明5五、程序框架6六、代码关键算法说明7七、实验总结及讨论8八、专题资料总结11 参考文献17指导教师:邹远文 材料科学与工程学院生物医学工程专业0843015044王夕雨一、 科研训练目的及内容1、科研训练目的数据采集是仪器设计中的关键环节,涉及计算机语言、微机原理、操作系统、数字电路、嵌入式系统、数字信号处理等多门课程的内容;同时要求具备计算机编程、设备器件组装等实际操作能力。通过此项训练,能将多门课程的内容融合,加深学生对课程内容的理解,提升学生实际运用课程知识的能力;同时为学生进入科
2、研训练和毕业论文阶段,打下工程运用的基础。2、科研训练内容1、USB和BIOPAC的AD/DA、数字IO的编程(VC+)和使用2、练习采集数据存储与管理3、练习示波器和信号发生器二、科研训练设备1、计算机2、USB数据采集卡和BIOPAC数据采集器3、示波器和信号发生器三、采集系统的构成本次数据采集系统主要是USB数据采集与电脑和示波器数据采集,信号发生器用FG-275/FG-273A。图1数据采集卡图2信号发生器 图3 示波器USB数据采集系统的构成如下图1所示。1图4、USB数据采集系统示波器数据采集系统的构成如图5。 泰克TDS3000C系列示波器拥有高达500MHz的带宽,在紧凑的电池
3、供电的设计中提供了经济的性能,这一流行的产品系列现在配有USB主机端口和PC连接软件,同时提供了熟悉的操作和简单的导航功能,您可以用更少的时间学习和重新学习怎样使用示波器,用更多的时间完成手头的任务。 2 图5、示波器数据采集系统FG-275/FG-273A函数信号发生器。3FG-273A/-275函数信号发生器规格方波特性:对称性:3%或更小(100Hz时)上升及下降时间:最大100ns(最大输出) 正弦波特性: 失真:1%或更小(100KHz时) 三角波特性: 线性:1%或更小(100KHz时) 电源要求:100/120/220/240V AC,50/60Hz,约20VA 尺寸:240(宽
4、)64(高)190(长)mm重量:1.8kg 特点:扫描/函数/脉冲信号产生 频率范围0.5Hz-5MHz 内置5Hz-10MHz频率计多种输出波形:正弦波、三角形波、方波、TTL电平方波和CMOS电平方波 对数/线形扫描功能,可同时或独立设定起始频率和中断频率 频率计数器功能,可独立设置频率范围和门时间 VCG(外部频率控制终端),可通过外接电压(010V)控制输出频率技术参数:型 号:FG-273AFG-275输出波形:锯齿波、正弦波,方波,三角波,TTL-电平方波,脉冲波,CMOS-电平,方波,锯齿波震荡频率范围: 0.02Hz2MHz 分7档(1,10,100,1K,10K,100K,
5、1M)0.5Hz-5MHz分7档(1,10,100,1K,10K,100K,1M)频率精度:最高1位最高4位(数字显示输出) 四、驱动程序说明1、批量取得AD数据的驱动程序4 当有了hDevice设备句柄后,便可使用InitDeviceAD函数初始化AD部件,关于采样通道、频率等的参数的设置是由这个函数pADPara参数结构体决定的。只需要对pADPara参数结构体的各个成员简单赋值即可实现所有硬件参数和设备状态的初始化,然后这个函数启动AD设备,接着便可用ReadDeviceAD反复读取AD数据以实现连续不间断采样,当需要关闭AD设备时,用ReleaseDeviceAD便可实现(但设备对象h
6、Device依然存在)。2、USB设备管理驱动程序4 由于这里的USB设备驱动程序采用面向对象编程,所以使用设备的一切功能,必须首先用CreateDevice函数创建一个设备对象句柄hDevice,有了这个句柄,就相当于拥有了对该设备的控制权。让后将此作为参数传递给其他函数,如InitDeviceAD可以使用hDevice句柄以初始化设备的AD部件并启动AD设备,ReadDeviceAD函数可以用hDevice句柄实现AD数据的采样批量读取,SetDeviceD0,函数可以实现开关量的输出等。最后可以通过ReleaseDevice将hDevice释放掉。3、USB设备接口驱动程序列表4函数名函
7、数功能备注1、设备对象操作函数CreateDevice创建USB总线的设备对象GetDeviceCount取得设备总数GetDeviceCurrentID取得设备当前ID号ResetC复位USB设备RealseDevice关闭设备,且释放USB设备对象2、AD采样操作函数InitDeviceAD初始化USB设备AD部件,准备传数ReadDeviceAD连续批量读取USB设备上的AD数据RealseDeviceAD释放USB设备对象中的AD部件3、AD辅助函数(硬件参数设置、保存、读取函数)LoadParaAD从Windows系统中读取硬件参数SaveParaAD往Windows系统保存硬件参数
8、4、DA操作函数WriteDeviceAD输出DA数据5、DIO数字开关量函数CreateDeviceDI开关输入函数CreateDeviceDO开关输出函数 五、程序框架USB数据采集卡采集数据A/D程序框架如图6所示。4图6 USB数据采集框架注意:图中较粗的虚线表示对称关系。如红色虚线表示CreateDevice和ReleaseDevece两个函数的关系是:最初执行一次CreateDevice,在结束时就须执行ReleaseDevice。绿色虚线表示InitDeviceAD与ReleaseDeviceAD成对称方式出现。 六、代码关键算法说明AD采样操作函数的说明:41、初始化设备对象函
9、数原型: Visual C+ & C+Builder: BOOL InitDeviceAD(HANDLE hDevice,PUSB2828_PARA_AD pADPara) Visual Basic: Declare Function InitDeviceAD Lib “USN2828”(ByVal hDevice as long,_ByRef pADPara as USB2828_PARA_AD) As Boolean Delphi: Function InitDeviceAD(hDevice:Integer; pADPara: PUSB2828_PARA_AD): Boolean:StdC
10、all; External USB2828 Name InitDeviceAD LabView:功能:它负责初始化设备对象中的AD部件,为设备操作就绪有关工作。2、批量读取USB设备上的AD数据函数原型:Visual C+ & C+Builder: BOOL ReedDeviceAD(HANDLE hDevice, PWORD pADBuffer, LONG nReadSizeWords, PLONG nReTSizeWordsVisual Basic: Declare Function ReedDeviceAD Lib “USN2828”(ByVal hDevice as long,_ByR
11、ef pADBuffer As Integer,_B yRef nReadSizeWords As Long,_ ByRef Val nReTSizeWords As Long,)As BooleanDelphi: Function ReedDeviceAD(hDevice :Integer;pADBuffer:Word;nReadSizeBytes: LongWord;nRetSizeBytes:LongArray): Boolean StdCall;External USN2828 Name ReadDeviceAD;LabView:功能:读取USB设备AD部件上的批量数据。待读完制定长度
12、的数据才返回。它必须在InitDeviceAD和 ReleaseDeviceAD之前调用。、释放设备对象中的AD部件函数原型:Visual C+ & C+Builder:BOOL ReedDeviceAD(HANDLE hDevice)Visual Basic: Declare Function ReleaseDeviceAD Lib “USN2828”(ByVal hDevice as long)As BooleanDelphi: Function ReleaseDeviceAD(hDevice: longint): Boolean StdCall: External USN2828 Nam
13、e ReleaseDeviceAD;LabView:功能:释放设备对象中的AD部件所占有的系统资源。七、实验总结及讨论(一)、实验总结1、用示波器采集信号发生器的数据 (1)、示波器的面板如图3所示。导航简单,熟悉的操作,帮助缩短学习周期, 专用前面板控制,您可以迅速进入所需的功能 ,USB主机端口,可以简便地存储和传送测量信息 ,使用OpenChoice和NI LabVIEW SignalExpress 泰克版软件,在PC上存档和分析数据 ,重量轻,设计紧凑,可以简便地在实验室之间携带。实验波形 图(1)锯齿波图(2)正弦波图(3)三角波图(4)方波2、用USB数据采集卡采集信号发生器的数据
14、(1)、USB2828数据采集卡是阿尔泰公司的产品。5USB2828上集成了12位、16路、采样率可达100KHz的AD模拟量输入功能,4路、12位、输出速率可达100KHz的DA模拟量输出功能,8路、TTL兼容的DI数字输入功能,8路、TTL兼容的DO数字输出功能。(2)、此款数据采集卡的接口为USB,在PC机上需要首先安装驱动程序,然后编写数据采集程序。1、首先安装驱动程序,双击USB2828文件夹下的App子文件夹中的setup.exe即可完成驱动的安装,安装完成之后可以使用示例程序查看数据采集情况;2、数据采集软件编写,厂家提供了Visual C+C+Builder、Visual Ba
15、sic、Delphi以及LabViewCVI等 API接口函数,以VC为例,创建了工程文件之后只需要将Usb2828.lib和Usb2828.h两个文件引入工程,就可以对其进行操作。(3)、运用USB2828数据采集卡可以方便的设置采集信号的采集频率,设置的采集频率不同,产生的波形各不相同。实验产生的各种波形以及所选用的采集频率如下图所示。 正弦波锯齿波三角波方波 3、结果讨论 通过比对不同波形可知,在调整过程中,频率会对波形造成影响,不同的波形对频率的要求也不同。在实际操作过程中也要考虑到仪器的老化和损坏问题,示波器接头接触不良也会影响波形的输出。八、专题资料总结AD的原理及目前产品(一)原
16、理7:AD:模数转换,将模拟信号变成数字信号,便于数字设备处理。DA:数模转换,将数字信号转换为模拟信号与外部世界接口。具体可以看看下面的资料,了解一下工作原理:1. AD转换器的分类 下面简要介绍常用的几种类型的基本原理及特点:积分型、逐次逼近型、并行比较型/串并行型、-调制型、电容阵列逐次比较型及压频变换型。 1)积分型(如TLC7135) 积分型AD工作原理是将输入电压转换成时间(脉冲宽度信号)或频率(脉冲频率),然后由定时器/计数器获得数字值。其优点是用简单电路就能获得高分辨率,但缺点是由于转换精度依赖于积分时间,因此转换速率极低。初期的单片AD转换器大多采用积分型,现在逐次比较型已逐
17、步成为主流。 2)逐次比较型(如TLC0831) 逐次比较型AD由一个比较器和DA转换器通过逐次比较逻辑构成,从MSB开始,顺序地对每一位将输入电压与内置DA转换器输出进行比较,经n次比较而输出数字值。其电路规模属于中等。其优点是速度较高、功耗低,在低分辩率(12位)时价格很高。 3)并行比较型/串并行比较型(如TLC5510) 并行比较型AD采用多个比较器,仅作一次比较而实行转换,又称FLash(快速)型。由于转换速率极高,n位的转换需要2n-1个比较器,因此电路规模也极大,价格也高,只适用于视频AD转换器等速度特别高的领域。 串并行比较型AD结构上介于并行型和逐次比较型之间,最典型的是由2
18、个n/2位的并行型AD转换器配合DA转换器组成,用两次比较实行转换,所以称为Half flash(半快速)型。还有分成三步或多步实现AD转换的叫做分级(Multistep/Subrangling)型AD,而从转换时序角度又可称为流水线(Pipelined)型AD,现代的分级型AD中还加入了对多次转换结果作数字运算而修正特性等功能。这类AD速度比逐次比较型高,电路规模比并行型小。 4)-(Sigma?/FONTdelta)调制型(如AD7705) -型AD由积分器、比较器、1位DA转换器和数字滤波器等组成。原理上近似于积分型,将输入电压转换成时间(脉冲宽度)信号,用数字滤波器处理后得到数字值。电
19、路的数字部分基本上容易单片化,因此容易做到高分辨率。主要用于音频和测量。 5)电容阵列逐次比较型 电容阵列逐次比较型AD在内置DA转换器中采用电容矩阵方式,也可称为电荷再分配型。一般的电阻阵列DA转换器中多数电阻的值必须一致,在单芯片上生成高精度的电阻并不容易。如果用电容阵列取代电阻阵列,可以用低廉成本制成高精度单片AD转换器。最近的逐次比较型AD转换器大多为电容阵列式的。 6)压频变换型(如AD650) 压频变换型(Voltage-Frequency Converter)是通过间接转换方式实现模数转换的。其原理是首先将输入的模拟信号转换成频率,然后用计数器将频率转换成数字量。从理论上讲这种A
20、D的分辨率几乎可以无限增加,只要采样的时间能够满足输出频率分辨率要求的累积脉冲个数的宽度。其优点是分辩率高、功耗低、价格低,但是需要外部计数电路共同完成AD转换。 2. AD转换器的主要技术指标 1)分辩率(Resolution) 指数字量变化一个最小量时模拟信号的变化量,定义为满刻度与2n的比值。分辩率又称精度,通常以数字信号的位数来表示。 2)转换速率(Conversion Rate)是指完成一次从模拟转换到数字的AD转换所需的时间的倒数。积分型AD的转换时间是毫秒级属低速AD,逐次比较型AD是微秒级属中速AD,全并行/串并行型AD可达到纳秒级。采样时间则是另外一个概念,是指两次转换的间隔
21、。为了保证转换的正确完成,采样速率(Sample Rate)必须小于或等于转换速率。因此有人习惯上将转换速率在数值上等同于采样速率也是可以接受的。常用单位是ksps和Msps,表示每秒采样千/百万次(kilo / Million Samples per Second)。 3)量化误差(Quantizing Error) 由于AD的有限分辩率而引起的误差,即有限分辩率AD的阶梯状转移特性曲线与无限分辩率AD(理想AD)的转移特性曲线(直线)之间的最大偏差。通常是1 个或半个最小数字量的模拟变化量,表示为1LSB、1/2LSB。 4)偏移误差(Offset Error) 输入信号为零时输出信号不为
22、零的值,可外接电位器调至最小。 5)满刻度误差(Full Scale Error) 满度输出时对应的输入信号与理想输入信号值之差。 6)线性度(Linearity) 实际转换器的转移函数与理想直线的最大偏移,不包括以上三种误差。 其他指标还有:绝对精度(Absolute Accuracy) ,相对精度(Relative Accuracy),微分非线性,单调性和无错码,总谐波失真(Total Harmonic Distotortion缩写THD)和积分非线性。 3. DA转换器 DA转换器的内部电路构成无太大差异,一般按输出是电流还是电压、能否作乘法运算等进行分类。大多数DA转换器由电阻阵列和n
23、个电流开关(或电压开关)构成。按数字输入值切换开关,产生比例于输入的电流(或电压)。此外,也有为了改善精度而把恒流源放入器件内部的。一般说来,由于电流开关的切换误差小,大多采用电流开关型电路,电流开关型电路如果直接输出生成的电流,则为电流输出型DA转换器,如果经电流椀缪棺缓笫涑觯蛭缪故涑鲂?/FONTDA转换器。此外,电压开关型电路为直接输出电压型DA转换器。 1)电压输出型(如TLC5620) 电压输出型DA转换器虽有直接从电阻阵列输出电压的,但一般采用内置输出放大器以低阻抗输出。直接输出电压的器件仅用于高阻抗负载,由于无输出放大器部分的延迟,故常作为高速DA转换器使用。 2)电流输出型(如
24、THS5661A) 电流输出型DA转换器很少直接利用电流输出,大多外接电流电压转换电路得到电压输出,后者有两种方法:一是只在输出引脚上接负载电阻而进行电流电压转换,二是外接运算放大器。用负载电阻进行电流电压转换的方法,虽可在电流输出引脚上出现电压,但必须在规定的输出电压范围内使用,而且由于输出阻抗高,所以一般外接运算放大器使用。此外,大部分CMOS DA转换器当输出电压不为零时不能正确动作,所以必须外接运算放大器。当外接运算放大器进行电流电压转换时,则电路构成基本上与内置放大器的电压输出型相同,这时由于在DA转换器的电流建立时间上加入了达算放入器的延迟,使响应变慢。此外,这种电路中运算放大器因
25、输出引脚的内部电容而容易起振,有时必须作相位补偿。 3)乘算型(如AD7533) DA转换器中有使用恒定基准电压的,也有在基准电压输入上加交流信号的,后者由于能得到数字输入和基准电压输入相乘的结果而输出,因而称为乘算型DA转换器。乘算型DA转换器一般不仅可以进行乘法运算,而且可以作为使输入信号数字化地衰减的衰减器及对输入信号进行调制的调制器使用。 4)一位DA转换器 一位DA转换器与前述转换方式全然不同,它将数字值转换为脉冲宽度调制或频率调制的输出,然后用数字滤波器作平均化而得到一般的电压输出(又称位流方式),用于音频等场合。 4. DA转换器的主要技术指标: 1)分辩率(Resolution
26、) 指最小模拟输出量(对应数字量仅最低位为1)与最大量(对应数字量所有有效位为1)之比。 2)建立时间(Setting Time) 是将一个数字量转换为稳定模拟信号所需的时间,也可以认为是转换时间。DA中常用建立时间来描述其速度,而不是AD中常用的转换速率。一般地,电流输出DA建立时间较短,电压输出DA则较长。 其他指标还有线性度(Linearity),转换精度,温度系数/漂移。(二)应用8:目前生产AD/DA的主要厂家有ADI、TI、BB、PHILIP、MOTOROLA等,武汉力源公司拥有多年从事电子产品的经验和雄厚的技术力量支持,已取得排名世界前列的模拟IC生产厂家ADI、TI公司代理权,
27、经营全系列适用各种领域/场合的AD/DA器件。1. AD公司AD/DA器件AD公司生产的各种模数转换器(ADC)和数模转换器(DAC)(统称数据转换器)一直保持市场领导地位,包括高速、高精度数据转换器和目前流行的微转换器系统(MicroConvertersTM )。1)带信号调理、1mW功耗、双通道16位AD转换器:AD7705AD7705是AD公司出品的适用于低频测量仪器的AD转换器。它能将从传感器接收到的很弱的输入信号直接转换成串行数字信号输出,而无需外部仪表放大器。采用-的ADC,实现16位无误码的良好性能,片内可编程放大器可设置输入信号增益。通过片内控制寄存器调整内部数字滤波器的关闭时
28、间和更新速率,可设置数字滤波器的第一个凹口。在+3V电源和1MHz主时钟时, AD7705功耗仅是1mW。AD7705是基于微控制器(MCU)、数字信号处理器(DSP)系统的理想电路,能够进一步节省成本、缩小体积、减小系统的复杂性。应用于微处理器(MCU)、数字信号处理(DSP)系统,手持式仪器,分布式数据采集系统。2)3V/5V CMOS信号调节AD转换器:AD7714AD7714是一个完整的用于低频测量应用场合的模拟前端,用于直接从传感器接收小信号并输出串行数字量。它使用-转换技术实现高达24位精度的代码而不会丢失。输入信号加至位于模拟调制器前端的专用可编程增益放大器。调制器的输出经片内数
29、字滤波器进行处理。数字滤波器的第一次陷波通过片内控制寄存器来编程,此寄存器可以调节滤波的截止时间和建立时间。AD7714有3个差分模拟输入(也可以是5个伪差分模拟输入)和一个差分基准输入。单电源工作(+3V或+5V)。因此,AD7714能够为含有多达5个通道的系统进行所有的信号调节和转换。AD7714很适合于灵敏的基于微控制器或DSP的系统,它的串行接口可进行3线操作,通过串行端口可用软件设置增益、信号极性和通道选择。AD7714具有自校准、系统和背景校准选择,也允许用户读写片内校准寄存器。CMOS结构保证了很低的功耗,省电模式使待机功耗减至15W(典型值)。3)微功耗8通道12位AD转换器:
30、AD7888AD7888是高速、低功耗的12位AD转换器,单电源工作,电压范围为2.7V5.25V,转换速率高达125ksps,输入跟踪-保持信号宽度最小为500ns,单端采样方式。AD7888包含有8个单端模拟输入通道,每一通道的模拟输入范围均为0Vref。该器件转换满功率信号可至3MHz。AD7888具有片内2.5V电压基准,可用于模数转换器的基准源,管脚REF in/REF out允许用户使用这一基准,也可以反过来驱动这一管脚,向AD7888提供外部基准,外部基准的电压范围为1.2VVDD。CMOS结构确保正常工作时的功率消耗为2mW(典型值),省电模式下为3W。4)微功耗、满幅度电压输
31、出、12位DA转换器:AD5320AD5320是单片12位电压输出D/A转换器,单电源工作,电压范围为+2.7V5.5V。片内高精度输出放大器提供满电源幅度输出,AD5320利用一个3线串行接口,时钟频率可高达30MHz,能与标准的SPI、QSPI、MICROWIRE和DSP接口标准兼容。AD5320的基准来自电源输入端,因此提供了最宽的动态输出范围。该器件含有一个上电复位电路,保证D/A转换器的输出稳定在0V,直到接收到一个有效的写输入信号。该器件具有省电功能以降低器件的电流损耗,5V时典型值为200nA。在省电模式下,提供软件可选输出负载。通过串行接口的控制,可以进入省电模式。正常工作时的
32、低功耗性能,使该器件很适合手持式电池供电的设备。5V时功耗为0.7mW,省电模式下降为1W。5)24位智能数据转换系统MicroConvertersTM:ADuC824ADuC 824是MicroConvertersTM系列的最新成员,它是AD公司率先推出的带闪烁电可擦可编程存储器FlashEEPROM)的 -转换器。它的独特之处在于将高性能数据转换器,带程序和数据闪烁存储器及8位微控制器集中在一起。当您为满足工业、仪器仪表和智能传感器接口应用要求选择高精度数据转换时,ADuC824是一种完整的高精度数据采集片上系统。2. TI公司AD/DA器件美国德州仪器公司是一家国际性的高科技产品公司,是
33、全球最大半导体产品供应商之一,一九九八年半导体产品销量名列全球第五,其中DSP产品销量全球排名第一,模拟产品位于全球第一。1)TLC548/549TLC548和TLC549是以8位开关电容逐次逼近A/D转换器为基础而构造的CMOS A/D转换器。它们设计成能通过3态数据输出与微处理器或外围设备串行接口。TLC548和TLC549仅用输入/输出时钟和芯片选择输入作数据控制。TLC548的最高I/OCLOCK输入频率为2.048MHz,而TLC549的I/OCLOCK输入频率最高可达1.1MHz。TLC548和TLC549的使用与较复杂的TLC540和TLC541非常相似;不过,TLC548和TL
34、C549提供了片内系统时钟,它通常工作在4MHz且不需要外部元件。片内系统时钟使内部器件的操作独立于串行输入/输出端的时序并允许TLC548和TLC549象许多软件和硬件所要求的那样工作。I/OCLOCK和内部系统时钟一起可以实现高速数据传送,对于TLC548为每秒45,500次转换,对于TLC549为每秒40,000次的转换速度。TLC548和TLC549的其他特点包括通用控制逻辑,可自动工作或在微处理器控制下工作的片内采样-保持电路,具有差分高阻抗基准电压输入端,易于实现比率转换(ratiometricconversion)、定标(scaling)以及与逻辑和电源噪声隔离的电路。整个开关电
35、容逐次逼近转换器电路的设计允许在小于17s的时间内以最大总误差为0.5最低有效位(LSB)的精度实现转换。2)TLV5616TLV5616是一个12位电压输出数模转换器(DAC),带有灵活的4线串行接口,可以无缝连接TMS320、SPI、QSPI和Microwire串行口。数字电源和模拟电源分别供电,电压范围2.75.5V。输出缓冲是2倍增益rail-to-rail输出放大器,输出放大器是AB类以提高稳定性和减少建立时间。rail-to-rail输出和关电方式非常适宜单电源、电池供电应用。通过控制字可以优化建立时间和功耗比。3)TLV5580TLV5580是一个8位80MSPS高速A/D转换器。以最高80MHz的采样速率将模拟信号转换成8位二进制数据。数字输入和输出与3.3VTTL/CMOS兼容。由于采用3.3V电源和CMOS工艺改进的单管线结构,功耗低。该芯片的电压基准使用非常灵活,有片内和片外部基准,满量程范围是1Vpp到1.6Vpp,取决于模拟电源电压。使用外部基准时,可以关闭内部基准,降低芯片功耗。参考文献1 阿尔泰公司,数据采集卡使用说明书2TDS3000C 系列数字荧光示波器用户手册, 3FG-275/FG-273A函数信号发生器 4北京阿尔泰科技发展有限公司,产品研发部,USB2828数据采集卡驱动程序说明书5 阿尔泰公司数据采集卡使用说明书6 百度百科7 8