智能触摸屏在气相色谱仪中的应用
互联网
摘要:触摸屏作为人机界面应用于气相色谱仪控制系统,在彩色LCD的配合下可实现可视化控制。本系统是基于S3C44B0嵌入式开发平台,但是此处理器无SPI总线接口寄存器,只能通过软件模拟SPI,实现与ADS7846通信。文中给出了触摸屏数据采集的流程和用C语言实现的模拟SPI通信程序。
1、引言
气相色谱仪是应用面极广,数量较大的分析仪器中最重要的一大类科学仪器。在石油、天然气、精细化工、冶金、电力、医学、卫生、粮油、食品、环保、气体、技术监督和国防科研等领域中,几乎成为现代分析化学实验室必备的分析仪器之一。随着气相色谱仪的普及,客户对系统的要求逐步提高,不仅要求其有良好的运转性能,而且需要实时、直观地显示工作状态,要求操作人员根据实际情况方便地调整系统的工作参数,数据的采集、分析、判断、参数显示。为此,我们设计开发了可视化的控制系统,能够可视化地显示系统状态、提供完全图形化的操作方法,而且成本较低。
2、气相色谱仪原理及系统结构
色相色谱仪技术的基本原理是:当气体样品通过一定的进样方式送入色谱系统后,样品中混合物的各组分在流动相(载气)的带动下,通过称为色谱柱的固定相,利用各组分在流动相中具有不同的吸附能力,当二相作相对运动时,样品中各组分就会在二相中反复多次(103~106)受到上述各种作用力的作用,从而使混合物中各组分获得分离,被分离后的单一组分随载气进入检测器的系统,获得非电量转换,将化学成分转变成与其浓度成正比的电信号,然后通过这些电信号的不同来分析样品成分。
该气相色谱仪的控制系统主要由嵌入式控制系统(MCU)、一个温度检测器、一个载气流量检测控制器和一个样品流量检测控制、再加一个高阻抗放大器(带光电隔离器)组成,其主要特点是MCU外接了带触摸屏的彩色LCD作为人机界面。本系统的工作原理是首先通过触摸屏上不同的触点使MCU分别向载气和样品流量控制器发送参数设定指令,为了达到可靠性,此命令通过RS485串口总线发送;启动这个检测系统后,可以通过触摸屏实时的发送查询各检测器状态的指令,当温度检测器,流量检测控制器收到指令后,符合自己的,则把自己的状态信息也通过RS485串口总线发送到MCU,MCU收到数据后在彩色LCD显示相应的信息,如温度曲线、流量曲线等;色谱仪的检测器把检测到的信息通过高阻抗放大器变化以后把检测到的结果显示在LCD上,直观的查看样品的成分。同时,MCU通过以太网把收到的数据传到PC机上,做备份;PC终端也可通过MCU对系统进行参数设定。为了协调MCU和各检测控制器的通信,我们自己制定了一套内部通信协议。整个系统都是按照LCD上的提示,通过触摸屏来控制的。
3、硬件实现
我们开发了ARM7开发板(处理器为SAMSUNG公司的ARM7TDMI内核的S3C44B0,数据位宽是32位,主频可达66MHZ)作为中低端嵌入式系统的硬件平台。此处理器内建了LCD控制器(最大支持256色STN,使用专用DMA);2个异步串口控制器(支持IrDA1.0,16字节的FIFO);提供复合功能的71个通用I/O端口,供我们外接其他设备。
本系统的触摸屏采用了AMD公司的电阻式触摸屏AMT9502型,该电阻触摸屏的屏体部分是一块与显示器表面非常配合的多层复合薄膜,由一层有机玻璃作为基层,表面涂有一层透明的导电层,上面再盖有一层外表面硬化处理、光滑防刮的塑料层,它的内表面涂有一层透明导电层,在两层导电层之间有许多细小(小于1/1000英寸)的透明隔离点把它们隔开绝缘。当笔触摸屏幕时,两层导电层在触摸点位置就有了接触,电阻发生变化,在X和Y两个方向上产生信号,然后送触摸屏控制器,计算出(X,Y)的位置。
触摸屏控制芯片采用的是TI公司的模数转换芯片ADS7846,此芯片是一种典型的12位取样的逐步近似寄存器(SAR)A/D转换器。除了基本的触摸点位置的测量外,还可进行触摸压力的测量。芯片内部提供的2.5v参考电压可用于辅助输入,电池监控器和温度测量。其自动节电功能可以保证很低的功率损耗,对于低功耗的嵌入式系统电路非常适合。本文只应用其作为触摸屏控制器的基本功能。
ADS7846经过A/D把坐标值传给MCU,MCU经过处理后在LCD上显示相应的信息或通过RS485发出相应的指令;ADS7846同时能接收MCU发来的命令并加以执行。ADS7846和外部进行数据交换是使用SPI总线,而S3C44B0没有SPI总线接口,所以只能采用通用I/O口软件模拟SPI。
4、软件实现
为了获得一个坐标值,ADS7846与MCU之间需经过3个SPI的时钟传送。第一次从DIN向ADS7846发送测量命令字。当ADS7846接收到命令字的前五位后,A/D转换器进入采样阶段。控制字节输入完毕后,等待BUSY为低后,在每个DCLK的下降沿,A/D转换的坐标值从高位到低位逐位从DOUT引脚向MCU输出。12位的A/D转换结果数据在第13个DCLK时钟传送完毕。因此,有效数据是前12位,后面4位补0。
由于S3C44B0没有SPI接口,本文采用通用IO口模拟SPI,具体寄存器设置如下:
通常ADS7846工作在笔中断模式,ADS7846检测到笔落下时,通过发出中断信号,S3C44B0的EINT3在下降沿触发的情况下,进入中断服务子程序。我们在程序中定义了两个全局变量,一个用来记录经ADS7846转换后输出触点的X和Y坐标值,另一个用来表示笔的当前工作状态:
1)数据的采集
为了使系统实时的响应外部中断处理,在进入笔中断服务程序以后,把pen_state变为1,立即跳出中断,程序随即进入坐标值转换和读取阶段,具体流程见图5。要完成X、Y坐标值的转换和读取,MCU需分别向ADS7846发测量命令字,X坐标测量命令字(0xD3)、Y坐标测量命令字(0x93)。读取坐标值的C程序如下:
intTouch_GetXY()
{……
for(i=;i<16;i++)
{rPDATG|=0x40;/DCLK为高~H~K~Hp~M~2~1~Kp~M~2~1~0 temp=(rPDATF>>7);
temp&=0x1;/通过PF7逐位读取坐标值~H~K~Hp~M~2~1~Kp~M~2~1~0 data|=temp<<(15-i);/把数据暂存在tempundefined/
Delay(220);/delay220nundefined/
rPDATG&=0xBF;/DCLK为低~H~K~Hp~M~2~1~Kp~M~2~1~0 Delay(220);/delay220nundefined/
}
data&=0xffff;
data=(data>>4);/剔除后面4个undefined/
return(data);/返回坐标值~H~K~Hp~M~2~1~Kp~M~2~1~0 }
由于笔与触摸屏接触的压力大小、时间长短,会导致触点的抖动,这对于采集正确的触点位置值有一定的影响。本文采用两次采样的方法来消除触点的抖动,在程序中定义了一个计数器count,计算采样次数,当读取两次后跳出采样程序。得到两次坐标值分别为(fisrt.x,first.y)、(second.x,second.y),然后比较其差值,如果小于一定的值,则有效,并取其平均值;否则判为采样错误,重新采样。
通过触摸屏和LCD的配合,此种方法取得了较好的实际效果,基本上消除了触点抖动的影响。
5、总结
本文所介绍的程序已经在S3C44B0平台上经过实际验证,并与彩色LCD相配合,可提供可视化的人机界面。本系统应用到了气相色谱仪工作站上,操作者可以直观的查看温度检测器、流量控制器的运行状况,同时可以实时地修改控制参数,系统稳定性良好。