色谱-质谱(GC-MS)联用仪可对许多产品中的多种元素进行分析测定,因此被广泛应用于农业、工业以及医药、环保、食品等领域中。GC-MS技术在未来的经济发展和科学研究中将发挥更为积极和重要的作用。
GC-MS联用仪对质谱扫描速度要求很高,需要对被测信号进行高速的实时采集,在极短的时间内获得大量的数据。因此必须设计高速的数据采集接口电路。
本文采用两片双端口RAM为信箱以ISA卡的形式完成单片机与PC机的高速通讯,采用高速高性能的A/D和D/A转换电路实现联用仪系统的高速、高精度采样及扫描。
1 系统设计思路
选择PC机作为主机,MCU作为从机组成监测系统,对测量点进行数据采集和模拟控制。在数据传输速度较高、数据量较大且需经常交换信息的场合,采取双口共享RAM缓冲区方式是最合适的。双端口RAM将单片机与PC机有机地连接为一个整体,PC机和单片机的优势可以互补,使其成为功能强大的双CPU数据监测系统。
这里采用8051单片机负责数据采集和模拟控制工作,将高速采集扫描接口电路做成PC机扩展卡形式,直接插入PC机的I/O扩展槽内。为了进一步提高系统数据采集的实时性,采用了两片双端口RAM,以保证单片机的数据“采集”和PC机的数据“读取”并行进行。当然,这种方法使系统的控制逻辑变得复杂了。51单片机通过双端口RAM与PC机进行数据传输的示意图如图1所示。
图1 PC机与51单片机通过双端口RAM进行数据传输的示意图
整个系统的工作过程为:通过PC机键盘设定主要分析参数,其中与质函数采样扫描有关的参数由PC机传送给单片机,单片机负责具体执行。与采样扫描有关的参数有扫描方式、采样速度、开始与终止命令等,系统启动和停止命令由PC机发出,从而命令单片机开始采样与扫描或者终止采样与扫描。
单片机在接到启动命令之前不进行质函数扫描,但可以通过A/D转换器进行数据采样,将采样到的数据存到其中一片RAM中,并通知PC机将数据取走,这些数据可以作为谱图的本底数据。扫描开始之后,数据从RAM的低地址起开始依次存储,存满一片RAM后,向另一片RAM存储,同时向PC机提出申请,要求PC机尽快将这一片RAM内的数据取走,PC机确定读取RAM后读取RAM中的所有数据。待另一片RAM存满后再取走另一片RAM内的数据,如此循环。
根据色谱-质谱联用仪的性能要求,这里选用了12位的A/D转换芯片AD1674,转换时间为10μs;14位D/A转换芯片AD7534,转换时间为180μs;4K双端口RAM CY7C142;8051单片机。PC机系统通过ISA总线与接口板进行通信。
2 系统硬件设计方案
硬件设计分为两大部分:第一部分为双端口RAM的接口电路,主要包括PC机与双端口RAM CY7C142的接口电路和8051单片机与双端口RAM CY7C142的接口电路;第二部分为数据采集和扫描电路,主要指8051单片机与A/D转换器和D/A转换器的接口电路。系统整体设计框图如图2所示。当单片机接收到一批数据存满双口RAM信息时,向计算机发送一个中断申请,通知计算机到双口RAM 中去读取数据。下面分别进行介绍。
图2 系统整体设计框图
2.1 双端口RAM的接口电路
CY7C142为一片2K×8的双端口静态RAM。由系统的工作过程可知,PC机只需对CY7C142进行读,8051单片机则只需对其进行写。这里将CY7C142的左侧端口与PC机的ISA总线相连,右侧端口与8051单片机相连。分别用字母符号L、R表示左端口、右端口。双端口RAM CY7C142的接口电路如图3所示。
图3 双端口RAM CY7C142的接口电路
由图可见两片双端口存储器的左端数据线D0(L)“D7(L)、低八位地址线A0(L)”A7(L)和高三位地址线A8(L)“A10(L)都是通过锁存器74LS373(4)、74LS373(3)和74LS373(2)与74LS245相连接到PC机的数据总线上的;左端OE(L)与PC机的IOR相连,R/W(L)直接接成高电平,这样PC机只能对这两片存储器进行读。两片双端口存储器的右端数据线D0(R)”D7(R)与8051单片机的数据线口P0.0“P0.7相连,低八位地址线A0(R)”A7(R)与锁存器74LS373(5)相连,高三位地址线A8(L)“A10(L)分别与P2.0”P2.2相连;OE(R)直接接成高电平,R/W(R)与8051的WR信号相接,这样8051只能对存储器进行写;两片存储器的CE(R)分别与译码器(2)相连。锁存器74LS373(1)的一端与8051的P1.0“P1.7相连,另一端与连接PC机数据总线的74LS245相连,PC机对采样板的控制指令就是通过这个通道进行的。
锁存器74LS373(6)的一端与8051的P3.0引脚相连,另一端与74LS245相连,通过它PC机可以知道从哪一片双端口存储器取数据。同时, 8051的P3.0引脚通过反相器或直接与CY7C142(1)或CY7C142(2)的CE(L)相连,这种连接方法使得PC机在读RAM(1)数据和8051写RAM(2)或PC机读RAM(2)和8051写RAM(1)之间来回进行切换。8051的P3.4引脚与PC机的一个IRQ相连,完成下面功能:每当8051写满一个双端口RAM时,就向PC机发出一个中断请求信号,使PC机立即响应此中断请求,读取双端口RAM的数据。
2.2 8051单片机与AD1674和AD7534的接口电路
8051单片机与AD1674和AD7534的接口电路如图4所示。其中,AD1674为12位逐次逼近式A/D转换芯片,转换时间为10μs,片内带有采样保持器/放大器和三态输出缓冲器;AD7534为14位高分辨率D/A转换芯片,转换时间为0.18ms;AD586为高精度5V参考电压源,最大偏差为±2.0mV,它为AD7534提供精确的电压基准。
图4 单片机与AD1674和AD7534的接口电路
2.3 译码电路
该部分涉及两个译码电路,一个是与PC机ISA总线相连的译码电路(1),另一个是与8051相连的译码电路(2)。译码电路(1)如图5所示,译码电路(2)如图6所示。
图5 与PC机ISA总线相连的译码电路
图6 与8051相连的译码电路
由此,板上五个I/O地址代表的含义是:100H——PC机对8051输出控制命令口;101H——PC机读取双端口RAM数据时的低八位地址口;102H——PC机读取双端口RAM数据时的高三位地址口;103H——PC机读取RAM的数据口;104H——表明双端口RAM1、2的标志口。
3 软件设计方案
整个系统的软件设计分为两部分:单片机系统部分和PC机部分。这里仅介绍数据采集和PC机取数程序。
3.1 数据采集程序
单片机发出A/D转换指令后,AD1674开始工作,采集到数据后存到CY7C142(1)中。当RAM1存满后,单片机发出中断请求,通知PC机从双端口RAM1中取走数据,同时将采集的数据存到CY7C142(2)中,RAM2存满后通知PC机取数,如此循环。数据采集程序流程图如图7所示。
图7 数据采集程序流程图
3.2 PC机读取RAM程序
PC机接到单片机发来的中断申请后,立即从双端口RAM中读取数据,首先判断104口的状态以确定取哪一个RAM内的数据,然后向CY7C142读取1024个数据(每个数据两个字节)后中止,等待单片机发出下一个中断申请。PC机读取RAM程序流程图如图8所示。
图8 PC机读取RAM程序流程图
读取数据的过程为:首先向101H口、102H口输出低八位、高三位地址,然后向103口读取数据,此后将地址加一再读取八位数据,直到将2048个字节(1024个数据)都读完。这样, 数据被采样控制器8051送入RAM, 同时采样数据又被PC机取走, 这两部分工作互不干扰, 实现了连续不断、大数据量、高速、实时的数据采集。
实验表明,采用双端口RAM作为主从CPU的中介是一种实用、高效的系统设计方法,该方法使得信息交换方便、快速、可靠,加上高速、高性能的A/D和D/A转换电路,实现了色谱-质谱联用仪系统的高速、高精度数据采集及扫描。