学科基础综合性与创新实验(测频计数)_第1页
学科基础综合性与创新实验(测频计数)_第2页
学科基础综合性与创新实验(测频计数)_第3页
学科基础综合性与创新实验(测频计数)_第4页
学科基础综合性与创新实验(测频计数)_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中南大学创新性实验报告USB1203数据采集卡的测频计数测试实验学生姓名:学 号: 指导老师: 学 院: 专 业: 2014-6-20USB1203数据采集卡的测频计数测试实验摘要:本实验利用USB1203多功能数据采集卡的测频计数功能,研究了对信号发生器的产生的信号进行测频计数的数字化显示。其中通过VB软件搭建了一个对话框界面,运用简单直观的数显控件封装类调用数据采集卡动态数据库中的函数对采集得到的数据进行实时数字显示。实验达到了预期的结果,直观地显示了当前的信号频率以及计数值。关键字:USB1203 数据采集 VB软件 数字化显示 一、背景介绍数据采集是指从传感器或其它待测设备中自动采集模

2、拟或数字被测单元的信息的过程。数据采集系统是一套结合计算机软硬件来实现的,灵活的,用户自定义的测量系统。此系统整合了信号、传感器、激励器、信号调理、数据采集设备和应用软件。尽管数据采集系统根据不同的应用需求有不同的定义,但各个系统采集、分析和显示信息的目的却都相同。即为了得出已被转换为电信号的各种物理量,如温度、水位、风速、压力、频率等,可以是模拟量也可以是数字量。采集的数据大多是瞬时值,也可是某段时间内的一个特征值。准确的数据测量是数据采集的基础。本实验中默认温度传感器的精确度足够,误差在可接受范围内。数据采集作为数字信号处理的必不可少的前期工作在整个数字系统中起到关键性、乃至决定性的作用,

3、其应用已经深入到信号处理的各个领域中。作为一名工科生,了解熟悉数据采集的整个过程,并掌握一些数据采集和程序编写的技巧是很有必要的。二、采集卡特性、原理及库函数简介2.1 USB1203数据采集卡及其测频计数特性简介USB-1203是一款性价比极高的多功能通用A/D板,经过精心设计,采用USB2.0总线支持热插拔,即插即用,无需地址跳线。适合测量变送器输出、直流电压等场合的测量应用。USB-1203具有16路模拟输入、2路12位模拟输出、32路开关量(16路TTL输入及16路TTL输出)、2路24位脉冲加法计数器,支持测频功能,2路24位PWM输出。USB-1203的逻辑控制采用现场可编程逻辑器

4、件(FPGA)实现,以提高可靠性。同时数字地(GND)、模拟地分离(AGND),单点接地,消除回路干扰。2路24位独立脉冲加法计数器,支持测频功能(测方波)。记数器翻转有OUT脚输出指示。内置2路24位高精度定时器,定时时钟为2MHz,最小定时间隔为:0.52.2 原理简介2.2.1测频原理在计数的同时,测量信号(方波)的频率或脉冲间隔。例如:如果初始化定时计数器数值=2,那么定时器的时间表示两个系统时钟SCLK上升脉冲之间的宽度或一个波形的宽度,通过宽度,用户可以方便的计算出信号的频率,当然,用户也可以将计数器初始化数值设置为大于等于2的24位数据(最大0xFFFFFF,即16777215)

5、,来定时。但需要注意,定时器的最大定时长度为8388mS(16777215*0.5=8388mS)说明:START信号为低,加载定时器初值num(本例num=8),在下一个时钟信号的上升沿时,定时器值减1,在时钟的上升沿,定时计数器为0时,表示定时结束。即图中的TimerOver信号,1:定时未结束;0:定时结束。在内部定时器开始工作时,内部逻辑电路记下当前计数器的值为count1,在定时计数器的值刚变为0时,也记下当前计数器的值为count2,这段时间为t=(num-1)*500nS=3500nS, 利用函数USB1203_GetCountSub可以获取这段时间内,外部脉冲信号的个数coun

6、t,从而计算出外部信号的频率Fre=count*10/(num-1)*500S)=2000*差值/(预置数 - 1),单位KHz。如果当前值大于上一次的值,则差值=当前值-上一次的值;如果当前值小于上一次的值,则说明计数器有翻转,硬件上COUT脚会指示。差值= 16777215 -上一次的值 + 1 + 当前值;所以需要合理选取软件定时器的定时间隔,不宜过大,也就是说,在一个定时器间隔内只允许计数器翻转一次。注意设定时间隔要选取适当,不宜过大,避免计数器在一个定时间隔内翻转两次或以上,不宜过小,以免影响测量的准确性。2.2.2 电路原理简介硬件的连接方法:(支持两路测频)将外部待测信号,从EC

7、LK0或ECLK1接入,信号地接GND。图1 数字量输入输出、脉冲输入、脉冲输出引脚定义2.3 相关库函数简介测频有关函数的调用步骤:1、调用USB1203_SetTimerCount函数,写定时器初始值;2、调用USB1203_StartTimer函数,启动定时,即发图中的START信号;3、调用USB1203_TimerIsFinish函数,判断定时是否结束,即图中的TimerOver信号;4、如果定时结束,调用USB1203_GetCountSub函数,获取差值;5、信号频率=2.0M*差值/(预置数 - 1);(为了使测频准确,可适当加大预置数的值)三、具体功能实现3.1 整体设计 本

8、实验主要是将信号发生器的模拟信号接到IDC40接线端子板模拟输入端,再用IDC17,IDC19芯扁平线连接到USB1203多功能数据采集卡,然后用USB总线把数据采集卡插到上位PC机并给采集卡供电,最后用VB6.0调用相关库函数进行测频计数并显示测量值。实验整体设计逻辑图如图2所示:模拟信号输出信号发生器端子板数字信号输出供电供电PC机USB1203测频计数 图2 整体设计逻辑图IDC40接线端子板40个端子,即J1插座对应IDC440芯(模拟输入、输出)插头,对应USB1203的440针接口。通过端子板上标有的引脚号查说明书可知, DI-DI:开关量输入通道0-15;DO-DO:开关量输出0

9、-15;ECLK、ECLK为外部脉冲输入端;COUT 、COUT分别为内部脉冲加法计数器0、1的翻转指示脚;PWM 、PWM为PWM输出通道0、1;脚:39,40:GND。整个实验逻辑上比较简单,功能相对较容易实现。关键技术问题在于如何编写VB调用相关库函数进行测频计数并显示测量值。3.2 程序控制实现3.2.1 程序流程图设计 参照所给的例程,设计整体程序流程图如图3所示:图3 程序流程图3.2.2 程序具体实现过程 具体实现主要步骤如下: (1) 首先新建一个VB的对话框工程,对用户的登陆界面进行定义。登陆界面使用了label控件,text控件以及Command控件,用户必须输入正确的用户

10、名和登陆密码方可进入应用程序。否则将提示输入错误,重新输入。图4 登陆界面图(2) 根据本实验所要实现的功能,利用控件编辑器编辑好所需的各个控件,搭建测频计数器主对话框界面如图4所示。主界面设置”打开设备”,“计数测试”,”退出程序”三个按键以及对板卡ID的选择窗口。当输入的板卡ID错误或者未接入板卡时,弹出新的界面显示“打开设备失败,请确认硬件拨码的位置。”图5 测频计数器主程序对话框(3) 插入一个新的界面,搭建测频计数对话框界面如图5所示。测频计数窗口有预先设定好的定时器初值,用户可以通过点击测频按钮进行测频。同样在上一界面点击计数按钮后,程序自动计数,即用户不需要再点击计数。图6 测频

11、计数对话框3.3 核心程序简介3.3.1 登陆界面Private Sub Command1_Click() If Text2 <> "2008512" Then j = j + 1 i = MsgBox("请重新输入密码?", vbOKCancel + vbQuestion, "密码错误!" & "

12、第" & j & "次")  If i = 1 Then Text2.Text = ""     Text2.SetFocus         If j > 3 Then    

13、     MsgBox ("密码错误3次,强制退出!")     End         Else          Text2.Text = ""          

14、Text2.SetFocus       End If      End If If i = 2 Then     End     End If Else Load Form2     Form2.Show E

15、nd If End Sub 密码如果输入正确则进入form2登录成功界面,输入错误会出现提示窗口:密码错误!第n次,请重新输入,当三次输入错误时,提示密码输入超过3次,程序自动结束。3.3.2初始化中打开数据采集卡Private Sub openCmd_Click() hDevice = 0 hDevice = USB1203_OpenDevice(Val(Combo1.Text) ' 物理设备号由拨码开关决定(0-15) If hDevice <> 0 Then jstest.Enabled = True opencmd.Enabl

16、ed = False Else MsgBox "打开设备失败,请确认硬件拨码的位置", vbYes + vbExclamation, "退出" End IfEnd Sub使用打开设备的库函数USB1203_OpenDevice(0)打开设备,默认其USB设备ID值为0,返回句柄值赋值给m_hDevice,若为空则打开失败并弹出一个用户提示界面,反之采集实时数据。3.3.3 切换至测频计数主界面Private Sub jstest_Click() JsForm.Show Mainform.HideEnd Sub点击jstest_Click按钮,显示新的Js

17、Form界面,同时退出Mainform主界面。3.3.4计数初始化函数'计数初始化函数Private Sub Form_Load() If hDevice <> 0 Then For i = 0 To 1 '让计数器归0 Call USB1203_ClearCount(hDevice, i, bRtn) '设置默认的初始值,为了测量精确,我们尽量设置大一点 '定时时钟为2M,时间为1S mycount(i) = 2000001 '设置默认初值 USB1203_SetTimerCount hDevice, mycount(i), i Next

18、i '允许计数定时器工作 JsTimer.Enabled = True End IfEnd Sub3.3.5测频计数信号采集Private Sub FreCmd1_Click() USB1203_StartTimer hDevice, 0, bRtn Do '判断定时器是否结束 timerFinish(0) = USB1203_TimerIsFinish(hDevice, 0, bRtn) Loop Until timerFinish(0) = 0 'Debug.Print timerFinish(0) '得到差值 countsub(0) = USB1203_GetCountSub(hDevice, 0, bRtn) '得到频率 '信号频率=2.0M*差值/(预置数 - 1); fre(0) = countsub(0) fre(0) = 2 * 1000 * fre(0) / (mycount(0) - 1) 'Debug.Print mycount(0) myFre(0) = FormatNumber(fre(0), 3, vbTrue, vbFalse, vbFa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论