周紅標(biāo),張宇林,張新榮,丁友威
(淮陰工學(xué)院 電子與電氣工程學(xué)院,江蘇 淮安 223003)
白酒是中國(guó)特有的一種蒸餾酒[1]。白酒的品質(zhì)識(shí)別主要是通過(guò)感官評(píng)定和化學(xué)分析法檢測(cè),其缺點(diǎn)顯而易見(jiàn)[2]。
電子鼻是一種分析、識(shí)別、檢測(cè)復(fù)雜嗅味和揮發(fā)性成分的人工嗅覺(jué)系統(tǒng),其能得到樣品中揮發(fā)性成分的整體信息[3]。電子鼻中的一個(gè)重要環(huán)節(jié)是氣味數(shù)據(jù)的采集,前期已經(jīng)用數(shù)據(jù)采集卡設(shè)計(jì)了第一代HG_Enose_WQ1型白酒電子鼻[4]。本文以STM32為核心處理器,將 Zig-Bee無(wú)線通信、虛擬儀器等技術(shù)融為一體,設(shè)計(jì)了第二代無(wú)線白酒電子鼻(HG_Enose_WQ2型)。
無(wú)線白酒電子鼻由網(wǎng)關(guān)節(jié)點(diǎn)和終端節(jié)點(diǎn)組成。終端節(jié)點(diǎn)主要實(shí)現(xiàn)氣味信號(hào)采集、信號(hào)調(diào)理、A/D轉(zhuǎn)換、無(wú)線通信、數(shù)據(jù)傳輸、人機(jī)對(duì)話等功能。其以控制器為核心,包括氣敏傳感器陣列、溫濕度傳感器模塊、信號(hào)調(diào)理模塊、電源模塊、鍵盤(pán)模塊、顯示模塊、無(wú)線通信模塊和串行通信模塊等。系統(tǒng)總體功能是:首先由上位機(jī)軟件平臺(tái)發(fā)布采集數(shù)據(jù)命令,通過(guò)網(wǎng)關(guān)節(jié)點(diǎn)將命令由其無(wú)線收發(fā)模塊進(jìn)行發(fā)送;終端節(jié)點(diǎn)接收到命令后,將命令的主機(jī)地址與自己地址對(duì)照,如果一致,則執(zhí)行氣味和溫濕度數(shù)據(jù)采集操作,并對(duì)其進(jìn)行A/D轉(zhuǎn)換,處理器將數(shù)據(jù)進(jìn)行打包,通過(guò)無(wú)線收發(fā)模塊發(fā)送到網(wǎng)關(guān)節(jié)點(diǎn);網(wǎng)關(guān)節(jié)點(diǎn)接收數(shù)據(jù),并通過(guò)RS232總線以MODBUS協(xié)議形式傳輸給上位機(jī);最后在上位機(jī)軟件平臺(tái)上進(jìn)行實(shí)時(shí)顯示、存儲(chǔ)、回放和分析等數(shù)據(jù)處理操作。圖1為電子鼻硬件系統(tǒng)總體框圖。
硬件設(shè)計(jì)部分介紹了各硬件電路模塊的設(shè)計(jì)思想。
圖1 電子鼻硬件系統(tǒng)總體框圖
在電子鼻中,氣敏傳感器是采集氣體信息的主要部件,它將氣體種類及其濃度的相關(guān)信息轉(zhuǎn)化成電信號(hào)后進(jìn)行檢測(cè)。借鑒參考文獻(xiàn)[5],本設(shè)計(jì)的白酒電子鼻選擇了日本費(fèi)加羅公司生產(chǎn)的 TGS2600、TGS2602、TGS2610、TGS2611、TGS2620共 5個(gè) TGS傳感器組成傳感器陣列,這些傳感器對(duì)酒精的敏感性高,非常適合于檢測(cè)微量低濃度氣體,具有壽命長(zhǎng)、穩(wěn)定性好、耐腐蝕性強(qiáng)、結(jié)構(gòu)簡(jiǎn)單、成本低、可靠性和機(jī)械性能好、可長(zhǎng)時(shí)間連續(xù)使用等優(yōu)點(diǎn)。其對(duì)氣體的檢測(cè)可通過(guò)器件電阻變化直接轉(zhuǎn)變成電信號(hào),且電阻率變化大,信號(hào)處理可不用高倍數(shù)的放大電路即可實(shí)現(xiàn)。為了校正溫濕度對(duì)電子鼻系統(tǒng)的影響,傳感器板上擴(kuò)展了AM2302型數(shù)字溫濕度傳感器,它是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。
電子鼻氣體采樣方式采用的是靜態(tài)采樣法,主要是在一個(gè)含有傳感器的密閉容器中放置一些固體或氣體樣品,使其揮發(fā)變成氣體。也可以通過(guò)注射口直接將樣品氣體注射到容器中進(jìn)行測(cè)試,測(cè)試完成后需要將這一密閉容器進(jìn)行清洗,然后再進(jìn)行下一次實(shí)驗(yàn)。氣體分子在靜態(tài)的環(huán)境中主要以擴(kuò)散的形式充滿整個(gè)測(cè)試容器。信號(hào)調(diào)理模塊的核心就是通過(guò)外接電阻將氣敏傳感器電阻的變化轉(zhuǎn)換成電壓信號(hào)輸出??紤]到可能存在的高頻干擾,通過(guò)并聯(lián)電容進(jìn)行低通濾波。由于傳感器陣列是由多個(gè)傳感器組成,如果每一個(gè)傳感器都占用一個(gè)A/D口,則會(huì)導(dǎo)致控制器資源不夠用。因此利用8選1模擬開(kāi)關(guān)CD4051分時(shí)選通傳感器,以節(jié)約A/D端口。圖2所示為氣敏傳感器陣列信號(hào)拾取電路原理圖(傳感器僅給出了TGS2600)。
圖2 傳感器陣列信號(hào)拾取電路原理圖
電子鼻核心處理器選用STM32系列增強(qiáng)型微控制器STM32F103,其采用ARM公司具有突破性的Cortex-M3內(nèi)核[6],工作頻率為 72 MHz,片上集成的 Flash最多可達(dá)512 KB,可用于存儲(chǔ)程序和節(jié)點(diǎn)在工作過(guò)程中采集到的氣味數(shù)據(jù);片上還帶有 2個(gè) 12 bit ADC,可以將氣敏傳感器電壓信號(hào)轉(zhuǎn)換為MCU可以運(yùn)算、處理的數(shù)字信號(hào);5個(gè)USART接口可以用于無(wú)線收發(fā)芯片與上位機(jī)之間進(jìn)行通信。
無(wú)線通信模塊選用CC2430芯片,它是一款符合ZigBee技術(shù)的2.4 GHz射頻芯片,其工作電壓范圍為2.0 V~3.6 V,電流消耗很低,發(fā)射電流約為 25 mA,接收電流約為 27 mA,休眠模式時(shí)僅為 0.9 μA,能夠滿足無(wú)線電子鼻系統(tǒng)高性能、低功耗的需求[7]。CC2430與STM32核心處理器連接非常方便,它僅使用2根線將CC2430的 P0_3(TX)和 P0_2(RX)兩個(gè)引腳與 STM32的PA2(UART2_TXD)和 PA3(UART2_RXD)兩個(gè)引腳相連即可實(shí)現(xiàn)數(shù)據(jù)的收發(fā)。具體電路如圖3所示。
圖3 ZigBee無(wú)線通信模塊電路原理圖
電子鼻系統(tǒng)中硬件裝置和PC機(jī)之間采用RS-232通信方式,設(shè)計(jì)電路時(shí)采用MAX3232芯片進(jìn)行電平轉(zhuǎn)換。電子鼻系統(tǒng)中,STM32、CC2430工作電壓為 3.3 V,傳感器加熱電壓為5 V,需要將電源適配器輸出的5 V電壓進(jìn)行降壓處理,因此設(shè)計(jì)了電源模塊。為了人機(jī)交互的方便,還設(shè)計(jì)了矩陣鍵盤(pán)、LED顯示等模塊。
系統(tǒng)軟件分為嵌入式軟件和上位機(jī)軟件兩個(gè)部分,采用模塊化的編程思想進(jìn)行設(shè)計(jì)。嵌入式軟件系統(tǒng)主要包括主程序、A/D轉(zhuǎn)換子程序、LED顯示子程序、無(wú)線通信子程序、RS-232通信子程序、數(shù)據(jù)存儲(chǔ)子程序等模塊,基于ARM嵌入式的開(kāi)發(fā)環(huán)境IAR進(jìn)行編程;上位機(jī)軟件系統(tǒng)主要完成數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)預(yù)處理、數(shù)據(jù)特征提取等功能,采用基于G語(yǔ)言的虛擬儀器開(kāi)發(fā)平臺(tái)LabVIEW進(jìn)行設(shè)計(jì)??煽康能浖绦?qū)⒛鼙WC電子鼻系統(tǒng)的穩(wěn)定運(yùn)行,為后續(xù)的白酒品質(zhì)檢測(cè)實(shí)驗(yàn)提供一個(gè)良好的檢測(cè)平臺(tái)。
限于篇幅,本文主要介紹上位機(jī)軟件設(shè)計(jì)思路。上位機(jī)軟件采用NI公司推出的一種虛擬儀器軟件Lab-VIEW作為開(kāi)發(fā)平臺(tái),數(shù)據(jù)采集是其最主要的功能之一,需要完成5路氣味數(shù)據(jù)、溫濕度的實(shí)時(shí)顯示和存儲(chǔ)。數(shù)據(jù)采集模塊采用VISA實(shí)現(xiàn)LabVIEW與電子鼻硬件裝置之間的通信[8]。
首先是串口初始化,利用VISA Configure SerialPort.vi節(jié)點(diǎn)設(shè)定串口的端口號(hào)、波特率、1幀信息中的有效數(shù)據(jù)的位數(shù)、停止位、奇偶校驗(yàn)、數(shù)據(jù)流量控制等。其次是讀寫(xiě)串口,利用VISA Read.vi節(jié)點(diǎn)和VISA Write.vi節(jié)點(diǎn)對(duì)串口進(jìn)行讀寫(xiě)。由于LabVIEW平臺(tái)上的串行通信過(guò)程中,發(fā)送和接收的數(shù)據(jù)格式是以字符串格式,字符串中的每個(gè)字符實(shí)際上對(duì)應(yīng)ASCII字符;而采用MODBUS RTU模式進(jìn)行通信時(shí),發(fā)送和接收的數(shù)據(jù)格式是直接的十六進(jìn)制字符。所以,發(fā)送數(shù)據(jù)之前必須把要發(fā)送的十六進(jìn)制字符利用bytes array to string函數(shù)轉(zhuǎn)換成對(duì)應(yīng)的ASCII字符,同樣接收到的數(shù)據(jù)(ASCII字符)可通過(guò)string to byte array函數(shù)轉(zhuǎn)換為對(duì)應(yīng)的十六進(jìn)制字符。最后關(guān)閉串口,利用VISA Close.vi節(jié)點(diǎn)將打開(kāi)的串口關(guān)閉,停止所有讀寫(xiě)操作。
STM32處理器與上位機(jī)之間采用了MODBUS“一問(wèn)一答”形式的通信協(xié)議,單純使用VISA函數(shù),雖然能夠建立上位機(jī)與下位機(jī)之間的通信,且能采集到數(shù)據(jù),但數(shù)據(jù)存在亂碼現(xiàn)象。因此,在數(shù)據(jù)采集程序While循環(huán)外部使用NI MODBUS函數(shù)庫(kù)中的MB Serial Init函數(shù)初始化串口,修正前述的VISA Configure SerialPort.vi函數(shù)。并且,在數(shù)據(jù)發(fā)送和數(shù)據(jù)接收之間加了一個(gè)延遲,延遲時(shí)間可由前面板指定,一般設(shè)置為50 ms。MODBUS采用RTU格式,PC機(jī)采集下位ARM處理器的數(shù)據(jù),設(shè)定下位機(jī)的地址編號(hào)為01,數(shù)據(jù)存儲(chǔ)的寄存器首地址為0CH單元,采集下位機(jī)的數(shù)據(jù)量為:終端ZigBee節(jié)點(diǎn)的短地址 2 B、8個(gè)傳感器的數(shù)據(jù)16 B(其中只使用了5個(gè)傳感器,另外3個(gè)傳感器未連接,傳感器板上多設(shè)計(jì)了3個(gè)氣味傳感器插腳以便陣列的進(jìn)一步擴(kuò)充)、溫濕度4 B,共計(jì) 22 B、11個(gè)字。若 MODBUS協(xié)議中讀取下位機(jī)數(shù)據(jù)功能碼為03H,則上位計(jì)算機(jī)應(yīng)向下位機(jī)發(fā)送命令碼01 03 00 0C 00 0B C4 0E(C4 0E是前6 B的CRC-16校驗(yàn)碼),下位機(jī)接收到該命令后,則按MODBUS協(xié)議格式返回采集到的數(shù)據(jù)。
為了將采集的數(shù)據(jù)保存在PC機(jī)中以便進(jìn)一步分析,數(shù)據(jù)采集模塊首先利用Open/Create/Replace File函數(shù)創(chuàng)建一個(gè)文本文件,如果這個(gè)文件存在就替換它,然后再利用Write to Text File函數(shù)將數(shù)據(jù)保存為文本文件。同時(shí)采用磁盤(pán)流技術(shù)來(lái)提高數(shù)據(jù)存儲(chǔ)的效率,即在程序執(zhí)行過(guò)程中,文件一直處于打開(kāi)狀態(tài),避免了每次寫(xiě)文件前后程序都要與計(jì)算機(jī)操作系統(tǒng)交互操作去打開(kāi)或關(guān)閉文件。此外,合理保存5路傳感器輸出的響應(yīng)值也較為重要。如果在txt文件中能以5列的形式進(jìn)行數(shù)據(jù)存儲(chǔ),則能給下面基于MATLAB平臺(tái)的數(shù)據(jù)處理和識(shí)別帶來(lái)極大的方便。在由簇Unbundle函數(shù)對(duì)5列數(shù)據(jù)形成的簇拆解之后,利用Cluster to Array函數(shù)將簇?cái)?shù)據(jù)轉(zhuǎn)換成數(shù)組數(shù)據(jù),并進(jìn)一步利用Array to Spreadsheet String函數(shù)將數(shù)組轉(zhuǎn)換成電子表格數(shù)據(jù)形式,送入Write to Text File函數(shù),就能得到所需的txt文件存儲(chǔ)效果。通過(guò)LabVIEW軟件平臺(tái)進(jìn)行白酒氣味數(shù)據(jù)采集的前面板如圖4所示。
圖4 數(shù)據(jù)采集模塊前面板
經(jīng)過(guò)實(shí)驗(yàn)測(cè)試,本系統(tǒng)運(yùn)行可靠,能夠滿足白酒氣味數(shù)據(jù)采集的實(shí)驗(yàn)需求。但也存在一些問(wèn)題:氣敏傳感器選擇的是商用傳感器,價(jià)格昂貴;采取的靜態(tài)頂空生成法的效果不如動(dòng)態(tài)采樣法;雖然加了無(wú)線通信等新手段,但整個(gè)系統(tǒng)自動(dòng)化程度不高,在硬件上表現(xiàn)為需要人工操作置入電子鼻,在軟件上表現(xiàn)為需要人為執(zhí)行采樣起始和結(jié)束等操作。下一步的工作是與材料學(xué)科緊密合作,制作自己的傳感器,研制動(dòng)態(tài)采樣全自動(dòng)智能型電子鼻。
[1]楊國(guó)強(qiáng),張淑娟.電子鼻技術(shù)在酒類識(shí)別應(yīng)用中的研究進(jìn)展[J].山西農(nóng)業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),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]劉紅秀,李洪波,李衛(wèi)東.基于電子鼻的魚(yú)類新鮮度估計(jì)研究[J].中山大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,49(2):28-30.
[4]蔣鼎國(guó),周紅標(biāo),耿忠華.基于 PSO-SVM的白酒品質(zhì)鑒別電子鼻[J].中國(guó)釀造,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的數(shù)字舵機(jī)控制系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2011,19(1):66-68.
[7]丁承君,趙艷輝,張明路,等.基于 ZigBee的有害氣體信息采集系統(tǒng)設(shè)計(jì)[J].天津工業(yè)大學(xué)學(xué)報(bào),2012,31(1):74-77.
[8]周紅標(biāo),蔣鼎國(guó),柯永斌,等.基于STC單片機(jī)和LabVIEW的心音信號(hào)檢測(cè)系統(tǒng)[J].電子技術(shù)應(yīng)用,2012,38(1):31-33.