摘 要:利用单片机AT89S52,12位A/D转换芯片MAX197,Keithley-2182纳伏表和CERNOX电阻温度计完成采集系统的硬件设计,系统由传感器,放大电路,采集卡,纳伏表和工控机组成。介绍了LabVIEW开发环境下的数据采集系统的程序设计。该系统实现了对超导短样股线电压,电流和液氦杜瓦温度的高速高精度采集。
1.引言
中科院合肥分院等离子所超导电工中心基于 ITER(国际热核聚变反应堆)项目,需要对超导短样股线进行失超极限测试(强磁场, 4.2K液氦温度下),为此笔者设计了一套短样测试数据采集系统,对短样测试中超导股线的电流、电压、温度进行采集并实时分析和保存。
在短样测试实验中,电流信号变化范围 0至 1000安培,设计使用 100:1直流分流器转换为 0至 10伏电压信号接入采集系统。温度信号通过电阻温度计获得,短样股线在极低温(4.2K)情况下进入超导状态,普通电阻温度计无法测量这个区间的温度,所以选用了美国 LAKESHORE公司的 CERNOX电阻温度计。 CERNOX电阻温度计由 metal-oxy-nitride材料制成,具有负的电阻温度系数,在液氦温区灵敏度很高( 103Ω/K),受磁场影响小 (在 4.2K温度 6T磁场下,误差 0.2%),稳定性好。采集系统采用四线法测量温度计电阻, CERNOX电阻温度计工作电流 10微安,两端输出电压为 10毫伏级,必须使用仪表放大器放大 100倍才能符合采集系统精度要求,放大器选用 INA110KP芯片。在短样测试中至关重要的信号为短样股线电压信号,要求精确到 10纳伏,市场上现有采集卡无法胜任,此外为了消除串扰,电压信号需要独立采集,所以系统选用了 Keithley-2182纳伏表。下面是采集系统硬件结构图。
2.下位机系统设计
下位机1采用8位微处理器 AT89S52,AT89S52 是一种低功耗、高性能 CMOS 8位微控制器,与工业80C51产品指令和引脚完全兼容。AT89S52具有以下标准配置:8K字节Flash,256字节 RAM,32位I/O口线, 2个数据指针,三个 16位定时器 /计数器,一个 6向量2级中断结构和全双工串行口。A/D转换芯片采用美信公司的 MAX197。MAX197是美信公司推出的 8通道、12位高速A/D转换芯片。芯片采用单一电源+ 5V供电,单次转换时间6?s,采样速率可达 100ksps。量程±10V , ±5V ,0V~10V , 0V~5V,内部自带 4.096V参考电压源。它有标准的微机接口,数据总线的时序与绝大多数通用的微处理器兼容,全部逻辑输入和输出与TTL / CMOS电平兼容。
采集系统中,MAX197采用外部时钟源, CLK引脚接单片机 ALE引脚,单片机时钟晶振2MHZ" href="http://www.weeqoo.com/icstock/Detail-11.0592MHZ.html">11.0592MHZ,ALE引脚输出时钟为晶振的六分之一约为 2MHZ,符合 MAX197要求。单片机 P0.0至P0.7引脚与MAX197的D0至D7连接,MAX197的片选信号 CS连接单片机 P2.0引脚,HBEN引脚接单片机P1.1引脚,INT引脚接单片机 P1.2引脚, MAX197芯片地址为 0X0FEFFH。选用内部参考电压,REF引脚通过 4.7UF电容旁路接地, REFADJ引脚通过 0.01UF电容旁路接地。模拟信号输入量程选择为0到10V,使用内部采集方式, MAX197控制字为 0X10。测试系统使用2个通道CH0,CH1采集电流信号,温度信号。下面是下位机 1接口电路图
单片机采集子程序:
void scan_ch(void) { P2^0=0; // CS片选信号有效 P1^2=1; uchar i,ch_low,ch_high,control; for(i=0;i<2;i++)
{control=0X10+i; //给出控制字和通道选择 XBYTE[0X0FEFF]=control; // 写控制字产生一个 WR脉冲,开始采集 while(P1^2==1) {;} //等待采集结束信号, P1.2为0时结束 P1^1=0; //低电平获取低8位数据 ch_low=XBYTE[0X0FEFF]; P1^1=1; ch_high=XBYTE[0X0FEFF]&0X0F; //获取高4位数据 chan_data[i]= ch_high *256+ ch_low; //将数据存入数组 }
start_ch=0; //一轮采集结束 }
设置单片机允许串口中断,波特率 19200,数据位 8位,无奇偶校验。当下位机 1通过串口接收到采集允许信号后,系统进行一轮采集,并把数据通过串口发送给上位机。采集系统使用MAX232芯片进行串口电平转换。
单片机串口初始化:
void init_serial(void)
{//定时器1的工作方式 2 TMOD=0X20; TL1=0Xfd; //装载计数初值 TH1=0Xfd; SCON=0X50; //采用串口工作方式 1,无奇偶校验 PCON=0X80; //串口波特率加倍波特率 19200 IE=0X90; //开总中断,开串口中断 TR1=1; //启动定时器1
}
来源:微计算机信息