- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于单片机的短样测试数据采集系统
单片机串口发送数据:
void data_send(void) { uchar i; EA=0; //关中断 for(i=0;i
{ //send_txt字符串由每个 chan_data[i]的两个字节转换而来 SBUF=send_txt[i]; //按字符顺序发送 while(TI==0); TI=0;
}
EA=1; //开中断 } 下位机 2采用 Keithley-2182纳伏表,支持单路模拟输入信号,分辨率为 1纳伏,采用IEE-488接口与计算机相连,支持 GPIB协议。GPIB是一种工程控制用协议,昀初由 HP公司提出,目前成为一种国际标准,遵守的协议为 IEEE488。可以使用任何编程语言如 VB、VC和 LabVIEW实现电脑对仪器的控制。系统中通过 GPIB桥接卡与上位机连接。 Keithley-2182纳伏表在保证精度下采集速度昀快可达每秒 18个。下面是采集系统总体流程图。
3.上位机程序设计
上位机采用LabVIEW开发环境,LabVIEW是新一代G语言编程软件,适宜于仪器控制和数据采集,程序使用状态机结构,分为五个状态:设置,采集,保存,分析,显示。采用多线程技术,三个工作线程:数据采集显示线程,实时分析线程,数据保存线程。在三个线程之间采用Queen队列传递数据。Queue队列,先进先出结构,协调三个线程运行,在采集中起到约束和补偿的作用,避免了数据丢失和死锁现象。下面是上位机程序结构图。
Keithley公司提供了纳伏表Keithley-2182 LabVIEW库函数,Keithley 2182 Display.vi用于设置启用或关闭仪器面板显示,关闭仪器面板显示可以提高采集速度。Keithley 2182 Measurement Mode.vi用于设定采集类别,采集系统设置为电压采集(DCV)。Keithley 2182 DCV.vi用于设定电压范围、精度、滤波和采集速度,采集系统设置为精度 7位半、中速、无滤波、通道 1。GPIB Write.vi用于向 Keithley-2182纳伏表写入 GPIB命令,命令":data:fresh?":请求获取昀新采集数据。GPIB Read.vi用于接收昀新数据。可以循环发出 GPIB读写命令,进行数据采集。
LabVIEW串口通讯调用 VISA模块中的库函数。VISA Configure Serial Port:初始化指定串口通讯参数,设定波特率为 19200,8数据位,无奇偶校验,COM1; VISA Set I/O Buffer Size:设置指定的串口的输入输出缓冲区大小,设定为 2048字节;
在数据保存线程中,为了方便以后数据察看和分析,采用 excel文件存储。在 LabVIEW中,利用 ActiveX服务中的属性节点 Property Node,可以读取或设置 ActiveX控件的属性,调用节点 Invoke Node可以用来调用 ActiveX控件的方法,通过使用属性节点和调用节点来打开,读取和写入 excel文件。系统设定每隔 1秒线程从数据队列 1请求一组数据,这样使得采集显示线程可以获得更多时间片用于采集,提高速度。
在实时分析线程中,线程每隔 1秒从数据队列 2请求一组数据,插入绘图数组中,利用LabVIEW的绘图函数绘制趋势图。设置 x轴为通电电流,y轴为短样股线电压。下面是采集系统运行界面图。
4. 测试与总结
经过测试,采集系统速度可以稳定达到每秒每通道采样 17个,采集精度和速度符合要求,可以完整捕捉到失超临界点和失超曲线;采集系统硬件电路简单,成本低廉;软件界面直观,智能化程度高,程序可读性较 VC代码强,适合非计算机专业工程人员使用。采集系统扩展性很好,如果有需要可以采集更多路信号。 创新点:采用 AT89S52单片机和 MAX197 A/D转换芯片,替代 PCI采集卡,降低了成本,简化了系统设计,提高了可维护性,同时也达到了短样测试的数据要求;采用便携式 Keithley-2182纳伏表使实验室获得了高精度采集的能力;软件设计方面采用 LabVIEW和 Queen技术保证了易用性和稳定性。
来源:微计算机信息