摘 要: 基于單片機(jī)與PC上位機(jī),設(shè)計(jì)了包括硬件和軟件的棱鏡耦合自動(dòng)測(cè)試系統(tǒng)。該系統(tǒng)控制了步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)狀態(tài),實(shí)現(xiàn)了光強(qiáng)數(shù)據(jù)的自動(dòng)采集、處理,并通過(guò)軟件完成數(shù)據(jù)存儲(chǔ)、分析及圖形顯示。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)滿足棱鏡耦合技術(shù)要求,實(shí)驗(yàn)效果良好,實(shí)現(xiàn)了高精度、高自動(dòng)測(cè)試的棱鏡耦合技術(shù)。
關(guān)鍵詞: 單片機(jī);PC上位機(jī);棱鏡耦合技術(shù)
棱鏡耦合技術(shù)是測(cè)試波導(dǎo)薄膜材料折射率和厚度的最精確技術(shù)之一,廣泛地應(yīng)用在導(dǎo)波光學(xué)、集成光學(xué)、表面等離子等領(lǐng)域中。考慮到手動(dòng)調(diào)節(jié)的精確性和在可見(jiàn)光內(nèi)人眼判別導(dǎo)波模式的主觀性,基于棱鏡耦合技術(shù)原理,本文設(shè)計(jì)了一套能自動(dòng)完成測(cè)試的系統(tǒng),該系統(tǒng)主要包括下位機(jī)軟硬件和上位機(jī)軟件等。下位機(jī)主要負(fù)責(zé)根據(jù)上位機(jī)的設(shè)置的工作方式精確定位及采集相應(yīng)位置的光強(qiáng)度數(shù)據(jù),并將這些數(shù)據(jù)發(fā)送給上位機(jī),由上位機(jī)軟件完成對(duì)數(shù)據(jù)的分析處理、保存、圖形顯示等功能。上位機(jī)軟件使用微軟公司的Visual C++ 6.0編程工具并應(yīng)用C++語(yǔ)言編程完成;下位機(jī)由基于51單片機(jī)程控的I/V轉(zhuǎn)換程控放大電路、步進(jìn)電機(jī)細(xì)分驅(qū)動(dòng)控制電路、數(shù)據(jù)采集電路、串口通信接口等電路組成。本系統(tǒng)具備成本低、精度高、自動(dòng)化程度高等特點(diǎn),能較好地完成高精度定位、光電數(shù)據(jù)采集等實(shí)驗(yàn)任務(wù),同時(shí)適用于不可見(jiàn)光波段內(nèi)測(cè)量。
1 棱鏡耦合技術(shù)原理及系統(tǒng)概述
棱鏡耦合技術(shù)由ULRICH R和TORGE R在1973年提出[1],其原理如圖1所示。若在波導(dǎo)層上放置一塊高折射率的棱鏡,棱鏡底部與導(dǎo)波層的表面之間有一層空氣隙。當(dāng)入射角以大于棱鏡和空氣的全反射臨界角入射于棱鏡底部時(shí),在空氣隙中將產(chǎn)生迅衰場(chǎng),與波導(dǎo)的迅衰場(chǎng)耦合,可使光束能量耦合轉(zhuǎn)化為導(dǎo)模的能量,耦合的強(qiáng)弱與空氣隙的厚度密切相關(guān)。耦合波導(dǎo)的同步條件為:
由于βm是個(gè)離散值(其相應(yīng)的耦合角?茲i也是個(gè)離散值),只有當(dāng)入射角等于耦合角?茲i時(shí)(也就是耦合條件滿足時(shí)),大部分能量會(huì)進(jìn)入波導(dǎo),使反射光強(qiáng)驟減,在反射屏上能觀察到若干條線(即M-Line),這時(shí)就認(rèn)為有導(dǎo)模被激發(fā)了。反射光強(qiáng)驟然減弱對(duì)應(yīng)的耦合角θi是棱鏡耦合技術(shù)所測(cè)試的關(guān)鍵參數(shù)。通過(guò)測(cè)試多個(gè)連續(xù)耦合角?茲i可以計(jì)算出波導(dǎo)薄膜材料的折射率及其厚度。在該技術(shù)原理中,根據(jù)理論計(jì)算,折射率能精確地計(jì)算到小數(shù)點(diǎn)第4位,因耦合角θi是個(gè)離散值,能否準(zhǔn)確找到并精確地測(cè)量這個(gè)角度是問(wèn)題關(guān)鍵所在。
棱鏡耦合自動(dòng)測(cè)試系統(tǒng)裝置如圖2所示,它包括光學(xué)系統(tǒng)和電氣控制系統(tǒng),由激光器、偏振器、透鏡、耦合棱鏡、θ/2θ測(cè)角儀、光電探測(cè)器、控制儀和計(jì)算機(jī)組成,其中θ/2θ測(cè)角儀是個(gè)關(guān)鍵部件,它由計(jì)算機(jī)控制的步進(jìn)電機(jī)驅(qū)動(dòng)。根據(jù)棱鏡耦合技術(shù)的要求,該系統(tǒng)技術(shù)指標(biāo)需滿足:(1)步進(jìn)電機(jī)驅(qū)動(dòng)置放棱鏡旋轉(zhuǎn)的θ/2θ測(cè)角平臺(tái),單步長(zhǎng)為5 μm,相應(yīng)旋轉(zhuǎn)角度應(yīng)精確到0.02°;(2)光電探測(cè)器讀取的光強(qiáng)度參量數(shù)據(jù)應(yīng)實(shí)時(shí)輸入計(jì)算機(jī)處理;(3)PC機(jī)設(shè)置步進(jìn)電機(jī)參量、處理角度的位移值、光強(qiáng)度數(shù)據(jù)及繪制圖形。
2 系統(tǒng)硬件設(shè)計(jì)
硬件系統(tǒng)框圖如圖3所示。本系統(tǒng)的硬件設(shè)計(jì)主要集中在單片機(jī)為控制中心的下位機(jī)設(shè)計(jì),包括光強(qiáng)度參量數(shù)據(jù)采集模塊和步進(jìn)電機(jī)驅(qū)動(dòng)模塊。光強(qiáng)度數(shù)據(jù)采集模塊由光電探測(cè)器、放大器及A/D轉(zhuǎn)換器組成。采用低噪聲、低失調(diào)、高增益的集成運(yùn)算放大器構(gòu)成互阻放大電路,將光電探測(cè)器輸出的弱電流信號(hào)放大轉(zhuǎn)換成電壓信號(hào)。為了得到適當(dāng)大小的電壓,采用單片機(jī)程控或手動(dòng)調(diào)節(jié)選擇放大增益,得到易于采集的適當(dāng)電壓信號(hào),經(jīng)A/D轉(zhuǎn)換成數(shù)字信號(hào)被單片機(jī)接收。步進(jìn)電機(jī)驅(qū)動(dòng)模塊采用單片機(jī)控制的細(xì)分驅(qū)動(dòng)電路驅(qū)動(dòng)步進(jìn)電機(jī)實(shí)現(xiàn)精確定位。在整個(gè)系統(tǒng)中,采用RS-232串口通信接口,結(jié)合MAX232電平轉(zhuǎn)換芯片,建立單片機(jī)與分析處理數(shù)據(jù)的PC上位機(jī)之間的通信通道,使得單片機(jī)能順利接收上位機(jī)的命令和發(fā)送旋轉(zhuǎn)平臺(tái)角度對(duì)應(yīng)的光強(qiáng)度數(shù)據(jù)。
2.1 光強(qiáng)度參量采集模塊
選用低噪聲、低失調(diào)、高增益的集成運(yùn)算放大器OP07接入反饋電阻的方式完成I/V轉(zhuǎn)換放大。由于運(yùn)算放大器的虛斷虛短原理,光電探測(cè)器輸出的弱電流信號(hào)I經(jīng)過(guò)反饋電阻Rf,在運(yùn)算放大器的輸出端形成電壓Uo=I·Rf,這樣就完成了I/V轉(zhuǎn)換。為了得到更好的A/D轉(zhuǎn)換效果,選用雙4選1模擬開(kāi)關(guān)CD4052程控/手動(dòng)選擇代表放大倍數(shù)的反饋電阻阻值。一般情況下,不需要通過(guò)手動(dòng)調(diào)節(jié)反饋電阻阻值改變放大增益,可以由事先固定可調(diào)電阻器阻值(或使其阻值為0 Ω僅靠電路中的已知電阻),通過(guò)單片機(jī)控制CD4052的選擇引腳程控選擇放大增益。如果當(dāng)增益還不足夠大時(shí),可以通過(guò)手動(dòng)調(diào)節(jié)可調(diào)電阻器改變放大增益。
A/D轉(zhuǎn)換電路將經(jīng)過(guò)I/V轉(zhuǎn)換放大的電壓信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。該系統(tǒng)中需要得到的光強(qiáng)度是個(gè)相對(duì)值,因而對(duì)A/D轉(zhuǎn)換精度要求不高。同時(shí),步進(jìn)電機(jī)轉(zhuǎn)速一般不超過(guò)10 mm/s,因此對(duì)A/D轉(zhuǎn)換器的轉(zhuǎn)換速率也沒(méi)有較高的要求。基于這些考慮,采用NS(National Semiconductor)公司的ADC0832串行接口8 bit A/D轉(zhuǎn)換器,通過(guò)三線接口與單片機(jī)連接。該芯片具有雙數(shù)據(jù)輸出,可作為數(shù)據(jù)校驗(yàn),以減少數(shù)據(jù)誤差,同時(shí)轉(zhuǎn)換速度快且穩(wěn)定性強(qiáng)??紤]到擴(kuò)展功能,在實(shí)際設(shè)計(jì)PCB板時(shí),預(yù)留了一個(gè)16 bit分辨率的A/D轉(zhuǎn)換芯片(如AD705)位置。
2.2 步進(jìn)電機(jī)細(xì)分驅(qū)動(dòng)模塊
步進(jìn)電機(jī)在低速情況下整步運(yùn)行時(shí)有較大的噪聲和振動(dòng),在過(guò)載或高轉(zhuǎn)速運(yùn)行時(shí)會(huì)產(chǎn)生失步現(xiàn)象,本文在本系統(tǒng)中選用標(biāo)配電機(jī)。為了提高步進(jìn)電機(jī)的穩(wěn)定性和精度,采用程控細(xì)分驅(qū)動(dòng)方式驅(qū)動(dòng)步進(jìn)電機(jī)[2-4]。驅(qū)動(dòng)電路使用Allegro公司的A3972—64細(xì)分雙DMOS全橋微步距PWM步進(jìn)電機(jī)驅(qū)動(dòng)芯片,該芯片具有時(shí)鐘、數(shù)據(jù)、選通三線串口,能實(shí)現(xiàn)步進(jìn)電機(jī)的控制,包括步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)方向、速度、步進(jìn)法(細(xì)分)設(shè)置。
2.3 單片機(jī)與PC機(jī)通信接口設(shè)計(jì)
采用PC機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種RS-232串行接口,可以保證上位機(jī)和下位機(jī)通信順暢。該接口是9針,只需用其中的2、3、5三個(gè)管腳進(jìn)行通信,分別是接收線、發(fā)送線和地線。選用MAX232芯片完成下位機(jī)電平(TTL電平)與RS-232接口電平(RS232電)的轉(zhuǎn)換,保證信號(hào)正確傳輸。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)采用模塊化程序方法,整個(gè)系統(tǒng)分成兩大模塊:?jiǎn)纹瑱C(jī)模塊和PC上位機(jī)模塊。
3.1 單片機(jī)模塊程序
單片機(jī)是下位機(jī)的總控制器,采用ATMEL公司51系列的AT89S52單片機(jī)[5]。該單片機(jī)是一種低功耗、高性能CMOS 8 bit微控制器,具有8 KB在系統(tǒng)可編程Flash存儲(chǔ)器,亦適于常規(guī)編程器,而且與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。
單片機(jī)模塊程序主要完成接收PC上位機(jī)指令、控制步進(jìn)電機(jī)的驅(qū)動(dòng)、采集光強(qiáng)度參量數(shù)據(jù)并發(fā)送給PC機(jī),其程序框圖如圖4所示。開(kāi)始時(shí),單片機(jī)完成串口狀態(tài)的初始化,檢查中斷端口。當(dāng)接收到PC機(jī)指令后,單片機(jī)根據(jù)指令設(shè)置步進(jìn)電機(jī)細(xì)分?jǐn)?shù)和轉(zhuǎn)動(dòng)方向、放大增益等參數(shù);然后,驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)轉(zhuǎn)一步并帶動(dòng)θ/2θ測(cè)角平臺(tái)旋轉(zhuǎn),同時(shí)光電探測(cè)器采集光強(qiáng)度信號(hào)經(jīng)A/D轉(zhuǎn)換到單片機(jī)并將數(shù)據(jù)發(fā)送給PC機(jī),這一過(guò)程保持循環(huán)。當(dāng)在工作過(guò)程中PC上位機(jī)有新的指令時(shí)(如步進(jìn)電機(jī)停轉(zhuǎn)),單片機(jī)中斷接收新指令,并執(zhí)行。考慮到檢測(cè)步進(jìn)電機(jī)兩端停止位位置,設(shè)置了外部中斷服務(wù)子程序。
3.2 PC上位機(jī)模塊程序
采用Visual C++6.0開(kāi)發(fā)平臺(tái),結(jié)合C++語(yǔ)言,可以方便地實(shí)現(xiàn)人機(jī)交互界面的設(shè)計(jì)。通過(guò)需求分析,PC機(jī)模塊程序可分為系統(tǒng)設(shè)置、串口通信、數(shù)據(jù)處理、圖形顯示和數(shù)據(jù)存儲(chǔ)等,上位機(jī)軟件工作的流程圖如圖5所示。程序開(kāi)始時(shí)對(duì)整個(gè)軟件進(jìn)行初始化,以保證軟件擁有正常工作環(huán)境;然后,通過(guò)軟件界面操作,實(shí)現(xiàn)相應(yīng)的動(dòng)作或功能。
系統(tǒng)設(shè)置:通過(guò)軟件提供的界面設(shè)置系統(tǒng)使用環(huán)境,包括光強(qiáng)放大倍數(shù)、步進(jìn)電機(jī)細(xì)分值、步進(jìn)電機(jī)正轉(zhuǎn)反轉(zhuǎn)、串口設(shè)置等。主要實(shí)現(xiàn)系統(tǒng)初始化、串口管理、指令發(fā)送等。如系統(tǒng)初始化,串口設(shè)置為COM1、波特率為9 600、無(wú)校驗(yàn)位、8 bit;串口管理主要檢測(cè)設(shè)置的串口是否被占用、連接是否正常等;指令發(fā)送通過(guò)串口通信實(shí)現(xiàn)PC軟件對(duì)單片機(jī)的控制。
串口通信:實(shí)現(xiàn)串口全雙工異步通信功能,通過(guò)串口實(shí)現(xiàn)發(fā)送指令、接收數(shù)據(jù)。出于安全性考慮,PC軟件使用MSCOMM控件進(jìn)行串口通信。MSCOMM控件提供了兩種處理通信問(wèn)題的方法:事件驅(qū)動(dòng)方式和查詢方式。因接收數(shù)據(jù)量大,本系統(tǒng)采用事件驅(qū)動(dòng)方式通信。
數(shù)據(jù)處理:主要實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)存儲(chǔ)功能。光電探測(cè)器采集的信號(hào)最大值是4.95 V而串口接收的數(shù)據(jù)是8 bit二進(jìn)制數(shù)據(jù),因此,數(shù)據(jù)按O=I×495/255公式進(jìn)行轉(zhuǎn)換(其中I是接收的數(shù)據(jù),O是轉(zhuǎn)換后的一浮點(diǎn)類型數(shù)據(jù),O可以精確到0.01 V)。數(shù)據(jù)存儲(chǔ)格式以.dat文件形式存儲(chǔ),并可以用TXT格式打開(kāi),文件中除了有相對(duì)應(yīng)的數(shù)據(jù)外,還包括用戶設(shè)置的系統(tǒng)信息,如步進(jìn)電機(jī)轉(zhuǎn)過(guò)的步數(shù)、步進(jìn)電機(jī)的細(xì)分值和光強(qiáng)放大倍數(shù)。
圖形顯示:主要將接收的數(shù)據(jù)以圖形方式顯示及實(shí)現(xiàn)圖形放大效果。在圖形繪制區(qū)域中,按下鼠標(biāo)左鍵并拖動(dòng)、釋放來(lái)選擇一個(gè)區(qū)域,則PC軟件將對(duì)這一區(qū)域進(jìn)行放大顯示。
4 實(shí)驗(yàn)結(jié)果
圖6是該系統(tǒng)實(shí)測(cè)的離子交換制備的K9玻璃光波導(dǎo)M-Line實(shí)驗(yàn)曲線,該曲線圖反映了該波導(dǎo)有3個(gè)導(dǎo)模(即3個(gè)很明顯的削尖波谷),可以通過(guò)計(jì)算機(jī)計(jì)算獲得棱鏡的耦合角(即對(duì)應(yīng)于3個(gè)模式的波谷,是個(gè)離散值),從而可以根據(jù)式(2)計(jì)算導(dǎo)模的有效折射率,分別是1.558 0、1.545 4和1.531 3。同時(shí),該系統(tǒng)能通過(guò)圖形準(zhǔn)確直觀地鑒別并表現(xiàn)導(dǎo)波模式,不需要人眼去判別,特別適用于不可見(jiàn)光波段內(nèi),如光通信波段。
本文基于單片機(jī)與PC上位機(jī),設(shè)計(jì)了棱鏡耦合自動(dòng)測(cè)試系統(tǒng),實(shí)現(xiàn)了低成本、高精度、高自動(dòng)化的棱鏡耦合自動(dòng)測(cè)試。經(jīng)實(shí)驗(yàn)測(cè)試,本系統(tǒng)運(yùn)行穩(wěn)定,各項(xiàng)技術(shù)指標(biāo)符合設(shè)計(jì)要求,實(shí)驗(yàn)效果良好,實(shí)現(xiàn)了高精度、高自動(dòng)測(cè)試,滿足棱鏡耦合技術(shù)要求。
參考文獻(xiàn)
[1] ULRICH R, TORGE R. Measurement of thin film parameters with a prism coupler [J]. Applied Optics, 1973,12(12):2901-2908.
[2] 章烈剽.基于單片機(jī)的高精度步進(jìn)電機(jī)控制研究[D].武漢:武漢理工大學(xué),2007.
[3] 逢啟壽,馮羽生,嚴(yán)少卿,等.數(shù)控步進(jìn)電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2007,29(8):12-19.
[4] 敬嵐,朱海君,張碩成.步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)及應(yīng)用[J].核技術(shù),2005,28(06):479-482.
[5] 馬家辰,孫玉德,張穎.MCS-51單片機(jī)原理與接口技術(shù)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2001.