許鯉蓉,劉剛,袁景淇
工業(yè)污水的過度排放和農(nóng)藥的過度使用使我國的水體受到嚴重污染。飲用水來自江水、河水,原水中的污染物尤其是各類毒性物質(zhì),是否得到完全凈化是一項重要的任務(wù)。飲用水出廠毒性物質(zhì)檢測和用戶終端檢測的重要性不言而喻。本文論述了自主研發(fā)的光電式飲用水綜合毒性物質(zhì)檢測儀的支撐軟件設(shè)計。
熒光素—熒光素酶反應(yīng)體系是指熒光素在熒光素酶的催化下消耗ATP ,并與氧氣發(fā)生反應(yīng),發(fā)出熒光[1] [2]。水中的毒性物質(zhì)會抑制熒光素酶的活性,從而抑制該反應(yīng)的熒光發(fā)光強度[3]。水中毒性物質(zhì)的濃度越高,抑制作用越強,因此對添加了水樣的熒光素—熒光素酶反應(yīng)體系的發(fā)光強度的測定,就可以監(jiān)測水中毒性物質(zhì)的濃度水平?;诖嗽?,可研制水綜合毒性物質(zhì)檢測儀。
圖1 水綜合毒性檢測儀的系統(tǒng)結(jié)構(gòu)圖
水綜合毒性物質(zhì)檢測儀的系統(tǒng)結(jié)構(gòu),包括發(fā)光菌和樣品、光電傳感器、放大器、A/D轉(zhuǎn)換、單片機、串口模塊、液晶顯示、按鍵以及上位機。該儀器的系統(tǒng)結(jié)構(gòu)圖見圖1。
檢測分成兩步,先檢測并記錄添加無毒樣品的熒光素-熒光素酶反應(yīng)體系的30秒的發(fā)光強度(稱為空白值),再檢測并記錄有毒樣品的發(fā)光強度(稱為相對發(fā)光值),從而可計算有毒樣品對熒光素-熒光素酶反應(yīng)體系發(fā)光的抑制率,抑制率越高,樣品的毒性越強。檢測時,光電傳感器采光口接收添加樣品的熒光素-熒光素酶反應(yīng)體系發(fā)出的光,產(chǎn)生微電流,經(jīng)運算放大器(含濾波電路)放大后送入 A/D轉(zhuǎn)換模塊轉(zhuǎn)換為數(shù)字量,再由單片機的軟件實時讀取轉(zhuǎn)換結(jié)果,該結(jié)果經(jīng)過軟件濾波后送液晶顯示,并送上位機實時保存光強度數(shù)據(jù)和繪制光強度數(shù)據(jù)曲線。
(1)系統(tǒng)的控制:由鍵盤來控制系統(tǒng)在某一時刻所要實現(xiàn)的功能,包括開/關(guān)機,數(shù)據(jù)采集等。
(2)數(shù)據(jù)處理:對A/D采集到的數(shù)據(jù)進行濾波處理,計算樣品的抑制率。
(3)通訊功能:將下位機測量的數(shù)據(jù)結(jié)果發(fā)送到上位機。
(4)數(shù)據(jù)的顯示:在下位機上用液晶顯示所測光強度數(shù)據(jù)。
(5)報警功能:根據(jù)樣品的抑制率,判斷樣品的毒性是否超標,如果超標,給出報警。
(6)上位機實時繪制光強度數(shù)據(jù)曲線和保存光強度數(shù)據(jù),實現(xiàn)數(shù)據(jù)回溯和數(shù)據(jù)庫管理。
采用的是ELAN公司的單片機[4],因此在儀器的軟件開發(fā)上,使用ELAN公司提供的軟件開發(fā)環(huán)境WisePlus進行開發(fā),在WisePlus下可以使用的語言,是匯編語言和c語言。由于c語言可讀性和可維護性比較高,因此采用c語言編程。下位機軟件主要包括主程序、數(shù)據(jù)處理程序、各模塊的驅(qū)動程序:如 A/D采樣驅(qū)動程序、液晶驅(qū)動程序、串口驅(qū)動程序。
主程序是在各個驅(qū)動程序的基礎(chǔ)上編寫,它將各個模塊的程序組成一個有機的整體。下位機主程序的流程圖見圖2。
圖2 下位機主程序流程圖
2.1.1 A/D采樣驅(qū)動程序
A/D芯片用的是 MCP3201[5]芯片,該芯片與單片機的通訊采用的是標準的SPI兼容的接口。
MCP3201芯片通訊的啟動條件: /CS引腳為低。如果如果器件上電時, /CS 引腳為低電平,則必須先將此引腳拉為高電平,然后再恢復(fù)至低電平以啟動通信。器件將在/CS變?yōu)榈碗娖胶笤诘谝粋€上升,沿開始對模擬輸入信號進行采樣。 采樣周期將在第二個時鐘周期的下降沿結(jié)束,此時器件將輸出一個低電平空位。 接下來的12 個時鐘脈沖,將以首先發(fā)送MSB位的格式輸出轉(zhuǎn)換結(jié)果。圖3是A/D采樣驅(qū)動程序的流程圖:
圖3 A/D采樣驅(qū)動程序的流程圖
2.1.2 數(shù)據(jù)處理程序
由于采集到的數(shù)據(jù)受到噪聲的影響,會有一定的波動,所以在這里進行軟件濾波。軟件濾波的算法如下:
步驟1 每秒鐘采集10個數(shù)據(jù),對這10個數(shù)據(jù)求均值并保存該值。
步驟2 連續(xù)3秒保存用步驟1求得的均值。
步驟3 選用步驟2中3個數(shù)據(jù)的中間值,將這個值作為輸出值。
數(shù)據(jù)處理程序的另一個功能是根據(jù)所測得的空白值和相對發(fā)光值,計算出所測樣品的毒性物質(zhì)的光抑制率。
2.1.3 液晶驅(qū)動程序
液晶的驅(qū)動程序主要是對液晶驅(qū)動芯片 HT1621[6]進行編程。HT1621 是一個 128(32×4)點的 LCD 驅(qū)動器。它可由軟件配置成1/2 或1/3 的LCD驅(qū)動器偏壓和2 、3或4個公共端口。這一特性使HT1621適用于多種LCD 應(yīng)用場合。LCD驅(qū)動時鐘由系統(tǒng)時鐘分頻產(chǎn)生。LCD 驅(qū)動時鐘的頻率值保持為 256Hz,由頻率為 32.768KHz的晶振片內(nèi)RC 振蕩器或外部時鐘產(chǎn)生。圖4為液晶驅(qū)動程序的流程圖:
圖4 液晶驅(qū)動程序的流程圖
2.1.4 串口驅(qū)動程序
采用 RS-232標準的異步串行通訊采協(xié)議:“波特率9600,8位數(shù)據(jù)位,無奇偶校驗位,1位停止位”。PC 機采用COM1通信。
圖5為下位機串口的發(fā)送流程圖:
圖5 下位機串口的發(fā)送流程圖
這里波特率的產(chǎn)生是通過延時來實現(xiàn)的。要實現(xiàn) 9600的波特率,就應(yīng)該延時0.104毫秒。
為保證上下位機的準確通訊,采取如下的數(shù)據(jù)傳送格式:串口每次可發(fā)送8位數(shù)據(jù),有效的數(shù)字為12位。因此每個數(shù)據(jù)分為兩次發(fā)送,每次發(fā)送有效的6位。將每次發(fā)送的第8位作為標志位,發(fā)送低6位時,第8位為1,發(fā)送高6位時,第8位為0。先發(fā)送低位,再發(fā)送高位。采用這樣的數(shù)據(jù)傳送格式能夠有效地區(qū)分高位和低位,從而保證數(shù)據(jù)傳送的正確性。
2.2.1 上位機軟件串口程序
上位機軟件的串口部分使用 VC++提供的通訊控件MSComm,以MFC為基礎(chǔ)編寫[7]。
通過對MSComm控件的屬性進行設(shè)置,就可以實現(xiàn)串口的初始化, MSComm控件在串口編程時只有一個事件,即OnComm事件。通過事件驅(qū)動,對時間的發(fā)生進行跟蹤和處理,從而檢測和處理通訊錯誤以及進行對數(shù)據(jù)的處理顯示等。在此,使用 OnComm 事件來進行數(shù)據(jù)的接收。
由于下位機發(fā)送的數(shù)據(jù)采用了特殊的數(shù)據(jù)格式,因此,上位機進行接收時,就需要根據(jù)相應(yīng)的格式進行接收和組合。接收的格式為:先判斷接收到的數(shù)據(jù)的第8位是否為1,為1,則表示接收到了低位;若為0,則表示接收為高位;如果接收完低位和高位,則分別取其中的低6位,組合成有效的12位數(shù)據(jù)。
2.2.2 上位機的繪圖程序
上位機軟件的繪圖部分使用了 VC++提供的 MSChart控件。軟件的繪圖部分實現(xiàn)了實時地將接收到的下位機的數(shù)據(jù)繪制成曲線,顯示出來。設(shè)置 MSChart控件的屬性,從而實現(xiàn)畫圖的初始化。在串口接收到數(shù)據(jù)的時候同時繪圖,并將數(shù)據(jù)保存在txt文件中。
本實驗采用甲拌磷為被檢毒物,反應(yīng)體系為熒光素—熒光素酶反應(yīng)體系,檢測儀器為自主研發(fā)的光電式水綜合毒性物質(zhì)檢測儀。待測的甲拌磷的濃度分別為:6、12、25、50、100(mg/L)。測試時,先測反應(yīng) 30秒的未添加甲拌磷的樣品的空白值,再測反應(yīng)30秒的添加了甲拌磷的樣品的相對發(fā)光值,計算甲拌磷對熒光素—熒光素酶反應(yīng)體系的光抑制率。
圖6 反應(yīng)時間30秒處甲拌磷/光抑制率關(guān)聯(lián)圖
圖6是利用試驗數(shù)據(jù)進行3次多項式擬合得到的甲拌磷濃度和光抑制率的曲線。實驗表明該儀器測得的光抑制率,可用來判斷毒性物質(zhì)濃度的高低。
本實驗所用水樣分別是采集 3個黃浦江下游上海市區(qū)段的水樣(吳涇渡口、江川路街道渡口、東昌路渡口),2個地表水樣(上海交大校內(nèi)河道、吳涇公園水池)。反應(yīng)體系為熒光素—熒光素酶反應(yīng)體系。
表1 水樣品采用不同儀器的毒性檢測結(jié)果對比
1 東昌路渡口黃浦江水
2 上海交大校內(nèi)河水
3 江川路街道渡口(閔行渡口)黃浦江水
4 吳涇公園水池
5 吳涇渡口黃浦江水
表1中兩臺儀器所測的抑制率和毒性判定,可見自主研發(fā)的水綜合毒性檢測儀,相對于 RFL-1型化學(xué)發(fā)光儀有更高的靈敏度。
以上兩個實驗,很好地驗證了在本文設(shè)計的軟件的支持下,自主研發(fā)的水綜合毒性檢測儀運行良好。
本文研制的光電式水毒性物質(zhì)檢測儀,采用熒光素—熒光素酶反應(yīng)體系檢測水中毒性物質(zhì),測量時間短。下位機軟件顯示相應(yīng)操作的提示,操作方便,只需一個按鍵就可完成全部的測試。測試結(jié)果不僅在下位機液晶上顯示,也發(fā)送到上位機繪制數(shù)據(jù)曲線,結(jié)果更直觀。上位機軟件對數(shù)據(jù)進行存儲,方便用戶實現(xiàn)數(shù)據(jù)回溯和數(shù)據(jù)管理。
[1] Mcelory W D, Green A A. Enzymatic Pro-perties of Bacterial Luciferase[J] . Arch Bio chem, 1955,56(1) :240-255.
[2] Vetrova E V, Kudryasheva N S, Visser A J, et al.Characteristics of Endogenous Flavin Fluo- rescence of Photobacterium Leiognathi Luci -ferase and Vibrio Fischeri NAD(P)H: FMN -oxidoreductase[J] .Luminescence, 2005, 20 (3): 205-209.
[3] Alison M. Horsburgh, DP. Mardlin NL. Tur- ner, et al .On-line Microbial Biosensing and Fingerprinting of Water Pollutants[J] . Biosens Bioelectron, 2002, 17(6-7):495-501.
[4] ELAN, EM78P458 datasheet[Z] .2005.
[5] Microchip Technology, MCP3201 Datasheet[Z] . 2007.
[6] HOLTEK, HT1621 Datasheet[Z] .2000.
[7] David J.Kruglinski. visual C++技術(shù)內(nèi)幕[M] .北京:清華大學(xué)出版社,2004.