李深德,張向利,唐 甜,趙江輝
(桂林電子科技大學(xué)信息與通信學(xué)院,廣西桂林 541004)
當(dāng)前,光柵位移傳感器(光柵尺)的位移測量技術(shù)廣泛應(yīng)用于數(shù)控機(jī)床的伺服系統(tǒng)和傳統(tǒng)機(jī)床的數(shù)字化改造,以提高加工精度。光柵位移測量系統(tǒng)的設(shè)計(jì)方案各不相同,其軟件設(shè)計(jì)及功能也各不相同[1-5]。
文中先分析了光柵位移的測量原理,隨后給出三維光柵位移測量系統(tǒng)的設(shè)計(jì)構(gòu)架,詳細(xì)介紹了系統(tǒng)軟件的功能及其設(shè)計(jì)與實(shí)現(xiàn)。最后,通過實(shí)驗(yàn)驗(yàn)證了系統(tǒng)的軟件設(shè)計(jì)合理、實(shí)現(xiàn)了相關(guān)的功能,整個(gè)系統(tǒng)運(yùn)行穩(wěn)定、測量精確。
光柵位移傳感器內(nèi)包含了1個(gè)標(biāo)尺光柵和1個(gè)指示光柵,在兩光柵的作用,得到明暗相間的條紋,即莫爾條紋[6-8]。在理想條件下,莫爾條紋的波形為等腰三角波,其周期為莫爾條紋間距[6];實(shí)際情況下,由于光源發(fā)散角的影響,及光柵衍射作用等,使莫爾條紋的三角波出現(xiàn)削頂和削底,形成近似的正弦波。
對(duì)實(shí)際情況下的莫爾條紋信號(hào),因其波形近似于正弦波,基波成分豐富,諧波成分很少。以f(t)表示此正弦波的光通量,在消除信號(hào)中的高次諧波和直流分量后,則有:
f(t)=Asin(ωt+φ)
(1)
寫成電壓形式,得:
U(t)=Umsin(ωt+φ)
(2)
式(2)即為光柵位移傳感器中1個(gè)光電元件輸出的位移信號(hào)表達(dá)式。
在相距為1/4莫爾條紋間距的2個(gè)點(diǎn)分別安放1個(gè)光電元件,每當(dāng)標(biāo)尺光柵移動(dòng)1個(gè)柵距,將獲得1個(gè)周期、相差90°的2路正弦信號(hào),形如式(2)表示。此信號(hào)經(jīng)過放大、整形后,輸出1個(gè)周期、相差90°的2路方波信號(hào)。通過記錄這2路方波脈沖的個(gè)數(shù)即可測量出位移的大小,利用其相位關(guān)系可檢測出標(biāo)尺光柵的移動(dòng)方向[9]。
系統(tǒng)使用的光柵尺是KA300-470。當(dāng)其正常工作時(shí),將輸出A、B兩路相差90°、TTL電平的方波信號(hào)(標(biāo)尺光柵正移,A超前B 90°;標(biāo)尺光柵反移,B超前A 90°),如圖1所示。三維光柵位移測量系統(tǒng)的框圖如圖2所示。
該系統(tǒng)的硬件主要包括細(xì)分辨向電路[6]、單片機(jī)主控單元、顯示控制單元。X、Y、Z3個(gè)坐標(biāo)軸的光柵位移信號(hào)通過對(duì)應(yīng)的細(xì)分辨向電路后,分別輸入到3個(gè)單片機(jī)X、Y、Z進(jìn)行處理,計(jì)算位移,并送顯示電路顯示。為了對(duì)系統(tǒng)進(jìn)行必要的操控,設(shè)計(jì)了由單片機(jī)X、Y、Z共用的控制電路,它可以依次設(shè)定各坐標(biāo)軸位移的初值等其它的操控。
(a)標(biāo)尺光柵正向移動(dòng)
(b)標(biāo)尺光柵反向移動(dòng)
圖2 三維光柵位移測量系統(tǒng)框圖
單片機(jī)M和單片機(jī)X、Y、Z組成一個(gè)主從式單片機(jī)多機(jī)通信系統(tǒng)[10],M為主機(jī),X、Y、Z為從機(jī)。主機(jī)M依次和3個(gè)從機(jī)進(jìn)行通信,以提取各個(gè)坐標(biāo)軸的位移值,再統(tǒng)一上傳到上位機(jī),進(jìn)行相關(guān)的處理。單片機(jī)的選型為STC12C5A60S2,其具有雙串口。主機(jī)的串口1用于多機(jī)通信,串口2則與上位機(jī)通信。從機(jī)使用串口1與主機(jī)通信。
系統(tǒng)的軟件分為主機(jī)的軟件及從機(jī)的軟件。主機(jī)軟件主要包括主機(jī)初始化、主機(jī)的多機(jī)通信程序及主機(jī)和上位機(jī)的通信程序;從機(jī)軟件則有位移計(jì)算程序、顯示程序、控制程序及多機(jī)通信系統(tǒng)的從機(jī)程序等。軟件的開發(fā)環(huán)境為Keil μVision4。
2.1主機(jī)軟件設(shè)計(jì)與實(shí)現(xiàn)
主機(jī)功能主要是主機(jī)M依次和3個(gè)從機(jī)(X、Y、Z)通信,令從機(jī)將其采集到的位移上傳主機(jī),主機(jī)再將其得到三維位移值上傳上位機(jī)。
2.1.1主機(jī)的主程序設(shè)計(jì)與實(shí)現(xiàn)
主機(jī)主程序主要包括的模塊有主機(jī)初始化、主機(jī)的多機(jī)通信及主機(jī)與上位機(jī)的通信。主機(jī)主程序流程如圖3所示。
圖3 主機(jī)主程序流程
主機(jī)初始化主要包括串口1、串口2及看門狗定時(shí)器等初始化。串口1用于多機(jī)通信,工作在方式3(9位異步通信方式),使用定時(shí)器T1做為其波特率發(fā)生器,并設(shè)置T1工作在方式2(8位自動(dòng)重載模式),使串口1的波特率為57 600。串口2則與上位機(jī)通信,工作在方式1(8位異步通信方式),使用獨(dú)立波特率發(fā)生器(BRT)做為其波特率發(fā)生器,使串口2的波特率同樣設(shè)為57 600。使用看門狗定時(shí)器是為了防止程序跑飛而導(dǎo)致系統(tǒng)異常,看門狗定時(shí)器設(shè)置預(yù)分頻值為128,溢出時(shí)間約為2.3 s(系統(tǒng)頻率為22.118 4 MHz)。主機(jī)與上位機(jī)間的通信,其實(shí)現(xiàn)較簡單。下一節(jié)詳細(xì)給出了主機(jī)的多機(jī)通信程序的設(shè)計(jì)與實(shí)現(xiàn)。
2.1.2主機(jī)的多機(jī)通信程序設(shè)計(jì)與實(shí)現(xiàn)
在系統(tǒng)中,主機(jī)的多機(jī)通信程序工作的主要過程為:主機(jī)向通過從機(jī)地址呼叫從機(jī),與呼叫地址相符的從機(jī)作出回應(yīng)后,建立通信鏈接;主機(jī)向該從機(jī)發(fā)出接收數(shù)據(jù)指令(從機(jī)發(fā)送數(shù)據(jù),主機(jī)接收),令從機(jī)把其檢測到的位移傳給主機(jī);從機(jī)收到指令經(jīng)確認(rèn)后,進(jìn)行發(fā)送數(shù)據(jù)。表1為自定義的主機(jī)通信指令碼。
表1 主機(jī)指令編碼
主機(jī)M和從機(jī)X、Y、Z通信,設(shè)定其通信協(xié)議如下:
(1)主機(jī)和從機(jī)的接收或發(fā)送數(shù)據(jù)的緩沖區(qū)等長,均為8字節(jié)。
(2)從機(jī)初始化使所有從機(jī)的SM2位置1,讓其處于接收地址幀的狀態(tài)。開始通信時(shí),主機(jī)通過從機(jī)地址呼叫從機(jī)。
(3)從機(jī)接到地址幀后,進(jìn)入串行通信中斷服務(wù)程序,各從機(jī)將接收到的地址和本從機(jī)的地址比較,對(duì)于地址相符的從機(jī),在其中斷服務(wù)程序中使SM2位清零,以接收主機(jī)隨后發(fā)來的任意信息(包括地址幀和數(shù)據(jù)幀);對(duì)于地址不符的從機(jī),仍然保持SM2位為1,使其對(duì)主機(jī)隨后發(fā)來的數(shù)據(jù)幀信息不予理睬(即直接丟棄),直到再次接收到地址幀而進(jìn)行地址比較。
(4)若主機(jī)向從機(jī)發(fā)送數(shù)據(jù),從機(jī)在前一步中比較地址相符后,從機(jī)的SM2位清零,同時(shí)把本從機(jī)的地址回傳給主機(jī),作出應(yīng)答后才能接收主機(jī)發(fā)來的數(shù)據(jù)。其它從機(jī)繼續(xù)監(jiān)聽地址(SM2=1),無法收到數(shù)據(jù)。
(5)主機(jī)收到從機(jī)的應(yīng)答地址后,確認(rèn)地址是否相符。如果地址不符,則發(fā)送復(fù)位指令(地址幀:0XFF);如果地址相符,主機(jī)發(fā)送相應(yīng)的收發(fā)指令。
(6)主機(jī)或從機(jī)收發(fā)數(shù)據(jù)時(shí),數(shù)據(jù)傳輸完成后,需發(fā)送一幀傳輸數(shù)據(jù)的校驗(yàn)和,讓接收端根據(jù)校驗(yàn)和檢驗(yàn)所接收的數(shù)據(jù)是否正確。
(7)主機(jī)接收完數(shù)據(jù)后,將接收數(shù)據(jù)的校驗(yàn)和與從機(jī)發(fā)來的校驗(yàn)和比較,若接這兩個(gè)校驗(yàn)和不符,回傳主機(jī)接收錯(cuò)誤信息0XFF,令從機(jī)重發(fā)數(shù)據(jù);若校驗(yàn)和相符,回傳主機(jī)接收正確信息0X00,以完成數(shù)據(jù)傳輸,并令從機(jī)復(fù)位(重新等待地址幀)。
(8)從機(jī)接收完數(shù)據(jù)后,將接收數(shù)據(jù)的校驗(yàn)和與主機(jī)發(fā)來的校驗(yàn)和比較,若接這兩個(gè)校驗(yàn)和不符,回傳從機(jī)接收錯(cuò)誤信息0XFF,令主機(jī)重發(fā)數(shù)據(jù);若校驗(yàn)和相符,回傳從機(jī)正確接收信息0X00,以完成數(shù)據(jù)傳輸。
(9)若從機(jī)收到復(fù)位指令,則回到監(jiān)聽地址狀態(tài)(SM2=1),否則開始接收數(shù)據(jù)或指令。
根據(jù)自定義的指令和設(shè)定通信協(xié)議,實(shí)現(xiàn)了主機(jī)的多機(jī)通信程序功能。其程序流程如圖4所示。
圖4 主機(jī)多機(jī)通信程序流程
2.2從機(jī)軟件設(shè)計(jì)與實(shí)現(xiàn)
從機(jī)主要功能包括:對(duì)位移脈沖計(jì)數(shù)并計(jì)算出位移,再送顯示電路顯示;控制程序?qū)刂齐娐份斎氲男盘?hào)進(jìn)行編碼,根據(jù)編碼實(shí)現(xiàn)對(duì)從機(jī)的相應(yīng)操控(設(shè)置位移初值、設(shè)置分辨率、公/英制單位選擇、半/直徑顯示選擇);當(dāng)主機(jī)呼叫從機(jī)時(shí),與被呼叫相應(yīng)的從機(jī)作出響應(yīng),進(jìn)入串行通信中斷程序,把檢測到的位移傳給主機(jī)。
2.2.1從機(jī)的主程序設(shè)計(jì)與實(shí)現(xiàn)
從機(jī)的主程序模塊主要包括有從機(jī)初始化、位移計(jì)算程序、顯示程序、控制程序及從機(jī)的多機(jī)通信系統(tǒng)程序。系統(tǒng)3個(gè)從機(jī)(X、Y、Z)的程序除了所設(shè)置的地址編碼不同外,其余的都一樣。從機(jī)的主程序流程如圖5所示。
圖5 從機(jī)主程序流程
從機(jī)初始化程序中主要設(shè)置單片機(jī)的2個(gè)定時(shí)器(T0、T1)均處于計(jì)數(shù)模式;串口1工作于方式3,獨(dú)立波特率發(fā)生器(BRT)做為其波特率發(fā)生器,波特率設(shè)為57 600,SM2位置1。顯示驅(qū)動(dòng)芯片ZLG7289B初始化中,點(diǎn)亮所有數(shù)碼管,以檢測顯示是否正常。
位移計(jì)算程序中,所要顯示的位移等于采集到的位移與設(shè)定的位移初值(默認(rèn)為零,可重設(shè))之和,而采集到的位移值為:
s=(t0-t1)×d
(3)
式中:t0、t1分別為定時(shí)器T0、T1對(duì)位移脈沖的計(jì)數(shù)值;d為輸入到計(jì)數(shù)器的位移信號(hào)的脈沖當(dāng)量(默認(rèn)為5 μm)。
顯示程序把計(jì)算得到的位移數(shù)據(jù)下載到ZLG7289B芯片,其對(duì)數(shù)據(jù)譯碼并驅(qū)動(dòng)數(shù)碼管顯示。8位數(shù)碼管的最高一位顯示符號(hào),接下來的7位顯示位移值。
在鍵盤掃描時(shí),若發(fā)現(xiàn)設(shè)置鍵按下,則進(jìn)入設(shè)置模式。位移初值設(shè)置,可對(duì)位移初值進(jìn)行設(shè)置,設(shè)置過程中,數(shù)碼管的其中一位閃爍顯示(開始時(shí)是最高位閃爍,提示最高位為當(dāng)前輸入位),以提示當(dāng)前為輸入位,當(dāng)向該位輸入數(shù)值后,會(huì)自動(dòng)跳到下一位等待輸入數(shù)值,可通過左移或右移鍵轉(zhuǎn)到要設(shè)置數(shù)值的一位。調(diào)整系統(tǒng)分辨率,可調(diào)整系統(tǒng)測量的分辨率以使其適用于不同分辨率的光柵尺,默認(rèn)的分辨率為5 μm,可調(diào)整為1 μm或0.5 μm.公/英制顯示選擇,可選擇位移以公制或英制為單位顯示,默認(rèn)為公制顯示(mm)。半/直徑顯示選擇,可使顯示的位移在半徑和直徑之間切換,默認(rèn)為半徑顯示(即位移正常,沒有倍乘二)。除初值設(shè)置外,其它三種設(shè)置都有相應(yīng)的指示燈指示當(dāng)前所處的狀態(tài)。
2.2.2從機(jī)的多機(jī)通信程序設(shè)計(jì)與實(shí)現(xiàn)
多機(jī)通信的從機(jī)部分程序,其功能是響應(yīng)主機(jī)呼叫并上傳位移。表2為自定義從機(jī)的信息編碼。
表2 從機(jī)信息編碼
根據(jù)前文設(shè)定的通信協(xié)議以及從機(jī)的信息編碼,從機(jī)的多機(jī)通信程序設(shè)計(jì)流程如圖6所示。
圖6 從機(jī)多機(jī)通信程序流程
依據(jù)系統(tǒng)的硬件設(shè)計(jì),制作并調(diào)試好系統(tǒng)樣板;根據(jù)系統(tǒng)的軟件設(shè)計(jì),完成了程序的編寫、調(diào)試。最后,搭建好整個(gè)實(shí)驗(yàn)系統(tǒng)進(jìn)行實(shí)驗(yàn)。上位機(jī)使用串口調(diào)試助手軟件接收下位機(jī)(主機(jī)M)上傳的三維光柵位移數(shù)據(jù),如圖7所示,表3給出了圖7中接收到的數(shù)據(jù)。
圖7 上位機(jī)接收到的三維光柵位移數(shù)據(jù)
表3 上位機(jī)數(shù)據(jù)接收表 mm
實(shí)驗(yàn)中只使用了一把光柵尺,將其接入到X坐標(biāo)的輸入端進(jìn)行實(shí)驗(yàn),故實(shí)驗(yàn)數(shù)據(jù)只有X坐標(biāo)的位移值,另外兩坐標(biāo)的全是零。當(dāng)光柵尺接入Y或Z坐標(biāo)時(shí),也可測得相應(yīng)的位移。圖7(或表3)中收到的X軸位移數(shù)據(jù)并沒有連續(xù)變化,這是因?yàn)橄挛粰C(jī)延時(shí)上傳的緣故,以緩解數(shù)據(jù)通信的壓力。實(shí)驗(yàn)說明,該系統(tǒng)電路工作正常,軟件設(shè)計(jì)合理、執(zhí)行高效,整個(gè)系統(tǒng)運(yùn)行穩(wěn)定、測量精確,實(shí)現(xiàn)了三維光柵位移的測量。
在與桂林機(jī)床股份有限公司合作的項(xiàng)目中,根據(jù)該公司的加工需要,完成了三維光柵位移檢測系統(tǒng)的設(shè)計(jì)。經(jīng)實(shí)驗(yàn),系統(tǒng)的軟件設(shè)計(jì)合理、執(zhí)行高效,整個(gè)系統(tǒng)運(yùn)行穩(wěn)定、測量準(zhǔn)確。系統(tǒng)除了測量三維的位移外,還可以直接用于測量一維或二維的位移,也可對(duì)其進(jìn)行一些改動(dòng),做成專門用于一維或二維的測量系統(tǒng)。
光柵位移傳感器及其位移檢測系統(tǒng)在車床、磨床、銑床等各類機(jī)床上有著廣泛的應(yīng)用,對(duì)提升我國裝備制造業(yè)水平有著極其重要的作用。
參考文獻(xiàn):
[1]張旭,郝向非,宋吟蔚.通用光柵數(shù)顯裝置的研制.儀表技術(shù)與傳感器,2009(3):121-123.
[2]劉翠玲,趙權(quán),劉天亮.基于AT89C52的多路光柵智能測控儀.儀表技術(shù)與傳感器,2006(1):15-17.
[3]繩紅強(qiáng),汪世益.基于AT89S51的數(shù)控機(jī)床光柵尺位移測量系統(tǒng).機(jī)電工程技術(shù),2006,35(6):47-49.
[4]屠恒海.嵌入式光柵數(shù)顯測量系統(tǒng)的研究:[學(xué)位論文].哈爾濱:哈爾濱理工大學(xué),2008.
[5]梁海鋒,嚴(yán)一心.基于光柵傳感器測量的軟、硬件設(shè)計(jì).現(xiàn)代電子技術(shù),2003(23):88-89.
[6]謝文和.傳感技術(shù)及其應(yīng)用.北京:高等教育出版社,2004:168-174.
[7]呂孟軍.光柵莫爾條紋電子學(xué)細(xì)分技術(shù)研究:[學(xué)位論文].南京:南京航空航天大學(xué),2008.
[8]劉世峰.基于幅值采樣的光柵莫爾條紋信號(hào)細(xì)分技術(shù)的研究:[學(xué)位論文].武漢:華中科技大學(xué),2007.
[9]凌睿,高富強(qiáng).基于CPLD的光柵尺位移測量系統(tǒng).自動(dòng)化與儀表技術(shù),2005(1):40-42.
[10]朱善君,孫新亞,吉吟東.單片機(jī)接口技術(shù)與應(yīng)用.北京:清華大學(xué)出版社,2005:188-197.