基于虚拟仪器的无线白酒电子鼻的设计*
2012-08-13周红标张宇林张新荣丁友威
周红标,张宇林,张新荣,丁友威
(淮阴工学院 电子与电气工程学院,江苏 淮安 223003)
白酒是中国特有的一种蒸馏酒[1]。白酒的品质识别主要是通过感官评定和化学分析法检测,其缺点显而易见[2]。
电子鼻是一种分析、识别、检测复杂嗅味和挥发性成分的人工嗅觉系统,其能得到样品中挥发性成分的整体信息[3]。电子鼻中的一个重要环节是气味数据的采集,前期已经用数据采集卡设计了第一代HG_Enose_WQ1型白酒电子鼻[4]。本文以STM32为核心处理器,将 Zig-Bee无线通信、虚拟仪器等技术融为一体,设计了第二代无线白酒电子鼻(HG_Enose_WQ2型)。
1 系统总体结构
无线白酒电子鼻由网关节点和终端节点组成。终端节点主要实现气味信号采集、信号调理、A/D转换、无线通信、数据传输、人机对话等功能。其以控制器为核心,包括气敏传感器阵列、温湿度传感器模块、信号调理模块、电源模块、键盘模块、显示模块、无线通信模块和串行通信模块等。系统总体功能是:首先由上位机软件平台发布采集数据命令,通过网关节点将命令由其无线收发模块进行发送;终端节点接收到命令后,将命令的主机地址与自己地址对照,如果一致,则执行气味和温湿度数据采集操作,并对其进行A/D转换,处理器将数据进行打包,通过无线收发模块发送到网关节点;网关节点接收数据,并通过RS232总线以MODBUS协议形式传输给上位机;最后在上位机软件平台上进行实时显示、存储、回放和分析等数据处理操作。图1为电子鼻硬件系统总体框图。
2 硬件设计
硬件设计部分介绍了各硬件电路模块的设计思想。
2.1 气敏传感器阵列
图1 电子鼻硬件系统总体框图
在电子鼻中,气敏传感器是采集气体信息的主要部件,它将气体种类及其浓度的相关信息转化成电信号后进行检测。借鉴参考文献[5],本设计的白酒电子鼻选择了日本费加罗公司生产的 TGS2600、TGS2602、TGS2610、TGS2611、TGS2620共 5个 TGS传感器组成传感器阵列,这些传感器对酒精的敏感性高,非常适合于检测微量低浓度气体,具有寿命长、稳定性好、耐腐蚀性强、结构简单、成本低、可靠性和机械性能好、可长时间连续使用等优点。其对气体的检测可通过器件电阻变化直接转变成电信号,且电阻率变化大,信号处理可不用高倍数的放大电路即可实现。为了校正温湿度对电子鼻系统的影响,传感器板上扩展了AM2302型数字温湿度传感器,它是一款含有已校准数字信号输出的温湿度复合传感器。
2.2 信号调理模块
电子鼻气体采样方式采用的是静态采样法,主要是在一个含有传感器的密闭容器中放置一些固体或气体样品,使其挥发变成气体。也可以通过注射口直接将样品气体注射到容器中进行测试,测试完成后需要将这一密闭容器进行清洗,然后再进行下一次实验。气体分子在静态的环境中主要以扩散的形式充满整个测试容器。信号调理模块的核心就是通过外接电阻将气敏传感器电阻的变化转换成电压信号输出。考虑到可能存在的高频干扰,通过并联电容进行低通滤波。由于传感器阵列是由多个传感器组成,如果每一个传感器都占用一个A/D口,则会导致控制器资源不够用。因此利用8选1模拟开关CD4051分时选通传感器,以节约A/D端口。图2所示为气敏传感器阵列信号拾取电路原理图(传感器仅给出了TGS2600)。
图2 传感器阵列信号拾取电路原理图
2.3 核心处理器模块
电子鼻核心处理器选用STM32系列增强型微控制器STM32F103,其采用ARM公司具有突破性的Cortex-M3内核[6],工作频率为 72 MHz,片上集成的 Flash最多可达512 KB,可用于存储程序和节点在工作过程中采集到的气味数据;片上还带有 2个 12 bit ADC,可以将气敏传感器电压信号转换为MCU可以运算、处理的数字信号;5个USART接口可以用于无线收发芯片与上位机之间进行通信。
2.4 无线通信模块
无线通信模块选用CC2430芯片,它是一款符合ZigBee技术的2.4 GHz射频芯片,其工作电压范围为2.0 V~3.6 V,电流消耗很低,发射电流约为 25 mA,接收电流约为 27 mA,休眠模式时仅为 0.9 μA,能够满足无线电子鼻系统高性能、低功耗的需求[7]。CC2430与STM32核心处理器连接非常方便,它仅使用2根线将CC2430的 P0_3(TX)和 P0_2(RX)两个引脚与 STM32的PA2(UART2_TXD)和 PA3(UART2_RXD)两个引脚相连即可实现数据的收发。具体电路如图3所示。
图3 ZigBee无线通信模块电路原理图
2.5 其他模块
电子鼻系统中硬件装置和PC机之间采用RS-232通信方式,设计电路时采用MAX3232芯片进行电平转换。电子鼻系统中,STM32、CC2430工作电压为 3.3 V,传感器加热电压为5 V,需要将电源适配器输出的5 V电压进行降压处理,因此设计了电源模块。为了人机交互的方便,还设计了矩阵键盘、LED显示等模块。
3 软件设计
系统软件分为嵌入式软件和上位机软件两个部分,采用模块化的编程思想进行设计。嵌入式软件系统主要包括主程序、A/D转换子程序、LED显示子程序、无线通信子程序、RS-232通信子程序、数据存储子程序等模块,基于ARM嵌入式的开发环境IAR进行编程;上位机软件系统主要完成数据采集、数据存储、数据预处理、数据特征提取等功能,采用基于G语言的虚拟仪器开发平台LabVIEW进行设计。可靠的软件程序将能保证电子鼻系统的稳定运行,为后续的白酒品质检测实验提供一个良好的检测平台。
限于篇幅,本文主要介绍上位机软件设计思路。上位机软件采用NI公司推出的一种虚拟仪器软件Lab-VIEW作为开发平台,数据采集是其最主要的功能之一,需要完成5路气味数据、温湿度的实时显示和存储。数据采集模块采用VISA实现LabVIEW与电子鼻硬件装置之间的通信[8]。
首先是串口初始化,利用VISA Configure SerialPort.vi节点设定串口的端口号、波特率、1帧信息中的有效数据的位数、停止位、奇偶校验、数据流量控制等。其次是读写串口,利用VISA Read.vi节点和VISA Write.vi节点对串口进行读写。由于LabVIEW平台上的串行通信过程中,发送和接收的数据格式是以字符串格式,字符串中的每个字符实际上对应ASCII字符;而采用MODBUS RTU模式进行通信时,发送和接收的数据格式是直接的十六进制字符。所以,发送数据之前必须把要发送的十六进制字符利用bytes array to string函数转换成对应的ASCII字符,同样接收到的数据(ASCII字符)可通过string to byte array函数转换为对应的十六进制字符。最后关闭串口,利用VISA Close.vi节点将打开的串口关闭,停止所有读写操作。
STM32处理器与上位机之间采用了MODBUS“一问一答”形式的通信协议,单纯使用VISA函数,虽然能够建立上位机与下位机之间的通信,且能采集到数据,但数据存在乱码现象。因此,在数据采集程序While循环外部使用NI MODBUS函数库中的MB Serial Init函数初始化串口,修正前述的VISA Configure SerialPort.vi函数。并且,在数据发送和数据接收之间加了一个延迟,延迟时间可由前面板指定,一般设置为50 ms。MODBUS采用RTU格式,PC机采集下位ARM处理器的数据,设定下位机的地址编号为01,数据存储的寄存器首地址为0CH单元,采集下位机的数据量为:终端ZigBee节点的短地址 2 B、8个传感器的数据16 B(其中只使用了5个传感器,另外3个传感器未连接,传感器板上多设计了3个气味传感器插脚以便阵列的进一步扩充)、温湿度4 B,共计 22 B、11个字。若 MODBUS协议中读取下位机数据功能码为03H,则上位计算机应向下位机发送命令码01 03 00 0C 00 0B C4 0E(C4 0E是前6 B的CRC-16校验码),下位机接收到该命令后,则按MODBUS协议格式返回采集到的数据。
为了将采集的数据保存在PC机中以便进一步分析,数据采集模块首先利用Open/Create/Replace File函数创建一个文本文件,如果这个文件存在就替换它,然后再利用Write to Text File函数将数据保存为文本文件。同时采用磁盘流技术来提高数据存储的效率,即在程序执行过程中,文件一直处于打开状态,避免了每次写文件前后程序都要与计算机操作系统交互操作去打开或关闭文件。此外,合理保存5路传感器输出的响应值也较为重要。如果在txt文件中能以5列的形式进行数据存储,则能给下面基于MATLAB平台的数据处理和识别带来极大的方便。在由簇Unbundle函数对5列数据形成的簇拆解之后,利用Cluster to Array函数将簇数据转换成数组数据,并进一步利用Array to Spreadsheet String函数将数组转换成电子表格数据形式,送入Write to Text File函数,就能得到所需的txt文件存储效果。通过LabVIEW软件平台进行白酒气味数据采集的前面板如图4所示。
图4 数据采集模块前面板
经过实验测试,本系统运行可靠,能够满足白酒气味数据采集的实验需求。但也存在一些问题:气敏传感器选择的是商用传感器,价格昂贵;采取的静态顶空生成法的效果不如动态采样法;虽然加了无线通信等新手段,但整个系统自动化程度不高,在硬件上表现为需要人工操作置入电子鼻,在软件上表现为需要人为执行采样起始和结束等操作。下一步的工作是与材料学科紧密合作,制作自己的传感器,研制动态采样全自动智能型电子鼻。
[1]杨国强,张淑娟.电子鼻技术在酒类识别应用中的研究进展[J].山西农业大学学报(自然科学版),2010,30(1):92-96.
[2]Yu Huichun,Wang Jun.Discrimination of longjing green-tea grade by electronic nose[J].Sensors and Actuators B,2007,122(1):134-140.
[3]刘红秀,李洪波,李卫东.基于电子鼻的鱼类新鲜度估计研究[J].中山大学学报(自然科学版),2010,49(2):28-30.
[4]蒋鼎国,周红标,耿忠华.基于 PSO-SVM的白酒品质鉴别电子鼻[J].中国酿造,2011(11):149-152.
[5]Zhang Zhe,Tong Jin,Chen Donghui,et al.Electronic nose with an air sensor matrix for detecting beef freshness[J].Journal of Bionic Engineering,2008,5(1):67-73.
[6]周永龙,雷金奎.基于STM32的数字舵机控制系统的设计[J].计算机测量与控制,2011,19(1):66-68.
[7]丁承君,赵艳辉,张明路,等.基于 ZigBee的有害气体信息采集系统设计[J].天津工业大学学报,2012,31(1):74-77.
[8]周红标,蒋鼎国,柯永斌,等.基于STC单片机和LabVIEW的心音信号检测系统[J].电子技术应用,2012,38(1):31-33.