微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于单片机的短样测试数据采集系统的设计

基于单片机的短样测试数据采集系统的设计

时间:11-04 来源:互联网 点击:
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引脚,单片机时钟晶振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

}

单片机串口发送数据:

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个。下面是采集系统总体流程图。



Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top