0 引 言
智能儀器自動化程度的提高為科學(xué)研究提供了十分方便的實驗手段。電化學(xué)沉積儀器是由PC機(jī)控制的全自動的恒電位儀、恒電流儀及恒電位脈沖試驗儀的集合體。相對于手動的設(shè)備而言更為先進(jìn),功能更強(qiáng)大,試驗精度更高。具體工作時,儀器按照用戶設(shè)定的實驗類型執(zhí)行具體的試驗,同時采集系統(tǒng)實時的電壓和電流信號。采集到的信號,由儀器內(nèi)置的微處理器解析后,轉(zhuǎn)換為數(shù)字信號反饋到上位機(jī)(PC機(jī))。上位機(jī)的儀器數(shù)據(jù)處理軟件,具有強(qiáng)大的解析功能,可以對原始數(shù)據(jù)進(jìn)行各種分析,得到研究體系的詳細(xì)信息。
在PC機(jī)控制的系統(tǒng)中,常采用通用串行總線(USB)進(jìn)行通信。因為基于USB總線的數(shù)據(jù)采集系統(tǒng)具有安裝方便、可靠性高、數(shù)據(jù)不易丟失、抗干擾能力強(qiáng)、便于數(shù)據(jù)傳輸和處理等優(yōu)點,它已經(jīng)逐漸成為現(xiàn)代數(shù)據(jù)傳輸?shù)闹饕厔?。隨著USB應(yīng)用的日益廣泛,ATmel,Intel,ScanLogic,Cypress和Phillps等芯片廠商都推出了嵌入MCU的USB控制器。這些微控制器功能強(qiáng),構(gòu)成系統(tǒng)的電路簡單,調(diào)試方便,電磁兼容性好。
因此,本文設(shè)計的電化學(xué)沉積智能試驗儀器的數(shù)據(jù)采集系統(tǒng)采用了ATmel公司最新推出的處理器MCUAT90USB1287。該MCU內(nèi)置有符合USB 2.0規(guī)范的接口。在該系統(tǒng)中,MCU承擔(dān)著數(shù)據(jù)采集和USB數(shù)據(jù)通信的雙重任務(wù)。
1 USB采集系統(tǒng)的設(shè)計
1.1 電化學(xué)沉積試驗儀工作原理
該儀器設(shè)置了三種實驗方式:恒電位、恒電流以及脈沖電位試驗。恒電位試驗,即工作電極的電位(相對于參比電極)保持恒定,而電流可能發(fā)生變化的試驗類型。恒電流試驗就是通過工作電極的電流保持不變,而其電位可能發(fā)生變化的試驗類型。脈沖電位試驗要求工作電極的電位是以某一形式的脈沖存在,具體通過改變其脈沖幅度和占空比實現(xiàn)。
電化學(xué)沉積儀器控制與采集方框圖如圖1所示。
當(dāng)控制計算機(jī)對儀器實驗類型和參數(shù)值進(jìn)行預(yù)置時,AVR單片機(jī)把設(shè)定的類型和預(yù)置的數(shù)值送到液晶顯示器顯示,同時作為電流源或者電壓源的設(shè)定值通過D/A轉(zhuǎn)換輸出,并作為參考信號提供給控制電路。當(dāng)用戶選擇恒流實驗時,I-V轉(zhuǎn)換模塊把從檢測電路得到的工作電極的電流值轉(zhuǎn)換成其相應(yīng)的電壓信號,該信號和D/A轉(zhuǎn)換器輸出的電壓控制信號構(gòu)成電壓偏差,由PID控制器將按其比例、積分、微分運算后,通過線性組合構(gòu)成控制量,從而達(dá)到通過負(fù)載的電流恒定的目的。當(dāng)選擇恒電位試驗時,從D/A輸出的電壓信號和檢測電路部分得到的電壓信號構(gòu)成的偏差量,經(jīng)過PID控制器使輸出信號加在參比電極和工作電極之間,通過PID控制器對參數(shù)的調(diào)整使兩者之間的電壓恒定。當(dāng)進(jìn)行脈沖實驗的時候,單片機(jī)通過調(diào)整輸出脈沖波形經(jīng)過PID控制器輸出給負(fù)載。與此同時,不同試驗方式下工作電極中的電流、電壓及脈沖電壓信號經(jīng)A/D采樣之后由USB接口發(fā)往上位機(jī)進(jìn)行顯示。
1.2 電化學(xué)沉積試驗儀數(shù)據(jù)采集硬件組成
電化學(xué)沉積試驗儀器的數(shù)據(jù)采集硬件包括:采集電壓信號的A/D轉(zhuǎn)換器,控制試驗設(shè)定值的PID控制器,提供PID控制器信號輸入的16位D/A轉(zhuǎn)換器,帶有USB模塊的MCIJ以及PC控制終端等,如圖2所示。
該采集系統(tǒng)的采集信號包括陰極電位和電流信號采集。電流信號的采集通過采集檢測電阻兩端的電壓信號得到。當(dāng)進(jìn)行恒電位和脈沖電位試驗時,A/D轉(zhuǎn)換器可以通過采集參比電極和工作電極的電勢差獲得電壓信號。類似地,當(dāng)進(jìn)行恒電流試驗時,電流信號是通過I-V跨阻放大器得到的。
AD7794比傳統(tǒng)的高分辨率轉(zhuǎn)換器更能抑制噪聲干擾。它的數(shù)字濾波器可抑制電源電壓上的寬帶噪聲,并去除來自模擬輸入和參考輸入的噪聲。在該儀器系統(tǒng)中,需要測量的電壓和電流信號的電路接法如圖3所示。利用AIN1采集參比電極和陰極之間的電壓信號,利用AIN2通道采集溶液體系的電流信號。Rf是跨導(dǎo)電阻,對于電流信號的檢測是通過I-V變換電路來實現(xiàn)的。
使用高分辨率ADC時,電源和地的去耦設(shè)計是至關(guān)重要的。為此供電電源VDD應(yīng)采用電容旁路技術(shù),采用O.1μF的旁路電容并以盡可能短的路徑連接各相應(yīng)的電源和地,這樣可旁路掉高頻成分。同時,還應(yīng)并聯(lián)1個10/μF的鉭電容旁路低頻成分。所有的邏輯芯片均應(yīng)通過O.1μF陶瓷電容來退耦。
2 軟件系統(tǒng)的設(shè)計
該電化學(xué)沉積試驗儀器的軟件可分為三部分,固件程序、驅(qū)動程序和終端應(yīng)用程序。
2.1 固件程序
該USB數(shù)據(jù)采集系統(tǒng)固件所完成的任務(wù)主要有以下兩項:
(1)響應(yīng)主機(jī)USB請求,獲得系統(tǒng)配置,實現(xiàn)電化學(xué)沉積儀器與主機(jī)之間的即插即用功能;
(2)以100次/s的采樣頻率對信號進(jìn)行采樣,并把采樣得到的電壓或者電流信號傳送給USB主機(jī)。
在該USB數(shù)據(jù)采集系統(tǒng)中用到三個端口:控制端口、IN端口和OUT端口。其中,控制端口完成響應(yīng)USB標(biāo)準(zhǔn)請求的功能,IN端口用于把采集到的數(shù)據(jù)傳送給USB主機(jī),OUT端口接收USB主機(jī)發(fā)送的控制命令。具體的軟件設(shè)計流程圖見圖4。
該USB數(shù)據(jù)采集系統(tǒng)固件設(shè)計包括三個部分:
?、僭O(shè)備枚舉,這個固件主要完成對USB標(biāo)準(zhǔn)請求的響應(yīng)。系統(tǒng)通過發(fā)送USB標(biāo)準(zhǔn)請求來獲得USB設(shè)備的配置和設(shè)備信息,并按照這些信息對USB進(jìn)行資源分配。
?、跀?shù)據(jù)采集。
?、垌憫?yīng)設(shè)備請求,即響應(yīng)設(shè)備的讀寫請求,USB主機(jī)通過IN端口向USB采集系統(tǒng)發(fā)送控制數(shù)據(jù)采集的指令,通過OUT端口接收USB設(shè)備發(fā)送的數(shù)據(jù)。
對于USB采集系統(tǒng),通過IN端口接收USB主機(jī)發(fā)給控制器的命令,這些命令信息包含采樣信號類型、采樣啟動/停止標(biāo)志位等。其中采樣信號類型用第一個字節(jié)表示,采樣啟動/停止標(biāo)志用第二個字節(jié)表示。IN端口也是USB的任務(wù)處理端口,接收命令碼通過對IN端口的事件處理程序?qū)崿F(xiàn)。當(dāng)IN端口接收到數(shù)據(jù)后,控制器讀出接到的數(shù)據(jù)并對數(shù)據(jù)進(jìn)行解碼和處理。
USB主機(jī)通過OUT端口接收AT90USB1287發(fā)送給USB主機(jī)的數(shù)據(jù),這些數(shù)據(jù)采用中斷的方法通過A/D轉(zhuǎn)換而得到結(jié)果。
2.2 USB驅(qū)動程序
USB驅(qū)動程序的作用是連接主機(jī)和USB設(shè)備。常用的Windows系統(tǒng)USB驅(qū)動程序設(shè)計軟件有DDK,DriverStudioS和WINDRIVER等。本文采用了開發(fā)相對靈活的DriverStudioS,該軟件配合DDKXP可以生成驅(qū)動程序框架。通過添加和修改生成的驅(qū)動程序框架即可完成該系統(tǒng)驅(qū)動程序開發(fā)。由固件程序可知,電化學(xué)沉積儀器需要三個USB端口,即:控制端口0、IN端口1以及OUT端口2。利用Driver-StudioS的開發(fā)包DriverWorks生成的驅(qū)動程序并加以修改實現(xiàn)了對兩個端口的讀寫操作。在這里定義IN端口和OUT端口的類型均為BULK類型。通過修改、安裝INF文件,最終完成驅(qū)動程序的開發(fā)。
2.3 終端應(yīng)用程序
終端應(yīng)用程序流程圖見圖5。該應(yīng)用程序采用VC 6.0編譯器進(jìn)行編程,當(dāng)下位機(jī)上電并與計算機(jī)連接之后,應(yīng)用程序首先要判斷電化學(xué)沉積實驗儀器是否和主機(jī)連接正常。如果出現(xiàn)異常就要求系統(tǒng)重新連接,直到檢測到設(shè)備能正常通信為止。該應(yīng)用程序的界面操作不受后臺數(shù)據(jù)處理的影響,具體過程為;首先查找USB設(shè)備(電化學(xué)沉積儀器的設(shè)備句柄),獲得設(shè)備句柄,封裝對USB設(shè)備操作的動態(tài)鏈接庫,最后對采集的數(shù)據(jù)進(jìn)行處理和顯示。應(yīng)用程序和下位機(jī)之間的通信通過命令解析協(xié)議進(jìn)行。應(yīng)用程序可以設(shè)定試驗類型,并對試驗進(jìn)行控制。這些操作實際上是向緩沖區(qū)讀寫數(shù)據(jù)的過程。根據(jù)通信協(xié)議,該過程中每一種命令都有其對應(yīng)的轉(zhuǎn)義字符。
系統(tǒng)需要采集實時數(shù)據(jù)并實時顯示,因此系統(tǒng)需使用WM TIMER消息來觸發(fā)設(shè)置定時器事件,以實現(xiàn)USB采集系統(tǒng)1 s采集100組電壓、電流信號的數(shù)據(jù)。在利用這些數(shù)據(jù)進(jìn)行實時繪圖顯示時,由于系統(tǒng)不斷更新屏幕,會出現(xiàn)視圖閃爍的情況。為了解決屏幕閃爍問題,現(xiàn)在最常用的方法就是采用雙緩存的繪圖方法。具體做法如下:在OnDraw()函數(shù)中,在圖形繪制以前使用函數(shù)CreateCompatibleDC()和CreateCompatible-Bitmap()創(chuàng)建內(nèi)存設(shè)備上下文以及系統(tǒng)將要繪制到的位圖對象,然后執(zhí)行所有的繪圖操作,最后使用Bitmap()將整個內(nèi)存位圖移到可視窗口上。這樣就完全消除了屏幕抖動的現(xiàn)象,可以看到曲線平穩(wěn)的移動。
3 實驗結(jié)果
軟、硬件及系統(tǒng)綜合調(diào)試之后,進(jìn)行試驗測試。配置不同濃度的溶液進(jìn)行實驗,用ITO玻璃作為工作電極(陰極),甘汞電極作為參比電極,鉑片作為對電極。先進(jìn)行試驗參數(shù)設(shè)置(包括:實驗類型、工作電壓電流值、工作頻率及試驗時間等)。點擊完成設(shè)置,開始試驗,即得到試驗動態(tài)曲線。
圖6是恒電位條件下的I-t實時曲線的圖形界面。同樣可以得到恒流和脈沖電位實驗的V-t,I-t曲線圖形。由于試驗的需要,試驗人員往往需要保存每次的實驗結(jié)果和圖形,以便對數(shù)據(jù)進(jìn)行分析整理。因此,該應(yīng)用程序添加了圖形保存功能。只要在需要保存的圖形上點擊鼠標(biāo)左鍵,即可把試驗圖形保存成BMP格式的圖片,并帶有試驗的詳細(xì)信息。
4 結(jié) 語
在實時的電化學(xué)沉積試驗監(jiān)測中,該接口具有速度快、性能高、占CPU資源少的特點。USB 2.0協(xié)議的理論傳輸速度為480 Mb/s,實際傳輸速度往往要低于理論傳輸速度,但完全能滿足實驗室電化學(xué)試驗數(shù)據(jù)通信的需要。該接口使用方便、成本低,屬于小型高速數(shù)據(jù)采集系統(tǒng),它為電化學(xué)沉積實驗系統(tǒng)在線的精確監(jiān)測診斷提供了數(shù)據(jù)支持。