近红外光谱主要是由分子振动的非谐振性使分子振动从基态向高能级跃迁时产生的,记录的主要是含氢基团C-H、O-H、N-H等振动的倍频和合频吸收[1],具有丰富的物质结构和组成信息,非常适合用于碳氢有机物质的组成性质测量。近红外光谱作为迅速崛起的光谱分析技术在分析测试领域中起的作用越来越引起人们关注,由于样品在分析时基本不需要处理,且不破坏和消耗样品,自身又无环境污染,近红外光谱分析技术堪称是绿色分析仪器的典型代表[2],该技术已广泛应用于各领域包括农作物质量检测、食品成分分析、药物制剂分析、血氧的测定、石化工业分析、烟草行业中的应用等,是分析领域中最为活跃的热点。
文中采用基于ARM9内核的嵌入式系统S3C2410A为核心开发近红外光谱分析仪器。 作为32位的RISC(Reduced Instruction Set Computing)架构,基于ARM核的微控制器芯片具有较高的运行速度、较大的地址空间、低功耗和高性价比,具备在其上运行一个完整的嵌入式操作系统的能力,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。利用ARM来开发近红外光谱分析仪器,以触摸屏作为人机交换平台,取代了传统的键盘,脱离了定标等分析软件对微机的依赖,最终使用户在指引下通过简单的操作对样品进行检测。
2. 仪器结构与工作原理设计
2.1总体结构
本设计是基于ARM微处理器的滤光片型近红外光谱仪。总体结构如图(1)所示。光学系统中的光电检测信号经过ADC后,并行输入到单片机中进行初步数据处理,再由单片机串行发送到ARM微处理器中,利用ARM微处理器对光谱数据进行定标和分析,以及实现对光学系统、打印机和显示操作系统的控制。
图(1)总体结构图
2.2仪器光学原理结构
在近红外光谱测量技术中,对于分立波长型仪器是测量几个特定波长的光谱数据,并建立样品浓度与这些数据的关系。滤光片型的近红外仪器属于分立波长测量仪器,设计分别选取了在近红外光谱区内的11块不同透射波长的窄带干涉滤光片作为光谱仪器的分光系统。工作原理是:由光源发出的光经过滤光片得到一定带宽的分析光,当光进入样品内部后,通过与样品内部的漫反射作用返回表面,由光电检测器进行检测。漫反射光是分析光和样品内部分子发生了相互作用后的光,因此负载了样品的结构和组成信息,可用于样品成分测量。在测量过程中通过对滤光片盘的转动来得到不同波长的光,从而实现分光。
2.3 仪器的电学原理结构
本设计分为光谱数据采集系统和嵌入式控制系统两部分。
图(2)电学原理设计图
2.3.1光谱数据的采集系统
光谱数据的采集系统是由紧贴光传感器的ADC芯片和单片机来实现的。光谱信号的信噪比是仪器稳定性的重要指标。光谱数据采集系统要尽量避免光谱采集过程中噪声的引入和光谱信号的减弱,从而保证光谱数据采集的精度。因此,在光谱数据采集系统的设计中将ADC芯片紧贴光传感器,由单片机对光谱数据进行采集和初步处理后传输到ARM微处理器中,这样的设计可以减少数据的传输距离,避免因长距离传输而引入噪声,从而达到提高信噪比的目的。
2.3.2嵌入式控制系统
嵌入式控制系统采用的处理器是由SAMSUNG公司推出的16/32位RISC处理器S3C2410A。S3C2410A提供了丰富的内部设备其中包括:LCD控制,支持NAND Flash系统引导,3通道UART,4通道DMA, I/O端口,RTC,8通道10位ADC和触摸屏接口,IIC-BUS接口, USB设备,SD主卡&MMC卡接口,2通道的SPI以及内部PLL时钟倍频器等。S3C2410A采用了ARM920T内核,它的低功耗、精简和出色的全静态设计特别适用于对成本和功耗敏感的应用。利用ARM微处理器实现光谱数据的接收、定标、打印,人机交互界面和光学系统控制三大模块功能。
光谱数据接收和数据打印都是利用ARM板中RS-232标准串口通信模块来实现。S3C2410内部具有两个独立的UART控制器,每个UART均具有16字节的FIFO,支持的最高波特率可达到230.4Kbps。对ARM中的串口的设置主要是通过编写串口通信协议程序来实现。本设计采用的是异步通信的格式。数据位写入主要是通过对8位数据传送接收缓冲区寄存器URXH1、URXH2的写入来实现,缓冲区寄存器寄放传送/接收的数据字符。在字符数据传送/接收过程中,数据位从最低位开始发送。数据位发送完后,不设置发送奇偶校验位,数据位之后发送的是停止位,设置停止位是通过清零c_cflag中的CSTOPB来实现。波特率设置通过函数cfsetispeed和cfsetospeed来实现,如本设计采用的是9600波率,可以通过cfsetispeed(&newtio, B115200);和cfsetospeed(&newtio, B115200);语句来实现波特率的设置。
2.4光谱数据的精度控制
光谱数据的精度是决定仪器优劣的一个重要指标,为了确保系统的光谱数据精度,设计通过增加采集信号精度,减少外界引入的噪声这两个方面来实现对光谱数据信噪比的提高。采集系统中ADC芯片采用了24位带数字滤波的ADC,精度可达224,在噪声控制方面,为了减少系统的噪声,设计中对光学以及电学系统都做了屏蔽。在光学系统的整个外壳喷上了黑漆,以避免外界光的干扰。在电学上减少了对有源器件的使用,并且每个有源器件都具有独立的屏蔽,以减少电噪声的引入。经过实验测量,设计中的光谱数据采集精度可达到4位半的精度。
3.软件设计
3.1基于ARM9下Linux系统的串口应用程序设计
由于嵌入式控制系统中所选取的核心微处理器是植入了Linux 2.4.18内核的ARM9开发板,具体串口模块的打开以及读,写应用程序是由基于Linux下的C编程来完成。具体的流程图如下所示:
图(3)串口打开及设置流程图
串口模块打开后,ARM微处理器通过串口模块与单片机、热敏打印机进行通信,实现对光谱数据接收和打印的功能。
3.2基于嵌入式QT的人机交互界面应用软件设计
人机交互界面主要是利用基于Linux下的图形界面设计开发工具Qt/Embedded来实现。QT是挪威Trolltech 公司的一个标志性产品。它的开发语言是C++.,它为跨平台的软件开发者提供统一的,精美的图形用户编程接口,还提供了统一的网络和数据库操作的编程接口,这使得Linux这些操作系统以更加方便、精美的人机界面走近普通用户。Qt/Embedded是以原始的QT为基础,做出了许多调整以适用于嵌入式环境。Qt/Embedded是面向嵌入式系统的QT版本,是QT的嵌入式Linux窗口,是完整的自包含C++ GUI和基于Linux的嵌入式平台开发工具。
光谱采集定标应用软件设计包括了编译环境的建立和应用软件程序的编译两个部分构成。
3.2.1编译环境的建立
完整建立交叉编译环境需要用到的软件工具包包括:tmake-1.11或更高版本的tmake工具包、Qt/Embedded2.3.7安装包和Qt2.3.2 for X11版的安装包。首先将tmake-1.11工具包解压,得到tmake工具。tmake工具是用于生成应用程序中的Makefile。然后安装Qt/X11 2.3.2用于生成应用程序界面设计工具designer和应用程序界面的C++源程序、头文件的转化工具uic。其中必须注意的一点是uic和designer工具的源文件会和Qt/Embedded的库一起编译,所以根据“向前兼容”的原则,Qt for X11 的版本应比Qt/Embedded的版本旧。最后是对基于X86架构下的Qt/Embedded和基于ARM架构下的Qt/Embedded库进行编译,分别得到基于主机PC下的QTE编译库和基于ARM目标板下的QTE编译库。
3.2.2应用软件程序的编译
光谱采集定标应用软件程序编译利用Qt/X11中的designer工具进入QT图形界面设计器进行界面设计,生成以ui为后缀的界面图形文件。再利用uic工具生成图形界面文件所对应的C++源码及头文件。用vi建立应用软件的主程序和项目文件用于说明相关文件间的依赖关系。利用tmake工具生成应用软件的Makefile,最后通过g++交叉编译生成基于ARM架构下的可执行光谱采集定标应用软件程序的二进制文件,将其挂载到ARM板下便可运行。用户通过点触触摸屏就可以对测量的样品进行测量和定标。下面是软件具体的设计流程图。
图(4)软件工作流程
4.结束语
本设计利用了ARM开发板的丰富接口模块实现了近红外光谱仪器的光谱数据采集和打印机的控制。并通过QT编程实现了基于触摸屏的人机交互平台,使用者通过简单的点触操作就可以对一些物质进行分析。基于ARM微处理器的嵌入式近红外光谱仪器使用和操作更为简便是本设计的一大亮点,并且该嵌入式系统可加用于其它类型的光学系统,形成不同类型的光谱仪器,具有一定的普遍适用性。
本文作者创新点:在光谱数据采集系统中采用了24位带数字滤波器的ADC,使到仪器的精度有了一定的提高, 光谱数据采集精度可得到4位半。另一方面在仪器的嵌入式控制系统中选用了ARM微处理器取代了以往的单片机,使到定标等分析软件脱离对微机的依赖。