雷震勇,孙国强
(上海理工大学 光电信息与计算机工程学院,上海 200093)
火焰光度计是根据被测元素的原子或离子受火焰激发后产生的特定波长光谱,借助罗马金公式,可对样品中K、Na元素进行定量分析的仪器[1]。火焰光度计是一种相对测量的仪器,被测样品的浓度值是在统一测试条件下标准溶液浓度的相对值。所以测试前需制备一组火焰光度计标准溶液,然后进行标定操作,最后才对被测液样品进行测量。
火焰光度计主要用来测量血清中的Na+和K+浓度;土壤中碱金属含量;铝矿石中氧化钾、氧化钠含量等。目前,火焰光度计主要采用单片机电路或通用集成电路构成控制系统,数据处理能力有限,系统可扩展性差,标定操作复杂。随着社会的进步,测量仪器必须具备:人机界面友好、操作简便、智能处理、足够高的精度和低功耗等。嵌入式微处理器ARM 具有强大的事务处理能力,同时具有体积小、重量轻、成本低、可靠性高等优点[2]。嵌入式操作系统具有实时、安全、多任务等特点。所以,采用ARM 作为控制系统的核心,应用Linux嵌入式操作系统,设计了一套火焰光度计控制系统。
火焰光度计主要由控制系统、气路、吸液/雾化器、燃烧腔组成,控制系统组成如图1所示。系统上电后,ARM 控制电磁阀开启,接通燃气,待燃气到达燃烧腔的火嘴处,再控制点火线圈点火。着火以后要预燃烧30min,将腔内杂质燃烧掉,使火焰变纯。系统工作过程如图2所示。每次测量前,需用标准溶液进行标定,标定后进行样品液的测量,最后输出、记录测量结果。
图1 控制系统组成Fig.1 Components of the control system
图2 系统工作过程Fig.2 The working process of the system
由三星公司设计的基于ARM9 的嵌入式微处理器S3C2440 构成控制系统硬件的核心部分。S3C2440芯片集成LCD 专用DMA 控制器,提供了触摸屏接口、2路USB主机控制、1路USB设备控制、3路URAT。存储器控制器提供访问外部存储器所需的存储器控制信号。内部集成有8路A/D 转换模拟信号输入通道A/D 转换控制器,转换精度为10bit。系统有两个可切换量程:小量程(K:0.0~19.9 mmol/L;Na:0~199mmol/L);大量程(K:0~80mmol/L;Na:0~800mmol/L)。为满足检测限、线性误差、精度的相关要求[3],A/D 转换器采用TI公司16bit的TLC3574。硬件关键部分是通气、点火、报警控制电路和信号处理电路。
火焰光经过干涉滤光片分光,再经光电池光电转换,得到电流信号。经前置放大、量程切换和A/D 转换电路处理后将信号送给S3C2440,如图3所示。图中,IC为精密运放OP07,SGM3002为低导通电阻的高能性能数字控制模拟开关,由S3C2440发送控制信号控制SGM3002转换开关来分别选择Na、K 两路信号的不同放大比来进行量程切换。
S3C2440通过通用输入/输出口(general purpose input/output,GPIO)控制继电器间接控制电磁阀开启、点火圈点火及蜂鸣器报警,电路图见图4。
图3 前置放大、量程切换和AD 转换电路Fig.3 Circuit of preamplifier,switch range and AD transform
控制系统基本框架为:嵌入式微处理器(S3C2440)、外围硬件电路、嵌入式操作系统(Linux)和嵌入式图形用户界面(graphical user interface,GUI)。本设计采用可视化的基于Qt的GUI工具Qt Creater去编写应用程序,生成X86架构的二进制文件,再用Qt/Embedded库对整个工程进行交叉编译链接,得到在S3C2440平台上运行的可执行文件。软件包括启动程序、操作系统、设备驱动程序和用户应用程序等。系统软件工作流程图如图5所示,控制系统中的LCD、A/D转换、触摸屏、串口和USB都作为字符设备[4-6],它们的驱动程序加载到Linux内核中,操作系统通过子程序调用实现设备访问。加入异常处理,保证系统的可靠性。系统的设置、标定和参数调整、数据的处理和自动保存等,都可从控制系统操作界面中直观看到,操作方便。
图4 电磁阀、点火圈、蜂鸣器驱动电路Fig.4 Driving circuit of electromagnetic valve,ignition circle and a buzzer
图5 系统软件工作流程图Fig.5 System software flow chart
图6 标定子程序流程图Fig.6 Flow chart of calibration′s subroutine
其中,应用程序主要包括标定、测量、记录存储、显示、打印、能耗管理等。
图6为标定子程序流程图。标定是为了消除仪器硬件老化和环境参数变化(如:零漂和温漂)引起输出结果的变化,对仪器进行校正,确保测量结果的准确性。标定程序分别记录Na、K 标准溶液的一组测量数据,并对数据进行线性拟合,求取线性回归中斜率、截距与相关系数,得到线性方程,测量时将测量值代入方程处理,得出测量结果。
以表1的数据为例,设表中标准值为钾元素1~8号标准溶液对应的标准浓度值,响应值分别为标定时仪器对应的显示值。如图7所示,经过回归直线方程的求取,可得斜率a=0.996 5,截距b=-0.015 138,即回归直线方程为y=0.996 5x-0.015 138,相关系数R=0.999 904。此程序算法结果与在Excel中线性回归方程拟合结果相符(见图8)。证明了线性拟合的准确性。对被测样品液中钾离子浓度检测时,系统将自动把响应值代入标定过程线性拟合所得的回归方程中,得到并输出显示准确测量结果。
表1 回归直线方程求取示例数据Tab.1 Sample data to calculate regression equation
图7 线性回归方程拟合Fig.7 Linear regression equation fitting
图8 在Excel中的线性回归方程拟合Fig.8 Linear regression equation fitting in Excel
本系统采用嵌入式微处理器S3C2440作为控制核心,硬件性能良好,精度满足要求;用软件的方法来实现标定,操作简便。为满足人机界面友好、智能程度高、精度准确、功耗低的火焰光度计控制系统提供了一种简易可行的改进方案。为测量其它碱金属如Li、Ca等液体样品浓度的火焰光度计的设计提供了新思路。
[1] 全国物理化学计量技术委员会.JJG 630-2007,火焰光度计检定规程[S].北京:国家质量监督检验检疫总局,2007.
[2] 张绮文,王廷广.ARM 嵌入式应用开发完全自学手册[M].北京:电子工业出版社,2009:1-3.
[3] 北京分析仪器研究所.JB/T 10058-2000,火焰光度计技术条件[S].北京:国家机械工业局,2000.
[4] 黄建明,刘宝林.基于S3C2440多路A/D转换Linux驱动程序设计[J].微计算机信息,2011,27(9):104-111.
[5] 於琪建,张海峰.Linux输入子系统在触摸屏驱动上的实现[J].机电工程,2009,26(3):32-34,101.
[6] 唐 浩,代少升.Qt/Embedded在S3C244平台上的移植与开发术[J].电视技术,2010,34(10):32-35.