王子斌 亢程龍
(電子科技大學(xué)清水河校區(qū)自動(dòng)化工程學(xué)院1430實(shí)驗(yàn)室,四川 成都 611731)
隨著電子科學(xué)技術(shù)的飛速發(fā)展,電子電路設(shè)計(jì)已經(jīng)逐步走向集成化、小型化。幾乎所有的電子產(chǎn)品都是在PCB板[2]上得以實(shí)現(xiàn)的。PCB板即印制電路板,是電子元器件電氣連接的載體。隨著PCB板生產(chǎn)加工需求的增加, PCB板鉆孔加工的需求也必然大大增加。不但外觀尺寸越來越小,孔的數(shù)目也變得越來越多,所以對(duì)專用機(jī)床的鉆頭打孔尺寸與質(zhì)量的要求也越來越高。由于專用機(jī)床在PCB板上的打孔都是鉆頭在高速旋轉(zhuǎn)下進(jìn)行的,難免會(huì)導(dǎo)致鉆頭出現(xiàn)磨損,改變它的直徑,從而影響PCB板上的孔徑大小,進(jìn)而極大地影響PCB板的實(shí)際電路性能。因此,能夠及時(shí)發(fā)現(xiàn)鉆頭直徑出現(xiàn)了誤差范圍以外的磨損甚至斷鉆就顯得尤為重要,甚至直接關(guān)系到商業(yè)競(jìng)爭(zhēng)的成敗。
當(dāng)前針對(duì)專用機(jī)床的直徑檢測(cè)研究主要是在國(guó)外,而在國(guó)內(nèi)才剛剛起步??v觀國(guó)內(nèi)外相關(guān)方向的文獻(xiàn),發(fā)現(xiàn)實(shí)現(xiàn)專用機(jī)床直徑檢測(cè)的系統(tǒng)大致可以分為兩類:CCD檢測(cè)系統(tǒng)[3]與激光檢測(cè)系統(tǒng)[4]。
CCD檢測(cè)系統(tǒng)主要是將被測(cè)對(duì)象即鉆頭的光信息通過光學(xué)系統(tǒng),在CCD的光敏面上形成光學(xué)圖像。CCD器件把光敏元上的光信息轉(zhuǎn)換成與光強(qiáng)成比例的電荷量。用一定頻率的時(shí)鐘脈沖對(duì)CCD進(jìn)行驅(qū)動(dòng),在CCD輸出端得到鉆頭的視頻信號(hào)。視頻信號(hào)中每一個(gè)離散電壓信號(hào)的大小對(duì)應(yīng)著該光敏元所接收的光強(qiáng)強(qiáng)弱,而信號(hào)輸出的時(shí)序則對(duì)應(yīng)CCD光敏元位置的順序。通過后續(xù)處理線路對(duì)CCD輸出的視頻信號(hào)進(jìn)行二值化或者量化處理后,將被測(cè)目標(biāo)從背景中分離出來,從而計(jì)算出鉆頭的實(shí)際直徑大小。
激光檢測(cè)系統(tǒng)主要由激光源和接收器組成,利用激光源發(fā)出的激光束以一定的角度照射到被測(cè)對(duì)象上,經(jīng)過被測(cè)對(duì)象和接收器之間的多次折射后,最終計(jì)算落在接收器上的激光強(qiáng)度,完成對(duì)被測(cè)系統(tǒng)直徑的檢測(cè)。
由于這兩種直徑檢測(cè)系統(tǒng)的核心技術(shù)均在國(guó)外,并且價(jià)格非常昂貴,一整套設(shè)備在2萬美元左右,這樣的價(jià)格對(duì)于大多數(shù)國(guó)內(nèi)的專用機(jī)床生產(chǎn)廠商而言是難以接受的。因此在現(xiàn)階段,絕大部分中小型廠商只有憑借著工人對(duì)鉆頭打孔次數(shù)以及鉆頭工作時(shí)間的經(jīng)驗(yàn)預(yù)估來進(jìn)行一個(gè)手動(dòng)的更換。這勢(shì)必會(huì)對(duì)生產(chǎn)成本和PCB板的打孔質(zhì)量產(chǎn)生非常大的影響。
所以研制出一款具有民族創(chuàng)新精神,擁有自主知識(shí)產(chǎn)權(quán)的低成本、高精度的直徑檢測(cè)系統(tǒng)就顯得具有現(xiàn)實(shí)意義以及實(shí)用價(jià)值。
基于專用機(jī)床的高精度直徑檢測(cè)系統(tǒng)采用激光傳感器+高速光電隔離器+CPLD[5]+89C51的設(shè)計(jì)模式,其結(jié)構(gòu)如圖1所示。
其中激光傳感器由發(fā)射源和接收源組成。發(fā)射源發(fā)出穩(wěn)定能量的激光束,直射到接收源上。若沒有被測(cè)物體遮擋,則接收源上能夠很穩(wěn)定地接收到由發(fā)射源發(fā)出的光信號(hào);若有物體遮擋,則不能接收到發(fā)射源發(fā)出的光信號(hào)。經(jīng)過激光傳感器內(nèi)部處理以后,反映出來的結(jié)果就是若沒有物體遮擋發(fā)射源發(fā)出的光信號(hào),則激光傳感器穩(wěn)定地輸出低電平送入下一級(jí);若有物體遮擋,則激光傳感器輸出高電平送入下一級(jí)。假設(shè)被測(cè)鉆頭以一定的速度V經(jīng)過此激光傳感器,便一定能從激光傳感器的輸出端測(cè)得寬度為Tx的單脈沖信號(hào),若能測(cè)得此單脈沖信號(hào)的脈寬時(shí)間,即可通過如下所示的公式:
D′=V·Tx
算出鉆頭的直徑D′。專用機(jī)床上的打孔鉆頭一般采用麻花鉆,主要由工作部分+頸部+柄部組成,其基本結(jié)構(gòu)如圖2所示。
考慮一個(gè)轉(zhuǎn)速為n的鉆頭以一定的移動(dòng)速度V通過激光傳感器,必然會(huì)存在一部分螺旋槽在通過激光傳感器時(shí)不會(huì)遮光,這時(shí)直徑檢測(cè)系統(tǒng)測(cè)出來的直徑D′將會(huì)與實(shí)際理論值D之間存在誤差δ。當(dāng)轉(zhuǎn)速為零時(shí)這個(gè)誤差達(dá)到最大,即:
δmax=D-D′
如何減小誤差δmax,就成了此直徑檢測(cè)系統(tǒng)設(shè)計(jì)成功與否的關(guān)鍵??紤]讓鉆頭在高速旋轉(zhuǎn)的狀態(tài)下進(jìn)行直徑檢測(cè)。這樣鉆頭在通過激光傳感器的同時(shí),鉆頭鏤空部分螺旋槽就能很快旋轉(zhuǎn)到實(shí)體部分,完成遮光。如此就可以把實(shí)際理論值和測(cè)量值之間的誤差進(jìn)一步縮小。δmax是由于鉆頭螺旋槽的不遮光造成的,因此只要知道鉆頭旋轉(zhuǎn)的周期T,再乘上鉆頭的移動(dòng)速度V,便能從另一途徑得到δmax:
δmax=T·V
鉆頭的轉(zhuǎn)速n已知,當(dāng)單位為r/s時(shí),數(shù)值上與頻率相等,即n=f=1/T,T即為鉆頭旋轉(zhuǎn)的周期。故可得:
為了減小誤差,必須保證鉆頭的轉(zhuǎn)速n足夠大,同時(shí)移動(dòng)的速度V足夠慢。鉆頭的轉(zhuǎn)速由機(jī)械保障,同時(shí)轉(zhuǎn)速不能無窮大,否則會(huì)帶來鉆頭的擺動(dòng),在通過激光傳感器以后造成更大的測(cè)量誤差?,F(xiàn)在機(jī)床上的鉆頭轉(zhuǎn)速大概在20 000~160 000 r/min。由于市面上鉆頭的直徑數(shù)量級(jí)大概在mm左右,為了能夠?qū)崿F(xiàn)高精度的直徑檢測(cè),控制δmax的數(shù)量級(jí)在μm級(jí)。因此移動(dòng)速度V必須保障在0.1~10 mm/s,才能保證這一部分的測(cè)量誤差控制在0.01%以內(nèi)。
與此同時(shí)還有一部分誤差來源于對(duì)激光傳感器輸出的單脈沖信號(hào)的脈寬Tx測(cè)量,我們將單脈沖信號(hào)經(jīng)過1個(gè)高速光電隔離器做1次電平轉(zhuǎn)換之后送入CPLD中,并且在CPLD中用硬件描述語言設(shè)計(jì)算法來實(shí)現(xiàn)完成高精度的脈寬測(cè)量。為了能夠?qū)崿F(xiàn)高精度的測(cè)量,我們采用一個(gè)25 MHz的采樣時(shí)鐘,不斷對(duì)送進(jìn)來的信號(hào)進(jìn)行采樣。若此單脈沖信號(hào)的高電平到來,則啟動(dòng)計(jì)數(shù)器開始計(jì)數(shù)直至高電平結(jié)束,并將測(cè)得的計(jì)數(shù)值C送入后一級(jí)的單片機(jī)中進(jìn)行下一步的分析和處理。之所以說這種方法能夠?qū)崿F(xiàn)高精度的測(cè)量,是因?yàn)殂@頭的直徑D′一般是mm數(shù)量級(jí)的,而移動(dòng)速度V是m/s級(jí)的,所以Tx的數(shù)量級(jí)也是ms級(jí)的。而Tx可由如下公式獲得:
其中f0是系統(tǒng)的采樣時(shí)鐘,它是MHz級(jí)的。由于在進(jìn)行脈寬信號(hào)的數(shù)字化測(cè)量中,被測(cè)脈寬大小不一定為標(biāo)準(zhǔn)單位的整數(shù)倍,再加上單脈沖信號(hào)的高電平作為閘門的開啟和關(guān)閉時(shí)間同時(shí)鐘信號(hào)不同步,因此在量化過程中有一部分零頭沒有被計(jì)算在內(nèi),使我們?cè)趯?duì)鉆頭的直徑檢測(cè)中出現(xiàn)了量化誤差。采用計(jì)數(shù)器的方式測(cè)量脈寬信號(hào),其誤差主要由兩項(xiàng)組成:量化誤差和標(biāo)準(zhǔn)頻率誤差。一般情況下,總誤差的合成表達(dá)式如下所示:
式中:等號(hào)右邊第一項(xiàng)為量化誤差,因?yàn)門x的數(shù)量級(jí)是ms級(jí),而T0是μs級(jí),所以量化誤差大概只有0.01%;等號(hào)右邊第二項(xiàng)為標(biāo)準(zhǔn)頻率誤差,主要是由于電子計(jì)數(shù)器所采用的頻率基準(zhǔn)受外界環(huán)境或自身結(jié)構(gòu)性能等因素的影響產(chǎn)生漂移而給測(cè)量結(jié)果引入的誤差,一般跟量化誤差相比可忽略不計(jì)。由以上分析可知,總的誤差大概只有不到0.01%,因此此精度用在直徑檢測(cè)系統(tǒng)上已經(jīng)能夠非常好地完成鉆頭直徑檢測(cè)的任務(wù)。
圖1中的89C51作為一個(gè)簡(jiǎn)單的單片機(jī)[8]起到控制作用。接受上位機(jī)發(fā)出的命令并做出解析,完成如復(fù)位、測(cè)量開始、直徑讀取等操作,完成鉆頭直徑檢測(cè)以后,將直徑信息通過RS485反饋給計(jì)算機(jī),完成一次鉆頭的直徑檢測(cè)。
由以上系統(tǒng)結(jié)構(gòu)分析可知,可以將此直徑檢測(cè)系統(tǒng)的硬件結(jié)構(gòu)設(shè)計(jì)大致分為采樣傳感器、用于實(shí)現(xiàn)高精度直徑檢測(cè)的CPLD以及實(shí)現(xiàn)控制并且和上位機(jī)通信的單片機(jī)這3大部分。
采樣傳感器由激光傳感器[10]和光電耦合器構(gòu)成。光電耦合器的結(jié)構(gòu)如圖3所示,S_in負(fù)責(zé)接收從專用機(jī)床上的激光傳感器測(cè)到的脈寬信號(hào)。由于專用機(jī)床上的激光傳感器的標(biāo)準(zhǔn)是24 V的,而后一級(jí)的電子計(jì)數(shù)器CPLD的標(biāo)準(zhǔn)是3.3 V的。所以我們需要使用光電隔離器TLP281起到24 V轉(zhuǎn)3.3 V的電平轉(zhuǎn)換的作用。TLP281是一個(gè)高速的光電隔離器,主要實(shí)現(xiàn)電-光-電的轉(zhuǎn)換,并且具有使用壽命長(zhǎng)、抗干擾能力強(qiáng)、無觸點(diǎn)且輸入與輸出在電氣上能夠做到完全隔離的特點(diǎn),完全能夠滿足我們的設(shè)計(jì)需求。S_out則負(fù)責(zé)將經(jīng)過了電平轉(zhuǎn)換以后的脈寬信號(hào)送入后級(jí)的CPLD中進(jìn)行最為關(guān)鍵的Tx脈寬測(cè)量。
高精度電子計(jì)數(shù)器[11]主要是在復(fù)雜可編程邏輯器件即CPLD內(nèi)采用硬件描述語言設(shè)計(jì)算法實(shí)現(xiàn)的,電子計(jì)數(shù)器的結(jié)構(gòu)如圖4所示。它主要由D觸發(fā)器、計(jì)數(shù)器、鎖存器以及多路選擇器構(gòu)成。D觸發(fā)器在每次時(shí)鐘上升沿到來以后將此刻的輸入信號(hào)打入Q端送給計(jì)數(shù)器cnt。D觸發(fā)器采用邊沿觸發(fā),可以有效地避免干擾信號(hào)帶來的毛刺。D觸發(fā)器的輸入端連接到計(jì)數(shù)器的使能端,只有當(dāng)送入的脈寬信號(hào)為高電平時(shí),計(jì)數(shù)器才開始計(jì)數(shù)。并且將輸出的數(shù)據(jù)實(shí)時(shí)地傳給鎖存器。鎖存器的門信號(hào)也用輸入信號(hào)來控制。當(dāng)輸入信號(hào)為高電平時(shí),鎖存器打開不斷地接收從計(jì)數(shù)器送過來的計(jì)數(shù)值。當(dāng)輸入信號(hào)變低以后,計(jì)數(shù)器cnt停止計(jì)數(shù)。與此同時(shí),鎖存器關(guān)閉,將輸入的脈寬信號(hào)的計(jì)數(shù)值送入多路選擇器MUX18中。由于鎖存器是24位的,而多路選擇器是8位的,因此需要將鎖存器中的計(jì)數(shù)值分別存在3路多路選擇器中。通過與單片機(jī)相連的控制線,分3次將多路選擇器的計(jì)數(shù)值送入單片機(jī)中。由于計(jì)數(shù)器的計(jì)數(shù)時(shí)鐘是頻率已知的固定信號(hào),故由公式:
便可計(jì)算出脈寬信號(hào)的寬度Tx。圖4中的CLR#主要是用于清零復(fù)位信號(hào)。之所以此系統(tǒng)能夠準(zhǔn)確并且高精度[12]地測(cè)量出脈寬信號(hào)的寬度,是因?yàn)橛?jì)數(shù)器的時(shí)鐘信號(hào)的頻率一般都是在MHz的數(shù)量級(jí)以上,遠(yuǎn)遠(yuǎn)低于需要測(cè)量的脈寬信號(hào)的Tx。
其中,高精度的電子計(jì)數(shù)器[13]的狀態(tài)機(jī)[14]作為直徑檢測(cè)系統(tǒng)的核心,負(fù)責(zé)整個(gè)單脈沖寬度的測(cè)量過程,具有舉足輕重的作用。其狀態(tài)轉(zhuǎn)換如圖5所示。
圖5中狀態(tài)轉(zhuǎn)換所涉及的采集狀態(tài)說明如表1。
在直徑檢測(cè)系統(tǒng)中,單片機(jī)僅僅是起到一個(gè)復(fù)位、控制啟停,以及從CPLD中讀數(shù)的作用。因此從節(jié)約成本的角度考慮,我們選擇了性價(jià)比較高、芯片體積較小的89C51單片機(jī)。它是一種帶4 K字節(jié)閃爍可編程的存儲(chǔ)器,內(nèi)核采用低電壓、高性能的8位CMOS處理器。其中89C51主要是通過RS485[15]與工控機(jī)進(jìn)行通信,接收工控機(jī)發(fā)回來的控制命令,然后控制下位機(jī)做相關(guān)的操作。其結(jié)構(gòu)如圖6所示。
需要特別說明的是RS485采用半雙工方式,由兩根信號(hào)線做差分輸入,同一時(shí)間只能傳輸一個(gè)方向的信息。這樣的話可以有效地避免雙工模式下信號(hào)之間的干擾帶來的影響。
為了更方便地完成整個(gè)硬件的工作,在單片機(jī)中編寫了簡(jiǎn)單的控制程序[16],直徑檢測(cè)系統(tǒng)控制流程圖如圖7。
首先,系統(tǒng)上電以后,完成對(duì)單片機(jī)的波特率及數(shù)據(jù)傳輸方式和CPLD的初始化,使其工作在目標(biāo)系統(tǒng)所需要的工作模式下。然后等待接收上位機(jī)發(fā)出的命令。若收到復(fù)位命令,則整個(gè)系統(tǒng)重新進(jìn)行初始化。若收到讀取數(shù)據(jù)的命令,則單片機(jī)向CPLD中去讀取鉆頭的直徑信息。因?yàn)樽x取是分3次讀取,所以讀完以后,系統(tǒng)會(huì)判斷是否正確地讀回了數(shù)據(jù)。讀取成功以后在單片機(jī)中經(jīng)過簡(jiǎn)單的分析和處理以后送回給上位機(jī),完成對(duì)鉆頭直徑的檢測(cè)。
測(cè)試結(jié)果主要分成軟件上的仿真測(cè)試和實(shí)際在專用機(jī)床上進(jìn)行的系統(tǒng)測(cè)試。
在quartusII中模擬完成了基于專用機(jī)床直徑檢測(cè)系統(tǒng)的驗(yàn)證,如圖8所示。
其中clk是硬件電路中的時(shí)鐘信號(hào),主要作為用于測(cè)量脈寬信號(hào)的基準(zhǔn)時(shí)鐘,它的頻率為1 MHz。Signal1是模擬從光電傳感器上傳回來的脈寬信號(hào),而value則是實(shí)際CPLD中對(duì)脈寬信號(hào)的計(jì)數(shù)值。從圖中可以看出,在模擬的脈寬信號(hào)Sigal1的脈寬信號(hào)結(jié)束以后,CPLD中的計(jì)數(shù)值也馬上停止到脈寬信號(hào)結(jié)束的時(shí)刻,由于基準(zhǔn)時(shí)鐘是μs級(jí)的,而實(shí)際傳回來的脈寬信號(hào)最小也是ms級(jí)的。這樣我們的測(cè)量誤差正如前文所分析的,只有0.01%不到。
在實(shí)際的機(jī)床中應(yīng)用此直徑檢測(cè)系統(tǒng)實(shí)際完成了對(duì)所有常用鉆頭的標(biāo)準(zhǔn)件的測(cè)量。當(dāng)我們對(duì)鉆頭的標(biāo)準(zhǔn)件進(jìn)行等精度測(cè)量時(shí),測(cè)量值中可能存在系統(tǒng)誤差、隨機(jī)誤差和粗大誤差,為了能夠給出更加合理的結(jié)果,我們按照下述步驟對(duì)測(cè)得的數(shù)據(jù)進(jìn)行了處理。
(1)利用修正值等方法,對(duì)測(cè)量值進(jìn)行修正,并將修正以后的數(shù)據(jù)xi(i=1,2,…,n)依次列成表格;
(5)按萊特準(zhǔn)則|vi|>3s,或格拉布斯準(zhǔn)則|vmax|>Gs檢查和剔除粗大誤差;若有粗大誤差,應(yīng)逐一剔除后重新計(jì)算xi和s,再判別直到?jīng)]有粗大誤差為止;
(6)判斷有無系統(tǒng)誤差,如有系統(tǒng)誤差,應(yīng)找到原因,修正或消除誤差后再重新測(cè)量;
按照以上方法進(jìn)行測(cè)量以后,部分常用標(biāo)準(zhǔn)件的測(cè)量結(jié)果及相對(duì)誤差如表2所示。
通過在實(shí)際專用機(jī)床上對(duì)所有鉆頭的直徑進(jìn)行測(cè)量,我們發(fā)現(xiàn)實(shí)際測(cè)量值與標(biāo)準(zhǔn)件的標(biāo)稱值的相對(duì)誤差最大不超過0.01%,因此可以認(rèn)為此直徑檢測(cè)系統(tǒng)能夠高精度地完成對(duì)鉆頭直徑的檢測(cè)。實(shí)際直徑檢測(cè)系統(tǒng)的硬件實(shí)物如圖9所示。
通過對(duì)直徑檢測(cè)系統(tǒng)的軟件仿真以及在機(jī)床上的實(shí)際測(cè)量,設(shè)計(jì)完成了對(duì)專用機(jī)床上鉆頭直徑的實(shí)時(shí)檢測(cè),并且很好地在降低成本的基礎(chǔ)上,實(shí)現(xiàn)了高精度的測(cè)量,使測(cè)量誤差只有0.01%不到,改變了國(guó)內(nèi)廠商在這一技術(shù)領(lǐng)域要么購(gòu)買價(jià)格高昂的國(guó)外產(chǎn)品,要么憑借人工經(jīng)驗(yàn)更換鉆頭的尷尬局面,給中小規(guī)模的機(jī)床廠商帶來了新的生機(jī)。
[1]Tungaloy corporation.微型鉆針產(chǎn)品 RDS010 技術(shù)規(guī)格說明書[Z].上海電子工業(yè)博覽會(huì)展會(huì)資料,2006.
[2]楊名大.印制板數(shù)控機(jī)床的研究與開發(fā)[J].機(jī)械設(shè)計(jì)與制造工程,2002, 29(3):16-17.
[3]周鴻,趙宏.基于線陣 CCD 陣列的在線檢測(cè)方法[J].半導(dǎo)體技術(shù),2001,26(11):1-4.
[4]錢浚霞,鄭堅(jiān)立.光電檢測(cè)技術(shù)[M].北京:機(jī)械工業(yè)出版社,1993.
[5]趙釜.基于 Cyclone Ⅱ系統(tǒng) FPGA的圖像實(shí)時(shí)采集與預(yù)處理系統(tǒng)研究[D].重慶:重慶大學(xué),2009.
[6]Altera Product Specification: Cyclone FPGA Family Data Sheet [EB/OL],http://www.altera.com/aterature/ds ds_cyc.pdf,2003.
[7]周潤(rùn)景,圖雅,張麗敏.基于 Quartus Ⅱ的 FPGA/CPLD 數(shù)字系統(tǒng)設(shè)計(jì)實(shí)例[M].北京:電子工業(yè)出版社,2007.
[8]陳忠平,曹巧媛,曹琳林.單片機(jī)原理及接口[M].北京:清華大學(xué)出版社,2007.
[9]張培仁.MCS-51單片機(jī)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2003.
[10]Stephen Petronio,常嘉佳.激光傳感器[J].軟件,2007(05):64.
[11]蔣煥文,孫續(xù)編著.電子測(cè)量[M].北京:中國(guó)計(jì)量出版社,1983.
[12]盧貺.基于微處理器的電子計(jì)數(shù)器原理及測(cè)量誤差分析[J].湖南工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2009,9(6):10-12.
[13]張培澤.電子計(jì)數(shù)器[J].儀表技術(shù)與傳感器,1996(8):43.
[14]孔昕,吳武臣,侯立剛,等.基于Verilog的有限狀態(tài)機(jī)設(shè)計(jì)與優(yōu)化[J].微電子學(xué)與計(jì)算機(jī),2010,27(2):180-183.
[15]郭華,馬勝前.RS485接口芯片的介紹以及多機(jī)通訊的實(shí)現(xiàn)[J].甘肅科技縱橫,2006,35(2):32-33.
[16]姜會(huì)文,邱書波.VC6.0下應(yīng)用控件實(shí)現(xiàn)RS485串行通訊[J].微計(jì)算機(jī)信息,2002, 15(10):53-55.