基于LabWindows/CVI的光谱分析系统的设计与实现
先要提高采样的可靠性,我们考虑在一个频点进行5次数据采样,再进行舍二余三求平均滤波(即5个采样数据中,首先去掉最大和最小的两个采样数据,然后对剩余的三个采样数据求平均)。
由于一个频点要进行5次数据采样,数据的传输量就非常大,而我们采用的是RS232的串口通信方式,虽然其实现方法简单,但数据传输速度却很有限。为克服这一不足,又考虑到同频点5次数据采样,最多低几位不同。因此这里我们采用传一次高八位,五次低四位的数据压缩编码来进行同频点5次数据传送。从而可实现采样速度与可靠性的同步提高、减轻了数据传输负担并保证了实时性。
另外,在步进电机驱动控制电路中,实际调试时,我们发现如若直接在驱动波形输入端标准的方波信号,结果出现"喀嚓、喀嚓"的声音,利用平面光栅单色仪提供的电源添加CMOS与非门U6(4011),作为波形缓冲,很好的解决了上述问题,使得步进电机平稳运行。
3.4 接口卡的软件设计
硬件接口卡程序采用AT89C51汇编语言编写,完成步进电机的控制,数据的采集,与PC机的通信以及显示键盘等功能。其主程序流程图如下图四所示:
定时器0中断服务程序用于产生方波驱动信号,用于驱动步进电机。它工作在模式1,其中,TH0、TL0由PC机所设置的转率确定。采样/发送标志位07H由PC机或键盘命令设置,若(07H)=1,则设置标志位(00H)=1,以便启动采样子程序与数据发送子程序,反之,则使(00H)=0停止采样子程序与数据发送子程序。结束标志位08H,当(08H)=1时,结束采样,反之,继续采样过程。在每次采集数据前应加入适当的延迟,以便使步进电机稳定后再读数。
AD转换器MAX180的BUSY端子接在AT89C51的INT0上,INT0设置为边沿触发方式IT0=1,当BUSY信号从有效状态变为无效状态时,单片机进入其外部中断服务程序SAMINT0完成一次数据采集。在调试时为保证软件的功能执行一次,平面光栅单色仪的指示波长转一个单位,可通过微调定时中断初始值达到以上目的。
AT89C51通过串口中断服务程序MCRXPCINT接收上位PC机数据/命令。
部分汇编程序如下:
ORG 0000H
LJMP MAINPROC
ORG 000BH ;定时器0中断入口地址。
LJMP TIMER0INT
ORG 0013H ;A/D转换MAX180完成一次数据采集外部中断1入口地址。
LJMP SAMINT0
ORG 0023H
LJMP MCRXPCINT ;AT89C51接收上位PC机数据/命令串口中断入口地址。
ORG 0050H
MAINPROC:
MOV SP,60H
LCALL LCMINIATE ;初始化液晶显示模块。
... ...
MAINLOOP: ;主循环。
JNB 00H,SAMPNO ;是否开始采集发送数据?00H位为标志位。为1启动
CLR 00H
LCALL MCTXPC ;AT89C51发送数据(30H~37H)单元到PC机。发送中关闭串口中断
LCALL SAMPLE ;开始采集数据。
SAMPNO:
LCALL READKE&PC ;查询键盘及PC机命令。(01H)、(00H)
LJMP MAINLOOP
... ...
4 数据分析系统的设计
目前,应用程序的开发软件非常多,如VC、VB等,但开发周期都比较长、难度也比较高;而美国NI公司推出的虚拟仪器编程语言LabWindows/CVI,利用其丰富的按钮、图形等用户界面库函数,大大缩短了软件的开发周期,并能满足开发中的实际需要。
在设计过程中,根据实际要求,我们把系统分为:参数设置及动态采集,数据分析处理,数据管理等三大模块。
在"参数设置及动态采集"模块中,为了提高该系统的适应性,考虑串口通信速率可调,以适应多种采样速率的要求。因此,系统应用时,应首先设定串口参数,然后才能进行采样、定位等操作。所以,系统分析界面上"采样启动/停止"、"参数定位"等功能按钮首先是灰色的(处于无效状态),只有串口
接口卡 LabWindows CVI 串口通讯 相关文章:
- G.SHDSL接口卡多PVC测试技术(10-22)
- 基于PCI总线接口卡的ARINC429总线数据仿真与采集系(06-25)
- 用于雷达测试和验证的自动化测试设备(05-15)
- 基于LabWindows的录波分析仪的设计(03-01)
- LabWindows/CVI虚拟仪器设计技术基本控件使用之: Tab 控件(11-13)
- LabWindows/CVI虚拟仪器设计技术场景与游戏设计之:时钟制作(11-13)