隨著汽車的普及和維修業(yè)的不斷發(fā)展,人們對汽車車身在維修中的檢測系統(tǒng)提出了越來越高的要求。傳統(tǒng)的機(jī)械式測量系統(tǒng)已經(jīng)不能滿足現(xiàn)代汽車測量和維修檢測的要求。在國外,意大利的Spanesi公司、瑞典的Caroliner公司開發(fā)的車身電子測量系統(tǒng)在測量精度、操作性方面雖有一定的優(yōu)勢,然而它們不能進(jìn)行同時(shí)多點(diǎn)測量,已不能適應(yīng)現(xiàn)代汽車維修業(yè)對檢測技術(shù)的要求。利用激光掃描技術(shù)可實(shí)現(xiàn)對車身三維尺寸的測量,滿足了現(xiàn)代汽車維修業(yè)對檢測技術(shù)的新要求。對于激光掃描測量的方法,國內(nèi)還鮮有相關(guān)的報(bào)道[1-2]。
基于合作靶標(biāo)的激光掃描車身坐標(biāo)測量系統(tǒng),是運(yùn)用四光束激光掃描測量原理,綜合運(yùn)用激光、光電、精密測量等技術(shù)進(jìn)行非接觸二維或者三維坐標(biāo)測量的檢測系統(tǒng)。它具有非接觸測量、不易損傷表面、結(jié)構(gòu)簡單、測量距離大、測量點(diǎn)小、抗干擾性強(qiáng)、速度快、實(shí)時(shí)性好、精度高、能同時(shí)進(jìn)行多點(diǎn)測量等特點(diǎn)。該系統(tǒng)主要應(yīng)用于汽車維修業(yè),通過測量保證維修后的事故車車身狀況達(dá)到原車出廠時(shí)的技術(shù)要求。本文對激光掃描車身坐標(biāo)測量系統(tǒng)的數(shù)據(jù)采集與處理部分作了詳細(xì)介紹。
1 測量系統(tǒng)結(jié)構(gòu)
測量系統(tǒng)結(jié)構(gòu)框圖如圖1所示,檢測系統(tǒng)由特征靶標(biāo)、連接頭、電機(jī)掃描裝置、激光器及其驅(qū)動(dòng)電路、光路轉(zhuǎn)折系統(tǒng)、霍爾傳感器、光電轉(zhuǎn)換及信號預(yù)處理模塊、數(shù)據(jù)采集與AVR處理及上位機(jī)組成。每個(gè)電機(jī)掃描裝置由電機(jī)及其驅(qū)動(dòng)電路、反射鏡、反射鏡固定托盤和安裝于反射鏡固定盤側(cè)面的小磁鐵組成。工作時(shí),電機(jī)帶動(dòng)平面鏡旋轉(zhuǎn),當(dāng)掃描激光束經(jīng)由旋轉(zhuǎn)的平面鏡反射到特征靶標(biāo)上時(shí),由于特征靶標(biāo)上面貼有原向回歸反射膜,投射光束經(jīng)過反射膜反射后按原光路返回,激光束經(jīng)過靶標(biāo)反射后經(jīng)由平面鏡反射至激光轉(zhuǎn)折光路中;經(jīng)兩個(gè)平行的45°角平面鏡反射后,光信號經(jīng)過光電轉(zhuǎn)換及預(yù)處理進(jìn)入數(shù)據(jù)采集系統(tǒng),和霍爾傳感器產(chǎn)生的電機(jī)旋轉(zhuǎn)同步脈沖信號一起控制數(shù)據(jù)采集電路,經(jīng)過數(shù)據(jù)處理得到初步的測量點(diǎn)在傳感器系統(tǒng)內(nèi)的三維坐標(biāo)后,送入上位機(jī)。計(jì)算機(jī)把送來的數(shù)據(jù)進(jìn)行計(jì)算及坐標(biāo)變換得出車身三維坐標(biāo)測量結(jié)果,并進(jìn)行顯示或打印輸出。
2 CPLD信號邏輯處理
數(shù)據(jù)采集與處理電路包括邏輯控制電路、緩存器電路、單片機(jī)接口電路等。它們的關(guān)系結(jié)構(gòu)如圖2所示。邏輯控制電路采集各個(gè)傳感器的信號,然后將信號經(jīng)4個(gè)緩存器緩存后傳送給單片機(jī);單片機(jī)結(jié)合軟件實(shí)現(xiàn)對靶標(biāo)的識別、三維坐標(biāo)計(jì)算,通過串行通信與上位機(jī)連接,接收上位機(jī)的命令并將處理后的數(shù)據(jù)送入上位機(jī)打印顯示[3-4]。其中傳感器的信號總共有6路,包括4路由光電模塊采集進(jìn)來的光電信號和2路霍爾信號。邏輯控制電路選用CPLD,緩存器選用FIFO芯片,單片機(jī)選用ATmega128型AVR單片機(jī)。
2.1 PIN數(shù)字脈沖信號預(yù)處理
首先以霍爾傳感器輸出波形為粗定位(波形1),從PIN輸出的數(shù)字脈沖信號(波形2)中提取出采樣周期定位波形,然后以此定位波形為基礎(chǔ)定位出數(shù)據(jù)采樣周期,在整個(gè)數(shù)據(jù)采樣周期內(nèi)對數(shù)字脈沖信號進(jìn)行計(jì)數(shù)填充。采樣周期定位脈沖(波形3)的下降沿是以PIN輸出信號的定位脈沖的下降沿來定位的,其上升沿是以霍爾傳感器輸出脈沖的上升沿來定位的。提取出來的采樣周期定位波形如圖3中波形3所示。
2.2 采樣數(shù)據(jù)周期產(chǎn)生電路
由于掃描器在不停地旋轉(zhuǎn),為了保證AVR獲得正確的掃描數(shù)據(jù),采樣數(shù)據(jù)應(yīng)該是一個(gè)完整周期內(nèi)的數(shù)據(jù),因此必須嚴(yán)格控制采樣周期的完整性。為此設(shè)計(jì)了由AVR輸出信號控制的采樣周期產(chǎn)生電路。此電路以采樣周期定位脈沖和AVR控制信號為輸入,采樣周期信號和采樣周期終止信號為輸出。在QUARTUSII9.0中進(jìn)行仿真之后的波形如圖4所示,圖中tb為采樣周期定位脈沖輸入,clear為AVR輸出的控制使能信號,tout1為產(chǎn)生的采樣周期信號,flag為采樣周期結(jié)束信號。
2.3 CPLD對FIFO芯片的直接控制
CPLD的主要作用是將數(shù)字脈沖信號計(jì)數(shù)填充后,在控制信號使能控制下將數(shù)據(jù)寫入FIFO芯片中,因而CPLD中設(shè)計(jì)了對FIFO進(jìn)行直接控制的功能模塊,包括FIFO清空和寫入。
2.3.1 FIFO數(shù)據(jù)清空
當(dāng)FIFO中數(shù)據(jù)滿時(shí)或AVR啟動(dòng)數(shù)據(jù)采集周期時(shí)都要先將FIFO中的數(shù)據(jù)清零,以防止FIFO溢出造成數(shù)據(jù)丟失或采集到錯(cuò)誤的數(shù)據(jù)。針對FIFO清零時(shí)序,設(shè)計(jì)了由AVR控制的清零電路模塊。執(zhí)行清零FIFO命令時(shí),首先向CPLD中寫入清零信號MR電平拉低命令,命令字為0xF0;然后向CPLD中寫入清零信號MR電平拉高命令,命令字為0x0F(任何非0xF0均可)。由于AVR單片機(jī)的時(shí)鐘脈沖為8 MHz,因而這一過程必定能夠滿足清零脈沖的持續(xù)時(shí)間要求,F(xiàn)IFO即被清空。
2.3.2 單路FIFO數(shù)據(jù)寫入
光電二極管接收的信號經(jīng)前置放大及整形后頻率比較高,由于系統(tǒng)一共有4路信號,AVR來不及直接去讀取每個(gè)跳變沿的計(jì)數(shù)值,因而通過FIFO暫時(shí)緩存,待采樣周期過后,AVR再從FIFO中讀出計(jì)數(shù)值。要把計(jì)數(shù)值寫入FIFO中,必須有正確的寫信號,CY7C433對讀寫信號的時(shí)序有要求,寫信號脈寬tPW≥15 ns,數(shù)據(jù)建立時(shí)間tSD≥8 ns,數(shù)據(jù)保持時(shí)間tHD無最小值要求。據(jù)此本文設(shè)計(jì)了圖5所示的FIFO數(shù)據(jù)寫信號產(chǎn)生電路,這一電路實(shí)質(zhì)上是一個(gè)跳沿提取電路。輸入的數(shù)字脈沖信號首先經(jīng)過三個(gè)觸發(fā)器延時(shí)三個(gè)時(shí)鐘周期,之后對原信號進(jìn)行異或,這樣在信號的每個(gè)跳沿到來時(shí)便能產(chǎn)生一個(gè)3個(gè)時(shí)鐘脈沖寬度的低電平脈沖。當(dāng)CPLD時(shí)鐘選為40 MHz時(shí),此低電平脈沖的脈寬為75 ns,足以滿足FIFO對寫信號的要求。
在此低電平寫信號產(chǎn)生后還要經(jīng)過一級觸發(fā)器進(jìn)行時(shí)鐘同步,以避免CPLD設(shè)計(jì)中經(jīng)常出現(xiàn)的競爭與冒險(xiǎn)問題[5],同時(shí)將其上升沿同步于時(shí)鐘脈沖的下降沿,正好滿足FIFO寫入時(shí)序中對數(shù)據(jù)建立時(shí)間的要求。
2.3.3 4路FIFO數(shù)據(jù)處理
在整個(gè)系統(tǒng)中共有4個(gè)激光掃描傳感器,即會(huì)產(chǎn)生4路信號,且每路信號都會(huì)生成獨(dú)立的FIFO寫信號,因而共產(chǎn)生4路寫信號。當(dāng)4路寫信號中有2路或多路信號同時(shí)到來時(shí),寫入FIFO中的數(shù)據(jù)會(huì)產(chǎn)生紊亂,而造成數(shù)據(jù)寫入錯(cuò)誤或數(shù)據(jù)丟失。因此,設(shè)計(jì)了一個(gè)多路寫信號處理電路,當(dāng)只有某一路信號中有寫信號產(chǎn)生時(shí),寫信號處理電路中產(chǎn)生一個(gè)與之對應(yīng)的寫信號脈沖;當(dāng)某兩路或多路信號中有寫信號產(chǎn)生時(shí),只產(chǎn)生一個(gè)與之對應(yīng)的寫信號脈沖。為了避免數(shù)據(jù)丟失,為數(shù)據(jù)加上4位的數(shù)據(jù)來源標(biāo)志位,當(dāng)多路信號同時(shí)到達(dá)時(shí),對應(yīng)于有寫信號產(chǎn)生的標(biāo)志位置“1”。多路寫信號處理電路如圖6所示。
#p#分頁標(biāo)題#e#
多路寫信號處理電路在QuartusII9.0環(huán)境下的仿真結(jié)果如圖7所示,圖中sgg為輸入的單路寫信號脈沖,wrout為輸出的多路寫信號[6-7]。
3 AVR數(shù)據(jù)采集
3.1 FIFO地址譯碼電路
CY7C433芯片的數(shù)據(jù)寬度為9 bit,因而本系統(tǒng)中采用了4片F(xiàn)IFO芯片進(jìn)行擴(kuò)展。AVR的數(shù)據(jù)總線位寬為8 bit,為了降低外圍電路的復(fù)雜性,每個(gè)FIFO芯片只用其中的8位,在讀取時(shí)按照從高8位到低8位的順序進(jìn)行數(shù)據(jù)讀取。因此,共需要4個(gè)讀信號才能將一個(gè)數(shù)據(jù)完整地讀入AVR中。數(shù)據(jù)的讀取方式為,給每個(gè)FIFO芯片配置一個(gè)唯一的數(shù)據(jù)地址,數(shù)據(jù)按址讀取。為此本文設(shè)計(jì)了相應(yīng)的FIFO讀信號地址譯碼電路,輸出信號控制FIFO芯片的讀信號使能端。首先地址信號通過一個(gè)2-4譯碼器進(jìn)行譯碼,譯碼結(jié)果與寫信號同步后輸出即得到4個(gè)FIFO芯片的讀使能信號。
3.2 數(shù)據(jù)采集程序流程圖
綜合前文所有的分析說明,編寫了AVR+CPLD+FIFO信號的C語言程序,圖8是程序流程圖。該程序中包含了FIFO清零、采集周期啟停控制、FIFO狀態(tài)判斷、數(shù)據(jù)來源分析、數(shù)據(jù)有效性判斷等多個(gè)子項(xiàng),最終采集得到一個(gè)掃描周期的準(zhǔn)確、有效的數(shù)據(jù)以供后續(xù)電路進(jìn)行處理。通過試驗(yàn)證明,程序達(dá)到了預(yù)期目的。
本文對激光掃描車身坐標(biāo)測量系統(tǒng)的數(shù)據(jù)采集部分進(jìn)行了深入研究,設(shè)計(jì)了基于“AVR+FIFO+CPLD”的數(shù)據(jù)采集及處理模塊;解決了當(dāng)多路信號有數(shù)據(jù)同時(shí)傳輸時(shí),如何將數(shù)據(jù)完整地寫入FIFO的問題,實(shí)現(xiàn)了數(shù)據(jù)的有效采集;編寫了完整的CPLD控制程序和AVR數(shù)據(jù)采集程序,為準(zhǔn)確測量待測點(diǎn)的坐標(biāo)提供了可靠的數(shù)據(jù)來源。
轉(zhuǎn)載請注明出處。